Files
lightcraft/docs/localization-ka.md
T
aiongg b264557916 i18n: missing translations are reported, never a failure (#2729)
A message a catalog lacks, or translates as an empty string, shows in
English and fails nothing:

- build.rs no longer requires every formats catalog to carry the same
  messages, and tr_format! gets a last arm that formats the English
  source, so a message no catalog has builds.
- Coverage tests (every language translates X) and tests of one
  language's exact wording are gone; the language-switching, layout,
  date, placeholder and user-value tests read the catalog's own value
  instead of a hard-coded translation.
- i18n::tests::translation_gaps_report lists, per language, the plain
  and format messages it lacks and its untranslated What's New lines.
  It always passes; cargo xtask ci
  runs it from the test step's binary after the tests.
- catalogs_load checks that every catalog file is a JSON object of
  strings with each key once; it.json named "Dimensions" twice.
2026-10-23 16:42:28 -04:00

80 lines
5.2 KiB
Markdown

# LightCraft in Georgian
Choose **Edit → Language → ქართული** or **Settings → General → Language**. The choice applies at once
and is saved for the next launch (`language: "ka"` in `ui.json`); the control command is
`app.language.georgian`. `LIGHTCRAFT_LANGUAGE` selects it for headless runs and accepts `ka`, `ka-GE`
and `ka_GE.UTF-8`; the saved value is always `ka`. LightCraft does not follow the system language,
for Georgian as for every other language.
The Georgian catalogs cover every key of the other catalogs plus all command and slider labels:
menus, shortcuts, library, editing, crop, masks, people, import/export, settings, built-in presets and
profiles, history, versions, date headings, status messages, the smart-album rule editor and the
unsaved-changes dialog. The embedded release notes are translated too. Technical errors from lower
layers stay in English, as in the other languages. They were written from the meaning of the English
labels; no proprietary translation resources were consulted.
File names, command ids, template placeholders and albums, presets or metadata you named yourself are
not translated. Descriptions for SAM 3 go to the model unchanged.
## Georgian script
Mkhedruli has no upper and lower case: `i18n::upper_first` leaves Georgian letters alone, and the
interface never uses Mtavruli. Commands are verbal nouns. Counts
are count-neutral, noun first (`იმპორტირებულია ფოტო: 3`); English plural endings are dropped with
`{:.0}`. Dates read `კვირა, 20.09.2026` (`{weekday}, {day:02}.{month:02}.{year}`), months `09.2026`.
Inter has no Georgian letters, so the UI draws Georgian with craft-fonts' Noto Sans Georgian (`Geor`),
like the Thai and Arabic faces: desktop release builds embed it, and a web build made with
`CRAFT_FONTS_DIR` keeps it in the WASM (`crates/engine/build.rs`). The release web build doesn't use
craft-fonts yet, and a build without `CRAFT_FONTS_DIR` has no Georgian face and shows boxes.
## Terminology
| Source | Georgian |
|---|---|
| Library / Develop | ბიბლიოთეკა / დამუშავება |
| File / Edit / View | ფაილი / რედაქტირება / ხედი |
| Settings / General / Language | პარამეტრები / ზოგადი / ენა |
| Import / Export | იმპორტი / ექსპორტი |
| Photos / Albums / Folders | ფოტოები / ალბომები / საქაღალდეები |
| Smart Album | სმარტ-ალბომი |
| Crop | ჩამოჭრა |
| Masks / Masking | ნიღბები / ნიღბვა |
| Heal / Remove | აღდგენა / მოშორება |
| Presets / Profile | პრესეტები / პროფილი |
| History / Versions | ისტორია / ვერსიები |
| Light / Color / Effects / Detail | სინათლე / ფერი / ეფექტები / დეტალი |
| Exposure / Contrast | ექსპოზიცია / კონტრასტი |
| Highlights / Shadows | ღია ტონები / ჩრდილები |
| Whites / Blacks | თეთრები / შავები |
| Texture / Clarity / Dehaze | ტექსტურა / სიცხადე / ბურუსის მოცილება |
| Vibrance / Saturation | სიხალასე / გაჯერება |
| Hue / Luminance | ფერის ტონი / სიკაშკაშე |
| Tint | ტონირება |
| Tone Curve / Color Grading | ტონალური მრუდი / ფერის გრადაცია |
| Sharpening / Noise Reduction | გამკვეთრება / ხმაურის შემცირება |
| Lens Corrections / Geometry | ობიექტივის კორექციები / გეომეტრია |
| Vignette / Grain | ვინიეტი / მარცვლოვნება |
| Feather / Threshold | კიდეების შერბილება / ზღვარი |
| Rating / Flag / Keywords | შეფასება / დროშა / საკვანძო სიტყვები |
| Reset / Revert | ჩამოყრა / წინა ვერსიაზე დაბრუნება |
| Undo / Redo | დაბრუნება / გამეორება |
Please follow this table and the shared ArtCraft Georgian glossary when you add strings.
## Maintenance and checks
Fixed texts: `crates/ui-egui/locales/ka.json` (2,719 entries). Messages with values:
`crates/ui-egui/locales/ka-formats.json` (249 entries). The English keys stay unchanged; Rust checks
the placeholders at build time. Strings not yet in the plain catalog show in English.
```sh
cargo test -p lightcraft-ui-egui i18n::tests -- --nocapture
LIGHTCRAFT_LANGUAGE=ka lightcraft-cli snapshot --demo -o georgian.png --size 1600x1000
```
The tests check placeholders, switching language by menu and control channel, saving, the `ka`
locale tags, dates and that sentence case keeps Georgian lowercase. Messages Georgian lacks show in
English; `i18n::tests::translation_gaps_report` lists them. More notes are in
[localization.md](localization.md).