2

gettext を使用して、多言語の php Web アプリを作成しています。

gettext を実際に使用する最良の方法は何ですか。キー フレーズとして使用できます。

echo (_("main.welcomeText.1"));

または

echo (_("Welcome to my site, we build great webapps."));

どちらの方法でも、.po ファイルを使用してリクエストを変換します。

より良い方法は何ですか?

4

2 に答える 2

2

場合によります :):

  • デバッグを改善したい
  • 正確な翻訳が欲しい
  • プログラミングのスピードが欲しい
  • 翻訳者が翻訳する開発者に依存しないようにしたい (開発者が適切な英語を書かないため不可能... フランス語、インド語 [ネイティブおよび非ネイティブ開発者を含む])
  • あなたは最高の2つの世界を望んでいます

次の理由により、教えられる最良の方法は main.welcomText.1 です。

  • 多くの場所で (おそらく) 使用するので、過去のコピーがより簡単になり、エラーが発生しにくくなります。
  • キーには数字があり、エラーがスローされたときに検索/ソートが簡単になります。つまり、...悪いキーは「nullを使用するとクラスxyで悪いことが起こった」ではなくerror.errorCode.321です。
  • キーは「意味/セマンティクス」をカバーするため、メッセージを構造化/定義するためにもう少し頭を悩ませる必要があります。つまり、main.hello または greeting.formal または greeting.friendly witch は翻訳とは異なります (つまり: "こんにちは"、"ようこそ"、"こんにちは")
  • おまけ: 常に同じキーを使用してキーを構造化することで、翻訳の量を減らすことができます (より簡単な方法で。リファクタリングを考えてください)。

"Welcome to my site, we build a great webapps." を使用します。読みやすく、翻訳者が翻訳しやすくなりますが、特にコードに多くの時間がかかる場合は、修正/デバッグが容易ではありません

したがって、キーはデバッグに使用されるため、コード内のどこにあるかを簡単に見つけることができます。

編集: ベースとなる英語の翻訳を提供してください:

main.welcomeText.1:私のサイトへようこそ。私たちは素晴らしいウェブアプリを構築しています。

これは、短期的には開発者にとってより多くの作業です。しかし、大規模なプロジェクトではほとんどありません:)

于 2012-05-21T12:43:26.360 に答える
0

私は gettext を使ったことがありません...そして、使っている人を本当に知りませんでした。

Smarty/Dwoo を使用してプレゼンテーションを完全に分離するという別のアプローチをお勧めします。これを使用すると、国際化を行うための非常に単純な構成/言語ファイルを作成できます。

于 2012-05-21T13:07:08.470 に答える