首页 > 解决方案 > 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"

插件:

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

标签: ioscordovangx-translate

解决方案


如果还有其他人有同样的问题。我通过加载我的 json 文件并手动设置翻译来解决它:

导入您的 .json 文件:

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

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

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

推荐阅读