✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Samouczek motywu WordPress dla początkujących – część 8: Tłumaczenie

17

W tej lekcji dowiemy się, jak działa tłumaczenie (lub inaczej znane jako i18n) w WordPressie i jak wprowadzić niezbędne poprawki w naszych szablonach. Dowiemy się również, jak prawidłowo skonfigurować PoEdit, aby utworzyć plik tłumaczenia dla naszego motywu, gotowy do przetłumaczenia na różne języki.

Po co zawracać sobie głowę dodawaniem obsługi tłumaczeń?

Wszystkie motywy, przynajmniej te, które zostaną udostępnione publicznie do użytku innych osób niż programista, powinny być dostępne do tłumaczenia. Nazywa się to internacjonalizacją (w skrócie i18n) i pozwala ludziom tłumaczyć teksty, które dodajesz w swoim motywie, na inny język.

Działa to tak, że jako autor motywu lub twórca wtyczek umieszczasz wszystkie swoje teksty (takie jak „Czytaj więcej", „Brak postów”) w określonych funkcjach. Dzięki tym funkcjom WordPress jest w stanie je pobrać i wstrzyknąć. tłumaczenie, jeśli istnieje.Wewnątrz motywu (lub wtyczki) możesz dodać pliki określonego typu dla każdego przetłumaczonego języka lub upewnić się, że inne osoby mogą tworzyć własne tłumaczenia w ich własnym języku.

Jest to bardzo przydatne dla osób, które chcą korzystać z WordPressa i Twojego motywu (lub wtyczki) w innym języku niż język, w którym został napisany (zwykle jest to angielski). Ale można go również wykorzystać do zmiany niektórych tekstów na coś innego w tym samym języku.

Jeśli jesteś zainteresowany tematem, WordPress Codex ma długi i dobry przewodnik po dokumentacji na temat i18n dla programistów.

Wdrożenie i18n w naszym motywie

Zrobiliśmy już pierwszą część w poprzednim kroku tej serii samouczków tematycznych, w której dodaliśmy load_theme_textdomainfunkcję konfiguracji naszego motywu. Na wypadek, gdybyś zapomniał, dodaliśmy:

load_theme_textdomain('wptutorial', get_stylesheet_directory(). '/lang');

Pierwszym argumentem jest uchwyt, jest to unikalny ciąg, którego będziesz używać do grupowania wszystkich tekstów należących do twojego motywu. Ten uchwyt zostanie powtórzony za każdym razem, gdy tekst będzie możliwy do przetłumaczenia. Drugi argument mówi WordPressowi, gdzie znajdują się pliki tłumaczeń. Zdefiniowaliśmy je tak, aby znajdowały się w podfolderze „ lang” w naszym katalogu motywów.

Nie martw się, jeśli ten folder nie istnieje lub nie zawiera żadnych plików – nic się nie zawiesi. Jeśli WordPress nie znajdzie folderu ani poprawnych plików tłumaczeń, domyślnie powróci do tekstów, które mamy w motywie.

Następnym krokiem jest przejrzenie całego naszego kodu i znalezienie dowolnego tekstu wyjściowego, który powinien być możliwy do przetłumaczenia. Dobrą praktyką jest upewnienie się, że obejmujemy absolutnie wszystkie teksty. Nic nie jest bardziej irytujące niż używanie motywu lub wtyczki, w której autor na stałe zakodował teksty uniemożliwiające jakiekolwiek tłumaczenie lub zmianę.

Jak sprawić, by teksty można było przetłumaczyć

To, co robimy ze wszystkimi tekstami, to umieszczanie ich w jednej z funkcji gettext WordPressa, którą najczęściej jest _e()lub __(). Pierwszym z nich jest podkreślenie z „e”, które jest używane, gdy chcesz w tym samym czasie powtórzyć tekst. Drugi to dwa podkreślenia i jest używany, gdy nie chcesz go powtarzać, ale przechowuj go lub używaj w zmiennej.

WordPress ma więcej funkcji gettext, które służą bardziej konkretnym celom, na przykład esc_html__(), _n()i _x()nie tylko. Jednak nie będziemy wchodzić w szczegóły dotyczące tych w tym samouczku.

Funkcje gettext przyjmują dwa parametry; po pierwsze sam tekst, a po drugie uchwyt zdefiniowany w load_theme_textdomain. W tym przypadku jest to „ wptutorial„.

Na przykład, jeśli masz coś takiego:

echo 'Read more';

Musisz go zastąpić:

_e('Read more', 'wptutorial');

I podobnie do przechowywania w zmiennej;

$myvariable = 'Read more';

Musi być napisane tak:

$myvariable = __('Read more', 'wptutorial');

Teraz musimy znaleźć wszystkie teksty w naszych szablonach! Jeśli przeszedłeś ten samouczek do „T”, to nie jest wiele. Mamy kilka smyczków index.php, a niektóre w single.php.

Dodanie obsługi tłumaczenia w naszym motywie

Zacznijmy od index.phpzlokalizowania komunikatu „Brak postów, przepraszam”, który dodaliśmy, jeśli pętla nie zawierała żadnych postów. Zawijamy ten tekst w środku _e(), ponieważ nadal chcemy go powtórzyć. Oto, co otrzymujemy:

...
} else {
    ?><p><?php _e('No posts, sorry.', 'wptutorial'); ?></p><?php
}
...

