google网页翻译小工具的美化

2009.04.09 作者: 小V - 1 评论
文章分类: web前端技术

从建站以来一直挺喜欢google提供的这个网页翻译的小工具(http://translate.google.com/translate_tools?hl=zh-CN)。虽然他的实用性并不是很好,如基本没外国人看网站和翻译的都是“中式外语”等。呵呵。

废话不多说,看效果

googlelanguagetool

随手说一下过程,分析,它原来是用js调用iframe的。但iframe不能域修改,就放弃了改成iframe,重新下了他的iframe内容改js。

结果:去掉ifame调用,写html代码。最后的效果嘛,看我blog首页。呵呵

下面是html代码,写于body里!

<form id="lang_form">
<select id="lang_select" onChange="dotranslate(this);">
<option value="" id="select_language">Select Language</option>
</select>
</form>
中文
<script src="http://www.gmodules.com/ig/extern_js/f/CgJlbhICdXMrMAE4ACw/CFPaVcElfFg.js"></script>
<script src="http://www.gmodules.com/ig/extern_js/f/CgJlbhICdXMrMBI4ACwrMBM4ACw/k1VYXjgOIbk.js"></script>
<script src="tt.js"></script>

tt.js代码如下:

// JavaScript Document

var prefs = new _IG_Prefs(0);
function renderGadget() {
var browser_lang = browserLanguage();
var orig = prefs.getString("source_language");
var select_language = _gel("select_language");
var lang_select_obj = _gel("lang_select");
var found_browser_lang = false;
for (var target in target_languages) {
if (target_languages[target] != browser_lang) {
lang_select_obj.appendChild(createOption(orig, target_languages[target]));
} else {
found_browser_lang = true;
}
}
if (found_browser_lang) {
lang_select_obj.insertBefore(
createOption(orig, browser_lang),
select_language.nextSibling);
}
if (_args()["source"] && _args()["source"].match("translate_c")) {
var newoption = document.createElement("option");
newoption.value = "orig";
newoption.id = "original_page";
newoption.appendChild(document.createTextNode("Original Page"));
lang_select_obj.insertBefore(newoption, select_language.nextSibling);
}
//updateForBrowserLang(browser_lang);
}
var target_languages = ['ar',     // Arabic
'bg',     // Bulgarian
'ca',     // Catalan
'cs',     // Czech
'da',     // Danish
'de',     // German
'el',     // Greek
'en',     // English
'es',     // Spanish
'fi',     // Finnish
'fr',     // French
'hi',     // Hindi
'hr',     // Croatian
'id',     // Indonesian
'it',     // Italian
'iw',     // Hebrew
'ja',     // Japanese
'ko',     // Korean
'lt',     // Lithuanian
'lv',     // Latvian
'nl',     // Dutch
'no',     // Norwegian
'pl',     // Polish
'pt',     // Portuguese
'ro',     // Romanian
'ru',     // Russian
'sk',     // Slovak
'sl',     // Slovenian
'sr',     // Serbian
'sv',     // Swedish
'tl',     // Filipino
'uk',     // Ukrainian
'vi',     // Vietnamese
'zh-CN',  // Chinese (Simplified)
'zh-TW']; // Chinese (Traditional)
var display_name = new Array();
display_name['ar'] =    "العربية";
display_name['bg'] =    "български";
display_name['ca'] =    "català";
display_name['cs'] =    "česky";
display_name['da'] =    "Dansk";
display_name['de'] =    "Deutsch";
display_name['el'] =    "Ελληνικά";
display_name['en'] =    "English";
display_name['es'] =    "Español";
display_name['fi'] =    "suomi";
display_name['fr'] =    "Français";
display_name['hi'] =    "हिन्दी";
display_name['hr'] =    "hrvatski";
display_name['id'] =    "Indonesia";
display_name['it'] =    "Italiano";
display_name['iw'] =    "עברית";
display_name['ja'] =    "日本語";
display_name['ko'] =    "한국어";
display_name['lt'] =    "Lietuvių";
display_name['lv'] =    "latviešu";
display_name['nl'] =    "Nederlands";
display_name['no'] =    "norsk";
display_name['pl'] =    "Polski";
display_name['pt'] =    "Português";
display_name['ro'] =    "Română";
display_name['ru'] =    "Русский";
display_name['sk'] =    "slovenčina";
display_name['sl'] =    "slovenščina";
display_name['sr'] =    "српски";
display_name['sv'] =    "Svenska";
display_name['tl'] =    "Filipino";
display_name['uk'] =    "українська";
display_name['vi'] =    "Tiếng Việt";
display_name['zh-CN'] = "中文 (简体)";
display_name['zh-TW'] = "中文 (繁體)";
var translate_message = new Array();
translate_message['ar']    = "ترجمة";
translate_message['bg']    = "Преводач";
translate_message['ca']    = "Traductor";
translate_message['cs']    = "Překladač";
translate_message['da']    = "Oversæt";
translate_message['de']    = "Übersetzung";
translate_message['el']    = "Μετάφραση";
translate_message['en']    = "Translate";
translate_message['es']    = "Traductor";
translate_message['fi']    = "Kääntäjä";
translate_message['fr']    = "Traduction";
translate_message['hi']    = "अनुवाद करें";
translate_message['hr']    = "Prevoditelj";
translate_message['id']    = "Translate";
translate_message['it']    = "Traduttore";
translate_message['iw']    = "תרגם";
translate_message['ja']    = "翻訳";
translate_message['ko']    = "번역";
translate_message['lt']    = "Versti";
translate_message['lv']    = "Tulkotājs";
translate_message['nl']    = "Vertaal";
translate_message['no']    = "Oversetter";
translate_message['pl']    = "Tłumacz";
translate_message['pt']    = "Tradutor";
translate_message['ro']    = "Traducere";
translate_message['ru']    = "Переводчик";
translate_message['sk']    = "Prekladač";
translate_message['sl']    = "Prevajalnik";
translate_message['sr']    = "преводилац";
translate_message['sv']    = "Översätt";
translate_message['tl']    = "Pagsasalin";
translate_message['uk']    = "Перекладач";
translate_message['vi']    = "Dịch";
translate_message['zh-CN'] = "翻译";
translate_message['zh-TW'] = "翻譯";
var select_language_message = new Array();
select_language_message['ar']    = "تحديد اللغة";
select_language_message['bg']    = "Избор на език";
select_language_message['ca']    = "Selecciona l'idioma";
select_language_message['cs']    = "Zvolit jazyk";
select_language_message['da']    = "Vælg sprog";
select_language_message['de']    = "Sprache wählen";
select_language_message['el']    = "Επιλογή γλώσσας";
select_language_message['en']    = "Select Language";
select_language_message['es']    = "Seleccionar idioma";
select_language_message['fi']    = "Valitse kieli";
select_language_message['fr']    = "Choisissez langue";
select_language_message['hi']    = "भाषा चुनें";
select_language_message['hr']    = "Odaberite jezik";
select_language_message['id']    = "Pilih Bahasa";
select_language_message['it']    = "Seleziona lingua";
select_language_message['iw']    = "בחירת שפה";
select_language_message['ja']    = "言語を選択";
select_language_message['ko']    = "언어설정";
select_language_message['lt']    = "Pasirinkite kalbą";
select_language_message['lv']    = "Atlasiet valodu";
select_language_message['nl']    = "Kies Taal";
select_language_message['no']    = "Velg språk";
select_language_message['pl']    = "Wybierz język";
select_language_message['pt']    = "Seleccionar idioma";
select_language_message['ro']    = "Selectaţi limba";
select_language_message['ru']    = "Выберите язык";
select_language_message['sk']    = "Výber jazyka";
select_language_message['sl']    = "Izberi jezik";
select_language_message['sr']    = "Изабери језик";
select_language_message['sv']    = "Välj språk";
select_language_message['tl']    = "Pumili ng Wika";
select_language_message['uk']    = "Виберіть мову";
select_language_message['vi']    = "Chọn Ngôn ngữ";
select_language_message['zh-CN'] = "选择语言";
select_language_message['zh-TW'] = "選擇語言";
var original_page_message = new Array();
original_page_message['ar']    = "الصفحة الأصلي";
original_page_message['bg']    = "Оригинална страница";
original_page_message['ca']    = "Pàgina original";
original_page_message['cs']    = "Původní stránka";
original_page_message['da']    = "Oprindelige side";
original_page_message['de']    = "Originalseite";
original_page_message['el']    = "Πρωτότυπη σελίδα";
original_page_message['en']    = "Original Page";
original_page_message['es']    = "Página original";
original_page_message['fi']    = "Alkuperäinen sivu";
original_page_message['fr']    = "Page d'origine";
original_page_message['hi']    = "मूल पृष्ठ";
original_page_message['hr']    = "Izvorna stranica";
original_page_message['id']    = "Lihat Laman asli";
original_page_message['it']    = "Pagina originale";
original_page_message['iw']    = "דף מקורי";
original_page_message['ja']    = "オリジナル ページ";
original_page_message['ko']    = "원래 페이지";
original_page_message['lt']    = "Pradinis puslapis";
original_page_message['lv']    = "Oriģinālā lapa";
original_page_message['nl']    = "Originele Pagina";
original_page_message['no']    = "Opprinnelig side";
original_page_message['pl']    = "Oryginalna strona";
original_page_message['pt']    = "Página original";
original_page_message['ro']    = "Pagina originală";
original_page_message['ru']    = "Исходная страница";
original_page_message['sk']    = "Pôvodná stránka";
original_page_message['sl']    = "Izvirna stran";
original_page_message['sr']    = "Оригинална страница";
original_page_message['sv']    = "Ursprunglig sida";
original_page_message['tl']    = "Orihinal na Pahina";
original_page_message['uk']    = "Оригінальна сторінка";
original_page_message['vi']    = "Trang gốc";
original_page_message['zh-CN'] = "原来的页面";
original_page_message['zh-TW'] = "原始網頁";
function updateForBrowserLang(browser_lang) {
_gel('translate').innerHTML =translate_message[browser_lang];
_gel('select_language').innerHTML =select_language_message[browser_lang];
if (_gel('original_page')) {
_gel('original_page').innerHTML =original_page_message[browser_lang];
}
}
function browserLanguage() {
var blang = prefs.getLang();
if (translate_message[blang] != undefined) {
return blang;
}
else if (translate_message[blang.substring(0,2)] != undefined) {
return blang.substring(0,2);
} else {
}
}
function createOption(source_lang, target_lang) {
var newoption = document.createElement("option");
newoption.id = "op" + source_lang + target_lang;
newoption.value = getLanguageParameter(source_lang, target_lang);
newoption.appendChild(document.createTextNode(display_name[target_lang]));
return newoption;
}
function getURL() {
var url = location.href;
if (url.match('translate_c')) {
if (window.RegExp) {
var regex = new RegExp("[\?&]u=([^&#]*)");
var results = regex.exec(url);
if (results != null) {
url = _unesc(results[1]);
}
}
}
//}
return url;
}
function getLanguageParameter(source_lang, target_lang) {
return "&langpair=" + source_lang + "|" + target_lang;
}
function dotranslate(select_obj) {
var target_url = getURL();
if (target_url.match("ig/creator")) {
return;
}
var path_suffix = "";
if (select_obj.value == "orig") {
window.top.location=target_url;
}
else if (select_obj.value != '') {
_IG_Analytics("UA-1043770-1", "/translate_my_page_gadget/translate");
window.top.location='http://translate.google.com/translate' +
'?client=tmpg&hl=' + browserLanguage() + '&u=' +
_esc(target_url) + select_obj.value;
}
}
_IG_Analytics("UA-1043770-1", "/translate_my_page_gadget");
renderGadget();

_IG_TriggerEvent("domload");

相关文章

  1. Anonymous says:

    其实直接用地址跳转做下拉菜单就好了