位置情報に基づいてユーザーにロケールを推奨する方法はありますか?

私のサイトは主に英語ですが、時折日本語からの訪問者があります。Discourse は言語アクセシビリティにおいて強力なツールですが、ユーザーが 言語ロケールを変更できることを知らない ということが何度も起こっています。

これにはかなり複雑な一連の操作が必要です。たとえば、モバイルでは次のようになります。

  • アバターサイドバーを開く
  • ユーザーアイコンを押す
  • 「Preferences」と英語でラベル付けされた歯車アイコンを押す
  • 右にスクロールして、コンピューター画面のアイコンが付いた7番目の設定「Interface」を見る
  • 下にスクロールして、4番目の設定「Interface language」を見る

もし英語を知らず、この設定が存在することを知っていたとしても、おそらくたどり着くのは難しいでしょう。

Header Locale Selector のようなアイデアは良いと思いますが、それを見るにはアカウントが必要であり(匿名訪問者のロケールを変更することは可能なのでしょうか?)、また、ユーザーが生涯に0〜1回しか使用しないであろう設定のために貴重なヘッダー領域を占有します。

そこで、特に英語圏以外の国からアクセスしている場合に、新規ユーザー(そして理想的には匿名ユーザー)に言語設定を変更するように促す賢い方法があるかどうか、誰か教えていただけないでしょうか?

set locale from accept language header を有効にすると、ブラウザで選択したロケールでインターフェイスが表示されます。

「いいね!」 5

これでまさに求めていたものになりました、ありがとうございます!

デフォルトでオフになっているのは非常に奇妙ですね :thinking:

「いいね!」 1

allow user locale もデフォルトでオフになっているためだと思います。

「いいね!」 2

これも私には全く理解できません。認識できる理由(少なくとも私が見る限り認識できる理由)なしに、一部のユーザーにとってサイトの使いやすさとアクセシビリティを低下させる選択です。

デフォルトで有効になっていれば、主要言語を読むことができるユーザーにはコストがかからず、(私のフォーラムの場合)英語を第二言語とするユーザーにはメリットがあります。

これは、デフォルトでウェブサイトを一部のユーザーに対して白黒にするカラー設定と同等であり、デフォルトで有効になっています。

サイトのカスタマイズは、ユーザーがロケールを選択できるようにすると、はるかに多くの作業が必要になると考えます。たとえば、他のロケールを許可せずにウェルカムメッセージを編集する場合、1つのテキストを変更するだけです。他のロケールを許可する場合、すべてのロケールで個別に変更する必要があり、それを忘れると、すべてのユーザーがメッセージで同じ情報を受け取るわけではありません。これは、検索バナーやウェルカムリンクバナーなどのテーマコンポーネントでも同じです。Discourse Discoverの国際セクションを見ると、デフォルトの「Welcome to our community」テキストを使用したバナーのスクリーンショットを見ることができます。それらのフォーラムを訪れたとき、多くの人がバナーテキストをカスタマイズしていましたが、すべてのロケールでそうしていたわけではありません。そのため、テーマコンポーネントにデフォルトのドイツ語テキストがないためカスタマイズされたテキストが表示されますが、ブラウザの言語が英語(米国)に設定されている人はデフォルトのテキストが表示されます。これはスクリーンショットが撮影されたときと同じです。したがって、現時点では、これは英語(米国)をブラウザ言語としているユーザーにのみ影響する可能性があり、これも翻訳するのにそれほど多くの作業ではありません。しかし、コンポーネントに英語(英国)が追加されると、管理者はこれらの文字列も変更する必要があり、その後、誰かがドイツ語を追加して、次のテキストを編集する必要があるかもしれません。したがって、異なるロケールで文字列を変更する必要があることに注意するだけでなく、新しいロケールが追加されたときにそれらをカスタマイズする必要があることに気づく必要があります。

他のロケールを許可すると、管理者の作業が大幅に増加する可能性があります。人々が1つの言語のみでコミュニケーションをとるコミュニティでは、おそらく労力に見合う価値はありません。ユーザーは anyway 言語に対処する必要があります。インターフェースが自分の言語であることはほとんど役に立ちません。

「いいね!」 4

あなたの例は、そのようにする必要のない実装上の選択だと思います。たとえば、すべてのインスタンスにデフォルトのロケールがあります。すべてのユーザーがまったく同じ情報を受け取ることが重要であれば、すべてのテキストについて、デフォルト言語のテキストが上書きされているかどうかを確認します。上書きされていて、ユーザーのロケールが上書きされていない場合は、デフォルトのロケールでテキストを表示します。

または、まったくそうしないこともできます。そのままにしておきます。すべての言語のデフォルトテキストは、非常に優れたものになるように設計されています(または、そうあるべきです)。すべてのユーザーが完全にカスタマイズされたエクスペリエンスを得られるわけではありません。画面上の要素のいくつかがあまり役に立たないかもしれません。しかし、その代替案は、100%の要素が読めず、役に立たないということです。

どちらの場合も、管理者は望むだけの追加作業を行うだけで済みます。デフォルトのロケールに堪能でない場合、あなたのために翻訳されたテキストはすべて純粋なプラスです。

Discourseを徹底的かつ深く多言語対応にするために多大な労力が費やされているのに、デフォルト設定ではほとんどのサイトが単一言語専用になるだろうというのは残念だと思います。また、Discourseソフトウェア自体が、採用候補者に対して、豊かな多言語プラットフォームとしての能力を示す機会を逃していることになります。なぜなら、大多数のインスタンスは完全に英語専用であると推測できるからです。これは私の意見ではアクセシビリティの問題です。

私は完全に同意しません。南米出身のユーザーが、UIロケールを変更するオプションを示したときに非常に感謝してくれました。それは間違いなく彼の経験を向上させました。別のユーザーが日本から訪れ、英語のサイトに投稿することに intimidat(気後れ)し、画像をアップロードするのに非常に苦労したと説明しました。彼はアップロードが完了する前に返信を押していました。確認したところ、彼のロケールが英語になっていたことがわかり、それがそもそもこのスレッドの動機となりました。

「いいね!」 1

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.