【问题标题】:Use ngx-translate in Ionic 2 : how to add downloaded external languages files ? dynamically change folder of json or use setTranslate?在 Ionic 2 中使用 ngx-translate:如何添加下载的外部语言文件?动态更改 json 文件夹或使用 setTranslate?
【发布时间】:2017-05-29 20:03:29
【问题描述】:

我在 Ionic 2 项目中使用 nxg-translate。

在我的app.module.ts 中,我使用translateHttpLoader

...
imports: [
    BrowserModule,
    HttpModule,
    IonicImageViewerModule,
    IonicModule.forRoot(MyApp, AppOptions),
    IonicAudioModule.forRoot(),
    TranslateModule.forRoot({
        loader: {
            provide: TranslateLoader,
            useFactory: createTranslateLoader,
           deps: [Http]
        }
    })
  ],
...


export function createTranslateLoader(http: Http,) {
    return new TranslateHttpLoader(http, 'assets/i18n/', '.json');
}

在我的应用程序中,我必须从外部 zip 下载语言文件,因为客户希望能够更改翻译而不重新发布应用程序,并且语言文件包含可能更改的特定元素(地图标记等..)

所以我下载并解压缩文件, 当我拥有 lang (=data) 的 json 内容时,我使用 setTranslate 方法将其添加到翻译工具中。

this.translate.setTranslation(lang,data);

但是当我使用 getTranslation 方法检查语言是否正确添加时,我有一个错误,因为它没有找到文件。 (http 请求错误)。很正常,我的文件夹assets/i18n/是空的, 但是使用setTranslation 方法,我认为我通常应该找到我之前添加的内容?还是我没有按预期使用该模块?

我尝试在 assets/in18n 文件夹中放置一个空文件(例如 fr.json),看看它是否可以工作,但它并没有改变任何东西。

如果我更改 translateHttpLoader 中文件夹的 url,以获得准确下载的 zip 内容文件夹,它可以工作,但问题是我可以更改平台(ios/android)的功能,因为 zip 文件夹是操作系统的功能不一样。

我的问题是: - 我可以在我的createTranslateLoader 函数中更改平台函数中的资产文件夹(或在应用程序初始化之后) - setTranslation 方法的工作原理:它是否需要i18n 文件夹中的最小文件才能工作? - 你有想法改进我对 ngx-translate 的使用吗?

谢谢!

大卫

【问题讨论】:

    标签: ionic-framework ionic2 ngx-translate


    【解决方案1】:

    //我已经尝试在assets/in18n文件夹中放一个空文件(例如fr.json),看看能不能用,但没有任何改变。//

    如果你有相同的架构

    | src 
       | app
       | assets
          | i18n
             | fr.json
             | en.json
    

    你可以试试下面的代码

    export function createTranslateLoader(http: Http,) {
        return new TranslateHttpLoader(http, './assets/i18n/', '.json');
    }
    

    默认情况下,没有可用的加载器。您可以使用setTranslation 手动添加翻译,但最好使用加载器。 您可以编写自己的加载器,或导入现有的加载器。

    【讨论】:

      猜你喜欢
      • 2021-06-09
      • 1970-01-01
      • 1970-01-01
      • 2021-01-09
      • 2018-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-11
      相关资源
      最近更新 更多