Dlaczego tłumaczenia nie wyświetlają się w WordPressie (Poradnik Rozwiązywania Problemów)

Nie ma nic bardziej frustrującego w tworzeniu stron na WordPressie niż "Ciche Błędy".
Zrobiłeś wszystko dobrze. Przetłumaczyłeś plik .po. Skompilowałeś go do pliku .mo. Wgrałeś go na serwer przez FTP. Wyczyściłeś pamięć podręczną.
Odświeżasz stronę, spodziewając się zobaczyć hiszpański, francuski lub niemiecki. Zamiast tego widzisz... angielski.
Żadnego komunikatu o błędzie, żadnego białego ekranu — tylko uparty, nieprzetłumaczony tekst. Zanim zaczniesz wyrywać sobie włosy z głowy, przeczytaj ten przewodnik. Oto 5 najczęstszych powodów, dla których tłumaczenia nie ładują się w WordPressie, oraz sposoby ich naprawy.
1. Źle Nazwałeś Plik
WordPress jest niezwykle rygorystyczny, jeśli chodzi o nazewnictwo plików. Jeśli pominiesz jeden znak, plik nie zostanie załadowany.
Standardowy format to: {text-domain}-{locale}.mo
- Domena Tekstowa: To unikalny identyfikator motywu lub wtyczki (np.
woocommerce,twentytwentyfour,my-custom-plugin). - Lokalizacja: Kod lokalizacji WP (np.
es_ESdla hiszpańskiego w Hiszpanii,fr_FRdla francuskiego we Francji).
Częste Błędy:
- Nazwanie pliku tylko
es_ES.mo(Działa to tylko w przypadku globalnych plików rdzenia WordPressa, a nie wtyczek). - Użycie niewłaściwego myślnika:
my_plugin_es_ES.mo(Podkreślenie) zamiastmy-plugin-es_ES.mo(Myślnik). - Zgadnięcie domeny tekstowej. Musisz sprawdzić kod wtyczki (nagłówek
style.csslub funkcjęload_plugin_textdomain), aby znaleźć dokładny slug.
2. Umieściłeś Plik w Niewłaściwym Folderze
To, gdzie wgrywasz plik, jest równie ważne, jak to, jak go nazywasz. WordPress szuka w określonych katalogach w określonej kolejności.
- "Bezpieczny" Folder Systemowy:
/wp-content/languages/plugins/lub/wp-content/languages/themes/.- Zalety: Jest to bezpieczne przed aktualizacjami wtyczek.
- Wady: Musisz nazwać plik
textdomain-locale.mo.
- Folder Autora:
/wp-content/plugins/plugin-name/languages/.- Zalety: Łatwy do znalezienia.
- Wady: NIEBEZPIECZEŃSTWO. Podczas aktualizacji wtyczki ten folder jest czyszczony. Twoje tłumaczenia znikną.
Najlepsza Praktyka: Zawsze umieszczaj swoje niestandardowe pliki .mo w globalnym katalogu /wp-content/languages/, aby zapobiec utracie danych podczas aktualizacji.
3. "Cichy Zabójca": Uszkodzona Składnia w Pliku .po
To najtrudniejszy problem do debugowania i zdarza się często w przypadku ogólnych narzędzi do tłumaczenia AI.
WordPress odczytuje binarne pliki .mo, które są kompilowane z plików tekstowych .po. Jeśli twój plik .po zawiera błędy składniowe, plik .mo może zostać wygenerowany, ale będzie wewnętrznie "uszkodzony".
Jak to się dzieje? Jeśli tłumacz (człowiek lub AI) zepsuje formatowanie Gettext, ciąg znaków staje się nieprawidłowy.
- Przykład: Brakujący cudzysłów zamykający
". - Przykład: Zepsucie zmiennej (zmiana
%sna% s). - Przykład: Zepsucie liczenia
msgid_plural.
Kiedy WordPress napotka uszkodzony wpis w pliku .mo, często pomija go lub przestaje w ogóle odczytywać plik, wracając do oryginalnego angielskiego.
4. Zapomniałeś Skompilować (.po vs .mo)
WordPress nie może odczytywać plików .po bezpośrednio. To powszechne błędne przekonanie.
.po= Czytelny dla ludzi (Portable Object)..mo= Czytelny dla maszyn (Machine Object).
Jeśli prześlesz plik my-theme-es_ES.po, ale zapomnisz wygenerować pasujący plik .mo, nic się nie stanie. Musisz go skompilować.
5. Pamięć Podręczna (Zwykły Podejrzany)
Jeśli używasz wtyczek buforujących (WP Rocket, LiteSpeed) lub buforowania po stronie serwera (Varnish, Redis), Twoja strona może wyświetlać wersję HTML z pamięci podręcznej sprzed czasu, gdy przesłałeś tłumaczenie.
Naprawa: wyczyść wszystkie pamięci podręczne, w tym pamięć podręczną przeglądarki i pamięć podręczną obiektów.
Najlepsze Rozwiązanie: Od Początku Ważne Pliki
Rozwiązywanie problemów ze ścieżkami i nazwami plików jest łatwe. Rozwiązywanie problemów z uszkodzoną składnią (Powód nr 3) to koszmar.
Jeśli używasz narzędzia, które psuje twoje zmienne kodu lub uszkadza strukturę Gettext, spędzisz godziny zastanawiając się, dlaczego plik nie działa, nie zdając sobie sprawy, że sam plik jest "skażony".
To dlatego stworzyliśmy SimplePoTranslate.
- Blokada Składni: Zapewniamy, że każdy ciąg znaków jest syntaktycznie poprawny przed jego pobraniem. Blokujemy zmienne, takie jak
%s, aby nie można ich było zepsuć. - Idealne Formatowanie: Generujemy czyste, standardowe pliki
.po, które kompilują się do działających plików.mow 100% przypadków. - Nie Wymagane Wtyczki: Pobierasz plik i wiesz, że działa. Musisz go tylko przesłać do właściwego folderu.
- Wtyczka WordPress: Wolisz pominąć ręczne przesyłanie? Nasza oficjalna wtyczka WordPress SimplePoTranslate automatycznie wykrywa pliki
.potTwojego motywu i wtyczek, tłumaczy je w chmurze i wdraża wynik do właściwego katalogu z właściwą nazwą pliku. Nigdy więcej źle nazwanych plików, żadnych błędnych ścieżek folderów — dwóch najczęstszych powodów, dla których tłumaczenia się nie pojawiają.
Przestań zgadywać, dlaczego Twoje tłumaczenia są niewidoczne. Zacznij od pliku, któremu możesz zaufać.
Gotowy do tłumaczenia bez bólu głowy? Zacznij za darmo na SimplePoTranslate.com