【问题标题】:translate dynamic string in angular 10 using ngx-translate使用 ngx-translate 在 Angular 10 中翻译动态字符串
【发布时间】:2020-11-07 01:03:14
【问题描述】:

我正在使用一些动态值来创建一个字符串并将其发送到 sweetalert 配置。

我想知道有什么方法可以在发送到配置之前翻译字符串?

我见过几个解决方案,我们可以将变量传递给 translate 方法,但还有其他解决方案可以使用吗?

我应该在 en.json 中添加什么?

let status = '';
switch (action?.innerText) {
    case 'Accept': {
        status = 'Accepted';
        break;
    }
    case 'Approve': {
        status = 'Approved';
        break;
    }
    case 'Delete': {
        status = 'Deleted';
        break;
    }
    case 'Reject': {
        status = 'Rejected';
        break;
    }
}

//You have ${status} a Request for $${this.data?.details?.amount}
let transalteTitle;
this.translate.get('You have', {
    value: status
}, ' a Request for', {
    value: this.data?.details?.amount
}).subscribe(res => {
    transalteTitle = res;
});

const configval = {
    title: transalteTitle,
    text: 'Do you want to continue?',
    showCancelButton: true,
    icon: 'warning',
    confirmButtonText: 'YES',
    cancelButtonText: 'NO'
};


//en.json

{
    "title": "You have ${status} a Request for ${val}"
    "status_accepted": "accepeted",
    "status_rejected": "rejected"
}

【问题讨论】:

    标签: javascript angular typescript angular-translate ngx-translate


    【解决方案1】:
    let status = '';
    switch (action?.innerText) {
        case 'Accept': {
            status = 'status_accepted';
            break;
        }
        case 'Approve': {
            status = 'status_approve';
            break;
        }
        case 'Delete': {
            status = 'status_delete';
            break;
        }
        case 'Reject': {
            status = 'status_rejected';
            break;
        }
    }
    
    //You have ${status} a Request for $${this.data?.details?.amount}
    let transalteTitle;
    this.translate.get(status).pipe(switchMap(translatedStatus =>
        this.translate.get('title', {
            status: translatedStatus, val:
                this.data?.details?.amount
        }))).subcribe(translatedTilte => {
        const configval = {
            title: transalteTitle,
            text: 'Do you want to continue?',
            showCancelButton: true,
            icon: 'warning',
            confirmButtonText: 'YES',
            cancelButtonText: 'NO'
        };
    })
    
    
    //en.json
    
    {
        "title": "You have ${status} a Request for ${val}"
        "status_accepted": "accepeted",
            "status_rejected": "rejected"
    }`enter code here`
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-14
      • 2018-08-16
      • 2018-03-30
      • 2016-05-15
      • 1970-01-01
      • 2022-06-23
      • 1970-01-01
      相关资源
      最近更新 更多