FunkcjeWtyczkaCennikZasoby
Zmień język
ZasobyJak tłumaczyć języki RTL w WordPress: arabski, hebrajski, perski

Jak tłumaczyć języki RTL w WordPress: arabski, hebrajski, perski

SimplePoTranslate Team20 marca 2026
Jak tłumaczyć języki RTL w WordPress: arabski, hebrajski, perski

Właśnie skończyłeś tłumaczyć swój motyw WordPress na arabski. Przesyłasz plik .mo, zmieniasz język strony, a wynik jest nieczytelny. Tekst wylewa się na lewo, przyciski się nakładają, a Twój starannie zaprojektowany układ wygląda, jakby przetrawił go niszczarka do papieru.

Witaj w świecie języków pisanych od prawej do lewej (RTL) – gdzie tłumaczenie to tylko połowa sukcesu.

Arabski, hebrajski i perski (farsi) należą do najczęściej używanych języków na świecie. Sam język arabski ma ponad 400 milionów rodzimych użytkowników. Jeśli Twoja strona WordPress ignoruje tych odbiorców, tracisz poważne pieniądze. Ale obsługa tych języków wymaga więcej niż tylko zamiany angielskich słów na arabskie. Wymaga przemyślenia całego kierunku układu.

Ten przewodnik obejmuje wszystko, co musisz wiedzieć: jak działa RTL w WordPress, jak naprawić CSS, jak obsługiwać pliki .po z ciągami RTL i jak unikać najczęstszych pułapek.

Jak działa RTL w WordPress

WordPress ma wbudowaną obsługę RTL. Kiedy ustawisz język swojej witryny na arabski (ar), hebrajski (he) lub perski (fa), WordPress automatycznie dodaje dir="rtl" do tagu <html> i ładuje arkusz stylów rtl.css, jeśli Twój motyw go udostępnia.

To teoria. W praktyce większość motywów ma minimalne lub uszkodzone wsparcie dla RTL.

Co się faktycznie zmienia

Gdy aktywuje się tryb RTL, przeglądarka odzwierciedla cały układ strony:

  • Tekst płynie od prawej do lewej.
  • Paski boczne zamieniają się stronami.
  • Menu nawigacyjne odwracają kolejność.
  • Wartości paddingu i marginu są odwracane (lewa staje się prawą).
  • Ikony o znaczeniu kierunkowym (strzałki, szewrony) muszą być odzwierciedlone.

Jeśli CSS Twojego motywu został napisany tylko dla LTR, każda deklaracja margin-left, padding-right, float: left i text-align: left walczy teraz z silnikiem RTL przeglądarki.

Naprawianie CSS dla RTL: Praktyczny przewodnik

Najczystszym podejściem jest użycie logicznych właściwości CSS, które automatycznie dostosowują się do kierunku pisania dokumentu. Zamiast left i right używasz inline-start i inline-end.

Przed: Właściwości fizyczne (psują się w RTL)

/* LTR-only CSS -- breaks in Arabic */
.sidebar {
  float: left;
  margin-right: 20px;
}

.nav-arrow {
  padding-left: 10px;
  text-align: left;
}

.card {
  border-left: 3px solid #0073aa;
}

Po: Właściwości logiczne (działają w obu kierunkach)

/* Direction-agnostic CSS -- works in both LTR and RTL */
.sidebar {
  float: inline-start;
  margin-inline-end: 20px;
}

.nav-arrow {
  padding-inline-start: 10px;
  text-align: start;
}

.card {
  border-inline-start: 3px solid #0073aa;
}

Dzięki logicznym właściwościom piszesz CSS raz i działa on poprawnie zarówno w języku angielskim, jak i arabskim, bez żadnych nadpisywań.

Metoda nadpisywania [dir="rtl"]

Jeśli nie możesz refaktoryzować całego arkusza stylów, możesz kierować reklamy do RTL, używając selektorów atrybutów:

[dir="rtl"] .sidebar {
  float: right;
  margin-left: 20px;
  margin-right: 0;
}

[dir="rtl"] .nav-arrow {
  padding-left: 0;
  padding-right: 10px;
  text-align: right;
}

