From 4edff36e955f372207d60c154458891e0fa95333 Mon Sep 17 00:00:00 2001 From: Adam Brown Date: Tue, 29 Sep 2026 23:24:46 -0700 Subject: [PATCH] New Crowdin updates (#968) * New translations messages_en.properties (Turkish) [ci skip] * New translations strings.xml (Turkish) [ci skip] * New translations strings_about_app.xml (Turkish) [ci skip] * New translations strings_account_settings.xml (Turkish) [ci skip] * New translations strings_desktop.xml (Turkish) [ci skip] * New translations strings_drafts.xml (Turkish) [ci skip] * New translations strings_encyclopedia.xml (Turkish) [ci skip] * New translations strings_notes.xml (Turkish) [ci skip] * New translations strings_project_home.xml (Turkish) [ci skip] * New translations strings_project_navigation.xml (Turkish) [ci skip] * New translations strings_project_select_navigation.xml (Turkish) [ci skip] * New translations strings_projects_list.xml (Turkish) [ci skip] * New translations strings_scene_editor.xml (Turkish) [ci skip] * New translations strings_scene_list.xml (Turkish) [ci skip] * New translations strings_sync.xml (Turkish) [ci skip] * New translations strings_timeline.xml (Turkish) [ci skip] * New translations strings_android.xml (Turkish) [ci skip] * New translations full_description.txt (Turkish) [ci skip] * New translations short_description.txt (Turkish) [ci skip] * New translations title.txt (Turkish) [ci skip] * New translations strings_globalsearch.xml (Turkish) [ci skip] * New translations strings_ideas.xml (Turkish) [ci skip] * New translations strings_wear_pairing.xml (Turkish) [ci skip] --- .../main/res/values-tr/strings_android.xml | 48 + .../res/values-tr/strings_wear_pairing.xml | 15 + .../composeResources/values-tr/strings.xml | 40 + .../values-tr/strings_about_app.xml | 29 + .../values-tr/strings_account_settings.xml | 142 +++ .../values-tr/strings_desktop.xml | 20 + .../values-tr/strings_drafts.xml | 14 + .../values-tr/strings_encyclopedia.xml | 85 ++ .../values-tr/strings_globalsearch.xml | 19 + .../values-tr/strings_ideas.xml | 83 ++ .../values-tr/strings_notes.xml | 55 + .../values-tr/strings_project_home.xml | 123 ++ .../values-tr/strings_project_navigation.xml | 15 + .../strings_project_select_navigation.xml | 10 + .../values-tr/strings_projects_list.xml | 80 ++ .../values-tr/strings_scene_editor.xml | 83 ++ .../values-tr/strings_scene_list.xml | 64 ++ .../values-tr/strings_sync.xml | 227 ++++ .../values-tr/strings_timeline.xml | 51 + .../android/tr-TR/full_description.txt | 25 + .../android/tr-TR/short_description.txt | 1 + fastlane/metadata/android/tr-TR/title.txt | 1 + .../resources/i18n/Messages_tr.properties | 1000 +++++++++++++++++ 23 files changed, 2230 insertions(+) create mode 100644 android/src/main/res/values-tr/strings_android.xml create mode 100644 android/src/main/res/values-tr/strings_wear_pairing.xml create mode 100644 common/src/commonMain/composeResources/values-tr/strings.xml create mode 100644 common/src/commonMain/composeResources/values-tr/strings_about_app.xml create mode 100644 common/src/commonMain/composeResources/values-tr/strings_account_settings.xml create mode 100644 common/src/commonMain/composeResources/values-tr/strings_desktop.xml create mode 100644 common/src/commonMain/composeResources/values-tr/strings_drafts.xml create mode 100644 common/src/commonMain/composeResources/values-tr/strings_encyclopedia.xml create mode 100644 common/src/commonMain/composeResources/values-tr/strings_globalsearch.xml create mode 100644 common/src/commonMain/composeResources/values-tr/strings_ideas.xml create mode 100644 common/src/commonMain/composeResources/values-tr/strings_notes.xml create mode 100644 common/src/commonMain/composeResources/values-tr/strings_project_home.xml create mode 100644 common/src/commonMain/composeResources/values-tr/strings_project_navigation.xml create mode 100644 common/src/commonMain/composeResources/values-tr/strings_project_select_navigation.xml create mode 100644 common/src/commonMain/composeResources/values-tr/strings_projects_list.xml create mode 100644 common/src/commonMain/composeResources/values-tr/strings_scene_editor.xml create mode 100644 common/src/commonMain/composeResources/values-tr/strings_scene_list.xml create mode 100644 common/src/commonMain/composeResources/values-tr/strings_sync.xml create mode 100644 common/src/commonMain/composeResources/values-tr/strings_timeline.xml create mode 100644 fastlane/metadata/android/tr-TR/full_description.txt create mode 100644 fastlane/metadata/android/tr-TR/short_description.txt create mode 100644 fastlane/metadata/android/tr-TR/title.txt create mode 100644 server/src/main/resources/i18n/Messages_tr.properties diff --git a/android/src/main/res/values-tr/strings_android.xml b/android/src/main/res/values-tr/strings_android.xml new file mode 100644 index 000000000..0716ec255 --- /dev/null +++ b/android/src/main/res/values-tr/strings_android.xml @@ -0,0 +1,48 @@ + + + Hammer + Add Note + Loading… + Configure Widget + More Menu + Navigation Drawer + Add Note to: + Save + Cancel + Projects + Project not found: %1$s + Discard Note? + Discard + Cancel + Add Note + No projects + Note Added + Add Note + Add Story Note + Adding notes is disabled right now + Configure Widget + Configure Note Widget: + Add notes to specified project + If no project is selected, you will be asked to choose a project each time. + Hammer · Library — open a story + Hammer · Story — at-a-glance stats for one project + Story Info Widget: + Configure Story Info Widget + Tap to configure + § %1$s · STORY + by %1$s + WORDS + %1$d%% OF %2$s %3$s + TODAY + THIS WEEK + +%1$d TODAY + NO SESSION TODAY + %1$dD STREAK + SESSIONS · 7D + %1$s W + OPEN + NOTE + § %1$s + W + CONTINUE · + diff --git a/android/src/main/res/values-tr/strings_wear_pairing.xml b/android/src/main/res/values-tr/strings_wear_pairing.xml new file mode 100644 index 000000000..fdda9aaf4 --- /dev/null +++ b/android/src/main/res/values-tr/strings_wear_pairing.xml @@ -0,0 +1,15 @@ + + + PAIR WATCH + Sign in %1$s to Hammer? + The watch will sync as %1$s with a session of its own. You can sign it out from the watch at any time. + Sign in to a sync server on this phone first, then pair the watch again. + Pair + Decline + Close + Watch paired + The watch could not be paired + Watch pairing + Pair your watch + Tap to let your watch sync with your Hammer account + diff --git a/common/src/commonMain/composeResources/values-tr/strings.xml b/common/src/commonMain/composeResources/values-tr/strings.xml new file mode 100644 index 000000000..be44270cb --- /dev/null +++ b/common/src/commonMain/composeResources/values-tr/strings.xml @@ -0,0 +1,40 @@ + + + Hammer + Saved all Scenes + Unsaved Scenes + What should be done with unsaved scenes? + Unsaved Encyclopedia Entry + Discard entry? + Unsaved Note + Discard note? + Unsaved Timeline Event + Discard event? + Cancel + Discard and close + Discard + Cancel + Save + Close + More + Failed to parse response body: %1$s + Yes + No + Expand + Collapse + Decrease text size + Increase text size + Reset text size + Find and replace + Bold + Italic + Strikethrough + Heading + Quote + Bulleted list + Numbered list + Horizontal rule + Undo + Redo + ESC cancel + diff --git a/common/src/commonMain/composeResources/values-tr/strings_about_app.xml b/common/src/commonMain/composeResources/values-tr/strings_about_app.xml new file mode 100644 index 000000000..0e4671812 --- /dev/null +++ b/common/src/commonMain/composeResources/values-tr/strings_about_app.xml @@ -0,0 +1,29 @@ + + + A simple tool for building stories. + Studio + Hammer is made by Dark Rock Studios, alongside a family of other privacy-respecting, open source apps. + Community + Discord + Reddit + Github + Attribution + Libraries + Dark Rock Studios + Changes + GitHub Release + What's New + Release notes + No release notes provided. + Open Release + Application Logs + Log Directory: + Export Logs + No log files found + Open log directory + Logs exported. + Could not export the logs. See the log directory. + Copy Diagnostics + Diagnostics copied to the clipboard. + Could not copy the diagnostics. + diff --git a/common/src/commonMain/composeResources/values-tr/strings_account_settings.xml b/common/src/commonMain/composeResources/values-tr/strings_account_settings.xml new file mode 100644 index 000000000..c4e7f795b --- /dev/null +++ b/common/src/commonMain/composeResources/values-tr/strings_account_settings.xml @@ -0,0 +1,142 @@ + + + ACCOUNT + LOCAL INSTALL + ACCOUNT SETTINGS + Backups + This backup system is meant to protect against data loss and corruption. It is NOT intended as a way to keep older revisions of your stories. Please use the Drafts system for that. + + Manage Backups + UI Theme + LIGHT + DARK + SYSTEM + Initial Project Screen + Home + Scene Editor + Projects Directory + Set the directory Hammer will use to store project data in. + + Select Dir + Example Project + Install an example project to see how different features are used. + + Reinstall + Example project created. + CONNECTED + NOT CONNECTED + URL + HELP ↗ + Configure data syncing + Set Up + Auto-Sync + Backup on sync + Close Sync Dialogs on Success + Max Backups per Project + Must be between 1 and %1$d + Remove Server + Remove Server + Are you sure you want to remove the server? + Set Up Server + Server URL: hammer.ink + Plain HTTP: your email, password and writing travel unencrypted. Only use this on a network you trust. + E-Mail: user@example.com + Password + %1$d-%2$d characters + Show password + Hide password + Log In + Create + Cancel + Merge existing projects with the server? + PROJECT DATA + Merge + Replace + Hammer will match your local projects to projects already on the server by name. Projects that only exist on the server will be downloaded, and projects that only exist on this device will be uploaded. + All of your local projects will be deleted and replaced with whatever is on the server. + Continue + Delete all local projects? + This permanently deletes every project on this device and replaces them with the projects from the server. This cannot be undone. + Delete and Replace + Platform Settings + No platform-specific settings. + Keep screen on + Enable Do Not Disturb when in Focus Mode + Grant DND Permission + Hammer needs permission to enable Do Not Disturb mode when you are in Focus Mode. + + Store projects in public storage + Keep your projects in the shared Documents folder so other apps and your file manager can reach them. + + Projects Location + Hammer needs file access permission to store projects in public storage. + + Grant File Access + Experimental + Spell Checking + If it is causing problems just turn it off. + Enable spell checking + Enable in focus mode + Learn encyclopedia names + Entry names and aliases won’t be marked as misspelled while their project is open + Dictionary + Spell check language + On Android, the spell check language is chosen by your device, not the app. To change it, update your system and keyboard languages in Android Settings. + Set up a server to sync your projects across devices and create secure backups. + + Sync & Backup Preferences + Danger Zone + + Failed to load backups: %1$s + Failed to load backups for project: %1$s + Failed to delete backup: %1$s + Restore Backup + Warning: Restoring this backup will completely replace the current contents of the project. All existing files will be deleted and replaced with the backup data. This action cannot be undone. + + Restore + Cancel + Manage Backups + No backups found + Select a project + No backups for this project + Restore + Delete backup + Show in Folder + Export + Cancel Sync? + Are you sure you want to cancel the sync? + Sync canceled + + An unexpected error occurred. Please try again. + Invalid server address. Enter a URL like "hammer.ink" or an IP address. + + Please enter a valid email address. + Password must be at least 8 characters. + Password must be 64 characters or less. + Password must contain at least one uppercase letter. + + Password must contain at least one lowercase letter. + + Password must contain at least one number. + Password must contain at least one special character. + + Server setup successful! + Server setup failed: %1$s + Server setup failed. Please check your connection and try again. + + + Terms of Service + Accept + Decline + You must accept the Terms of Service to create an account. + + Could not connect to server. Make sure the server is running and the address is correct. + + The server is not responding. Check your internet connection and try again. + + Server not found. Check the server address and your internet connection. + Network error connecting to %1$s. Check your connection and try again. + + Could not make a secure connection to %1$s. Hammer only connects over HTTPS, so the server needs a valid TLS certificate of its own or a reverse proxy that provides one. + Hammer could not open a network connection on this device, so the request never reached the server. Security software, a VPN, or a firewall may be blocking it. + diff --git a/common/src/commonMain/composeResources/values-tr/strings_desktop.xml b/common/src/commonMain/composeResources/values-tr/strings_desktop.xml new file mode 100644 index 000000000..269a79bd7 --- /dev/null +++ b/common/src/commonMain/composeResources/values-tr/strings_desktop.xml @@ -0,0 +1,20 @@ + + + Hammer - Project Selection + Hammer - %1$s + File + Close Project + Exit + Recent Projects + + Welcome to Hammer + Hammer stores your projects in a folder you choose, so your writing stays in + your hands.\n\nOn the next screen, pick an existing hammer projects folder or create a new one. You can change + this later in Settings. + + Choose where to store your Hammer projects + Choose Folder + Quit + Hammer needs a folder to store your projects.\nChoose a folder now, or quit. + + diff --git a/common/src/commonMain/composeResources/values-tr/strings_drafts.xml b/common/src/commonMain/composeResources/values-tr/strings_drafts.xml new file mode 100644 index 000000000..e9a75bb9b --- /dev/null +++ b/common/src/commonMain/composeResources/values-tr/strings_drafts.xml @@ -0,0 +1,14 @@ + + + Merge with Current + Copy parts of the draft into here + Take Merged + Draft: %1$s + Copy desired parts into current, or accept all of this. + Take this whole draft + Draft + Current + %1$s Drafts: + No Drafts Found + Invalid name + diff --git a/common/src/commonMain/composeResources/values-tr/strings_encyclopedia.xml b/common/src/commonMain/composeResources/values-tr/strings_encyclopedia.xml new file mode 100644 index 000000000..48730b1a3 --- /dev/null +++ b/common/src/commonMain/composeResources/values-tr/strings_encyclopedia.xml @@ -0,0 +1,85 @@ + + + Encyclopedia + Search + Clear + Person + Place + Thing + Event + Idea + No Entries Found + Create Entry + Create entry + New + Draft + Name + e.g. Cheshire Cat + Tags + ↵ to add + ritual, magical, recurring… + Description + Cover Art + Drop image · or + Browse files + 1 attached + Replace + Image is too large. Maximum size is %1$d MB. + Could not read the selected image. + Create entry + Cancel + Entry Created + Entry Name was too long. Max %1$d + The entry name contains invalid characters + Tag is too long. Max %1$d + Alias is too long. Max %1$d + Aliases + Learn in spell check + This entry’s name and aliases won’t be marked as misspelled + Add Alias + Add + Nickname or other name + Appears in scenes + Not yet referenced in any scene + Entry name cannot be empty + Discard New Entry? + Error: Failed to load entry! + Click to enter description + Cancel + Save + Entry Saved + Discard Changes? + You will lose any changes you have made. + + Delete Entry? + This cannot be undone! + Entry Deleted + Delete Image? + This cannot be undone! + Name + Close Entry + Entry + Delete Entry + Remove Image + Add Image + Add Tags + Add Tags + Encyclopedia + Edit + Particulars + Type + Tags + Aliases + Scenes + Tags + tag + alias + Fig. I · Entry + Fig. I + + Add + Fol. %1$s · Ent-%2$s + Sc.%1$s + Entry · Catalogue card + Edited + End of entry ✦ + diff --git a/common/src/commonMain/composeResources/values-tr/strings_globalsearch.xml b/common/src/commonMain/composeResources/values-tr/strings_globalsearch.xml new file mode 100644 index 000000000..bc78f6853 --- /dev/null +++ b/common/src/commonMain/composeResources/values-tr/strings_globalsearch.xml @@ -0,0 +1,19 @@ + + + Search project + Search project + Type to search, use #tag to filter… + Clear search + No results + Type at least 2 characters to search + %1$d results + Scene + Note + Encyclopedia + Timeline + All + Scenes + Notes + Encyclopedia + Timeline + diff --git a/common/src/commonMain/composeResources/values-tr/strings_ideas.xml b/common/src/commonMain/composeResources/values-tr/strings_ideas.xml new file mode 100644 index 000000000..9255d1790 --- /dev/null +++ b/common/src/commonMain/composeResources/values-tr/strings_ideas.xml @@ -0,0 +1,83 @@ + + + Story Ideas + IDEA + Story Ideas + %1$d IDEAS · %2$d TAGS + No story ideas yet. Capture your first spark. + No archived ideas. + %1$d W + %1$d TAGS + Search ideas + Search ideas + Clear search + Close search + All + Archived + FILTERED %1$d / %2$d + Clear All + SORT + Newest + Oldest + Title A–Z + ↓ DATE + ↑ DATE + ↓ A–Z + PROMOTED · %1$s + ARCHIVED · %1$s + Capture a new idea + New Idea + Story Idea + Editing + UNSAVED + STORY IDEAS + Close idea + Edit + Title + Optional title + Tags + Enter or comma adds a tag + Add tag… + %1$d / %2$d CH + Create + Save + Cancel + Delete + Archive + Unarchive + Idea captured + Idea saved + Idea deleted + Idea archived + Idea unarchived + Idea cannot be empty + Idea is too long: %1$d characters max + Tags can be at most %1$d characters + Create Project + Create Project from Idea + A new project will be created and this idea will be added to it as its first note. + Project created: %1$s + Failed to create project + Delete Idea + This idea will be permanently deleted. This cannot be undone. + Discard Changes + You have unsaved changes. Discard them? + Syncing story ideas + Story ideas unchanged — skipped + Story ideas sync complete + Failed to fetch story ideas state: %1$s + Removed deleted idea: %1$s + Propagated idea deletion to server: %1$s + Failed to delete idea on server: %1$s + Uploaded idea: %1$s + Failed to upload idea "%1$s": %2$s + Downloaded idea: %1$s + Failed to download idea %1$s: %2$s + Conflict detected for idea: %1$s + Resolved conflict for idea: %1$s + Conflict left unresolved for idea: %1$s + Story Idea Conflict + Title + Tags + Content + diff --git a/common/src/commonMain/composeResources/values-tr/strings_notes.xml b/common/src/commonMain/composeResources/values-tr/strings_notes.xml new file mode 100644 index 000000000..262a4159d --- /dev/null +++ b/common/src/commonMain/composeResources/values-tr/strings_notes.xml @@ -0,0 +1,55 @@ + + + Notes + No Notes Found + Create Note + Cancel + Discard Changes? + You will lose any changes you have made. + Create Note + III · NEW + DRAFT + Create + Cancel + Note Created + Note was too long + Note was empty + Tag was too long (max %1$d) + Tags + ↵ to add + idea, todo, follow-up… + Delete Note? + This action cannot be undone! + Note Deleted + Note + Delete + Note + Editing + Close Note + Notes + Edit + Save + UNSAVED + %1$d W · %2$d CH + ESC TO CANCEL + Search notes + Search notes + Close search + Clear search + %1$d NOTES · %2$d TAGS + %1$d W + ALL + FILTERED · %1$d OF %2$d + CLEAR ALL + SORT + Newest + Oldest + Longest + Shortest + Title A–Z + ↓ DATE + ↑ DATE + ↓ WORDS + ↑ WORDS + ↓ A–Z + diff --git a/common/src/commonMain/composeResources/values-tr/strings_project_home.xml b/common/src/commonMain/composeResources/values-tr/strings_project_home.xml new file mode 100644 index 000000000..3fbd26e29 --- /dev/null +++ b/common/src/commonMain/composeResources/values-tr/strings_project_home.xml @@ -0,0 +1,123 @@ + + + Created: %1$s + Calculating statistics... + Refresh statistics + Statistics may be out of date + Scenes + Total Words + Encyclopedia Entries + Words in Chapters + Chapter + %1$s: %2$s words + Avg Words / Scene + Notes + Timeline Events + Longest Scene + %1$s words + No scenes yet + Last Edited + Median + ≈ %1$d min reading + %1$d pages + Daily goal + Weekly goal + This week + no change vs last week + no data last week + Today + Daily avg + Streak + %1$d days + Longest: %1$d + Days written + Best day + %1$s · %2$s + Characters by Appearances + %1$d connections + Words by Device + Activity · %1$d weeks + %1$s · %2$s words + %1$s · no writing + Avg weekday + Avg weekend + σ %1$d · min %2$d · max %3$d + entries + %1$s · %2$s entries + Themes + %1$d tags · %2$d uses + %1$d/4 + Most connective + Appears in all four types · %1$d uses + Appears in %1$d of 4 types · %2$d uses + All 4 types + %1$d of 4 types + Distribution + Showing %1$d of %2$d + Rank · Tag · Breadth · Uses + Scenes + Notes + Encyclopedia + Events + Export Story + Sync Story + Backup + Backup Created: %1$s + Backup Failed + Story Exported + Export failed + Export Story + EXPORT + × CLOSE + Treat top-level scenes as chapters + Format + Markdown (.md) + EPub (.epub) + PDF (.pdf) + Word (.docx) + RTF (.rtf) + Cancel + Export + Limit to specific scenes + Only the selected scenes will be included in the export + Scenes + %1$d of %2$d selected + Select all + Clear all + Learn about export formats + Choosing an Export Format + Each format suits a different purpose. Pick the one that matches how you plan to use the exported story. + Plain text with light formatting; ideal for version control, re-importing, or other writing tools. + The standard e-book format; best for beta readers reading on e-readers and phones with reflowable text. + A fixed page layout that looks the same everywhere; best for printing or sharing a final, read-only copy. + Opens in Word and Google Docs; best for editors and beta readers who leave comments or track changes. + A broadly compatible rich-text format; a safe choice when you are unsure which word processor the recipient uses. + Got it + Contents + by %1$s + Story Imported + Import failed + Import Story + Chapter detection + Auto + H1 (#) + H2 (##) + Split into scenes + Formatting + Pattern + Single scene + Chapter pattern (regex) + Create chapter groups + Preview + Nothing to import + Reading your manuscript + Will create %1$d scene(s) + Large scene + One scene holds %1$s words, so chapter detection probably missed your chapter titles. Try another detection setting. + %1$d scenes hold %2$s words or more, so chapter detection probably missed some chapter titles. Try another detection setting. + %1$s W + Cancel + Import + Settings + Project menu + diff --git a/common/src/commonMain/composeResources/values-tr/strings_project_navigation.xml b/common/src/commonMain/composeResources/values-tr/strings_project_navigation.xml new file mode 100644 index 000000000..ce837ac4a --- /dev/null +++ b/common/src/commonMain/composeResources/values-tr/strings_project_navigation.xml @@ -0,0 +1,15 @@ + + + Home + Story + Notes + Encyclopedia + Timeline + HOME + STRY + NOTE + ENCY + TIME + Expand navigation + Collapse navigation + diff --git a/common/src/commonMain/composeResources/values-tr/strings_project_select_navigation.xml b/common/src/commonMain/composeResources/values-tr/strings_project_select_navigation.xml new file mode 100644 index 000000000..82972b264 --- /dev/null +++ b/common/src/commonMain/composeResources/values-tr/strings_project_select_navigation.xml @@ -0,0 +1,10 @@ + + + Projects + Settings + About + PROJ + SETT + INFO + Libraries + diff --git a/common/src/commonMain/composeResources/values-tr/strings_projects_list.xml b/common/src/commonMain/composeResources/values-tr/strings_projects_list.xml new file mode 100644 index 000000000..a26dc0f55 --- /dev/null +++ b/common/src/commonMain/composeResources/values-tr/strings_projects_list.xml @@ -0,0 +1,80 @@ + + + No Projects Found + Delete + Rename + Sync Projects + Create Project + Projects synced + Failed to sync projects + More + %1$s words + by %1$s + Created %1$s + Project %1$s + Search projects + Close search + filter by name or #tag + Clear filter + No projects match your filter + Hammer · Library + Title + Last Open + — Empty Index — + Library + Sync · On + Local + 0 entries + 1 entry + %1$d entries + SORT + Recently Opened + Least Recent + Newest + Oldest + Longest + Shortest + ↓ OPENED + ↑ OPENED + ↓ CREATED + ↑ CREATED + ↓ WORDS + ↑ WORDS + Account Sync + Sync Log + Project + All + Pending + Error + Conflict + Sync Complete + Canceled + Delete Project + This action cannot be undone. All project data will be permanently deleted. + Type "%1$s" to confirm + Delete + Cancel + Rename Project + New Project Name + Rename Project + Cancel + Create Project + New + Project + New Project Name + Create Project + Cancel + Import + Learn about importing a story + Create from an Existing Story + Already have a manuscript? Import it to create a new project. Hammer names the project after your file and automatically splits the text into scenes. + Supported Formats + Markdown (.md) + Rich Text (.rtf) + Got it + Project already exists + Missing Project Name + Project name too long + The project name contains invalid characters + The project name was left blank + diff --git a/common/src/commonMain/composeResources/values-tr/strings_scene_editor.xml b/common/src/commonMain/composeResources/values-tr/strings_scene_editor.xml new file mode 100644 index 000000000..e277d741c --- /dev/null +++ b/common/src/commonMain/composeResources/values-tr/strings_scene_editor.xml @@ -0,0 +1,83 @@ + + + Start New Draft: + Draft name + Save + Cancel + Draft Saved + Saving current draft as: + Current draft name is invalid! + Rename Scene + Scene Name + Rename + Cancel + Unsaved + Save + Scene Info + Saved + Scene + New Draft + View Drafts + Rename + Discard + Delete + Archive + Save + Close + Add to dictionary + Archive Scene + Are you sure you want to archive '%1$s'? The scene will be hidden from the scene list but can be restored later. + Archive + Cancel + Discard Changes + Are you sure you want to discard all unsaved changes to '%1$s'? This will reload the last saved version from disk. + Discard + Cancel + Archived Scenes + No archived scenes + Restore + "%1$s" has been restored + "%1$s" has been archived + View Archived + Enter Focus Mode + Metadata + Hide Info + Words: + Advanced + Entity ID: + Filename: + Path: + Created + Edited + — + Outline + A short description of what happens in the scene. + Notes + Notes to yourself. + Draft Name + References + Dismissed + No references yet + Dismiss + Restore + (dismissed) + Characters + Locations + Other + + Add reference + Add reference + Done + Search characters… + Search locations… + Search entries… + No matching entries. + Close dialog + Tags + No tags yet + + Add tag + Add tags + tag1 tag2 … + Done + Select a Scene to edit + New Draft + diff --git a/common/src/commonMain/composeResources/values-tr/strings_scene_list.xml b/common/src/commonMain/composeResources/values-tr/strings_scene_list.xml new file mode 100644 index 000000000..b0b9d6742 --- /dev/null +++ b/common/src/commonMain/composeResources/values-tr/strings_scene_list.xml @@ -0,0 +1,64 @@ + + + Scenes + Create Group + Group Name + Create Scene + Scene Name + Group Collapsed + Group Expanded + Delete Scene + Are you sure you want to delete this scene: "%1$s" + Delete + Dismiss + Cannot Delete Group + You cannot delete a group while it still has children: "%1$s" + + Create + Cancel + Story Outline + Outline Overview + <no outline> + Dismiss + Manuscript + An outline of + Jump to + Chapters + Scenes + Chapter %1$s · %2$d Scenes + %1$d SCN + End of outline + %1$d/%2$d + Untitled chapter + Options + Delete + Rename + Archive + Archive Scene + Are you sure you want to archive this scene: "%1$s" + Archive + Cancel + Rename Scene + Scene Name + Rename + Create Scene + Create Group + Move To + Destination + Search groups + Top Level + No matching groups + Position (1–%1$d) + Enter a position between 1 and %1$d + Move + Cancel + %1$d · %2$d GR + %1$d SCN + New Scene + New Group + Add + Move + Scene + Group + Root + diff --git a/common/src/commonMain/composeResources/values-tr/strings_sync.xml b/common/src/commonMain/composeResources/values-tr/strings_sync.xml new file mode 100644 index 000000000..a41f985cd --- /dev/null +++ b/common/src/commonMain/composeResources/values-tr/strings_sync.xml @@ -0,0 +1,227 @@ + + + Project Synchronization + Scene Conflict + Scene Draft Conflict + Note Conflict + Timeline Event Conflict + No Date + Local + Remote + %1$s Conflict + Scene + Note + Timeline Event + Encyclopedia Entry + Scene Draft + Project Settings + You can take either the local or remote copy as is, or you can manually merge the two by copying parts of the remote into your local copy, and then taking that. + + Encyclopedia Entry Conflict + Author + Custom theme + Use a custom theme for this project + Primary + Secondary + Word-count goal + Track a writing goal + Words + Per + Day + Week + Effective + W / day + Tags + Tags + ↵ to add + fantasy, draft, nanowrimo… + Language + Not set + Choose a language + Close + Search languages + Clear (not set) + No languages match + Edit + Cancel + OK + Home + Project Settings + Autosaved + § 0 · Project + by %1$s + by (no author set) + Spell checking + Spell check is off: the project language (%1$s) doesn’t match your dictionary (%2$s). Change either to re-enable it. + Learn encyclopedia names in this project + Turn off to keep this project’s entry names out of the spell check dictionary + Project dictionary + ↵ to add + Words the spell checker should accept in this project + Project Settings · %1$s + §§ %1$d + Project Settings Conflict + Pick a side for each field. Local is what you have on this device; Server is what was synced from another device. + Author Name + Project Theme + Word Count Goal + Tags + Language + Learn Encyclopedia Names + (not set) + On + Off + day + week + Project dictionary words from both sides are kept. + Resolve + Name: + Type: + Image: + Content: + Tags: + Has Image + Name + Scene Content + Outline + Notes + Content + Metadata + References + Confirmed + Dismissed + None + Aliases: + Name + Scene Content + Note Content + Date + Event Content + Sync + Start Sync + Synchronizing... + Sync Failed + Sync Complete + Project Sync Complete + Project Sync Failed + Begin Sync + Server data loaded + Account Sync complete + Failed to sync projects: %1$s + Deleting server project: + ID(%1$s) + + Failed to delete project on server: %1$s + Deleting local project: %1$s + Renaming server project: + ID(%1$s) + + Failed to rename project on + server: %1$s + + Rename project from + server: %1$s + + Failed to rename + project from server: %1$s + + Created project on server: %1$s + Failed to create project on server: %1$s + Project created on server, but failed to save its ID locally: %1$s + Created local project: %1$s + Setting local project Server ID: + %1$s + + Failed to create local project from server: %1$s + Skipped server project %1$s: a local project of that name already syncs with a different server project + Syncing Account... + Syncing Projects... + Projects Sync Complete + Syncing Project: %1$s + No changes, skipped + Sync failed: %1$s + There is a conflict in project: %1$s, open that project and sync in order to resolve it + + Client Entity data calculated + The server no longer has this project. It will be recreated the next time you sync. + Server data received + Client data loaded + Local Backup made: %1$s + Entity %1$d downloaded + Failed to download entity %1$d + Entity %1$d not found on server + Entity %1$d not modified + Rejected download for entity %1$d: server returned a mismatched id or type + Failed to upload entity %1$d: type not owned by anything, probably deleted + Failed to delete ID %1$d on server: %2$s + Deleted ID %1$d on server + Encountered conflict for new Entity, this should not be possible! ID: %1$d TYPE: %2$s + + Sync failed: %1$s + Server cached hash is stale for entity %1$d. Healing by force uploading. + Successfully healed server cache for entity %1$d by force uploading + Failed to heal server cache for entity %1$d - force upload failed + Entities transferred + Sync finalized + Sync data saved + Sync data not saved due to errors + Failed to end sync + Rejected draft %1$d from server: unsafe draft name + Skipped image for encyclopedia entry %1$d from server: unsafe file extension + Deleted Encyclopedia ID %1$d from client + Deleted note ID %1$d from client + Deleted draft %1$d from client + Deleted scene %1$d from client + Failed to delete scene %1$d from client + Failed find scene to delete: %1$d + Deleted event %1$d from client + Failed to delete event %1$d from client + Failed find event to delete: %1$d + Creating new scene %1$d + Downloaded scene content for: %1$d + Moved scene %1$d to new parent %2$d + Failed to save downloaded scene content for: %1$d + Creating new group %1$d + Downloaded scene content for: %1$d + Moved scene %1$d to new parent %2$d + Unauthorized + Unhandled server error + UPDATE REQUIRED + Your app is out of date + The sync server is out of date + This version of Hammer can no longer sync with the server. Update to the latest version to keep syncing your work. + The sync server is running an older protocol than this app. The server needs to be updated before syncing will work again. + Latest version: %s + You have: %s + Get the Update + Dismiss + Reauthorize + Your token has expired, please reauthorize with your sync server. + Token Expired + Address + E-Mail + About Sync Servers + Sync Servers for Hammer allow you to work on your projects from multiple devices. They will sync your work across whatever devices you configure with the same server. + + Official Server + You can run your own Sync server, but if that is too technical, or you just want to support the project, we run an official server at hammer.ink. + + If you subscribe to our Patreon, you get access to the official server. This is the best way to support this project. + + Patreon + Hammer.Ink + Registration + Servers have closed registration, meaning the server admin needs to add you to the server's allowed users list before you can create an account. + + SetUp + Enter the server's URL, such as "hammer.ink" for the official server. + + Enter your email and password, then hit "Create" to create your account. + + In the future, and on other devices, you will simply hit "Log In". + + Important Note + Syncing in Hammer is different from online-first applications like Google Docs. The syncing is not real-time. It usually happens when you open or close the app. Make sure you're synced with the latest versions of your projects before going offline. Hammer does automatic syncing, but it's always good to check if you're going to be offline for a while. + + Got It + diff --git a/common/src/commonMain/composeResources/values-tr/strings_timeline.xml b/common/src/commonMain/composeResources/values-tr/strings_timeline.xml new file mode 100644 index 000000000..c6900839d --- /dev/null +++ b/common/src/commonMain/composeResources/values-tr/strings_timeline.xml @@ -0,0 +1,51 @@ + + + No Events + Create Event + Event Created + Tag was too long (max %1$d) + Tags + ↵ to add + arc, foreshadow, conflict… + Event + Editing + Timeline + Save + Cancel + Edit + Close Entry + Date + optional + e.g. Spring of Y3 + UNDATED + UNSAVED + %1$d W · %2$d CH + ESC TO CANCEL + %1$d W + %1$d TAGS + Saved + Failed to save + Create Event + III · NEW + DRAFT + %1$d W · %2$d CH + Cancel + Create + optional + e.g. Spring of Y3 + Discard Changes? + You will lose any changes you have made. + Event + Delete + Delete Timeline Event? + This cannot be undone! + Timeline + %1$d ENTRIES · %2$d TAGS + Search timeline + Search timeline + Close search + Clear search + ALL + FILTERED · %1$d OF %2$d + CLEAR ALL + diff --git a/fastlane/metadata/android/tr-TR/full_description.txt b/fastlane/metadata/android/tr-TR/full_description.txt new file mode 100644 index 000000000..6644fb336 --- /dev/null +++ b/fastlane/metadata/android/tr-TR/full_description.txt @@ -0,0 +1,25 @@ +Please join our Discord to report issues! https://discord.gg/GTmgjZcupk + +Multi-platform + +This app is where ever you are. Your phone, tablet, desktop, laptop, this program can be installed and run, not simply a website-in-a-box, but instead using native client side technologies to provide the best experience possible. + +Offline first + +I was frustrated with most of the story writing software I was finding as they were using web technologies (aka: Web Page in a box) which always seems to run into problems while being used offline for long periods of time. Hammer is designed from the ground up to be entirely local, no internet connection required, ever. + +Transparent Data + +Your data is yours. It's not stored in the cloud, or some opaque database. It is stored in simple, human readable files, just using files and folders to define the project structure. You can open your OSes file browser and take a look for your self. If this program went away today you would be able to easily interact with your data. + +Intelligent Syncing between devices + +Your data can be synchronized between devices allowing you to work on your story from anywhere, and have no fear of a change on one device, overwriting a change on another device. + +Optional and Self hosted Syncing + +Syncing is entirely optional, you can install the client and use it on one device, or you can install the server and sync your data between devices. + +Wear OS companion + +Capture notes and story ideas from your wrist with the Wear OS app, then pick them up on your other devices. Dictate or type a quick note and file it under a project. Add the Capture tile to start a note or story idea in a single tap, or put the Hammer complication on your watch face to open a new note. The watch app syncs through your Hammer sync server. \ No newline at end of file diff --git a/fastlane/metadata/android/tr-TR/short_description.txt b/fastlane/metadata/android/tr-TR/short_description.txt new file mode 100644 index 000000000..39875ab6f --- /dev/null +++ b/fastlane/metadata/android/tr-TR/short_description.txt @@ -0,0 +1 @@ +A simple tool for building stories. \ No newline at end of file diff --git a/fastlane/metadata/android/tr-TR/title.txt b/fastlane/metadata/android/tr-TR/title.txt new file mode 100644 index 000000000..4690fe86c --- /dev/null +++ b/fastlane/metadata/android/tr-TR/title.txt @@ -0,0 +1 @@ +Hammer \ No newline at end of file diff --git a/server/src/main/resources/i18n/Messages_tr.properties b/server/src/main/resources/i18n/Messages_tr.properties new file mode 100644 index 000000000..750bd31f5 --- /dev/null +++ b/server/src/main/resources/i18n/Messages_tr.properties @@ -0,0 +1,1000 @@ +language=English +page_title=Hammer +home_servermessage=Server notice +home_servermessage_allowedusers=Accounts on this server are by invitation. Contact {0} to be allowed, then create your account on the sign-up page. +home_meta_description=Hammer is an open source tool for writing stories, and the worlds in which they exist. +home_meta_tagline=Own your book, build your world +# Masthead +home_masthead_title_first=Own your book, +home_masthead_title_second=build your world +home_masthead_subtitle=Free and open source. Works offline, on every device you own, and every chapter stays a plain text file on your own disk. +home_hero_download=Download free +home_hero_platforms=Windows, macOS, Linux, Android and iOS. Free and open source. +# Writing features +home_features_eyebrow=Writing in Hammer +home_features_title=Built for the way a novel actually gets written +home_features_lede=Scenes you can move, an encyclopedia that knows who is in them, a timeline, notes, and a record of what you actually wrote. +home_feature_editor_title=An editor that stays out of the way +home_feature_editor_body1=Your scene, the outline you wrote for it, and your notes about it, all on one screen. Word count and metadata sit to the side when you want them and disappear when you don't. +home_feature_editor_body2=Break the book into scenes as small as you like, then drag them into a different order when two characters need to meet earlier. +home_feature_editor_alt=The Hammer editor showing a scene, with the scene list on the left and outline, notes and references on the right +home_feature_encyclopedia_title=An encyclopedia that looks like your world +home_feature_encyclopedia_body1=Characters, places, events and anything else you invent, with pictures. Tag them, search them, keep them a keystroke from the page you are on. +home_feature_encyclopedia_body2=Hammer reads your scenes and works out who is in them. Open a character and it lists every scene they appear in; open a scene and it shows the characters and locations it found, which you confirm or dismiss. Nobody has to remember to tag anything. +home_feature_encyclopedia_body3=Which means you can answer the question every draft eventually raises\: where did she go? Three chapters without your antagonist show up as an absence you can see. +home_feature_encyclopedia_alt=The Hammer encyclopedia showing illustrated entries for characters, places and events +home_feature_timeline_title=See the plot laid out in order +home_feature_timeline_body1=Put the events of your story, or the history of your world, on a dated and tagged timeline, so you can see that the potion comes before the trial, and that three chapters pass without your antagonist. +home_feature_timeline_alt=The Hammer timeline listing dated, tagged story events +home_feature_notes_title=Somewhere to put the thought you just had +home_feature_notes_body1=The observation about your own book that arrives at the wrong moment. Tag it, find it later, keep it next to the manuscript instead of in a file on the desktop called notes2-final.txt. +home_feature_notes_alt=The Hammer notes view with tagged notes about a story +home_feature_activity_title=It counts what you wrote, not what survived +home_feature_activity_body1=Hammer watches each save and counts the words you added, ignoring deletions and rearrangements. Spend a day cutting a chapter to pieces and it still records the writing you did, because you did do it. +home_feature_activity_body2=Daily and weekly goals, today's count, this week against last, your current and longest streak, your best day, and a twelve-week heat map. It also knows your weekday average against your weekend one, which turns out to be more useful than it sounds. +home_feature_activity_body3=Sync, and sessions merge across devices\: the four hundred words you got at a bus stop land in the same total as the ones at your desk. Hammer can even tell you which device you write best on. +home_feature_activity_body4=And the log is a plain text file in your project folder, like everything else. Your writing history is yours to read, or to delete. +home_feature_activity_alt=The Hammer project home showing total words, a weekly goal bar, this week's total against last week, and a writing streak +# After the draft +home_afterdraft_eyebrow=After the draft +home_afterdraft_title=When the book has to leave your desk +home_afterdraft_lede=Writing is only half of it. At some point a draft has to reach an editor, a beta reader, an agent, or a stranger. That is usually where a writing app stops and the copy-paste starts. +home_feature_review_title=Send it to your editor. They don't need an account. +home_feature_review_body1=Choose the scenes, type an email address, and Hammer sends a link. Your editor opens it in a browser and marks your prose up with suggested edits. No download, no signup, no copy of your project handed over. +home_feature_review_body2=You see when they opened it, how many of the scenes they have read, and how many suggestions are waiting for you. Label each request for your own benefit\: my agent, beta read 2. Links expire, and you can revoke one at any point. +home_feature_review_alt=A review request open in a browser, with the editor's suggested edits marked on the manuscript and accept or reject controls beside each one +home_feature_private_title=Show it to three people +home_feature_private_body1=Private links are password protected, can carry an expiry date, and can be revoked whenever you like. Make a separate one per reader if you want to know who is still reading. +home_feature_private_alt=The create private access dialog asking for a password and an optional expiry date, over a story's sharing panel +home_feature_publish_title=Or publish it to everyone +home_feature_publish_body1=A public story page under your pen name, an author page collecting your published work, and a place in the community feed. +home_feature_publish_body2=You can see how many people actually read it, all time and day by day. +home_feature_publish_body3=And it tells you what publishing publicly can cost you before you do it, not after. +home_feature_publish_alt=A published story showing its public sharing link and a readers panel with a total count and a daily chart +home_feature_export_title=Five formats, and it tells you which to pick +home_feature_export_markdown_name=Markdown +home_feature_export_markdown_body=For version control, or moving into another tool. +home_feature_export_epub_name=EPUB +home_feature_export_epub_body=For beta readers on e-readers and phones, where the text has to reflow. +home_feature_export_pdf_name=PDF +home_feature_export_pdf_body=For when the layout must not move. +home_feature_export_word_name=Word +home_feature_export_word_body=For anyone who will leave comments or track changes. +home_feature_export_rtf_name=RTF +home_feature_export_rtf_body=For when you don't know what they use. +home_feature_export_body1=Hammer explains each one at the moment you are choosing, instead of leaving you to guess from a row of file extensions. +home_feature_export_alt=The export dialog with a format picker and an option to treat top-level scenes as chapters +# The three rules +home_rules_eyebrow=The three rules +home_rules_title=Now the part that matters in ten years +home_rules_lede=Everything you just saw is built on three rules. Every one of those features writes to plain files in a folder you own, which is the whole reason to pick this over the alternatives. +home_rule_offline_name=Offline first +home_rule_offline_title=It works with no internet, forever +home_rule_offline_body=Hammer has never required a connection and never will. Write in a cabin, on a plane, in a van parked somewhere with no signal. Sync between your devices if you want it, through a server like this one or one you run yourself, but nothing waits on a server and nothing breaks because a service is down. +home_rule_files_name=Transparent data +home_rule_files_title=Open the folder and it makes sense +home_rule_files_body=Not a database, not a proprietary bundle. Open the project folder with Hammer shut and the shape of your book is already there\: a file per scene, named the way you named it. Search it, back it up, mail it to yourself. Reading your own work should never require this program, or a computer science degree. +home_rule_safety_name=Never lose data +home_rule_safety_title=It is paranoid about losing your work +home_rule_safety_body=Losing your work is the one bug this program is not allowed to have. Sync starts by backing up the whole project. A draft saved before a big rewrite is always there to go back to. Unsaved edits are written to disk as you type, so a crash costs you a sentence at worst. When two devices disagree, Hammer asks which one is right instead of quietly picking. +# Origin story +home_origin_eyebrow=Why it works this way +home_origin_title=I wrote these rules after losing a manuscript +home_origin_body1=I once lived in a van, traveling and writing in often very remote places. I was not working at the time, and was using free writing software that claimed to support offline work. As I came to learn, that claim didn't hold up. After about a week offline, it stopped working. When I got back to civilization, it started working again, but my manuscript was gone. +home_origin_body2=I browsed the app's community forum and saw many other authors asking the same question I was\: Where did my manuscript go? +home_origin_body3=The seeds of the idea for Hammer were born out of this experience. Why was everything a webpage these days? I just wanted to use my own computer that was right in my hands to write and store my stories. +home_origin_caption=Where the three rules came from. September 2020 +home_origin_alt=A camper van parked on red dirt at sunset, its back doors open to show a bed and storage bins, a black dog and climbing gear on the ground beside it +home_origin_link=Read the whole story +# Price +home_price_eyebrow=What it costs +home_price_amount=Nothing +home_price_body=Hammer is free and open source under the MIT license. No trial, no card, no account needed to write, and no paid tier of the app. If this server vanished tomorrow, the copy on your machine would carry on working exactly as it does today. +# FAQ +home_faq_title=Reasonable questions +home_faq_account_q=Do I need an account? +home_faq_account_a=No. Download it and write. An account only exists so you can sync between devices, and it is entirely optional. +home_faq_where_q=Where does my writing live? +home_faq_where_a=In a folder you choose on your own device, as plain text files, one per scene, alongside small readable files for your notes and encyclopedia entries. +home_faq_export_q=Can I get my manuscript out? +home_faq_export_a=It was never in. Your scenes are already ordinary files you can open, copy, or hand to anyone, whether or not Hammer is installed. When you want one file instead of a folder, export the whole book as Markdown, EPUB, PDF, Word or RTF. +home_faq_editor_q=Does my editor need to buy anything? +home_faq_editor_a=No, and they don't need an account either. You send a link, they mark up the scenes you chose in their browser, and you get the suggestions back. The link expires and you can revoke it. +home_faq_goesaway_q=What happens if Hammer goes away? +home_faq_goesaway_a=Nothing happens to your book. It is already in a format every text editor on earth can open. The source is MIT licensed, so anyone who wants to keep the app alive can. +home_faq_privacy_q=Is my writing sent anywhere? +home_faq_privacy_a=Only if you switch sync on, and then only to the sync server you chose, whether that is this one or one you run yourself. +home_faq_platforms_q=Which platforms? +home_faq_platforms_a=Windows, macOS, Linux, Android and iOS. The same app and the same files on each, not a website in a box. +# Under the hood +home_hood_eyebrow=Under the hood +home_hood_title=For the technically minded +home_hood_native_header=Native, not a web page +home_hood_native_body=Built in Kotlin with Compose Multiplatform. One codebase, genuinely native clients on five platforms, not a website wrapped in an app shell. +home_hood_screens_header=Fits the screen you have +home_hood_screens_body=Phone, tablet, laptop or a large desktop display\: the layout expands to use the space you have. Light and dark themes throughout. +home_hood_license_header=MIT licensed, self-hostable +home_hood_license_body=Read the source, build it yourself, run your own sync server. No telemetry in the app, and nothing phoning home for a license check. +home_download_header=Get your Hammer +home_download_lede=Free, and free to keep. +home_download_windows=Windows +home_download_linux=Linux +home_download_macos=macOS +home_download_android=Android +home_download_link=Download +home_download_format_windows=Windows download format +home_download_format_macos=macOS download format +home_download_format_linux=Linux download format +home_download_format_android=Android download format +home_download_link_windows=Download Hammer for Windows +home_download_link_macos=Download Hammer for macOS +home_download_link_linux=Download Hammer for Linux +home_download_link_android=Download Hammer for Android +home_download_link_ios=Download Hammer for iOS +home_about_callout_title=About This Server +home_about_callout_text=Learn more about this Hammer server +home_header_title=Hammer +home_header_adminbutton=Admin +home_header_loginbutton=Login +home_header_dashboardbutton=Dashboard +# Header Navigation +header_nav_toggle=Toggle navigation menu +header_nav_about=About +header_nav_community=Community +header_nav_dashboard=Dashboard +header_nav_login=Login +home_footer_github=GitHub +home_footer_discord=Discord +home_footer_reddit=Reddit +home_footer_youtube=YouTube +home_footer_mastodon=Mastodon +home_footer_bluesky=Bluesky +footer_about=About +footer_terms=Terms +terms_page_title=Terms of Service +footer_privacy=Privacy +footer_studio=Darkrock Studios +privacy_page_title=Privacy Policy +admin_signin_header=Log in +admin_signin_email=E-mail\: +admin_signin_password=Password\: +admin_signin_loginbutton=Log In +admin_signin_loginfailure=Could not log in +admin_header=Admin +unauthorized=Unauthorized Access +api_success=Success +api_error_unknown=Unknown failure +api_allowedusers_rejected=Your email address is not allowed on this server. Contact the server admin to request access. +api_admin_whitelist_error_emailmissing=E-mail address missing +api_admin_whitelist_error_expiresinvalid=Invalid expiry; use an ISO-8601 instant in the future +api_admin_addtowhitelist_invalidemail=Invalid e-mail address +api_admin_addtowhitelist_invalidexpiry=Expiry must be a valid instant in the future +api_accounts_create_error_accountexists=Account already exists +api_accounts_create_error_invalidemail=Invalid e-mail address +api_accounts_create_error_password_tooshort=Password too short +api_accounts_create_error_password_toolong=Password too long +api_accounts_create_error_password_nouppercase=Password must contain at least one uppercase letter +api_accounts_create_error_password_nolowercase=Password must contain at least one lowercase letter +api_accounts_create_error_password_nonumber=Password must contain at least one number +api_accounts_create_error_password_nospecial=Password must contain at least one special character +api_accounts_create_error_password_generic=Invalid password +api_accounts_login_error_notfound=Account not found +api_accounts_login_error_badpassword=Incorrect Password +api_accounts_login_error_invalid=Invalid email or password +api_accounts_login_error_notoken=No valid token found +api_accounts_login_error_pending_deletion=This account is pending deletion. Contact the server operator if you wish to restore it. +api_accounts_tokenrefresh_error=Failed to refresh auth token +api_accounts_pair_error=Failed to pair device +api_accounts_pair_error_invalidinstall=The device to pair did not send a valid install ID +api_accounts_pair_error_sameinstall=A device cannot be paired with itself +api_accounts_testauth_error=Authenticated as ${0,number} +api_project_sync_begin_error_session=User {0} already has a synchronization session +api_project_sync_error_projectnamemissing=Project name missing +api_project_sync_error_projectidmissing=Project ID missing +api_project_sync_error_syncidmissing=Missing sync ID +api_project_sync_end_noid=User {0} does not have a synchronization session +api_project_sync_end_invalidid=Invalid sync ID +api_project_getproject_error_notfound=Project does not exist +api_project_saveentity_error_typeconflict=Entity type mismatch. Server has an entity with this ID but different type. +api_project_error_entityidmissing=Entity ID missing +api_project_error_entitytypemissing=Entity Type missing +api_project_rename_error_invalidname=Invalid project name +api_project_rename_error_nametaken=This account already has a project with that name +api_project_writingactivity_error_deviceidmissing=Device ID missing +# Login Page +login_title=Author Login +login_subtitle=Enter your credentials to access the Hammer web portal +login_email_label=Email +login_email_placeholder=admin@example.com +login_password_label=Password +login_password_placeholder=•••••••• +login_signin_button=Sign In +login_signup_prompt=Don't have an account? +login_signup_link=Create one here. +login_info_allowedusers_notice=New accounts must be allowed by the server admin before they can sign up. +signup_title=Create Your Account +signup_subtitle=Sign up to sync your projects and manage your stories on this server +signup_email_label=Email +signup_email_placeholder=you@example.com +signup_password_label=Password +signup_confirm_password_label=Confirm Password +signup_button=Create Account +signup_error_fields_required=Please fill in all fields +signup_error_password_mismatch=Passwords do not match +signup_error_tos_required=You must accept the Terms of Service to create an account +signup_error_generic=Account creation could not be completed. Please try again. +signup_tos_agree_prefix=I agree to the +signup_tos_link_label=Terms of Service +signup_login_prompt=Already have an account? +signup_login_link=Sign in. +login_info_allowedusers_contact=To request access, please contact\: +# User Dashboard +dashboard_title=My Dashboard +dashboard_subtitle=Welcome back, +dashboard_manage_server=Manage Server +dashboard_projects_title=Your Stories +dashboard_projects_description=Stories synced to this server from your Hammer Editor clients. +dashboard_last_sync=Last synced +dashboard_no_projects=You haven't synced any stories to this server yet. Open Hammer Editor on your device and configure server synchronization to see your projects here. +dashboard_account_title=Account +dashboard_account_email=Email +dashboard_account_created=Created +dashboard_author_page_link=View Author Page +# Admin Dashboard +admin_dashboard_title=Admin Dashboard +admin_dashboard_subtitle=Manage server settings and user access +admin_logout_button=Log Out +admin_servermessage_title=Server Message +admin_servermessage_description=This message is shown to users on the home page. +admin_serversettings_title=Server Settings +admin_serversettings_description=Configure general server settings. +admin_serversettings_contact_label=Contact Email +admin_serversettings_contact_placeholder=admin@example.com +admin_serversettings_default_locale_label=Default Language +admin_serversettings_message_label=Server Message +admin_serversettings_message_help=Post a notification to users on the front page (Markdown accepted, including [links](https\://example.com)) +admin_serversettings_about_label=Server About Page +admin_serversettings_about_help=Explain this server to users (Markdown accepted) +admin_serversettings_save_button=Save Settings +admin_badge_readonly=Read Only +admin_badge_active=Active +admin_allowedusers_management_title=Allowed Users +admin_allowedusers_subtitle=Only allowed email addresses can create an account on this server. +admin_allowedusers_description=Add email addresses to grant access to this Hammer server instance. +admin_allowedusers_email_label=Email Address +admin_allowedusers_email_placeholder=user@example.com +admin_allowedusers_add_button=Add User +admin_allowedusers_remove_button=Remove +admin_allowedusers_empty=No allowed users yet. Add one above to get started. +admin_allowedusers_error_emailrequired=Email address is required +admin_allowedusers_error_emailinvalid=Invalid email address format +admin_allowedusers_error_reasontoolong=Reason must be 32 characters or less +admin_allowedusers_error_expiryinvalid=Expiry date must be a valid date in the future +admin_pagination_prev=Previous +admin_pagination_next=Next +admin_pagination_page=Page +admin_pagination_of=of +# Admin Navigation +admin_nav_settings=Settings +admin_nav_allowedusers=Allowed Users +admin_nav_users=Users +admin_users_last_sync_never=Never +# Admin - Email Settings +admin_nav_email=Email +admin_email_title=Email Settings +admin_email_subtitle=Configure email sending for server notifications +admin_email_status_title=Email Status +admin_email_status_label=Configuration Status +admin_email_provider_label=Active Provider +admin_email_configured=Configured +admin_email_not_configured=Not Configured +admin_email_settings_title=SMTP Configuration +admin_email_settings_description=Configure your SMTP server settings to enable email sending from this server. +admin_email_smtp_settings_title=SMTP Configuration +admin_email_smtp_settings_description=Configure your SMTP server settings to enable email sending from this server. +admin_email_sendgrid_settings_title=SendGrid Configuration +admin_email_sendgrid_settings_description=Configure your SendGrid API settings to enable email sending from this server. +admin_email_sendgrid_api_key=API Key +admin_email_sendgrid_api_key_help=Your SendGrid API key with Mail Send permissions +admin_email_sendgrid_api_key_placeholder=Leave blank to keep existing +admin_email_postmark_settings_title=Postmark Configuration +admin_email_postmark_settings_description=Configure your Postmark API settings to enable email sending from this server. +admin_email_postmark_server_token=Server Token +admin_email_postmark_server_token_help=Your Postmark server API token +admin_email_postmark_server_token_placeholder=Leave blank to keep existing +admin_email_mailgun_settings_title=Mailgun Configuration +admin_email_mailgun_settings_description=Configure your Mailgun API settings to enable email sending from this server. +admin_email_mailgun_api_key=API Key +admin_email_mailgun_api_key_help=Your Mailgun private API key +admin_email_mailgun_api_key_placeholder=Leave blank to keep existing +admin_email_mailgun_domain=Domain +admin_email_mailgun_domain_help=Your Mailgun sending domain (e.g., mg.example.com) +admin_email_mailgun_domain_placeholder=mg.example.com +admin_email_mailgun_use_eu_region=Use EU Region +admin_email_mailgun_use_eu_region_help=Enable this if your Mailgun domain is hosted in the EU region +admin_email_host=SMTP Host +admin_email_host_help=The hostname of your SMTP server (e.g., smtp.gmail.com) +admin_email_host_placeholder=smtp.example.com +admin_email_port=SMTP Port +admin_email_port_help=Common ports\: 587 (TLS), 465 (SSL), 25 (unencrypted) +admin_email_port_placeholder=587 +admin_email_username=Username +admin_email_username_help=Your SMTP authentication username (often your email address) +admin_email_username_placeholder=your@email.com +admin_email_password=Password +admin_email_password_help=Your SMTP authentication password or app-specific password +admin_email_password_placeholder=Leave blank to keep existing +admin_email_from_address=From Address +admin_email_from_address_help=The email address that will appear in the From field +admin_email_from_address_placeholder=noreply@example.com +admin_email_from_name=From Name +admin_email_from_name_help=The display name that will appear alongside the email address +admin_email_default_from_name=Hammer Server +admin_email_use_tls=Use TLS/SSL +admin_email_use_tls_help=Enable secure TLS/SSL connection (recommended for port 465) +admin_email_use_starttls=Use STARTTLS +admin_email_use_starttls_help=Upgrade connection to TLS after connecting (recommended for port 587) +admin_email_save_button=Save Settings +admin_email_test_title=Test Email +admin_email_test_description=Send a test email to verify your SMTP configuration is working correctly. +admin_email_test_recipient=Recipient Email +admin_email_test_recipient_help=Enter an email address to receive the test message +admin_email_test_recipient_placeholder=you@example.com +admin_email_test_send=Send Test Email +admin_email_test_success=Test email sent successfully\! Check your inbox. +admin_email_test_failed=Failed to send test email +admin_email_error_recipient_required=Please enter a recipient email address +admin_email_error_not_configured=Email is not configured. Please save your SMTP settings first. +admin_email_test_email_subject=Hammer Server Test Email +admin_email_test_email_html=

Test Email from Hammer Server

If you received this email, your SMTP configuration is working correctly.

+admin_email_test_email_text=Test Email from Hammer Server\n\nIf you received this email, your SMTP configuration is working correctly. +# Admin - User Management +admin_users_title=User Management +admin_users_subtitle=View and manage registered users +admin_users_list_title=Registered Users +admin_users_description=All users registered on this server. +admin_users_projects=Projects +admin_users_created=Created +admin_users_last_sync=Last Sync +admin_users_empty=No users registered yet. +admin_users_sort_controls=Sort Controls +admin_users_sort_by=Sort By +admin_users_sort_direction=Direction +admin_users_sort_created=Created Date +admin_users_sort_lastsync=Last Sync +admin_users_sort_projectcount=Project Count +admin_users_sort_desc=Newest First +admin_users_sort_asc=Oldest First +admin_allowedusers_add_title=Add an Allowed User +admin_allowedusers_date_added_unknown=Unknown +admin_allowedusers_edit_button=Edit +admin_allowedusers_edit_reason_title=Edit Reason +admin_allowedusers_reason_label=Reason +admin_allowedusers_reason_placeholder=e.g., Beta tester, Friend of the project +admin_allowedusers_reason_help=Brief note about why this user was allowed (max 32 characters) +admin_allowedusers_save_reason=Save +admin_allowedusers_edit_expiry_title=Edit Expiry +admin_allowedusers_expiry_label=Expires +admin_allowedusers_expiry_help=Access is revoked automatically once the entry expires. +admin_allowedusers_expiry_never=Never +admin_allowedusers_expiry_7days=In 7 days +admin_allowedusers_expiry_30days=In 30 days +admin_allowedusers_expiry_90days=In 90 days +admin_allowedusers_expiry_custom=On a specific date +admin_allowedusers_expiry_date_label=Expiry date +admin_allowedusers_expires_prefix=Expires\: +admin_allowedusers_edit_expiry_button=Edit expiry +admin_allowedusers_expiry_current=Current expiry\: +admin_allowedusers_expiry_change_label=Change to +admin_allowedusers_expiry_extend_7days=Extend 7 days +admin_allowedusers_expiry_extend_30days=Extend 30 days +admin_allowedusers_expiry_extend_90days=Extend 90 days +admin_allowedusers_save_expiry=Save +admin_allowedusers_sort_newest_first=Sort\: Newest First +admin_allowedusers_sort_oldest_first=Sort\: Oldest First +admin_allowedusers_account_created=Account Created +admin_allowedusers_no_account=No Account +admin_allowedusers_search_label=Search by email +admin_allowedusers_search_placeholder=Filter by full or partial email +admin_allowedusers_search_clear=Clear search +admin_allowedusers_search_filtered_by=Filtered by\: +admin_allowedusers_search_empty=No allowed users match that email. +admin_dialog_cancel=Cancel +# Error Pages - Common +error_button_home=Go Home +error_button_signin=Sign In +error_button_back=Go Back +error_button_retry=Try Again +# Error Pages - 403 Unauthorized +error_unauthorized_title=Unauthorized Access +error_unauthorized_message=You don't have permission to access this page. This area is restricted to authorized users only. +error_unauthorized_note=If you believe you should have access, please contact the server administrator. +# Error Pages - 404 Not Found +error_notfound_title=Page Not Found +error_notfound_message=Sorry, we couldn't find the page you're looking for. It might have been moved, deleted, or never existed in the first place. +error_notfound_note=If you think this is a mistake, please let us know\! +# Error Pages - 500 Server Error +error_servererror_title=Server Error +error_servererror_message=Oops\! Something went wrong on our end. Our server encountered an error and couldn't complete your request. +error_servererror_note=We've been notified and are working to fix the issue. Please try again in a few moments. +# Security +security_access_denied=Access denied +security_please_login=Please log in +# Story Page +story_back_to_dashboard=Back to Dashboard +story_no_scenes=This story doesn't have any scenes yet. Add scenes in the Hammer Editor app to see them here. +story_error_title=Error Loading Story +story_info_title=Story Info +story_readers_title=Readers +story_readers_total_label=total readers, all time +story_readers_graph_caption=Readers per day · last 30 days +story_kudos_title=Kudos +story_kudos_givers_label={0,choice,0\#readers left kudos|1\#reader left kudos|1