menu-group-file = File
menu-group-edit = Edit
menu-group-view = View
menu-group-blog = Blog
menu-group-help = Help
menu-item-newPost = New Post
menu-item-importMedia = Import Media...
menu-item-save = Save
menu-item-openInBrowser = Open in Browser
menu-item-openDataFolder = Open Data Folder
menu-item-undo = Undo
menu-item-redo = Redo
menu-item-cut = Cut
menu-item-copy = Copy
menu-item-paste = Paste
menu-item-selectAll = Select All
menu-item-find = Find
menu-item-replace = Replace
menu-item-editPreferences = Edit Preferences
menu-item-viewPosts = Posts
menu-item-viewMedia = Media
menu-item-toggleSidebar = Toggle Sidebar
menu-item-togglePanel = Toggle Panel
menu-item-publishSelected = Publish Selected
menu-item-previewPost = Preview Post
menu-item-rebuildDatabase = Rebuild Database from Files
menu-item-reindexText = Reindex Search Text
menu-item-rebuildEmbeddingIndex = Rebuild Embedding Index
menu-item-findDuplicates = Find Duplicate Posts
common-refresh = Refresh
editor-semanticTagSuggestions = Suggested from similar posts
editor-matchingTags = Matching tags
editor-createTag = Create tag: { $name }
duplicates-title = Find Duplicate Posts
duplicates-searching = Searching for duplicates…
duplicates-complete = Duplicate search complete
duplicates-count = { $count } potential pairs
duplicates-disabled = Semantic similarity is not enabled for this project.
duplicates-empty = No potential duplicate posts found.
duplicates-checkAll = Check All
duplicates-uncheckAll = Uncheck All
duplicates-dismissChecked = Dismiss Checked
duplicates-dismissCheckedCount = Dismiss Checked ({ $count })
duplicates-exactMatch = Exact Match
duplicates-dismiss = Dismiss
duplicates-dismissed = Duplicate pair dismissal saved.
duplicates-showMore = Show More
documentation-title = Documentation
documentation-apiTitle = Lua API Documentation
documentation-subtitle = Read-only bundled RuDS user guide.
documentation-apiSubtitle = Generated Lua reference, public types, and runnable examples.
documentation-cliTitle = CLI Documentation
documentation-cliSubtitle = Command line, headless server, and terminal UI reference.
documentation-mcpTitle = MCP Server Documentation
documentation-mcpSubtitle = Resources and tools RuDS provides to external AI agents.
documentation-loading = Loading documentation…
documentation-missing = The RuDS user guide is unavailable.
documentation-malformed = The documentation source could not be read as UTF-8 text.
documentation-empty = This documentation file is empty.
documentation-anchorMissing = That section is not present in this document.
documentation-linkRefused = Only document sections and HTTP or HTTPS links can be opened.
documentation-externalLinkTitle = Open external link?
documentation-externalLinkMessage = RuDS will open this address in your default browser: { $url }
embeddings-reindexed = Rebuilt embeddings for { $count } posts.
embeddings-indexing = Indexing semantic content
embeddings-indexingProgress = Indexing post { $current } of { $total }
embeddings-indexed = Semantic index is ready for { $count } posts.
menu-item-metadataDiff = Metadata Diff Tool
menu-item-editMenu = Edit Blog Menu
menu-item-generateSitemap = Render Site
menu-item-forceRenderSite = Force Render Site
menu-item-regenerateCalendar = Regenerate Calendar
menu-item-validateSite = Validate Site
menu-item-validateTranslations = Validate Translations
menu-item-fillMissingTranslations = Fill Missing Translations
menu-item-uploadSite = Upload Site
menu-item-about = About Blogging Desktop Server
menu-item-openDocumentation = Open Documentation
menu-item-openApiDocumentation = Open Lua API Documentation
menu-item-openCliDocumentation = Open CLI Documentation
menu-item-openMcpDocumentation = Open MCP Server Documentation
menu-item-viewOnGitHub = View on GitHub
menu-item-reportIssue = Report Issue
activity-posts = Posts
activity-pages = Pages
activity-media = Media
activity-scripts = Scripts
activity-tags = Tags
activity-templates = Templates
activity-aiAssistant = AI Assistant
activity-import = Import
activity-sourceControl = Source Control
common-save = Save
common-workspaceState = Workspace state
common-open = Open
common-cancel = Cancel
common-delete = Delete
menuEditor-title = Menu Editor
menuEditor-description = Build the site navigation stored in meta/menu.opml. Drag entries or use the accessible move controls.
menuEditor-addEntry = Add page or submenu
menuEditor-addCategory = Add category archive
menuEditor-reload = Reload
menuEditor-moveUp = Move up
menuEditor-drag = Drag menu entry
menuEditor-moveDown = Move down
menuEditor-indent = Indent
menuEditor-unindent = Unindent
menuEditor-loading = Loading menu…
menuEditor-loadFailed = The menu could not be loaded.
menuEditor-loadFailedDetail = The menu could not be loaded: { $error }
menuEditor-saveFailed = The menu could not be saved: { $error }
menuEditor-saved = Menu saved.
menuEditor-empty = The menu is empty.
menuEditor-noProject = No active project is available.
menuEditor-finishDraft = Finish or cancel the new entry before saving.
menuEditor-draft = New entry
menuEditor-pagePlaceholder = Search pages or enter a submenu title
menuEditor-categoryPlaceholder = Search or enter a category
menuEditor-createSubmenu = Create submenu
menuEditor-useCategory = Use category
menuEditor-categoryRequired = Enter a category name.
menuEditor-categoryCreateFailed = The category could not be created: { $error }
menuEditor-newSubmenu = New Submenu
menuEditor-kindHome = Home
menuEditor-kindPage = Page
menuEditor-kindSubmenu = Submenu
menuEditor-kindCategory = Category archive
chat-sidebar-empty = No conversations yet
chat-new = New Chat
chat-newWithModel = Chat with { $model }
chat-unavailable-title = Conversational AI is unavailable
chat-unavailable-guidance = Configure the active AI endpoint and model in Settings. Airplane mode uses only the local endpoint.
chat-providerError = AI provider error:
chat-unavailable-openSettings = Open AI Settings
chat-model-none = No model selected
chat-model-label = Model
chat-model-option = { $provider } — { $name } · { $context }k context · { $output }k output · { $capability }
chat-model-tools = tools
chat-model-textOnly = text only
chat-rename-placeholder = Conversation title
chat-rename-action = Rename
chat-streaming = Assistant · responding…
chat-tool-running = Running { $name }…
chat-tool-used = Used { $name }
chat-stop = Stop
chat-send = Send
chat-input-placeholder = Ask about your blog…
chat-input-hint = Enter sends · Shift+Enter adds a line
chat-welcome-title = How can I help with your blog?
chat-welcome-subtitle = I can inspect project content and use blog tools when the selected model supports them.
chat-welcome-tip1 = Summarize the current blog
chat-welcome-tip2 = Find posts about a topic
chat-welcome-tip3 = Review tags and categories
chat-welcome-tip4 = Inspect media, templates, or scripts
chat-welcome-tip5 = Update post or media metadata
chat-role-user = You
chat-role-assistant = Assistant
chat-role-system = System
chat-role-tool = Tool
chat-deleted = Conversation deleted
chat-link-refused = This link type is not allowed
chat-navigation-invalid = The requested blog item could not be opened
chat-surface-dismiss = Dismiss
chat-surface-empty = No content
chat-surface-type-card = Card
chat-surface-type-chart = Chart
chat-surface-type-form = Form
chat-surface-type-list = List
chat-surface-type-metric = Metric
chat-surface-type-mindmap = Mind map
chat-surface-type-table = Table
chat-surface-type-tabs = Tabs
chat-surface-type-text = Text
chat-surface-type-json = Data
chat-surface-form-datePlaceholder = YYYY-MM-DD
chat-surface-form-numberPlaceholder = Enter a number
chat-surface-form-textPlaceholder = Enter a value
chat-surface-form-submit = Submit
chat-surface-actionRefused = Assistant action refused: { $reason }
statusBar-chatTokens = AI ↑{ $input } ↓{ $output } cache { $cacheRead }/{ $cacheWrite }
common-settings = Settings
common-tasks = Tasks
common-running = running
common-pending = pending
tasks-backgroundTasks = Background Tasks
tasks-clearCompleted = Clear completed
tasks-noActive = No active tasks
tasks-cancelTask = Cancel task
tasks-statusPending = Pending
tasks-statusRunning = Running
tasks-statusCancelling = Cancelling…
tasks-statusCompleted = Completed
tasks-statusFailed = Failed: { $error }
tasks-statusCancelled = Cancelled
tasks-triggerTitle = { $running } running, { $pending } pending
app-taskCompleted = Task completed: { $message }
app-taskFailed = Task failed: { $message }
app-databaseRebuildFailed = Database rebuild failed
app-textReindexFailed = Text reindex failed
panel-output = Output
panel-postLinks = Post Links
panel-gitLog = Git Log
panel-postLinksPlaceholder = No post links to display
panel-closeTitle = Close panel
panel-noRecentTasks = No recent tasks
panel-noOutput = No output
statusBar-posts = { $count } posts
statusBar-media = { $count } media
statusBar-ui = UI
statusBar-uiLanguage = UI Language
statusBar-offlineMode = Airplane Mode
statusBar-offlineModeActive = Airplane Mode (active)
projectSelector-switchProject = Switch project
projectSelector-projectsHeader = Projects
projectSelector-newProject = New Project
projectSelector-openProject = Open Project…
projectSelector-createProject = Create Project
projectSelector-projectName = Project name
projectSelector-projectNamePlaceholder = My Blog
projectSelector-chooseFolder = Choose folder...
projectSelector-useDefaultLocation = Use default location
projectSelector-deleteProject = Delete Project
projectSelector-toast-switched = Switched to { $name }
projectSelector-toast-switchFailed = Project switch failed
projectSelector-toast-created = Project "{ $name }" created
projectSelector-toast-opened = Project "{ $name }" opened
projectSelector-toast-openFailed = Failed to open project: { $error }
projectSelector-toast-createFailed = Failed to create project
projectSelector-toast-deleteFailed = Failed to delete project
tabBar-closeHint = Close
tabBar-loading = Loading...
tabBar-unknown = Unknown
tabBar-style = Style
tabBar-menuEditor = Menu Editor
tabBar-metadataDiff = Metadata Diff
tabBar-siteValidation = Site Validation
tabBar-translationValidation = Translation Validation
siteValidation-run = Run Validation
siteValidation-apply = Apply Validation
siteValidation-applying = Applying...
siteValidation-idle = Run site validation to compare generated files against expected output.
siteValidation-running = Validation in progress...
siteValidation-complete = Validation complete
siteValidation-clean = No missing, extra, or stale generated files were found.
siteValidation-error = Validation failed
siteValidation-missing = Missing Files
siteValidation-extra = Extra Files
siteValidation-stale = Stale Files
tabBar-documentation = Documentation
tabBar-apiDocumentation = API Documentation
tabBar-cliDocumentation = CLI Documentation
tabBar-mcpDocumentation = MCP Documentation
tabBar-findDuplicates = Find Duplicates
tabBar-tags = Tags
tabBar-preview = Preview
tabBar-modified = Modified
sidebar-noPostsYet = No posts yet
sidebar-noPagesYet = No pages yet
sidebar-noMediaYet = No media yet
sidebar-noScriptsYet = No scripts yet
sidebar-noTemplatesYet = No templates yet
sidebar-importPlaceholder = Import content from external sources
sidebar-loading = Loading...
sidebar-settingsHeader = Settings
sidebar-tagsHeader = Tags
sidebar-drafts = Drafts
sidebar-published = Published
sidebar-archived = Archived
language-en = English
language-de = German
language-fr = French
language-it = Italian
language-es = Spanish
welcome-title = Welcome to bDS
welcome-subtitle = Open a project or create a new post to get started.
post-untitled = Untitled
post-createFailed = Failed to create post: { $error }
engine-rebuildStarted = Rebuilding database from files...
engine-rebuildComplete = Database rebuilt: { $posts } posts, { $media } media, { $templates } templates, { $scripts } scripts
engine-rebuildFailed = Database rebuild failed: { $error }
engine-reindexStarted = Reindexing search text...
engine-reindexComplete = Search text reindexed: { $posts } posts, { $media } media
engine-reindexFailed = Search text reindex failed: { $error }
engine-calendarStarted = Regenerating calendar...
engine-calendarComplete = Calendar regenerated
engine-calendarFailed = Calendar regeneration failed: { $error }
engine-calendarNoProject = No active project
engine-validateTranslationsStarted = Validating translations...
engine-validateMediaStarted = Validating media assets...
engine-validateTranslationsComplete = Translation validation: { $dbIssues } DB issues, { $fsIssues } filesystem issues
engine-validateTranslationsFailed = Translation validation failed: { $error }
engine-fillMissingTranslationsOffline = Cannot fill translations: AI is unavailable in offline mode
engine-fillMissingTranslationsNoAi = Cannot fill translations: AI not yet available
engine-uploadStarted = Uploading site...
engine-uploadingTarget = Uploading { $target }…
engine-uploadMissingCredentials = Publishing credentials incomplete. Configure in project settings.
engine-uploadOffline = Cannot upload: airplane mode is active
engine-generateSiteStarted = Generating site...
engine-generateSiteNoProject = No active project
engine-previewDataDirUnavailable = Project data directory unavailable
engine-previewPortInUse = Preview server port is already in use
dialog-selectFolder = Select Folder
dialog-openProject = Open Project Folder
dialog-importMedia = Import Media
dialog-replaceMedia = Replace Media File
dialog-imageFilter = Images
editor-replaceFile = Replace File…
media-toast-imported = Imported { $count } media file(s)
media-toast-importFailed = Some media files could not be imported: { $error }
media-toast-replaced = Media file replaced
media-toast-unchanged = The selected file is identical; nothing changed
media-toast-replaceFailed = Failed to replace media file: { $error }
settings-nav-project = Project
settings-nav-editor = Editor
settings-nav-content = Content
settings-nav-ai = AI
settings-nav-technology = Technology
settings-nav-publishing = Publishing
settings-nav-data = Data
settings-nav-mcp = MCP
settings-nav-style = Style
style-title = Style
style-subtitle = Choose the Pico CSS theme used by this project.
style-themes = Themes
style-previewMode = Preview Mode
style-previewMode-auto = Auto
style-previewMode-light = Light
style-previewMode-dark = Dark
style-apply = Apply Theme
style-applied = Theme applied.
style-preview = Live Preview
tags-nav-cloud = Tag Cloud
tags-nav-manage = Manage Tags
tags-nav-merge = Merge Tags
tags-nav-discover = Discover Tags
tags-nav-categories = Categories
sidebar-chatYesterday = Yesterday
sidebar-relativeDateMonthDay = { $month } { $day }
modal-confirmDelete-title = Confirm Delete
modal-confirmDelete-warning = This action cannot be undone.
modal-confirmDelete-cancel = Cancel
modal-confirmDelete-delete = Delete
modal-confirm-title = Confirm
modal-confirm-cancel = Cancel
modal-confirm-confirm = Confirm
searchIndexRepair-title = Rebuild Search Index?
searchIndexRepair-message = Rebuilding may take some time. Search is unavailable until it finishes. You can rebuild now or do it later from Preferences.
searchIndexRepair-later = Later
searchIndexRepair-rebuildNow = Rebuild Now
searchIndexRepair-rebuildingTitle = Rebuilding Search Index
searchIndexRepair-rebuildingMessage = Please wait. Editing is temporarily unavailable while the search index is rebuilt.
searchIndexRepair-waitForTasks = Wait for the other background tasks to finish before rebuilding the search index.
modal-postInsertLink-title = Insert Link
modal-postInsertLink-description = Select a post to link to.
modal-postInsertLink-cancel = Cancel
modal-postInsertLink-tabInternal = Internal
modal-postInsertLink-tabExternal = External
modal-postInsertLink-searchPlaceholder = Search posts...
modal-postInsertLink-emptyState = Start typing to search posts or use related posts
modal-postInsertLink-createPost = Create Post
modal-postInsertLink-insert = Insert
modal-postInsertLink-externalUrlPlaceholder = https://example.com
modal-postInsertLink-externalTextPlaceholder = Display text (optional)
modal-postInsertLink-urlRequired = A URL is required.
modal-postInsertLink-titleRequired = Enter a title to create a linked post.
modal-postInsertLink-createFailed = Failed to create the linked post.
modal-postInsertLink-loadFailed = Failed to load the selected post.
modal-insertMedia-title = Insert Media
modal-insertMedia-description = Select a media item to insert.
modal-insertMedia-cancel = Cancel
modal-insertMedia-searchPlaceholder = Search media...
modal-insertMedia-loadFailed = Failed to load the selected media item.
modal-postGallery-title = Media Gallery
modal-postGallery-description = Click an image to view full size.
modal-postGallery-close = Close
modal-postGallery-backToGrid = Back to Grid
modal-postGallery-unavailable = Preview unavailable
modal-aiSuggestions-title = AI Suggestions
modal-aiSuggestions-applySelected = Apply Selected
modal-languagePicker-title = Translate To
sidebar-filter-search = Search...
sidebar-filter-toggle = Filters
sidebar-filter-clearAll = Clear All Filters
sidebar-filter-status = Status
sidebar-filter-language = Language
sidebar-filter-dateRange = Date Range
sidebar-filter-from = From (YYYY-MM-DD)
sidebar-filter-to = To (YYYY-MM-DD)
sidebar-filter-tags = Tags
sidebar-filter-categories = Categories
sidebar-filter-calendar = Archive
sidebar-filter-noResults = No matching items
editor-saved = Saved.
editor-published = Post published
editor-title = Title
editor-titlePlaceholder = Enter title...
editor-slug = Slug
editor-slugPlaceholder = enter-slug
editor-content = Content
editor-contentPlaceholder = Write your content...
editor-excerpt = Excerpt
editor-excerptPlaceholder = Brief summary...
editor-author = Author
editor-language = Language
editor-aiAnalyze = Analyze with AI
editor-detectLanguage = Detect Language
editor-quickActions = Quick Actions
editor-modeMarkdown = Markdown
editor-modePreview = Preview
editor-suggestTaxonomy = Suggest Taxonomy
editor-translate = Translate
editor-templateSlug = Template
editor-doNotTranslate = Do Not Translate
editor-publish = Publish
editor-archive = Archive
editor-archived = Moved to archive.
editor-unarchive = Unarchive
editor-unarchived = Restored to draft.
editor-statusDraft = Draft
editor-statusPublished = Published
editor-statusArchived = Archived
editor-discard = Discard
editor-validate = Validate
editor-run = Run
editor-checkSyntax = Check Syntax
editor-syntaxValid = Syntax is valid.
editor-syntaxInvalid = Syntax error: { $error }
editor-kind = Kind
editor-enabled = Enabled
editor-entrypoint = Entrypoint
editor-alt = Alt Text
editor-altPlaceholder = Describe the image...
editor-caption = Caption
editor-metadata = Metadata
editor-tags = Tags
editor-tagsPlaceholder = Add tag...
editor-categories = Categories
editor-categoriesPlaceholder = Add category...
editor-outlinks = Outgoing Links
editor-backlinks = Incoming Links
editor-linkedMedia = Linked Media
editor-linkedMediaEmpty = No linked media yet.
editor-linkExistingMedia = Link Existing
editor-linkToPost = Link to Post
editor-linkedPosts = Linked Posts
editor-linkedPostsEmpty = Not linked to any posts.
editor-postPickerSearch = Search Posts
editor-postPickerSearchPlaceholder = Search posts...
editor-unlinkMedia = Unlink
editor-linkedMediaKindImage = Image
editor-linkedMediaKindFile = File
editor-untitled = Untitled
editor-createdAt = Created
editor-updatedAt = Updated
editor-publishedAt = Published
editor-insertLink = Insert Link
editor-insertMedia = Insert Media
editor-gallery = Gallery
editor-addGalleryImages = Add Gallery Images
editor-galleryAirplaneGated = Automatic AI actions stay gated by airplane mode.
editor-galleryPickerFailed = Could not open the image picker: { $error }
editor-galleryImageAdded = Added { $title }
editor-galleryImageFailed = Failed to process { $path }: { $error }
editor-galleryImportComplete = Added { $count } images to post
editor-imageDropImport = Import dropped image: { $name }
editor-imageDropProgress = Importing and linking { $name }
editor-imageDropAdded = Added dropped image { $name }
editor-imageDropFailed = Failed to import { $path }: { $error }
editor-imageDropEnrichment = Enrich dropped image: { $name }
editor-imageDropEnrichmentFailed = Failed to enrich { $path }: { $error }
tags-noTags = No tags yet
categories-section = Categories
categories-title = Title ({ $language })
categories-actions = Actions
tags-cloudSection = Cloud
tags-cloudHelp = Select one or more tags to edit, delete, or merge them.
tags-selectedCount = { $count } selected
tags-clearSelection = Clear selection
tags-createSection = Create Tag
tags-createPlaceholder = new-tag
tags-createButton = Create
tags-editTag = Edit Tag
tags-manageSection = Manage
tags-name = Name
tags-color = Color
tags-colorPresets = Color presets
tags-postTemplate = Post Template
tags-noTemplate = None
tags-merge = Merge
tags-mergeTarget = Target Tag
tags-mergeSection = Merge
tags-mergeHelp = Select at least two tags from the cloud or list to merge them.
tags-mergePreview = Tags to delete: { $tags }
tags-mergeConfirmTitle = Merge Tags
tags-mergeConfirmMessage = Merge { $count } tags into { $target }? This cannot be undone.
tags-deleteUsage = This tag is used in { $count } posts.
tags-discoverSection = Discover
tags-discoverDescription = Discover tags from current posts and rewrite tags.json to match the database.
tags-discoverButton = Discover
tags-selectTag = Select a tag to edit
template-forceDeleteTitle = Force Delete Template
template-forceDeleteMessage = This template is used by { $posts } posts and { $tags } tags. Force delete?
common-add = Add
common-remove = Remove
common-clear = Clear
common-noResults = No results
settings-projectName = Project Name
settings-projectDescription = Description
settings-dataPath = Data Folder
settings-browse = Browse...
settings-reset = Reset
settings-publicUrl = Public URL
settings-mainLanguage = Main Language
settings-mainLanguageRequired = required
settings-blogLanguages = Blog Languages
settings-defaultAuthor = Default Author
settings-maxPostsPerPage = Posts per Page
settings-blogmarkCategory = Blogmark Category
settings-copyBlogmarkBookmarklet = Copy Blogmark Bookmarklet
settings-blogmarkBookmarkletCopied = Blogmark bookmarklet copied
settings-defaultMode = Default Editor Mode
settings-diffViewStyle = Diff View Style
settings-categoryTitle = Title for { $category }
settings-categoryPostTemplate = Post Template
settings-categoryListTemplate = List Template
settings-categoryRenderInLists = Render in Lists
settings-categoryShowTitles = Show Titles
settings-addCategory = Add Category
settings-resetCategories = Reset to Defaults
settings-wrapLongLines = Wrap Long Lines
settings-hideUnchangedRegions = Hide Unchanged Regions
settings-offlineMode = Airplane Mode
settings-onlineEndpointSection = Online Endpoint
settings-onlineEndpointUrl = Online Endpoint URL
settings-onlineEndpointModel = Online Endpoint Model
settings-onlineApiKey = Online API Key
settings-airplaneApiKey = Local API Key (Optional)
settings-airplaneEndpointSection = Airplane Endpoint
settings-airplaneEndpointUrl = Airplane Endpoint URL
settings-airplaneEndpointModel = Airplane Endpoint Model
settings-refreshModels = Refresh Models
settings-chatModel = Chat Model
settings-modelSupportsTools = Selected chat model supports tool calls
settings-modelSupportsVision = Selected image model supports vision
settings-testChat = Test Chat
settings-modelsLoaded = Models loaded.
settings-testChatSuccess = Selected models responded successfully.
settings-onlineChatModel = Online Chat Model
settings-onlineTitleModel = Online Title Model
settings-onlineImageModel = Online Image Model
settings-onlineModelSupportsTools = Online chat model supports tool calls
settings-onlineModelSupportsVision = Online image model supports vision
settings-airplaneChatModel = Local Chat Model
settings-airplaneTitleModel = Local Title Model
settings-airplaneImageModel = Local Image Model
settings-airplaneModelSupportsTools = Local chat model supports tool calls
settings-airplaneModelSupportsVision = Local image model supports vision
settings-defaultModel = Default Model
settings-titleModel = Title Model
settings-imageAnalysisModel = Image Analysis Model
settings-keychainConfigured = Stored in keychain
settings-systemPrompt = System Prompt
settings-resetToDefault = Reset to Default
settings-luaRuntimeOnly = Lua is the only scripting runtime in the Rust app.
settings-semanticSimilarityEnabled = Semantic Similarity
settings-sshHost = SSH Host
settings-sshUsername = SSH Username
settings-sshRemotePath = Remote Path
settings-clear = Clear
settings-rebuildPosts = Rebuild Posts
settings-rebuildSearchIndex = Rebuild Search Index
settings-rebuildMedia = Rebuild Media
settings-rebuildScripts = Rebuild Scripts
settings-rebuildTemplates = Rebuild Templates
settings-rebuildLinks = Rebuild Links
settings-rebuildPostLinks = Rebuilding post links…
settings-rebuildMediaLinks = Rebuilding media links…
settings-regenerateThumbnails = Regenerate Thumbnails
settings-openDataFolder = Open Data Folder
settings-installCli = Install CLI
settings-cliInstalled = CLI installed at { $path }
settings-contentPlaceholder = Content settings will appear here
settings-technologyPlaceholder = Technology settings will appear here
settings-mcpEnable = Enable local MCP server
settings-mcpRunning = Running
settings-mcpStopped = Stopped
settings-mcpRefresh = Refresh
settings-mcpProposals = Pending proposals
settings-mcpNoProposals = No proposals are waiting for approval.
settings-mcpApprove = Approve
settings-mcpReject = Reject
settings-mcpAgents = Agent configuration
settings-mcpProposalApproved = MCP proposal approved and applied.
settings-mcpProposalRejected = MCP proposal rejected.
settings-mcpKindDraftPost = New post
settings-mcpKindScript = New script
settings-mcpKindTemplate = New template
settings-mcpKindMediaTranslation = Media translation
settings-mcpKindMediaMetadata = Media metadata
settings-mcpKindPostMetadata = Post metadata
settings-mcpStatusPending = Pending
settings-mcpStatusExecuting = Applying
settings-mcpStatusAccepted = Approved
settings-mcpStatusRejected = Rejected
settings-mcpStatusExpired = Expired
dashboard-overview = Overview
dashboard-posts = Posts
dashboard-media = Media
dashboard-tags = Tags
dashboard-categories = Categories
dashboard-images = Images
dashboard-drafts = Drafts
dashboard-published = Published
dashboard-archived = Archived
dashboard-timeline = Posts Over Time
dashboard-recentPosts = Recently Updated
dashboard-postCount = { $count } posts
dashboard-pin = Pin
editor-noPreviewAvailable = No preview available
common-operationFailed = { $operation } failed: { $error }
common-databaseUnavailable = Database unavailable
common-autoSave = Auto-save
common-metadataSync = Metadata sync
common-load = Load
common-createScript = Create script
common-createTemplate = Create template
settings-maxPostsPerPageInvalid = Posts per page must be a valid number
settings-categoryNameRequired = Category name is required
settings-categoryAlreadyExists = Category already exists
siteValidation-summary = { $label }: missing={ $missing }, extra={ $extra }, stale={ $stale }
engine-readingProjectConfig = Reading project configuration...
engine-loadingPosts = Loading posts...
engine-writingCalendar = Writing calendar JSON...
engine-indexingItem = Indexing: { $current }/{ $total } — { $name }
engine-checkingItem = Checking: { $current }/{ $total } — { $name }
engine-renderingPost = Rendering { $post }
engine-writingGeneratedFiles = Writing generated files
engine-generationComplete = Site generation complete
engine-runScript = Running script…
engine-regeneratingItem = Regenerating: { $name }
metadataDiff-run = Run Diff
metadataDiff-running = Comparing database and filesystem…
metadataDiff-idle = Run the metadata diff to compare portable files with the database.
metadataDiff-clean = Database and filesystem metadata are in sync.
metadataDiff-fileToDb = Use File
metadataDiff-dbToFile = Use Database
metadataDiff-orphans = Orphan files
metadataDiff-errors = Errors
metadataDiff-repaired = Metadata difference repaired
metadataDiff-repair = Repairing metadata…
metadataDiff-complete = Metadata comparison complete
metadataDiff-importOrphan = Import File
metadataDiff-orphanImported = Orphan file imported
metadataDiff-field = { $field }: DB = { $database } · File = { $file }
metadataDiff-entity = { $entity } · { $path }
metadataDiff-orphan = { $reason } · { $path }
engine-fillMissingTranslationsStarted = Filling missing translations…
engine-fillMissingTranslationsComplete = Translation batch complete: { $posts } posts, { $media } media, { $failed } failed
engine-autoTranslationStarted = Creating missing translations…
engine-autoTranslationComplete = Created { $count } draft translations
engine-autoTranslationFailed = Automatic translation failed
engine-autoTranslationRetrying = AI failed, retrying…
engine-progress-scanningPublishedPosts = Scanning published posts…
engine-progress-translatingPost = Translating { $title } → { $language }
engine-progress-translationBatchComplete = Translation batch complete
engine-progress-loadingProjectMetadata = Loading project metadata…
engine-progress-scanningPosts = Scanning posts…
engine-progress-postItem = Posts: { $current }/{ $total } — { $name }
engine-progress-scanningMedia = Scanning media…
engine-progress-mediaItem = Media: { $current }/{ $total } — { $name }
engine-progress-rebuildingTemplates = Rebuilding templates…
engine-progress-rebuildingScripts = Rebuilding scripts…
engine-progress-importingTags = Importing tags…
engine-progress-rebuildingThumbnails = Rebuilding missing thumbnails…
engine-progress-refreshingSemanticIndex = Refreshing semantic index…
engine-progress-rebuildComplete = Rebuild complete
translationValidation-run = Validate
translationValidation-running = Validating translations…
translationValidation-idle = Run validation to check translations in the database and filesystem.
translationValidation-clean = All translations are consistent.
translationValidation-databaseIssues = Database issues
translationValidation-filesystemIssues = Filesystem issues
translationValidation-missingSourcePost = Source post is missing
translationValidation-sameLanguageAsCanonical = Language matches the source post
translationValidation-doNotTranslateHasTranslations = Post is marked do not translate
translationValidation-contentInDatabase = Published content remains in the database
translationValidation-missingTranslation = Configured translation is missing
blogmark-invalid = Invalid blogmark: { $error }
blogmark-unknownProject = The project targeted by this blogmark does not exist here.
blogmark-noProject = Open a project before importing a blogmark.
blogmark-importing = Importing blogmark
blogmark-imported = Blogmark imported
blogmark-failed = Blogmark import failed: { $error }
engine-renderingPage = Rendering { $url } ({ $current }/{ $total })
engine-renderingPages = Rendering pages ({ $current }/{ $total })
engine-generatedPage = Generated { $url } ({ $current }/{ $total })
engine-rewrotePage = Rewrote { $url } ({ $current }/{ $total })
engine-renderSiteGroup = Render Site
engine-prepareGeneration = Prepare site generation
engine-preparingGeneration = Preparing routes and templates…
engine-generationPrepared = Site generation prepared
engine-forceRenderSiteGroup = Force Render Site
engine-applyValidationGroup = Apply Site Validation
engine-renderSiteCore = Render Site Core
engine-renderSinglePosts = Render Single Posts
engine-renderCategoryArchives = Render Category Archives
engine-renderTagArchives = Render Tag Archives
engine-renderDateArchives = Render Date Archives
engine-buildSearchIndex = Build Search Index
engine-builtSearchFile = Built { $path } ({ $current }/{ $total })
engine-generationCancellationRequested = Cancelling site generation…
engine-generationSummary = Site generation complete: written={ $written }, skipped={ $skipped }, deleted={ $deleted }, output={ $output }
engine-publicUrlRequired = Public URL is required before generating the site
settings-imageImportConcurrency = Image Import Concurrency (1–8)
settings-imageImportConcurrencyInvalid = Image import concurrency must be a number from 1 to 8
find-titleFind = Find
find-titleReplace = Find and Replace
find-query = Find text
find-replacement = Replacement
find-next = Find Next
find-replace = Replace
find-replaceAll = Replace All
find-noMatches = No matches found
find-replacedCount = Replaced { $count } matches
git-loading = Loading repository…
git-notRepository = This project is not a Git repository yet.
git-initialize = Initialize Git
git-fetch = Fetch
git-pull = Pull
git-push = Push
git-airplaneBlocked = Network Git actions are unavailable in airplane mode.
git-synced = Synced
git-localOnly = Local only
git-remoteOnly = Remote only
git-remoteUrl = Origin URL
git-changesCount = Changes ({ $count })
git-commitMessage = Commit message
git-commit = Commit
git-noChanges = No changes
git-history = History
git-noCommits = No commits yet
git-pruneLfs = Prune LFS cache
git-liveOutput = Live output
git-diff = Git Diff
git-commitDiffTitle = Commit { $hash }
git-readOnly = Read-only Git comparison
git-loadingDiff = Loading diff…
git-original = Original
git-modified = Modified
git-inlineDiff = Inline diff
git-noDiff = No differences
git-noFileHistory = No history for this file
git-operationDone = Git { $operation } completed
git-runningOperation = Git { $operation }
import-name = Import name
import-namePlaceholder = Untitled import
import-untitled = Untitled Import
import-description = Select a WordPress export (WXR) and its uploads folder, review every item, then run the import.
import-uploadsFolder = Uploads Folder
import-wxrFile = WXR File
import-wxrFilter = WordPress export
import-noFolder = No folder selected
import-noWxr = No WXR file selected
import-analyze = Analyze
import-empty = Select a WordPress export file to begin analysis.
import-posts = Posts
import-pages = Pages
import-media = Media
import-taxonomy = Categories & Tags
import-conflicts = Slug and Filename Conflicts
import-macros = Macros
import-ready = Ready to import: { $count } items
import-execute = Import { $count } Items
import-autoMap = Analyze taxonomy with AI
import-complete = Import complete: { $imported } imported, { $skipped } skipped
import-failed = Import failed: { $error }
import-dateDistribution = Date distribution (posts / media): { $dates }
import-resolution = Resolution
import-resolution-ignore = Ignore
import-resolution-overwrite = Overwrite
import-resolution-import = Import with new slug
import-mapTo = Map to existing
import-category = Category
import-tag = Tag
import-taxonomyExisting = Existing
import-taxonomyMapped = Mapped
import-taxonomyNew = New
import-macroUses = { $count } uses
import-eta = about { $seconds }s remaining
import-status-new = new
import-status-update = update
import-status-conflict = conflict
import-status-duplicate = duplicate
import-status-missing = missing
import-phase-analysis = Analyzing WXR file…
import-phase-starting = Starting…
import-phase-taxonomy = Importing categories and tags…
import-phase-posts = Importing posts…
import-phase-media = Importing media…
import-phase-pages = Importing pages…
import-phase-complete = Import complete
import-error-wxrRequired = Select a WXR file before analyzing.
import-toast-complete = WordPress import completed.
import-toast-mapped = AI mapped { $count } taxonomy terms.
import-deleteTitle = Delete import definition?
import-deleteMessage = Delete “{ $name }” and its saved analysis? Imported project content is not removed.
import-toast-deleted = Import definition deleted.
menu-item-connectServer = Connect to Server…
menu-item-disconnectServer = Disconnect from Server
remoteConnection-title = Connect to RuDS Server
remoteConnection-description = Use your private RuDS SSH identity. The first connection records the server host key.
remoteConnection-target = Server
remoteConnection-targetPlaceholder = user@host or user@host:port
remoteConnection-connect = Connect
remoteConnection-connecting = Connecting…
remoteConnection-projects = Remote projects
remoteConnection-open = Open Project
remoteConnection-cancel = Cancel
remoteConnection-connectionLost = The remote connection is no longer available.
remoteConnection-opened = Remote project opened.
remoteConnection-disconnected = Disconnected from the RuDS server.
remoteConnection-eventReceived = Remote event #{ $sequence }: { $event }
remoteConnection-taskUpdate = Remote task update: { $count } tasks.
remoteConnection-invalidTarget = Use the form user@host or user@host:port.
remoteConnection-failed = Could not connect to the RuDS server: { $reason }
remoteConnection-openFailed = Could not open the remote project: { $reason }
remoteTerminal-serverTitle = RuDS server session
remoteTerminal-localTitle = RuDS terminal session
remoteTerminal-availableProjects = Available projects
remoteTerminal-quit = q to quit
remoteTerminal-serverListening = RuDS SSH server listening on { $address }
remoteTerminal-authorizedKeys = Authorized keys: { $path }
remoteTerminal-headlessFallback = No graphical session is available; starting the terminal UI.
tui-viewPosts = Posts
tui-viewMedia = Media
tui-viewTemplates = Templates
tui-viewScripts = Scripts
tui-viewTags = Tags
tui-viewSettings = Settings
tui-viewGit = Git
tui-help = 1 Posts · 2 Media · 3 Templates · 4 Scripts · 5 Tags · 6 Settings · 7 Git

    Enter opens · n creates · / filters · : commands · p projects · o folder
    Ctrl+S saves · Ctrl+P publishes · Ctrl+E previews · Ctrl+G asks AI
