This commit is contained in:
joker-x 2012-11-18 14:43:41 -08:00
commit 9b3ea5de7f
5 changed files with 477 additions and 43 deletions

View file

@ -1,6 +1,8 @@
[*]
; /home/joker/webs/tech/etherpad-lite-dev/src/templates/index.html =
index.newPad = New Pad
index.createOpenPad = or create/open a Pad with the name:
; /home/joker/webs/tech/etherpad-lite-dev/src/templates/pad.html =
pad.toolbar.bold.title = Bold (Ctrl-B)
pad.toolbar.italic.title = Italic (Ctrl-I)
pad.toolbar.underline.title = Underline (Ctrl-U)
@ -29,24 +31,28 @@ pad.settings.linenocheck = Line numbers
pad.settings.fontType = Font type:
pad.settings.fontType.normal = Normal
pad.settings.fontType.monospaced = Monospace
pad.settings.globalView = Global View
pad.settings.language = Language:
pad.settings.globalView = Global View
pad.importExport.import_export = Import/Export
pad.importExport.import = Upload any text file or document
pad.importExport.successful = Successful!
pad.share.readonly = Read only
pad.share = Share this pad
pad.share.link = Link
pad.share.emebdcode = Embed URL
pad.chat = Chat
pad.chat.title = Open the chat for this pad.
; /home/joker/webs/tech/etherpad-lite-dev/src/templates/timeslider.html =
timeslider.pageTitle = {{appTitle}} Timeslider
pad.importExport.export = Export current pad as
pad.importExport.exporthtml = HTML
pad.importExport.exportplain = Plain text
pad.importExport.exportword = Microsoft Word
pad.importExport.exportpdf = PDf
pad.importExport.exportopen = ODF (Open Document Format)
pad.importExport.exportdokuwiki = DokuWiki
timeslider.toolbar.returnbutton = Return to pad
timeslider.toolbar.authors = Authors:
timeslider.toolbar.authorsList = No Authors
pad.modals.connected = Connected.
pad.modals.reconnecting = Reconnecting to your pad..
pad.modals.forcereconnect = Force reconnect
pad.modals.uderdup = Open in another window
pad.modals.userdup.explanation = This pad seems to be opened in more than one browser window on this computer.
pad.modals.userdup.advice = Reconnect to use this windows instead.
pad.modals.connected.advice =
pad.modals.unauth = Not authorized
pad.modals.unauth.explanation = Your permissions have changes while viewing this page. Try to reconnect.
pad.modals.looping = Disconnected.
@ -63,15 +69,22 @@ pad.modals.deleted.explanation = This pad has been removed.
pad.modals.disconnected = You have been disconnected.
pad.modals.disconnected.explanation = The connection to the server was lost
pad.modals.disconnected.cause = The server may be unavailable. Please notify us if this continues to happen.
pad.share = Share this pad
pad.share.readonly = Read only
pad.share.link = Link
pad.share.emebdcode = Embed URL
pad.chat = Chat
pad.chat.title = Open the chat for this pad.
pad.modals.forcereconnect = Force reconnect
timeslider.exportCurrent = Export current version as:
pad.importExport.exporthtml = HTML
pad.importExport.exportplain = Plain text
pad.importExport.exportword = Microsoft Word
pad.importExport.exportpdf = PDf
pad.importExport.exportopen = ODF (Open Document Format)
pad.importExport.exportdokuwiki = DokuWiki
; /home/joker/webs/tech/etherpad-lite-dev/src/templates/translate.html =
translate.assistant = Translator Assistant
translate.from = Translate from:
translate.choose = Choose...
translate.send.title = Send
translate.to = to:
; /home/joker/webs/tech/etherpad-lite-dev/src/templates/admin/index.html data-l10-id NOT FOUND =
; /home/joker/webs/tech/etherpad-lite-dev/src/templates/admin/plugins-info.html data-l10-id NOT FOUND =
; /home/joker/webs/tech/etherpad-lite-dev/src/templates/admin/plugins.html data-l10-id NOT FOUND =
; /home/joker/webs/tech/etherpad-lite-dev/src/templates/admin/settings.html data-l10-id NOT FOUND =
timeslider.pageTitle = {{appTitle}} Timeslider
timeslider.toolbar.returnbutton = Return to pad
timeslider.toolbar.authors = Authors:
timeslider.toolbar.authorsList = No Authors
timeslider.exportCurrent = Export current version as:

