Dodawanie kolejnej wersji językowej do sklepu opartego o Magento przedstawię na przykładzie wersji angielskiej. Zakładam, że mamy dostępną podstawową instancję sklepu w języku polskim ze zdefiniowaną główną kategorią sklepu.
- Pierwszym krokiem jest zalogowanie się do Panelu administracyjnego.
- Z górnego menu wybieramy “System > Manage stores”
- Klikamy przycisk “Create Website”
- Wprowadzamy nazwę strony np. “Angielski”, przypisujemy unikalny kod dla naszej strony np. “eng” i zapamiętujemy ten kod, ponieważ przyda nam się później
- Gdy zmiany dotyczące strony są wprowadzone, klikamy przycisk “Create shop”
- Wybieramy teraz z pola select stronę, którą właśnie stworzyliśmy (Angielski), wybieramy główną kategorię sklepu i wprowadzamy nazwę dla sklepu, np. “Sklep angielski”
- Kolejnym krokiem jest stworzenie widoku dla sklepu. W tym celu klikamy “Create view”, wybieramy z selecta sklep, który właśnie stworzyliśmy (Sklep angielski), wprowadzamy kod dla sklepu, np. sklep_en i upewniamy się, że widok jest aktywny
- Teraz przechodzimy do zakładki “System > Configuration”, gdzie zdefiniujemy adresy naszego nowego sklepu.
- W lewym górnym roku zmieniamy zakładkę Scope, aby wskazywała na nasz sklep, który właśnie stworzyliśmy.
- Przechodzimy do zakładki Web i rozwijamy sekcje związane z konfiguracją adresów witryny (domyślnego i bezpiecznego)
- W obu sekcjach odznaczamy checkbox przy opcji wyboru wartości domyślnej przy polach “Base URL”
- Teraz wprowadzamy poprawne adresy, np. http://main-url-to-shop.com/en/ i zapisujemy konfigurację
- Teraz pora na zmiany w kodzie magento. Przechodzimy do lokalizacji, gdzie jest zainstalowane magento do folderu
src/public/shop
i tworzymy folder o nazwie takiej, jak kod naszej strony ustawiony w punkcie 4 (“eng”) - Kopiujemy wszystkie pliki .htaccess i index.php z katalogu
src/public/shop
dosrc/public/shop/eng
i otwieramy index.php do edycji - W pliku index.php zmieniamy nastepujące wpisy:
"define('MAGENTO_ROOT', getcwd() . '/../../../magento');"
Tutaj trzeba dodać przejście o jeden poziom wyżej, ponieważ w tej chwili plik index.php jest w podkatalug eng.
Ponadto ustawiamy jeszcze poprawnie zmienne:
$mageRunCode = 'eng'; $mageRunType = 'store';
i zapisujemy zmiany.
- Kolejny krok to przejście do lokacji, gdzie mamy zdefiniowane pliki z tłumaczeniami dla naszego sklepu. W moim przypadku jest to:
/src/magento/app/design/frontend/smartgroup/v1/locale
i wewnątrz pliktranslate.csv
. Tworzymy tam folder odpowiadający definicji locale dla nowej wersji językowej – w tym przypadku “en_EN” i po dokonaniu stosownych tłumaczeń zapisujemy tam pliktranslate.csv
dla języka angielskiego. - Teraz jeszcze pozostaje poinformować magento gdzie znajdują się dodatkowe zasoby związane ze sklepem oraz z jakiej wersji layoutu ma korzystać w przypadku wersji anglojęzycznej. Jeżeli wszystko ma pozostać takie samo, najlepiej w Panelu administracyjnym, w sekcji System > Configuration > Web dla nowej wersji językowej odpowiednio skonfigurować ścieżki: Base Skin URL, Base Media URL oraz Base JavaScript URL na podstawową ścieżkę naszego sklepu (czyli bez dodanego “en”, a więc: http://main-url-to-shop.com/skin/, http://main-url-to-shop.com/media/, http://main-url-to-shop.com/js/). Jeżeli natomiast mamy zdefiniowany własny layout, należy w zakładce Design ustawić Current Package Name (w moim przypadku smartgroup) oraz wypełnić odpowiednio pola Templates, Skin oraz Layout (w moim przypadku “v1”).
- Ostatni krok to zainstalowanie paczki z tłumaczeniami domyślnych treści magento. Przechodzimy w tym celu do System > Magento Connect > Magento Connect Manager. W polu ścieżki do nowego roszerzenia wprowadzamy następujący url dla wersji angielskiej: http://connect20.magentocommerce.com/community/Locale_Mage_community_en_EN i klikamy Instaluj
- Teraz pozostaje jeszcze odświeżenie wszystkich cache’y i cieszymy się nową wersją językową naszego sklepu
Magento – dodawanie kolejnej wersji językowej
jak powinnam postepowac, jezeli chce dokladnie na odwrot zrobic, tzn podstawowym jezykiem jest angielski a chce dodac polski jezyk`??
pozdrawiam serdecznie