WPML
Статус
Решено

Обзор проблемы

Когда Вы меняете локаль языка, например, для немецкого с de_DE на de_DE_formal, Вы можете заметить, что перевод строк перестал отображаться.

Эта проблема возникает из-за того, что WPML больше не может найти MO-файлы с соответствующей локалью языка. В нашем примере он будет искать some-domain-de_DE_formal.mo, но такого файла не существует. Вместо этого в WPML есть только запись о some-domain-de_DE.mo.

Обходное решение

Чтобы решить эту проблему, Вам нужно выполнить два действия:

1. Если у Вас есть строки, переведенные на странице WPML -> Перевод строк, перейдите на страницу WPML -> Поддержка -> Поиск и устранение неисправностей и нажмите кнопку Show custom MO Files Pre-generation dialog box. В появившемся диалоговом окне нажмите синюю кнопку, чтобы повторно сгенерировать пользовательские MO-файлы.

2. Скорее всего, первый шаг не восстановит все отсутствующие строки. Это связано с тем, что некоторые значения могут браться из отсутствующих исходных MO-файлов, предоставляемых другими плагинами или темами оформления. Чтобы решить эту проблему, Вам необходимо найти отсутствующие MO-файлы и создать их копии, используя новые имена с новым кодом языка.

В нашем примере, если строка обычно загружается из файла woocommerce-de_DE.mo, мы должны найти этот файл и создать его копию, используя имя, соответствующее текущей локали: woocommerce-de_DE_formal.mo. Вам необходимо скопировать все отсутствующие файлы, которые используются Вашим сайтом.

Типичные расположения, где можно найти эти MO-файлы:


  • ../wp-content/languages/

  • ../wp-content/plugins/plugin-in-question/

  • ../wp-content/plugins/plugin-in-question/languages/

Наконец, Вы также можете найти конкретные пути в таблице wp_icl_mo_files_domains в Вашей базе данных.

Все известные проблемы →