jmontoyaa před 8 roky
rodič
revize
ef680c5ac3
53 změnil soubory, kde provedl 2018 přidání a 702 odebrání
  1. 4 4
      app/Resources/public/assets/i18next/.bower.json
  2. 6 0
      app/Resources/public/assets/i18next/CHANGELOG.md
  3. 10 7
      app/Resources/public/assets/i18next/README.md
  4. 12 4
      app/Resources/public/assets/i18next/i18next.js
  5. 0 0
      app/Resources/public/assets/i18next/i18next.min.js
  6. 4 4
      app/Resources/public/assets/mediaelement/.bower.json
  7. 46 96
      app/Resources/public/assets/mediaelement/README.md
  8. binární
      app/Resources/public/assets/mediaelement/build/flashmediaelement-cdn.swf
  9. binární
      app/Resources/public/assets/mediaelement/build/flashmediaelement-debug.swf
  10. binární
      app/Resources/public/assets/mediaelement/build/flashmediaelement.swf
  11. 46 0
      app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-cs.js
  12. 70 0
      app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-de.js
  13. 75 0
      app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-en.js
  14. 49 0
      app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-es.js
  15. 53 0
      app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-fr.js
  16. 46 0
      app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-hu.js
  17. 46 0
      app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-it.js
  18. 46 0
      app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-ja.js
  19. 46 0
      app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-ko.js
  20. 46 0
      app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-pl.js
  21. 37 0
      app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-pt-br.js
  22. 46 0
      app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-pt.js
  23. 46 0
      app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-ro.js
  24. 46 0
      app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-ru.js
  25. 46 0
      app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-sk.js
  26. 46 0
      app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-zh-cn.js
  27. 46 0
      app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-zh.js
  28. 364 147
      app/Resources/public/assets/mediaelement/build/mediaelement-and-player.js
  29. 0 0
      app/Resources/public/assets/mediaelement/build/mediaelement-and-player.min.js
  30. 157 37
      app/Resources/public/assets/mediaelement/build/mediaelement.js
  31. 0 0
      app/Resources/public/assets/mediaelement/build/mediaelement.min.js
  32. 3 2
      app/Resources/public/assets/mediaelement/build/mediaelementplayer.css
  33. 432 337
      app/Resources/public/assets/mediaelement/build/mediaelementplayer.js
  34. 0 0
      app/Resources/public/assets/mediaelement/build/mediaelementplayer.min.css
  35. 0 0
      app/Resources/public/assets/mediaelement/build/mediaelementplayer.min.js
  36. 41 11
      app/Resources/public/assets/mediaelement/changelog.md
  37. 4 4
      app/Resources/public/assets/pwstrength-bootstrap/.bower.json
  38. 1 1
      app/Resources/public/assets/pwstrength-bootstrap/bower.json
  39. 1 1
      app/Resources/public/assets/pwstrength-bootstrap/dist/pwstrength-bootstrap.js
  40. 1 1
      app/Resources/public/assets/pwstrength-bootstrap/dist/pwstrength-bootstrap.min.js
  41. 15 0
      app/Resources/public/assets/pwstrength-bootstrap/locales/de.json
  42. 15 0
      app/Resources/public/assets/pwstrength-bootstrap/locales/pl.json
  43. 15 0
      app/Resources/public/assets/pwstrength-bootstrap/locales/tr.json
  44. 4 4
      app/Resources/public/assets/webcamjs/.bower.json
  45. 1 1
      app/Resources/public/assets/webcamjs/bower.json
  46. 1 1
      app/Resources/public/assets/webcamjs/package.json
  47. 4 3
      app/Resources/public/assets/webcamjs/webcam.js
  48. 0 1
      app/Resources/public/assets/webcamjs/webcam.min.js
  49. 4 4
      app/Resources/public/assets/zxcvbn/.bower.json
  50. 1 1
      app/Resources/public/assets/zxcvbn/LICENSE.txt
  51. 28 23
      app/Resources/public/assets/zxcvbn/README.md
  52. 0 0
      app/Resources/public/assets/zxcvbn/dist/zxcvbn.js
  53. 8 8
      app/Resources/public/assets/zxcvbn/dist/zxcvbn.js.map

+ 4 - 4
app/Resources/public/assets/i18next/.bower.json

@@ -18,12 +18,12 @@
     "karma.conf.js"
   ],
   "homepage": "https://github.com/i18next/i18next",
-  "version": "3.4.1",
-  "_release": "3.4.1",
+  "version": "3.4.3",
+  "_release": "3.4.3",
   "_resolution": {
     "type": "version",
-    "tag": "v3.4.1",
-    "commit": "ae96d7a2f3e18dc749f505ee9d0456d863eb6424"
+    "tag": "v3.4.3",
+    "commit": "3e92f068aa901030014f3b0f27fcd3ed6ab0c535"
   },
   "_source": "https://github.com/i18next/i18next.git",
   "_target": ">=2.4.0",

+ 6 - 0
app/Resources/public/assets/i18next/CHANGELOG.md

