問題タブ [http-accept-language]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
grails - Grails i18n: Accept-Language ヘッダーの設定
Grails の国際化ドキュメントによると、i18n は次のいずれかによって実現されます。
Accept-Language
リクエストにヘッダーを設定します。またlang
クエリ文字列パラメータへの取り組み
前者の方が HTTP に準拠しているため、私は前者を選択しています。率直に言って、それをクエリ パラメータとして追加するのは好きではありません。
しかし、そもそもどうやって設定Accept-Language
するのでしょうか?!?
要求された TLD によってアプリのロケールが決定されるようにします。は伝統的に英語/米国に関連付けられているため、のリクエストはアプリhttp://myapp.example.com
のバージョンを返します。要求された場合、Grails はアプリのバージョンを返す必要があります。等。en_US
*.com
http://myapp.example.fr
fr_FR
だから私の本当の質問は:
要求された URL/TLD を Grails がサーバーに設定できる変数にマップし、GSP に挿入して、クライアント側の要求が常にAccept-Language
特定の URL/TLD に一致するヘッダーを持つようにするにはどうすればよいですか?
アップデート
ここでブラウザー/Grails の動作を確認したい: ユーザーがブラウザーを構成するときに、ブラウザーがAccept-Language
それに応じてヘッダーを調整すると想定しても安全ですか? もしそうなら、ifAccept-Language
が送信されず、Grails がデフォルトlang
で使用するクエリ パラメータとして指定されていないと仮定できますか?en_US
java - Accept-Language として HTTP ヘッダー要求で使用する「en_US」と「en-US」の形式はどれですか?
私は実際にこれら 2 つの形式をテストしましたが、私のサーバーは両方とも問題ありません。HTTP ヘッダー フィールドは "en-US" がフォーマットで、ローカル Java クラスは "en_US" を返しているため、どちらを使用するか少し混乱しています。
私の部分的なコードは次のようなものです:
getAcceptLanguageHeader()
en_US;q=0.9
メソッドは、ユーザーのデバイス言語が not の場合、文字列に追加しますen_US
。
任意のアイデアをいただければ幸いです。ありがとう。
java - Spring MVC: ブラウザー言語に従ってユーザーをリダイレクトする
Spring MVC 4では、ブラウザの言語(HTTP ヘッダー "Accept-Language")に従ってローカライズされた URL にユーザーをリダイレクトするにはどうすればよいですか?
ユーザーが URL にアクセスしようとすると、ブラウザの言語が「DE」の場合 (つまり、「Accept-Language」ヘッダーが「de」に設定されている場合)example.com/some/path
にリダイレクトされます。de.example.com/some/path
同様に、ユーザーがアクセスde.example.com/some/path
していて、その言語が EN の場合は、にリダイレクトする必要がありますexample.com/some/path
。
それを得る最も簡単な方法は何ですか?
.htaccess - .htaccess 言語による仮想フォルダーへのリダイレクト
特定の言語が検出されない場合、仮想フォルダーにリダイレクトしようとしましたが、これは機能しません。
私が必要なもの:
「dk」以外の言語を使用しているユーザーが url.to/page.html にアクセスした場合は、url.to/en/page.html にリダイレクトする必要があります。それ以外の場合は、ルート フォルダー (url.to/page.html) に留まる必要があります。
手伝ってくれてありがとう!
.htaccess - htaccess 言語検出の効率的なコード
私のウェブサイトで、イタリア語を話す訪問者 (言語ブラウザーはイタリア語) を /it/ にリダイレクトし、他のすべての言語を /en/ にリダイレクトしたいと考えています。
私は次のコードを思いつきます:
このようにしてすべての条件がチェックされ、言語がイタリア語の場合は /it にリダイレクトされます。それ以外の場合は 2 番目のブロックが実行され、英語版にリダイレクトされます。
私の最初の質問は、これを行うためのより効率的な方法はありますか? 私のhtaccess機能は非常に限られています。
追加の質問として: これは SEO で問題を引き起こす可能性がありますか? domain.net をクロールするボットはすべて英語版にリダイレクトされ、イタリア語版へのリンク (旗の画像) を見つけて、イタリア語版もクロールすると思います。それが正しいか?
python - リクエストを使用したPythonの変更Accept-Language
私はpythonが初めてで、リクエストライブラリを使用してIMDbから情報を取得しようとしています。私のコードはすべてのデータ (映画のタイトルなど) を母国語でキャプチャしていますが、英語で取得したいと考えています。それを行うために、リクエストのaccept-languageを変更するにはどうすればよいですか?
php - 言語リダイレクトはデスクトップでは機能しますが、モバイル ブラウザーでは機能しません
ブラウザの言語設定を確認し、サイトの言語バージョン (WP マルチサイト) にリダイレクトする小さなスクリプトを PHP で作成しました。
Mobile Safari または Mobile Chrome でテストすると、リダイレクトが機能していないように見えます。考慮する必要があるモバイル ブラウザーの受け入れ言語の特別な出力はありますか?
更新:さらにデバッグした後、私はこれを見つけました:
- Mobile Safari は、HTTP_ACCEPT_LANGUAGE をエコーするときに正しい言語を表示しますが、リダイレクトしません。
- モバイル Chrome (iOS のみ、Android で動作) で正しい言語が表示されません (デフォルトは「en」)。
- iOS は http ヘッダー データを異なる順序で解析します。iOS Chrome (en-US,en;q=0.8,sv;q=0.6) と OSX Chrome (sv,en-US;q=0.8,en;q=0.6) を比較してください。 )。