2014-10-07 48 views
0

我正在研究需要翻譯成40多種語言的項目。將非拉丁文本轉換爲ASCII條目 - 無需指定語言環境

我有大多數事情都排序,但這一個真的buggging我。請看看這個,看看有什麼我需要:

<script type="text/javascript"> 
/* Purpose: Converts all non-latin based characters to their ASCII entity value 
* Usage: [String].encode() 
* Arguments: none 
* Returns: String 
*/ 
String.prototype.encode = function() { 
     return this.replace(/([^\x01-\x7E])/g, function(s) { return   "&#"+s.charCodeAt(0)+";"; }); 
}; 

/** 
* Converts all ASCII entity value characters into their unicode equivelant 
* @return (String) 
*/ 
String.prototype.decode = function() { 
     Number.prototype.toHex = function(pad) { 
      var s = this.toString(16).toUpperCase(); 
      var v = ""; 
      if(typeof pad == "number") { 
        while(v.length + s.length < pad) { 
          v += "0"; 
        } 
      } 
      return v + s; 
    }; 
    return this.replace(/(&#([^;]*);)/g, function(s) { return unescape("%u"+  Number(RegExp.$2).toHex(4)); }); 
}; 

function translate() { 
document.getElementById("txtOutput").value =   document.getElementById("txtInput").value.encode(); 
} 
</script> 

<div class="admin_block"> 

<h1>Translator</h1> 
<p>Sometimes you need to add non latin Characters to the templates, php code and more. This tool will help you convert your text</p> 
<h2>Type or paste non latin text in here</h2> 
<form name="input" onmousemove="translate();"> 
    <textarea style="width: 900px" id="txtInput" onkeyup="translate();" onchange="translate();" onmouseup="translate();" onmousemove="translate();"></textarea> 
</form> 

<h2>Copy and paste this safe code below</h2> 
<form onmousemove="translate();"> 
    <textarea style="width: 900px" id="txtOutput"></textarea><br /> 
    <button id="btnSelect" onclick="translate();document.getElementById('txtOutput').select(); return false;">Translate and select</button> 
</form> 

</div> 

採取一些俄文本,一些泰國等,並彈出到我真棒JS轉換器 - 它輸出的ASCII值 - 這些值我現在可以在PHP中使用數組,HTML模板等,一切都很好。

我正在爲我的PHP翻譯類寫一個新的方法,將PHP語言數組轉換爲新的語言 - 繼承人的問題。我如何讓PHP來做這個JS做得很好?我曾嘗試ヶ輛,的iconv等等。我希望看到的翻譯文本,如本:

&#1057;&#1086;&#1083;&#1086;&#1084;&#1086;&#1085;&#1086;&#1074;&#1099; &#1054;&#1089;&#1090;&#1088;&#1086;&#1074;&#1072; 

С о л о м о н о в ы О с т р о в а

+2

俄語,泰語等不能有「ASCII值」... – Joey 2014-10-07 11:22:31

+1

爲什麼不使用UTF-8?所有網站都應該使用UTF-8格式。 – OIS 2014-10-07 11:24:10

+0

我正在使用UTF8,但對於我的PHP文件,我無法使用它。看看我的JS轉換器,看看我需要什麼 – Nick 2014-10-07 11:27:28

回答

0

以及這似乎給我後面的結果:

$s = htmlentities(mb_convert_encoding($s, 'HTML-ENTITIES', 'UTF-8')); 

我現在可以看到文本結果,我需要從瀏覽器中複製並粘貼到我的新數組中。

相關問題