Factorizer/Cluster ERP WikiCluster ERP English
Ana sayfa / Masaüstü istemci

Referans

Diller, temalar ve erişilebilirlik

Masaüstü çevirmeni, dil dosyaları, tema motoru ve belirteçleri, erişilebilirlik yöneticisi, tercihler ve yerel ayarların başvurusu.

Bu başvuru, masaüstü istemcinin dilini, renklerini, yazı tiplerini ve erişilebilirlik ayarlamalarını nasıl seçtiğini ve bu seçimleri nerede tuttuğunu açıklar. src/cluster_erp/desktop/ altındaki i18n/translator.py, i18n/en.json, i18n/tr.json, themes/theme_engine.py, themes/style.qss, core/accessibility_manager.py, core/settings_store.py, widgets/preferences_dialog.py ve widgets/accessibility_dialog.py dosyalarını kapsar. Web istemcisindeki karşılıkları uluslararasılaştırma ve diller ve temalar, belirteçler ve erişilebilirlik sayfalarındadır.

Kapsam ve kaynak

  • Tanım yeri: Translator (src/cluster_erp/desktop/i18n/translator.py:32), ThemeEngine ve THEMES (src/cluster_erp/desktop/themes/theme_engine.py:661-881), AccessibilityManager (src/cluster_erp/desktop/core/accessibility_manager.py:207), SettingsStore (src/cluster_erp/desktop/core/settings_store.py:8).
  • Sayılar: dil anahtarları her JSON dosyasının üst düzey anahtarları olarak; tema belirteçleri her THEMES paletinin anahtarları olarak; stil sayfası belirteçleri style.qss içindeki farklı @ad yer tutucuları olarak, başlık yorumundaki sözcük dışarıda bırakılarak; simgeler _ICON_PATHS anahtarları olarak; ayar anahtarları ayar deposu ve QSettings üzerindeki get, set ve remove çağrıları aranarak sayıldı.

Dil dosyaları

Dosya Anahtar _meta.name Kaynak
en.json 2.077 English src/cluster_erp/desktop/i18n/en.json anahtarı _meta.name
tr.json 2.077 Türkçe src/cluster_erp/desktop/i18n/tr.json anahtarı _meta.name

İki dosya aynı anahtar kümesine sahiptir. Anahtarlar noktalı önekli düz metinlerdir. En büyük önekler procurement (269 anahtar), error (177), bom_explorer (174), chat (123), nesting_job (74), resource (58), product (56), purq (54), logs (54) ve common (48) önekleridir. Klasörde ayrıca boş bir en_keys.txt dosyası vardır.

Çevirmen

Üye Davranış Kaynak
yapıcı language ayarını okur, varsayılanı tr; en.json dosyasını yedek, seçilen dosyayı ana tablo olarak yükler src/cluster_erp/desktop/i18n/translator.py:35-55
t(key, fallback, **kwargs) Önce ana tabloya, sonra geçerli dilde ya da İngilizce metadata etiketlerine, sonra en.json dosyasına, sonra verilen yedeğe, en son anahtarın kendisine bakar; {ad} yer tutucularını doldurur src/cluster_erp/desktop/i18n/translator.py:57-67
register_meta(key, translations) t için bir metadata etiketi saklar src/cluster_erp/desktop/i18n/translator.py:69-70
set_language(locale) Ayarı kaydeder, tabloyu yeniden yükler ve language_changed yayar src/cluster_erp/desktop/i18n/translator.py:76-80
upper, title Dil tr olduğunda Türkçe noktalı ve noktasız i kurallarını kullanır src/cluster_erp/desktop/i18n/translator.py:12-29, src/cluster_erp/desktop/i18n/translator.py:82-90
available_languages() Klasördeki her *.json dosyası için kodu ve _meta.name değerini döndürür src/cluster_erp/desktop/i18n/translator.py:92-99

Yeni bir masaüstü dili, src/cluster_erp/desktop/i18n/ içinde yeni bir JSON dosyasıdır. Giriş iletişim kutusunun ve tercihler iletişim kutusunun dil seçicileri available_languages işlevinin bulduğu her dosyayı listeler (src/cluster_erp/desktop/widgets/login_dialog.py:214-226, src/cluster_erp/desktop/widgets/preferences_dialog.py:62-69). Masaüstü klasöründe languages.json yoktur. API istemcisi geçerli dili Accept-Language olarak gönderir ve her değişikliği izler (src/cluster_erp/desktop/main.py:169-172).

