Factorizer/Cluster ERP WikiCluster ERP English
Ana sayfa / Web uygulaması

Nasıl yapılır

Web uygulamasına dil ekleyin

Web uygulamasına bir sözlük dosyası ve languages.json içinde bir satırla yeni bir arayüz dili ekleyin.

Bu kılavuz webapp/i18n/ içinde web uygulamasına yeni bir arayüz dili ekler. Dil listesi veridir; bu yüzden web uygulaması kodu değişmez. Kılavuz ayrıca web sözlüğünden gelmeyen ve bu yüzden tanımlandıkları yerde çevrilene kadar İngilizce kalan metinleri listeler. Arka plan uluslararasılaştırma ve diller sayfasındadır.

Ön koşullar

  • Dilin tarayıcıların bildirdiği iki harfli bir kodu vardır, örneğin de. pick() tarayıcı dilinin ilk iki harfini manifesto kodlarıyla karşılaştırır (webapp/js/i18n.js:46-52).
  • webapp/i18n/ içindeki dosyaları düzenleyebilir ve web uygulamasını dağıtabilirsiniz.

Adımlar

  1. webapp/i18n/en.json dosyasını webapp/i18n/<code>.json olarak kopyalayın. Dosya adı dil kodu olmalıdır, çünkü setLang ../i18n/<code>.json dosyasını yükler (webapp/js/i18n.js:74-78).

  2. Her değeri çevirin ve her anahtarı koruyun. en.json 2.853 anahtar içerir; eksik bir anahtar ekranda anahtarın kendisini gösterir (webapp/js/i18n.js:101-106).

  3. Her {name} yer tutucusunu çevrilen metnin içinde değiştirmeden bırakın. t() yer tutucuları adlarına göre doldurur (webapp/js/i18n.js:107-108).

  4. Çoğul biçimli metinler için dilinizin kullandığı çoğul kategorilerini alt anahtarlar olarak verin (one, two, few, many, other). tp() kategoriyi Intl.PluralRules ile seçer ve other değerine geri düşer (webapp/js/i18n.js:112-127).

  5. error.<code> altındaki hata metinlerini çevirin. Bir anahtar eksikse bunun yerine sunucunun İngilizce iletisi gösterilir (webapp/js/gen-api.js:16-27).

  6. webapp/i18n/languages.json dosyasına kodu ve dilin kendi adını içeren bir girdi ekleyin. Dize code ve name taşımayan girdiler yok sayılır (webapp/js/i18n.js:32-44).

webapp/i18n/languages.json:1-4 içindeki var olan girdilerden yeni dil için bir yer tutucuyla kurulan örnek manifesto:

json [ { "code": "tr", "name": "Türkçe" }, { "code": "en", "name": "English" }, { "code": "<code>", "name": "<native name>" } ]

  1. Dağıtın. Varlık damgası webapp/ içindeki her dosya üzerinden bir özettir; bu yüzden yeni dosyalar yeni URL'ler alır ve tarayıcılar onları sonraki sayfa yüklemesinde yükler (src/cluster_erp/core/asset_stamp.py:30-42). Bkz. önbellek ve varlık damgası.

Sonucu doğrulayın

  • Ayarlar › Dil yeni girdiyi kendi dilindeki adıyla listeler (webapp/js/home.js:3670-3712).
  • Giriş ekranındaki dil düğmesi onun da içinden döner (webapp/js/main.js:152-159).
  • Seçildikten sonra kök öğenin lang niteliği yeni koddur ve statik metinler hemen değişir (webapp/js/i18n.js:79-82).
  • Bileşenlerdeki tarihler Intl.DateTimeFormat ile yeni yerel ayarı izler (webapp/js/prefs.js:156-170).

Sorun giderme

Belirti Koddaki neden Çözüm
Dil sunulmuyor Manifesto girdisinde dize code veya name yok ya da manifesto geçerli JSON değil (webapp/js/i18n.js:32-44) Girdiyi düzeltin
Dili seçmek hiçbir şeyi değiştirmiyor <code>.json yüklenemediğinde setLang hata fırlatır (webapp/js/i18n.js:76-77) Dosya adını ve dosyanın geçerli JSON olduğunu denetleyin
Ekranda anahtarlar görünüyor Anahtar yeni dosyada yok (webapp/js/i18n.js:106) Anahtarı ekleyin
Modüllerden gelen etiketler İngilizce kalıyor Metadata etiketleri Python modül metadata'sındaki sözlüklerdir; resolveLabel İngilizceye geri düşer (webapp/js/meta.js:284-288) Dili modül metadata etiketlerine ekleyin
Referans satırları İngilizce kalıyor langLabel label_<code> sütunlarını okur ve label_en değerine geri düşer (webapp/js/meta.js:418-421) Dil için sütun verisini sağlayın

Tanıtılan terimler

Terim Kod tanımlayıcısı Tanım Türkçe terim Kaynak
language dictionary <code>.json Noktalı anahtarlarla düzenlenmiş, tek bir dilin çevrilmiş metinlerinin dosyası. dil sözlüğü webapp/js/i18n.js:76

İlgili sayfalar


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

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