Repository navigation
fix(i18n): translate Ukrainian (uk-UA) menu and UI strings - #2981
Conversation
Translates ~267 previously-English or __MISSING__ entries in the Ukrainian locale, focused on the most user-visible surfaces: - sidebar: all menu items, section labels, page subtitles - header: page titles and descriptions - apiManager: 3 __MISSING__ endpoint-restriction keys - common: high-traffic UI labels (buttons, statuses, common nouns) - settings: 7 newly-added Home-page quota/topology keys Key parity with en.json restored: 0 missing, 0 extra.
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Files Reviewed (1 file)
Other Observations (not in diff)Remaining
These are out of scope for this PR but flagging for future cleanup. ICU plural forms for Reviewed by step-3.7-flash-20260528 · 137,481 tokens |
There was a problem hiding this comment.
Code Review
This pull request updates the Ukrainian localization file (uk-UA.json) with translations for various UI strings, descriptions, and settings. The review feedback highlights opportunities to improve translation quality, specifically suggesting the use of ICU pluralization format for the daysAgo key to ensure correct Ukrainian grammar, and recommending more professional terminology for the whitelabeling-related keys.
| "creating": "Створення", | ||
| "comboCreated": "Комбінацію створено", | ||
| "swapFormats": "Поміняти формати", | ||
| "daysAgo": "{count} днів тому", |
There was a problem hiding this comment.
Using a static string like {count} днів тому will result in grammatical errors in Ukrainian for counts ending in 1 (e.g., 1 днів тому instead of 1 день тому) or 2-4 (e.g., 2 днів тому instead of 2 дні тому). It is highly recommended to use the ICU plural format to handle Ukrainian pluralization rules correctly.
| "daysAgo": "{count} днів тому", | |
| "daysAgo": "{count, plural, one {# день тому} few {# дні тому} many {# днів тому} other {# дня тому}}", |
| "cacheShort": "Кеш", | ||
| "batch": "Пакетні завдання", | ||
| "themeSystem": "Системна тема", | ||
| "whitelabelingDesc": "Білий лейбл", |
There was a problem hiding this comment.
The literal translation "Білий лейбл" for "Whitelabeling Desc" sounds unnatural in Ukrainian. Since this feature allows customizing the application name and logo, "Налаштування брендування" (Branding settings) is a much more professional and standard localization term.
| "whitelabelingDesc": "Білий лейбл", | |
| "whitelabelingDesc": "Налаштування брендування", |
| "sidebarVisibilityToggle": "Видимість бічної панелі", | ||
| "themeAccent": "Акцент теми", | ||
| "resetFavicon": "Скинути favicon", | ||
| "whitelabeling": "Білий лейбл", |
There was a problem hiding this comment.
fix(i18n): translate Ukrainian (uk-UA) menu and UI strings
…-ui-menu fix(i18n): translate Ukrainian (uk-UA) menu and UI strings
…-ui-menu fix(i18n): translate Ukrainian (uk-UA) menu and UI strings
…-ui-menu fix(i18n): translate Ukrainian (uk-UA) menu and UI strings
…-ui-menu fix(i18n): translate Ukrainian (uk-UA) menu and UI strings
…-ui-menu fix(i18n): translate Ukrainian (uk-UA) menu and UI strings
…-ui-menu fix(i18n): translate Ukrainian (uk-UA) menu and UI strings
Summary
Translates ~267 previously-English or
__MISSING__:entries insrc/i18n/messages/uk-UA.json, focused on the most user-visible surfaces. Before this PRuk-UA.jsonhad 3 entries missing entirely and ~1825 strings still appearing in English; this PR addresses the highest-traffic ones first.Scope:
Primary/CLI/Debug/System/Helpsections,Themes,Cache,Batch Jobs,Routing,Protocols,Agents & AI,Analytics,Costs,Monitoring,Audit & Security,Dev Tools,Configuration,AI Features, plus every*Subtitleand section group label.__MISSING__:Allowed Endpoints,__MISSING__:This key can access all API endpoints., and the plural form__MISSING__:Restricted to {count} endpoint{count, plural, …}. Plural form uses the full ICU one/few/many/other rule set for Ukrainian.Nothing here yet,Last Refreshed,Server is unreachable. Reconnecting...,Go to Dashboard,Check System Status,Select Model,Combos,No models found,Error Occurred,Combo Created/Deleted,Swap Formats,Web Search,Failed to load, time helpers (Minutes Ago,Days Ago,Live · Auto-refreshing), and similar.uk-UA.json:homePinProviderQuotaToHome,homeProviderQuotaLimits(+Desc),homeQuickStart(+Desc),homeProviderTopology(+Desc).Result:
uk-UA.jsonnow has full key parity withen.json(0 missing / 0 extra) and the most-visible dashboard chrome is no longer English.Methodology: keys were only overwritten when the existing Ukrainian value equalled the English original or began with
__MISSING__:; already-translated keys were left untouched (none were overwritten — verified by skipped=0 in the patch run).Related Issues
__MISSING__:i18n keys in Docker latest #2738).uk-UAUI strings.Validation
python3 -c "import json; json.load(...)"— file is valid JSON.en.json: 0 missing, 0 extra.src/i18n/messages/uk-UA.json(258 insertions / 251 deletions, no structural changes).npm run lint— not run locally (translation-only change, no code modified).npm run test:unit— not run locally.Tests Added Or Updated
None. This PR is translation-only; no production code changed.
Reviewer Notes
apiManager.endpointsRestricteduses Ukrainian one/few/many/other (1 → one, 2-4 → few, 5+ → many).OmniRoute,OmniSkills,MITM,1Proxy,Caveman,RTK,CLI,ENV,DEF,MCP,A2A,FTS5,webhook,favicon. Term "endpoint" is rendered as "ендпоінт" to match common Ukrainian tech usage.