サーチ…


構文

  • string gettext (string $message)

gettext()で文字列をローカライズする

GNU gettextphp.iniインクルードされなければならないPHP内の拡張gettextです:

extension=php_gettext.dll #Windows
extension=gettext.so #Linux

gettext関数は、PHPアプリケーションを国際化するために使用できるNLS(Native Language Support)APIを実装しています。


文字列を翻訳するには、ロケールを設定し、翻訳テーブルを設定し、翻訳したい文字列にgettext()を呼び出すことで、PHPで行うことができます。

<?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()は、指定された準拠した.poファイル、.moをロードします。上記のように翻訳される文字列をマップします。

この小さなセットアップコードの後、次のファイルで翻訳が検索されます。

  • ./locale/fr_FR/LC_MESSAGES/myPHPApp.mo

gettext('some string')を呼び出すたびに、 'some string'.moファイルで翻訳されていれば、翻訳が返されます。それ以外の場合、 'some string'は翻訳されずに返されます。

// 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");


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow