为了本地化目的,我尝试使用对象和数组。现在的问题是,它需要大量的编码才能从对象1到1加载正确的值。
因此,我试图通过从其他变量中创建变量名来简化流程。因此,我检查lang-attribute,并尝试将该值作为另一个变量名的一部分。
然而,这根本行不通。
例如,我可以有一个对象var text = { en: 'text', de: 'text' }
我可以通过以下方式加载正确的文本:
var language = document.documentElement.lang.toLowerCase();
switch (language) {
case 'en':
element.innerHTML = text.en;
break;
case 'de'
element.innerHTML = text.de;
break;
}这对代码来说非常烦人,所以我尝试使用以下方法:
element.innerHTML = text.language;
element.innerHTML = `text.${language}`;
...当然,这一切都没有用。
因此,我确实需要帮助,通过合并不同的变量名来创建变量名,例如:
var a = 'text.';
var b = 'en';
var c = a.b; => text.en;最后,必须将其识别为变量名,而不是字符串!
var text = {
en: 'Hello World',
de: 'Hallo Welt',
es: 'Hola Mundo',
it: 'Ciao Mundo',
fr: 'Bonjour Le Monde'
}
/* getting the language of the document */
var language = document.documentElement.lang.toLowerCase();
window.addEventListener('DOMContentLoaded', function() {
var ele = document.body;
/*does obviosly not work*/
var content = `text.${language}`;
ele.innerHTML = content;
/*does work*/
console.log(`the set language is: ${language}`);
});<!DOCTYPE html>
<html lang="de" dir="ltr">
<head></head>
<body></body>
</html>
发布于 2022-06-27 18:49:06
const content = text[language]https://stackoverflow.com/questions/72776933
复制相似问题