W momencie kiedy tworzymy wtyczkę lub szablon i wiemy, że będzie obsługiwać języki wtedy potrzebujemy wygenerować pliki .po .mo oraz w szablonie muszą znajdować się odpowiednie funkcje zamiast zwykłego tekstu.
W tym poradniku dowiesz się jakie wtyczki będą Ci przydatne oraz jak włączyć obsługę wielu języków w WordPressie. Zapraszam :)
Zmiana zwykłego tekstu w kodzieNa początek powinniśmy zamienić fragmenty tekstów, które są na sztywno w kodzie, na funkcję zawierającą ten tekst i informującą WordPressa, że ten tekst jest tekstem z możliwością obsługi wielu języków.
Przykład zwykłego tekstu
$przyklad = 'Przykładowy tekst';
echo 'Przykładowy tekst 2';
Tekst zamieniamy na funkcję
_e(); lub
__(); w zależności czy chcemy, go wyświetlić od razu, czy przekazać jako string w inne miejsce.
$przyklad = __('Przykładowy tekst','textdomain');
_e('Przykładowy tekst 2','textdomain');
Gdzie
textdomain, to identyfikator dla naszych stringów. Często nazwą jest nazwa wtyczki lub szablonu.
Najlepiej w trakcie tworzenia szablonu / wtyczki od razu dodać te funkcje zamiast zwykłego tekstu. Dzięki temu nie będziemy musieli później przerabiać.
Edycja styli bez których może nie działać obsługa językówW domyślnych stylach szablonu lub wtyczki czyli style.css, na początku trzeba zdefiniować nazwę
textdomain oraz położenie plików z tłumaczeniami.
/*
Theme Name: Przykładowy szablon
Description: Przykładowy plik
Version: 1.0.0
Author: KarolDrag
Author URI: https://karol-drag.eu
Domain Path: /languages
Text Domain: textdomain
*/
Dodanie funkcji bez których może nie działać obsługa językówDla wtyczkiadd_action( 'plugins_loaded', 'myplugin_load_textdomain' );
function myplugin_load_textdomain() {
load_plugin_textdomain( 'textdomain', false, basename( dirname( __FILE__ ) ) . '/languages' );
}
Dla szablonuadd_action( 'after_setup_theme', 'my_theme_setup' );
function my_theme_setup(){
load_theme_textdomain( 'textdomain', get_template_directory() . '/languages' );
}
Wygenerowanie plików .mo, .poKiedy już mamy skonfigurowane wszystkie wymagane elementy pora na wygenerowanie plików .mo i .po. Użyjemy do tego znanej wtyczki
Loco Translate, możliwe, że gdzieś już o niej słyszałeś.
Po zainstalowaniu wtyczki, przechodzimy do niej. Powinna znajdować się na samym dole w lewym menu. W głównym oknie wtyczki znajdziemy listę wszystkich aktywnych wtyczek oraz szablonów.
Wybieramy nasz szablon lub wtyczkę i wchodzimy w zakładkę
Advanced by upewnić się, że wszystkie pola są dobrze wypełnione.

Jeśli tak, to przechodzimy do zakładki Overview i klikamy przycisk Create template. Następnie znowu klikamy przycisk Create template i nasz szablon stringów zostanie utworzony.

Jeśli w przyszłości będziemy chcieli dodać kolejne stringi do tłumaczeń musimy wybrać opcję Edit template i następnie wybrać opcję Sync, aby zsynchronizować nasze stringi z plikiem .pot.
Teraz przechodzimy do tworzenia plików .po, .mo dla języka np. Polskiego. Aby to zrobić wybieramy opcję New language.

Tutaj wybieramy język oraz w jakim miejscu mają znajdować się pliki. Najlepiej zrobić to w plikach szablonu / wtyczki, którą tworzymy, wtedy będzie nam łatwiej edytować na przyszłość.
Kiedy klikniemy Start translation od razu przekieruje nas do najważniejszego okna, okna tłumaczeń.

Klikamy na string, który chcemy przetłumaczyć, następnie w polu na samym dole (które nazywa się
Polish translation) wpisujemy tekst jaki chcemy widzieć zamiast tego które wybraliśmy, a następnie klikamy
Save i sprawdzamy na stronie czy tekst się przetłumaczył / zamienił. Jeśli nie to widocznie coś źle zrobiłeś.
Wtyczki do obsługi językówNo dobrze, gdy już wiesz, że obsługa języków dla Twojego szablonu lub wtyczki działa, to wypadałoby przetestować ją w kilku językach. Aby to zrobić potrzebujemy wtyczki do języków.
Przykładowymi wtyczkami są
Polylang (darmowa) i
WPML (płatna). Dzisiaj nie będę opisywać jak je skonfigurować. Zrobimy to następnym razem, a ja zachęcam do udzielania się w dyskusjach (komentarze i portale społecznościowe).
Pozdrawiam
Drag