Temat: Wielojęzykowy blog
Jest jeszcze jeden ciekawy sposób na zmuszenie WP do pracy w kilku językach. Zastosowałem go ostatnie na stronie mojej klientki, gdyż żaden plugin stworzony do tego celu nie chciał działać - po prostu gryzł się z innymi.
Cała sprawa polega na tym, że tworzymy kilka baz danych dla poszczególnych języków. Różnią się one tylko i wyłącznie prefiksem. Np. język defaultowy ma prefiks wp_, a np. dodatkowy język powiedzmy niemiecki wpde_. Pliki nie są w żaden sposób duplikowane.
Bazę można sobie skopiować po utworzeniu defaultowej wersji i ustawieniu wszystkiego i zmienić tylko prefiks.
Dalej będziemy potrzebowali dodatkowej subdomeny dla drugiego języka w postaci np. de.nazwastrony.pl - musi ona być skierowana na ten sam katalog co domena główna. Teraz dodajemy do pliku config.php taki kod, a w zasadzie zamieniamy linijke:
$table_prefix = 'wp_'; na:
$subdomain = substr($_SERVER['HTTP_HOST'], 0, strpos($_SERVER['HTTP_HOST'], '.'));
if ($subdomain == 'de')
{
$table_prefix = 'wpde_';
}
else
{
$table_prefix = 'wp_';
}
Kod ten robi jedną prostą operację mianowicie wykrywa czy wejście na stronę nastąpiło z subdomeny - jeśli tak to zmienia prefiks z wp_ na wpde_ dzięki czemu na stronie zacznie się pojawiać treść z bazy w innym języku.
Wystarczy tylko w kodzie templatki dodać flagi podlinkowane odpowiednio do adresu z subdomena i bez subdomeny i wszystko działa. Aha, w konfiguracji WP nalezy jeszcze zmienic w tej dodatkowej wersji jezykowej adres bloga na adres z prefiksem.
Mamy w taki sposób osobny panel dla kazdej wersji jezykowej w zależnośći z której domeny wejdziemy do wp-admin.
To rozwiązanie ma oczywiście swoje wady i zalety. Wadą na pewno jest konieczność tworzenia drugiej bazy. Zaleta jest taka, że mamy osobną edycję do każdego języka i nic nam się nie miesza. Możemy także w każdej wersji językowej zmodyfikować szablon, co może przydać się np. do zmiany odnośnika "read more" itp. Dodatkowa wersja językowa może się różnić także kategoriami, stronami itp. - w zależności od tego czy mamy tłumaczenie do danej strony czy nie możemy ją np. całkiem wyłączyć.
Grzegorz Serwin edytował(a) ten post dnia 14.08.09 o godzinie 10:58