/* Translate-It Translation Tool * By Jon Raasch * http://jonraasch.com * * Copyright (c)2008 Jon Raasch. All rights reserved. * Released under FreeBSD License, see readme.txt * Do not remove the above copyright notice or text or * the appended link to the author. * * For more information please visit: * http://jonraasch.com/blog/translate-it-easy-translation-for-multiple-languages */ TranslateIt = { /**** config ****/ // Edit usedLangs to modify languages. Remove or add the first comment marks (//) to iclude or disclude languages. You can also modify the order. // Make sure that all array items end with a comma, except for the last one. usedLangs : [ 'it', // Italian 'en', // English 'fr', // French 'de', // German 'es', // Spanish //'pt', // Portugese // 'zh-CN', // Chinese //'ru', // Russian //'ar', // Arabic // 'bg', // Bulgarian // 'ca', // Catalan // 'hr', // Croatian // 'cs', // Czech // 'da', // Danish // 'nl', // Dutch // 'tl', // Filipino // 'fi', // Finnish //'el', // Greek // 'iw', // Hebrew // 'hi', // Hindi // 'id', // Indonesian //'ja', // Japanese //'ko', // Korean // 'lv', // Latvian // 'lt', // Lithuanian // 'no', // Norwegian // 'pl', // Polish // 'ro', // Romanian // 'sr', // Serbian // 'sk', // Slovak // 'sl', // Slovenian // 'sv', // Swedish // 'uk', // Ukranian // 'vi', // Vietnamese ], // bg image location - modify this if you want to host the bg image bgImage : 'http://www.romagnanotte.eu/Portals/0/lib/tradflag/flags.jpg', // id of flags wrapper flagsWrap : 'translateFlags', // language you will be translating FROM (default is english) fromLang : 'it', // if you want to style the flags yourself, set this to 0 useFlagCSS : 1, /**** end config ****/ info : { 'ar' : { 'bgPos' : '0 0', 'fullName' : 'Arabic' }, 'bg' : { 'bgPos' : '-16px 0', 'fullName' : 'Bulgarian' }, 'ca' : { 'bgPos' : '-32px 0', 'fullName' : 'Catalan' }, 'zh-CN' : { 'bgPos' : '-48px 0', 'fullName' : 'Chinese (Simplified)' }, 'hr' : { 'bgPos' : '-80px 0', 'fullName' : 'Croatian' }, 'cs' : { 'bgPos' : '-96px 0', 'fullName' : 'Czech' }, 'da' : { 'bgPos' : '-112px 0', 'fullName' : 'Danish' }, 'nl' : { 'bgPos' : '-128px 0', 'fullName' : 'Dutch' }, 'en' : { 'bgPos' : '-144px 0', 'fullName' : 'English' }, 'tl' : { 'bgPos' : '-176px 0', 'fullName' : 'Filipino' }, 'fi' : { 'bgPos' : '-192px 0', 'fullName' : 'Finnish' }, 'fr' : { 'bgPos' : '-208px 0', 'fullName' : 'French' }, 'de' : { 'bgPos' : '-224px 0', 'fullName' : 'German' }, 'el' : { 'bgPos' : '-240px 0', 'fullName' : 'Greek' }, 'iw' : { 'bgPos' : '-256px 0', 'fullName' : 'Hebrew' }, 'hi' : { 'bgPos' : '-272px 0', 'fullName' : 'Hindi' }, 'id' : { 'bgPos' : '-288px 0', 'fullName' : 'Indonesian' }, 'it' : { 'bgPos' : '0 -11px', 'fullName' : 'Italian' }, 'ja' : { 'bgPos' : '-16px -11px', 'fullName' : 'Japanese' }, 'ko' : { 'bgPos' : '-32px -11px', 'fullName' : 'Korean' }, 'lv' : { 'bgPos' : '-48px -11px', 'fullName' : 'Latvian' }, 'lt' : { 'bgPos' : '-64px -11px', 'fullName' : 'Lithuanian' }, 'no' : { 'bgPos' : '-80px -11px', 'fullName' : 'Norwegian' }, 'pl' : { 'bgPos' : '-96px -11px', 'fullName' : 'Polish' }, 'pt' : { 'bgPos' : '-112px -11px', 'fullName' : 'Portugese' }, 'ro' : { 'bgPos' : '-128px -11px', 'fullName' : 'Romanian' }, 'ru' : { 'bgPos' : '-144px -11px', 'fullName' : 'Russian' }, 'sr' : { 'bgPos' : '-160px -11px', 'fullName' : 'Serbian' }, 'sk' : { 'bgPos' : '-176px -11px', 'fullName' : 'Slovak' }, 'sl' : { 'bgPos' : '-192px -11px', 'fullName' : 'Slovenian' }, 'es' : { 'bgPos' : '-208px -11px', 'fullName' : 'Spanish' }, 'sv' : { 'bgPos' : '-240px -11px', 'fullName' : 'Swedish' }, 'uk' : { 'bgPos' : '-256px -11px', 'fullName' : 'Ukranian' }, 'vi' : { 'bgPos' : '-272px -11px', 'fullName' : 'Vietnamese' } }, theFlags : [], addEvent : function(obj, evType, fn) { if (obj.addEventListener){ obj.addEventListener(evType, fn, false); return true; } else if (obj.attachEvent){ //MSIE method obj['e'+evType+fn] = fn; obj[evType+fn] = function() { obj['e'+evType+fn](window.event); } obj.attachEvent("on"+evType, obj[evType+fn]); return true; } else { return false; } }, translate : function ( toLang ) { var t = (( window.getSelection && window.getSelection() ) || ( document.getSelection && document.getSelection() ) || ( document.selection && document.selection.createRange && document.selection.createRange().text )); var e = ( document.charset || document.characterSet ); window.location = 'http://translate.google.com/translate' + ( t == '' ? '?u=' + escape(window.location.href) : '_t?text=' + t ) + '&hl=en&langpair=' + TranslateIt.fromLang + '|' + toLang + '&tbb=1&ie=' + e; }, whichFlag : function( theFlag ) { for ( var i = 0; i < TranslateIt.theFlags.length; i++ ) { if ( theFlag == TranslateIt.theFlags[i] ) return i; } }, buildFlags : function() { TranslateIt.flagsWrapObj = document.getElementById( TranslateIt.flagsWrap ); for ( var i = 0; i < TranslateIt.usedLangs.length; i++ ) { thisLang = TranslateIt.usedLangs[i]; var flag = TranslateIt.buildFlagNode( thisLang ); TranslateIt.addEvent( flag, 'click', function(ev) { if ( typeof( ev.preventDefault ) != 'undefined' ) ev.preventDefault(); var whichFlag = TranslateIt.whichFlag( ev.target || this ); var newLang = TranslateIt.usedLangs[ whichFlag ]; TranslateIt.translate( newLang ); }); TranslateIt.flagsWrapObj.appendChild( flag ); TranslateIt.theFlags.push( flag ); } TranslateIt.appendAuthorInfo(); TranslateIt.appendClear(); }, buildFlagNode : function( thisLang ) { flag = document.createElement('a'); flag.href = '#'; flag.innerHTML = thisLang; flag.className = 'translate-' + thisLang; flag.title = 'Translate into ' + TranslateIt.info[ thisLang ].fullName; if ( TranslateIt.useFlagCSS ) { flag.style.backgroundImage = 'url(' + TranslateIt.bgImage + ')'; flag.style.backgroundPosition = TranslateIt.info[ thisLang ].bgPos; flag.style.display = 'block'; flag.style.height = '11px'; flag.style.width = '16px'; flag.style.textIndent = '-1000px'; flag.style.outline = 'none'; flag.style.marginRight = '3px'; flag.style.marginBottom = '3px'; flag.style.overflow = 'hidden'; flag.style.cssFloat = 'left'; flag.style.styleFloat = 'left';//for ie } return flag; }, // Please keep the link to the author, getting traffic on my blog is the reason I develop these free tools. The link is built with Javascript so it will not effect SEO. appendAuthorInfo : function() { linkLove = document.createElement('a'); linkLove.href = 'http://jonraasch.com/blog/translate-it-easy-translation-for-multiple-languages'; linkLove.innerHTML = '(?)'; linkLove.title = 'What is Translate-It?' linkLove.style.fontSize = '12px'; linkLove.style.lineHeight = '12px'; linkLove.style.textDecoration = 'none'; linkLove.style.marginLeft = '5px'; TranslateIt.flagsWrapObj.appendChild( linkLove ); }, appendClear : function() { theClear = document.createElement('br'); theClear.style.clear = 'both'; theClear.style.margin = '0'; theClear.style.padding = '0'; TranslateIt.flagsWrapObj.appendChild( theClear ); }, init : function( flagsWrap ) { var theLocation = window.location.href; if ( !theLocation.match(/\/translate_c\?hl\=/) ) { if ( typeof(flagsWrap) == 'string') TranslateIt.flagsWrap = flagsWrap; TranslateIt.addEvent( window, 'load', TranslateIt.buildFlags); } } }