Gettext sistem aynı cümle için farklı dillerde çevirilerini içeren kaynak metin dosyalarından oluşturulan ikili dosyaları bir dizi dizeleri yankıları.
Arama anahtar bir "taban" dil cümlesidir.
kaynak kodu gibi bir şey olacak
echo _("Hello, world!");
her dil için size anahtar ve tercüme sürümü (printf fonksiyonları ile kullanılabilir% s not) ile karşılık gelen bir metin dosyası olacak
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"
Bunlar bölgeselleştirmelerini oluşturmak için geçmesi gereken temel adımlardır
- tüm metin çıktı gettext işlevleri (gettext (), ngettext () _ ()) kullanmanız gerekir
- php dosyalarını ayrıştırmak ve tabanı oluşturmak için xgettext (* nix) kullanın. po metin dosyası
- poedit. po dosyalarına çeviri metinler eklemek için kullanın
- . po dosyasından ikili. mo dosyası oluşturmak için msgfmt (* nix) kullanın
- gibi bir dizin yapısı içinde. mo dosyaları koymak
locale / de_DE / LC_MESSAGES / myPHPApp.mo
locale / en_EN / LC_MESSAGES / myPHPApp.mo
locale / it_IT / LC_MESSAGES / myPHPApp.mo
o zaman php script kullanılması gereken yerel ayarlamanız gerekir
Php manuel örnek bu bölümü için çok açıktır
<?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");
?>
Her zaman php manuel bakıştan here iyi bir öğretici için