Traducir el modo de mantenimiento por sitio web en la configuración de múltiples dominios
¿Cuál es la forma correcta de traducir (localización) la página de mantenimiento en un entorno de múltiples sitios web y dominios múltiples?
La configuración se realiza en:
- MAGENTO_ROOT / index.php
- MAGENTO_ROOT / uk / index.php
- Raíz_manto / us / index.php
- MAGENTO_ROOT / somecode / index.php
Supongamos que las tiendas son accesibles a través de:
- http://MagentoExample.com/index.php (predeterminado)
- http://MagentoExample.uk/ (uk)
- http://MagentoExample.us/ (us)
- http://MagentoExample.com (algún código)
Puedo ver fácilmente algunas soluciones para ello, pero todos ellos parecen ser más una solución que soluciones agradables y limpias.
¿Cómo resuelves este problema?
Respuestas:
De manera predeterminada, Magento no admite la traducción inmediata para páginas de error, y requiere algunas personalizaciones para permitir tales características. Entonces, técnicamente no hay una manera adecuada de hacerlo.
Como la pila completa NO se inicializa durante la generación de errores, la funcionalidad de traducción normal
$this->__('foobar');
no funcionará en las plantillas.Algunos detalles sobre cómo se generan las páginas de error se pueden encontrar en MageBase:
Una opción es simplemente copiar
errors/
en cada uno de los subdirectorios de sus idiomasuk
,us
etc. y modificar las plantillas para reflejar los idiomas del punto de entrada del sitio web del usuario final.Solo tenga en cuenta su
index.php
de cada vista para incluir los documentos de errores relativos relativos:También tenga en cuenta que hay una plantilla base para todos los errores, incluido 404 en el
page.html
Probablemente haya soluciones más elegantes, pero como ya está duplicando
index.php
para diferentes vistas, algunos archivos más pueden no ser demasiado desordenados. También puede modificar las plantillas para incluir el CSS y las imágenes de nivel superior para ahorrar algo de redundancia.También puede crear un archivo de idioma del mismo modo que lo hace en la localización estándar de Magento y leer los valores con el
process.php
archivo, ya que el título y algunos otros datos que necesitarían localización se están configurando allí. Un ejemplo simple de uso de Varien_File_Csv para leer un archivo de lenguaje .CSV:Nota adicional: dado que la pila en el punto actual del tiempo de ejecución puede no permitir la
Varien_File_Csv
inclusión de la clase utilizando la función interna de PHP, fgetcsv puede ser una mejor alternativa.Y analice el idioma del archivo CSV necesario para completar los datos requeridos en el
process.php
archivo.Otra alternativa sería simplemente agregar el traductor de Google o una herramienta de terceros para traducir automáticamente las páginas de error al idioma del usuario final.
Referencias
fuente
Como se mencionó anteriormente, no hay una manera fácil de traducir la página de mantenimiento. Sin embargo, hay una solución alternativa (que tiene su propio número de ventajas / desventajas): use algunas de las extensiones del modo de mantenimiento, como esta:
http://www.magentocommerce.com/magento-connect/store-maintenance.html
Muestra la página de modo de mantenimiento DESPUÉS de que se haya cargado la pila de Magento, lo que significa que necesita tener una conexión a la base de datos y algunas otras cosas. Por eso también es más lento y requiere más recursos. Pero si no es un problema para usted, hace que la página de mantenimiento sea totalmente personalizable.
fuente
Actualizar:
Encontré otra forma de traducir la página de mantenimiento:
https://github.com/OpenMage/magento-lts/blob/1.9.3.x/errors/processor.php#L160-L162
El constructor de la página de mantenimiento acepta un
skin
parámetro POST para cambiar el diseño. Parece ser la forma intencional, pero no está documentada (todavía) ...Agregue algunas reglas de reescritura
.htaccess
que agreguen unskin
parámetro a su URL. P.ej.Copiar
errors/default
aerrors/french
Tal vez un poco tarde, pero es una buena solución de trabajo, sin copiar el
error
directorio a cada subcarpeta ..."Desventajas":
processor.php
para leer una modificaciónlocal.xml
.Configuración básica
Configuración de múltiples sitios web y varias tiendas como esta, la única diferencia es que he configurado
MAGE_RUN_CODE
en.htaccess
lugar deindex.php
. Para el primer dominio, no usoRUN_CODE
todos los demás, parece que ...Además de la respuesta ligado tuve que fijar
RewriteBase
en.htaccess
hacer coincidir directorio locale y editarindex.php
enen
,fr
y el cambioa
Editar
errors/404.php
,503.php
yreport.php
Reemplazar
con
Y agregue esto a
errors/processor_multiwebsite.php
Nueva
local.xml
estructuraEn lugar de establecer
<skin>
en el primer nivel, primero busque sitios web runcode / localePlantillas
Agregar
503.phtml
, ..., CSS a directorios que coincidan<runcode>-<locale>
default-default
(Idioma predeterminado del primer dominio)default-en
default-fr
website1-default
(Idioma predeterminado del segundo dominio)No hay CSS / imágenes duplicadas
<skin_base>
nodo alocal.xml
page.phtml
archivos de iehref="css/styles.css"
a<?php echo $this->getSkinBaseUrl('css/styles.css')?>
fuente