Obsah messages.po
################################################################ # Hlavní stránka ################################################################ msgid "Main Page" msgstr "Hlavní stránka" ################################################################ # Navbar ################################################################ msgid "Current Time" msgstr "Aktuální čas" msgid "Logout" msgstr "Odhlásit"
Tento textový soubor je potřeba převést do binárního .mo tvaru:
msgfmt messsages.po -o messages.mo
pozn. msgfmt je součástí gettext na unixu. Pro Windows nainstalujte Cygwin jehož součástí je i msgfmt nebo je možné použít například POEDIT (https://poedit.net/).
Inicializace localizace je v PHP následující:
function initialize_i18n($locale) {
$locales_root = $_SERVER['DOCUMENT_ROOT'] . "/locale";
putenv('LANG='.$locale);
setlocale(LC_ALL,$locale);
if ( ! defined( 'LC_MESSAGES' ) ) {
define( 'LC_MESSAGES', 5 );
}
setlocale(LC_MESSAGES,$locale);
setlocale(LC_CTYPE,$locale);
$current='messages';
bindtextdomain($current,$locales_root);
textdomain($current);
}
initialize_i18n('cs_CZ');
Inicializace určuje umístění lokalizačních souborů .po a .mo do adresáře /locale
/cs_CZ
/LC_MESSAGES
messages.po
messages.mo
/en_US
/LC_MESSAGES
messages.po
messages.mo
V PHP kódu pak použít funkci _ s parametrem dohledávaného klíče (pokud klíč není v messages.mo nalezen, zobrazí se vlastní klíč).
Fragment PHP kódu:
<a class='navbar-brand' href='#'>"<%php echo _('Main Page') %>"</a>