Tłumaczenie pól dodatkowych Wielojęzyczność VirtueMart
Jedną z bolączek nadal nie rozwiązanych w dobrze działającym komponencie VirtueMart jest trudność w sprawnym przetłumaczeniu pól dodatkowych. Poniżej przedstawiam rozwiązanie, które w łatwy sposób zaradza tym problemom.
Problem, jakiemu chcemy zaradzić:
- Brak możliwości automatycznego tłumaczenia wpisów w etykietach pól dodatkowych w VirtueMart.
Opis:
- Według tego założenia dysponujemy stroną lub sklepem internetowym w co najmniej dwóch językach: rodzimym oraz obcym, który funkcjonuje poprawnie.
- W sekcji VM > Pola dodatkowe posiadamy zdefiniowane, co najmniej jedno pole dodatkowe i jest ono opublikowane.
- W sekcji VM > Produkty posiadamy, co najmniej jeden produkt w wariancie dwujęzycznym z przypisanymi polami/polem dodatkowym.
Rozwiązanie:
Rozwiązaniem, które pozwoli uniknąć błędów w przyszłości (np. łatwo pozwoli dodawać kolejne języki do obecnego sklepu internetowego, jeśli zajdzie taka potrzeba) jest utworzenie specjalnych stałych językowych oraz wprowadzenie ich na karcie produktu oraz w sekcji Rozszerzenia > Języki > Nadpisane.
- Przejdź do Rozszerzenia > Języki > Nadpisane i wybierz język dla Witryny do wprowadzenia nadpisania/stworzenia stałej językowej. Najlepiej wybrać język angielski i tworzone stałe oznaczać odpowiednikami angielskimi (nie będzie błędów, które mogą wynikać, np. ze znaków rodzimych języka: ą,ę,ć,ż itp.).
- Utwórz dla potrzebnego Ci tłumaczenia odpowiednie stałe. Dla przejrzystości i w zgodzie z dokumentacją komponentu doradzam wykorzystanie istniejącego porządku doradzam wykorzystanie przedrostków nazwy przewidzianych dla naszego komponentu, gdzie ich końcówki będą określały tworzone zmienne: COM_VIRTUEMART_VAR_01 - początek określa nam przeznaczenie a końcówka będzie nawigowała do konkretnej zmiennej.
- Po dodaniu wszystkich stałych obcojęzycznych konieczne będzie przejście do napisań w drugim języku, najprawdopodobniej w polskim. Tutaj korzystając z tych samych stałych językowych tworzymy ich odpowiedniki. Czyli stała COM_VIRTUEMART_VAR_01 ma swoją wartość w języku witryny EN i powtórzoną w języku witryny PL - naturalnie obie we właściwych językach.
- Jeśli w przyszłości sklep internetowy wielojęzyczny miałby się wzbogacić o kolejne tłumaczenie to wystarczy powtórzyć użycie stałej dla nowego wariantu a produkt automatycznie otrzyma tłumaczenie pola dodatkowego.