System gettext odtwarza ciągi z zestawu plików binarnych, które są tworzone z plików tekstowych źródłowych, zawierających tłumaczenia w różnych językach dla tego samego zdania.
Klawisz wyszukiwania to zdanie w języku "podstawowym".
w kodzie źródłowym trzeba będzie coś podobnego
echo _("Hello, world!");
dla każdego języka będzie mieć odpowiedni plik tekstowy z kluczem i wersji przetłumaczonej (uwaga% s, które mogą być używane z funkcji printf)
french
msgid "Hello, world!"
msgstr "Salut, monde!"
msgid "My name is %s"
msgstr "Mon nom est %s"
italian
msgid "Hello, world!"
msgstr "Ciao, mondo!"
msgid "My name is %s"
msgstr "Il mio nome è %s"
są to główne etapy, które trzeba przejść do tworzenia lokalizacje
- wszystkie swoje wyjście tekst musi używać funkcji gettext (gettext(), ngettext() _())
- użycie xgettext (* nix) do analizowania plików php i utworzyć plik tekstowy baza .po
- do użytku poedit dodaj tłumaczenie tekstów do plików .po
- użytkowania msgfmt (* nix), aby utworzyć plik binarny .mo z pliku .po
- umieścić .mo pliki w strukturze katalogów jak
locale/de_DE/LC_MESSAGES/myPHPApp.mo
locale/en_EN/LC_MESSAGES/myPHPApp.mo
locale/it_IT/LC_MESSAGES/myPHPApp.mo
wtedy skrypt php musi ustawić ustawienia regionalne, które muszą być stosowane
przykładzie z php instrukcja jest bardzo jasne dla tej części
<?php
// Set language to German
setlocale(LC_ALL, 'de_DE');
// Specify location of translation tables
bindtextdomain("myPHPApp", "./locale");
// Choose domain
textdomain("myPHPApp");
// Translation is looking for in ./locale/de_DE/LC_MESSAGES/myPHPApp.mo now
// Print a test message
echo gettext("Welcome to My PHP Application");
// Or use the alias _() for gettext()
echo _("Have a nice day");
?>
Zawsze z podręcznika php wyglądać here dobrego tutoriala
ale przede Przykładowy podręcznik PHP nie wydaje się tłumaczyć podanego ciągu. Czy jest coś innego do zrobienia z tym przykładem? –