標準として「デフォルト」以外の言語を使用する


7

私たちは現在、最初はスウェーデン語でリリースされますが、後で他の言語でリリースされるかなり大きなウェブサイトを構築しています。このため、すべてを英語で作成し、すべてをスウェーデン語に翻訳しました。このリリースでは、スウェーデン語のみにアクセスできる必要があります。これが問題の始まりです。

-さまざまな理由で言語のURLプレフィックスを使用したくない、または使用できない(PURLの衝突、醜い、サイトが複数の言語で利用可能になると不要になる)

-デフォルトの言語としてスウェーデン語を使用することはできません。すべての翻訳が壊れるからです(文字列の翻訳ではスウェーデン語が元の言語と見なされます)。フィールド、ラベル、コンテンツタイプ、ヘルプテキストなどのすべてが元々英語であるため、これはオプションではありません。

-ブラウザー検出を使用できますが、それは実際に完全な証拠ではなく、すべてのケースをカバーするわけではありません。スウェーデンの多くのユーザーは、ブラウザー言語として英語を使用しています。

-上記に加えて、IPロケーションを使用することもできますが、それでも確実な方法ではありません。

私たちが本当に必要とするのは、デフォルトの言語としてスウェーデン語を使用することですが、何らかの方法で英語を原語として使用します。これはどういうわけか可能ですか?


実装するよりも良い解決策(おそらくモジュール?)を見つけましたかhook_language_negotiation_info()
アイザック

回答:


6

Drupal 7?

言語ネゴシエーションは拡張可能です。フック_language_negotiation_info()を実装するだけです。そこでは、今のところ常にデフォルトのスウェーデン語のように、好きなことができます。また、切り替え可能な言語を制限できるようにも見えますが、それがどのように機能するかはわかりません。

言語を追加したらどうすればよいかわからないが、たとえば、自分の言語で他のネゴシエーションコールバックを呼び出し、表示したい言語の1つでない場合はフォールバックしてスウェーデン語にすることができます。


うーん..わかりましたので、デフォルトの言語として英語を使用し(デフォルトではadmin / config / regional / language / overviewで「デフォルト」に設定することを意味します)、すべての訪問者にスウェーデン語バージョンを強制することができます。標準の「検出と選択」方法のどちらにも依存できないのでしょうか。
Adam Gerthel、2011年

上にリンクされたフックを使用して、独自の「検出および選択」メソッドを作成できます。このメソッドでは、デフォルトとして必要な言語を返すことができます。私自身はそれをしていませんが、うまくいくはずです。
Berdir

また、hook_language_negotiation_info_alter()を使用して、別のモジュールによって行われた言語ネゴシエーションの実装を変更することもできます。
kiamlaluno

2

この質問は古いですが、私はこの答えが誰かにとってまだ役に立つかもしれないと思います。この機能を備えたモジュールが必要になりました。ここで見つけることができます:https ://drupal.org/project/fallback_language_negotation

私は開発者ですが、モジュールを記述してフックを実装するのに十分なDrupalがわかりません。私はこの機能をひどく必要としていましたが、自分でそれを行うことはできませんでした。

そのモジュールも非常にシンプルなので、初心者がモジュールの書き方を理解するのに適しています。


0

おそらく情報が不足しているかもしれませんが(今は問題ではないかもしれませんが、3年後)、URL検出を使用し、検出器をドメインを使用するように構成してから、サイトのドメインをスウェーデン語に設定し、プレフィックスを英語に設定します。こうすることで、ドメインに一致するため、常にスウェーデン語がデフォルトになり、接頭辞が不要になるため、英語にはなりません(ただし、言語構成で接頭辞またはドメインのいずれかを入力する必要があります)。

代わりに、コアのURL言語ネゴシエーターを変更することもできます。これは、hook_language_negotiation_info_alter()使用して行うことができます。これに関するドキュメントは非常に少ないようですが、カスタムモジュールにいくつかの同様のロジックを実装するのに成功しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.