Локалізація Magento2 Javascript


16

Тут вже було задано подібне запитання: Magento 2 переклади тексту JavaScript , але Magento оновив цю техніку перекладу у бета-версії.

Як я можу додати або оновити переклади, які використовує Javascript?

Я зрозумів, що Magento створює файл з назвою 'js-translation.json' у папці статики. Якщо я редагую цей файл безпосередньо, я бачу, що мої переклади оновлюються. Але де створений цей файл, і як я можу додати переклади, щоб Magento автоматично додав це до js-translation.json, коли він буде створений?

Оновлення

Правильної відповіді на це питання досі не дано, хоча Mage2.PRO вказав на мене в правильному напрямку, це не повна відповідь. Мій js-translation.json все ще порожній при створенні.

Наприклад, мені подобається перекласти кнопку Додати в кошик. Ця кнопка має три стани: Додати в кошик, Додавання ... та Додано ... Як я можу перекласти ці слова? Інший приклад - "У вас немає товарів у кошику для покупок". текст у міні-картці. Я думаю, що всі ці фрази повинні бути перекладені з js-translation.json, але куди їх додати, щоб цей файл був заповнений цими перекладами?


Я не впевнений у цьому на 100%, але думаю, що відповідь, яку надає mage2.pro, є правильною. Якщо у вас є, наприклад, це в одному з js-файлів, $.mage.__('Add To Cart')воно буде автоматично підхоплено setup:static-content:deployкомандою. Єдина уловка полягає в тому, що ви повинні мати в локальних файлах інший переклад тексту. Тексти, які мають переклад одного тексту, не додаються у файл json, щоб не збільшувати розмір без причини.
Маріус

Відповіді:


10

Не впевнений, чи ви це вже зрозуміли, але я подумав, що все одно відповім ..

Я здогадуюсь, що інші відповіді йдуть у правильному напрямку.

Якщо припустити, що ви вже встановили переклади, якщо ні, будь ласка:

bin/magento i18n:pack -m replace -d source_nl_NL.csv . nl_NL

Отже, спочатку очистіть кеш-пам'ять (як запропонували й інші):

rm -rf var/cache var/generation var/page_cache var/view_preprocessed

По-друге, очистіть папку / статичну папку:

rm -rf pub/static/*/

Потім ми регенеруємо статичний контент: (я пропустив ланг-код в інших відповідях ..)

bin/magento setup:static-content:deploy nl_NL - Переконайтеся, що ви додали ланг-код

Тепер перевірте, чи було створено js-translation.json:

find pub/static/ -name "js-translation.json"

Швидше за все, ви отримаєте список js-translation.jsonфайлів. Перевірте ці файли та видаліть їх, якщо вони порожні чи містять щось подібне [].


1
Дякую Тімон, це справді шлях! Я зрозумів це сам деякий час тому, але відповіді ще не опублікував. Це чудове доповнення до питання.
Сільван

@Silvan У моїй установці у файлі js-translation.json вже є деякі фрази, перекладені в моїй мові, але все ще є фрази, які не перекладаються, чи слід додати їх до цього файлу вручну?
Луїс Гарсія

Я б не рекомендував цього, оскільки файл js-перекладу буде перезаписаний наступного разу, коли ви розгортаєте статичні файли. У такому випадку ви повинні додавати фрази вручну кожного разу, коли ви здійснювали розгортання. Чи є ці фрази в мовному пакеті?
Сільван

1

Спробуйте додати переклади до файлів .csv та переконайтеся, що виконуються наступні кроки:

  1. Зберігання кешу слід очистити (в основному папки var / cache та var / view_preprosedsed слід очистити)
  2. Статичні файли слід перерозподілити (видалити всі папки всередині pub / static та запустити налаштування bin / magento: static-content: розвернути)

0

Видаліть весь кеш і видаліть вміст паб / статичної папки.

Перейдіть до кореневого каталогу та запустіть команду нижче: -

Налаштування php bin / magento: статичний контент: розгортання

Сподіваємось, ваша проблема буде вирішена.


ArkadiyCh також сказав мені, щоб видалити кеш і перерозподілити статичні файли, на жаль, це не вирішує мою проблему.
Сільван

0

У мене була така ж проблема, як "Неможливо перекласти фрази в $ .mage .__ (" XXX ")", коли фраза в phtml працювала ідеально. Отже, рішення було геніально простим.

$ t (...) і $ .mage аналізує лише файли * .js

Отже, він не потрапляє до словника js-перекладу.

Тож, надаючи скрипт розділу у файли phtml, слід безпосередньо вставити вже перекладені фрази з обгортками __('Translated phrase').

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.