TL;DR; クッキー戦術を使用する
できることはいくつかあります。オプションの中には次のようなものがあります。
- サブドメインを使用します。例: en .example.com/whatever/comes/here
- URL パスで使用しますexample.com/ en /whatever/comes/here
- 言語を取得する Cookie を設定する
それぞれの方法の短所
#1
これにより、言語をサブドメインとして設定することになるため、実際のサブドメインを追加することがより困難になりますが、技術的には異なる言語の同じコンテンツです。
#2
これを自分で行うと、URL の解析がより複雑になります。言語が設定されているか設定されていないかを考慮する必要があります(おそらく、デフォルトの言語を設定します)。デフォルトの言語を設定しない場合は、すべてのリンクのパスにその言語が含まれていることを確認する必要があります (これがまだ自動的に行われていない場合)。
#3
これの欠点は、クライアント側のデータを保存していることです。たとえば、ユーザーが Cookie をクリアすると、設定や言語設定が失われる可能性があります。
結論
上記のオプションのうち、3 番目のオプションは、実装するのが最も簡単なソリューションです。サブドメインや URL をいじることはまったくありません。Cookie から値を読み取り、言語がサポートされている場合はロケールをロードし、サポートされていない場合はデフォルトのロケールをロードするだけです。
これは、アプリケーションの一部を再構築する際に最小限の労力しか必要としない、断然最良のオプションです。(使用しているフレームワークがない場合)
他の情報なしで言語データを Cookie に保存する場合、これに Cookie を使用することによる実際のセキュリティ上の欠点はありません。これは、機密データを保存していないためです。そのため、その Cookie を盗む人は、サイトで表示する言語以外は何も知りません。これは、99.9999% の状況ではまったく関係ありません。
もちろん、この質問は他の人の経験/意見に依存しているため、これは少し偏った答えですが、事実は上記で言及されています(非常に短く、不完全ですが、要点はわかります)。