804 lines
35 KiB
Plaintext
804 lines
35 KiB
Plaintext
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
|
||
duplicates-title = Find Duplicate Posts
|
||
duplicates-searching = Searching for duplicates…
|
||
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-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-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-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-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
|
||
sidebar-loadMore = Load More…
|
||
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
|
||
tags-nav-cloud = Tag Cloud
|
||
tags-nav-manage = Manage Tags
|
||
tags-nav-merge = Merge Tags
|
||
tags-nav-discover = Discover Tags
|
||
sidebar-chatYesterday = Yesterday
|
||
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-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-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
|
||
tags-noTags = No tags yet
|
||
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-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
|
||
common-tabNotImplemented = This area will be implemented in a later milestone.
|
||
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-field = { $field }: DB = { $database } · File = { $file }
|
||
metadataDiff-entity = { $entity } · { $path }
|
||
metadataDiff-orphan = { $reason } · { $path }
|
||
engine-fillMissingTranslationsStarted = Filling missing translations…
|
||
engine-translatingContent = Translating content…
|
||
engine-fillMissingTranslationsComplete = Translation batch complete: { $posts } posts, { $media } media, { $failed } failed
|
||
engine-autoTranslationStarted = Creating missing translations…
|
||
engine-autoTranslationComplete = Created { $count } draft translations
|
||
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-generatedPage = Generated { $url } ({ $current }/{ $total })
|
||
engine-rewrotePage = Rewrote { $url } ({ $current }/{ $total })
|
||
engine-renderSiteGroup = 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-generationCancelled = Site generation cancelled
|
||
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-remoteOptional = Remote URL (optional)
|
||
git-initialize = Initialize Git
|
||
git-fetch = Fetch
|
||
git-pull = Pull
|
||
git-push = Push
|
||
git-airplaneBlocked = Network Git actions are unavailable in airplane mode.
|
||
git-remoteUrl = Origin URL
|
||
git-saveRemote = Save
|
||
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-sidebar-analyzed = Analysis saved
|
||
import-sidebar-pending = Not analyzed
|
||
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-settingTheme = Theme
|
||
tui-settingContentWidth = Content Width
|
||
tui-categoryEditing = Category Editing
|
||
tui-categoryEditingGuiOnly = Category add, edit, and removal remain in the desktop application
|