多言語 Web アプリケーションを開発する場合、文字列の翻訳をどのように管理するかが一般的な問題になります。開発言語として PHP を使用する場合、Gettext ライブラリは非常に便利なツールです。 Gettext は、包括的な国際化およびローカリゼーション (i18n) システムであり、その最も基本的な機能はアプリケーション内の多言語文字列の管理です。 PHP8.0バージョンではGettextがアップデートされ、バージョンアップしましたので、この記事ではその関連内容を紹介します。
Gettext とは何ですか?
Gettext は、GNU フリー ソフトウェアの国際化およびローカリゼーション開発ライブラリであり、多言語アプリケーションの開発時にアプリケーションを複数の言語に簡単に翻訳できる再利用可能なツールのコレクションです。 PHP では、Gettext は C 言語 gettex 関数ライブラリのインターフェイスを使用します。
Gettext の実装原理
Gettext は、アプリケーション内の文字列を別のデータベース ファイルのエントリとして編成し、これらの文字列をさまざまな言語に翻訳するために使用されます。この独立したデータベースは「翻訳ドメイン」と呼ばれ、すべての翻訳された文字列とその翻訳されたテキストが含まれます。
PHP では、Gettext ライブラリは特定の関数 __ (二重アンダースコア) を通じて翻訳フィールドのエントリにアクセスします。この関数のパラメータには、翻訳ドメインの名前と翻訳される元の文字列が含まれます。 Gettext は、ユーザーのロケールと利用可能な翻訳ファイルに基づいて、元の文字列をターゲット言語に翻訳します。
Gettext の使い方
PHP8.0 では、Gettext を使って複数の言語を扱う方法は以前と大きく変わっておりませんが、Gettext ライブラリを使用するための基本的な手順は次のとおりです。
$domain = 'messages';
$locale = 'zh_CN';
$directory = dirname(__FILE__) . '/locale';
bindtextdomain($domain, $directory);
textdomain($domain);
bind_textdomain_codeset($domain, ' UTF-8');
echo __("Hello, world!");
以上がPHP8.0の多言語処理ライブラリ:Gettextの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。