2016-10-21 8 views
1

さまざまな言語の翻訳でHTMLラベルのテキストを設定する必要があります。私はラベルのIDを知っているときにそれを行う方法を知っていますが、私はIDを必要としない一般的なJavascript関数を作りたいと思います。このために、私はこのようないくつかのことを必要とする:javascriptでラベルIDを知らなくても、javascript関数でラベルテキストを設定するには

HTML:

<label> <script> translating_function("hello"); </script> </label> 

JAVASCRIPT:

function translating_function(string) { 
    //finding the translation (for example translated_text) 
    returning translated_text 
} 

translating_function関数の戻り値は、ラベルのテキストとして設定する必要があります。 どのようにすればよいのでしょうか。 ありがとうございます。

+1

あなたはターゲットに何か、位置、インデックス、親、子などを持っている必要があり、またはこれは、ドキュメント内のラベルだけでしょうか? – adeneo

+0

ラベルオブジェクトの親を知っていますか?親子関係でそれを見つけることができます。 –

+0

@adeneoこの関数はjavascript警告メッセージの翻訳にも使用されています。ターゲットや名前は使用できません。 – keloniton

答えて

0

var voc = [ 
 
      { 
 
       "AR":"أهلا", 
 
       "ES":"¡Hola", 
 
       "EN":"hello" 
 
      }, 
 
      { 
 
       "AR":"مرحبا", 
 
       "ES":"bienvenida", 
 
       "EN":"welcome" 
 
      }, 
 
      { 
 
       "AR":"و", 
 
       "ES":"y", 
 
       "EN":"and" 
 
      }, 
 
      { 
 
       "AR":"في اللغة العربية", 
 
       "ES":"a España", 
 
       "EN":"to English" 
 
      } 
 
      ]; 
 

 

 
function translate(ele,lng){ 
 
for(var i=0;i<voc.length;i++){ 
 
    for(var k in voc[i]){ 
 
    if(voc[i][k] == ele.innerText.trim()){ 
 
    ele.innerText = voc[i][lng]; 
 
    break; 
 
    } 
 
    } 
 
} 
 
} 
 
function translateTo(lng){ 
 
var trc = document.getElementsByClassName("translatable"); 
 
for(var i=0;i<trc.length;i++){ 
 
translate(trc[i],lng); 
 
} 
 
} 
 
//add this function to any event button.click,select.change or on load 
 
//translateTo("AR");
<p> 
 
<span class='translatable'>hello</span> 
 
<span class='translatable'>and</span> 
 
<span class='translatable'>welcome</span> 
 
<span class='translatable'>to English</span> :) 
 
</p> 
 
<select onchange='translateTo(this.value)'> 
 
<option value='EN'>English</option> 
 
<option value='AR'>Arabic</option> 
 
<option value='ES'>Espain</option> 
 
</select>

0

jsfriddle

<script> 
function translating_function(str) { 
    return 'translating: ' + str; 
} 
</script> 
<label> <script> document.write(translating_function("hello")); </script> </label> 
関連する問題