ios - ngx-translate 在 iOS 设备上不起作用(Cordova)
问题描述
首先,我已经阅读了有关此的先前线程。没有一个解决方案对我有用。
我有一个部署在 android 和 iOS 上的基于 Cordova 的应用程序(不是 ionic)。一切正常,除了我的翻译在 iOS 设备(无论是模拟器还是真实设备)上都不起作用。我正在使用 ngx-translate,它在浏览器或 Android 设备上没有问题。
这是我的设置:
app.module.ts
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [HttpClient]
}
}),
export function HttpLoaderFactory(http: HttpClient) {
return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}
app.component.ts
import localeSv from '@angular/common/locales/sv';
ngOnInit(): {
this.translate.setDefaultLang('se');
registerLocaleData(localeSv);
}
执行:
<div translate>Click to close</div>
我也尝试过使用其他翻译样式,例如 this.translateService.instant('something'),但它不起作用。
运行 cordova build ios 后,我可以看到我的 se.json 文件位于正确的文件夹中:/assets/i18n/se.json
版本信息:
"@ngx-translate/core": "^11.0.1",
"@ngx-translate/http-loader": "^4.0.0"
- 9.0.0 (cordova-lib@9.0.1)
- IOS 5.1.1
- 使用 WKWebViewOnly
- 允许 config.xml 中的所有 http-intent 和 http-navigation
插件:
- cordova-plugin-customconfigparameters 3.0.0 “自定义配置参数”
- 科尔多瓦插件设备 2.0.3 “设备”
- 科尔多瓦插件地理定位 4.0.2 “地理定位”
- 科尔多瓦插件闪屏 5.0.3 “闪屏”
- 科尔多瓦插件白名单 1.3.4 “白名单”
- cordova-plugin-wkwebview-engine 1.2.1 “Cordova WKWebView 引擎”
- onesignal-cordova-plugin 2.9.0 “OneSignal 推送通知”
- skwas-cordova-plugin-datetimepicker 2.1.1 “日期时间选择器”
如果有人知道它可能是什么,我将非常感谢您的帮助。被困在这几天了。
解决方案
如果还有其他人有同样的问题。我通过加载我的 json 文件并手动设置翻译来解决它:
导入您的 .json 文件:
import jsonSe from '../assets/i18n/se.json';
使用翻译服务手动设置语言:
let jsonSeData = (jsonSe as any);
this.translate.setTranslation('se', jsonSeData, true);
推荐阅读
- c++ - C ++中向量错误的解决方案是什么?
- api-gateway - 如何将 JSON-RPC 请求分发到后端?
- kubernetes - Kubernetes 从节点本身耗尽节点的权限
- c++ - 将大括号括起来的初始化列表传递给可变参数宏并扩展为 std::pair<>
- scala - 迭代播放jsarray
- flutter - 使用 php laravel 请求下一页的 Flutter 分页
- html - 使用 HTML 和 CSS 插入背景图像,不起作用
- php - 还根据产品自定义字段更改 WooCommerce Minicart 项目价格
- html - 手机分辨率上的 Flex 框未对齐
- django - Django + S3 签名过期