tui-status = { $transport } · { $locale } · q quit
tui-local = local
tui-remote = SSH
tui-unsavedTitle = Unsaved changes
tui-unsavedPrompt = Discard unsaved changes and exit? y/n
tui-noProject = No project — press o to open a folder
tui-noMatchingItems = No matching items
tui-noTags = No tags yet
tui-workingTreeClean = Working tree clean
tui-applyCancel = Enter applies all · Esc cancels
tui-settingUiLanguage = Interface Language
tui-settingRuntime = Scripting Runtime
tui-settingTransferMode = Transfer Mode
tui-settingDatabase = Database
tui-settingAutomaticRebuild = Automatic Rebuild
tui-categoryEditing = Category Editing
tui-categoryEditingGuiOnly = Category add, edit, and removal remain in the desktop application
tui-openItemDeleted = The open item was deleted by another client.
tui-taskRunning = { $label } — running
tui-taskCancelling = { $label } — cancelling…
tui-taskProgress = { $label } — { $percent }%
tui-taskComplete = { $label } — complete
tui-taskFailed = { $label } — { $error }
tui-taskCancelled = { $label } — cancelled
tui-untitled = Untitled
tui-newItemUnavailable = New items are not available in this view.
tui-editorSource = Source
tui-savedAndPublished = Saved and published
tui-saved = Saved
tui-airplaneAiEndpointRequired = Airplane mode: configure a local AI endpoint first.
tui-aiWrongResponseType = AI returned the wrong response type.
tui-aiSuggestions = AI suggestions
    Title: { $title }
    Excerpt: { $excerpt }
