首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用TranslationService.setTranslation方法手动定义翻译

如何使用TranslationService.setTranslation方法手动定义翻译
EN

Stack Overflow用户
提问于 2017-03-22 12:04:34
回答 1查看 3.1K关注 0票数 0

我正在使用ng2-translate节点包在一个Angular SPA应用程序中实现翻译。

按照https://www.npmjs.com/package/ng2-translate上的说明(参见第#3节定义翻译),我在其中一个组件中定义了翻译,如下所示:

代码语言:javascript
复制
import { Component, } from '@angular/core';
import { TranslateService } from 'ng2-translate';


@Component({
    selector: 'home',
    templateUrl: './home.component.html'
})
export class HomeComponent  {


    constructor(private translate: TranslateService) {


        this.translate.setTranslation('en', {
            "HELLO": "Hello World from TranslateServiceLand"
        }, true);

        this.translate.setTranslation('fr', {
            "HELLO": "Bonjour tout le moonde d'TranslateServiceLand"
        }, true);
    }
}

然而,这并不起作用。有没有人能给我举个例子?

EN

回答 1

Stack Overflow用户

发布于 2017-07-04 21:36:46

使用最新版本的ngx-translate/core

实际上,setTranslation()用于手动设置给定语言的翻译对象。

代码语言:javascript
复制
* @param lang
 * @param translations
 * @param shouldMerge
 */
setTranslation(lang: string, translations: Object, shouldMerge?: boolean): void;

在组件文件夹中创建i18n文件夹

代码语言:javascript
复制
-componentfolder
 -i18nfolder
 -component.html
 -component.ts

component.ts

代码语言:javascript
复制
import { TranslateService } from '@ngx-translate/core';

        @Component({
            selector: 'home',
            templateUrl: './home.component.html'
        })

        export class HomeComponent  {

        constructor(translate: TranslateService) { }

         changeLanguage(lang) {
            this.translate.use(lang);
            let i18n = require(`./i18n/${lang}.json`);

            this.translate.setTranslation(lang, i18n, true);
          }
        }

component.html看起来像

代码语言:javascript
复制
<ul class="dropdown-menu" role="menu">
                  <li>
                      <a class="dropdown-item" (click)="changeLanguage('en')">{{"Language.english" | translate}}</a>
                  </li>
                  <li>
                      <a class="dropdown-item"(click)="changeLanguage('es')">{{"Language.spanish" | translate}}</a>
                  </li>
</ul>

希望你知道如何在i18n文件夹中创建json文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42942557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档