View file

@ -1,6 +1,8 @@
[es]
; /home/joker/webs/tech/etherpad-lite-dev/src/templates/index.html =
index.newPad = Nuevo Pad
index.createOpenPad = o puedes crear/abrir un Pad con el nombre:
; /home/joker/webs/tech/etherpad-lite-dev/src/templates/pad.html =
pad.toolbar.bold.title = Negrita (Ctrl-B)
pad.toolbar.italic.title = Cursiva (Ctrl-I)
pad.toolbar.underline.title = Subrayado (Ctrl-U)
@ -29,24 +31,28 @@ pad.settings.linenocheck = Números de línea
pad.settings.fontType = Tipografía:
pad.settings.fontType.normal = Normal
pad.settings.fontType.monospaced = Monoespacio
pad.settings.globalView = Vista global
pad.settings.language = Idioma:
pad.settings.globalView = Vista global
pad.importExport.import_export = Importar/Exportar
pad.importExport.import = Subir cualquier texto o documento
pad.importExport.successful = ¡Operación exitosa!
pad.share.readonly = Sólo lectura
pad.share = Compatir el pad
pad.share.link = Enlace
pad.share.emebdcode = Incrustar URL
pad.chat = Chat
pad.chat.title = Abrir el chat para este pad.
; /home/joker/webs/tech/etherpad-lite-dev/src/templates/timeslider.html =
timeslider.pageTitle = {{appTitle}} Línea de tiempo
pad.importExport.export = Exporta el pad actual como
pad.importExport.exporthtml = HTML
pad.importExport.exportplain = Texto plano
pad.importExport.exportword = Microsoft Word
pad.importExport.exportpdf = PDF
pad.importExport.exportopen = ODF (Open Document Format)
pad.importExport.exportdokuwiki = DokuWiki
timeslider.toolbar.returnbutton = Volver al pad
timeslider.toolbar.authors = Autores:
timeslider.toolbar.authorsList = Sin autores
pad.modals.connected = Conectado.
pad.modals.reconnecting = Reconectando a tu pad..
pad.modals.forcereconnect = Reconexión forzosa
pad.modals.uderdup = Abrir en otra ventana
pad.modals.userdup.explanation = Este pad parece estar abierto en más de una ventana de tu navegador.
pad.modals.userdup.advice = Reconectar para usar esta ventana.
pad.modals.connected.advice =
pad.modals.unauth = No autorizado.
pad.modals.unauth.explanation = Los permisos han cambiado mientras estabas viendo esta página. Intenta reconectar de nuevo.
pad.modals.looping = Desconectado.
@ -63,15 +69,22 @@ pad.modals.deleted.explanation = Este pad ha sido borrado.
pad.modals.disconnected = Has sido desconectado.
pad.modals.disconnected.explanation = Se perdió la conexión con el servidor
pad.modals.disconnected.cause = El servidor podría no estar disponible. Contacte con nosotros si esto continúa sucediendo.
pad.share = Compatir el pad
pad.share.readonly = Sólo lectura
pad.share.link = Enlace
pad.share.emebdcode = Incrustar URL
pad.chat = Chat
pad.chat.title = Abrir el chat para este pad.
timeslider.pageTitle = {{appTitle}} Línea de tiempo
timeslider.toolbar.returnbutton = Volver al pad
timeslider.toolbar.authors = Autores:
timeslider.toolbar.authorsList = Sin autores
pad.modals.forcereconnect = Reconexión forzosa
timeslider.exportCurrent = Exportar la versión actual como:
pad.importExport.exporthtml = HTML
pad.importExport.exportplain = Texto plano
pad.importExport.exportword = Microsoft Word
pad.importExport.exportpdf = PDF
pad.importExport.exportopen = ODF (Open Document Format)
pad.importExport.exportdokuwiki = DokuWiki
; /home/joker/webs/tech/etherpad-lite-dev/src/templates/translate.html =
translate.assistant = Asistente para traductores
translate.from = Traduce de:
translate.choose = Elige...
translate.send.title = Enviar
translate.to = a:
; /home/joker/webs/tech/etherpad-lite-dev/src/templates/admin/index.html data-l10-id NOT FOUND =
; /home/joker/webs/tech/etherpad-lite-dev/src/templates/admin/plugins-info.html data-l10-id NOT FOUND =
; /home/joker/webs/tech/etherpad-lite-dev/src/templates/admin/plugins.html data-l10-id NOT FOUND =
; /home/joker/webs/tech/etherpad-lite-dev/src/templates/admin/settings.html data-l10-id NOT FOUND =

