sr-sidekiq 4.1.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (186) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +12 -0
  3. data/3.0-Upgrade.md +70 -0
  4. data/4.0-Upgrade.md +50 -0
  5. data/COMM-LICENSE (sidekiq) +95 -0
  6. data/Changes.md +1241 -0
  7. data/Ent-Changes.md +112 -0
  8. data/Gemfile +29 -0
  9. data/LICENSE (sidekiq) +9 -0
  10. data/LICENSE (sr-sidekiq) +5 -0
  11. data/Pro-2.0-Upgrade.md +138 -0
  12. data/Pro-3.0-Upgrade.md +44 -0
  13. data/Pro-Changes.md +539 -0
  14. data/README.md +8 -0
  15. data/Rakefile +9 -0
  16. data/bin/sidekiq +18 -0
  17. data/bin/sidekiqctl +99 -0
  18. data/bin/sidekiqload +167 -0
  19. data/code_of_conduct.md +50 -0
  20. data/lib/generators/sidekiq/templates/worker.rb.erb +9 -0
  21. data/lib/generators/sidekiq/templates/worker_spec.rb.erb +6 -0
  22. data/lib/generators/sidekiq/templates/worker_test.rb.erb +8 -0
  23. data/lib/generators/sidekiq/worker_generator.rb +49 -0
  24. data/lib/sidekiq.rb +237 -0
  25. data/lib/sidekiq/api.rb +844 -0
  26. data/lib/sidekiq/cli.rb +389 -0
  27. data/lib/sidekiq/client.rb +260 -0
  28. data/lib/sidekiq/core_ext.rb +106 -0
  29. data/lib/sidekiq/exception_handler.rb +31 -0
  30. data/lib/sidekiq/extensions/action_mailer.rb +57 -0
  31. data/lib/sidekiq/extensions/active_record.rb +40 -0
  32. data/lib/sidekiq/extensions/class_methods.rb +40 -0
  33. data/lib/sidekiq/extensions/generic_proxy.rb +25 -0
  34. data/lib/sidekiq/fetch.rb +81 -0
  35. data/lib/sidekiq/launcher.rb +160 -0
  36. data/lib/sidekiq/logging.rb +106 -0
  37. data/lib/sidekiq/manager.rb +137 -0
  38. data/lib/sidekiq/middleware/chain.rb +150 -0
  39. data/lib/sidekiq/middleware/i18n.rb +42 -0
  40. data/lib/sidekiq/middleware/server/active_record.rb +13 -0
  41. data/lib/sidekiq/middleware/server/logging.rb +40 -0
  42. data/lib/sidekiq/middleware/server/retry_jobs.rb +205 -0
  43. data/lib/sidekiq/paginator.rb +43 -0
  44. data/lib/sidekiq/processor.rb +186 -0
  45. data/lib/sidekiq/rails.rb +39 -0
  46. data/lib/sidekiq/redis_connection.rb +97 -0
  47. data/lib/sidekiq/scheduled.rb +146 -0
  48. data/lib/sidekiq/testing.rb +316 -0
  49. data/lib/sidekiq/testing/inline.rb +29 -0
  50. data/lib/sidekiq/util.rb +62 -0
  51. data/lib/sidekiq/version.rb +4 -0
  52. data/lib/sidekiq/web.rb +278 -0
  53. data/lib/sidekiq/web_helpers.rb +255 -0
  54. data/lib/sidekiq/worker.rb +121 -0
  55. data/sidekiq.gemspec +26 -0
  56. data/sr-sidekiq-4.1.3.gem +0 -0
  57. data/sr-sidekiq-4.1.4.gem +0 -0
  58. data/sr-sidekiq-4.1.5.gem +0 -0
  59. data/test/config.yml +9 -0
  60. data/test/env_based_config.yml +11 -0
  61. data/test/fake_env.rb +1 -0
  62. data/test/fixtures/en.yml +2 -0
  63. data/test/helper.rb +75 -0
  64. data/test/test_actors.rb +138 -0
  65. data/test/test_api.rb +528 -0
  66. data/test/test_cli.rb +406 -0
  67. data/test/test_client.rb +262 -0
  68. data/test/test_exception_handler.rb +56 -0
  69. data/test/test_extensions.rb +127 -0
  70. data/test/test_fetch.rb +50 -0
  71. data/test/test_launcher.rb +85 -0
  72. data/test/test_logging.rb +35 -0
  73. data/test/test_manager.rb +50 -0
  74. data/test/test_middleware.rb +158 -0
  75. data/test/test_processor.rb +201 -0
  76. data/test/test_rails.rb +22 -0
  77. data/test/test_redis_connection.rb +127 -0
  78. data/test/test_retry.rb +326 -0
  79. data/test/test_retry_exhausted.rb +149 -0
  80. data/test/test_scheduled.rb +115 -0
  81. data/test/test_scheduling.rb +50 -0
  82. data/test/test_sidekiq.rb +107 -0
  83. data/test/test_testing.rb +143 -0
  84. data/test/test_testing_fake.rb +357 -0
  85. data/test/test_testing_inline.rb +94 -0
  86. data/test/test_util.rb +13 -0
  87. data/test/test_web.rb +614 -0
  88. data/test/test_web_helpers.rb +54 -0
  89. data/web/assets/images/bootstrap/glyphicons-halflings-white.png +0 -0
  90. data/web/assets/images/bootstrap/glyphicons-halflings.png +0 -0
  91. data/web/assets/images/favicon.ico +0 -0
  92. data/web/assets/images/logo.png +0 -0
  93. data/web/assets/images/status-sd8051fd480.png +0 -0
  94. data/web/assets/images/status/active.png +0 -0
  95. data/web/assets/images/status/idle.png +0 -0
  96. data/web/assets/javascripts/application.js +88 -0
  97. data/web/assets/javascripts/dashboard.js +300 -0
  98. data/web/assets/javascripts/locales/README.md +27 -0
  99. data/web/assets/javascripts/locales/jquery.timeago.ar.js +96 -0
  100. data/web/assets/javascripts/locales/jquery.timeago.bg.js +18 -0
  101. data/web/assets/javascripts/locales/jquery.timeago.bs.js +49 -0
  102. data/web/assets/javascripts/locales/jquery.timeago.ca.js +18 -0
  103. data/web/assets/javascripts/locales/jquery.timeago.cs.js +18 -0
  104. data/web/assets/javascripts/locales/jquery.timeago.cy.js +20 -0
  105. data/web/assets/javascripts/locales/jquery.timeago.da.js +18 -0
  106. data/web/assets/javascripts/locales/jquery.timeago.de.js +18 -0
  107. data/web/assets/javascripts/locales/jquery.timeago.el.js +18 -0
  108. data/web/assets/javascripts/locales/jquery.timeago.en-short.js +20 -0
  109. data/web/assets/javascripts/locales/jquery.timeago.en.js +20 -0
  110. data/web/assets/javascripts/locales/jquery.timeago.es.js +18 -0
  111. data/web/assets/javascripts/locales/jquery.timeago.et.js +18 -0
  112. data/web/assets/javascripts/locales/jquery.timeago.fa.js +22 -0
  113. data/web/assets/javascripts/locales/jquery.timeago.fi.js +28 -0
  114. data/web/assets/javascripts/locales/jquery.timeago.fr-short.js +16 -0
  115. data/web/assets/javascripts/locales/jquery.timeago.fr.js +17 -0
  116. data/web/assets/javascripts/locales/jquery.timeago.he.js +18 -0
  117. data/web/assets/javascripts/locales/jquery.timeago.hr.js +49 -0
  118. data/web/assets/javascripts/locales/jquery.timeago.hu.js +18 -0
  119. data/web/assets/javascripts/locales/jquery.timeago.hy.js +18 -0
  120. data/web/assets/javascripts/locales/jquery.timeago.id.js +18 -0
  121. data/web/assets/javascripts/locales/jquery.timeago.it.js +16 -0
  122. data/web/assets/javascripts/locales/jquery.timeago.ja.js +19 -0
  123. data/web/assets/javascripts/locales/jquery.timeago.ko.js +17 -0
  124. data/web/assets/javascripts/locales/jquery.timeago.lt.js +20 -0
  125. data/web/assets/javascripts/locales/jquery.timeago.mk.js +20 -0
  126. data/web/assets/javascripts/locales/jquery.timeago.nl.js +20 -0
  127. data/web/assets/javascripts/locales/jquery.timeago.no.js +18 -0
  128. data/web/assets/javascripts/locales/jquery.timeago.pl.js +31 -0
  129. data/web/assets/javascripts/locales/jquery.timeago.pt-br.js +16 -0
  130. data/web/assets/javascripts/locales/jquery.timeago.pt.js +16 -0
  131. data/web/assets/javascripts/locales/jquery.timeago.ro.js +18 -0
  132. data/web/assets/javascripts/locales/jquery.timeago.rs.js +49 -0
  133. data/web/assets/javascripts/locales/jquery.timeago.ru.js +34 -0
  134. data/web/assets/javascripts/locales/jquery.timeago.sk.js +18 -0
  135. data/web/assets/javascripts/locales/jquery.timeago.sl.js +44 -0
  136. data/web/assets/javascripts/locales/jquery.timeago.sv.js +18 -0
  137. data/web/assets/javascripts/locales/jquery.timeago.th.js +20 -0
  138. data/web/assets/javascripts/locales/jquery.timeago.tr.js +16 -0
  139. data/web/assets/javascripts/locales/jquery.timeago.uk.js +34 -0
  140. data/web/assets/javascripts/locales/jquery.timeago.uz.js +19 -0
  141. data/web/assets/javascripts/locales/jquery.timeago.zh-cn.js +20 -0
  142. data/web/assets/javascripts/locales/jquery.timeago.zh-tw.js +20 -0
  143. data/web/assets/stylesheets/application.css +754 -0
  144. data/web/assets/stylesheets/bootstrap.css +9 -0
  145. data/web/locales/cs.yml +78 -0
  146. data/web/locales/da.yml +68 -0
  147. data/web/locales/de.yml +69 -0
  148. data/web/locales/el.yml +68 -0
  149. data/web/locales/en.yml +79 -0
  150. data/web/locales/es.yml +69 -0
  151. data/web/locales/fr.yml +78 -0
  152. data/web/locales/hi.yml +75 -0
  153. data/web/locales/it.yml +69 -0
  154. data/web/locales/ja.yml +78 -0
  155. data/web/locales/ko.yml +68 -0
  156. data/web/locales/nb.yml +77 -0
  157. data/web/locales/nl.yml +68 -0
  158. data/web/locales/pl.yml +59 -0
  159. data/web/locales/pt-br.yml +68 -0
  160. data/web/locales/pt.yml +67 -0
  161. data/web/locales/ru.yml +78 -0
  162. data/web/locales/sv.yml +68 -0
  163. data/web/locales/ta.yml +75 -0
  164. data/web/locales/uk.yml +76 -0
  165. data/web/locales/zh-cn.yml +68 -0
  166. data/web/locales/zh-tw.yml +68 -0
  167. data/web/views/_footer.erb +17 -0
  168. data/web/views/_job_info.erb +88 -0
  169. data/web/views/_nav.erb +66 -0
  170. data/web/views/_paging.erb +23 -0
  171. data/web/views/_poll_js.erb +5 -0
  172. data/web/views/_poll_link.erb +7 -0
  173. data/web/views/_status.erb +4 -0
  174. data/web/views/_summary.erb +40 -0
  175. data/web/views/busy.erb +94 -0
  176. data/web/views/dashboard.erb +75 -0
  177. data/web/views/dead.erb +34 -0
  178. data/web/views/layout.erb +32 -0
  179. data/web/views/morgue.erb +71 -0
  180. data/web/views/queue.erb +45 -0
  181. data/web/views/queues.erb +28 -0
  182. data/web/views/retries.erb +74 -0
  183. data/web/views/retry.erb +34 -0
  184. data/web/views/scheduled.erb +54 -0
  185. data/web/views/scheduled_job_info.erb +8 -0
  186. metadata +408 -0
