Мы разрабатываем модули для OpenCart 4.0 и заметили, что релизы OpenCart 4.0.1.1, 4.0.2.0, 4.0.2.1 имеют много недостатков, один из которых - проблема с переключением языка. Эта проблема не проявляется, если на сайте только один язык, но если языков несколько, то можно заметить, что изменить язык админки невозможно или что стандартные фразы модулей не переводятся на сайте при изменении языка, они всегда отображаются на английском. Конечно, это серьезный баг OpenCart, который, впрочем, его автор не спешит решать несмотря на многочисленные жалобы со стороны пользователей и контрибуторов системы. Надеемся, что проблема будет окончательно решена в следующих релизах OpenCart, а пока предлагаем решение пробелмы путем правок в файлах системы.
Не меняется язык админки OpenCart 4.0.1.1 - 4.0.2.1
В шапке админпанели есть переключатель языка, который отображает все доступные локализации. Но при попытке смены языка в админке ничего не происходит. Точнее, страница перезагружается, но язык остается на английском. Проблема известна и решается заменой блока кода в одном файле.
Откройте файл admin/controller/startup/language.php и найдите там следующий блок кода (если вы изменили название папки admin - ищите файл в папке с вашим новым названием):
// Language
if ($language_info['extension']) {
self::$extension = $language_info['extension'];
$this->language->addPath('extension/' . $language_info['extension'], DIR_EXTENSION . $language_info['extension'] . '/admin/language/');
}
Замените этот код на следующий:
$this->language = new \Opencart\System\Library\Language($code);
// Language
if ($language_info['extension']) {
self::$extension = $language_info['extension'];
$this->language->addPath(DIR_EXTENSION . $language_info['extension'] . '/admin/language/');
} else {
$this->language->addPath(DIR_LANGUAGE);
}
Не переводятся заголовки и фразы модулей на сайте OpenCart 4.0.1.1 - 4.0.2.1
При изменении языка на сайте некоторые фразы могут не переводиться из-за отсутствия перевода конкретных фраз, но также есть проблема с переводом стандартных модулей, например таких как Аккаунт или Рекомендуемые товары. Можно увидеть, что заголовки и фразы этих модулей не имеют перевода и всегда отображаются на английском языке. Это проблема конкретных версий OpenCart, а не установленных локализаций. И решается эта проблема также путем замены блока кода в одном из файлов системы. Но при этом должны присутствовать папки и файлы локализации в соответствующих каталогах модулей в середине каталога /extension/. Поэтому внимательно читайте инструкцию по установке локализации, которую вы собираетесь добавить на свой сайт. Ведь некоторые модули локализации автоматически копируют файлы переводов в папки других модулей, а некоторые просят скопировать файлы вручную в определенные папки.
Откройте файл catalog/controller/startup/language.php и найдите следующий блок кода:
// Language
if ($language_info['extension']) {
self::$extension = $language_info['extension'];
$this->language->addPath('extension/' . $language_info['extension'], DIR_EXTENSION . $language_info['extension'] . '/catalog/language/');
}
Замените этот код на следующий:
$this->language = new \Opencart\System\Library\Language($code);
// Language
if ($language_info['extension']) {
self::$extension = $language_info['extension'];
$this->language->addPath(DIR_EXTENSION . $language_info['extension'] . '/catalog/language/');
} else {
$this->language->addPath(DIR_LANGUAGE);
}
Конечно, в начальных релизах OpenCart 4.0.x.x есть еще много недостатков, но ведь нет ничего идеального, мы должны сами создавать идеальное для себя. Несмотря на все, ожидаем новые стабильные релизы Opencart 4 и движемся вперед.