Skip to content

Add Ukrainian (uk_UA) translation - #18

Open
soundman666 wants to merge 1 commit into
cloudstack-llc:mainfrom
soundman666:add-ukrainian-uk-ua
Open

soundman666 wants to merge 1 commit into
cloudstack-llc:mainfrom
soundman666:add-ukrainian-uk-ua

Conversation

@soundman666

Copy link
Copy Markdown

Adds a complete Ukrainian locale: i18n/locales/uk_UA.json.

Coverage

Translated against the en_US.json bundled with Msty Studio 2.9.8 (4981 keys), then topped up with the 8 keys that still exist in this repo's en_US.json but are gone from the app (shiftcutMode.*, modelHub.localModels.huggingfaceModels.*, conversationActions.exportConversation.successMessage, sharedService.serviceVersion.forceUpdate.forCuda131). The file is therefore a superset of both: 4989 keys, 0 missing against either side.

Checks run after generation

  • Structure matches en_US.json exactly — no missing, extra or reshaped branches.
  • All {placeholders} preserved per string (name and count).
  • Pluralization segments (|) and random-variant separators (::, e.g. waitingMessage.*) kept at the same count as the source.
  • Every @:link resolves to an existing key (0 dangling).
  • Literal escapes such as {'{'} / {'.'} left untouched where they carry meaning.

Translation notes

  • Most @:links were expanded into plain text. Ukrainian is an inflected language and vue-i18n interpolates the linked message in the nominative case, so Delete @:conversation.title would render as "Видалити Розмова" instead of "Видалити розмову". Links were kept where the nominative fits, or where they point at a service name whose value I could not resolve (@:localAIService, @:remoteToolsConnector.title, @:mlxService).
  • Plurals keep the source's two forms, since the app uses vue-i18n's default rule (count === 1 ? 0 : 1); a third Slavic form would never be selected. Where the distinction is visible, the second form is phrased so it reads correctly for any number (Розмов: {count}).
  • Product and feature names are left untranslated: Msty, Forge, Turnstile, Model Hub, Model Squad, Skills/Prompt/Persona/Context Studio, Aurum, Next Gen, Vapor, MLX, LLaMA.cpp.
  • Consistent glossary: conversation → розмова, split → спліт, prompt → промт, preset → пресет, folder → тека, workspace → робоча область, knowledge stack → стек знань, chunk → фрагмент, toolset → набір інструментів, context shield → щит контексту.

One request

uk-UA is not in the app's compiled locale list (en-US, en-GB, de-DE, es-ES, fr-FR, it-IT, ja-JP, pt-BR, zh-CN, zh-TW, ru-RU, developer), so even after this is merged and published to next-assets.msty.studio/app/latest/locales/, the language will not show up in the picker. Could you add the uk-UA entry (name: Українська) to the app build as well?

Happy to fix anything up on request.

Complete Ukrainian locale translated against the en_US bundled with
Msty Studio 2.9.8 (4981 keys), plus the 8 keys that still exist in this
repo's en_US.json but were removed from the app, so the file is a
superset of both (4989 keys).

Verified after generation:
- structure matches en_US.json exactly, no missing or extra branches
- {placeholders}, plural segments (|) and random variants (::) preserved
- every @:link resolves to an existing key

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant