我想用javascript构建我自己的翻译功能。 我已经有一个函数language.lookup(键),转换一个字或词:使用javascript正则表达式来翻译html
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这个词,而是过滤出语法,然后通过分组或类似的方式收集关键字。
任何人都可以帮忙吗?
是的,最好是做这个服务器端。否则你会让客户端加载两种语言,一种将被替换。 – Spoike 2012-04-25 08:26:07
您可以编辑完整的可运行示例的答案,因为我无法使其与您的建议一起工作。 – John 2012-04-25 08:27:59
人,用?修改。每次我看到“不包括”范围,而不是简单的节约调节剂,我的眼睛流血的疼痛。 – 2012-04-25 09:00:39