3

私たちの何人かは、UI だけでなくデータもさまざまな言語でサポートする必要があるプロジェクトに既に取り組んでいると思います。たとえば、私がここに書いていることの翻訳を提供して保存することができます。

さらに、私たちの何人かは、適切なタイムゾーンに従って真夜中などを計算するためにユーザーの場所を考慮に入れる必要がある、時間によってトリガーされるイベント (メンバーシップ アクセスの有効期限が切れたときなど) を持っていると思います。

最後に、特定の言語に準拠した右から左へのユーザー インターフェイスをサポートし、送信されたデータ ファイルを読み取るときにさまざまなエンコーディングを使用する必要もあります (たとえば、テキストと Excel データの解析)。

現在、すべてのエンティティのすべての翻訳を 1 つのテーブルに格納しています (SQL クエリを実行して問題を調査するときに自分自身を見つけるのは非常に難しいため、実用的ではありません)。主にサテライト アセンブリで UI 翻訳を設定し、どちらもサポートしていません。タイムゾーンも右から左へのデザインでもありません。

これらの課題に対処するときの経験は何ですか?

[編集]

ほとんどの人は、このレベルの多文化要件は巨大なプロジェクトを構築するようなものだと考えていると思います。実際のところ、次のようなオンライン調査について考えているとします。

  1. 回答は深夜までのみ収集されます
  2. アンケートの定義と回答の一部は、テキスト ファイル (任意の言語) と翻訳から取得されます
  3. 質問と回答のオプションは、誰がアクセスしているかに応じて複数の言語で表示する必要があります
  4. レポートは、複数の異なる言語で表示および生成する必要もあります

お分かりのように、この種の要件を満たすために、アプリケーションを行き過ぎる必要はありません。

[編集2]

私の質問が重複していることがわかりました

プロジェクトの i18n

最初の回答 (投票で注文する場合) は非常に包括的であるため、いつか少なくともその一部を実装する必要があります。

4

6 に答える 6

3

非常に注意してください。あなたが実装しようとしている i18n 機能についてあなたが言っていることからすると、行き過ぎているのではないかと思います。

大物 (eBay、amazon.com、yahoo、bbc など) の Web アプリケーションは、実際には、サポートしたい言語ごとに個別のアプリを提供していることに注意してください。これらの Web アプリケーションはそれぞれ、共通のコア サービス セットを使用します。同じ言語を話す 2 つの異なる国 (英国と米国など) のビジネス ニーズが大きく異なり、それぞれに個別のアプリが必要な場合でも驚かないでください。

一方で、次の amazon.com のようになる必要があるかもしれません。成功する Web アプリケーションを 1 つの言語で配信することは、ましてや多くの言語で行うことは困難です。Web アプリのビジネス ニーズにとって理にかなっている場合は、特定のユーザー層 (たとえば、アジア言語を話すユーザー) を他のユーザー層より優先することをためらう必要はありません。

于 2008-10-02T03:28:46.917 に答える
2

ゆっくり行ってください。

すべてを考え抜いてから、自分が何をしているのかをもう一度よく考えてください。追加するほど (右から左へのように)、QA サイクルが長くなることに注意してください。

于 2008-10-01T20:50:32.413 に答える
1

パズルの主な部分は、コード側のインターフェイスの広範な使用と、サポートする必要のある言語にトランスレータを介して渡される1つのデータソース、または言語ごとに個別のデータソースのいずれかです。

時間の問題はインターフェースで処理できます。おそらく、同じように機能させたいが、実装の詳細が異なるためです。さまざまな言語をサポートするようにインターフェイスを調整する場合、インターフェイスの作成にも同様の思考プロセスを適用できます。結局のところ、スキニングはまさにこれであり、スキニングされるコンテンツはインターフェイスであり、ルック/フィールは実装です。

于 2008-10-01T21:13:57.333 に答える
1

ユーザーが必要とすることを実行します。たとえば、ほとんどのプログラマーは英語を理解しているため、このサイトの投稿を翻訳する意味はありません。多くのユーザーが翻訳を必要とする場合は、言語IDを使用して新しいテーブル列を追加し、別の列を追加して、翻訳された行を元の行にリンクします。ターゲットの聴覚に中東のユーザーが含まれている場合は、右から左に実装します。時間の精度が1時間まで重要な場合は、タイムゾーン列をユーザーテーブルに追加します。

于 2008-10-01T21:28:11.667 に答える
1

*NIX を使用している場合は、gettextを使用してください。私が使用したほとんどの言語には、ある程度のサポートがあります。たとえば、 PHPはかなり優れています。

于 2008-10-01T22:06:14.883 に答える
0

私のプロジェクトで何が行われたかを説明します (それは私のオリジナルのアーキテクチャではありませんでしたが、とにかく気に入りました)。

翻訳サポートの提供

翻訳が必要なテキストは、次の 3 つのカテゴリに分類されています。

  1. エラー テキスト: アプリケーション ビジネス層の奥深くで発生するようなエラー
  2. UI テキスト: ユーザー インターフェイスに表示されるテキスト (ラベル、ボタン、グリッド タイトル、メニュー)
  3. ユーザー定義テキスト: 最終ユーザーの好みに応じて翻訳可能にする必要があるテキスト (つまり、ユーザーは調査で質問を作成し、その調査の翻訳版を作成することもできます)

異なるカテゴリごとに、翻訳サービスを提供するために使用されるスキーマが異なるため、次のようになります。

  1. エラー テキスト: リソース ファイルにアクセスする静的関数を含むライブラリ
  2. UI テキスト: ビュー エンジンにリンクされ、リモート アセンブリからの翻訳を提供する「ヘルパー」クラス
  3. ユーザー定義テキスト: データベース内のテーブルで、(翻訳されたエンティティの typeID とオブジェクト ID に従って) 翻訳を提供し、1 x N の関係を介してエンティティにリンクされます。

ただし、タイム ゾーンの処理、さまざまなレイアウト、画像の変換 (これが本当に必要な場合) など、他の明らかな問題については触れていません。この問題に別の方法で取り組んだ人はいますか?

他の i18n の問題に取り組んだ人はいますか?

于 2008-10-21T17:04:13.950 に答える