我想用 javascript 构建自己的翻译功能。我已经有一个函数 language.lookup(key) 可以翻译单词或表达式:
var frenchHello = language.lookup('hello') //'bonjour'
现在我想写一个函数,它接受一个 html 字符串并用我的查找函数翻译它。在 html 字符串中,我将有一个特殊的语法,例如 #[translationkey],它将指出这个词应该被翻译。
这是我想要的结果:
var html = '<div><span>#[hello]</span><span>#[sir]</span>'
language.translate(html) //'<div><span>bonjour</span><span>monsieur</span>
我将如何编写 language.translate?我的想法是用正则表达式过滤掉我的特殊语法,然后在每个键上运行 language.lookup。也许用字符串替换之类的。
当谈到正则表达式时,我很烂,我只提出了一个非常不完整的例子,但我还是把它包括在内,所以也许有人知道我想要做什么。如果有更好但完全不同的解决方案,那就更受欢迎了。
var value = "#[hello], nice to see you.";
lookup = function(word){
return "bonjour";
};
var res = new RegExp( "\\b(hello)\\b", "gi" ).exec(value)
for (var c1 = 0; c1 < res.length; c1++){
value = value.replace(res[c1], lookup(res[c1]))
}
alert(value) //#[bonjour], nice to see you.
正则表达式当然不应该过滤掉单词 hello 而是过滤掉语法,然后通过分组或类似的方式收集密钥。
任何人都可以帮忙吗?