【问题标题】:ionic 2 globalization work in ios but not in androidionic 2 全球化在 ios 中有效,但在 android 中无效
【发布时间】:2017-08-12 18:04:12
【问题描述】:

我使用 ionic native 全球化和 ng2-translate 来处理 app 中的翻译,下面是我在 src/assets/i18n/en.json 中的翻译 json

{
  "Tab.Home": "Home",
  "Tab.Travel": "Travel",
  "Tab.Add": "Add",
  "Tab.Notice": "Notice",
  "Tab.Me": "Me"
}

它在 ios 中工作:

但它不适用于android:

有谁知道为什么会发生这种情况或以前经历过这种情况?我是ionic的初学者,再次感谢~

【问题讨论】:

  • 你检查控制台是否有任何错误在android上?看起来带有翻译的 json 没有被加载。
  • 嗨 Andreas,请问如何在 android 上检查控制台?非常感谢。
  • 当您在您的设备上运行该应用程序并通过 USB 连接它时,您可以使用 chrome(在您的桌面上)并导航到 chrome://inspect。在那里您应该会看到您的设备/应用程序,您可以像在桌面上运行一样对其进行调试。
  • Andreas,谢谢你的教程,我检查后,加载文件是错误的,请看上图,但是你知道为什么/如何解决吗?再次感谢~!
  • 是createTranslateLoader路径有问题,现在是:return new TranslateStaticLoader(http, 'assets/i18n/', '.json');

标签: ionic-framework ionic2


【解决方案1】:

我在 android 中运行的新 ionic 应用程序中有类似的东西:GET file:///android_asset/www/assets/i18n/undefined.json net::ERR_FILE_NOT_FOUND

我的问题是访问返回“未定义”语言的设置(本地存储)语言。 > 我有一个“未定义”的检查。

app.component.ts

 initTranslate() {
// Set the default language for translation strings, and the current language.
this.translate.setDefaultLang('en');

this.settings.load().then(() => {
  this.settings.getValue('language').then(settings => {
    if ( typeof settings == 'undefined' )
      this.chooseDefaultLanguage();

    this.translate.use(settings);
  })
  .catch( result => {
    this.chooseDefaultLanguage();
  })
  .then( result => {
    this.generateMenu();
  });
});

this.translate.get(['BACK_BUTTON_TEXT']).subscribe(values => {
  this.config.set('ios', 'backButtonText', values.BACK_BUTTON_TEXT);
});

即使这是一个非常不同的问题,它也可能对您有所帮助。尝试找到您的应用设置语言的位置并检查路径。 如果我的 Promise 未定义,我可能应该去 catch 声明,但这是另一回事。

【讨论】:

    猜你喜欢
    • 2015-01-28
    • 1970-01-01
    • 2015-08-25
    • 2019-04-28
    • 2020-10-23
    • 2014-11-28
    • 2019-09-08
    • 1970-01-01
    • 2015-08-28
    相关资源
    最近更新 更多