diff --git a/.gitignore b/.gitignore index cb33b3395..f82ae93ff 100644 --- a/.gitignore +++ b/.gitignore @@ -2,15 +2,13 @@ .DS_Store* dev_examples/ cdn/ -Embed.CDN.js -Embed.CDN.Generator.js -compiled/generator.html -compiled/index.html -compiled/generator-backup.html -compiled/js/storyjs-embed-cdn.js -compiled/js/storyjs-embed-generator.js -compiled/css/timeline-generator.css +compiled *.tmproj *.tmproject tmtags -source/gfx/Sprites/ \ No newline at end of file +source/gfx/Sprites/ +/node_modules +*.pyc +codekit-config.json +build + diff --git a/.gitmodules b/.gitmodules index 933337205..e69de29bb 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +0,0 @@ -[submodule "source/js/Core"] - path = source/js/Core - url = https://zachwise@github.com/VeriteCo/StoryJS-Core.git -[submodule "source/less/Core"] - path = source/less/Core - url = https://zachwise@github.com/VeriteCo/StoryJS-Core-CSS.git diff --git a/CHANGELOG b/CHANGELOG new file mode 100644 index 000000000..1a1176208 --- /dev/null +++ b/CHANGELOG @@ -0,0 +1,106 @@ +2.35.6 (2015-03-25) +------ +Restore original animation/easing (revert pull #681) + +2.35.5 (2015-02-26) +------ +#672,679,681,683 a series of presentation/performance tweaks from @acdha +Fix auto-linking regression + +2.35.4 (2015-02-17) +------ +Fix Stamen map tile URL bug + + +2.35.3 (2015-02-17) +------ +#673 Update Taiwanese locale +#689 Update Thai locale +#693 Update Polish locale +#705 Frisian localization +#722 Support 'youtubeTheme' config option +#732 Updated German Translations +#733 Move "Swipe to Navigate" to I18N. Now we need translations for 55 languages! +#744 Hindi localization +#745 Update Icelandic date formats +#749 Irish localization +#762 Belarusian localization + +2.35.2 (2014-11-24) +------ +fix half-width bug on small displays + +2.35.1 (2014-11-19) +------ +#719 whackamole with JS dates + +2.35.0 (2014-11-19) +------ +#718 Issue with dates in 1970 in GMT/BST time zones + +2.34.1 +------ +#710 fix regression from #706 re IE https +#709 retina image for loading.gif (even though we don't use it) + +2.34.0 +------ +Remove HTTPS URL rewriting for older IE. +don't do analytics on https +Check to make sure that every slide has a start date, so that people get a clear warning if the spreadsheet header has been changed. +fix jquery version check, again. (should accept jquery 2, although TimelineJS has not been tested with jquery 2) cf. #551 +Update ko.js translation file +Update fa.js + +2.33.1 +------ +Fix bug in handling maps.google URLs +Update zh-cn localization file. + +2.33.0 +------ +#638 (WIP) better handle new-format Google Maps URLs +#597 parse new-format Google Spreadsheet URLs correctly +(no ticket) Support "W" as date format token for "week" based on existing getWeek add on to Date.prototype +#632 Accept *.bmp as image URL in media field +#631 Add bower file +#589 remove unused code that refers to non-existent modules +#526 fix jQuery version check so 1.10.x > 1.9.x +#529 fix untagify to remove closing tags as well +#567 be more permissive about iframe markup +#512 fix Dark.css theme even though themes are generally not supported +#520 treat Streetview API urls as images, not maps +#536 fix typo in README.md +#623 set maxheight on soundcloud embeds +#624 'crush' pngs +#625 deal with nutty MSIE user agent strings + +2.32.0 +------ +Stop YouTube players when slide changes +Better method for determining embed path root +Check for iframe and blockquote media before other url tests +Add languages: 'hr' (Croatian), 'uk' (Ukrainian) +minor fixes to language files for 'fi' (Finnish) 'sl' (Slovenian) + +2.31.0 +------ +Add languages: 'ro' (Romanian), 'th' (Thai) +minor fixes to language files for 'es' (Spanish) 'fa' (Farsi), 'hu' (Hungarian), 'no' (Norwegian) +add OpenStreetMap as a map option ('osm') +Support '.svg' as an image media type +support custom thumbnails when no media is specified +clearer warning about "compatibility mode" to IE users. + +2.30.0 +------ +Fix language code for 'zh-cn' (Chinese) +add 'fa' (Farsi) +Move 'remove' function from Array.prototype to a util method to avoid adverse affects on other JS code. + +2.26.2 +----- + +* Start a CHANGELOG +* Change embed HTML to dynamically set the embed path, to support use over https + diff --git a/DEVELOPER.md b/DEVELOPER.md new file mode 100644 index 000000000..6fa03e968 --- /dev/null +++ b/DEVELOPER.md @@ -0,0 +1,84 @@ +## Requirements + + python 2.7.x + + [virtualenvwrapper](http://virtualenvwrapper.readthedocs.org/) + + [Node.js](http://nodejs.org) + + [LESS](http://lesscss.org) + + # npm install -g less + + [UglifyJS](https://github.com/mishoo/UglifyJS) + + # npm install -g uglify-js@">=2.4" + +## Setup + + # Change into the parent directory containing your repositories + cd path_to_repos_root + + # Clone the secrets repository (if necessary) + git clone git@github.com:NUKnightLab/secrets.git + + # Clone KnightLab support repositories (General public, you can skip this step) + git clone git@github.com:NUKnightLab/cdn.knightlab.com.git + git clone git@github.com:NUKnightLab/fablib.git + + # Clone the timeline repository (and the submodules) + git clone --recursive git@github.com:NUKnightLab/TimelineJS.git + + # Change into the timeline repository + cd TimelineJS + + # Create a virtual environment + mkvirtualenv TimelineJS + + # Activate the virtual environment + workon TimelineJS + + # Install python requirements + pip install -r requirements.txt + + # Run the development server. + fab serve + + # Re-compile to preview changes. Of course this will need to be in another terminal, or after the fab serve command was put in the + # background. It would be great to automate this, but we would like to not add another build system and haven't figured out how to + # do it with fabric. Pull requests are welcome! + fab build + +## Overview + +Files in the `source` directory are resources for deployment to the CDN. + +Files in the `website` directory are specific to the website. + +`config.json` is used to control building, staging, and deployment + +## Updating the documentation site + +Documentation site files are in the `website` directory. To review your edits locally, run `fab serve` to start a local server on [http://localhost:5000](http://localhost:5000). + +## Deploying updates to the documentation site (timeline.knightlab.com) + +To deploy to S3, type `fab deploy`. + +## Adding support for a new language + +* Add the file with the correct ISO-639 language code name in the `source/js/Core/Language/locale` directory. +* Update website/templates/_make.html to refer to the new file (remember to sort alphabetically by language name, not code) +* create a test timeline using the new language to verify that it basically works +* deploy a new version (don't forget to stage_wp) +* update knightlab-timeline.php in the TimelineJS-Wordpress-Plugin repo and release that too. + + +## Deploying javascript changes to the CDN + +To stage your changes to a versioned directory in your local CDN repository, type `fab stage` You will be prompted for the new version number. After you provide it, this `fab stage` runs a build, copies the files into a versioned directory in your local `cdn.knightlab.com` repository, and tags the last commit with a version number. + +To stage your changes to the `latest` directory in your local CDN repository, type `fab stage_latest` You will be prompted for which version number you want to stage as the 'latest' version on the CDN. This copies files from the directory with that version in your local `cdn.knightlab.com` respository into the corresponding `latest` directory -- so you will have to have used `fab stage` before this. + +You must push and deploy all CDN changes separately from that repository. Don't forget to edit the index page there until we work out some automated index building system. + diff --git a/README.markdown b/README.markdown index 240d59a18..130af45de 100644 --- a/README.markdown +++ b/README.markdown @@ -1,4 +1,47 @@ -# TimelineJS +# This Version of Timeline is no longer under development + +Therefore, GitHub issues and pull requests have been disabled. + +Knight Lab has created a new version at https://github.com/NUKnightLab/TimelineJS3 . The new library should work with existing Google Spreadsheets, but not existing TimelineJS JSON files. The new version of TimelineJS requires a new JSON format, and there is no direct conversion tool, although it should not be too complicated to manually or programatically convert an old JSON file. + +Knight Lab will continue to serve this version of Timeline from + +* https://cdn.knightlab.com/libs/timeline/latest/js/timeline-min.js +* https://cdn.knightlab.com/libs/timeline/latest/js/timeline.js +* https://cdn.knightlab.com/libs/timeline/latest/css/timeline.css + +However, no future development on this line of code is planned. + +---- + +**Table of Contents** + +- [TimelineJS](#timelinejs) + - [Document history with TimelineJS](#document-history-with-timelinejs) + - [Add it to your site](#add-it-to-your-site) + - [Using Inline (easiest)](#using-inline-easiest) + - [Using a method (advanced)](#using-a-method-advanced) + - [Loading the files](#loading-the-files) + - [Config Options](#config-options) + - [Language](#language) + - [Start at End](#start-at-end) + - [Start at Slide](#start-at-slide) + - [Start Zoom Adjust](#start-zoom-adjust) + - [Hash Bookmark](#hash-bookmark) + - [Debug](#debug) + - [Map Style Types](#map-style-types) + - [Font Options](#font-options) + - [Font Combination Preview:](#font-combination-preview) + - [File Formats](#file-formats) + - [JSON:](#json) + - [JSONP :](#jsonp-) + - [Google Docs:](#google-docs) + - [Storify:](#storify) + - [Media](#media) + - [Best practices](#best-practices) + - [License](#license) + +# TimelineJS ## Document history with TimelineJS There are lots of timeline tools on the web but they are almost all either @@ -12,8 +55,9 @@ in the future. Creating one is as easy as filling in a Google spreadsheet or as detailed as JSON. - + ## Add it to your site + ### Using Inline (*easiest*) Place the embed code where you want the timeline to show in the `
` of your site. See [Config Options](#config-options) for a full list of what you can set in the config. @@ -37,7 +81,7 @@ Place the embed code where you want the timeline to show in the `` of your js: 'path_to_js/timeline-min.js' //OPTIONAL PATH TO JS } - + ``` ### Using a method (*advanced*) You could also initialize a new timeline using the `createStoryJS` method after `storyjs-embed.js` has been loaded @@ -58,7 +102,7 @@ Here's a simple example: - + - + ``` - +### Loading the files +If you like, you may load TimelineJS from the KnightLab's CDN. The examples above demonstrate how to do this using `story-embed.js`, which is the simplest way to set up a Timeline of your own. + +If for some reason you need more fine-grained control over your timeline, load the javascript and CSS files separately. We recommend that you load them from our CDN. + +```html + + + + + + + +``` + +If you need to serve copies of the files from your own server, use the entire contents of the ["/build/" directory](https://github.com/NUKnightLab/TimelineJS/tree/master/build) of our GitHub repository. If you use a local copy of `story-embed.js` it should automatically load the other Timeline resources from your server. + ## Config Options Here are some of the options you can set in the config. +### Source +`source` Should be either the path to the JSON resource to load, or a JavaScript +object corresponding to the Timeline model. + +Here is an example using a data object: + +```javascript + + var dataObject = {timeline: {headline: "Headline", type: ... }} + createStoryJS({ + type: 'timeline', + width: '800', + height: '600', + source: dataObject, + embed_id: 'my-timeline' + }); +``` + +If source is a string, we will try to automatically recognize resources that are +Twitter searches, Google Spreadsheets or Storify stories. Failing that, we assume +the source is either JSON or JSONP. If string matches on `.jsonp`, we will treat it +as JSONP, otherwise, we will append `?callback=onJSONP_Data`. See more details below. + ### Language `lang` Localization *default is `en` English* Languages available: +* `af` *Afrikaans* +* `ar` *Arabic* +* `hy` *Armenian* +* `eu` *Basque* +* `be` *Belarusian* +* `bg` *Bulgarian* +* `ca` *Catalan* +* `zh-cn` *Chinese* +* `hr` *Croatian / Hrvatski* +* `cz` *Czech* +* `da` *Danish* +* `nl` *Dutch* * `en` *English* +* `en-24hr` *English (24-hour time)* +* `eo` *Esperanto* +* `et` *Estonian* +* `fo` *Faroese* +* `fa` *Farsi* +* `fi` *Finnish* * `fr` *French* -* `es` *Spanish* -* `it` *Italian* +* `fy` *Frisian* +* `gl` *Galician* +* `ka` *Georgian* * `de` *German / Deutsch* -* `pt` *Portuguese* -* `pt-br` *Brazilian Portuguese* -* `nl` *Dutch* -* `is` *Icelandic* -* `no` *Norwegian* -* `bg` *Bulgarian* -* `sl` *Slovenian* +* `el` *Greek* +* `he` *Hebrew* +* `hi` *Hindi* * `hu` *Hungarian* -* `hy` *Armenian* -* `fo` *Faroese* -* `cz` *Czech* -* `dk` *Danish* +* `is` *Icelandic* * `id` *Indonesian* +* `ga` *Irish* +* `it` *Italian* +* `ja` *Japanese* +* `ko` *Korean* +* `lv` *Latvian* +* `lt` *Lithuanian* +* `lb` *Luxembourgish* +* `ms` *Malay* +* `ne` *Nepali* +* `no` *Norwegian* * `pl` *Polish* +* `pt` *Portuguese* +* `pt-br` *Portuguese (Brazilian)* +* `ro` *Romanian* +* `rm` *Romansh* * `ru` *Russian* +* `sr-cy` *Serbian - Cyrillic* +* `sr` *Serbian - Latin* +* `si` *Sinhalese* * `sk` *Slovak* -* `ca` *Catalan* -* `el` *Greek* -* `ta` *Tamil* +* `sl` *Slovenian* +* `es` *Spanish* +* `sv` *Swedish* * `tl` *Tagalog* -* `tr` *Turkish* -* `ja` *Japanese* -* `kr` *Korean* -* `zh-ch` *Chinese* +* `ta` *Tamil* * `zh-tw` *Taiwanese* -* `ar` *Arabic (beta)* +* `te` *Telugu* +* `th` *Thai* +* `tr` *Turkish* +* `uk` *Ukrainian* + -Help us add more. Grab a copy of a language file and replace it with your language [Example language file](https://github.com/VeriteCo/StoryJS-Core/blob/master/Language/locale/en.js) and find your language's [two letter code here](http://spreadsheets.google.com/pub?key=p9pdwsai2hDMsLkXsoM05KQ&gid=1) -###Start at End +Help us add more. Grab a copy of a language file and replace it with your language [Example language file](https://github.com/NUKnightLab/TimelineJS/blob/master/source/js/Core/Language/locale/en.js) and find your language's [two letter code here](http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) + +###Start at End `start_at_end` set to true to start the timeline on the last date. *default is false* -###Start at Slide +###Start at Slide `start_at_slide` You can tell TimelineJS to start at a specific slide number *default is 0* ###Start Zoom Adjust `start_zoom_adjust` -This will tweak the default zoom level. Equivilent to pressing the zoom in or zoom out button the specified number of times. Negative numbers zoom out. +This will tweak the default zoom level. Equivalent to pressing the zoom in or zoom out button the specified number of times. Negative numbers zoom out. *default is 0* -###Hash Bookmark +###Hash Bookmark `hash_bookmark` set to true to allow bookmarking slides using the hash tag *default is false* -###Debug +###Debug `debug` Will log events etc to the console. *default is false* -###Map Style Types +###Map Style Types Due to recent changes to the Google Maps API, you need a [API Key](https://developers.google.com/places/documentation/#Authentication) in order to use custom map types. `gmap_key:` *required in order to use maptype* `maptype:` -* [Stamen Maps ](maps.stamen.com) +* [Stamen Maps ](http://maps.stamen.com) * `toner` * `toner-lines` * `toner-labels` * `watercolor` * `sterrain` - + * Google Maps * `ROADMAP` * `TERRAIN` * `HYBRID` * `SATELLITE` -###Font Options +* OpenStreetMap + - `osm` + +###Font Options `font:` -* `Arvo-PTSans` -* `Merriweather-NewsCycle` -* `PoiretOne-Molengo` -* `PTSerif-PTSans` -* `DroidSerif-DroidSans` -* `Lekton-Molengo` -* `NixieOne-Ledger` -* `AbrilFatface-Average` -* `PlayfairDisplay-Muli` -* `Rancho-Gudea` -* `Bevan-PotanoSans` -* `BreeSerif-OpenSans` -* `SansitaOne-Kameron` -* `Pacifico-Arimo` +* `AbrilFatface-Average` *Abril Fatface & Average* +* `Arvo-PTSans` *Arvo & PT Sans* +* `Bevan-PotanoSans` *Bevan & Potano Sans* +* `BreeSerif-OpenSans` *Bree Serif & Open Sans* +* `DroidSerif-DroidSans` *Droid Serif & Droid Sans* +* `Georgia-Helvetica` *Georgia & Helvetica Neue* +* `Lekton-Molengo` *Lekton & Molengo* +* `Merriweather-NewsCycle` *Merriweather & News Cycle* +* `NewsCycle-Merriweather` *News Cycle & Merriweather* +* `NixieOne-Ledger` *Nixie One & Ledger* +* `Pacifico-Arimo` *Pacifico & Arimo* +* `PlayfairDisplay-Muli` *Playfair Display & Muli* +* `PoiretOne-Molengo` *Poiret One & Molengo* +* `PTSerif-PTSans` *PT Serif & PT Sans* +* `PT` *PT Sans & PT Narrow & PT Serif* +* `Rancho-Gudea` *Rancho & Gudea* +* `SansitaOne-Kameron` *Sansita One & Kameron* * Or make your own ####Font Combination Preview: - + ## File Formats @@ -192,8 +312,8 @@ Due to recent changes to the Google Maps API, you need a [API Key](https://devel JSON is the native data format for TimelineJS. -Remember, JSON is it is picky. A misplaced comma or quotation mark can -prevent the timeline from loading properly. +Remember, JSON is picky. A misplaced comma or quotation mark can +prevent the timeline from loading properly. Here is the full model: ```javascript @@ -211,11 +331,12 @@ Here is the full model: }, "date": [ { - "startDate":"2011,12,10", - "endDate":"2011,12,11", + "startDate":"2011,12,10,07,02,10", + "endDate":"2011,12,11,08,11", "headline":"Headline Goes Here", "text":"Body text goes here, some HTML is OK
", "tag":"This is Optional", + "classname":"optionaluniqueclassnamecanbeaddedhere", "asset": { "media":"http://twitter.com/ArjunaSoriano/status/164181156147900416", "thumbnail":"optional-32x32px.jpg", @@ -232,7 +353,7 @@ Here is the full model: "text":"Body text goes here, some HTML is OK
", "tag":"This is Optional" } - + ] } } @@ -242,7 +363,7 @@ Here is the full model: Timeline can use a variation of JSONP to allow you to easily load data across different domains. -To allow this to happen, the file must end with the extention `.jsonp` +To allow this to happen, the file must end with the extension `.jsonp` Here is the full model: ```javascript @@ -264,6 +385,7 @@ storyjs_jsonp_data = { "headline":"Headline Goes Here", "text":"Body text goes here, some HTML is OK
", "tag":"This is Optional", + "classname":"optionaluniqueclassnamecanbeaddedhere", "asset": { "media":"http://twitter.com/ArjunaSoriano/status/164181156147900416", "thumbnail":"optional-32x32px.jpg", @@ -279,18 +401,9 @@ storyjs_jsonp_data = { "headline":"Headline Goes Here", "tag":"This is Optional" } - - ], - "chart": [ - { - "startDate":"2011,12,10", - "endDate":"2011,12,11", - "headline":"Headline Goes Here", - "value":"28" - } - + ] - + } } ``` @@ -301,7 +414,7 @@ If you don’t want to mess with JSON, fire up Google Docs and build your timeline in a spreadsheet. It’s as simple as dropping a date, text, and links into the appropriate columns in TimelineJS’s template. -You can find the template here: [TimelineJS Google Spreadsheet Template](https://docs.google.com/a/digitalartwork.net/previewtemplate?id=0AppSVxABhnltdEhzQjQ4MlpOaldjTmZLclQxQWFTOUE&mode=public) +You can find the template here: [TimelineJS Google Spreadsheet Template](https://drive.google.com/previewtemplate?id=0AppSVxABhnltdEhzQjQ4MlpOaldjTmZLclQxQWFTOUE&mode=public&pli=1#) There are only a couple things you need to know in order to create a timeline using Google Docs: @@ -309,7 +422,7 @@ using Google Docs: 1. Make the spreadsheet public: Google Docs are automatically set to private but the spreadsheet must be public. - + Click the blue “Share” button on the top right-hand corner. In the “Share settings” window, you’ll see the private setting of the spreadsheet: click “Change...”. In the Visibility options window, choose “Public on the Web” and @@ -317,7 +430,7 @@ using Google Docs: 2. Publish to the Web Under the File menu, select “Publish to the Web.” - + In the next window, check the box next to “Automatically republish when changes are made.” Uncheck all other boxes. Click “start publishing.” This will give you the URL to embed in your HTML file. @@ -328,10 +441,10 @@ using Google Docs: etc.), then paste it into the timeline’s HTML file (see [Add it to your site](#add-it-to-your-site) ) - + ### Storify: -Support for Storify is still in it's early stages. It works though. Just paste a link to the storify story as the source. +Support for Storify is still in its early stages. It works though. Just paste a link to the storify story as the source. ## Media @@ -351,10 +464,8 @@ Tips and tricks to best utilize TimelineJS 2. Pick stories that have a strong chronological narrative. It does not work well for stories that need to jump around in the timeline. 3. Include events that build up to major occurrences, not just the major events. 4. Don't overwhelm the user. A timeline with hundreds of events is probably not the best use of the format. - + ## License This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. - - diff --git a/bower.json b/bower.json new file mode 100644 index 000000000..d9c5e974b --- /dev/null +++ b/bower.json @@ -0,0 +1,38 @@ +{ + "name": "TimelineJS", + "version": "2.32.0", + "homepage": "http://timeline.knightlab.com", + "authors": [ + "Zach Wise";typeof t.entities.media!="undefined"&&t.entities.media[0].type=="photo";r+="";VMM.attachElement("#"+e.id.toString(),r);VMM.attachElement("#text_thumb_"+e.id.toString(),t.text);VMM.attachElement("#marker_content_"+e.id.toString(),t.text)}).error(function(t,n,r){trace("TWITTER error");trace("TWITTER ERROR: "+n+" "+t.responseText);VMM.attachElement("#"+e.id,VMM.MediaElement.loadingmessage("ERROR LOADING TWEET "+e.mid))}).success(function(e){clearTimeout(s);clearTimeout(o);t()})},errorTimeOut:function(e){trace("TWITTER JSON ERROR TIMEOUT "+e.mid);VMM.attachElement("#"+e.id.toString(),VMM.MediaElement.loadingmessage("Still waiting on Twitter: "+e.mid));VMM.getJSON("http://api.twitter.com/1/account/rate_limit_status.json",function(t){trace("REMAINING TWITTER API CALLS "+t.remaining_hits);trace("TWITTER RATE LIMIT WILL RESET AT "+t.reset_time);var n="";if(t.remaining_hits==0){n="",i=VMM.Util.linkify_with_twitter(t.text,"_blank");r+=i;r+="
You've reached the maximum number of tweets you can load in an hour.
";n+="You can view tweets again starting at:
"+t.reset_time+"
Still waiting on Twitter. "+e.mid+"
";VMM.attachElement("#"+e.id.toString(),VMM.MediaElement.loadingmessage(n))})},pushQue:function(){if(VMM.master_config.twitter.que.length>0){VMM.ExternalAPI.twitter.create(VMM.master_config.twitter.que[0],VMM.ExternalAPI.twitter.pushQue);VMM.master_config.twitter.que.remove(0)}},getHTML:function(e){var t="http://api.twitter.com/1/statuses/oembed.json?id="+e+"&callback=?";VMM.getJSON(t,VMM.ExternalAPI.twitter.onJSONLoaded)},onJSONLoaded:function(e){trace("TWITTER JSON LOADED");var t=e.id;VMM.attachElement("#"+t,VMM.Util.linkify_with_twitter(e.html))},parseTwitterDate:function(e){var t=new Date(Date.parse(e));return t},prettyParseTwitterDate:function(e){var t=new Date(Date.parse(e));return VMM.Date.prettyDate(t,!0)},getTweets:function(e){var t=[],n=e.length;for(var r=0;r",s=VMM.Util.linkify_with_twitter(e.text,"_blank");i+=s;i+="
";i+="— "+e.user.name+" (@"+e.user.screen_name+") "+VMM.ExternalAPI.twitter.prettyParseTwitterDate(e.created_at)+"
";n.content=r;n.raw=e.results[t];i.push(n)}var o={tweetdata:i};VMM.fireEvent(global,"TWEETSLOADED",o)})},prettyHTML:function(e,t){var e=e.toString(),n={twitterid:e},r="http://api.twitter.com/1/statuses/show.json?id="+e+"&include_entities=true&callback=?",i=setTimeout(VMM.ExternalAPI.twitter.errorTimeOut,VMM.master_config.timers.api,e);VMM.getJSON(r,VMM.ExternalAPI.twitter.formatJSON).error(function(t,n,r){trace("TWITTER error");trace("TWITTER ERROR: "+n+" "+t.responseText);VMM.attachElement("#twitter_"+e,"",s=VMM.Util.linkify_with_twitter(e.results[t].text,"_blank");r+=s;r+="
";r+="— "+e.results[t].from_user_name+" (@"+e.results[t].from_user+") "+VMM.ExternalAPI.twitter.prettyParseTwitterDate(e.results[t].created_at)+"
ERROR LOADING TWEET "+e+"
")}).success(function(e){clearTimeout(i);t&&VMM.ExternalAPI.twitter.secondaryMedia(e)})},formatJSON:function(e){var t=e.id_str,n="";n+="";typeof e.entities.media!="undefined"&&e.entities.media[0].type=="photo"&&(n+="",r=VMM.Util.linkify_with_twitter(e.text,"_blank");n+=r;n+="
"+t.object.attachments[r].content+"
";o+="";o+="ERROR LOADING GOOGLE+
"+i.error.message+"
"))}).success(function(e){clearTimeout(googleplus_timeout);clearTimeout(callback_timeout);t()})},pushQue:function(){if(VMM.master_config.googleplus.que.length>0){VMM.ExternalAPI.googleplus.create(VMM.master_config.googleplus.que[0],VMM.ExternalAPI.googleplus.pushQue);VMM.master_config.googleplus.que.remove(0)}},errorTimeOut:function(e){trace("GOOGLE+ JSON ERROR TIMEOUT "+e.activity);VMM.attachElement("#googleplus_"+e.activity,VMM.MediaElement.loadingmessage("Still waiting on GOOGLE+
"+e.activity+"
"))}},googledocs:{get:function(e){VMM.master_config.googledocs.que.push(e);VMM.master_config.googledocs.active=!0},create:function(e){var t="";e.id.match(/docs.google.com/i)?t="":t="";VMM.attachElement("#"+e.uid,t)},pushQue:function(){for(var e=0;eWikipedia entry unable to load using Internet Explorer 8 or below.
";VMM.attachElement("#"+e.uid,r)}VMM.getJSON(n,function(t){if(t.query){var n,r,i="",s="",o=1,u=[];n=VMM.Util.getObjectAttributeByIndex(t.query.pages,0).extract;r=VMM.Util.getObjectAttributeByIndex(t.query.pages,0).title;n.match("")?u=n.split("
"):u.push(n);for(var a=0;a Wikipedia is not responding "+o.data.text.replace(/<\s*\/?\s*b\s*.*?>/g,"")+" Wm. Sugden and Sons Ltd started tailors shop in Cleckheaton Starts making shirts in the shop Shirt business has out grown the shop so moves into a larger factory at Water Lane Mills Another factory in Barnsley opens Opens a factory in Wakefield to make workwear and army uniforms Moves to a larger factory in Wakefield as product range expands Acquire two weaving mills in Lancashire and make over five million shirts Sets up factory in South Yorkshire to manufacture jeans A bigger factory is needed to accommodate production Merger with Donner family and Double Two brand Reputation for quality grows and Topflight brand of workwear is widely sold Managed Services concept introduced under Threadneedle brand John Sugden retires, a new generation of the family takes over Although the business has been reshaped throughout the years, the business still remains a heritage brand and is still an important part of Wakefieldu2019s history TimelineJS is an open-source tool that enables you to build visually-rich interactive timelines and is available in 40 languages. You're looking at an example of one right now. Click on the arrow to the right to learn more. Just add a link to the video in the media field. Example: https://vimeo.com/33211636 TimelineJS can pull in media from different sources. It has built in support for:
+ Twitter, Flickr, Google Maps, YouTube, Vimeo, Dailymotion, Wikipedia, SoundCloud and more media types in the future. Creating one is as easy as filling in a Google spreadsheet or as detailed as JSON. TimelineJS is an open-source tool that enables anyone to build visually,rich, interactive timelines. Beginners can create a timeline using nothing more than a Google spreadsheet. Experts can use their JSON skills to create custom installations, while keeping TimelineJS's core look and functionality. It can pull in media from a variety of sources and has built-in support for Twitter, Flickr, Google Maps, YouTube, Vimeo, Vine, Dailymotion, Wikipedia, SoundCloud and more. Get updates, tips and news by email. No Spam.
+
+ This project is hosted on GitHub, the largest code host in the world. We encourage you to contribute to the project and we value your feedback. You can report bugs and discuss features on the GitHub issues page, or ask a question
+ This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+ Map tiles by Stamen Design, under CC BY 3.0.
+ Data by OpenStreetMap, under CC BY SA.
+ Have you made a timeline? Let us know, and we might feature it here. Have a question? Look for it in the FAQ below. No luck there? Try our community support forum. You may also find some answers in the old Google group archive, although it is no longer an active discussion forum. All modern browsers are supported as well as Internet Explorer 8 and above. If you run into problems with IE8, IE9 or IE10 and get a error message saying IE7 is not supported, it may be because you are running the browser in IE7 compatibility mode. Here are directions on how to change the compatibility mode. The TimelineJS iFrame embed method is compatible with WordPress. Some WordPress installs require users who want to paste code in to the HTML view to have an editor or administrator status — if you’re having trouble, make sure that you have sufficient permissions. If you don't have the right permissions, try this plugin for Wordpress. If you’re using the TimelineJS Google spreadsheet template, first make sure the cell you want to modify is set to Plain Text — "Format > Number > Plain Text.” Then simply enter the year (e.g. 1994) or month and year (e.g. 7/1979). Earlier versions of TimelineJS required you to enter a date as January 1 of a given year to do this, but now you should just enter the full year, as explained above. TimelineJS works on any site or blog. Make your own in four easy steps. (video tutorial) Build a new Google Spreadsheet using our template. Drop dates, text and links to media into the appropriate columns. Note: Don't change the column headers, don't remove any columns, and don't leave any blank rows in your spreadsheet. Under the File menu, select “Publish to the Web.” In the next window, click the blue "publish" button. When asked, "Are you sure…?" click OK. Now, copy the URL that appears in the center of the window. You'll use this in the next step. "+r+"
";i+=""+VMM.master_config.language.messages.wikipedia+"";i+=VMM.Util.linkify_wikipedia(s);n.match("REDIRECT")||VMM.attachElement("#"+e.uid,i)}}).error(function(n,r,i){trace("WIKIPEDIA error");trace("WIKIPEDIA ERROR: "+r+" "+n.responseText);trace(i);VMM.attachElement("#"+e.uid,VMM.MediaElement.loadingmessage("")}},pushQue:function(){for(var e=0;e
")},pushQue:function(){if(VMM.master_config.vimeo.que.length>0){VMM.ExternalAPI.vimeo.create(VMM.master_config.vimeo.que[0],VMM.ExternalAPI.vimeo.pushQue);VMM.master_config.vimeo.que.remove(0)}}},webthumb:{get:function(e,t){VMM.master_config.webthumb.que.push(e);VMM.master_config.webthumb.active=!0},sizes:function(e){var t="";e<=150?t="t":e<=306?t="m":t="l";return t},create:function(e){trace("WEB THUMB CREATE");var t="http://pagepeeker.com/t/";url=e.id.replace("http://","");VMM.attachElement("#"+e.uid,"
");VMM.attachElement("#"+e.uid+"_thumb","
")},pushQue:function(){for(var e=0;e
"+v+"
");else{VMM.appendElement(f,""+v+"
");VMM.appendElement(f,""+v+"
")}VMM.Lib.attr(u,"id",("marker_"+T[r].uniqueid).toString());VMM.bindEvent(a,Q,"",{number:r});VMM.bindEvent(a,G,"mouseenter mouseleave",{number:r,elem:a});d={marker:u,flag:a,lineevent:p,type:"marker",full:!0,relative_pos:_marker_relative_pos,tag:T[r].tag,pos_left:0};if(T[r].type=="start"){trace("BUILD MARKER HAS START PAGE");b.start_page=!0;d.type="start"}T[r].type=="storify"&&(d.type="storify");T[r].tag&&A.push(T[r].tag);C.push(d)}A=VMM.Util.deDupeArray(A);A.length>3?b.nav.rows.current=b.nav.rows.half:b.nav.rows.current=b.nav.rows.full;for(i=0;i"+A[i]+"
";n+="";n+=""+o.data.quote.text.replace(/<\s*\/?\s*b\s*.*?>/g,"")+"
"}}else if(o.type=="link"){f.headline=o.data.link.title;f.text=o.data.link.description;o.data.link.thumbnail!="undefined"&&o.data.link.thumbnail!=""?f.asset.media=o.data.link.thumbnail:f.asset.media=o.permalink;f.asset.caption=""+o.data.link.title+"";f.slug=o.data.link.title}else if(o.type=="text"){if(o.permalink.match("storify")){u=!0;var l=e.content.author.username,c="";if(typeof o.attribution.name!="undefined"){r=o.attribution.name;i=o.attribution.username+" "}var h="
";h+="";
-
- // CREDIT
- if (credit != null && credit != "") {
- ce += VMM.createElement("div", credit, "credit");
- }
-
- // CAPTION
- if (caption != null && caption != "") {
- ce += VMM.createElement("div", caption, "caption");
- }
-
- }
-
- ce += "
mmm d',' yyyy''"
- },
-
- month: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
- month_abbr: ["Jan.", "Feb.", "March", "April", "May", "June", "July", "Aug.", "Sept.", "Oct.", "Nov.", "Dec."],
- day: ["Sunday","Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
- day_abbr: ["Sun.", "Mon.", "Tues.", "Wed.", "Thurs.", "Fri.", "Sat."],
- hour: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
- hour_suffix: ["am"],
-
- //B.C.
- bc_format: {
- year: "yyyy",
- month_short: "mmm",
- month: "mmmm yyyy",
- full_short: "mmm d",
- full: "mmmm d',' yyyy",
- time_no_seconds_short: "h:MM TT",
- time_no_seconds_small_date: "dddd', 'h:MM TT'
'mmmm d',' yyyy''",
- full_long: "dddd',' mmm d',' yyyy 'at' hh:MM TT",
- full_long_small_date: "hh:MM TT'
'dddd',' mmm d',' yyyy''"
- },
-
- setLanguage: function(lang) {
- trace("SET DATE LANGUAGE");
- VMM.Date.dateformats = lang.dateformats;
- VMM.Date.month = lang.date.month;
- VMM.Date.month_abbr = lang.date.month_abbr;
- VMM.Date.day = lang.date.day;
- VMM.Date.day_abbr = lang.date.day_abbr;
- dateFormat.i18n.dayNames = lang.date.day_abbr.concat(lang.date.day);
- dateFormat.i18n.monthNames = lang.date.month_abbr.concat(lang.date.month);
- },
-
- parse: function(d) {
- "use strict";
- var date,
- date_array,
- time_array,
- time_parse;
-
- if (type.of(d) == "date") {
- date = d;
- } else {
- date = new Date(0, 0, 1, 0, 0, 0, 0);
-
- if ( d.match(/,/gi) ) {
- date_array = d.split(",");
- for(var i = 0; i < date_array.length; i++) {
- date_array[i] = parseInt(date_array[i], 10);
- }
- if ( date_array[0] ) { date.setFullYear( date_array[0]); }
- if ( date_array[1] > 1 ) { date.setMonth( date_array[1] - 1); }
- if ( date_array[2] > 1 ) { date.setDate( date_array[2]); }
- if ( date_array[3] > 1 ) { date.setHours( date_array[3]); }
- if ( date_array[4] > 1 ) { date.setMinutes( date_array[4]); }
- if ( date_array[5] > 1 ) { date.setSeconds( date_array[5]); }
- if ( date_array[6] > 1 ) { date.setMilliseconds( date_array[6]); }
- } else if (d.match("/")) {
- if (d.match(" ")) {
- time_parse = d.split(" ");
- if (d.match(":")) {
- time_array = time_parse[1].split(":");
- if ( time_array[0] >= 1 ) { date.setHours( time_array[0]); }
- if ( time_array[1] >= 1 ) { date.setMinutes( time_array[1]); }
- if ( time_array[2] >= 1 ) { date.setSeconds( time_array[2]); }
- if ( time_array[3] >= 1 ) { date.setMilliseconds( time_array[3]); }
- }
- date_array = time_parse[0].split("/");
- } else {
- date_array = d.split("/");
- }
- if ( date_array[2] ) { date.setFullYear( date_array[2]); }
- if ( date_array[0] > 1 ) { date.setMonth( date_array[0] - 1); }
- if ( date_array[1] > 1 ) { date.setDate( date_array[1]); }
- } else if (d.match("now")) {
- var now = new Date();
- date.setFullYear(now.getFullYear());
- date.setMonth(now.getMonth());
- date.setDate(now.getDate());
- if (d.match("hours")) {
- date.setHours(now.getHours());
- }
- if (d.match("minutes")) {
- date.setHours(now.getHours());
- date.setMinutes(now.getMinutes());
- }
- if (d.match("seconds")) {
- date.setHours(now.getHours());
- date.setMinutes(now.getMinutes());
- date.setSeconds(now.getSeconds());
- }
- if (d.match("milliseconds")) {
- date.setHours(now.getHours());
- date.setMinutes(now.getMinutes());
- date.setSeconds(now.getSeconds());
- date.setMilliseconds(now.getMilliseconds());
- }
- } else if (d.length <= 5) {
- date.setFullYear(parseInt(d, 10));
- date.setMonth(0);
- date.setDate(1);
- date.setHours(0);
- date.setMinutes(0);
- date.setSeconds(0);
- date.setMilliseconds(0);
- } else if (d.match("T")) {
- if (navigator.userAgent.match(/MSIE\s(?!9.0)/)) {
- // IE 8 < Won't accept dates with a "-" in them.
- time_parse = d.split("T");
- if (d.match(":")) {
- time_array = _time_parse[1].split(":");
- if ( time_array[0] >= 1 ) { date.setHours( time_array[0]); }
- if ( time_array[1] >= 1 ) { date.setMinutes( time_array[1]); }
- if ( time_array[2] >= 1 ) { date.setSeconds( time_array[2]); }
- if ( time_array[3] >= 1 ) { date.setMilliseconds( time_array[3]); }
- }
- _d_array = time_parse[0].split("-");
- if ( date_array[0] ) { date.setFullYear( date_array[0]); }
- if ( date_array[1] > 1 ) { date.setMonth( date_array[1] - 1); }
- if ( date_array[2] > 1 ) { date.setDate( date_array[2]); }
-
- } else {
- date = new Date(Date.parse(d));
- }
- } else {
- date = new Date(
- parseInt(d.slice(0,4), 10),
- parseInt(d.slice(4,6), 10) - 1,
- parseInt(d.slice(6,8), 10),
- parseInt(d.slice(8,10), 10),
- parseInt(d.slice(10,12), 10)
- );
- }
-
- }
- return date;
- },
-
- prettyDate: function(d, is_abbr, d2) {
- var _date,
- _date2,
- format,
- bc_check,
- is_pair = false,
- bc_original,
- bc_number,
- bc_string;
-
- if (d2 != null) {
- is_pair = true;
- }
-
-
- if (type.of(d) == "date") {
- if (d.getMonth() === 0 && d.getDate() == 1 && d.getHours() === 0 && d.getMinutes() === 0 ) {
- // YEAR ONLY
- format = VMM.Date.dateformats.year;
- } else if (d.getDate() <= 1 && d.getHours() === 0 && d.getMinutes() === 0) {
- // YEAR MONTH
- if (is_abbr) {
- format = VMM.Date.dateformats.month_short;
- } else {
- format = VMM.Date.dateformats.month;
- }
- } else if (d.getHours() === 0 && d.getMinutes() === 0) {
- // YEAR MONTH DAY
- if (is_abbr) {
- format = VMM.Date.dateformats.full_short;
- } else {
- format = VMM.Date.dateformats.full;
- }
- } else if (d.getMinutes() === 0) {
- // YEAR MONTH DAY HOUR
- if (is_abbr) {
- format = VMM.Date.dateformats.time_no_seconds_short;
- } else {
- format = VMM.Date.dateformats.time_no_seconds_small_date;
- }
- } else {
- // YEAR MONTH DAY HOUR MINUTE
- if (is_abbr){
- format = VMM.Date.dateformats.time_no_seconds_short;
- } else {
- format = VMM.Date.dateformats.full_long;
- }
- }
-
- _date = dateFormat(d, format, false);
- bc_check = _date.split(" ");
-
- // BC TIME SUPPORT
- for(var i = 0; i < bc_check.length; i++) {
- if ( parseInt(bc_check[i], 10) < 0 ) {
- trace("YEAR IS BC");
- bc_original = bc_check[i];
- bc_number = Math.abs( parseInt(bc_check[i], 10) );
- bc_string = bc_number.toString() + " B.C.";
- _date = _date.replace(bc_original, bc_string);
- }
- }
-
-
- if (is_pair) {
- _date2 = dateFormat(d2, format);
- bc_check = _date2.split(" ");
- // BC TIME SUPPORT
- for(var j = 0; j < bc_check.length; j++) {
- if ( parseInt(bc_check[j], 10) < 0 ) {
- trace("YEAR IS BC");
- bc_original = bc_check[j];
- bc_number = Math.abs( parseInt(bc_check[j], 10) );
- bc_string = bc_number.toString() + " B.C.";
- _date2 = _date2.replace(bc_original, bc_string);
- }
- }
-
- }
- } else {
- trace("NOT A VALID DATE?");
- trace(d);
- }
-
- if (is_pair) {
- return _date + " — " + _date2;
- } else {
- return _date;
- }
- }
-
- }).init();
-
- /*
- * Date Format 1.2.3
- * (c) 2007-2009 Steven Levithan
");
- },
-
- /* * Generate a Unique ID
- ================================================== */
- // VMM.Util.unique_ID(size);
- unique_ID: function(size) {
-
- var getRandomNumber = function(range) {
- return Math.floor(Math.random() * range);
- };
-
- var getRandomChar = function() {
- var chars = "abcdefghijklmnopqurstuvwxyzABCDEFGHIJKLMNOPQURSTUVWXYZ";
- return chars.substr( getRandomNumber(62), 1 );
- };
-
- var randomID = function(size) {
- var str = "";
- for(var i = 0; i < size; i++) {
- str += getRandomChar();
- }
- return str;
- };
-
- return randomID(size);
- },
- /* * Tells you if a number is even or not
- ================================================== */
- // VMM.Util.isEven(n)
- isEven: function(n){
- return (n%2 === 0) ? true : false;
- },
- /* * Get URL Variables
- ================================================== */
- // var somestring = VMM.Util.getUrlVars(str_url)["varname"];
- getUrlVars: function(string) {
-
- var str = string.toString();
-
- if (str.match('&')) {
- str = str.replace("&", "&");
- } else if (str.match('&')) {
- str = str.replace("&", "&");
- } else if (str.match('&')) {
- str = str.replace("&", "&");
- }
-
- var vars = [], hash;
- var hashes = str.slice(str.indexOf('?') + 1).split('&');
- for(var i = 0; i < hashes.length; i++) {
- hash = hashes[i].split('=');
- vars.push(hash[0]);
- vars[hash[0]] = hash[1];
- }
-
-
- return vars;
- },
-
- /* * Cleans up strings to become real HTML
- ================================================== */
- toHTML: function(text) {
-
- text = this.nl2br(text);
- text = this.linkify(text);
-
- return text.replace(/\s\s/g," ");
- },
-
- /* * Returns text strings as CamelCase
- ================================================== */
- toCamelCase: function(s,forceLowerCase) {
-
- if(forceLowerCase !== false) forceLowerCase = true;
-
- var sps = ((forceLowerCase) ? s.toLowerCase() : s).split(" ");
-
- for(var i=0; ienv variable with user agent and feature test
- information.
-
- @method getEnv
- @private
- */
- function getEnv() {
- var ua = navigator.userAgent;
-
- env = {
- // True if this browser supports disabling async mode on dynamically
- // created script nodes. See
- // http://wiki.whatwg.org/wiki/Dynamic_Script_Execution_Order
- async: doc.createElement('script').async === true
- };
-
- (env.webkit = /AppleWebKit\//.test(ua))
- || (env.ie = /MSIE/.test(ua))
- || (env.opera = /Opera/.test(ua))
- || (env.gecko = /Gecko\//.test(ua))
- || (env.unknown = true);
- }
-
- /**
- Loads the specified resources, or the next resource of the specified type
- in the queue if no resources are specified. If a resource of the specified
- type is already being loaded, the new request will be queued until the
- first request has been finished.
-
- When an array of resource URLs is specified, those URLs will be loaded in
- parallel if it is possible to do so while preserving execution order. All
- browsers support parallel loading of CSS, but only Firefox and Opera
- support parallel loading of scripts. In other browsers, scripts will be
- queued and loaded one at a time to ensure correct execution order.
-
- @method load
- @param {String} type resource type ('css' or 'js')
- @param {String|Array} urls (optional) URL or array of URLs to load
- @param {Function} callback (optional) callback function to execute when the
- resource is loaded
- @param {Object} obj (optional) object to pass to the callback function
- @param {Object} context (optional) if provided, the callback function will
- be executed in this object's context
- @private
- */
- function load(type, urls, callback, obj, context) {
- var _finish = function () { finish(type); },
- isCSS = type === 'css',
- nodes = [],
- i, len, node, p, pendingUrls, url;
-
- env || getEnv();
-
- if (urls) {
- // If urls is a string, wrap it in an array. Otherwise assume it's an
- // array and create a copy of it so modifications won't be made to the
- // original.
- urls = typeof urls === 'string' ? [urls] : urls.concat();
-
- // Create a request object for each URL. If multiple URLs are specified,
- // the callback will only be executed after all URLs have been loaded.
- //
- // Sadly, Firefox and Opera are the only browsers capable of loading
- // scripts in parallel while preserving execution order. In all other
- // browsers, scripts must be loaded sequentially.
- //
- // All browsers respect CSS specificity based on the order of the link
- // elements in the DOM, regardless of the order in which the stylesheets
- // are actually downloaded.
- if (isCSS || env.async || env.gecko || env.opera) {
- // Load in parallel.
- queue[type].push({
- urls : urls,
- callback: callback,
- obj : obj,
- context : context
- });
- } else {
- // Load sequentially.
- for (i = 0, len = urls.length; i < len; ++i) {
- queue[type].push({
- urls : [urls[i]],
- callback: i === len - 1 ? callback : null, // callback is only added to the last URL
- obj : obj,
- context : context
- });
- }
- }
- }
-
- // If a previous load request of this type is currently in progress, we'll
- // wait our turn. Otherwise, grab the next item in the queue.
- if (pending[type] || !(p = pending[type] = queue[type].shift())) {
- return;
- }
-
- head || (head = doc.head || doc.getElementsByTagName('head')[0]);
- pendingUrls = p.urls;
-
- for (i = 0, len = pendingUrls.length; i < len; ++i) {
- url = pendingUrls[i];
-
- if (isCSS) {
- node = env.gecko ? createNode('style') : createNode('link', {
- href: url,
- rel : 'stylesheet'
- });
- } else {
- node = createNode('script', {src: url});
- node.async = false;
- }
-
- node.className = 'lazyload';
- node.setAttribute('charset', 'utf-8');
-
- if (env.ie && !isCSS) {
- node.onreadystatechange = function () {
- if (/loaded|complete/.test(node.readyState)) {
- node.onreadystatechange = null;
- _finish();
- }
- };
- } else if (isCSS && (env.gecko || env.webkit)) {
- // Gecko and WebKit don't support the onload event on link nodes.
- if (env.webkit) {
- // In WebKit, we can poll for changes to document.styleSheets to
- // figure out when stylesheets have loaded.
- p.urls[i] = node.href; // resolve relative URLs (or polling won't work)
- pollWebKit();
- } else {
- // In Gecko, we can import the requested URL into a
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/gfx/timeline-dark.psd b/source/gfx/timeline-dark.psd
index 3b724c957..fff984053 100644
Binary files a/source/gfx/timeline-dark.psd and b/source/gfx/timeline-dark.psd differ
diff --git a/source/gfx/timeline-dark@2x.psd b/source/gfx/timeline-dark@2x.psd
new file mode 100644
index 000000000..a11e8a8c3
Binary files /dev/null and b/source/gfx/timeline-dark@2x.psd differ
diff --git a/source/gfx/timeline.psd b/source/gfx/timeline.psd
index 96425586f..5770607bb 100644
Binary files a/source/gfx/timeline.psd and b/source/gfx/timeline.psd differ
diff --git a/source/gfx/timeline@2x.psd b/source/gfx/timeline@2x.psd
new file mode 100644
index 000000000..8e4336320
Binary files /dev/null and b/source/gfx/timeline@2x.psd differ
diff --git a/source/jade/example_googlespreadsheet.jade b/source/jade/example_googlespreadsheet.jade
deleted file mode 100755
index 5c2ed6604..000000000
--- a/source/jade/example_googlespreadsheet.jade
+++ /dev/null
@@ -1,4 +0,0 @@
-include includes/mixins
-include sections/example-head
-body
- mixin timeline-embed('https://docs.google.com/spreadsheet/pub?key=0Agl_Dv6iEbDadHdKcHlHcTB5bzhvbF9iTWwyMmJHdkE&output=html')
\ No newline at end of file
diff --git a/source/jade/example_json.jade b/source/jade/example_json.jade
deleted file mode 100755
index 37dd9c4ab..000000000
--- a/source/jade/example_json.jade
+++ /dev/null
@@ -1,4 +0,0 @@
-include includes/mixins
-include sections/example-head
-body
- mixin timeline-embed('example_json.json')
\ No newline at end of file
diff --git a/source/jade/example_jsonp.jade b/source/jade/example_jsonp.jade
deleted file mode 100755
index 8714d7042..000000000
--- a/source/jade/example_jsonp.jade
+++ /dev/null
@@ -1,4 +0,0 @@
-include includes/mixins
-include sections/example-head
-body
- mixin timeline-embed('example_jsonp.jsonp')
\ No newline at end of file
diff --git a/source/jade/example_storify.jade b/source/jade/example_storify.jade
deleted file mode 100755
index b40be20da..000000000
--- a/source/jade/example_storify.jade
+++ /dev/null
@@ -1,4 +0,0 @@
-include includes/mixins
-include sections/example-head
-body
- mixin timeline-embed('http://storify.com/zachwise/test')
\ No newline at end of file
diff --git a/source/jade/generator.jade b/source/jade/generator.jade
deleted file mode 100755
index 84e7295cf..000000000
--- a/source/jade/generator.jade
+++ /dev/null
@@ -1,42 +0,0 @@
-!!! 5
-html(lang="en")
-
- include includes/ascii
-
- head
- title TimelineJS Embed Generator
- meta(charset='utf-8')
- meta(name='description', content='Timeline JS Embed Generator')
-
- // CSS
- link(href='css/timeline-generator.css', rel='stylesheet')
-
- // JavaScript
- script(type='text/javascript', src='js/storyjs-embed-generator.js')
- script(type='text/javascript', src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js')
- script
- $(document).ready(function() {
- updateEmbedCode();
- $("#embed_code").click(function() { $(this).select(); });
- $('#embed-width').change(function(evt) { updateEmbedCode(evt); });
- $('#embed-wordpressplugin').change(function(evt) { updateEmbedCode(evt); });
- $('#embed-font').change(function(evt) { updateEmbedCode(evt); });
- $('#embed-height').change(function(evt) { updateEmbedCode(evt); });
- $('#embed-maptype').change(function(evt) { updateEmbedCode(evt); });
- $('#embed-googlemapkey').change(function(evt) { updateEmbedCode(evt); });
- $('#embed-source-url').change(function(evt) { updateEmbedCode(evt); });
- $('#embed-language').change(function(evt) { updateEmbedCode(evt); });
- $('#embed-startatend').change(function(evt) { updateEmbedCode(evt); });
- $('#embed-hashbookmark').change(function(evt) { updateEmbedCode(evt); });
- $('#embed-startatslide').change(function(evt) { updateEmbedCode(evt); });
- $('#embed-startzoomadjust').change(function(evt) { updateEmbedCode(evt); });
- $('#embed-debug').change(function(evt) { updateEmbedCode(evt); });
- });
-
- body
- include sections/embed-generator
-
- // Footer
- footer
- div.container
- p © VéritéCo 2012
diff --git a/source/jade/includes/ascii.jade b/source/jade/includes/ascii.jade
deleted file mode 100755
index 1a08e8821..000000000
--- a/source/jade/includes/ascii.jade
+++ /dev/null
@@ -1,15 +0,0 @@
-
-//
- |
- | 88888888888 d8b 888 d8b 888888 d8888b
- | 888 Y8P 888 Y8P 88b d88P Y88b
- | 888 888 888 Y88b
- | 888 888 88888b d88b d88b 888 888 88888b d88b 888 Y888b
- | 888 888 888 888 88b d8P Y8b 888 888 888 88b d8P Y8b 888 Y88b
- | 888 888 888 888 888 88888888 888 888 888 888 88888888 888 888
- | 888 888 888 888 888 Y8b 888 888 888 888 Y8b 88P Y88b d88P
- | 888 888 888 888 888 Y8888 888 888 888 888 Y8888 888 Y8888P
- | d88P
- | d88P
- | 888P
- |
diff --git a/source/jade/includes/mixins.jade b/source/jade/includes/mixins.jade
deleted file mode 100755
index 66fb7229a..000000000
--- a/source/jade/includes/mixins.jade
+++ /dev/null
@@ -1,32 +0,0 @@
-mixin brand(name, ext)
- span.verite-brand #{name}
- span.verite-brand-ext #{ext}
-
-mixin example(title, link, thumb, description)
- // Example
- div.span3
- p
- a(href='#{link}', target='_blank')
- img(src='#{thumb}').with-shadow
- h3
- a(href='#{link}', target='_blank') #{title}
- p #{description}
-
-mixin faq-accordian(parent, id, question, answer)
- div.accordion-group
- div.accordion-heading
- a.accordion-toggle(data-toggle='collapse', data-parent='#{parent}', href='##{id}')!= question
- div(id='#{id}', style='height: 0px;').accordion-body.collapse
- div.accordion-inner!= answer
-
-mixin timeline-embed(thesource)
- // BEGIN Timeline Embed
- div#timeline-embed
- script(type='text/javascript')
- var timeline_config = {
- width: "100%",
- height: "100%",
- source: '#{thesource}'
- }
- script(type='text/javascript', src='../compiled/js/storyjs-embed.js')
- // END Timeline Embed
\ No newline at end of file
diff --git a/source/jade/index.jade b/source/jade/index.jade
deleted file mode 100755
index 37163d970..000000000
--- a/source/jade/index.jade
+++ /dev/null
@@ -1,27 +0,0 @@
-include includes/mixins
-!!! 5
-html(lang="en")
- include includes/ascii
- head
- title TimelineJS Embed
- meta(charset='utf-8')
- meta(name='description', content='TimelineJS Embed')
- meta(name='apple-mobile-web-app-capable', content='yes')
- meta(name='apple-touch-fullscreen', content='yes')
- meta(name='viewport', content='width=device-width, initial-scale=1.0, maximum-scale=1.0')
- // Style
- style
- html, body {
- height:100%;
- padding: 0px;
- margin: 0px;
- }
- // HTML5 shim, for IE6-8 support of HTML elements
- //if lt IE 9
- script(src='http://html5shim.googlecode.com/svn/trunk/html5.js')
-
-body
- // BEGIN Timeline Embed
- div#timeline-embed
- script(type='text/javascript', src='js/storyjs-embed-cdn.js?v214')
- // END Timeline Embed
\ No newline at end of file
diff --git a/source/jade/sections/embed-generator.jade b/source/jade/sections/embed-generator.jade
deleted file mode 100755
index 3b41ab7e9..000000000
--- a/source/jade/sections/embed-generator.jade
+++ /dev/null
@@ -1,167 +0,0 @@
-// Embed Generator
-include ../includes/mixins
-section#embed.embed-form
- div.container
- h2
- mixin brand('Timeline', 'JS')
- | Embed Generator
- p.lead On your site or blog in no time.
- div.row
- div.span7
- form.form-horizontal
- fieldset
- // Required elements for embed
- // Embed Source
- div.control-group
- label.control-label
- a(href='https://docs.google.com/a/digitalartwork.net/previewtemplate?id=0AppSVxABhnltdEhzQjQ4MlpOaldjTmZLclQxQWFTOUE&mode=public',target='_blank') Google Spreadsheet
- | or other data source URL
- div.controls
- input(type='text')#embed-source-url.span4
- p.help-inline Make sure you've published it.
- // Size
- div.control-group
- label.control-label Size
- div.controls
- div.input-prepend
- span.add-on Width
- input(type='text', value='900', placeholder='900')#embed-width.input-mini
- div.input-prepend
- span.add-on Height
- input(type='text', value='650', placeholder='650')#embed-height.input-mini
- // Optional elements for embed
- div.well
- h4 Optional
- // Language
- div.control-group
- label.control-label Language
- div.controls
- select#embed-language
- option(value='en') English
- option(value='fr') French
- option(value='es') Spanish
- option(value='de') German / Deutsch
- option(value='pt') Portuguese
- option(value='pt-br') Brazilian Portuguese
- option(value='nl') Dutch
- option(value='it') Italian
- option(value='is') Icelandic
- option(value='no') Norwegian
- option(value='bg') Bulgarian
- option(value='si') Slovenian
- option(value='hu') Hungarian
- option(value='fo') Faroese
- option(value='cz') Czech
- option(value='dk') Danish
- option(value='id') Indonesian
- option(value='pl') Polish
- option(value='ru') Russian
- option(value='ja') Japanese
- option(value='kr') Korean
- option(value='zh-ch') Chinese
- option(value='zh-tw') Taiwanese
- option(value='el') Greek
- option(value='ta') Tamil
- option(value='ar') Arabic
- // Map Type
- div.control-group
- label.control-label Map Type
- div.controls
- select#embed-maptype
- option(value='toner') Stamen Maps: Toner
- option(value='toner-lines') Stamen Maps: Toner Lines
- option(value='toner-labels') Stamen Maps: Toner Labels
- option(value='watercolor') Stamen Maps: Watercolor
- option(value='sterrain') Stamen Maps: Terrain
- option(value='ROADMAP') Google Maps: Roadmap
- option(value='TERRAIN') Google Maps: Terrain
- option(value='HYBRID') Google Maps: Hybrid
- option(value='SATELLITE') Google Maps: Satellite
- input(type='text',placeholder='Google Maps API Key')#embed-googlemapkey
- p.help-block
- | Due to recent changes to the Google Maps API, you need a
- a(href='https://developers.google.com/places/documentation/#Authentication', target='_blank') API Key
- | in order to use custom map types.
- // Fonts
- div.control-group
- label.control-label Fonts
- div.controls
- select#embed-font
- option(value='Bevan-PotanoSans') Bevan & Potano Sans
- option(value='Merriweather-NewsCycle') Merriweather & News Cycle
- option(value='NewsCycle-Merriweather') News Cycle & Merriweather
- option(value='PoiretOne-Molengo') Poiret One & Molengo
- option(value='Arvo-PTSans') Arvo & PT Sans
- option(value='PTSerif-PTSans') PT Serif & PT Sans
- option(value='DroidSerif-DroidSans') Droid Serif & Droid Sans
- option(value='Lekton-Molengo') Lekton & Molengo
- option(value='NixieOne-Ledger') Nixie One & Ledger
- option(value='AbrilFatface-Average') Abril Fatface & Average
- option(value='PlayfairDisplay-Muli') Playfair Display & Muli
- option(value='Rancho-Gudea') Rancho & Gudea
- option(value='BreeSerif-OpenSans') Bree Serif & Open Sans
- option(value='SansitaOne-Kameron') Sansita One & Kameron
- option(value='Pacifico-Arimo') Pacifico & Arimo
- option(value='PT') PT Sans & PT Narrow & PT Serif
-
- // Wordpress Plugin
- div.control-group
- label.control-label Misc
- div.controls
- label.checkbox
- input#embed-wordpressplugin(type='checkbox', value='option1')
- | Wordpress Plugin
- span.help-inline Is the embed for the Wordpress Plugin?
- // Start at End?
- label.checkbox
- input#embed-startatend(type='checkbox', value='option1')
- | Start at the End?
- span.help-inline The most recent event will be shown first.
- // Hash Bookmarks
- label.checkbox
- input#embed-hashbookmark(type='checkbox', value='option1')
- | Hash Bookmarks
- span.help-inline On each slide change, a # will be added to the end of the url in the url bar. These urls are bookmarkable so you can share or return to the same place in the timeline
- // Debug
- label.checkbox
- input#embed-debug(type='checkbox', value='option1')
- | Debug
- span.help-inline In debug mode, you will see console logs.
-
- // Start Zoom Adjust
- div.control-group
- label.control-label Adjust the default calculated zoom level
- div.controls
- input#embed-startzoomadjust.input-mini(type='text', value='0', placeholder='0')
- p.help-block This will tweak the default zoom level. Equivilent to pressing the zoom in or zoom out button the specified number of times. Negative numbers zoom out.
- // Start at Slide
- div.control-group
- label.control-label Start at specific slide number?
- div.controls
- div.input-prepend
- span.add-on Slide
- input#embed-startatslide.input-mini(type='text', value='0', placeholder='0')
- p.help-block You can tell TimelineJS to start at a specific slide number
- // Embed Copy and Paste
- div.span5
- form.form-horizontal
- fieldset
- h4 Embed Code
- p Copy this code and paste it where you want your
- mixin brand('Timeline', 'JS')
- | to appear.
- br
- textarea(readonly='readonly', style='width: 100%; height: 160px; min-height: 110px; max-height: 300px; resize: none; font-family: Menlo,Monaco,\'Courier New\',monospace; font-size: 11px;')#embed_code
- |
- div(style='text-align:center;')
- a(href='#preview-embed-iframe')#iframe-preview-button.btn.btn-primary Preview
- |
- a(href='#embed', target='_blank')#preview-embed-link.btn Link to Preview
-section.background-fabric
- div.container
- h2 Preview
- div.row
- div#preview-embed-iframe.span12
- br
- br
-
diff --git a/source/jade/sections/example-head.jade b/source/jade/sections/example-head.jade
deleted file mode 100755
index 44f3ed646..000000000
--- a/source/jade/sections/example-head.jade
+++ /dev/null
@@ -1,20 +0,0 @@
-!!! 5
-html(lang="en")
- include ../includes/ascii
- head
- title Timeline JS Example
- meta(charset='utf-8')
- meta(name='description', content='TimelineJS example')
- meta(name='apple-mobile-web-app-capable', content='yes')
- meta(name='apple-touch-fullscreen', content='yes')
- meta(name='viewport', content='width=device-width, initial-scale=1.0, maximum-scale=1.0')
- // Style
- style
- html, body {
- height:100%;
- padding: 0px;
- margin: 0px;
- }
- // HTML5 shim, for IE6-8 support of HTML elements
- //if lt IE 9
- script(src='http://html5shim.googlecode.com/svn/trunk/html5.js')
\ No newline at end of file
diff --git a/source/js/Core b/source/js/Core
deleted file mode 160000
index edcd60cb5..000000000
--- a/source/js/Core
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit edcd60cb563da8b2f24ab82119032ba3c32f41e1
diff --git a/source/js/Core/.gitignore b/source/js/Core/.gitignore
new file mode 100644
index 000000000..9de0370fe
--- /dev/null
+++ b/source/js/Core/.gitignore
@@ -0,0 +1,5 @@
+.buildpath
+.project
+.settings
+*.DS_Store
+.DS_Store*
\ No newline at end of file
diff --git a/source/js/Core/Core/VMM.Browser.js b/source/js/Core/Core/VMM.Browser.js
new file mode 100644
index 000000000..d26940aab
--- /dev/null
+++ b/source/js/Core/Core/VMM.Browser.js
@@ -0,0 +1,162 @@
+/* * DEVICE AND BROWSER DETECTION
+================================================== */
+if(typeof VMM != 'undefined' && typeof VMM.Browser == 'undefined') {
+
+ VMM.Browser = {
+ init: function () {
+ this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
+ this.version = this.searchVersion(navigator.userAgent)
+ || this.searchVersion(navigator.appVersion)
+ || "an unknown version";
+ this.tridentVersion = this.searchTridentVersion(navigator.userAgent);
+ this.OS = this.searchString(this.dataOS) || "an unknown OS";
+ this.device = this.searchDevice(navigator.userAgent);
+ this.orientation = this.searchOrientation(window.orientation);
+ },
+ searchOrientation: function(orientation) {
+ var orient = "";
+ if ( orientation == 0 || orientation == 180) {
+ orient = "portrait";
+ } else if ( orientation == 90 || orientation == -90) {
+ orient = "landscape";
+ } else {
+ orient = "normal";
+ }
+ return orient;
+ },
+ searchDevice: function(d) {
+ var device = "";
+ if (d.match(/Android/i) || d.match(/iPhone|iPod/i)) {
+ device = "mobile";
+ } else if (d.match(/iPad/i)) {
+ device = "tablet";
+ } else if (d.match(/BlackBerry/i) || d.match(/IEMobile/i)) {
+ device = "other mobile";
+ } else {
+ device = "desktop";
+ }
+ return device;
+ },
+ searchString: function (data) {
+ for (var i=0;i
mmm d',' yyyy''"
+ },
+
+ month: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
+ month_abbr: ["Jan.", "Feb.", "March", "April", "May", "June", "July", "Aug.", "Sept.", "Oct.", "Nov.", "Dec."],
+ day: ["Sunday","Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
+ day_abbr: ["Sun.", "Mon.", "Tues.", "Wed.", "Thurs.", "Fri.", "Sat."],
+ hour: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
+ hour_suffix: ["am"],
+
+ //B.C.
+ bc_format: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "mmm d",
+ full: "mmmm d',' yyyy",
+ time_no_seconds_short: "h:MM TT",
+ time_no_seconds_small_date: "dddd', 'h:MM TT'
'mmmm d',' yyyy''",
+ full_long: "dddd',' mmm d',' yyyy 'at' hh:MM TT",
+ full_long_small_date: "hh:MM TT'
'dddd',' mmm d',' yyyy''"
+ },
+
+ setLanguage: function(lang) {
+ trace("SET DATE LANGUAGE");
+ VMM.Date.dateformats = lang.dateformats;
+ VMM.Date.month = lang.date.month;
+ VMM.Date.month_abbr = lang.date.month_abbr;
+ VMM.Date.day = lang.date.day;
+ VMM.Date.day_abbr = lang.date.day_abbr;
+ dateFormat.i18n.dayNames = lang.date.day_abbr.concat(lang.date.day);
+ dateFormat.i18n.monthNames = lang.date.month_abbr.concat(lang.date.month);
+ },
+
+ parse: function(d, precision) {
+ "use strict";
+ var date,
+ date_array,
+ time_array,
+ time_parse,
+ p = {
+ year: false,
+ month: false,
+ day: false,
+ hour: false,
+ minute: false,
+ second: false,
+ millisecond: false
+ };
+
+ if (type.of(d) == "date") {
+ trace("DEBUG THIS, ITs A DATE");
+ date = d;
+ } else {
+ date = new Date(0);
+ date.setMonth(0); date.setDate(1); date.setHours(0); date.setMinutes(0); date.setSeconds(0); date.setMilliseconds(0);
+ if ( d.match(/,/gi) ) {
+ date_array = d.split(",");
+ for(var i = 0; i < date_array.length; i++) {
+ date_array[i] = parseInt(date_array[i], 10);
+ }
+ if (date_array[0]) {
+ date.setFullYear(date_array[0]);
+ p.year = true;
+ }
+ if (date_array[1]) {
+ date.setMonth(date_array[1] - 1);
+ p.month = true;
+ }
+ if (date_array[2]) {
+ date.setDate(date_array[2]);
+ p.day = true;
+ }
+ if (date_array[3]) {
+ date.setHours(date_array[3]);
+ p.hour = true;
+ }
+ if (date_array[4]) {
+ date.setMinutes(date_array[4]);
+ p.minute = true;
+ }
+ if (date_array[5]) {
+ date.setSeconds(date_array[5]);
+ if (date_array[5] >= 1) {
+ p.second = true;
+ }
+ }
+ if (date_array[6]) {
+ date.setMilliseconds(date_array[6]);
+ if (date_array[6] >= 1) {
+ p.millisecond = true;
+ }
+ }
+ } else if (d.match("/")) {
+ if (d.match(" ")) {
+
+ time_parse = d.split(" ");
+ if (d.match(":")) {
+ time_array = time_parse[1].split(":");
+ if (time_array[0] >= 0 ) {
+ date.setHours(time_array[0]);
+ p.hour = true;
+ }
+ if (time_array[1] >= 0) {
+ date.setMinutes(time_array[1]);
+ p.minute = true;
+ }
+ if (time_array[2] >= 0) {
+ date.setSeconds(time_array[2]);
+ p.second = true;
+ }
+ if (time_array[3] >= 0) {
+ date.setMilliseconds(time_array[3]);
+ p.millisecond = true;
+ }
+ }
+ date_array = time_parse[0].split("/");
+ } else {
+ date_array = d.split("/");
+ }
+ if (date_array[2]) {
+ date.setFullYear(date_array[2]);
+ p.year = true;
+ }
+ if (date_array[0] >= 0) {
+ var month = date_array[0] - 1;
+ date.setMonth(month);
+ // if (date.getMonth() != month) {
+ // date.setMonth(month); // WTF javascript?
+ // }
+ p.month = true;
+ }
+ if (date_array[1] >= 0) {
+ if (date_array[1].length > 2) {
+ date.setFullYear(date_array[1]);
+ p.year = true;
+ } else {
+ date.setDate(date_array[1]);
+ p.day = true;
+ }
+ }
+ } else if (d.match("now")) {
+ var now = new Date();
+
+ date.setFullYear(now.getFullYear());
+ p.year = true;
+
+ date.setMonth(now.getMonth());
+ p.month = true;
+
+ date.setDate(now.getDate());
+ p.day = true;
+
+ if (d.match("hours")) {
+ date.setHours(now.getHours());
+ p.hour = true;
+ }
+ if (d.match("minutes")) {
+ date.setHours(now.getHours());
+ date.setMinutes(now.getMinutes());
+ p.hour = true;
+ p.minute = true;
+ }
+ if (d.match("seconds")) {
+ date.setHours(now.getHours());
+ date.setMinutes(now.getMinutes());
+ date.setSeconds(now.getSeconds());
+ p.hour = true;
+ p.minute = true;
+ p.second = true;
+ }
+ if (d.match("milliseconds")) {
+ date.setHours(now.getHours());
+ date.setMinutes(now.getMinutes());
+ date.setSeconds(now.getSeconds());
+ date.setMilliseconds(now.getMilliseconds());
+ p.hour = true;
+ p.minute = true;
+ p.second = true;
+ p.millisecond = true;
+ }
+ } else if (d.length <= 8) {
+ p.year = true;
+ date.setFullYear(parseInt(d, 10));
+ date.setMonth(0);
+ date.setDate(1);
+ date.setHours(0);
+ date.setMinutes(0);
+ date.setSeconds(0);
+ date.setMilliseconds(0);
+ } else if (d.match("T")) {
+ if (navigator.userAgent.match(/MSIE\s(?!9.0)/)) {
+ // IE 8 < Won't accept dates with a "-" in them.
+ time_parse = d.split("T");
+ if (d.match(":")) {
+ time_array = time_parse[1].split(":");
+ if (time_array[0] >= 1) {
+ date.setHours(time_array[0]);
+ p.hour = true;
+ }
+ if (time_array[1] >= 1) {
+ date.setMinutes(time_array[1]);
+ p.minute = true;
+ }
+ if (time_array[2] >= 1) {
+ date.setSeconds(time_array[2]);
+ if (time_array[2] >= 1) {
+ p.second = true;
+ }
+ }
+ if (time_array[3] >= 1) {
+ date.setMilliseconds(time_array[3]);
+ if (time_array[3] >= 1) {
+ p.millisecond = true;
+ }
+ }
+ }
+ date_array = time_parse[0].split("-");
+ if (date_array[0]) {
+ date.setFullYear(date_array[0]);
+ p.year = true;
+ }
+ if (date_array[1] >= 0) {
+ date.setMonth(date_array[1] - 1);
+ p.month = true;
+ }
+ if (date_array[2] >= 0) {
+ date.setDate(date_array[2]);
+ p.day = true;
+ }
+
+ } else {
+ date = new Date(Date.parse(d));
+ p.year = true;
+ p.month = true;
+ p.day = true;
+ p.hour = true;
+ p.minute = true;
+ if (date.getSeconds() >= 1) {
+ p.second = true;
+ }
+ if (date.getMilliseconds() >= 1) {
+ p.millisecond = true;
+ }
+ }
+ } else {
+ date = new Date(
+ parseInt(d.slice(0,4), 10),
+ parseInt(d.slice(4,6), 10) - 1,
+ parseInt(d.slice(6,8), 10),
+ parseInt(d.slice(8,10), 10),
+ parseInt(d.slice(10,12), 10)
+ );
+ p.year = true;
+ p.month = true;
+ p.day = true;
+ p.hour = true;
+ p.minute = true;
+ if (date.getSeconds() >= 1) {
+ p.second = true;
+ }
+ if (date.getMilliseconds() >= 1) {
+ p.millisecond = true;
+ }
+
+ }
+
+ }
+
+ if (precision != null && precision != "") {
+ return {
+ date: date,
+ precision: p
+ };
+ } else {
+ return date;
+ }
+ },
+
+
+
+ prettyDate: function(d, is_abbr, p, d2) {
+ var _date,
+ _date2,
+ format,
+ bc_check,
+ is_pair = false,
+ bc_original,
+ bc_number,
+ bc_string;
+
+ if (d2 != null && d2 != "" && typeof d2 != 'undefined') {
+ is_pair = true;
+ trace("D2 " + d2);
+ }
+
+
+ if (type.of(d) == "date") {
+
+ if (type.of(p) == "object") {
+ if (p.millisecond || p.second && d.getSeconds() >= 1) {
+ // YEAR MONTH DAY HOUR MINUTE
+ if (is_abbr){
+ format = VMM.Date.dateformats.time_short;
+ } else {
+ format = VMM.Date.dateformats.time_short;
+ }
+ } else if (p.minute) {
+ // YEAR MONTH DAY HOUR MINUTE
+ if (is_abbr){
+ format = VMM.Date.dateformats.time_no_seconds_short;
+ } else {
+ format = VMM.Date.dateformats.time_no_seconds_small_date;
+ }
+ } else if (p.hour) {
+ // YEAR MONTH DAY HOUR
+ if (is_abbr) {
+ format = VMM.Date.dateformats.time_no_seconds_short;
+ } else {
+ format = VMM.Date.dateformats.time_no_seconds_small_date;
+ }
+ } else if (p.day) {
+ // YEAR MONTH DAY
+ if (is_abbr) {
+ format = VMM.Date.dateformats.full_short;
+ } else {
+ format = VMM.Date.dateformats.full;
+ }
+ } else if (p.month) {
+ // YEAR MONTH
+ if (is_abbr) {
+ format = VMM.Date.dateformats.month_short;
+ } else {
+ format = VMM.Date.dateformats.month;
+ }
+ } else if (p.year) {
+ format = VMM.Date.dateformats.year;
+ } else {
+ format = VMM.Date.dateformats.year;
+ }
+
+ } else {
+
+ if (d.getMonth() === 0 && d.getDate() == 1 && d.getHours() === 0 && d.getMinutes() === 0 ) {
+ // YEAR ONLY
+ format = VMM.Date.dateformats.year;
+ } else if (d.getDate() <= 1 && d.getHours() === 0 && d.getMinutes() === 0) {
+ // YEAR MONTH
+ if (is_abbr) {
+ format = VMM.Date.dateformats.month_short;
+ } else {
+ format = VMM.Date.dateformats.month;
+ }
+ } else if (d.getHours() === 0 && d.getMinutes() === 0) {
+ // YEAR MONTH DAY
+ if (is_abbr) {
+ format = VMM.Date.dateformats.full_short;
+ } else {
+ format = VMM.Date.dateformats.full;
+ }
+ } else if (d.getMinutes() === 0) {
+ // YEAR MONTH DAY HOUR
+ if (is_abbr) {
+ format = VMM.Date.dateformats.time_no_seconds_short;
+ } else {
+ format = VMM.Date.dateformats.time_no_seconds_small_date;
+ }
+ } else {
+ // YEAR MONTH DAY HOUR MINUTE
+ if (is_abbr){
+ format = VMM.Date.dateformats.time_no_seconds_short;
+ } else {
+ format = VMM.Date.dateformats.full_long;
+ }
+ }
+ }
+
+ _date = dateFormat(d, format, false);
+ //_date = "Jan"
+ bc_check = _date.split(" ");
+
+ // BC TIME SUPPORT
+ for(var i = 0; i < bc_check.length; i++) {
+ if ( parseInt(bc_check[i], 10) < 0 ) {
+ trace("YEAR IS BC");
+ bc_original = bc_check[i];
+ bc_number = Math.abs( parseInt(bc_check[i], 10) );
+ bc_string = bc_number.toString() + " B.C.";
+ _date = _date.replace(bc_original, bc_string);
+ }
+ }
+
+
+ if (is_pair) {
+ _date2 = dateFormat(d2, format, false);
+ bc_check = _date2.split(" ");
+ // BC TIME SUPPORT
+ for(var j = 0; j < bc_check.length; j++) {
+ if ( parseInt(bc_check[j], 10) < 0 ) {
+ trace("YEAR IS BC");
+ bc_original = bc_check[j];
+ bc_number = Math.abs( parseInt(bc_check[j], 10) );
+ bc_string = bc_number.toString() + " B.C.";
+ _date2 = _date2.replace(bc_original, bc_string);
+ }
+ }
+
+ }
+ } else {
+ trace("NOT A VALID DATE?");
+ trace(d);
+ }
+
+ if (is_pair) {
+ return _date + " — " + _date2;
+ } else {
+ return _date;
+ }
+ }
+
+ }).init();
+
+ /*
+ * Date Format 1.2.3
+ * (c) 2007-2009 Steven Levithan
");
+ },
+
+ /* * Generate a Unique ID
+ ================================================== */
+ // VMM.Util.unique_ID(size);
+ unique_ID: function(size) {
+
+ var getRandomNumber = function(range) {
+ return Math.floor(Math.random() * range);
+ };
+
+ var getRandomChar = function() {
+ var chars = "abcdefghijklmnopqurstuvwxyzABCDEFGHIJKLMNOPQURSTUVWXYZ";
+ return chars.substr( getRandomNumber(62), 1 );
+ };
+
+ var randomID = function(size) {
+ var str = "";
+ for(var i = 0; i < size; i++) {
+ str += getRandomChar();
+ }
+ return str;
+ };
+
+ return randomID(size);
+ },
+ /* * Tells you if a number is even or not
+ ================================================== */
+ // VMM.Util.isEven(n)
+ isEven: function(n){
+ return (n%2 === 0) ? true : false;
+ },
+ /* * Get URL Variables
+ ================================================== */
+ // var somestring = VMM.Util.getUrlVars(str_url)["varname"];
+ getUrlVars: function(string) {
+
+ var str = string.toString();
+
+ if (str.match('&')) {
+ str = str.replace("&", "&");
+ } else if (str.match('&')) {
+ str = str.replace("&", "&");
+ } else if (str.match('&')) {
+ str = str.replace("&", "&");
+ }
+
+ var vars = [], hash;
+ var hashes = str.slice(str.indexOf('?') + 1).split('&');
+ for(var i = 0; i < hashes.length; i++) {
+ hash = hashes[i].split('=');
+ vars.push(hash[0]);
+ vars[hash[0]] = hash[1];
+ }
+
+
+ return vars;
+ },
+
+ /* * Cleans up strings to become real HTML
+ ================================================== */
+ toHTML: function(text) {
+
+ text = this.nl2br(text);
+ text = this.linkify(text);
+
+ return text.replace(/\s\s/g," ");
+ },
+
+ /* * Returns text strings as CamelCase
+ ================================================== */
+ toCamelCase: function(s,forceLowerCase) {
+
+ if(forceLowerCase !== false) forceLowerCase = true;
+
+ var sps = ((forceLowerCase) ? s.toLowerCase() : s).split(" ");
+
+ for(var i=0; i";
+
+ // CREDIT
+ if (credit != null && credit != "") {
+ ce += VMM.createElement("div", credit, "credit");
+ }
+
+ // CAPTION
+ if (caption != null && caption != "") {
+ ce += VMM.createElement("div", caption, "caption");
+ }
+
+ }
+
+ ce += "
'mmmm d',' yyyy''",
+ full_long: "mmm d',' yyyy 'at' h:MM TT",
+ full_long_small_date: "h:MM TT'
mmm d',' yyyy''"
+ },
+ messages: {
+ loading_timeline: "Loading Timeline... ",
+ return_to_title: "Return to Title",
+ expand_timeline: "Expand Timeline",
+ contract_timeline: "Contract Timeline",
+ wikipedia: "From Wikipedia, the free encyclopedia",
+ loading_content: "Loading Content",
+ loading: "Loading",
+ swipe_nav: "Swipe to Navigate"
+ }
+ }
+};
\ No newline at end of file
diff --git a/source/js/Core/Language/locale/af.js b/source/js/Core/Language/locale/af.js
new file mode 100644
index 000000000..731729d78
--- /dev/null
+++ b/source/js/Core/Language/locale/af.js
@@ -0,0 +1,38 @@
+/* Afrikaans LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "af",
+ api: {
+ wikipedia: "af"
+ },
+ date: {
+ month: ["Januarie", "Februarie", "Maart", "April", "Mei", "Junie", "Julie", "Augustus", "September", "Oktober", "November", "Desember"],
+ month_abbr: ["Jan.", "Feb.", "Maart", "April", "Mei", "Junei", "Julie", "Aug.", "Sept.", "Okt.", "Nov.", "Des."],
+ day: ["Sondag","Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrydag", "Saterdag"],
+ day_abbr: ["Son.","Maan.", "Dins.", "Woen.", "Don.", "Vry.", "Sat."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d mmm",
+ full: "d mmmm yyyy",
+ time_short: "HH:MM:ss",
+ time_no_seconds_short: "HH:MM",
+ time_no_seconds_small_date: "HH:MM'
'd mmmm yyyy''",
+ full_long: "d mmm',' yyyy 'om' HH:MM",
+ full_long_small_date: "HH:MM'
d mmm yyyy''"
+ },
+ messages: {
+ loading_timeline: "Die tydlyn laai... ",
+ return_to_title: "Begin voor",
+ expand_timeline: "Rek die tydlyn",
+ contract_timeline: "Krimp die tydlyn",
+ wikipedia: "Van Wikipedia, die gratis ensiklopedie",
+ loading_content: "Die inhoud laai",
+ loading: "Aan't laai",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
+
diff --git a/source/js/Core/Language/locale/ar.js b/source/js/Core/Language/locale/ar.js
new file mode 100644
index 000000000..1cf93d800
--- /dev/null
+++ b/source/js/Core/Language/locale/ar.js
@@ -0,0 +1,38 @@
+/* Arabic LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "ar",
+ right_to_left: true,
+ api: {
+ wikipedia: "ar"
+ },
+ date: {
+ month: ["كانون الثاني", "شباط", "آذار", "نيسان", "أيار", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"],
+ month_abbr: ["كانون الثاني", "شباط", "آذار", "نيسان", "أيار", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"],
+ day: ["الأحد","الإثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"],
+ day_abbr: ["الأحد","الإثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت"]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "mmm d",
+ full: "mmmm d',' yyyy",
+ time_short: "h:MM:ss TT",
+ time_no_seconds_short: "h:MM TT",
+ time_no_seconds_small_date: "h:MM TT'
'mmmm d',' yyyy''",
+ full_long: "mmm d',' yyyy 'at' hh:MM TT",
+ full_long_small_date: "hh:MM TT'
mmm d',' yyyy''"
+ },
+ messages: {
+ loading_timeline: "جاري التحميل... ",
+ return_to_title: "العودة",
+ expand_timeline: "تكبير العرض",
+ contract_timeline: "الاتفاقية",
+ wikipedia: "من ويكيبيديا, الموسوعة الحرة",
+ loading_content: "تحميل المحتوى",
+ loading: "تحميل",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
\ No newline at end of file
diff --git a/source/js/Core/Language/locale/be.js b/source/js/Core/Language/locale/be.js
new file mode 100644
index 000000000..00c77f227
--- /dev/null
+++ b/source/js/Core/Language/locale/be.js
@@ -0,0 +1,37 @@
+/* Belarusian LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "be",
+ api: {
+ wikipedia: "be"
+ },
+ date: {
+ month: ["студзень", "люты", "сакавік", "красавік", "май", "чэрвень", "ліпень", "жнівень", "верасень", "кастрычнік", "лістапад", "снежань"],
+ month_abbr: ["стд", "лют", "скв", "крс", "май", "чрв", "лпн", "жнв", "врс", "кст", "лст", "снж"],
+ day: ["нядзеля","панядзелак", "аўторак", "серада", "чацвер", "пятніца", "субота"],
+ day_abbr: ["Нд.","Пн.", "Аўт.", "Ср.", "Чц.", "Пт.", "Сб."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d mmm",
+ full: "d mmmm yyyy",
+ time_short: "h:MM:ss TT",
+ time_no_seconds_short: "h:MM TT",
+ time_no_seconds_small_date: "h:MM TT'
'd mmmm yyyy''",
+ full_long: "d mmm yyyy 'at' h:MM TT",
+ full_long_small_date: "h:MM TT'
d mmm yyyy''"
+ },
+ messages: {
+ loading_timeline: "Загрузка лініі часу... ",
+ return_to_title: "Вярнуцца ў пачатак",
+ expand_timeline: "Наблізіць лінію часу",
+ contract_timeline: "Аддаліць лінію часу",
+ wikipedia: "З Вікіпедыі, свабоднай энцыклапедыі",
+ loading_content: "Загрузка зместу",
+ loading: "Загрузка"
+ }
+ }
+}
\ No newline at end of file
diff --git a/source/js/Core/Language/locale/bg.js b/source/js/Core/Language/locale/bg.js
new file mode 100644
index 000000000..0603ef6d1
--- /dev/null
+++ b/source/js/Core/Language/locale/bg.js
@@ -0,0 +1,37 @@
+/* Bulgarian LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "bg",
+ api: {
+ wikipedia: "bg"
+ },
+ date: {
+ month: ["Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември"],
+ month_abbr: ["Ян.", "Фев.", "Март", "Апр.", "Май", "Юни", "Юли", "Авг.", "Септ.", "Окт.", "Ноем.", "Дек."],
+ day: ["Неделя", "Понеделник", "Вторник", "Сряда", "Четвъртък", "Петък", "Събота"],
+ day_abbr: ["Нед.", "Пон.", "Вт.", "Ср.", "Четв.", "Пет.", "Съб."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d mmm",
+ full: "d mmmm yyyy",
+ time_short: "h:MM:ss TT",
+ time_no_seconds_short: "h:MM TT",
+ time_no_seconds_small_date: "h:MM TT'
'd mmmm yyyy''",
+ full_long: "d mmm yyyy 'at' h:MM TT",
+ full_long_small_date: "h:MM TT'
d mmm yyyy''"
+ },
+ messages: {
+ loading_timeline: "Зареждане... ",
+ return_to_title: "В началото",
+ expand_timeline: "Разширяване",
+ contract_timeline: "Свиване",
+ wikipedia: "От Уикипедия, свободната енциклопедия",
+ loading_content: "Съдържанието се зарежда",
+ loading: "Зарежда се",
+ swipe_nav: "Сменяйте с плъзгане настрани" }
+ }
+}
\ No newline at end of file
diff --git a/source/js/Core/Language/locale/ca.js b/source/js/Core/Language/locale/ca.js
new file mode 100644
index 000000000..b3c68fdcb
--- /dev/null
+++ b/source/js/Core/Language/locale/ca.js
@@ -0,0 +1,37 @@
+/* Catalan LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "ca",
+ api: {
+ wikipedia: "ca"
+ },
+ date: {
+ month: ['Gener','Febrer','Març','Abril','Maig','Juny','Juliol','Agost','Setembre','Octubre','Novembre','Desembre'],
+ month_abbr: ['Gen','Feb','Mar','Abr','Mai','Jun','Jul','Ago','Set','Oct','Nov','Des'],
+ day: ['Diumenge','Dilluns','Dimarts','Dimecres','Dijous','Divendres','Dissabte'],
+ day_abbr: ['Dg.','Dl.','Dt.','Dc.','Dj.','Dv.','Ds.']
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d mmm",
+ full: "d mmmm yyyy",
+ time_short: "HH:MM:ss",
+ time_no_seconds_short: "HH:MM",
+ time_no_seconds_small_date: "''d mmmm yyyy'' HH:MM",
+ full_long: "dddd',' d mmm yyyy HH:MM",
+ full_long_small_date: "HH:MM'
d mmm yyyy''"
+ },
+ messages: {
+ loading_timeline: "Carregant cronologia...",
+ return_to_title: "Tornar al títol",
+ expand_timeline: "Ampliar la cronologia",
+ contract_timeline: "Reduir la cronologia",
+ wikipedia: "Des de Wikipedia, l'enciclopèdia lliure",
+ loading_content: "Carregant contingut",
+ loading: "Carregant",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
\ No newline at end of file
diff --git a/source/js/Core/Language/locale/cz.js b/source/js/Core/Language/locale/cz.js
new file mode 100644
index 000000000..40f922d36
--- /dev/null
+++ b/source/js/Core/Language/locale/cz.js
@@ -0,0 +1,37 @@
+/* Czech LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "cz",
+ api: {
+ wikipedia: "cs"
+ },
+ date: {
+ month: ["ledna", "února", "března", "dubna", "května", "června", "července", "srpna", "září", "října", "listopadu", "prosince"],
+ month_abbr: ["Led", "Úno", "Bře", "Dub", "Kvě", "Čen", "Čec", "Srp", "Zář", "Říj", "Lis", "Pro"],
+ day: ["neděle","pondělí", "úterý", "středa", "čtvrtek", "pátek", "sobota"],
+ day_abbr: ["Ne","Po", "Út", "St", "Čt", "Pá", "So"]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d. mmm ",
+ full: "d. mmmm yyyy",
+ time_short: "HH:MM:ss",
+ time_no_seconds_short: "HH:MM",
+ time_no_seconds_small_date: "HH:MM'
'd. mmmm yyyy''",
+ full_long: "dddd d. mmm yyyy 'v' HH:MM",
+ full_long_small_date: "HH:MM'
dddd d. mmm yyyy''"
+ },
+ messages: {
+ loading_timeline: "Načítám časovou osu... ",
+ return_to_title: "Zpět na začátek",
+ expand_timeline: "Rozbalit časovou osu",
+ contract_timeline: "Sbalit časovou osu",
+ wikipedia: "Zdroj: otevřená encyklopedie Wikipedia",
+ loading_content: "Nahrávám obsah",
+ loading: "Nahrávám",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
diff --git a/source/js/Core/Language/locale/da.js b/source/js/Core/Language/locale/da.js
new file mode 100644
index 000000000..a93fe0f1c
--- /dev/null
+++ b/source/js/Core/Language/locale/da.js
@@ -0,0 +1,37 @@
+/* Danish LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "da",
+ api: {
+ wikipedia: "da"
+ },
+ date: {
+ month: ["januar", "februar", "marts", "april", "maj", "juni", "juli", "august", "september", "oktober", "november", "december"],
+ month_abbr: ["jan.", "feb.", "mar.", "apr.", "maj.", "jun.", "jul.", "aug.", "sep.", "okt.", "nov.", "dec."],
+ day: ["søndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag"],
+ day_abbr: ["sø.", "ma.", "ti.", "on.", "to.", "fr.", "lø."],
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d. mmm",
+ full: "d. mmmm',' yyyy",
+ time_short: "HH:MM:ss",
+ time_no_seconds_short: "HH:MM",
+ time_no_seconds_small_date: "HH:MM'
'd. mmmm',' yyyy''",
+ full_long: "dddd',' d. mmm',' yyyy 'um' HH:MM",
+ full_long_small_date: "HH:MM'
'dddd',' d. mmm yyyy''",
+ },
+ messages: {
+ loading_timeline: "Henter tidslinie...",
+ return_to_title: "Tilbage til titel",
+ expand_timeline: "Udvid tidslinien",
+ contract_timeline: "Træk tidslinien sammen",
+ wikipedia: "Fra Wikipedia",
+ loading_content: "Henter indhold",
+ loading: "Henter",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
diff --git a/source/js/Core/Language/locale/de.js b/source/js/Core/Language/locale/de.js
new file mode 100644
index 000000000..086f528e4
--- /dev/null
+++ b/source/js/Core/Language/locale/de.js
@@ -0,0 +1,37 @@
+/* German / Deutsch LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "de",
+ api: {
+ wikipedia: "de"
+ },
+ date: {
+ month: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"],
+ month_abbr: ["Jan.", "Feb.", "März", "Apr.", "Mai", "Juni", "Juli", "Aug.", "Sept.", "Okt.", "Nov.", "Dez."],
+ day: ["Sonntag","Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"],
+ day_abbr: ["So.","Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d. mmm",
+ full: "d. mmmm yyyy",
+ time_short: "HH:MM:ss",
+ time_no_seconds_short: "HH:MM",
+ time_no_seconds_small_date: "HH:MM'
'd. mmmm yyyy''",
+ full_long: "dddd',' d. mmm yyyy 'um' HH:MM",
+ full_long_small_date: "HH:MM'
'dddd',' d. mmm yyyy''"
+ },
+ messages: {
+ loading_timeline: "Chronologie wird geladen...",
+ return_to_title: "Zurück zum Anfang",
+ expand_timeline: "Chronologie vergrößern",
+ contract_timeline: "Chronologie verkleinern",
+ wikipedia: "aus Wikipedia, der freien Enzyklopädie",
+ loading_content: "Inhalte werden geladen...",
+ loading: "Lädt...",
+ swipe_nav: "Wischen zum navigieren" }
+ }
+}
diff --git a/source/js/Core/Language/locale/el.js b/source/js/Core/Language/locale/el.js
new file mode 100644
index 000000000..a020d1ed9
--- /dev/null
+++ b/source/js/Core/Language/locale/el.js
@@ -0,0 +1,37 @@
+/* Greek LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "en",
+ api: {
+ wikipedia: "en"
+ },
+ date: {
+ month: ["Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάιος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"],
+ month_abbr: ["Ιαν.", "Φεβ.", "Μαρ.", "Απρ.", "Μαη", "Ιουν.", "Ιουλ.", "Αύγ.", "Σεπτ.", "Οκτ.", "Νοεμ.", "Δεκ."],
+ day: ["Κυριακή","Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"],
+ day_abbr: ["Κυρ.","Δευ.", "Τρίτη.", "Τετ.", "Πεμπ.", "Παρ.", "Σαβ."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "mmm d",
+ full: "mmmm d',' yyyy",
+ time_short: "h:MM:ss TT",
+ time_no_seconds_short: "h:MM TT",
+ time_no_seconds_small_date: "h:MM TT'
'mmmm d',' yyyy''",
+ full_long: "mmm d',' yyyy 'at' h:MM TT",
+ full_long_small_date: "h:MM TT'
mmm d',' yyyy''"
+ },
+ messages: {
+ loading_timeline: "Φόρτωση Timeline... ",
+ return_to_title: "Επιστροφή στον Τίτλο",
+ expand_timeline: "Μεγέθυνση",
+ contract_timeline: "Contract Timeline",
+ wikipedia: "From Wikipedia, the free encyclopedia",
+ loading_content: "Φόρτωση Περιεχομένου",
+ loading: "Γίνεται Φόρτωση",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
\ No newline at end of file
diff --git a/source/js/Core/Language/locale/en-24hr.js b/source/js/Core/Language/locale/en-24hr.js
new file mode 100644
index 000000000..89989fa45
--- /dev/null
+++ b/source/js/Core/Language/locale/en-24hr.js
@@ -0,0 +1,37 @@
+/* English LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "en",
+ api: {
+ wikipedia: "en"
+ },
+ date: {
+ month: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
+ month_abbr: ["Jan.", "Feb.", "March", "April", "May", "June", "July", "Aug.", "Sept.", "Oct.", "Nov.", "Dec."],
+ day: ["Sunday","Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
+ day_abbr: ["Sun.","Mon.", "Tues.", "Wed.", "Thurs.", "Fri.", "Sat."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "mmm d",
+ full: "mmmm d',' yyyy",
+ time_short: "HH:MM:ss",
+ time_no_seconds_short: "HH:MM TT",
+ time_no_seconds_small_date: "HH:MM TT'
'mmmm d',' yyyy''",
+ full_long: "mmm d',' yyyy 'at' HH:MM TT",
+ full_long_small_date: "HH:MM TT'
mmm d',' yyyy''"
+ },
+ messages: {
+ loading_timeline: "Loading Timeline... ",
+ return_to_title: "Return to Title",
+ expand_timeline: "Expand Timeline",
+ contract_timeline: "Contract Timeline",
+ wikipedia: "From Wikipedia, the free encyclopedia",
+ loading_content: "Loading Content",
+ loading: "Loading",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
diff --git a/source/js/Core/Language/locale/en-week.js b/source/js/Core/Language/locale/en-week.js
new file mode 100644
index 000000000..bcb40e9d3
--- /dev/null
+++ b/source/js/Core/Language/locale/en-week.js
@@ -0,0 +1,37 @@
+/* English LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "en",
+ api: {
+ wikipedia: "en"
+ },
+ date: {
+ month: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
+ month_abbr: ["Jan.", "Feb.", "March", "April", "May", "June", "July", "Aug.", "Sept.", "Oct.", "Nov.", "Dec."],
+ day: ["Sunday","Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
+ day_abbr: ["Sun.","Mon.", "Tues.", "Wed.", "Thurs.", "Fri.", "Sat."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "'Week' W",
+ full: "'Week' W",
+ time_short: "HH:MM:ss",
+ time_no_seconds_short: "HH:MM TT",
+ time_no_seconds_small_date: "HH:MM TT'
'mmmm d',' yyyy''",
+ full_long: "mmm d',' yyyy 'at' HH:MM TT",
+ full_long_small_date: "HH:MM TT'
mmm d',' yyyy''"
+ },
+ messages: {
+ loading_timeline: "Loading Timeline... ",
+ return_to_title: "Return to Title",
+ expand_timeline: "Expand Timeline",
+ contract_timeline: "Contract Timeline",
+ wikipedia: "From Wikipedia, the free encyclopedia",
+ loading_content: "Loading Content",
+ loading: "Loading",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
diff --git a/source/js/Core/Language/locale/en.js b/source/js/Core/Language/locale/en.js
new file mode 100644
index 000000000..8aa830da0
--- /dev/null
+++ b/source/js/Core/Language/locale/en.js
@@ -0,0 +1,38 @@
+/* English LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "en",
+ api: {
+ wikipedia: "en"
+ },
+ date: {
+ month: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
+ month_abbr: ["Jan.", "Feb.", "March", "April", "May", "June", "July", "Aug.", "Sept.", "Oct.", "Nov.", "Dec."],
+ day: ["Sunday","Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
+ day_abbr: ["Sun.","Mon.", "Tues.", "Wed.", "Thurs.", "Fri.", "Sat."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "mmm d",
+ full: "mmmm d',' yyyy",
+ time_short: "h:MM:ss TT",
+ time_no_seconds_short: "h:MM TT",
+ time_no_seconds_small_date: "h:MM TT'
'mmmm d',' yyyy''",
+ full_long: "mmm d',' yyyy 'at' h:MM TT",
+ full_long_small_date: "h:MM TT'
mmm d',' yyyy''"
+ },
+ messages: {
+ loading_timeline: "Loading Timeline... ",
+ return_to_title: "Return to Title",
+ expand_timeline: "Expand Timeline",
+ contract_timeline: "Contract Timeline",
+ wikipedia: "From Wikipedia, the free encyclopedia",
+ loading_content: "Loading Content",
+ loading: "Loading",
+ swipe_nav: "Swipe to Navigate"
+ }
+ }
+}
diff --git a/source/js/Core/Language/locale/eo.js b/source/js/Core/Language/locale/eo.js
new file mode 100644
index 000000000..b88dcda8c
--- /dev/null
+++ b/source/js/Core/Language/locale/eo.js
@@ -0,0 +1,40 @@
+/* Esperanto LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "eo",
+ api: {
+ wikipedia: "eo"
+ },
+ date: {
+ month: ["januaro", "februaro", "marto", "aprilo", "majo", "junio", "julio", "aŭgusto", "septembro", "oktobro", "novembro", "decembro"],
+
+ month_abbr: ["jan.", "feb.", "mar.", "apr.", "maj.", "jun.", "jul.", "aŭg.", "sep.", "okt.", "nov.", "dec."],
+
+ day: ["dimanĉo","lundo", "mardo", "merkredo", "ĵaŭdo", "vendredo", "sabato"],
+
+ day_abbr: ["dim.","lun.", "mar.", "mer.", "ĵaŭ.", "ven.", "sab."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d mmm",
+ full: "d mmmm yyyy",
+ time_short: "HH:MM:ss",
+ time_no_seconds_short: "HH:MM",
+ time_no_seconds_small_date: "HH:MM'
'd mmmm yyyy''",
+ full_long: "dddd',' d mmm yyyy 'ĉe' HH:MM",
+ full_long_small_date: "HH:MM'
'dddd',' d mmm yyyy''"
+ },
+ messages: {
+ loading_timeline: "Ŝarĝante Kronologio... ",
+ return_to_title: "Reveno al Titolo",
+ expand_timeline: "Pliampleksigu Kronologio",
+ contract_timeline: "Malpliampleksigu Kronologio",
+ wikipedia: "El Vikipedio, la libera enciklopedio",
+ loading_content: "Ŝarĝante enhavo",
+ loading: "Ŝarĝante",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
\ No newline at end of file
diff --git a/source/js/Core/Language/locale/es.js b/source/js/Core/Language/locale/es.js
new file mode 100644
index 000000000..21acf616f
--- /dev/null
+++ b/source/js/Core/Language/locale/es.js
@@ -0,0 +1,37 @@
+/* Spanish LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "es",
+ api: {
+ wikipedia: "es"
+ },
+ date: {
+ month: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"],
+ month_abbr: ["Ene.", "Feb.", "Mar.", "Abr.", "May.", "Jun.", "Jul.", "Ago.", "Sep.", "Oct.", "Nov.", "Dic."],
+ day: ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"],
+ day_abbr: ["Dom.", "Lun.", "Mar.", "Mié.", "Jue.", "Vie.", "Sáb."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d mmm",
+ full: "d mmmm yyyy",
+ time_short: "HH:MM:ss",
+ time_no_seconds_short: "HH:MM",
+ time_no_seconds_small_date: "''d mmmm yyyy'' HH:MM",
+ full_long: "dddd',' d mmm yyyy HH:MM",
+ full_long_small_date: "HH:MM'
d mmm yyyy''"
+ },
+ messages: {
+ loading_timeline: "La cronología esta cargando",
+ return_to_title: "Volver al título",
+ expand_timeline: "Expandir la cronología",
+ contract_timeline: "Reducir la cronología",
+ wikipedia: "Desde Wikipedia, la enciclopedia libre",
+ loading_content: "cargando",
+ loading: "cargando",
+ swipe_nav: "Desliza para ver" }
+ }
+}
\ No newline at end of file
diff --git a/source/js/Core/Language/locale/et.js b/source/js/Core/Language/locale/et.js
new file mode 100644
index 000000000..c6c858f66
--- /dev/null
+++ b/source/js/Core/Language/locale/et.js
@@ -0,0 +1,37 @@
+/* Estonian LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "et",
+ api: {
+ wikipedia: "et"
+ },
+ date: {
+ month: ["jaanuar", "veebruar", "märts", "aprill", "mai", "juuni", "juuli", "august", "september", "oktoober", "november", "detsember"],
+ month_abbr: ["jaan.", "veebr.", "märts", "apr.", "mai", "juuni", "juuli", "aug.", "sept.", "okt.", "nov.", "dets."],
+ day: ["pühapäev","esmaspäev", "teisipäev", "kolmapäev", "neljapäev", "reede", "laupäev"],
+ day_abbr: ["P","E", "T", "K", "N", "R", "L"]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "mmm d",
+ full: "mmmm d',' yyyy",
+ time_short: "h:MM:ss TT",
+ time_no_seconds_short: "h:MM TT",
+ time_no_seconds_small_date: "h:MM TT'
'mmmm d',' yyyy''",
+ full_long: "mmm d',' yyyy 'at' h:MM TT",
+ full_long_small_date: "h:MM TT'
mmm d',' yyyy''"
+ },
+ messages: {
+ loading_timeline: "Laadib ajajoont… ",
+ return_to_title: "Tagasi algusse",
+ expand_timeline: "Vaata lähemalt",
+ contract_timeline: "Vaata kaugemalt",
+ wikipedia: "Wikipedia, vaba entsüklopeedia",
+ loading_content: "Laadib sisu",
+ loading: "Laadib",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
diff --git a/source/js/Core/Language/locale/eu.js b/source/js/Core/Language/locale/eu.js
new file mode 100644
index 000000000..c1cd4aacb
--- /dev/null
+++ b/source/js/Core/Language/locale/eu.js
@@ -0,0 +1,38 @@
+/* Basque/ Euskara LANGUAGE
+================================================== */
+if (typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "eu",
+ api: {
+ wikipedia: "eu"
+ },
+ date: {
+ month: ["Urtarrila", "Otsaila", "Martxoa", "Apirila", "Maiatza", "Ekaina", "Uztaila", "Abuztua", "Iraila", "Urria", "Azaroa", "Abendua"],
+ month_abbr: ["Urt.", "Ots.", "Mar.", "Api.", "Mai.", "Eka.", "Uzt.", "Abu.", "Ira.", "Urr.", "Aza.", "Abe."],
+ day: ["Igandea", "Astelehena", "Asteartea", "Asteazkena", "Osteguna", "Ostirala", "Larunbata"],
+ day_abbr: ["Iga.", "Asl.", "Asr.", "Asz.", "Osg.", "Osr.", "Lar."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "yyyy'(e)ko' mmmm",
+ full_short: "mmm'-'d",
+ full: "yyyy'(e)ko' mmmm'k' d",
+ time_short: "h:MM:ss TT",
+ time_no_seconds_short: "h:MM TT",
+ time_no_seconds_small_date: "h:MM TT'
'yyyy'-'mmm'-'d'",
+ full_long: "yyyy'(e)ko' mmmm'ren' d'(e)an,' hh:MM TT'(r)etan'",
+ full_long_small_date: "hh:MM TT'
'yyyy'-'mmm'-'d'"
+ },
+ messages: {
+ loading_timeline: "Kronologia kargatzen...",
+ return_to_title: "Titulura itzuli",
+ expand_timeline: "Handiago ikusi",
+ contract_timeline: "Txikiago ikusi",
+ wikipedia: "Wikipedia entziklopedia libretik",
+ loading_content: "Edukia kargatzen",
+ loading: "Kargatzen",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
+
diff --git a/source/js/Core/Language/locale/fa.js b/source/js/Core/Language/locale/fa.js
new file mode 100644
index 000000000..f8da87ce6
--- /dev/null
+++ b/source/js/Core/Language/locale/fa.js
@@ -0,0 +1,36 @@
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "fa",
+ right_to_left:!0,
+ api: {
+ wikipedia: "fa"
+ },
+ date: {
+ month: ["فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند"],
+ month_abbr: ["فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند"],
+ day: ["یکشنبه","دوشنبه", "سه شنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه"],
+ day_abbr: ["یکشنبه","دوشنبه", "سه شنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه"]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "mmm d",
+ full: "mmmm d',' yyyy",
+ full: "mmmm d',' yyyy",
+ time_no_seconds_short: "h:MM TT",
+ time_no_seconds_short: "h:MM TT",
+ full_long: "mmm d',' yyyy 'at' h:MM TT",
+ full_long_small_date: "h:MM TT'
mmm d',' yyyy''"
+ },
+ messages: {
+ loading_timeline: "بارگذاری، شکیبا باشید...",
+ return_to_title: "ابتدای زمانبندی",
+ expand_timeline: "بزرگنمایی",
+ contract_timeline: "کوچکنمایی",
+ wikipedia: "از ویکی پدیا، دانشنامه آزاد",
+ loading_content: "بارگذاری",
+ loading: "بارگذاری",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
diff --git a/source/js/Core/Language/locale/fi.js b/source/js/Core/Language/locale/fi.js
new file mode 100644
index 000000000..ec2346c64
--- /dev/null
+++ b/source/js/Core/Language/locale/fi.js
@@ -0,0 +1,37 @@
+/* Finnish LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "fi",
+ api: {
+ wikipedia: "fi"
+ },
+ date: {
+ month: ["tammikuuta", "helmikuuta", "maaliskuuta", "huhtikuuta", "toukokuuta", "kesäkuuta", "heinäkuuta", "elokuuta", "syyskuuta", "lokakuuta", "marraskuuta", "joulukuuta"],
+ month_abbr: ["tammi", "helmi", "maalis", "huhti", "touko", "kesä", "heinä", "elo", "syys", "loka", "marras", "joulu"],
+ day: ["sunnuntai","maanantai", "tiistai", "keskiviikko", "torstai", "perjantai", "lauauntai"],
+ day_abbr: ["su","ma", "ti", "ke", "to", "pe", "la"]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d. mmm",
+ full: "d. mmmm yyyy",
+ time_short: "HH:MM:ss",
+ time_no_seconds_short: "HH:MM",
+ time_no_seconds_small_date: "HH:MM'
'd. mmmm yyyy''",
+ full_long: "mmm d yyyy 'klo' HH:MM",
+ full_long_small_date: "HH:MM'
d. mmm yyyy''"
+ },
+ messages: {
+ loading_timeline: "Ladataan aikajanaa… ",
+ return_to_title: "Takaisin etusivulle",
+ expand_timeline: "Laajenna aikajanaa",
+ contract_timeline: "Tiivistä aikajanaa",
+ wikipedia: "Wikipediasta",
+ loading_content: "Ladataan sisältöä",
+ loading: "Ladataan",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
\ No newline at end of file
diff --git a/source/js/Core/Language/locale/fo.js b/source/js/Core/Language/locale/fo.js
new file mode 100644
index 000000000..9daa6328f
--- /dev/null
+++ b/source/js/Core/Language/locale/fo.js
@@ -0,0 +1,37 @@
+/* Faroese LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "fo",
+ api: {
+ wikipedia: "fo"
+ },
+ date: {
+ month: ["januar", "februar", "mars", "aprÌl", "mai", "juni", "juli", "august", "september", "oktober", "november", "desember"],
+ month_abbr: ["jan.", "febr.", "mars", "aprÌl", "mai", "juni", "juli", "aug.", "sept.", "okt.", "nov.", "des."],
+ day: ["sunnudagur","m·nadagur", "t˝sdagur", "mikudagur", "hÛsdagur", "frÌggjadagur", "leygardagur"],
+ day_abbr: ["sun.","m·n.", "t˝s.", "mik.", "hÛs.", "frÌ.", "ley."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d'.' mmm",
+ full: "d'.' mmmm yyyy",
+ time_short: "HH:MM:ss",
+ time_no_seconds_short: "HH:MM",
+ time_no_seconds_small_date: "HH:MM'
'd'.' mmmm yyyy''",
+ full_long: "d'.' mmmm yyyy 'klokkan' HH:MM",
+ full_long_small_date: "HH:MM'
'd'.' mmm yyyy''"
+ },
+ messages: {
+ loading_timeline: "Lesur inn tíðarrás...",
+ return_to_title: "Víðka tíðarrás...",
+ expand_timeline: "Minka tíðarrás...",
+ contract_timeline: "Minka tíðarrás",
+ wikipedia: "Fr· Wikipedia",
+ loading_content: "Lesur inn tilfar",
+ loading: "Lesur inn",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
\ No newline at end of file
diff --git a/source/js/Core/Language/locale/fr.js b/source/js/Core/Language/locale/fr.js
new file mode 100644
index 000000000..afec7208b
--- /dev/null
+++ b/source/js/Core/Language/locale/fr.js
@@ -0,0 +1,38 @@
+/* French LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "fr",
+ api: {
+ wikipedia: "fr"
+ },
+ date: {
+ month: ["janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"],
+ month_abbr: ["janv.", "févr.", "mars", "avril", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "dec."],
+ day: ["Dimanche","Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"],
+ day_abbr: ["Dim.","Lu.", "Ma.", "Me.", "Jeu.", "Vend.", "Sam."],
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d mmm",
+ full: "d mmmm yyyy",
+ time_short: "HH:MM:ss",
+ time_no_seconds_short: "HH:MM",
+ time_no_seconds_small_date: "HH:MM'
'd mmmm yyyy''",
+ full_long: "dddd',' d mmm yyyy 'à' HH:MM",
+ full_long_small_date: "HH:MM'
'dddd',' d mmm yyyy''"
+ },
+ messages: {
+ loading_timeline: "Chargement de la frise en cours... ",
+ return_to_title: "Retour à la page d'accueil",
+ expand_timeline: "Elargir la frise",
+ contract_timeline: "Réduire la frise",
+ wikipedia: "Extrait de Wikipedia, l'encyclopédie libre",
+ loading_content: "Chargement",
+ loading: "Chargement",
+ swipe_nav: "Swipe to Navigate"
+ }
+ }
+}
\ No newline at end of file
diff --git a/source/js/Core/Language/locale/fy.js b/source/js/Core/Language/locale/fy.js
new file mode 100644
index 000000000..df9dcc582
--- /dev/null
+++ b/source/js/Core/Language/locale/fy.js
@@ -0,0 +1,37 @@
+/* Frisian LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "fy",
+ api: {
+ wikipedia: "fy"
+ },
+ date: {
+ month: ["Jannewaris", "Febrewaris", "Maart", "April", "Maaie", "Juny", "July", "Augustus", "Septimber", "Oktober", "Novimber", "Desimber"],
+ month_abbr: ["Jan.", "Feb.", "Mar", "Apr", "Maaie", "July", "July", "Aug.", "Sept.", "Okt.", "Nov.", "Des."],
+ day: ["Snein","Moandei", "Tiisdei", "Woansdei", "Tongersdei", "Freed", "Sneon"],
+ day_abbr: ["Snein","Moandei", "Tiisdei", "Woansdei", "Tongersdei", "Freed", "Sneon"]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d mmm",
+ full: "d mmmm yyyy",
+ time_short: "HH:MM:ss",
+ time_no_seconds_short: "HH:MM",
+ time_no_seconds_small_date: "HH:MM'
'd mmmm yyyy''",
+ full_long: "dddd',' d mmm yyyy 'om' HH:MM",
+ full_long_small_date: "HH:MM'
'dddd',' d mmm yyyy''"
+ },
+ messages: {
+ loading_timeline: "Tiidline ynlade ... ",
+ return_to_title: "Wer werom nei it begjin",
+ expand_timeline: "Tiidline útzoomen",
+ contract_timeline: "Tiidline ynzoomen",
+ wikipedia: "Fan Wikipedia, de frije ensyklopedy",
+ loading_content: "Ynhâld ynlade",
+ loading: "Ynlade"
+ }
+ }
+}
\ No newline at end of file
diff --git a/source/js/Core/Language/locale/ga.js b/source/js/Core/Language/locale/ga.js
new file mode 100644
index 000000000..47c2781d9
--- /dev/null
+++ b/source/js/Core/Language/locale/ga.js
@@ -0,0 +1,38 @@
+/* English LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "ga",
+ api: {
+ wikipedia: "ga"
+ },
+ date: {
+ month: ["Eanair", "Feabhra", "Márta", "Aibhreán", "Bealtaine", "Meitheamh", "Iúil", "Lúnasa", "Meán Fómhair", "Deireadh Fómhair", "Samhain", "Mí Na Nollag"],
+ month_abbr: ["Ean.", "Fea.", "Már.", "Aibh.", "Beal.", "Meith.", "Iúil", "Lún.", "MF.", "DF.", "Samh.", "Noll."],
+ day: ["Dé Domhnaigh","Dé Luain", "Dé Máirt", "Dé Céadaoin", "Déardaoin", "Dé hAoine", "Dé Sathairn"],
+ day_abbr: ["DéDom.","DéL.", "DéM.", "DéC.", "DéarD.", "DéhA.", "DéSat."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d mmm",
+ full: "d mmmm yyyy",
+ time_short: "HH:MM:ss",
+ time_no_seconds_short: "HH:MM",
+ time_no_seconds_small_date: "''d mmmm yyyy'' HH:MM",
+ full_long: "dddd',' d mmm yyyy HH:MM",
+ full_long_small_date: "HH:MM'
d mmm yyyy''"
+ },
+ messages: {
+ loading_timeline: "Tá an Amlíne ag Lódáil... ",
+ return_to_title: "Ar Ais go dtí an tideal",
+ expand_timeline: "Leathnaigh An Amlíne",
+ contract_timeline: "Coimrigh An Amlíne",
+ wikipedia: "As Wikipedia, an ciclipéid saor",
+ loading_content: "Ag Lódáil an",
+ loading: "Ag Lódáil an Inneachar",
+ swipe_nav: "Svaidhpeáil Chun Nascleanúint"
+ }
+ }
+}
diff --git a/source/js/Core/Language/locale/gl.js b/source/js/Core/Language/locale/gl.js
new file mode 100644
index 000000000..63d54cfa5
--- /dev/null
+++ b/source/js/Core/Language/locale/gl.js
@@ -0,0 +1,37 @@
+/* Galician LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "gl",
+ api: {
+ wikipedia: "gl"
+ },
+ date: {
+ month: ["Xaneiro", "Febreiro", "Marzo", "Abril", "Maio", "Xuño", "Xullo", "Agosto", "Setembro", "Outubro", "Novembro", "Decembro"],
+ month_abbr: ["Xan.", "Feb.", "Mar.", "Abr.", "Mai.", "Xuñ.", "Xul.", "Ago.", "Set.", "Out.", "Nov.", "Dec."],
+ day: ["Domingo", "Luns", "Martes", "Mércores", "Xoves", "Venres", "Sábado"],
+ day_abbr: ["Dom.", "Lun.", "Mar.", "Mér.", "Xov.", "Ven.", "Sáb."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d mmm",
+ full: "d mmmm yyyy",
+ time_short: "HH:MM:ss",
+ time_no_seconds_short: "HH:MM",
+ time_no_seconds_small_date: "HH:MM'
'd mmmm yyyy''",
+ full_long: "dddd',' d mmm yyyy 'um' HH:MM",
+ full_long_small_date: "HH:MM'
'dddd',' d mmm yyyy''"
+ },
+ messages: {
+ loading_timeline: "Cronoloxía esta cargando",
+ return_to_title: "Volver ao título",
+ expand_timeline: "Alongar a cronoloxía",
+ contract_timeline: "Acurtar a cronoloxía",
+ wikipedia: "Dende Wikipedia, a enciclopedia libre",
+ loading_content: "cargando",
+ loading: "cargando",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
diff --git a/source/js/Core/Language/locale/he.js b/source/js/Core/Language/locale/he.js
new file mode 100644
index 000000000..d52312782
--- /dev/null
+++ b/source/js/Core/Language/locale/he.js
@@ -0,0 +1,38 @@
+/* Hebrew (beta) LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "he",
+ right_to_left: true,
+ api: {
+ wikipedia: "he"
+ },
+ date: {
+ month: ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"],
+ month_abbr: ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"],
+ day: ["ראשון","שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת"],
+ day_abbr: ["יום א'","יום ב'", "יום ג'", "יום ד'", "יום ה'", "יום ו'", "שבת"]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d mmm",
+ full: "d mmmm,' yyyy",
+ time_short: "h:MM:ss TT",
+ time_no_seconds_short: "h:MM TT",
+ time_no_seconds_small_date: "h:MM TT'
'mmmm d',' yyyy''",
+ full_long: "d' mmm,' yyyy 'at' h:MM TT",
+ full_long_small_date: "h:MM TT'
mmm d',' yyyy''"
+ },
+ messages: {
+ loading_timeline: "טוען את ציר הזמן... ",
+ return_to_title: "חזור לכותרת",
+ expand_timeline: "הרחב את ציר הזמן",
+ contract_timeline: "צמצם את ציר הזמן",
+ wikipedia: "מויקיפדיה, האינציקלופדיה החופשית",
+ loading_content: "התוכן בטעינה...",
+ loading: "טוען...",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
\ No newline at end of file
diff --git a/source/js/Core/Language/locale/hi.js b/source/js/Core/Language/locale/hi.js
new file mode 100644
index 000000000..abfcd3290
--- /dev/null
+++ b/source/js/Core/Language/locale/hi.js
@@ -0,0 +1,9 @@
+/*
+ TimelineJS - ver. 2014-12-09-18-51-25 - 2014-12-09
+ Copyright (c) 2012-2013 Northwestern University
+ a project of the Northwestern University Knight Lab, originally created by Zach Wise
+ https://github.com/NUKnightLab/TimelineJS
+ This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
+ If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+*/
+if(typeof VMM!="undefined"){VMM.Language={lang:"hi",api:{wikipedia:"hi"},date:{month:["जनवरी","फ़रवरी","मार्च","अप्रैल","मई","जून","जुलाई","अगस्त","सितम्बर","अक्टूबर","नवंबर","दिसंबर"],month_abbr:["जनवरी","फ़रवरी","मार्च","अप्रैल","मई","जून","जुलाई","अगस्त","सितम्बर","अक्टूबर","नवंबर","दिसंबर"],day:["रविवार","सोमवार","मंगलवार","बुधवार","गुरुवार","शुक्रवार","शनिवार"],day_abbr:["रवि","सोम","मंगल","बुध","गुरु","शुक्र","शनि"]},dateformats:{year:"yyyy",month_short:"mmm",month:"mmmm yyyy",full_short:"mmm d",full:"mmmm d',' yyyy",time_no_seconds_short:"h:MM TT",time_no_seconds_small_date:"h:MM TT'
'mmmm d',' yyyy''",full_long:"mmm d',' yyyy 'at' h:MM TT",full_long_small_date:"h:MM TT'
mmm d',' yyyy''"},messages:{loading_timeline:"टाइमलाइन लोड हो रहा है",return_to_title:"शीर्षक पर लौटें",expand_timeline:"टाइमलाइन का विस्तार करें",contract_timeline:"टाइमलाइन का अनुबंध करें",wikipedia:"विकिपीडिया, मुक्त विश्वकोश से",loading_content:"लोड हो रहा है सामग्री",loading:"लोड हो रहा है",swipe_nav:"Swipe to Navigate",read_more:"और पढ़ें"}}}
diff --git a/source/js/Core/Language/locale/hr.js b/source/js/Core/Language/locale/hr.js
new file mode 100644
index 000000000..f7418be21
--- /dev/null
+++ b/source/js/Core/Language/locale/hr.js
@@ -0,0 +1,38 @@
+/* Croatian (Latin) LANGUAGE
+================================================== */
+if (typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "hr",
+ api: {
+ wikipedia: "hr"
+ },
+ date: {
+ month: ["siječnja", "veljače", "ožujka", "travnja", "svibnja", "lipnja", "srpnja", "kolovoza", "rujna", "listopada", "studenog", "prosinca"],
+ month_abbr: ["I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII"],
+ day: ["nedjelja", "ponedjeljak", "utorak", "srijeda", "četvrtak", "petak", "subota"],
+ day_abbr: ["ned", "pon", "uto", "sri", "čet", "pet", "sub"]
+ },
+ dateformats: {
+ year: "yyyy.",
+ month_short: "mmm",
+ month: "mmmm yyyy.",
+ full_short: "dd. mmm",
+ full: "dd. mmmm yyyy.",
+ time_short: "HH:MM:ss",
+ time_no_seconds_short: "HH:MM",
+ time_no_seconds_small_date: "HH:MM'
'dd. mmmm yyyy.''",
+ full_long: "dd. mmmm yyyy. 'u' HH:MM",
+ full_long_small_date: "HH:MM'
dd. mmm yyyy.''"
+ },
+ messages: {
+ loading_timeline: "Učitavanje... ",
+ return_to_title: "Početak",
+ expand_timeline: "Povećaj",
+ contract_timeline: "Smanji",
+ wikipedia: "Iz Vikipedije, slobodne enciklopedije",
+ loading_content: "Sadržaj se učitava",
+ loading: "Učitava se",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
+
diff --git a/source/js/Core/Language/locale/hu.js b/source/js/Core/Language/locale/hu.js
new file mode 100644
index 000000000..46f022d19
--- /dev/null
+++ b/source/js/Core/Language/locale/hu.js
@@ -0,0 +1,37 @@
+/* Hungarian LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "hu",
+ api: {
+ wikipedia: "hu"
+ },
+ date: {
+ month: ["január", "február", "március", "április", "május", "június", "július", "augusztus", "szeptember", "október", "november", "december"],
+ month_abbr: ["jan.", "febr.", "márc.", "ápr.", "máj.", "jún.", "júl.", "aug.", "szept.", "okt.", "nov.", "dec."],
+ day: ["vasárnap","hétfő", "kedd", "szerda", "csütörtök", "péntek", "szombat"],
+ day_abbr: ["vas.","hétfő", "kedd", "szer.", "csüt.", "pén.", "szom."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "yyyy. mmmm",
+ full_short: "mmm d.",
+ full: "yyyy. mmmm d.",
+ time_short: "HH:MM:ss",
+ time_no_seconds_short: "HH:MM",
+ time_no_seconds_small_date: "HH:MM '
'yyyy. mmmm d.''",
+ full_long: "yyyy. mmm d.',' HH:MM",
+ full_long_small_date: "HH:MM '
yyyy. mmm d.''"
+ },
+ messages: {
+ loading_timeline: "Az idővonal betöltése... ",
+ return_to_title: "Vissza a címhez",
+ expand_timeline: "Nagyítás",
+ contract_timeline: "Kicsinyítés",
+ wikipedia: "A Wikipédiából, a szabad enciklopédiából",
+ loading_content: "Tartalom betöltése",
+ loading: "Betöltés",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
\ No newline at end of file
diff --git a/source/js/Core/Language/locale/hy.js b/source/js/Core/Language/locale/hy.js
new file mode 100644
index 000000000..8f1f1421a
--- /dev/null
+++ b/source/js/Core/Language/locale/hy.js
@@ -0,0 +1,37 @@
+/* Armenian LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "hy",
+ api: {
+ wikipedia: "hy"
+ },
+ date: {
+ month: ["Հունվար", "Փետրվար", "Մարտ", "Ապրիլ", "Մայիս", "Հունիս", "Հուլիս", "Օգոստոս", "Սեպտեմբեր", "Հոկտեմբեր", "Նոյեմբեր", "Դեկտեմբեր"],
+ month_abbr: ["Հնվ.", "Փետ.", "Մար", "Ապր", "Մայ", "Հուն", "Հուլ", "Օգս.", "Սեպ.", "Հոկ.", "Նոյ.", "Դեկ."],
+ day: ["Կիրակի","Երկուշաբթի", "Երեքշաբթի", "Չորեքշաբթի", "Հինգշաբթի", "Ուրբաթ", "Շաբաթ"],
+ day_abbr: ["Կի.","Եկ.", "Եք.", "Չո.", "Հի.", "Ու.", "Շա."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d mmm",
+ full: "d mmmm',' yyyy",
+ time_short: "HH:MM:ss",
+ time_no_seconds_short: "H:MM",
+ time_no_seconds_small_date: "H:MM'
'd mmmm',' yyyy''",
+ full_long: "d mmm',' yyyy 'at' H:MM",
+ full_long_small_date: "H:MM '
d mmm',' yyyy''"
+ },
+ messages: {
+ loading_timeline: "Ժամանակագրությունը բեռնվում է... ",
+ return_to_title: "Վերադառնալ վերնագրին",
+ expand_timeline: "Լայնացնել ժամանակագրությունը",
+ contract_timeline: "Նեղացնել ժամանակագրությունը",
+ wikipedia: "Ըստ Վիքիպեդիա ազատ հանրագիտարանի",
+ loading_content: "Բովանդակությունը բեռնվում է",
+ loading: "Բեռնում",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
\ No newline at end of file
diff --git a/source/js/Core/Language/locale/id.js b/source/js/Core/Language/locale/id.js
new file mode 100644
index 000000000..524487198
--- /dev/null
+++ b/source/js/Core/Language/locale/id.js
@@ -0,0 +1,37 @@
+/* Indonesian LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "id",
+ api: {
+ wikipedia: "id"
+ },
+ date: {
+ month: ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"],
+ month_abbr: ["Jan.", "Feb.", "Maret", "April", "Mei", "Juni", "July", "Agus.", "Sept.", "Okt.", "Nov.", "Des."],
+ day: ["Ahad","Senin", "Selasa", "Rabu", "Kamis", "Jum'at", "Sabtu"],
+ day_abbr: ["Ahad","Sen.", "Sel.", "Rabu", "Kamis", "Jum.", "Sab."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d mmm",
+ full: "d mmmm yyyy",
+ time_short: "HH:MM:ss",
+ time_no_seconds_short: "HH:MM",
+ time_no_seconds_small_date: "HH:MM'
'd mmmm yyyy''",
+ full_long: "dddd',' d mmm yyyy 'pukul' HH:MM",
+ full_long_small_date: "HH:MM'
'dddd',' d mmm yyyy''"
+ },
+ messages: {
+ loading_timeline: "Memuat Timeline... ",
+ return_to_title: "Kembali ke Judul",
+ expand_timeline: "Kembangkan Timeline",
+ contract_timeline: "Ciutkan Timeline",
+ wikipedia: "dari Wikipedia, ensiklopedia bebas",
+ loading_content: "Memuat Isi",
+ loading: "Memuat",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
diff --git a/source/js/Core/Language/locale/is.js b/source/js/Core/Language/locale/is.js
new file mode 100644
index 000000000..57ba7c9bf
--- /dev/null
+++ b/source/js/Core/Language/locale/is.js
@@ -0,0 +1,38 @@
+/* Icelandic LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "is",
+ api: {
+ wikipedia: "is"
+ },
+ date: {
+ month: ["janúar", "febrúar", "mars", "apríl", "maí", "júní", "júlí", "ágúst", "september", "október", "nóvember", "desember"],
+ month_abbr: ["jan.", "feb.", "mars", "apríl", "maí", "júní", "júlí", "ágúst", "sept.", "okt.", "nóv.", "des."],
+ day: ["sunnudagur", "mánudagur", "þriðjudagur", "miðvikudagur", "fimmtudagur", "föstudagur", "laugardagur"],
+ day_abbr: ["sun.","mán.", "þri.", "mið.", "fim.", "fös.", "lau."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d'.' mmm",
+ full: "d'.' mmmm yyyy",
+ time_short: "h:MM:ss TT",
+ time_no_seconds_short: "hh:MM TT",
+ time_no_seconds_small_date: "hh:MM TT'
'd'.' mmmm yyyy''",
+ full_long: "dddd',' d'.' mmm yyyy 'kl.' hh:MM TT",
+ full_long_small_date: "hh:MM TT'
'dddd',' d'.' mmm yyyy''"
+ },
+ messages: {
+ loading_timeline: "Raða upp tímalínu... ",
+ return_to_title: "Til baka á forsíðu",
+ expand_timeline: "Stækka tímalínu",
+ contract_timeline: "Minnka tímalínu",
+ wikipedia: "From Wikipedia, the free encyclopedia",
+ loading_content: "Raða",
+ loading: "Raða",
+ swipe_nav: "Swipe to Navigate"
+ }
+ }
+}
diff --git a/source/js/Core/Language/locale/it.js b/source/js/Core/Language/locale/it.js
new file mode 100644
index 000000000..1b50fc48f
--- /dev/null
+++ b/source/js/Core/Language/locale/it.js
@@ -0,0 +1,38 @@
+/* Italian LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "it",
+ api: {
+ wikipedia: "it"
+ },
+ date: {
+ month: ["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],
+ month_abbr: ["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"],
+ day: ["Domenica","Lunedí","Martedí","Mercoledí","Giovedí","Venerdí","Sabato"],
+ day_abbr: ["Dom.","Lun.","Mar.","Mer.","Gio.","Ven.","Sab."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d mmm",
+ full: "d mmmm yyyy",
+ time_short: "HH:MM:ss",
+ time_no_seconds_short: "HH:MM",
+ time_no_seconds_small_date: "HH:MM'
'd mmmm yyyy''",
+ full_long: "dddd',' d mmm yyyy 'alle' HH:MM",
+ full_long_small_date: "HH:MM'
'dddd',' d mmm yyyy''"
+ },
+ messages: {
+ loading_timeline: "Caricamento Timeline... ",
+ return_to_title: "Ritorna all'inizio",
+ expand_timeline: "Espandi la Timeline",
+ contract_timeline: "Contrai la Timeline",
+ wikipedia: "Wikipedia, L’enciclopedia libera",
+ loading_content: "Caricamento contenuti",
+ loading: "Caricamento",
+ swipe_nav: "Swipe to Navigate"
+ }
+ }
+}
\ No newline at end of file
diff --git a/source/js/Core/Language/locale/iw.js b/source/js/Core/Language/locale/iw.js
new file mode 100644
index 000000000..b3e3c807a
--- /dev/null
+++ b/source/js/Core/Language/locale/iw.js
@@ -0,0 +1,39 @@
+/* Hebrew (beta) LANGUAGE
+================================================== */
+trace("Language code 'iw' for Hebrew is deprecated. Use 'he' instead.")
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "iw",
+ right_to_left: true,
+ api: {
+ wikipedia: "he"
+ },
+ date: {
+ month: ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"],
+ month_abbr: ["ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"],
+ day: ["ראשון","שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת"],
+ day_abbr: ["יום א'","יום ב'", "יום ג'", "יום ד'", "יום ה'", "יום ו'", "שבת"]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d mmm",
+ full: "d mmmm,' yyyy",
+ time_short: "h:MM:ss TT",
+ time_no_seconds_short: "h:MM TT",
+ time_no_seconds_small_date: "h:MM TT'
'mmmm d',' yyyy''",
+ full_long: "d' mmm,' yyyy 'at' h:MM TT",
+ full_long_small_date: "h:MM TT'
mmm d',' yyyy''"
+ },
+ messages: {
+ loading_timeline: "טוען את ציר הזמן... ",
+ return_to_title: "חזור לכותרת",
+ expand_timeline: "הרחב את ציר הזמן",
+ contract_timeline: "צמצם את ציר הזמן",
+ wikipedia: "מויקיפדיה, האינציקלופדיה החופשית",
+ loading_content: "התוכן בטעינה...",
+ loading: "טוען...",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
\ No newline at end of file
diff --git a/source/js/Core/Language/locale/ja.js b/source/js/Core/Language/locale/ja.js
new file mode 100644
index 000000000..9536b44fc
--- /dev/null
+++ b/source/js/Core/Language/locale/ja.js
@@ -0,0 +1,38 @@
+/* Japanese LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "ja",
+ api: {
+ wikipedia: "ja"
+ },
+ date: {
+ month: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
+ month_abbr: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
+ day: ["日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"],
+ day_abbr: ["日", "月", "火", "水", "木", "金", "土"]
+ },
+ dateformats: {
+ year: "yyyy年",
+ month_short: "mmm",
+ month: "yyyy年 m月d日 (ddd)",
+ full_short: "yyyy年m月d日",
+ full: "yyyy年 m月d日 (ddd)",
+ time_short: "HH:MM:ss",
+ time_no_seconds_short: "HH:MM",
+ time_no_seconds_small_date: "HH:MM'
'yyyy年m月d日''",
+ full_long: "yyyy年m月d日 H時M分s秒",
+ full_long_small_date: "HH:MM:ss'
'yyyy年m月d日''"
+ },
+ messages: {
+ loading_timeline: "タイムラインをロードしています…",
+ return_to_title: "タイトルへ戻ります",
+ expand_timeline: "タイムラインを展開します",
+ contract_timeline: "タイムラインを縮めます",
+ wikipedia: "出典:フリー百科事典『ウィキペディア(Wikipedia)』",
+ loading_content: "コンテンツをロードしています",
+ loading: "ローディング",
+ swipe_nav: "Swipe to Navigate"
+ }
+ }
+}
diff --git a/source/js/Core/Language/locale/ka.js b/source/js/Core/Language/locale/ka.js
new file mode 100644
index 000000000..4d410fb0b
--- /dev/null
+++ b/source/js/Core/Language/locale/ka.js
@@ -0,0 +1,37 @@
+/* Georgian LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "ka",
+ api: {
+ wikipedia: "ka"
+ },
+ date: {
+ month: ["იანვარი", "თებერვალი", "მარტი", "აპრილი", "მაისი", "ივნისი", "ივლისი", "აგვისტო", "სექტემბერი", "ოქტომბერი", "ნოემბერი", "დეკემბერი"],
+ month_abbr: ["იან.", "თებ.", "მარტი", "აპრ", "მაი.", "ივნ.", "ივლ.", "აგვ.", "სექ.", "ოქტ.", "ნოე.", "დეკ."],
+ day: ["კვირა","ორშაბათი", "სამშაბათი", "ოთხშაბათი", "ხუთშაბათი", "პარასკევი", "შაბათი"],
+ day_abbr: ["კვ.","ორ.", "სამ.", "ოთხ.", "ხუთ.", "პარ.", "შაბ."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "mmm d",
+ full: "mmmm d',' yyyy",
+ time_short: "h:MM:ss TT",
+ time_no_seconds_short: "h:MM TT",
+ time_no_seconds_small_date: "h:MM TT'
'mmmm d',' yyyy''",
+ full_long: "mmm d',' yyyy 'at' h:MM TT",
+ full_long_small_date: "h:MM TT'
mmm d',' yyyy''"
+ },
+ messages: {
+ loading_timeline: "იტვირთება თაიმლაინი... ",
+ return_to_title: "დაბრუნდი თავში",
+ expand_timeline: "გაშალე თაიმლაინი",
+ contract_timeline: "Contract Timeline",
+ wikipedia: "თავისუფალი ენციკლოპედია Wikipedia-დან",
+ loading_content: "შინაარსის ჩამოტვირთვა",
+ loading: "ჩამოტვირთვა",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
diff --git a/source/js/Core/Language/locale/ko.js b/source/js/Core/Language/locale/ko.js
new file mode 100644
index 000000000..daa15eb40
--- /dev/null
+++ b/source/js/Core/Language/locale/ko.js
@@ -0,0 +1,37 @@
+/* Korean LANGUAGE
+================================================== */
+if (typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "ko",
+ api: {
+ wikipedia: "ko"
+ },
+ date: {
+ month: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
+ month_abbr: ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"],
+ day: ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"],
+ day_abbr: ["일", "월", "화", "수", "목", "금", "토"]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mm",
+ month: "yyyy년 m월",
+ full_short: "mm-dd",
+ full: "yyyy년 m월 d일 ",
+ time_short: "HH:MM:ss",
+ time_no_seconds_short: "HH:MM",
+ time_no_seconds_small_date: "HH:MM'
'yyyy mmm d''",
+ full_long: "dddd',' d mmm yyyy 'um' HH:MM",
+ full_long_small_date: "HH:MM'
'dddd','yyyy mmm d''"
+ },
+ messages: {
+ loading_timeline: "타임라인을 불러오고 있습니다.... ",
+ return_to_title: "첫화면으로",
+ expand_timeline: "타임라인 확대",
+ contract_timeline: "타임라인 축소",
+ wikipedia: "출처: 위키피디아, 우리 모두의 백과사전",
+ loading_content: "내용을 불러오고 있습니다.",
+ loading: "불러오는중",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
\ No newline at end of file
diff --git a/source/js/Core/Language/locale/lb.js b/source/js/Core/Language/locale/lb.js
new file mode 100644
index 000000000..f194790e0
--- /dev/null
+++ b/source/js/Core/Language/locale/lb.js
@@ -0,0 +1,37 @@
+/* Luxembourgish LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+VMM.Language = {
+lang: "lb",
+api: {
+wikipedia: "lb"
+},
+date: {
+month: ["Januar", "Februar", "Mäerz", "Abrëll", "Mee", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"],
+month_abbr: ["Jan.", "Feb.", "Mäe.", "Abr.", "Mee", "Jun.", "Jul", "Aug.", "Sept.", "Okt.", "Nov.", "Dez."],
+day: ["Sonndeg","Méindeg", "Dënschdeg", "Mëttwoch", "Donneschden", "Freiden", "Samschden"],
+day_abbr: ["Son.","Méi.", "Dë.", "Më.", "Do.", "Fr.", "Sa."]
+},
+dateformats: {
+year: "yyyy",
+month_short: "mmm",
+month: "mmmm yyyy",
+full_short: "mmm d",
+full: "d'.' mmmm yyyy",
+time_short: "hh:MM:ss",
+time_no_seconds_short: "hh:MM",
+time_no_seconds_small_date: "h:MM TT'
'd'.' mmmm yyyy''",
+full_long: "d'.' mmm yyyy 'um' hh:MM TT",
+full_long_small_date: "hh:MM'
d'.' mmm yyyy''"
+},
+messages: {
+loading_timeline: "Timeline gëtt gelueden... ",
+return_to_title: "Zeréck zum Titel",
+expand_timeline: "Timeline vergréisseren",
+contract_timeline: "Timeline verklengeren",
+wikipedia: "Vu Wikipedia, der fräier Enzyklopedie",
+loading_content: "Inhalt lued",
+loading: "Lued"
+}
+}
+}
diff --git a/source/js/Core/Language/locale/lt.js b/source/js/Core/Language/locale/lt.js
new file mode 100644
index 000000000..d9d8988fb
--- /dev/null
+++ b/source/js/Core/Language/locale/lt.js
@@ -0,0 +1,37 @@
+/* Lithuanian LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "lt",
+ api: {
+ wikipedia: "lt"
+ },
+ date: {
+ month: ["Sausio", "Vasario", "Kovo", "Balandžio", "Gegužės", "Birželio", "Liepos", "Rugpjūčio", "Rugsėjo", "Spalio", "Lapkričio", "Gruodžio"],
+ month_abbr: ["Saus.", "Vas.", "Kov.", "Bal.", "Geg.", "Birž.", "Liep.", "Rugpj.", "Rug.", "Spal.", "Lapkr.", "Gruod."],
+ day: ["Sekmadienis", "Pirmadienis", "Antradienis", "Trečiadienis", "Ketvirtadienis", "Penktadienis", "Šeštadienis"],
+ day_abbr: ["Sek.","Pirm.", "Antr.", "Treč.", "Ketv.", "Penkt.", "Šešt."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "mmm d",
+ full: "mmmm d',' yyyy",
+ time_short: "h:MM:ss TT",
+ time_no_seconds_short: "h:MM TT",
+ time_no_seconds_small_date: "h:MM TT'
'mmmm d',' yyyy''",
+ full_long: "mmm d',' yyyy 'at' h:MM TT",
+ full_long_small_date: "h:MM TT'
mmm d',' yyyy''"
+ },
+ messages: {
+ loading_timeline: "Kraunama laiko juosta... ",
+ return_to_title: "Grįžti į titulinį",
+ expand_timeline: "Išplėsti laiko juostą",
+ contract_timeline: "Sutraukti laiko juostą",
+ wikipedia: "Iš Vikipedijos, laisvosios enciklopedijos",
+ loading_content: "Kraunamas turinys... ",
+ loading: "Kraunama"
+ }
+ }
+}
\ No newline at end of file
diff --git a/source/js/Core/Language/locale/lv.js b/source/js/Core/Language/locale/lv.js
new file mode 100644
index 000000000..fc05011d2
--- /dev/null
+++ b/source/js/Core/Language/locale/lv.js
@@ -0,0 +1,37 @@
+/* Latvian LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "lv",
+ api: {
+ wikipedia: "lv"
+ },
+ date: {
+ month: ["Janvāris", "Februāris", "Marts", "Aprīlis", "Maijs", "Jūnijs", "Jūlijs", "Augusts", "Septembris", "Oktobris", "Novembris", "Decembris"],
+ month_abbr: ["Jan.", "Feb.", "Mar.", "Apr.", "Mai.", "Jūn.", "Jūl.", "Aug.", "Sep.", "Okt.", "Nov.", "Dec."],
+ day: ["Svētdiena", "Pirmdiena", "Otrdiena", "Trešdiena", "Ceturtdiena", "Piektdiena", "Sestdiena"],
+ day_abbr: ["Sun.", "Mon.", "Tues.", "Wed.", "Thurs.", "Fri.", "Sat."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "mmm d",
+ full: "d. mmmm',' yyyy",
+ time_short: "h:MM:ss TT",
+ time_no_seconds_short: "HH:MM TT",
+ time_no_seconds_small_date: "h:MM TT'
'mmmm d',' yyyy''",
+ full_long: "mmm d',' yyyy 'at' hh:MM TT",
+ full_long_small_date: "hh:MM TT'
mmm d',' yyyy''"
+ },
+ messages: {
+ loading_timeline: "Ielādējas grafiks... ",
+ return_to_title: "Atgriezties uz sākumu",
+ expand_timeline: "Izvērst grafiku",
+ contract_timeline: "Sašaurināt grafiku",
+ wikipedia: "No Wikipedia, brīvās enciklopēdijas",
+ loading_content: "Ielādējas saturs",
+ loading: "Ielādējas",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
diff --git a/source/js/Core/Language/locale/ms.js b/source/js/Core/Language/locale/ms.js
new file mode 100644
index 000000000..2592083dc
--- /dev/null
+++ b/source/js/Core/Language/locale/ms.js
@@ -0,0 +1,37 @@
+/* Malay LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "ms",
+ api: {
+ wikipedia: "ms"
+ },
+ date: {
+ month: ["Januari", "Februari", "Mac", "April", "Mei", "Jun", "Julai", "Ogos", "September", "Oktober", "November", "Disember"],
+ month_abbr: ["Jan.", "Feb.", "Mac", "Apr", "Mei", "Jun", "Jul", "Ogos.", "Sept.", "Okt.", "Nov.", "Dis."],
+ day: ["Ahad","Isnin", "Selasa", "Rabu", "Khamis", "Jumaat", "Sabtu"],
+ day_abbr: ["Ahd.","Isn.", "Sel.", "Rab.", "Kha.", "Jum.", "Sab."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d mmm",
+ full: "d mmmm yyyy",
+ time_short: "h:MM:ss TT",
+ time_no_seconds_short: "h:MM TT",
+ time_no_seconds_small_date: "h:MM TT'
'd mmmm yyyy''",
+ full_long: "d mmm yyyy 'jam' h:MM TT",
+ full_long_small_date: "h:MM TT'
d mmm yyyy''"
+ },
+ messages: {
+ loading_timeline: "Memuat Garis Masa... ",
+ return_to_title: "Kembali ke Tajuk",
+ expand_timeline: "Besarkan Garis Masa",
+ contract_timeline: "Kecilkan Garis Masa",
+ wikipedia: "Daripada Wikipedia, ensiklopedia bebas.",
+ loading_content: "Memuat Kandungan",
+ loading: "Memuat",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
\ No newline at end of file
diff --git a/source/js/Core/Language/locale/ne.js b/source/js/Core/Language/locale/ne.js
new file mode 100644
index 000000000..95123a3e5
--- /dev/null
+++ b/source/js/Core/Language/locale/ne.js
@@ -0,0 +1,37 @@
+/* Nepali LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "ne",
+ api: {
+ wikipedia: "ne"
+ },
+ date: {
+ month: ["जनवरी", "फेब्रुवरी", "मार्च", "अप्रिल", "मे", "जून", "जुलाई", "अगस्ट", "सेप्टेम्बर", "अक्टोबर", "नोभेम्बर", "डिसेम्बर"],
+ month_abbr: ["जनवरी", "फेब्रुवरी", "मार्च", "अप्रिल", "मे", "जून", "जुलाई", "अगस्ट", "सेप्टेम्बर", "अक्टोबर", "नोभेम्बर", "डिसेम्बर"],
+ day: ["आइतबार","सोमबार", "मंगलबार", "बुधबार", "बिहिबार", "शुक्रबार", "शनिबार"],
+ day_abbr: ["आइतबार","सोमबार", "मंगलबार", "बुधबार", "बिहिबार", "शुक्रबार", "शनिबार"]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "mmm d",
+ full: "mmmm d',' yyyy",
+ time_short: "h:MM:ss TT",
+ time_no_seconds_short: "h:MM TT",
+ time_no_seconds_small_date: "h:MM TT'
'mmmm d',' yyyy''",
+ full_long: "mmm d',' yyyy 'at' h:MM TT",
+ full_long_small_date: "h:MM TT'
mmm d',' yyyy''"
+ },
+ messages: {
+ loading_timeline: "टाइमलाइन लोड हुदैछ... ",
+ return_to_title: "शीर्षकमा फर्कनुहोस्",
+ expand_timeline: "टाइमलाइन लामो बनाउनुहोस्",
+ contract_timeline: "टाइमलाइन छोटो बनाउनुहोस्",
+ wikipedia: "विकिपिडियाबाट",
+ loading_content: "सामग्री लोड हुदैछ",
+ loading: "लोड हुदैछ"
+ }
+ }
+}
\ No newline at end of file
diff --git a/source/js/Core/Language/locale/nl.js b/source/js/Core/Language/locale/nl.js
new file mode 100644
index 000000000..76b09958a
--- /dev/null
+++ b/source/js/Core/Language/locale/nl.js
@@ -0,0 +1,38 @@
+/* Dutch LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "nl",
+ api: {
+ wikipedia: "nl"
+ },
+ date: {
+ month: ["januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"],
+ month_abbr: ["jan", "febr", "maa", "apr", "mei", "juni", "juli", "aug", "sept", "okt", "nov", "dec"],
+ day: ["zondag","maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"],
+ day_abbr: ["zo","ma", "di", "wo", "do", "vr", "za"]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d mmm",
+ full: "d mmmm yyyy",
+ time_short: "HH:MM:ss",
+ time_no_seconds_short: "HH:MM",
+ time_no_seconds_small_date: "HH:MM'
'd mmmm yyyy''",
+ full_long: "dddd',' d mmm yyyy 'om' HH:MM",
+ full_long_small_date: "HH:MM'
'dddd',' d mmm yyyy''"
+ },
+ messages: {
+ loading_timeline: "Tijdlijn laden ... ",
+ return_to_title: "Terug naar het begin",
+ expand_timeline: "Tijdlijn uitzoomen",
+ contract_timeline: "Tijdlijn inzoomen",
+ wikipedia: "From Wikipedia, the free encyclopedia",
+ loading_content: "Inhoud laden",
+ loading: "Laden",
+ swipe_nav: "Swipe to Navigate"
+ }
+ }
+}
diff --git a/source/js/Core/Language/locale/no.js b/source/js/Core/Language/locale/no.js
new file mode 100644
index 000000000..3ca1e5750
--- /dev/null
+++ b/source/js/Core/Language/locale/no.js
@@ -0,0 +1,37 @@
+/* Norwegian LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "no",
+ api: {
+ wikipedia: "no"
+ },
+ date: {
+ month: ["Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"],
+ month_abbr: ["Jan.", "Feb.", "Mars", "Apr.", "Mai", "Juni", "Juli", "Aug.", "Sep.", "Okt.", "Nov.", "Des."],
+ day: ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"],
+ day_abbr: ["Søn.", "Man.", "Tir.", "Ons.", "Tor.", "Fre.", "Lør."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d. mmm",
+ full: "d. mmmm',' yyyy",
+ time_short: "HH:MM:ss",
+ time_no_seconds_short: "HH:MM",
+ time_no_seconds_small_date: "HH:MM'
'd. mmmm',' yyyy''",
+ full_long: "dddd',' d. mmm',' yyyy 'kl.' HH:MM",
+ full_long_small_date: "HH:MM'
'dddd',' d. mmm',' yyyy''"
+ },
+ messages: {
+ loading_timeline: "Laster tidslinje... ",
+ return_to_title: "Tilbake til tittel",
+ expand_timeline: "Utvid tidslinje",
+ contract_timeline: "Krymp tidslinje",
+ wikipedia: "Fra Wikipedia, den frie encyklopedi",
+ loading_content: "Laster innhold",
+ loading: "Laster",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
\ No newline at end of file
diff --git a/source/js/Core/Language/locale/pl.js b/source/js/Core/Language/locale/pl.js
new file mode 100644
index 000000000..aacfe083c
--- /dev/null
+++ b/source/js/Core/Language/locale/pl.js
@@ -0,0 +1,37 @@
+/* Polish LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "pl",
+ api: {
+ wikipedia: "pl"
+ },
+ date: {
+ month: ["Stycznia", "Lutego", "Marca", "Kwietnia", "Maja", "Czerwca", "Lipca", "Sierpnia", "Września", "Października", "Listopada", "Grudnia"],
+ month_abbr: ["Sty.", "Lut.", "Mar.", "Kwi.", "Maj.", "Cze.", "Lip.", "Sie.", "Wrz.", "Paź.", "Lis.", "Gru."],
+ day: ["Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota"],
+ day_abbr: ["Nie.", "Pon.", "Wto.", "Śro.", "Czw.", "Pią.", "Sob."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d mmm",
+ full: "d mmmm yyyy",
+ time_short: "HH:MM:ss",
+ time_no_seconds_short: "HH:MM",
+ time_no_seconds_small_date: "HH:MM'
'd mmmm yyyy''",
+ full_long: "dddd',' d mmm yyyy 'um' HH:MM",
+ full_long_small_date: "HH:MM'
'dddd',' d mmm yyyy''"
+ },
+ messages:{
+ loading_timeline: "Ładowanie osi czasu... ",
+ return_to_title: "Wróć do tytułu",
+ expand_timeline: "Powiększ oś czasu",
+ contract_timeline: "Pomniejsz oś czasu",
+ wikipedia: "Z Wikipedii, wolnej encyklopedii",
+ loading_content: "Ładowanie zawartości",
+ loading: "Ładowanie",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
diff --git a/source/js/Core/Language/locale/pt-br.js b/source/js/Core/Language/locale/pt-br.js
new file mode 100644
index 000000000..b26019d26
--- /dev/null
+++ b/source/js/Core/Language/locale/pt-br.js
@@ -0,0 +1,38 @@
+/* Brazilian Portuguese LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "pt-br",
+ api: {
+ wikipedia: "pt"
+ },
+ date: {
+ month: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"],
+ month_abbr: ["Jan.", "Fev.", "Mar.", "Abr.", "Mai.", "Jun.", "Jul.", "Ago.", "Set.", "Out.", "Nov.", "Dez."],
+ day: ["Domingo","Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"],
+ day_abbr: ["Dom.","Seg.", "Ter.", "Qua.", "Qui.", "Sex.", "Sáb."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm 'de' yyyy",
+ full_short: "d 'de' mmm",
+ full: "d 'de' mmmm',' yyyy",
+ time_short: "h:MM:ss TT",
+ time_no_seconds_short: "hh:MM TT",
+ time_no_seconds_small_date: "hh:MM TT'
'd 'de' mmmm',' yyyy''",
+ full_long: "dddd',' d 'de' mmm',' yyyy 'às' hh:MM TT",
+ full_long_small_date: "hh:MM TT'
'dddd',' d 'de' mmm',' yyyy''"
+ },
+ messages: {
+ loading_timeline: "Carregando Timeline... ",
+ return_to_title: "Voltar para o título",
+ expand_timeline: "Expandir Timeline",
+ contract_timeline: "Contrair Timeline",
+ wikipedia: "Wikipédia, A enciclopédia livre",
+ loading_content: "Carregando Conteúdo",
+ loading: "Carregando",
+ swipe_nav: "Swipe to Navigate"
+ }
+ }
+}
diff --git a/source/js/Core/Language/locale/pt.js b/source/js/Core/Language/locale/pt.js
new file mode 100644
index 000000000..eac2f8897
--- /dev/null
+++ b/source/js/Core/Language/locale/pt.js
@@ -0,0 +1,37 @@
+/* Portuguese LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "pt",
+ api: {
+ wikipedia: "pt"
+ },
+ date: {
+ month: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"],
+ month_abbr: ["Jan", "Fev", "Mar", "Abr", "Maio", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"],
+ day: ["Domingo","Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sabado"],
+ day_abbr: ["Dom","Seg", "Ter", "Qua", "Qui", "Sex", "Sab"]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "mmm d",
+ full: "mmmm d',' yyyy",
+ time_short: "h:MM:ss TT",
+ time_no_seconds_short: "h:MM TT",
+ time_no_seconds_small_date: "h:MM TT'
'mmmm d',' yyyy''",
+ full_long: "mmm d',' yyyy 'at' hh:MM TT",
+ full_long_small_date: "hh:MM TT'
mmm d',' yyyy''"
+ },
+ messages: {
+ loading_timeline: "A carregar a timeline... ",
+ return_to_title: "Voltar ao Título",
+ expand_timeline: "Expandir Timeline",
+ contract_timeline: "Colapsar Timeline",
+ wikipedia: "Wikipedia, A enciclopedia Livre.",
+ loading_content: "A carregar o conteúdo",
+ loading: "A carregar",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
\ No newline at end of file
diff --git a/source/js/Core/Language/locale/rm.js b/source/js/Core/Language/locale/rm.js
new file mode 100644
index 000000000..934518f19
--- /dev/null
+++ b/source/js/Core/Language/locale/rm.js
@@ -0,0 +1,37 @@
+/* Romansh / Rumantsch LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "rm",
+ api: {
+ wikipedia: "rm"
+ },
+ date: {
+ month: ["Schaner", "Favrer", "Mars", "Avrigl", "Matg", "Zercladur", "Fanadur", "Avust", "Settember", "October", "November", "December"],
+ month_abbr: ["Schan.", "Favr.", "Mars", "Avr.", "Matg", "Zercl.", "Fan.", "Avust", "Sett.", "Oct.", "Nov.", "Dec."],
+ day: ["Dumengia","Glindesdi", "Mardi", "Mesemna", "Gievgia", "Venderdi", "Sonda"],
+ day_abbr: ["Du","Gli", "Ma", "Me", "Gie", "Ve", "So"]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d 'da' mmm",
+ full: "d 'da' mmmm yyyy",
+ time_short: "HH:M:s",
+ time_no_seconds_short: "HH:M",
+ time_no_seconds_small_date: "HH:M'
'd 'da' mmmm yyyy''",
+ full_long: "d 'da' mmm yyyy', las' HH:M",
+ full_long_small_date: "HH:M'
d 'da' mmm yyyy''"
+ },
+ messages: {
+ loading_timeline: "Chargiar la cronologia... ",
+ return_to_title: "Turnar al titel",
+ expand_timeline: "Expander la cronologia",
+ contract_timeline: "Contract Timeline",
+ wikipedia: "Da Vichipedia, l'enciclopedia libra",
+ loading_content: "Chargiar il cuntegn",
+ loading: "Chargiar"
+ }
+ }
+}
\ No newline at end of file
diff --git a/source/js/Core/Language/locale/ro.js b/source/js/Core/Language/locale/ro.js
new file mode 100644
index 000000000..6fb98064c
--- /dev/null
+++ b/source/js/Core/Language/locale/ro.js
@@ -0,0 +1,37 @@
+/* Romanian LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "ro",
+ api: {
+ wikipedia: "ro"
+ },
+ date: {
+ month: ["Ianuarie", "Februarie", "Martie", "Aprilie", "Mai", "Iunie", "Iulie", "August", "Septembrie", "Octombrie", "Noiembrie", "Decembrie"],
+ month_abbr: ["Ian.", "Feb.", "Mar.", "Apr.", "Mai", "Iun.", "Iul.", "Aug.", "Sep.", "Oct.", "Noi.", "Dec."],
+ day: ["Duminică","Luni", "Marți", "Miercuri", "Joi", "Vineri", "Sâmbătă"],
+ day_abbr: ["Dum.","Luni", "Mar.", "Mie.", "Joi", "Vin.", "Sâm."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d mmm",
+ full: "d mmmm',' yyyy",
+ time_short: "h:MM:ss TT",
+ time_no_seconds_short: "h:MM TT",
+ time_no_seconds_small_date: "h:MM TT'
'd mmmm',' yyyy''",
+ full_long: "d mmm',' yyyy 'at' h:MM TT",
+ full_long_small_date: "h:MM TT'
d mmm',' yyyy''"
+ },
+ messages: {
+ loading_timeline: "Se încarcă cronologia... ",
+ return_to_title: "Înapoi la titlu",
+ expand_timeline: "Extinde cronologia",
+ contract_timeline: "Restrânge cronologia",
+ wikipedia: "De pe Wikipedia, enciclopedia gratuită",
+ loading_content: "Se încarcă conținutul",
+ loading: "Se încarcă"
+ }
+ }
+}
\ No newline at end of file
diff --git a/source/js/Core/Language/locale/ru.js b/source/js/Core/Language/locale/ru.js
new file mode 100644
index 000000000..c7737d1bb
--- /dev/null
+++ b/source/js/Core/Language/locale/ru.js
@@ -0,0 +1,43 @@
+/*
+ TimelineJS - ver. 2.30.0 - 2014-02-20
+ Copyright (c) 2012-2013 Northwestern University
+ a project of the Northwestern University Knight Lab, originally created by Zach Wise
+ https://github.com/NUKnightLab/TimelineJS
+ This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
+ If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+*/
+/* Russian LANGUAGE
+ ================================================== */
+typeof VMM != "undefined" && (VMM.Language = {
+ lang: "ru",
+ api: {
+ wikipedia: "ru"
+ },
+ date: {
+ month: ["января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря"],
+ month_abbr: ["янв.", "фев.", "март", "апр.", "май", "июнь", "июль", "авг.", "сент.", "окт.", "нояб.", "дек."],
+ day: ["воскресенье", "понедельник", "вторник", "среда", "четверг", "пятница", "суббота"],
+ day_abbr: ["вск.", "пн.", "вт.", "ср.", "чт.", "пт.", "сб."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d mmm",
+ full: "d mmmm',' yyyy",
+ time_short: "H:MM:ss",
+ time_no_seconds_short: "H:MM",
+ time_no_seconds_small_date: "H:MM'
'd mmmm',' yyyy''",
+ full_long: "d mmm',' yyyy 'в' HH:MM",
+ full_long_small_date: "HH:MM'
d mmm',' yyyy''"
+ },
+ messages: {
+ loading_timeline: "Загрузка... ",
+ return_to_title: "Вернуться к заголовку",
+ expand_timeline: "Увеличить",
+ contract_timeline: "Уменьшить",
+ wikipedia: "Из Wikipedia",
+ loading_content: "Загрузка контента",
+ loading: "Загрузка"
+ }
+});
\ No newline at end of file
diff --git a/source/js/Core/Language/locale/si.js b/source/js/Core/Language/locale/si.js
new file mode 100644
index 000000000..9384e3529
--- /dev/null
+++ b/source/js/Core/Language/locale/si.js
@@ -0,0 +1,34 @@
+/* Sinhalese LANGUAGE
+================================================== */
+typeof VMM != "undefined" && (VMM.Language = {
+ lang: "si",
+ api: {
+ wikipedia: "si"
+ },
+ date: {
+ month: ["ජනවාරි", "පෙබරවාරි", "මාර්තු", "අප්රේල්", "මැයි", "ජූනි", "ජූලි", "අගෝස්තු", "සැප්තැම්බර්", "ඔක්තෝම්බර්", "නොවැම්බර්", "දෙසැම්බර්"],
+ month_abbr: ["ජන.", "පෙබ.", "මාර්තු", "අප්රේල්", "මැයි", "ජුනි", "ජුලි", "අගෝ.", "සැප්.", "ඔක්.", "නොවැ.", "දෙසැ."],
+ day: ["ඉරිදා", "සදුදා", "අගහරුවදා", "බදාදා", "බ්රහස්පතින්දා", "සිකුරාදා", "සෙනසුරාදා"],
+ day_abbr: ["ඉරි.", "සදු.", "අග.", "බදා.", "බ්රහස්.", "සිකු.", "සෙන."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "mmm d",
+ full: "mmmm d',' yyyy",
+ time_no_seconds_short: "h:MM TT",
+ time_no_seconds_small_date: "h:MM TT'
'mmmm d',' yyyy''",
+ full_long: "mmm d',' yyyy 'at' h:MM TT",
+ full_long_small_date: "h:MM TT'
mmm d',' yyyy''"
+ },
+ messages: {
+ loading_timeline: "කාල රේඛාව ලෝඩ් වෙමින්... ",
+ return_to_title: "නැවත මාතෘකාවට",
+ expand_timeline: "කාල රේඛාව විහිදන්න",
+ contract_timeline: "කාල රේඛාව අකුලන්න",
+ wikipedia: "විකිපීඩියා, නිදහස් විශ්වකෝෂය වෙතින්",
+ loading_content: "අන්තර්ගතය ලෝඩ් වෙමින්",
+ loading: "ලෝඩ් වෙමින්"
+ }
+});
diff --git a/source/js/Core/Language/locale/sk.js b/source/js/Core/Language/locale/sk.js
new file mode 100644
index 000000000..65a0420de
--- /dev/null
+++ b/source/js/Core/Language/locale/sk.js
@@ -0,0 +1,35 @@
+/* Slovak LANGUAGE
+================================================== */
+typeof VMM != "undefined" && (VMM.Language = {
+ lang: "sk",
+ api: {
+ wikipedia: "sk"
+ },
+ date: {
+ month: ["Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"],
+ month_abbr: ["Jan.", "Feb.", "Marec", "Apríl", "Máj", "Jún", "Júl", "Aug.", "Sept.", "Okt.", "Nov.", "Dec."],
+ day: ["Nedeľa", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatok", "Sobota"],
+ day_abbr: ["Ned.", "Pon.", "Uto.", "Str.", "Štv.", "Pia.", "Sob."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "mmm d",
+ full: "d. mmmm',' yyyy",
+ time_short: "h:MM:ss TT",
+ time_no_seconds_short: "h:MM TT",
+ time_no_seconds_small_date: "h:MM TT'
'mmmm d',' yyyy''",
+ full_long: "mmm d',' yyyy 'at' hh:MM TT",
+ full_long_small_date: "hh:MM TT'
mmm d',' yyyy''"
+ },
+ messages: {
+ loading_timeline: "Načítam časovú os... ",
+ return_to_title: "Späť na úvod",
+ expand_timeline: "Zväčšiť časovú os",
+ contract_timeline: "Zmenšiť časovú os",
+ wikipedia: "Z Wikipedie, encyklopédie zadarmo",
+ loading_content: "Načítam obsah",
+ loading: "Načítanie"
+ }
+});
\ No newline at end of file
diff --git a/source/js/Core/Language/locale/sl.js b/source/js/Core/Language/locale/sl.js
new file mode 100644
index 000000000..4e079df03
--- /dev/null
+++ b/source/js/Core/Language/locale/sl.js
@@ -0,0 +1,37 @@
+/* Slovenian LANGUAGE SLOVENIAN
+================================================== */
+if (typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "sl",
+ api: {
+ wikipedia: "sl"
+ },
+ date: {
+ month: ["januar", "februar", "marec", "april", "maj", "junij", "julij", "avgust", "september", "oktober", "november", "december"],
+ month_abbr: ["jan.", "feb.", "marec", "april", "maj", "junij", "july", "avg.", "sept.", "okt.", "nov.", "dec."],
+ day: ["nedelja", "ponedeljek", "torek", "sreda", "čertek", "petek", "sobota"],
+ day_abbr: ["ned.", "pon.", "tor.", "sre.", "čet.", "pet.", "sob."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d mmm",
+ full: "d mmmm yyyy",
+ time_short: "h:MM:ss TT",
+ time_no_seconds_short: "h:MM",
+ time_no_seconds_small_date: "h:MM' 'd mmmm' 'yyyy",
+ full_long: "d mmm yyyy 'ob' hh:MM",
+ full_long_small_date: "hh:MM' d mmm yyyy"
+ },
+ messages: {
+ loading_timeline: "Nalagam časovni trak... ",
+ return_to_title: "Nazaj na naslov",
+ expand_timeline: "Razširi časovni trak",
+ contract_timeline: "Pokrči časovni trak",
+ wikipedia: "Vir Wikipedija",
+ loading_content: "Nalaganje vsebine",
+ loading: "Nalaganje",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
diff --git a/source/js/Core/Language/locale/sr-cy.js b/source/js/Core/Language/locale/sr-cy.js
new file mode 100644
index 000000000..95f278b7d
--- /dev/null
+++ b/source/js/Core/Language/locale/sr-cy.js
@@ -0,0 +1,38 @@
+/* Serbian (Cyrillic) LANGUAGE
+================================================== */
+if (typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "рп",
+ api: {
+ wikipedia: "рп"
+ },
+ date: {
+ month: ["Јануар", "Фебруар", "Март", "Април", "Мај", "Јун", "Јул", "Август", "Септембар", "Октобар", "Новембар", "Децембар"],
+ month_abbr: ["Јан.", "Феб.", "Март", "Апр.", "Мај", "Јун", "Јул", "Авг.", "Сеп.", "Окт.", "Нов.", "Дец."],
+ day: ["Недеља", "Понедељак", "Уторак", "Среда", "Четвртак", "Петак", "Субота"],
+ day_abbr: ["Нед.", "Пон.", "Уто.", "Сре.", "Чет.", "Пет.", "Суб."]
+ },
+ dateformats: {
+ year: "yyyy.",
+ month_short: "mmm",
+ month: "mmmm yyyy.",
+ full_short: "d. mmm",
+ full: "d. mmmm yyyy.",
+ time_short: "HH:MM:ss",
+ time_no_seconds_short: "HH:MM",
+ time_no_seconds_small_date: "HH:MM'
'd. mmmm yyyy.''",
+ full_long: "d. mmm yyyy. 'u' HH:MM",
+ full_long_small_date: "HH:MM'
d. mmm yyyy.''"
+ },
+ messages: {
+ loading_timeline: "Учитавање... ",
+ return_to_title: "Почетак",
+ expand_timeline: "Увећај",
+ contract_timeline: "Умањи",
+ wikipedia: "Из Википедије, слободне енциклопедије",
+ loading_content: "Садржај се учитава",
+ loading: "Учитава се",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
+
diff --git a/source/js/Core/Language/locale/sr.js b/source/js/Core/Language/locale/sr.js
new file mode 100644
index 000000000..ce4387080
--- /dev/null
+++ b/source/js/Core/Language/locale/sr.js
@@ -0,0 +1,38 @@
+/* Serbian (Latin) LANGUAGE
+================================================== */
+if (typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "sr",
+ api: {
+ wikipedia: "sr"
+ },
+ date: {
+ month: ["januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar"],
+ month_abbr: ["Jan.", "Feb.", "Mart", "Apr.", "Maj", "Jun", "Jul", "Avg.", "Sep.", "Okt.", "Nov.", "Dec."],
+ day: ["Nedelja", "Ponedeljak", "Utorak", "Sreda", "Četvratk", "Petak", "Subota"],
+ day_abbr: ["Ned.", "Pon.", "Uto.", "Sre.", "Čet.", "Pet.", "Sub."]
+ },
+ dateformats: {
+ year: "yyyy.",
+ month_short: "mmm",
+ month: "mmmm yyyy.",
+ full_short: "d. mmm",
+ full: "d. mmmm yyyy.",
+ time_short: "HH:MM:ss",
+ time_no_seconds_short: "HH:MM",
+ time_no_seconds_small_date: "HH:MM'
'd. mmmm yyyy.''",
+ full_long: "d. mmm yyyy. 'u' HH:MM",
+ full_long_small_date: "HH:MM'
d. mmm yyyy.''"
+ },
+ messages: {
+ loading_timeline: "Učitavanje... ",
+ return_to_title: "Početak",
+ expand_timeline: "Uvećaj",
+ contract_timeline: "Umanji",
+ wikipedia: "Iz Vikipedije, slobodne enciklopedije",
+ loading_content: "Sadržaj se učitava",
+ loading: "Učitava se",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
+
diff --git a/source/js/Core/Language/locale/sv.js b/source/js/Core/Language/locale/sv.js
new file mode 100644
index 000000000..4cccd1a13
--- /dev/null
+++ b/source/js/Core/Language/locale/sv.js
@@ -0,0 +1,37 @@
+/* Swedish LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "sv",
+ api: {
+ wikipedia: "sv"
+ },
+ date: {
+ month: ["januari", "februari", "mars", "april", "maj", "juni", "juli", "augusti", "september", "oktober", "november", "december"],
+ month_abbr: ["jan", "febr", "mars", "april", "maj", "juni", "juli", "aug", "sept", "okt", "nov", "dec"],
+ day: ["söndag","måndag", "tisdag", "onsdag", "torsdag", "fredag", "lördag"],
+ day_abbr: ["sön","mån", "tis", "ons", "tors", "fre", "lör"]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d mmm",
+ full: "d mmmm',' yyyy",
+ time_short: "HH:MM:ss",
+ time_no_seconds_short: "H:MM",
+ time_no_seconds_small_date: "H:MM'
'd mmmm',' yyyy''",
+ full_long: "d mmm',' yyyy 'vid' H:MM",
+ full_long_small_date: "H:MM'
d mmm',' yyyy''"
+ },
+ messages: {
+ loading_timeline: "Laddar tidslinje... ",
+ return_to_title: "Tillbaka till start",
+ expand_timeline: "Förstora tidslinje",
+ contract_timeline: "Förminska tidslinje",
+ wikipedia: "Från Wikipedia, den fria encyklopedin",
+ loading_content: "Laddar innehåll",
+ loading: "Laddar",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
diff --git a/source/js/Core/Language/locale/ta.js b/source/js/Core/Language/locale/ta.js
new file mode 100644
index 000000000..080be845d
--- /dev/null
+++ b/source/js/Core/Language/locale/ta.js
@@ -0,0 +1,37 @@
+/* Tamil LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "ta",
+ api: {
+ wikipedia: "ta"
+ },
+ date: {
+ month: ["ஜனவரி", "பெப்ரவரி", "மார்ச்", "ஏப்ரல்", "மே", "ஜுன்", "ஜுலை", "ஆகஸ்ட்", "செப்டம்பர்", "ஒக்டோபர்", "நவம்பர்", "டிசம்பர்"],
+ month_abbr: ["ஜன.", "பெப்.", "மார்ச்", "ஏப்ரல்", "மே", "ஜுன்", "ஜுலை", "ஆகஸ்ட்", "செப்ட்.", "ஒக்டோ.", "நவம்பர்", "டிசம்பர்"],
+ day: ["ஞாயிறு","திங்கள்", "செவ்வாய்", "புதன்", "வியாழன்", "வெள்ளி", "சனி"],
+ day_abbr: ["ஞா","தி", "செ", "பு", "வி", "வெ", "சனி"]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "mmm d",
+ full: "mmmm d',' yyyy",
+ time_short: "h:MM:ss TT",
+ time_no_seconds_short: "h:MM TT",
+ time_no_seconds_small_date: "h:MM TT'
'mmmm d',' yyyy''",
+ full_long: "mmm d',' yyyy 'at' hh:MM TT",
+ full_long_small_date: "hh:MM TT'
mmm d',' yyyy''"
+ },
+ messages: {
+ loading_timeline: "நேரக்கோடு தரவேறுகிறது.... ",
+ return_to_title: "தலைப்பிற்குச் செல்ல",
+ expand_timeline: "நேரக்கோட்டை விரிக்க",
+ contract_timeline: "நேரக்கோட்டை சுருக்க",
+ wikipedia: "கட்டற்ற கலைக்களஞ்சியம், விக்கிப்பீடியாவிலிருந்து",
+ loading_content: "உள்ளடக்கம் தரவேறுகிறது...",
+ loading: "தரவேறுகிறது",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
diff --git a/source/js/Core/Language/locale/te.js b/source/js/Core/Language/locale/te.js
new file mode 100644
index 000000000..0cda5f8ec
--- /dev/null
+++ b/source/js/Core/Language/locale/te.js
@@ -0,0 +1,36 @@
+/* Telugu LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "te",
+ api: {
+ wikipedia: "te"
+ },
+ date: {
+ month: ["జనవరి", "ఫిబ్రవరి", "మార్చి", "ఏప్రిల్", "మే", "జూన్", "జూలై", "ఆగస్ట్", "సెప్టెంబర్", "అక్టోబర్", "నవంబర్", "డిసెంబర్"],
+ month_abbr: ["జన.", "ఫిబ్ర.", "మార్చి", "ఏప్రి.", "మే", "జూన్", "జూలై", "ఆగ.", "సెప్టెం.", "అక్టో.", "నవం.", "డిసెం."],
+ day: ["ఆదివారం","సోమవారం", "మంగళవారం", "బుధవారం", "గురువారం", "శుక్రవారం", "శనివారం"],
+ day_abbr: ["ఆది.","సోమ.", "మంగళ.", "బుధ.", "గురు.", "శుక్ర.", "శని."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "mmm d",
+ full: "mmmm d',' yyyy",
+ time_no_seconds_short: "h:MM TT",
+ time_no_seconds_small_date: "h:MM TT'
'mmmm d',' yyyy''",
+ full_long: "mmm d',' yyyy 'at' h:MM TT",
+ full_long_small_date: "h:MM TT'
mmm d',' yyyy''"
+ },
+ messages: {
+ loading_timeline: "టైమ్లైన్ లోడవుతూంది... ",
+ return_to_title: "తిరిగి మొదటి స్లైడుకి",
+ expand_timeline: "టైమ్లైన్ను విస్తరించండి",
+ contract_timeline: "టైమ్లైన్ను కుదించండి",
+ wikipedia: "స్వేచ్ఛా విజ్ఞాన సర్వస్వమైన వికీపీడియా నుండి",
+ loading_content: "విషయం లోడవుతూంది",
+ loading: "లోడవుతూంది",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
\ No newline at end of file
diff --git a/source/js/Core/Language/locale/th.js b/source/js/Core/Language/locale/th.js
new file mode 100644
index 000000000..b54235655
--- /dev/null
+++ b/source/js/Core/Language/locale/th.js
@@ -0,0 +1,37 @@
+/* Thai LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "th",
+ api: {
+ wikipedia: "th"
+ },
+ date: {
+ month: ["มกราคม", "กุมภาพันธ์", "มีนาคม", "เมษายน", "พฤษภาคม", "มิถุนายน", "กรกฎาคม", "สิงหาคม", "กันยายน", "ตุลาคม", "พฤศจิกายน", "ธันวาคม"],
+ month_abbr: ["ม.ค.", "ก.พ", "มี.ค.", "เม.ย.", "พ.ค.", "มิ.ย.", "ก.ค.", "ส.ค.", "ก.ย.", "ต.ค.", "พ.ย.", "ธ.ค."],
+ day: ["อาทิตย์","จันทร์", "อังคาร", "พุธ", "พฤหัสบดี", "ศุกร์", "เสาร์"],
+ day_abbr: ["อา.","จ.", "อ.", "พ.", "พฤ.", "ศ.", "ส."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d mmm",
+ full: "d mmmm yyyy",
+ time_short: "h:MM:ss TT",
+ time_no_seconds_short: "h:MM TT",
+ time_no_seconds_small_date: "h:MM TT'
'd mmmm yyyy''",
+ full_long: "d mmmm yyyy 'เวลา' h:MM TT",
+ full_long_small_date: "h:MM TT'
d mmm yyyy''"
+ },
+ messages: {
+ loading_timeline: "กำลังสร้างไทม์ไลน์... ",
+ return_to_title: "กลับสู้หน้าหลัก",
+ expand_timeline: "ขยายไทม์ไลน์",
+ contract_timeline: "ย่อไทม์ไลน์",
+ wikipedia: "จากวิกิพีเดีย สารานุกรมเสรี",
+ loading_content: "กำลังโหลดข้อมูล",
+ loading: "กำลังโหลด"
+ }
+ }
+}
\ No newline at end of file
diff --git a/source/js/Core/Language/locale/tl.js b/source/js/Core/Language/locale/tl.js
new file mode 100644
index 000000000..e078aa8ca
--- /dev/null
+++ b/source/js/Core/Language/locale/tl.js
@@ -0,0 +1,37 @@
+/* Tagalog LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "tl",
+ api: {
+ wikipedia: "tl"
+ },
+ date: {
+ month: ["Enemo", "Pebrero", "Marso", "Abril", "Mayo", "Hunyo", "Hulyo", "Agosto", "Setyembre", "Oktubre", "Nobyembre", "Disyembre"],
+ month_abbr: ["Ene.", "Peb.", "Mar.", "Abr.", "Mayo", "Hun.", "Hul.", "Ago.", "Set.", "Okt.", "Nob.", "Dis."],
+ day: ["Linggo", "Lunes", "Martes", "Miyerkules", "Huwebes", "Biyernes", "Sabado"],
+ day_abbr: ["Li.","L.", "M.", "Mi.", "H.", "B.", "S."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "mmm d",
+ full: "mmmm d',' yyyy",
+ time_short: "h:MM:ss TT",
+ time_no_seconds_short: "h:MM TT",
+ time_no_seconds_small_date: "h:MM TT'
'mmmm d',' yyyy''",
+ full_long: "mmm d',' yyyy 'at' h:MM TT",
+ full_long_small_date: "h:MM TT'
mmm d',' yyyy''"
+ },
+ messages: {
+ loading_timeline: "Loading Timeline... ",
+ return_to_title: "Return to Title",
+ expand_timeline: "Expand Timeline",
+ contract_timeline: "Contract Timeline",
+ wikipedia: "Mula sa Wikipedia, ang malayang ensiklopedya",
+ loading_content: "Loading Content",
+ loading: "Loading",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
diff --git a/source/js/Core/Language/locale/tr.js b/source/js/Core/Language/locale/tr.js
new file mode 100644
index 000000000..a97761243
--- /dev/null
+++ b/source/js/Core/Language/locale/tr.js
@@ -0,0 +1,37 @@
+/* Turkish LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "tr",
+ api: {
+ wikipedia: "tr"
+ },
+ date: {
+ month: ["Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"],
+ month_abbr: ["Oca.", "Şub.", "Mar.", "Nis.", "May.", "Haz.", "Tem.", "Ağu.", "Eyl.", "Eki.", "Kas.", "Ara."],
+ day: ["Pazar","Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi"],
+ day_abbr: ["Paz.","Pzt.", "Sal.", "Çar.", "Per.", "Cum.", "Cts."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d mmm",
+ full: "d mmmm',' yyyy",
+ time_short: "HH:MM:ss",
+ time_no_seconds_short: "H:MM",
+ time_no_seconds_small_date: "H:MM'
'd mmmm',' yyyy''",
+ full_long: "d mmm',' yyyy 'at' H:MM",
+ full_long_small_date: "H:MM '
d mmm',' yyyy''"
+ },
+ messages: {
+ loading_timeline: "Zaman Çizelgesi Yükleniyor... ",
+ return_to_title: "Başlığa Dön",
+ expand_timeline: "Zaman Çizelgesini Genişlet",
+ contract_timeline: "Zaman Çizelgesini Daralt",
+ wikipedia: "Wikipedia'dan, özgür ansiklopedi",
+ loading_content: "İçerik Yükleniyor",
+ loading: "Yükleniyor",
+ swipe_nav: "Swipe to Navigate" }
+ }
+}
\ No newline at end of file
diff --git a/source/js/Core/Language/locale/uk.js b/source/js/Core/Language/locale/uk.js
new file mode 100644
index 000000000..c867bb35d
--- /dev/null
+++ b/source/js/Core/Language/locale/uk.js
@@ -0,0 +1,43 @@
+/*
+ TimelineJS - ver. 2.30.0 - 2014-02-20
+ Copyright (c) 2012-2013 Northwestern University
+ a project of the Northwestern University Knight Lab, originally created by Zach Wise
+ https://github.com/NUKnightLab/TimelineJS
+ This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
+ If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+*/
+/* Ukrainian LANGUAGE
+================================================== */
+typeof VMM != "undefined" && (VMM.Language = {
+ lang: "uk",
+ api: {
+ wikipedia: "uk"
+ },
+ date: {
+ month: ["січня", "лютого", "березня", "квітня", "травня", "червня", "липня", "серпня", "вересня", "жовтня", "листопада", "грудня"],
+ month_abbr: ["січ.", "лют.", "берез.", "квіт.", "трав.", "черв.", "лип.", "серп.", "вер.", "жовт.", "листоп.", "груд."],
+ day: ["неділя", "понеділок", "вівторок", "середа", "четвер", "п'ятниця", "субота"],
+ day_abbr: ["нд.", "пн.", "вт.", "ср.", "чт.", "пт.", "сб."]
+ },
+ dateformats: {
+ year: "yyyy",
+ month_short: "mmm",
+ month: "mmmm yyyy",
+ full_short: "d mmm",
+ full: "d mmmm',' yyyy",
+ time_short: "H:MM:ss",
+ time_no_seconds_short: "H:MM",
+ time_no_seconds_small_date: "H:MM'
'd mmmm',' yyyy''",
+ full_long: "d mmm yyyy 'у' H:MM",
+ full_long_small_date: "H:MM'
d mmm',' yyyy''"
+ },
+ messages: {
+ loading_timeline: "Завантаження...",
+ return_to_title: "Повернутися до початку",
+ expand_timeline: "Збільшити",
+ contract_timeline: "Зменьшити",
+ wikipedia: "З Wikipedia, вільної енциклопедії",
+ loading_content: "Завантаження вмісту",
+ loading: "Завантаження"
+ }
+});
\ No newline at end of file
diff --git a/source/js/Core/Language/locale/zh-cn.js b/source/js/Core/Language/locale/zh-cn.js
new file mode 100644
index 000000000..7a0849e58
--- /dev/null
+++ b/source/js/Core/Language/locale/zh-cn.js
@@ -0,0 +1,36 @@
+if (typeof VMM != "undefined") {
+ VMM.Language = {
+ lang: "zh-cn",
+ api: {
+ wikipedia: "zh"
+ },
+ date: {
+ month: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
+ month_abbr: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
+ day: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"],
+ day_abbr: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"]
+ },
+ dateformats: {
+ year: "yyyy年",
+ month_short: "mmm",
+ month: "yyyy年 mmmm",
+ full_short: "mmm d日",
+ full: "yyyy年mmmmd日",
+ time_short: "HH:MM:ss",
+ time_no_seconds_short: "HH:MM",
+ time_no_seconds_small_date: "HH:MM'
'yyyy年mmmmd日''",
+ full_long: "dddd',' yyyy年mmmd日'um' HH:MM",
+ full_long_small_date: "HH:MM'
'dddd',' yyyy年mmmd日''"
+ },
+ messages: {
+ loading_timeline: "加载时间线... ",
+ return_to_title: "回到开头",
+ expand_timeline: "伸展时间",
+ contract_timeline: "缩短时间",
+ wikipedia: "来自维基百科,自由的百科全书",
+ loading_content: "正在加载内容",
+ loading: "加载中",
+ swipe_nav: "Swipe to Navigate"
+ }
+ }
+}
\ No newline at end of file
diff --git a/source/js/Core/Language/locale/zh-tw.js b/source/js/Core/Language/locale/zh-tw.js
new file mode 100644
index 000000000..6946aeae1
--- /dev/null
+++ b/source/js/Core/Language/locale/zh-tw.js
@@ -0,0 +1,38 @@
+/* Taiwanese LANGUAGE
+================================================== */
+if(typeof VMM != 'undefined') {
+ VMM.Language = {
+ lang: "zh-tw",
+ api: {
+ wikipedia: "zh"
+ },
+ date: {
+ month: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
+ month_abbr: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
+ day: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"],
+ day_abbr: ["週日", "週一", "週二", "週三", "週四", "週五", "週六"]
+ },
+ dateformats: {
+ year: "yyyy年",
+ month_short: "mmm",
+ month: "yyyy年 mmmm",
+ full_short: "mmm d",
+ full: "yyyy年mmmm d日",
+ time_short: "HH:MM:ss",
+ time_no_seconds_short: "HH:MM",
+ time_no_seconds_small_date: "HH:MM'
'yyyy年mmmm d日''",
+ full_long: "dddd',' yyyy年mmmm d日 'um' HH:MM",
+ full_long_small_date: "HH:MM'
'dddd',' yyyy年mmmm d日''"
+ },
+ messages: {
+ loading_timeline: "載入時間線... ",
+ return_to_title: "回到開頭",
+ expand_timeline: "展開時間",
+ contract_timeline: "縮短時間",
+ wikipedia: "擷取自維基百科, 自由之百科全書",
+ loading_content: "載入內容",
+ loading: "載入中",
+ swipe_nav: "Swipe to Navigate"
+ }
+ }
+}
diff --git a/source/js/Core/Library/AES.js b/source/js/Core/Library/AES.js
new file mode 100644
index 000000000..958a31ad5
--- /dev/null
+++ b/source/js/Core/Library/AES.js
@@ -0,0 +1,463 @@
+/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
+/* AES implementation in JavaScript (c) Chris Veness 2005-2011 */
+/* - see http://csrc.nist.gov/publications/PubsFIPS.html#197 */
+/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
+
+var Aes = {}; // Aes namespace
+
+/**
+ * AES Cipher function: encrypt 'input' state with Rijndael algorithm
+ * applies Nr rounds (10/12/14) using key schedule w for 'add round key' stage
+ *
+ * @param {Number[]} input 16-byte (128-bit) input state array
+ * @param {Number[][]} w Key schedule as 2D byte-array (Nr+1 x Nb bytes)
+ * @returns {Number[]} Encrypted output state array
+ */
+Aes.cipher = function(input, w) { // main Cipher function [§5.1]
+ var Nb = 4; // block size (in words): no of columns in state (fixed at 4 for AES)
+ var Nr = w.length/Nb - 1; // no of rounds: 10/12/14 for 128/192/256-bit keys
+
+ var state = [[],[],[],[]]; // initialise 4xNb byte-array 'state' with input [§3.4]
+ for (var i=0; i<4*Nb; i++) state[i%4][Math.floor(i/4)] = input[i];
+
+ state = Aes.addRoundKey(state, w, 0, Nb);
+
+ for (var round=1; roundenv variable with user agent and feature test
+ information.
+
+ @method getEnv
+ @private
+ */
+ function getEnv() {
+ var ua = navigator.userAgent;
+
+ env = {
+ // True if this browser supports disabling async mode on dynamically
+ // created script nodes. See
+ // http://wiki.whatwg.org/wiki/Dynamic_Script_Execution_Order
+ async: doc.createElement('script').async === true
+ };
+
+ (env.webkit = /AppleWebKit\//.test(ua))
+ || (env.ie = /MSIE/.test(ua))
+ || (env.opera = /Opera/.test(ua))
+ || (env.gecko = /Gecko\//.test(ua))
+ || (env.unknown = true);
+ }
+
+ /**
+ Loads the specified resources, or the next resource of the specified type
+ in the queue if no resources are specified. If a resource of the specified
+ type is already being loaded, the new request will be queued until the
+ first request has been finished.
+
+ When an array of resource URLs is specified, those URLs will be loaded in
+ parallel if it is possible to do so while preserving execution order. All
+ browsers support parallel loading of CSS, but only Firefox and Opera
+ support parallel loading of scripts. In other browsers, scripts will be
+ queued and loaded one at a time to ensure correct execution order.
+
+ @method load
+ @param {String} type resource type ('css' or 'js')
+ @param {String|Array} urls (optional) URL or array of URLs to load
+ @param {Function} callback (optional) callback function to execute when the
+ resource is loaded
+ @param {Object} obj (optional) object to pass to the callback function
+ @param {Object} context (optional) if provided, the callback function will
+ be executed in this object's context
+ @private
+ */
+ function load(type, urls, callback, obj, context) {
+ var _finish = function () { finish(type); },
+ isCSS = type === 'css',
+ nodes = [],
+ i, len, node, p, pendingUrls, url;
+
+ env || getEnv();
+
+ if (urls) {
+ // If urls is a string, wrap it in an array. Otherwise assume it's an
+ // array and create a copy of it so modifications won't be made to the
+ // original.
+ urls = typeof urls === 'string' ? [urls] : urls.concat();
+
+ // Create a request object for each URL. If multiple URLs are specified,
+ // the callback will only be executed after all URLs have been loaded.
+ //
+ // Sadly, Firefox and Opera are the only browsers capable of loading
+ // scripts in parallel while preserving execution order. In all other
+ // browsers, scripts must be loaded sequentially.
+ //
+ // All browsers respect CSS specificity based on the order of the link
+ // elements in the DOM, regardless of the order in which the stylesheets
+ // are actually downloaded.
+ if (isCSS || env.async || env.gecko || env.opera) {
+ // Load in parallel.
+ queue[type].push({
+ urls : urls,
+ callback: callback,
+ obj : obj,
+ context : context
+ });
+ } else {
+ // Load sequentially.
+ for (i = 0, len = urls.length; i < len; ++i) {
+ queue[type].push({
+ urls : [urls[i]],
+ callback: i === len - 1 ? callback : null, // callback is only added to the last URL
+ obj : obj,
+ context : context
+ });
+ }
+ }
+ }
+
+ // If a previous load request of this type is currently in progress, we'll
+ // wait our turn. Otherwise, grab the next item in the queue.
+ if (pending[type] || !(p = pending[type] = queue[type].shift())) {
+ return;
+ }
+
+ head || (head = doc.head || doc.getElementsByTagName('head')[0]);
+ pendingUrls = p.urls;
+
+ for (i = 0, len = pendingUrls.length; i < len; ++i) {
+ url = pendingUrls[i];
+
+ if (isCSS) {
+ node = env.gecko ? createNode('style') : createNode('link', {
+ href: url,
+ rel : 'stylesheet'
+ });
+ } else {
+ node = createNode('script', {src: url});
+ node.async = false;
+ }
+
+ node.className = 'lazyload';
+ node.setAttribute('charset', 'utf-8');
+
+ if (env.ie && !isCSS) {
+ node.onreadystatechange = function () {
+ if (/loaded|complete/.test(node.readyState)) {
+ node.onreadystatechange = null;
+ _finish();
+ }
+ };
+ } else if (isCSS && (env.gecko || env.webkit)) {
+ // Gecko and WebKit don't support the onload event on link nodes.
+ if (env.webkit) {
+ // In WebKit, we can poll for changes to document.styleSheets to
+ // figure out when stylesheets have loaded.
+ p.urls[i] = node.href; // resolve relative URLs (or polling won't work)
+ pollWebKit();
+ } else {
+ // In Gecko, we can import the requested URL into a
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/test_extra_html.json b/tests/test_extra_html.json
new file mode 100644
index 000000000..54ff4f7f4
--- /dev/null
+++ b/tests/test_extra_html.json
@@ -0,0 +1,68 @@
+{
+ "timeline":
+ {
+ "headline":"The Amazon effect",
+ "type":"default",
+ "startDate":"2000",
+ "text":"
Amazon and GoVacuum",
+ "text":"",
+ "asset":
+ {
+ "media":"_media/fulfillment1b.png",
+ "credit":"",
+ "caption":"The vacuum, originally supplied by GoVacuum, is ordered, processed and shipped by Amazon."
+ }
+ },
+
+ {
+ "startDate":"2016",
+ "headline":"What is the Amazon effect?",
+ "text":"
<blockquote>“Just use html blockquotes in the media field.”</blockquote>",
+ "asset":
+ {
+ "media":"“You have brains in your head. You have feet in your shoes. You can steer yourself in any direction you choose. You're on your own, and you know what you know. And you are the guy who'll decide where to go.”
",
+ "credit":"Dr. Seuss",
+ "caption":""
+ }
+ },
+ {
+ "startDate":"1960,2,7",
+ "headline":"Website",
+ "text":"This is an example of a website. Just paste a link to the site in the media field.",
+ "asset":
+ {
+ "media":"http://www.w3schools.com/",
+ "credit":"w3schools",
+ "caption":"http://w3schools.com"
+ }
+ },
+ {
+ "startDate":"1979,1,18",
+ "headline":"Google Map",
+ "text":"Google Maps are easy too. Just add the link to the map in the media field.",
+ "asset":
+ {
+ "media":"http://maps.google.com/maps?hl=en&sll=42.05083,-87.674194&sspn=0.020170947570668576,0.036220713642592585&z=15",
+ "credit":"",
+ "caption":""
+ }
+ },
+ {
+ "startDate":"1980,1,18",
+ "headline":"Google Map with no text",
+ "text":"",
+ "asset":
+ {
+ "media":"http://maps.google.com/maps?q=chicago&hl=en&sll=41.874961,-87.619054&sspn=0.159263,0.351906&t=t&hnear=Chicago,+Cook,+Illinois&z=11",
+ "credit":"",
+ "caption":""
+ }
+ },
+ {
+ "startDate":"1985,2,7",
+ "headline":"Flickr",
+ "text":"To add a Flickr photo, just paste a link to the photo page in the media field. Example: http://www.flickr.com/photos/zachwise/7074630607/",
+ "asset":
+ {
+ "media":"http://www.flickr.com/photos/zachwise/7074630607/in/photostream/",
+ "credit":"Zach Wise",
+ "caption":""
+ }
+ },
+ {
+ "startDate":"1990,2,7",
+ "headline":"Flickr with no text",
+ "text":"",
+ "asset":
+ {
+ "media":"http://www.flickr.com/photos/zachwise/7050589957/in/photostream/",
+ "credit":"Zach Wise",
+ "caption":"March to work."
+ }
+ },
+ {
+ "startDate":"2001,2,10",
+ "headline":"A Tweet",
+ "text":"To add a tweet, just paste a link to the tweet stats in the media field. Example: http://twitter.com/alykat/status/164184609519697920",
+ "asset":
+ {
+ "media":"http://twitter.com/alykat/status/164184609519697920",
+ "credit":"",
+ "caption":""
+ }
+ },
+ {
+ "startDate":"2002,12,10",
+ "headline":"Yet Another Tweet",
+ "asset":
+ {
+ "media":"http://twitter.com/ArjunaSoriano/status/164181156147900416",
+ "credit":"",
+ "caption":""
+ }
+ },
+ {
+ "startDate":"2011,8,23",
+ "headline":"Vimeo",
+ "text":"About
+ Document History
+ Tips and tricks to best utilize TimelineJS
+
+
+
+ How it Works
+ Sources
+ Tips & tricks
+
+
+ Sign up for updates
+ Stay connected with us on twitter
+ About the Project
+ Examples
+
+ 
Color WalkingWBUR: Bulger on Trial
+ History of Ghana
+ Akira Toriyama's World
+ Tutorialzine
+ Help
+ Make a Timeline
+ 1
+ Create your spreadsheet
+ 2
+ Publish to the web
+ 

