私はi18next
をアプリケーションの国際化に使用しています。i18nextの言語変数
私はこのようにそれを初期化しています:変数__lng__
と__ns__
はのため
i18n.init({debug: false, getAsync: false, resGetPath: _this.buildPath + _this.i18nPath + '__lng__/__ns__.json'});
何をして立っていますか?
私はi18next
をアプリケーションの国際化に使用しています。i18nextの言語変数
私はこのようにそれを初期化しています:変数__lng__
と__ns__
はのため
i18n.init({debug: false, getAsync: false, resGetPath: _this.buildPath + _this.i18nPath + '__lng__/__ns__.json'});
何をして立っていますか?
__lng__
は__ns__
をロードするための言語であるをロードするための名前空間には、基本的にそれはあなたがlng: 'en-US'
で初期化ならば、それはロードしようとしていることを意味している:
_this.buildPath + _this.i18nPath + 'en-US/translation.json'
_this.buildPath + _this.i18nPath + 'en/translation.json'
_this.buildPath + _this.i18nPath + 'dev/translation.json'
DEVがデフォルトfalback言語&翻訳であるためには、デフォルトの名前空間です。
ドキュメントhereは、バックエンドの仕組みに応じていくつかの使い方を示すので便利です。
EDIT:ロードされる言語を設定するにはいくつかの方法があります。これを行う最も簡単な方法は、値lng
としてi18n.init()
の値を渡すことです。この例は次のようになります。
i18n.init({
debug: false,
getAsync: false,
lng: _this.language,
fallbackLng: _this.defaultLanguage,
resGetPath: _this.buildPath + _this.i18nPath + '__lng__/__ns__.json'
});
この例では、あなたと同じですが、明示的に言語を設定します。また、fallbackLng
と設定しますが、サポートされていない言語がデフォルトにフォールバックするように、ユーザーから何らかの形で言語を受け入れる場合(たとえばbrowser language)は、主に便利です。あらかじめ承認された値からの選択のみが許可されている場合、これは必須ではないかもしれません。
ありがとうございます。一般的に私は今、どのように動作するのか理解しています。 しかし、変数 'lng'は決して初期化されません。その場合、値はどこから得られますか? –
私はいくつかのビットを答えに加えました。うまくいけば、あなたはどのように言語を設定することができるのかがはっきりしていますが、あなたが意味するものではないかもしれないことに気付きました。言語があなたのためにどのように設定されているのかを知っていれば、i18nextの[this function](https://github.com/i18next/i18next/blob/1.11.2/i18next.js#L1843)からクッキー、localStorage、そして 'window.navigator'プロパティから正しい言語を使用してください。 – joelnb
それは私が探していた答えでした:)もう一度ありがとう、あなたは本当に私を助けました! –