Переведите режим обслуживания для каждого веб-сайта в настройку нескольких веб-сайтов.
Как правильно перевести страницу обслуживания (локализацию) в многосайтовую и многодоменную среду?
Установка сделана в:
- MAGENTO_ROOT / index.php
- MAGENTO_ROOT / ик / index.php
- MAGENTO_ROOT / нам / index.php
- MAGENTO_ROOT / somecode / index.php
Давайте предположим, что магазины доступны через:
- http://MagentoExample.com/index.php (по умолчанию)
- http://MagentoExample.uk/ (Великобритания)
- http://MagentoExample.us/ (нас)
- http://MagentoExample.com (код)
Я легко могу найти несколько решений для этого, но все они, кажется, больше обходного пути, чем настоящие хорошие, чистые решения.
Как вы решаете эту проблему?
Ответы:
По умолчанию Magento не поддерживает перевод из коробки для страниц с ошибками и требует некоторых настроек для включения таких функций. Так что технически нет правильного способа сделать это.
Поскольку полный стек НЕ инициализируется во время генерации ошибок, обычные функции перевода
$this->__('foobar');
не будут работать в шаблонах.Некоторые подробности о том, как генерируются страницы ошибок, можно найти в MageBase:
Одним из вариантов являются просто скопировать
errors/
в каждый из ваших вложенных каталогов ваших языковuk
,us
и т.д. , и изменять шаблоны для отражения языков точки входа сайта конечного пользователя.Просто обратите внимание
index.php
на каждое представление, чтобы включить относительные документы об ошибках:Также имейте в виду, что есть базовый шаблон для всех ошибок, включая 404 в
page.html
Вероятно, есть более элегантные решения, но, поскольку вы уже дублируете
index.php
различные представления, еще несколько файлов не будут слишком перегружены. Вы также можете изменить шаблоны для включения CSS верхнего уровня и изображений, чтобы сохранить некоторую избыточность.Вы также можете создать языковой файл так же, как вы делаете это в стандартной локализации Magento, и прочитать значения в
process.php
файле, так как там указываются заголовок и некоторые другие данные, которые должны были бы быть локализованы. Простой пример использования Varien_File_Csv для чтения языкового файла .CSV:Дополнительное примечание: поскольку стек в текущей точке выполнения может не допускать
Varien_File_Csv
включение класса с использованием внутренней функции PHP, лучшим вариантом может быть fgetcsv .И проанализируйте языковой файл CSV, необходимый для заполнения необходимых данных в
process.php
файле.Другой альтернативой было бы просто добавить Google translate или такой сторонний инструмент для автоматического перевода страниц с ошибками на язык конечных пользователей.
Ссылки:
источник
Как упоминалось ранее, нет простого способа перевести страницу обслуживания. Однако для этого есть один обходной путь (который имеет свои преимущества / недостатки) - используйте некоторые расширения режима обслуживания, такие как этот:
http://www.magentocommerce.com/magento-connect/store-maintenance.html
Он отображает страницу режима обслуживания ПОСЛЕ загрузки стека Magento, а это значит, что вам нужно подключение к базе данных и несколько других вещей. Из-за этого он также медленнее и требует больше ресурсов. Но если для вас это не проблема, страница технического обслуживания полностью настраивается.
источник
Обновить:
Найден другой способ для переведенной страницы обслуживания:
https://github.com/OpenMage/magento-lts/blob/1.9.3.x/errors/processor.php#L160-L162
Конструктор страницы обслуживания принимает
skin
параметр POST для изменения макета. Кажется, это преднамеренный путь, но он не задокументирован (пока) ...Добавьте некоторые правила перезаписи,
.htaccess
которые добавляютskin
параметр к вашему URL. Например.Копировать
errors/default
вerrors/french
Может быть, немного поздно, но хорошее рабочее решение, без копирования
error
каталога в каждую подпапку ..."Downsides":
processor.php
чтобы прочитать измененныеlocal.xml
.Базовая настройка
Multi-сайт мульти-магазин установка , как это, только differnce является то , что я поставил
MAGE_RUN_CODE
в.htaccess
вместоindex.php
. Для 1-го домена я не используюRUN_CODE
все остальные, похоже ...В дополнение к связанному ответ я должен был установить
RewriteBase
в ,.htaccess
чтобы соответствовать локали каталог и редактироватьindex.php
вen
,fr
и измененияв
Edit
errors/404.php
,503.php
иreport.php
замещать
с
И добавить это к
errors/processor_multiwebsite.php
Новая
local.xml
структураВместо того, чтобы устанавливать
<skin>
на первом уровне, сначала ищите сайты с кодами запуска / локализациейШаблоны
Добавить
503.phtml
, ..., CSS к соответствию каталогов<runcode>-<locale>
default-default
(1-й домен по умолчанию язык)default-en
default-fr
website1-default
(2-й домен по умолчанию язык)Нет повторяющихся CSS / изображений
<skin_base>
узел вlocal.xml
page.phtml
файлах с т.е.href="css/styles.css"
на<?php echo $this->getSkinBaseUrl('css/styles.css')?>
источник