To działa, ale podwaja obciążenie związane z konserwacją. Za każdym razem, gdy aktualizujesz style LTR, musisz także zaktualizować nadpisania RTL.

Tłumaczenie plików PO z ciągami RTL

Samo tłumaczenie wprowadza wyzwania, które wykraczają poza układ. Języki RTL mają unikalne cechy, które sprawiają, że większość zautomatyzowanych narzędzi się potyka.

Tekst dwukierunkowy (Bidi) w plikach PO

Prawdziwa złożoność pojawia się, gdy tekst RTL i LTR mieszają się w jednym ciągu. Rozważ ten typowy wzorzec WordPress:

msgid "Powered by %s"
msgstr "مدعوم بواسطة %s"

Placeholder %s zostanie zastąpiony angielską nazwą produktu, taką jak „WooCommerce”. W renderowanym wyniku przeglądarka musi wyświetlić tekst arabski płynący od prawej do lewej, a następnie przełączyć się na kierunek od lewej do prawej dla angielskiego słowa, a następnie potencjalnie przełączyć z powrotem.

Nazywa się to tekstem dwukierunkowym (lub „bidi”) i jest obsługiwane przez algorytm Unicode Bidirectional. Przez większość czasu działa to automatycznie. Ale gdy masz wiele placeholderów lub liczb sąsiadujących z tekstem RTL, kolejność wizualna może stać się nieprzewidywalna.

Częste błędy w tłumaczeniu

Ogólne narzędzia do tłumaczenia popełniają kilka błędów specyficznych dla RTL:

  1. Odwrócona kolejność placeholderów. Ciąg znaków, taki jak %1$s out of %2$s, może spowodować zamianę placeholderów, ponieważ sztuczna inteligencja zmienia ich kolejność, aby pasowały do gramatyki arabskiej. Daje to niepoprawne wyniki, takie jak „10 out of Page” zamiast „Page out of 10”. Dowiedz się więcej o ochronie zmiennych kodu podczas tłumaczenia.

  2. Uszkodzona kierunkowość HTML. Jeśli Twój ciąg znaków zawiera wbudowany kod HTML, taki jak <span dir="ltr">, naiwny tłumacz może usunąć atrybut dir lub go przetłumaczyć.

  3. Brakujące formy liczby mnogiej. Arabski ma sześć form liczby mnogiej – zero, jeden, dwa, kilka, wiele i inne. Jest to najbardziej złożony system liczby mnogiej spośród wszystkich języków obsługiwanych przez WordPress. Narzędzie, które generuje tylko dwie formy (takie jak angielska liczba pojedyncza/mnoga), pozostawi Twój arabski plik .po uszkodzony. Aby uzyskać szczegółowe informacje na temat działania liczb mnogich w Gettext, zapoznaj się z naszym przewodnikiem na temat złożonej pluralizacji w WordPress.

Oto jak wygląda poprawnie przetłumaczony arabski ciąg liczby mnogiej w pliku .po:

# Arabic: nplurals=6
msgid "%d comment"
msgid_plural "%d comments"
msgstr[0] "لا تعليقات"
msgstr[1] "تعليق واحد"
msgstr[2] "تعليقان"
msgstr[3] "%d تعليقات"
msgstr[4] "%d تعليقًا"
msgstr[5] "%d تعليق"

Jeśli którakolwiek z tych sześciu form jest pusta lub niepoprawna, WordPress powróci do angielskiego ciągu znaków dla tej konkretnej liczby. Twoi użytkownicy zobaczą „5 comments” po angielsku rozrzucone po w przeciwnym razie w pełni arabskim interfejsie.

Testowanie implementacji RTL

Samo tłumaczenie i naprawianie CSS nie wystarczy. Musisz zweryfikować wynik w prawdziwej przeglądarce.

Szybka lista kontrolna testowania

  • Zmień język WordPress na arabski w Ustawienia > Ogólne. Nie dodawaj ręcznie dir="rtl" – użyj prawdziwego ustawienia języka, aby WordPress załadował własne nadpisania RTL.
  • Sprawdź menu nawigacyjne. Czy są one odzwierciedlone? Czy listy rozwijane otwierają się we właściwym kierunku?
  • Sprawdź pola formularzy. Wprowadzany tekst powinien płynąć od prawej do lewej. Tekst placeholderów powinien być wyrównany do prawej.
  • Sprawdź treść o mieszanym kierunku. Ciągi znaków zawierające zarówno arabski, jak i angielski (takie jak nazwy marek lub adresy URL) powinny być renderowane w poprawnej kolejności wizualnej.
  • Testuj na urządzeniach mobilnych. Błędy układu RTL są często poważniejsze na mniejszych ekranach, gdzie jest mniej miejsca na błędy wyrównania.

Jeśli Twoje tłumaczenia w ogóle się nie wyświetlają, problem może nie być związany z RTL – najpierw sprawdź kompilację pliku .mo i ścieżki plików.

Sztuczka z narzędziami deweloperskimi przeglądarki

W Chrome DevTools możesz tymczasowo wymusić RTL na dowolnej stronie bez zmiany ustawień WordPress:

/* Paste in DevTools console as: document.documentElement.dir = 'rtl' */
html {
  direction: rtl;
}

Daje to szybki podgląd tego, jak Twój motyw obsługuje RTL, zanim jeszcze zaczniesz tłumaczyć.

Automatyzacja tłumaczenia RTL we właściwy sposób

Ręczne tłumaczenie języków RTL jest kosztowne i powolne. Profesjonalni tłumacze języka arabskiego pobierają wysokie stawki, a znalezienie kogoś, kto rozumie zarówno język, jak i specyficzną dla WordPress składnię Gettext, jest trudne.

SimplePoTranslate rozwiązuje ten problem dzięki kontekstowemu silnikowi AI, który natywnie rozumie wyzwania specyficzne dla RTL:

  • Wszystkie sześć arabskich form liczby mnogiej jest generowanych automatycznie. Nasz silnik odczytuje nagłówek Plural-Forms w Twoim pliku .po i generuje dokładnie tyle form, ile wymaga język docelowy. Żadnych pustych slotów msgstr, żadnych angielskich wersji zapasowych.
  • Bezpieczeństwo placeholderów. Zmienne takie jak %s, %d i %1$s są blokowane podczas tłumaczenia. Sztuczna inteligencja nie może ich zmieniać kolejności, usuwać ani uszkadzać – nawet jeśli gramatyka arabska sugeruje inną kolejność słów. Przeczytaj więcej o tym, jak blokowanie składni chroni Twój kod.
  • Kontekst dwukierunkowy. Sztuczna inteligencja rozumie, że ciągi znaków o mieszanym kierunku wymagają specjalnej obsługi i zachowuje atrybuty kierunkowości HTML.

Niezależnie od tego, czy lokalizujesz motyw bloga dla hebrajskiej publiczności, czy tłumaczysz cały sklep WooCommerce na perski, proces jest taki sam: prześlij swój plik .po, wybierz język docelowy i pobierz przetłumaczony plik. Cały przepływ pracy zajmuje minuty, a nie dni.

Aby uzyskać pełny opis procesu lokalizacji WordPress, zapoznaj się z naszym kompletnym przewodnikiem po lokalizacji WordPress.

Przestań traktować RTL jako coś, o czym się myśli na końcu

Języki pisane od prawej do lewej reprezentują ponad miliard potencjalnych użytkowników. Arabski jest piątym najczęściej używanym językiem na świecie. Hebrajski i perski obsługują krytyczne rynki na Bliskim Wschodzie i w Azji Środkowej.

Jeśli Twoja strona WordPress nie może obsługiwać tych użytkowników za pomocą dopracowanego, naturalnego interfejsu, znajdą konkurenta, który to potrafi.

Dobrą wiadomością jest to, że WordPress ma już infrastrukturę. Twój motyw potrzebuje tylko odpowiedniego CSS, a Twoje pliki .po potrzebują narzędzia do tłumaczenia, które szanuje złożoność języków RTL.

Gotowy do przetłumaczenia swojej strony WordPress na arabski, hebrajski lub perski? Zacznij za darmo na SimplePoTranslate.com