Przygotowywanie strony pod tłumaczenie – uciążliwe napisy generowane przez javascripta.

5 kwietnia 2019

Podczas tłumaczenia strony, dość często można napotkać problemy w postaci napisów umieszczonych bezpośrednio w szablonie, o ile nie jest to problem, aby zamknąć wszystkie napisy w funkcji _e(”) , tak gorzej jest, gdy w niektórych miejscach, widnieją napisy generowane dynamicznie poprzez javascripta.

 

Całe szczęście, istnieje pewien sposób, który pomoże uporać się z tym problemem.
Aby teksty w javascripcie stały się widoczne dla wordpressa, musimy zarejestrować pożądane napisy w functions.php, robimy to w taki sposób:

 

$translation_array = array(
      ‘colorSelected’ => __( ‘Guld-färgade’, ‘plugin-domain’ ),
      ‘choosenQuantity’ => __(‘Ändra’, ‘plugin-domain’),
      ‘currency’ => __(‘Kr’, ‘plugin-domain’),
);

 

Rejestrujemy array’a, w którym wartość po lewej to jest nazwa, do której będziemy mogli sie odwołać w javascripcie, a po prawej stronie dajemy słowo, które chcemy dodać do tłumaczenia.

Gdy już zarejestrujemy wszystkie słowa które chcemy przetłumaczyć, wystarczy tylko dodać linijkę lokalizującą skrypt:

 

wp_localize_script( ‘create_label’, ‘objectName’, $translation_array );

 

Gdzie pierwsza wartość, to jest nazwa zarejestrowanego skryptu, tego, do którego chcemy dołączyć tłumaczenia.

Drugą wartością, jest zmienna, do której będziemy się odnosić w naszym pliku javascript, a trzecia wartość, to array z naszymi tłumaczeniami.

Teraz gdy mamy już wszystko gotowe w naszym pliku functions.php, idziemy do naszego skryptu, po czym uzyskujemy tłumaczenie, odwołując się do zarejestrowanych wcześniej zmiennych.

Czyli: jeżeli chcę podmienić dany string w javascripcie, np. na pierwszą wartość w naszym arrayu (Guld-färgade), wystarczy że wpiszemy objectName.colorSelected.

 

Jeżeli zamkniemy sobie powyższą linijkę w console.log(), konsola powinna nam zwrócić wartość którą zdefiniowaliśmy wcześniej w functions.php, czyli: Guld-färgade

Nasze portfolio

Zobacz jakie fajne projekty udało
nam się już zrealizować.

zobacz