PHP での多言語サポート: Gettext の使用方法

王林
リリース: 2023-06-20 09:28:02
オリジナル
1427 人が閲覧しました

PHP は、動的で対話型の Web アプリケーションを簡単に作成できる、広く使用されているプログラミング言語です。多言語サポートは、Web アプリケーションを開発する際の重要な要素です。 Gettext は、多言語サポートを実現するために使用されるオープン ソース ソフトウェアの国際化ツールであり、PHP と統合できます。この記事では、Gettext を使用して PHP で多言語サポートを実装する方法を紹介します。

Gettext とは何ですか?

Gettext は、最新の Linux および Unix システムの標準多言語サポート ライブラリであるソフトウェア国際化ツールです。ほぼすべてのプログラミング言語で動作し、さまざまなテキスト ファイル形式を処理できます。 Gettext の基本原則は、1 つの基本言語 (通常は英語) のみでソフトウェアを作成し、すべての言語文字列を翻訳ファイルに入れることです。翻訳ファイルは、Gettext が提供するツールを使用して作成および維持できます。実行時に、Gettext は翻訳ファイルをアプリケーションにロードし、言語文字列を正しい翻訳に置き換えます。

Gettext の使用方法?

まず、Web サーバーに Gettext 拡張機能がインストールされていることを確認する必要があります。一般的な Linux サーバーでは、次のコマンドを使用して Gettext 拡張機能をインストールできます。

sudo apt-get install php-gettext
ログイン後にコピー
  1. PHP で Gettext を構成する

PHP で Gettext を有効にするには、php.ini ファイルが必要です。で設定します。 php.ini ファイルを開き、次の行を見つけます:

;extension=php_gettext.dll
ログイン後にコピー

これを次のように変更します:

extension=php_gettext.dll
ログイン後にコピー
  1. 翻訳ファイルを作成します

次に、次の必要があります。翻訳ファイルを作成します。翻訳ファイルには、翻訳するすべてのテキスト文字列が含まれている必要があります。

Gettext の翻訳ファイル形式は、特定のファイル拡張子 (通常は .po) が付いたバイナリ ファイルです。アプリケーションが複数の言語をサポートする必要がある場合は、言語ごとに個別の翻訳ファイルを作成する必要があります。

翻訳ファイルを作成するときは、gettext が提供するツールを使用する必要があります。 Ubuntu や Debian などのオペレーティング システムでは、次のコマンドを使用して gettext をインストールできます:

sudo apt-get install gettext
ログイン後にコピー

次に、次のコマンドを使用して新しい翻訳ファイルを作成します:

msginit --input=file.pot --locale=en_US.utf8
ログイン後にコピー

ここで、- -input オプションはアプリケーションの基本言語を指定する PO ファイルであり、--locale オプションは作成する翻訳ファイルのローカリゼーション設定を指定します。このコマンドを実行すると、Gettext はすべての文字列の翻訳エントリを含む翻訳ファイルを自動的に作成します。

  1. 翻訳ファイルの更新

アプリケーション内に翻訳する必要がある新しいテキスト文字列がある場合、または変更する必要がある既存の文字列がある場合は、そうする必要があります。それに応じて翻訳ファイルを更新します。翻訳ファイルを更新するには、次のコマンドを使用します。

msgmerge --update po-file.po translation-file.po
ログイン後にコピー

ここで、po-file.po はアプリケーションの PO ファイル、translation-file.po は更新する翻訳ファイルです。

  1. 翻訳ファイルのロード

PHP で翻訳ファイルをロードするには、gettext 拡張機能の gettext() 関数を使用する必要があります。 gettext() 関数を使用する場合は、翻訳するテキスト文字列と現在の言語を指定する必要があります。

以下は、gettext() 関数を使用して翻訳ファイルをロードする例です。

// 加载翻译文件
$locale = 'zh_CN';
$language_domain = 'messages';
putenv("LC_ALL=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain($language_domain, '/path/to/translations/');
textdomain($language_domain);

// 翻译文本字符串
echo gettext('Hello, world!');
ログイン後にコピー

上記のコードは、まず、bindtextdomain() 関数を使用して翻訳ファイルのディレクトリをバインドします。 textdomain() 関数を使用して、現在の翻訳のドメインを設定します。次に、gettext() 関数を使用して、「Hello, world!」文字列を現在の言語に変換します。言語が英語でない場合、gettext() 関数は翻訳ファイル内で対応する翻訳を見つけて、中国語または他の翻訳に置き換えます。

結論

Gettext を使用すると、Web アプリケーションをグローバルに使いやすくすると同時に、アプリケーションの可用性と信頼性を向上させることができます。この記事では、PHP で Gettext を使用して多言語サポートを実現する方法について説明します。これらの機能を理解すると、自信を持って複数の言語をサポートする Web アプリケーションの作成を開始できるようになります。

以上がPHP での多言語サポート: Gettext の使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート