2016-03-30 15 views
5
<!doctype html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>Test</title> 
</head> 
<body> 
<form action="" method="post" name="theform"> 
    <table width="693" border="1" style="table-layout:fixed;"> 
    <tr> 
     <td width="683" id="mymessage" contenteditable="true" name="mymessage">Write message here...</td> 
    </tr> 
    </table> 
    <script> 
document.getElementById('mymessage').addEventListener('input', function() { 
    document.getElementById('hiddenInput').value = this.innerHTML; 
    console.log(document.getElementById('hiddenInput').value); 
}); 

document.getElementById("mymessage").addEventListener("click", removePlace);  
function removePlace() 
{ 
    document.getElementById("mymessage").innerHTML=""; 
} 
</script> 
<div id="google_translate_element"><span class="notranslate">Select language to translate your text above:</span></div> 
<script type="text/javascript"> 
function googleTranslateElementInit() 
{ 
    new google.translate.TranslateElement({pageLanguage: 'en', includedLanguages: 'en,fr,it,ja,ko,ms,ru,ta,th,zh-CN', layout: google.translate.TranslateElement.InlineLayout.SIMPLE, multilanguagePage: true}, 'google_translate_element'); 
} 
</script><script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script> 
<input type="hidden" id='hiddenInput' name='hiddenInput'> 
    <span class="notranslate"><input type="submit" id="btnSend" name="btnSend" value="Send"></span> 
</form> 
<?php 
$servername = "localhost"; 
$username = "mytranslateim"; 
$password = "qwerty"; 
$dbname = "test"; 
$dbconnectivity = mysqli_connect($servername, $username, $password, $dbname); 
if (isset($_POST['btnSend'])) 
{ 
    $getmsg = $_POST['hiddenInput']; 
    if($getmsg == "") 
    { 
     echo "nothing"; 
    } 
    else 
    { 
    echo $getmsg; 
    $sql = "INSERT INTO testing(testmsg) VALUES ('$getmsg')";//if i translated a text, for example i translate the word "test" in chinese, it will echo in chinese but will not save in database as chinese 
    $insertit = mysqli_query($dbconnectivity, $sql); 
    } 
} 
?> 
</body> 
</html> 

PHP mysqlテーブルに翻訳されたテキストを保存します。現在、システムは翻訳されたテキストでエコーしますが、入力したテキストがデータベースに保存されることはありません。たとえば、「test」という単語を入力して「test」という日本語に翻訳すると、データベースは「test」ではなく「test」という単語を保存します。どのように私は翻訳されたテキストを保存することができますか?翻訳されたテキストをデータベースに挿入するには

+0

どの照合フィールドにtestmsgフィールドがありますか? – SnakeFoot

+0

これをチェックする必要があります:https://dev.mysql.com/doc/refman/5.5/en/charset-charsets.html – SnakeFoot

+0

こんにちは、内部の照合はutf8_binです – Ivan

答えて

0

Google翻訳APIを使用すると、特定のポスト/取得データをPHPで直接翻訳できます。それを任意のストレージに保存します。

ここで良いドキュメントがあります:

例:

<!doctype html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>Test</title> 
</head> 
<body> 
<form method="post" accept-charset="utf-8"> 
    <input type="text" name="translate" value="enter your text to translate..." /> 
    <input type="submit" name="submit" value="translate" /> 
</form> 
</body> 
</html> 
<?php 
if (isset($_POST['submit']) { 
# Includes the autoloader for libraries installed with composer 
require __DIR__ . '/vendor/autoload.php'; 

# Imports the Google Cloud client library 
use Google\Cloud\Translate\TranslateClient; 

# Your Google Cloud Platform project ID 
$projectId = 'YOUR_PROJECT_ID'; 

# Instantiates a client 
$translate = new TranslateClient([ 
    'projectId' => $projectId 
]); 

# The text to translate 
$text = $_POST['translate']; 
# The target language 
$target = 'jp'; 

# Translates some text into Russian 
$translation = $translate->translate($text, [ 
    'target' => $target 
]); 

# This is the result. You can save it to any storage. 
echo 'Text: ' . $text . ' 
Translation: ' . $translation['text']; 
} 
?> 

あなたが拡張することができますが、この例では言語選択ボックスもあります。

関連する問題