RSS
RSS

Problem: WPML automatycznie ustawia lub przywraca niepoprawne tłumaczenie


Kategorie: Administracja, Tworzenie stron, WordPress, Wszystkie

0

W jednym z motywów napotkaliśmy następujący problem: po wykonaniu tłumaczeń w WPML dla WordPressa treści wpisywanych przez administratora w panelu, po kilku odświeżeniach niektóre z tych tłumaczeń losowo przywracały język oryginału lub wyświetlały się w niepoprawnym języku.

Czasami także oryginalny tekst do tłumaczenia był nieaktualny w sekcji “Tłumaczenia wyrażeń”, w stosunku do aktualnej treści ustawianej przez administratora w panelu.

Obydwa problemy dotyczyły prawdopodobnie tego, że WPML zapisał nieaktualną wersję oryginalnych tekstów do tłumaczenia i nie potrafił poradzić sobie ze zmianami oryginału w przyszłości.

Kroki ku rozwiązaniu problemu prezentujemy poniżej.

Jeśli problem dotyczy motywu BeTheme dla WordPressa, zapewne powstaje w momencie zapisywania ustawień BeTheme. Wszystkie ustawienia w BeTheme → “Opcje motywu”, w każdej zakładce, są zapisywane jednocześnie. Wygląda także na to, że BeTheme niepoprawnie wczytuje niektóre pola (np. tekstu logotypu lub stopki) w formie przetłumaczonej do ustawień, a inne – w formie oryginalnej. Po zapisaniu ustawień, te błędne dane powodują ogromne zamieszanie w bazie danych i pomieszanie tłumaczeń. Nie da się także zmienić tych treści w ustawieniach BeTheme – trzeba:

  1. Najpierw otworzyć okno z ustawieniami BeTheme i językiem ustawionym na np. angielski,
  2. W osobnym oknie usunąć z WPML → “Tłumaczenia wyrażeń” wszystkie problematyczne wyrażenia.
  3. Przejść do wcześniej otwartego okna ustawień BeTheme, zmienić na dany (np. angielski) język wszystkie wyrażenia i zapisać zmiany.
  4. Ponownie wrócić do “Tłumaczenia wyrażeń” i zmienić język dodanych wyrażeń na angielski, a następnie dokonać tłumaczenia.
  5. Wyczyścić cache witryny.

Podczas wprowadzania tłumaczeń w kroku 4 można zauważyć, że WPML niektóre z nich automatycznie podpowiada – czyli, że gdzieś w systemie mimo usunięcia tłumaczeń one pozostały (może dlatego, że plik wpml-config.xml motywu BeTheme to wymusza i zmiana nazwy pliku na chwilę by pomogła?), na co nie pomaga także czyszczenie wewnętrznego cache WPML (patrz poniżej, punkt 4).

Przyczyna nie jest nam dokładnie znana, ale problem jest sporadyczny.

Ogólna procedura w przypadku niedziałania poprzedniej:

  1. Wyczyść cache WP Super Cache i ustaw nowe Preload Cache.
  2. Wykonaj kopię zapasową bazy danych.
  3. Znajdź i usuń treści oryginalne (zaznaczając checkbox) z sekcji “Tłumaczenia wyrażeń”.
  4. Przejdź do WPML → Pomoc techniczna → Rozwiązywanie problemów i klikaj kolejno: Wyczyść pamięć podręczną WPML, Usuń martw wpisy z tabel tłumaczenia, Napraw zestawienie element_type, Ustaw informacje o języku, Ustal liczbę haseł.
  5. Przejdź do WPML → Języki i zaznacz “Dopasuj identyfikatory (ID) do wielu języków” oraz “Zapisz ciasteczko z językiem, aby obsługiwać filtrowanie języka dla AJAX”. Zapisz każdorazowo zmiany.
  6. Raczej nie ma potrzeby, by skanować motyw w poszukiwaniu wyrażeń do tłumaczenia w WPML → Lokalizacja motywu i wtyczek.
  7. Przejdź do WPML → Tłumaczenie wyrażeń i na samym dole upewnij się, że zaznaczone są pola do tłumaczenia w sekcji “Automatycznie rejestruj wyrażenia do tłumaczenia”.
  8. Przejdź do miejsc wypełniania pól, które nie działały, u góry strony z czarnej listwy WordPressa wybierz “Wszystkie języki” i zapisz pola ponownie.
  9. Przejdź do WPML → Tłumaczenie wyrażeń i zmień język oryginału tłumaczeń (zaznacz checkbox, znajdź opcję pod tabelą), które powinny się tam pojawić (jeśli się nie pojawią, spróbuj wykonać zadanie z punktu 6).
  10. Wykonaj tłumaczenie i pamiętaj, by zawsze zaznaczać “Tłumaczenie ukończone”.
  11. Wyczyść cache WP Super Cache i ustaw nowe Preload Cache.
  12. Sprawdź, czy wszystko działa. Sprawdź po 2 dniach, czy wciąż wszystko działa.
  13. Jeśli procedura zadziałała tylko dla części wyrażeń, należy powtórzyć ją i usunąć wszystkie (na daną chwilę poprawne i niepoprawne) tłumaczenia, których dotyczą zmiany i jednocześnie na nich wszystkich powtórzyć procedurę.

Komentuj

Subscribe without commenting