0

我需要一些有关 Ionic 2(.2.3) 应用程序中 ng2-translate 的帮助。我遵循了本教程: https ://www.techdiary.io/internationalization-of-ionic2-apps/ ,它奏效了。

我还创建了一个 en.json 文件和一个小的“字典”。我用 {{"Example"|translate}} 标记的词被翻译成相关词。

但是,如果我将我的 initTranslation() 更改为“de”而不是 en

initTranslation() {
    var userLang = navigator.language.split('-')[0]; // use navigator lang if available
    userLang = /(de|en)/gi.test(userLang) ? userLang : 'de';

    // this language will be used as a fallback when a translation isn't found in the current language
    this.translate.setDefaultLang('en');

    // the lang to use, if the lang isn't available, it will use the current loader to get them
    this.translate.use(userLang);
  }

什么都不会发生。我错过了什么?我已经创建了一个 de.json,其单词与 en.json 文件相同。

是否可以使用标记的标签 ({{" Example "|translate}}) 作为默认语言?还是我现在总是需要翻译标签?

谢谢

编辑:显然这个:

userLang = /(fr|en|es|in|zh)/gi.test(userLang) ? userLang : 'en';

对我不起作用。如果我更改默认语言,它只会更改语言。只有当我使用“en”时它才会起作用。非常混乱。

编辑2:

是的,如果我使用类似的东西

userLang = 'de'

有用。但是,是否可以使用实际的 html 文本作为默认语言?

4

1 回答 1

1

//但是,是否可以使用实际的 html 文本作为默认语言?

你的意思是用户浏览器语言?

如果是这样,请使用它。

let browserLang = translate.getBrowserLang();
        translate.use(browserLang.match(/en|es/) ? browserLang: 'en')

else intially {{"Example"|translate}} 示例需要稍后出现 您需要选择语言吗?如果是这样,请将下拉列表添加到您的 html

<ul class="dropdown-menu" role="menu">
                  <li>
                      <a (click)="changeLanguage('en')">English</a>
                  </li>
                  <li>
                      <a (click)="changeLanguage('es')">Spanish</a>
                  </li>
              </ul>

.ts 文件

changeLanguage(lang) {
        this.translate.use(lang);
    }
于 2017-05-25T13:53:57.960 回答