feat(i18n): localize Stories tab (list, content, dialogs, toasts)

Covers the title + "New Story" button, empty states, story row
metadata (item count, updated time), the create/edit/delete dialogs,
and all toast notifications. Also handles StoryContent: "Select a
story" placeholder, search popover, "Export Audio" button, and the
"Generating N audios" pending indicator.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
This commit is contained in:
James Pine
2026-04-20 03:02:21 -07:00
co-authored by Claude Opus 4.7
parent dd4119e0e6
commit 992ad96a29
4 changed files with 215 additions and 64 deletions
+74
View File
@@ -37,6 +37,80 @@
"deleting": "Deleting…"
}
},
"stories": {
"title": "Stories",
"newStory": "New Story",
"loading": "Loading stories…",
"empty": {
"title": "No stories yet",
"hint": "Create your first story to get started"
},
"row": {
"itemCount_one": "{{count}} item",
"itemCount_other": "{{count}} items",
"ariaLabel": "Story {{name}}, {{count}} items, {{updated}}",
"actionsLabel": "Actions for {{name}}"
},
"createDialog": {
"title": "Create New Story",
"description": "Create a new story to organize your voice generations into conversations.",
"action": "Create",
"creating": "Creating…"
},
"editDialog": {
"title": "Edit Story",
"description": "Update the story name and description.",
"saving": "Saving…"
},
"deleteDialog": {
"title": "Are you sure?",
"description": "This will permanently delete the story and all its items. This action cannot be undone.",
"deleting": "Deleting…"
},
"fields": {
"name": "Name",
"namePlaceholder": "My Story",
"descriptionLabel": "Description (optional)",
"descriptionPlaceholder": "A conversation between…"
},
"toast": {
"nameRequired": "Name required",
"nameRequiredDescription": "Please enter a story name",
"created": "Story created",
"createdDescription": "\"{{name}}\" has been created",
"createFailed": "Failed to create story",
"updateFailed": "Failed to update story",
"deleteFailed": "Failed to delete story"
}
},
"storyContent": {
"selectStory": {
"title": "Select a story",
"hint": "Choose a story from the list to view its content"
},
"loading": "Loading story…",
"notFound": {
"title": "Story not found",
"hint": "The selected story could not be loaded"
},
"generatingCount_one": "Generating {{count}} audio",
"generatingCount_other": "Generating {{count}} audios",
"add": "Add",
"searchPlaceholder": "Search by name or transcript…",
"searchNoMatches": "No matching generations found",
"searchNoAvailable": "No available generations",
"exportAudio": "Export Audio",
"empty": {
"title": "No items in this story",
"hint": "Generate speech using the box below to add items"
},
"toast": {
"removeFailed": "Failed to remove item",
"reorderFailed": "Failed to reorder items",
"exportFailed": "Failed to export audio",
"addFailed": "Failed to add generation"
}
},
"history": {
"deleteDialog": {
"title": "Delete Generation",