javascript - 使用 ngx-translate 以 Angular 10 翻译动态字符串

标签 javascript angular typescript angular-translate ngx-translate

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

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

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

我应该在 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"
}

最佳答案

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`

关于javascript - 使用 ngx-translate 以 Angular 10 翻译动态字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64699747/

相关文章:

typescript - 订阅者不应该在可观察的错误中停止

javascript - typescript :不可分配给类型错误

javascript - 文件读取器异步加载文件后获取文件名

javascript - 缺乏对 AJAX 预加载的理解(附示例)

javascript - 在 Protractor 中的规范之间共享测试用例

javascript - 将 jQuery 与 angular 2+ 一起使用好吗

angular - Webpack 和 TypeScript 上的 SignalR : cannot find module './NodeHttpClient'

javascript - 编辑 Donut Highchart

javascript - 清除/空 IFRAME 由 jQuery 提供给它的 src?

angular - 如何运行 ng 相关命令作为其显示错误