@@ -1,3 +1,9 @@
+### 3.4.3
+- Fix Interpolator formatter exception error propagation due to not reset RegExp indices [#820](https://github.com/i18next/i18next/issues/820)
+
+### 3.4.2
+- assert dir function does not crash if no language available
+
 ### 3.4.1
 - fix issue with format containing formatSeparator for interpolation formatting
 

+ 10 - 7
app/Resources/public/assets/i18next/README.md

@@ -8,14 +8,8 @@
 
 i18next is a very popular internationalization framework for browser or any other javascript environment (eg. node.js).
 
---------------
-**News**
-
-Having done a big rewrite of i18next in spring we are proud to announce the next big step to get your webproject translated with less effort. We just released [locize](locize.com) a translation management system built around the i18next ecosystem.
-
-With using locize you directly support the future of i18next.
+![ecosystem](http://i18next.com/img/frameworks.png)
 
---------------
 
 i18next provides:
 
@@ -39,3 +33,12 @@ For more information visit the website:
 
 
 Our focus is providing the core to building a booming ecosystem. Independent of the building blocks you choose, be it react, angular or even good old jquery proper translation capabilities are just [one step away](http://i18next.com/docs/ecosystem/#frameworks).
+
+--------------
+**locize.com**
+
+Having done a big rewrite of i18next in spring we are proud to announce the next big step to get your webproject translated with less effort. We just released [locize](http://locize.com/) a translation management system built around the i18next ecosystem.
+
+With using locize you directly support the future of i18next.
+
+--------------

+ 12 - 4
app/Resources/public/assets/i18next/i18next.js

@@ -1199,6 +1199,15 @@
 	    this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');
 	    this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');
 
+	    // the regexp
+	    this.resetRegExp();
+	  };
+
+	  Interpolator.prototype.reset = function reset() {
+	    if (this.options) this.init(this.options);
+	  };
+
+	  Interpolator.prototype.resetRegExp = function resetRegExp() {
 	    // the regexp
 	    var regexpStr = this.prefix + '(.+?)' + this.suffix;
 	    this.regexp = new RegExp(regexpStr, 'g');
@@ -1210,10 +1219,6 @@
 	    this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');
 	  };
 
-	  Interpolator.prototype.reset = function reset() {
-	    if (this.options) this.init(this.options);
-	  };
-
 	  Interpolator.prototype.interpolate = function interpolate(str, data, lng) {
 	    var _this = this;
 
@@ -1234,6 +1239,8 @@
 	      return _this.format(getPath(data, k), f, lng);
 	    };
 
+	    this.resetRegExp();
+
 	    // unescape if has unescapePrefix/Suffix
 	    while (match = this.regexpUnescape.exec(str)) {
 	      var _value = handleFormat(match[1].trim());
@@ -2013,6 +2020,7 @@
 
 	  I18n.prototype.dir = function dir(lng) {
 	    if (!lng) lng = this.language;
+	    if (!lng) return 'rtl';
 
 	    var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam'];
 

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
app/Resources/public/assets/i18next/i18next.min.js


+ 4 - 4
app/Resources/public/assets/mediaelement/.bower.json

@@ -23,12 +23,12 @@
     "./build/mediaelement-and-player.js",
     "./build/mediaelementplayer.css"
   ],
-  "version": "2.22.1",
-  "_release": "2.22.1",
+  "version": "2.23.2",
+  "_release": "2.23.2",
   "_resolution": {
     "type": "version",
-    "tag": "2.22.1",
-    "commit": "add004709742e81e578022ff6adafd372d25e107"
+    "tag": "2.23.2",
+    "commit": "b427851d5ff9fc43eda0e58e02e821ec161e3e7a"
   },
   "_source": "https://github.com/johndyer/mediaelement.git",
   "_target": "2.*",

+ 46 - 96
app/Resources/public/assets/mediaelement/README.md

@@ -1,4 +1,4 @@
-# `<video>` and `<audio>` made easy. 
+# `MediaElement.js`: `<video>` and `<audio>` made easy. 
 
 One file. Any browser. Same UI.
 
@@ -9,112 +9,62 @@ One file. Any browser. Same UI.
 * Thanks: my employer, [Dallas Theological Seminary](http://www.dts.edu/)
 * Contributors: [all contributors](https://github.com/johndyer/mediaelement/graphs/contributors)
 
+# Table of Contents
 
-## Installation and Usage
+* [Introduction](#intro)
+* [Browser and Device support](#browser-support)
+* [Installation and Usage](#installation)
+* [API and Configuration](#api)
+* [Guidelines for Contributors](#guidelines)
+* [Change Log](#changelog)
+* [TODO list](#todo)
+
+<a id="intro"></a>
+## Introduction
 
 _MediaElementPlayer: HTML5 `<video>` and `<audio>` player_
 
 A complete HTML/CSS audio/video player built on top `MediaElement.js` and `jQuery`. Many great HTML5 players have a completely separate Flash UI in fallback mode, but MediaElementPlayer.js uses the same HTML/CSS for all players.
 
-## Change Log
+`MediaElement.js` is a set of custom Flash and Silverlight plugins that mimic the HTML5 MediaElement API for browsers that don't support HTML5 or don't support the media codecs you're using. 
+Instead of using Flash as a _fallback_, Flash is used to make the browser seem HTML5 compliant and enable codecs like H.264 (via Flash) and even WMV (via Silverlight) on all browsers.
 
-Changes available at [Change Log](changelog.md)
+<a id="browser-support"></a>
+## Browser and Device support
 
-### 1. Add Script and Stylesheet
-```html
-<script src="jquery.js"></script>
-<script src="mediaelement-and-player.min.js"></script>
-<link rel="stylesheet" href="mediaelementplayer.css" />
-```
-### 2. Add `<video>` or `<audio>` tags
-If your users have JavaScript and/or Flash, the easiest route for all browsers and mobile devices is to use a single MP4 or MP3 file.
-
-```html	
-<video src="myvideo.mp4" width="320" height="240"></video>
-```
-```html	
-<audio src="myaudio.mp3"></audio>
-```
-
-#### Optional: multiple codecs
-This includes multiple codecs for various browsers (H.264 for IE9+, Safari, and Chrome, WebM for Firefox 4 and Opera, Ogg for Firefox 3).
-
-```html
-<video width="320" height="240" poster="poster.jpg" controls="controls" preload="none">
-	<source type="video/mp4" src="myvideo.mp4" />
-	<source type="video/webm" src="myvideo.webm" />
-	<source type="video/ogg" src="myvideo.ogv" />
-</video>
-```
-
-#### Optional: Browsers with JavaScript disabled
-In very rare cases, you might have a non-HTML5 browser with Flash turned on and JavaScript turned off. In that specific case, you can also include the Flash `<object>` code.
-```html
-<video width="320" height="240" poster="poster.jpg" controls="controls" preload="none">
-	<source type="video/mp4" src="myvideo.mp4" />
-	<source type="video/webm" src="myvideo.webm" />
-	<source type="video/ogg" src="myvideo.ogv" />
-	<object width="320" height="240" type="application/x-shockwave-flash" data="flashmediaelement.swf">
-		<param name="movie" value="flashmediaelement.swf" /> 
-		<param name="flashvars" value="controls=true&amp;poster=myvideo.jpg&amp;file=myvideo.mp4" /> 		
-		<img src="myvideo.jpg" width="320" height="240" title="No video playback capabilities" />
-	</object>
-</video>
-```
-
-### 3. Startup
-
-#### Automatic start
-You can avoid running any startup scripts by added `class="mejs-player"` to the `<video>` or `<audio>` tag. Options can be added using the `data-mejsoptions` attribute
-```html	
-<video src="myvideo.mp4" width="320" height="240" 
-		class="mejs-player" 
-		data-mejsoptions='{"alwaysShowControls": true}'></video>
-```
-
-#### Normal JavaScript
-```html
-<script>
-var player = new MediaElementPlayer('#player', {success: function(mediaElement, originalNode) {
-	// do things
-}});
-</script>	
-```
-
-#### jQuery plugin
-```html
-<script>
-$('video').mediaelementplayer({success: function(mediaElement, originalNode) {
-	// do things
-}});
-</script>
-```
-
-## How it Works: 
-_MediaElement.js: HTML5 `<video>` and `<audio>` shim_
+Format | Support
+------ | -------
+**mp4** | Please visit http://caniuse.com/#feat=mpeg4 for comprehensive information
+**webm** | Please visit http://caniuse.com/#feat=webm for comprehensive information
+**mp3** | Please visit http://caniuse.com/#feat=mp3 for comprehensive information
+**m3u8** | Safari and iOS (native); all browsers that support **Flash** (version 10 or later)
+**rtmp/flv** | All browsers that support **Flash** (version 10 or later)
+**wmv/wma** | All browsers that support **Silverlight**
+**YouTube** | All browsers since it uses `iframe` tag
 
-`MediaElement.js` is a set of custom Flash and Silverlight plugins that mimic the HTML5 MediaElement API for browsers that don't support HTML5 or don't support the media codecs you're using. 
-Instead of using Flash as a _fallback_, Flash is used to make the browser seem HTML5 compliant and enable codecs like H.264 (via Flash) and even WMV (via Silverlight) on all browsers.
-```html
-<script src="mediaelement.js"></script>
-<video src="myvideo.mp4" width="320" height="240"></video>
+<a id="installation"></a>
+## Installation and Usage
+
+The full documentation on how to install `MediaElement.js` is available at [Installation](installation.md).
+
+A brief guide on how to create and use instances of `MediaElement` available at [Usage](usage.md).
+
+<a id="api"></a>
+## API and Configuration
+   
+`MediaElement.js` has many options that you can take advantage from. Visit [API and Configuration](api.md) for more details.
 
-<script>
-var v = document.getElementsByTagName("video")[0];
-new MediaElement(v, {success: function(media) {
-	media.play();
-}});
-</script>
-```
-You can use this as a standalone library if you wish, or just stick with the full MediaElementPlayer.
+<a id="guidelines"></a>
+## Guidelines for Contributors
 
-## Building MediaElement.js
+If you want to contribute to improve this package, please read [Guidelines](guidelines.md).
 
-When developing MediaElement, make changes to the files in the `/src/` directory (not `/build/`) and test the changes with `/test/test.html`.
+<a id="changelog"></a>
+## Change Log
+
+Changes available at [Change Log](changelog.md)
 
-To compile the changes
+<a id="todo"></a>
+## TODO list
 
-1. Install `node.js` with `npm` https://nodejs.org/
-2. At the command prompt type `npm install` which will download all the necessary tools
-3. Type `grunt` to build MediaElement.js
-4. To compile the Flash swf, you'll need to install Flex 4.6. See instructions in Gruntfile.js for details.
+New features and pending bugs can be found at [TODO list](TODO.md).

binární
app/Resources/public/assets/mediaelement/build/flashmediaelement-cdn.swf


binární
app/Resources/public/assets/mediaelement/build/flashmediaelement-debug.swf


binární
app/Resources/public/assets/mediaelement/build/flashmediaelement.swf


+ 46 - 0
app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-cs.js

@@ -0,0 +1,46 @@
+/*!
+ * This is a i18n.locale language object.
+ *
+ * Czech translation by Jalios, Twitter: @Jalios
+ *
+ * @author
+ *   Jalios (Twitter: @Jalios)
+ *
+ * @see
+ *   me-i18n.js
+ *
+ * @params
+ *  - exports - CommonJS, window ..
+ */
+;(function(exports, undefined) {
+
+    "use strict";
+
+    if (typeof exports.cs === 'undefined') {
+        exports.cs = {
+
+            'mejs.audio-player' : "Přehrávač hudby",
+            'mejs.captions-subtitles' : "Titulky",
+            'mejs.close' : "Zavřít",
+            'mejs.download-file' : "Stáhnout soubor",
+            'mejs.download-video' : "Stáhnout video",
+            'mejs.fullscreen' : "Celá obrazovka",
+            'mejs.fullscreen-off' : "Vypnout režim celá obrazovka",
+            'mejs.fullscreen-on' : "Na celou obrazovku",
+            'mejs.mute' : "Vypnout zvuk",
+            'mejs.mute-toggle' : "Vypnout/zapnout zvuk",
+            'mejs.none' : "Žádný",
+            'mejs.pause' : "Pozastavit",
+            'mejs.play' : "Přehrát",
+            'mejs.time-help-text' : "Použijte tlačítka se šipkami doleva / doprava pro posun o jednu vteřinu, tlačítka se šipkami nahoru / dolů pro posun o deset vteřin.",
+            'mejs.time-skip-back' : "Zpět o %1 vteřin",
+            'mejs.time-slider' : "Posuvný běžec nastavení času",
+            'mejs.unmute' : "Zapnout zvuk",
+            'mejs.video-player' : "Přehrávač videa",
+            'mejs.volume-help-text' : "Použijte tlačítka se šipkami nahoru / dolů pro zesílení nebo zeslabení hlasitosti.",
+            'mejs.volume-slider' : "Posuvný běžec nastavení hlasitosti"
+
+        };
+    }
+
+}(mejs.i18n.locale.strings));

+ 70 - 0
app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-de.js

@@ -0,0 +1,70 @@
+/*!
+ * This is a i18n.locale language object.
+ *
+ * German
+ *
+ * @author
+ *   Sascha "SoftCreatR" Greuel
+ *
+ * @see
+ *   me-i18n.js
+ *
+ * @params
+ *  - exports - CommonJS, window ..
+ */
+;(function(exports, undefined) {
+
+    "use strict";
+
+    if (typeof exports.de === 'undefined') {
+        exports.de = {
+            // me-shim
+            'mejs.download-file': 'Datei herunterladen',
+
+            // mep-feature-contextmenu
+            'mejs.fullscreen-off': 'Vollbildmodus beenden',
+            'mejs.fullscreen-on' : 'Vollbild',
+            'mejs.download-video' : 'Video herunterladen',
+
+            // mep-feature-fullscreen
+            'mejs.fullscreen' : 'Vollbild',
+
+            // mep-feature-jumpforward
+            'mejs.time-jump-forward': '%1 Sekunde(n) vorspulen',
+
+            // mep-feature-playpause
+            'mejs.play': 'Abspielen',
+            'mejs.pause': 'Pause',
+
+            // mep-feature-postroll
+            'mejs.close' : 'Schließen',
+
+            // mep-feature-progress
+            'mejs.time-slider': 'Zeitschieberegler',
+            'mejs.time-help-text': 'Verwende die Pfeiltaste nach links/rechts, um eine Sekunde zu spulen, hoch/runter um zehn Sekunden zu spulen.',
+
+            // mep-feature-skipback
+            'mejs.time-skip-back': '%1 Sekunde(n) zurückspulen',
+
+            // mep-feature-tracks
+            'mejs.captions-subtitles' : 'Überschriften/Untertitel',
+            'mejs.none' : 'Keine',
+
+            // mep-feature-volume
+            'mejs.mute-toggle' : 'Stummschaltung umschalten',
+            'mejs.volume-help-text': 'Verwende die Pfeiltaste nach oben/nach unten um die Lautstärke zu erhöhen oder zu verringern.',
+            'mejs.unmute' : 'Stummschaltung aufheben',
+            'mejs.mute' : 'Stummschalten',
+            'mejs.volume-slider': 'Lautstärkeregler',
+
+            // mep-player
+            'mejs.video-player': 'Video-Player',
+            'mejs.audio-player': 'Audio-Player',
+            	
+            // mep-feature-ads
+            'mejs.ad-skip': 'Werbung überspringen',
+            'mejs.ad-skip-info': 'Überspringen in %1 Sekunde(n)',
+        };
+    }
+
+}(mejs.i18n.locale.strings));

+ 75 - 0
app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-en.js

@@ -0,0 +1,75 @@
+/*!
+ * This is a i18n.locale language object.
+ *
+ * English; This can serve as a template for other languages to translate
+ *
+ * @author
+ *   TBD
+ *
+ * @see
+ *   me-i18n.js
+ *
+ * @params
+ *  - exports - CommonJS, window ..
+ */
+;(function(exports, undefined) {
+
+    "use strict";
+
+    if (typeof exports.en === 'undefined') {
+        exports.en = {
+            // me-shim
+            'mejs.download-file': 'Download File',
+
+            // mep-feature-contextmenu
+            'mejs.fullscreen-off': 'Turn off Fullscreen',
+            'mejs.fullscreen-on' : 'Go Fullscreen',
+            // Duplicated from mep-feature-volume
+            // 'mejs.unmute' : 'Unmute',
+            // 'mejs.mute' : 'Mute',
+            'mejs.download-video' : 'Download Video',
+
+            // mep-feature-fullscreen
+            'mejs.fullscreen' : 'Fullscreen',
+
+            // mep-feature-jumpforward
+            'mejs.time-jump-forward': 'Jump forward %1 seconds',
+
+            // mep-feature-playpause
+            'mejs.play': 'Play',
+            'mejs.pause': 'Pause',
+
+            // mep-feature-postroll
+            'mejs.close' : 'Close',
+
+            // mep-feature-progress
+            'mejs.time-slider': 'Time Slider',
+            'mejs.time-help-text': 'Use Left/Right Arrow keys to advance one second, Up/Down arrows to advance ten seconds.',
+
+            // mep-feature-skipback
+            'mejs.time-skip-back': 'Skip back %1 seconds',
+
+            // mep-feature-tracks
+            'mejs.captions-subtitles' : 'Captions/Subtitles',
+            'mejs.none' : 'None',
+
+            // mep-feature-volume
+            'mejs.mute-toggle' : 'Mute Toggle',
+            'mejs.volume-help-text': 'Use Up/Down Arrow keys to increase or decrease volume.',
+            'mejs.unmute' : 'Unmute',
+            'mejs.mute' : 'Mute',
+            'mejs.volume-slider': 'Volume Slider',
+
+            // mep-player
+            'mejs.video-player': 'Video Player',
+            'mejs.audio-player': 'Audio Player',
+            	
+            // mep-feature-ads
+            'mejs.ad-skip': 'Skip ad',
+            'mejs.ad-skip-info': 'Skip in %1 seconds',
+
+            'mejs.source-chooser': 'Source Chooser'
+        };
+    }
+
+}(mejs.i18n.locale.strings));

+ 49 - 0
app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-es.js

@@ -0,0 +1,49 @@
+/*!
+ * This is a i18n.locale language object.
+ *
+ * Spanish; Castilian translation by Jalios, Twitter: @Jalios
+ *
+ * @author
+ *   Jalios (Twitter: @Jalios)
+ *
+ * @see
+ *   me-i18n.js
+ *
+ * @params
+ *  - exports - CommonJS, window ..
+ */
+;(function(exports, undefined) {
+
+    "use strict";
+
+    if (typeof exports.es === 'undefined') {
+        exports.es = {
+
+            'mejs.ad-skip': "Salta publicidad",
+            'mejs.ad-skip-info': "Salta en %1 segundos",
+            'mejs.audio-player' : "Reproductor de audio",
+            'mejs.captions-subtitles' : "Leyendas/Subtítulos",
+            'mejs.close' : "Cerrar",
+            'mejs.download-file' : "Descargar archivo",
+            'mejs.download-video' : "Descargar vídeo",
+            'mejs.fullscreen' : "Pantalla completa",
+            'mejs.fullscreen-off' : "Desconectar pantalla completa",
+            'mejs.fullscreen-on' : "Ir a pantalla completa",
+            'mejs.mute' : "Silencio",
+            'mejs.mute-toggle' : "Alternar silencio",
+            'mejs.none' : "Ninguno",
+            'mejs.pause' : "Pausa",
+            'mejs.play' : "Reproducción",
+            'mejs.time-help-text' : "Use las flechas Izquierda/Derecha para avanzar un segundo y las flechas Arriba/Abajo para avanzar diez segundos.",
+            'mejs.time-skip-back' : "Saltar atrás %1 segundos",
+            'mejs.time-slider' : "Control deslizante de tiempo",
+            'mejs.unmute' : "Reactivar silencio",
+            'mejs.video-player' : "Reproductor de video",
+            'mejs.volume-help-text' : "Use las flechas Arriba/Abajo para subir o bajar el volumen.",
+            'mejs.volume-slider' : "Control deslizante de volumen",
+            'mejs.source-chooser': "Selector de media"
+
+        };
+    }
+
+}(mejs.i18n.locale.strings));

+ 53 - 0
app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-fr.js

@@ -0,0 +1,53 @@
+/*!
+ * This is a i18n.locale language object.
+ *
+ * French translation by 
+ *   Luc Poupard, Twitter: @klohFR
+ *   Jalios, Twitter: @Jalios
+ *
+ * @author
+ *   Luc Poupard (Twitter: @klohFR)
+ *   Jalios (Twitter: @Jalios)
+ *
+ * @see
+ *   me-i18n.js
+ *
+ * @params
+ *  - exports - CommonJS, window ..
+ */
+;(function(exports, undefined) {
+
+    "use strict";
+
+    if (typeof exports.fr === 'undefined') {
+        exports.fr = {
+
+            'mejs.ad-skip' : "Passer la publicité",
+            'mejs.ad-skip-info' : "Passer la publicité dans %1 secondes",
+            'mejs.audio-player' : "Lecteur Audio",
+            'mejs.captions-subtitles' : "Sous-titres",
+            'mejs.close' : "Fermer",
+            'mejs.download-file' : "Télécharger le fichier",
+            'mejs.download-video' : "Télécharger la vidéo",
+            'mejs.fullscreen' : "Plein écran",
+            'mejs.fullscreen-off' : "Quitter le mode plein écran",
+            'mejs.fullscreen-on' : "Afficher en plein écran",
+            'mejs.mute' : "Désactiver le son",
+            'mejs.mute-toggle' : "Activer/désactiver le son",
+            'mejs.none' : "Aucun",
+            'mejs.pause' : "Pause",
+            'mejs.play' : "Lecture",
+            'mejs.time-help-text' : "Utilisez les flèches Gauche/Droite du clavier pour avancer d'une seconde, les flèches Haut/Bas pour avancer de 10 secondes.",
+            'mejs.time-jump-forward' : "Avancer de %1 secondes",
+            'mejs.time-skip-back' : "Reculer de %1 secondes",
+            'mejs.time-slider' : "Curseur temporel",
+            'mejs.unmute' : "Activer le son",
+            'mejs.video-player' : "Lecteur Vidéo",
+            'mejs.volume-help-text' : "Utilisez les flèches Haut/Bas du clavier pour augmenter ou diminuer le volume.",
+            'mejs.volume-slider' : "Volume",
+            'mejs.source-chooser': 'Sélecteur de média'
+
+        };
+    }
+
+}(mejs.i18n.locale.strings));

+ 46 - 0
app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-hu.js

@@ -0,0 +1,46 @@
+/*!
+ * This is a i18n.locale language object.
+ *
+ * Hungarian translation by Jalios, Twitter: @Jalios
+ *
+ * @author
+ *   Jalios (Twitter: @Jalios)
+ *
+ * @see
+ *   me-i18n.js
+ *
+ * @params
+ *  - exports - CommonJS, window ..
+ */
+;(function(exports, undefined) {
+
+    "use strict";
+
+    if (typeof exports.hu === 'undefined') {
+        exports.hu = {
+
+            'mejs.audio-player' : "Audiolejátszó",
+            'mejs.captions-subtitles' : "Képaláírás/Feliratok",
+            'mejs.close' : "Bezárás",
+            'mejs.download-file' : "Fájl letöltése",
+            'mejs.download-video' : "Videó letöltése",
+            'mejs.fullscreen' : "Teljes képernyő",
+            'mejs.fullscreen-off' : "Teljes képernyő kikapcsolása",
+            'mejs.fullscreen-on' : "Átlépés teljes képernyős módra",
+            'mejs.mute' : "Némítás",
+            'mejs.mute-toggle' : "Némítás kapcsolója",
+            'mejs.none' : "Nincs",
+            'mejs.pause' : "Szünet",
+            'mejs.play' : "Lejátszás",
+            'mejs.time-help-text' : "Használja a Bal/Jobb nyíl gombokat az egy másodperces léptetéshez, a Fel/Le nyíl gombokat a tíz másodperces léptetéshez.",
+            'mejs.time-skip-back' : "Ugrás vissza %1 másodperccel",
+            'mejs.time-slider' : "Idő csúszka",
+            'mejs.unmute' : "Némítás feloldása",
+            'mejs.video-player' : "Videolejátszó",
+            'mejs.volume-help-text' : "Használja a Fel/Le nyíl gombokat a hangerő növeléséhez vagy csökkentéséhez.",
+            'mejs.volume-slider' : "Hangerőcsúszka"
+
+        };
+    }
+
+}(mejs.i18n.locale.strings));

+ 46 - 0
app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-it.js

@@ -0,0 +1,46 @@
+/*!
+ * This is a i18n.locale language object.
+ *
+ * Italian translation by Jalios, Twitter: @Jalios
+ *
+ * @author
+ *   Jalios (Twitter: @Jalios)
+ *
+ * @see
+ *   me-i18n.js
+ *
+ * @params
+ *  - exports - CommonJS, window ..
+ */
+;(function(exports, undefined) {
+
+    "use strict";
+
+    if (typeof exports.it === 'undefined') {
+        exports.it = {
+
+            'mejs.audio-player' : "Lettore Audio",
+            'mejs.captions-subtitles' : "Acquisizioni/sottotitoli",
+            'mejs.close' : "Chiudere",
+            'mejs.download-file' : "Scaricare il file",
+            'mejs.download-video' : "Scaricare il video",
+            'mejs.fullscreen' : "Schermo intero",
+            'mejs.fullscreen-off' : "Disattivare lo schermo intero",
+            'mejs.fullscreen-on' : "Attivare lo schermo intero",
+            'mejs.mute' : "Muto",
+            'mejs.mute-toggle' : "Toggle muto",
+            'mejs.none' : "Nessuno",
+            'mejs.pause' : "Pausa",
+            'mejs.play' : "Eseguire",
+            'mejs.time-help-text' : "Utilizzare i tasti Freccia sinistra/Freccia destra per avanzare di un secondo, Freccia Su/Giù per avanzare dieci secondi.",
+            'mejs.time-skip-back' : "Riavvolgere %1 secondi",
+            'mejs.time-slider' : "Barra di scorrimento",
+            'mejs.unmute' : "Disattivare muto",
+            'mejs.video-player' : "Lettore Video",
+            'mejs.volume-help-text' : "Utilizzare i tasti Freccia Su/Giù per aumentare o diminuire il volume.",
+            'mejs.volume-slider' : "Barra del volume"
+
+        };
+    }
+
+}(mejs.i18n.locale.strings));

+ 46 - 0
app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-ja.js

@@ -0,0 +1,46 @@
+/*!
+ * This is a i18n.locale language object.
+ *
+ * Japanese translation by Jalios, Twitter: @Jalios
+ *
+ * @author
+ *   Jalios (Twitter: @Jalios)
+ *
+ * @see
+ *   me-i18n.js
+ *
+ * @params
+ *  - exports - CommonJS, window ..
+ */
+;(function(exports, undefined) {
+
+    "use strict";
+
+    if (typeof exports.ja === 'undefined') {
+        exports.ja = {
+
+            'mejs.audio-player' : "オーディオプレーヤー",
+            'mejs.captions-subtitles' : "キャプション/字幕",
+            'mejs.close' : "閉じる",
+            'mejs.download-file' : "ファイルをダウンロードする",
+            'mejs.download-video' : "動画をダウンロードする",
+            'mejs.fullscreen' : "全画面",
+            'mejs.fullscreen-off' : "全画面をオフにする",
+            'mejs.fullscreen-on' : "全画面にする",
+            'mejs.mute' : "ミュート",
+            'mejs.mute-toggle' : "ミュートトグル",
+            'mejs.none' : "なし",
+            'mejs.pause' : "一時停止",
+            'mejs.play' : "再生",
+            'mejs.time-help-text' : "1秒進めるには左/右矢印をキーを、10秒進めるには上/下矢印を使います。",
+            'mejs.time-skip-back' : "%1秒スキップバックする",
+            'mejs.time-slider' : "タイムスライダー",
+            'mejs.unmute' : "ミュートを解除",
+            'mejs.video-player' : "ビデオプレーヤー",
+            'mejs.volume-help-text' : "音量を上げたり下げたりするには、上/下矢印を使います。",
+            'mejs.volume-slider' : "音量スライダー"
+
+        };
+    }
+
+}(mejs.i18n.locale.strings));

+ 46 - 0
app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-ko.js

@@ -0,0 +1,46 @@
+/*!
+ * This is a i18n.locale language object.
+ *
+ * Korean translation by Jalios, Twitter: @Jalios
+ *
+ * @author
+ *   Jalios (Twitter: @Jalios)
+ *
+ * @see
+ *   me-i18n.js
+ *
+ * @params
+ *  - exports - CommonJS, window ..
+ */
+;(function(exports, undefined) {
+
+    "use strict";
+
+    if (typeof exports.ko === 'undefined') {
+        exports.ko = {
+
+            'mejs.audio-player' : "오디오 플레이어",
+            'mejs.captions-subtitles' : "캡션/자막",
+            'mejs.close' : "종료",
+            'mejs.download-file' : "파일 다운로드",
+            'mejs.download-video' : "비디오 다운로드",
+            'mejs.fullscreen' : "전체화면",
+            'mejs.fullscreen-off' : "전체화면 해제",
+            'mejs.fullscreen-on' : "전체화면 가기",
+            'mejs.mute' : "말 없는",
+            'mejs.mute-toggle' : "음소거 전환",
+            'mejs.none' : "없음",
+            'mejs.pause' : "정지",
+            'mejs.play' : "작동",
+            'mejs.time-help-text' : "1초 전진하려면 좌/우측 화살표를 사용하시고 10초 전진하려면 위/아래 화살표를 사용하세요.",
+            'mejs.time-skip-back' : "1초 % 를 뒤로 건너뛰세요",
+            'mejs.time-slider' : "시간 슬라이더",
+            'mejs.unmute' : "음소거 해제",
+            'mejs.video-player' : "비디오 플레이어",
+            'mejs.volume-help-text' : "볼륨을 높이거나 낮추려면 위/아래 화살표를 이용하세요.",
+            'mejs.volume-slider' : "볼륨 슬라이더"
+
+        };
+    }
+
+}(mejs.i18n.locale.strings));

+ 46 - 0
app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-pl.js

@@ -0,0 +1,46 @@
+/*!
+ * This is a i18n.locale language object.
+ *
+ * Polish translation by Jalios, Twitter: @Jalios
+ *
+ * @author
+ *   Jalios (Twitter: @Jalios)
+ *
+ * @see
+ *   me-i18n.js
+ *
+ * @params
+ *  - exports - CommonJS, window ..
+ */
+;(function(exports, undefined) {
+
+    "use strict";
+
+    if (typeof exports.pl === 'undefined') {
+        exports.pl = {
+
+            'mejs.audio-player' : "Odtwarzacz audio",
+            'mejs.captions-subtitles' : "Podpisy/napisy",
+            'mejs.close' : "Zamknij",
+            'mejs.download-file' : "Pobierz plik",
+            'mejs.download-video' : "Pobierz wideo",
+            'mejs.fullscreen' : "Pełny ekran",
+            'mejs.fullscreen-off' : "Wyłącz pełny ekran",
+            'mejs.fullscreen-on' : "Przejdź na pełny ekran",
+            'mejs.mute' : "Wycisz",
+            'mejs.mute-toggle' : "Przełączanie wyciszania",
+            'mejs.none' : "Brak",
+            'mejs.pause' : "Wstrzymaj",
+            'mejs.play' : "Odtwarzaj",
+            'mejs.time-help-text' : "Strzałki w lewo/w prawo powodują przewijanie o sekundę, strzałki w górę/w dół o dziesięć sekund.",
+            'mejs.time-skip-back' : "Cofnij o %1 sek.",
+            'mejs.time-slider' : "Suwak czasu",
+            'mejs.unmute' : "Wyłącz wyciszenie",
+            'mejs.video-player' : "Odtwarzacz wideo",
+            'mejs.volume-help-text' : "Aby zwiększyć lub zmniejszyć głośność, użyj strzałek w górę/w dół.",
+            'mejs.volume-slider' : "Suwak głośności"
+
+        };
+    }
+
+}(mejs.i18n.locale.strings));

+ 37 - 0
app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-pt-br.js

@@ -0,0 +1,37 @@
+/*!
+ * This is a i18n.locale language object.
+ *
+ * Brazilian Portuguese translation by Armando Meziat
+ *
+ * @author
+ *   Armando Meziat 
+ *   - Twitter: @odnamrataizem
+ *   - GitHub: https://github.com/odnamrataizem/
+ *
+ * @see
+ *   me-i18n.js
+ *
+ * @params
+ *  - exports - CommonJS, window ..
+ */
+;(function(exports, undefined) {
+
+    "use strict";
+
+    if (typeof exports['pt-BR'] === 'undefined') {
+        exports.pt = {
+            'mejs.none' : "Sem legendas",
+            'mejs.unmute' : "Tirar silêncio",
+            'mejs.fullscreen' : "Tela inteira",
+            'mejs.download-file' : "Baixar arquivo",
+            'mejs.mute-toggle' : "Alternar silêncio",
+            'mejs.captions-subtitles' : "Legendas",
+            'mejs.download-video' : "Baixar vídeo",
+            'mejs.mute' : "Silenciar",
+            'mejs.fullscreen-off' : "Sair da tela inteira",
+            'mejs.fullscreen-on' : "Ir para tela inteira",
+            'mejs.close' : "Fechar"
+        };
+    }
+
+}(mejs.i18n.locale.strings));

+ 46 - 0
app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-pt.js

@@ -0,0 +1,46 @@
+/*!
+ * This is a i18n.locale language object.
+ *
+ * Portuguese translation by Jalios, Twitter: @Jalios
+ *
+ * @author
+ *   Jalios (Twitter: @Jalios)
+ *
+ * @see
+ *   me-i18n.js
+ *
+ * @params
+ *  - exports - CommonJS, window ..
+ */
+;(function(exports, undefined) {
+
+    "use strict";
+
+    if (typeof exports.pt === 'undefined') {
+        exports.pt = {
+
+            'mejs.audio-player' : "Leitor de áudio",
+            'mejs.captions-subtitles' : "Legendas",
+            'mejs.close' : "Fechar",
+            'mejs.download-file' : "Descarregar o ficheiro",
+            'mejs.download-video' : "Descarregar o vídeo",
+            'mejs.fullscreen' : "Ecrã completo",
+            'mejs.fullscreen-off' : "Desligar ecrã completo",
+            'mejs.fullscreen-on' : "Ir para ecrã completo",
+            'mejs.mute' : "Silêncio",
+            'mejs.mute-toggle' : "Alternar silêncio",
+            'mejs.none' : "Nenhum",
+            'mejs.pause' : "Pausa",
+            'mejs.play' : "Reprodução",
+            'mejs.time-help-text' : "Use as teclas das setas para a esquerda/direita para avançar um segundo, e as setas para cima/baixo para avançar dez segundos.",
+            'mejs.time-skip-back' : "Retroceder %1 segundos",
+            'mejs.time-slider' : "Deslizador do tempo",
+            'mejs.unmute' : "Voltar ao som",
+            'mejs.video-player' : "Leitor de vídeo",
+            'mejs.volume-help-text' : "Use as teclas das setas para cima/baixo para aumentar ou diminuir o volume.",
+            'mejs.volume-slider' : "Deslizador do volume"
+
+        };
+    }
+
+}(mejs.i18n.locale.strings));

+ 46 - 0
app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-ro.js

@@ -0,0 +1,46 @@
+/*!
+ * This is a i18n.locale language object.
+ *
+ * Romanian translation by Jalios, Twitter: @Jalios
+ *
+ * @author
+ *   Jalios (Twitter: @Jalios)
+ *
+ * @see
+ *   me-i18n.js
+ *
+ * @params
+ *  - exports - CommonJS, window ..
+ */
+;(function(exports, undefined) {
+
+    "use strict";
+
+    if (typeof exports.ro === 'undefined') {
+        exports.ro = {
+
+            'mejs.audio-player' : "Player audio",
+            'mejs.captions-subtitles' : "Legende/Subtitrări",
+            'mejs.close' : "Închide",
+            'mejs.download-file' : "Descarcă fişierul",
+            'mejs.download-video' : "Descarcă fişierul video",
+            'mejs.fullscreen' : "Ecran complet",
+            'mejs.fullscreen-off' : "Opreşte ecranul complet",
+            'mejs.fullscreen-on' : "Treci la ecran complet",
+            'mejs.mute' : "Fără sunet",
+            'mejs.mute-toggle' : "Comutare dezactivare sunet",
+            'mejs.none' : "Niciunul",
+            'mejs.pause' : "Pauză",
+            'mejs.play' : "Redare",
+            'mejs.time-help-text' : "Utilizează tastele săgeată Stânga/Dreapta pentru a avansa o secundă şi săgeţile Sus/Jos pentru a avansa zece secunde.",
+            'mejs.time-skip-back' : "Sari înapoi %1 secunde",
+            'mejs.time-slider' : "Cursor timp",
+            'mejs.unmute' : "Cu sunet",
+            'mejs.video-player' : "Player video",
+            'mejs.volume-help-text' : "Utilizează tastele de săgeată Sus/Jos pentru a creşte/micşora volumul",
+            'mejs.volume-slider' : "Cursor volum"
+
+        };
+    }
+
+}(mejs.i18n.locale.strings));

+ 46 - 0
app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-ru.js

@@ -0,0 +1,46 @@
+/*!
+ * This is a i18n.locale language object.
+ *
+ * Russian translation by Jalios, Twitter: @Jalios
+ *
+ * @author
+ *   Jalios (Twitter: @Jalios)
+ *
+ * @see
+ *   me-i18n.js
+ *
+ * @params
+ *  - exports - CommonJS, window ..
+ */
+;(function(exports, undefined) {
+
+    "use strict";
+
+    if (typeof exports.ru === 'undefined') {
+        exports.ru = {
+
+            'mejs.audio-player' : "Аудиоплеер",
+            'mejs.captions-subtitles' : "Титры/Субтитры",
+            'mejs.close' : "Закрыть",
+            'mejs.download-file' : "Скачать файл",
+            'mejs.download-video' : "Скачать видео",
+            'mejs.fullscreen' : "Широкий экран",
+            'mejs.fullscreen-off' : "Выключить широкий экран",
+            'mejs.fullscreen-on' : "Перейти к широкому экрану",
+            'mejs.mute' : "Отключить звук",
+            'mejs.mute-toggle' : "Без звука",
+            'mejs.none' : "Нет",
+            'mejs.pause' : "Пауза",
+            'mejs.play' : "Воспроизвести",
+            'mejs.time-help-text' : "Используйте Левую/Правую клавиши со стрелками, чтобы продвинуться на одну секунду, клавиши со стрелками Вверх/Вниз, чтобы продвинуться на десять секунд.",
+            'mejs.time-skip-back' : "Пропустить назад %1 секунд",
+            'mejs.time-slider' : "Слайдер времени",
+            'mejs.unmute' : "Отменить выключение звука",
+            'mejs.video-player' : "Видеоплеер",
+            'mejs.volume-help-text' : "Используйте клавиши со стрелками Вверх/Вниз, чтобы увеличить или уменьшить громкость.",
+            'mejs.volume-slider' : "Слайдер громкости"
+
+        };
+    }
+
+}(mejs.i18n.locale.strings));

+ 46 - 0
app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-sk.js

@@ -0,0 +1,46 @@
+/*!
+ * This is a i18n.locale language object.
+ *
+ * Slovak translation by Jalios, Twitter: @Jalios
+ *
+ * @author
+ *   Jalios (Twitter: @Jalios)
+ *
+ * @see
+ *   me-i18n.js
+ *
+ * @params
+ *  - exports - CommonJS, window ..
+ */
+;(function(exports, undefined) {
+
+    "use strict";
+
+    if (typeof exports.sk === 'undefined') {
+        exports.sk = {
+
+            'mejs.audio-player' : "Prehrávač zvuku",
+            'mejs.captions-subtitles' : "Skryté titulky/Titulky",
+            'mejs.close' : "Zavrieť",
+            'mejs.download-file' : "Prevziať súbor",
+            'mejs.download-video' : "Prevziať video",
+            'mejs.fullscreen' : "Celá obrazovka",
+            'mejs.fullscreen-off' : "Vypnúť celú obrazovku",
+            'mejs.fullscreen-on' : "Prejsť na celú obrazovku",
+            'mejs.mute' : "Stlmiť",
+            'mejs.mute-toggle' : "Prepínač stlmenia",
+            'mejs.none' : "Žiadne",
+            'mejs.pause' : "Pozastaviť",
+            'mejs.play' : "Prehrať",
+            'mejs.time-help-text' : "Klávesmi so šípkou doľava/doprava posuniete o jednu sekundu, šípkami nahor/ nadol posuniete o desať sekúnd.",
+            'mejs.time-skip-back' : "Preskočiť dozadu o %1 s.",
+            'mejs.time-slider' : "Posúvač času",
+            'mejs.unmute' : "Zrušiť stlmenie",
+            'mejs.video-player' : "Prehrávač videa",
+            'mejs.volume-help-text' : "Klávesmi so šípkou nahor/nadol zvýšite alebo znížite hlasitosť.",
+            'mejs.volume-slider' : "Posúvač hlasitosti"
+
+        };
+    }
+
+}(mejs.i18n.locale.strings));

+ 46 - 0
app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-zh-cn.js

@@ -0,0 +1,46 @@
+/*!
+ * This is a i18n.locale language object.
+ *
+ * Chinese simplified translation by Jalios, Twitter: @Jalios
+ *
+ * @author
+ *   Jalios (Twitter: @Jalios)
+ *
+ * @see
+ *   me-i18n.js
+ *
+ * @params
+ *  - exports - CommonJS, window ..
+ */
+;(function(exports, undefined) {
+
+    "use strict";
+
+    if (typeof exports['zh-CN'] === 'undefined') {
+        exports['zh-CN'] = {
+
+            'mejs.audio-player' : "音频播放器",
+            'mejs.captions-subtitles' : "字幕/标题",
+            'mejs.close' : "关闭",
+            'mejs.download-file' : "下载文件",
+            'mejs.download-video' : "下载视频",
+            'mejs.fullscreen' : "全屏",
+            'mejs.fullscreen-off' : "关闭全屏",
+            'mejs.fullscreen-on' : "转向全屏",
+            'mejs.mute' : "静音",
+            'mejs.mute-toggle' : "静音切换",
+            'mejs.none' : "无",
+            'mejs.pause' : "暂停",
+            'mejs.play' : "播放",
+            'mejs.time-help-text' : "使用作/右箭头快进1秒,使用上/下箭头快进10秒。",
+            'mejs.time-skip-back' : "后退%1秒",
+            'mejs.time-slider' : "时间滑动棒",
+            'mejs.unmute' : "取消静音",
+            'mejs.video-player' : "视频播放器",
+            'mejs.volume-help-text' : "使用上/下箭头提高或降低音量。",
+            'mejs.volume-slider' : "音量选择键"
+
+        };
+    }
+
+}(mejs.i18n.locale.strings));

+ 46 - 0
app/Resources/public/assets/mediaelement/build/lang/me-i18n-locale-zh.js

@@ -0,0 +1,46 @@
+/*!
+ * This is a i18n.locale language object.
+ *
+ * Chinese traditionnal translation by Jalios, Twitter: @Jalios
+ *
+ * @author
+ *   Jalios (Twitter: @Jalios)
+ *
+ * @see
+ *   me-i18n.js
+ *
+ * @params
+ *  - exports - CommonJS, window ..
+ */
+;(function(exports, undefined) {
+
+    "use strict";
+
+    if (typeof exports.zh === 'undefined') {
+        exports.zh = {
+
+            'mejs.audio-player' : "音頻播放器",
+            'mejs.captions-subtitles' : "字幕/標題",
+            'mejs.close' : "關閉",
+            'mejs.download-file' : "下載文件",
+            'mejs.download-video' : "下載視頻",
+            'mejs.fullscreen' : "全屏",
+            'mejs.fullscreen-off' : "關閉全屏",
+            'mejs.fullscreen-on' : "轉向全屏",
+            'mejs.mute' : "靜音",
+            'mejs.mute-toggle' : "靜音切換",
+            'mejs.none' : "沒有",
+            'mejs.pause' : "暫停",
+            'mejs.play' : "播放",
+            'mejs.time-help-text' : "使用左/右箭頭快進1秒,上/下箭頭快進10秒。",
+            'mejs.time-skip-back' : "跳躍式迴繞%1秒",
+            'mejs.time-slider' : "時間滑動棒",
+            'mejs.unmute' : "取消靜音",
+            'mejs.video-player' : "視頻播放器",
+            'mejs.volume-help-text' : "使用上/下箭頭提高或降低音量。",
+            'mejs.volume-slider' : "音量控制鍵"
+
+        };
+    }
+
+}(mejs.i18n.locale.strings));

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 364 - 147
app/Resources/public/assets/mediaelement/build/mediaelement-and-player.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
app/Resources/public/assets/mediaelement/build/mediaelement-and-player.min.js


+ 157 - 37
app/Resources/public/assets/mediaelement/build/mediaelement.js

@@ -16,7 +16,7 @@
 var mejs = mejs || {};
 
 // version number
-mejs.version = '2.22.0'; 
+mejs.version = '2.23.2';
 
 
 // player number (for missing, same id attr)
@@ -28,7 +28,7 @@ mejs.plugins = {
 		{version: [3,0], types: ['video/mp4','video/m4v','video/mov','video/wmv','audio/wma','audio/m4a','audio/mp3','audio/wav','audio/mpeg']}
 	],
 	flash: [
-		{version: [9,0,124], types: ['video/mp4','video/m4v','video/mov','video/flv','video/rtmp','video/x-flv','audio/flv','audio/x-flv','audio/mp3','audio/m4a','audio/mpeg', 'video/dailymotion', 'video/x-dailymotion', 'application/x-mpegURL']}
+		{version: [9,0,124], types: ['video/mp4','video/m4v','video/mov','video/flv','video/rtmp','video/x-flv','audio/flv','audio/x-flv','audio/mp3','audio/m4a', 'audio/mp4', 'audio/mpeg', 'video/dailymotion', 'video/x-dailymotion', 'application/x-mpegURL', 'audio/ogg']}
 		// 'video/youtube', 'video/x-youtube', 
 		// ,{version: [12,0], types: ['video/webm']} // for future reference (hopefully!)
 	],
@@ -300,7 +300,23 @@ mejs.Utility = {
             return url.substr(0, url.indexOf("://")+3);
         }
         return "//"; // let user agent figure this out
-    }
+    },
+
+	// taken from underscore
+	debounce: function(func, wait, immediate) {
+		var timeout;
+		return function() {
+			var context = this, args = arguments;
+			var later = function() {
+				timeout = null;
+				if (!immediate) func.apply(context, args);
+			};
+			var callNow = immediate && !timeout;
+			clearTimeout(timeout);
+			timeout = setTimeout(later, wait);
+			if (callNow) func.apply(context, args);
+		};
+	}
 };
 
 
@@ -883,7 +899,7 @@ mejs.PluginMediaElement.prototype = {
 		if (this.hasAttribute(name)) {
 			return this.attributes[name];
 		}
-		return '';
+		return null;
 	},
 	setAttribute: function(name, value){
 		this.attributes[name] = value;
@@ -944,6 +960,9 @@ mejs.MediaElementDefaults = {
 	timerRate: 250,
 	// initial volume for player
 	startVolume: 0.8,
+	// custom error message in case media cannot be played; otherwise, Download File
+	// link will be displayed
+	customError: "",
 	success: function () { },
 	error: function () { }
 };
@@ -992,7 +1011,7 @@ mejs.HtmlMediaElementShim = {
 		// test for HTML5 and plugin capabilities
 		playback = this.determinePlayback(htmlMediaElement, options, mejs.MediaFeatures.supportsMediaTag, isMediaTag, src);
 		playback.url = (playback.url !== null) ? mejs.Utility.absolutizeUrl(playback.url) : '';
-        playback.scheme = mejs.Utility.determineScheme(playback.url);
+        	playback.scheme = mejs.Utility.determineScheme(playback.url);
 
 		if (playback.method == 'native') {
 			// second fix for android
@@ -1026,7 +1045,7 @@ mejs.HtmlMediaElementShim = {
 			l,
 			n,
 			type,
-			result = { method: '', url: '', htmlMediaElement: htmlMediaElement, isVideo: (htmlMediaElement.tagName.toLowerCase() != 'audio'), scheme: ''},
+			result = { method: '', url: '', htmlMediaElement: htmlMediaElement, isVideo: (htmlMediaElement.tagName.toLowerCase() !== 'audio'), scheme: ''},
 			pluginName,
 			pluginVersions,
 			pluginInfo,
@@ -1080,16 +1099,16 @@ mejs.HtmlMediaElementShim = {
 		// STEP 2: Test for playback method
 		
 		// special case for Android which sadly doesn't implement the canPlayType function (always returns '')
-		if (mejs.MediaFeatures.isBustedAndroid) {
+		if (result.isVideo && mejs.MediaFeatures.isBustedAndroid) {
 			htmlMediaElement.canPlayType = function(type) {
 				return (type.match(/video\/(mp4|m4v)/gi) !== null) ? 'maybe' : '';
 			};
 		}		
 		
 		// special case for Chromium to specify natively supported video codecs (i.e. WebM and Theora) 
-		if (mejs.MediaFeatures.isChromium) { 
+		if (result.isVideo && mejs.MediaFeatures.isChromium) {
 			htmlMediaElement.canPlayType = function(type) { 
-				return (type.match(/video\/(webm|ogv|ogg)/gi) !== null) ? 'maybe' : ''; 
+				return (type.match(/video\/(webm|ogv|ogg)/gi) !== null) ? 'maybe' : '';
 			}; 
 		}
 
@@ -1258,7 +1277,7 @@ mejs.HtmlMediaElementShim = {
 				errorContent += '<img src="' + poster + '" width="100%" height="100%" alt="" />';
 			}
 
-			errorContent += '<span>' + mejs.i18n.t('Download File') + '</span></a>';
+			errorContent += '<span>' + mejs.i18n.t('mejs.download-file') + '</span></a>';
 		}
 
 		errorContainer.innerHTML = errorContent;
@@ -1282,7 +1301,7 @@ mejs.HtmlMediaElementShim = {
 			initVars;
 
 		// copy tagName from html media element
-		pluginMediaElement.tagName = htmlMediaElement.tagName
+		pluginMediaElement.tagName = htmlMediaElement.tagName;
 
 		// copy attributes from html media element to plugin media element
 		for (var i = 0; i < htmlMediaElement.attributes.length; i++) {
@@ -1334,10 +1353,21 @@ mejs.HtmlMediaElementShim = {
 		
 		if (playback.method === 'flash' || playback.method === 'silverlight') {
 
+			var canPlayVideo = htmlMediaElement.getAttribute('type') === 'audio/mp4',
+				childrenSources = htmlMediaElement.getElementsByTagName('source');
+
+			if (childrenSources && !canPlayVideo) {
+				for (var i = 0, total = childrenSources.length; i < total; i++) {
+					if (childrenSources[i].getAttribute('type') === 'audio/mp4') {
+						canPlayVideo = true;
+					}
+				}
+			}
+
 			// flash/silverlight vars
 			initVars = [
 				'id=' + pluginid,
-				'isvideo=' + ((playback.isVideo) ? "true" : "false"),
+				'isvideo=' + ((playback.isVideo || canPlayVideo) ? "true" : "false"),
 				'autoplay=' + ((autoplay) ? "true" : "false"),
 				'preload=' + preload,
 				'width=' + width,
@@ -1385,7 +1415,7 @@ mejs.HtmlMediaElementShim = {
 				if (pluginMediaElement.pluginApi != null && pluginMediaElement.success) {
 					pluginMediaElement.success(pluginMediaElement, htmlMediaElement);
 				}
-			}
+			};
 			
 			// event call from plugin
 			window[pluginid + '_event'] = function(eventName, values) {
@@ -1504,7 +1534,8 @@ mejs.HtmlMediaElementShim = {
 						videoId: videoId,
 						height: height,
 						width: width,
-                        scheme: playback.scheme
+                        scheme: playback.scheme,
+						variables: options.youtubeIframeVars
 					};				
 				
 				// favor iframe version of YouTube
@@ -1513,7 +1544,6 @@ mejs.HtmlMediaElementShim = {
 				} else if (mejs.PluginDetector.hasPluginVersion('flash', [10,0,0]) ) {
 					mejs.YouTubeApi.createFlash(youtubeSettings, options);
 				}
-				
 				break;
 			
 			// DEMO Code. Does NOT work.
@@ -1530,19 +1560,19 @@ mejs.HtmlMediaElementShim = {
 		
 						player.playVideo = function() {
 							player.api( 'play' );
-						} 
+						};
 						player.stopVideo = function() {
 							player.api( 'unload' );
-						} 
+						};
 						player.pauseVideo = function() {
 							player.api( 'pause' );
-						} 
+						};
 						player.seekTo = function( seconds ) {
 							player.api( 'seekTo', seconds );
-						}
+						};
 						player.setVolume = function( volume ) {
 							player.api( 'setVolume', volume );
-						}
+						};
 						player.setMuted = function( muted ) {
 							if( muted ) {
 								player.lastVolume = player.api( 'getVolume' );
@@ -1551,11 +1581,11 @@ mejs.HtmlMediaElementShim = {
 								player.api( 'setVolume', player.lastVolume );
 								delete player.lastVolume;
 							}
-						}
+						};
 						// parity with YT player
 						player.getPlayerState = function() {
 							return playerState;
-						}			
+						};
 
 						function createEvent(player, pluginMediaElement, eventName, e) {
 							var event = {
@@ -1694,21 +1724,22 @@ mejs.YouTubeApi = {
 		}
 	},
 	createIframe: function(settings) {
-		
+
 		var
-		pluginMediaElement = settings.pluginMediaElement,	
+		pluginMediaElement = settings.pluginMediaElement,
+		defaultVars = {controls:0, wmode:'transparent'},
 		player = new YT.Player(settings.containerId, {
 			height: settings.height,
 			width: settings.width,
 			videoId: settings.videoId,
-			playerVars: {controls:0,wmode:'transparent'},
+			playerVars: $.extend({}, defaultVars, settings.variables),
 			events: {
-				'onReady': function() {
+				'onReady': function(e) {
 					
 					// wrapper to match
 					player.setVideoSize = function(width, height) {
 						player.setSize(width, height);
-					}
+					};
 					
 					// hook up iframe object to MEjs
 					settings.pluginMediaElement.pluginApi = player;
@@ -1716,11 +1747,17 @@ mejs.YouTubeApi = {
 					
 					// init mejs
 					pluginMediaElement.success(pluginMediaElement, pluginMediaElement.pluginElement);
+
+					mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'canplay');
 					
 					// create timer
 					setInterval(function() {
 						mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'timeupdate');
-					}, 250);					
+					}, 250);
+
+					if (typeof pluginMediaElement.attributes.autoplay !== 'undefined') {
+						player.playVideo();
+					}
 				},
 				'onStateChange': function(e) {
 					
@@ -1844,7 +1881,7 @@ mejs.YouTubeApi = {
 		
 		window[callbackName] = function(e) {
 			mejs.YouTubeApi.handleStateChange(e, player, pluginMediaElement);
-		}
+		};
 		
 		player.addEventListener('onStateChange', callbackName);
 		
@@ -1908,9 +1945,6 @@ window.MediaElement = mejs.MediaElement;
  * This file does not contain translations, you have to add them manually.
  * The schema is always the same: me-i18n-locale-[IETF-language-tag].js
  *
- * Examples are provided both for german and chinese translation.
- *
- *
  * What is the concept beyond i18n?
  *   http://en.wikipedia.org/wiki/Internationalization_and_localization
  *
@@ -1944,6 +1978,7 @@ window.MediaElement = mejs.MediaElement;
     "use strict";
 
     var i18n = {
+        "default": 'en',
         "locale": {
             // Ensure previous values aren't overwritten.
             "language" : (exports.i18n && exports.i18n.locale.language) || '',
@@ -2001,8 +2036,8 @@ window.MediaElement = mejs.MediaElement;
      * Translate strings to the page language or a given language.
      *
      *
-     * @param str
-     *   A string containing the English string to translate.
+     * @param uid
+     *   A string containing a unique id of the translated text to retrieve.
      *
      * @param options
      *   - 'context' (defaults to the default context): The context the source string
@@ -2011,13 +2046,22 @@ window.MediaElement = mejs.MediaElement;
      * @return
      *   The translated string, escaped via i18n.methods.checkPlain()
      */
-    i18n.methods.t = function (str, options) {
+    i18n.methods.t = function (uid, options) {
+        var str;
 
         // Fetch the localized version of the string.
-        if (i18n.locale.strings && i18n.locale.strings[options.context] && i18n.locale.strings[options.context][str]) {
-            str = i18n.locale.strings[options.context][str];
+        if (i18n.locale.strings && i18n.locale.strings[options.context]) {
+            str = i18n.locale.strings[options.context][uid];
+        }
+
+        // Fallback to default language if requested uid is not translated
+        if (!str && i18n.locale.strings && i18n.locale.strings[i18n["default"]]) {
+            str = i18n.locale.strings[i18n["default"]][uid];
         }
 
+        // As a last resort, use the requested uid, to mimic original behavior of i18n utils (in which uid was the english text)
+        str = str || uid;
+
         return i18n.methods.checkPlain(str);
     };
 
@@ -2064,3 +2108,79 @@ window.MediaElement = mejs.MediaElement;
     }
 
 }(mejs.i18n.locale.strings));
+
+/*!
+ * This is a i18n.locale language object.
+ *
+ * English; This can serve as a template for other languages to translate
+ *
+ * @author
+ *   TBD
+ *
+ * @see
+ *   me-i18n.js
+ *
+ * @params
+ *  - exports - CommonJS, window ..
+ */
+;(function(exports, undefined) {
+
+    "use strict";
+
+    if (typeof exports.en === 'undefined') {
+        exports.en = {
+            // me-shim
+            'mejs.download-file': 'Download File',
+
+            // mep-feature-contextmenu
+            'mejs.fullscreen-off': 'Turn off Fullscreen',
+            'mejs.fullscreen-on' : 'Go Fullscreen',
+            // Duplicated from mep-feature-volume
+            // 'mejs.unmute' : 'Unmute',
+            // 'mejs.mute' : 'Mute',
+            'mejs.download-video' : 'Download Video',
+
+            // mep-feature-fullscreen
+            'mejs.fullscreen' : 'Fullscreen',
+
+            // mep-feature-jumpforward
+            'mejs.time-jump-forward': 'Jump forward %1 seconds',
+
+            // mep-feature-playpause
+            'mejs.play': 'Play',
+            'mejs.pause': 'Pause',
+
+            // mep-feature-postroll
+            'mejs.close' : 'Close',
+
+            // mep-feature-progress
+            'mejs.time-slider': 'Time Slider',
+            'mejs.time-help-text': 'Use Left/Right Arrow keys to advance one second, Up/Down arrows to advance ten seconds.',
+
+            // mep-feature-skipback
+            'mejs.time-skip-back': 'Skip back %1 seconds',
+
+            // mep-feature-tracks
+            'mejs.captions-subtitles' : 'Captions/Subtitles',
+            'mejs.none' : 'None',
+
+            // mep-feature-volume
+            'mejs.mute-toggle' : 'Mute Toggle',
+            'mejs.volume-help-text': 'Use Up/Down Arrow keys to increase or decrease volume.',
+            'mejs.unmute' : 'Unmute',
+            'mejs.mute' : 'Mute',
+            'mejs.volume-slider': 'Volume Slider',
+
+            // mep-player
+            'mejs.video-player': 'Video Player',
+            'mejs.audio-player': 'Audio Player',
+            	
+            // mep-feature-ads
+            'mejs.ad-skip': 'Skip ad',
+            'mejs.ad-skip-info': 'Skip in %1 seconds',
+
+            'mejs.source-chooser': 'Source Chooser'
+        };
+    }
+
+}(mejs.i18n.locale.strings));

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
app/Resources/public/assets/mediaelement/build/mediaelement.min.js


+ 3 - 2
app/Resources/public/assets/mediaelement/build/mediaelementplayer.css

@@ -723,10 +723,12 @@
 }
 
 .mejs-captions-text {
-	padding: 3px 5px;
+	padding: 0;
 	background: url("background.png");
 	background: rgba(20, 20, 20, 0.5);
 	white-space: pre-wrap;
+	-webkit-box-shadow: 5px 0 0 rgba(20, 20, 20, 0.5), -5px 0 0 rgba(20, 20, 20, 0.5);
+	box-shadow: 5px 0 0 rgba(20, 20, 20, 0.5), -5px 0 0 rgba(20, 20, 20, 0.5);
 }
 /* End: Track (Captions and Chapters) */
 
@@ -815,7 +817,6 @@
 }
 
 .mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector {
-	visibility: hidden;
 	position: absolute;
 	bottom: 26px;
 	right: -10px;

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 432 - 337
app/Resources/public/assets/mediaelement/build/mediaelementplayer.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
app/Resources/public/assets/mediaelement/build/mediaelementplayer.min.css


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
app/Resources/public/assets/mediaelement/build/mediaelementplayer.min.js


+ 41 - 11
app/Resources/public/assets/mediaelement/changelog.md

@@ -1,9 +1,49 @@
 ### Version History
 
+*2.23.2 (2016/10/01)*
+
+* Added fix for time rail width described on #1356 @ron666
+* Integrated markers feature (https://github.com/johndyer/mediaelement/pull/1814) @hkasera
+* Added French translation for Source Chooser feature (https://github.com/johndyer/mediaelement/pull/1850) @OlivierJaquemet
+* Fixed German translation file (https://github.com/johndyer/mediaelement/pull/1852) @SoftCreatR
+* Add complete list of supported language in translation demo file (https://github.com/johndyer/mediaelement/pull/1853) @OlivierJaquemet
+* Fix for controls when no features are set in the configuration (https://github.com/johndyer/mediaelement/pull/1797) @ron666
+* Fixed issues with translatable elements in several features files that were not being translated properly and fixed typo in Spanish translation @ron666
+* Fixed YouTube loop issue according to @michaelbucklin recommendation @ron666
+* Fixed compilation error when using YUICompressor on i18n file (https://github.com/johndyer/mediaelement/pull/1861) @OlivierJaquemet
+
+*2.23.1 (2016/09/26)*
+
+* Fix documentation in regards of control icons with CSS in different path (https://github.com/johndyer/mediaelement/pull/1837) @jangrewe
+* Added a new element to customize YouTube iframe, to solve #1840 (https://github.com/johndyer/mediaelement/pull/1842) @ron666
+* Fix issues with Chromium not playing audio files properly (https://github.com/johndyer/mediaelement/pull/1843) @ron666
+* Fix for issue related to space bar and Firefox triggering click event, causing issues in Accessibility (https://github.com/johndyer/mediaelement/pull/1848) @ron666
+* Update I18N to use unique id instead of strings (https://github.com/johndyer/mediaelement/pull/1845) @OlivierJaquemet
+* Make the sourcechooser feature keyboard-friendly for Accessibility purposes (https://github.com/johndyer/mediaelement/pull/1841) @tennety
+* Integration of `grunt` task to set translation files inside `/build/` folder (https://github.com/johndyer/mediaelement/pull/1834) @ron666
+
+*2.23.0 (2016/09/06)*
+
+* Changed way to detect fullscreen method by using _onloadstart_ event (https://github.com/johndyer/mediaelement/pull/1815) @ale-grosselle
+* Preserve volume muted when resizing player (https://github.com/johndyer/mediaelement/pull/1813) @ron666
+* Allow double lines of captions, added missing _captions_ type in tracks workflow and minor typo fix (https://github.com/johndyer/mediaelement/pull/1800) @ron666
+* Touch devices controls fix for #1820 (https://github.com/johndyer/mediaelement/issues/603) @ron666
+* Show controls when video is paused or ended (https://github.com/johndyer/mediaelement/pull/1786) @ron666
+* Progress bar variables set properly to fix #1600 (https://github.com/johndyer/mediaelement/pull/1824) @ron666
+* Configurable controls visibility time (https://github.com/johndyer/mediaelement/pull/1787) @ron666
+* Added delay when hovering out of control button (https://github.com/johndyer/mediaelement/pull/1615) @schrolli
+* Added new Grunt task to compile all html5 elements including console messages (https://github.com/johndyer/mediaelement/pull/1614) @schrolli
+* Added call to format time properly when metadata has been loaded (https://github.com/johndyer/mediaelement/pull/1826) @ron666
+* Added time tracker tooltip configuration to enable/disable it (#1692) (https://github.com/johndyer/mediaelement/pull/1830) @ron666
+* Set source properly on YouTube videos properly per @dazweeja's comments (https://github.com/johndyer/mediaelement/pull/1829) @ron666
+* Documentation improvements and addition of TODO list (https://github.com/johndyer/mediaelement/pull/1805) @ron666
+* Added missing error message configuration in documentation and in player settings
+
 *2.22.1 (2016/08/18)*
 
 * Fix wrong parameter sent to defaultSeekForwardInterval and defaultSeekBackwardInterval options (https://github.com/johndyer/mediaelement/pull/1784) @marjune163
 * Fullscreen in Safari Mac must show player skin (https://github.com/johndyer/mediaelement/pull/1794) @ale-grosselle
+* Add missing string to the English locale template https://github.com/johndyer/mediaelement/pull/1782 @ocean90 
 * Fix for aspect ratio when playing Hls Flash video if m3u8 does not have a resolution indicated (#1790) (https://github.com/johndyer/mediaelement/pull/1791) @ale-grosselle
 * Only focus the play button when the control bar is not hidden (https://github.com/johndyer/mediaelement/pull/1798) @schrolli
 * Avoid hiding audio controls when tabbing (#1668) (https://github.com/johndyer/mediaelement/pull/1804) @ron666
@@ -19,7 +59,7 @@
 * Update Flash HLS to accept audio (https://github.com/johndyer/mediaelement/pull/1763) @ale-grosselle
 * Updated Korean translation (#1743) @Jinkwon 
 * Improve video ID parsing for YouTube URLs (https://github.com/johndyer/mediaelement/pull/1774) @ocean90
-* Removed extrainous call to removePlugin @johndyer 
+* Removed extraneous call to removePlugin @johndyer 
 
 *2.21.2 (2016/05/08)*
 
@@ -860,13 +900,3 @@ Fixes and updates
 *1.0.0 (2010/08/09)*
 
 * initial release
-
-
-*Someday/Maybe features*
-
-* deeper WebVTT support (alignment, color, etc.) - include captionator
-* Full support for Ender.js, including mediaelement-and-player-standalone which includes ender.
-* thin line when controls are off
-* system-wide events
-* Ogg/Theora playback
-* Better alignment with native MediaElement (using shimichanga.com techniques)

+ 4 - 4
app/Resources/public/assets/pwstrength-bootstrap/.bower.json

@@ -1,6 +1,6 @@
 {
   "name": "pwstrength-bootstrap",
-  "version": "2.0.2",
+  "version": "2.0.3",
   "homepage": "https://github.com/ablanco/jquery.pwstrength.bootstrap",
   "authors": [
     "Alejandro Blanco <alejandro.b.e@gmail.com>"
@@ -35,11 +35,11 @@
     "Gruntfile.js",
     "package.json"
   ],
-  "_release": "2.0.2",
+  "_release": "2.0.3",
   "_resolution": {
     "type": "version",
-    "tag": "2.0.2",
-    "commit": "cafffc55da15c4e9c2c7ee32fa39231c460ef718"
+    "tag": "2.0.3",
+    "commit": "134e8360142c8be075011424ee3e22a9917ce99c"
   },
   "_source": "https://github.com/ablanco/jquery.pwstrength.bootstrap.git",
   "_target": "*",

+ 1 - 1
app/Resources/public/assets/pwstrength-bootstrap/bower.json

@@ -1,6 +1,6 @@
 {
   "name": "pwstrength-bootstrap",
-  "version": "2.0.2",
+  "version": "2.0.3",
   "homepage": "https://github.com/ablanco/jquery.pwstrength.bootstrap",
   "authors": [
     "Alejandro Blanco <alejandro.b.e@gmail.com>"

+ 1 - 1
app/Resources/public/assets/pwstrength-bootstrap/dist/pwstrength-bootstrap.js

@@ -1,6 +1,6 @@
 /*!
 * jQuery Password Strength plugin for Twitter Bootstrap
-* Version: 2.0.2
+* Version: 2.0.3
 *
 * Copyright (c) 2008-2013 Tane Piper
 * Copyright (c) 2013 Alejandro Blanco

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 1
app/Resources/public/assets/pwstrength-bootstrap/dist/pwstrength-bootstrap.min.js


+ 15 - 0
app/Resources/public/assets/pwstrength-bootstrap/locales/de.json

@@ -0,0 +1,15 @@
+{
+    "wordLength": "Das Passwort ist zu kurz",
+    "wordNotEmail": "Das Passwort darf die E-Mail Adresse nicht enthalten",
+    "wordSimilarToUsername": "Das Passwort darf den Benutzernamen nicht enthalten",
+    "wordTwoCharacterClasses": "Bitte Buchstaben und Ziffern verwenden",
+    "wordRepetitions": "Zu viele Wiederholungen",
+    "wordSequences": "Das Passwort enthält Buchstabensequenzen",
+    "errorList": "Fehler:",
+    "veryWeak": "Sehr schwach",
+    "weak": "Schwach",
+    "normal": "Normal",
+    "medium": "Mittel",
+    "strong": "Stark",
+    "veryStrong": "Sehr stark"
+}

+ 15 - 0
app/Resources/public/assets/pwstrength-bootstrap/locales/pl.json

@@ -0,0 +1,15 @@
+{
+    "wordLength": "Hasło jest zbyt krótkie",
+    "wordNotEmail": "Hasło nie może być Twoim emailem",
+    "wordSimilarToUsername": "Hasło nie może zawierać nazwy użytkownika",
+    "wordTwoCharacterClasses": "Użyj innych klas znaków",
+    "wordRepetitions": "Zbyt wiele powtórzeń",
+    "wordSequences": "Hasło zawiera sekwencje",
+    "errorList": "Błędy:",
+    "veryWeak": "Bardzo słabe",
+    "weak": "Słabe",
+    "normal": "Normalne",
+    "medium": "Średnie",
+    "strong": "Silne",
+    "veryStrong": "Bardzo silne"
+}

+ 15 - 0
app/Resources/public/assets/pwstrength-bootstrap/locales/tr.json

@@ -0,0 +1,15 @@
+{
+    "wordLength": "Girdiğiniz şifre çok Kısa",
+    "wordNotEmail": "E-mail adresinizi şifreniz içerisinde kullanmayınız",
+    "wordSimilarToUsername": "Kullanıcı Adınızı şifreniz içerisinde kullanmayınız",
+    "wordTwoCharacterClasses": "Başka karakter sınıfı kullanınız",
+    "wordRepetitions": "Çok fazla tekrar var",
+    "wordSequences": "Şifreniz Dizi içermektedir",
+    "errorList": "Hatalar:",
+    "veryWeak": "Çok Zayıf",
+    "weak": "Zayıf",
+    "normal": "Normal",
+    "medium": "Orta",
+    "strong": "Güçlü",
+    "veryStrong": "Çok Güçlü"
+}

+ 4 - 4
app/Resources/public/assets/webcamjs/.bower.json

@@ -1,6 +1,6 @@
 {
   "name": "webcamjs",
-  "version": "1.0.15",
+  "version": "1.0.16",
   "homepage": "https://github.com/jhuckaby/webcamjs",
   "authors": [
     "Joseph Huckaby <jhuckaby@gmail.com>"
@@ -21,11 +21,11 @@
     "demos",
     "flash"
   ],
-  "_release": "1.0.15",
+  "_release": "1.0.16",
   "_resolution": {
     "type": "version",
-    "tag": "v1.0.15",
-    "commit": "15b3fedfc1bd5e6cb8b0ed4460ee0f56a8adbfa8"
+    "tag": "v1.0.16",
+    "commit": "d8b625b82df47f7ae70093cd375bf711dea3f1e4"
   },
   "_source": "https://github.com/jhuckaby/webcamjs.git",
   "_target": "1.0.*",

+ 1 - 1
app/Resources/public/assets/webcamjs/bower.json

@@ -1,6 +1,6 @@
 {
   "name": "webcamjs",
-  "version": "1.0.15",
+  "version": "1.0.16",
   "homepage": "https://github.com/jhuckaby/webcamjs",
   "authors": [
     "Joseph Huckaby <jhuckaby@gmail.com>"

+ 1 - 1
app/Resources/public/assets/webcamjs/package.json

@@ -1,6 +1,6 @@
 {
 	"name": "webcamjs",
-	"version": "1.0.15",
+	"version": "1.0.16",
 	"description": "HTML5 Webcam Image Capture Library with Flash Fallback",
 	"author": "Joseph Huckaby <jhuckaby@gmail.com>",
 	"homepage": "https://github.com/jhuckaby/webcamjs",

+ 4 - 3
app/Resources/public/assets/webcamjs/webcam.js

@@ -1,4 +1,4 @@
-// WebcamJS v1.0.15
+// WebcamJS v1.0.16
 // Webcam library for capturing JPEG/PNG images in JavaScript
 // Attempts getUserMedia, falls back to Flash
 // Author: Joseph Huckaby: http://github.com/jhuckaby
@@ -34,7 +34,7 @@ FlashError.prototype = new IntermediateInheritor();
 WebcamError.prototype = new IntermediateInheritor();
 
 var Webcam = {
-	version: '1.0.15',
+	version: '1.0.16',
 	
 	// globals
 	protocol: location.protocol.match(/https/i) ? 'https' : 'http',
@@ -258,7 +258,8 @@ var Webcam = {
 
 		if (this.userMedia !== true) {
 			// call for turn off camera in flash
-			this.getMovie()._releaseCamera();
+			var movie = this.getMovie();
+			if (movie && movie._releaseCamera) movie._releaseCamera();
 		}
 
 		if (this.container) {

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 1
app/Resources/public/assets/webcamjs/webcam.min.js


+ 4 - 4
app/Resources/public/assets/zxcvbn/.bower.json

@@ -31,12 +31,12 @@
     "test"
   ],
   "homepage": "https://github.com/dropbox/zxcvbn",
-  "version": "4.3.0",
-  "_release": "4.3.0",
+  "version": "4.4.0",
+  "_release": "4.4.0",
   "_resolution": {
     "type": "version",
-    "tag": "4.3.0",
-    "commit": "62aca144af8c6ca9651ceaa981a52cce1df4fef1"
+    "tag": "v4.4.0",
+    "commit": "4c3d1c2b4a246cc8d7c81a61e341ad92ce14411b"
   },
   "_source": "https://github.com/dropbox/zxcvbn.git",
   "_target": ">=4.2.0",

+ 1 - 1
app/Resources/public/assets/zxcvbn/LICENSE.txt

@@ -1,4 +1,4 @@
-Copyright (c) 2012-2015 Dan Wheeler and Dropbox, Inc.
+Copyright (c) 2012-2016 Dan Wheeler and Dropbox, Inc.
 
 Permission is hereby granted, free of charge, to any person obtaining
 a copy of this software and associated documentation files (the

+ 28 - 23
app/Resources/public/assets/zxcvbn/README.md

@@ -10,17 +10,28 @@ ________________________________________________________________________
 [![Build Status](https://travis-ci.org/dropbox/zxcvbn.svg?branch=master)](https://travis-ci.org/dropbox/zxcvbn)
 [![Sauce Test Status](https://saucelabs.com/browser-matrix/dropbox-zxcvbn.svg)](https://saucelabs.com/u/dropbox-zxcvbn)
 
-`zxcvbn` is a password strength estimator inspired by password crackers. Through pattern matching and conservative entropy calculations, it recognizes and weighs 30k common passwords, common names and surnames according to US census data, popular English words from Wikipedia and US television and movies, and other common patterns like dates, repeats (`aaa`), sequences (`abcd`), keyboard patterns (`qwertyuiop`), and l33t speak.
+`zxcvbn` is a password strength estimator inspired by password crackers. Through pattern matching and conservative estimation, it recognizes and weighs 30k common passwords, common names and surnames according to US census data, popular English words from Wikipedia and US television and movies, and other common patterns like dates, repeats (`aaa`), sequences (`abcd`), keyboard patterns (`qwertyuiop`), and l33t speak.
 
 Consider using zxcvbn as an algorithmic alternative to password composition policy — it is more secure, flexible, and usable when sites require a minimal complexity score in place of annoying rules like "passwords must contain three of {lower, upper, numbers, symbols}".
 
 * __More secure__: policies often fail both ways, allowing weak passwords (`P@ssword1`) and disallowing strong passwords.
 * __More flexible__: zxcvbn allows many password styles to flourish so long as it detects sufficient complexity — passphrases are rated highly given enough uncommon words, keyboard patterns are ranked based on length and number of turns, and capitalization adds more complexity when it's unpredictaBle.
-* __More usable__: Use zxcvbn to build simple, rule-free interfaces that give instant feedback. In addition to scoring, zxcvbn includes minimal, targeted verbal feedback that can help guide users towards less guessable passwords.
+* __More usable__: zxcvbn is designed to power simple, rule-free interfaces that give instant feedback. In addition to strength estimation, zxcvbn includes minimal, targeted verbal feedback that can help guide users towards less guessable passwords.
 
-At Dropbox we use zxcvbn on our [signup page](https://www.dropbox.com/register) and change/reset password flows. zxcvbn is designed for node and the browser, but we use our [python port](https://github.com/dropbox/python-zxcvbn) inside the Dropbox desktop client and [Objective C port](https://github.com/dropbox/zxcvbn-ios) in our iOS app.
+At Dropbox we use zxcvbn ([Release notes](https://github.com/dropbox/zxcvbn/releases)) on our web, desktop, iOS and Android clients. If JavaScript doesn't work for you, others have graciously ported the library to these languages:
 
-[Release notes](https://github.com/dropbox/zxcvbn/releases)
+* [`zxcvbn-c`](https://github.com/tsyrogit/zxcvbn-c) (C/C++)
+* [`zxcvbn4j`](https://github.com/nulab/zxcvbn4j) (Java)
+* [`zxcvbn-ios`](https://github.com/dropbox/zxcvbn-ios) (Objective-C)
+* [`python-zxcvbn`](https://github.com/dropbox/python-zxcvbn) (Python)
+* [`zxcvbn-go`](https://github.com/nbutton23/zxcvbn-go) (Go)
+* [`zxcvbn-ruby`](https://github.com/envato/zxcvbn-ruby) (Ruby)
+* [`zxcvbn-php`](https://github.com/bjeavons/zxcvbn-php) (PHP)
+* [`zxcvbn-cs`](https://github.com/mickford/zxcvbn-cs) (C#/.NET)
+* [`szxcvbn`](https://github.com/tekul/szxcvbn) (Scala)
+
+Integrations with other frameworks:
+* [`angular-zxcvbn`](https://github.com/ghostbar/angular-zxcvbn) (AngularJS)
 
 For more motivation, see:
 
@@ -44,7 +55,7 @@ bower install zxcvbn
 Add this script to your `index.html`:
 
 ``` html
-<script type="text/javascript" src="bower_components/zxcvbn/dist/zxcvbn.js">
+<script src="bower_components/zxcvbn/dist/zxcvbn.js">
 </script>
 ```
 
@@ -56,7 +67,7 @@ To pull in updates and bug fixes:
 bower update zxcvbn
 ```
 
-## Node / npm
+## Node / npm / MeteorJS
 
 zxcvbn works identically on the server.
 
@@ -67,11 +78,6 @@ $ node
 > zxcvbn('Tr0ub4dour&3');
 ```
 
-## Meteor (via [Atmosphere](https://atmospherejs.com/codetheweb/zxcvbn))
-``` shell
-meteor add codetheweb:zxcvbn
-```
-
 ## RequireJS
 
 Add [`zxcvbn.js`](https://raw.githubusercontent.com/dropbox/zxcvbn/master/dist/zxcvbn.js) to your project (using bower, npm or direct download) and import as usual:
@@ -122,8 +128,7 @@ Download [zxcvbn.js](https://raw.githubusercontent.com/dropbox/zxcvbn/master/dis
 Add to your .html:
 
 ``` html
-<script type="text/javascript" src="path/to/zxcvbn.js">
-</script>
+<script type="text/javascript" src="path/to/zxcvbn.js"></script>
 ```
 
 # Usage
@@ -140,7 +145,7 @@ zxcvbn(password, user_inputs=[])
 result.guesses            # estimated guesses needed to crack password
 result.guesses_log10      # order of magnitude of result.guesses
 
-result.crack_time_seconds # dictionary of back-of-the-envelope crack time
+result.crack_times_seconds # dictionary of back-of-the-envelope crack time
                           # estimations, in seconds, based on a few scenarios:
 {
   # online attack on a service that ratelimits password auth attempts.
@@ -163,9 +168,9 @@ result.crack_time_seconds # dictionary of back-of-the-envelope crack time
   offline_fast_hashing_1e10_per_second
 }
 
-result.crack_time_display # same keys as result.crack_time_seconds,
-                          # with friendlier display string values:
-                          # "less than a second", "3 hours", "centuries", etc.
+result.crack_times_display # same keys as result.crack_times_seconds,
+                           # with friendlier display string values:
+                           # "less than a second", "3 hours", "centuries", etc.
 
 result.score      # Integer from 0-4 (useful for implementing a strength bar)
 
@@ -204,19 +209,19 @@ zxcvbn operates below human perception of delay for most input: ~5-20ms for ~25
 
 ## script load latency
 
-`zxcvbn.js` bundled and minified is about 390kb gzipped or 800kb uncompressed, most of which is dictionaries. Consider these tips if you're noticing page load latency on your site.
+`zxcvbn.js` bundled and minified is about 400kB gzipped or 820kB uncompressed, most of which is dictionaries. Consider these tips if you're noticing page load latency on your site.
 
-* Make sure your server is configured to compress static assets for browsers that support it. ([nginx tutorial](https://rtcamp.com/tutorials/nginx/enable-gzip/), [apache/IIS tutorial](http://betterexplained.com/articles/how-to-optimize-your-site-with-gzip-compression/).)
+* Make sure your server is configured to compress static assets for browsers that support it. ([nginx tutorial](https://rtcamp.com/tutorials/nginx/enable-gzip/), [Apache/IIS tutorial](http://betterexplained.com/articles/how-to-optimize-your-site-with-gzip-compression/).)
 
 Then try one of these alternatives:
 
 1. Put your `<script src="zxcvbn.js">` tag at the end of your html, just before the closing `</body>` tag. This insures your page loads and renders before the browser fetches and loads `zxcvbn.js`. The downside with this approach is `zxcvbn()` becomes available later than had it been included in `<head>` — not an issue on most signup pages where users are filling out other fields first.
 
-2. If you're using requirejs, try loading `zxcvbn.js` separately from your main bundle. Something to watch out for: if `zxcvbn.js` is required inside a keyboard handler waiting for user input, the entire script might be loaded only after the user presses their first key, creating nasty latency. Avoid this by calling your handler once upon page load, independent of user input, such that the `requirejs()` call runs earlier.
+2. If you're using RequireJS, try loading `zxcvbn.js` separately from your main bundle. Something to watch out for: if `zxcvbn.js` is required inside a keyboard handler waiting for user input, the entire script might be loaded only after the user presses their first key, creating nasty latency. Avoid this by calling your handler once upon page load, independent of user input, such that the `requirejs()` call runs earlier.
 
 3. Use the HTML5 [`async`](http://www.w3schools.com/tags/att_script_async.asp) script attribute. Downside: [doesn't work](http://caniuse.com/#feat=script-async) in IE7-9 or Opera Mini.
 
-4. Include an inline `<script>` in `<head>` that asynchronously loads `zxcvbn.js` in the background. Despite the extra code I prefer this over (3) because it works in older browsers.
+4. Include an inline `<script>` in `<head>` that asynchronously loads `zxcvbn.js` in the background. Advantage over (3): it works in older browsers.
 
 ``` javascript
 // cross-browser asynchronous script loading for zxcvbn.
@@ -270,11 +275,11 @@ For node developers, in addition to `dist`, the zxcvbn `npm` module includes a `
 
 [Dropbox](https://dropbox.com) for supporting open source!
 
-Leah Culver and Ryan Pearl for porting zxcvbn to [Objective C](https://github.com/dropbox/zxcvbn-ios) and [python](https://github.com/dropbox/python-zxcvbn).
+Leah Culver and Ryan Pearl for porting zxcvbn to [Objective-C](https://github.com/dropbox/zxcvbn-ios) and [Python](https://github.com/dropbox/python-zxcvbn).
 
 Mark Burnett for releasing his 10M password corpus and for his 2005 book, [Perfect Passwords: Selection, Protection, Authentication](http://www.amazon.com/Perfect-Passwords-Selection-Protection-Authentication/dp/1597490415).
 
-Wiktionary contributors for building a [frequency list of English](http://en.wiktionary.org/wiki/Wiktionary:Frequency_lists) as used in television and movies.
+Wiktionary contributors for building a [frequency list of English words](http://en.wiktionary.org/wiki/Wiktionary:Frequency_lists) as used in television and movies.
 
 Researchers at Concordia University for [studying password estimation rigorously](http://www.concordia.ca/cunews/main/stories/2015/03/25/does-your-password-pass-muster.html) and recommending zxcvbn.
 

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
app/Resources/public/assets/zxcvbn/dist/zxcvbn.js


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 8 - 8
app/Resources/public/assets/zxcvbn/dist/zxcvbn.js.map


Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů