PHP/Internacjonalizacja: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
poprawiony kod przykładu, działał tylko dla bieżącej daty (pobierał zawsze aktualny miesiąc)
.mo
Linia 249:
Naturalnie wypadałoby zadbać, aby powyższy skrypt był bardziej przyjazna użytkownikowi i na pierwszym miejscu sprawdzał informacje zapisane w ciastkach. Dopiero kiedy takowych nie będzie, można pobawić się w detekcję. Inaczej użytkownik nie będzie w stanie zmienić "narzuconego" mu języka nawet, jeśli jego własny będzie obsługiwany przez naszą witrynę.
 
=== Internacjonalizacja plikami .mo ===
Takie wykonanie skryptu jest niewygodne. Najbardziej popularnym sposobem jest budowanie tego na plikach .mo.
Utwórz plik lang.php:
<nowiki><?php
<?php
if ($_SERVER['HTTP_ACCEPT_LANGUAGE'] == "pl_PL") // 1
{
setlocale(LC_ALL, 'pl_PL');
}
else
{
setlocale(LC_ALL, 'en_US');
}
bindtextdomain("domena", "./locale"); //2
bind_textdomain_codeset("domena", 'UTF-8'); //3
textdomain("domena"); //4
?>
?></nowiki>
# Przeglądarki wysyłają informajce o języku. Jeśli użytkownik ma ustawiony w przeglądarce język polski, zobaczy polską wersję strony, jeśli nie - angielską.
# Przygotowuje domenę tekstową. Zmień "domena" na coś innego.
# Ustawia domenę na kodowanie UTF-8. Zmień "domena" na coś innego.
# Wybiera domenę. Zmień "domena" na coś innego.
Ten plik dołączamy do każdych plików, które wymagają internacjonalizacji funkcją <nowiki>include("./lang.php");</nowiki> Teraz należy zamienić wszystkie teksty tak jak tu:
<nowiki><?php
// echo "Polska wiadomość";
// zmieniamy na
echo _("Polska wiadomość");</nowiki>
Pobieramy edytor plików .po, np. [http://www.poedit.net/download.php Poedit] i tworzymy pliki .mo (obsługa poniżej).
== Obsługa PoEdit ==
Obsługa jest bardzo prosta - wybieramy Plik > Nowy katalog, uzupełniamy dane. Zakładka ścieżki jest bardzo ważna. Pierwsze pole NIE może być ścieżką do katalogu z naszymi plikami, lecz do wcześniejszego katalogu (np. dla D:\Serwer\www\gettext\gettext podajemy D:\Serwer\www\gettext) a w polu niżej za pomocą przycisku nr. 2 dodajemy ścieżkę D:\Serwer\www\gettext\gettext oraz jeśli potrzebne jej podkatalogi.
= Testowanie =
Aby przetestować skrypty, należy zainstalować GNU gettext i:
* W przypadku systemu Windows - dodać php_gettext.dll do podkatalogu extensions katalogu PHP i aktywować ją w php.ini,
* W przypadku linuxów należy ją dokompilować do php, XAMPP dla Linuksa zawiera ją wkompilowaną.
=== Zakończenie ===
Internacjonalizacja jest bardzo ważnym zagadnieniem. Jeśli naprawdę myślimy o ekspansji na rynki zagraniczne, nie lekceważmy jej. Czas zainwestowany w uczynienie serwisu bardziej przyjaznym obcokrajowcom w przyszłości zaprocentuje ich dobrymi wrażeniami z pobytu u nas.