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 という単語を除外するのではなく、構文を除外してから、グループ化などによってキーを収集する必要があります。
誰でも助けることができますか?