i18next 不在 Cordova iOS 6.1.0 上翻译
i18next doesn't translate on Cordova iOS 6.1.0
我已经使用 v1.10.x 在 iOS 和 Android 上工作了很多年,但是随着新迁移到 wkwebview i18next(包括 1.11.2)只是 returns 关键。我很好奇是否有人成功地将 i18next 与 Cordova iOS 6.1.0、Cordova 9.0.0 一起使用,以及是否有人可以发现我的错误。
[编辑] 开启调试后,我得到了这个错误,虽然有点无用
2020-07-15 11:08:29.649177-0700 myapp[15438:5134539] error when loading /src/locales/en/translation.json
[/编辑]
这是我的 i18next 初始化代码,min 包由 index.html 加载。我将资源对象添加到 init 选项以查看我的 translation.json 文件是否可能存在问题,但显式资源也没有转换。此 init 在 Cordova Android 9.0.
上运行良好
/* ******************* internationalization and go **************** */
// initialize i18n, launch react in the callback so we're able to localize
i18n.init(
{
fallbackLng: "en",
debug: true,
resources: {
en: {
translation: {
"clf_js_Username": "Who ARE you?"
}
}
}
},
function(err, t) {
if (typeof err !== "undefined") {
console.log("LH.iLE - initialization returned error >" + err + "<");
}
setTimeout(() => {
console.log(
"********** i.i18init is complete - starting react **********"
);
// setup the action groups for 'special' notifications
// addKatzerActionGroups();
//************** launch React+Redux **********
(blah blah blah——超时是一个神奇的数字 1000ms 允许 i18n 初始化)
);
WKWebView 对文件加载施加了额外的 CORS 限制,事实证明 i18next 使用 XHR 加载翻译文件,因此加载被阻止。通过添加此插件修复,该插件已针对 cordova-ios 6.0
进行了更新
https://github.com/ej-dunne/cordova-plugin-wkwebview-file-xhr
安装这个插件(cordova-ios 6+)
cordova plugin add https://github.com/globules-io/cordova-plugin-ios-xhr
然后设置
<preference name="AllowUntrustedCerts" value="true" />
<preference name="InterceptRemoteRequests" value="all" />
<preference name="allowFileAccessFromFileURLs" value="true" />
<preference name="allowUniversalAccessFromFileURLs" value="true" />
这是为我做的:
<plugin name="@ahovakimyan/cordova-plugin-wkwebviewxhrfix" />
<platform name="ios">
<feature name="CDVWebViewEngine">
<param name="ios-package" value="CDVWebViewEngine" />
</feature>
</platform>
我已经使用 v1.10.x 在 iOS 和 Android 上工作了很多年,但是随着新迁移到 wkwebview i18next(包括 1.11.2)只是 returns 关键。我很好奇是否有人成功地将 i18next 与 Cordova iOS 6.1.0、Cordova 9.0.0 一起使用,以及是否有人可以发现我的错误。
[编辑] 开启调试后,我得到了这个错误,虽然有点无用
2020-07-15 11:08:29.649177-0700 myapp[15438:5134539] error when loading /src/locales/en/translation.json
[/编辑]
这是我的 i18next 初始化代码,min 包由 index.html 加载。我将资源对象添加到 init 选项以查看我的 translation.json 文件是否可能存在问题,但显式资源也没有转换。此 init 在 Cordova Android 9.0.
上运行良好 /* ******************* internationalization and go **************** */
// initialize i18n, launch react in the callback so we're able to localize
i18n.init(
{
fallbackLng: "en",
debug: true,
resources: {
en: {
translation: {
"clf_js_Username": "Who ARE you?"
}
}
}
},
function(err, t) {
if (typeof err !== "undefined") {
console.log("LH.iLE - initialization returned error >" + err + "<");
}
setTimeout(() => {
console.log(
"********** i.i18init is complete - starting react **********"
);
// setup the action groups for 'special' notifications
// addKatzerActionGroups();
//************** launch React+Redux **********
(blah blah blah——超时是一个神奇的数字 1000ms 允许 i18n 初始化) );
WKWebView 对文件加载施加了额外的 CORS 限制,事实证明 i18next 使用 XHR 加载翻译文件,因此加载被阻止。通过添加此插件修复,该插件已针对 cordova-ios 6.0
进行了更新https://github.com/ej-dunne/cordova-plugin-wkwebview-file-xhr
安装这个插件(cordova-ios 6+)
cordova plugin add https://github.com/globules-io/cordova-plugin-ios-xhr
然后设置
<preference name="AllowUntrustedCerts" value="true" />
<preference name="InterceptRemoteRequests" value="all" />
<preference name="allowFileAccessFromFileURLs" value="true" />
<preference name="allowUniversalAccessFromFileURLs" value="true" />
这是为我做的:
<plugin name="@ahovakimyan/cordova-plugin-wkwebviewxhrfix" />
<platform name="ios">
<feature name="CDVWebViewEngine">
<param name="ios-package" value="CDVWebViewEngine" />
</feature>
</platform>