google翻訳apiで、#TEXTを翻訳する。
http://oshiete.goo.ne.jp/qa/6283012.html の#1を参考にして
#TEXTノードを全て翻訳しようとしてみました。
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
google.load("language", "1"); // 翻訳ライブラリ ver 1を読み込む
function NodeTextScan2(){
var tags=document.getElementsByTagName("body")[0].getElementsByTagName("*");
for(var i=0;i<tags.length;i++){
var n=tags[i].firstChild;
while(n){
if(n.nodeName=="#text" && n.nodeValue.length>3){
var CrntNodeTEXT=n;
var text=n.nodeValue;
google.setOnLoadCallback(function(){
// 日本語(ja)から英語(en)に翻訳
google.language.translate(text, "ja", "en", function(result){
var Kekka=result.translation;
alert('結果='+Kekka); //(3)
// 翻訳結果と入れ替える
CrntNodeTEXT.nodeValue=Kekka; //(1)
});
});
//CrntNodeTEXT.nodeValue="aaa"; //(2)
}
n=n.nextSibling;
}
}
}
http://journal.mycom.co.jp/articles/2008/04/16/g …
より、
「完全にライブラリファイルが読み込まれたら実行するようにしなければなりません。ライブラリが完全に読み込まれたら処理を行うにはgoogle.setOnLoadCallback()を使います。」
と、いうことで、
setOnLoadCallback
を使用しました。
CrntNodeTEXT,text,Kekkaという変数を新たに定義したのは、ただ、nだけでは、同一名変数がどこかでバッティングしていないかと思ってのことです。
var宣言しているのでその心配もないとは思うのですが、念のため。
(1)をレムにして、(2)を実行すると、全ての#TEXTが"aaa"に変換されます。
しかし、(2)をレムにして(1)を実行しても何も変化ありません。
(3)は、変換結果を調べようと思い挿入してみましたが、Kekkaは表示されません。
いろいろとこのほかも試してみましたが、一つの<div>を翻訳することはできるのですが、body内の#TEXTを一括して翻訳することができません。
どうぞよろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
#1 です。
> javascript-xpath-latest-cmp.js について、調べたのですが、リンク切れが多くて良くわかりませんでした。
下記ライブラリを利用しています。
JavaScript-XPath – CodeRepos::Share – Trac
http://coderepos.org/share/wiki/JavaScript-XPath
JavaScript-XPath をリリースしました!さあ、あなたも XPath を使おう!(解説付き) - IT戦記
http://d.hatena.ne.jp/amachang/20071112/1194856493
> ExtXPathEvaluator.jsについては、上記に置いてあったものと、...ExtXPathEvaluator.html より、DLしたものが異なっているようでした。
GitHub に更新しても表示されるコードが古いものになる不具合があったようです。([download] すれば最新のExtXPathEvaluator.jsが手に入ります。)
GitHub に連絡して「現在は修正されている」との返答を得ましたが、新しく gist を作り直すしか解がないそうなので、「gist: 658057」に移動しました。
gist: 658057 - (ExtXPathEvaluator.js) - GitHub
http://gist.github.com/658057
think49さん、お早うございます。
ご丁寧に詳しく教えていただきありがとうございます。
確認しました。全て大丈夫でした。
どうもありがとうございました。
No.1
- 回答日時:
#1 ではなく #4 ベースですが、GitHub にサンプルを置きました。
gist: 655307 - はじめての Google AJAX Language API - GitHub
http://gist.github.com/655307
# Google のデベロッパーガイドを参考に作りました。
はじめての Google AJAX Language API - Google Code
http://code.google.com/intl/ja/apis/ajaxlanguage …
think49さん、重ねてありがとうございます。
できました。
感激です。
XPathについて学習しないとよく理解できません。
これから挑戦します。
また、
javascript-xpath-latest-cmp.js
について、調べたのですが、リンク切れが多くて良くわかりませんでした。
スクリプト自体は、
http://vird2002.s8.xrea.com/javascript/google_aj …
より頂いてきました。
また、
ExtXPathEvaluator.jsについては、
上記に置いてあったものと、
http://vird2002.s8.xrea.com/javascript/ExtXPathE …
より、DLしたものが異なっているようでした。
これから、更に学習します。
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript JAVASCRIPT 2 2022/04/15 15:10
- JavaScript GoogleChart 階層ごとのブロックの長さを個別に設定したい 1 2022/07/06 14:27
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- オープンソース Coinmarketcap api 1 2022/05/30 15:47
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
var exports = exports || {}; ...
-
ASP.NETのコントロールの値をJa...
-
GASでundefinedエラーが出ます
-
google apps scriptの終了のさせ方
-
C#OpenCv V4にのエラーに関する...
-
setTimeoutによる繰り返しが途...
-
JavaScriptで年月日表示のカウ...
-
html javascript リンク先アド...
-
ジェネレーターの作り方
-
GASでGoogleフォームの自動返信...
-
vb.netでの記述方法について 以...
-
JavaScriptで決まった「時刻」...
-
【JavaScript】数当てゲームを...
-
1.gifをホームページ上でランダ...
-
毎日日付の変わるタイミングを...
-
JavaScript でのリアルタイム時...
-
javascriptで困っています。教...
-
C#で、ContextMenuStripに動的...
-
指定日数経過でHTML上のデータ...
-
[ javascript ] 連想配列の初期...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
google apps scriptの終了のさせ方
-
C#OpenCv V4にのエラーに関する...
-
GASでundefinedエラーが出ます
-
ローカルにあるファイルを検索...
-
JavaScriptで文字列の特定文字...
-
ジェネレーターの作り方
-
javascriptでiframeのURL変更は?
-
なぜmatchメソッドがエラーにな...
-
ASP.NET MVCでObjectをjsに渡す
-
gas スプレッドシートがアクテ...
-
Google Apps Script で添付ファ...
-
html javascript リンク先アド...
-
ASP.NETのコントロールの値をJa...
-
javascriptでテーブルに追加し...
-
C言語の質問です HTMLでこのよ...
-
JavaScriptで決まった「時刻」...
-
翌月を取得するGASが分かりません
-
特定のclassを表示、非表示にする
-
どうすれば良いでしょうか?
-
HTMLにWSHを組み込む
おすすめ情報