Тож я нарешті змогла з’ясувати проблему.
Здається, що зчитується переклад шаблону JS, js-translation.json
який генерується під час setup:static-content:deploy
виконання. Для заповнення даних у цьому файлі для проекту повинен бути створений новий мовний пакет .
Тож замість того, щоб додавати CSV на рівні теми, як app/design/<area>/<vendor>/<theme-name>/i18n/xx_XX.csv
нам потрібно додати його в мовний пакет.
Щоб створити новий мовний пакет спочатку, project document root
нам потрібно буде створити такі каталоги:
mkdir -p app/i18n/<project-name>/<xx_xx>
Важливо : ВИКОРИСТОВУВАТИ РОБІТНІ ІМЕНИ ДІЯЛЬНИХ ІМЕНІВ, лише імена папок, розміщених у коробці, не працюватимуть
Потім змініть каталог на новостворені папки:
cd app/i18n/<project-name>/<xx_xx>
Тепер ви можете створити composer.json
(необов'язково) файл із таким вмістом:
{
"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"
]
}
}
Далі створимо нам потрібний language.xml
файл із таким вмістом:
<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
міститься такий вміст, потрібно:
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::LANGUAGE,
'<project-name>_<xx_xx>',
__DIR__
);
Тепер ми можемо створити наш переклад CSV. Якщо у вас вже є папка з темою щось подібне, app/design/<area>/<vendor>/<theme-name>/i18n/xx_XX.csv
ви можете просто перемістити їїapp/i18n/<project-name>/<xx_xx>/xx_XX.csv
Тепер project document root
ми повинні запустити ці команди:
find pub/static -name js-translation.json -exec rm -rf {} \;
Нам потрібно видалити те, js-translation.json
що вже було створено перед запускомsetup:static-content:deploy
Тепер ми запускаємо статичний вміст розгортання:
php bin/magento setup:static-content:deploy <xx_XX>
Після цього ми очистимо кеш:
php bin/magento cache:clean
php bin/magento cache:flush
Ми можемо перевірити, чи створено файли перекладу для шаблону JS, знайшовши всю js-translation.json
папку pub / static.
find pub/static -name js-translation.json
Це забезпечить список усіх файлів перекладу, створених для шаблонів JS.
Довідка:
- Magento DevDocs
- Пов’язаний випуск Github
js-translation.json
файли створюються правильно зі статичного розгортання вмісту, навіть якщо файли .csv вставлені вapp/design/frontend/vendor/theme-name/i18n/xx_XX.csv
. Єдина обережність - видалити всеjs-translation.json
перед запуском статичного вмісту.