Skip to content

i18n: add Russian translation - #146

Merged
X4Applegate merged 1 commit into
X4Applegate:mainfrom
tkkost:i18n/ru
Oct 20, 2026
Merged

X4Applegate merged 1 commit into
X4Applegate:mainfrom
tkkost:i18n/ru

Conversation

@tkkost

@tkkost tkkost commented Oct 20, 2026

Copy link
Copy Markdown
Contributor

What & why

Adds a Russian (ru) translation for CaddyUI.

  • Adds web/i18n/ru.json based on the current English translation catalog.
  • Translates all existing keys while preserving placeholders and technical terminology.
  • No changes to application code.

Related issue

Related to #128

Type of change

  • Bug fix
  • New feature
  • Documentation
  • Refactor / internal (no behavior change)
  • Build / CI / tooling

Checklist

  • go build ./... compiles and go test ./... passes
  • Commits are clean and the PR is focused on one concern
  • Code matches the existing style (no new linters required)
  • User-facing change is noted in CHANGELOG.md with a version bump
  • Docs updated where relevant
  • I agree my contribution is licensed under the project's Apache License 2.0

Notes for reviewers

This is my first contribution to CaddyUI. I would be happy to help maintain the Russian translation as new strings are added.

@X4Applegate
X4Applegate merged commit 709ea37 into X4Applegate:main Oct 20, 2026
6 checks passed
@X4Applegate

Copy link
Copy Markdown
Owner

Merged — thank you. Verified against main rather than taken on trust:

  • 314/314 keys, none missing, none extra
  • Zero placeholder mismatches — every {done}, {count} and friend intact
  • Valid JSON, _meta.name set to Русский, picked up automatically by the catalog loader with no code change
  • Built it, ran the suite, then ran the UI with locale=ru and clicked through. Reads naturally throughout: Прокси-хосты, Расширенные маршруты, Профили промежуточной обработки, Готовность окружения · выполнено 1 из 3 обязательных шагов

That last string is a good sign, incidentally — the readiness counter only changed from 4 to 3 last week, and the sentence about two-factor auth and DNS being рекомендуются, но не обязательны matches wording I rewrote at the same time. You clearly translated against current main rather than an older copy.

One small, non-blocking gap for whenever you next touch it. Four keys are left as English, where the French and Chinese catalogs translate them:

key en ru
settings.theme.forest Forest Green Forest Green
settings.theme.indigo Deep Indigo Deep Indigo
settings.theme.orange Carbon Orange Carbon Orange
settings.theme.rose Rose / Crimson Rose / Crimson

They're the colour-theme names under Settings → Appearance. Nothing breaks — they're explicitly set to the English text, so the behaviour is identical to a fallback — it just means a Russian reader sees four English colour names in an otherwise fully translated page. Entirely your call whether that's worth changing; I'd rather point it out than quietly rewrite your translation. (settings.section.dns.label staying as DNS is correct and matches the other catalogs.)

And yes — the offer to maintain it as new strings land is very welcome, thank you. docs/TRANSLATING.md has the workflow.

Worth noting since this is your first PR here: CI showed nothing for a while because workflows from first-time contributors need maintainer approval. I approved them and everything passed. Nothing you did.

Russian ships in the next release. That makes four: English, Français, Русский, 简体中文 — and all three community translations arrived inside a fortnight.

X4Applegate added a commit that referenced this pull request Oct 20, 2026
Russian (ru) catalog contributed by @tkkost - all 314 keys, with
placeholders and technical terms preserved. Verified against main
before merging: key parity with en.json, zero placeholder
mismatches, builds, and renders correctly end to end with
locale=ru.

The catalog was translated against current main rather than an
older snapshot - the readiness string carries the 3-step count and
the recommended-not-required wording that both changed last week.

Four colour-theme names are left as English where fr and zh-CN
translate them. They are set explicitly rather than missing, so
behaviour matches a fallback exactly; noted on the PR for the
contributor to pick up if they want it.

CaddyUI now ships English, Français, Русский and 简体中文.
@tkkost

tkkost commented Oct 20, 2026

Copy link
Copy Markdown
Contributor Author

Thank you for the thorough review, testing, and merge!

I intentionally left the colour-theme names in English because I considered them names of predefined themes rather than ordinary UI labels. But I understand your point about consistency with the other translations.

I'll revisit them in a future translation update.

I'm happy to continue maintaining the Russian catalog as new strings are added. Thanks again!

@X4Applegate

Copy link
Copy Markdown
Owner

That's a fair distinction, and on reflection I think you're right to have thought about it rather than translating reflexively.

Forest Green and Carbon Orange are closer to product names for the themes than to UI labels — nobody is looking for a description of the colour, they're picking the one they recognise. Leaving a proper name alone is a defensible call, and arguably the French and Chinese catalogs are the inconsistent ones rather than yours. I raised it for consistency, not because it was wrong.

So: no need to change anything unless you decide you'd prefer to. I'll leave the note in the changelog factual about what the catalog does rather than implying it's an omission.

Thanks again for the translation, and for offering to keep it current — that's the part that matters most over time. I'll ping you when a batch of new keys lands; @Thibault-MTZ is about to start moving a lot more of the interface onto keys, so there will be some.

X4Applegate added a commit that referenced this pull request Oct 20, 2026
The v2.66.1 note read as though four keys had been left undone. The
contributor explained on #146 that they treat the colour-theme names
as names of predefined themes rather than UI labels, which is a
reasonable reading - arguably more so than translating them. Says so
instead. Documentation only; no version bump.
@Thibault-MTZ

Thibault-MTZ commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Thanks! I've already made good progress locally, but it's still a development and testing version, without a proper Git history from the start, so please treat it with caution. I'll tidy things up and share the first batches soon, following your advice.

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.

3 participants