tui-aiSuggestionsAdded = AI suggestions added to output
tui-unpublished = Unpublished
tui-editorLanguage = Language: { $language }
tui-commitMessageRequired = Commit message is required.
tui-taskGitCommit = Git commit
tui-committed = Committed
tui-tagNameRequired = Tag name is required.
tui-tagCreated = Tag created
tui-tagRenamed = Tag renamed
tui-tagDeleted = Tag deleted
tui-deleteCancelled = Delete cancelled
tui-titleRequired = Title is required.
tui-confirmYesInput = y
tui-confirmNoInput = n
tui-projectSwitched = Project switched
tui-notDirectory = Not a directory: { $path }
tui-defaultProjectName = Blog
tui-projectPathInvalidUtf8 = The project path is not valid UTF-8.
tui-rebuildSummary = Rebuild: { $posts } posts, { $media } media, { $templates } templates, { $scripts } scripts
tui-apiKeyConfigured = Configured in the system keychain
tui-apiKeyConfigureDesktop = Configure in the desktop application
tui-settingClaudeCode = Claude Code
tui-settingGithubCopilot = GitHub Copilot
tui-valueReadOnly = This value is read-only.
tui-projectNameRequired = Project name must not be empty.
tui-postsPerPageInvalid = Posts per page must be a number from 1 to 500.
tui-imageImportConcurrencyInvalid = Image import concurrency must be a number from 1 to 8.
tui-settingsSaved = Settings saved
tui-deleteTagConfirm = Delete “{ $name }”, used by { $count } post(s)? Type { $yes } and press Enter.
tui-markTagsRequired = Mark at least two tags, including the target.
tui-tagsMerged = Tags merged
tui-tagColourUpdated = Tag colour updated
tui-tagTemplateUpdated = Tag template updated
tui-tagsSynchronized = Synchronized { $count } tags
tui-noActiveProject = No active project
tui-noActiveProjectDataFolder = No active project data folder
tui-detachedHead = detached
tui-airplaneGitPullBlocked = Airplane mode blocks Git pull.
tui-taskGitPull = Git pull
tui-gitPullComplete = Pull complete
    { $output }
