Skip to content

Add Ukrainian translation#2032

Open
rodion981 wants to merge 18 commits into
autobrr:developfrom
rodion981:develop
Open

Add Ukrainian translation#2032
rodion981 wants to merge 18 commits into
autobrr:developfrom
rodion981:develop

Conversation

@rodion981

@rodion981 rodion981 commented Jun 14, 2026

Copy link
Copy Markdown

Added Ukrainian (uk-UA) localization for QUI.

Changes:

  • Added Ukrainian translation strings
  • Localized UI labels and messages
  • Preserved existing structure and formatting

Tested locally with Docker build.

Summary by CodeRabbit

Release Notes

  • New Features
    • Added Ukrainian (uk) language support to the web interface. Ukrainian is now selectable in the language menu and includes complete translations across major areas including authentication, common UI navigation, dashboard, search, settings, torrents, automations, RSS, and additional feature screens and dialogs.

rodion981 added 15 commits June 13, 2026 21:48
Added Ukrainian localization for automation features including titles, descriptions, and tooltips.
Added Ukrainian localization for RSS management including page titles, descriptions, and various UI elements.
Added Ukrainian localization for search functionality.
Remove unnecessary JSON code block formatting.
Updated the Ukrainian translations for indexers and seeded search.
@coderabbitai

coderabbitai Bot commented Jun 14, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 32129d5a-c2e5-4c2d-bc63-c4b0c8b18482

📥 Commits

Reviewing files that changed from the base of the PR and between f7d3062 and 9aa2e1d.

📒 Files selected for processing (1)
  • web/src/i18n/locales/uk/common.json
✅ Files skipped from review due to trivial changes (1)
  • web/src/i18n/locales/uk/common.json

Walkthrough

Ukrainian (uk) is added as a supported language in the i18n module (supportedLanguages, AppLanguage type, and languageNames mapping). Nine new locale JSON files are introduced under web/src/i18n/locales/uk/, covering all application feature namespaces: auth, common, automations, crossseed, dashboard, rss, search, settings, and torrents.

Changes

Ukrainian Locale Addition

Layer / File(s) Summary
Language registration
web/src/i18n/index.ts
Adds uk to supportedLanguages, extends the AppLanguage type, and adds uk: "Українська" to languageNames.
Core locale files
web/src/i18n/locales/uk/common.json, web/src/i18n/locales/uk/auth.json
Adds shared UI strings (navigation, actions, date/time units with pluralization) and login/account-setup strings (form fields, validation, OIDC/SSO messages).
Feature locale files
web/src/i18n/locales/uk/automations.json, web/src/i18n/locales/uk/crossseed.json, web/src/i18n/locales/uk/dashboard.json, web/src/i18n/locales/uk/rss.json, web/src/i18n/locales/uk/search.json
Adds Ukrainian translations for automations (query builder, reannounce, orphan scan), crossseed (rules, hooks, dialogs, toasts), dashboard (stats, tracker views, quick actions), RSS (feeds, rules, SSE status, toasts), and search (indexer selection, filters, results, toasts).
Settings locale file
web/src/i18n/locales/uk/settings.json
Adds the full Ukrainian settings locale covering all settings tabs: language, instances, ARR integrations, API keys, external programs, notifications, date/time, security, logs, themes/license, Torznab indexers, search cache, and application info.
Torrents locale file
web/src/i18n/locales/uk/torrents.json
Adds the full Ukrainian torrents locale covering torrent management UI, dialogs, toasts, cross-seed workflows, and table/status labels with _one/_other pluralization.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • autobrr/qui#1956: Modifies the same web/src/i18n/index.ts extension points (supportedLanguages, AppLanguage, languageNames) and follows the same locale file structure, adding French.
  • autobrr/qui#1965: Same i18n registration and locale file approach applied for German (de).
  • autobrr/qui#2011: Identical pattern — extends web/src/i18n/index.ts and adds a full set of feature-namespace locale JSON files, for Italian.

Suggested reviewers

  • s0up4200

Poem

🐇 Hop, hop, a new tongue has arrived,
Ukrainian strings now fill the hive!
From auth to torrents, each key found its place,
"Українська" added with elegant grace.
The rabbit translates with a joyful cheer — ✨
Every locale namespace, perfectly clear!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Add Ukrainian translation' directly and clearly summarizes the main change: adding Ukrainian language support to the application's localization system.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai 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.

