Импорт po-файлов с помощью Drush

15

У меня около 20 сайтов, которые имеют общий перевод. Я не хочу заходить в админ каждого сайта каждый раз, когда обновляется po-файл.

Можно ли импортировать po-файл с помощью Drush?

Д. Вроблевский
источник

Ответы:

25

Я нашел способ сделать это с помощью Drush и Localization Update .

  1. Установить обновление локализации drush en l10n_update
  2. Настройте локальный путь для po-файлов (admin / config / Regional / language / update)
  3. Настройте автоматические обновления с удаленных серверов или просто локальных источников

Теперь вы можете поместить свои собственные po-файлы в локальный путь (например, sites / all / translations). Если у вас есть переводы для вашего собственного модуля, вы называете его в соответствии с этим соглашением об именах:

имя_модуля-version.language.po

Таким образом, шведский po-файл для my_module версии 7.x-1.1 будет иметь имя:

my_module-7.x-1.1.sv.po

Теперь у вас есть все настройки и вы можете начать обновлять перевод сайтов с помощью Drush:

drush l10n-update-refresh # Looks for new po-files
drush l10n-update # Updates translations
Д. Вроблевский
источник
Я не мог заставить это действительно работать. Я экспортировал переводы в po-файл, используя пользовательский интерфейс. Он был назван как de.poдля немецкого языка. Я переименовал его на мое имя модулей и приложил его версию моего модуля , как: controller-7.x-1.0.de.po. Вытолкнул его с помощью git и выполнил команды drush. Но он не обнаруживает мой недавно отправленный po-файл и говорит: «Все переводы актуальны». Где я делаю не так?
Елин Й.
Вам нужно поместить po-файл в каталог, сконфигурированный l10n_update, в качестве источника, как правило, sites / all / translations
FGM
2
Кто-нибудь знает, как это сделать в Drupal 8?
Гийом Буа
Осторожно! Если вы хотите использовать этот метод для пользовательских локальных модулей, ваш .info-файл должен иметь projectсвойство , иначе модуль будет полностью проигнорирован.
thedotwriter
Одна последняя деталь, с версией 2.2, я должен был указать --mode=overwriteпри запуске drush l10n-update, иначе изменения в моем .po-файле не были бы приняты во внимание (даже если modeуже задано значение overwriteв бэкэнде).
thedotwriter
3

На данный момент нет способа сделать это с Drush, но вы можете использовать модуль Localization Update .

Вы также можете попробовать использовать Selenium IDE или скрипт Selenium, если у вас много сайтов. Это лучшее решение, которое мне удалось найти для получения перевода на экспорт.

  • Я говорю, что нет никакого способа сделать это с Drush, потому что я открыл запрос на функцию в очереди проблем несколько недель назад, и он был закрыт, так как «не будет исправлен» по той причине, что сопровождающие считают, что такая команда должна быть протестирована в Сначала i18n или другие модули, прежде чем интегрировать его в ствол Drush.
Патрик Кенни
источник
1

Лучше всего использовать модуль Potx Exportable s.

Это выставляет команду Drush drush potx-import-all

vancho17
источник
Добро пожаловать в ответы Drupal! Модуль также имеет поддержку Drush? ОП просит способ сделать это с Drush.
kiamlaluno