Skip to content

fix(i18n): translate Ukrainian (uk-UA) menu and UI strings - #2981

Merged
diegosouzapw merged 1 commit into
cheaper-inference:mainfrom
Lion-killer:i18n/uk-ua-ui-menu
May 31, 2026
Merged

diegosouzapw merged 1 commit into
cheaper-inference:mainfrom
Lion-killer:i18n/uk-ua-ui-menu

Conversation

@Lion-killer

Copy link
Copy Markdown
Contributor

Summary

Translates ~267 previously-English or __MISSING__: entries in src/i18n/messages/uk-UA.json, focused on the most user-visible surfaces. Before this PR uk-UA.json had 3 entries missing entirely and ~1825 strings still appearing in English; this PR addresses the highest-traffic ones first.

Scope:

  • sidebar — all menu items, section labels and page subtitles (≈155 keys): Primary/CLI/Debug/System/Help sections, Themes, Cache, Batch Jobs, Routing, Protocols, Agents & AI, Analytics, Costs, Monitoring, Audit & Security, Dev Tools, Configuration, AI Features, plus every *Subtitle and section group label.
  • header — page titles and descriptions (≈54 keys): Endpoints / MCP / A2A / Media / Themes / Costs / Cache / Limits / Runtime / API Manager / Batch / Context / Changelog / Agents / Cloud Agents / Memory / Skills / Translator / Playground / Search Tools / Logs / Audit / Webhooks / Health / Proxy / API Endpoints / Batch Files / Analytics / Settings (general/appearance/AI/security/routing/resilience/advanced) / MITM / 1Proxy.
  • apiManager — 3 entries that previously showed __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.
  • common — high-traffic UI labels (~38 keys): 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.
  • settings — 7 brand-new Home-page keys that were not yet present in uk-UA.json: homePinProviderQuotaToHome, homeProviderQuotaLimits(+Desc), homeQuickStart(+Desc), homeProviderTopology(+Desc).

Result: uk-UA.json now has full key parity with en.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

Validation

  • python3 -c "import json; json.load(...)" — file is valid JSON.
  • Key parity vs en.json: 0 missing, 0 extra.
  • Diff is purely value-change in 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

  • ICU plural form on apiManager.endpointsRestricted uses Ukrainian one/few/many/other (1 → one, 2-4 → few, 5+ → many).
  • A handful of well-established loanwords are kept in Latin script as identifiers, matching how they appear elsewhere in this file: 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.
  • Roughly 1500+ less-visible strings (settings detail panels, dashboard fragments, etc.) are still English — they can be addressed in follow-up PRs section-by-section.

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.
@Lion-killer
Lion-killer requested a review from diegosouzapw as a code owner May 31, 2026 09:24
@kilo-code-bot

kilo-code-bot Bot commented May 31, 2026 •

Copy link
Copy Markdown

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Files Reviewed (1 file)
  • src/i18n/messages/uk-UA.json — translation-only update
Other Observations (not in diff)

Remaining __MISSING__ entries not addressed by this PR (pre-existing):

Key English source
vercelRelayProjectNameLabel Vercel Project Name
vercelRelayFreeTierNote Relays are lightweight proxy endpoints...
vercelRelayDeploying Deploying...
vercelRelayDeploy Deploy
settingsAuthz Authz
settingsAuthzSubtitle Route inventory and bypass policy

These are out of scope for this PR but flagging for future cleanup.

ICU plural forms for endpointsRestricted use Ukrainian one/few/many/other rules — grammatically sound.


Reviewed by step-3.7-flash-20260528 · 137,481 tokens

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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} днів тому",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

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.

Suggested change
"daysAgo": "{count} днів тому",
"daysAgo": "{count, plural, one {# день тому} few {# дні тому} many {# днів тому} other {# дня тому}}",

"cacheShort": "Кеш",
"batch": "Пакетні завдання",
"themeSystem": "Системна тема",
"whitelabelingDesc": "Білий лейбл",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

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.

Suggested change
"whitelabelingDesc": "Білий лейбл",
"whitelabelingDesc": "Налаштування брендування",

"sidebarVisibilityToggle": "Видимість бічної панелі",
"themeAccent": "Акцент теми",
"resetFavicon": "Скинути favicon",
"whitelabeling": "Білий лейбл",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The literal translation "Білий лейбл" for "Whitelabeling" sounds unnatural in Ukrainian. "Брендування" (Branding) is the standard and professional term used in software localization for this feature.

Suggested change
"whitelabeling": "Білий лейбл",
"whitelabeling": "Брендування",

@diegosouzapw
diegosouzapw merged commit ef58d83 into cheaper-inference:main May 31, 2026
3 checks passed
diegosouzapw added a commit that referenced this pull request May 31, 2026
fix(i18n): translate Ukrainian (uk-UA) menu and UI strings
@diegosouzapw diegosouzapw mentioned this pull request Jun 2, 2026
HouMinXi pushed a commit to HouMinXi/OmniRoute that referenced this pull request Aug 2, 2026
…-ui-menu

fix(i18n): translate Ukrainian (uk-UA) menu and UI strings
HouMinXi pushed a commit to HouMinXi/OmniRoute that referenced this pull request Aug 2, 2026
…-ui-menu

fix(i18n): translate Ukrainian (uk-UA) menu and UI strings
Poid-ZA pushed a commit to Poid-ZA/OmniRoute that referenced this pull request Aug 5, 2026
…-ui-menu

fix(i18n): translate Ukrainian (uk-UA) menu and UI strings
Poid-ZA pushed a commit to Poid-ZA/OmniRoute that referenced this pull request Aug 5, 2026
…-ui-menu

fix(i18n): translate Ukrainian (uk-UA) menu and UI strings
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
…-ui-menu

fix(i18n): translate Ukrainian (uk-UA) menu and UI strings
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
…-ui-menu

fix(i18n): translate Ukrainian (uk-UA) menu and UI strings
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.

2 participants