ホームページ >バックエンド開発 >PHPチュートリアル >phpmaster | PHPアプリケーションのローカライズパート1:2011年10月 - SitePoint

phpmaster | PHPアプリケーションのローカライズパート1:2011年10月 - SitePoint

Lisa Kudrow
Lisa Kudrowオリジナル
2025-03-02 08:37:09445ブラウズ

PHPアプリケーションを国際化する:getTextを使用して多言語サポートを簡単に実装する

グローバルなインターネットユーザーは成長し続けており、多くのユーザーが母国語でコンテンツを閲覧したいと考えています。ウェブサイトのユーザーインターフェイス翻訳を完了するには優れた翻訳のみが必要だと思うかもしれませんが、より大きな課題は書面での背景コードにあります。従来のソフトウェアローカリゼーションプロセスは面倒でエラーが発生しやすく、コードが混乱しています。一部の開発者は、異なる領域に異なるバージョンのコードを使用しているため、コードベース管理をほとんど不可能にします。

getTextは、プロセスを簡素化し、コードライティングに集中できる優れたオープンソースツールであり、翻訳者はターゲット言語で個別に翻訳されたファイルを処理する責任があります。 PHP getTextをマスターすると、アプリケーションの世界的な影響を拡大することが簡単になります!この一連の記事では、GetTextを使用してPHPアプリケーションをローカライズする方法を教えてくれます。最初の部分では、GetTextをすばやく紹介します。これに基づいて、後続の部分は、複数の翻訳ドメイン、複数形の形式、さらにはローカリゼーションプロセスの一部を自動化する方法を処理する方法を説明します。

準備環境

学習を開始する前に、環境が正しくセットアップされていることを確認してください。これにより、学習コンテンツを段階的にテストするのに役立ちます。これがインストールリストです:

    Apache(または任意のWebサーバー)の
  • php 5.x、getText拡張機能を有効にします。 www.php.netでPHPの最新バージョンを入手できます。
  • PoEdit、クロスプラットフォームGetTextディレクトリエディター。これは、アプリケーションコードから翻訳を分離できる優れたツールです。 www.poedit.netでコピーを入手できます。

プラットフォームが何であれ、PHPからgetTextを使用するには、GetTextライブラリとライブラリに接続されたPHP拡張機能をインストールする必要があります。 ubuntu/debianユーザーはapt-getを使用でき、fedora/centos/redhatユーザーはyumを使用してgetTextライブラリをインストールできます。別のUNIXのようなシステムを使用している場合は、www.gnu.org/s/getTextにアクセスして、プラットフォームと互換性のあるgetTextのコピーを取得してください。 Windowsユーザーは、gnuwin32.sourceforge.net/packages/getText.htmから最新の実行可能ファイルをダウンロードしてインストールできます。ライブラリをインストールした後、php.iniを編集して行を追加して、getTextのPHP拡張機能を有効にする必要があります。

<code># Windows用户
extension=php_gettext.dll
# *nix用户
extension=gettext.so</code>
次に、後で使用されるpo editをインストールします。 www.poedit.netでコピーをダウンロードできます。

gettextの「hello world」 Web Root Directoryで、GetTextエクササイズのためにTESTI18Nと呼ばれるサンドボックスディレクトリを作成します(I18Nは国際化の略)。 testi18nディレクトリで、次の階層を作成します:

将来のプロジェクトでは、親とロケールディレクトリに好きなように名前を付けることができますが、EN_USとLC_MESSAGESはgetTextで使用される標準名です。 EN_USはロケールの名前を表し、2つの部分で構成されています。最初の部分は、ISO 639-1仕様による言語の2つの小文字の略語です。アンダースコアの後の2番目の部分は、ISO 3166-1 Alpha-2仕様に従って2桁の資本国コードです。したがって、EN_USは、言語がアメリカの英語であることを意味します。 phpmaster | Localizing PHP Applications Part 1: Oct 2011 - Sitepoint

次に、PoEDITがプラットフォームで適切に機能することを確認してください。プログラムを開始し、トップメニューバーから「ファイル」>「新しいディレクトリ」を選択します。 [設定]ウィンドウで、次の情報を入力し、複数形のフィールドを一時的にスキップします。

phpmaster | Localizing PHP Applications Part 1: Oct 2011 - Sitepoint

[OK]をクリックし、lc_messagesディレクトリで作成されたmessage.poとしてファイルを保存します。 PoEditを閉じてメッセージを開いてください。お気に入りのテキストエディターと一緒に...はい、それは通常のテキストファイルです!手動で編集できますが、トラブルを節約するために、PoEditに主な定義を作成させます。ファイル内の既存の行の後に空白の行を残し、次のものを追加します。

messages.poを保存して閉じてから、PoEditで再開します。 PoEDITで、[ファイル]> [保存]を選択するか、アイコンバーの[ディレクトリを保存]エントリをクリックします。 POファイルをPoEditに保存する理由は、GetTextが利用できる特別な形式にコンパイルする必要があるためです。 PoEDITで保存した後、同じ名前の新しいファイルが同じディレクトリに作成されたが、拡張機能.MOで作成されたことがわかります。通常のテキストエディターを使用してPOファイルの変更と保存を続けたい場合は、PoCompileコマンドにコンパイルする必要があります。 PoEDITを使用する場合、ファイルを保存すると自動的にコンパイルされるため、追加のコンピレーション手順は必要ありません。
<code># Windows用户
extension=php_gettext.dll
# *nix用户
extension=gettext.so</code>

testi18nディレクトリに戻り、次のコードでtest-locale.phpという名前のファイルを作成します。

ブラウザでtesti18n/test-locale.phpを開きます。すべてが正しくインストールされ、うまく機能する場合、ページに「Hello World」が表示されます。

