WordPress Multilingual Plugin (WPML), to świetne narzędzie do tworzenia wielojęzykowych stron opartych o WordPressa.
Mamy zasadę, że nasze projekty najpierw pokazujemy i dajemy do przetestowania klientowi na naszym serwerze testowym. Tak było i tym razem…
Prawa Murphiego dały się nam jednak we znaki – wszystko „pięknie” działało pod tymczasową domeną roboczą, na maszynie docelowej niestety WPML się rozjechało…
A mogło być tak pięknie
Wykonałem standardowego mysqldumpa, następnie podmieniłem w kilku-megabajtowym pliku domeny i ścieżki z użyciem vima :%s/http:\/\/klient\.domenatestowa\.pl/http:\/\/www\.klient\.pl [cheatsheet]. Tak obrobiony dump zaimportowałem do świeżej bazy danych. I lipa… Niby wszystkie dane zostały przechwycone, ale WPML chce się konfigurować od nowa, a takie „rozwiązanie” powoduje, że wszystkie teksty, niezależnie od pierwotnej wersji języka, lądują nam w jednym worku. Trzeba inaczej…
Przyczyną problemu okazuje się globalna zmiana domen w zrzucie bazy danych, a dokładniej zmiana wartości jednej z opcji WPML.
Rozwiązanie… Prostsze niż myślisz
- Robimy dump bazy danych.
- Kopiujemy z tabelki wp_options (może być inny prefix niż „wp_„) wartość opcji icl_sitepress_settings.
- Obrabiamy dump np. w vimie – globalna zmiana ścieżek do plików i domen.
- Importujemy dump do nowej bazy.
- Nadpisujemy w wp_options wartość dla icl_sitepress_settings wartością z punktu 2.
- Oczywiście w tle lecą pliki. Pamiętamy także o dostosowaniu ustawień bazy w wp-config.php.
Warto spojrzeć
How to move a WP site with WPML the right way – według mnie to jednak nieco masochistyczne rozwiązanie problemu ;-)

Komentarze: 8
A może to po prostu był nie ten plugin? Ja używam qTranslate od gościa z Berlina. Qian Qin czy jakoś tak. Świetny gość i świetny plugin i nie miałem najmniejszego problemu z bazą danych prznosząc bloga w zeszłym roku.
Można go zobaczyć (plugin) w akcji u mnie na blogu: http://hb.gracz.pro
na http://bronek.gracz.pro też jest zainstalowany, tak na zaś i ustawiony na jeden język.
BTW Polskie tłumaczenie interfejsu qTranslate jest mojego autorstwa :P To moja forma przyczynku do idei Open Source jako że nie jestem koderem.
WPML jest naprawdę niezłe, ma swoje minusy, ale to jak każdy „duży” plugin. Ponadto jak już wejdziesz w Plugin do translacji i masz sporą bazę wpisów i stron, to ciężko od tak przejść na inny system – zwłaszcza już i teraz podczas przechodzenia na hosting produkcyjny.
Swego czasu patrzyliśmy też na qTranslate, ale wybraliśmy WPML i w zasadzie sprawdza się (ale koderom zdarzają się też babole w kodzie, które wychodzą w specyficznych konfiguracjach i trzeba hackować).
Z ciekawości zapytam, używałeś może qTranslate na różnych subdomenach dla języków z włączonym cachem?
Nie no migrowanie zawartości to byłaby udręka bez jakiegoś sprytnego skryptu. A nie, nie konfigurowałem subdomen dla języków. Uznałem, że to by było mylne dla pająków. Strona jest jedna i ma jeden adres. Ma zawartość w wielu językach i to jest realizowane poprzez „czyste linki”, a nie subdomeny. Ale z tego co wiem jest to możliwe. Czy mieliście jakieś problemy? Jedną z zalet qTranslate jest to, że autor ma naprawde dobre serce…
Jeżeli chodzi o linki i roboty, to warto spojrzeć co na ten temat ma do powiedzenia Google: Multi-regional and multilingual sites (dla celów poglądowych wystarczy tabelka na dole strony „URL structures”). Oczywiście Yandex i chiński wynalazek mogą pracować inaczej, ale wskazówki od G. w dużym uproszczeniu powinny być odpowiednie dla rynku z alfabetem łacińskim.
Pytasz, co potrafi WPML w kwestii „adresów”, gdyż nie do końca chyba załapałem… [?] :)
W każdym razie, WPML potrafi zmieniać wersję językową przez parametr, podkatalog lub subdomenę/domenę.
Pytam czy mieliście jakieś problemy przy konfiguracji subdomen dla języków?
Odnośnie wytycznych Google. Jednym słowem można używać wszystkiego co się mieści w pojęciu „clean url”. Nie mniej jednak to nie gwarantuje jednakowego zindeksowania wszystkich języków. Ogólnie Google słabo kmini zawartość wielo języczną. Moja strona najlepiej jest np zindeksowana w Angielskim gdyż tego adresu używa się jako domyślnego przy linkowaniu itd.
ad. konfiguracja… Wystarczy skierować subdomeny na ten sam katalog, a resztą zajmie się WPML.
Co do kminienia przez Google zajrzyj do Unifying content under multilingual templates. Jest z tym trochę zabawy…
Szkoda, że w efekcie webmaster tools nie daje możliwości konfiguracji strony jako wielojęzycznej z podaniem typu linkowania itd.
subscribe