Replace hand-rolled i18n with Fluent.
This commit is contained in:
385
locales/ui/en.ftl
Normal file
385
locales/ui/en.ftl
Normal file
@@ -0,0 +1,385 @@
|
||||
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-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-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-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-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-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-gitLogPlaceholder = No git history 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-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-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-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-chatPlaceholder = AI assistant will appear here
|
||||
sidebar-importPlaceholder = Import content from external sources
|
||||
sidebar-gitPlaceholder = Source control integration
|
||||
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-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-importMedia = Import Media
|
||||
dialog-imageFilter = Images
|
||||
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
|
||||
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-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-duplicate = Duplicate
|
||||
editor-validate = Validate
|
||||
editor-run = Run
|
||||
editor-checkSyntax = Check Syntax
|
||||
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
|
||||
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-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-airplaneEndpointSection = Airplane Endpoint
|
||||
settings-airplaneEndpointUrl = Airplane Endpoint URL
|
||||
settings-airplaneEndpointModel = Airplane Endpoint Model
|
||||
settings-refreshModels = Refresh Models
|
||||
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-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-contentPlaceholder = Content settings will appear here
|
||||
settings-technologyPlaceholder = Technology settings will appear here
|
||||
settings-mcpPlaceholder = MCP server settings will appear here
|
||||
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-statCards = Snapshot
|
||||
dashboard-timeline = Timeline
|
||||
dashboard-noTimelineData = No timeline data yet
|
||||
dashboard-tagCloud = Tag Cloud
|
||||
dashboard-noTags = No tags yet
|
||||
dashboard-categoryCloud = Category Cloud
|
||||
dashboard-recentPosts = Recent Posts
|
||||
dashboard-noRecentPosts = No recent posts
|
||||
dashboard-and = and
|
||||
dashboard-pin = Pin
|
||||
common-tabNotImplemented = This area will be implemented in a later milestone.
|
||||
editor-noPreviewAvailable = No preview available
|
||||
Reference in New Issue
Block a user