Przetłumacz Tryb konserwacji na witrynę w konfiguracji wielu witryn i wielu domen
Jaki jest właściwy sposób tłumaczenia strony konserwacji (lokalizacja) w środowisku wielu witryn i wielu domen?
Konfiguracja składa się z:
- MAGENTO_ROOT / index.php
- MAGENTO_ROOT / uk / index.php
- MAGENTO_ROOT / us / index.php
- MAGENTO_ROOT / somecode / index.php
Załóżmy, że sklepy są dostępne poprzez:
- http://MagentoExample.com/index.php (domyślnie)
- http://MagentoExample.uk/ (uk)
- http://MagentoExample.us/ (us)
- http://MagentoExample.com (somecode)
Z łatwością widzę kilka rozwiązań, ale wydaje się, że to bardziej obejście niż rzeczywiste ładne, czyste rozwiązania.
Jak rozwiązać ten problem?
Odpowiedzi:
Domyślnie Magento nie obsługuje tłumaczenia gotowych stron błędów i wymaga pewnych dostosowań, aby umożliwić takie funkcje. Więc technicznie nie ma właściwego sposobu, aby to zrobić.
Ponieważ pełny stos NIE jest inicjowany podczas generowania błędów, normalna funkcja tłumaczenia
$this->__('foobar');
nie będzie działać w szablonach.Niektóre szczegóły dotyczące sposobu generowania stron błędów można znaleźć w MageBase:
Jedną z opcji jest po prostu skopiować
errors/
do każdego z katalogów podrzędnych swoich językówuk
,us
itp i modyfikowania szablonów w celu odzwierciedlenia języków punktu wejścia internetowej użytkownika końcowego.Po prostu zanotuj swój
index.php
każdy widok, aby dołączyć podrzędne błędy względne:Należy również pamiętać, że istnieje podstawowy szablon dla wszystkich błędów, w tym 404 w
page.html
Prawdopodobnie istnieją bardziej eleganckie rozwiązania, ale ponieważ już kopiujesz
index.php
różne widoki, kilka innych plików może nie być zbyt zagraconych. Możesz także zmodyfikować szablony, aby uwzględnić CSS najwyższego poziomu i obrazy, aby zaoszczędzić trochę nadmiarowości.Możesz także utworzyć plik językowy tak samo jak w standardowej lokalizacji Magento i odczytać wartości w
process.php
pliku, ponieważ ustawia się w nim tytuł i inne dane, które wymagałyby lokalizacji. Prosty przykład użycia Varien_File_Csv do odczytu pliku .CSV języka:Dodatkowa uwaga: Ponieważ stos w bieżącym momencie wykonywania może nie pozwolić na
Varien_File_Csv
włączenie klasy za pomocą wewnętrznej funkcji PHP, fgetcsv może być lepszą alternatywą.I przeanalizuj plik CSV języka wymagany do wypełnienia wymaganych danych w
process.php
pliku.Inną alternatywą byłoby po prostu dodanie tłumaczenia Google lub takiego narzędzia innej firmy, aby automatycznie tłumaczyć strony błędów na język użytkowników końcowych.
Bibliografia:
źródło
Jak wspomniano wcześniej, nie ma łatwego sposobu na przetłumaczenie strony konserwacji. Jest jednak jedno obejście tego problemu (które ma swoje zalety i wady) - skorzystaj z niektórych rozszerzeń trybu konserwacji, takich jak ten:
http://www.magentocommerce.com/magento-connect/store-maintenance.html
Wyświetla stronę trybu konserwacji PO załadowaniu stosu Magento, co oznacza, że musisz mieć połączenie z bazą danych i kilka innych rzeczy. Z tego powodu jest również wolniejszy i wymaga więcej zasobów. Ale jeśli nie stanowi to dla Ciebie problemu, strona konfiguracyjna jest w pełni konfigurowalna.
źródło
Aktualizacja:
Znalazłem inny sposób na przetłumaczoną stronę konserwacji:
https://github.com/OpenMage/magento-lts/blob/1.9.3.x/errors/processor.php#L160-L162
Konstruktor strony konserwacji przyjmuje
skin
parametr POST w celu zmiany układu. Wydaje się to być celowe, ale nie zostało (jeszcze) udokumentowane ...Dodaj do przepisu kilka reguł,
.htaccess
które dołącząskin
parametr do adresu URL. Na przykład.Skopiuj
errors/default
doerrors/french
Może trochę spóźniony, ale dobre rozwiązanie, bez kopiowania
error
katalogu do każdego podfolderu ...„Wady”:
processor.php
aby przeczytać zmodyfikowanelocal.xml
.Podstawowe ustawienia
Multi-multi-sklep www set-up w ten sposób, tylko differnce jest, że mam ustawiony
MAGE_RUN_CODE
w.htaccess
zamiastindex.php
. Dla 1. domeny nie używamRUN_CODE
wszystkich innych, wygląda na to ...Oprócz połączonej odpowiedzi musiałem ustawić
RewriteBase
w.htaccess
celu dopasowania lokalizacji katalogu i edytowaćindex.php
wen
,fr
i zmianydo
Edycja
errors/404.php
,503.php
areport.php
Zastąpić
z
I dodaj to do
errors/processor_multiwebsite.php
Nowa
local.xml
strukturaZamiast ustawiać
<skin>
na pierwszym poziomie, najpierw wyszukaj strony Runcode / localeSzablony
Dodaj
503.phtml
, ..., CSS do dopasowania katalogów<runcode>-<locale>
default-default
(Domyślny język 1. domeny)default-en
default-fr
website1-default
(Domyślny język drugiej domeny)Brak duplikatów CSS / obrazów
<skin_base>
węzeł dolocal.xml
page.phtml
plikach z np.href="css/styles.css"
na<?php echo $this->getSkinBaseUrl('css/styles.css')?>
źródło