Ponieważ użyłeś _e(), nie powinieneś widzieć żadnych zmian po naciśnięciu przycisku odświeżania na stronie głównej lub archiwum. Ale pod maską ten tekst jest teraz do przetłumaczenia!

Ten sam tekst mamy w naszym single.phpi page.php. Zaktualizuj je w taki sam sposób, jak w programie index.php. Dodaliśmy więcej tekstów w single.php, więc oto jak to wygląda po przetłumaczeniu wszystkich tekstów:

...
        <?php the_category(); ?>
        <p><?php _e('Posted', 'wptutorial'); ?>: <?php the_date(); ?> <?php _e('at', 'wptutorial'); ?> <?php the_time(); ?></p>
        <p><?php _e('Author', 'wptutorial'); ?>: <?php the_author(); ?></p>
    </article>
    <?php endwhile;
} else {
    ?><p><?php _e('No posts, sorry.', 'wptutorial'); ?></p><?php
}
 
...

Od teraz wszystkie teksty, które dodamy w naszym motywie, upewniamy się, że zawijamy je do środka __()lub _e().

Pliki tłumaczeń

Istnieją dwa sposoby dostarczania plików tłumaczeniowych do motywu;

  • Podaj .pot-plik
  • lub podaj parę plików .poi ..mo

Plik .pot– jest zalecany dla motywu, który sprzedajesz lub rozdajesz innym użytkownikom, ponieważ za pomocą tego pliku bardzo łatwo jest wygenerować plik tłumaczenia dla nowego języka. Jednak utworzenie jednego z tych plików nie jest łatwe (ani darmowe). Jeśli znasz WP-CLI (wiersz poleceń WordPress) lub Grunt, możesz postępować zgodnie z wytycznymi zawartymi w dokumentacji WordPress tutaj. Jeśli nie, inna alternatywa może być dla Ciebie.

Pliki .poi .mopraca razem. WordPress wymaga .motłumaczenia tekstów, ale ten plik nie jest czytelny dla człowieka. Dlatego mamy .poplik, który jest dla nas czytelny. Przy odpowiednim oprogramowaniu generuje .moplik za każdym razem, gdy wprowadzasz zmiany.

Wadą .poi .moplików jest to, że musisz wygenerować jedną parę dla każdego języka, a po przetłumaczeniu na język nie ma łatwego sposobu na opróżnienie wszystkich tłumaczeń w celu stworzenia kolejnego nowego języka.

Potrzebujesz programu do edycji .poti .poplików. Najpopularniejszym z nich jest PoEdit. PoEdit jest darmowy i działa zarówno na iOS, jak i Windows. Jednak niektóre zaawansowane funkcje (takie jak generowanie .potpliku -) wymagają niestety płatnej wersji. Użyjemy darmowej wersji do stworzenia .popliku dla naszego motywu.

Pobierz i zainstaluj PoEdit, aby śledzić resztę samouczka.

Tworzenie pliku .po dla naszego motywu za pomocą PoEdit

Tworzenie pliku z tłumaczeniem na język angielski zwykle nie ma sensu, jeśli wszystkie teksty w naszym motywie i tak są w języku angielskim, ale na potrzeby tego samouczka stworzę plik z tłumaczeniem na język angielski.

1 Otwórz PoEdit i kliknij Plik > Nowy…

2 Zostaniesz poproszony o wybranie języka. Wybierz żądany język, na przykład angielski.

3 Naciśnij Zapisz (Ctrl+S). Znajdź folder motywu i wejdź do /lang/podfolderu. (Jeśli nie utworzyłeś go w poprzednim kroku, utwórz go teraz). Nazwa pliku ma kluczowe znaczenie. W przypadku motywów powinien nazywać się tylko kodem języka. Dla amerykańskiego angielskiego będzie to en_US, dla norweskiego będzie to nb_NO. Wygoogluj go lub zapoznaj się z tym przeglądem, aby znaleźć kod języka. Nazwiemy to en_US.po.