Çevrilmiş metin gösteren bileşenler Translator.language_changed sinyaline bağlanır ve metinlerini yeniden ayarlar. Örneğin MainWindow._retranslate_ui bölüm sekmelerini yeniden adlandırır (src/cluster_erp/desktop/widgets/main_window.py:64, src/cluster_erp/desktop/widgets/main_window.py:628-648).

Tema motoru

ThemeEngine, theme ayarını okur, varsayılanı dark, ve onu hemen uygular (src/cluster_erp/desktop/themes/theme_engine.py:717-726). Bir temayı uygulamak dört şey yapar (src/cluster_erp/desktop/themes/theme_engine.py:798-848):

  1. Paleti erişilebilirlikten gelen geçerli geçersiz kılmalarla birleştirir.
  2. Birleşik değerlerden uygulama için bir QPalette ayarlar.
  3. Simge SVG dosyalarını simge renginde ve onay kutusu SVG dosyalarını, yalnızca renkleri değiştiyse, yazar.
  4. style.qss okur, her @belirteç değerini en uzun belirteç adından başlayarak değiştirir, stil sayfasını ayarlar ve her bileşeni yeniden cilalar.

set_overrides uygulamadan önce 150 ms bekler; böylece art arda birkaç değişiklik tek bir yeniden çizime yol açar (src/cluster_erp/desktop/themes/theme_engine.py:777-790). toggle, light ile dark arasında geçiş yapar (src/cluster_erp/desktop/themes/theme_engine.py:880-881). current_colors, kendi kendini çizen bileşenler için birleşik paleti döndürür (src/cluster_erp/desktop/themes/theme_engine.py:875-878).

Tema belirteçleri

Her paletin 24 anahtarı vardır (src/cluster_erp/desktop/themes/theme_engine.py:661-714). style.qss bunların 20'sini ve üretilen onay kutusu görsellerinin klasörü olan cb-dir belirtecini kullanır (src/cluster_erp/desktop/themes/theme_engine.py:844).

Belirteç Koyu Açık style.qss içinde
window #111113 #FBFBFC evet
base #19191C #FFFFFF evet
alternate-base #232327 #EDEDF0 evet
text #ECECEF #1C1C1E evet
dimmed #87878F #87878F evet
muted #55555C #B0B0B8 evet
accent #4C8EF7 #3E7BFA evet
accent-hover #6BA1F8 #2E6AE6 evet
highlight #2B4A7C #D5E4FD evet
border #2A2A2E #E6E6E9 evet
input #19191C #FFFFFF evet
sidebar #111113 #F0F0F2 hayır
sidebar-hover #1E1E21 #E6E6E9 hayır
sidebar-active #252528 #DDDDE0 hayır
danger #E5484D #E5484D evet
warning #F5A623 #F5A623 evet
success #30A46C #30A46C hayır
button-gradient #2C2C31 #F4F4F7 evet
button-shadow #18181B #C8C8CC evet
primary-shadow #1E3560 #B0C4E0 evet
font-family "Segoe UI" "Segoe UI" evet
font-size 9pt 9pt evet
font-size-small 8pt 8pt evet
font-size-large 13pt 13pt evet

Hayır olarak işaretli dört anahtarı bileşenler current_colors üzerinden okur; örneğin kenar çubuğu (src/cluster_erp/desktop/widgets/sidebar.py:321-334) ve durum çubuğu (src/cluster_erp/desktop/widgets/status_bar.py:76-88).

Simgeler

_ICON_PATHS, SVG yol parçaları olarak 123 simge glifi tutar (src/cluster_erp/desktop/themes/theme_engine.py:23-649). Motor bunları dimmed renginde geçici bir klasöre dosya olarak yazar ve icon(name) bir dosyayı yükler, bilinmeyen bir ad için boş bir simge döndürür (src/cluster_erp/desktop/themes/theme_engine.py:14, src/cluster_erp/desktop/themes/theme_engine.py:652-654, src/cluster_erp/desktop/themes/theme_engine.py:728-734). Metadata bölümleri ve aksiyonları simgeleri bu anahtarlarla adlandırır (src/cluster_erp/desktop/widgets/sidebar.py:202-205).

Erişilebilirlik ayarları

AccessibilityManager, ayarlarını accessibility/ öneki altında okur, tema geçersiz kılmalarını hesaplar ve her değişiklikten sonra settings_changed yayar (src/cluster_erp/desktop/core/accessibility_manager.py:195, src/cluster_erp/desktop/core/accessibility_manager.py:207-237). main() bunları giriş iletişim kutusundan önce uygular (src/cluster_erp/desktop/main.py:164-165).