tui-airplaneGitPushBlocked = Airplane mode blocks Git push.
tui-taskGitPush = Git push
tui-gitPushComplete = Push complete
    { $output }
tui-commandMetadataDiff = Metadata diff
tui-commandValidateSite = Validate site
tui-commandForceRender = Force render
tui-commandRebuildDatabase = Rebuild database
tui-commandReindexSearch = Reindex search
tui-commandValidateTranslations = Validate translations [GUI]
tui-commandFindDuplicates = Find duplicates [GUI]
tui-commandUploadSite = Upload site
tui-commandBrowserPreviewUrl = Browser preview URL
tui-metadataDiffComplete = Metadata diff complete
tui-siteValidationComplete = Site validation complete
tui-filesRendered = Rendered { $count } files
tui-itemsRebuilt = Rebuilt { $count } items
tui-postsReindexed = Reindexed { $count } posts
tui-commandDesktopOnly = This command’s result editor is available in the desktop UI.
tui-airplaneUploadBlocked = Airplane mode blocks upload.
tui-uploadRequiresPublishingSettings = Upload requires publishing credentials; use the shared Publishing settings first.
tui-unknownCommand = Unknown command: { $command }
tui-metadataChangesApplied = Applied { $count } metadata changes
tui-validationApplied = Applied validation: { $written } written, { $removed } removed
tui-diffTruncated = [diff truncated]
tui-metadataDiffFields = { $entity } { $path }: { $count } field(s)
tui-metadataOrphan = orphan { $path }: { $reason }
tui-metadataError = error: { $error }
tui-noMetadataDifferences = No metadata differences
tui-siteValidationReport = Missing
    { $missing }

    Extra
    { $extra }

    Stale
    { $stale }
tui-imagePreview = Image preview
    { $path }

    { $dimensions }
tui-commandsTitle = Commands
tui-foldersTitle = Folders
tui-promptOpen = open
tui-promptCommit = commit
tui-promptConfirm = confirm
tui-promptValue = >
tui-readOnlyMarker =  [read-only]
tui-settingsHint = Enter edits/toggles · Ctrl+S saves · Esc closes
tui-tagsLoadFailed = Could not load tags
tui-tagCloudHint = Usage-ordered tag cloud
tui-tagManageHint = n create · Enter rename · c colour · t template · d delete · s sync
tui-tagMergeHint = Space marks · select target · m merges
tui-gitDiffBody = Staged
    { $staged }

    Unstaged
    { $unstaged }
tui-imageDimensions = { $format } · { $width } × { $height } px
tui-fileBytes = { $count } bytes
