PHP
Lokalizacja
Szukaj…
Składnia
string gettext (string $message)
Lokalizowanie ciągów za pomocą gettext ()
GNU gettext
to rozszerzenie w PHP, które musi znajdować się na php.ini
:
extension=php_gettext.dll #Windows extension=gettext.so #Linux
Funkcje gettext
implementują API NLS (Native Language Support), które można wykorzystać do internacjonalizacji aplikacji PHP.
Tłumaczenie łańcuchów można wykonać w PHP, ustawiając ustawienia regionalne, konfigurując tabele tłumaczeń i wywołując gettext()
na dowolnym łańcuchu, który chcesz tłumaczyć.
<?php
// Set language to French
putenv('LC_ALL= fr_FR');
setlocale(LC_ALL, 'fr_FR');
// Specify location of translation tables for 'myPHPApp' domain
bindtextdomain("myPHPApp", "./locale");
// Select 'myPHPApp' domain
textdomain("myPHPApp");
myPHPApp.po
#: /Hello_world.php:56
msgid "Hello"
msgstr "Bonjour"
#: /Hello_world.php:242
msgid "How are you?"
msgstr "Comment allez-vous?"
gettext () ładuje dany plik .po zgodny z post, a .mo. który mapuje twoje przyszłe przetłumaczone ciągi jak wyżej.
Po tym małym fragmencie kodu instalacyjnego będą teraz wyszukiwane tłumaczenia w następującym pliku:
-
./locale/fr_FR/LC_MESSAGES/myPHPApp.mo
.
Ilekroć wywołasz gettext('some string')
, jeśli 'some string'
został przetłumaczony w pliku .mo
, tłumaczenie zostanie zwrócone. W przeciwnym razie 'some string'
zostanie zwrócony bez tłumaczenia.
// Print the translated version of 'Welcome to My PHP Application'
echo gettext("Welcome to My PHP Application");
// Or use the alias _() for gettext()
echo _("Have a nice day");