【问题标题】:ngx translate not working on iOS devicengx 翻译无法在 iOS 设备上运行
【发布时间】:2018-07-19 05:35:58
【问题描述】:

我有一个 ionic 3 项目,我想使用 ngx translate。 它可以在浏览器和 iOS 模拟器中运行,但不能在真实设备上运行(在 iPhone SE、iOS 11.1 上测试)。

app.module.ts

import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
import { HttpClient, HttpClientModule } from '@angular/common/http';

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

@NgModule({
    [...],
    imports: [
        [...]
        HttpClientModule,
        TranslateModule.forRoot({
            loader: {
                provide: TranslateLoader,
                useFactory: (HttpLoaderFactory),
                deps: [HttpClient]
            }
        })
    ],
    [...]
})
export class AppModule { }

我的文件在这里:

src/assets/i18n/DE.json

src/assets/i18n/EN.json

我是这样翻译的:

<ion-title translate>
    {{ 'LOGIN.HEADER' | translate }}
</ion-title>

有人知道为什么不能在设备上翻译吗?

【问题讨论】:

  • 你在用WKWebView吗?
  • @sebaferreras:我正在使用 Ionic WebView。我认为是 WKWebView。
  • 我尝试通过将&lt;preference name="CordovaWebViewEngine" value="CDVUIWebViewEngine" /&gt; 添加到我的config.xml 来将其更改为UIWebView,但它没有解决问题。
  • 请查看 this comment 并告诉我是否可以解决问题。顺便说一句,您应该保留WkWebView,因为UiWebView 将被弃用
  • 感谢您的回答。不幸的是,我得到了.map 在类型Observable&lt;string&gt; 上不存在的错误。所以,我无法真正测试它。我试图重写它但没有成功。然后我只写了return this.http.get(./assets/i18n/EN.json); 从这一刻起它就可以工作了,而且它也适用于我的旧实现(+我将语言文件名更改为小写(en.json,de.json)我之前已经尝试过很多次了)。所以,我真的不知道为什么,但它现在似乎工作。感谢您的帮助!

标签: ios ionic-framework ionic3 ngx-translate


【解决方案1】:

可能有点晚了,但对于那些仍然遇到此问题的人,请执行以下任一解决方案:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-01
    • 1970-01-01
    • 2015-01-14
    • 1970-01-01
    • 1970-01-01
    • 2021-04-27
    • 2015-02-24
    • 1970-01-01
    相关资源
    最近更新 更多