diff --git a/activities/Write.activity/index.html b/activities/Write.activity/index.html index 29e8190a4..7fa3d931c 100644 --- a/activities/Write.activity/index.html +++ b/activities/Write.activity/index.html @@ -17,8 +17,6 @@ - - diff --git a/activities/Write.activity/js/activity.js b/activities/Write.activity/js/activity.js index 81e281f21..9eac96b20 100644 --- a/activities/Write.activity/js/activity.js +++ b/activities/Write.activity/js/activity.js @@ -10,9 +10,9 @@ define([ "sugar-web/env", "sugar-web/graphics/presencepalette", "activity/palettes/export-palette", - "webL10n", + "l10n", "tutorial" -], function (activity,formatpalette,listpalette,parapalette,fontPalette,colorpalette , datastore , journalchooser,env,presencepalette,exportpalette,webL10n,tutorial) { +], function (activity,formatpalette,listpalette,parapalette,fontPalette,colorpalette , datastore , journalchooser,env,presencepalette,exportpalette,l10n,tutorial) { // Manipulate the DOM only when it is ready. requirejs(['domReady!','humane'], function (doc,humane) { @@ -47,38 +47,38 @@ define([ // Language Settings var defaultLanguage = (typeof chrome != 'undefined' && chrome.app && chrome.app.runtime) ? chrome.i18n.getUILanguage() : navigator.language; var language = environment.user ? environment.user.language : defaultLanguage; - webL10n.language.code = language; + l10n.init(language); window.addEventListener("localized", function() { - document.getElementById("network-button").title = webL10n.get("Network"); - document.getElementById("color-button-1").title = webL10n.get("ForegroundColor"); - document.getElementById("color-button-2").title = webL10n.get("BackgroundColor"); - document.getElementById("format-text").title = webL10n.get("Formattext"); - document.getElementById("paragraph").title = webL10n.get("Paragraph"); - document.getElementById("list").title = webL10n.get("List"); - document.getElementById("resize-inc").title = webL10n.get("Increasefontsize"); - document.getElementById("font-button").title = webL10n.get("ChooseFont"); - document.getElementById("resize-dec").title = webL10n.get("Decreasefontsize"); - document.getElementById("insert-picture").title = webL10n.get("Image"); - document.getElementById("edit-undo").title = webL10n.get("Undo"); - document.getElementById("edit-redo").title = webL10n.get("Redo"); - document.getElementById("edit-copy").title = webL10n.get("Copy"); - document.getElementById("edit-paste").title = webL10n.get("Paste"); - document.getElementById("export").title = webL10n.get("Export"); - document.getElementById("super-script").title = webL10n.get("SuperScript"); - document.getElementById("sub-script").title = webL10n.get("SubScript"); - document.getElementById(5).title = webL10n.get("Bold"); - document.getElementById(6).title = webL10n.get("Italic"); - document.getElementById(7).title = webL10n.get("Underline"); - document.getElementById(8).title = webL10n.get("Strike"); - document.getElementById(9).title = webL10n.get("OrderedList"); - document.getElementById(10).title = webL10n.get("UnorderedList"); - document.getElementById(11).title = webL10n.get("JustifyLeft"); - document.getElementById(12).title = webL10n.get("JustifyRight"); - document.getElementById(13).title = webL10n.get("JustifyCenter"); - document.getElementById(19).title = webL10n.get("ExportToTxt"); - document.getElementById(20).title = webL10n.get("ExportToPdf"); - document.getElementById(21).title = webL10n.get("ExportToDoc"); - document.getElementById(22).title = webL10n.get("ExportToOdt"); + document.getElementById("network-button").title = l10n.get("Network"); + document.getElementById("color-button-1").title = l10n.get("ForegroundColor"); + document.getElementById("color-button-2").title = l10n.get("BackgroundColor"); + document.getElementById("format-text").title = l10n.get("Formattext"); + document.getElementById("paragraph").title = l10n.get("Paragraph"); + document.getElementById("list").title = l10n.get("List"); + document.getElementById("resize-inc").title = l10n.get("Increasefontsize"); + document.getElementById("font-button").title = l10n.get("ChooseFont"); + document.getElementById("resize-dec").title = l10n.get("Decreasefontsize"); + document.getElementById("insert-picture").title = l10n.get("Image"); + document.getElementById("edit-undo").title = l10n.get("Undo"); + document.getElementById("edit-redo").title = l10n.get("Redo"); + document.getElementById("edit-copy").title = l10n.get("Copy"); + document.getElementById("edit-paste").title = l10n.get("Paste"); + document.getElementById("export").title = l10n.get("Export"); + document.getElementById("super-script").title = l10n.get("SuperScript"); + document.getElementById("sub-script").title = l10n.get("SubScript"); + document.getElementById(5).title = l10n.get("Bold"); + document.getElementById(6).title = l10n.get("Italic"); + document.getElementById(7).title = l10n.get("Underline"); + document.getElementById(8).title = l10n.get("Strike"); + document.getElementById(9).title = l10n.get("OrderedList"); + document.getElementById(10).title = l10n.get("UnorderedList"); + document.getElementById(11).title = l10n.get("JustifyLeft"); + document.getElementById(12).title = l10n.get("JustifyRight"); + document.getElementById(13).title = l10n.get("JustifyCenter"); + document.getElementById(19).title = l10n.get("ExportToTxt"); + document.getElementById(20).title = l10n.get("ExportToPdf"); + document.getElementById(21).title = l10n.get("ExportToDoc"); + document.getElementById(22).title = l10n.get("ExportToOdt"); }); if (!environment.objectId && !environment.sharedId) { @@ -86,14 +86,14 @@ define([ // Intentionally added setTimeout to allow locale.ini file to be loaded setTimeout(function(){ editor.setContents([ - {insert: webL10n.get('Welcome',{username: environment.user.name}) + '\n' , attributes: { size: "40px" , color : environment.user.colorvalue.stroke , bold: true }}, + {insert: l10n.get('Welcome',{username: environment.user.name}) + '\n' , attributes: { size: "40px" , color : environment.user.colorvalue.stroke , bold: true }}, ]); var length = editor.getLength(); - editor.clipboard.dangerouslyPasteHTML(length,webL10n.get('Write')); + editor.clipboard.dangerouslyPasteHTML(length,l10n.get('Write')); length = editor.getLength(); - editor.clipboard.dangerouslyPasteHTML(length,webL10n.get('Writefeatures')); + editor.clipboard.dangerouslyPasteHTML(length,l10n.get('Writefeatures')); length = editor.getLength(); - editor.clipboard.dangerouslyPasteHTML(length,webL10n.get('Enjoy')); + editor.clipboard.dangerouslyPasteHTML(length,l10n.get('Enjoy')); length = editor.getLength(); editor.clipboard.dangerouslyPasteHTML(length,"

"); length = editor.getLength(); @@ -393,7 +393,7 @@ define([ }; datastore.create(metadata, function() { console.log("export done."); - humane.log(webL10n.get("Txt")); + humane.log(l10n.get("Txt")); }, inputData); }); @@ -439,7 +439,7 @@ define([ }; datastore.create(metadata, function() { console.log("export done."); - humane.log(webL10n.get("Pdf")); + humane.log(l10n.get("Pdf")); }, inputData); }); }); @@ -466,7 +466,7 @@ define([ }; datastore.create(metadata, function() { console.log("export done."); - humane.log(webL10n.get("Doc")); + humane.log(l10n.get("Doc")); }, inputData); }); @@ -488,7 +488,7 @@ define([ }; datastore.create(metadata, function() { console.log("export done."); - humane.log(webL10n.get("Odt")); + humane.log(l10n.get("Odt")); resetXML(); }, inputData); @@ -615,13 +615,13 @@ define([ console.log(connectedPeople[key].name,key,connectedPeople[key].networkId); } if(msg.move==1){ - humane.log(html + webL10n.get("PlayerJoin",{user: userName})); + humane.log(html + l10n.get("PlayerJoin",{user: userName})); var c = cursors.createCursor(msg.user.networkId, userName, msg.user.colorvalue.stroke); if(myid==msg.user.networkId) {mycursor=c;} } if (msg.move === -1) { cursors.removeCursor(msg.user.networkId); - humane.log(html + webL10n.get("PlayerLeave",{user: userName})); + humane.log(html + l10n.get("PlayerLeave",{user: userName})); if(msg.user.networkId == connectedPeople[0].networkId){ if(connectedPeople[1].networkId == myid){ document.getElementById(3).style.display = "inline"; diff --git a/activities/Write.activity/lib/axios.min.js b/activities/Write.activity/lib/axios.min.js new file mode 100644 index 000000000..fc6c8b618 --- /dev/null +++ b/activities/Write.activity/lib/axios.min.js @@ -0,0 +1,3 @@ +/* axios v0.21.1 | (c) 2020 by Matt Zabriskie */ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.axios=t():e.axios=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){e.exports=n(1)},function(e,t,n){"use strict";function r(e){var t=new i(e),n=s(i.prototype.request,t);return o.extend(n,i.prototype,t),o.extend(n,t),n}var o=n(2),s=n(3),i=n(4),a=n(22),u=n(10),c=r(u);c.Axios=i,c.create=function(e){return r(a(c.defaults,e))},c.Cancel=n(23),c.CancelToken=n(24),c.isCancel=n(9),c.all=function(e){return Promise.all(e)},c.spread=n(25),c.isAxiosError=n(26),e.exports=c,e.exports.default=c},function(e,t,n){"use strict";function r(e){return"[object Array]"===R.call(e)}function o(e){return"undefined"==typeof e}function s(e){return null!==e&&!o(e)&&null!==e.constructor&&!o(e.constructor)&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}function i(e){return"[object ArrayBuffer]"===R.call(e)}function a(e){return"undefined"!=typeof FormData&&e instanceof FormData}function u(e){var t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer}function c(e){return"string"==typeof e}function f(e){return"number"==typeof e}function p(e){return null!==e&&"object"==typeof e}function d(e){if("[object Object]"!==R.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function l(e){return"[object Date]"===R.call(e)}function h(e){return"[object File]"===R.call(e)}function m(e){return"[object Blob]"===R.call(e)}function y(e){return"[object Function]"===R.call(e)}function g(e){return p(e)&&y(e.pipe)}function v(e){return"undefined"!=typeof URLSearchParams&&e instanceof URLSearchParams}function x(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}function w(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!=typeof window&&"undefined"!=typeof document)}function b(e,t){if(null!==e&&"undefined"!=typeof e)if("object"!=typeof e&&(e=[e]),r(e))for(var n=0,o=e.length;n=200&&e<300}};u.headers={common:{Accept:"application/json, text/plain, */*"}},s.forEach(["delete","get","head"],function(e){u.headers[e]={}}),s.forEach(["post","put","patch"],function(e){u.headers[e]=s.merge(a)}),e.exports=u},function(e,t,n){"use strict";var r=n(2);e.exports=function(e,t){r.forEach(e,function(n,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[r])})}},function(e,t,n){"use strict";var r=n(2),o=n(13),s=n(16),i=n(5),a=n(17),u=n(20),c=n(21),f=n(14);e.exports=function(e){return new Promise(function(t,n){var p=e.data,d=e.headers;r.isFormData(p)&&delete d["Content-Type"];var l=new XMLHttpRequest;if(e.auth){var h=e.auth.username||"",m=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";d.Authorization="Basic "+btoa(h+":"+m)}var y=a(e.baseURL,e.url);if(l.open(e.method.toUpperCase(),i(y,e.params,e.paramsSerializer),!0),l.timeout=e.timeout,l.onreadystatechange=function(){if(l&&4===l.readyState&&(0!==l.status||l.responseURL&&0===l.responseURL.indexOf("file:"))){var r="getAllResponseHeaders"in l?u(l.getAllResponseHeaders()):null,s=e.responseType&&"text"!==e.responseType?l.response:l.responseText,i={data:s,status:l.status,statusText:l.statusText,headers:r,config:e,request:l};o(t,n,i),l=null}},l.onabort=function(){l&&(n(f("Request aborted",e,"ECONNABORTED",l)),l=null)},l.onerror=function(){n(f("Network Error",e,null,l)),l=null},l.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(f(t,e,"ECONNABORTED",l)),l=null},r.isStandardBrowserEnv()){var g=(e.withCredentials||c(y))&&e.xsrfCookieName?s.read(e.xsrfCookieName):void 0;g&&(d[e.xsrfHeaderName]=g)}if("setRequestHeader"in l&&r.forEach(d,function(e,t){"undefined"==typeof p&&"content-type"===t.toLowerCase()?delete d[t]:l.setRequestHeader(t,e)}),r.isUndefined(e.withCredentials)||(l.withCredentials=!!e.withCredentials),e.responseType)try{l.responseType=e.responseType}catch(t){if("json"!==e.responseType)throw t}"function"==typeof e.onDownloadProgress&&l.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&l.upload&&l.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then(function(e){l&&(l.abort(),n(e),l=null)}),p||(p=null),l.send(p)})}},function(e,t,n){"use strict";var r=n(14);e.exports=function(e,t,n){var o=n.config.validateStatus;n.status&&o&&!o(n.status)?t(r("Request failed with status code "+n.status,n.config,null,n.request,n)):e(n)}},function(e,t,n){"use strict";var r=n(15);e.exports=function(e,t,n,o,s){var i=new Error(e);return r(i,t,n,o,s)}},function(e,t){"use strict";e.exports=function(e,t,n,r,o){return e.config=t,n&&(e.code=n),e.request=r,e.response=o,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},function(e,t,n){"use strict";var r=n(2);e.exports=r.isStandardBrowserEnv()?function(){return{write:function(e,t,n,o,s,i){var a=[];a.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),r.isString(o)&&a.push("path="+o),r.isString(s)&&a.push("domain="+s),i===!0&&a.push("secure"),document.cookie=a.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()},function(e,t,n){"use strict";var r=n(18),o=n(19);e.exports=function(e,t){return e&&!r(t)?o(e,t):t}},function(e,t){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},function(e,t){"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},function(e,t,n){"use strict";var r=n(2),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,s,i={};return e?(r.forEach(e.split("\n"),function(e){if(s=e.indexOf(":"),t=r.trim(e.substr(0,s)).toLowerCase(),n=r.trim(e.substr(s+1)),t){if(i[t]&&o.indexOf(t)>=0)return;"set-cookie"===t?i[t]=(i[t]?i[t]:[]).concat([n]):i[t]=i[t]?i[t]+", "+n:n}}),i):i}},function(e,t,n){"use strict";var r=n(2);e.exports=r.isStandardBrowserEnv()?function(){function e(e){var t=e;return n&&(o.setAttribute("href",t),t=o.href),o.setAttribute("href",t),{href:o.href,protocol:o.protocol?o.protocol.replace(/:$/,""):"",host:o.host,search:o.search?o.search.replace(/^\?/,""):"",hash:o.hash?o.hash.replace(/^#/,""):"",hostname:o.hostname,port:o.port,pathname:"/"===o.pathname.charAt(0)?o.pathname:"/"+o.pathname}}var t,n=/(msie|trident)/i.test(navigator.userAgent),o=document.createElement("a");return t=e(window.location.href),function(n){var o=r.isString(n)?e(n):n;return o.protocol===t.protocol&&o.host===t.host}}():function(){return function(){return!0}}()},function(e,t,n){"use strict";var r=n(2);e.exports=function(e,t){function n(e,t){return r.isPlainObject(e)&&r.isPlainObject(t)?r.merge(e,t):r.isPlainObject(t)?r.merge({},t):r.isArray(t)?t.slice():t}function o(o){r.isUndefined(t[o])?r.isUndefined(e[o])||(s[o]=n(void 0,e[o])):s[o]=n(e[o],t[o])}t=t||{};var s={},i=["url","method","data"],a=["headers","auth","proxy","params"],u=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],c=["validateStatus"];r.forEach(i,function(e){r.isUndefined(t[e])||(s[e]=n(void 0,t[e]))}),r.forEach(a,o),r.forEach(u,function(o){r.isUndefined(t[o])?r.isUndefined(e[o])||(s[o]=n(void 0,e[o])):s[o]=n(void 0,t[o])}),r.forEach(c,function(r){r in t?s[r]=n(e[r],t[r]):r in e&&(s[r]=n(void 0,e[r]))});var f=i.concat(a).concat(u).concat(c),p=Object.keys(e).concat(Object.keys(t)).filter(function(e){return f.indexOf(e)===-1});return r.forEach(p,o),s}},function(e,t){"use strict";function n(e){this.message=e}n.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},n.prototype.__CANCEL__=!0,e.exports=n},function(e,t,n){"use strict";function r(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(e){t=e});var n=this;e(function(e){n.reason||(n.reason=new o(e),t(n.reason))})}var o=n(23);r.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},r.source=function(){var e,t=new r(function(t){e=t});return{token:t,cancel:e}},e.exports=r},function(e,t){"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},function(e,t){"use strict";e.exports=function(e){return"object"==typeof e&&e.isAxiosError===!0}}])}); +//# sourceMappingURL=axios.min.map \ No newline at end of file diff --git a/activities/Write.activity/lib/i18next.min.js b/activities/Write.activity/lib/i18next.min.js new file mode 100644 index 000000000..08f5469cf --- /dev/null +++ b/activities/Write.activity/lib/i18next.min.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).i18next=t()}(this,function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}function t(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function n(e){for(var n=1;n1&&void 0!==arguments[1]?arguments[1]:{};i(this,e),this.init(t,n)}return r(e,[{key:"init",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.prefix=t.prefix||"i18next:",this.logger=e||p,this.options=t,this.debug=t.debug}},{key:"setDebug",value:function(e){this.debug=e}},{key:"log",value:function(){for(var e=arguments.length,t=new Array(e),n=0;n1?t-1:0),i=1;i-1?e.replace(/###/g,"."):e}function o(){return!e||"string"==typeof e}for(var r="string"!=typeof t?[].concat(t):t.split(".");r.length>1;){if(o())return{};var a=i(r.shift());!e[a]&&n&&(e[a]=new n),e=Object.prototype.hasOwnProperty.call(e,a)?e[a]:{}}return o()?{}:{obj:e,k:i(r.shift())}}function y(e,t,n){var i=v(e,t,Object);i.obj[i.k]=n}function m(e,t){var n=v(e,t),i=n.obj,o=n.k;if(i)return i[o]}function b(e,t,n){var i=m(e,n);return void 0!==i?i:m(t,n)}function k(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var x={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};function S(e){return"string"==typeof e?e.replace(/[&<>"'\/]/g,function(e){return x[e]}):e}var w="undefined"!=typeof window&&window.navigator&&window.navigator.userAgent&&window.navigator.userAgent.indexOf("MSIE")>-1;var L=function(e){function t(e){var n,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{ns:["translation"],defaultNS:"translation"};return i(this,t),n=s(this,u(t).call(this)),w&&f.call(a(n)),n.data=e||{},n.options=o,void 0===n.options.keySeparator&&(n.options.keySeparator="."),void 0===n.options.ignoreJSONStructure&&(n.options.ignoreJSONStructure=!0),n}return c(t,f),r(t,[{key:"addNamespaces",value:function(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}},{key:"removeNamespaces",value:function(e){var t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}},{key:"getResource",value:function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=void 0!==i.keySeparator?i.keySeparator:this.options.keySeparator,r=void 0!==i.ignoreJSONStructure?i.ignoreJSONStructure:this.options.ignoreJSONStructure,a=[e,t];n&&"string"!=typeof n&&(a=a.concat(n)),n&&"string"==typeof n&&(a=a.concat(o?n.split(o):n)),e.indexOf(".")>-1&&(a=e.split("."));var s=m(this.data,a);return s||!r||"string"!=typeof n?s:function e(t,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:".";if(t){if(t[n])return t[n];for(var o=n.split(i),r=t,a=0;aa+s;)s++,l=r[u=o.slice(a,a+s).join(i)];if(void 0===l)return;if("string"==typeof l)return l;if(u&&"string"==typeof l[u])return l[u];var c=o.slice(a+s).join(i);return c?e(l,c,i):void 0}r=r[o[a]]}return r}}(this.data&&this.data[e]&&this.data[e][t],n,o)}},{key:"addResource",value:function(e,t,n,i){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{silent:!1},r=this.options.keySeparator;void 0===r&&(r=".");var a=[e,t];n&&(a=a.concat(r?n.split(r):n)),e.indexOf(".")>-1&&(i=t,t=(a=e.split("."))[1]),this.addNamespaces(t),y(this.data,a,i),o.silent||this.emit("added",e,t,n,i)}},{key:"addResources",value:function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{silent:!1};for(var o in n)"string"!=typeof n[o]&&"[object Array]"!==Object.prototype.toString.apply(n[o])||this.addResource(e,t,o,n[o],{silent:!0});i.silent||this.emit("added",e,t,n)}},{key:"addResourceBundle",value:function(e,t,i,o,r){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{silent:!1},s=[e,t];e.indexOf(".")>-1&&(o=i,i=t,t=(s=e.split("."))[1]),this.addNamespaces(t);var u=m(this.data,s)||{};o?function e(t,n,i){for(var o in n)"__proto__"!==o&&"constructor"!==o&&(o in t?"string"==typeof t[o]||t[o]instanceof String||"string"==typeof n[o]||n[o]instanceof String?i&&(t[o]=n[o]):e(t[o],n[o],i):t[o]=n[o]);return t}(u,i,r):u=n({},u,i),y(this.data,s,u),a.silent||this.emit("added",e,t,i)}},{key:"removeResourceBundle",value:function(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}},{key:"hasResourceBundle",value:function(e,t){return void 0!==this.getResource(e,t)}},{key:"getResourceBundle",value:function(e,t){return t||(t=this.options.defaultNS),"v1"===this.options.compatibilityAPI?n({},{},this.getResource(e,t)):this.getResource(e,t)}},{key:"getDataByLanguage",value:function(e){return this.data[e]}},{key:"toJSON",value:function(){return this.data}}]),t}(),O={processors:{},addPostProcessor:function(e){this.processors[e.name]=e},handle:function(e,t,n,i,o){var r=this;return e.forEach(function(e){r.processors[e]&&(t=r.processors[e].process(t,n,i,o))}),t}},N={},R=function(t){function o(e){var t,n,r,l,c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return i(this,o),t=s(this,u(o).call(this)),w&&f.call(a(t)),n=["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],r=e,l=a(t),n.forEach(function(e){r[e]&&(l[e]=r[e])}),t.options=c,void 0===t.options.keySeparator&&(t.options.keySeparator="."),t.logger=g.create("translator"),t}return c(o,f),r(o,[{key:"changeLanguage",value:function(e){e&&(this.language=e)}},{key:"exists",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{interpolation:{}},n=this.resolve(e,t);return n&&void 0!==n.res}},{key:"extractFromKey",value:function(e,t){var n=void 0!==t.nsSeparator?t.nsSeparator:this.options.nsSeparator;void 0===n&&(n=":");var i=void 0!==t.keySeparator?t.keySeparator:this.options.keySeparator,o=t.ns||this.options.defaultNS;if(n&&e.indexOf(n)>-1){var r=e.match(this.interpolator.nestingRegexp);if(r&&r.length>0)return{key:e,namespaces:o};var a=e.split(n);(n!==i||n===i&&this.options.ns.indexOf(a[0])>-1)&&(o=a.shift()),e=a.join(i)}return"string"==typeof o&&(o=[o]),{key:e,namespaces:o}}},{key:"translate",value:function(t,i,r){var a=this;if("object"!==e(i)&&this.options.overloadTranslationOptionHandler&&(i=this.options.overloadTranslationOptionHandler(arguments)),i||(i={}),null==t)return"";Array.isArray(t)||(t=[String(t)]);var s=void 0!==i.keySeparator?i.keySeparator:this.options.keySeparator,u=this.extractFromKey(t[t.length-1],i),l=u.key,c=u.namespaces,p=c[c.length-1],g=i.lng||this.language,f=i.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(g&&"cimode"===g.toLowerCase()){if(f){var h=i.nsSeparator||this.options.nsSeparator;return p+h+l}return l}var d=this.resolve(t,i),v=d&&d.res,y=d&&d.usedKey||l,m=d&&d.exactUsedKey||l,b=Object.prototype.toString.apply(v),k=void 0!==i.joinArrays?i.joinArrays:this.options.joinArrays,x=!this.i18nFormat||this.i18nFormat.handleAsObject;if(x&&v&&("string"!=typeof v&&"boolean"!=typeof v&&"number"!=typeof v)&&["[object Number]","[object Function]","[object RegExp]"].indexOf(b)<0&&("string"!=typeof k||"[object Array]"!==b)){if(!i.returnObjects&&!this.options.returnObjects)return this.logger.warn("accessing an object - but returnObjects options is not enabled!"),this.options.returnedObjectHandler?this.options.returnedObjectHandler(y,v,i):"key '".concat(l," (").concat(this.language,")' returned an object instead of string.");if(s){var S="[object Array]"===b,w=S?[]:{},L=S?m:y;for(var O in v)if(Object.prototype.hasOwnProperty.call(v,O)){var N="".concat(L).concat(s).concat(O);w[O]=this.translate(N,n({},i,{joinArrays:!1,ns:c})),w[O]===N&&(w[O]=v[O])}v=w}}else if(x&&"string"==typeof k&&"[object Array]"===b)(v=v.join(k))&&(v=this.extendTranslation(v,t,i,r));else{var R=!1,C=!1,j=void 0!==i.count&&"string"!=typeof i.count,E=o.hasDefaultValue(i),P=j?this.pluralResolver.getSuffix(g,i.count):"",F=i["defaultValue".concat(P)]||i.defaultValue;!this.isValidLookup(v)&&E&&(R=!0,v=F),this.isValidLookup(v)||(C=!0,v=l);var V=E&&F!==v&&this.options.updateMissing;if(C||R||V){if(this.logger.log(V?"updateKey":"missingKey",g,p,l,V?F:v),s){var T=this.resolve(l,n({},i,{keySeparator:!1}));T&&T.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}var A=[],U=this.languageUtils.getFallbackCodes(this.options.fallbackLng,i.lng||this.language);if("fallback"===this.options.saveMissingTo&&U&&U[0])for(var I=0;I1&&void 0!==arguments[1]?arguments[1]:{};return"string"==typeof e&&(e=[e]),e.forEach(function(e){if(!a.isValidLookup(t)){var u=a.extractFromKey(e,s),l=u.key;n=l;var c=u.namespaces;a.options.fallbackNS&&(c=c.concat(a.options.fallbackNS));var p=void 0!==s.count&&"string"!=typeof s.count,g=void 0!==s.context&&"string"==typeof s.context&&""!==s.context,f=s.lngs?s.lngs:a.languageUtils.toResolveHierarchy(s.lng||a.language,s.fallbackLng);c.forEach(function(e){a.isValidLookup(t)||(r=e,!N["".concat(f[0],"-").concat(e)]&&a.utils&&a.utils.hasLoadedNamespace&&!a.utils.hasLoadedNamespace(r)&&(N["".concat(f[0],"-").concat(e)]=!0,a.logger.warn('key "'.concat(n,'" for languages "').concat(f.join(", "),'" won\'t get resolved as namespace "').concat(r,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),f.forEach(function(n){if(!a.isValidLookup(t)){o=n;var r,u,c=l,f=[c];if(a.i18nFormat&&a.i18nFormat.addLookupKeys)a.i18nFormat.addLookupKeys(f,l,n,e,s);else p&&(r=a.pluralResolver.getSuffix(n,s.count)),p&&g&&f.push(c+r),g&&f.push(c+="".concat(a.options.contextSeparator).concat(s.context)),p&&f.push(c+=r);for(;u=f.pop();)a.isValidLookup(t)||(i=u,t=a.getResource(n,e,u,s))}}))})}}),{res:t,usedKey:n,exactUsedKey:i,usedLng:o,usedNS:r}}},{key:"isValidLookup",value:function(e){return!(void 0===e||!this.options.returnNull&&null===e||!this.options.returnEmptyString&&""===e)}},{key:"getResource",value:function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,t,n,i):this.resourceStore.getResource(e,t,n,i)}}],[{key:"hasDefaultValue",value:function(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t)&&"defaultValue"===t.substring(0,"defaultValue".length)&&void 0!==e[t])return!0;return!1}}]),o}();function C(e){return e.charAt(0).toUpperCase()+e.slice(1)}var j=function(){function e(t){i(this,e),this.options=t,this.whitelist=this.options.supportedLngs||!1,this.supportedLngs=this.options.supportedLngs||!1,this.logger=g.create("languageUtils")}return r(e,[{key:"getScriptPartFromCode",value:function(e){if(!e||e.indexOf("-")<0)return null;var t=e.split("-");return 2===t.length?null:(t.pop(),"x"===t[t.length-1].toLowerCase()?null:this.formatLanguageCode(t.join("-")))}},{key:"getLanguagePartFromCode",value:function(e){if(!e||e.indexOf("-")<0)return e;var t=e.split("-");return this.formatLanguageCode(t[0])}},{key:"formatLanguageCode",value:function(e){if("string"==typeof e&&e.indexOf("-")>-1){var t=["hans","hant","latn","cyrl","cans","mong","arab"],n=e.split("-");return this.options.lowerCaseLng?n=n.map(function(e){return e.toLowerCase()}):2===n.length?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=C(n[1].toLowerCase()))):3===n.length&&(n[0]=n[0].toLowerCase(),2===n[1].length&&(n[1]=n[1].toUpperCase()),"sgn"!==n[0]&&2===n[2].length&&(n[2]=n[2].toUpperCase()),t.indexOf(n[1].toLowerCase())>-1&&(n[1]=C(n[1].toLowerCase())),t.indexOf(n[2].toLowerCase())>-1&&(n[2]=C(n[2].toLowerCase()))),n.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}},{key:"isWhitelisted",value:function(e){return this.logger.deprecate("languageUtils.isWhitelisted",'function "isWhitelisted" will be renamed to "isSupportedCode" in the next major - please make sure to rename it\'s usage asap.'),this.isSupportedCode(e)}},{key:"isSupportedCode",value:function(e){return("languageOnly"===this.options.load||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}},{key:"getBestMatchFromCodes",value:function(e){var t,n=this;return e?(e.forEach(function(e){if(!t){var i=n.formatLanguageCode(e);n.options.supportedLngs&&!n.isSupportedCode(i)||(t=i)}}),!t&&this.options.supportedLngs&&e.forEach(function(e){if(!t){var i=n.getLanguagePartFromCode(e);if(n.isSupportedCode(i))return t=i;t=n.options.supportedLngs.find(function(e){if(0===e.indexOf(i))return e})}}),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t):null}},{key:"getFallbackCodes",value:function(e,t){if(!e)return[];if("function"==typeof e&&(e=e(t)),"string"==typeof e&&(e=[e]),"[object Array]"===Object.prototype.toString.apply(e))return e;if(!t)return e.default||[];var n=e[t];return n||(n=e[this.getScriptPartFromCode(t)]),n||(n=e[this.formatLanguageCode(t)]),n||(n=e[this.getLanguagePartFromCode(t)]),n||(n=e.default),n||[]}},{key:"toResolveHierarchy",value:function(e,t){var n=this,i=this.getFallbackCodes(t||this.options.fallbackLng||[],e),o=[],r=function(e){e&&(n.isSupportedCode(e)?o.push(e):n.logger.warn("rejecting language code not found in supportedLngs: ".concat(e)))};return"string"==typeof e&&e.indexOf("-")>-1?("languageOnly"!==this.options.load&&r(this.formatLanguageCode(e)),"languageOnly"!==this.options.load&&"currentOnly"!==this.options.load&&r(this.getScriptPartFromCode(e)),"currentOnly"!==this.options.load&&r(this.getLanguagePartFromCode(e))):"string"==typeof e&&r(this.formatLanguageCode(e)),i.forEach(function(e){o.indexOf(e)<0&&r(n.formatLanguageCode(e))}),o}}]),e}(),E=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],P={1:function(e){return Number(e>1)},2:function(e){return Number(1!=e)},3:function(e){return 0},4:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},5:function(e){return Number(0==e?0:1==e?1:2==e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5)},6:function(e){return Number(1==e?0:e>=2&&e<=4?1:2)},7:function(e){return Number(1==e?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2)},8:function(e){return Number(1==e?0:2==e?1:8!=e&&11!=e?2:3)},9:function(e){return Number(e>=2)},10:function(e){return Number(1==e?0:2==e?1:e<7?2:e<11?3:4)},11:function(e){return Number(1==e||11==e?0:2==e||12==e?1:e>2&&e<20?2:3)},12:function(e){return Number(e%10!=1||e%100==11)},13:function(e){return Number(0!==e)},14:function(e){return Number(1==e?0:2==e?1:3==e?2:3)},15:function(e){return Number(e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2)},16:function(e){return Number(e%10==1&&e%100!=11?0:0!==e?1:2)},17:function(e){return Number(1==e||e%10==1&&e%100!=11?0:1)},18:function(e){return Number(0==e?0:1==e?1:2)},19:function(e){return Number(1==e?0:0==e||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3)},20:function(e){return Number(1==e?0:0==e||e%100>0&&e%100<20?1:2)},21:function(e){return Number(e%100==1?1:e%100==2?2:e%100==3||e%100==4?3:0)},22:function(e){return Number(1==e?0:2==e?1:(e<0||e>10)&&e%10==0?2:3)}};var F=function(){function e(t){var n,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};i(this,e),this.languageUtils=t,this.options=o,this.logger=g.create("pluralResolver"),this.rules=(n={},E.forEach(function(e){e.lngs.forEach(function(t){n[t]={numbers:e.nr,plurals:P[e.fc]}})}),n)}return r(e,[{key:"addRule",value:function(e,t){this.rules[e]=t}},{key:"getRule",value:function(e){return this.rules[e]||this.rules[this.languageUtils.getLanguagePartFromCode(e)]}},{key:"needsPlural",value:function(e){var t=this.getRule(e);return t&&t.numbers.length>1}},{key:"getPluralFormsOfKey",value:function(e,t){return this.getSuffixes(e).map(function(e){return t+e})}},{key:"getSuffixes",value:function(e){var t=this,n=this.getRule(e);return n?n.numbers.map(function(n){return t.getSuffix(e,n)}):[]}},{key:"getSuffix",value:function(e,t){var n=this,i=this.getRule(e);if(i){var o=i.noAbs?i.plurals(t):i.plurals(Math.abs(t)),r=i.numbers[o];this.options.simplifyPluralSuffix&&2===i.numbers.length&&1===i.numbers[0]&&(2===r?r="plural":1===r&&(r=""));var a=function(){return n.options.prepend&&r.toString()?n.options.prepend+r.toString():r.toString()};return"v1"===this.options.compatibilityJSON?1===r?"":"number"==typeof r?"_plural_".concat(r.toString()):a():"v2"===this.options.compatibilityJSON?a():this.options.simplifyPluralSuffix&&2===i.numbers.length&&1===i.numbers[0]?a():this.options.prepend&&o.toString()?this.options.prepend+o.toString():o.toString()}return this.logger.warn("no plural rule found for: ".concat(e)),""}}]),e}(),V=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};i(this,e),this.logger=g.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||function(e){return e},this.init(t)}return r(e,[{key:"init",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.interpolation||(e.interpolation={escapeValue:!0});var t=e.interpolation;this.escape=void 0!==t.escape?t.escape:S,this.escapeValue=void 0===t.escapeValue||t.escapeValue,this.useRawValueToEscape=void 0!==t.useRawValueToEscape&&t.useRawValueToEscape,this.prefix=t.prefix?k(t.prefix):t.prefixEscaped||"{{",this.suffix=t.suffix?k(t.suffix):t.suffixEscaped||"}}",this.formatSeparator=t.formatSeparator?t.formatSeparator:t.formatSeparator||",",this.unescapePrefix=t.unescapeSuffix?"":t.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":t.unescapeSuffix||"",this.nestingPrefix=t.nestingPrefix?k(t.nestingPrefix):t.nestingPrefixEscaped||k("$t("),this.nestingSuffix=t.nestingSuffix?k(t.nestingSuffix):t.nestingSuffixEscaped||k(")"),this.nestingOptionsSeparator=t.nestingOptionsSeparator?t.nestingOptionsSeparator:t.nestingOptionsSeparator||",",this.maxReplaces=t.maxReplaces?t.maxReplaces:1e3,this.alwaysFormat=void 0!==t.alwaysFormat&&t.alwaysFormat,this.resetRegExp()}},{key:"reset",value:function(){this.options&&this.init(this.options)}},{key:"resetRegExp",value:function(){var e="".concat(this.prefix,"(.+?)").concat(this.suffix);this.regexp=new RegExp(e,"g");var t="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=new RegExp(t,"g");var n="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=new RegExp(n,"g")}},{key:"interpolate",value:function(e,t,i,o){var r,a,s,u=this,l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function c(e){return e.replace(/\$/g,"$$$$")}var p=function(e){if(e.indexOf(u.formatSeparator)<0){var r=b(t,l,e);return u.alwaysFormat?u.format(r,void 0,i,n({},o,t,{interpolationkey:e})):r}var a=e.split(u.formatSeparator),s=a.shift().trim(),c=a.join(u.formatSeparator).trim();return u.format(b(t,l,s),c,i,n({},o,t,{interpolationkey:s}))};this.resetRegExp();var g=o&&o.missingInterpolationHandler||this.options.missingInterpolationHandler,f=o&&o.interpolation&&o.interpolation.skipOnVariables||this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:function(e){return c(e)}},{regex:this.regexp,safeValue:function(e){return u.escapeValue?c(u.escape(e)):c(e)}}].forEach(function(t){for(s=0;r=t.regex.exec(e);){if(void 0===(a=p(r[1].trim())))if("function"==typeof g){var n=g(e,r,o);a="string"==typeof n?n:""}else{if(f){a=r[0];continue}u.logger.warn("missed to pass in variable ".concat(r[1]," for interpolating ").concat(e)),a=""}else"string"==typeof a||u.useRawValueToEscape||(a=d(a));var i=t.safeValue(a);if(e=e.replace(r[0],i),f?(t.regex.lastIndex+=i.length,t.regex.lastIndex-=r[0].length):t.regex.lastIndex=0,++s>=u.maxReplaces)break}}),e}},{key:"nest",value:function(e,t){var i,o,r=this,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=n({},a);function u(e,t){var i=this.nestingOptionsSeparator;if(e.indexOf(i)<0)return e;var o=e.split(new RegExp("".concat(i,"[ ]*{"))),r="{".concat(o[1]);e=o[0],r=(r=this.interpolate(r,s)).replace(/'/g,'"');try{s=JSON.parse(r),t&&(s=n({},t,s))}catch(t){return this.logger.warn("failed parsing options string in nesting for key ".concat(e),t),"".concat(e).concat(i).concat(r)}return delete s.defaultValue,e}for(s.applyPostProcessor=!1,delete s.defaultValue;i=this.nestingRegexp.exec(e);){var l=[],c=!1;if(-1!==i[0].indexOf(this.formatSeparator)&&!/{.*}/.test(i[1])){var p=i[1].split(this.formatSeparator).map(function(e){return e.trim()});i[1]=p.shift(),l=p,c=!0}if((o=t(u.call(this,i[1].trim(),s),s))&&i[0]===e&&"string"!=typeof o)return o;"string"!=typeof o&&(o=d(o)),o||(this.logger.warn("missed to resolve ".concat(i[1]," for nesting ").concat(e)),o=""),c&&(o=l.reduce(function(e,t){return r.format(e,t,a.lng,n({},a,{interpolationkey:i[1].trim()}))},o.trim())),e=e.replace(i[0],o),this.regexp.lastIndex=0}return e}}]),e}();var T=function(e){function t(e,n,o){var r,l=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return i(this,t),r=s(this,u(t).call(this)),w&&f.call(a(r)),r.backend=e,r.store=n,r.services=o,r.languageUtils=o.languageUtils,r.options=l,r.logger=g.create("backendConnector"),r.state={},r.queue=[],r.backend&&r.backend.init&&r.backend.init(o,l.backend,l),r}return c(t,f),r(t,[{key:"queueLoad",value:function(e,t,n,i){var o=this,r=[],a=[],s=[],u=[];return e.forEach(function(e){var i=!0;t.forEach(function(t){var s="".concat(e,"|").concat(t);!n.reload&&o.store.hasResourceBundle(e,t)?o.state[s]=2:o.state[s]<0||(1===o.state[s]?a.indexOf(s)<0&&a.push(s):(o.state[s]=1,i=!1,a.indexOf(s)<0&&a.push(s),r.indexOf(s)<0&&r.push(s),u.indexOf(t)<0&&u.push(t)))}),i||s.push(e)}),(r.length||a.length)&&this.queue.push({pending:a,loaded:{},errors:[],callback:i}),{toLoad:r,pending:a,toLoadLanguages:s,toLoadNamespaces:u}}},{key:"loaded",value:function(e,t,n){var i=e.split("|"),o=i[0],r=i[1];t&&this.emit("failedLoading",o,r,t),n&&this.store.addResourceBundle(o,r,n),this.state[e]=t?-1:2;var a={};this.queue.forEach(function(n){var i,s,u,l,c,p;i=n.loaded,s=r,l=v(i,[o],Object),c=l.obj,p=l.k,c[p]=c[p]||[],u&&(c[p]=c[p].concat(s)),u||c[p].push(s),function(e,t){for(var n=e.indexOf(t);-1!==n;)e.splice(n,1),n=e.indexOf(t)}(n.pending,e),t&&n.errors.push(t),0!==n.pending.length||n.done||(Object.keys(n.loaded).forEach(function(e){a[e]||(a[e]=[]),n.loaded[e].length&&n.loaded[e].forEach(function(t){a[e].indexOf(t)<0&&a[e].push(t)})}),n.done=!0,n.errors.length?n.callback(n.errors):n.callback())}),this.emit("loaded",a),this.queue=this.queue.filter(function(e){return!e.done})}},{key:"read",value:function(e,t,n){var i=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:350,a=arguments.length>5?arguments[5]:void 0;return e.length?this.backend[n](e,t,function(s,u){s&&u&&o<5?setTimeout(function(){i.read.call(i,e,t,n,o+1,2*r,a)},r):a(s,u)}):a(null,{})}},{key:"prepareLoading",value:function(e,t){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),o&&o();"string"==typeof e&&(e=this.languageUtils.toResolveHierarchy(e)),"string"==typeof t&&(t=[t]);var r=this.queueLoad(e,t,i,o);if(!r.toLoad.length)return r.pending.length||o(),null;r.toLoad.forEach(function(e){n.loadOne(e)})}},{key:"load",value:function(e,t,n){this.prepareLoading(e,t,{},n)}},{key:"reload",value:function(e,t,n){this.prepareLoading(e,t,{reload:!0},n)}},{key:"loadOne",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=e.split("|"),o=i[0],r=i[1];this.read(o,r,"read",void 0,void 0,function(i,a){i&&t.logger.warn("".concat(n,"loading namespace ").concat(r," for language ").concat(o," failed"),i),!i&&a&&t.logger.log("".concat(n,"loaded namespace ").concat(r," for language ").concat(o),a),t.loaded(e,i,a)})}},{key:"saveMissing",value:function(e,t,i,o,r){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(t)?this.logger.warn('did not save key "'.concat(i,'" as the namespace "').concat(t,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!"):null!=i&&""!==i&&(this.backend&&this.backend.create&&this.backend.create(e,t,i,o,null,n({},a,{isUpdate:r})),e&&e[0]&&this.store.addResource(e[0],t,i,o))}}]),t}();function A(e){return"string"==typeof e.ns&&(e.ns=[e.ns]),"string"==typeof e.fallbackLng&&(e.fallbackLng=[e.fallbackLng]),"string"==typeof e.fallbackNS&&(e.fallbackNS=[e.fallbackNS]),e.whitelist&&(e.whitelist&&e.whitelist.indexOf("cimode")<0&&(e.whitelist=e.whitelist.concat(["cimode"])),e.supportedLngs=e.whitelist),e.nonExplicitWhitelist&&(e.nonExplicitSupportedLngs=e.nonExplicitWhitelist),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e}function U(){}return new(function(t){function o(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;if(i(this,o),e=s(this,u(o).call(this)),w&&f.call(a(e)),e.options=A(t),e.services={},e.logger=g,e.modules={external:[]},n&&!e.isInitialized&&!t.isClone){if(!e.options.initImmediate)return e.init(t,n),s(e,a(e));setTimeout(function(){e.init(t,n)},0)}return e}return c(o,f),r(o,[{key:"init",value:function(){var t=this,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=arguments.length>1?arguments[1]:void 0;function r(e){return e?"function"==typeof e?new e:e:null}if("function"==typeof i&&(o=i,i={}),i.whitelist&&!i.supportedLngs&&this.logger.deprecate("whitelist",'option "whitelist" will be renamed to "supportedLngs" in the next major - please make sure to rename this option asap.'),i.nonExplicitWhitelist&&!i.nonExplicitSupportedLngs&&this.logger.deprecate("whitelist",'options "nonExplicitWhitelist" will be renamed to "nonExplicitSupportedLngs" in the next major - please make sure to rename this option asap.'),this.options=n({},{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,whitelist:!1,nonExplicitWhitelist:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(t){var n={};if("object"===e(t[1])&&(n=t[1]),"string"==typeof t[1]&&(n.defaultValue=t[1]),"string"==typeof t[2]&&(n.tDescription=t[2]),"object"===e(t[2])||"object"===e(t[3])){var i=t[3]||t[2];Object.keys(i).forEach(function(e){n[e]=i[e]})}return n},interpolation:{escapeValue:!0,format:function(e,t,n,i){return e},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!1}},this.options,A(i)),this.format=this.options.interpolation.format,o||(o=U),!this.options.isClone){this.modules.logger?g.init(r(this.modules.logger),this.options):g.init(null,this.options);var a=new j(this.options);this.store=new L(this.options.resources,this.options);var s=this.services;s.logger=g,s.resourceStore=this.store,s.languageUtils=a,s.pluralResolver=new F(a,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),s.interpolator=new V(this.options),s.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},s.backendConnector=new T(r(this.modules.backend),s.resourceStore,s,this.options),s.backendConnector.on("*",function(e){for(var n=arguments.length,i=new Array(n>1?n-1:0),o=1;o1?n-1:0),o=1;o0&&"dev"!==u[0]&&(this.options.lng=u[0])}this.services.languageDetector||this.options.lng||this.logger.warn("init: no languageDetector is used and no lng is defined");["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(function(e){t[e]=function(){var n;return(n=t.store)[e].apply(n,arguments)}});["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(function(e){t[e]=function(){var n;return(n=t.store)[e].apply(n,arguments),t}});var l=h(),c=function(){var e=function(e,n){t.isInitialized&&t.logger.warn("init: i18next is already initialized. You should call init just once!"),t.isInitialized=!0,t.options.isClone||t.logger.log("initialized",t.options),t.emit("initialized",t.options),l.resolve(n),o(e,n)};if(t.languages&&"v1"!==t.options.compatibilityAPI&&!t.isInitialized)return e(null,t.t.bind(t));t.changeLanguage(t.options.lng,e)};return this.options.resources||!this.options.initImmediate?c():setTimeout(c,0),l}},{key:"loadResources",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:U,i="string"==typeof e?e:this.language;if("function"==typeof e&&(n=e),!this.options.resources||this.options.partialBundledLanguages){if(i&&"cimode"===i.toLowerCase())return n();var o=[],r=function(e){e&&t.services.languageUtils.toResolveHierarchy(e).forEach(function(e){o.indexOf(e)<0&&o.push(e)})};if(i)r(i);else this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(function(e){return r(e)});this.options.preload&&this.options.preload.forEach(function(e){return r(e)}),this.services.backendConnector.load(o,this.options.ns,n)}else n(null)}},{key:"reloadResources",value:function(e,t,n){var i=h();return e||(e=this.languages),t||(t=this.options.ns),n||(n=U),this.services.backendConnector.reload(e,t,function(e){i.resolve(),n(e)}),i}},{key:"use",value:function(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return"backend"===e.type&&(this.modules.backend=e),("logger"===e.type||e.log&&e.warn&&e.error)&&(this.modules.logger=e),"languageDetector"===e.type&&(this.modules.languageDetector=e),"i18nFormat"===e.type&&(this.modules.i18nFormat=e),"postProcessor"===e.type&&O.addPostProcessor(e),"3rdParty"===e.type&&this.modules.external.push(e),this}},{key:"changeLanguage",value:function(e,t){var n=this;this.isLanguageChangingTo=e;var i=h();this.emit("languageChanging",e);var o=function(e){var o="string"==typeof e?e:n.services.languageUtils.getBestMatchFromCodes(e);o&&(n.language||(n.language=o,n.languages=n.services.languageUtils.toResolveHierarchy(o)),n.translator.language||n.translator.changeLanguage(o),n.services.languageDetector&&n.services.languageDetector.cacheUserLanguage(o)),n.loadResources(o,function(e){!function(e,o){o?(n.language=o,n.languages=n.services.languageUtils.toResolveHierarchy(o),n.translator.changeLanguage(o),n.isLanguageChangingTo=void 0,n.emit("languageChanged",o),n.logger.log("languageChanged",o)):n.isLanguageChangingTo=void 0,i.resolve(function(){return n.t.apply(n,arguments)}),t&&t(e,function(){return n.t.apply(n,arguments)})}(e,o)})};return e||!this.services.languageDetector||this.services.languageDetector.async?!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect(o):o(e):o(this.services.languageDetector.detect()),i}},{key:"getFixedT",value:function(t,i){var o=this,r=function t(i,r){var a;if("object"!==e(r)){for(var s=arguments.length,u=new Array(s>2?s-2:0),l=2;l1&&void 0!==arguments[1]?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;var i=this.languages[0],o=!!this.options&&this.options.fallbackLng,r=this.languages[this.languages.length-1];if("cimode"===i.toLowerCase())return!0;var a=function(e,n){var i=t.services.backendConnector.state["".concat(e,"|").concat(n)];return-1===i||2===i};if(n.precheck){var s=n.precheck(this,a);if(void 0!==s)return s}return!!this.hasResourceBundle(i,e)||(!this.services.backendConnector.backend||!(!a(i,e)||o&&!a(r,e)))}},{key:"loadNamespaces",value:function(e,t){var n=this,i=h();return this.options.ns?("string"==typeof e&&(e=[e]),e.forEach(function(e){n.options.ns.indexOf(e)<0&&n.options.ns.push(e)}),this.loadResources(function(e){i.resolve(),t&&t(e)}),i):(t&&t(),Promise.resolve())}},{key:"loadLanguages",value:function(e,t){var n=h();"string"==typeof e&&(e=[e]);var i=this.options.preload||[],o=e.filter(function(e){return i.indexOf(e)<0});return o.length?(this.options.preload=i.concat(o),this.loadResources(function(e){n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}},{key:"dir",value:function(e){if(e||(e=this.languages&&this.languages.length>0?this.languages[0]:this.language),!e)return"rtl";return["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam"].indexOf(this.services.languageUtils.getLanguagePartFromCode(e))>=0?"rtl":"ltr"}},{key:"createInstance",value:function(){return new o(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},arguments.length>1?arguments[1]:void 0)}},{key:"cloneInstance",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:U,r=n({},this.options,t,{isClone:!0}),a=new o(r);return["store","services","language"].forEach(function(t){a[t]=e[t]}),a.services=n({},this.services),a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a.translator=new R(a.services,a.options),a.translator.on("*",function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i { + await i18next.init({ + lng: lang, + fallbackLng: "en", + resources: {} + }).then(() => { + l10n.language.direction = i18next.dir(); + l10n.switchTo(lang); + }); + }; + + l10n.get = (key, parameter) => { + return i18next.t(key, parameter); + }; + + l10n.loadLanguageResource = (lang) => { + return new Promise((resolve, reject) => { + axios.get("./locales/" + lang + ".json").then((response) => { + resolve(response.data); + }).catch((error) => { + console.log("Failed to load " + lang + " language: " + error); + resolve(null); // Resolve with null to indicate failure + }); + }); + }; + + l10n.switchTo = (lang) => { + if (!i18next.hasResourceBundle(lang, "translation")) { + console.log("Loading " + lang + " language"); + l10n.loadLanguageResource(lang).then((locales) => { + if (locales !== null) { + i18next.addResourceBundle(lang, "translation", locales); + i18next.changeLanguage(lang); + triggerLocalizedEvent(); + } else { + l10n.init("en"); + } + }); + } else { + i18next.changeLanguage(lang); + triggerLocalizedEvent(); + } + }; + + + function triggerLocalizedEvent() { + const event = new Event("localized"); + window.dispatchEvent(event); + }; + + return l10n; +}); \ No newline at end of file diff --git a/activities/Write.activity/lib/sugar-web/activity/activity.js b/activities/Write.activity/lib/sugar-web/activity/activity.js index c3524b432..2fa8f23de 100644 --- a/activities/Write.activity/lib/sugar-web/activity/activity.js +++ b/activities/Write.activity/lib/sugar-web/activity/activity.js @@ -1,12 +1,11 @@ -define(["webL10n", - "sugar-web/activity/shortcut", +define(["sugar-web/activity/shortcut", "sugar-web/bus", "sugar-web/env", "sugar-web/datastore", "sugar-web/presence", "sugar-web/graphics/icon", "sugar-web/graphics/activitypalette"], function ( - l10n, shortcut, bus, env, datastore, presence, icon, activitypalette) { + shortcut, bus, env, datastore, presence, icon, activitypalette) { 'use strict'; @@ -22,7 +21,6 @@ define(["webL10n", activity.setup = function () { bus.listen(); - l10n.start(); function sendPauseEvent() { var pauseEvent = document.createEvent("CustomEvent"); diff --git a/activities/Write.activity/lib/sugar-web/package.json b/activities/Write.activity/lib/sugar-web/package.json index f2e3555b2..0c2dec139 100644 --- a/activities/Write.activity/lib/sugar-web/package.json +++ b/activities/Write.activity/lib/sugar-web/package.json @@ -2,7 +2,6 @@ "volo": { "baseUrl": "lib", "dependencies": { - "webL10n": "github:sugarlabs/webL10n", "mustache": "github:janl/mustache.js/0.7.2", "text": "github:requirejs/text" } diff --git a/activities/Write.activity/lib/sugar-web/test/loader.js b/activities/Write.activity/lib/sugar-web/test/loader.js index aec983753..7c83cc931 100644 --- a/activities/Write.activity/lib/sugar-web/test/loader.js +++ b/activities/Write.activity/lib/sugar-web/test/loader.js @@ -9,8 +9,7 @@ requirejs.config({ paths: { "sugar-web": ".", "mustache": "lib/mustache", - "text": "lib/text", - "webL10n": "lib/webL10n" + "text": "lib/text" }, // ask Require.js to load these files (all our tests) diff --git a/activities/Write.activity/lib/tutorial.js b/activities/Write.activity/lib/tutorial.js index 022ec2c03..b6a00b52c 100644 --- a/activities/Write.activity/lib/tutorial.js +++ b/activities/Write.activity/lib/tutorial.js @@ -1,4 +1,4 @@ -define(["webL10n"], function (l10n) { +define(["l10n"], function (l10n) { var tutorial = {}; tutorial.start = function() { diff --git a/activities/Write.activity/lib/webL10n.js b/activities/Write.activity/lib/webL10n.js deleted file mode 100644 index f76d66a5e..000000000 --- a/activities/Write.activity/lib/webL10n.js +++ /dev/null @@ -1,1029 +0,0 @@ -/** - * Copyright (c) 2011-2013 Fabien Cazenave, Mozilla. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - * IN THE SOFTWARE. - */ - -/*jshint browser: true, devel: true, es5: true, globalstrict: true */ -'use strict'; - -define(function (require) { - var gL10nData = {}; - var gTextData = ''; - var gTextProp = 'textContent'; - var gLanguage = ''; - var gMacros = {}; - var gReadyState = 'loading'; - - /** - * Synchronously loading l10n resources significantly minimizes flickering - * from displaying the app with non-localized strings and then updating the - * strings. Although this will block all script execution on this page, we - * expect that the l10n resources are available locally on flash-storage. - * - * As synchronous XHR is generally considered as a bad idea, we're still - * loading l10n resources asynchronously -- but we keep this in a setting, - * just in case... and applications using this library should hide their - * content until the `localized' event happens. - */ - - var gAsyncResourceLoading = true; // read-only - - - /** - * Debug helpers - * - * gDEBUG == 0: don't display any console message - * gDEBUG == 1: display only warnings, not logs - * gDEBUG == 2: display all console messages - */ - - var gDEBUG = 1; - - function consoleLog(message) { - if (gDEBUG >= 2) { - console.log('[l10n] ' + message); - } - }; - - function consoleWarn(message) { - if (gDEBUG) { - console.warn('[l10n] ' + message); - } - }; - - - /** - * DOM helpers for the so-called "HTML API". - * - * These functions are written for modern browsers. For old versions of IE, - * they're overridden in the 'startup' section at the end of this file. - */ - - function getL10nResourceLinks() { - return document.querySelectorAll('link[type="application/l10n"]'); - } - - function getL10nDictionary() { - var script = document.querySelector('script[type="application/l10n"]'); - // TODO: support multiple and external JSON dictionaries - return script ? JSON.parse(script.innerHTML) : null; - } - - function getTranslatableChildren(element) { - return element ? element.querySelectorAll('*[data-l10n-id]') : []; - } - - function getL10nAttributes(element) { - if (!element) - return {}; - - var l10nId = element.getAttribute('data-l10n-id'); - var l10nArgs = element.getAttribute('data-l10n-args'); - var args = {}; - if (l10nArgs) { - try { - args = JSON.parse(l10nArgs); - } catch (e) { - consoleWarn('could not parse arguments for #' + l10nId); - } - } - return { id: l10nId, args: args }; - } - - function fireL10nReadyEvent(lang) { - var evtObject = document.createEvent('Event'); - evtObject.initEvent('localized', true, false); - evtObject.language = lang; - document.dispatchEvent(evtObject); - } - - function xhrLoadText(url, onSuccess, onFailure, asynchronous) { - onSuccess = onSuccess || function _onSuccess(data) {}; - onFailure = onFailure || function _onFailure() { - consoleWarn(url + ' not found.'); - }; - - var xhr = new XMLHttpRequest(); - xhr.open('GET', url, asynchronous); - if (xhr.overrideMimeType) { - xhr.overrideMimeType('text/plain; charset=utf-8'); - } - xhr.onreadystatechange = function() { - if (xhr.readyState == 4) { - if (xhr.status == 200 || xhr.status === 0) { - onSuccess(xhr.responseText); - } else { - onFailure(); - } - } - }; - xhr.onerror = onFailure; - xhr.ontimeout = onFailure; - - // in Firefox OS with the app:// protocol, trying to XHR a non-existing - // URL will raise an exception here -- hence this ugly try...catch. - try { - xhr.send(null); - } catch (e) { - onFailure(); - } - } - - - /** - * l10n resource parser: - * - reads (async XHR) the l10n resource matching `lang'; - * - imports linked resources (synchronously) when specified; - * - parses the text data (fills `gL10nData' and `gTextData'); - * - triggers success/failure callbacks when done. - * - * @param {string} href - * URL of the l10n resource to parse. - * - * @param {string} lang - * locale (language) to parse. - * - * @param {Function} successCallback - * triggered when the l10n resource has been successully parsed. - * - * @param {Function} failureCallback - * triggered when the an error has occured. - * - * @return {void} - * uses the following global variables: gL10nData, gTextData, gTextProp. - */ - - function parseResource(href, lang, successCallback, failureCallback) { - var baseURL = href.replace(/[^\/]*$/, '') || './'; - - // handle escaped characters (backslashes) in a string - function evalString(text) { - if (text.lastIndexOf('\\') < 0) - return text; - return text.replace(/\\\\/g, '\\') - .replace(/\\n/g, '\n') - .replace(/\\r/g, '\r') - .replace(/\\t/g, '\t') - .replace(/\\b/g, '\b') - .replace(/\\f/g, '\f') - .replace(/\\{/g, '{') - .replace(/\\}/g, '}') - .replace(/\\"/g, '"') - .replace(/\\'/g, "'"); - } - - // parse *.properties text data into an l10n dictionary - function parseProperties(text) { - var dictionary = []; - - // token expressions - var reBlank = /^\s*|\s*$/; - var reComment = /^\s*#|^\s*$/; - var reSection = /^\s*\[(.*)\]\s*$/; - var reImport = /^\s*@import\s+url\((.*)\)\s*$/i; - var reSplit = /^([^=\s]*)\s*=\s*(.+)$/; // TODO: escape EOLs with '\' - - // parse the *.properties file into an associative array - function parseRawLines(rawText, extendedSyntax) { - var entries = rawText.replace(reBlank, '').split(/[\r\n]+/); - var currentLang = '*'; - var genericLang = lang.replace(/-[a-z]+$/i, ''); - var skipLang = false; - var match = ''; - - for (var i = 0; i < entries.length; i++) { - var line = entries[i]; - - // comment or blank line? - if (reComment.test(line)) - continue; - - // the extended syntax supports [lang] sections and @import rules - if (extendedSyntax) { - if (reSection.test(line)) { // section start? - match = reSection.exec(line); - currentLang = match[1]; - skipLang = (currentLang !== '*') && - (currentLang !== lang) && (currentLang !== genericLang); - continue; - } else if (skipLang) { - continue; - } - if (reImport.test(line)) { // @import rule? - match = reImport.exec(line); - loadImport(baseURL + match[1]); // load the resource synchronously - } - } - - // key-value pair - var tmp = line.match(reSplit); - if (tmp && tmp.length == 3) { - dictionary[tmp[1]] = evalString(tmp[2]); - } - } - } - - // import another *.properties file - function loadImport(url) { - xhrLoadText(url, function(content) { - parseRawLines(content, false); // don't allow recursive imports - }, null, false); // load synchronously - } - - // fill the dictionary - parseRawLines(text, true); - return dictionary; - } - - // load and parse l10n data (warning: global variables are used here) - xhrLoadText(href, function(response) { - gTextData += response; // mostly for debug - - // parse *.properties text data into an l10n dictionary - var data = parseProperties(response); - - // find attribute descriptions, if any - for (var key in data) { - var id, prop, index = key.lastIndexOf('.'); - if (index > 0) { // an attribute has been specified - id = key.substring(0, index); - prop = key.substr(index + 1); - } else { // no attribute: assuming text content by default - id = key; - prop = gTextProp; - } - if (!gL10nData[id]) { - gL10nData[id] = {}; - } - gL10nData[id][prop] = data[key]; - } - - // trigger callback - if (successCallback) { - successCallback(); - } - }, failureCallback, gAsyncResourceLoading); - }; - - // load and parse all resources for the specified locale - function loadLocale(lang, callback) { - callback = callback || function _callback() {}; - - clear(); - gLanguage = lang; - - // check all nodes - // and load the resource files - var langLinks = getL10nResourceLinks(); - var langCount = langLinks.length; - if (langCount == 0) { - // we might have a pre-compiled dictionary instead - var dict = getL10nDictionary(); - if (dict && dict.locales && dict.default_locale) { - consoleLog('using the embedded JSON directory, early way out'); - gL10nData = dict.locales[lang] || dict.locales[dict.default_locale]; - callback(); - } else { - consoleLog('no resource to load, early way out'); - } - // early way out - fireL10nReadyEvent(lang); - gReadyState = 'complete'; - return; - } - - // start the callback when all resources are loaded - var onResourceLoaded = null; - var gResourceCount = 0; - onResourceLoaded = function() { - gResourceCount++; - if (gResourceCount >= langCount) { - callback(); - fireL10nReadyEvent(lang); - gReadyState = 'complete'; - } - }; - - // load all resource files - function l10nResourceLink(link) { - var href = link.href; - var type = link.type; - this.load = function(lang, callback) { - var applied = lang; - parseResource(href, lang, callback, function() { - consoleWarn(href + ' not found.'); - applied = ''; - }); - return applied; // return lang if found, an empty string if not found - }; - } - - for (var i = 0; i < langCount; i++) { - var resource = new l10nResourceLink(langLinks[i]); - var rv = resource.load(lang, onResourceLoaded); - if (rv != lang) { // lang not found, used default resource instead - consoleWarn('"' + lang + '" resource not found'); - gLanguage = ''; - } - } - } - - // clear all l10n data - function clear() { - gL10nData = {}; - gTextData = ''; - gLanguage = ''; - // TODO: clear all non predefined macros. - // There's no such macro /yet/ but we're planning to have some... - } - - - /** - * Get rules for plural forms (shared with JetPack), see: - * http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html - * https://github.com/mozilla/addon-sdk/blob/master/python-lib/plural-rules-generator.p - * - * @param {string} lang - * locale (language) used. - * - * @return {Function} - * returns a function that gives the plural form name for a given integer: - * var fun = getPluralRules('en'); - * fun(1) -> 'one' - * fun(0) -> 'other' - * fun(1000) -> 'other'. - */ - - function getPluralRules(lang) { - var locales2rules = { - 'af': 3, - 'ak': 4, - 'am': 4, - 'ar': 1, - 'asa': 3, - 'az': 0, - 'be': 11, - 'bem': 3, - 'bez': 3, - 'bg': 3, - 'bh': 4, - 'bm': 0, - 'bn': 3, - 'bo': 0, - 'br': 20, - 'brx': 3, - 'bs': 11, - 'ca': 3, - 'cgg': 3, - 'chr': 3, - 'cs': 12, - 'cy': 17, - 'da': 3, - 'de': 3, - 'dv': 3, - 'dz': 0, - 'ee': 3, - 'el': 3, - 'en': 3, - 'eo': 3, - 'es': 3, - 'et': 3, - 'eu': 3, - 'fa': 0, - 'ff': 5, - 'fi': 3, - 'fil': 4, - 'fo': 3, - 'fr': 5, - 'fur': 3, - 'fy': 3, - 'ga': 8, - 'gd': 24, - 'gl': 3, - 'gsw': 3, - 'gu': 3, - 'guw': 4, - 'gv': 23, - 'ha': 3, - 'haw': 3, - 'he': 2, - 'hi': 4, - 'hr': 11, - 'hu': 0, - 'id': 0, - 'ig': 0, - 'ii': 0, - 'is': 3, - 'it': 3, - 'iu': 7, - 'ja': 0, - 'jmc': 3, - 'jv': 0, - 'ka': 0, - 'kab': 5, - 'kaj': 3, - 'kcg': 3, - 'kde': 0, - 'kea': 0, - 'kk': 3, - 'kl': 3, - 'km': 0, - 'kn': 0, - 'ko': 0, - 'ksb': 3, - 'ksh': 21, - 'ku': 3, - 'kw': 7, - 'lag': 18, - 'lb': 3, - 'lg': 3, - 'ln': 4, - 'lo': 0, - 'lt': 10, - 'lv': 6, - 'mas': 3, - 'mg': 4, - 'mk': 16, - 'ml': 3, - 'mn': 3, - 'mo': 9, - 'mr': 3, - 'ms': 0, - 'mt': 15, - 'my': 0, - 'nah': 3, - 'naq': 7, - 'nb': 3, - 'nd': 3, - 'ne': 3, - 'nl': 3, - 'nn': 3, - 'no': 3, - 'nr': 3, - 'nso': 4, - 'ny': 3, - 'nyn': 3, - 'om': 3, - 'or': 3, - 'pa': 3, - 'pap': 3, - 'pl': 13, - 'ps': 3, - 'pt': 3, - 'rm': 3, - 'ro': 9, - 'rof': 3, - 'ru': 11, - 'rwk': 3, - 'sah': 0, - 'saq': 3, - 'se': 7, - 'seh': 3, - 'ses': 0, - 'sg': 0, - 'sh': 11, - 'shi': 19, - 'sk': 12, - 'sl': 14, - 'sma': 7, - 'smi': 7, - 'smj': 7, - 'smn': 7, - 'sms': 7, - 'sn': 3, - 'so': 3, - 'sq': 3, - 'sr': 11, - 'ss': 3, - 'ssy': 3, - 'st': 3, - 'sv': 3, - 'sw': 3, - 'syr': 3, - 'ta': 3, - 'te': 3, - 'teo': 3, - 'th': 0, - 'ti': 4, - 'tig': 3, - 'tk': 3, - 'tl': 4, - 'tn': 3, - 'to': 0, - 'tr': 0, - 'ts': 3, - 'tzm': 22, - 'uk': 11, - 'ur': 3, - 've': 3, - 'vi': 0, - 'vun': 3, - 'wa': 4, - 'wae': 3, - 'wo': 0, - 'xh': 3, - 'xog': 3, - 'yo': 0, - 'zh': 0, - 'zu': 3 - }; - - // utility functions for plural rules methods - function isIn(n, list) { - return list.indexOf(n) !== -1; - } - function isBetween(n, start, end) { - return start <= n && n <= end; - } - - // list of all plural rules methods: - // map an integer to the plural form name to use - var pluralRules = { - '0': function(n) { - return 'other'; - }, - '1': function(n) { - if ((isBetween((n % 100), 3, 10))) - return 'few'; - if (n === 0) - return 'zero'; - if ((isBetween((n % 100), 11, 99))) - return 'many'; - if (n == 2) - return 'two'; - if (n == 1) - return 'one'; - return 'other'; - }, - '2': function(n) { - if (n !== 0 && (n % 10) === 0) - return 'many'; - if (n == 2) - return 'two'; - if (n == 1) - return 'one'; - return 'other'; - }, - '3': function(n) { - if (n == 1) - return 'one'; - return 'other'; - }, - '4': function(n) { - if ((isBetween(n, 0, 1))) - return 'one'; - return 'other'; - }, - '5': function(n) { - if ((isBetween(n, 0, 2)) && n != 2) - return 'one'; - return 'other'; - }, - '6': function(n) { - if (n === 0) - return 'zero'; - if ((n % 10) == 1 && (n % 100) != 11) - return 'one'; - return 'other'; - }, - '7': function(n) { - if (n == 2) - return 'two'; - if (n == 1) - return 'one'; - return 'other'; - }, - '8': function(n) { - if ((isBetween(n, 3, 6))) - return 'few'; - if ((isBetween(n, 7, 10))) - return 'many'; - if (n == 2) - return 'two'; - if (n == 1) - return 'one'; - return 'other'; - }, - '9': function(n) { - if (n === 0 || n != 1 && (isBetween((n % 100), 1, 19))) - return 'few'; - if (n == 1) - return 'one'; - return 'other'; - }, - '10': function(n) { - if ((isBetween((n % 10), 2, 9)) && !(isBetween((n % 100), 11, 19))) - return 'few'; - if ((n % 10) == 1 && !(isBetween((n % 100), 11, 19))) - return 'one'; - return 'other'; - }, - '11': function(n) { - if ((isBetween((n % 10), 2, 4)) && !(isBetween((n % 100), 12, 14))) - return 'few'; - if ((n % 10) === 0 || - (isBetween((n % 10), 5, 9)) || - (isBetween((n % 100), 11, 14))) - return 'many'; - if ((n % 10) == 1 && (n % 100) != 11) - return 'one'; - return 'other'; - }, - '12': function(n) { - if ((isBetween(n, 2, 4))) - return 'few'; - if (n == 1) - return 'one'; - return 'other'; - }, - '13': function(n) { - if ((isBetween((n % 10), 2, 4)) && !(isBetween((n % 100), 12, 14))) - return 'few'; - if (n != 1 && (isBetween((n % 10), 0, 1)) || - (isBetween((n % 10), 5, 9)) || - (isBetween((n % 100), 12, 14))) - return 'many'; - if (n == 1) - return 'one'; - return 'other'; - }, - '14': function(n) { - if ((isBetween((n % 100), 3, 4))) - return 'few'; - if ((n % 100) == 2) - return 'two'; - if ((n % 100) == 1) - return 'one'; - return 'other'; - }, - '15': function(n) { - if (n === 0 || (isBetween((n % 100), 2, 10))) - return 'few'; - if ((isBetween((n % 100), 11, 19))) - return 'many'; - if (n == 1) - return 'one'; - return 'other'; - }, - '16': function(n) { - if ((n % 10) == 1 && n != 11) - return 'one'; - return 'other'; - }, - '17': function(n) { - if (n == 3) - return 'few'; - if (n === 0) - return 'zero'; - if (n == 6) - return 'many'; - if (n == 2) - return 'two'; - if (n == 1) - return 'one'; - return 'other'; - }, - '18': function(n) { - if (n === 0) - return 'zero'; - if ((isBetween(n, 0, 2)) && n !== 0 && n != 2) - return 'one'; - return 'other'; - }, - '19': function(n) { - if ((isBetween(n, 2, 10))) - return 'few'; - if ((isBetween(n, 0, 1))) - return 'one'; - return 'other'; - }, - '20': function(n) { - if ((isBetween((n % 10), 3, 4) || ((n % 10) == 9)) && !( - isBetween((n % 100), 10, 19) || - isBetween((n % 100), 70, 79) || - isBetween((n % 100), 90, 99) - )) - return 'few'; - if ((n % 1000000) === 0 && n !== 0) - return 'many'; - if ((n % 10) == 2 && !isIn((n % 100), [12, 72, 92])) - return 'two'; - if ((n % 10) == 1 && !isIn((n % 100), [11, 71, 91])) - return 'one'; - return 'other'; - }, - '21': function(n) { - if (n === 0) - return 'zero'; - if (n == 1) - return 'one'; - return 'other'; - }, - '22': function(n) { - if ((isBetween(n, 0, 1)) || (isBetween(n, 11, 99))) - return 'one'; - return 'other'; - }, - '23': function(n) { - if ((isBetween((n % 10), 1, 2)) || (n % 20) === 0) - return 'one'; - return 'other'; - }, - '24': function(n) { - if ((isBetween(n, 3, 10) || isBetween(n, 13, 19))) - return 'few'; - if (isIn(n, [2, 12])) - return 'two'; - if (isIn(n, [1, 11])) - return 'one'; - return 'other'; - } - }; - - // return a function that gives the plural form name for a given integer - var index = locales2rules[lang.replace(/-.*$/, '')]; - if (!(index in pluralRules)) { - consoleWarn('plural form unknown for [' + lang + ']'); - return function() { return 'other'; }; - } - return pluralRules[index]; - } - - // pre-defined 'plural' macro - gMacros.plural = function(str, param, key, prop) { - var n = parseFloat(param); - if (isNaN(n)) - return str; - - // TODO: support other properties (l20n still doesn't...) - if (prop != gTextProp) - return str; - - // initialize _pluralRules - if (!gMacros._pluralRules) { - gMacros._pluralRules = getPluralRules(gLanguage); - } - var index = '[' + gMacros._pluralRules(n) + ']'; - - // try to find a [zero|one|two] key if it's defined - if (n === 0 && (key + '[zero]') in gL10nData) { - str = gL10nData[key + '[zero]'][prop]; - } else if (n == 1 && (key + '[one]') in gL10nData) { - str = gL10nData[key + '[one]'][prop]; - } else if (n == 2 && (key + '[two]') in gL10nData) { - str = gL10nData[key + '[two]'][prop]; - } else if ((key + index) in gL10nData) { - str = gL10nData[key + index][prop]; - } else if ((key + '[other]') in gL10nData) { - str = gL10nData[key + '[other]'][prop]; - } - - return str; - }; - - - /** - * l10n dictionary functions - */ - - // fetch an l10n object, warn if not found, apply `args' if possible - function getL10nData(key, args) { - var data = gL10nData[key]; - if (!data) { - consoleWarn('#' + key + ' missing for [' + gLanguage + ']'); - } - - /** This is where l10n expressions should be processed. - * The plan is to support C-style expressions from the l20n project; - * until then, only two kinds of simple expressions are supported: - * {[ index ]} and {{ arguments }}. - */ - var rv = {}; - for (var prop in data) { - var str = data[prop]; - str = substIndexes(str, args, key, prop); - str = substArguments(str, args); - rv[prop] = str; - } - return rv; - } - - // replace {[macros]} with their values - function substIndexes(str, args, key, prop) { - var reIndex = /\{\[\s*([a-zA-Z]+)\(([a-zA-Z]+)\)\s*\]\}/; - var reMatch = reIndex.exec(str); - if (!reMatch || !reMatch.length) - return str; - - // an index/macro has been found - // Note: at the moment, only one parameter is supported - var macroName = reMatch[1]; - var paramName = reMatch[2]; - var param; - if (args && paramName in args) { - param = args[paramName]; - } else if (paramName in gL10nData) { - param = gL10nData[paramName]; - } - - // there's no macro parser yet: it has to be defined in gMacros - if (macroName in gMacros) { - var macro = gMacros[macroName]; - str = macro(str, param, key, prop); - } - return str; - } - - // replace {{arguments}} with their values - function substArguments(str, args) { - var reArgs = /\{\{\s*([a-zA-Z\.]+)\s*\}\}/; - var match = reArgs.exec(str); - while (match) { - if (!match || match.length < 2) - return str; // argument key not found - - var arg = match[1]; - var sub = ''; - if (arg in args) { - sub = args[arg]; - } else if (arg in gL10nData) { - sub = gL10nData[arg][gTextProp]; - } else { - consoleWarn('could not find argument {{' + arg + '}}'); - return str; - } - - str = str.substring(0, match.index) + sub + - str.substr(match.index + match[0].length); - match = reArgs.exec(str); - } - return str; - } - - // translate an HTML element - function translateElement(element) { - var l10n = getL10nAttributes(element); - if (!l10n.id) - return; - - // get the related l10n object - var data = getL10nData(l10n.id, l10n.args); - if (!data) { - consoleWarn('#' + l10n.id + ' missing for [' + gLanguage + ']'); - return; - } - - // translate element (TODO: security checks?) - // for the node content, replace the content of the first child textNode - // and clear other child textNodes - if (data[gTextProp]) { // XXX - if (getChildElementCount(element) === 0) { - element[gTextProp] = data[gTextProp]; - } else { - var children = element.childNodes, - found = false; - for (var i = 0, l = children.length; i < l; i++) { - if (children[i].nodeType === 3 && - /\S/.test(children[i].textContent)) { // XXX - // using nodeValue seems cross-browser - if (found) { - children[i].nodeValue = ''; - } else { - children[i].nodeValue = data[gTextProp]; - found = true; - } - } - } - if (!found) { - consoleWarn('unexpected error, could not translate element content'); - } - } - delete data[gTextProp]; - } - - for (var k in data) { - element[k] = data[k]; - } - } - - // webkit browsers don't currently support 'children' on SVG elements... - function getChildElementCount(element) { - if (element.children) { - return element.children.length; - } - if (typeof element.childElementCount !== 'undefined') { - return element.childElementCount; - } - var count = 0; - for (var i = 0; i < element.childNodes.length; i++) { - count += element.nodeType === 1 ? 1 : 0; - } - return count; - } - - // translate an HTML subtree - function translateFragment(element) { - element = element || document.documentElement; - - // check all translatable children (= w/ a `data-l10n-id' attribute) - var children = getTranslatableChildren(element); - var elementCount = children.length; - for (var i = 0; i < elementCount; i++) { - translateElement(children[i]); - } - - // translate element itself if necessary - translateElement(element); - } - - // Startup & Public API - - function l10nStartup() { - gReadyState = 'interactive'; - consoleLog('loading [' + navigator.language + '] resources, ' + - (gAsyncResourceLoading ? 'asynchronously.' : 'synchronously.')); - - // load the default locale and translate the document if required - if (document.documentElement.lang === navigator.language) { - loadLocale(navigator.language); - } else { - loadLocale(navigator.language, translateFragment); - } - } - - // public API - var l10n = { - start: function() { - if (document.readyState === 'complete' || - document.readyState === 'interactive') { - window.setTimeout(l10nStartup); - } else { - document.addEventListener('DOMContentLoaded', l10nStartup); - } - }, - - // get a localized string - get: function l10n_get(key, args, fallback) { - var data = getL10nData(key, args) || fallback; - if (data) { - return 'textContent' in data ? data.textContent : ''; - } - return '{{' + key + '}}'; - }, - - // get|set the document language and direction - get language() { - return { - // get|set the document language (ISO-639-1) - get code() { return gLanguage; }, - set code(lang) { loadLocale(lang, translateFragment); }, - - // get the direction (ltr|rtl) of the current language - get direction() { - // http://www.w3.org/International/questions/qa-scripts - // Arabic, Hebrew, Farsi, Pashto, Urdu - var rtlList = ['ar', 'he', 'fa', 'ps', 'ur']; - return (rtlList.indexOf(gLanguage) >= 0) ? 'rtl' : 'ltr'; - } - }; - }, - - // translate an element or document fragment - translate: translateFragment, - - // get (a clone of) the dictionary for the current locale - get dictionary() { return JSON.parse(JSON.stringify(gL10nData)); }, - - // this can be used to prevent race conditions - get readyState() { return gReadyState; }, - ready: function l10n_ready(callback) { - if (!callback) - return; - - if (gReadyState == 'complete') { - window.setTimeout(callback); - } else { - window.addEventListener('localized', callback); - } - } - }; - - return l10n; -}); diff --git a/activities/Write.activity/locale.ini b/activities/Write.activity/locale.ini deleted file mode 100644 index 61f754174..000000000 --- a/activities/Write.activity/locale.ini +++ /dev/null @@ -1,415 +0,0 @@ - -[*] -PlayerJoin={{user}} joined -PlayerLeave={{user}} left -Write=Write is an editor where you could type and format your text and ideas. -Writefeatures=You can also play with colors , fonts and images and share your experience with your friends -Enjoy=Enjoy -Doc=Export to DOC Done -Odt=Export to ODT Done -Pdf=Export to PDF Done -Txt=Export to TXT Done -Welcome=Welcome {{username}}! -Network=Network -ForegroundColor=Foreground Color -BackgroundColor=Background Color -Formattext=Format text -Paragraph=Paragraph -List=List -Increasefontsize=Increase Font size -ChooseFont=Choose Font -Decreasefontsize=Decrease Font size -Image=Insert Image -Undo=Undo -Redo=Redo -Copy=Copy -Paste=Paste -Export=Export -Bold=Bold -Italic=Italic -Underline=Underline -Strike=Strike -OrderedList=Ordered List -UnorderedList=Unordered List -JustifyLeft=Justify Left -JustifyRight=Justify Right -JustifyCenter=Justify Center -ExportToTxt=Export to TXT -ExportToPdf=Export to PDF -ExportToDoc=Export to DOC -ExportToOdt=Export to ODT -TutoPrev=Prev -TutoNext=Next -TutoEnd=End -TutoExplainTitle=Write Activity -TutoExplainContent=Welcome into the Write activity. The Write activity is a basic word processor with a simple interface for children. Like a standard word processor, you will be able to format your text using buttons in the toolbar -TutoNetworkTitle=Network -TutoNetworkContent=Click here to share the activity so other users on the network could co-edit the text with you -TutoForegroundTitle=Text Color -TutoForegroundContent=Click here to change the color for the text -TutoBackgroundTitle=Background Color -TutoBackgroundContent=Click here to change the background color for the text -TutoFormatTitle=Style -TutoFormatContent=Click here to change the text style. It will allow you to use bold, italic, underline or strike -TutoParagraphTitle=Paragraph -TutoParagraphContent=Click here to change paragraph alignement. You could align text to the right, to the left or to the center -TutoListTitle=List -TutoListContent=Click here to create an ordered or unordered list -TutoIncreaseTitle=Increase Font Size -TutoIncreaseContent=Click here to increase font size -TutoFontTitle=Font -TutoFontContent=Click here to change font for the text: Arial, Comic Sans MS, Verdana, ... -TutoDecreaseTitle=Decrease Font Size -TutoDecreaseContent=Click here to decrease font size -TutoInsertTitle=Insert Image -TutoInsertContent=Click here to insert into the document an image from Journal -TutoUndoTitle=Undo -TutoUndoContent=Click here to undo last action -TutoRedoTitle=Redo -TutoRedoContent=Click here to redo last action -TutoCopyTitle=Copy -TutoCopyContent=Click here to copy selected text -TutoPasteTitle=Paste -TutoPasteContent=Click here to paste copied text -TutoExportTitle=Export -TutoExportContent=Click here to export your document in the Journal as a TXT, PDF, DOC or ODT file -TutoCanvasTitle=Content -TutoCanvasContent=Here is the place where you can type, edit text and insert images. By default there is a sample text but feel free to remove it and begin to create! -SuperScript=SuperScript -SubScript=SubScript -TutoSuperTitle=Superscript -TutoSuperContent=Click here to format text as a superscript: i.e. above the current line of text -TutoSubTitle=Subscript -TutoSubContent=Click here to fortmat text as a subcript: i.e. under the current line of text - -[en] -PlayerJoin={{user}} joined -PlayerLeave={{user}} left -Write=Write is an editor where you could type and format your text and ideas. -Writefeatures=You can also play with colors , fonts and images and share your experience with your friends -Enjoy=Enjoy -Doc=Export to DOC Done -Odt=Export to ODT Done -Pdf=Export to PDF Done -Txt=Export to TXT Done -Welcome=Welcome {{username}}! -Network=Network -ForegroundColor=Foreground Color -BackgroundColor=Background Color -Formattext=Format text -Paragraph=Paragraph -List=List -Increasefontsize=Increase Font size -ChooseFont=Choose Font -Decreasefontsize=Decrease Font size -Image=Insert Image -Undo=Undo -Redo=Redo -Copy=Copy -Paste=Paste -Export=Export -Bold=Bold -Italic=Italic -Underline=Underline -Strike=Strike -OrderedList=Ordered List -UnorderedList=Unordered List -JustifyLeft=Justify Left -JustifyRight=Justify Right -JustifyCenter=Justify Center -ExportToTxt=Export to TXT -ExportToPdf=Export to PDF -ExportToDoc=Export to DOC -ExportToOdt=Export to ODT -TutoPrev=Prev -TutoNext=Next -TutoEnd=End -TutoExplainTitle=Write Activity -TutoExplainContent=Welcome into the Write activity. The Write activity is a basic word processor with a simple interface for children. Like a standard word processor, you will be able to format your text using buttons in the toolbar -TutoNetworkTitle=Network -TutoNetworkContent=Click here to share the activity so other users on the network could co-edit the text with you -TutoForegroundTitle=Text Color -TutoForegroundContent=Click here to change the color for the text -TutoBackgroundTitle=Background Color -TutoBackgroundContent=Click here to change the background color for the text -TutoFormatTitle=Style -TutoFormatContent=Click here to change the text style. It will allow you to use bold, italic, underline or strike -TutoParagraphTitle=Paragraph -TutoParagraphContent=Click here to change paragraph alignement. You could align text to the right, to the left or to the center -TutoListTitle=List -TutoListContent=Click here to create an ordered or unordered list -TutoIncreaseTitle=Increase Font Size -TutoIncreaseContent=Click here to increase font size -TutoFontTitle=Font -TutoFontContent=Click here to change font for the text: Arial, Comic Sans MS, Verdana, ... -TutoDecreaseTitle=Decrease Font Size -TutoDecreaseContent=Click here to decrease font size -TutoInsertTitle=Insert Image -TutoInsertContent=Click here to insert into the document an image from Journal -TutoUndoTitle=Undo -TutoUndoContent=Click here to undo last action -TutoRedoTitle=Redo -TutoRedoContent=Click here to redo last action -TutoCopyTitle=Copy -TutoCopyContent=Click here to copy selected text -TutoPasteTitle=Paste -TutoPasteContent=Click here to paste copied text -TutoExportTitle=Export -TutoExportContent=Click here to export your document in the Journal as a TXT, PDF, DOC or ODT file -TutoCanvasTitle=Content -TutoCanvasContent=Here is the place where you can type, edit text and insert images. By default there is a sample text but feel free to remove it and begin to create! -SuperScript=SuperScript -SubScript=SubScript -TutoSuperTitle=Superscript -TutoSuperContent=Click here to format text as a superscript: i.e. above the current line of text -TutoSubTitle=Subscript -TutoSubContent=Click here to fortmat text as a subcript: i.e. under the current line of text - -[es] -PlayerJoin={{user}} se ha unido -PlayerLeave={{user}} ha abandonado -Write=Write es un editor en el que puede escribir y formatear su texto e ideas. -Writefeatures=También puedes jugar con colores, fuentes y imágenes y comparte tu experiencia con tus amigos -Enjoy=Disfrutar -Doc=Exportar a DOC Listo -Odt=Exportar a ODT Listo -Pdf=Exportar a PDF Listo -Txt=Exportar a TXT Listo -Welcome=Bienvenido {{username}}! -Network=Network -ForegroundColor=Color de primer plano -BackgroundColor=Color de fondo -Formattext=Format text -Paragraph=Párrafo -List=List -Increasefontsize=Aumenta tamaño de fuente -ChooseFont=Elegir fuente -Decreasefontsize=Disminuir tamaño de fuente -Image=Insert Image -Undo=Deshacer -Redo=Rehacer -Copy=Copiar -Paste=Pegar -Export=Exportar -Bold=Negrita -Italic=Itálica -Underline=Subrayado -Strike=Tachado -OrderedList=Lista ordenada -UnorderedList=Lista no ordenada -JustifyLeft=Alinear a la izquierda -JustifyRight=Alinear a la derecha -JustifyCenter=Centrar -ExportToTxt=Exportar como TXT -ExportToPdf=Exportar como PDF -ExportToDoc=Exportar como DOC -ExportToOdt=Exportar como ODT -TutoPrev=Ant -TutoNext=Sig -TutoEnd=Fin -TutoExplainTitle=Actividad "Escribir" -TutoExplainContent=Bienvenido a la actividad "Escribir". Esta actividad es un procesador de texto básico, con una interfaz sencilla para los niños. Al igual que otros procesadores de texto, podrás guardar tus textos en otros formatos usando los botones adecuados en la barra de herramientas -TutoNetworkTitle=Compartir en red -TutoNetworkContent=Haz clic aquí para compartir la actividad con otros usuarios de tu red, que podrán editar el texto junto a ti -TutoForegroundTitle=Color del texto -TutoForegroundContent=Haz clic aquí para cambiar el color del texto -TutoBackgroundTitle=Color de fondo -TutoBackgroundContent=Haz clic aquí para cambiar el color de fondo del texto -TutoFormatTitle=Estilo -TutoFormatContent=Haz clic aquí para cambiar el estilo del texto. Esto te permitirá usar texto en negrita, itálicas, subrayado o tachado -TutoParagraphTitle=Párrafo -TutoParagraphContent=Haz clic aquí para cambiar la alineación del párrafo. Puedes alinear el texto a la derecha, a la izquierda o en el centro -TutoListTitle=Crear lista -TutoListContent=Haz clic aquí para crear una lista ordenada o no ordenada -TutoIncreaseTitle=Aumentar tamaño de fuente -TutoIncreaseContent=Haz clic aquí para aumentar el tamaño de la fuente -TutoFontTitle=Fuente -TutoFontContent=Haz clic aquí para cambiar la fuente del texto: Arial, Comic Sans MS, Verdana... -TutoDecreaseTitle=Disminuir tamaño de fuente -TutoDecreaseContent=Haz clic aquí para disminuir el tamaño de la fuente -TutoInsertTitle=Insertar imagen -TutoInsertContent=Haz clic aquí para insertar una imagen de la biblioteca en el documento -TutoUndoTitle=Deshacer -TutoUndoContent=Haz clic aquí para deshacer la última acción -TutoRedoTitle=Rehacer -TutoRedoContent=Haz clic aquí para rehacer la última acción -TutoCopyTitle=Copiar -TutoCopyContent=Haz clic aquí para copiar el texto seleccionado -TutoPasteTitle=Pegar -TutoPasteContent=Haz clic aquí para pegar el texto copiado -TutoExportTitle=Exportar -TutoExportContent=Haz clic aquí para exportar tu documento a la biblioteca en formato TXT, PDF, DOC o ODT -TutoCanvasTitle=Contenido -TutoCanvasContent=Aquí podrás escribir, editar el texto e insertar imágenes. Por defecto, aparecerá un texto de muestra, ¡pero puedes eliminarlo cuando quieras y empezar a crear tu contenido! -SuperScript=Superíndice -SubScript=Subíndice -TutoSuperTitle=Superíndice -TutoSuperContent=Haz clic aquí para que el texto se convierta en un superíndice (es decir, esté escrito por encima de la línea de texto actual y con un tamaño ligeramente menor) -TutoSubTitle=Subíndice -TutoSubContent=Haz clic aquí para que el texto se convierta en un subíndice (es decir, esté escrito por debajo de la línea de texto actual y con un tamaño ligeramente menor) - -[fr] -PlayerJoin={{user}} a rejoint -PlayerLeave={{user}} est parti -Write=Write est un traitement de texte avec lequel vous pouvez taper et formater vos textes et vos idées. -Writefeatures=Vous pouvez aussi jouer avec les couleurs, fontes, intégrer des images et partager vos réalisations avec vos amis. -Enjoy=A vous de jouer ! -Doc=DOC exporté dans le Journal -Odt=ODT exporté dans le Journal -Pdf=PDF exporté dans le Journal -Txt=TXT exporté dans le Journal -Welcome=Bienvenue {{username}} ! -Network=Partage -ForegroundColor=Couleur encre -BackgroundColor=Couleur fond -Formattext=Formater texte -Paragraph=Paragraphe -List=Liste -Increasefontsize=Augmenter taille police -ChooseFont=Choisir police -Decreasefontsize=Diminuer taille police -Image=Insérer Image -Undo=Annuler -Redo=Rétablir -Copy=Copier -Paste=Coller -Export=Exporter -Bold=Gras -Italic=Italique -Underline=Souligné -Strike=Barré -OrderedList=Liste ordonnée -UnorderedList=Liste non ordonnée -JustifyLeft=Justifier à gauche -JustifyRight=Justifier à droite -JustifyCenter=Aligner -ExportToTxt=Exporter en TXT -ExportToPdf=Exporter en PDF -ExportToDoc=Exporter en DOC -ExportToOdt=Exporter en ODT -TutoPrev=Préc -TutoNext=Suiv -TutoEnd=Fin -TutoExplainTitle=Activité Write -TutoExplainContent=L'activité Write est un traitement de texte basique avec une interface adaptée aux enfants. Comme un traitement de texte standard, Write vous permet de formatter votre texte en utilisant les boutons dans la barre d'outil -TutoNetworkTitle=Réseau -TutoNetworkContent=Cliquez ici pour partager l'activité pour que d'autres utilisateurs sur le réseau puissent co-éditer le texte avec vous -TutoForegroundTitle=Couleur Texte -TutoForegroundContent=Cliquez ici pour changer la couleur du texte -TutoBackgroundTitle=Couleur Fond -TutoBackgroundContent=Cliquez ici pour changer la couleur de fond du texte -TutoFormatTitle=Style -TutoFormatContent=Cliquez ici pour changer le style du texte. Cela vous permet d'utiliser gras, italique, souligné ou barré -TutoParagraphTitle=Paragraphe -TutoParagraphContent=Cliquer ici pour changer l'alignement du paragraphe. Vous pouvez aligner le texte à droite, à gauche ou au centre -TutoListTitle=Liste -TutoListContent=Cliquer ici pour créer un liste ordonnée ou non ordonnée -TutoIncreaseTitle=Augmenter taille fonte -TutoIncreaseContent=Cliquez ici pour augmenter la taille de la fonte -TutoFontTitle=Fonte -TutoFontContent=Cliquez ici pour changer la fonte du texte: Arial, Comic Sans MS, Verdane, ... -TutoDecreaseTitle=Diminuer taille fonte -TutoDecreaseContent=Cliquez ici pour diminuer la taille de la fonte -TutoInsertTitle=Insérer Image -TutoInsertContent=Cliquez ici pour insérer dans le document une image du Journal -TutoUndoTitle=Annuler -TutoUndoContent=Cliquez ici pour annuler la dernière action -TutoRedoTitle=Répéter -TutoRedoContent=Cliquez ici pour répéter la dernière action -TutoCopyTitle=Copier -TutoCopyContent=Cliquez ici pour copier le texte sélectionné -TutoPasteTitle=Coller -TutoPasteContent=Cliquez ici pour coller le texte qui a été copié -TutoExportTitle=Exporter -TutoExportContent=Cliquez ici pour exporter votre document dans le Journal en tant que fichier TXT, PDF, DOC ou ODT -TutoCanvasTitle=Contenu -TutoCanvasContent=Ici est l'endroit où vous pouvez taper ou éditer le texte et insérer des images. Par défaut, elle contient un texte exemple mais bien sûr vous pouvez le supprimer et commencer à créer le votre -SuperScript=Exposant -SubScript=Indice -TutoSuperTitle=Exposant -TutoSuperContent=Cliquez ici pour formater le texte comme un exposant, c'est à dire au-dessus de la ligne du texte -TutoSubTitle=Indice -TutoSubContent=Cliquez ici pour formater le texte comme un indice, c'est à dire en-dessous de la ligne du texte - -[pt] -PlayerJoin={{user}} ingressou -PlayerLeave={{user}} saiu -Write=Write é um editor onde você pode digitar e formatar seu texto e idéias. -Writefeatures=Você também pode jogar com cores, fontes e imagens e compartilhe sua experiência com seus amigos -Enjoy=apreciar -Doc=Exportar para DOC Concluído -Odt=Exportar para ODT Concluído -Pdf=Exportar para PDF Concluído -Txt=Exportar para TXT Concluído -Welcome=Bem vinda {{username}}! -Network=Network -ForegroundColor=Foreground Color -BackgroundColor=Background Color -Formattext=Format text -Paragraph=Paragraph -List=List -Increasefontsize=Increase Font size -ChooseFont=Choose Font -Decreasefontsize=Decrease Font size -Image=Image -Undo=Undo -Redo=Redo -Copy=Copy -Paste=Paste -Export=Export -Bold=Bold -Italic=Italic -Underline=Underline -Strike=Strike -OrderedList=Ordered List -UnorderedList=Unordered List -JustifyLeft=Justify Left -JustifyRight=Justify Right -JustifyCenter=Justify Center -ExportToTxt=Export to TXT -ExportToPdf=Export to PDF -ExportToDoc=Export to DOC -ExportToOdt=Export to ODT -TutoPrev=Anterior -TutoNext=Próximo -TutoEnd=Fim -TutoExplainTitle=Write Activity -TutoExplainContent=Welcome into the Write activity. The Write activity is a basic word processor with a simple interface for children. Like a standard word processor, you will be able to format your text using buttons in the toolbar -TutoNetworkTitle=Network -TutoNetworkContent=Click here to share the activity so other users on the network could co-edit the text with you -TutoForegroundTitle=Text Color -TutoForegroundContent=Click here to change the color for the text -TutoBackgroundTitle=Background Color -TutoBackgroundContent=Click here to change the background color for the text -TutoFormatTitle=Style -TutoFormatContent=Click here to change the text style. It will allow you to use bold, italic, underline or strike -TutoParagraphTitle=Paragraph -TutoParagraphContent=Click here to change paragraph alignement. You could align text to the right, to the left or to the center -TutoListTitle=List -TutoListContent=Click here to create an ordered or unordered list -TutoIncreaseTitle=Increase Font Size -TutoIncreaseContent=Click here to increase font size -TutoFontTitle=Fonte -TutoFontContent=Click here to change font for the text: Arial, Comic Sans MS, Verdana, ... -TutoDecreaseTitle=Decrease Font Size -TutoDecreaseContent=Click here to decrease font size -TutoInsertTitle=Insert Image -TutoInsertContent=Click here to insert into the document an image from Journal -TutoUndoTitle=Desfazer -TutoUndoContent=Click here to undo last action -TutoRedoTitle=Refazer -TutoRedoContent=Click here to redo last action -TutoCopyTitle=Copy -TutoCopyContent=Click here to copy selected text -TutoPasteTitle=Paste -TutoPasteContent=Click here to paste copied text -TutoExportTitle=Export -TutoExportContent=Click here to export your document in the Journal as a TXT, PDF, DOC or ODT file -TutoCanvasTitle=Content -TutoCanvasContent=Here is the place where you can type, edit text and insert images. By default there is a sample text but feel free to remove it and begin to create! -SuperScript=SuperScript -SubScript=SubScript -TutoSuperTitle=Superscript -TutoSuperContent=Click here to format text as a superscript: i.e. above the current line of text -TutoSubTitle=Subscript -TutoSubContent=Click here to fortmat text as a subcript: i.e. under the current line of text diff --git a/activities/Write.activity/locales/en.json b/activities/Write.activity/locales/en.json new file mode 100644 index 000000000..f1c57398a --- /dev/null +++ b/activities/Write.activity/locales/en.json @@ -0,0 +1,83 @@ +{ + "PlayerJoin": "{{user}} joined", + "PlayerLeave": "{{user}} left", + "Write": "Write is an editor where you could type and format your text and ideas.", + "Writefeatures": "You can also play with colors , fonts and images and share your experience with your friends", + "Enjoy": "Enjoy", + "Doc": "Export to DOC Done", + "Odt": "Export to ODT Done", + "Pdf": "Export to PDF Done", + "Txt": "Export to TXT Done", + "Welcome": "Welcome {{username}}!", + "Network": "Network", + "ForegroundColor": "Foreground Color", + "BackgroundColor": "Background Color", + "Formattext": "Format text", + "Paragraph": "Paragraph", + "List": "List", + "Increasefontsize": "Increase Font size", + "ChooseFont": "Choose Font", + "Decreasefontsize": "Decrease Font size", + "Image": "Insert Image", + "Undo": "Undo", + "Redo": "Redo", + "Copy": "Copy", + "Paste": "Paste", + "Export": "Export", + "Bold": "Bold", + "Italic": "Italic", + "Underline": "Underline", + "Strike": "Strike", + "OrderedList": "Ordered List", + "UnorderedList": "Unordered List", + "JustifyLeft": "Justify Left", + "JustifyRight": "Justify Right", + "JustifyCenter": "Justify Center", + "ExportToTxt": "Export to TXT", + "ExportToPdf": "Export to PDF", + "ExportToDoc": "Export to DOC", + "ExportToOdt": "Export to ODT", + "TutoPrev": "Prev", + "TutoNext": "Next", + "TutoEnd": "End", + "TutoExplainTitle": "Write Activity", + "TutoExplainContent": "Welcome into the Write activity. The Write activity is a basic word processor with a simple interface for children. Like a standard word processor, you will be able to format your text using buttons in the toolbar", + "TutoNetworkTitle": "Network", + "TutoNetworkContent": "Click here to share the activity so other users on the network could co-edit the text with you", + "TutoForegroundTitle": "Text Color", + "TutoForegroundContent": "Click here to change the color for the text", + "TutoBackgroundTitle": "Background Color", + "TutoBackgroundContent": "Click here to change the background color for the text", + "TutoFormatTitle": "Style", + "TutoFormatContent": "Click here to change the text style. It will allow you to use bold, italic, underline or strike", + "TutoParagraphTitle": "Paragraph", + "TutoParagraphContent": "Click here to change paragraph alignement. You could align text to the right, to the left or to the center", + "TutoListTitle": "List", + "TutoListContent": "Click here to create an ordered or unordered list", + "TutoIncreaseTitle": "Increase Font Size", + "TutoIncreaseContent": "Click here to increase font size", + "TutoFontTitle": "Font", + "TutoFontContent": "Click here to change font for the text: Arial, Comic Sans MS, Verdana, ...", + "TutoDecreaseTitle": "Decrease Font Size", + "TutoDecreaseContent": "Click here to decrease font size", + "TutoInsertTitle": "Insert Image", + "TutoInsertContent": "Click here to insert into the document an image from Journal", + "TutoUndoTitle": "Undo", + "TutoUndoContent": "Click here to undo last action", + "TutoRedoTitle": "Redo", + "TutoRedoContent": "Click here to redo last action", + "TutoCopyTitle": "Copy", + "TutoCopyContent": "Click here to copy selected text", + "TutoPasteTitle": "Paste", + "TutoPasteContent": "Click here to paste copied text", + "TutoExportTitle": "Export", + "TutoExportContent": "Click here to export your document in the Journal as a TXT, PDF, DOC or ODT file", + "TutoCanvasTitle": "Content", + "TutoCanvasContent": "Here is the place where you can type, edit text and insert images. By default there is a sample text but feel free to remove it and begin to create!", + "SuperScript": "SuperScript", + "SubScript": "SubScript", + "TutoSuperTitle": "Superscript", + "TutoSuperContent": "Click here to format text as a superscript: i.e. above the current line of text", + "TutoSubTitle": "Subscript", + "TutoSubContent": "Click here to fortmat text as a subcript: i.e. under the current line of text" +} diff --git a/activities/Write.activity/locales/es.json b/activities/Write.activity/locales/es.json new file mode 100644 index 000000000..64f6dca69 --- /dev/null +++ b/activities/Write.activity/locales/es.json @@ -0,0 +1,83 @@ +{ + "PlayerJoin": "{{user}} se ha unido", + "PlayerLeave": "{{user}} ha abandonado", + "Write": "Write es un editor en el que puede escribir y formatear su texto e ideas.", + "Writefeatures": "También puedes jugar con colores, fuentes y imágenes y comparte tu experiencia con tus amigos", + "Enjoy": "Disfrutar", + "Doc": "Exportar a DOC Listo", + "Odt": "Exportar a ODT Listo", + "Pdf": "Exportar a PDF Listo", + "Txt": "Exportar a TXT Listo", + "Welcome": "Bienvenido {{username}}!", + "Network": "Network", + "ForegroundColor": "Color de primer plano", + "BackgroundColor": "Color de fondo", + "Formattext": "Format text", + "Paragraph": "Párrafo", + "List": "List", + "Increasefontsize": "Aumenta tamaño de fuente", + "ChooseFont": "Elegir fuente", + "Decreasefontsize": "Disminuir tamaño de fuente", + "Image": "Insert Image", + "Undo": "Deshacer", + "Redo": "Rehacer", + "Copy": "Copiar", + "Paste": "Pegar", + "Export": "Exportar", + "Bold": "Negrita", + "Italic": "Itálica", + "Underline": "Subrayado", + "Strike": "Tachado", + "OrderedList": "Lista ordenada", + "UnorderedList": "Lista no ordenada", + "JustifyLeft": "Alinear a la izquierda", + "JustifyRight": "Alinear a la derecha", + "JustifyCenter": "Centrar", + "ExportToTxt": "Exportar como TXT", + "ExportToPdf": "Exportar como PDF", + "ExportToDoc": "Exportar como DOC", + "ExportToOdt": "Exportar como ODT", + "TutoPrev": "Ant", + "TutoNext": "Sig", + "TutoEnd": "Fin", + "TutoExplainTitle": "Actividad \"Escribir\"", + "TutoExplainContent": "Bienvenido a la actividad \"Escribir\". Esta actividad es un procesador de texto básico, con una interfaz sencilla para los niños. Al igual que otros procesadores de texto, podrás guardar tus textos en otros formatos usando los botones adecuados en la barra de herramientas", + "TutoNetworkTitle": "Compartir en red", + "TutoNetworkContent": "Haz clic aquí para compartir la actividad con otros usuarios de tu red, que podrán editar el texto junto a ti", + "TutoForegroundTitle": "Color del texto", + "TutoForegroundContent": "Haz clic aquí para cambiar el color del texto", + "TutoBackgroundTitle": "Color de fondo", + "TutoBackgroundContent": "Haz clic aquí para cambiar el color de fondo del texto", + "TutoFormatTitle": "Estilo", + "TutoFormatContent": "Haz clic aquí para cambiar el estilo del texto. Esto te permitirá usar texto en negrita, itálicas, subrayado o tachado", + "TutoParagraphTitle": "Párrafo", + "TutoParagraphContent": "Haz clic aquí para cambiar la alineación del párrafo. Puedes alinear el texto a la derecha, a la izquierda o en el centro", + "TutoListTitle": "Crear lista", + "TutoListContent": "Haz clic aquí para crear una lista ordenada o no ordenada", + "TutoIncreaseTitle": "Aumentar tamaño de fuente", + "TutoIncreaseContent": "Haz clic aquí para aumentar el tamaño de la fuente", + "TutoFontTitle": "Fuente", + "TutoFontContent": "Haz clic aquí para cambiar la fuente del texto: Arial, Comic Sans MS, Verdana...", + "TutoDecreaseTitle": "Disminuir tamaño de fuente", + "TutoDecreaseContent": "Haz clic aquí para disminuir el tamaño de la fuente", + "TutoInsertTitle": "Insertar imagen", + "TutoInsertContent": "Haz clic aquí para insertar una imagen de la biblioteca en el documento", + "TutoUndoTitle": "Deshacer", + "TutoUndoContent": "Haz clic aquí para deshacer la última acción", + "TutoRedoTitle": "Rehacer", + "TutoRedoContent": "Haz clic aquí para rehacer la última acción", + "TutoCopyTitle": "Copiar", + "TutoCopyContent": "Haz clic aquí para copiar el texto seleccionado", + "TutoPasteTitle": "Pegar", + "TutoPasteContent": "Haz clic aquí para pegar el texto copiado", + "TutoExportTitle": "Exportar", + "TutoExportContent": "Haz clic aquí para exportar tu documento a la biblioteca en formato TXT, PDF, DOC o ODT", + "TutoCanvasTitle": "Contenido", + "TutoCanvasContent": "Aquí podrás escribir, editar el texto e insertar imágenes. Por defecto, aparecerá un texto de muestra, ¡pero puedes eliminarlo cuando quieras y empezar a crear tu contenido!", + "SuperScript": "Superíndice", + "SubScript": "Subíndice", + "TutoSuperTitle": "Superíndice", + "TutoSuperContent": "Haz clic aquí para que el texto se convierta en un superíndice (es decir, esté escrito por encima de la línea de texto actual y con un tamaño ligeramente menor)", + "TutoSubTitle": "Subíndice", + "TutoSubContent": "Haz clic aquí para que el texto se convierta en un subíndice (es decir, esté escrito por debajo de la línea de texto actual y con un tamaño ligeramente menor)" +} diff --git a/activities/Write.activity/locales/fr.json b/activities/Write.activity/locales/fr.json new file mode 100644 index 000000000..84e376789 --- /dev/null +++ b/activities/Write.activity/locales/fr.json @@ -0,0 +1,83 @@ +{ + "PlayerJoin": "{{user}} a rejoint", + "PlayerLeave": "{{user}} est parti", + "Write": "Write est un traitement de texte avec lequel vous pouvez taper et formater vos textes et vos idées.", + "Writefeatures": "Vous pouvez aussi jouer avec les couleurs, fontes, intégrer des images et partager vos réalisations avec vos amis.", + "Enjoy": "A vous de jouer !", + "Doc": "DOC exporté dans le Journal", + "Odt": "ODT exporté dans le Journal", + "Pdf": "PDF exporté dans le Journal", + "Txt": "TXT exporté dans le Journal", + "Welcome": "Bienvenue {{username}} !", + "Network": "Partage", + "ForegroundColor": "Couleur encre", + "BackgroundColor": "Couleur fond", + "Formattext": "Formater texte", + "Paragraph": "Paragraphe", + "List": "Liste", + "Increasefontsize": "Augmenter taille police", + "ChooseFont": "Choisir police", + "Decreasefontsize": "Diminuer taille police", + "Image": "Insérer Image", + "Undo": "Annuler", + "Redo": "Rétablir", + "Copy": "Copier", + "Paste": "Coller", + "Export": "Exporter", + "Bold": "Gras", + "Italic": "Italique", + "Underline": "Souligné", + "Strike": "Barré", + "OrderedList": "Liste ordonnée", + "UnorderedList": "Liste non ordonnée", + "JustifyLeft": "Justifier à gauche", + "JustifyRight": "Justifier à droite", + "JustifyCenter": "Aligner", + "ExportToTxt": "Exporter en TXT", + "ExportToPdf": "Exporter en PDF", + "ExportToDoc": "Exporter en DOC", + "ExportToOdt": "Exporter en ODT", + "TutoPrev": "Préc", + "TutoNext": "Suiv", + "TutoEnd": "Fin", + "TutoExplainTitle": "Activité Write", + "TutoExplainContent": "L'activité Write est un traitement de texte basique avec une interface adaptée aux enfants. Comme un traitement de texte standard, Write vous permet de formatter votre texte en utilisant les boutons dans la barre d'outil", + "TutoNetworkTitle": "Réseau", + "TutoNetworkContent": "Cliquez ici pour partager l'activité pour que d'autres utilisateurs sur le réseau puissent co-éditer le texte avec vous", + "TutoForegroundTitle": "Couleur Texte", + "TutoForegroundContent": "Cliquez ici pour changer la couleur du texte", + "TutoBackgroundTitle": "Couleur Fond", + "TutoBackgroundContent": "Cliquez ici pour changer la couleur de fond du texte", + "TutoFormatTitle": "Style", + "TutoFormatContent": "Cliquez ici pour changer le style du texte. Cela vous permet d'utiliser gras, italique, souligné ou barré", + "TutoParagraphTitle": "Paragraphe", + "TutoParagraphContent": "Cliquer ici pour changer l'alignement du paragraphe. Vous pouvez aligner le texte à droite, à gauche ou au centre", + "TutoListTitle": "Liste", + "TutoListContent": "Cliquer ici pour créer un liste ordonnée ou non ordonnée", + "TutoIncreaseTitle": "Augmenter taille fonte", + "TutoIncreaseContent": "Cliquez ici pour augmenter la taille de la fonte", + "TutoFontTitle": "Fonte", + "TutoFontContent": "Cliquez ici pour changer la fonte du texte: Arial, Comic Sans MS, Verdane, ...", + "TutoDecreaseTitle": "Diminuer taille fonte", + "TutoDecreaseContent": "Cliquez ici pour diminuer la taille de la fonte", + "TutoInsertTitle": "Insérer Image", + "TutoInsertContent": "Cliquez ici pour insérer dans le document une image du Journal", + "TutoUndoTitle": "Annuler", + "TutoUndoContent": "Cliquez ici pour annuler la dernière action", + "TutoRedoTitle": "Répéter", + "TutoRedoContent": "Cliquez ici pour répéter la dernière action", + "TutoCopyTitle": "Copier", + "TutoCopyContent": "Cliquez ici pour copier le texte sélectionné", + "TutoPasteTitle": "Coller", + "TutoPasteContent": "Cliquez ici pour coller le texte qui a été copié", + "TutoExportTitle": "Exporter", + "TutoExportContent": "Cliquez ici pour exporter votre document dans le Journal en tant que fichier TXT, PDF, DOC ou ODT", + "TutoCanvasTitle": "Contenu", + "TutoCanvasContent": "Ici est l'endroit où vous pouvez taper ou éditer le texte et insérer des images. Par défaut, elle contient un texte exemple mais bien sûr vous pouvez le supprimer et commencer à créer le votre", + "SuperScript": "Exposant", + "SubScript": "Indice", + "TutoSuperTitle": "Exposant", + "TutoSuperContent": "Cliquez ici pour formater le texte comme un exposant, c'est à dire au-dessus de la ligne du texte", + "TutoSubTitle": "Indice", + "TutoSubContent": "Cliquez ici pour formater le texte comme un indice, c'est à dire en-dessous de la ligne du texte" +} diff --git a/activities/Write.activity/locales/pt.json b/activities/Write.activity/locales/pt.json new file mode 100644 index 000000000..c77b2d0aa --- /dev/null +++ b/activities/Write.activity/locales/pt.json @@ -0,0 +1,83 @@ +{ + "PlayerJoin": "{{user}} ingressou", + "PlayerLeave": "{{user}} saiu", + "Write": "Write é um editor onde você pode digitar e formatar seu texto e idéias.", + "Writefeatures": "Você também pode jogar com cores, fontes e imagens e compartilhe sua experiência com seus amigos", + "Enjoy": "apreciar", + "Doc": "Exportar para DOC Concluído", + "Odt": "Exportar para ODT Concluído", + "Pdf": "Exportar para PDF Concluído", + "Txt": "Exportar para TXT Concluído", + "Welcome": "Bem vinda {{username}}!", + "Network": "Network", + "ForegroundColor": "Foreground Color", + "BackgroundColor": "Background Color", + "Formattext": "Format text", + "Paragraph": "Paragraph", + "List": "List", + "Increasefontsize": "Increase Font size", + "ChooseFont": "Choose Font", + "Decreasefontsize": "Decrease Font size", + "Image": "Image", + "Undo": "Undo", + "Redo": "Redo", + "Copy": "Copy", + "Paste": "Paste", + "Export": "Export", + "Bold": "Bold", + "Italic": "Italic", + "Underline": "Underline", + "Strike": "Strike", + "OrderedList": "Ordered List", + "UnorderedList": "Unordered List", + "JustifyLeft": "Justify Left", + "JustifyRight": "Justify Right", + "JustifyCenter": "Justify Center", + "ExportToTxt": "Export to TXT", + "ExportToPdf": "Export to PDF", + "ExportToDoc": "Export to DOC", + "ExportToOdt": "Export to ODT", + "TutoPrev": "Anterior", + "TutoNext": "Próximo", + "TutoEnd": "Fim", + "TutoExplainTitle": "Write Activity", + "TutoExplainContent": "Welcome into the Write activity. The Write activity is a basic word processor with a simple interface for children. Like a standard word processor, you will be able to format your text using buttons in the toolbar", + "TutoNetworkTitle": "Network", + "TutoNetworkContent": "Click here to share the activity so other users on the network could co-edit the text with you", + "TutoForegroundTitle": "Text Color", + "TutoForegroundContent": "Click here to change the color for the text", + "TutoBackgroundTitle": "Background Color", + "TutoBackgroundContent": "Click here to change the background color for the text", + "TutoFormatTitle": "Style", + "TutoFormatContent": "Click here to change the text style. It will allow you to use bold, italic, underline or strike", + "TutoParagraphTitle": "Paragraph", + "TutoParagraphContent": "Click here to change paragraph alignement. You could align text to the right, to the left or to the center", + "TutoListTitle": "List", + "TutoListContent": "Click here to create an ordered or unordered list", + "TutoIncreaseTitle": "Increase Font Size", + "TutoIncreaseContent": "Click here to increase font size", + "TutoFontTitle": "Fonte", + "TutoFontContent": "Click here to change font for the text: Arial, Comic Sans MS, Verdana, ...", + "TutoDecreaseTitle": "Decrease Font Size", + "TutoDecreaseContent": "Click here to decrease font size", + "TutoInsertTitle": "Insert Image", + "TutoInsertContent": "Click here to insert into the document an image from Journal", + "TutoUndoTitle": "Desfazer", + "TutoUndoContent": "Click here to undo last action", + "TutoRedoTitle": "Refazer", + "TutoRedoContent": "Click here to redo last action", + "TutoCopyTitle": "Copy", + "TutoCopyContent": "Click here to copy selected text", + "TutoPasteTitle": "Paste", + "TutoPasteContent": "Click here to paste copied text", + "TutoExportTitle": "Export", + "TutoExportContent": "Click here to export your document in the Journal as a TXT, PDF, DOC or ODT file", + "TutoCanvasTitle": "Content", + "TutoCanvasContent": "Here is the place where you can type, edit text and insert images. By default there is a sample text but feel free to remove it and begin to create!", + "SuperScript": "SuperScript", + "SubScript": "SubScript", + "TutoSuperTitle": "Superscript", + "TutoSuperContent": "Click here to format text as a superscript: i.e. above the current line of text", + "TutoSubTitle": "Subscript", + "TutoSubContent": "Click here to fortmat text as a subcript: i.e. under the current line of text" +} diff --git a/activities/Write.activity/po/en.po b/activities/Write.activity/po/en.po deleted file mode 100644 index dd33c25e9..000000000 --- a/activities/Write.activity/po/en.po +++ /dev/null @@ -1,423 +0,0 @@ -#. extracted from ../locale.ini -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: Fri May 07 2021 23:17:04 GMT+0200 (heure d’été d’Europe centrale)\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: ini2po 0.0.1\n" - -#. Do not translate {{user}} -#: PlayerJoin -msgctxt "PlayerJoin" -msgid "{{user}} joined" -msgstr "{{user}} joined" - -#. Do not translate {{user}} -#: PlayerLeave -msgctxt "PlayerLeave" -msgid "{{user}} left" -msgstr "{{user}} left" - -#: Write -msgctxt "Write" -msgid "Write is an editor where you could type and format your text and ideas." -msgstr "Write is an editor where you could type and format your text and ideas." - -#: Writefeatures -msgctxt "Writefeatures" -msgid "You can also play with colors , fonts and images and share your experience with your friends" -msgstr "You can also play with colors , fonts and images and share your experience with your friends" - -#: Enjoy -msgctxt "Enjoy" -msgid "Enjoy" -msgstr "Enjoy" - -#: Doc -msgctxt "Doc" -msgid "Export to DOC Done" -msgstr "Export to DOC Done" - -#: Odt -msgctxt "Odt" -msgid "Export to ODT Done" -msgstr "Export to ODT Done" - -#: Pdf -msgctxt "Pdf" -msgid "Export to PDF Done" -msgstr "Export to PDF Done" - -#: Txt -msgctxt "Txt" -msgid "Export to TXT Done" -msgstr "Export to TXT Done" - -#. Do not translate {{username}} -#: Welcome -msgctxt "Welcome" -msgid "Welcome {{username}}!" -msgstr "Welcome {{username}}!" - -#: Network -msgctxt "Network" -msgid "Network" -msgstr "Network" - -#: ForegroundColor -msgctxt "ForegroundColor" -msgid "Foreground Color" -msgstr "Foreground Color" - -#: BackgroundColor -msgctxt "BackgroundColor" -msgid "Background Color" -msgstr "Background Color" - -#: Formattext -msgctxt "Formattext" -msgid "Format text" -msgstr "Format text" - -#: Paragraph -msgctxt "Paragraph" -msgid "Paragraph" -msgstr "Paragraph" - -#: List -msgctxt "List" -msgid "List" -msgstr "List" - -#: Increasefontsize -msgctxt "Increasefontsize" -msgid "Increase Font size" -msgstr "Increase Font size" - -#: ChooseFont -msgctxt "ChooseFont" -msgid "Choose Font" -msgstr "Choose Font" - -#: Decreasefontsize -msgctxt "Decreasefontsize" -msgid "Decrease Font size" -msgstr "Decrease Font size" - -#: Image -msgctxt "Image" -msgid "Insert Image" -msgstr "Insert Image" - -#: Undo -msgctxt "Undo" -msgid "Undo" -msgstr "Undo" - -#: Redo -msgctxt "Redo" -msgid "Redo" -msgstr "Redo" - -#: Copy -msgctxt "Copy" -msgid "Copy" -msgstr "Copy" - -#: Paste -msgctxt "Paste" -msgid "Paste" -msgstr "Paste" - -#: Export -msgctxt "Export" -msgid "Export" -msgstr "Export" - -#: Bold -msgctxt "Bold" -msgid "Bold" -msgstr "Bold" - -#: Italic -msgctxt "Italic" -msgid "Italic" -msgstr "Italic" - -#: Underline -msgctxt "Underline" -msgid "Underline" -msgstr "Underline" - -#: Strike -msgctxt "Strike" -msgid "Strike" -msgstr "Strike" - -#: OrderedList -msgctxt "OrderedList" -msgid "Ordered List" -msgstr "Ordered List" - -#: UnorderedList -msgctxt "UnorderedList" -msgid "Unordered List" -msgstr "Unordered List" - -#: JustifyLeft -msgctxt "JustifyLeft" -msgid "Justify Left" -msgstr "Justify Left" - -#: JustifyRight -msgctxt "JustifyRight" -msgid "Justify Right" -msgstr "Justify Right" - -#: JustifyCenter -msgctxt "JustifyCenter" -msgid "Justify Center" -msgstr "Justify Center" - -#: ExportToTxt -msgctxt "ExportToTxt" -msgid "Export to TXT" -msgstr "Export to TXT" - -#: ExportToPdf -msgctxt "ExportToPdf" -msgid "Export to PDF" -msgstr "Export to PDF" - -#: ExportToDoc -msgctxt "ExportToDoc" -msgid "Export to DOC" -msgstr "Export to DOC" - -#: ExportToOdt -msgctxt "ExportToOdt" -msgid "Export to ODT" -msgstr "Export to ODT" - -#: TutoPrev -msgctxt "TutoPrev" -msgid "Prev" -msgstr "Prev" - -#: TutoNext -msgctxt "TutoNext" -msgid "Next" -msgstr "Next" - -#: TutoEnd -msgctxt "TutoEnd" -msgid "End" -msgstr "End" - -#: TutoExplainTitle -msgctxt "TutoExplainTitle" -msgid "Write Activity" -msgstr "Write Activity" - -#: TutoExplainContent -msgctxt "TutoExplainContent" -msgid "Welcome into the Write activity. The Write activity is a basic word processor with a simple interface for children. Like a standard word processor, you will be able to format your text using buttons in the toolbar" -msgstr "Welcome into the Write activity. The Write activity is a basic word processor with a simple interface for children. Like a standard word processor, you will be able to format your text using buttons in the toolbar" - -#: TutoNetworkTitle -msgctxt "TutoNetworkTitle" -msgid "Network" -msgstr "Network" - -#: TutoNetworkContent -msgctxt "TutoNetworkContent" -msgid "Click here to share the activity so other users on the network could co-edit the text with you" -msgstr "Click here to share the activity so other users on the network could co-edit the text with you" - -#: TutoForegroundTitle -msgctxt "TutoForegroundTitle" -msgid "Text Color" -msgstr "Text Color" - -#: TutoForegroundContent -msgctxt "TutoForegroundContent" -msgid "Click here to change the color for the text" -msgstr "Click here to change the color for the text" - -#: TutoBackgroundTitle -msgctxt "TutoBackgroundTitle" -msgid "Background Color" -msgstr "Background Color" - -#: TutoBackgroundContent -msgctxt "TutoBackgroundContent" -msgid "Click here to change the background color for the text" -msgstr "Click here to change the background color for the text" - -#: TutoFormatTitle -msgctxt "TutoFormatTitle" -msgid "Style" -msgstr "Style" - -#: TutoFormatContent -msgctxt "TutoFormatContent" -msgid "Click here to change the text style. It will allow you to use bold, italic, underline or strike" -msgstr "Click here to change the text style. It will allow you to use bold, italic, underline or strike" - -#: TutoParagraphTitle -msgctxt "TutoParagraphTitle" -msgid "Paragraph" -msgstr "Paragraph" - -#: TutoParagraphContent -msgctxt "TutoParagraphContent" -msgid "Click here to change paragraph alignement. You could align text to the right, to the left or to the center" -msgstr "Click here to change paragraph alignement. You could align text to the right, to the left or to the center" - -#: TutoListTitle -msgctxt "TutoListTitle" -msgid "List" -msgstr "List" - -#: TutoListContent -msgctxt "TutoListContent" -msgid "Click here to create an ordered or unordered list" -msgstr "Click here to create an ordered or unordered list" - -#: TutoIncreaseTitle -msgctxt "TutoIncreaseTitle" -msgid "Increase Font Size" -msgstr "Increase Font Size" - -#: TutoIncreaseContent -msgctxt "TutoIncreaseContent" -msgid "Click here to increase font size" -msgstr "Click here to increase font size" - -#: TutoFontTitle -msgctxt "TutoFontTitle" -msgid "Font" -msgstr "Font" - -#: TutoFontContent -msgctxt "TutoFontContent" -msgid "Click here to change font for the text: Arial, Comic Sans MS, Verdana, ..." -msgstr "Click here to change font for the text: Arial, Comic Sans MS, Verdana, ..." - -#: TutoDecreaseTitle -msgctxt "TutoDecreaseTitle" -msgid "Decrease Font Size" -msgstr "Decrease Font Size" - -#: TutoDecreaseContent -msgctxt "TutoDecreaseContent" -msgid "Click here to decrease font size" -msgstr "Click here to decrease font size" - -#: TutoInsertTitle -msgctxt "TutoInsertTitle" -msgid "Insert Image" -msgstr "Insert Image" - -#: TutoInsertContent -msgctxt "TutoInsertContent" -msgid "Click here to insert into the document an image from Journal" -msgstr "Click here to insert into the document an image from Journal" - -#: TutoUndoTitle -msgctxt "TutoUndoTitle" -msgid "Undo" -msgstr "Undo" - -#: TutoUndoContent -msgctxt "TutoUndoContent" -msgid "Click here to undo last action" -msgstr "Click here to undo last action" - -#: TutoRedoTitle -msgctxt "TutoRedoTitle" -msgid "Redo" -msgstr "Redo" - -#: TutoRedoContent -msgctxt "TutoRedoContent" -msgid "Click here to redo last action" -msgstr "Click here to redo last action" - -#: TutoCopyTitle -msgctxt "TutoCopyTitle" -msgid "Copy" -msgstr "Copy" - -#: TutoCopyContent -msgctxt "TutoCopyContent" -msgid "Click here to copy selected text" -msgstr "Click here to copy selected text" - -#: TutoPasteTitle -msgctxt "TutoPasteTitle" -msgid "Paste" -msgstr "Paste" - -#: TutoPasteContent -msgctxt "TutoPasteContent" -msgid "Click here to paste copied text" -msgstr "Click here to paste copied text" - -#: TutoExportTitle -msgctxt "TutoExportTitle" -msgid "Export" -msgstr "Export" - -#: TutoExportContent -msgctxt "TutoExportContent" -msgid "Click here to export your document in the Journal as a TXT, PDF, DOC or ODT file" -msgstr "Click here to export your document in the Journal as a TXT, PDF, DOC or ODT file" - -#: TutoCanvasTitle -msgctxt "TutoCanvasTitle" -msgid "Content" -msgstr "Content" - -#: TutoCanvasContent -msgctxt "TutoCanvasContent" -msgid "Here is the place where you can type, edit text and insert images. By default there is a sample text but feel free to remove it and begin to create!" -msgstr "Here is the place where you can type, edit text and insert images. By default there is a sample text but feel free to remove it and begin to create!" - -#: SuperScript -msgctxt "SuperScript" -msgid "SuperScript" -msgstr "SuperScript" - -#: SubScript -msgctxt "SubScript" -msgid "SubScript" -msgstr "SubScript" - -#: TutoSuperTitle -msgctxt "TutoSuperTitle" -msgid "Superscript" -msgstr "Superscript" - -#: TutoSuperContent -msgctxt "TutoSuperContent" -msgid "Click here to format text as a superscript: i.e. above the current line of text" -msgstr "Click here to format text as a superscript: i.e. above the current line of text" - -#: TutoSubTitle -msgctxt "TutoSubTitle" -msgid "Subscript" -msgstr "Subscript" - -#: TutoSubContent -msgctxt "TutoSubContent" -msgid "Click here to fortmat text as a subcript: i.e. under the current line of text" -msgstr "Click here to fortmat text as a subcript: i.e. under the current line of text" - diff --git a/activities/Write.activity/po/es.po b/activities/Write.activity/po/es.po deleted file mode 100644 index 5b0cf6f77..000000000 --- a/activities/Write.activity/po/es.po +++ /dev/null @@ -1,423 +0,0 @@ -#. extracted from ../locale.ini -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: Fri May 07 2021 23:17:04 GMT+0200 (heure d’été d’Europe centrale)\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: ini2po 0.0.1\n" - -#. Do not translate {{user}} -#: PlayerJoin -msgctxt "PlayerJoin" -msgid "{{user}} joined" -msgstr "{{user}} se ha unido" - -#. Do not translate {{user}} -#: PlayerLeave -msgctxt "PlayerLeave" -msgid "{{user}} left" -msgstr "{{user}} ha abandonado" - -#: Write -msgctxt "Write" -msgid "Write is an editor where you could type and format your text and ideas." -msgstr "Write es un editor en el que puede escribir y formatear su texto e ideas." - -#: Writefeatures -msgctxt "Writefeatures" -msgid "You can also play with colors , fonts and images and share your experience with your friends" -msgstr "También puedes jugar con colores, fuentes y imágenes y comparte tu experiencia con tus amigos" - -#: Enjoy -msgctxt "Enjoy" -msgid "Enjoy" -msgstr "Disfrutar" - -#: Doc -msgctxt "Doc" -msgid "Export to DOC Done" -msgstr "Exportar a DOC Listo" - -#: Odt -msgctxt "Odt" -msgid "Export to ODT Done" -msgstr "Exportar a ODT Listo" - -#: Pdf -msgctxt "Pdf" -msgid "Export to PDF Done" -msgstr "Exportar a PDF Listo" - -#: Txt -msgctxt "Txt" -msgid "Export to TXT Done" -msgstr "Exportar a TXT Listo" - -#. Do not translate {{username}} -#: Welcome -msgctxt "Welcome" -msgid "Welcome {{username}}!" -msgstr "Bienvenido {{username}}!" - -#: Network -msgctxt "Network" -msgid "Network" -msgstr "Network" - -#: ForegroundColor -msgctxt "ForegroundColor" -msgid "Foreground Color" -msgstr "Color de primer plano" - -#: BackgroundColor -msgctxt "BackgroundColor" -msgid "Background Color" -msgstr "Color de fondo" - -#: Formattext -msgctxt "Formattext" -msgid "Format text" -msgstr "Format text" - -#: Paragraph -msgctxt "Paragraph" -msgid "Paragraph" -msgstr "Párrafo" - -#: List -msgctxt "List" -msgid "List" -msgstr "List" - -#: Increasefontsize -msgctxt "Increasefontsize" -msgid "Increase Font size" -msgstr "Aumenta tamaño de fuente" - -#: ChooseFont -msgctxt "ChooseFont" -msgid "Choose Font" -msgstr "Elegir fuente" - -#: Decreasefontsize -msgctxt "Decreasefontsize" -msgid "Decrease Font size" -msgstr "Disminuir tamaño de fuente" - -#: Image -msgctxt "Image" -msgid "Insert Image" -msgstr "Insert Image" - -#: Undo -msgctxt "Undo" -msgid "Undo" -msgstr "Deshacer" - -#: Redo -msgctxt "Redo" -msgid "Redo" -msgstr "Rehacer" - -#: Copy -msgctxt "Copy" -msgid "Copy" -msgstr "Copiar" - -#: Paste -msgctxt "Paste" -msgid "Paste" -msgstr "Pegar" - -#: Export -msgctxt "Export" -msgid "Export" -msgstr "Exportar" - -#: Bold -msgctxt "Bold" -msgid "Bold" -msgstr "Negrita" - -#: Italic -msgctxt "Italic" -msgid "Italic" -msgstr "Itálica" - -#: Underline -msgctxt "Underline" -msgid "Underline" -msgstr "Subrayado" - -#: Strike -msgctxt "Strike" -msgid "Strike" -msgstr "Tachado" - -#: OrderedList -msgctxt "OrderedList" -msgid "Ordered List" -msgstr "Lista ordenada" - -#: UnorderedList -msgctxt "UnorderedList" -msgid "Unordered List" -msgstr "Lista no ordenada" - -#: JustifyLeft -msgctxt "JustifyLeft" -msgid "Justify Left" -msgstr "Alinear a la izquierda" - -#: JustifyRight -msgctxt "JustifyRight" -msgid "Justify Right" -msgstr "Alinear a la derecha" - -#: JustifyCenter -msgctxt "JustifyCenter" -msgid "Justify Center" -msgstr "Centrar" - -#: ExportToTxt -msgctxt "ExportToTxt" -msgid "Export to TXT" -msgstr "Exportar como TXT" - -#: ExportToPdf -msgctxt "ExportToPdf" -msgid "Export to PDF" -msgstr "Exportar como PDF" - -#: ExportToDoc -msgctxt "ExportToDoc" -msgid "Export to DOC" -msgstr "Exportar como DOC" - -#: ExportToOdt -msgctxt "ExportToOdt" -msgid "Export to ODT" -msgstr "Exportar como ODT" - -#: TutoPrev -msgctxt "TutoPrev" -msgid "Prev" -msgstr "Ant" - -#: TutoNext -msgctxt "TutoNext" -msgid "Next" -msgstr "Sig" - -#: TutoEnd -msgctxt "TutoEnd" -msgid "End" -msgstr "Fin" - -#: TutoExplainTitle -msgctxt "TutoExplainTitle" -msgid "Write Activity" -msgstr "Actividad \"Escribir\"" - -#: TutoExplainContent -msgctxt "TutoExplainContent" -msgid "Welcome into the Write activity. The Write activity is a basic word processor with a simple interface for children. Like a standard word processor, you will be able to format your text using buttons in the toolbar" -msgstr "Bienvenido a la actividad \"Escribir\". Esta actividad es un procesador de texto básico, con una interfaz sencilla para los niños. Al igual que otros procesadores de texto, podrás guardar tus textos en otros formatos usando los botones adecuados en la barra de herramientas" - -#: TutoNetworkTitle -msgctxt "TutoNetworkTitle" -msgid "Network" -msgstr "Compartir en red" - -#: TutoNetworkContent -msgctxt "TutoNetworkContent" -msgid "Click here to share the activity so other users on the network could co-edit the text with you" -msgstr "Haz clic aquí para compartir la actividad con otros usuarios de tu red, que podrán editar el texto junto a ti" - -#: TutoForegroundTitle -msgctxt "TutoForegroundTitle" -msgid "Text Color" -msgstr "Color del texto" - -#: TutoForegroundContent -msgctxt "TutoForegroundContent" -msgid "Click here to change the color for the text" -msgstr "Haz clic aquí para cambiar el color del texto" - -#: TutoBackgroundTitle -msgctxt "TutoBackgroundTitle" -msgid "Background Color" -msgstr "Color de fondo" - -#: TutoBackgroundContent -msgctxt "TutoBackgroundContent" -msgid "Click here to change the background color for the text" -msgstr "Haz clic aquí para cambiar el color de fondo del texto" - -#: TutoFormatTitle -msgctxt "TutoFormatTitle" -msgid "Style" -msgstr "Estilo" - -#: TutoFormatContent -msgctxt "TutoFormatContent" -msgid "Click here to change the text style. It will allow you to use bold, italic, underline or strike" -msgstr "Haz clic aquí para cambiar el estilo del texto. Esto te permitirá usar texto en negrita, itálicas, subrayado o tachado" - -#: TutoParagraphTitle -msgctxt "TutoParagraphTitle" -msgid "Paragraph" -msgstr "Párrafo" - -#: TutoParagraphContent -msgctxt "TutoParagraphContent" -msgid "Click here to change paragraph alignement. You could align text to the right, to the left or to the center" -msgstr "Haz clic aquí para cambiar la alineación del párrafo. Puedes alinear el texto a la derecha, a la izquierda o en el centro" - -#: TutoListTitle -msgctxt "TutoListTitle" -msgid "List" -msgstr "Crear lista" - -#: TutoListContent -msgctxt "TutoListContent" -msgid "Click here to create an ordered or unordered list" -msgstr "Haz clic aquí para crear una lista ordenada o no ordenada" - -#: TutoIncreaseTitle -msgctxt "TutoIncreaseTitle" -msgid "Increase Font Size" -msgstr "Aumentar tamaño de fuente" - -#: TutoIncreaseContent -msgctxt "TutoIncreaseContent" -msgid "Click here to increase font size" -msgstr "Haz clic aquí para aumentar el tamaño de la fuente" - -#: TutoFontTitle -msgctxt "TutoFontTitle" -msgid "Font" -msgstr "Fuente" - -#: TutoFontContent -msgctxt "TutoFontContent" -msgid "Click here to change font for the text: Arial, Comic Sans MS, Verdana, ..." -msgstr "Haz clic aquí para cambiar la fuente del texto: Arial, Comic Sans MS, Verdana..." - -#: TutoDecreaseTitle -msgctxt "TutoDecreaseTitle" -msgid "Decrease Font Size" -msgstr "Disminuir tamaño de fuente" - -#: TutoDecreaseContent -msgctxt "TutoDecreaseContent" -msgid "Click here to decrease font size" -msgstr "Haz clic aquí para disminuir el tamaño de la fuente" - -#: TutoInsertTitle -msgctxt "TutoInsertTitle" -msgid "Insert Image" -msgstr "Insertar imagen" - -#: TutoInsertContent -msgctxt "TutoInsertContent" -msgid "Click here to insert into the document an image from Journal" -msgstr "Haz clic aquí para insertar una imagen de la biblioteca en el documento" - -#: TutoUndoTitle -msgctxt "TutoUndoTitle" -msgid "Undo" -msgstr "Deshacer" - -#: TutoUndoContent -msgctxt "TutoUndoContent" -msgid "Click here to undo last action" -msgstr "Haz clic aquí para deshacer la última acción" - -#: TutoRedoTitle -msgctxt "TutoRedoTitle" -msgid "Redo" -msgstr "Rehacer" - -#: TutoRedoContent -msgctxt "TutoRedoContent" -msgid "Click here to redo last action" -msgstr "Haz clic aquí para rehacer la última acción" - -#: TutoCopyTitle -msgctxt "TutoCopyTitle" -msgid "Copy" -msgstr "Copiar" - -#: TutoCopyContent -msgctxt "TutoCopyContent" -msgid "Click here to copy selected text" -msgstr "Haz clic aquí para copiar el texto seleccionado" - -#: TutoPasteTitle -msgctxt "TutoPasteTitle" -msgid "Paste" -msgstr "Pegar" - -#: TutoPasteContent -msgctxt "TutoPasteContent" -msgid "Click here to paste copied text" -msgstr "Haz clic aquí para pegar el texto copiado" - -#: TutoExportTitle -msgctxt "TutoExportTitle" -msgid "Export" -msgstr "Exportar" - -#: TutoExportContent -msgctxt "TutoExportContent" -msgid "Click here to export your document in the Journal as a TXT, PDF, DOC or ODT file" -msgstr "Haz clic aquí para exportar tu documento a la biblioteca en formato TXT, PDF, DOC o ODT" - -#: TutoCanvasTitle -msgctxt "TutoCanvasTitle" -msgid "Content" -msgstr "Contenido" - -#: TutoCanvasContent -msgctxt "TutoCanvasContent" -msgid "Here is the place where you can type, edit text and insert images. By default there is a sample text but feel free to remove it and begin to create!" -msgstr "Aquí podrás escribir, editar el texto e insertar imágenes. Por defecto, aparecerá un texto de muestra, ¡pero puedes eliminarlo cuando quieras y empezar a crear tu contenido!" - -#: SuperScript -msgctxt "SuperScript" -msgid "SuperScript" -msgstr "Superíndice" - -#: SubScript -msgctxt "SubScript" -msgid "SubScript" -msgstr "Subíndice" - -#: TutoSuperTitle -msgctxt "TutoSuperTitle" -msgid "Superscript" -msgstr "Superíndice" - -#: TutoSuperContent -msgctxt "TutoSuperContent" -msgid "Click here to format text as a superscript: i.e. above the current line of text" -msgstr "Haz clic aquí para que el texto se convierta en un superíndice (es decir, esté escrito por encima de la línea de texto actual y con un tamaño ligeramente menor)" - -#: TutoSubTitle -msgctxt "TutoSubTitle" -msgid "Subscript" -msgstr "Subíndice" - -#: TutoSubContent -msgctxt "TutoSubContent" -msgid "Click here to fortmat text as a subcript: i.e. under the current line of text" -msgstr "Haz clic aquí para que el texto se convierta en un subíndice (es decir, esté escrito por debajo de la línea de texto actual y con un tamaño ligeramente menor)" - diff --git a/activities/Write.activity/po/fr.po b/activities/Write.activity/po/fr.po deleted file mode 100644 index 2b1514a9c..000000000 --- a/activities/Write.activity/po/fr.po +++ /dev/null @@ -1,423 +0,0 @@ -#. extracted from ../locale.ini -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: Fri May 07 2021 23:17:04 GMT+0200 (heure d’été d’Europe centrale)\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: ini2po 0.0.1\n" - -#. Do not translate {{user}} -#: PlayerJoin -msgctxt "PlayerJoin" -msgid "{{user}} joined" -msgstr "{{user}} a rejoint" - -#. Do not translate {{user}} -#: PlayerLeave -msgctxt "PlayerLeave" -msgid "{{user}} left" -msgstr "{{user}} est parti" - -#: Write -msgctxt "Write" -msgid "Write is an editor where you could type and format your text and ideas." -msgstr "Write est un traitement de texte avec lequel vous pouvez taper et formater vos textes et vos idées." - -#: Writefeatures -msgctxt "Writefeatures" -msgid "You can also play with colors , fonts and images and share your experience with your friends" -msgstr "Vous pouvez aussi jouer avec les couleurs, fontes, intégrer des images et partager vos réalisations avec vos amis." - -#: Enjoy -msgctxt "Enjoy" -msgid "Enjoy" -msgstr "A vous de jouer !" - -#: Doc -msgctxt "Doc" -msgid "Export to DOC Done" -msgstr "DOC exporté dans le Journal" - -#: Odt -msgctxt "Odt" -msgid "Export to ODT Done" -msgstr "ODT exporté dans le Journal" - -#: Pdf -msgctxt "Pdf" -msgid "Export to PDF Done" -msgstr "PDF exporté dans le Journal" - -#: Txt -msgctxt "Txt" -msgid "Export to TXT Done" -msgstr "TXT exporté dans le Journal" - -#. Do not translate {{username}} -#: Welcome -msgctxt "Welcome" -msgid "Welcome {{username}}!" -msgstr "Bienvenue {{username}} !" - -#: Network -msgctxt "Network" -msgid "Network" -msgstr "Partage" - -#: ForegroundColor -msgctxt "ForegroundColor" -msgid "Foreground Color" -msgstr "Couleur encre" - -#: BackgroundColor -msgctxt "BackgroundColor" -msgid "Background Color" -msgstr "Couleur fond" - -#: Formattext -msgctxt "Formattext" -msgid "Format text" -msgstr "Formater texte" - -#: Paragraph -msgctxt "Paragraph" -msgid "Paragraph" -msgstr "Paragraphe" - -#: List -msgctxt "List" -msgid "List" -msgstr "Liste" - -#: Increasefontsize -msgctxt "Increasefontsize" -msgid "Increase Font size" -msgstr "Augmenter taille police" - -#: ChooseFont -msgctxt "ChooseFont" -msgid "Choose Font" -msgstr "Choisir police" - -#: Decreasefontsize -msgctxt "Decreasefontsize" -msgid "Decrease Font size" -msgstr "Diminuer taille police" - -#: Image -msgctxt "Image" -msgid "Insert Image" -msgstr "Insérer Image" - -#: Undo -msgctxt "Undo" -msgid "Undo" -msgstr "Annuler" - -#: Redo -msgctxt "Redo" -msgid "Redo" -msgstr "Rétablir" - -#: Copy -msgctxt "Copy" -msgid "Copy" -msgstr "Copier" - -#: Paste -msgctxt "Paste" -msgid "Paste" -msgstr "Coller" - -#: Export -msgctxt "Export" -msgid "Export" -msgstr "Exporter" - -#: Bold -msgctxt "Bold" -msgid "Bold" -msgstr "Gras" - -#: Italic -msgctxt "Italic" -msgid "Italic" -msgstr "Italique" - -#: Underline -msgctxt "Underline" -msgid "Underline" -msgstr "Souligné" - -#: Strike -msgctxt "Strike" -msgid "Strike" -msgstr "Barré" - -#: OrderedList -msgctxt "OrderedList" -msgid "Ordered List" -msgstr "Liste ordonnée" - -#: UnorderedList -msgctxt "UnorderedList" -msgid "Unordered List" -msgstr "Liste non ordonnée" - -#: JustifyLeft -msgctxt "JustifyLeft" -msgid "Justify Left" -msgstr "Justifier à gauche" - -#: JustifyRight -msgctxt "JustifyRight" -msgid "Justify Right" -msgstr "Justifier à droite" - -#: JustifyCenter -msgctxt "JustifyCenter" -msgid "Justify Center" -msgstr "Aligner" - -#: ExportToTxt -msgctxt "ExportToTxt" -msgid "Export to TXT" -msgstr "Exporter en TXT" - -#: ExportToPdf -msgctxt "ExportToPdf" -msgid "Export to PDF" -msgstr "Exporter en PDF" - -#: ExportToDoc -msgctxt "ExportToDoc" -msgid "Export to DOC" -msgstr "Exporter en DOC" - -#: ExportToOdt -msgctxt "ExportToOdt" -msgid "Export to ODT" -msgstr "Exporter en ODT" - -#: TutoPrev -msgctxt "TutoPrev" -msgid "Prev" -msgstr "Préc" - -#: TutoNext -msgctxt "TutoNext" -msgid "Next" -msgstr "Suiv" - -#: TutoEnd -msgctxt "TutoEnd" -msgid "End" -msgstr "Fin" - -#: TutoExplainTitle -msgctxt "TutoExplainTitle" -msgid "Write Activity" -msgstr "Activité Write" - -#: TutoExplainContent -msgctxt "TutoExplainContent" -msgid "Welcome into the Write activity. The Write activity is a basic word processor with a simple interface for children. Like a standard word processor, you will be able to format your text using buttons in the toolbar" -msgstr "L'activité Write est un traitement de texte basique avec une interface adaptée aux enfants. Comme un traitement de texte standard, Write vous permet de formatter votre texte en utilisant les boutons dans la barre d'outil" - -#: TutoNetworkTitle -msgctxt "TutoNetworkTitle" -msgid "Network" -msgstr "Réseau" - -#: TutoNetworkContent -msgctxt "TutoNetworkContent" -msgid "Click here to share the activity so other users on the network could co-edit the text with you" -msgstr "Cliquez ici pour partager l'activité pour que d'autres utilisateurs sur le réseau puissent co-éditer le texte avec vous" - -#: TutoForegroundTitle -msgctxt "TutoForegroundTitle" -msgid "Text Color" -msgstr "Couleur Texte" - -#: TutoForegroundContent -msgctxt "TutoForegroundContent" -msgid "Click here to change the color for the text" -msgstr "Cliquez ici pour changer la couleur du texte" - -#: TutoBackgroundTitle -msgctxt "TutoBackgroundTitle" -msgid "Background Color" -msgstr "Couleur Fond" - -#: TutoBackgroundContent -msgctxt "TutoBackgroundContent" -msgid "Click here to change the background color for the text" -msgstr "Cliquez ici pour changer la couleur de fond du texte" - -#: TutoFormatTitle -msgctxt "TutoFormatTitle" -msgid "Style" -msgstr "Style" - -#: TutoFormatContent -msgctxt "TutoFormatContent" -msgid "Click here to change the text style. It will allow you to use bold, italic, underline or strike" -msgstr "Cliquez ici pour changer le style du texte. Cela vous permet d'utiliser gras, italique, souligné ou barré" - -#: TutoParagraphTitle -msgctxt "TutoParagraphTitle" -msgid "Paragraph" -msgstr "Paragraphe" - -#: TutoParagraphContent -msgctxt "TutoParagraphContent" -msgid "Click here to change paragraph alignement. You could align text to the right, to the left or to the center" -msgstr "Cliquer ici pour changer l'alignement du paragraphe. Vous pouvez aligner le texte à droite, à gauche ou au centre" - -#: TutoListTitle -msgctxt "TutoListTitle" -msgid "List" -msgstr "Liste" - -#: TutoListContent -msgctxt "TutoListContent" -msgid "Click here to create an ordered or unordered list" -msgstr "Cliquer ici pour créer un liste ordonnée ou non ordonnée" - -#: TutoIncreaseTitle -msgctxt "TutoIncreaseTitle" -msgid "Increase Font Size" -msgstr "Augmenter taille fonte" - -#: TutoIncreaseContent -msgctxt "TutoIncreaseContent" -msgid "Click here to increase font size" -msgstr "Cliquez ici pour augmenter la taille de la fonte" - -#: TutoFontTitle -msgctxt "TutoFontTitle" -msgid "Font" -msgstr "Fonte" - -#: TutoFontContent -msgctxt "TutoFontContent" -msgid "Click here to change font for the text: Arial, Comic Sans MS, Verdana, ..." -msgstr "Cliquez ici pour changer la fonte du texte: Arial, Comic Sans MS, Verdane, ..." - -#: TutoDecreaseTitle -msgctxt "TutoDecreaseTitle" -msgid "Decrease Font Size" -msgstr "Diminuer taille fonte" - -#: TutoDecreaseContent -msgctxt "TutoDecreaseContent" -msgid "Click here to decrease font size" -msgstr "Cliquez ici pour diminuer la taille de la fonte" - -#: TutoInsertTitle -msgctxt "TutoInsertTitle" -msgid "Insert Image" -msgstr "Insérer Image" - -#: TutoInsertContent -msgctxt "TutoInsertContent" -msgid "Click here to insert into the document an image from Journal" -msgstr "Cliquez ici pour insérer dans le document une image du Journal" - -#: TutoUndoTitle -msgctxt "TutoUndoTitle" -msgid "Undo" -msgstr "Annuler" - -#: TutoUndoContent -msgctxt "TutoUndoContent" -msgid "Click here to undo last action" -msgstr "Cliquez ici pour annuler la dernière action" - -#: TutoRedoTitle -msgctxt "TutoRedoTitle" -msgid "Redo" -msgstr "Répéter" - -#: TutoRedoContent -msgctxt "TutoRedoContent" -msgid "Click here to redo last action" -msgstr "Cliquez ici pour répéter la dernière action" - -#: TutoCopyTitle -msgctxt "TutoCopyTitle" -msgid "Copy" -msgstr "Copier" - -#: TutoCopyContent -msgctxt "TutoCopyContent" -msgid "Click here to copy selected text" -msgstr "Cliquez ici pour copier le texte sélectionné" - -#: TutoPasteTitle -msgctxt "TutoPasteTitle" -msgid "Paste" -msgstr "Coller" - -#: TutoPasteContent -msgctxt "TutoPasteContent" -msgid "Click here to paste copied text" -msgstr "Cliquez ici pour coller le texte qui a été copié" - -#: TutoExportTitle -msgctxt "TutoExportTitle" -msgid "Export" -msgstr "Exporter" - -#: TutoExportContent -msgctxt "TutoExportContent" -msgid "Click here to export your document in the Journal as a TXT, PDF, DOC or ODT file" -msgstr "Cliquez ici pour exporter votre document dans le Journal en tant que fichier TXT, PDF, DOC ou ODT" - -#: TutoCanvasTitle -msgctxt "TutoCanvasTitle" -msgid "Content" -msgstr "Contenu" - -#: TutoCanvasContent -msgctxt "TutoCanvasContent" -msgid "Here is the place where you can type, edit text and insert images. By default there is a sample text but feel free to remove it and begin to create!" -msgstr "Ici est l'endroit où vous pouvez taper ou éditer le texte et insérer des images. Par défaut, elle contient un texte exemple mais bien sûr vous pouvez le supprimer et commencer à créer le votre" - -#: SuperScript -msgctxt "SuperScript" -msgid "SuperScript" -msgstr "Exposant" - -#: SubScript -msgctxt "SubScript" -msgid "SubScript" -msgstr "Indice" - -#: TutoSuperTitle -msgctxt "TutoSuperTitle" -msgid "Superscript" -msgstr "Exposant" - -#: TutoSuperContent -msgctxt "TutoSuperContent" -msgid "Click here to format text as a superscript: i.e. above the current line of text" -msgstr "Cliquez ici pour formater le texte comme un exposant, c'est à dire au-dessus de la ligne du texte" - -#: TutoSubTitle -msgctxt "TutoSubTitle" -msgid "Subscript" -msgstr "Indice" - -#: TutoSubContent -msgctxt "TutoSubContent" -msgid "Click here to fortmat text as a subcript: i.e. under the current line of text" -msgstr "Cliquez ici pour formater le texte comme un indice, c'est à dire en-dessous de la ligne du texte" - diff --git a/activities/Write.activity/po/pt.po b/activities/Write.activity/po/pt.po deleted file mode 100644 index 670eb266d..000000000 --- a/activities/Write.activity/po/pt.po +++ /dev/null @@ -1,423 +0,0 @@ -#. extracted from ../locale.ini -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: Fri May 07 2021 23:17:04 GMT+0200 (heure d’été d’Europe centrale)\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: ini2po 0.0.1\n" - -#. Do not translate {{user}} -#: PlayerJoin -msgctxt "PlayerJoin" -msgid "{{user}} joined" -msgstr "{{user}} ingressou" - -#. Do not translate {{user}} -#: PlayerLeave -msgctxt "PlayerLeave" -msgid "{{user}} left" -msgstr "{{user}} saiu" - -#: Write -msgctxt "Write" -msgid "Write is an editor where you could type and format your text and ideas." -msgstr "Write é um editor onde você pode digitar e formatar seu texto e idéias." - -#: Writefeatures -msgctxt "Writefeatures" -msgid "You can also play with colors , fonts and images and share your experience with your friends" -msgstr "Você também pode jogar com cores, fontes e imagens e compartilhe sua experiência com seus amigos" - -#: Enjoy -msgctxt "Enjoy" -msgid "Enjoy" -msgstr "apreciar" - -#: Doc -msgctxt "Doc" -msgid "Export to DOC Done" -msgstr "Exportar para DOC Concluído" - -#: Odt -msgctxt "Odt" -msgid "Export to ODT Done" -msgstr "Exportar para ODT Concluído" - -#: Pdf -msgctxt "Pdf" -msgid "Export to PDF Done" -msgstr "Exportar para PDF Concluído" - -#: Txt -msgctxt "Txt" -msgid "Export to TXT Done" -msgstr "Exportar para TXT Concluído" - -#. Do not translate {{username}} -#: Welcome -msgctxt "Welcome" -msgid "Welcome {{username}}!" -msgstr "Bem vinda {{username}}!" - -#: Network -msgctxt "Network" -msgid "Network" -msgstr "Network" - -#: ForegroundColor -msgctxt "ForegroundColor" -msgid "Foreground Color" -msgstr "Foreground Color" - -#: BackgroundColor -msgctxt "BackgroundColor" -msgid "Background Color" -msgstr "Background Color" - -#: Formattext -msgctxt "Formattext" -msgid "Format text" -msgstr "Format text" - -#: Paragraph -msgctxt "Paragraph" -msgid "Paragraph" -msgstr "Paragraph" - -#: List -msgctxt "List" -msgid "List" -msgstr "List" - -#: Increasefontsize -msgctxt "Increasefontsize" -msgid "Increase Font size" -msgstr "Increase Font size" - -#: ChooseFont -msgctxt "ChooseFont" -msgid "Choose Font" -msgstr "Choose Font" - -#: Decreasefontsize -msgctxt "Decreasefontsize" -msgid "Decrease Font size" -msgstr "Decrease Font size" - -#: Image -msgctxt "Image" -msgid "Insert Image" -msgstr "Image" - -#: Undo -msgctxt "Undo" -msgid "Undo" -msgstr "Undo" - -#: Redo -msgctxt "Redo" -msgid "Redo" -msgstr "Redo" - -#: Copy -msgctxt "Copy" -msgid "Copy" -msgstr "Copy" - -#: Paste -msgctxt "Paste" -msgid "Paste" -msgstr "Paste" - -#: Export -msgctxt "Export" -msgid "Export" -msgstr "Export" - -#: Bold -msgctxt "Bold" -msgid "Bold" -msgstr "Bold" - -#: Italic -msgctxt "Italic" -msgid "Italic" -msgstr "Italic" - -#: Underline -msgctxt "Underline" -msgid "Underline" -msgstr "Underline" - -#: Strike -msgctxt "Strike" -msgid "Strike" -msgstr "Strike" - -#: OrderedList -msgctxt "OrderedList" -msgid "Ordered List" -msgstr "Ordered List" - -#: UnorderedList -msgctxt "UnorderedList" -msgid "Unordered List" -msgstr "Unordered List" - -#: JustifyLeft -msgctxt "JustifyLeft" -msgid "Justify Left" -msgstr "Justify Left" - -#: JustifyRight -msgctxt "JustifyRight" -msgid "Justify Right" -msgstr "Justify Right" - -#: JustifyCenter -msgctxt "JustifyCenter" -msgid "Justify Center" -msgstr "Justify Center" - -#: ExportToTxt -msgctxt "ExportToTxt" -msgid "Export to TXT" -msgstr "Export to TXT" - -#: ExportToPdf -msgctxt "ExportToPdf" -msgid "Export to PDF" -msgstr "Export to PDF" - -#: ExportToDoc -msgctxt "ExportToDoc" -msgid "Export to DOC" -msgstr "Export to DOC" - -#: ExportToOdt -msgctxt "ExportToOdt" -msgid "Export to ODT" -msgstr "Export to ODT" - -#: TutoPrev -msgctxt "TutoPrev" -msgid "Prev" -msgstr "Anterior" - -#: TutoNext -msgctxt "TutoNext" -msgid "Next" -msgstr "Próximo" - -#: TutoEnd -msgctxt "TutoEnd" -msgid "End" -msgstr "Fim" - -#: TutoExplainTitle -msgctxt "TutoExplainTitle" -msgid "Write Activity" -msgstr "Write Activity" - -#: TutoExplainContent -msgctxt "TutoExplainContent" -msgid "Welcome into the Write activity. The Write activity is a basic word processor with a simple interface for children. Like a standard word processor, you will be able to format your text using buttons in the toolbar" -msgstr "Welcome into the Write activity. The Write activity is a basic word processor with a simple interface for children. Like a standard word processor, you will be able to format your text using buttons in the toolbar" - -#: TutoNetworkTitle -msgctxt "TutoNetworkTitle" -msgid "Network" -msgstr "Network" - -#: TutoNetworkContent -msgctxt "TutoNetworkContent" -msgid "Click here to share the activity so other users on the network could co-edit the text with you" -msgstr "Click here to share the activity so other users on the network could co-edit the text with you" - -#: TutoForegroundTitle -msgctxt "TutoForegroundTitle" -msgid "Text Color" -msgstr "Text Color" - -#: TutoForegroundContent -msgctxt "TutoForegroundContent" -msgid "Click here to change the color for the text" -msgstr "Click here to change the color for the text" - -#: TutoBackgroundTitle -msgctxt "TutoBackgroundTitle" -msgid "Background Color" -msgstr "Background Color" - -#: TutoBackgroundContent -msgctxt "TutoBackgroundContent" -msgid "Click here to change the background color for the text" -msgstr "Click here to change the background color for the text" - -#: TutoFormatTitle -msgctxt "TutoFormatTitle" -msgid "Style" -msgstr "Style" - -#: TutoFormatContent -msgctxt "TutoFormatContent" -msgid "Click here to change the text style. It will allow you to use bold, italic, underline or strike" -msgstr "Click here to change the text style. It will allow you to use bold, italic, underline or strike" - -#: TutoParagraphTitle -msgctxt "TutoParagraphTitle" -msgid "Paragraph" -msgstr "Paragraph" - -#: TutoParagraphContent -msgctxt "TutoParagraphContent" -msgid "Click here to change paragraph alignement. You could align text to the right, to the left or to the center" -msgstr "Click here to change paragraph alignement. You could align text to the right, to the left or to the center" - -#: TutoListTitle -msgctxt "TutoListTitle" -msgid "List" -msgstr "List" - -#: TutoListContent -msgctxt "TutoListContent" -msgid "Click here to create an ordered or unordered list" -msgstr "Click here to create an ordered or unordered list" - -#: TutoIncreaseTitle -msgctxt "TutoIncreaseTitle" -msgid "Increase Font Size" -msgstr "Increase Font Size" - -#: TutoIncreaseContent -msgctxt "TutoIncreaseContent" -msgid "Click here to increase font size" -msgstr "Click here to increase font size" - -#: TutoFontTitle -msgctxt "TutoFontTitle" -msgid "Font" -msgstr "Fonte" - -#: TutoFontContent -msgctxt "TutoFontContent" -msgid "Click here to change font for the text: Arial, Comic Sans MS, Verdana, ..." -msgstr "Click here to change font for the text: Arial, Comic Sans MS, Verdana, ..." - -#: TutoDecreaseTitle -msgctxt "TutoDecreaseTitle" -msgid "Decrease Font Size" -msgstr "Decrease Font Size" - -#: TutoDecreaseContent -msgctxt "TutoDecreaseContent" -msgid "Click here to decrease font size" -msgstr "Click here to decrease font size" - -#: TutoInsertTitle -msgctxt "TutoInsertTitle" -msgid "Insert Image" -msgstr "Insert Image" - -#: TutoInsertContent -msgctxt "TutoInsertContent" -msgid "Click here to insert into the document an image from Journal" -msgstr "Click here to insert into the document an image from Journal" - -#: TutoUndoTitle -msgctxt "TutoUndoTitle" -msgid "Undo" -msgstr "Desfazer" - -#: TutoUndoContent -msgctxt "TutoUndoContent" -msgid "Click here to undo last action" -msgstr "Click here to undo last action" - -#: TutoRedoTitle -msgctxt "TutoRedoTitle" -msgid "Redo" -msgstr "Refazer" - -#: TutoRedoContent -msgctxt "TutoRedoContent" -msgid "Click here to redo last action" -msgstr "Click here to redo last action" - -#: TutoCopyTitle -msgctxt "TutoCopyTitle" -msgid "Copy" -msgstr "Copy" - -#: TutoCopyContent -msgctxt "TutoCopyContent" -msgid "Click here to copy selected text" -msgstr "Click here to copy selected text" - -#: TutoPasteTitle -msgctxt "TutoPasteTitle" -msgid "Paste" -msgstr "Paste" - -#: TutoPasteContent -msgctxt "TutoPasteContent" -msgid "Click here to paste copied text" -msgstr "Click here to paste copied text" - -#: TutoExportTitle -msgctxt "TutoExportTitle" -msgid "Export" -msgstr "Export" - -#: TutoExportContent -msgctxt "TutoExportContent" -msgid "Click here to export your document in the Journal as a TXT, PDF, DOC or ODT file" -msgstr "Click here to export your document in the Journal as a TXT, PDF, DOC or ODT file" - -#: TutoCanvasTitle -msgctxt "TutoCanvasTitle" -msgid "Content" -msgstr "Content" - -#: TutoCanvasContent -msgctxt "TutoCanvasContent" -msgid "Here is the place where you can type, edit text and insert images. By default there is a sample text but feel free to remove it and begin to create!" -msgstr "Here is the place where you can type, edit text and insert images. By default there is a sample text but feel free to remove it and begin to create!" - -#: SuperScript -msgctxt "SuperScript" -msgid "SuperScript" -msgstr "SuperScript" - -#: SubScript -msgctxt "SubScript" -msgid "SubScript" -msgstr "SubScript" - -#: TutoSuperTitle -msgctxt "TutoSuperTitle" -msgid "Superscript" -msgstr "Superscript" - -#: TutoSuperContent -msgctxt "TutoSuperContent" -msgid "Click here to format text as a superscript: i.e. above the current line of text" -msgstr "Click here to format text as a superscript: i.e. above the current line of text" - -#: TutoSubTitle -msgctxt "TutoSubTitle" -msgid "Subscript" -msgstr "Subscript" - -#: TutoSubContent -msgctxt "TutoSubContent" -msgid "Click here to fortmat text as a subcript: i.e. under the current line of text" -msgstr "Click here to fortmat text as a subcript: i.e. under the current line of text" - diff --git a/activities/Write.activity/po/template.pot b/activities/Write.activity/po/template.pot deleted file mode 100644 index 98a118760..000000000 --- a/activities/Write.activity/po/template.pot +++ /dev/null @@ -1,423 +0,0 @@ -#. extracted from ../locale.ini -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: Sat May 08 2021 22:25:14 GMT+0200 (heure d’été d’Europe centrale)\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: ini2po 0.0.1\n" - -#. Do not translate {{user}} -#: PlayerJoin -msgctxt "PlayerJoin" -msgid "{{user}} joined" -msgstr "{{user}} joined" - -#. Do not translate {{user}} -#: PlayerLeave -msgctxt "PlayerLeave" -msgid "{{user}} left" -msgstr "{{user}} left" - -#: Write -msgctxt "Write" -msgid "Write is an editor where you could type and format your text and ideas." -msgstr "Write is an editor where you could type and format your text and ideas." - -#: Writefeatures -msgctxt "Writefeatures" -msgid "You can also play with colors , fonts and images and share your experience with your friends" -msgstr "You can also play with colors , fonts and images and share your experience with your friends" - -#: Enjoy -msgctxt "Enjoy" -msgid "Enjoy" -msgstr "Enjoy" - -#: Doc -msgctxt "Doc" -msgid "Export to DOC Done" -msgstr "Export to DOC Done" - -#: Odt -msgctxt "Odt" -msgid "Export to ODT Done" -msgstr "Export to ODT Done" - -#: Pdf -msgctxt "Pdf" -msgid "Export to PDF Done" -msgstr "Export to PDF Done" - -#: Txt -msgctxt "Txt" -msgid "Export to TXT Done" -msgstr "Export to TXT Done" - -#. Do not translate {{username}} -#: Welcome -msgctxt "Welcome" -msgid "Welcome {{username}}!" -msgstr "Welcome {{username}}!" - -#: Network -msgctxt "Network" -msgid "Network" -msgstr "Network" - -#: ForegroundColor -msgctxt "ForegroundColor" -msgid "Foreground Color" -msgstr "Foreground Color" - -#: BackgroundColor -msgctxt "BackgroundColor" -msgid "Background Color" -msgstr "Background Color" - -#: Formattext -msgctxt "Formattext" -msgid "Format text" -msgstr "Format text" - -#: Paragraph -msgctxt "Paragraph" -msgid "Paragraph" -msgstr "Paragraph" - -#: List -msgctxt "List" -msgid "List" -msgstr "List" - -#: Increasefontsize -msgctxt "Increasefontsize" -msgid "Increase Font size" -msgstr "Increase Font size" - -#: ChooseFont -msgctxt "ChooseFont" -msgid "Choose Font" -msgstr "Choose Font" - -#: Decreasefontsize -msgctxt "Decreasefontsize" -msgid "Decrease Font size" -msgstr "Decrease Font size" - -#: Image -msgctxt "Image" -msgid "Insert Image" -msgstr "Insert Image" - -#: Undo -msgctxt "Undo" -msgid "Undo" -msgstr "Undo" - -#: Redo -msgctxt "Redo" -msgid "Redo" -msgstr "Redo" - -#: Copy -msgctxt "Copy" -msgid "Copy" -msgstr "Copy" - -#: Paste -msgctxt "Paste" -msgid "Paste" -msgstr "Paste" - -#: Export -msgctxt "Export" -msgid "Export" -msgstr "Export" - -#: Bold -msgctxt "Bold" -msgid "Bold" -msgstr "Bold" - -#: Italic -msgctxt "Italic" -msgid "Italic" -msgstr "Italic" - -#: Underline -msgctxt "Underline" -msgid "Underline" -msgstr "Underline" - -#: Strike -msgctxt "Strike" -msgid "Strike" -msgstr "Strike" - -#: OrderedList -msgctxt "OrderedList" -msgid "Ordered List" -msgstr "Ordered List" - -#: UnorderedList -msgctxt "UnorderedList" -msgid "Unordered List" -msgstr "Unordered List" - -#: JustifyLeft -msgctxt "JustifyLeft" -msgid "Justify Left" -msgstr "Justify Left" - -#: JustifyRight -msgctxt "JustifyRight" -msgid "Justify Right" -msgstr "Justify Right" - -#: JustifyCenter -msgctxt "JustifyCenter" -msgid "Justify Center" -msgstr "Justify Center" - -#: ExportToTxt -msgctxt "ExportToTxt" -msgid "Export to TXT" -msgstr "Export to TXT" - -#: ExportToPdf -msgctxt "ExportToPdf" -msgid "Export to PDF" -msgstr "Export to PDF" - -#: ExportToDoc -msgctxt "ExportToDoc" -msgid "Export to DOC" -msgstr "Export to DOC" - -#: ExportToOdt -msgctxt "ExportToOdt" -msgid "Export to ODT" -msgstr "Export to ODT" - -#: TutoPrev -msgctxt "TutoPrev" -msgid "Prev" -msgstr "Prev" - -#: TutoNext -msgctxt "TutoNext" -msgid "Next" -msgstr "Next" - -#: TutoEnd -msgctxt "TutoEnd" -msgid "End" -msgstr "End" - -#: TutoExplainTitle -msgctxt "TutoExplainTitle" -msgid "Write Activity" -msgstr "Write Activity" - -#: TutoExplainContent -msgctxt "TutoExplainContent" -msgid "Welcome into the Write activity. The Write activity is a basic word processor with a simple interface for children. Like a standard word processor, you will be able to format your text using buttons in the toolbar" -msgstr "Welcome into the Write activity. The Write activity is a basic word processor with a simple interface for children. Like a standard word processor, you will be able to format your text using buttons in the toolbar" - -#: TutoNetworkTitle -msgctxt "TutoNetworkTitle" -msgid "Network" -msgstr "Network" - -#: TutoNetworkContent -msgctxt "TutoNetworkContent" -msgid "Click here to share the activity so other users on the network could co-edit the text with you" -msgstr "Click here to share the activity so other users on the network could co-edit the text with you" - -#: TutoForegroundTitle -msgctxt "TutoForegroundTitle" -msgid "Text Color" -msgstr "Text Color" - -#: TutoForegroundContent -msgctxt "TutoForegroundContent" -msgid "Click here to change the color for the text" -msgstr "Click here to change the color for the text" - -#: TutoBackgroundTitle -msgctxt "TutoBackgroundTitle" -msgid "Background Color" -msgstr "Background Color" - -#: TutoBackgroundContent -msgctxt "TutoBackgroundContent" -msgid "Click here to change the background color for the text" -msgstr "Click here to change the background color for the text" - -#: TutoFormatTitle -msgctxt "TutoFormatTitle" -msgid "Style" -msgstr "Style" - -#: TutoFormatContent -msgctxt "TutoFormatContent" -msgid "Click here to change the text style. It will allow you to use bold, italic, underline or strike" -msgstr "Click here to change the text style. It will allow you to use bold, italic, underline or strike" - -#: TutoParagraphTitle -msgctxt "TutoParagraphTitle" -msgid "Paragraph" -msgstr "Paragraph" - -#: TutoParagraphContent -msgctxt "TutoParagraphContent" -msgid "Click here to change paragraph alignement. You could align text to the right, to the left or to the center" -msgstr "Click here to change paragraph alignement. You could align text to the right, to the left or to the center" - -#: TutoListTitle -msgctxt "TutoListTitle" -msgid "List" -msgstr "List" - -#: TutoListContent -msgctxt "TutoListContent" -msgid "Click here to create an ordered or unordered list" -msgstr "Click here to create an ordered or unordered list" - -#: TutoIncreaseTitle -msgctxt "TutoIncreaseTitle" -msgid "Increase Font Size" -msgstr "Increase Font Size" - -#: TutoIncreaseContent -msgctxt "TutoIncreaseContent" -msgid "Click here to increase font size" -msgstr "Click here to increase font size" - -#: TutoFontTitle -msgctxt "TutoFontTitle" -msgid "Font" -msgstr "Font" - -#: TutoFontContent -msgctxt "TutoFontContent" -msgid "Click here to change font for the text: Arial, Comic Sans MS, Verdana, ..." -msgstr "Click here to change font for the text: Arial, Comic Sans MS, Verdana, ..." - -#: TutoDecreaseTitle -msgctxt "TutoDecreaseTitle" -msgid "Decrease Font Size" -msgstr "Decrease Font Size" - -#: TutoDecreaseContent -msgctxt "TutoDecreaseContent" -msgid "Click here to decrease font size" -msgstr "Click here to decrease font size" - -#: TutoInsertTitle -msgctxt "TutoInsertTitle" -msgid "Insert Image" -msgstr "Insert Image" - -#: TutoInsertContent -msgctxt "TutoInsertContent" -msgid "Click here to insert into the document an image from Journal" -msgstr "Click here to insert into the document an image from Journal" - -#: TutoUndoTitle -msgctxt "TutoUndoTitle" -msgid "Undo" -msgstr "Undo" - -#: TutoUndoContent -msgctxt "TutoUndoContent" -msgid "Click here to undo last action" -msgstr "Click here to undo last action" - -#: TutoRedoTitle -msgctxt "TutoRedoTitle" -msgid "Redo" -msgstr "Redo" - -#: TutoRedoContent -msgctxt "TutoRedoContent" -msgid "Click here to redo last action" -msgstr "Click here to redo last action" - -#: TutoCopyTitle -msgctxt "TutoCopyTitle" -msgid "Copy" -msgstr "Copy" - -#: TutoCopyContent -msgctxt "TutoCopyContent" -msgid "Click here to copy selected text" -msgstr "Click here to copy selected text" - -#: TutoPasteTitle -msgctxt "TutoPasteTitle" -msgid "Paste" -msgstr "Paste" - -#: TutoPasteContent -msgctxt "TutoPasteContent" -msgid "Click here to paste copied text" -msgstr "Click here to paste copied text" - -#: TutoExportTitle -msgctxt "TutoExportTitle" -msgid "Export" -msgstr "Export" - -#: TutoExportContent -msgctxt "TutoExportContent" -msgid "Click here to export your document in the Journal as a TXT, PDF, DOC or ODT file" -msgstr "Click here to export your document in the Journal as a TXT, PDF, DOC or ODT file" - -#: TutoCanvasTitle -msgctxt "TutoCanvasTitle" -msgid "Content" -msgstr "Content" - -#: TutoCanvasContent -msgctxt "TutoCanvasContent" -msgid "Here is the place where you can type, edit text and insert images. By default there is a sample text but feel free to remove it and begin to create!" -msgstr "Here is the place where you can type, edit text and insert images. By default there is a sample text but feel free to remove it and begin to create!" - -#: SuperScript -msgctxt "SuperScript" -msgid "SuperScript" -msgstr "SuperScript" - -#: SubScript -msgctxt "SubScript" -msgid "SubScript" -msgstr "SubScript" - -#: TutoSuperTitle -msgctxt "TutoSuperTitle" -msgid "Superscript" -msgstr "Superscript" - -#: TutoSuperContent -msgctxt "TutoSuperContent" -msgid "Click here to format text as a superscript: i.e. above the current line of text" -msgstr "Click here to format text as a superscript: i.e. above the current line of text" - -#: TutoSubTitle -msgctxt "TutoSubTitle" -msgid "Subscript" -msgstr "Subscript" - -#: TutoSubContent -msgctxt "TutoSubContent" -msgid "Click here to fortmat text as a subcript: i.e. under the current line of text" -msgstr "Click here to fortmat text as a subcript: i.e. under the current line of text" -