View file

@ -1,9 +1,12 @@
var Globalize = require('globalize')
, fs = require('fs')
, path = require('path')
, eejs = require('ep_etherpad-lite/node/eejs')
, express = require('express')
, translate = require ('../utils/translate')
var localesPath = __dirname+"/../../locales";
var localesPath = __dirname+"/../../locales"
, templatesPath = __dirname+"/../../templates";
// Serve English strings directly with /locales.ini
var localeIndex = fs.readFileSync(localesPath+'/en.ini')+'\r\n';
@ -30,6 +33,18 @@ exports.expressCreateServer = function(n, args) {
args.app.get('/locales.ini', function(req, res) {
res.send(localeIndex);
})
});
args.app.get('/translate', function(req, res) {
res.send( eejs.require("ep_etherpad-lite/templates/translate.html", {}) );
});
args.app.get('/translate/:lang_code', function(req, res) {
var lang_code = req.params.lang_code.substr(0,2),
ids = translate.extractIDs(templatesPath);
res.charset = 'utf-8';
res.contentType('text');
res.send(translate.getTranslationINI(localesPath, lang_code, ids));
});
}
}

View file

@ -0,0 +1,94 @@
var fs = require('fs');
var path = require('path');
Array.prototype.unique=function(a){
return function(){return this.filter(a)}}(function(a,b,c){return c.indexOf(a,b+1)<0
});
var exploreDir = function (padre, callback) {
var stat = fs.statSync(padre);
if (stat.isDirectory()) {
var nombres = fs.readdirSync(padre),
subdirectorios = [],
ficheros = [];
nombres.forEach (function(fich) {
var ruta_fich = path.join(padre,fich);
if (fs.statSync(ruta_fich).isDirectory()) {
subdirectorios.push(ruta_fich);
} else {
ficheros.push(ruta_fich);
}
});
callback(padre, subdirectorios, ficheros);
subdirectorios.forEach(function (d) {
exploreDir(d, callback);
});
} else {
throw new Error("path: " + padre + " is not a directory");
}
};
var generateIni = function (ids, ini, section) {
var result = "["+section+"]\n",
sufijos = ["", ".title", ".innerHTML", ".alt", ".textContent"];
ids.forEach (function (id) {
var partial = "";
sufijos.forEach (function (sufijo) {
if (ini.hasOwnProperty(id+sufijo)) partial += id+sufijo+" = "+ini[id+sufijo]+"\n";
});
if (partial == "") partial = id+" = "+"\n";
result += partial;
});
return result;
}
var parseIni = function (input) {
var result = {},
lineas = input.split('\n');
lineas.forEach (function(linea) {
linea = linea.trim();
if ((linea.length > 0) && (linea[0] != ';') && (linea[0] != '[')) {
linea = linea.split('=', 2);
result[linea[0].trim()]=linea[1].trim();
}
});
return result;
}
var extractAttr = function (attr, str) {
var reg_expr = eval("/"+attr+"\s*=\s*['\"]([^'\"]*)['\"]/g"),
result = [],
voypor = null;
while (voypor = reg_expr.exec(str)) {
result.push(voypor[1]);
}
return result;
}
var extractIDs = function (dir) {
var result = [];
exploreDir (dir, function (p, s, fichs) {
fichs.sort().forEach(function(f) {
var partial = extractAttr ('data-l10n-id', fs.readFileSync(f, 'utf8'));
if (partial.length > 0) {
result.push("; "+f);
result = result.concat(partial);
} else {
result.push("; "+f+" data-l10-id NOT FOUND");
}
});
});
return result.unique();
}
var getTranslationINI = function (locales_dir, lang_code, ids) {
var ini = locales_dir+'/'+lang_code+'.ini';
if (!fs.existsSync(ini)) ini = locales_dir+'/en.ini';
return generateIni (ids, parseIni (fs.readFileSync(ini,'utf8')), lang_code);
}
module.exports.extractIDs = extractIDs;
module.exports.getTranslationINI = getTranslationINI;

