зеркало из https://github.com/mozilla/snowl.git
es-ES localization
This commit is contained in:
Родитель
71903d8d96
Коммит
98dd30368e
|
@ -50,6 +50,7 @@ locale snowl cs-CZ @chrome_path@locale/cs-CZ/
|
|||
locale snowl da-DK @chrome_path@locale/da-DK/
|
||||
locale snowl de-DE @chrome_path@locale/de-DE/
|
||||
locale snowl en-US @chrome_path@locale/en-US/
|
||||
locale snowl es-ES @chrome_path@locale/es-ES/
|
||||
locale snowl fr-FR @chrome_path@locale/fr-FR/
|
||||
locale snowl hu-HU @chrome_path@locale/hu-HU/
|
||||
locale snowl ja-JP @chrome_path@locale/ja-JP/
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
<em:translator>kkemenczy</em:translator> <!-- hu-HU, Babelzilla -->
|
||||
<em:translator>markh</em:translator> <!-- nl-NL, Babelzilla -->
|
||||
<em:translator>myahoo</em:translator> <!-- fr-FR, Babelzilla -->
|
||||
<em:translator>RigoNet</em:translator> <!-- es-ES, Babelzilla -->
|
||||
<em:translator>steekid</em:translator> <!-- zh-CN, Babelzilla -->
|
||||
<em:translator>typh</em:translator> <!-- da-DK, Babelzilla -->
|
||||
<em:translator>Wacław Jacek</em:translator> <!-- pl-PL, Babelzilla -->
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
# LOCALIZATION NOTE: description found in Addons list when selected and About
|
||||
|
||||
#extensions.snowl@mozilla.org.description = Conversations redelivered
|
||||
|
||||
# XXX Is there a better way to localize the attribution string? Perhaps we
|
||||
|
||||
# could stick the content in an XHTML file that gets localized, and then we
|
||||
|
||||
# could load the localized version in an iframe inside the About dialog?
|
||||
|
||||
# LOCALIZATION NOTE: The attribution string is static but includes links
|
||||
|
||||
# to the icons and licenses it references, so we use a property to construct it.
|
||||
|
||||
# %1$S = link to the silk icon set
|
||||
|
||||
# %2$S = link to the Creative Commons Attribution 2.5 License
|
||||
|
||||
# %3$S = link to the OPML Icon Project
|
||||
|
||||
# %4$S = link to the Creative Commons Attribution-Share Alike 2.5 License
|
||||
|
||||
contributors1=La mayoría de iconos son de %1$S, con licencia bajo %2$S. El icono OPML es de %3$S, con licencia bajo %4$S.
|
||||
#contributors2 = The OPML icon is from %1$S, licensed under a %2$S.
|
||||
|
||||
# XXX Should any of these be localized, or is it important to use their
|
||||
|
||||
# original names?
|
||||
|
||||
silkIconSetName=Silk icon por famfamfam
|
||||
ccA25LicenseName=Licencia Creative Commons Attribution 2.5
|
||||
opmlIconProjectName=Proyecto Icono OPML
|
||||
ccASA25LicenseName=Licencia Creative Commons Attribution-Share Alike 2.5
|
||||
# LOCALIZATION NOTE: These URLs are here because it seems better than
|
||||
|
||||
# hardcoding them in the script that constructs the attribution string,
|
||||
|
||||
# but they probably shouldn't be localized (unless perhaps the pages
|
||||
|
||||
# referenced have localized versions).
|
||||
|
||||
silkIconSetURL=http://www.famfamfam.com/lab/icons/silk/
|
||||
ccA25LicenseURL=http://creativecommons.org/licenses/by/2.5/
|
||||
opmlIconProjectURL=http://opmlicons.com/
|
||||
ccASA25LicenseURL=http://creativecommons.org/licenses/by-sa/2.5/
|
|
@ -0,0 +1,64 @@
|
|||
<!-- The Tools > Snowl menu. -->
|
||||
<!ENTITY snowlMenu.label "Snowl">
|
||||
<!ENTITY snowlMenu.accesskey "w">
|
||||
<!-- These labels and access keys are for items in the Tools > Snowl menu,
|
||||
- where the user doesn't need to be reminded that these are Snowl commands,
|
||||
- since it is obvious from their placement in the Snowl menu.
|
||||
-->
|
||||
<!ENTITY listView.label "Lista">
|
||||
<!ENTITY listView.accesskey "l">
|
||||
<!ENTITY riverView.label "Río">
|
||||
<!ENTITY riverView.accesskey "R">
|
||||
<!ENTITY streamView.label "Flujo">
|
||||
<!ENTITY streamView.accesskey "t">
|
||||
<!ENTITY checkForNewMessages.label "Comprobar Nuevos Mensajes">
|
||||
<!ENTITY checkForNewMessages.accesskey "c">
|
||||
<!ENTITY subscribe.label "Suscribir...">
|
||||
<!ENTITY subscribe.accesskey "s">
|
||||
<!ENTITY importOPML.label "Importar OPML...">
|
||||
<!ENTITY importOPML.accesskey "i">
|
||||
<!ENTITY exportOPML.label "Exportar OPML...">
|
||||
<!ENTITY exportOPML.accesskey "x">
|
||||
<!ENTITY options.label "Opciones">
|
||||
<!ENTITY options.accesskey "O">
|
||||
<!ENTITY rebuildDB.label "Reconstruir base de datos de Lugares">
|
||||
<!ENTITY rebuildDB.accesskey "D">
|
||||
<!-- These labels and access keys are for items in the View > Sidebar menu,
|
||||
- where the user needs more context that these are for Snowl commands,
|
||||
- since the sidebar menu also includes commands for non-Snowl functions.
|
||||
-->
|
||||
<!ENTITY listViewSidebarMenuItem.label "Recopilación de Mensajes">
|
||||
<!ENTITY listViewSidebarMenuItem.accesskey "l">
|
||||
<!ENTITY listViewSidebar.label "Recopilación de Mensajes">
|
||||
<!ENTITY streamViewSidebarMenuItem.label "Flujo de Mensaje">
|
||||
<!ENTITY streamViewSidebarMenuItem.accesskey "t">
|
||||
<!ENTITY streamViewSidebar.label "Flujo de Mensaje">
|
||||
<!-- These labels and access keys are for items in the Tools > Snowl menu,
|
||||
- where the user doesn't need to be reminded that these are Snowl commands,
|
||||
- since it is obvious from their placement in the Snowl menu.
|
||||
-->
|
||||
<!ENTITY snowlLayoutMenu.label "Diseños">
|
||||
<!ENTITY snowlLayoutMenu.accesskey "y">
|
||||
<!ENTITY layoutClassic.label "Clásico">
|
||||
<!ENTITY layoutClassic.accesskey "C">
|
||||
<!ENTITY layoutVertical.label "Vertical">
|
||||
<!ENTITY layoutVertical.accesskey "V">
|
||||
<!ENTITY layoutWideMessage.label "Mensaje Ancho">
|
||||
<!ENTITY layoutWideMessage.accesskey "M">
|
||||
<!ENTITY layoutWideThread.label "Lista Ancha">
|
||||
<!ENTITY layoutWideThread.accesskey "L">
|
||||
<!ENTITY layoutStacked.label "Apilado">
|
||||
<!ENTITY layoutStacked.accesskey "S">
|
||||
<!ENTITY showHeader.label "Mostrar Cabecera">
|
||||
<!ENTITY showHeader.accesskey "H">
|
||||
<!ENTITY wrapHeader.label "Reducir todas las cabeceras">
|
||||
<!ENTITY wrapHeader.accesskey "W">
|
||||
<!ENTITY toolbar.label "Barra de herramientas lateral">
|
||||
<!ENTITY toolbar.accesskey "d">
|
||||
<!-- These labels and access keys are for toolbar buttons -->
|
||||
<!ENTITY toggleList.label "Lista">
|
||||
<!ENTITY toggleList.tooltip "Mostrar/Ocultar la Lista de Mensajes de Snowl">
|
||||
<!ENTITY toggleStream.label "Flujo">
|
||||
<!ENTITY toggleStream.tooltip "Mostrar/Ocultar el Flujo de mensajes Snowl">
|
||||
<!ENTITY toggleRiver.label "Río">
|
||||
<!ENTITY toggleRiver.tooltip "Mostrar/Ocultar el Río Snowl de Mensajes">
|
|
@ -0,0 +1,36 @@
|
|||
<!ENTITY nameCol.label "Nombre">
|
||||
<!-- Collections contextmenu -->
|
||||
<!ENTITY markRead.label "Marcar como Leído">
|
||||
<!ENTITY markRead.accesskey "d">
|
||||
<!ENTITY markAllRead.label "Marcar Todo como Leído">
|
||||
<!ENTITY refresh.label "Refrescar Origen">
|
||||
<!ENTITY refresh.accesskey "R">
|
||||
<!ENTITY refreshAll.label "Refrescar Todos los Orígenes">
|
||||
<!ENTITY refreshAll.accesskey "c">
|
||||
<!ENTITY pause.label "Pausar Refresco">
|
||||
<!ENTITY pause.accesskey "P">
|
||||
<!ENTITY pauseAll.label "Pausar Todos los Refrescos">
|
||||
<!ENTITY resume.label "Continuar Refresco">
|
||||
<!ENTITY resume.accesskey "m">
|
||||
<!ENTITY resumeAll.label "Continuar Todos los Refrescos">
|
||||
<!ENTITY removeSource.label "Eliminar Origen">
|
||||
<!ENTITY removeSource.accesskey "S">
|
||||
<!ENTITY removeAuthor.label "Eliminar Autor">
|
||||
<!ENTITY removeAuthor.accesskey "A">
|
||||
<!ENTITY newView.label "Nueva Vista...">
|
||||
<!ENTITY newView.accesskey "V">
|
||||
<!ENTITY removeView.label "Eliminar Vista">
|
||||
<!ENTITY removeView.accesskey "w">
|
||||
<!ENTITY view.label "Vista:">
|
||||
<!ENTITY view.accesskey "V">
|
||||
<!ENTITY viewDefault.label "Predeterminado">
|
||||
<!ENTITY viewSources.label "Orígenes">
|
||||
<!ENTITY viewAuthors.label "Autores">
|
||||
<!ENTITY search.label "Búscar:">
|
||||
<!ENTITY search.accesskey "S">
|
||||
<!ENTITY searchMessages.label "Mensajes">
|
||||
<!ENTITY searchMessages.accesskey "M">
|
||||
<!ENTITY searchCollections.label "Recopilaciones">
|
||||
<!ENTITY searchCollections.accesskey "C">
|
||||
<!ENTITY searchHelp.label "Ayuda">
|
||||
<!ENTITY searchHelp.accesskey "H">
|
|
@ -0,0 +1,32 @@
|
|||
# These are the default collections that Snowl displays in the collections pane.
|
||||
|
||||
# They get inserted into the database when it is first created after the user
|
||||
|
||||
# installs Snowl.
|
||||
|
||||
allCollectionName=Todos los mensajes
|
||||
sourcesCollectionName=Todos los orígenes
|
||||
authorsCollectionName=Todos los autores
|
||||
customCollectionName=Personalizado
|
||||
# Places rebuild notification alert
|
||||
|
||||
rebuildPlacesTitleMsg=Reconstruir Lugares Snowl
|
||||
rebuildPlacesDialogMsg=La base de datos Snowl de Lugares será reconstruida por una actualización, recuperación de la base de datos o petición del usuario. Podría duras varios minutos según el tamaño de la base de datos. El progreso de cada elemento convertido se muestra en la barra de estado.
|
||||
rebuildPlacesStarted=Reconstrucción de la base de datos de Lugares iniciada...
|
||||
rebuildPlacesConverted=Convertido a Lugares:
|
||||
rebuildPlacesCompleted=Reconstrucción completada de la base de datos de Lugares
|
||||
# Places author rebuild confirmation dialog strings
|
||||
|
||||
rebuildPlacesAuthorTitleMsg=Reconstruir Lugares de Autores Snowl.
|
||||
rebuildPlacesAuthorDialogMsg=Hay %1$S registros de autor en la base de datos. ¿Desea crear una recopilación de Autor?. Una recopilación de autor se puede crear en cualquier momento reconstruyendo la base de datos de Lugares.
|
||||
# New View title for dialog
|
||||
|
||||
newViewTitle=Nueva Vista
|
||||
# Remove items confirm dialog strings
|
||||
|
||||
removeSourceTitleMsg=Eliminar Origen
|
||||
removeSourceDialogMsg=Eliminar este origen eliminará permanentemente el origen y todos los autores y mensajes.
|
||||
removeAuthorTitleMsg=Eliminar Autor
|
||||
removeAuthorDialogMsg=Eliminar este autor eliminará permanentemente el autor y todos sus mensajes.
|
||||
removeViewTitleMsg=Eliminar Vista
|
||||
removeViewDialogMsg=Confirmar eliminación de esta vista.
|
|
@ -0,0 +1,145 @@
|
|||
/**
|
||||
* @version: 1.0 Alpha-1
|
||||
* @author: Coolite Inc. http://www.coolite.com/
|
||||
* @date: 2008-05-13
|
||||
* @copyright: Copyright (c) 2006-2008, Coolite Inc. (http://www.coolite.com/). All rights reserved.
|
||||
* @license: Licensed under The MIT License. See license.txt and http://www.datejs.com/license/.
|
||||
* @website: http://www.datejs.com/
|
||||
*/
|
||||
Date.CultureInfo={name:"es-ES",englishName:"Spanish (España)",nativeName:"Español (España)",dayNames:["Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado"],abbreviatedDayNames:["Dom","Lun","Mar","Mie","Jue","Vie","Sab"],shortestDayNames:["Do","Lu","Ma","Mi","Ju","Vi","Sa"],firstLetterDayNames:["D","L","M","X","J","V","S"],monthNames:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],abbreviatedMonthNames:["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],amDesignator:"AM",pmDesignator:"PM",firstDayOfWeek:1,twoDigitYearMax:2029,dateElementOrder:"dmy",formatPatterns:{shortDate:"d/M/yyyy",longDate:"dddd, dd MMMM, yyyy",shortTime:"h:mm tt",longTime:"h:mm:ss tt",fullDateTime:"dddd, dd MMMM, yyyy h:mm:ss tt",sortableDateTime:"yyyy-MM-ddTHH:mm:ss",universalSortableDateTime:"yyyy-MM-dd HH:mm:ssZ",rfc1123:"ddd, dd MMM yyyy HH:mm:ss GMT",monthDay:"dd MMMM",yearMonth:"MMMM, yyyy"},regexPatterns:{ene:/^ene(ro)?/i,feb:/^feb(rero)?/i,mar:/^mar(zo)?/i,abr:/^abr(il)?/i,may:/^may(o)?/i,jun:/^jun(io)?/i,jul:/^jul(io)?/i,ago:/^ago(sto)?/i,sep:/^sep(t(iembre)?)?/i,oct:/^oct(ubre)?/i,nov:/^nov(iembre)?/i,dic:/^dic(iembre)?/i,dom:/^do(m(ingo)?)?/i,lun:/^lu(n(es)?)?/i,mar:/^ma(r(t(es)?)?)?/i,mie:/^mi(e(rcoles)?)?/i,jue:/^ju(e(v(e(s)?)?)?)?/i,vie:/^vi(e(rnes)?)?/i,sab:/^sa(b(ado)?)?/i,futuro:/^siguiente/i,pasado:/^ultimo|pasado|prev(io)?/i,añadir:/^(\+|des(pues)?|desde|ahí)/i,restar:/^(\-|ant(es)?|hace)/i,ayer:/^aye(r)?/i,hoy:/^h(oy)?/i,mañana:/^mañ(ana)?/i,ahora:/^aho(ra)?/i,milisegundos:/^ms|mili(segundo)?s?/i,segundo:/^seg(undo)?s?/i,minuto:/^mn|min(uto)?s?/i,hora:/^h(ora)?s?/i,semana:/^sem(ana)?s?/i,mes:/^m(es)?es?/i,día:/^d(ía)?s?/i,año:/^a(ño)?s?/i,shortMeridian:/^(a|p)/i,longMeridian:/^(a\.?m?\.?|p\.?m?\.?)/i,timezone:/^((e(s|d)t|c(s|d)t|m(s|d)t|p(s|d)t)|((gmt)?\s*(\+|\-)\s*\d\d\d\d?)|gmt|utc)/i,ordinalSuffix:/^\s*(st|nd|rd|th)/i,timeContext:/^\s*(\:|a(?!u|p)|p)/i},timezones:[{name:"UTC",offset:"-000"},{name:"GMT",offset:"-000"},{name:"EST",offset:"-0500"},{name:"EDT",offset:"-0400"},{name:"CST",offset:"-0600"},{name:"CDT",offset:"-0500"},{name:"MST",offset:"-0700"},{name:"MDT",offset:"-0600"},{name:"PST",offset:"-0800"},{name:"PDT",offset:"-0700"}]};
|
||||
(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo,p=function(s,l){if(!l){l=2;}
|
||||
return("000"+s).slice(l*-1);};$P.clearTime=function(){this.setHours(0);this.setMinutes(0);this.setSeconds(0);this.setMilliseconds(0);return this;};$P.setTimeToNow=function(){var n=new Date();this.setHours(n.getHours());this.setMinutes(n.getMinutes());this.setSeconds(n.getSeconds());this.setMilliseconds(n.getMilliseconds());return this;};$D.today=function(){return new Date().clearTime();};$D.compare=function(date1,date2){if(isNaN(date1)||isNaN(date2)){throw new Error(date1+" - "+date2);}else if(date1 instanceof Date&&date2 instanceof Date){return(date1<date2)?-1:(date1>date2)?1:0;}else{throw new TypeError(date1+" - "+date2);}};$D.equals=function(date1,date2){return(date1.compareTo(date2)===0);};$D.getDayNumberFromName=function(name){var n=$C.dayNames,m=$C.abbreviatedDayNames,o=$C.shortestDayNames,s=name.toLowerCase();for(var i=0;i<n.length;i++){if(n[i].toLowerCase()==s||m[i].toLowerCase()==s||o[i].toLowerCase()==s){return i;}}
|
||||
return-1;};$D.getMonthNumberFromName=function(name){var n=$C.monthNames,m=$C.abbreviatedMonthNames,s=name.toLowerCase();for(var i=0;i<n.length;i++){if(n[i].toLowerCase()==s||m[i].toLowerCase()==s){return i;}}
|
||||
return-1;};$D.isLeapYear=function(year){return((year%4===0&&year%100!==0)||year%400===0);};$D.getDaysInMonth=function(year,month){return[31,($D.isLeapYear(year)?29:28),31,30,31,30,31,31,30,31,30,31][month];};$D.getTimezoneAbbreviation=function(offset){var z=$C.timezones,p;for(var i=0;i<z.length;i++){if(z[i].offset===offset){return z[i].name;}}
|
||||
return null;};$D.getTimezoneOffset=function(name){var z=$C.timezones,p;for(var i=0;i<z.length;i++){if(z[i].name===name.toUpperCase()){return z[i].offset;}}
|
||||
return null;};$P.clone=function(){return new Date(this.getTime());};$P.compareTo=function(date){return Date.compare(this,date);};$P.equals=function(date){return Date.equals(this,date||new Date());};$P.between=function(start,end){return this.getTime()>=start.getTime()&&this.getTime()<=end.getTime();};$P.isAfter=function(date){return this.compareTo(date||new Date())===1;};$P.isBefore=function(date){return(this.compareTo(date||new Date())===-1);};$P.isToday=function(){return this.isSameDay(new Date());};$P.isSameDay=function(date){return this.clone().clearTime().equals(date.clone().clearTime());};$P.addMilliseconds=function(value){this.setMilliseconds(this.getMilliseconds()+value);return this;};$P.addSeconds=function(value){return this.addMilliseconds(value*1000);};$P.addMinutes=function(value){return this.addMilliseconds(value*60000);};$P.addHours=function(value){return this.addMilliseconds(value*3600000);};$P.addDays=function(value){this.setDate(this.getDate()+value);return this;};$P.addWeeks=function(value){return this.addDays(value*7);};$P.addMonths=function(value){var n=this.getDate();this.setDate(1);this.setMonth(this.getMonth()+value);this.setDate(Math.min(n,$D.getDaysInMonth(this.getFullYear(),this.getMonth())));return this;};$P.addYears=function(value){return this.addMonths(value*12);};$P.add=function(config){if(typeof config=="number"){this._orient=config;return this;}
|
||||
var x=config;if(x.milliseconds){this.addMilliseconds(x.milliseconds);}
|
||||
if(x.seconds){this.addSeconds(x.seconds);}
|
||||
if(x.minutes){this.addMinutes(x.minutes);}
|
||||
if(x.hours){this.addHours(x.hours);}
|
||||
if(x.weeks){this.addWeeks(x.weeks);}
|
||||
if(x.months){this.addMonths(x.months);}
|
||||
if(x.years){this.addYears(x.years);}
|
||||
if(x.days){this.addDays(x.days);}
|
||||
return this;};var $y,$m,$d;$P.getWeek=function(){var a,b,c,d,e,f,g,n,s,w;$y=(!$y)?this.getFullYear():$y;$m=(!$m)?this.getMonth()+1:$m;$d=(!$d)?this.getDate():$d;if($m<=2){a=$y-1;b=(a/4|0)-(a/100|0)+(a/400|0);c=((a-1)/4|0)-((a-1)/100|0)+((a-1)/400|0);s=b-c;e=0;f=$d-1+(31*($m-1));}else{a=$y;b=(a/4|0)-(a/100|0)+(a/400|0);c=((a-1)/4|0)-((a-1)/100|0)+((a-1)/400|0);s=b-c;e=s+1;f=$d+((153*($m-3)+2)/5)+58+s;}
|
||||
g=(a+b)%7;d=(f+g-e)%7;n=(f+3-d)|0;if(n<0){w=53-((g-s)/5|0);}else if(n>364+s){w=1;}else{w=(n/7|0)+1;}
|
||||
$y=$m=$d=null;return w;};$P.getISOWeek=function(){$y=this.getUTCFullYear();$m=this.getUTCMonth()+1;$d=this.getUTCDate();return p(this.getWeek());};$P.setWeek=function(n){return this.moveToDayOfWeek(1).addWeeks(n-this.getWeek());};$D._validate=function(n,min,max,name){if(typeof n=="undefined"){return false;}else if(typeof n!="number"){throw new TypeError(n+" is not a Number.");}else if(n<min||n>max){throw new RangeError(n+" is not a valid value for "+name+".");}
|
||||
return true;};$D.validateMillisecond=function(value){return $D._validate(value,0,999,"millisecond");};$D.validateSecond=function(value){return $D._validate(value,0,59,"second");};$D.validateMinute=function(value){return $D._validate(value,0,59,"minute");};$D.validateHour=function(value){return $D._validate(value,0,23,"hour");};$D.validateDay=function(value,year,month){return $D._validate(value,1,$D.getDaysInMonth(year,month),"day");};$D.validateMonth=function(value){return $D._validate(value,0,11,"month");};$D.validateYear=function(value){return $D._validate(value,0,9999,"year");};$P.set=function(config){if($D.validateMillisecond(config.millisecond)){this.addMilliseconds(config.millisecond-this.getMilliseconds());}
|
||||
if($D.validateSecond(config.second)){this.addSeconds(config.second-this.getSeconds());}
|
||||
if($D.validateMinute(config.minute)){this.addMinutes(config.minute-this.getMinutes());}
|
||||
if($D.validateHour(config.hour)){this.addHours(config.hour-this.getHours());}
|
||||
if($D.validateMonth(config.month)){this.addMonths(config.month-this.getMonth());}
|
||||
if($D.validateYear(config.year)){this.addYears(config.year-this.getFullYear());}
|
||||
if($D.validateDay(config.day,this.getFullYear(),this.getMonth())){this.addDays(config.day-this.getDate());}
|
||||
if(config.timezone){this.setTimezone(config.timezone);}
|
||||
if(config.timezoneOffset){this.setTimezoneOffset(config.timezoneOffset);}
|
||||
if(config.week&&$D._validate(config.week,0,53,"week")){this.setWeek(config.week);}
|
||||
return this;};$P.moveToFirstDayOfMonth=function(){return this.set({day:1});};$P.moveToLastDayOfMonth=function(){return this.set({day:$D.getDaysInMonth(this.getFullYear(),this.getMonth())});};$P.moveToNthOccurrence=function(dayOfWeek,occurrence){var shift=0;if(occurrence>0){shift=occurrence-1;}
|
||||
else if(occurrence===-1){this.moveToLastDayOfMonth();if(this.getDay()!==dayOfWeek){this.moveToDayOfWeek(dayOfWeek,-1);}
|
||||
return this;}
|
||||
return this.moveToFirstDayOfMonth().addDays(-1).moveToDayOfWeek(dayOfWeek,+1).addWeeks(shift);};$P.moveToDayOfWeek=function(dayOfWeek,orient){var diff=(dayOfWeek-this.getDay()+7*(orient||+1))%7;return this.addDays((diff===0)?diff+=7*(orient||+1):diff);};$P.moveToMonth=function(month,orient){var diff=(month-this.getMonth()+12*(orient||+1))%12;return this.addMonths((diff===0)?diff+=12*(orient||+1):diff);};$P.getOrdinalNumber=function(){return Math.ceil((this.clone().clearTime()-new Date(this.getFullYear(),0,1))/86400000)+1;};$P.getTimezone=function(){return $D.getTimezoneAbbreviation(this.getUTCOffset());};$P.setTimezoneOffset=function(offset){var here=this.getTimezoneOffset(),there=Number(offset)*-6/10;return this.addMinutes(there-here);};$P.setTimezone=function(offset){return this.setTimezoneOffset($D.getTimezoneOffset(offset));};$P.hasDaylightSavingTime=function(){return(Date.today().set({month:0,day:1}).getTimezoneOffset()!==Date.today().set({month:6,day:1}).getTimezoneOffset());};$P.isDaylightSavingTime=function(){return(this.hasDaylightSavingTime()&&new Date().getTimezoneOffset()===Date.today().set({month:6,day:1}).getTimezoneOffset());};$P.getUTCOffset=function(){var n=this.getTimezoneOffset()*-10/6,r;if(n<0){r=(n-10000).toString();return r.charAt(0)+r.substr(2);}else{r=(n+10000).toString();return"+"+r.substr(1);}};$P.getElapsed=function(date){return(date||new Date())-this;};if(!$P.toISOString){$P.toISOString=function(){function f(n){return n<10?'0'+n:n;}
|
||||
return'"'+this.getUTCFullYear()+'-'+
|
||||
f(this.getUTCMonth()+1)+'-'+
|
||||
f(this.getUTCDate())+'T'+
|
||||
f(this.getUTCHours())+':'+
|
||||
f(this.getUTCMinutes())+':'+
|
||||
f(this.getUTCSeconds())+'Z"';};}
|
||||
$P._toString=$P.toString;$P.toString=function(format){var x=this;if(format&&format.length==1){var c=$C.formatPatterns;x.t=x.toString;switch(format){case"d":return x.t(c.shortDate);case"D":return x.t(c.longDate);case"F":return x.t(c.fullDateTime);case"m":return x.t(c.monthDay);case"r":return x.t(c.rfc1123);case"s":return x.t(c.sortableDateTime);case"t":return x.t(c.shortTime);case"T":return x.t(c.longTime);case"u":return x.t(c.universalSortableDateTime);case"y":return x.t(c.yearMonth);}}
|
||||
var ord=function(n){switch(n*1){case 1:case 21:case 31:return"st";case 2:case 22:return"nd";case 3:case 23:return"rd";default:return"th";}};return format?format.replace(/(\\)?(dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|S)/g,function(m){if(m.charAt(0)==="\\"){return m.replace("\\","");}
|
||||
x.h=x.getHours;switch(m){case"hh":return p(x.h()<13?(x.h()===0?12:x.h()):(x.h()-12));case"h":return x.h()<13?(x.h()===0?12:x.h()):(x.h()-12);case"HH":return p(x.h());case"H":return x.h();case"mm":return p(x.getMinutes());case"m":return x.getMinutes();case"ss":return p(x.getSeconds());case"s":return x.getSeconds();case"yyyy":return p(x.getFullYear(),4);case"yy":return p(x.getFullYear());case"dddd":return $C.dayNames[x.getDay()];case"ddd":return $C.abbreviatedDayNames[x.getDay()];case"dd":return p(x.getDate());case"d":return x.getDate();case"MMMM":return $C.monthNames[x.getMonth()];case"MMM":return $C.abbreviatedMonthNames[x.getMonth()];case"MM":return p((x.getMonth()+1));case"M":return x.getMonth()+1;case"t":return x.h()<12?$C.amDesignator.substring(0,1):$C.pmDesignator.substring(0,1);case"tt":return x.h()<12?$C.amDesignator:$C.pmDesignator;case"S":return ord(x.getDate());default:return m;}}):this._toString();};}());
|
||||
(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo,$N=Number.prototype;$P._orient=+1;$P._nth=null;$P._is=false;$P._same=false;$P._isSecond=false;$N._dateElement="day";$P.next=function(){this._orient=+1;return this;};$D.next=function(){return $D.today().next();};$P.last=$P.prev=$P.previous=function(){this._orient=-1;return this;};$D.last=$D.prev=$D.previous=function(){return $D.today().last();};$P.is=function(){this._is=true;return this;};$P.same=function(){this._same=true;this._isSecond=false;return this;};$P.today=function(){return this.same().day();};$P.weekday=function(){if(this._is){this._is=false;return(!this.is().sat()&&!this.is().sun());}
|
||||
return false;};$P.at=function(time){return(typeof time==="string")?$D.parse(this.toString("d")+" "+time):this.set(time);};$N.fromNow=$N.after=function(date){var c={};c[this._dateElement]=this;return((!date)?new Date():date.clone()).add(c);};$N.ago=$N.before=function(date){var c={};c[this._dateElement]=this*-1;return((!date)?new Date():date.clone()).add(c);};var dx=("sunday monday tuesday wednesday thursday friday saturday").split(/\s/),mx=("january february march april may june july august september october november december").split(/\s/),px=("Millisecond Second Minute Hour Day Week Month Year").split(/\s/),pxf=("Milliseconds Seconds Minutes Hours Date Week Month FullYear").split(/\s/),nth=("final first second third fourth fifth").split(/\s/),de;$P.toObject=function(){var o={};for(var i=0;i<px.length;i++){o[px[i].toLowerCase()]=this["get"+pxf[i]]();}
|
||||
return o;};$D.fromObject=function(config){config.week=null;return Date.today().set(config);};var df=function(n){return function(){if(this._is){this._is=false;return this.getDay()==n;}
|
||||
if(this._nth!==null){if(this._isSecond){this.addSeconds(this._orient*-1);}
|
||||
this._isSecond=false;var ntemp=this._nth;this._nth=null;var temp=this.clone().moveToLastDayOfMonth();this.moveToNthOccurrence(n,ntemp);if(this>temp){throw new RangeError($D.getDayName(n)+" does not occur "+ntemp+" times in the month of "+$D.getMonthName(temp.getMonth())+" "+temp.getFullYear()+".");}
|
||||
return this;}
|
||||
return this.moveToDayOfWeek(n,this._orient);};};var sdf=function(n){return function(){var t=$D.today(),shift=n-t.getDay();if(n===0&&$C.firstDayOfWeek===1&&t.getDay()!==0){shift=shift+7;}
|
||||
return t.addDays(shift);};};for(var i=0;i<dx.length;i++){$D[dx[i].toUpperCase()]=$D[dx[i].toUpperCase().substring(0,3)]=i;$D[dx[i]]=$D[dx[i].substring(0,3)]=sdf(i);$P[dx[i]]=$P[dx[i].substring(0,3)]=df(i);}
|
||||
var mf=function(n){return function(){if(this._is){this._is=false;return this.getMonth()===n;}
|
||||
return this.moveToMonth(n,this._orient);};};var smf=function(n){return function(){return $D.today().set({month:n,day:1});};};for(var j=0;j<mx.length;j++){$D[mx[j].toUpperCase()]=$D[mx[j].toUpperCase().substring(0,3)]=j;$D[mx[j]]=$D[mx[j].substring(0,3)]=smf(j);$P[mx[j]]=$P[mx[j].substring(0,3)]=mf(j);}
|
||||
var ef=function(j){return function(){if(this._isSecond){this._isSecond=false;return this;}
|
||||
if(this._same){this._same=this._is=false;var o1=this.toObject(),o2=(arguments[0]||new Date()).toObject(),v="",k=j.toLowerCase();for(var m=(px.length-1);m>-1;m--){v=px[m].toLowerCase();if(o1[v]!=o2[v]){return false;}
|
||||
if(k==v){break;}}
|
||||
return true;}
|
||||
if(j.substring(j.length-1)!="s"){j+="s";}
|
||||
return this["add"+j](this._orient);};};var nf=function(n){return function(){this._dateElement=n;return this;};};for(var k=0;k<px.length;k++){de=px[k].toLowerCase();$P[de]=$P[de+"s"]=ef(px[k]);$N[de]=$N[de+"s"]=nf(de);}
|
||||
$P._ss=ef("Second");var nthfn=function(n){return function(dayOfWeek){if(this._same){return this._ss(arguments[0]);}
|
||||
if(dayOfWeek||dayOfWeek===0){return this.moveToNthOccurrence(dayOfWeek,n);}
|
||||
this._nth=n;if(n===2&&(dayOfWeek===undefined||dayOfWeek===null)){this._isSecond=true;return this.addSeconds(this._orient);}
|
||||
return this;};};for(var l=0;l<nth.length;l++){$P[nth[l]]=(l===0)?nthfn(-1):nthfn(l);}}());
|
||||
(function(){Date.Parsing={Exception:function(s){this.message="Parse error at '"+s.substring(0,10)+" ...'";}};var $P=Date.Parsing;var _=$P.Operators={rtoken:function(r){return function(s){var mx=s.match(r);if(mx){return([mx[0],s.substring(mx[0].length)]);}else{throw new $P.Exception(s);}};},token:function(s){return function(s){return _.rtoken(new RegExp("^\s*"+s+"\s*"))(s);};},stoken:function(s){return _.rtoken(new RegExp("^"+s));},until:function(p){return function(s){var qx=[],rx=null;while(s.length){try{rx=p.call(this,s);}catch(e){qx.push(rx[0]);s=rx[1];continue;}
|
||||
break;}
|
||||
return[qx,s];};},many:function(p){return function(s){var rx=[],r=null;while(s.length){try{r=p.call(this,s);}catch(e){return[rx,s];}
|
||||
rx.push(r[0]);s=r[1];}
|
||||
return[rx,s];};},optional:function(p){return function(s){var r=null;try{r=p.call(this,s);}catch(e){return[null,s];}
|
||||
return[r[0],r[1]];};},not:function(p){return function(s){try{p.call(this,s);}catch(e){return[null,s];}
|
||||
throw new $P.Exception(s);};},ignore:function(p){return p?function(s){var r=null;r=p.call(this,s);return[null,r[1]];}:null;},product:function(){var px=arguments[0],qx=Array.prototype.slice.call(arguments,1),rx=[];for(var i=0;i<px.length;i++){rx.push(_.each(px[i],qx));}
|
||||
return rx;},cache:function(rule){var cache={},r=null;return function(s){try{r=cache[s]=(cache[s]||rule.call(this,s));}catch(e){r=cache[s]=e;}
|
||||
if(r instanceof $P.Exception){throw r;}else{return r;}};},any:function(){var px=arguments;return function(s){var r=null;for(var i=0;i<px.length;i++){if(px[i]==null){continue;}
|
||||
try{r=(px[i].call(this,s));}catch(e){r=null;}
|
||||
if(r){return r;}}
|
||||
throw new $P.Exception(s);};},each:function(){var px=arguments;return function(s){var rx=[],r=null;for(var i=0;i<px.length;i++){if(px[i]==null){continue;}
|
||||
try{r=(px[i].call(this,s));}catch(e){throw new $P.Exception(s);}
|
||||
rx.push(r[0]);s=r[1];}
|
||||
return[rx,s];};},all:function(){var px=arguments,_=_;return _.each(_.optional(px));},sequence:function(px,d,c){d=d||_.rtoken(/^\s*/);c=c||null;if(px.length==1){return px[0];}
|
||||
return function(s){var r=null,q=null;var rx=[];for(var i=0;i<px.length;i++){try{r=px[i].call(this,s);}catch(e){break;}
|
||||
rx.push(r[0]);try{q=d.call(this,r[1]);}catch(ex){q=null;break;}
|
||||
s=q[1];}
|
||||
if(!r){throw new $P.Exception(s);}
|
||||
if(q){throw new $P.Exception(q[1]);}
|
||||
if(c){try{r=c.call(this,r[1]);}catch(ey){throw new $P.Exception(r[1]);}}
|
||||
return[rx,(r?r[1]:s)];};},between:function(d1,p,d2){d2=d2||d1;var _fn=_.each(_.ignore(d1),p,_.ignore(d2));return function(s){var rx=_fn.call(this,s);return[[rx[0][0],r[0][2]],rx[1]];};},list:function(p,d,c){d=d||_.rtoken(/^\s*/);c=c||null;return(p instanceof Array?_.each(_.product(p.slice(0,-1),_.ignore(d)),p.slice(-1),_.ignore(c)):_.each(_.many(_.each(p,_.ignore(d))),px,_.ignore(c)));},set:function(px,d,c){d=d||_.rtoken(/^\s*/);c=c||null;return function(s){var r=null,p=null,q=null,rx=null,best=[[],s],last=false;for(var i=0;i<px.length;i++){q=null;p=null;r=null;last=(px.length==1);try{r=px[i].call(this,s);}catch(e){continue;}
|
||||
rx=[[r[0]],r[1]];if(r[1].length>0&&!last){try{q=d.call(this,r[1]);}catch(ex){last=true;}}else{last=true;}
|
||||
if(!last&&q[1].length===0){last=true;}
|
||||
if(!last){var qx=[];for(var j=0;j<px.length;j++){if(i!=j){qx.push(px[j]);}}
|
||||
p=_.set(qx,d).call(this,q[1]);if(p[0].length>0){rx[0]=rx[0].concat(p[0]);rx[1]=p[1];}}
|
||||
if(rx[1].length<best[1].length){best=rx;}
|
||||
if(best[1].length===0){break;}}
|
||||
if(best[0].length===0){return best;}
|
||||
if(c){try{q=c.call(this,best[1]);}catch(ey){throw new $P.Exception(best[1]);}
|
||||
best[1]=q[1];}
|
||||
return best;};},forward:function(gr,fname){return function(s){return gr[fname].call(this,s);};},replace:function(rule,repl){return function(s){var r=rule.call(this,s);return[repl,r[1]];};},process:function(rule,fn){return function(s){var r=rule.call(this,s);return[fn.call(this,r[0]),r[1]];};},min:function(min,rule){return function(s){var rx=rule.call(this,s);if(rx[0].length<min){throw new $P.Exception(s);}
|
||||
return rx;};}};var _generator=function(op){return function(){var args=null,rx=[];if(arguments.length>1){args=Array.prototype.slice.call(arguments);}else if(arguments[0]instanceof Array){args=arguments[0];}
|
||||
if(args){for(var i=0,px=args.shift();i<px.length;i++){args.unshift(px[i]);rx.push(op.apply(null,args));args.shift();return rx;}}else{return op.apply(null,arguments);}};};var gx="optional not ignore cache".split(/\s/);for(var i=0;i<gx.length;i++){_[gx[i]]=_generator(_[gx[i]]);}
|
||||
var _vector=function(op){return function(){if(arguments[0]instanceof Array){return op.apply(null,arguments[0]);}else{return op.apply(null,arguments);}};};var vx="each any all".split(/\s/);for(var j=0;j<vx.length;j++){_[vx[j]]=_vector(_[vx[j]]);}}());(function(){var $D=Date,$P=$D.prototype,$C=$D.CultureInfo;var flattenAndCompact=function(ax){var rx=[];for(var i=0;i<ax.length;i++){if(ax[i]instanceof Array){rx=rx.concat(flattenAndCompact(ax[i]));}else{if(ax[i]){rx.push(ax[i]);}}}
|
||||
return rx;};$D.Grammar={};$D.Translator={hour:function(s){return function(){this.hour=Number(s);};},minute:function(s){return function(){this.minute=Number(s);};},second:function(s){return function(){this.second=Number(s);};},meridian:function(s){return function(){this.meridian=s.slice(0,1).toLowerCase();};},timezone:function(s){return function(){var n=s.replace(/[^\d\+\-]/g,"");if(n.length){this.timezoneOffset=Number(n);}else{this.timezone=s.toLowerCase();}};},day:function(x){var s=x[0];return function(){this.day=Number(s.match(/\d+/)[0]);};},month:function(s){return function(){this.month=(s.length==3)?"jan feb mar apr may jun jul aug sep oct nov dec".indexOf(s)/4:Number(s)-1;};},year:function(s){return function(){var n=Number(s);this.year=((s.length>2)?n:(n+(((n+2000)<$C.twoDigitYearMax)?2000:1900)));};},rday:function(s){return function(){switch(s){case"yesterday":this.days=-1;break;case"tomorrow":this.days=1;break;case"today":this.days=0;break;case"now":this.days=0;this.now=true;break;}};},finishExact:function(x){x=(x instanceof Array)?x:[x];for(var i=0;i<x.length;i++){if(x[i]){x[i].call(this);}}
|
||||
var now=new Date();if((this.hour||this.minute)&&(!this.month&&!this.year&&!this.day)){this.day=now.getDate();}
|
||||
if(!this.year){this.year=now.getFullYear();}
|
||||
if(!this.month&&this.month!==0){this.month=now.getMonth();}
|
||||
if(!this.day){this.day=1;}
|
||||
if(!this.hour){this.hour=0;}
|
||||
if(!this.minute){this.minute=0;}
|
||||
if(!this.second){this.second=0;}
|
||||
if(this.meridian&&this.hour){if(this.meridian=="p"&&this.hour<12){this.hour=this.hour+12;}else if(this.meridian=="a"&&this.hour==12){this.hour=0;}}
|
||||
if(this.day>$D.getDaysInMonth(this.year,this.month)){throw new RangeError(this.day+" is not a valid value for days.");}
|
||||
var r=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second);if(this.timezone){r.set({timezone:this.timezone});}else if(this.timezoneOffset){r.set({timezoneOffset:this.timezoneOffset});}
|
||||
return r;},finish:function(x){x=(x instanceof Array)?flattenAndCompact(x):[x];if(x.length===0){return null;}
|
||||
for(var i=0;i<x.length;i++){if(typeof x[i]=="function"){x[i].call(this);}}
|
||||
var today=$D.today();if(this.now&&!this.unit&&!this.operator){return new Date();}else if(this.now){today=new Date();}
|
||||
var expression=!!(this.days&&this.days!==null||this.orient||this.operator);var gap,mod,orient;orient=((this.orient=="past"||this.operator=="subtract")?-1:1);if(!this.now&&"hour minute second".indexOf(this.unit)!=-1){today.setTimeToNow();}
|
||||
if(this.month||this.month===0){if("year day hour minute second".indexOf(this.unit)!=-1){this.value=this.month+1;this.month=null;expression=true;}}
|
||||
if(!expression&&this.weekday&&!this.day&&!this.days){var temp=Date[this.weekday]();this.day=temp.getDate();if(!this.month){this.month=temp.getMonth();}
|
||||
this.year=temp.getFullYear();}
|
||||
if(expression&&this.weekday&&this.unit!="month"){this.unit="day";gap=($D.getDayNumberFromName(this.weekday)-today.getDay());mod=7;this.days=gap?((gap+(orient*mod))%mod):(orient*mod);}
|
||||
if(this.month&&this.unit=="day"&&this.operator){this.value=(this.month+1);this.month=null;}
|
||||
if(this.value!=null&&this.month!=null&&this.year!=null){this.day=this.value*1;}
|
||||
if(this.month&&!this.day&&this.value){today.set({day:this.value*1});if(!expression){this.day=this.value*1;}}
|
||||
if(!this.month&&this.value&&this.unit=="month"&&!this.now){this.month=this.value;expression=true;}
|
||||
if(expression&&(this.month||this.month===0)&&this.unit!="year"){this.unit="month";gap=(this.month-today.getMonth());mod=12;this.months=gap?((gap+(orient*mod))%mod):(orient*mod);this.month=null;}
|
||||
if(!this.unit){this.unit="day";}
|
||||
if(!this.value&&this.operator&&this.operator!==null&&this[this.unit+"s"]&&this[this.unit+"s"]!==null){this[this.unit+"s"]=this[this.unit+"s"]+((this.operator=="add")?1:-1)+(this.value||0)*orient;}else if(this[this.unit+"s"]==null||this.operator!=null){if(!this.value){this.value=1;}
|
||||
this[this.unit+"s"]=this.value*orient;}
|
||||
if(this.meridian&&this.hour){if(this.meridian=="p"&&this.hour<12){this.hour=this.hour+12;}else if(this.meridian=="a"&&this.hour==12){this.hour=0;}}
|
||||
if(this.weekday&&!this.day&&!this.days){var temp=Date[this.weekday]();this.day=temp.getDate();if(temp.getMonth()!==today.getMonth()){this.month=temp.getMonth();}}
|
||||
if((this.month||this.month===0)&&!this.day){this.day=1;}
|
||||
if(!this.orient&&!this.operator&&this.unit=="week"&&this.value&&!this.day&&!this.month){return Date.today().setWeek(this.value);}
|
||||
if(expression&&this.timezone&&this.day&&this.days){this.day=this.days;}
|
||||
return(expression)?today.add(this):today.set(this);}};var _=$D.Parsing.Operators,g=$D.Grammar,t=$D.Translator,_fn;g.datePartDelimiter=_.rtoken(/^([\s\-\.\,\/\x27]+)/);g.timePartDelimiter=_.stoken(":");g.whiteSpace=_.rtoken(/^\s*/);g.generalDelimiter=_.rtoken(/^(([\s\,]|at|@|on)+)/);var _C={};g.ctoken=function(keys){var fn=_C[keys];if(!fn){var c=$C.regexPatterns;var kx=keys.split(/\s+/),px=[];for(var i=0;i<kx.length;i++){px.push(_.replace(_.rtoken(c[kx[i]]),kx[i]));}
|
||||
fn=_C[keys]=_.any.apply(null,px);}
|
||||
return fn;};g.ctoken2=function(key){return _.rtoken($C.regexPatterns[key]);};g.h=_.cache(_.process(_.rtoken(/^(0[0-9]|1[0-2]|[1-9])/),t.hour));g.hh=_.cache(_.process(_.rtoken(/^(0[0-9]|1[0-2])/),t.hour));g.H=_.cache(_.process(_.rtoken(/^([0-1][0-9]|2[0-3]|[0-9])/),t.hour));g.HH=_.cache(_.process(_.rtoken(/^([0-1][0-9]|2[0-3])/),t.hour));g.m=_.cache(_.process(_.rtoken(/^([0-5][0-9]|[0-9])/),t.minute));g.mm=_.cache(_.process(_.rtoken(/^[0-5][0-9]/),t.minute));g.s=_.cache(_.process(_.rtoken(/^([0-5][0-9]|[0-9])/),t.second));g.ss=_.cache(_.process(_.rtoken(/^[0-5][0-9]/),t.second));g.hms=_.cache(_.sequence([g.H,g.m,g.s],g.timePartDelimiter));g.t=_.cache(_.process(g.ctoken2("shortMeridian"),t.meridian));g.tt=_.cache(_.process(g.ctoken2("longMeridian"),t.meridian));g.z=_.cache(_.process(_.rtoken(/^((\+|\-)\s*\d\d\d\d)|((\+|\-)\d\d\:?\d\d)/),t.timezone));g.zz=_.cache(_.process(_.rtoken(/^((\+|\-)\s*\d\d\d\d)|((\+|\-)\d\d\:?\d\d)/),t.timezone));g.zzz=_.cache(_.process(g.ctoken2("timezone"),t.timezone));g.timeSuffix=_.each(_.ignore(g.whiteSpace),_.set([g.tt,g.zzz]));g.time=_.each(_.optional(_.ignore(_.stoken("T"))),g.hms,g.timeSuffix);g.d=_.cache(_.process(_.each(_.rtoken(/^([0-2]\d|3[0-1]|\d)/),_.optional(g.ctoken2("ordinalSuffix"))),t.day));g.dd=_.cache(_.process(_.each(_.rtoken(/^([0-2]\d|3[0-1])/),_.optional(g.ctoken2("ordinalSuffix"))),t.day));g.ddd=g.dddd=_.cache(_.process(g.ctoken("sun mon tue wed thu fri sat"),function(s){return function(){this.weekday=s;};}));g.M=_.cache(_.process(_.rtoken(/^(1[0-2]|0\d|\d)/),t.month));g.MM=_.cache(_.process(_.rtoken(/^(1[0-2]|0\d)/),t.month));g.MMM=g.MMMM=_.cache(_.process(g.ctoken("jan feb mar apr may jun jul aug sep oct nov dec"),t.month));g.y=_.cache(_.process(_.rtoken(/^(\d\d?)/),t.year));g.yy=_.cache(_.process(_.rtoken(/^(\d\d)/),t.year));g.yyy=_.cache(_.process(_.rtoken(/^(\d\d?\d?\d?)/),t.year));g.yyyy=_.cache(_.process(_.rtoken(/^(\d\d\d\d)/),t.year));_fn=function(){return _.each(_.any.apply(null,arguments),_.not(g.ctoken2("timeContext")));};g.day=_fn(g.d,g.dd);g.month=_fn(g.M,g.MMM);g.year=_fn(g.yyyy,g.yy);g.orientation=_.process(g.ctoken("past future"),function(s){return function(){this.orient=s;};});g.operator=_.process(g.ctoken("add subtract"),function(s){return function(){this.operator=s;};});g.rday=_.process(g.ctoken("yesterday tomorrow today now"),t.rday);g.unit=_.process(g.ctoken("second minute hour day week month year"),function(s){return function(){this.unit=s;};});g.value=_.process(_.rtoken(/^\d\d?(st|nd|rd|th)?/),function(s){return function(){this.value=s.replace(/\D/g,"");};});g.expression=_.set([g.rday,g.operator,g.value,g.unit,g.orientation,g.ddd,g.MMM]);_fn=function(){return _.set(arguments,g.datePartDelimiter);};g.mdy=_fn(g.ddd,g.month,g.day,g.year);g.ymd=_fn(g.ddd,g.year,g.month,g.day);g.dmy=_fn(g.ddd,g.day,g.month,g.year);g.date=function(s){return((g[$C.dateElementOrder]||g.mdy).call(this,s));};g.format=_.process(_.many(_.any(_.process(_.rtoken(/^(dd?d?d?|MM?M?M?|yy?y?y?|hh?|HH?|mm?|ss?|tt?|zz?z?)/),function(fmt){if(g[fmt]){return g[fmt];}else{throw $D.Parsing.Exception(fmt);}}),_.process(_.rtoken(/^[^dMyhHmstz]+/),function(s){return _.ignore(_.stoken(s));}))),function(rules){return _.process(_.each.apply(null,rules),t.finishExact);});var _F={};var _get=function(f){return _F[f]=(_F[f]||g.format(f)[0]);};g.formats=function(fx){if(fx instanceof Array){var rx=[];for(var i=0;i<fx.length;i++){rx.push(_get(fx[i]));}
|
||||
return _.any.apply(null,rx);}else{return _get(fx);}};g._formats=g.formats(["\"yyyy-MM-ddTHH:mm:ssZ\"","yyyy-MM-ddTHH:mm:ssZ","yyyy-MM-ddTHH:mm:ssz","yyyy-MM-ddTHH:mm:ss","yyyy-MM-ddTHH:mmZ","yyyy-MM-ddTHH:mmz","yyyy-MM-ddTHH:mm","ddd, MMM dd, yyyy H:mm:ss tt","ddd MMM d yyyy HH:mm:ss zzz","MMddyyyy","ddMMyyyy","Mddyyyy","ddMyyyy","Mdyyyy","dMyyyy","yyyy","Mdyy","dMyy","d"]);g._start=_.process(_.set([g.date,g.time,g.expression],g.generalDelimiter,g.whiteSpace),t.finish);g.start=function(s){try{var r=g._formats.call({},s);if(r[1].length===0){return r;}}catch(e){}
|
||||
return g._start.call({},s);};$D._parse=$D.parse;$D.parse=function(s){var r=null;if(!s){return null;}
|
||||
if(s instanceof Date){return s;}
|
||||
try{r=$D.Grammar.start.call({},s.replace(/^\s*(\S*(\s+\S+)*)\s*$/,"$1"));}catch(e){return null;}
|
||||
return((r[1].length===0)?r[0]:null);};$D.getParseFunction=function(fx){var fn=$D.Grammar.formats(fx);return function(s){var r=null;try{r=fn.call({},s);}catch(e){return null;}
|
||||
return((r[1].length===0)?r[0]:null);};};$D.parseExact=function(s,fx){return $D.getParseFunction(fx)(s);};}());
|
|
@ -0,0 +1 @@
|
|||
<!ENTITY filterTextbox.emptytext "Buscar Mensajes">
|
|
@ -0,0 +1,14 @@
|
|||
<!ENTITY snowl.title.getting.started.with.snowl "Empezando con Snowl">
|
||||
<!ENTITY snowl.p.you.ve.just.installed.snowl "Acabas de instalar Snowl, un experimento de mensajería en el navegador.">
|
||||
<!ENTITY snowl.firstrun.access.tips "Accede a Snowl desde el menú <code>Herramientas>Snowl</code> or desde el botón Snowl <img src='chrome://snowl/content/icons/snowl-16.png'/> en la parte inferior izquierda de la ventana de tu navegador.">
|
||||
<!ENTITY snowl.firstrun.buttons "Añade botones a tu barra de herramientas para un acceso más rápido a las características de Snowl desde el menú <code>Vista>Barra de Herramientas>Personalizar…</code>">
|
||||
<!ENTITY snowl.firstrun.suscribe.howto "Suscribirse a canales pulsando sobre el icono de canal <img src='chrome://browser/skin/feeds/feedIcon16.png'/> que aparece en la barra de direcciones de Firefox cuando visita una web con un canal.">
|
||||
<!ENTITY snowl.firstrun.suscribe.twitter "Suscribirse a Twitter o importar un archivo OPML desde el menú <code>Herramientas > Snowl</code> o el botón Snowl <img src='chrome://snowl/content/icons/snowl-16.png'/> abajo a la izquierda de la ventana del navegador.">
|
||||
<!ENTITY snowl.firstrun.read.messages "Leer mensajes en las vistas de <a href='&link.to.river;'>río</a>, <a href='&link.to.stream;'>flujo</a>, y <a href='&link.to.list;'>lista</a>.">
|
||||
<!ENTITY snowl.firstrun.write.messages "Escribir mensajes pulsando el botón de escribir <img src='chrome://snowl/content/icons/email_add.png'/> en cualquier vista.">
|
||||
<!ENTITY snowl.firstrun.get.involved "¡Participa!">
|
||||
<!ENTITY snowl.a.learn.more.about.snowl "Aprende más sobre Snowl">
|
||||
<!ENTITY snowl.a.tell.us.what.you.think "cuéntanos lo que piensas">
|
||||
<!ENTITY snowl.a.browse.bug.reports "busca informe de errores">
|
||||
<!ENTITY snowl.a.report.a.bug "informa de un error">
|
||||
<!ENTITY snowl.a.check.out.the.source "comprueba el origen">
|
|
@ -0,0 +1,17 @@
|
|||
<!ENTITY page.title "Snowl">
|
||||
<!ENTITY sourceCol.label "Origen">
|
||||
<!ENTITY authorCol.label "Autor">
|
||||
<!ENTITY subjectCol.label "Tema">
|
||||
<!ENTITY timestampCol.label "Fecha">
|
||||
<!ENTITY datereceivedCol.label "Fecha de recepción">
|
||||
<!ENTITY readCol.label "Leer">
|
||||
<!ENTITY flaggedCol.label "Marcado">
|
||||
<!ENTITY sortBy.label "Ordenado por">
|
||||
<!ENTITY openListMessage.label "Abrir Mensaje">
|
||||
<!ENTITY openListMessage.accesskey "O">
|
||||
<!ENTITY selectAll.label "Seleccionar Todo">
|
||||
<!ENTITY selectAll.accesskey "A">
|
||||
<!ENTITY deleteMessages.label "Borrar mensajes seleccionados">
|
||||
<!ENTITY deleteMessages.accesskey "D">
|
||||
<!ENTITY undeleteMessages.label "Deshacer borrado de mensajes seleccionados">
|
||||
<!ENTITY undeleteMessages.accesskey "U">
|
|
@ -0,0 +1,6 @@
|
|||
<!ENTITY dialog.title "Autenticación requerida">
|
||||
<!ENTITY realm.label "El origen dice:">
|
||||
<!ENTITY username.label "Usuario:">
|
||||
<!ENTITY password.label "Contraseña:">
|
||||
<!ENTITY showPassword.label "Mostrar contraseña">
|
||||
<!ENTITY rememberPassword.label "Recuerda esta contraseña si es correcta">
|
|
@ -0,0 +1,14 @@
|
|||
# LOCALIZATION NOTE: The next two strings are for the message that prompts
|
||||
|
||||
# the user to enter their username and password to access a source.
|
||||
|
||||
#
|
||||
|
||||
# %1$S = name (f.e. Planet Mozilla)
|
||||
|
||||
# %2$S = URL (f.e. http://planet.mozilla.org/)
|
||||
|
||||
namedSourcePrompt=El origen %1$S <%2$S> está solicitando un usuario y contraseña.
|
||||
# %S = URL (f.e. http://planet.mozilla.org/)
|
||||
|
||||
namelessSourcePrompt=El origen %S está solicitando un usuario y contraseña.
|
|
@ -0,0 +1,12 @@
|
|||
<!ENTITY author.label "Autor:">
|
||||
<!ENTITY author.accesskey "A">
|
||||
<!ENTITY subject.label "Tema:">
|
||||
<!ENTITY subject.accesskey "T">
|
||||
<!ENTITY timestamp.label "Fecha:">
|
||||
<!ENTITY link.label "Enlace:">
|
||||
<!ENTITY pinButton.label "Inmovilizar cabecera">
|
||||
<!ENTITY pinButton.tooltip "Conmutar inmovilizar cabecera permanente">
|
||||
<!ENTITY toggleHeader.label "Conmutar Cabecera">
|
||||
<!ENTITY toggleHeader.tooltip "Conmutar cabecera de mensaje de entre breve, básica o completa; en cabecera básica o completa, conmutar para guardar altura después de ajustar">
|
||||
<!ENTITY deleteMessagesButton.label "Borrar Mensaje">
|
||||
<!ENTITY deleteMessagesButton.tooltip "Borrar este Mensaje">
|
|
@ -0,0 +1,15 @@
|
|||
# Display page for message whose source has been unsubscribed or otherwise
|
||||
|
||||
# cannot be found in the database.
|
||||
|
||||
messageNotFound=Este mensaje ha sido borrado o no se encuentra (id:%1$S).
|
||||
messageNotFoundTitle=Mensaje %1$S no encontrado
|
||||
# Keyboard keys for actions on message(s) in the message list. Must be one char
|
||||
|
||||
# corresponding to a keyboard key.
|
||||
|
||||
messageDelete=d
|
||||
messageUndelete=u
|
||||
messageMarkRead=r
|
||||
messageMarkAllRead=R
|
||||
messageMarkFlagged=f
|
|
@ -0,0 +1 @@
|
|||
<!ENTITY undo.label "Deshacer">
|
|
@ -0,0 +1,22 @@
|
|||
# The title of the file picker dialog through which the user picks the name
|
||||
|
||||
# and location of the exported file.
|
||||
|
||||
filePickerTitle=Exportar orígenes como un archivo OPML
|
||||
# The title of the file filter that restricts the set of files shown in
|
||||
|
||||
# the file picker dialog to OPML files (i.e. those with .opml extensions).
|
||||
|
||||
opmlFilterTitle=Archivos OPML
|
||||
# The default name for the file in the file picker dialog.
|
||||
|
||||
# Note: this string includes both the name (sources) and the extension (.opml),
|
||||
|
||||
# but only the name should be localized. The extension should remain the same
|
||||
|
||||
# across all locales.
|
||||
|
||||
defaultFilename=origenes.opml
|
||||
# The title of the OPML document generated by the exporter.
|
||||
|
||||
documentTitle=Orígenes Snowl
|
|
@ -0,0 +1,58 @@
|
|||
<!-- Subscribe pane -->
|
||||
<!ENTITY subscribe.title "Suscribir">
|
||||
<!ENTITY source.label "Suscribir a un origen de mensaje">
|
||||
<!ENTITY feeds.label "Canal">
|
||||
<!ENTITY feeds.accesskey "F">
|
||||
<!ENTITY twitter.label "Twitter">
|
||||
<!ENTITY twitter.accesskey "T">
|
||||
<!ENTITY location.label "Ubicación:">
|
||||
<!ENTITY name.label "Nombre:">
|
||||
<!ENTITY subscribeButton.label "Suscribir">
|
||||
<!ENTITY subscribeButton.accesskey "S">
|
||||
<!ENTITY closeButton.label "Atrás">
|
||||
<!ENTITY closeButton.accesskey "B">
|
||||
<!ENTITY clearButton.label "Limpiar">
|
||||
<!ENTITY clearButton.accesskey "C">
|
||||
<!-- This is used by subscribe.xul, which also uses this DTD file. -->
|
||||
<!ENTITY page.title "Snowl: Suscribir a un origen de mensaje">
|
||||
<!-- Customize pane -->
|
||||
<!ENTITY settings.title "Personalizar">
|
||||
<!ENTITY settings.label "Personalizar configuración predeterminada para un tipo de Origen de Mensaje">
|
||||
<!-- The entities below are commented out because they aren't being used yet,
|
||||
- and they may change before we start using them, so don't localize them.
|
||||
-->
|
||||
<!ENTITY mail.label "Correo">
|
||||
<!ENTITY mail.accesskey "M">
|
||||
<!ENTITY newsgroup.label "Grupo de noticias">
|
||||
<!ENTITY newsgroup.accesskey "N">
|
||||
<!-- General pane -->
|
||||
<!ENTITY general.title "General">
|
||||
<!-- Subscriptions pane -->
|
||||
<!ENTITY subscriptions.title "Suscripciones">
|
||||
<!-- Organize pane -->
|
||||
<!ENTITY organize.title "Organizar">
|
||||
<!-- Refresh and Retention panel entities, currently used by Properties dialog -->
|
||||
<!ENTITY refresh.label "Refrescar">
|
||||
<!ENTITY refreshText.label "El intervalo de refresco debe personalizarse.">
|
||||
<!ENTITY refreshMinutes.label "Refrescar cada">
|
||||
<!ENTITY refreshMinutes.accesskey "R">
|
||||
<!ENTITY minutes.label "minutos">
|
||||
<!ENTITY refreshStatus.label "Estado actual del refresco de conexión para este origen.">
|
||||
<!ENTITY refreshState.label "Estado:">
|
||||
<!ENTITY refreshDate.label "Último refresco:">
|
||||
<!ENTITY refreshCode.label "Último código de error:">
|
||||
<!ENTITY refreshError.label "Último mensaje de error:">
|
||||
<!ENTITY retention.label "Retención">
|
||||
<!ENTITY retentionCleanup.label "Los mensajes puedes borrarse según la siguiente reglas.">
|
||||
<!ENTITY retentionUseType.label "Utilizar configuración predeterminada para este tipo de mensaje">
|
||||
<!ENTITY retentionUseType.accesskey "d">
|
||||
<!ENTITY retentionKeepAll.label "No borrar ningún mensaje">
|
||||
<!ENTITY retentionKeepAll.accesskey "n">
|
||||
<!ENTITY retentionKeepRecent.label "Borrar todo menos los más recientes">
|
||||
<!ENTITY retentionKeepRecent.accesskey "r">
|
||||
<!ENTITY message.label "mensajes">
|
||||
<!ENTITY retentionDeleteMsg.label "Borrar mensajes más viejos de">
|
||||
<!ENTITY retentionDeleteMsg.accesskey "o">
|
||||
<!ENTITY daysOld.label "días">
|
||||
<!ENTITY retentionKeepFlagged.label "Mantener siempre mensajes marcados">
|
||||
<!ENTITY retentionKeepFlagged.accesskey "k">
|
|
@ -0,0 +1,18 @@
|
|||
title=Preferencias Snowl
|
||||
titleWindows=Opciones Snowl
|
||||
# Status messages when subscribing
|
||||
|
||||
messageConnecting=Conectando...
|
||||
messageDuplicate=Ya está suscrito al origen de este mensaje.
|
||||
messageInvalid=No se reconoce la ubicación que ha introducido.
|
||||
messageInvalidLoginData=Debes introducir un nombre de usuario y contraseña para suscribirse al origen de este mensaje.
|
||||
messageConnectionError=Hubo un error conectado con el origen de este mensaje. Por favor compruebe la ubicación y reinténtelo.
|
||||
messagePassword=Sus credenciales no fueron aceptadas. Por favor compruebe su nombre de usuario y contraseñas y reinténtelo.
|
||||
messageDbBusy=La base de datos está ocupada. Por favor intentelo después de que todas las fuentes hayan terminado.
|
||||
messageConnected=Conectado.
|
||||
messageGettingMessages=Obteniendo mensajes...
|
||||
messageSuccess=Se ha suscrito al origen de este mensaje.
|
||||
messageGenericError=Hubo un error completando la suscripción a el origen de este mensaje. Error: %1$S
|
||||
# Customize panel
|
||||
|
||||
settingsDefaultText=Usar siempre estas por defecto y sobrescribir cualquier configuración personalizada
|
|
@ -0,0 +1,9 @@
|
|||
<!ENTITY page.title "Snowl: Río de mensajes">
|
||||
<!ENTITY bodyButton.tooltip "Mostrar resumen/contenido de mensajes.">
|
||||
<!ENTITY orderButton.tooltip "Invertir el orden de los mensajes.">
|
||||
<!ENTITY columnsButton.tooltip "Mostrar los mensajes en columnas.">
|
||||
<!ENTITY decrementPeriodButton.tooltip "Día Anterior">
|
||||
<!ENTITY incrementPeriodButton.tooltip "Siguiente día">
|
||||
<!ENTITY periodDay.label "Día">
|
||||
<!ENTITY periodWeek.label "Semana">
|
||||
<!ENTITY periodMonth.label "Mes">
|
|
@ -0,0 +1,7 @@
|
|||
otherTabs=Otras pestañas
|
||||
subscriptions=Suscripciones
|
||||
# LOCALIZATION NOTE:
|
||||
|
||||
# %1$S = the name of the feed
|
||||
|
||||
subscribed=¡Has sido suscrito en %1$S en Snowl!
|
|
@ -0,0 +1,26 @@
|
|||
<!-- Search Help -->
|
||||
<!ENTITY search.title "Ayuda de búsqueda">
|
||||
<!ENTITY search.caption "Guía de Búsqueda de mensajes">
|
||||
<!ENTITY search.header1 "Buscar está basado en las capacidades y limitaciones de Full Text Search (FTS) de SQLite">
|
||||
<!ENTITY search.header2 "Sintaxis válida:">
|
||||
<!ENTITY search.explanation1 "Coinciden todos los elementos que empiezan con 'foo'; o 'foo' y 'foobar'.">
|
||||
<!ENTITY search.explanation2 "Coinciden todos los elementos que contienen exactamente 'foo'; 'foo' pero no 'foobar'.">
|
||||
<!ENTITY search.example3 "foo bar">
|
||||
<!ENTITY search.explanation3 "C">
|
||||
<!ENTITY search.example4 "foo | bar">
|
||||
<!ENTITY search.explanation4 "Coinciden todos los elementos con 'foo' o 'bar'.">
|
||||
<!ENTITY search.example5 "foo bar -baz">
|
||||
<!ENTITY search.explanation5 "Coinciden todos los elementos con 'foo' y 'bar', pero sin 'baz'.">
|
||||
<!ENTITY search.example6 "">
|
||||
<!ENTITY search.explanation6 "Nota: solo puede haber UN término de negación y debe estar al final al final de la sentencia de búsqueda.">
|
||||
<!ENTITY search.example7 "foo ~N bar">
|
||||
<!ENTITY search.explanation7 "Coinciden todos los elementos en los que 'foo' está CERCA de 'bar,">
|
||||
<!ENTITY search.explanation8 "Coinciden todos lo elementos en los que 'foo' a dos palabras de 'bar' y 'bar' está hasta 10 palabras de "baz biff".">
|
||||
<!ENTITY search.header3 "Errores de sintaxis se indican con fondo en rojo.">
|
||||
<!ENTITY search.header4 "Sintaxis no válida:">
|
||||
<!ENTITY search.explanation9 "El prefijo comodín no es válido.">
|
||||
<!ENTITY search.explanation10 "Espacios al inicio y al final no son válidos en una cadena entrecomillada.">
|
||||
<!ENTITY search.example11 ".foo-bar?">
|
||||
<!ENTITY search.explanation11 "Símbolos no alfanuméricos no son válidos en cadenas no entrecomilladas.">
|
||||
<!ENTITY search.explanation12 "Cadenas entrecomilladas no pueden ser negadas.">
|
||||
<!ENTITY search.header5 "La búsqueda de símbolos en cadenas entrecomilladas devuelve resultados inesperados. Además, los comodines no están soportados dentro de palabras.">
|
|
@ -0,0 +1,4 @@
|
|||
# LOCALIZATION NOTE emptytext message in List View search box
|
||||
|
||||
searchCollectionsEmptyText=Recopilación
|
||||
searchMessagesEmptyText=Mensajes
|
|
@ -0,0 +1 @@
|
|||
<!ENTITY subscribeUsing.label "Suscribir utilizando:">
|
|
@ -0,0 +1 @@
|
|||
<!ENTITY page.title "Flujo de mensajes Snowl">
|
|
@ -0,0 +1,18 @@
|
|||
subscribeNow=Suscribir Ahora
|
||||
chooseApplicationMenuItem=Elegir Aplicación...
|
||||
chooseApplicationDialogTitle=Elegir Aplicación
|
||||
alwaysUse=Usar Siempre
|
||||
# LOCALIZATION NOTE: The next three strings explains to the user what they're
|
||||
|
||||
# doing.
|
||||
|
||||
# e.g. alwaysUseForVideoPodcasts : "Always use Miro to subscribe to video podcasts."
|
||||
|
||||
# %S = application to use (Miro, iTunes, ...)
|
||||
|
||||
alwaysUseForFeeds=Usar siempre %S para suscribirse
|
||||
alwaysUseForAudioPodcasts=Usar siempre %S para suscribirse a podcast.
|
||||
alwaysUseForVideoPodcasts=Usar siempre %S para suscribirse a podcast.
|
||||
subscribeFeedUsing=Suscribir usando
|
||||
subscribeAudioPodcastUsing=Suscribir usando
|
||||
subscribeVideoPodcastUsing=Suscribir usando
|
|
@ -0,0 +1,10 @@
|
|||
<!ENTITY subscribeButton.tooltip "Suscribirse a fuentes de mensajes.">
|
||||
<!ENTITY unsubscribeButton.tooltip "Desuscribirse de las fuentes de mensajes seleccionadas.">
|
||||
<!ENTITY refreshButton.tooltip "Refrescar todas las fuentes de mensajes.">
|
||||
<!ENTITY exportButton.tooltip "Exportar mensaje como OPML.">
|
||||
<!ENTITY unreadButton.tooltip "Mostrar mensajes nuevos y no leídos de colecciones seleccionadas.">
|
||||
<!ENTITY flaggedButton.tooltip "Mostrar mensajes marcados de colecciones seleccionadas.">
|
||||
<!ENTITY listToolbarButton.tooltip "Conmutar Ver barra de herramientas.">
|
||||
<!ENTITY writeButton.tooltip "Escribir un mensaje.">
|
||||
<!ENTITY showDeletedButton.tooltip "Mostrar mensajes borrados de colecciones seleccionadas.">
|
||||
<!ENTITY purgeDeletedButton.tooltip "Eliminar todos los mensajes borrados de colecciones seleccionadas.">
|
|
@ -0,0 +1,31 @@
|
|||
unknownDate=desconocido
|
||||
monday=Lunes
|
||||
tuesday=Martes
|
||||
wednesday=Miércoles
|
||||
thursday=Jueves
|
||||
friday=Viernes
|
||||
saturday=Sábado
|
||||
sunday=Domingo
|
||||
# LOCALIZATION NOTE (yesterdayTime): %S is the time of day in hours and minutes
|
||||
|
||||
# as returned by nsIScriptableDateFormat::FormatTime (f.e. "12:34").
|
||||
|
||||
yesterdayTime=Ayer %S
|
||||
future=El futuro
|
||||
evening=Noche
|
||||
afternoon=Tarde
|
||||
morning=Mañana
|
||||
# LOCALIZATION NOTE (weeHours): Wee hours is a euphemism for the early hours
|
||||
|
||||
# of the morning. Snowls uses this expression to describe the hours between
|
||||
|
||||
# midnight and six in the morning (i.e. 00:00 - 06:00).
|
||||
|
||||
weeHours=Madrugada
|
||||
today=Hoy
|
||||
yesterday=Ayer
|
||||
older=Viejo
|
||||
weekOne=Semana Uno
|
||||
weekTwo=Semana Dos
|
||||
weekThree=Semana Tres
|
||||
weekFour=Semana Cuatro
|
|
@ -0,0 +1 @@
|
|||
<!ENTITY sendButton.label "Enviar">
|
|
@ -0,0 +1,3 @@
|
|||
sendButton.label=Enviar
|
||||
sendButton.label.sending=Enviando...
|
||||
sendButton.label.sent=Enviado
|
Загрузка…
Ссылка в новой задаче