<code># 测试标记1
msgid "HELLO_WORLD"
msgstr "Hello World!"

# 测试标记2
msgid "TEST_TRANSLATION"
msgstr "Testing translation..."</code>

概要

PHPアプリケーションをローカライズするときに多くのオプションがあります。 GNU GetTextライブラリとそのPHP拡張機能を使用することを選択しました。これは、アプリケーションを「正しく」ローカライズする強力で簡単な方法です。このセクションでは、GetTextとPHP拡張機能をインストールし、PoEDITを簡単に使用し、シンプルなHello Worldスクリプトで興味を引くために必要なものが表示されます。 2番目の部分は、GetTextの詳細と、Hello WorldスクリプトとGetTextライブラリの仕組みを説明します。

sgame / shutterstockの写真

(以下はFAQパーツで、元のコンテンツに従って調整され、擬似オリジナルの作品が作成されました)

PHPアプリケーションのローカリゼーションに関するよくある質問

PHPアプリケーションをローカライズすることの重要性は何ですか?

ローカライズされたPHPアプリケーションは、世界中のユーザーにリーチしたい企業にとって不可欠です。これには、ソフトウェアアプリケーションのユーザーインターフェイスとその他の目に見える要素を異なる言語に変換することが含まれます。このプロセスは、ユーザーエクスペリエンスを向上させるだけでなく、アプリケーションの市場カバレッジを拡大します。 PHPアプリケーションをローカルすることにより、さまざまなユーザーのニーズを満たすことができ、ユーザーベースと潜在的な収益を増やすことができます。

PHPのローカリゼーションはどのように機能しますか?

PHPローカリゼーションには、特定の関数とライブラリを使用してアプリケーション内のテキストを翻訳することが含まれます。最も一般的な方法は、ユーザーのロケール設定に従って翻訳する関数に文字列をラップできる強力なライブラリであるgetTextを使用することです。これには、すべての翻訳を含む各言語の.poファイルを作成することが含まれます。

PHPローカリゼーションを実装する手順は何ですか?

PHPローカリゼーションの実装には、いくつかのステップが含まれます。まず、PHP環境にgetTextライブラリをインストールして構成する必要があります。次に、GetText関数を使用して翻訳するアプリケーションのすべての文字列をラップする必要があります。次に、それらのファイルのすべての文字列をサポートおよび翻訳する各言語の.poファイルを作成する必要があります。最後に、これらの.poファイルを.moファイルにコンパイルする必要があります。これはバイナリファイルであり、getTextを読み取ることができます。

PHPアプリケーションをローカライズすることの課題は何ですか?

PHPアプリケーションのローカル化は、いくつかの理由により困難な場合があります。まず、アプリケーション内のすべての文字列を翻訳することは、特にアプリケーションが巨大で複雑な場合に時間がかかる場合があります。第二に、翻訳の維持は、特にアプリケーションに新機能を更新または追加する場合に困難な場合があります。第三に、異なる言語で複数形、性別、その他の文法的な微妙さを扱うことは難しい場合があります。

PHPローカリゼーションで複数の数値を処理する方法は?

ngette関数を使用して、PHPローカリゼーションで複数の数値を処理できます。この関数は、特異形式、複数形、および文字列の数の3つのパラメーターを受け入れます。次に、数値に基づいて正しいフォームを返します。たとえば、ngetTeText( "1つのApple"、 "Many Apples"、$ number)は、$番号が1の場合は「1つのリンゴ」を返します。

ローカライズされたPHPアプリケーションをテストするにはどうすればよいですか?

サーバーまたはPHPコードのロケールを変更して、文字列が正しく変換されているかどうかを確認して、ローカライズされたPHPアプリケーションをテストできます。また、一部の言語では、より多くのスペースが必要になるか、読み取り方向が異なる場合があるため、さまざまな言語のアプリケーションのレイアウトと設計をテストする必要があります。

PHPローカリゼーションに機械翻訳を使用できますか?

機械翻訳は文字列を迅速かつ簡単に翻訳できますが、PHPのローカリゼーションには推奨されません。多くの場合、機械の翻訳には、ソフトウェアのローカリゼーションに必要な正確性とコンテキスト認識が欠けています。プロの翻訳者またはローカライズされたサービスを使用して、翻訳の品質を確保することをお勧めします。

PHPアプリケーションの翻訳を管理する方法は?

ローカライズされたプラットフォームまたは翻訳管理システムを使用して、PHPアプリケーションの翻訳を管理できます。これらのツールを使用すると、翻訳を中央の場所に保存、管理、更新できます。また、翻訳メモリ、用語集、コラボレーションツールなどの機能を提供して、ローカリゼーションプロセスを簡素化するのに役立ちます。

PHPローカリゼーションにおける.poおよび.moファイルの役割は何ですか?

.poおよび.moファイルは、PHPローカリゼーションで重要な役割を果たします。 .poファイルは、元の文字列とその変換を含むテキストファイルです。それらは人間が読みやすく、テキストエディターまたは.poファイルエディターを使用して編集できます。一方、.moファイルは、マシン読み取り可能なバイナリファイルです。それらは.poファイルによって生成され、getTextによって使用されてアプリケーション内の文字列を翻訳します。

PHPアプリケーションをあらゆる言語にローカライズできますか?

はい、PHPアプリケーションをgetTextサポートする言語にローカライズできます。ただし、アプリケーション内のすべての文字列に対してその言語の翻訳が必要です。さらに、各言語の文化的および言語的ニュアンスを考慮して、ローカリゼーションの品質を確保する必要があります。

以上がphpmaster | PHPアプリケーションのローカライズパート1:2011年10月 - SitePointの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。