Ayar Değerler Etki Kaynak
font_scale small, default, large, xlarge 9 pt temel yazı tipini 0,87, 1,0, 1,13 veya 1,27 ile çarpar ve üç yazı boyutu belirtecini ölçekler src/cluster_erp/desktop/core/accessibility_manager.py:12-17, src/cluster_erp/desktop/core/accessibility_manager.py:390-397
high_contrast off, light Paleti yüksek karşıtlıklı açık bir paletle değiştirir src/cluster_erp/desktop/core/accessibility_manager.py:19-39, src/cluster_erp/desktop/core/accessibility_manager.py:406-407
color_blind_mode off, protanopia, deuteranopia, tritanopia Vurgu, işaretleme, tehlike, uyarı ve başarı renklerini değiştirir src/cluster_erp/desktop/core/accessibility_manager.py:41-66, src/cluster_erp/desktop/core/accessibility_manager.py:409-410
reading_bg off, peach, orange, yellow Arka plan renklerini, her biri açık ve koyu çeşitle, renklendirir src/cluster_erp/desktop/core/accessibility_manager.py:68-158, src/cluster_erp/desktop/core/accessibility_manager.py:412-415
brightness 50 ile 150 arası, varsayılan 100 Dokuz arka plan anahtarını açar veya koyulaştırır src/cluster_erp/desktop/core/accessibility_manager.py:161-189, src/cluster_erp/desktop/core/accessibility_manager.py:323-328, src/cluster_erp/desktop/core/accessibility_manager.py:417-423
dyslexia_font doğru veya yanlış Bir listedeki kurulu ilk yazı tipine, daha geniş harf ve sözcük aralığıyla geçer src/cluster_erp/desktop/core/accessibility_manager.py:192, src/cluster_erp/desktop/core/accessibility_manager.py:360-388
reduced_motion doğru veya yanlış Saklanır ve iletişim kutusunda gösterilir src/cluster_erp/desktop/core/accessibility_manager.py:295-298
welcomed bir kez ayarlanır İlk ziyaretten sonra erişilebilirlik iletişim kutusunun karşılama şeridini gizler src/cluster_erp/desktop/core/accessibility_manager.py:269-274, src/cluster_erp/desktop/widgets/accessibility_dialog.py:233-234

Saklanmış dark yüksek karşıtlık değeri light değerine taşınır; bilinmeyen diğer her değer off olur (src/cluster_erp/desktop/core/accessibility_manager.py:221-229). reset_all ayarlanabilir yedi ayarı siler ve varsayılanları uygular (src/cluster_erp/desktop/core/accessibility_manager.py:330-352). Tema değiştiğinde, herhangi bir ayarlama etkinse geçersiz kılmalar yeniden hesaplanır (src/cluster_erp/desktop/core/accessibility_manager.py:431-446).

Erişilebilirlik iletişim kutusu (anahtar accessibility.title); yazı boyutu, yüksek karşıtlık, renk körlüğü kipi ve okuma arka planı için bölümlü denetimler, 50 ile 150 arasında bir parlaklık kaydırıcısı, azaltılmış hareket ve disleksi yazı tipi için onay kutuları ve onaylı Tüm Ayarları Sıfırla (anahtar accessibility.reset_all) sunar (src/cluster_erp/desktop/widgets/accessibility_dialog.py:216-400, src/cluster_erp/desktop/widgets/accessibility_dialog.py:477-489). Kenar çubuğundan, giriş iletişim kutusundan ve MainWindow._show_accessibility üzerinden açılır (src/cluster_erp/desktop/widgets/sidebar.py:129, src/cluster_erp/desktop/widgets/login_dialog.py:230-240, src/cluster_erp/desktop/widgets/main_window.py:614-624).

Tercihler iletişim kutusu

Tercihler iletişim kutusu (anahtar settings.title) her değişikliği hemen uygular ve kaydeder (src/cluster_erp/desktop/widgets/preferences_dialog.py:37-133):

Denetim Ayar Kaynak
Tema (anahtar settings.theme) ThemeEngine.apply üzerinden theme src/cluster_erp/desktop/widgets/preferences_dialog.py:53-60, src/cluster_erp/desktop/widgets/preferences_dialog.py:102-105
Dil (anahtar settings.language) Translator.set_language üzerinden language src/cluster_erp/desktop/widgets/preferences_dialog.py:62-69, src/cluster_erp/desktop/widgets/preferences_dialog.py:107-110
Saat Dilimi (anahtar settings.timezone) timezone; sistemde bulunan 16 yaygın bölgenin düzenlenebilir listesi src/cluster_erp/desktop/widgets/preferences_dialog.py:71-82, src/cluster_erp/desktop/core/timezone_utils.py:8-30
Sunucu Adresi (anahtar settings.api_url) api_url; değişiklik yeniden başlatma ister src/cluster_erp/desktop/widgets/preferences_dialog.py:84-89, src/cluster_erp/desktop/widgets/preferences_dialog.py:117-133

Yerel ayarlar

SettingsStore, QSettings nesnesini ClusterERP kuruluşu ve DesktopClient uygulamasıyla sarar ve her yazımı hemen diske işler (src/cluster_erp/desktop/core/settings_store.py:8-21). İstemci 16 anahtar kullanır:

Anahtar Yazan Kaynak
api_url giriş iletişim kutusu, tercihler iletişim kutusu src/cluster_erp/desktop/widgets/login_dialog.py:283, src/cluster_erp/desktop/widgets/preferences_dialog.py:123
server_urls giriş iletişim kutusu src/cluster_erp/desktop/widgets/login_dialog.py:282
language Translator.set_language src/cluster_erp/desktop/i18n/translator.py:78
theme ThemeEngine.apply src/cluster_erp/desktop/themes/theme_engine.py:794
timezone tercihler iletişim kutusu src/cluster_erp/desktop/widgets/preferences_dialog.py:112-126
window/geometry, window/state MainWindow.closeEvent src/cluster_erp/desktop/widgets/main_window.py:698-699
panes/layout PaneContainer.save_state src/cluster_erp/desktop/widgets/pane_container.py:28, src/cluster_erp/desktop/widgets/pane_container.py:270
accessibility/font_scale, high_contrast, reduced_motion, dyslexia_font, color_blind_mode, reading_bg, brightness, welcomed AccessibilityManager src/cluster_erp/desktop/core/accessibility_manager.py:207-352

get_user_timezone ve BomExplorer aynı depoyu kendi QSettings nesneleriyle okur (src/cluster_erp/desktop/core/timezone_utils.py:37-43, src/cluster_erp/desktop/modules/bom/bom_explorer.py:1412-1419).

Kısıtlar ve doğrulama

  • Ayarlayıcılar listelerinin dışındaki değerleri yok sayar ve parlaklık 50 ile 150 arasına sıkıştırılır (src/cluster_erp/desktop/core/accessibility_manager.py:278-328).
  • Bilinmeyen bir saat dilimi adı UTC değerine düşer (src/cluster_erp/desktop/core/timezone_utils.py:37-43).
  • AccessibilityManager ve erişilebilirlik iletişim kutusu dışında hiçbir kod reduced_motion okumaz; bu, src/cluster_erp/desktop/ içinde ad aranarak bulundu.
  • Masaüstü dil dosyaları masaüstü klasörü dışındaki testlerce de denetlenir, örneğin hata anahtarlarının varlığı için (tests/test_bom_bugfix_batch_2026_10_08.py:123-130).

Tutarsızlıklar

Tanıtılan terimler

Terim Kod tanımlayıcısı Tanım Türkçe terim Kaynak
translator Translator Bir dil dosyasını yükleyen ve anahtarları ve metadata etiketlerini çözen masaüstü nesnesi. çevirmen src/cluster_erp/desktop/i18n/translator.py:32
theme engine ThemeEngine Bir paleti, belirteçli stil sayfasını ve üretilen simgeleri uygulayan masaüstü nesnesi. tema motoru src/cluster_erp/desktop/themes/theme_engine.py:717
theme token @token style.qss içinde tema motorunun bir palet değeriyle değiştirdiği yer tutucu. tema belirteci src/cluster_erp/desktop/themes/theme_engine.py:844-846
accessibility manager AccessibilityManager Erişilebilirlik seçimlerini saklayan ve onları yazı tipi değişikliklerine ve tema geçersiz kılmalarına dönüştüren masaüstü nesnesi. erişilebilirlik yöneticisi src/cluster_erp/desktop/core/accessibility_manager.py:207
settings store SettingsStore Masaüstü istemcinin yerel QSettings deposunu saran nesne. ayar deposu src/cluster_erp/desktop/core/settings_store.py:8

İlgili sayfalar


92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.

Doğrulanan commit 92f8051 · 2026-11-13