Actionable comments posted: 6

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@web/src/i18n/locales/uk/common.json`:
- Line 145: The Ukrainian text in the subtitle property at line 145 contains an
incorrect word form. The phrase "невідомі краї" is grammatically incomplete or
incorrect in Ukrainian. Correct this phrase to use the proper noun form that
accurately conveys "unknown lands" or "unknown areas" in Ukrainian, ensuring the
text reads naturally and is grammatically correct for the 404 error page
context.

In `@web/src/i18n/locales/uk/crossseed.json`:
- Line 15: The Ukrainian adjective in the "description" field has incorrect
gender agreement with the noun. Change "Автоматичний опитування" to "Автоматичне
опитування" to properly match the neuter gender of the noun "опитування"
(survey/polling).

In `@web/src/i18n/locales/uk/settings.json`:
- Around line 626-627: The validation error messages in the Ukrainian locale
file contain corrupted mixed-language artifacts where "requiчервоний" and
"requiчервоні" appear in the strings for apiKeyRequired and
baseUrlAndApiKeyRequired. These should be replaced with the correct Ukrainian
translations to provide clear validation feedback to users. Fix the corrupted
text in both the apiKeyRequired message (line 626) and baseUrlAndApiKeyRequired
message (line 627) by replacing the garbled "requiчервоний"/"requiчервоні"
portions with the proper Ukrainian word for "required" (обов'язковий). Apply the
same fix to any other instances of this corruption pattern in the file (such as
at line 782 mentioned in the comment).
- Around line 262-267: The translation file contains translated protocol scheme
examples and technical literals that must remain in their canonical English
form. In the examples object at lines 262-267, the "discord" key should not be
translated from "discord" to "розбрат", and the protocol scheme formats must
stay exactly as canonical literals (e.g., "discord://token@id" and
"notifiarr://apikey"). Keep only the descriptive text portions translated while
preserving all protocol schemes, command names, and technical examples in their
original form. The same issue also applies at lines 521-529, so update all
affected example literals throughout the file to use the canonical English forms
for protocols and scheme names while maintaining Ukrainian translations for the
surrounding description text.

In `@web/src/i18n/locales/uk/torrents.json`:
- Line 644: The remove key in the torrents.json Ukrainian locale file contains a
mixed-language string where Categor{{plural}} is partially English with an
untranslated fragment. Replace the incomplete English word Categor with the
proper Ukrainian translation for "Category" while preserving both the {{count}}
and {{plural}} placeholders exactly as they are, ensuring the complete
translated string reads naturally in Ukrainian and matches the intended
pluralization behavior.
- Line 19: The translation for the resume key in
web/src/i18n/locales/uk/torrents.json is incorrect. The current value "Резюме"
means "summary" but should convey the action of resuming or continuing a
torrent. Replace "Резюме" with the appropriate Ukrainian action verb meaning
"resume/continue" at line 19 (anchor location). Apply the same corrected
translation at line 47 (sibling location) where this same mistranslation also
appears.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: a0760a9a-0d83-47ad-accc-75410f1563c8

📥 Commits

Reviewing files that changed from the base of the PR and between 2de926e and a464b21.

📒 Files selected for processing (11)
  • web/src/i18n/index.ts
  • web/src/i18n/locales/uk/auth.json
  • web/src/i18n/locales/uk/automations.json
  • web/src/i18n/locales/uk/common.json
  • web/src/i18n/locales/uk/crossseed.json
  • web/src/i18n/locales/uk/dashboard.json
  • web/src/i18n/locales/uk/instances.json
  • web/src/i18n/locales/uk/rss.json
  • web/src/i18n/locales/uk/search.json
  • web/src/i18n/locales/uk/settings.json
  • web/src/i18n/locales/uk/torrents.json

Comment thread web/src/i18n/locales/uk/common.json Outdated
Comment thread web/src/i18n/locales/uk/crossseed.json
Comment thread web/src/i18n/locales/uk/settings.json
Comment thread web/src/i18n/locales/uk/settings.json Outdated
Comment thread web/src/i18n/locales/uk/torrents.json Outdated
Comment thread web/src/i18n/locales/uk/torrents.json Outdated
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