View file

@ -0,0 +1,299 @@
<%
var i18n = require("ep_etherpad-lite/node/hooks/i18n");
%>
<!doctype html>
<html>
<head>
<title>Translator Assistant</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0">
<link rel="stylesheet" href="../static/css/admin.css">
<link rel="resource" type="application/l10n" href="../locales.ini" />
<script src="../static/js/jquery.js"></script>
<script src="../socket.io/socket.io.js"></script>
<script type="text/javascript">
(function(document) {
// Set language for l10n
var language = document.cookie.match(/language=(\w{2})/);
if(language) document.documentElement.lang = language[1];
})(document)
</script>
<script type="text/javascript" src="../static/js/l10n.js" async></script>
<style>
select {
width: 30%;
height: 30px;
}
#translation {
width: 100%;
height: 400px;
overflow: auto;
margin-top: 10px;
margin-bottom: 10px;
font-size: 1.1em;
}
#translation.loading {
color: #99c;
font-size: 3em;
/*padding-top: 150px;*/
text-align: center;
}
#translation.error {
color: #c00;
font-size: 3em;
/*padding-top: 150px;*/
text-align: center;
}
</style>
</head>
<body>
<div id="wrapper">
<h1 data-l10n-id="translate.assistant">Translator Assistant</h1>
<label for="idiom-from" data-l10n-id="translate.from">Translate from:</label>
<select id="idiom-from">
<option value="" selected="selected" data-l10n-id="translate.choose">Choose...</option>
<% for (var lang_code in i18n.availableLangs) { %>
<option value="<%= lang_code %>"><%= "["+lang_code+"] "+i18n.availableLangs[lang_code] %></option>
<% } %>
</select>
<label for="idiom-to" data-l10n-id="translate.to">to:</label>
<select id="idiom-to">
<option value="" selected="selected" data-l10n-id="translate.choose">Choose...</option>
<option value='aa'>[aa] Afaraf</option>
<option value='ab'>[ab] Аҧсуа Бызшәа, Аҧсшәа</option>
<option value='ae'>[ae] Avesta</option>
<option value='af'>[af] Afrikaans</option>
<option value='ak'>[ak] Akan</option>
<option value='am'>[am] አማርኛ</option>
<option value='an'>[an] Aragonés</option>
<option value='ar'>[ar] العربية</option>
<option value='as'>[as] অসমীয়া</option>
<option value='av'>[av] Авар МацӀ, МагӀарул МацӀ</option>
<option value='ay'>[ay] Aymar Aru</option>
<option value='az'>[az] Azərbaycan Dili</option>
<option value='ba'>[ba] Башҡорт Теле</option>
<option value='be'>[be] Беларуская Мова</option>
<option value='bg'>[bg] Български Език</option>
<option value='bh'>[bh] भोजपुरी</option>
<option value='bi'>[bi] Bislama</option>
<option value='bm'>[bm] Bamanankan</option>
<option value='bn'>[bn] বাংলা</option>
<option value='bo'>[bo] Tibetan</option>
<option value='br'>[br] Brezhoneg</option>
<option value='bs'>[bs] Bosanski Jezik</option>
<option value='ca'>[ca] Català, Valencià</option>
<option value='ce'>[ce] Нохчийн Мотт</option>
<option value='ch'>[ch] Chamoru</option>
<option value='co'>[co] Corsu, Lingua Corsa</option>
<option value='cr'>[cr] ᓀᐦᐃᔭᐍᐏᐣ</option>
<option value='cs'>[cs] Čeština, Český Jazyk</option>
<option value='cu'>[cu] Ѩзыкъ Словѣньскъ</option>
<option value='cv'>[cv] Чӑваш Чӗлхи</option>
<option value='cy'>[cy] Cymraeg</option>
<option value='da'>[da] Dansk</option>
<option value='de'>[de] Deutsch</option>
<option value='dv'>[dv] ދިވެހި</option>
<option value='dz'>[dz] Dzongkha</option>
<option value='ee'>[ee] Eʋegbe</option>
<option value='el'>[el] Ελληνικά</option>
<option value='en'>[en] English</option>
<option value='eo'>[eo] Esperanto</option>
<option value='es'>[es] Español, Castellano</option>
<option value='et'>[et] Eesti, Eesti Keel</option>
<option value='eu'>[eu] Euskara, Euskera</option>
<option value='fa'>[fa] فارسی</option>
<option value='ff'>[ff] Fulfulde, Pulaar, Pular</option>
<option value='fi'>[fi] Suomi, Suomen Kieli</option>
<option value='fj'>[fj] Vosa Vakaviti</option>
<option value='fo'>[fo] Føroyskt</option>
<option value='fr'>[fr] Français, Langue Française</option>
<option value='fy'>[fy] Frysk</option>
<option value='ga'>[ga] Gaeilge</option>
<option value='gd'>[gd] Gàidhlig</option>
<option value='gl'>[gl] Galego</option>
<option value='gn'>[gn] Avañe'Ẽ</option>
<option value='gu'>[gu] ગુજરાતી</option>
<option value='gv'>[gv] Gaelg, Gailck</option>
<option value='ha'>[ha] Hausa, هَوُسَ</option>
<option value='he'>[he] עברית</option>
<option value='hi'>[hi] हिन्दी, हिंदी</option>
<option value='ho'>[ho] Hiri Motu</option>
<option value='hr'>[hr] Hrvatski Jezik</option>
<option value='ht'>[ht] Kreyòl Ayisyen</option>
<option value='hu'>[hu] Magyar</option>
<option value='hy'>[hy] Հայերեն</option>
<option value='hz'>[hz] Otjiherero</option>
<option value='ia'>[ia] Interlingua</option>
<option value='id'>[id] Bahasa Indonesia</option>
<option value='ie'>[ie] Interlingue After Wwii</option>
<option value='ig'>[ig] Asụsụ Igbo</option>
<option value='ii'>[ii] Nuosuhxop</option>
<option value='ik'>[ik] Iñupiaq, Iñupiatun</option>
<option value='io'>[io] Ido</option>
<option value='is'>[is] Íslenska</option>
<option value='it'>[it] Italiano</option>
<option value='iu'>[iu] ᐃᓄᒃᑎᑐᑦ</option>
<option value='ja'>[ja] 日本語 (にほんご)</option>
<option value='jv'>[jv] Basa Jawa</option>
<option value='ka'>[ka] ქართული</option>
<option value='kg'>[kg] Kikongo</option>
<option value='ki'>[ki] Gĩkũyũ</option>
<option value='kj'>[kj] Kuanyama</option>
<option value='kk'>[kk] Қазақ Тілі</option>
<option value='kl'>[kl] Kalaallisut, Kalaallit Oqaasii</option>
<option value='km'>[km] ខ្មែរ, ខេមរភាសា, ភាសាខ្មែរ</option>
<option value='kn'>[kn] ಕನ್ನಡ</option>
<option value='ko'>[ko] 한국어 (韓國語), 조선어 (朝鮮語)</option>
<option value='kr'>[kr] Kanuri</option>
<option value='ks'>[ks] कश्मीरी, كشميري‎</option>
<option value='ku'>[ku] Kurdî, كوردی‎</option>
<option value='kv'>[kv] Коми Кыв</option>
<option value='kw'>[kw] Kernewek</option>
<option value='ky'>[ky] Кыргызча, Кыргыз Тили</option>
<option value='la'>[la] Latine, Lingua Latina</option>
<option value='lb'>[lb] Lëtzebuergesch</option>
<option value='lg'>[lg] Luganda</option>
<option value='li'>[li] Limburgs</option>
<option value='ln'>[ln] Lingála</option>
<option value='lo'>[lo] ພາສາລາວ</option>
<option value='lt'>[lt] Lietuvių Kalba</option>
<option value='lu'>[lu] Tshiluba</option>
<option value='lv'>[lv] Latviešu Valoda</option>
<option value='mg'>[mg] Fiteny Malagasy</option>
<option value='mh'>[mh] Kajin M̧Ajeļ</option>
<option value='mi'>[mi] Te Reo Māori</option>
<option value='mk'>[mk] Македонски Јазик</option>
<option value='ml'>[ml] മലയാളം</option>
<option value='mn'>[mn] Монгол</option>
<option value='mr'>[mr] मराठी</option>
<option value='ms'>[ms] Bahasa Melayu, بهاس ملايو‎</option>
<option value='mt'>[mt] Malti</option>
<option value='my'>[my] Burmese</option>
<option value='na'>[na] Ekakairũ Naoero</option>
<option value='nb'>[nb] Norsk Bokmål</option>
<option value='nd'>[nd] Isindebele</option>
<option value='ne'>[ne] नेपाली</option>
<option value='ng'>[ng] Owambo</option>
<option value='nl'>[nl] Nederlands, Vlaams</option>
<option value='nn'>[nn] Norsk Nynorsk</option>
<option value='no'>[no] Norsk</option>
<option value='nr'>[nr] Isindebele</option>
<option value='nv'>[nv] Diné Bizaad, Dinékʼehǰí</option>
<option value='ny'>[ny] Chicheŵa, Chinyanja</option>
<option value='oc'>[oc] Occitan, Lenga D'Òc</option>
<option value='oj'>[oj] ᐊᓂᔑᓈᐯᒧᐎᓐ</option>
<option value='om'>[om] Afaan Oromoo</option>
<option value='or'>[or] ଓଡ଼ିଆ</option>
<option value='os'>[os] Ирон Æвзаг</option>
<option value='pa'>[pa] ਪੰਜਾਬੀ, پنجابی‎</option>
<option value='pi'>[pi] पाऴि</option>
<option value='pl'>[pl] Język Polski, Polszczyzna</option>
<option value='ps'>[ps] پښتو</option>
<option value='pt'>[pt] Português</option>
<option value='qu'>[qu] Runa Simi, Kichwa</option>
<option value='rm'>[rm] Rumantsch Grischun</option>
<option value='rn'>[rn] Ikirundi</option>
<option value='ro'>[ro] Limba Română</option>
<option value='ru'>[ru] Русский Язык</option>
<option value='rw'>[rw] Ikinyarwanda</option>
<option value='sa'>[sa] संस्कृतम्</option>
<option value='sc'>[sc] Sardu</option>
<option value='sd'>[sd] सिन्धी, سنڌي، سندھی‎</option>
<option value='se'>[se] Davvisámegiella</option>
<option value='sg'>[sg] Yângâ Tî Sängö</option>
<option value='si'>[si] සිංහල</option>
<option value='sk'>[sk] Slovenčina, Slovenský Jazyk</option>
<option value='sl'>[sl] Slovenski Jezik, Slovenščina</option>
<option value='sm'>[sm] Gagana Fa'A Samoa</option>
<option value='sn'>[sn] Chishona</option>
<option value='so'>[so] Soomaaliga, Af Soomaali</option>
<option value='sq'>[sq] Gjuha Shqipe</option>
<option value='sr'>[sr] Српски Језик</option>
<option value='ss'>[ss] Siswati</option>
<option value='st'>[st] Sesotho</option>
<option value='su'>[su] Basa Sunda</option>
<option value='sv'>[sv] Svenska</option>
<option value='sw'>[sw] Kiswahili</option>
<option value='ta'>[ta] தமிழ்</option>
<option value='te'>[te] తెలుగు</option>
<option value='tg'>[tg] Тоҷикӣ, Toğikī, تاجیکی‎</option>
<option value='th'>[th] ไทย</option>
<option value='ti'>[ti] ትግርኛ</option>
<option value='tk'>[tk] Türkmen, Түркмен</option>
<option value='tl'>[tl] Wikang Tagalog</option>
<option value='tn'>[tn] Setswana</option>
<option value='to'>[to] Faka Tonga</option>
<option value='tr'>[tr] Türkçe</option>
<option value='ts'>[ts] Xitsonga</option>
<option value='tt'>[tt] Татар Теле, Tatar Tele</option>
<option value='tw'>[tw] Twi</option>
<option value='ty'>[ty] Reo Tahiti</option>
<option value='ug'>[ug] Uyƣurqə, ئۇيغۇرچە‎</option>
<option value='uk'>[uk] Українська Мова</option>
<option value='ur'>[ur] اردو</option>
<option value='uz'>[uz] O'Zbek, Ўзбек, أۇزبېك‎</option>
<option value='ve'>[ve] Tshivenḓa</option>
<option value='vi'>[vi] Tiếng Việt</option>
<option value='vo'>[vo] Volapük</option>
<option value='wa'>[wa] Walon</option>
<option value='wo'>[wo] Wollof</option>
<option value='xh'>[xh] Isixhosa</option>
<option value='yi'>[yi] ייִדיש</option>
<option value='yo'>[yo] Yorùbá</option>
<option value='za'>[za] Saɯ Cueŋƅ, Saw Cuengh</option>
<option value='zh'>[zh] 中文 (Zhōngwén), 汉语, 漢語</option>
<option value='zu'>[zu] Isizulu</option>
</select>
<textarea id="translation"></textarea>
<input type="button" class="settingsButton" id="sendTranslation" value="Send" disabled="disabled" data-l10n-id="translate.send">
<label for="sendTranslation"><span data-l10n-id="translate.to">to</span> <a href="mailto:translators-etherpad-lite@googlegroups.com">translators-etherpad-lite@googlegroups.com</a></label>
<div id="response"></div>
</div>
<script type="text/javascript">
$(function() {
var base_url = ""+document.location.toString();
if (base_url[base_url.length - 1] != '/') base_url+='/';
$('#idiom-from').val('');
$('#idiom-to').val('').hide();
$('#idiom-from').change(function(e) {
var idiom_from = $('#idiom-from').val();
$('#translation').addClass('loading').text('\nLoading...');
$.ajax({
url: base_url+idiom_from,
error: function(err) {
$('#translation').removeClass('loading').addClass('error').text("\nERROR: "+err.status);
},
success: function(data) {
$('#translation').removeClass('loading').removeClass('error').text(data);
$('#idiom-to').fadeIn();
}
});
});
$('#idiom-to').change(function(e) {
$('#sendTranslation').attr('disabled',false);
var traduccion = $('#translation').text().split('\n');
traduccion[0]='['+$('#idiom-to').val()+']';
$('#translation').text(traduccion.join('\n'));
});
$('#sendTranslation').click(function(e) {
window.location.href = "mailto:"+encodeURIComponent("translators-etherpad-lite@googlegroups.com")
+ "?subject="+encodeURIComponent("traslated to ["+$('#idioma').val()+"]")
+ "&body="+encodeURIComponent($("#translation").val());
});
});
</script>
</body>
</html>