Skip to content

feat(i18n): add Turkish (tr) interface locale - #835

Merged
AprilNEA merged 1 commit into
AprilNEA:masterfrom
4ni1ak:feat/turkish-locale
Aug 25, 2026
Merged

feat(i18n): add Turkish (tr) interface locale#835
AprilNEA merged 1 commit into
AprilNEA:masterfrom
4ni1ak:feat/turkish-locale

Conversation

@4ni1ak

@4ni1ak 4ni1ak commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds Turkish as a shipped interface locale.

Split out of #802 at your request — that PR is closed and its five parts are now
independent.

Changes

openlogi-ui

  • New locales/tr.yml carrying every key en.yml defines.
  • tr ("Türkçe") registered in SUPPORTED, between Svenska and Ελληνικά —
    native-name alphabetical within the Latin block, matching the picker order the
    constant documents.
  • Added to locale_files_have_the_same_keys's include_str! table. That list is
    hand-written and asserts its own coverage against SUPPORTED, so a locale left
    out of it fails the build rather than silently going unchecked.
  • maps_locale_variants gains tr and tr-TR.

crowdin.yml

  • tr added to export_languages and mapped tr -> tr, so the catalog
    round-trips like every other one.

Values are a best-effort human translation, not machine fill-in; Crowdin can
refine them from here.

Testing

Linux, x86_64, Rust 1.98.0:

cargo test -p openlogi-ui locale     # catalog parity + negotiation
cargo test -p openlogi-desktop i18n  # end-to-end key resolution
cargo fmt --all -- --check
cargo clippy --workspace --all-targets -- -D warnings   # RUSTFLAGS=-D warnings
cargo test --workspace

All green.

Not run on this host: tests (macos), cargo-deny, and macOS clippy (no
macOS SDK here). No hardware verification applies — this adds no device code.

Note on ordering: if the Linux package-manager update PR lands first, it adds
one string to every catalog that exists at that point, so this branch needs a
rebase to pick it up in tr.yml before the parity test passes. Happy to rebase
whenever it suits you — same in the other direction.

@greptile-apps

greptile-apps Bot commented Aug 23, 2026

Copy link
Copy Markdown

Greptile Summary

Adds Turkish as a shipped interface locale.

  • Registers Turkish in locale negotiation and the language picker.
  • Adds a complete Turkish translation catalog to locale parity checks.
  • Configures Turkish import and export in Crowdin.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

Filename Overview
.config/crowdin.yml Adds the Turkish locale to Crowdin export and filename mapping.
crates/openlogi-ui/locales/tr.yml Adds the Turkish translation catalog with the expected source keys.
crates/openlogi-ui/src/locale.rs Registers Turkish, verifies catalog parity, and tests Turkish locale negotiation.

Reviews (2): Last reviewed commit: "feat(i18n): add Turkish (tr) interface l..." | Re-trigger Greptile

AprilNEA
AprilNEA previously approved these changes Aug 23, 2026
@davidbudnick davidbudnick added the type: feature New feature request label Aug 24, 2026
Ships `locales/tr.yml` with every key `en.yml` defines, registers `tr`
("Türkçe") in `SUPPORTED` between Svenska and Ελληνικά — native-name
alphabetical within the Latin block — and adds it to the parity test's
`include_str!` table so the catalog is actually checked rather than
silently drifting.

`crowdin.yml` gains the language and its `tr -> tr` mapping so Crowdin
round-trips the new catalog like every other one.
@AprilNEA

Copy link
Copy Markdown
Owner

Thanks.

@AprilNEA
AprilNEA merged commit c430364 into AprilNEA:master Aug 25, 2026
21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: feature New feature request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants