Jadi saya akhirnya bisa mengetahui masalahnya.
Tampaknya terjemahan template JS dibaca dari js-translation.jsonyang dihasilkan selama setup:static-content:deployeksekusi. Untuk mengisi data dalam file ini paket bahasa baru harus dibuat untuk proyek.
Jadi alih-alih menambahkan CSV di tingkat tema seperti app/design/<area>/<vendor>/<theme-name>/i18n/xx_XX.csvkita perlu menambahkannya dalam paket bahasa.
Untuk membuat Paket Bahasa baru terlebih dahulu, project document rootkita perlu membuat direktori berikut:
mkdir -p app/i18n/<project-name>/<xx_xx>
Penting : GUNAKAN NAMA DIRECTORY huruf kecil HANYA nama folder camcelcased tidak akan bekerja
Kemudian ubah direktori ke folder yang baru dibuat:
cd app/i18n/<project-name>/<xx_xx>
Sekarang Anda dapat membuat file composer.json(opsional) dengan konten berikut:
{
"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"
]
}
}
Selanjutnya buat kita perlu language.xmlfile dengan konten berikut:
<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>
Dibutuhkan setelah registration.phpmemuat konten berikut:
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::LANGUAGE,
'<project-name>_<xx_xx>',
__DIR__
);
Sekarang kita dapat membuat CSV terjemahan kita. Jika Anda sudah memiliki satu di dalam folder tema, sesuatu seperti app/design/<area>/<vendor>/<theme-name>/i18n/xx_XX.csvAnda hanya dapat memindahkannya keapp/i18n/<project-name>/<xx_xx>/xx_XX.csv
Sekarang dari project document rootkita perlu menjalankan perintah ini:
find pub/static -name js-translation.json -exec rm -rf {} \;
Kita perlu menghapus js-translation.jsonyang sudah dibuat sebelum menjalankansetup:static-content:deploy
Sekarang kami menjalankan penyebaran konten statis:
php bin/magento setup:static-content:deploy <xx_XX>
Setelah selesai, kami menghapus cache:
php bin/magento cache:clean
php bin/magento cache:flush
Kami dapat memverifikasi apakah file terjemahan untuk templat JS telah dihasilkan dengan menemukan semua di js-translation.jsondalam folder pub / statis.
find pub/static -name js-translation.json
Ini akan memberikan daftar semua file terjemahan yang dihasilkan untuk templat JS.
Referensi:
- Magento DevDocs
- Masalah Github Terkait
js-translation.jsonfile dibuat dengan benar dari penyebaran konten statis bahkan jika file .csv dimasukkanapp/design/frontend/vendor/theme-name/i18n/xx_XX.csv. Satu-satunya perawatan adalah menghapus semuajs-translation.jsonsebelum menjalankan penyebaran konten statis.