Jak zlokalizować i przetłumaczyć wtyczkę WordPress – szczegółowy przewodnik dla twórców wtyczek
Opublikowany: 2020-01-20Podczas tworzenia wtyczki zawsze dobrze jest przygotować tłumaczenie, ponieważ może to dodatkowo dotrzeć do odbiorców, którzy nie używają angielskiego jako swojego pierwszego języka. Jeśli zastanawiałeś się, jak ważna jest opcja tłumaczenia, możesz sprawdzić repozytorium i zobaczyć, że każda popularna wtyczka jest dostępna do lokalizacji językowej. Przekonasz się, że ta opcja jest dostępna w UpdraftPlus, MetaSlider, WP-Optimize, Contact Form 7 i WooCommerce, a także wielu innych. Są to jedne z najpopularniejszych dostępnych wtyczek i są zakodowane w sposób, który pozwala każdemu łatwo przetłumaczyć je na swój język ojczysty.
Celem tego bloga jest zademonstrowanie naszym czytelnikom, jak mogą zakodować wtyczkę, aby została zlokalizowana i przetłumaczona na dowolny obsługiwany język WordPress. Na przykład, jeśli chcielibyśmy przetłumaczyć wtyczkę na język francuski, poniższe kroki pozwolą na tłumaczenie wtyczki, a także przygotują ją na wszystkie obsługiwane języki WordPress.
Pierwsze kroki
Tworząc wtyczkę powinniśmy upewnić się, że ładujemy domenę tekstową wtyczki. WordPress zapewnia tę funkcję:
load_plugin_textdomain()
Ten kod załaduje przetłumaczone ciągi wtyczki. Może wydawać się to trochę zagmatwane, ale czytaj dalej, a wkrótce wyjaśnimy, jak to działa.
Najpierw spójrzmy, jak dodać tę funkcję do naszego kodu wtyczki. W folderze wtyczek utwórz katalog o nazwie „języki”. Następnie dodaj poniższy kod do głównego pliku wtyczki.
* Load plugin textdomain. */ function plugin_load_textdomain() { load_plugin_textdomain( 'udp', false, basename( dirname( __FILE__ ) ) . '/languages/' ); } add_action( 'init', 'plugin_load_textdomain' );
W powyższym kodzie zachowujemy pierwszy parametr (domena) jako „udp”. Powinniśmy zachować tę nazwę domeny zgodnie z naszą nazwą wtyczki. Drugi parametr domyślnie ma wartość false. Trzeci parametr to ścieżka do naszego katalogu „języki”. Ten kod utrzymuje nasze pliki tłumaczeniowe w gotowości podczas inicjalizacji WordPressa.
Korzystanie z metod __() i _e()
Ponieważ naszym celem jest udostępnienie naszej wtyczki we wszystkich językach, powinniśmy zawinąć cały tekst wtyczki wewnątrz:
Funkcje __()
lub _e()
.
Korzystanie z tych metod jest bardzo łatwe. Obie metody działają dokładnie tak samo, ale istnieje zasada korzystania z obu.
W naszym kodzie wtyczki zwykle mamy dwa rodzaje tekstu. Pierwszy jest bezpośrednio opakowany w HTML, a drugi jest wyświetlany za pomocą funkcji PHP echo. Poniżej przykłady obu typów:
Typ 1
<h2>My Plugin Title</h2>
Wpisz 2
<?php echo 'Moje ustawienia wtyczek'; ?>
Ogólna zasada jest taka, że jeśli drukujesz tekst za pomocą echo PHP, powinieneś zawinąć tekst w następującym kodzie:
<code>__()</code>
Jeśli jest w HTML, użyj kodu: <code>_e()</code>.
Powyższy kod należy zapisać w następujący sposób:
<h2><?php _e('Mój tytuł wtyczki', 'udp'); ?></h2>
oraz
<?php echo __('Ustawienia moich wtyczek', 'udp'); ?>
Jak widać na powyższych przykładach, drugi parametr został zapisany jako 'udp', czyli domena tekstowa naszej wtyczki. Korzystając z tej domeny, pozwoli nam to później przetłumaczyć nasz tekst na dowolny język. W ten sposób inne wtyczki przygotowują tłumaczenie swoich wtyczek.
Jeśli chcesz, możesz sprawdzić naszą wtyczkę:
UpdraftPlus
Jeśli wyszukasz domenę tekstową „updraftplus”, zobaczysz, jak tekst naszej wtyczki jest zawinięty w funkcje __()
i _e()
.
Utwórz przykładową wtyczkę
Następnym etapem jest stworzenie przykładowej wtyczki z tekstem, abyśmy mogli przetestować nasze tłumaczenia. Najpierw utwórz folder „udp” w katalogu wtyczek. Wewnątrz tego folderu utwórz plik: udp.php
oraz languages
folderu . Następnie dodaj poniższy kod do pliku wtyczki.
udp.php
<?php /* Nazwa wtyczki: UDP Opis: To jest przykładowa wtyczka do testowania domeny tekstowej wtyczki Autor: Redakcja Wersja: 1.0 Licencja: GPLv3 lub nowsza Domena tekstowa: udp Ścieżka domeny: /języki */ if (!defined('ABSPATH')) die('Brak bezpośredniego dostępu');/** * Załaduj domenę tekstową wtyczki. */ funkcja udp_load_textdomain() { load_plugin_textdomain( 'udp', false, basename( dirname( __FILE__) ). '/języki/' ); } add_action( 'init', 'udp_load_textdomain' ); funkcja udp_menu_page() { add_menu_page( __( 'Strona ustawień UDP', 'udp' ), __( 'Strona ustawień UDP', 'udp' ), 'zarządzanie_opcjami', 'udp_setting_page', 'udp_setting_page', '', 6 ); } add_action('admin_menu', 'udp_menu_page'); funkcja udp_setting_page() { ?> <h2><?php _e('Mój tytuł wtyczki', 'udp'); ?></h2> <?php }
Utwórz pliki tłumaczeń
Aby wygenerować nasze pliki tłumaczeniowe, użyjemy następującego oprogramowania do edycji tłumaczeń:
POEDIT
Pliki tłumaczeń (.po i .mo) zawierają ciąg do przetłumaczenia i przetłumaczony ciąg. Tworząc plik .po musimy go zapisać w formacie '{domain}-language code'. W tym przykładzie plik będzie miał postać udp-fr_FR.po .
Następnie zainstaluj oprogramowanie POEDIT w swoim systemie. To oprogramowanie jest dostępne dla wszystkich platform i można je zainstalować na systemach Windows, Linux lub Mac.
Po zainstalowaniu otwórz POEDIT i przejdź do Plik->Nowy , gdzie wprowadzimy nasz kod języka w okienku zachęty.
Kliknij ikonę „Zapisz”, po czym otworzy się eksplorator plików. Przejdź do katalogu języków wtyczek i zapisz go w następujący sposób: udp-fr_FR.po .
Teraz możemy dodać francuskie tłumaczenie tekstu naszej wtyczki. Aby to zrobić, kliknij sekcję „Wyodrębnij ze źródeł”.
Otworzy się wyskakujące okienko właściwości katalogu. Musimy teraz skonfigurować trzy następujące zakładki: Właściwości tłumaczenia, Ścieżki źródłowe i Słowa kluczowe źródła. W zakładce Translation Properties dodaj naszą domenę „udp” jako nazwę projektu. Ścieżki źródłowe będą naszym folderem wtyczek i dodamy '__ i _e' w słowach źródłowych.
Jeśli masz wiele folderów we wtyczce, będziemy musieli wybrać każdy katalog z osobna.
Po wybraniu folderu wtyczek powinieneś zobaczyć '.' w sekcji Ścieżki. W razie potrzeby powtórz ten sam proces dla innych folderów w katalogu wtyczek.
W sekcji Słowa kluczowe źródła kliknij ikonę + i dodaj „__” i „_e” jako słowo kluczowe, a następnie kliknij przycisk OK.
W następnym oknie, pod Tekstem źródłowym, będziesz mieć wszystkie dostępne ciągi do przetłumaczenia z Twojej wtyczki. Wybierz ciąg jeden po drugim i dodaj do niego swoje francuskie tłumaczenie.
Po dodaniu wszystkich tłumaczeń kliknij ikonę Zapisz. Spowoduje to automatyczne zapisanie wszystkich tłumaczeń ciągów w pliku udp-ft_FR.po
. Twój plik .po będzie teraz zawierał następujący kod:
#: udp.php:24 udp.php:25 msgstr "Strona ustawień UDP" msgstr "Strona konfiguracji UDP" #: udp.php:37 msgstr "Mój tytuł wtyczki" msgstr "Titre de mon plugin"
Przetestuj nasze tłumaczenie wtyczek
Zakończyliśmy zadanie tworzenia plików .po i .mo dla naszej wtyczki. Teraz czas przetestować naszą wtyczkę i sprawdzić tłumaczenie na język francuski.
Najpierw pobierz nasz plik językowy z następującego adresu:
Repozytorium języka WordPress.
W przypadku języka francuskiego ścieżka wygląda następująco:
Repozytorium języka francuskiego WordPress.fr_FR.mo
i fr_FR.po
Pobierz pliki z tego linku i zapisz je w katalogu wp-content/languages . Utwórz folder „języki”, jeśli jeszcze nie istnieje.
Następnie musimy zmienić domyślny język naszej instalacji WordPress. Otwórz plik wp-config.php
i dodaj język w następujący sposób:
define('WPLANG', 'fr_FR');
Teraz, jeśli przejdziesz do pulpitu nawigacyjnego, Twoja wtyczka powinna wyświetlać się w języku francuskim.
Podsumowując
Tworzenie zlokalizowanego tłumaczenia dla wtyczki WordPress może początkowo wydawać się nieco zniechęcające i skomplikowane. Jednak potencjalne korzyści płynące z oferowania dużych krajów nieanglojęzycznych, takich jak Brazylia, Francja i Niemcy, Twojej wtyczki w ich ojczystym języku, mogą pomóc otworzyć wtyczkę dla zupełnie nowych, docenianych odbiorców. Choć może się wydawać, że to dużo pracy, nagrody mogą być znaczne.
Post Jak zlokalizować i przetłumaczyć wtyczkę WordPress – szczegółowy przewodnik dla twórców wtyczek pojawił się jako pierwszy na UpdraftPlus. UpdraftPlus – Wtyczka do tworzenia kopii zapasowych, przywracania i migracji dla WordPress.