Böylece nihayet sorunu çözebildim.
Yürütme işlemi js-translation.json
sırasında oluşturulan JS şablon çevirisinin okundığı anlaşılıyor setup:static-content:deploy
. Verileri bu dosyada doldurmak için proje için yeni bir dil paketi oluşturulmalıdır.
Öyleyse, CSV'yi tema düzeyinde app/design/<area>/<vendor>/<theme-name>/i18n/xx_XX.csv
eklemek yerine, dil paketine eklememiz gerekir.
Öncelikle yeni bir Dil Paketiproject document root
oluşturmak için aşağıdaki dizinleri oluşturmamız gerekir:
mkdir -p app/i18n/<project-name>/<xx_xx>
Önemli : Küçük harf KULLANIM ŞEKLİ SADECE gizlenmiş dosya isimleri çalışmaz
Ardından dizini yeni oluşturulan klasörlere değiştirin:
cd app/i18n/<project-name>/<xx_xx>
Şimdi composer.json
aşağıdaki içeriğe sahip bir (isteğe bağlı) dosya oluşturabilirsiniz :
{
"name": "<project-name>/<xx_xx>",
"description": "<sample description>", //Ex:English (United States) language
"version": "<version-number>", //100.0.1
"license": [
"OSL-3.0",
"AFL-3.0"
],
"require": {
"magento/framework": "100.0.*"
},
"type": "magento2-language",
"autoload": {
"files": [
"registration.php"
]
}
}
Ardından language.xml
, aşağıdaki içerikleri içeren bir dosyaya ihtiyacımız var :
<language xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/Language/package.xsd">
<code>xx_XX</code> <!-- example: <code>en_US</code> -->
<vendor><project-name></vendor>
<package><xx_xx></package> <!-- example: <package>en_us</package> -->
</language>
registration.php
Aşağıdaki içeriği içerdikten sonra gereklidir:
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::LANGUAGE,
'<project-name>_<xx_xx>',
__DIR__
);
Şimdi bir çeviri CSV'si oluşturabiliriz. Zaten tema klasörünün içinde bir tane app/design/<area>/<vendor>/<theme-name>/i18n/xx_XX.csv
varsa, onun gibi bir yere taşıyabilirsinizapp/i18n/<project-name>/<xx_xx>/xx_XX.csv
Şimdi project document root
bizden bu komutları çalıştırmamız gerekiyor:
find pub/static -name js-translation.json -exec rm -rf {} \;
js-translation.json
Çalıştırmadan önce oluşturulmuş olanı silmemiz gerekir .setup:static-content:deploy
Şimdi statik içerik dağıtımını çalıştırıyoruz:
php bin/magento setup:static-content:deploy <xx_XX>
Bu yapıldıktan sonra önbelleği temizledik:
php bin/magento cache:clean
php bin/magento cache:flush
JS şablonu için çeviri dosyalarının tüm js-translation.json
pub / static klasörünün içinde bulunup bulunmadığını doğrulayabiliriz .
find pub/static -name js-translation.json
Bu, JS şablonları için oluşturulan tüm çeviri dosyalarının listesini sağlayacaktır.
Referans:
- Magento DevDocs
- İlgili Github Sorunu
js-translation.json
dosyalarıma .csv dosyaları takılı olsa bile statik içerik dağıtımı doğru oluşturulurapp/design/frontend/vendor/theme-name/i18n/xx_XX.csv
. Tek dikkat,js-translation.json
statik içerik dağıtımını çalıştırmadan önce tümünü silmektir .