14

元の投稿のコメントで非常に多くの議論を引き起こしたので、私はこれをそれ自体の質問として取り上げることにしました。

SO の多くの人々 (開発者) がローカリゼーションを受けていないのは興味深いことです。これがどのように機能するかについての私の見解です:

私が調べたすべてのブラウザー (およびそこにいる .NET 開発者も) で、ユーザーのカルチャ設定を見ると、それは次の形式になっています: language-Culture.

したがって、次のようになります。

  • en-GB - 英語 - イギリスの文化
  • en-US - 英語 - 米国文化
  • en - 英語 - 不変の文化。
  • fr-FR – フランス語 – フランス文化
  • fr-CH – フランス語 – スイス文化
  • de-CH – ドイツ語 – スイス文化
  • de-DE – ドイツ語 – ドイツ文化

.NET フレームワークがサポートする完全なリストについては、MSDNを参照してください。

私が Web サイトにアクセスすると、en 部分から英語が必要であることを認識し、英国に傾斜したもの (数字の形式、日付の形式) に興味があることを認識します。したがって、google.com にアクセスして google.de に移動すると (IP アドレスが原因で)、google.de がすべてを英語で表示する場合はまったく問題ありませんが、google.de はドイツ語であるため完全に間違っています。IP アドレスはほとんど制御できませんが、言語と文化の設定は完全に制御できます。興味がある方は、Microsoft の新しい検索エンジン (bing.com) が適切に処理します。Microsoft が Google と同じように検索を行う方法を学ぶか、Google が Microsoft と同様にローカライズする方法を学ぶことができることを期待しましょう ;)

詳細については、 MSDNに別の優れた記事があります。

では、サイトがローカリゼーションをどのように扱うべきかについて、あなたの推奨事項は何ですか?

4

8 に答える 8

13

ここでの解決策はとてもシンプルで、開発者が他のことをするのは面倒です。

  1. ブラウザの設定を尊重してください。それが英語と言えば、神によってそれは英語です。

  2. 絶対に必要な場合は、上部にボタンを追加して別のものを選択してください。次に、そのときだけ、ブラウザをオーバーライドします。

  3. あなたのやり方が良いと思うなら。やめて、誰かに平手打ちさせて。そうではありません。必要に応じて繰り返します。

  4. 誰かの国を尋ねる Web スプラッシュ ページを削除します。ブラウザのデフォルトに基づいて通常のページを表示し、上記の項目 2 を参照してください。 実際に重要なサイトにまだ出くわしていません。 更新: 数年後、これを行う理由ができました。2013 年に英国は、その国からの訪問者にページを提供している、その国を拠点とするサイトに対して、Web サイト運営者が尊重する必要がある Cookie に関するポリシーを制定しました。そのため、ホストされている国の法律に注意してください。

  5. 複数の国にまたがる複数のサーバーによって実際にサービスが提供されているサイトがある場合は、おそらく、どのサーバーが実際にサービスを提供するのに近いかを検出できます. それができない場合は、リダイレクトの狂気を止めて、彼らのために決定を下そうとしないでください.

于 2009-06-29T19:36:02.180 に答える
4

HTTP Accept-Language ヘッダーを含むがこれに限定されないローカライズ設定が利用可能な場合、Web サイトはそれらを絶対に尊重する必要があります。

これに対する一般的な議論は、「平均的なユーザー」は、言語設定を見つけて自分の好みに合わせて構成するほど賢くないため、これらの設定は、多くの場合、正しくないということです (ユーザーがたまたま私たち)。

それは間違った解決策です。

ユーザー人口のかなりの部分がブラウザの言語設定を見つけられない (または見つけようとしない) 場合、正しい対応は、サイトが設定されているものを無視するのではなく、見つけやすくすることです。に。おそらく、過度に複雑な「設定」ダイアログ内に言語設定を埋め込むのではなく、プログラムのトップレベルメニューから言語設定に直接アクセスできるようにする. おそらく、プログラムを初めて実行するときに言語設定を尋ねます。おそらく、オペレーティング システムのローカリゼーション設定を使用してください。あるいは、ブラウザがユーザーの設定に関する正しい情報を送信することをほぼ確実にするために必要な場合は、まったく異なるものかもしれません。しかし、ただ手を投げるのではなく、「役に立たない、直せない!

他の回答では、ユーザーがサイトのプロファイルで言語またはロケールを選択できるようにすることについて話しました。これも重要であり、絶対に標準にする必要がありますが、それはユーザーの通常の設定にサイト固有のオーバーライドを提供するためのものです. ただし、ユーザーがサイトでこれをオーバーライドしていない場合、正しいアクションは、IP アドレスの地理位置情報に基づくのではなく、ブラウザー設定で指定されている最も優先される使用可能な言語/ロケールにデフォルト設定することです。

于 2009-07-13T19:37:14.237 に答える
3

