diff --git a/ATTRIBUTION.md b/ATTRIBUTION.md index 3779b71bc..e876c198c 100644 --- a/ATTRIBUTION.md +++ b/ATTRIBUTION.md @@ -71,4 +71,4 @@ Generated-in-code assets are original and have no file to list: | `crates/ui-egui/src/i18n/hu.tsv` | @Skaywalker | Original Hungarian translations of CADCraft English strings | MIT OR Apache-2.0 (`LICENSE-MIT`, `LICENSE-APACHE`) | No proprietary localization resources copied | | `crates/ui-egui/src/i18n/tr.tsv` | @ogzhnklvz (AI-assisted) | Original Turkish translations of CADCraft English strings | MIT OR Apache-2.0 (`LICENSE-MIT`, `LICENSE-APACHE`) | No proprietary localization resources copied; written from the English strings, no other catalog used as a source; the running app reviewed by a native speaker | | `crates/ui-egui/src/i18n/el.tsv` | @Camthalion77 with ChatGPT (AI-assisted) | Original Greek translations of CADCraft English strings | MIT OR Apache-2.0 (`LICENSE-MIT`, `LICENSE-APACHE`) | No proprietary localization resources copied; independent native proofreading pending | -| `crates/ui-egui/src/i18n/ka.tsv` | @devius with Claude (AI-assisted) | Original Georgian translations of CADCraft English strings | MIT OR Apache-2.0 (`LICENSE-MIT`, `LICENSE-APACHE`) | No proprietary localization resources copied; written from the English strings, no other catalog used as a source; no font assets added (the Georgian face comes from craft-fonts) | +| `crates/ui-egui/src/i18n/ka.tsv` | Davit Matchakhelidze (@devius), native speaker, with Claude Code | Original Georgian translations of CADCraft English strings | MIT OR Apache-2.0 (`LICENSE-MIT`, `LICENSE-APACHE`) | No proprietary localization resources copied; written from the English strings, no other catalog used as a source; terminology and doubtful strings decided by a native Georgian speaker; no font assets added (the Georgian face comes from craft-fonts) | diff --git a/ROADMAP.md b/ROADMAP.md index 93b3a701e..b093a478a 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -95,7 +95,7 @@ Ukrainian and German. Detail: [localization-parity.md](docs/localization-parity. | Indonesian | none | 0% | | Japanese | none | 0% | | Greek | complete current catalog | 1,330 current source keys; independent proofreading pending | -| Georgian | complete current catalog | 1,383 rows; native proofreading pending | +| Georgian | complete current catalog | 1,383 rows; terminology decided by a native speaker | | German | partial | ≈ 100% of the catalog (989 rows) | | Korean | none | 0% | | Vietnamese | none | 0% | diff --git a/crates/ui-egui/src/i18n/ka.tsv b/crates/ui-egui/src/i18n/ka.tsv index 25512c91f..5a4d7b4bb 100644 --- a/crates/ui-egui/src/i18n/ka.tsv +++ b/crates/ui-egui/src/i18n/ka.tsv @@ -16,7 +16,7 @@ Apply გამოყენება Attach DWG... DWG-ის მიმაგრება... - Bind ჩაშენება + Bind მიბმა Detach მოხსნა Loaded ჩატვირთულია Make it a block of this drawing, keeping its layer names ამ ნახაზის ბლოკად ქცევა, შრეების სახელების შენარჩუნებით @@ -94,12 +94,12 @@ Auto Constrain ავტომატური შეზღუდვა AutoConstrain ავტოშეზღუდვა Axis, End ღერძი, ბოლო - Base საბაზო წერტილი + Base ბაზა Baseline საბაზისო ხაზი Batch Publish პაკეტური გამოქვეყნება Binary assets added დამატებული ბინარული ფაილები Binary assets removed წაშლილი ბინარული ფაილები - Bind... ჩაშენება... + Bind... მიბმა... Blend გადასვლა Block ბლოკი Block Attribute Manager... ბლოკის ატრიბუტების მენეჯერი... @@ -256,8 +256,8 @@ Drafting ხაზვა Drafting Settings ხაზვის პარამეტრები Drafting Settings... ხაზვის პარამეტრები... - Draw ხაზვა - Draw Order ხაზვის რიგი + Draw ხატვა + Draw Order ხატვის რიგი Drawing (DWG) ნახაზი (DWG) Drawing (DXF) ნახაზი (DXF) Drawing Limits ნახაზის ზღვრები @@ -269,12 +269,12 @@ Dynamic Dimensions დინამიკური ზომები Dynamic Input დინამიკური შეყვანა Dynamic Input (F12) დინამიკური შეყვანა (F12) - E ა + E E Edit რედაქტირება Edit Attributes... ატრიბუტების რედაქტირება... Edit Text... ტექსტის რედაქტირება... Edit Table Cell ცხრილის უჯრის რედაქტირება - Elevation ნიშნული + Elevation დონე Ellipse ელიფსი Elliptical Arc ელიფსური რკალი Enable Dynamic Input (F12) დინამიკური შეყვანის ჩართვა (F12) @@ -340,7 +340,7 @@ Export Table ცხრილის ექსპორტი Export to PDF... PDF-ად ექსპორტი... Express Tools Express Tools - Expression ექსპრესია + Expression გამოსახულება Extend გაგრძელება Extension გაგრძელება Extents საზღვრები @@ -358,7 +358,7 @@ First commit პირველი კომიტი Fit Points მისადაგების წერტილები Fix ფიქსაცია - Flatten Objects ობიექტების გაბრტყელება + Flatten Objects ობიექტების სიბრტყეზე დაგეგმილება Format ფორმატი Freehand ხელით ხაზვა Freeze გაყინვა @@ -367,7 +367,7 @@ Freeze/Thaw გაყინვა/გალღობა Freeze/Thaw in all viewports გაყინვა/გალღობა ყველა ხედვის არეში Freeze/Thaw in the current viewport გაყინვა/გალღობა მიმდინარე ხედვის არეში - From ათვლის წერტილიდან + From წერტილიდან From Template... შაბლონიდან... General ზოგადი Geometric Center გეომეტრიული ცენტრი @@ -423,14 +423,14 @@ Collect შეგროვება Collect Multileaders მულტიმიმთითებლების შეგროვება Edit Multileader მულტიმიმთითებლის რედაქტირება - In გადიდება + In მოახლოება In-window Menu Bar მენიუს ზოლი ფანჯარაში Include in new selection set ახალ მონიშნულ ნაკრებში ჩართვა Increment angle კუთხის ბიჯი Index Color ინდექსური ფერი Index color: {index} ინდექსური ფერი: {index} Infer Constraints შეზღუდვების ავტომატური დადგენა - Inquiry ინფორმაცია + Inquiry მოთხოვნა Insert ჩასმა Insert Block ბლოკის ჩასმა Insert Column სვეტის ჩასმა @@ -510,7 +510,7 @@ List Groups ჯგუფების სია List Layer States შრის მდგომარეობების სია List Layouts განლაგებების სია - List System Variables სისტემური ცვლადების სია + List System Variables სისტემის ცვლადების სია List Text Styles ტექსტის სტილების სია Load all ყველას ჩატვირთვა Load... ჩატვირთვა... @@ -525,7 +525,7 @@ MODEL მოდელი MText MText Magenta მეწამული - Major line every მთავარი ხაზის ბიჯი + Major line every ყოველი N-ე ხაზი მთავარია Make Current მიმდინარედ დაყენება Make Object's Layer Current ობიექტის შრის მიმდინარედ დაყენება Make... შექმნა... @@ -556,7 +556,7 @@ Multiple Point რამდენიმე წერტილი My ჩემი My properties: not available yet ჩემი თვისებები: ჯერ ხელმისაწვდომი არ არის - N ჩ + N N Name სახელი Name (A–Z) სახელი (ა–ჰ) Named Views... დასახელებული ხედები... @@ -616,7 +616,7 @@ Ortho Mode ორთო რეჟიმი Ortho Mode (F8) ორთო რეჟიმი (F8) Osnap Settings... ობიექტზე მიბმის პარამეტრები... - Out დაპატარავება + Out დაშორება Over-constrained ზედმეტად შეზღუდული Override გადაფარვა PAPER ფურცელი @@ -646,7 +646,7 @@ Plot Preview ნახვა ამობეჭდვამდე Plot Window ბეჭდვის ფანჯარა Plot style ბეჭდვის სტილი - Plot style attached to მიმაგრებული ბეჭდვის სტილი + Plot style attached to ბეჭდვის სტილი მიმაგრებულია Plot style table ბეჭდვის სტილების ცხრილი Plot Style... ბეჭდვის სტილი... Plot Style Manager ბეჭდვის სტილების მენეჯერი @@ -710,7 +710,7 @@ Purge გაწმენდა Pyramid პირამიდა Quadrant კვადრანტი - Query Entities ობიექტების მოთხოვნა + Query Entities ობიექტების გამოთხოვნა Quick სწრაფი Quick Dimension სწრაფი ზომა Quick Properties სწრაფი თვისებები @@ -726,7 +726,7 @@ Read-only მხოლოდ წასაკითხი Real name ნამდვილი სახელი Realtime რეალურ დროში - Reassociate Dimensions ზომების ხელახლა მიბმა + Reassociate Dimensions ზომების ხელახლა ასოცირება Recent ბოლოდროინდელი Recent Commands ბოლოდროინდელი ბრძანებები Recent Input ბოლოდროინდელი შეყვანა @@ -767,7 +767,7 @@ Right მარჯვნივ Rotate შემობრუნება Rotation შემობრუნება - S ს + S S Save შენახვა Save (⌘S) შენახვა (⌘S) Save As შენახვა როგორც @@ -878,7 +878,7 @@ Single Line Text ერთსტრიქონიანი ტექსტი Single Point ერთი წერტილი Single... ცალკეული... - Smooth გლუვი შეერთება + Smooth დაგლუვება Snap მიბმა Snap Mode მიბმის რეჟიმი Snap Mode (F9) მიბმის რეჟიმი (F9) @@ -969,7 +969,7 @@ Indicate selection area მიუთითეთ მონიშვნის არე Interface language ინტერფეისის ენა Interface theme ინტერფეისის თემა - Keep the system cursor visible over the drawing area სისტემური კურსორი ნახაზის არეზე ხილული დარჩეს + Keep the system cursor visible over the drawing area სისტემის კურსორი ნახაზის არეზე ხილული დარჩეს Largest array ყველაზე დიდი მასივი Layout paper განლაგების ფურცელი Model background მოდელის ფონი @@ -988,7 +988,7 @@ Reset keeps the interface language. ჩამოყრის შემდეგ ინტერფეისის ენა უცვლელი რჩება. Reset to Defaults ნაგულისხმევზე დაბრუნება Save new drawings as ახალი ნახაზების შენახვა როგორც - Screen magnifiers, screen readers and recorders follow the system cursor. ეკრანის გამადიდებლები, ეკრანის წამკითხველები და ჩამწერები სისტემურ კურსორს მიჰყვება. + Screen magnifiers, screen readers and recorders follow the system cursor. ეკრანის გამადიდებლები, ეკრანის წამკითხველები და ჩამწერები სისტემის კურსორს მიჰყვება. Select objects first, then choose a command ჯერ მონიშნეთ ობიექტები, შემდეგ აირჩიეთ ბრძანება Selection მონიშვნა Selection Area Effect მონიშვნის არის ეფექტი @@ -1079,7 +1079,7 @@ Sphere სფერო Spline სპლაინი Spline Edit სპლაინის რედაქტირება - Stack (type 1/2 then select) წილადი (აკრიფეთ 1/2 და მონიშნეთ) + Stack (type 1/2 then select) დასტად დალაგება (აკრიფეთ 1/2 და მონიშნეთ) Standard სტანდარტული Start დასაწყისი Start Width საწყისი სიგანე @@ -1191,12 +1191,12 @@ Viewport scale ხედვის არის მასშტაბი Viewport {id} ხედვის არე {id} Viewports ხედვის არეები - W დ + W W WCS WCS White თეთრი Width factor სიგანის კოეფიციენტი Window ფანჯარა - Wipeout დამფარავი არე + Wipeout მასკირება Workspace Switching სამუშაო სივრცის გადართვა Write Block ბლოკის ჩაწერა Xline დამხმარე ხაზი @@ -1206,9 +1206,9 @@ Zoom All მასშტაბი: ყველაფერი Zoom Dynamic მასშტაბი: დინამიკური Zoom Extents მასშტაბი: საზღვრები - Zoom In გადიდება + Zoom In მოახლოება Zoom Object მასშტაბი: ობიექტი - Zoom Out დაპატარავება + Zoom Out დაშორება Zoom Previous მასშტაბი: წინა Zoom Realtime მასშტაბი: რეალურ დროში Zoom Window მასშტაბი: ფანჯარა @@ -1229,7 +1229,7 @@ Hide CADCraft CADCraft-ის დამალვა Hide Others სხვების დამალვა Accessibility ხელმისაწვდომობა - Show System Cursor სისტემური კურსორის ჩვენება + Show System Cursor სისტემის კურსორის ჩვენება Animation Effects ანიმაციის ეფექტები Animation effects ანიმაციის ეფექტები Interface scale ინტერფეისის მასშტაბი @@ -1242,7 +1242,7 @@ Delete Current Scale მიმდინარე მასშტაბის წაშლა Add/Delete Scales... მასშტაბების დამატება/წაშლა... Synchronize Multiple-scale Positions მრავალმასშტაბიანი პოზიციების სინქრონიზაცია - Annotative Update ანოტაციურის განახლება + Annotative Update ანოტაციური განახლება Show Annotative Objects ანოტაციური ობიექტების ჩვენება Current Scale Only მხოლოდ მიმდინარე მასშტაბი All Scales ყველა მასშტაბი @@ -1287,7 +1287,7 @@ Hatch Pattern დაშტრიხვის ნიმუში Search for pattern ნიმუშის ძიება Run Script... სკრიპტის გაშვება... - Query Texts ტექსტების მოთხოვნა + Query Texts ტექსტების გამოთხოვნა Analyze Shapes ფიგურების ანალიზი Hatch Pick დაშტრიხვის არჩევა Hatch and Gradient დაშტრიხვა და გრადიენტი @@ -1369,7 +1369,7 @@ X X Y Y menu Dimension ზომების დატანა -menu Draw ხაზვა +menu Draw ხატვა menu Modify შეცვლა menu View ხედი Arrow size ისრის ზომა diff --git a/crates/ui-egui/src/i18n/tests.rs b/crates/ui-egui/src/i18n/tests.rs index 052cae5fb..9455b716b 100644 --- a/crates/ui-egui/src/i18n/tests.rs +++ b/crates/ui-egui/src/i18n/tests.rs @@ -1203,7 +1203,7 @@ fn georgian_locales_preferences_and_single_count_form() { assert_eq!(t("Open"), "გახსნა"); assert_eq!(menu("Dimension"), "ზომების დატანა"); assert_eq!(t("Dimension"), "ზომა"); - assert_eq!(menu("Draw"), "ხაზვა"); + assert_eq!(menu("Draw"), "ხატვა"); assert_eq!(menu("File"), "ფაილი"); }); assert_eq!(t("Open"), "Open", "language must not leak outside a render scope"); @@ -1237,7 +1237,7 @@ fn georgian_live_switch_keeps_drawing_and_falls_back_without_font() { assert_eq!(app.fonts_language, Some(app.language())); let text = render(&mut app, &ctx); if supported { - for label in ["თვისებები", "ფაილი", "ხედი", "ხაზვა", "ზომების დატანა", "მიუთითეთ პირველი წერტილი"] + for label in ["თვისებები", "ფაილი", "ხედი", "ხატვა", "ზომების დატანა", "მიუთითეთ პირველი წერტილი"] { assert!(text.contains(label), "missing {label}: {text}"); } diff --git a/docs/localization-parity.md b/docs/localization-parity.md index a4ededd9b..0b2ae3745 100644 --- a/docs/localization-parity.md +++ b/docs/localization-parity.md @@ -70,7 +70,7 @@ plus native review by a human; extending the catalog to the remaining English-on | Swedish | sv | 1,330 catalog rows; reference catalog, marked UI literals and menu headings covered (no gaps reported) | dialogs and tooltips yes; contextual menu headings; command reference searchable in Swedish | Latin: yes (bundled egui proportional and monospace fonts; å ä ö é and Swedish quotes tested) | AI-assisted (Claude Code) by @holmbom; terminology and the running app reviewed by a native speaker | complete current catalog; English-only interface gaps remain | line-by-line proofreading + shared English-only UI work | | Italian | it | 1,227 catalog rows; reference catalog and marked UI literals covered | dialogs and tooltips yes; contextual menu headings (Visualizza / Vista, Edita / Modifica); command reference searchable in Italian | Latin: yes (bundled egui fonts; accented letters tested) | AI-assisted by Emanuele Bottelli (Claude), written from the English strings with Italian desktop-CAD vocabulary; no native proofreading pass yet | complete current catalog; English-only interface gaps remain | native review + shared English-only UI work | | Hungarian | hu | 1,326 catalog rows; reference catalog, marked UI literals and menu headings covered (no gaps reported) | dialogs and tooltips yes; contextual menu headings; command reference searchable in Hungarian | Latin: yes (bundled egui proportional and monospace fonts; ő ű Ő Ű and the other accented letters tested) | translated by @Skaywalker from the English strings; independent native proofreading pending | complete current catalog; English-only interface gaps remain | native proofreading + shared English-only UI work | -| Georgian | ka | 1,383 catalog rows (1,377 ordinary, 4 menu, 2 count); the existing catalog union, marked UI literals and menu headings covered (no gaps reported) | dialogs and tooltips yes; contextual menu headings (ზომების დატანა / ზომა); command reference searchable in Georgian | Georgian (Mkhedruli): the craft-fonts Noto Sans Georgian (`Geor`) face, embedded in release and web builds; English fallback without it; Mtavruli never used (tested) | AI-assisted (Claude), written from the English strings with Georgian technical-drawing vocabulary; native proofreading pending | complete current catalog; English-only interface gaps remain | native proofreading + shared English-only UI work | +| Georgian | ka | 1,383 catalog rows (1,377 ordinary, 4 menu, 2 count); the existing catalog union, marked UI literals and menu headings covered (no gaps reported) | dialogs and tooltips yes; contextual menu headings (ზომების დატანა / ზომა); command reference searchable in Georgian | Georgian (Mkhedruli): the craft-fonts Noto Sans Georgian (`Geor`) face, embedded in release and web builds; English fallback without it; Mtavruli never used (tested) | Written with Claude Code from the meaning of each English string; terminology and doubtful strings decided by a native Georgian speaker (@devius) | complete current catalog; English-only interface gaps remain | shared English-only UI work | | Turkish | tr | 1,330 catalog rows; reference catalog, marked UI literals and menu headings covered (no gaps reported) | dialogs and tooltips yes; contextual menu headings (Ölçülendirme / Ölçü); command reference searchable in Turkish | Latin: yes (bundled egui proportional and monospace fonts; Ç Ğ İ Ö Ş Ü ç ğ ı ö ş ü tested) | AI-assisted by @ogzhnklvz, written from the English strings with Turkish desktop-CAD vocabulary; the running app reviewed by a native speaker | complete current catalog; English-only interface gaps remain | line-by-line proofreading + shared English-only UI work | Other languages shipped: Ukrainian, Brazilian Portuguese, German, Czech, Russian, French, Italian, Korean, Swedish, Hungarian, Turkish, Greek and Georgian. @@ -87,7 +87,7 @@ each language, which needs humans. Translations parallelise fully once the catal | Date | Change | Summary | |---|---|---| -| 2026-10-23 | minor | Georgian (`ka`) added: 1,383 rows (the existing catalog union), single count form, four menu headings, prompt keywords kept in English; the craft-fonts `Geor` face in release and web builds (pin a71c20e3); locale/preferences/menu/live-switch/dialog/font/no-Mtavruli tests; native proofreading pending | +| 2026-10-23 | minor | Georgian (`ka`) added: 1,383 rows (the existing catalog union), single count form, four menu headings, prompt keywords kept in English; the craft-fonts `Geor` face in release and web builds (pin a71c20e3); locale/preferences/menu/live-switch/dialog/font/no-Mtavruli tests; terminology decided by a native speaker | | 2026-10-15 | minor | Greek (`el`) catalog: 1,330 rows, context/plural/locale/font tests; review pending | | 2026-10-14 | minor | Swedish completed: 95 rows for strings added since (Hatch and Gradient dialog, Block Editor, REFEDIT, multileader editing, Options selection settings, MTEXT editor, recent files); 1,330 rows, every key of the Ukrainian reference catalog | | 2026-10-18 | minor | Turkish added: 1,330 rows (the existing catalog union), single count form, four menu headings, prompt keywords kept in English; locale/preferences/menu/live-switch/dialog/font tests; no gaps in the marked UI literals; AI-assisted, the running app reviewed by a native speaker | diff --git a/docs/localization.md b/docs/localization.md index 03af02bfb..7ebdea1a7 100644 --- a/docs/localization.md +++ b/docs/localization.md @@ -118,16 +118,16 @@ follow-up work. ## Georgian (`ka`) interface Georgian has **1,383 rows**: 1,377 ordinary labels, four contextual menu headings (**ზომების -დატანა** for the Dimension menu, **ზომა** for the object; **ხაზვა** for Draw) and two single-form +დატანა** for the Dimension menu, **ზომა** for the object; **ხატვა** for Draw) and two single-form count templates, since a Georgian noun stays singular after a numeral ("5 კომიტი"). It covers the union of the existing catalogs, and no marked UI literal falls back to English. Commands are verbal nouns (**შენახვა**, **შემობრუნება**); prompts read "მიუთითეთ …" for Specify, "შეიყვანეთ …" for Enter and "მონიშნეთ …" for Select, and clickable keywords keep the spelling the engine accepts. Georgian has no letter case, so nothing is capitalised, and Mtavruli (a display style, not upper -case) never appears; a test checks that. The translation is original, AI-assisted work written from -the English strings with Georgian technical-drawing vocabulary (შრე, დაშტრიხვა, მომრგვალება, ფასკა, -წანაცვლება, ობიექტზე მიბმა, ხედვის არე); no other product's localization was consulted. Native -proofreading of the running app is still to do. +case) never appears; a test checks that. The translation is original: written with Claude Code from +the meaning of each English string, with Georgian technical-drawing vocabulary (შრე, დაშტრიხვა, +მომრგვალება, ფასკა, წანაცვლება, ობიექტზე მიბმა, ხედვის არე); terminology and doubtful strings +were decided by a native Georgian speaker (@devius). No other product's localization was consulted. ## Adding translations