【问题标题】:@ngx-translate ''setTranslation" and "set" not working@ngx-translate ''setTranslation" 和 "set" 不起作用
【发布时间】:2018-04-01 14:20:36
【问题描述】:

我正在使用@ngx-translate setTranslation 方法根据代码中的某些条件在运行时更新几个值。

带有翻译的 JSON 文件如下所示:

"example":{
    "tab":{
        "firstValue": "someValue"
    }
}

setTranslation 函数是这样调用的:

this.translateService.setTranslation('es', {
            "example": {
                "tab": {
                    "firstValue": "otherValue",
                }
            },
        });

这个:

this.translateService.get("example.tab.firstValue").subscribe(response => {
                console.log(response);
            });

总是返回 "someValue",但它应该返回更新后的值 - "otherValue"

我做错了什么?

【问题讨论】:

    标签: angular translate ngx-translate


    【解决方案1】:

    我对此的第一反应可能没有完全解决问题。当我添加与现有对象具有相同键的对象时,'shouldMerge' 标志没有任何区别。所以我采取了另一种方法: 我首先得到给定语言的翻译,这会返回一个对象,然后操作这个对象,然后我用这个被操作的对象设置翻译。 就我而言,我现在有一个如下所示的方法:

    private addDynamicTranslation(section:string,culture:string,k:string,v:string){
        //if key already exists: overwrite it, if not create it
        if(this.valueMapper.translateService.getLangs().includes(culture)){
           this.valueMapper.translateService.getTranslation(culture).subscribe((t:Object)=>{
                if(t.hasOwnProperty(section)){
                   if(t[section].hasOwnProperty(k)) t[section][k]=v;
                   else Object.defineProperty(t[section], k, {value:v, writable:true, configurable:true, enumerable:true});
                }
                else{
                    var obj={};
                    Object.defineProperty(obj, k, {value:v, writable:true, configurable:true, enumerable:true});
                    Object.defineProperty(t, section, obj);
                };
                this.valueMapper.translateService.setTranslation(culture,t);
            })
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-14
      • 1970-01-01
      • 2020-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-20
      相关资源
      最近更新 更多