私のキャリアのある時点で、TCP/IPスタックの一部を保守していました。そのため、IPアドレスをネットワーク層アドレス以外のものとして使用してはならないことをよく知っているという、ややまれな立場に置かれています。IPアドレスと場所の間の関連付けは、ほとんど偶然です。これは、アドレスの配布方法のアーティファクトであり、IPアドレスの意味の基本的な部分ではありません。

(コンピューターの一意の識別子としても役立ちませんが、それは別の話です)

ジオロケーションは除外することをお勧めします。HTTP標準には、ブラウザーまたは他のユーザーエージェントが各要求にユーザーカルチャ設定を含める方法が含まれています(これは、必ずしも1つのカルチャではなく、重み付けされた設定のリストであることを忘れないでください)。ブラウザはあなたよりもユーザーに近いので、少なくともデフォルトとして、このリクエストを尊重する必要があります。

その後、ユーザーがサイトの設定を一時的または永続的に変更できるようにすることは問題ありません。ユーザーがさまざまなカルチャ設定でさまざまなコンテンツを表示することを選択できるようにすることもできます。ワイルドな例は、政治ニュースと技術情報の両方を含むサイトです。誰かが「自然」言語でニュースを望んでいるのはかなり合理的ですが、技術情報は英語です。

最後に、フォールバックパターンがあっても問題ありません。たとえば、地域に基づいてユーザーにサービスを提供するサイト(再販業者など)がある場合、日本のコンテンツはアジアの地域サブサイトにのみ存在する可能性があります。EMEAサイトにアクセスする日本語を話すユーザーは、英語のコンテンツを見るのに行き詰まっている可能性があります。これが彼の最後の選択肢である可能性があります。

于 2009-06-26T17:58:49.397 に答える
3

私が作成するサイトでは、通常、次のパターンに従います。

  • 各ページには、言語を含む一意の URL があり、通常は類似/en/pageまたは別の (サブ) ドメインです。
  • 私が推測し始めたように、ユーザーが特定されていない言語の URL を開いた場合/page:
    • 以前のセッションの Cookie は利用できますか?
    • そうでない場合、Accept-Language利用可能で、サイトで利用可能な言語にマップできますか?
    • そうでない場合、可能性がある場合、IPで推測できますか?
    • そうでない場合は、デフォルトでサイトのデフォルト言語に設定します。
  • 推測した言語で Cookie を設定し、ユーザーを適切な URL のサイトにリダイレクトします
  • すべてのページに言語スイッチを配置したので、/en/page簡単に切り替えることができます/xx/page
    • ユーザーが別のページに切り替えると、Cookie が更新されます

理想的には、一度推測するだけでよく、それ以降はユーザーの Cookie を使用するか、ユーザーが目的のページに直接アクセスします。

于 2009-07-31T06:25:03.263 に答える
1

スマートなデフォルトと、ユーザーがそれらを上書きできる機能との間には違いがあります。私が取り組んできた大きなアプリでは、ブラウザーの設定や位置情報などからユーザーのロケールを想定していましたが、常にユーザーが簡単に切り替える方法を提供していました。

他にどのようにそれを行うかわかりません。仮定を修正する機会をユーザーに与えないことは、深刻な問題です。

添加:

ここでの問題は、ロケール設定を編集することはできますが、それらが基本的にデフォルトと同じに見える場合、アプリケーション開発者が意図的にそのままにしたのか、それとも方法がわからないためかを判断する方法がないことだと思いますまたは変更する理由。

ユーザーのローカリゼーション設定を尊重することをお勧めします。ただし、設定が圧倒的なデフォルトであり、ユーザーが変更できない場合を除きます。たとえば、en-us設定がベトナムに設定されているユーザーの大多数 (90% 以上) は、ほとんどの場合、ロケールを切り替える簡単な方法がある限り、米国英語のコンテンツよりもベトナム語のコンテンツを表示する方が適切であると考えています. 反対に、米国にいるユーザーがベトナム語を設定している場合は、必ずベトナム語のコンテンツを提供してください。

これは、ベトナムの米国英語ユーザーにとってイライラしますか? もちろん。しかし、それは最大数にとって最大の利益でもあり、平均的な技術者以外のユーザーが最高の現実世界の経験を得ることを保証するのに役立ちます. ユーザーの頭に銃を突きつけて、コンピューターの電源を入れる前に言語/文化の好みを正直に宣言するよう強制できるようになるまで、このようなヒューリスティックが必要になります。

于 2009-06-22T17:28:57.683 に答える
0

私は顧客からの強力なバグ レポートを十分に見てきましたが、調査した結果、そのうちの 1 人のユーザーがブラウザのカルチャ設定を間違っていたことが判明したため、顧客が構成設定でブラウザをオーバーライドできるようになりました。ブラウザーのカルチャ設定はしばしば間違っているため、あまり役に立ちません。また、ほとんどのエンド ユーザーがそれを見つけたり変更したりするのも困難です。

于 2009-07-07T10:43:35.003 に答える