sidekiq 2.13.0 → 2.13.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of sidekiq might be problematic. Click here for more details.
- data/.gitignore +2 -0
- data/Changes.md +21 -0
- data/Contributing.md +26 -0
- data/Pro-Changes.md +22 -0
- data/lib/sidekiq/exception_handler.rb +1 -1
- data/lib/sidekiq/middleware/chain.rb +8 -1
- data/lib/sidekiq/middleware/server/retry_jobs.rb +14 -1
- data/lib/sidekiq/redis_connection.rb +14 -5
- data/lib/sidekiq/version.rb +1 -1
- data/lib/sidekiq/web.rb +33 -11
- data/test/test_exception_handler.rb +3 -7
- data/test/test_middleware.rb +9 -2
- data/test/test_redis_connection.rb +30 -0
- data/test/test_retry.rb +17 -0
- data/test/test_web.rb +41 -3
- data/web/assets/javascripts/dashboard.js +36 -3
- data/web/assets/javascripts/locales/README.md +27 -0
- data/web/assets/javascripts/locales/jquery.timeago.ar.js +96 -0
- data/web/assets/javascripts/locales/jquery.timeago.bg.js +18 -0
- data/web/assets/javascripts/locales/jquery.timeago.bs.js +49 -0
- data/web/assets/javascripts/locales/jquery.timeago.ca.js +18 -0
- data/web/assets/javascripts/locales/jquery.timeago.cy.js +20 -0
- data/web/assets/javascripts/locales/jquery.timeago.cz.js +18 -0
- data/web/assets/javascripts/locales/jquery.timeago.da.js +18 -0
- data/web/assets/javascripts/locales/jquery.timeago.de.js +18 -0
- data/web/assets/javascripts/locales/jquery.timeago.el.js +18 -0
- data/web/assets/javascripts/locales/jquery.timeago.en-short.js +20 -0
- data/web/assets/javascripts/locales/jquery.timeago.en.js +20 -0
- data/web/assets/javascripts/locales/jquery.timeago.es.js +18 -0
- data/web/assets/javascripts/locales/jquery.timeago.et.js +18 -0
- data/web/assets/javascripts/locales/jquery.timeago.fa.js +22 -0
- data/web/assets/javascripts/locales/jquery.timeago.fi.js +28 -0
- data/web/assets/javascripts/locales/jquery.timeago.fr-short.js +16 -0
- data/web/assets/javascripts/locales/jquery.timeago.fr.js +17 -0
- data/web/assets/javascripts/locales/jquery.timeago.he.js +18 -0
- data/web/assets/javascripts/locales/jquery.timeago.hr.js +49 -0
- data/web/assets/javascripts/locales/jquery.timeago.hu.js +18 -0
- data/web/assets/javascripts/locales/jquery.timeago.hy.js +18 -0
- data/web/assets/javascripts/locales/jquery.timeago.id.js +18 -0
- data/web/assets/javascripts/locales/jquery.timeago.it.js +16 -0
- data/web/assets/javascripts/locales/jquery.timeago.ja.js +19 -0
- data/web/assets/javascripts/locales/jquery.timeago.ko.js +17 -0
- data/web/assets/javascripts/locales/jquery.timeago.lt.js +20 -0
- data/web/assets/javascripts/locales/jquery.timeago.mk.js +20 -0
- data/web/assets/javascripts/locales/jquery.timeago.nl.js +20 -0
- data/web/assets/javascripts/locales/jquery.timeago.no.js +18 -0
- data/web/assets/javascripts/locales/jquery.timeago.pl.js +31 -0
- data/web/assets/javascripts/locales/jquery.timeago.pt-br.js +16 -0
- data/web/assets/javascripts/locales/jquery.timeago.pt.js +16 -0
- data/web/assets/javascripts/locales/jquery.timeago.ro.js +18 -0
- data/web/assets/javascripts/locales/jquery.timeago.rs.js +49 -0
- data/web/assets/javascripts/locales/jquery.timeago.ru.js +34 -0
- data/web/assets/javascripts/locales/jquery.timeago.sk.js +18 -0
- data/web/assets/javascripts/locales/jquery.timeago.sl.js +44 -0
- data/web/assets/javascripts/locales/jquery.timeago.sv.js +18 -0
- data/web/assets/javascripts/locales/jquery.timeago.th.js +20 -0
- data/web/assets/javascripts/locales/jquery.timeago.tr.js +16 -0
- data/web/assets/javascripts/locales/jquery.timeago.uk.js +34 -0
- data/web/assets/javascripts/locales/jquery.timeago.uz.js +19 -0
- data/web/assets/javascripts/locales/jquery.timeago.zh-CN.js +20 -0
- data/web/assets/javascripts/locales/jquery.timeago.zh-TW.js +20 -0
- data/web/assets/stylesheets/application.css +46 -1
- data/web/views/_job_info.slim +51 -0
- data/web/views/_summary.slim +8 -8
- data/web/views/index.slim +1 -1
- data/web/views/layout.slim +24 -22
- data/web/views/queue.slim +1 -1
- data/web/views/retries.slim +2 -1
- data/web/views/retry.slim +1 -44
- data/web/views/scheduled.slim +4 -2
- data/web/views/scheduled_job_info.slim +6 -0
- metadata +50 -2
@@ -0,0 +1,22 @@
|
|
1
|
+
|
2
|
+
// Persian
|
3
|
+
// Use DIR attribute for RTL text in Persian Language for ABBR tag .
|
4
|
+
// By MB.seifollahi@gmail.com
|
5
|
+
jQuery.timeago.settings.strings = {
|
6
|
+
prefixAgo: null,
|
7
|
+
prefixFromNow: null,
|
8
|
+
suffixAgo: "پیش",
|
9
|
+
suffixFromNow: "از حال",
|
10
|
+
seconds: "کمتر از یک دقیقه",
|
11
|
+
minute: "حدود یک دقیقه",
|
12
|
+
minutes: "%d دقیقه",
|
13
|
+
hour: "حدود یک ساعت",
|
14
|
+
hours: "حدود %d ساعت",
|
15
|
+
day: "یک روز",
|
16
|
+
days: "%d روز",
|
17
|
+
month: "حدود یک ماه",
|
18
|
+
months: "%d ماه",
|
19
|
+
year: "حدود یک سال",
|
20
|
+
years: "%d سال",
|
21
|
+
wordSeparator: " "
|
22
|
+
};
|
@@ -0,0 +1,28 @@
|
|
1
|
+
// Finnish
|
2
|
+
jQuery.timeago.settings.strings = {
|
3
|
+
prefixAgo: null,
|
4
|
+
prefixFromNow: null,
|
5
|
+
suffixAgo: "sitten",
|
6
|
+
suffixFromNow: "tulevaisuudessa",
|
7
|
+
seconds: "alle minuutti",
|
8
|
+
minute: "minuutti",
|
9
|
+
minutes: "%d minuuttia",
|
10
|
+
hour: "tunti",
|
11
|
+
hours: "%d tuntia",
|
12
|
+
day: "päivä",
|
13
|
+
days: "%d päivää",
|
14
|
+
month: "kuukausi",
|
15
|
+
months: "%d kuukautta",
|
16
|
+
year: "vuosi",
|
17
|
+
years: "%d vuotta"
|
18
|
+
};
|
19
|
+
|
20
|
+
// The above is not a great localization because one would usually
|
21
|
+
// write "2 days ago" in Finnish as "2 päivää sitten", however
|
22
|
+
// one would write "2 days into the future" as "2:n päivän päästä"
|
23
|
+
// which cannot be achieved with localization support this simple.
|
24
|
+
// This is because Finnish has word suffixes (attached directly
|
25
|
+
// to the end of the word). The word "day" is "päivä" in Finnish.
|
26
|
+
// As workaround, the above localizations will say
|
27
|
+
// "2 päivää tulevaisuudessa" which is understandable but
|
28
|
+
// not as fluent.
|
@@ -0,0 +1,16 @@
|
|
1
|
+
// French shortened
|
2
|
+
jQuery.timeago.settings.strings = {
|
3
|
+
prefixAgo: "il y a",
|
4
|
+
prefixFromNow: "d'ici",
|
5
|
+
seconds: "moins d'une minute",
|
6
|
+
minute: "une minute",
|
7
|
+
minutes: "%d minutes",
|
8
|
+
hour: "une heure",
|
9
|
+
hours: "%d heures",
|
10
|
+
day: "un jour",
|
11
|
+
days: "%d jours",
|
12
|
+
month: "un mois",
|
13
|
+
months: "%d mois",
|
14
|
+
year: "un an",
|
15
|
+
years: "%d ans"
|
16
|
+
};
|
@@ -0,0 +1,17 @@
|
|
1
|
+
// French
|
2
|
+
jQuery.timeago.settings.strings = {
|
3
|
+
// environ ~= about, it's optional
|
4
|
+
prefixAgo: "il y a",
|
5
|
+
prefixFromNow: "d'ici",
|
6
|
+
seconds: "moins d'une minute",
|
7
|
+
minute: "environ une minute",
|
8
|
+
minutes: "environ %d minutes",
|
9
|
+
hour: "environ une heure",
|
10
|
+
hours: "environ %d heures",
|
11
|
+
day: "environ un jour",
|
12
|
+
days: "environ %d jours",
|
13
|
+
month: "environ un mois",
|
14
|
+
months: "environ %d mois",
|
15
|
+
year: "un an",
|
16
|
+
years: "%d ans"
|
17
|
+
};
|
@@ -0,0 +1,18 @@
|
|
1
|
+
// Hebrew
|
2
|
+
jQuery.timeago.settings.strings = {
|
3
|
+
prefixAgo: "לפני",
|
4
|
+
prefixFromNow: "מעכשיו",
|
5
|
+
suffixAgo: "",
|
6
|
+
suffixFromNow: "",
|
7
|
+
seconds: "פחות מדקה",
|
8
|
+
minute: "דקה",
|
9
|
+
minutes: "%d דקות",
|
10
|
+
hour: "שעה",
|
11
|
+
hours: "%d שעות",
|
12
|
+
day: "יום",
|
13
|
+
days: "%d ימים",
|
14
|
+
month: "חודש",
|
15
|
+
months: "%d חודשים",
|
16
|
+
year: "שנה",
|
17
|
+
years: "%d שנים"
|
18
|
+
};
|
@@ -0,0 +1,49 @@
|
|
1
|
+
// Croatian
|
2
|
+
(function () {
|
3
|
+
var numpf;
|
4
|
+
|
5
|
+
numpf = function (n, f, s, t) {
|
6
|
+
var n10;
|
7
|
+
n10 = n % 10;
|
8
|
+
if (n10 === 1 && (n === 1 || n > 20)) {
|
9
|
+
return f;
|
10
|
+
} else if (n10 > 1 && n10 < 5 && (n > 20 || n < 10)) {
|
11
|
+
return s;
|
12
|
+
} else {
|
13
|
+
return t;
|
14
|
+
}
|
15
|
+
};
|
16
|
+
|
17
|
+
jQuery.timeago.settings.strings = {
|
18
|
+
prefixAgo: "prije",
|
19
|
+
prefixFromNow: "za",
|
20
|
+
suffixAgo: null,
|
21
|
+
suffixFromNow: null,
|
22
|
+
second: "sekundu",
|
23
|
+
seconds: function (value) {
|
24
|
+
return numpf(value, "%d sekundu", "%d sekunde", "%d sekundi");
|
25
|
+
},
|
26
|
+
minute: "oko minutu",
|
27
|
+
minutes: function (value) {
|
28
|
+
return numpf(value, "%d minutu", "%d minute", "%d minuta");
|
29
|
+
},
|
30
|
+
hour: "oko jedan sat",
|
31
|
+
hours: function (value) {
|
32
|
+
return numpf(value, "%d sat", "%d sata", "%d sati");
|
33
|
+
},
|
34
|
+
day: "jedan dan",
|
35
|
+
days: function (value) {
|
36
|
+
return numpf(value, "%d dan", "%d dana", "%d dana");
|
37
|
+
},
|
38
|
+
month: "mjesec dana",
|
39
|
+
months: function (value) {
|
40
|
+
return numpf(value, "%d mjesec", "%d mjeseca", "%d mjeseci");
|
41
|
+
},
|
42
|
+
year: "prije godinu dana",
|
43
|
+
years: function (value) {
|
44
|
+
return numpf(value, "%d godinu", "%d godine", "%d godina");
|
45
|
+
},
|
46
|
+
wordSeparator: " "
|
47
|
+
};
|
48
|
+
|
49
|
+
}).call(this);
|
@@ -0,0 +1,18 @@
|
|
1
|
+
// Hungarian
|
2
|
+
jQuery.timeago.settings.strings = {
|
3
|
+
prefixAgo: null,
|
4
|
+
prefixFromNow: null,
|
5
|
+
suffixAgo: null,
|
6
|
+
suffixFromNow: null,
|
7
|
+
seconds: "kevesebb mint egy perce",
|
8
|
+
minute: "körülbelül egy perce",
|
9
|
+
minutes: "%d perce",
|
10
|
+
hour: "körülbelül egy órája",
|
11
|
+
hours: "körülbelül %d órája",
|
12
|
+
day: "körülbelül egy napja",
|
13
|
+
days: "%d napja",
|
14
|
+
month: "körülbelül egy hónapja",
|
15
|
+
months: "%d hónapja",
|
16
|
+
year: "körülbelül egy éve",
|
17
|
+
years: "%d éve"
|
18
|
+
};
|
@@ -0,0 +1,18 @@
|
|
1
|
+
// Armenian
|
2
|
+
jQuery.timeago.settings.strings = {
|
3
|
+
prefixAgo: null,
|
4
|
+
prefixFromNow: null,
|
5
|
+
suffixAgo: "առաջ",
|
6
|
+
suffixFromNow: "հետո",
|
7
|
+
seconds: "վայրկյաններ",
|
8
|
+
minute: "մեկ րոպե",
|
9
|
+
minutes: "%d րոպե",
|
10
|
+
hour: "մեկ ժամ",
|
11
|
+
hours: "%d ժամ",
|
12
|
+
day: "մեկ օր",
|
13
|
+
days: "%d օր",
|
14
|
+
month: "մեկ ամիս",
|
15
|
+
months: "%d ամիս",
|
16
|
+
year: "մեկ տարի",
|
17
|
+
years: "%d տարի"
|
18
|
+
};
|
@@ -0,0 +1,18 @@
|
|
1
|
+
// Indonesian
|
2
|
+
jQuery.timeago.settings.strings = {
|
3
|
+
prefixAgo: null,
|
4
|
+
prefixFromNow: null,
|
5
|
+
suffixAgo: "yang lalu",
|
6
|
+
suffixFromNow: "dari sekarang",
|
7
|
+
seconds: "kurang dari semenit",
|
8
|
+
minute: "sekitar satu menit",
|
9
|
+
minutes: "%d menit",
|
10
|
+
hour: "sekitar sejam",
|
11
|
+
hours: "sekitar %d jam",
|
12
|
+
day: "sehari",
|
13
|
+
days: "%d hari",
|
14
|
+
month: "sekitar sebulan",
|
15
|
+
months: "%d bulan",
|
16
|
+
year: "sekitar setahun",
|
17
|
+
years: "%d tahun"
|
18
|
+
};
|
@@ -0,0 +1,16 @@
|
|
1
|
+
// Italian
|
2
|
+
jQuery.timeago.settings.strings = {
|
3
|
+
suffixAgo: "fa",
|
4
|
+
suffixFromNow: "da ora",
|
5
|
+
seconds: "meno di un minuto",
|
6
|
+
minute: "circa un minuto",
|
7
|
+
minutes: "%d minuti",
|
8
|
+
hour: "circa un'ora",
|
9
|
+
hours: "circa %d ore",
|
10
|
+
day: "un giorno",
|
11
|
+
days: "%d giorni",
|
12
|
+
month: "circa un mese",
|
13
|
+
months: "%d mesi",
|
14
|
+
year: "circa un anno",
|
15
|
+
years: "%d anni"
|
16
|
+
};
|
@@ -0,0 +1,19 @@
|
|
1
|
+
// Japanese
|
2
|
+
jQuery.timeago.settings.strings = {
|
3
|
+
prefixAgo: "",
|
4
|
+
prefixFromNow: "今から",
|
5
|
+
suffixAgo: "前",
|
6
|
+
suffixFromNow: "後",
|
7
|
+
seconds: "1 分未満",
|
8
|
+
minute: "約 1 分",
|
9
|
+
minutes: "%d 分",
|
10
|
+
hour: "約 1 時間",
|
11
|
+
hours: "約 %d 時間",
|
12
|
+
day: "約 1 日",
|
13
|
+
days: "約 %d 日",
|
14
|
+
month: "約 1 月",
|
15
|
+
months: "約 %d 月",
|
16
|
+
year: "約 1 年",
|
17
|
+
years: "約 %d 年",
|
18
|
+
wordSeparator: ""
|
19
|
+
};
|
@@ -0,0 +1,17 @@
|
|
1
|
+
// Korean
|
2
|
+
jQuery.timeago.settings.strings = {
|
3
|
+
suffixAgo: "전",
|
4
|
+
suffixFromNow: "후",
|
5
|
+
seconds: "1분 이내",
|
6
|
+
minute: "1분",
|
7
|
+
minutes: "%d분",
|
8
|
+
hour: "1시간",
|
9
|
+
hours: "%d시간",
|
10
|
+
day: "하루",
|
11
|
+
days: "%d일",
|
12
|
+
month: "한 달",
|
13
|
+
months: "%d달",
|
14
|
+
year: "1년",
|
15
|
+
years: "%d년",
|
16
|
+
wordSeparator: " "
|
17
|
+
};
|
@@ -0,0 +1,20 @@
|
|
1
|
+
//Lithuanian
|
2
|
+
jQuery.timeago.settings.strings = {
|
3
|
+
prefixAgo: "prieš",
|
4
|
+
prefixFromNow: null,
|
5
|
+
suffixAgo: null,
|
6
|
+
suffixFromNow: "nuo dabar",
|
7
|
+
seconds: "%d sek.",
|
8
|
+
minute: "min.",
|
9
|
+
minutes: "%d min.",
|
10
|
+
hour: "val.",
|
11
|
+
hours: "%d val.",
|
12
|
+
day: "1 d.",
|
13
|
+
days: "%d d.",
|
14
|
+
month: "mėn.",
|
15
|
+
months: "%d mėn.",
|
16
|
+
year: "metus",
|
17
|
+
years: "%d metus",
|
18
|
+
wordSeparator: " ",
|
19
|
+
numbers: []
|
20
|
+
};
|
@@ -0,0 +1,20 @@
|
|
1
|
+
// Macedonian
|
2
|
+
(function() {
|
3
|
+
jQuery.timeago.settings.strings={
|
4
|
+
prefixAgo: "пред",
|
5
|
+
prefixFromNow: "за",
|
6
|
+
suffixAgo: null,
|
7
|
+
suffixFromNow: null,
|
8
|
+
seconds: "%d секунди",
|
9
|
+
minute: "%d минута",
|
10
|
+
minutes: "%d минути",
|
11
|
+
hour: "%d час",
|
12
|
+
hours: "%d часа",
|
13
|
+
day: "%d ден",
|
14
|
+
days: "%d денови" ,
|
15
|
+
month: "%d месец",
|
16
|
+
months: "%d месеци",
|
17
|
+
year: "%d година",
|
18
|
+
years: "%d години"
|
19
|
+
}
|
20
|
+
})();
|
@@ -0,0 +1,20 @@
|
|
1
|
+
// Dutch
|
2
|
+
jQuery.timeago.settings.strings = {
|
3
|
+
prefixAgo: null,
|
4
|
+
prefixFromNow: "",
|
5
|
+
suffixAgo: "geleden",
|
6
|
+
suffixFromNow: "van nu",
|
7
|
+
seconds: "minder dan een minuut",
|
8
|
+
minute: "ongeveer een minuut",
|
9
|
+
minutes: "%d minuten",
|
10
|
+
hour: "ongeveer een uur",
|
11
|
+
hours: "ongeveer %d uur",
|
12
|
+
day: "een dag",
|
13
|
+
days: "%d dagen",
|
14
|
+
month: "ongeveer een maand",
|
15
|
+
months: "%d maanden",
|
16
|
+
year: "ongeveer een jaar",
|
17
|
+
years: "%d jaar",
|
18
|
+
wordSeparator: " ",
|
19
|
+
numbers: []
|
20
|
+
};
|
@@ -0,0 +1,18 @@
|
|
1
|
+
// Norwegian
|
2
|
+
jQuery.timeago.settings.strings = {
|
3
|
+
prefixAgo: "for",
|
4
|
+
prefixFromNow: "om",
|
5
|
+
suffixAgo: "siden",
|
6
|
+
suffixFromNow: "",
|
7
|
+
seconds: "mindre enn et minutt",
|
8
|
+
minute: "ca. et minutt",
|
9
|
+
minutes: "%d minutter",
|
10
|
+
hour: "ca. en time",
|
11
|
+
hours: "ca. %d timer",
|
12
|
+
day: "en dag",
|
13
|
+
days: "%d dager",
|
14
|
+
month: "ca. en måned",
|
15
|
+
months: "%d måneder",
|
16
|
+
year: "ca. et år",
|
17
|
+
years: "%d år"
|
18
|
+
};
|
@@ -0,0 +1,31 @@
|
|
1
|
+
// Polish
|
2
|
+
(function() {
|
3
|
+
function numpf(n, s, t) {
|
4
|
+
// s - 2-4, 22-24, 32-34 ...
|
5
|
+
// t - 5-21, 25-31, ...
|
6
|
+
var n10 = n % 10;
|
7
|
+
if ( (n10 > 1) && (n10 < 5) && ( (n > 20) || (n < 10) ) ) {
|
8
|
+
return s;
|
9
|
+
} else {
|
10
|
+
return t;
|
11
|
+
}
|
12
|
+
}
|
13
|
+
|
14
|
+
jQuery.timeago.settings.strings = {
|
15
|
+
prefixAgo: null,
|
16
|
+
prefixFromNow: "za",
|
17
|
+
suffixAgo: "temu",
|
18
|
+
suffixFromNow: null,
|
19
|
+
seconds: "mniej niż minutę",
|
20
|
+
minute: "minutę",
|
21
|
+
minutes: function(value) { return numpf(value, "%d minuty", "%d minut"); },
|
22
|
+
hour: "godzinę",
|
23
|
+
hours: function(value) { return numpf(value, "%d godziny", "%d godzin"); },
|
24
|
+
day: "dzień",
|
25
|
+
days: "%d dni",
|
26
|
+
month: "miesiąc",
|
27
|
+
months: function(value) { return numpf(value, "%d miesiące", "%d miesięcy"); },
|
28
|
+
year: "rok",
|
29
|
+
years: function(value) { return numpf(value, "%d lata", "%d lat"); }
|
30
|
+
};
|
31
|
+
})();
|
@@ -0,0 +1,16 @@
|
|
1
|
+
// Brazilian Portuguese
|
2
|
+
jQuery.timeago.settings.strings = {
|
3
|
+
suffixAgo: "atrás",
|
4
|
+
suffixFromNow: "nesse momento",
|
5
|
+
seconds: "alguns segundos",
|
6
|
+
minute: "há um minuto",
|
7
|
+
minutes: "há %d minutos",
|
8
|
+
hour: "há uma hora",
|
9
|
+
hours: "há %d horas",
|
10
|
+
day: "há um dia",
|
11
|
+
days: "há %d dias",
|
12
|
+
month: "há um mês",
|
13
|
+
months: "há %d meses",
|
14
|
+
year: "há um ano",
|
15
|
+
years: "há %d anos"
|
16
|
+
};
|
@@ -0,0 +1,16 @@
|
|
1
|
+
// Portuguese
|
2
|
+
jQuery.timeago.settings.strings = {
|
3
|
+
suffixAgo: "atrás",
|
4
|
+
suffixFromNow: "a partir de agora",
|
5
|
+
seconds: "menos de um minuto",
|
6
|
+
minute: "cerca de um minuto",
|
7
|
+
minutes: "%d minutos",
|
8
|
+
hour: "cerca de uma hora",
|
9
|
+
hours: "cerca de %d horas",
|
10
|
+
day: "um dia",
|
11
|
+
days: "%d dias",
|
12
|
+
month: "cerca de um mês",
|
13
|
+
months: "%d meses",
|
14
|
+
year: "cerca de um ano",
|
15
|
+
years: "%d anos"
|
16
|
+
};
|
@@ -0,0 +1,18 @@
|
|
1
|
+
// Romanian
|
2
|
+
$.timeago.settings.strings = {
|
3
|
+
prefixAgo: "acum",
|
4
|
+
prefixFromNow: "in timp de",
|
5
|
+
suffixAgo: "",
|
6
|
+
suffixFromNow: "",
|
7
|
+
seconds: "mai putin de un minut",
|
8
|
+
minute: "un minut",
|
9
|
+
minutes: "%d minute",
|
10
|
+
hour: "o ora",
|
11
|
+
hours: "%d ore",
|
12
|
+
day: "o zi",
|
13
|
+
days: "%d zile",
|
14
|
+
month: "o luna",
|
15
|
+
months: "%d luni",
|
16
|
+
year: "un an",
|
17
|
+
years: "%d ani"
|
18
|
+
};
|