@@ -0,0 +1,27 @@
1
+ # Locale override examples for timeago
2
+
3
+ You can represent time statements in most western languages where
4
+ a prefix and/or suffix is used.
5
+
6
+ The default case is to use suffix only (as in English), which you
7
+ do by providing the `suffixAgo` and `suffixFromNow` settings in
8
+ the strings hash (earlier versions of timeago used the deprecated
9
+ `ago` and `fromNow` options). If present, they are used.
10
+
11
+ 2 minutes [suffixAgo]
12
+ 2 minutes [suffixFromNow]
13
+
14
+ In case you want to use prefix only instead of
15
+ suffix (e.g. Greek), you provide the `prefixAgo` and
16
+ `prefixFromNow` options in the strings hash and leave `suffixAgo`
17
+ and `suffixFromNow` empty or null.
18
+
19
+ [prefixAgo] 2 minutes
20
+ [prefixFromNow] 2 minutes
21
+
22
+ For languages where you want to use a prefix only for future
23
+ tense and prefix/suffix for past tense (for example swedish), you
24
+ can combine the prefix and suffixes as needed.
25
+
26
+ [prefixAgo] 2 minutes [suffixAgo]
27
+ [prefixFromNow] 2 minutes
@@ -0,0 +1,96 @@
1
+ (function() {
2
+ function numpf(n, a) {
3
+ return a[plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 ? 4 : 5];
4
+ }
5
+
6
+ jQuery.timeago.settings.strings = {
7
+ prefixAgo: "منذ",
8
+ prefixFromNow: "بعد",
9
+ suffixAgo: null,
10
+ suffixFromNow: null, // null OR "من الآن"
11
+ second: function(value) { return numpf(value, [
12
+ 'أقل من ثانية',
13
+ 'ثانية واحدة',
14
+ 'ثانيتين',
15
+ '%d ثوانٍ',
16
+ '%d ثانية',
17
+ '%d ثانية']); },
18
+ seconds: function(value) { return numpf(value, [
19
+ 'أقل من ثانية',
20
+ 'ثانية واحدة',
21
+ 'ثانيتين',
22
+ '%d ثوانٍ',
23
+ '%d ثانية',
24
+ '%d ثانية']); },
25
+ minute: function(value) { return numpf(value, [
26
+ 'أقل من دقيقة',
27
+ 'دقيقة واحدة',
28
+ 'دقيقتين',
29
+ '%d دقائق',
30
+ '%d دقيقة',
31
+ 'دقيقة']); },
32
+ minutes: function(value) { return numpf(value, [
33
+ 'أقل من دقيقة',
34
+ 'دقيقة واحدة',
35
+ 'دقيقتين',
36
+ '%d دقائق',
37
+ '%d دقيقة',
38
+ 'دقيقة']); },
39
+ hour: function(value) { return numpf(value, [
40
+ 'أقل من ساعة',
41
+ 'ساعة واحدة',
42
+ 'ساعتين',
43
+ '%d ساعات',
44
+ '%d ساعة',
45
+ '%d ساعة']); },
46
+ hours: function(value) { return numpf(value, [
47
+ 'أقل من ساعة',
48
+ 'ساعة واحدة',
49
+ 'ساعتين',
50
+ '%d ساعات',
51
+ '%d ساعة',
52
+ '%d ساعة']); },
53
+ day: function(value) { return numpf(value, [
54
+ 'أقل من يوم',
55
+ 'يوم واحد',
56
+ 'يومين',
57
+ '%d أيام',
58
+ '%d يومًا',
59
+ '%d يوم']); },
60
+ days: function(value) { return numpf(value, [
61
+ 'أقل من يوم',
62
+ 'يوم واحد',
63
+ 'يومين',
64
+ '%d أيام',
65
+ '%d يومًا',
66
+ '%d يوم']); },
67
+ month: function(value) { return numpf(value, [
68
+ 'أقل من شهر',
69
+ 'شهر واحد',
70
+ 'شهرين',
71
+ '%d أشهر',
72
+ '%d شهرًا',
73
+ '%d شهر']); },
74
+ months: function(value) { return numpf(value, [
75
+ 'أقل من شهر',
76
+ 'شهر واحد',
77
+ 'شهرين',
78
+ '%d أشهر',
79
+ '%d شهرًا',
80
+ '%d شهر']); },
81
+ year: function(value) { return numpf(value, [
82
+ 'أقل من عام',
83
+ 'عام واحد',
84
+ '%d عامين',
85
+ '%d أعوام',
86
+ '%d عامًا']);
87
+ },
88
+ years: function(value) { return numpf(value, [
89
+ 'أقل من عام',
90
+ 'عام واحد',
91
+ 'عامين',
92
+ '%d أعوام',
93
+ '%d عامًا',
94
+ '%d عام']);}
95
+ };
96
+ })();
@@ -0,0 +1,18 @@
1
+ // Bulgarian
2
+ jQuery.timeago.settings.strings = {
3
+ prefixAgo: "преди",
4
+ prefixFromNow: "след",
5
+ suffixAgo: null,
6
+ suffixFromNow: null,
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
+ // Bosnian
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: "sekund",
23
+ seconds: function(value) {
24
+ return numpf(value, "%d sekund", "%d sekunde", "%d sekundi");
25
+ },
26
+ minute: "oko minut",
27
+ minutes: function(value) {
28
+ return numpf(value, "%d minut", "%d minute", "%d minuta");
29
+ },
30
+ hour: "oko sat",
31
+ hours: function(value) {
32
+ return numpf(value, "%d sat", "%d sata", "%d sati");
33
+ },
34
+ day: "oko jednog dana",
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
+ // Catalan
2
+ jQuery.timeago.settings.strings = {
3
+ prefixAgo: "fa",
4
+ prefixFromNow: "d'aqui a",
5
+ suffixAgo: null,
6
+ suffixFromNow: null,
7
+ seconds: "menys d'1 minut",
8
+ minute: "1 minut",
9
+ minutes: "uns %d minuts",
10
+ hour: "1 hora",
11
+ hours: "unes %d hores",
12
+ day: "1 dia",
13
+ days: "%d dies",
14
+ month: "aproximadament un mes",
15
+ months: "%d mesos",
16
+ year: "aproximadament un any",
17
+ years: "%d anys"
18
+ };
@@ -0,0 +1,18 @@
1
+ // Czech
2
+ jQuery.timeago.settings.strings = {
3
+ prefixAgo: "před",
4
+ prefixFromNow: null,
5
+ suffixAgo: null,
6
+ suffixFromNow: null,
7
+ seconds: "méně než minutou",
8
+ minute: "minutou",
9
+ minutes: "%d minutami",
10
+ hour: "hodinou",
11
+ hours: "%d hodinami",
12
+ day: "1 dnem",
13
+ days: "%d dny",
14
+ month: "1 měsícem",
15
+ months: "%d měsíci",
16
+ year: "1 rokem",
17
+ years: "%d roky"
18
+ };
@@ -0,0 +1,20 @@
1
+ // Welsh
2
+ jQuery.timeago.settings.strings = {
3
+ prefixAgo: null,
4
+ prefixFromNow: null,
5
+ suffixAgo: "yn ôl",
6
+ suffixFromNow: "o hyn",
7
+ seconds: "llai na munud",
8
+ minute: "am funud",
9
+ minutes: "%d munud",
10
+ hour: "tua awr",
11
+ hours: "am %d awr",
12
+ day: "y dydd",
13
+ days: "%d diwrnod",
14
+ month: "tua mis",
15
+ months: "%d mis",
16
+ year: "am y flwyddyn",
17
+ years: "%d blynedd",
18
+ wordSeparator: " ",
19
+ numbers: []
20
+ };
@@ -0,0 +1,18 @@
1
+ // Danish
2
+ jQuery.timeago.settings.strings = {
3
+ prefixAgo: "for",
4
+ prefixFromNow: "om",
5
+ suffixAgo: "siden",
6
+ suffixFromNow: "",
7
+ seconds: "mindre end et minut",
8
+ minute: "ca. et minut",
9
+ minutes: "%d minutter",
10
+ hour: "ca. en time",
11
+ hours: "ca. %d timer",
12
+ day: "en dag",
13
+ days: "%d dage",
14
+ month: "ca. en måned",
15
+ months: "%d måneder",
16
+ year: "ca. et år",
17
+ years: "%d år"
18
+ };
@@ -0,0 +1,18 @@
1
+ // German
2
+ jQuery.timeago.settings.strings = {
3
+ prefixAgo: "vor",
4
+ prefixFromNow: "in",
5
+ suffixAgo: "",
6
+ suffixFromNow: "",
7
+ seconds: "wenigen Sekunden",
8
+ minute: "etwa einer Minute",
9
+ minutes: "%d Minuten",
10
+ hour: "etwa einer Stunde",
11
+ hours: "%d Stunden",
12
+ day: "etwa einem Tag",
13
+ days: "%d Tagen",
14
+ month: "etwa einem Monat",
15
+ months: "%d Monaten",
16
+ year: "etwa einem Jahr",
17
+ years: "%d Jahren"
18
+ };
@@ -0,0 +1,18 @@
1
+ // Greek
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,20 @@
1
+ // English shortened
2
+ jQuery.timeago.settings.strings = {
3
+ prefixAgo: null,
4
+ prefixFromNow: null,
5
+ suffixAgo: "",
6
+ suffixFromNow: "",
7
+ seconds: "1m",
8
+ minute: "1m",
9
+ minutes: "%dm",
10
+ hour: "1h",
11
+ hours: "%dh",
12
+ day: "1d",
13
+ days: "%dd",
14
+ month: "1mo",
15
+ months: "%dmo",
16
+ year: "1yr",
17
+ years: "%dyr",
18
+ wordSeparator: " ",
19
+ numbers: []
20
+ };
@@ -0,0 +1,20 @@
1
+ // English (Template)
2
+ jQuery.timeago.settings.strings = {
3
+ prefixAgo: null,
4
+ prefixFromNow: null,
5
+ suffixAgo: "ago",
6
+ suffixFromNow: "from now",
7
+ seconds: "less than a minute",
8
+ minute: "about a minute",
9
+ minutes: "%d minutes",
10
+ hour: "about an hour",
11
+ hours: "about %d hours",
12
+ day: "a day",
13
+ days: "%d days",
14
+ month: "about a month",
15
+ months: "%d months",
16
+ year: "about a year",
17
+ years: "%d years",
18
+ wordSeparator: " ",
19
+ numbers: []
20
+ };
@@ -0,0 +1,18 @@
1
+ // Spanish
2
+ jQuery.timeago.settings.strings = {
3
+ prefixAgo: "hace",
4
+ prefixFromNow: "dentro de",
5
+ suffixAgo: "",
6
+ suffixFromNow: "",
7
+ seconds: "menos de un minuto",
8
+ minute: "un minuto",
9
+ minutes: "unos %d minutos",
10
+ hour: "una hora",
11
+ hours: "%d horas",
12
+ day: "un día",
13
+ days: "%d días",
14
+ month: "un mes",
15
+ months: "%d meses",
16
+ year: "un año",
17
+ years: "%d años"
18
+ };
@@ -0,0 +1,18 @@
1
+ // Estonian
2
+ jQuery.timeago.settings.strings = {
3
+ prefixAgo: null,
4
+ prefixFromNow: null,
5
+ suffixAgo: "tagasi",
6
+ suffixFromNow: "pärast",
7
+ seconds: function(n, d) { return d < 0 ? "vähem kui minuti aja" : "vähem kui minut aega" },
8
+ minute: function(n, d) { return d < 0 ? "umbes minuti aja" : "umbes minut aega" },
9
+ minutes: function(n, d) { return d < 0 ? "%d minuti" : "%d minutit" },
10
+ hour: function(n, d) { return d < 0 ? "umbes tunni aja" : "umbes tund aega" },
11
+ hours: function(n, d) { return d < 0 ? "%d tunni" : "%d tundi" },
12
+ day: function(n, d) { return d < 0 ? "umbes päeva" : "umbes päev" },
13
+ days: function(n, d) { return d < 0 ? "%d päeva" : "%d päeva" },
14
+ month: function(n, d) { return d < 0 ? "umbes kuu aja" : "umbes kuu aega" },
15
+ months: function(n, d) { return d < 0 ? "%d kuu" : "%d kuud" },
16
+ year: function(n, d) { return d < 0 ? "umbes aasta aja" : "umbes aasta aega" },
17
+ years: function(n, d) { return d < 0 ? "%d aasta" : "%d aastat" }
18
+ };
@@ -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.