diff --git a/ATTRIBUTION.md b/ATTRIBUTION.md index 76ad6a56..e8dd503b 100644 --- a/ATTRIBUTION.md +++ b/ATTRIBUTION.md @@ -69,3 +69,4 @@ Generated-in-code assets are original and have no file to list: | `crates/ui-egui/src/i18n/ko.tsv` | @huk082 (AI-assisted) | Original Korean translations of CADCraft English strings | MIT OR Apache-2.0 (`LICENSE-MIT`, `LICENSE-APACHE`) | No proprietary localization resources copied; no font assets added | | `crates/ui-egui/src/i18n/ar.tsv` | @hasan-sdaif | Original Arabic translations of CADCraft English strings | MIT OR Apache-2.0 (`LICENSE-MIT`, `LICENSE-APACHE`) | No proprietary localization resources copied | | `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 | diff --git a/README.md b/README.md index ddaa2a41..4bf49072 100644 --- a/README.md +++ b/README.md @@ -111,7 +111,7 @@ numbers): | Layouts & plotting | Paper-space layouts, viewports (scale, lock, per-viewport layer freeze), MSPACE/PSPACE through viewports, page setups, PLOT and EXPORTPDF | | Parametric | Geometric and dimensional constraints, AUTOCONSTRAIN, PARAMETERS with expressions, conflict detection; constraints re-solve after every edit | | Grips | Hot grips with Space to cycle Stretch, Move, Rotate, Scale and Mirror | -| Interface languages | English, Ukrainian (Українська), Brazilian Portuguese (Português (Brasil)), German (Deutsch), Spanish (Español), Czech (Čeština), Russian (Русский), French (Français), Simplified Chinese (简体中文, with an installed CJK font), Italian (Italiano), Korean (한국어, with an installed Hangul font), Swedish (Svenska), Arabic (العربية, with an installed Arabic font) and Hungarian (Magyar), live switching and a remembered Auto/system-language choice; [details](docs/localization.md) | +| Interface languages | English, Ukrainian (Українська), Brazilian Portuguese (Português (Brasil)), German (Deutsch), Spanish (Español), Czech (Čeština), Russian (Русский), French (Français), Simplified Chinese (简体中文, with an installed CJK font), Italian (Italiano), Korean (한국어, with an installed Hangul font), Swedish (Svenska), Arabic (العربية, with an installed Arabic font), Hungarian (Magyar) and Turkish (Türkçe), live switching and a remembered Auto/system-language choice; [details](docs/localization.md) | | Automation | MCP server, JSON control channel, `cadcraft-cli` (info, convert, run, commands, mcp) | ## Quick start diff --git a/crates/ui-egui/src/i18n/mod.rs b/crates/ui-egui/src/i18n/mod.rs index a87eacf1..d06962fd 100644 --- a/crates/ui-egui/src/i18n/mod.rs +++ b/crates/ui-egui/src/i18n/mod.rs @@ -41,10 +41,12 @@ pub enum Preference { Arabic, #[serde(rename = "hu")] Hungarian, + #[serde(rename = "tr")] + Turkish, } impl Preference { - pub const ALL: [Self; 15] = [ + pub const ALL: [Self; 16] = [ Self::Auto, Self::English, Self::Ukrainian, @@ -60,6 +62,7 @@ impl Preference { Self::Swedish, Self::Arabic, Self::Hungarian, + Self::Turkish, ]; /// The codes a preference can be given as, for messages ("auto, en or uk"). @@ -88,6 +91,7 @@ impl Preference { Self::Swedish => "sv", Self::Arabic => "ar", Self::Hungarian => "hu", + Self::Turkish => "tr", } } @@ -114,6 +118,7 @@ impl Preference { Self::Swedish => "Svenska", Self::Arabic => "العربية", Self::Hungarian => "Magyar", + Self::Turkish => "Türkçe", } } @@ -142,6 +147,7 @@ impl Preference { Self::Swedish => "sv", Self::Arabic => "ar", Self::Hungarian => "hu", + Self::Turkish => "tr", Self::Auto => locales.iter().find_map(|s| locale_language(s)).unwrap_or("en"), } } @@ -158,7 +164,7 @@ pub struct Language { catalog: OnceLock>, } -pub static LANGUAGES: [Language; 14] = [ +pub static LANGUAGES: [Language; 15] = [ Language { code: "en", name: "English", source: "", plural: plural_en, plural_forms: 2, catalog: OnceLock::new() }, Language { code: "uk", name: "Українська", source: include_str!("uk.tsv"), plural: plural_uk, plural_forms: 3, catalog: OnceLock::new() @@ -195,6 +201,8 @@ pub static LANGUAGES: [Language; 14] = [ Language { code: "ar", name: "العربية", source: include_str!("ar.tsv"), plural: plural_arabic, plural_forms: 6, catalog: OnceLock::new() }, // Hungarian uses the singular after a numeral, so one form covers every count (the Korean rule). Language { code: "hu", name: "Magyar", source: include_str!("hu.tsv"), plural: plural_ko, plural_forms: 1, catalog: OnceLock::new() }, + // Turkish keeps a noun singular after a number ("3 commit"), so like Korean it has one form. + Language { code: "tr", name: "Türkçe", source: include_str!("tr.tsv"), plural: plural_ko, plural_forms: 1, catalog: OnceLock::new() }, ]; /// BCP 47 and POSIX locale tags, including `uk-UA`, `uk_UA.UTF-8` and `pt_BR.UTF-8`. diff --git a/crates/ui-egui/src/i18n/tests.rs b/crates/ui-egui/src/i18n/tests.rs index 286444b9..851f7b52 100644 --- a/crates/ui-egui/src/i18n/tests.rs +++ b/crates/ui-egui/src/i18n/tests.rs @@ -39,7 +39,7 @@ fn catalog_is_valid_and_preserves_placeholders_and_ellipses() { /// to English for what they don't cover yet; their gaps are reported, not enforced, so adding a /// command doesn't require a row in every language. const REQUIRED: &[&str] = &["uk"]; -const REPORTED: &[&str] = &["pt-BR", "de", "es", "cs", "ru", "fr", "zh", "it", "ko", "sv", "ar", "hu"]; +const REPORTED: &[&str] = &["pt-BR", "de", "es", "cs", "ru", "fr", "zh", "it", "ko", "sv", "ar", "hu", "tr"]; fn check(language: &str, what: &str, missing: Vec) { if REQUIRED.contains(&language) { @@ -1021,3 +1021,111 @@ fn default_fonts_cover_hungarian_letters_and_quotes() { } }); } + +#[test] +fn turkish_locales_preferences_and_single_count_form() { + for tag in ["tr", "tr-TR", "tr_TR.UTF-8", "TR-tr", " tr-TR ", "tr-CY"] { + assert_eq!(locale_language(tag), Some("tr"), "{tag}"); + } + for tag in ["tur", "türkçe"] { + assert_eq!(locale_language(tag), None, "{tag}"); + } + assert_eq!(Preference::parse("tr"), Some(Preference::Turkish)); + assert_eq!(Preference::Turkish.name(), "Türkçe"); + assert_eq!(Preference::Turkish.resolve(&["en-US".into()]), "tr"); + assert_eq!(Preference::Auto.resolve(&["pl-PL".into(), "tr-TR".into(), "en-US".into()]), "tr"); + let mut app = CadApp::new(Session::new(), Services::default()); + app.ui.interface_language = Preference::Turkish; + let mut restored = CadApp::new(Session::new(), Services::default()); + restored.load_prefs(&app.prefs_json()); + assert_eq!(restored.ui.interface_language, Preference::Turkish); + with_language("tr", || { + // A Turkish noun stays singular after a number, 1 included. + for n in [0, 1, 2, 5, 21, u64::MAX] { + assert_eq!(count(n, "{n} contributor", "{n} contributors"), format!("{n} katkıda bulunan")); + assert_eq!(count(n, "{n} commit", "{n} commits"), format!("{n} commit")); + } + assert_eq!(format("Current: {color}", &[("color", "{n} Open".into())]), "Geçerli: {n} Open"); + }); +} + +#[test] +fn turkish_menu_headings_keep_object_labels_and_prompt_keywords() { + with_language("tr", || { + assert_eq!(menu("Dimension"), "Ölçülendirme"); + assert_eq!(t("Dimension"), "Ölçü"); + assert_eq!(menu("View"), "Görünüm"); + assert_eq!(menu("Draw"), "Çiz"); + assert_eq!(menu("Modify"), "Değiştir"); + assert_eq!(menu("Edit"), "Düzenle"); + assert_eq!(menu("File"), "Dosya"); + // Clickable keywords keep the spelling the engine accepts. + assert_eq!(t("Enter Top, Zero or Bottom."), "Top, Zero veya Bottom girin."); + assert_eq!(t("Specify first point on circle: _tan to"), "Daire üzerindeki ilk noktayı belirtin: _tan to"); + }); +} + +#[test] +fn live_turkish_switch_preserves_drawing_command_and_saved_choice() { + let mut app = CadApp::new(Session::new(), Services::default()); + app.ui.in_window_menu = true; + app.session.state_mut().unwrap().title = "Open".into(); + let ctx = egui::Context::default(); + app.logic(&ctx); + assert!(render(&mut app, &ctx).contains("Properties")); + app.start("line"); + let prompt = crate::control::cmdline_state(&app); + let commands = crate::control::all_commands(&app); + app.run("ui.language", json!({"lang":"tr"})).unwrap(); + let text = render(&mut app, &ctx); + for label in ["Özellikler", "Dosya", "Görünüm", "Çiz", "Ölçülendirme", "İlk noktayı belirtin"] { + assert!(text.contains(label), "missing {label}: {text}"); + } + assert_eq!(app.language(), "tr"); + assert_eq!(app.session.state().unwrap().title, "Open"); + assert_eq!(crate::control::cmdline_state(&app), prompt); + assert_eq!(crate::control::all_commands(&app), commands); + app.run("ui.language", json!({"lang":"en"})).unwrap(); + assert!(render(&mut app, &ctx).contains("Properties")); +} + +#[test] +fn turkish_dialogs_render_with_stable_ids() { + for (dialog, heading) in [ + ("dsettings", "Çizim Ayarları"), + ("about", "CADCraft Hakkında"), + ("blocks", "Bloklar"), + ("layers", "Katman Özellikleri Yöneticisi"), + ("qselect", "Hızlı Seçim"), + ("parameters", "Parametre Yöneticisi"), + ("language", "Türkçe"), + ("options:preferences", "Kullanıcı Tercihleri"), + ] { + let mut app = CadApp::new(Session::new(), Services::default()); + app.ui.interface_language = Preference::Turkish; + app.ui.dialog = Some(dialog.into()); + let ctx = egui::Context::default(); + app.logic(&ctx); + let text = render(&mut app, &ctx); + assert!(text.contains(heading), "{dialog}: {text}"); + assert_eq!(app.ui.dialog.as_deref(), Some(dialog)); + } +} + +#[test] +fn default_fonts_cover_every_turkish_letter_in_the_catalog() { + let ctx = egui::Context::default(); + let mut output = ctx.run_ui(Default::default(), |_| {}); + output.textures_delta.clear(); + let mut letters: BTreeSet<_> = "ÇĞİÖŞÜçğıöşü".chars().collect(); + let translations = include_str!("tr.tsv").lines().filter(|l| !l.starts_with('#')).filter_map(|l| l.rsplit('\t').next()); + letters.extend(translations.flat_map(str::chars).filter(|c| !c.is_ascii() && c.is_alphabetic())); + ctx.fonts_mut(|view| { + for family in [egui::FontFamily::Proportional, egui::FontFamily::Monospace] { + let mut font = view.fonts.font(&family); + for c in &letters { + assert!(font.characters().contains_key(c), "missing {c} in {family:?}"); + } + } + }); +} diff --git a/crates/ui-egui/src/i18n/tr.tsv b/crates/ui-egui/src/i18n/tr.tsv new file mode 100644 index 00000000..f1240778 --- /dev/null +++ b/crates/ui-egui/src/i18n/tr.tsv @@ -0,0 +1,1346 @@ +# CADCraft Turkish interface catalog — original translations by the CADCraft contributors. +# License: MIT OR Apache-2.0 (the repository LICENSE-MIT and LICENSE-APACHE). +# Written from CADCraft's English strings; no proprietary translations were copied. +# Clean room: every entry is written from the plain meaning of the English label in ordinary +# Turkish computing and technical-drawing vocabulary (Katman, Ölçülendirme, Tarama, Yuvarlatma, +# Pah, Öteleme, Kırp, Uzat, Nesne Kenetleme, Görünüm Penceresi, Yerleşim). No other product's +# Turkish interface, string table or terminology database was consulted, and no other catalog is +# used as a source. +# UTF-8: contextEnglish sourceTurkish translation. +# Empty context = ordinary label; @plural = one form with {n} (a Turkish noun stays singular after +# a number: "3 commit", "5 katkıda bulunan"); menu = a menu heading where it differs from the label. +# Prompts use "… girin" for Enter and "… belirtin" for Specify. Suffixes are never attached to a +# {placeholder}, since they follow the vowels of the word before them. +# Keep command IDs, keywords (Top, Zero, Bottom, _tan to, nX/nXP, Multiple, PICKADD, QPMODE), +# technology/product names and user data unchanged. + + Cancel İptal + OK Tamam + or [ veya [ + % of all commits Tüm commit'lerin yüzdesi + * Wildcard Match * Joker Karakter Eşleşmesi + *VARIES* *DEĞİŞKEN* + + | Top | 2D Wireframe + | Üst | 2B Tel Kafes + +Bin +Bin + +LOC +LOC + 1 Viewport 1 Görünüm Penceresi + 2 Points 2 Nokta + 2 Viewports 2 Görünüm Penceresi + 2D Solid 2B Katı + 3 Points 3 Nokta + 3 Viewports 3 Görünüm Penceresi + 3D Face 3B Yüzey + 3D Mouse 3B Fare + 3D Mouse Navigation 3B Fare ile Gezinme + 3D Mouse... 3B Fare... + 3D Operations 3B İşlemler + 3D Polyline 3B Çoklu Çizgi + 3D mouse busy, possibly 3DxWare or missing device permissions 3B fare meşgul; 3DxWare açık olabilir ya da aygıt izinleri eksik + 3D mouse connected 3B fare bağlandı + 3D mouse disconnected 3B fare bağlantısı kesildi + 3D mouse input could not be started 3B fare girişi başlatılamadı + 3D mouse input is unavailable on this platform 3B fare girişi bu platformda kullanılamıyor + 4 Viewports 4 Görünüm Penceresi + < Less than < Küçüktür + <> Not Equal <> Eşit Değildir + = Equals = Eşittir + > Greater than > Büyüktür + A built-in table: editing it keeps an edited copy in the drawing. Yerleşik bir tablo: düzenlendiğinde düzenlenmiş bir kopyası çizimde tutulur. + A drawing opened from a file keeps that file's format. Bir dosyadan açılan çizim o dosyanın biçimini korur. + A variable name starts with a letter and has only letters, digits and _ Değişken adı bir harfle başlar ve yalnızca harf, rakam ve _ içerir + About Hakkında + About CADCraft CADCraft Hakkında + Absolute Mutlak + Accessibility Erişilebilirlik + Add Ekle + Add Current Scale Geçerli Ölçeği Ekle + Add Leader Kılavuz Çizgisi Ekle + Add Vertex Köşe Noktası Ekle + Add to Working Set Çalışma Kümesine Ekle + Add/Delete Scales... Ölçek Ekle/Sil... + Add: Pick points Ekle: Nokta seç + Add: Select objects Ekle: Nesne seç + Additional angles Ek açılar + Align Hizala + Align Multileaders Çoklu Kılavuzları Hizala + Align Text Metni Hizala + Aligned Hizalı + All Tümü + All Annotation Objects Tüm Açıklama Nesneleri + All Scales Tüm Ölçekler + All Used Layers Kullanılan Tüm Katmanlar + All files Tüm dosyalar + An array that would create more objects than this is refused. Bundan daha fazla nesne oluşturacak bir dizi reddedilir. + Angle Açı + Angular Açısal + Animation Effects Animasyon Efektleri + Animation effects Animasyon efektleri + Annotation Visibility Açıklama Görünürlüğü + Annotation scale Açıklama ölçeği + Annotative Object Scale Açıklamalı Nesne Ölçeği + Annotative Update Açıklamalı Güncelleme + Apparent Intersection Görünür Kesişim + Append to current selection set Geçerli seçim kümesine ekle + Apply Uygula + Apply to: Uygulanacak yer: + Apply true color Gerçek renk uygula + Arc Yay + Arc Length Yay Uzunluğu + Area Alan + Arrange Panel Paneli Düzenle + Array Dizi + Associative İlişkisel + Attach İliştir + Attach DWG... DWG İliştir... + Attribute Öznitelik + Attribute Definition Öznitelik Tanımı + Attribute Display Öznitelik Görünümü + Audit Denetle + Auto (system language) Otomatik (sistem dili) + Auto Constrain Otomatik Kısıtla + AutoConstrain Otomatik Kısıtla + Automatic save every Otomatik kaydetme aralığı + Automatic save file location Otomatik kaydetme dosya konumu + Axis, End Eksen, Uç + B B + Base Taban + Baseline Taban Çizgisi + Batch Publish Toplu Yayımla + Batch Publish... Toplu Yayımla... + Binary assets added Eklenen ikili varlıklar + Binary assets removed Kaldırılan ikili varlıklar + Bind Bağla + Bind... Bağla... + Blend Harmanla + Block Blok + Block Attribute Manager... Blok Öznitelik Yöneticisi... + Block Editor Blok Düzenleyici + Block Reference Blok Referansı + Block to create or edit Oluşturulacak ya da düzenlenecek blok + Block... Blok... + Blocks Bloklar + Blue Mavi + Bold Kalın + Boolean Boole + Bottom left Sol alt + Bottom right Sağ alt + Boundaries Sınırlar + Boundaries picked: {n} Seçilen sınır: {n} + Boundary Sınır + Boundary... Sınır... + Box Kutu + Break Kes + Break At Point Noktadan Kes + Bring Above Objects Nesnelerin Üstüne Getir + Bring Annotations to Front Açıklamaları Öne Getir + Bring to Front En Öne Getir + Bulleted list Madde işaretli liste + ByBlock BloğaGöre + ByColor RengeGöre + ByLayer KatmanaGöre + CADCraft CADCraft + CADCraft Help CADCraft Yardımı + CADCraft keeps these preferences, object snap modes and drafting toggles for your user account and restores them when it starts. CADCraft bu tercihleri, nesne kenetleme kiplerini ve çizim seçeneklerini kullanıcı hesabınız için saklar ve açılışta geri yükler. + Calibrate Kalibre Et + Calibrate 3D Mouse 3B Fareyi Kalibre Et + Cancel İptal + Cartesian (x, y) Kartezyen (x, y) + Center Merkez + Center Line Merkez Çizgisi + Center Mark Merkez İşareti + Center X Merkez X + Center Y Merkez Y + Center Z Merkez Z + Center, Diameter Merkez, Çap + Center, Radius Merkez, Yarıçap + Center, Start, Angle Merkez, Başlangıç, Açı + Center, Start, End Merkez, Başlangıç, Bitiş + Center, Start, Length Merkez, Başlangıç, Uzunluk + Centered Ortalanmış + Chamfer Pah + Change Space Alanı Değiştir + Change to Current Layer Geçerli Katmana Taşı + Changed: {n} Değiştirilen: {n} + Changes apply at once and are kept for next time. Değişiklikler hemen uygulanır ve bir sonraki sefer için saklanır. + Circle Daire + Circumference Çevre + Clear Temizle + Clear Command History Komut Geçmişini Temizle + Clear History Geçmişi Temizle + Clear Recent Files Son Dosyaları Temizle + Click the ruler to add a tab stop, right-click to remove one Sekme durağı eklemek için cetvele tıklayın, kaldırmak için sağ tıklayın + Click to set new origin Yeni orijini belirlemek için tıklayın + Clip Kırp + Clip Viewport Görünüm Penceresini Kırp + Clipboard Pano + Close Kapat + Close All Tümünü Kapat + Close All Other Drawings Diğer Tüm Çizimleri Kapat + Close Array Editing Dizi Düzenlemeyi Kapat + Close Block Editor Blok Düzenleyiciyi Kapat + Close Comparison Karşılaştırmayı Kapat + Closed Kapalı + Coincident Çakışık + Collapse Palettes Paletleri Daralt + Collapse Tool Sets Araç Takımlarını Daralt + Collect Topla + Collect Multileaders Çoklu Kılavuzları Topla + Collinear Doğrusal Hizalı + Color Renk + Color 1 Renk 1 + Color 2 Renk 2 + Color 8 Renk 8 + Color 9 Renk 9 + Color Index Renk Dizini + Color-dependent Renge bağlı + Color... Renk... + Command Aliases Komut Takma Adları + Command History Komut Geçmişi + Command Line Komut Satırı + Command Line History Lines Komut Satırı Geçmiş Satırları + Command Reference Komut Başvurusu + Command line history Komut satırı geçmişi + Commits Commit'ler + Company Şirket + Compare Drawings... Çizimleri Karşılaştır... + Computer-aided design and drafting: an open-source, clean-room CAD application written in pure Rust. Bilgisayar destekli tasarım ve teknik çizim: saf Rust ile yazılmış, açık kaynaklı, clean-room bir CAD uygulaması. + Concentric Eş Merkezli + Cone Koni + Constraint Bars Kısıtlama Çubukları + Constraint Settings Kısıtlama Ayarları + Construction Line Yapı Çizgisi + Contents İçindekiler + Continue Devam + Contributors Katkıda Bulunanlar + Control Vertices Kontrol Köşe Noktaları + Convert Dönüştür + Convert to Arc Yaya Dönüştür + Convert to Line Çizgiye Dönüştür + Copy Kopyala + Copy Full File Path Tam Dosya Yolunu Kopyala + Copy History Geçmişi Kopyala + Copy Layout Yerleşimi Kopyala + Copy Nested Objects İç İçe Nesneleri Kopyala + Copy Selection Seçimi Kopyala + Copy as JSON JSON Olarak Kopyala + Copy with Base Point Taban Noktasıyla Kopyala + Count Say + Count List Sayım Listesi + Count Table Sayım Tablosu + Create Block Blok Oluştur + Create separate hatches Ayrı taramalar oluştur + Creates a user parameter Bir kullanıcı parametresi oluşturur + Crosshair size İmleç boyutu + Crossing selection color: Kesişen seçim rengi: + Ctrl+Enter to finish Bitirmek için Ctrl+Enter + Current Scale Only Yalnızca Geçerli Ölçek + Current layer Geçerli katman + Current selection Geçerli seçim + Current: {color} Geçerli: {color} + Curved Eğri + Custom Özel + Cut Kes + Cyan Camgöbeği + Cylinder Silindir + DWG DWG + DWG Reference... DWG Referansı... + DXF DXF + Dark Koyu + Data Extraction... Veri Çıkarma... + Data Link... Veri Bağlantısı... + Default Varsayılan + Default Save Format Varsayılan Kaydetme Biçimi + Default Save Version Varsayılan Kaydetme Sürümü + Default save version Varsayılan kaydetme sürümü + Default to boundary extents Varsayılan olarak sınır kapsamını kullan + Define Attributes Öznitelik Tanımla + Define Attributes... Öznitelik Tanımla... + Defined width Tanımlı genişlik + Degree Derece + Degrees of Freedom Serbestlik Dereceleri + Degrees of freedom: {n} Serbestlik derecesi: {n} + Delete Sil + Delete Column Sütunu Sil + Delete Constraints Kısıtlamaları Sil + Delete Current Scale Geçerli Ölçeği Sil + Delete Dimension Style Ölçülendirme Stilini Sil + Delete Duplicate Objects Yinelenen Nesneleri Sil + Delete Layer Katmanı Sil + Delete Layer State Katman Durumunu Sil + Delete Layout Yerleşimi Sil + Delete Row Satırı Sil + Delete Text Style Metin Stilini Sil + Delta X Delta X + Delta Y Delta Y + Description Açıklama + Deselect All Tüm Seçimi Kaldır + Detach Ayır + Diameter Çap + Dim style Ölçü stili + Dimension Ölçü + Dimension Break Ölçü Kesme + Dimension Edit Ölçü Düzenleme + Dimension Objects Only Yalnızca Ölçülendirme Nesneleri + Dimension Space Ölçü Aralığı + Dimension Style Override Ölçülendirme Stili Geçersiz Kılma + Dimension Style... Ölçülendirme Stili... + Dimension Text Edit Ölçü Metni Düzenleme + Dimension style Ölçülendirme stili + Dimensional Constraint Boyutsal Kısıtlama + Dimensional Constraint Parameters Boyutsal Kısıtlama Parametreleri + Dimensional Constraints Boyutsal Kısıtlamalar + Disassociate Dimensions Ölçülerin İlişkisini Kaldır + Display Görüntü + Display name Görünen ad + Display plot styles Çizim stillerini göster + Distance Uzaklık + Divide Böl + Do not plot (click: plot) Çizdirme (tıklayın: çizdir) + Donut Halka + Double-click to edit the description Açıklamayı düzenlemek için çift tıklayın + Down Aşağı + Drafting Çizim + Drafting Settings Çizim Ayarları + Drafting Settings... Çizim Ayarları... + Drag Dynamic Grip Dinamik Tutamacı Sürükle + Draw Çiz + Draw Order Çizim Sırası + Drawing (DWG) Çizim (DWG) + Drawing (DXF) Çizim (DXF) + Drawing Limits Çizim Sınırları + Drawing Recovery Manager... Çizim Kurtarma Yöneticisi... + Drawing Template (DWT) Çizim Şablonu (DWT) + Drawing Utilities Çizim Yardımcı Programları + Drawing as bytes Bayt olarak çizim + Drawings (DWG, DXF) Çizimler (DWG, DXF) + Drawings with no file yet are saved in the default version. 0 minutes turns automatic save off. Henüz dosyası olmayan çizimler varsayılan sürümde kaydedilir. 0 dakika otomatik kaydetmeyi kapatır. + Dynamic Dinamik + Dynamic Block Data Dinamik Blok Verileri + Dynamic Block Grips Dinamik Blok Tutamaçları + Dynamic Block Reference Dinamik Blok Referansı + Dynamic Dimensions Dinamik Ölçüler + Dynamic Input Dinamik Giriş + Dynamic Input (F12) Dinamik Giriş (F12) + E D + Edit Düzenle + Edit Array Diziyi Düzenle + Edit Attributes... Öznitelikleri Düzenle... + Edit Block Definition Blok Tanımını Düzenle + Edit Multileader Çoklu Kılavuzu Düzenle + Edit Reference In-Place Referansı Yerinde Düzenle + Edit Table Cell Tablo Hücresini Düzenle + Edit Text... Metni Düzenle... + Elevation Yükseklik + Ellipse Elips + Elliptical Arc Eliptik Yay + Enable 3D mouse navigation 3B fare ile gezinmeyi etkinleştir + Enable Dynamic Input (F12) Dinamik Girişi Etkinleştir (F12) + End Object Isolation Nesne Yalıtımını Sonlandır + End Width Bitiş Genişliği + End X Bitiş X + End Y Bitiş Y + End angle Bitiş açısı + Endpoint Uç Nokta + Enter Enter + Enter Top, Zero or Bottom. Top, Zero veya Bottom girin. + Enter a fit data option Bir uydurma verisi seçeneği girin + Enter a pattern name Bir desen adı girin + Enter a vertex editing option Bir köşe noktası düzenleme seçeneği girin + Enter an option Bir seçenek girin + Enter angle of xline Yapı çizgisinin açısını girin + Enter angle of xline (0) or Yapı çizgisinin açısını girin (0) veya + Enter area of rectangle in current units Dikdörtgenin alanını geçerli birimlerle girin + Enter attribute prompt Öznitelik istemini girin + Enter attribute tag name Öznitelik etiket adını girin + Enter attribute value Öznitelik değerini girin + Enter block name Blok adını girin + Enter constraint type Kısıtlama türünü girin + Enter continuity Süreklilik girin + Enter default attribute value Varsayılan öznitelik değerini girin + Enter degree of spline Eğrinin derecesini girin + Enter delta angle Açı farkını girin + Enter delta length or Uzunluk farkını girin veya + Enter dimension text Ölçü metnini girin + Enter dimension text (<> = measurement) Ölçü metnini girin (<> = ölçülen değer) + Enter dimension value or [name=expression] Ölçü değerini girin veya [name=expression] + Enter dimension variable name to override Geçersiz kılınacak ölçü değişkeninin adını girin + Enter justification type Yaslama türünü girin + Enter leader text Kılavuz metnini girin + Enter mline scale Çoklu çizgi ölçeğini girin + Enter mode Kip girin + Enter name of block to insert Eklenecek bloğun adını girin + Enter new text Yeni metni girin + Enter next point Sonraki noktayı girin + Enter number of columns Sütun sayısını girin + Enter number of data rows Veri satırı sayısını girin + Enter number of items Öğe sayısını girin + Enter number of items along path Yol boyunca öğe sayısını girin + Enter number of sides Kenar sayısını girin + Enter number of turns Tur sayısını girin + Enter percentage length Uzunluk yüzdesini girin + Enter rectangle length Dikdörtgen uzunluğunu girin + Enter rectangle width Dikdörtgen genişliğini girin + Enter scale factor Ölçek faktörünü girin + Enter text Metin girin + Enter text (use \P for new paragraphs) Metin girin (yeni paragraf için \P kullanın) + Enter the number of segments Parça sayısını girin + Enter twist direction of helix Helezonun dönüş yönünü girin + Entire drawing Tüm çizim + Equal Eşit + Erase Sil + Evaluate Değerlendir + Evaluate LISP LISP Değerlendir + Exclude from new selection set Yeni seçim kümesinden hariç tut + Exclude: Hariç tut: + Explode Patlat + Export Dışa Aktar + Export Table Tabloyu Dışa Aktar + Export to PDF... PDF Olarak Dışa Aktar... + Export... Dışa Aktar... + Expression İfade + Extend Uzat + Extension Uzantı + Extents Kapsam + External Reference Dış Referans + External References Dış Referanslar + Extrude Kalınlık Ver + File Dosya + File Tab Dosya Sekmesi + Fillet Yuvarlatma + Filter Filtre + Filters Filtreler + Find and Replace Bul ve Değiştir + Find... Bul... + First İlk + First commit İlk commit + Fit Points Uydurma Noktaları + Fix Sabitle + Flatten Objects Nesneleri Düzleştir + Format Biçim + Freehand Serbest El + Freeze Dondur + Freeze Layer Katmanı Dondur + Freeze in new viewports Yeni görünüm pencerelerinde dondur + Freeze/Thaw Dondur/Çöz + Freeze/Thaw in all viewports Tüm görünüm pencerelerinde dondur/çöz + Freeze/Thaw in the current viewport Geçerli görünüm penceresinde dondur/çöz + From Kimden + From Template... Şablondan... + General Genel + Geometric Center Geometrik Merkez + Geometric Constraint Geometrik Kısıtlama + Geometric Constraints Geometrik Kısıtlamalar + Geometry Geometri + Get Variable Değişkeni Al + Get View Görünümü Al + Get from the Drawing Çizimden Al + Global Genel + Global width Genel genişlik + Grab bag Karışık + Gradient Degrade + Gradient... Degrade... + Grayscale Gri Tonlama + Green Yeşil + Grid (F7) Izgara (F7) + Grid Display Izgara Görünümü + Grid On (F7) Izgara Açık (F7) + Grid snap Izgara kenetlemesi + Grid spacing Izgara aralığı + Grip Edit Tutamaçla Düzenle + Grip Mirror Tutamaçla Aynala + Grip Option Tutamaç Seçeneği + Grip Rotate Tutamaçla Döndür + Grip Scale Tutamaçla Ölçekle + Grip Stretch Tutamaçla Esnet + Grip size Tutamaç boyutu + Grips Tutamaçlar + Group Grup + Group Edit Grubu Düzenle + Group Options Grup Seçenekleri + Group Selection Grup Seçimi + Groups Gruplar + Hatch Tarama + Hatch Edit Taramayı Düzenle + Hatch Pattern Tarama Deseni + Hatch Patterns Tarama Desenleri + Hatch Pick Tarama Seçimi + Hatch and Gradient Tarama ve Degrade + Hatch origin Tarama orijini + Hatch... Tarama... + Hatches Taramalar + Height Yükseklik + Height: {height} Yükseklik: {height} + Helix Helezon + Help Yardım + Hemispherical Yarım Küresel + Hide All Tümünü Gizle + Hide All Constraint Bars Tüm Kısıtlama Çubuklarını Gizle + Hide All Dynamic Dimensions Tüm Dinamik Ölçüleri Gizle + Hide CADCraft CADCraft'ı Gizle + Hide Layer List Katman Listesini Gizle + Hide Objects Nesneleri Gizle + Hide Others Diğerlerini Gizle + Hide Palette Paleti Gizle + Hide Palettes Paletleri Gizle + History Geçmiş + Hold Shift to add to the selection Seçime eklemek için Shift'i basılı tutun + Home Giriş + Horizontal Yatay + HorizontalDistance Yatay Uzaklık + How to apply: Uygulama biçimi: + ID Point Nokta Kimliği + Ignore Yoksay + Import İçe Aktar + Import... İçe Aktar... + In Yakınlaştır + In-window Menu Bar Pencere İçi Menü Çubuğu + Include in new selection set Yeni seçim kümesine dahil et + Increment angle Artış açısı + Index Color Dizin Rengi + Index color: {index} Dizin rengi: {index} + Indicate selection area Seçim alanını belirtin + Infer Constraints Kısıtlamaları Çıkar + Inquiry Sorgu + Insert Ekle + Insert Block Blok Ekle + Insert Column Sütun Ekle + Insert Row Satır Ekle + Insert Table Formula Tablo Formülü Ekle + Insert tab Sekme ekle + Insert this block Bu bloğu ekle + Insertion Ekleme + Insertion X Ekleme X + Insertion Y Ekleme Y + Insertion Z Ekleme Z + Inspect Constraints Kısıtlamaları İncele + Inspect Drawing Çizimi İncele + Inspection İnceleme + Interface Language Arayüz Dili + Interface Theme Arayüz Teması + Interface language Arayüz dili + Interface theme Arayüz teması + Intersect Kesiştir + Intersection Kesişim + Inverted Ters + Island detection Ada algılama + Isolate Yalıt + Isolate Layer Katmanı Yalıt + Isolate Objects Nesneleri Yalıt + Isometric Drafting İzometrik Çizim + Isometric Plane İzometrik Düzlem + Isometric snap İzometrik kenetleme + Italic İtalik + Jogged Kırık + Jogged Linear Kırık Doğrusal + Join Birleştir + Join the ArtCraft Discord… ArtCraft Discord'una katılın… + Join us on Discord Discord'da bize katılın + Justify Yasla + Keep an editable copy of this table in the drawing Bu tablonun düzenlenebilir bir kopyasını çizimde tut + Keep the system cursor visible over the drawing area Sistem imlecini çizim alanı üzerinde görünür tut + Language Dil + Largest array En büyük dizi + Last Son + Last commit Son commit + Layer Katman + Layer Delete Katman Sil + Layer Match Katman Eşle + Layer Merge Katman Birleştir + Layer Off Katmanı Kapat + Layer Properties Katman Özellikleri + Layer Properties Manager Katman Özellikleri Yöneticisi + Layer Properties Manager — current viewport Katman Özellikleri Yöneticisi — geçerli görünüm penceresi + Layer State Katman Durumu + Layer States Manager... Katman Durumları Yöneticisi... + Layer Tools Katman Araçları + Layer contains objects (double-click to make current) Katmanda nesne var (geçerli yapmak için çift tıklayın) + Layer is empty (double-click to make current) Katman boş (geçerli yapmak için çift tıklayın) + Layers Katmanlar + Layers Palette Katmanlar Paleti + Layers displayed: {shown} of {total}. Current layer: {layer} Gösterilen katmanlar: {shown} / {total}. Geçerli katman: {layer} + Layout Yerleşim + Layout list Yerleşim listesi + Layout paper Yerleşim kağıdı + Layout {name}: {table} Yerleşim {name}: {table} + Leader Kılavuz + Leaders Only Yalnızca Kılavuzlar + Left Sol + Left device button: zoom extents. Right device button: calibrate. Aygıtın sol düğmesi: kapsama yakınlaştır. Sağ düğmesi: kalibre et. + Length Uzunluk + Length X Uzunluk X + Length Y Uzunluk Y + Lengthen Uzat/Kısalt + Light Açık + Line Çizgi + Line delta Satır farkı + Linear Doğrusal + Lines +/− Satırlar +/− + Lines added Eklenen satırlar + Lines deleted Silinen satırlar + Lines of Command History Komut Geçmişi Satır Sayısı + Linetype Çizgi Tipi + Linetype Scale Çizgi Tipi Ölçeği + Linetype scale Çizgi tipi ölçeği + Linetype... Çizgi Tipi... + Lineweight Çizgi Kalınlığı + Lineweight... Çizgi Kalınlığı... + List Listele + List Blocks Blokları Listele + List Dimension Styles Ölçülendirme Stillerini Listele + List Groups Grupları Listele + List Layer States Katman Durumlarını Listele + List Layouts Yerleşimleri Listele + List System Variables Sistem Değişkenlerini Listele + List Text Styles Metin Stillerini Listele + Load Application... Uygulama Yükle... + Load all Tümünü yükle + Load... Yükle... + Loaded Yüklendi + Loaded linetypes Yüklü çizgi tipleri + Lock Kilitle + Lock Layer Katmanı Kilitle + Lock viewport Görünüm penceresini kilitle + Lock/Unlock Kilitle/Kilidi Aç + Loft Loft + Ltscale Çizgi Tipi Ölçeği + MIT OR Apache-2.0. Not affiliated with Autodesk, Inc. MIT OR Apache-2.0. Autodesk, Inc. ile bağlantısı yoktur. + MODEL MODEL + MText Çok Satırlı Metin + Magenta Eflatun + Major line every Ana çizgi aralığı + Make Current Geçerli Yap + Make Object's Layer Current Nesnenin Katmanını Geçerli Yap + Make it a block of this drawing, keeping its layer names Katman adlarını koruyarak bu çizimin bir bloğu yap + Make it a block of this drawing; its layers become NAME$0$LAYER Bu çizimin bir bloğu yap; katmanları NAME$0$LAYER olur + Make... Oluştur... + Match Layer Katmanı Eşle + Match Properties Özellikleri Eşle + Measure Ölç + Measure Distance Uzaklık Ölç + Measure Geometry Geometri Ölç + Merge Cells Hücreleri Birleştir + Merged PRs Birleştirilen PR'lar + Mid Between 2 Points İki Noktanın Ortası + Midpoint Orta Nokta + Mirror Aynala + Model Model + Model Space (in viewport) Model Alanı (görünüm penceresinde) + Model background Model arka planı + Modeling Modelleme + Models Modeller + Modify Değiştir + More toolbar commands Diğer araç çubuğu komutları + Move Taşı + Move sideways to pan; push/pull or twist to zoom. Kaydırmak için yana itin; yakınlaştırmak için itip çekin ya da çevirin. + Multileader Çoklu Kılavuz + Multileader Style... Çoklu Kılavuz Stili... + Multileader style Çoklu kılavuz stili + Multiline Çoklu Çizgi Takımı + Multiline Style... Çoklu Çizgi Takımı Stili... + Multiline Text Çok Satırlı Metin + Multiline Text... Çok Satırlı Metin... + Multiline text Çok satırlı metin + Multiline... Çoklu Çizgi Takımı... + Multiple Çoklu + Multiple Point Çoklu Nokta + My Benim + My properties: not available yet Özelliklerim: henüz kullanılamıyor + N K + Name Ad + Name (A–Z) Ad (A–Z) + Named Adlandırılmış + Named Views... Adlandırılmış Görünümler... + Nearest En Yakın + New Yeni + New (metric) Yeni (metrik) + New CTB Yeni CTB + New Drawing Yeni Çizim + New Drawing (⌘N) Yeni Çizim (⌘N) + New Drawing... Yeni Çizim... + New Layer Yeni Katman + New Layout Yeni Yerleşim + New STB Yeni STB + New VP Freeze Yeni GP'de Dondur + New Viewports... Yeni Görünüm Pencereleri... + New block Yeni blok + New from Template... Şablondan Yeni... + New layout Yeni yerleşim + New state name Yeni durum adı + New style Yeni stil + Next Change Sonraki Değişiklik + No Hayır + No blocks defined in this drawing. Bu çizimde tanımlı blok yok. + No contributor data was built into this copy. Bu kopyaya katkıda bulunan verisi eklenmemiş. + No external references are attached. İliştirilmiş dış referans yok. + No model credits were built into this copy. Bu kopyaya model emeği bilgisi eklenmemiş. + No plot style tables. Çizim stili tablosu yok. + No saved layer states Kayıtlı katman durumu yok + No selection Seçim yok + No supported 3D mouse found Desteklenen 3B fare bulunamadı + Node Düğüm + None Hiçbiri + Normal Normal + Not Found Bulunamadı + Not a number or distance: {text} Sayı ya da uzaklık değil: {text} + Not available Kullanılamıyor + Not available yet Henüz kullanılamıyor + Not loaded Yüklenmedi + Numbered list Numaralı liste + OK Tamam + Object Nesne + Object Snap Nesne Kenetleme + Object Snap (F3) Nesne Kenetleme (F3) + Object Snap On (F3) Nesne Kenetleme Açık (F3) + Object Snap Tracking Nesne Kenetleme İzleme + Object Snap Tracking (F11) Nesne Kenetleme İzleme (F11) + Object Snap Tracking Settings Nesne Kenetleme İzleme Ayarları + Object grouping Nesne gruplama + Object selection limit for display of grips Tutamaçların gösterilmesi için nesne seçim sınırı + Object snap aperture Nesne kenetleme açıklığı + Object snap marker size Nesne kenetleme işaretçisi boyutu + Object type: Nesne türü: + Objects on locked layers Kilitli katmanlardaki nesneler + Oblique Eğik + Off Kapalı + Offset Öteleme + On Açık + On/Off Açık/Kapalı + One of the Crafting Apps by the ArtCraft team and community. ArtCraft ekibi ve topluluğunun Crafting Apps uygulamalarından biri. + Only in this drawing: {n} Yalnızca bu çizimde: {n} + Only in {name}: {n} Yalnızca {name} içinde: {n} + Open Aç + Open (⌘O) Aç (⌘O) + Open Recent Son Kullanılanları Aç + Open Sample Drawing Örnek Çizimi Aç + Open Xref Dış Referansı Aç + Open a drawing first. Önce bir çizim açın. + Open and Save Açma ve Kaydetme + Open in Block Editor Blok Düzenleyicide Aç + Open sample drawing Örnek çizimi aç + Open... Aç... + Operator: İşleç: + Options Seçenekler + Options... Seçenekler... + Orbit Yörünge + Ordinate Koordinat + Origin: {x}, {y} Orijin: {x}, {y} + Ortho (F8) Orto (F8) + Ortho Mode Orto Kipi + Ortho Mode (F8) Orto Kipi (F8) + Osnap Settings... Nesne Kenetleme Ayarları... + Out Uzaklaştır + Outer Dış + Over-constrained Aşırı kısıtlı + Overlay Bindirme + Overline Üst çizgi + Override Geçersiz Kıl + PAPER KAĞIT + PRs PR'lar + Page Setup Manager Sayfa Yapısı Yöneticisi + Page Setup Manager... Sayfa Yapısı Yöneticisi... + Pan Kaydır + Pan Down Aşağı Kaydır + Pan Left Sola Kaydır + Pan Right Sağa Kaydır + Pan Up Yukarı Kaydır + Pan sensitivity Kaydırma hassasiyeti + Paper Space Kağıt Alanı + Parallel Paralel + Parameters Manager Parametre Yöneticisi + Parametric Parametrik + Paste Yapıştır + Paste as Block Blok Olarak Yapıştır + Paste to Command Line Komut Satırına Yapıştır + Paste to Original Coordinates Özgün Koordinatlara Yapıştır + Path Array Yol Dizisi + Pattern Desen + Percent Yüzde + Perpendicular Dik + Pickbox size Seçim kutusu boyutu + Plot Çizdir + Plot (click: do not plot) Çizdir (tıklayın: çizdirme) + Plot Preview Çizim Önizlemesi + Plot Style Manager Çizim Stili Yöneticisi + Plot Style Manager... Çizim Stili Yöneticisi... + Plot Style... Çizim Stili... + Plot Styles... Çizim Stilleri... + Plot Window Çizim Penceresi + Plot style Çizim stili + Plot style attached to Çizim stilinin bağlı olduğu yer + Plot style table Çizim stili tablosu + Plot table type Çizim tablosu türü + Plotter Manager Çizici Yöneticisi + Plotter Manager... Çizici Yöneticisi... + Plus/minus Artı/eksi + Point Nokta + Point Filters Nokta Filtreleri + Point Style... Nokta Stili... + Polar (distance < angle) Kutupsal (uzaklık < açı) + Polar Array Kutupsal Dizi + Polar Tracking Kutupsal İzleme + Polar Tracking (F10) Kutupsal İzleme (F10) + Polar Tracking On (F10) Kutupsal İzleme Açık (F10) + Polar angle measurement Kutupsal açı ölçümü + Polar distance Kutupsal uzaklık + Polar: {distance} < {angle}° Kutupsal: {distance} < {angle}° + PolarSnap Kutupsal Kenetleme + Polygon Çokgen + Polygonal Çokgen + Polygonal Viewport Çokgen Görünüm Penceresi + Polyline Çoklu Çizgi + Polyline Edit Çoklu Çizgi Düzenle + Position X Konum X + Position Y Konum Y + Position Z Konum Z + Preview Önizleme + Previous Önceki + Previous Change Önceki Değişiklik + Previous Layer Önceki Katman + Primitives Temel Katılar + Print Yazdır + Print... Yazdır... + Profiles Profiller + Properties Özellikler + Properties Inspector Özellik Denetçisi + Properties: Özellikler: + Proxy Vekil + Purge Temizle + Pyramid Piramit + Quadrant Çeyrek Daire Noktası + Query Entities Varlıkları Sorgula + Query Texts Metinleri Sorgula + Quick Hızlı + Quick Dimension Hızlı Ölçülendirme + Quick Properties Hızlı Özellikler + Quick Select Hızlı Seçim + Quick Select Properties Hızlı Seçim Özellikleri + Quick Select... Hızlı Seçim... + QuickCalc Hızlı Hesap + QuickCalc Pick Hızlı Hesap Seçimi + Quit CADCraft CADCraft'tan Çık + Radius Yarıçap + Raster Image Raster Görüntü + Ray Işın + Read-only Salt okunur + Real name Gerçek ad + Realtime Gerçek zamanlı + Reassociate Dimensions Ölçüleri Yeniden İlişkilendir + Recalculate Table Formulas Tablo Formüllerini Yeniden Hesapla + Recent Son kullanılanlar + Recent Commands Son Komutlar + Recent Input Son Girişler + Recover... Kurtar... + Rectangle Dikdörtgen + Rectangular Dikdörtgen + Rectangular Array Dikdörtgen Dizi + Rectangular snap Dikdörtgen kenetleme + Red Kırmızı + Redo Yinele + Redo (⇧⌘Z) Yinele (⇧⌘Z) + Redraw Yeniden Çiz + Reference Manager Referans Yöneticisi + Reference Name Referans Adı + References: {n} Referanslar: {n} + Regen Yeniden Oluştur + Regen All Tümünü Yeniden Oluştur + Region Bölge + Region/Mass Properties Bölge/Kütle Özellikleri + Reinitialize Yeniden Başlat + Relative Göreli + Relative to last segment Son parçaya göre + Release the 3D mouse to calibrate its resting position Dinlenme konumunu kalibre etmek için 3B fareyi bırakın + Reload Yeniden Yükle + Reload All Tümünü Yeniden Yükle + Remove Kaldır + Remove Leader Kılavuz Çizgisini Kaldır + Remove Vertex Köşe Noktasını Kaldır + Remove the viewport override Görünüm penceresi geçersiz kılmasını kaldır + Rename Dimension Style Ölçülendirme Stilini Yeniden Adlandır + Rename Layer Katmanı Yeniden Adlandır + Rename Layer State Katman Durumunu Yeniden Adlandır + Rename Layout Yerleşimi Yeniden Adlandır + Rename Text Style Metin Stilini Yeniden Adlandır + Rename... Yeniden Adlandır... + Repeat {command} Yinele: {command} + Requires a point (x,y, @dx,dy or @d İkinci noktayı belirtin veya + Specify second source point İkinci kaynak noktayı belirtin + Specify side to offset Ötelenecek tarafı belirtin + Specify start angle Başlangıç açısını belirtin + Specify start point Başlangıç noktasını belirtin + Specify start point of arc Yayın başlangıç noktasını belirtin + Specify start point of polyline Çoklu çizginin başlangıç noktasını belirtin + Specify start point of text Metnin başlangıç noktasını belirtin + Specify starting width Başlangıç genişliğini belirtin + Specify starting width for next segment Sonraki parçanın başlangıç genişliğini belirtin + Specify tangent direction for the start point of arc Yayın başlangıç noktası için teğet yönünü belirtin + Specify the elevation for rectangles Dikdörtgenler için yüksekliği belirtin + Specify thickness for rectangles Dikdörtgenler için kalınlığı belirtin + Specify third point on circle Daire üzerindeki üçüncü noktayı belirtin + Specify third point on circle: _tan to Daire üzerindeki üçüncü noktayı belirtin: _tan to + Specify third source point or Üçüncü kaynak noktayı belirtin veya + Specify through point Geçiş noktasını belirtin + Specify top diameter Üst çapı belirtin + Specify top radius or Üst yarıçapı belirtin veya + Specify total angle Toplam açıyı belirtin + Specify total length or Toplam uzunluğu belirtin veya + Specify width for rectangles Dikdörtgenler için genişliği belirtin + Sphere Küre + Spherical Küresel + Spline Eğri + Spline Edit Eğri Düzenle + Stack (type 1/2 then select) Yığ (1/2 yazıp seçin) + Standard Standart + Start Başlangıç + Start Width Başlangıç Genişliği + Start X Başlangıç X + Start Y Başlangıç Y + Start angle Başlangıç açısı + Start, Center, Angle Başlangıç, Merkez, Açı + Start, Center, End Başlangıç, Merkez, Bitiş + Start, Center, Length Başlangıç, Merkez, Uzunluk + Start, End, Angle Başlangıç, Bitiş, Açı + Start, End, Direction Başlangıç, Bitiş, Yön + Start, End, Radius Başlangıç, Bitiş, Yarıçap + Status Durum + Status Bar Durum Çubuğu + Stretch Esnet + Stretch Vertex Köşe Noktasını Esnet + Style: Standard Stil: Standart + Subtract Çıkar + Sweep Süpür + Switch Drawing Çizimi Değiştir + Switch Layout Yerleşimi Değiştir + Switch between model space in a viewport and paper space Görünüm penceresindeki model alanı ile kağıt alanı arasında geçiş yap + Symmetric Simetrik + Synchronize Attributes Öznitelikleri Eşitle + Synchronize Multiple-scale Positions Çok Ölçekli Konumları Eşitle + TOP ÜST + Table Tablo + Table Breaks Tablo Bölmeleri + Table Cell Style Tablo Hücresi Stili + Table Style... Tablo Stili... + Table style Tablo stili + Table... Tablo... + Tables Tablolar + Tan, Tan, Radius Teğet, Teğet, Yarıçap + Tan, Tan, Tan Teğet, Teğet, Teğet + Tangent Teğet + Temporary track point Geçici izleme noktası + Text Metin + Text Editor Metin Düzenleyici + Text Height Metin Yüksekliği + Text Objects Only Yalnızca Metin Nesneleri + Text Style... Metin Stili... + Text color Metin rengi + Text height Metin yüksekliği + Text override Metni geçersiz kıl + Text style Metin stili + Thaw All Layers Tüm Katmanları Çöz + Thaw Layer Katmanı Çöz + The aperture is how near the cursor must come to a point for an object snap to find it. Açıklık, nesne kenetlemenin bir noktayı bulması için imlecin o noktaya ne kadar yaklaşması gerektiğini belirler. + There is nothing here yet. Burada henüz bir şey yok. + Thickness Kalınlık + This drawing Bu çizim + Time Zaman + Time-sensitive right-click: a quick click is Enter, holding opens the menu Süreye bağlı sağ tıklama: kısa tıklama Enter'dır, basılı tutmak menüyü açar + To Kime + To get started, create or open a drawing. Başlamak için bir çizim oluşturun veya açın. + Toggle PICKADD (off: each pick replaces the selection) PICKADD'i değiştir (kapalı: her seçim öncekinin yerini alır) + Toggle PICKADD (on: picks add to the selection) PICKADD'i değiştir (açık: seçimler mevcut seçime eklenir) + Tolerance... Tolerans... + Tool Bar Araç Çubuğu + Tool Sets Araç Takımları + Tools Araçlar + Top left Sol üst + Top right Sağ üst + Torus Simit + Trace İz + Track orthogonally only Yalnızca dik açılarla izle + Track using all polar angle settings Tüm kutupsal açı ayarlarını kullanarak izle + Transparency Saydamlık + Trim Kırp + True Color Gerçek Renk + Turn All Layers On Tüm Katmanları Aç + Turn Off Layer Katmanı Kapat + Turn On Layer Katmanı Aç + Turn Quick Properties off (QPMODE) Hızlı Özellikleri kapat (QPMODE) + Turned off, a right-click while a command runs always opens the shortcut menu. Kapalıyken, bir komut çalışırken sağ tıklama her zaman kısayol menüsünü açar. + Type Tür + Type a command Bir komut yazın + Type text; Enter starts a new paragraph Metin yazın; Enter yeni bir paragraf başlatır + UCS Icon KKS Simgesi + Underline Altı çizili + Undo Geri Al + Undo (⌘Z) Geri Al (⌘Z) + Ungroup Grubu Çöz + Union Birleşim + Unisolate Layer Katman Yalıtımını Kaldır + Units Conversion Birim Dönüştürme + Units... Birimler... + Unload Kaldır + Unloaded Kaldırıldı + Unlock Layer Katman Kilidini Aç + Unlock viewport Görünüm penceresinin kilidini aç + Unmerge Cells Hücreleri Ayır + Unreferenced Başvurulmayan + Unresolved Çözümlenmemiş + Unsaved Layer State Kaydedilmemiş Katman Durumu + Unsaved changes Kaydedilmemiş değişiklikler + Up Yukarı + Update Güncelle + Update Data Links Veri Bağlantılarını Güncelle + Use System Setting Sistem Ayarını Kullan + Use current origin Geçerli orijini kullan + Use for this layout Bu yerleşim için kullan + Use object linetype Nesnenin çizgi tipini kullan + Use object lineweight Nesnenin çizgi kalınlığını kullan + User Kullanıcı + User Parameters Kullanıcı Parametreleri + User Preferences Kullanıcı Tercihleri + Username Kullanıcı adı + VP Color GP Rengi + VP Freeze GP'de Dondur + Value Değer + Value: Değer: + Variables Değişkenler + Version Sürüm + Version 2000 Sürüm 2000 + Version 2004 Sürüm 2004 + Version 2007 Sürüm 2007 + Version 2010 Sürüm 2010 + Version 2013 Sürüm 2013 + Version 2018 Sürüm 2018 + Version {version} Sürüm {version} + Vertical Dikey + VerticalDistance Dikey Uzaklık + View Görünüm + ViewCube ViewCube + Viewport Görünüm Penceresi + Viewport Layer Freeze Görünüm Penceresinde Katman Dondurma + Viewport Properties Görünüm Penceresi Özellikleri + Viewport is locked Görünüm penceresi kilitli + Viewport scale Görünüm penceresi ölçeği + Viewport {id} Görünüm Penceresi {id} + Viewports Görünüm Pencereleri + Visual Effect Settings Görsel Efekt Ayarları + Visual Effect Settings... Görsel Efekt Ayarları... + Volume Hacim + W B + WCS DKS + When a command is active Bir komut etkinken + When no command is active Etkin komut yokken + White Beyaz + Width factor Genişlik faktörü + Window Pencere + Window selection color: Pencere seçim rengi: + Wipeout Maskeleme + Working Set Çalışma Kümesi + Workspace Switching Çalışma Alanı Değiştirme + Write Block Blok Yaz + X X + Xline Yapı Çizgisi + Xref and Block In-place Editing Dış Referans ve Bloğu Yerinde Düzenleme + Xrefs Dış Referanslar + Y Y + Yellow Sarı + Yes Evet + Zoom Yakınlaştır + Zoom All Tümüne Yakınlaştır + Zoom Dynamic Dinamik Yakınlaştırma + Zoom Extents Kapsama Yakınlaştır + Zoom In Yakınlaştır + Zoom Object Nesneye Yakınlaştır + Zoom Out Uzaklaştır + Zoom Previous Önceki Görünüm + Zoom Realtime Gerçek Zamanlı Yakınlaştırma + Zoom Window Pencereye Yakınlaştır + Zoom sensitivity Yakınlaştırma hassasiyeti + contains authoring elements. Open in Block Editor? yazma öğeleri içeriyor. Blok Düzenleyicide açılsın mı? + error hata + min dk + objects nesne + {contributors} · {commits} {contributors} · {commits} + {kind} (constraint {id}) {kind} (kısıtlama {id}) + {kind} constraint {name} = {expression} (double-click to edit) {kind} kısıtlaması {name} = {expression} (düzenlemek için çift tıklayın) + {name}: {distance} < {angle}° {name}: {distance} < {angle}° + ƒx New User Parameter ƒx Yeni Kullanıcı Parametresi + ΔLOC ΔLOC + −Bin −Bin + −LOC −LOC + ⌘↩ to finish Bitirmek için ⌘↩ +@plural {n} commit {n} commit +@plural {n} contributor {n} katkıda bulunan +menu Dimension Ölçülendirme +menu Draw Çiz +menu Modify Değiştir +menu View Görünüm diff --git a/crates/ui-egui/src/options/mod.rs b/crates/ui-egui/src/options/mod.rs index aa1f3385..97007052 100644 --- a/crates/ui-egui/src/options/mod.rs +++ b/crates/ui-egui/src/options/mod.rs @@ -10,7 +10,7 @@ //! |---|---| //! | `theme` | `"system"`, `"light"` or `"dark"` | //! | `animations` | `"system"`, `"on"` or `"off"`: dialog and menu fades and smoothed scrolling | -//! | `interfaceLanguage` | `"auto"`, `"en"`, `"uk"`, `"pt-BR"`, `"de"`, `"es"`, `"cs"`, `"ru"`, `"fr"`, `"zh"`, `"it"`, `"ko"`, `"sv"`, `"ar"` or `"hu"` | +//! | `interfaceLanguage` | `"auto"`, `"en"`, `"uk"`, `"pt-BR"`, `"de"`, `"es"`, `"cs"`, `"ru"`, `"fr"`, `"zh"`, `"it"`, `"ko"`, `"sv"`, `"ar"`, `"hu"` or `"tr"` | //! | `saveFormat` | `"dxf"` or `"dwg"`: the format Save As suggests for new drawings | //! | `saveVersion` | `"2000"` … `"2018"`: the version drawings with no file yet are saved in | //! | `SAVETIME` | minutes between automatic saves, 0–600 (0: off) | diff --git a/docs/localization-parity.md b/docs/localization-parity.md index f88faa61..ab444423 100644 --- a/docs/localization-parity.md +++ b/docs/localization-parity.md @@ -69,8 +69,9 @@ 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 | +| 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 and Hungarian. +Other languages shipped: Ukrainian, Brazilian Portuguese, German, Czech, Russian, French, Italian, Korean, Swedish, Hungarian and Turkish. Czech, Swedish, Hungarian and Brazilian Portuguese cover the reference catalog and every marked UI literal; engine diagnostics and uncatalogued text remain English. AutoCAD for Mac ships 7 non-English languages (zh-Hans, es, fr, ja, de, ko, it); of those, CADCraft now ships German and Korean, @@ -85,6 +86,7 @@ each language, which needs humans. Translations parallelise fully once the catal | Date | Change | Summary | |---|---|---| | 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 | | 2026-10-13 | minor | Hungarian added: 1,326 rows, a single count form, menu headings, locale/preferences/menu/font/render tests; no gaps in the marked UI literals; native proofreading pending | | 2026-10-13 | minor | Swedish added: 1,235 rows, one/other plurals, menu headings, locale/preferences/menu/font/render tests; no gaps in the marked UI literals; terminology and the running app reviewed by a native speaker | | 2026-10-13 | minor | Korean added: full 1,235-row existing catalog union, single count form, locale/persistence/live-switch tests, and validated Hangul UI fonts; native review and platform verification pending | diff --git a/docs/localization.md b/docs/localization.md index 0663d143..03d79d5f 100644 --- a/docs/localization.md +++ b/docs/localization.md @@ -1,7 +1,7 @@ # Interface languages Choose **Edit → Interface Language** and select **Auto (system language)**, **English**, -**Українська**, **Português (Brasil)**, **Deutsch**, **Español**, **Čeština** (Czech), **Русский**, **Français**, **简体中文**, **Italiano**, **한국어** (Korean), **Svenska** (Swedish), **العربية** (Arabic), or **Magyar** (Hungarian). +**Українська**, **Português (Brasil)**, **Deutsch**, **Español**, **Čeština** (Czech), **Русский**, **Français**, **简体中文**, **Italiano**, **한국어** (Korean), **Svenska** (Swedish), **العربية** (Arabic), **Magyar** (Hungarian), or **Türkçe** (Turkish). The interface updates without restarting, including the native macOS menus. The choice is saved with the other interface preferences (`cadcraft.prefs`, beside the theme): eframe storage on the desktop, browser local storage on the web. Installations without a saved @@ -11,7 +11,7 @@ Auto uses the first supported language in the operating system's preferred local browser's `navigator.languages` on the web. BCP 47 and POSIX tags select their primary language: `uk-UA` → `uk`, `de_AT.UTF-8` → `de`, `es-MX` → `es`, `pt_BR.UTF-8` → `pt-BR`, `cs-CZ` and `cs_CZ.UTF-8` → `cs`, `it-IT` and `it_CH.UTF-8` → `it`, `ko-KR` and `ko_KR.UTF-8` → `ko`, -`sv-SE`, `sv-FI` and `sv_SE.UTF-8` → `sv`, `hu-HU` and `hu_HU.UTF-8` → `hu`. Unsupported languages fall back to English. +`sv-SE`, `sv-FI` and `sv_SE.UTF-8` → `sv`, `hu-HU` and `hu_HU.UTF-8` → `hu`, `tr-TR` and `tr_TR.UTF-8` → `tr`. Unsupported languages fall back to English. Set `CADCRAFT_LOCALE=cs-CZ` to override the desktop's locale for a launch. An explicit saved language choice takes precedence over that override. @@ -22,7 +22,7 @@ Automation can select the language through the existing control channel: ``` The `ui.set` method also accepts `{"interfaceLanguage":"cs"}`. Supported values are `auto`, -`en`, `uk`, `pt-BR`, `de`, `es`, `cs`, `ru`, `fr`, `zh`, `it`, `ko`, `sv`, `ar`, and `hu`; invalid values are rejected without changing the current +`en`, `uk`, `pt-BR`, `de`, `es`, `cs`, `ru`, `fr`, `zh`, `it`, `ko`, `sv`, `ar`, `hu`, and `tr`; invalid values are rejected without changing the current selection. Resetting palettes keeps the language choice. ## Translation coverage @@ -61,6 +61,17 @@ a count takes one form because a Hungarian numeral is followed by the singular. was written from the meaning of CADCraft's English strings; no other product's localization was used as a source. It has not yet been proofread by an independent native speaker. +Turkish has **1,330 rows**: the union of the existing catalogs, four contextual menu headings +(**Ölçülendirme** for the Dimension menu, **Ölçü** for the object) and two single-form count +templates, since a Turkish noun stays singular after a number ("3 commit"). No marked UI literal +falls back to English. Prompts read "… girin" for Enter and "… belirtin" for Specify, and clickable +keywords (`Top`, `Zero`, `Bottom`, `_tan to`, `nX`/`nXP`) keep the spelling the engine accepts. +The translation is original, AI-assisted work by @ogzhnklvz, written from the English strings with +Turkish desktop-CAD vocabulary (Katman, Tarama, Yuvarlatma, Pah, Öteleme, Nesne Kenetleme, +Görünüm Penceresi); the running app was reviewed by a native speaker, and line-by-line +proofreading is still to do. The bundled +egui fonts cover `Ç Ğ İ Ö Ş Ü ç ğ ı ö ş ü`. + Drawing titles, layer/layout/block/style names, parameter names and expressions, text in a drawing, and command-line input are user data and retain their original spelling. Clickable command keywords retain their English spelling so the text shown matches the input accepted