ngx-translate 不适用于 iOS 设备 (Cordova)

ngx-translate not working on iOS device (Cordova)

首先,我已经阅读了之前关于此的话题。 none 的解决方案对我有用。

我有一个基于 Cordova 的应用程序(非离子),部署在 android 和 iOS 上。一切正常,除了我的翻译在 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"

插件:

如果有人知道它可能是什么,我将非常感谢您的帮助。被困在这几天了。

如果有其他人遇到同样的问题。我通过加载我的 json 文件并手动设置翻译解决了这个问题:

导入您的 .json 文件:

import jsonSe from '../assets/i18n/se.json';

使用翻译服务手动设置语言:

    let jsonSeData = (jsonSe as any);
    this.translate.setTranslation('se', jsonSeData, true);

如果您使用的是 wkwebview (cordova ios 6.0.0),请尝试将此行添加到您的 config.xml 这可以在文档中找到:https://cordova.apache.org/announcements/2020/06/01/cordova-ios-release-6.0.0.html

<preference name="scheme" value="app" />
<preference name="hostname" value="localhost" />