8

ウェブサイトを構築していますが、7 か国語に対応する必要がありますか? 多言語 php スクリプトを取得するために適用できる良い方法があるかどうか疑問に思っていましたか?

  • 私にとっては簡単
  • 翻訳者にとって簡単

また、DB、XML、またはPHPファイルに保存する必要がありますか?

4

7 に答える 7

11

翻訳を保存するためのオプションはたくさんあります。

  • TMX : 翻訳用の比較的新しい XML 形式。人気急上昇中のようです。
  • Gettextは、翻訳用のもう 1 つのオープン フォーマットです。長い間、事実上の標準でした。
  • ini ファイル - 編集しやすく、非常にシンプルな形式
  • PHP ファイル (配列) - PHP プログラマーにとって編集しやすく、優れたパフォーマンス
  • CSV 形式 - 比較的簡単に使用できます。

複数のアダプターをサポートし、アプリケーションに翻訳を埋め込むための基本的なアプローチを提供するZend_Translateのようなものを使用することをお勧めします。

于 2009-01-19T13:42:07.213 に答える
6

daddz とは反対に、PHP で gettext を使用しないことをお勧めします。

  • ロケール設定はプロセスごとです。これは、マルチスレッド Apache または PHP をインプロセスで実行しているその他のマルチスレッド Web サーバーで作業している場合、1 つのスレッドで setlocale を呼び出すと、他のスレッドに影響を与えることを意味します。

    どのスレッド/プロセスがどのリクエストを処理しているかを知ることができないため、ユーザーが断続的に間違ったロケールを取得するというひどい問題に遭遇します。

  • PHP で設定したロケールは、printfや などの関数にも影響を与えstrtotimeます。gettext/setlocale を使用している場合、バックエンド コードに到着する「奇妙な」数値形式に確実に影響を受けます。

Eran が提供する他のソリューションを使用するか、自分で何かをすばやく実行します (PHP 配列は非常にうまく機能します)。また、コア PHP 5.3 に含まれる intl-extension を使用して、数値と日付のフォーマットと照合を行います。

Web ベースのソリューションで gettext を何度も使用することは、ことわざにあるワームの缶を開けるようなものであることが判明しました。

于 2009-01-19T13:48:45.437 に答える
4

Gettextをお勧めします。

これはクロスプラットフォームでオープンソースであり、広く使用されており、php で利用できます: PHP Gettext

于 2009-01-19T13:36:46.600 に答える
1

多言語CMSを構築しました。すべてのコンテンツは、共通 (言語固有の値ではない) のメイン テーブルと、言語固有のコンテンツ用の個別のテーブルを含むデータベースに格納されました。

たとえば、製品の保存を想像してみましょう。'products' テーブル (unique_id、作成日、画像の URL などを含む) と 'product_local' テーブル (言語固有のフィールドを含む) があります。

この方法を使用すると、コンテンツの保守が非常に簡単になります。

于 2009-01-19T18:54:51.090 に答える
1

私は経験がないgettextので、そのトピックについてはコメントしませんが、次の方法を使用していくつかの多言語サイトを構築しました。

方法 1

私のフォーマットが最高だとは言いませんが、それが効果的であるというだけです。配列も使用しました。コンテンツの保存場所によって異なります。

たとえば、どのテキストかを識別するインデックスを使用して、テキストの連想配列を作成します。

$text['english']['welcome'] = "Welcome to my site. blah blah blah";
$text['english']['login'] = "Please enter your username and password to login";

また、定数または構成変数を使用して言語を設定することもできます。

方法 2

同一の構造とバックエンドを持つ 2 つのサイトを構築しましたが、それぞれが異なるデータベースを使用し、別々に管理されていました: data_frenchdata_english.

于 2009-01-19T14:00:26.303 に答える
0

このフォーラムをチェックしてください。翻訳を手伝ってくれる人がいる場合は、おそらく別のアプローチが必要になると思います。

多言語 PHP Web サイトの最も効率的なアプローチ

于 2013-11-30T05:36:42.063 に答える
0

このトピックに関するこの記事は、興味深い読み物になるかもしれません。

http://cubicspot.blogspot.com/2011/12/cross-platform-multilingual-support-in.html

著者は「怠惰なプログラマー」戦略を提唱しており、多言語のものが必要な場合にのみ実行してください。また、IANA 言語コードを使用した PHP 配列アプローチを推奨しているようです。文章が曖昧ですが。

于 2011-12-27T15:56:00.357 に答える