mirror of
https://github.com/storytold/wordcraft.git
synced 2026-10-24 18:36:58 -06:00
* chore(lints): satisfy nonminimal_bool on Rust 1.96 Clippy Four boolean expressions rewritten into their equivalent minimal forms (De Morgan / is_none_or) so `cargo xtask ci` passes `clippy -D warnings` on current stable. No behaviour change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * i18n(tr): Turkish interface (Türkçe) - crates/ui-egui/src/i18n/tr.tsv: complete catalog, all 1,307 keys of es.tsv, written clean-room from the plain meaning of the English labels; placeholders, escapes and "…" kept. A noun after a number stays singular in Turkish, so the context-free format needs no plural forms. - Registry entry `tr` / "Türkçe": tr-TR, tr-CY and tr_*.UTF-8 locales resolve by the generic prefix match; saved preference and English fallback use the existing machinery. - Command search folds case the Turkish way (İ→i, I→ı) for translated labels and locations, while English labels and ASCII command ids keep their existing Unicode case-insensitive matching ("italik" finds "İtalik", "INSERT.TABLE" still finds insert.table). - The Font dialog's preview sample is "AaBbYyZz ĞğİıŞş": it has no lowercase i, so the All Caps preview (to_uppercase) gets the Turkish capitals right. - Tests: catalog key and placeholder parity, locale resolution, saved preference, Turkish folding, the sample's capitals, a real egui command-dialog regression, and ÇçĞğİıÖöŞşÜü in the bundled UI fonts. - Docs: README, ROADMAP, localization-parity, control-protocol, new localization-tr.md (terminology, scope); ATTRIBUTION row for tr.tsv. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test(paste): an absolute picture path that is absolute on Windows too `/tmp/b.JPG` has no drive, so `Path::is_absolute` is false on Windows and `paste_inserts_clipboard_pixels` failed there; the test uses `C:\tmp\b.JPG` on Windows. Test-only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Brandon Thomas <echelon@gmail.com>
62 lines
3.5 KiB
Markdown
62 lines
3.5 KiB
Markdown
# Turkish interface
|
||
|
||
> **Last reviewed:** 2026-10-11 · **Last updated:** 2026-10-11 · **Change:** minor (Turkish interface catalog and regression checks) · **Target:** WordCraft 0.5.0
|
||
|
||
Choose **File › Options › Interface language › Türkçe**, or follow a Turkish system display language
|
||
(`tr-TR`, `tr-CY`, `tr_TR.UTF-8`). The catalog code is `tr`; `ui.language` with `{"value":"tr"}`
|
||
selects it explicitly, and `WORDCRAFT_LANGUAGE=tr-TR` does the same for a headless screenshot or a
|
||
launch while the preference is `auto`. The choice is saved with the other interface settings.
|
||
Document text, command ids, CLI/MCP/control responses and file paths do not change.
|
||
|
||
`crates/ui-egui/src/i18n/tr.tsv` has all 1,307 keys of the Spanish catalog. It is written from the
|
||
meaning of the English labels; no proprietary translation resources were consulted. The catalog
|
||
format has no plural forms, and Turkish doesn't need them here: a noun after a number stays
|
||
singular (`0 sözcük`, `1 sözcük`, `21 sözcük`). Placeholders, `\n` breaks in ribbon labels and dialog
|
||
ellipses are kept, and strings added later fall back to English until they are translated.
|
||
|
||
## Terminology
|
||
|
||
| Source | Turkish |
|
||
|---|---|
|
||
| Font / Paragraph | Yazı Tipi / Paragraf |
|
||
| Review / Track Changes | İncele / Değişiklikleri İzle |
|
||
| References / Citation / Bibliography | Başvurular / Atıf / Kaynakça |
|
||
| Header / Footer / Heading | Üstbilgi / Altbilgi / Başlık |
|
||
| Caption / Table of Contents | Resim Yazısı / İçindekiler Tablosu |
|
||
| Mail Merge / Start Mail Merge | Posta Birleştirme / Posta Birleştirmeyi Başlat |
|
||
| Symbol / Icons | Sembol / Simgeler |
|
||
| Undo / Redo / Repeat | Geri Al / Yinele / Tekrarla |
|
||
| Undo {action} | Geri Al: {action} |
|
||
| Page {page} of {pages} | Sayfa {page} / {pages} |
|
||
| Proofing / Word Count | Dil Denetimi / Sözcük Sayısı |
|
||
| pt (unit) | pt |
|
||
|
||
Product and format names stay as they are. Commands use the imperative. Turkish `İ/i` and `I/ı`
|
||
are written directly in the labels; code never uppercases a translated label, except the Font
|
||
dialog's preview sample, which therefore has no lowercase `i` (`AaBbYyZz ĞğİıŞş` uppercases to
|
||
`AABBYYZZ ĞĞİIŞŞ`).
|
||
|
||
Command search folds translated labels and ribbon locations with the Turkish `İ/i` and `I/ı`
|
||
pairs, so `italik`, `içindekiler` and `YAZI TİPİ` find their commands. English labels, locations and
|
||
ASCII command ids keep the default case-insensitive match, so `INSERT.TABLE` and `FORMAT.ITALIC`
|
||
still work. Other interface languages and document search are unchanged.
|
||
|
||
## Verification and remaining scope
|
||
|
||
`cargo test -p wordcraft-ui-egui --lib i18n::tests` covers Turkish locale tags and preference order,
|
||
saving and restoring `tr`, unknown preferences, unchanged document content, key parity with
|
||
Spanish, placeholders, count wording, the font sample's capitals, English fallback, and the glyphs
|
||
`ÇçĞğİıÖöŞşÜü` in the bundled Inter (Regular, Medium, SemiBold) and JetBrains Mono. A dialog test
|
||
renders real command-search results in Turkish and English, including dotted and dotless I and
|
||
ASCII command ids. The shared catalog checks (validation, every tab and command translated) include
|
||
Turkish automatically.
|
||
|
||
Spelling, grammar and hyphenation stay English-only: this is an interface translation, not Turkish
|
||
proofing. A native-speaker skim of the catalog is welcome.
|
||
|
||
## Revision history
|
||
|
||
| Date | Change | Summary |
|
||
|---|---|---|
|
||
| 2026-10-11 | minor | Turkish catalog (1,307 entries), terminology, scope and regression checks |
|