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

Usunięta treść Dodana treść
.mo
Kwpolska (dyskusja | edycje)
Linia 252:
Takie wykonanie skryptu jest niewygodne. Najbardziej popularnym sposobem jest budowanie tego na plikach .mo.
Utwórz plik lang.php:
<nowiki><?php
if ($_SERVER['HTTP_ACCEPT_LANGUAGE'] == "pl_PL") // 1
<?php
{
if ($_SERVER['HTTP_ACCEPT_LANGUAGE'] == "pl_PL") // 1
setlocale(LC_ALL, 'pl_PL');
}
setlocale(LC_ALL, 'pl_PL');
else
{
else
setlocale(LC_ALL, 'en_US');
{
}
setlocale(LC_ALL, 'en_US');
bindtextdomain("domena", "./locale"); //2
bindtextdomain bind_textdomain_codeset("domena", "./locale"'UTF-8'); //23
bind_textdomain_codeset textdomain("domena", 'UTF-8'); //34
?></nowiki>
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><pre>include("./lang.php");</pre></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).
Ważna jest także budowa struktury katalogów.
<nowiki>
|
|-lang.php |-en_US -|<F>LC_MESSAGES -|domena.mo
|-locale -|-pl_PL -|<F>LC_MESSAGES -|domena.mo
|
(katalog zawiera plik lang.php i folder locale. W nim znajdują się podfoldery z kodami języków (en_US i pl_PL). W każdym podfolderze języków znajduje się folder LC_MESSAGES, którego zawartością w obu podfolderach języków jest plik domena.mo z przetłumaczonymi tekstami.)
</nowiki>
 
== 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.