Javascript 在前端翻译消息

Javascript 在前端翻译消息,javascript,node.js,Javascript,Node.js,我必须在后端呈现的页面中翻译一些默认消息,但我必须在前端进行翻译。我负担不起花时间做国际化。考虑到这一点,这是一个好的快速解决方案吗?我真的知道这根本不是最好的主意 var language = navigator.language; const translate = { download: {}, success: {}, invalidError: {} }; translate["download"]["pt-BR"] = "Clique aqui para fazer

我必须在后端呈现的页面中翻译一些默认消息,但我必须在前端进行翻译。我负担不起花时间做国际化。考虑到这一点,这是一个好的快速解决方案吗?我真的知道这根本不是最好的主意

var language = navigator.language;

const translate = {
  download: {},
  success: {},
  invalidError: {}
};

translate["download"]["pt-BR"] = "Clique aqui para fazer o download";
translate["download"]["other"] = "Click here to download the file";
translate["success"]["pt-BR"] = "Obrigado";
translate["success"]["other"] = "Thank you!";
translate["invalidError"]["pt-BR"] = "Campo invalido";
translate["invalidError"]["other"] = "Invalid field";

function translateMessages(message) {
  return translate[message].hasOwnProperty(language)
    ? translate[message][language]
    : translate[message]["other"];
}

const message = translateMessages("invalidError");

console.log(message);
console.log(language);

谷歌翻译?你认为国际化会是一种过度的杀伤力吗?因为出于可伸缩性的原因,这将是最好的方法(我的意思是,今天只是另一种语言,但从明天起,它们可能会让您添加另一种和另一种)。谷歌翻译,正如埃里克指出的,acn应该是好的,除非那些要求该功能的人不同意显示的内容。为什么要创建这样一个对象?只需立即将所有内容放入对象中,即可轻松处理。它和其他解决方案没有什么不同——它总是归结为翻译的关键地图,一点也不过分。这里的上下文是一个需要快速修复的遗留项目,因为我们没有时间将其国际化。Dave,我正在创建这样的对象,以便使用navigator.language返回的字符串(例如“pt BR”)访问其属性。我不能使用translate={pt BR:{}}符号这样做,因为连字符与数字一样不是有效的javascript标识符etc@IanGuimarães
{'download':{'pt BR':'Clique…','other':'Click…'}}
然后是一个类似的包装函数,但它只需
translate[message][navigator.language]| translate[message]['other']