使用tap-i18n对错误代码进行国际化

时间:2014-12-10 14:51:56

标签: meteor internationalization

我目前正在使用tap-i18n包开发多语言应用程序。我想知道如何翻译错误。
我可以抓取代码,然后显示我之前写入翻译文件的自定义消息。
但是我在this post看到了另一种i18n包更好的方法。

有没有人知道是否有办法像tap-i18n那样做什么?


编辑:目前我正在做这样的事情:

Meteor.call('createNewUser', newUser, function (error, ret)
{
    if (!error)
        displayError(TAPi18n.__('success'), TAPi18n.__('new_user_success'), TAPi18n.__('ok'), "btn-success btn-lg", "success-popup");
    else
    {
        switch (error.error)
        {
            case 403:
                displayError(TAPi18n.__('danger'), TAPi18n.__('new_user_already_exist'), TAPi18n.__('ok'), "btn-danger btn-lg", "danger-popup");
                break;
            default:
                displayError(TAPi18n.__('danger'), TAPi18n.__('new_user_error'), TAPi18n.__('ok'), "btn-danger btn-lg", "danger-popup");
                break;
        }
    }
});

1 个答案:

答案 0 :(得分:3)

我的回答可能有点偏离主题,但您的意思是应用程序错误吗?如果是这样,你就不应该把它归还给用户,因为这可能构成一个安全漏洞,给他们太多的信息。

来自OWASP:https://www.owasp.org/index.php/Error_Handling

因此,您可能希望处理错误,并向用户提供您希望他们知道的内容。

只需在翻译中包含错误消息,然后按正常字符串进行翻译即可。

我希望这有一些帮助:)。

修改 我现在明白你的意思了。据我所知,没有这样的选择,就像只有-i18n一样。作为稍微解开代码的建议,您可以使用辅助函数,例如:

function t(keyToTranslate){
  return TAPi18n.__(keyToTranslate)
}

在代码中:

displayError(t('danger'), t('new_user_already_exist'), t('ok'), "btn-danger btn-lg", "danger-popup");

有点天真的建议,但据我所知,没有功能可以映射此包中的错误。你处理它的方式对我来说似乎是正确的。