基本的にはブラウザ言語を判別して「自動的に言語が切り替わる」ものとなります。
具体的には
window.navigator.language
を参照して現在の言語を判別しています。また、 ?lang=en のような形でクエリパラメータに lang を切り替えた場合はブラウザ言語よりも優先してそちらの言語で切り替わるようになります。
一度 ?lang=en のようにアクセスを行った場合、ブラウザ内の localStorage 内
lang
に言語コードが保存されるようになります。そのため、現在ユーザに適用されてる優先順位としては以下の通りです
querystringの `lang` の値 > localStorage内 `lang` の値 > window.navigator.language の値
なお、ブラウザ言語が zh-hk(香港) の場合には zh-tw と同様に繁体字に切り替わるものとなります。