表示する言語を固定することは可能です。
ただし WOVN では、ユーザーエクスペリエンスの観点から、ページ閲覧時に表示する言語の固定は推奨していません。
WOVN の言語切替の仕様は下記のとおりです。
初回アクセス時
ユーザーのブラウザ言語に応じて切り替えます。
2 回目以降
- スクリプト方式 の場合:Cookie に記録された「前回ユーザーが設定した言語」に切り替えます。
- ライブラリ方式、プロキシ方式 の場合:アクセスした URL 内の言語コードを守り、その言語で表示します。
どうしても固定したい場合
Web サイトの要件によっては、どうしても言語を固定したい場合があるかもしれません。
WOVN の JavaScript API を使用して言語切替を制御するサンプルコードを下記に掲載します。
ご利用の際は、ユーザー自身の責任において行ってください。
インフォメーション
下記コードはサンプルです。要件に応じて、コードをカスタマイズしてください。
また、コード記述に関するお問い合わせは、WOVN のサポート対象外です。あらかじめご了承ください。
強制的に特定の言語で表示する
WOVN の言語切替処理が準備できた後に、言語切替を行います。
下記のスクリプトを HTML ファイルの <head> タグ内に挿入してください。
強制的にページを英語で表示する例です。
```js
<script>
window.addEventListener('wovnApiReady', function(evt) {
WOVN.io.changeLang('en');
});
</script>
```
他の言語にする場合は、changeLang('en')
部分を他の 言語コード に書き換えてください。
Cookie やブラウザ言語を取得した上で特定言語に固定する
このサンプルコードは、例えば下記のような要件の場合に利用します。
- 元言語:日本語
- 翻訳言語:英語、簡体字、繁体字
- 英語、簡体字、繁体字を利用するユーザー向けには、ブラウザ言語や、過去に選択した言語のCookie を優先して言語表示する
- 日本語ページはどのユーザーにも提供しない
- 英語、簡体字、繁体字以外の言語を利用するユーザー向けには、強制的に英語を表示する
以下のスクリプトを HTML ファイルの <head> タグ内に挿入してください。
```js
<script>
window.addEventListener("wovnApiReady", function (evt) {
var cookieLang = getWovnCookie();
var browserLang = getBrowserLang();
var nextLang = null;
if (cookieLang != null && cookieLang != undefined) {
// Cookieが取得出来ればまずCookieの内容をセットする。
nextLang = cookieLang;
} else {
// 取得出来ない場合はブラウザ言語の内容をセットする。
nextLang = browserLang;
}
// Cookieまたはブラウザで取得した言語が日本語なら英語にする
if (nextLang == "ja") {
nextLang = "en";
}
// 実際の言語切替
WOVN.io.changeLang(nextLang);
});
var getWovnCookie = function () {
var originCookies = document.cookie;
var cookiesArray = originCookies.split("; ");
for (var i = 0; i < cookiesArray.length; i++) {
var cookiePairs = cookiesArray[0].split("=");
//EXAMPLE: cookiePairs = ["key", "value"];
if (cookiePairs[0] === "wovn_selected_lang") {
return cookiePairs[1];
}
}
return null;
};
var getBrowserLang = function () {
var language = (window.navigator.languages && window.navigator.languages[0]) ||
window.navigator.language ||
window.navigator.userLanguage ||
window.navigator.browserLanguage;
// 言語コードの最初2文字だけ取得
return language.substring(0, 2);
};
</script>
```