4 W menu kliknij Katalog > Właściwości…

5 W pierwszej zakładce możesz uzupełnić informacje takie jak nazwa projektu (motywu) lub zmienić język – ale nie jest to konieczne. Zalecam zachowanie zestawu znaków w UTF-8, ponieważ tak piszemy dla WordPressa.

Samouczek motywu WordPress dla początkujących – część 8: Tłumaczenie

6 Kliknij zakładkę Ścieżki źródeł. Tutaj musisz określić, w których folderach plik powinien szukać tekstów możliwych do przetłumaczenia. Ścieżki są względne, a ponieważ już zapisaliśmy je w podfolderze naszego motywu, wiemy, że musi iść w górę o jeden katalog. Naciśnij przycisk + pod polem Ścieżki i wybierz Dodaj foldery. Wybierz katalog motywów. Powinno to dodać element ścieżki „.” (przejdź o jeden folder w górę). Dokładnie sprawdź, czy „Ścieżka podstawowa” odnosi się do katalogu głównego motywu.

Samouczek motywu WordPress dla początkujących – część 8: Tłumaczenie

7 Kliknij następną kartę, „Słowa kluczowe w źródłach”. W tym miejscu musisz powiedzieć PoEdit, jakich funkcji użyłeś do tłumaczenia tekstów (na przykład __, _ei esc_html_etak dalej). Kliknij przycisk +, aby dodać każdą funkcję i napisz je bez „()”. Od Ciebie zależy, czy chcesz objąć wszystkie swoje podstawy i dodać wszystkie funkcje gettext WordPressa, ale w tym samouczku wiemy, że użyliśmy tylko dwóch. Dodajemy więc dwa elementy; __()i _e(). Dodaj funkcje bez żadnych nawiasów.

Samouczek motywu WordPress dla początkujących – część 8: Tłumaczenie

8 Naciśnij OK.

9 Jedyne, co pozostaje, to powiedzieć PoEdit, aby przeskanował podane ścieżki w poszukiwaniu funkcji za pomocą __()i _e()(lub cokolwiek podałeś). Robisz to, naciskając przycisk „Aktualizuj z kodu”. (Wersja dla systemu Windows ma tekst na przycisku, ale wersja dla systemu iOS nie – więc w przypadku systemu iOS należy nacisnąć przycisk, który zwykle jest ostatnim na pasku narzędzi; ikonę pliku z ikoną „ponów” na górze. Kliknij przycisk „Aktualizuj z kodu” i powinieneś zobaczyć wszystkie teksty wymienione z interfejsem do tłumaczenia:

Samouczek motywu WordPress dla początkujących – część 8: Tłumaczenie

Miły!

Wygenerowane pliki tłumaczeń

Teraz możesz użyć PoEdit do przetłumaczenia każdego ciągu, ale nie zrobimy tego tutaj, ponieważ nie ma sensu tłumaczyć z angielskiego na angielski. Pamiętaj, aby nacisnąć Zapisz, aby zaktualizować i wygenerować .moplik, a za każdym razem, gdy dodasz kolejny tekst w swoim motywie, musisz ponownie nacisnąć przycisk „Aktualizuj z kodu”. Wtedy pojawią się nowe zmiany w Twoich szablonach.

Jeśli sprawdzisz /langpodfolder w folderze katalogu motywu, powinieneś zobaczyć dwa pliki; plik .po, który właśnie stworzyliśmy, oraz .moplik o tej samej nazwie, wygenerowany przez nas zapisany w PoEdit.

Możesz wykonać kopię en_US.popliku i zmienić jego nazwę na kod innego języka. Pamiętaj jednak, że PoEdit nie oferuje prostego sposobu na wyczyszczenie wszystkich przetłumaczonych ciągów; musiałbyś wyczyścić jeden po drugim. To jest powód, dla którego jest to do bani dla użytkowników, którzy chcą przetłumaczyć Twój motyw na inny język. Więc jeśli masz możliwość stworzenia .potpliku, powinieneś to zrobić.

WordPress wyszuka plik tłumaczenia w zależności od języka zdefiniowanego w menu administratora Ustawienia > Język strony. Jeśli dodałeś inny język niż angielski, możesz go przetestować, zmieniając język witryny i sprawdź, czy pojawi się Twoje tłumaczenie!

Źródło nagrywania: awhitepixel.com

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów