@knight-lab/timelinejs 3.8.21 → 3.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.nvmrc +1 -1
- package/API_TEST.html +0 -5
- package/CHANGELOG.md +6 -0
- package/dist/css/fonts/font.amatic-andika.css +1 -1
- package/dist/css/fonts/font.bitter-raleway.css +4 -4
- package/dist/css/fonts/font.clicker-garamond.css +1 -1
- package/dist/css/fonts/font.dancing-ledger.css +2 -2
- package/dist/css/fonts/font.oldstandard.css +2 -2
- package/dist/css/fonts/font.opensans-gentiumbook.css +2 -2
- package/dist/css/fonts/font.playfair-faunaone.css +2 -2
- package/dist/css/fonts/font.playfair.css +2 -2
- package/dist/css/fonts/font.roboto-megrim.css +2 -2
- package/dist/css/fonts/font.unicaone-vollkorn.css +2 -2
- package/dist/css/icons/tl-icons.eot +0 -0
- package/dist/css/icons/tl-icons.svg +58 -55
- package/dist/css/icons/tl-icons.ttf +0 -0
- package/dist/css/icons/tl-icons.woff +0 -0
- package/dist/css/icons/tl-icons.woff2 +0 -0
- package/dist/css/themes/timeline.theme.contrast.css +157 -319
- package/dist/css/themes/timeline.theme.dark.css +146 -308
- package/dist/css/timeline.css +155 -317
- package/dist/css/timeline.css.map +1 -1
- package/dist/embed/compare.html +4 -4
- package/dist/embed/index.html +3 -6
- package/dist/embed/old-index.html +2 -5
- package/dist/embed/popular_timelines.json +5989 -1
- package/dist/js/locale/af.json +54 -56
- package/dist/js/locale/ar.json +54 -56
- package/dist/js/locale/be.json +71 -73
- package/dist/js/locale/bg.json +54 -56
- package/dist/js/locale/ca.json +54 -56
- package/dist/js/locale/cz.json +56 -63
- package/dist/js/locale/da.json +54 -56
- package/dist/js/locale/de.json +1 -3
- package/dist/js/locale/el.json +54 -56
- package/dist/js/locale/en-24hr.json +51 -57
- package/dist/js/locale/en-week.json +51 -57
- package/dist/js/locale/en.json +3 -8
- package/dist/js/locale/eo.json +54 -56
- package/dist/js/locale/es.json +55 -57
- package/dist/js/locale/et.json +54 -56
- package/dist/js/locale/eu.json +54 -56
- package/dist/js/locale/fa.json +52 -54
- package/dist/js/locale/fi.json +73 -75
- package/dist/js/locale/fo.json +54 -56
- package/dist/js/locale/fr.json +1 -8
- package/dist/js/locale/fy.json +71 -73
- package/dist/js/locale/ga.json +54 -56
- package/dist/js/locale/gl.json +54 -56
- package/dist/js/locale/he.json +54 -56
- package/dist/js/locale/hi.json +72 -74
- package/dist/js/locale/hr.json +54 -56
- package/dist/js/locale/hu.json +91 -93
- package/dist/js/locale/hy.json +54 -56
- package/dist/js/locale/id.json +54 -56
- package/dist/js/locale/is.json +54 -56
- package/dist/js/locale/it.json +18 -20
- package/dist/js/locale/iw.json +54 -56
- package/dist/js/locale/ja.json +54 -56
- package/dist/js/locale/ka.json +54 -56
- package/dist/js/locale/ko.json +54 -56
- package/dist/js/locale/lb.json +54 -56
- package/dist/js/locale/lt.json +54 -56
- package/dist/js/locale/lv.json +54 -56
- package/dist/js/locale/ms.json +54 -56
- package/dist/js/locale/my.json +31 -38
- package/dist/js/locale/nb.json +54 -56
- package/dist/js/locale/ne.json +54 -56
- package/dist/js/locale/nl.json +54 -56
- package/dist/js/locale/nn.json +54 -56
- package/dist/js/locale/no.json +54 -56
- package/dist/js/locale/pl.json +54 -56
- package/dist/js/locale/pt-br.json +45 -47
- package/dist/js/locale/pt.json +57 -59
- package/dist/js/locale/rm.json +54 -56
- package/dist/js/locale/ro.json +54 -56
- package/dist/js/locale/ru.json +54 -56
- package/dist/js/locale/si.json +53 -55
- package/dist/js/locale/sk.json +54 -56
- package/dist/js/locale/sl.json +54 -56
- package/dist/js/locale/sr-cy.json +54 -56
- package/dist/js/locale/sr.json +54 -56
- package/dist/js/locale/sv.json +11 -13
- package/dist/js/locale/ta.json +54 -56
- package/dist/js/locale/te.json +53 -55
- package/dist/js/locale/th.json +55 -62
- package/dist/js/locale/tl.json +54 -56
- package/dist/js/locale/tr.json +54 -56
- package/dist/js/locale/uk.json +54 -56
- package/dist/js/locale/ur.json +2 -9
- package/dist/js/locale/vi.json +33 -35
- package/dist/js/locale/zh-cn.json +1 -3
- package/dist/js/locale/zh-tw.json +54 -56
- package/dist/js/timeline.js +2 -3
- package/dist/js/timeline.js.LICENSE.txt +1 -0
- package/dist/js/timeline.js.map +1 -1
- package/package.json +20 -18
- package/src/css/icons/icons.html +49 -1
- package/src/css/icons/tl-icons.eot +0 -0
- package/src/css/icons/tl-icons.svg +58 -55
- package/src/css/icons/tl-icons.ttf +0 -0
- package/src/css/icons/tl-icons.woff +0 -0
- package/src/css/icons/tl-icons.woff2 +0 -0
- package/src/embed/compare.html +4 -4
- package/src/embed/index.html +3 -6
- package/src/embed/old-index.html +2 -5
- package/src/embed/popular_timelines.json +5989 -1
- package/src/js/core/TimelineConfig.js +0 -1
- package/src/js/dom/DOMUtil.js +12 -12
- package/src/js/language/I18NMixins.js +13 -3
- package/src/js/language/Language.js +50 -23
- package/src/js/language/__tests__/Language.test.js +32 -0
- package/src/js/language/locale/af.json +54 -56
- package/src/js/language/locale/ar.json +54 -56
- package/src/js/language/locale/be.json +71 -73
- package/src/js/language/locale/bg.json +54 -56
- package/src/js/language/locale/ca.json +54 -56
- package/src/js/language/locale/cz.json +56 -63
- package/src/js/language/locale/da.json +54 -56
- package/src/js/language/locale/de.json +1 -3
- package/src/js/language/locale/el.json +54 -56
- package/src/js/language/locale/en-24hr.json +51 -57
- package/src/js/language/locale/en-week.json +51 -57
- package/src/js/language/locale/en.json +3 -8
- package/src/js/language/locale/eo.json +54 -56
- package/src/js/language/locale/es.json +55 -57
- package/src/js/language/locale/et.json +54 -56
- package/src/js/language/locale/eu.json +54 -56
- package/src/js/language/locale/fa.json +52 -54
- package/src/js/language/locale/fi.json +73 -75
- package/src/js/language/locale/fo.json +54 -56
- package/src/js/language/locale/fr.json +1 -8
- package/src/js/language/locale/fy.json +71 -73
- package/src/js/language/locale/ga.json +54 -56
- package/src/js/language/locale/gl.json +54 -56
- package/src/js/language/locale/he.json +54 -56
- package/src/js/language/locale/hi.json +72 -74
- package/src/js/language/locale/hr.json +54 -56
- package/src/js/language/locale/hu.json +91 -93
- package/src/js/language/locale/hy.json +54 -56
- package/src/js/language/locale/id.json +54 -56
- package/src/js/language/locale/is.json +54 -56
- package/src/js/language/locale/it.json +18 -20
- package/src/js/language/locale/iw.json +54 -56
- package/src/js/language/locale/ja.json +54 -56
- package/src/js/language/locale/ka.json +54 -56
- package/src/js/language/locale/ko.json +54 -56
- package/src/js/language/locale/lb.json +54 -56
- package/src/js/language/locale/lt.json +54 -56
- package/src/js/language/locale/lv.json +54 -56
- package/src/js/language/locale/ms.json +54 -56
- package/src/js/language/locale/my.json +31 -38
- package/src/js/language/locale/nb.json +54 -56
- package/src/js/language/locale/ne.json +54 -56
- package/src/js/language/locale/nl.json +54 -56
- package/src/js/language/locale/nn.json +54 -56
- package/src/js/language/locale/no.json +54 -56
- package/src/js/language/locale/pl.json +54 -56
- package/src/js/language/locale/pt-br.json +45 -47
- package/src/js/language/locale/pt.json +57 -59
- package/src/js/language/locale/rm.json +54 -56
- package/src/js/language/locale/ro.json +54 -56
- package/src/js/language/locale/ru.json +54 -56
- package/src/js/language/locale/si.json +53 -55
- package/src/js/language/locale/sk.json +54 -56
- package/src/js/language/locale/sl.json +54 -56
- package/src/js/language/locale/sr-cy.json +54 -56
- package/src/js/language/locale/sr.json +54 -56
- package/src/js/language/locale/sv.json +11 -13
- package/src/js/language/locale/ta.json +54 -56
- package/src/js/language/locale/te.json +53 -55
- package/src/js/language/locale/th.json +55 -62
- package/src/js/language/locale/tl.json +54 -56
- package/src/js/language/locale/tr.json +54 -56
- package/src/js/language/locale/uk.json +54 -56
- package/src/js/language/locale/ur.json +2 -9
- package/src/js/language/locale/vi.json +33 -35
- package/src/js/language/locale/zh-cn.json +1 -3
- package/src/js/language/locale/zh-tw.json +54 -56
- package/src/js/media/Media.js +6 -2
- package/src/js/media/MediaType.js +1 -1
- package/src/js/media/types/DailyMotion.js +9 -1
- package/src/js/media/types/Text.js +33 -31
- package/src/js/media/types/Vimeo.js +58 -57
- package/src/js/slider/Slide.js +17 -2
- package/src/js/slider/SlideNav.js +12 -7
- package/src/js/slider/StorySlider.js +8 -12
- package/src/js/timeline/Timeline.js +47 -13
- package/src/js/timenav/TimeAxis.js +20 -1
- package/src/js/timenav/TimeMarker.js +48 -3
- package/src/js/timenav/TimeNav.js +140 -15
- package/src/js/ui/MenuBar.js +206 -149
- package/src/js/ui/Swipable.js +1 -1
- package/src/less/TL.Timeline.Base.less +38 -1
- package/src/less/Typography.less +2 -3
- package/src/less/Variables.less +4 -1
- package/src/less/icons/Icons.less +9 -0
- package/src/less/media/types/TL.Media.Text.less +5 -0
- package/src/less/slider/TL.Slide.less +40 -45
- package/src/less/slider/TL.SlideNav.less +82 -55
- package/src/less/themes/contrast/Variables.less +7 -4
- package/src/less/themes/dark/TL.Theme.Dark.less +2 -2
- package/src/less/themes/dark/Variables.less +4 -1
- package/src/less/timenav/TL.TimeMarker.less +16 -10
- package/src/less/timenav/TL.TimeNav.less +2 -50
- package/src/less/ui/TL.MenuBar.Button.less +8 -6
- package/src/template/all-media-types.json +52 -2
- package/src/template/index.html +2 -1
- package/webpack.common.js +13 -10
- package/webpack.dev.js +16 -6
- package/dist/js/timeline-min.js +0 -4
- package/dist/timeline3.zip +0 -0
- package/src/less/core/Reset.less +0 -115
package/src/js/dom/DOMUtil.js
CHANGED
|
@@ -5,21 +5,21 @@
|
|
|
5
5
|
================================================== */
|
|
6
6
|
|
|
7
7
|
function hasClass(el, name) {
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
return (el.className.length > 0) &&
|
|
9
|
+
new RegExp("(^|\\s)" + name + "(\\s|$)").test(el.className);
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
export function addClass(el, name) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
if (!hasClass(el, name)) {
|
|
14
|
+
el.className += (el.className ? ' ' : '') + name;
|
|
15
|
+
}
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
export function removeClass(el, name) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
19
|
+
el.className = el.className.replace(/(\S+)\s*/g, function(w, match) {
|
|
20
|
+
if (match === name) {
|
|
21
|
+
return '';
|
|
22
|
+
}
|
|
23
|
+
return w;
|
|
24
|
+
}).replace(/^\s+/, '');
|
|
25
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* I18NMixins
|
|
2
|
-
assumes that its class has an
|
|
2
|
+
assumes that its class has an attribute `language` with a Language instance
|
|
3
3
|
================================================== */
|
|
4
4
|
import { trace } from "../core/Util"
|
|
5
5
|
import { fallback } from "../language/Language"
|
|
@@ -24,8 +24,18 @@ class I18NMixins {
|
|
|
24
24
|
return fallback;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
/**
|
|
28
|
+
* Look up a localized version of a standard message using the Language instance
|
|
29
|
+
* that was previously set with {@link setLanguage}.
|
|
30
|
+
*
|
|
31
|
+
* @see {@link Language#_}
|
|
32
|
+
* @param {string} msg - a message key
|
|
33
|
+
* @param {Object} [context] - a dictionary with string keys appropriate to message `k`
|
|
34
|
+
* and string values which will be interpolated into the message.
|
|
35
|
+
* @returns {string} - a localized string appropriate to the message key
|
|
36
|
+
*/
|
|
37
|
+
_(msg, context) {
|
|
38
|
+
return this.getLanguage()._(msg, context);
|
|
29
39
|
}
|
|
30
40
|
}
|
|
31
41
|
|
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
import { mergeData, pad, trace } from "../core/Util"
|
|
2
2
|
import { fetchJSON } from "../net/Net"
|
|
3
3
|
import { BigYear } from "../date/TLDate"
|
|
4
|
+
import TLError from "../core/TLError";
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
6
|
+
const MESSAGE_VARIABLE_PATTERN = new RegExp(/\$\{(.+?)\}/g)
|
|
7
|
+
/**
|
|
8
|
+
* Instantiate a Language object to manage I18N.
|
|
9
|
+
* WARNING: In general, this should not be called directly, because it doesn't block while
|
|
10
|
+
* the language file is loaded, which can lead to race conditions in some cases. In most
|
|
11
|
+
* cases, language objects other than the fallback should be gotten by calling the
|
|
12
|
+
* async function loadLanguage defined elsewhere in this file.
|
|
13
|
+
*
|
|
14
|
+
* @param {String} [language=en] - a language code or a URL to a
|
|
15
|
+
* translation file
|
|
16
|
+
* @param {string} [script_path] - if `language` is not a URL, this is used
|
|
17
|
+
* to construct a fully-qualified URL to load a translation file.
|
|
18
|
+
*/
|
|
17
19
|
class Language {
|
|
18
20
|
constructor(language, script_path) {
|
|
19
21
|
// borrowed from http://stackoverflow.com/a/14446414/102476
|
|
@@ -73,8 +75,28 @@ class Language {
|
|
|
73
75
|
}
|
|
74
76
|
}
|
|
75
77
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
+
/**
|
|
79
|
+
* Look up a localized version of a standard message. While using `_` for the
|
|
80
|
+
* method name is not exactly idiomatic javascript, it was inspired by Python's
|
|
81
|
+
* {@link https://docs.python.org/3/library/gettext.html|gettext} module, with
|
|
82
|
+
* the intention of reducing clutter in places where, in a non-I18N'd app, you'd
|
|
83
|
+
* simply have a quoted string.
|
|
84
|
+
*
|
|
85
|
+
* @param {string} k - a message key
|
|
86
|
+
* @param {Object} [context] - a dictionary with string keys appropriate to message `k`
|
|
87
|
+
* and string values which will be interpolated into the message.
|
|
88
|
+
* @returns {string} - a localized string appropriate to the message key
|
|
89
|
+
*/
|
|
90
|
+
_(k, context) {
|
|
91
|
+
let msg = this.messages[k] || Language.fallback.messages[k] || k;
|
|
92
|
+
if (msg.match(MESSAGE_VARIABLE_PATTERN)) {
|
|
93
|
+
if (!context) throw new TLError("template_message_without_context")
|
|
94
|
+
for (let match of msg.matchAll(MESSAGE_VARIABLE_PATTERN)) {
|
|
95
|
+
if (!(match[1] in context)) throw new TLError("template_message_without_context")
|
|
96
|
+
msg = msg.replace(match[0], context[match[1]])
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return msg
|
|
78
100
|
}
|
|
79
101
|
|
|
80
102
|
formatDate(date, format_name) {
|
|
@@ -267,19 +289,17 @@ var LANGUAGES = {
|
|
|
267
289
|
loading: "Loading",
|
|
268
290
|
wikipedia: "From Wikipedia, the free encyclopedia",
|
|
269
291
|
error: "Error",
|
|
270
|
-
contract_timeline: "Contract Timeline",
|
|
271
292
|
return_to_title: "Return to Title",
|
|
293
|
+
go_to_end: "Go to the last slide",
|
|
272
294
|
loading_content: "Loading Content",
|
|
273
|
-
expand_timeline: "Expand Timeline",
|
|
274
295
|
loading_timeline: "Loading Timeline... ",
|
|
275
296
|
swipe_to_navigate: "Swipe to Navigate<br><span class='tl-button'>OK</span>",
|
|
297
|
+
zoom_in: "Zoom in",
|
|
298
|
+
zoom_out: "Zoom out",
|
|
276
299
|
unknown_read_err: "An unexpected error occurred trying to read your spreadsheet data",
|
|
277
300
|
invalid_url_err: "Unable to read Timeline data. Make sure your URL is for a Google Spreadsheet or a Timeline JSON file.",
|
|
278
|
-
invalid_url_share_required: "Because of unexpected changes to Google's data access API, the creator of this timeline must enable 'anyone with the url can read' access for this spreadsheet. See timeline.knightlab.com for more information.",
|
|
279
301
|
network_err: "Unable to read your Google Spreadsheet. Make sure you have published it to the web.",
|
|
280
|
-
empty_feed_err: "No data entries found",
|
|
281
302
|
missing_start_date_err: "Missing start_date",
|
|
282
|
-
invalid_data_format_err: "Header row has been modified.",
|
|
283
303
|
invalid_start_time_without_date: "Invalid configuration: time cannot be used without date.",
|
|
284
304
|
invalid_end_time_without_date: "Invalid configuration: end time cannot be used without end date.",
|
|
285
305
|
date_compare_err: "Can't compare timeline date objects on different scales",
|
|
@@ -295,19 +315,26 @@ var LANGUAGES = {
|
|
|
295
315
|
flickr_notfound_err: "Photo not found or private",
|
|
296
316
|
flickr_invalidurl_err: "Invalid Flickr URL",
|
|
297
317
|
imgur_invalidurl_err: "Invalid Imgur URL",
|
|
298
|
-
twitter_invalidurl_err: "Invalid Twitter URL",
|
|
299
318
|
twitter_load_err: "Unable to load Tweet",
|
|
300
319
|
twitterembed_invalidurl_err: "Invalid Twitter Embed url",
|
|
301
320
|
wikipedia_load_err: "Unable to load Wikipedia entry",
|
|
302
|
-
youtube_invalidurl_err: "Invalid YouTube URL",
|
|
303
321
|
spotify_invalid_url: "Invalid Spotify URL",
|
|
304
|
-
template_value_err: "No value provided for variable",
|
|
305
322
|
invalid_rgb_err: "Invalid RGB argument",
|
|
306
323
|
time_scale_scale_err: "Don't know how to get date from time for scale",
|
|
307
324
|
axis_helper_no_options_err: "Axis helper must be configured with options",
|
|
308
325
|
axis_helper_scale_err: "No AxisHelper available for scale",
|
|
309
326
|
invalid_integer_option: "Invalid option value—must be a whole number.",
|
|
310
|
-
instagram_bad_request: "Invalid or private Instagram URL"
|
|
327
|
+
instagram_bad_request: "Invalid or private Instagram URL",
|
|
328
|
+
template_message_without_context: "Required variables not provided for template translation message",
|
|
329
|
+
aria_label_timeline: "Timeline",
|
|
330
|
+
aria_label_timeline_navigation: "Timeline navigation",
|
|
331
|
+
aria_label_timeline_content: "Timeline content",
|
|
332
|
+
// The following message keys are pseudo-template literal.
|
|
333
|
+
// Do not surround with backticks (`) since evaluation is deferred
|
|
334
|
+
// (and backticks wouldn't be allowed in JSON localization files)
|
|
335
|
+
// for each, document typical values for variable components
|
|
336
|
+
aria_label_zoomin: "Show less than ${start} to ${end}", // 'start' and 'end' should be numeric years
|
|
337
|
+
aria_label_zoomout: "Show more than ${start} to ${end}" // 'start' and 'end' should be numeric years
|
|
311
338
|
},
|
|
312
339
|
date: {
|
|
313
340
|
month: [
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { fallback } from "../Language"
|
|
2
|
+
import { classMixin } from "../../core/Util"
|
|
3
|
+
import { I18NMixins } from "../I18NMixins"
|
|
4
|
+
class MixinTest {
|
|
5
|
+
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
classMixin(MixinTest, I18NMixins)
|
|
9
|
+
|
|
10
|
+
test("Test variable interpolation", () => {
|
|
11
|
+
let msg = fallback._("aria_label_zoomin", { start: 1900, end: 2000 })
|
|
12
|
+
expect(msg).toBe('Show less than 1900 to 2000')
|
|
13
|
+
})
|
|
14
|
+
|
|
15
|
+
test("Test variable interpolation error checking with no context", () => {
|
|
16
|
+
expect(() => {
|
|
17
|
+
let msg = fallback._("aria_label_zoomin")
|
|
18
|
+
}).toThrow()
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
test("Test variable interpolation error checking with partial context", () => {
|
|
22
|
+
expect(() => {
|
|
23
|
+
let msg = fallback._("aria_label_zoomin", { start: 1900 })
|
|
24
|
+
}).toThrow()
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
test("Test interpolation through a mixin", () => {
|
|
28
|
+
let mixin = new MixinTest()
|
|
29
|
+
mixin.setLanguage(fallback)
|
|
30
|
+
let msg = mixin._("aria_label_zoomin", { start: 1900, end: 2000 })
|
|
31
|
+
expect(msg).toBe('Show less than 1900 to 2000')
|
|
32
|
+
})
|
|
@@ -1,75 +1,73 @@
|
|
|
1
1
|
{
|
|
2
|
-
"lang": "af",
|
|
2
|
+
"lang": "af",
|
|
3
3
|
"date": {
|
|
4
4
|
"month_abbr": [
|
|
5
|
-
"Jan.",
|
|
6
|
-
"Feb.",
|
|
7
|
-
"Maart",
|
|
8
|
-
"April",
|
|
9
|
-
"Mei",
|
|
10
|
-
"Junei",
|
|
11
|
-
"Julie",
|
|
12
|
-
"Aug.",
|
|
13
|
-
"Sept.",
|
|
14
|
-
"Okt.",
|
|
15
|
-
"Nov.",
|
|
5
|
+
"Jan.",
|
|
6
|
+
"Feb.",
|
|
7
|
+
"Maart",
|
|
8
|
+
"April",
|
|
9
|
+
"Mei",
|
|
10
|
+
"Junei",
|
|
11
|
+
"Julie",
|
|
12
|
+
"Aug.",
|
|
13
|
+
"Sept.",
|
|
14
|
+
"Okt.",
|
|
15
|
+
"Nov.",
|
|
16
16
|
"Des."
|
|
17
|
-
],
|
|
17
|
+
],
|
|
18
18
|
"day_abbr": [
|
|
19
|
-
"Son.",
|
|
20
|
-
"Maan.",
|
|
21
|
-
"Dins.",
|
|
22
|
-
"Woen.",
|
|
23
|
-
"Don.",
|
|
24
|
-
"Vry.",
|
|
19
|
+
"Son.",
|
|
20
|
+
"Maan.",
|
|
21
|
+
"Dins.",
|
|
22
|
+
"Woen.",
|
|
23
|
+
"Don.",
|
|
24
|
+
"Vry.",
|
|
25
25
|
"Sat."
|
|
26
|
-
],
|
|
26
|
+
],
|
|
27
27
|
"day": [
|
|
28
|
-
"Sondag",
|
|
29
|
-
"Maandag",
|
|
30
|
-
"Dinsdag",
|
|
31
|
-
"Woensdag",
|
|
32
|
-
"Donderdag",
|
|
33
|
-
"Vrydag",
|
|
28
|
+
"Sondag",
|
|
29
|
+
"Maandag",
|
|
30
|
+
"Dinsdag",
|
|
31
|
+
"Woensdag",
|
|
32
|
+
"Donderdag",
|
|
33
|
+
"Vrydag",
|
|
34
34
|
"Saterdag"
|
|
35
|
-
],
|
|
35
|
+
],
|
|
36
36
|
"month": [
|
|
37
|
-
"Januarie",
|
|
38
|
-
"Februarie",
|
|
39
|
-
"Maart",
|
|
40
|
-
"April",
|
|
41
|
-
"Mei",
|
|
42
|
-
"Junie",
|
|
43
|
-
"Julie",
|
|
44
|
-
"Augustus",
|
|
45
|
-
"September",
|
|
46
|
-
"Oktober",
|
|
47
|
-
"November",
|
|
37
|
+
"Januarie",
|
|
38
|
+
"Februarie",
|
|
39
|
+
"Maart",
|
|
40
|
+
"April",
|
|
41
|
+
"Mei",
|
|
42
|
+
"Junie",
|
|
43
|
+
"Julie",
|
|
44
|
+
"Augustus",
|
|
45
|
+
"September",
|
|
46
|
+
"Oktober",
|
|
47
|
+
"November",
|
|
48
48
|
"Desember"
|
|
49
49
|
]
|
|
50
|
-
},
|
|
50
|
+
},
|
|
51
51
|
"api": {
|
|
52
52
|
"wikipedia": "af"
|
|
53
|
-
},
|
|
53
|
+
},
|
|
54
54
|
"messages": {
|
|
55
|
-
"loading": "Aan't laai",
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"loading_content": "Die inhoud laai",
|
|
60
|
-
"expand_timeline": "Rek die tydlyn",
|
|
55
|
+
"loading": "Aan't laai",
|
|
56
|
+
"return_to_title": "Begin voor",
|
|
57
|
+
"wikipedia": "Van Wikipedia, die gratis ensiklopedie",
|
|
58
|
+
"loading_content": "Die inhoud laai",
|
|
61
59
|
"loading_timeline": "Die tydlyn laai... "
|
|
62
|
-
},
|
|
60
|
+
},
|
|
63
61
|
"dateformats": {
|
|
64
|
-
"full_long": "d mmm',' yyyy 'om' HH:MM",
|
|
65
|
-
"full_short": "d mmm",
|
|
66
|
-
"full": "d mmmm yyyy",
|
|
67
|
-
"month_short": "mmm",
|
|
68
|
-
"time_no_seconds_small_date": "HH:MM'<br/><small>'d mmmm yyyy'</small>'",
|
|
69
|
-
"month": "mmmm yyyy",
|
|
70
|
-
"time_no_seconds_short": "HH:MM",
|
|
71
|
-
"time_short": "HH:MM:ss",
|
|
72
|
-
"year": "yyyy",
|
|
62
|
+
"full_long": "d mmm',' yyyy 'om' HH:MM",
|
|
63
|
+
"full_short": "d mmm",
|
|
64
|
+
"full": "d mmmm yyyy",
|
|
65
|
+
"month_short": "mmm",
|
|
66
|
+
"time_no_seconds_small_date": "HH:MM'<br/><small>'d mmmm yyyy'</small>'",
|
|
67
|
+
"month": "mmmm yyyy",
|
|
68
|
+
"time_no_seconds_short": "HH:MM",
|
|
69
|
+
"time_short": "HH:MM:ss",
|
|
70
|
+
"year": "yyyy",
|
|
73
71
|
"full_long_small_date": "HH:MM'<br/><small>d mmm yyyy'</small>'"
|
|
74
72
|
}
|
|
75
73
|
}
|
|
@@ -1,76 +1,74 @@
|
|
|
1
1
|
{
|
|
2
|
-
"lang": "ar",
|
|
2
|
+
"lang": "ar",
|
|
3
3
|
"direction": "rtl",
|
|
4
4
|
"messages": {
|
|
5
|
-
"loading": "تحميل",
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"loading_content": "تحميل المحتوى",
|
|
10
|
-
"expand_timeline": "تكبير العرض",
|
|
5
|
+
"loading": "تحميل",
|
|
6
|
+
"return_to_title": "العودة",
|
|
7
|
+
"wikipedia": "من ويكيبيديا, الموسوعة الحرة",
|
|
8
|
+
"loading_content": "تحميل المحتوى",
|
|
11
9
|
"loading_timeline": "جاري التحميل... "
|
|
12
|
-
},
|
|
10
|
+
},
|
|
13
11
|
"api": {
|
|
14
12
|
"wikipedia": "ar"
|
|
15
|
-
},
|
|
13
|
+
},
|
|
16
14
|
"date": {
|
|
17
15
|
"month_abbr": [
|
|
18
|
-
"كانون الثاني",
|
|
19
|
-
"شباط",
|
|
20
|
-
"آذار",
|
|
21
|
-
"نيسان",
|
|
22
|
-
"أيار",
|
|
23
|
-
"حزيران",
|
|
24
|
-
"تموز",
|
|
25
|
-
"آب",
|
|
26
|
-
"أيلول",
|
|
27
|
-
"تشرين الأول",
|
|
28
|
-
"تشرين الثاني",
|
|
16
|
+
"كانون الثاني",
|
|
17
|
+
"شباط",
|
|
18
|
+
"آذار",
|
|
19
|
+
"نيسان",
|
|
20
|
+
"أيار",
|
|
21
|
+
"حزيران",
|
|
22
|
+
"تموز",
|
|
23
|
+
"آب",
|
|
24
|
+
"أيلول",
|
|
25
|
+
"تشرين الأول",
|
|
26
|
+
"تشرين الثاني",
|
|
29
27
|
"كانون الأول"
|
|
30
|
-
],
|
|
28
|
+
],
|
|
31
29
|
"day_abbr": [
|
|
32
|
-
"الأحد",
|
|
33
|
-
"الإثنين",
|
|
34
|
-
"الثلاثاء",
|
|
35
|
-
"الأربعاء",
|
|
36
|
-
"الخميس",
|
|
37
|
-
"الجمعة",
|
|
30
|
+
"الأحد",
|
|
31
|
+
"الإثنين",
|
|
32
|
+
"الثلاثاء",
|
|
33
|
+
"الأربعاء",
|
|
34
|
+
"الخميس",
|
|
35
|
+
"الجمعة",
|
|
38
36
|
"السبت"
|
|
39
|
-
],
|
|
37
|
+
],
|
|
40
38
|
"day": [
|
|
41
|
-
"الأحد",
|
|
42
|
-
"الإثنين",
|
|
43
|
-
"الثلاثاء",
|
|
44
|
-
"الأربعاء",
|
|
45
|
-
"الخميس",
|
|
46
|
-
"الجمعة",
|
|
39
|
+
"الأحد",
|
|
40
|
+
"الإثنين",
|
|
41
|
+
"الثلاثاء",
|
|
42
|
+
"الأربعاء",
|
|
43
|
+
"الخميس",
|
|
44
|
+
"الجمعة",
|
|
47
45
|
"السبت"
|
|
48
|
-
],
|
|
46
|
+
],
|
|
49
47
|
"month": [
|
|
50
|
-
"كانون الثاني",
|
|
51
|
-
"شباط",
|
|
52
|
-
"آذار",
|
|
53
|
-
"نيسان",
|
|
54
|
-
"أيار",
|
|
55
|
-
"حزيران",
|
|
56
|
-
"تموز",
|
|
57
|
-
"آب",
|
|
58
|
-
"أيلول",
|
|
59
|
-
"تشرين الأول",
|
|
60
|
-
"تشرين الثاني",
|
|
48
|
+
"كانون الثاني",
|
|
49
|
+
"شباط",
|
|
50
|
+
"آذار",
|
|
51
|
+
"نيسان",
|
|
52
|
+
"أيار",
|
|
53
|
+
"حزيران",
|
|
54
|
+
"تموز",
|
|
55
|
+
"آب",
|
|
56
|
+
"أيلول",
|
|
57
|
+
"تشرين الأول",
|
|
58
|
+
"تشرين الثاني",
|
|
61
59
|
"كانون الأول"
|
|
62
60
|
]
|
|
63
|
-
},
|
|
61
|
+
},
|
|
64
62
|
"dateformats": {
|
|
65
|
-
"full_long": "mmm d',' yyyy 'at' hh:MM TT",
|
|
66
|
-
"full_short": "mmm d",
|
|
67
|
-
"full": "mmmm d',' yyyy",
|
|
68
|
-
"month_short": "mmm",
|
|
69
|
-
"time_no_seconds_small_date": "h:MM TT'<br/><small>'mmmm d',' yyyy'</small>'",
|
|
70
|
-
"month": "mmmm yyyy",
|
|
71
|
-
"time_no_seconds_short": "h:MM TT",
|
|
72
|
-
"time_short": "h:MM:ss TT",
|
|
73
|
-
"year": "yyyy",
|
|
63
|
+
"full_long": "mmm d',' yyyy 'at' hh:MM TT",
|
|
64
|
+
"full_short": "mmm d",
|
|
65
|
+
"full": "mmmm d',' yyyy",
|
|
66
|
+
"month_short": "mmm",
|
|
67
|
+
"time_no_seconds_small_date": "h:MM TT'<br/><small>'mmmm d',' yyyy'</small>'",
|
|
68
|
+
"month": "mmmm yyyy",
|
|
69
|
+
"time_no_seconds_short": "h:MM TT",
|
|
70
|
+
"time_short": "h:MM:ss TT",
|
|
71
|
+
"year": "yyyy",
|
|
74
72
|
"full_long_small_date": "hh:MM TT'<br/><small>mmm d',' yyyy'</small>'"
|
|
75
73
|
}
|
|
76
74
|
}
|
|
@@ -1,75 +1,73 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
"
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
"month": "mmmm yyyy"
|
|
74
|
-
}
|
|
2
|
+
"lang": "be",
|
|
3
|
+
"date": {
|
|
4
|
+
"month_abbr": [
|
|
5
|
+
"стд",
|
|
6
|
+
"лют",
|
|
7
|
+
"скв",
|
|
8
|
+
"крс",
|
|
9
|
+
"май",
|
|
10
|
+
"чрв",
|
|
11
|
+
"лпн",
|
|
12
|
+
"жнв",
|
|
13
|
+
"врс",
|
|
14
|
+
"кст",
|
|
15
|
+
"лст",
|
|
16
|
+
"снж"
|
|
17
|
+
],
|
|
18
|
+
"day_abbr": [
|
|
19
|
+
"Нд.",
|
|
20
|
+
"Пн.",
|
|
21
|
+
"Аўт.",
|
|
22
|
+
"Ср.",
|
|
23
|
+
"Чц.",
|
|
24
|
+
"Пт.",
|
|
25
|
+
"Сб."
|
|
26
|
+
],
|
|
27
|
+
"day": [
|
|
28
|
+
"нядзеля",
|
|
29
|
+
"панядзелак",
|
|
30
|
+
"аўторак",
|
|
31
|
+
"серада",
|
|
32
|
+
"чацвер",
|
|
33
|
+
"пятніца",
|
|
34
|
+
"субота"
|
|
35
|
+
],
|
|
36
|
+
"month": [
|
|
37
|
+
"студзень",
|
|
38
|
+
"люты",
|
|
39
|
+
"сакавік",
|
|
40
|
+
"красавік",
|
|
41
|
+
"май",
|
|
42
|
+
"чэрвень",
|
|
43
|
+
"ліпень",
|
|
44
|
+
"жнівень",
|
|
45
|
+
"верасень",
|
|
46
|
+
"кастрычнік",
|
|
47
|
+
"лістапад",
|
|
48
|
+
"снежань"
|
|
49
|
+
]
|
|
50
|
+
},
|
|
51
|
+
"api": {
|
|
52
|
+
"wikipedia": "be"
|
|
53
|
+
},
|
|
54
|
+
"messages": {
|
|
55
|
+
"loading": "Загрузка",
|
|
56
|
+
"return_to_title": "Вярнуцца ў пачатак",
|
|
57
|
+
"wikipedia": "З Вікіпедыі, свабоднай энцыклапедыі",
|
|
58
|
+
"loading_content": "Загрузка зместу",
|
|
59
|
+
"loading_timeline": "Загрузка лініі часу... "
|
|
60
|
+
},
|
|
61
|
+
"dateformats": {
|
|
62
|
+
"full_long": "d mmm yyyy 'at' h:MM TT",
|
|
63
|
+
"full_short": "d mmm",
|
|
64
|
+
"full": "d mmmm yyyy",
|
|
65
|
+
"time_short": "h:MM:ss TT",
|
|
66
|
+
"year": "yyyy",
|
|
67
|
+
"time_no_seconds_short": "h:MM TT",
|
|
68
|
+
"month_short": "mmm",
|
|
69
|
+
"full_long_small_date": "h:MM TT'<br/><small>d mmm yyyy'</small>'",
|
|
70
|
+
"time_no_seconds_small_date": "h:MM TT'<br/><small>'d mmmm yyyy'</small>'",
|
|
71
|
+
"month": "mmmm yyyy"
|
|
72
|
+
}
|
|
75
73
|
}
|