From 1d2b123ba19e37bef31180ddc4db5a63d0aceca1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karel=20Pi=C4=8Dman?= Date: Wed, 29 Jul 2015 13:52:38 +0200 Subject: [PATCH 1/7] Plupload library upgraded to 2.1.8 --- app/views/dmsf/show.html.erb | 4 +- app/views/dmsf_upload/_multi_upload.html.erb | 60 +- .../javascripts/plupload/examples/custom.html | 85 + assets/javascripts/plupload/examples/dump.php | 27 + .../javascripts/plupload/examples/events.html | 217 + .../examples/jquery/all_runtimes.html | 139 + .../examples/jquery/jquery_ui_widget.html | 113 + .../examples/jquery/queue_widget.html | 66 + .../plupload/examples/jquery/s3.php | 125 + .../javascripts/plupload/examples/upload.php | 125 + assets/javascripts/plupload/i18n/cs.js | 14 - assets/javascripts/plupload/i18n/da.js | 12 - assets/javascripts/plupload/i18n/de.js | 24 - assets/javascripts/plupload/i18n/el.js | 14 - assets/javascripts/plupload/i18n/es.js | 25 - assets/javascripts/plupload/i18n/et.js | 33 - assets/javascripts/plupload/i18n/fa.js | 37 - assets/javascripts/plupload/i18n/fi.js | 33 - assets/javascripts/plupload/i18n/fr-ca.js | 35 - assets/javascripts/plupload/i18n/fr.js | 25 - assets/javascripts/plupload/i18n/hr.js | 25 - assets/javascripts/plupload/i18n/hu.js | 33 - assets/javascripts/plupload/i18n/it.js | 24 - assets/javascripts/plupload/i18n/ja.js | 37 - assets/javascripts/plupload/i18n/ko.js | 36 - assets/javascripts/plupload/i18n/lv.js | 33 - assets/javascripts/plupload/i18n/nl.js | 21 - assets/javascripts/plupload/i18n/pl.js | 24 - assets/javascripts/plupload/i18n/pt-br.js | 35 - assets/javascripts/plupload/i18n/ro.js | 24 - assets/javascripts/plupload/i18n/ru.js | 21 - assets/javascripts/plupload/i18n/sk.js | 25 - assets/javascripts/plupload/i18n/sr.js | 14 - assets/javascripts/plupload/i18n/sv.js | 12 - .../css/jquery.ui.plupload.css | 147 - .../jquery.ui.plupload/img/plupload-bw.png | Bin 2105 -> 0 bytes .../jquery.ui.plupload/img/plupload.png | Bin 3641 -> 0 bytes .../jquery.ui.plupload/jquery.ui.plupload.js | 754 -- assets/javascripts/plupload/js/Moxie.swf | Bin 0 -> 29910 bytes assets/javascripts/plupload/js/Moxie.xap | Bin 0 -> 63118 bytes assets/javascripts/plupload/js/i18n/ar.js | 2 + assets/javascripts/plupload/js/i18n/az.js | 2 + assets/javascripts/plupload/js/i18n/be_BY.js | 2 + assets/javascripts/plupload/js/i18n/bg.js | 2 + assets/javascripts/plupload/js/i18n/bs.js | 2 + assets/javascripts/plupload/js/i18n/ca.js | 2 + assets/javascripts/plupload/js/i18n/cs.js | 2 + assets/javascripts/plupload/js/i18n/cy.js | 2 + assets/javascripts/plupload/js/i18n/da.js | 2 + assets/javascripts/plupload/js/i18n/de.js | 2 + assets/javascripts/plupload/js/i18n/el.js | 2 + assets/javascripts/plupload/js/i18n/en.js | 2 + assets/javascripts/plupload/js/i18n/es.js | 2 + assets/javascripts/plupload/js/i18n/et.js | 2 + assets/javascripts/plupload/js/i18n/fa.js | 2 + assets/javascripts/plupload/js/i18n/fi.js | 2 + assets/javascripts/plupload/js/i18n/fr.js | 2 + assets/javascripts/plupload/js/i18n/he.js | 2 + assets/javascripts/plupload/js/i18n/hr.js | 2 + assets/javascripts/plupload/js/i18n/hu.js | 2 + assets/javascripts/plupload/js/i18n/hy.js | 2 + assets/javascripts/plupload/js/i18n/id.js | 2 + assets/javascripts/plupload/js/i18n/it.js | 2 + assets/javascripts/plupload/js/i18n/ja.js | 2 + assets/javascripts/plupload/js/i18n/ka.js | 2 + assets/javascripts/plupload/js/i18n/kk.js | 2 + assets/javascripts/plupload/js/i18n/km.js | 2 + assets/javascripts/plupload/js/i18n/ko.js | 2 + assets/javascripts/plupload/js/i18n/ku_IQ.js | 2 + assets/javascripts/plupload/js/i18n/lt.js | 2 + assets/javascripts/plupload/js/i18n/lv.js | 2 + assets/javascripts/plupload/js/i18n/ms.js | 2 + assets/javascripts/plupload/js/i18n/nl.js | 2 + assets/javascripts/plupload/js/i18n/pl.js | 2 + assets/javascripts/plupload/js/i18n/pt_BR.js | 2 + assets/javascripts/plupload/js/i18n/ro.js | 2 + assets/javascripts/plupload/js/i18n/ru.js | 2 + assets/javascripts/plupload/js/i18n/sk.js | 2 + assets/javascripts/plupload/js/i18n/sq.js | 2 + assets/javascripts/plupload/js/i18n/sr.js | 2 + assets/javascripts/plupload/js/i18n/sv.js | 2 + assets/javascripts/plupload/js/i18n/th_TH.js | 2 + assets/javascripts/plupload/js/i18n/tr.js | 2 + assets/javascripts/plupload/js/i18n/uk_UA.js | 2 + assets/javascripts/plupload/js/i18n/vi.js | 2 + assets/javascripts/plupload/js/i18n/zh_CN.js | 2 + assets/javascripts/plupload/js/i18n/zh_TW.js | 2 + .../css/jquery.plupload.queue.css | 10 +- .../jquery.plupload.queue/img/backgrounds.gif | Bin .../img/buttons-disabled.png | Bin .../jquery.plupload.queue/img/buttons.png | Bin .../jquery.plupload.queue/img/delete.gif | Bin .../jquery.plupload.queue/img/done.gif | Bin .../jquery.plupload.queue/img/error.gif | Bin .../jquery.plupload.queue/img/throbber.gif | Bin .../jquery.plupload.queue/img/transp50.png | Bin .../jquery.plupload.queue.js | 172 +- .../jquery.plupload.queue.min.js | 1 + .../css/jquery.ui.plupload.css | 375 + .../js/jquery.ui.plupload/img/loading.gif | Bin 0 -> 4023 bytes .../js/jquery.ui.plupload/img/plupload.png | Bin 0 -> 6597 bytes .../jquery.ui.plupload/jquery.ui.plupload.js | 1343 ++ .../jquery.ui.plupload.min.js | 1 + assets/javascripts/plupload/js/moxie.js | 11158 ++++++++++++++++ assets/javascripts/plupload/js/moxie.min.js | 16 + .../javascripts/plupload/js/plupload.dev.js | 2347 ++++ .../plupload/js/plupload.full.min.js | 29 + .../javascripts/plupload/js/plupload.min.js | 13 + assets/javascripts/plupload/license.txt | 339 + .../plupload/plupload.browserplus.js | 361 - assets/javascripts/plupload/plupload.flash.js | 431 - assets/javascripts/plupload/plupload.gears.js | 446 - assets/javascripts/plupload/plupload.html4.js | 430 - assets/javascripts/plupload/plupload.html5.js | 1537 --- assets/javascripts/plupload/plupload.js | 1774 --- .../plupload/plupload.silverlight.js | 447 - assets/javascripts/plupload/readme.md | 147 + assets/stylesheets/img/loading.gif | Bin 0 -> 4023 bytes assets/stylesheets/img/plupload.png | Bin 0 -> 6597 bytes .../plupload/jquery.ui.plupload.css | 312 +- init.rb | 4 +- 121 files changed, 17211 insertions(+), 7054 deletions(-) create mode 100644 assets/javascripts/plupload/examples/custom.html create mode 100644 assets/javascripts/plupload/examples/dump.php create mode 100644 assets/javascripts/plupload/examples/events.html create mode 100644 assets/javascripts/plupload/examples/jquery/all_runtimes.html create mode 100644 assets/javascripts/plupload/examples/jquery/jquery_ui_widget.html create mode 100644 assets/javascripts/plupload/examples/jquery/queue_widget.html create mode 100644 assets/javascripts/plupload/examples/jquery/s3.php create mode 100644 assets/javascripts/plupload/examples/upload.php delete mode 100644 assets/javascripts/plupload/i18n/cs.js delete mode 100644 assets/javascripts/plupload/i18n/da.js delete mode 100644 assets/javascripts/plupload/i18n/de.js delete mode 100644 assets/javascripts/plupload/i18n/el.js delete mode 100644 assets/javascripts/plupload/i18n/es.js delete mode 100644 assets/javascripts/plupload/i18n/et.js delete mode 100644 assets/javascripts/plupload/i18n/fa.js delete mode 100644 assets/javascripts/plupload/i18n/fi.js delete mode 100644 assets/javascripts/plupload/i18n/fr-ca.js delete mode 100644 assets/javascripts/plupload/i18n/fr.js delete mode 100644 assets/javascripts/plupload/i18n/hr.js delete mode 100644 assets/javascripts/plupload/i18n/hu.js delete mode 100644 assets/javascripts/plupload/i18n/it.js delete mode 100644 assets/javascripts/plupload/i18n/ja.js delete mode 100644 assets/javascripts/plupload/i18n/ko.js delete mode 100644 assets/javascripts/plupload/i18n/lv.js delete mode 100644 assets/javascripts/plupload/i18n/nl.js delete mode 100644 assets/javascripts/plupload/i18n/pl.js delete mode 100644 assets/javascripts/plupload/i18n/pt-br.js delete mode 100644 assets/javascripts/plupload/i18n/ro.js delete mode 100644 assets/javascripts/plupload/i18n/ru.js delete mode 100644 assets/javascripts/plupload/i18n/sk.js delete mode 100644 assets/javascripts/plupload/i18n/sr.js delete mode 100644 assets/javascripts/plupload/i18n/sv.js delete mode 100644 assets/javascripts/plupload/jquery.ui.plupload/css/jquery.ui.plupload.css delete mode 100644 assets/javascripts/plupload/jquery.ui.plupload/img/plupload-bw.png delete mode 100644 assets/javascripts/plupload/jquery.ui.plupload/img/plupload.png delete mode 100644 assets/javascripts/plupload/jquery.ui.plupload/jquery.ui.plupload.js create mode 100644 assets/javascripts/plupload/js/Moxie.swf create mode 100644 assets/javascripts/plupload/js/Moxie.xap create mode 100644 assets/javascripts/plupload/js/i18n/ar.js create mode 100644 assets/javascripts/plupload/js/i18n/az.js create mode 100644 assets/javascripts/plupload/js/i18n/be_BY.js create mode 100644 assets/javascripts/plupload/js/i18n/bg.js create mode 100644 assets/javascripts/plupload/js/i18n/bs.js create mode 100644 assets/javascripts/plupload/js/i18n/ca.js create mode 100644 assets/javascripts/plupload/js/i18n/cs.js create mode 100644 assets/javascripts/plupload/js/i18n/cy.js create mode 100644 assets/javascripts/plupload/js/i18n/da.js create mode 100644 assets/javascripts/plupload/js/i18n/de.js create mode 100644 assets/javascripts/plupload/js/i18n/el.js create mode 100644 assets/javascripts/plupload/js/i18n/en.js create mode 100644 assets/javascripts/plupload/js/i18n/es.js create mode 100644 assets/javascripts/plupload/js/i18n/et.js create mode 100644 assets/javascripts/plupload/js/i18n/fa.js create mode 100644 assets/javascripts/plupload/js/i18n/fi.js create mode 100644 assets/javascripts/plupload/js/i18n/fr.js create mode 100644 assets/javascripts/plupload/js/i18n/he.js create mode 100644 assets/javascripts/plupload/js/i18n/hr.js create mode 100644 assets/javascripts/plupload/js/i18n/hu.js create mode 100644 assets/javascripts/plupload/js/i18n/hy.js create mode 100644 assets/javascripts/plupload/js/i18n/id.js create mode 100644 assets/javascripts/plupload/js/i18n/it.js create mode 100644 assets/javascripts/plupload/js/i18n/ja.js create mode 100644 assets/javascripts/plupload/js/i18n/ka.js create mode 100644 assets/javascripts/plupload/js/i18n/kk.js create mode 100644 assets/javascripts/plupload/js/i18n/km.js create mode 100644 assets/javascripts/plupload/js/i18n/ko.js create mode 100644 assets/javascripts/plupload/js/i18n/ku_IQ.js create mode 100644 assets/javascripts/plupload/js/i18n/lt.js create mode 100644 assets/javascripts/plupload/js/i18n/lv.js create mode 100644 assets/javascripts/plupload/js/i18n/ms.js create mode 100644 assets/javascripts/plupload/js/i18n/nl.js create mode 100644 assets/javascripts/plupload/js/i18n/pl.js create mode 100644 assets/javascripts/plupload/js/i18n/pt_BR.js create mode 100644 assets/javascripts/plupload/js/i18n/ro.js create mode 100644 assets/javascripts/plupload/js/i18n/ru.js create mode 100644 assets/javascripts/plupload/js/i18n/sk.js create mode 100644 assets/javascripts/plupload/js/i18n/sq.js create mode 100644 assets/javascripts/plupload/js/i18n/sr.js create mode 100644 assets/javascripts/plupload/js/i18n/sv.js create mode 100644 assets/javascripts/plupload/js/i18n/th_TH.js create mode 100644 assets/javascripts/plupload/js/i18n/tr.js create mode 100644 assets/javascripts/plupload/js/i18n/uk_UA.js create mode 100644 assets/javascripts/plupload/js/i18n/vi.js create mode 100644 assets/javascripts/plupload/js/i18n/zh_CN.js create mode 100644 assets/javascripts/plupload/js/i18n/zh_TW.js rename assets/javascripts/plupload/{ => js}/jquery.plupload.queue/css/jquery.plupload.queue.css (95%) rename assets/javascripts/plupload/{ => js}/jquery.plupload.queue/img/backgrounds.gif (100%) rename assets/javascripts/plupload/{ => js}/jquery.plupload.queue/img/buttons-disabled.png (100%) rename assets/javascripts/plupload/{ => js}/jquery.plupload.queue/img/buttons.png (100%) rename assets/javascripts/plupload/{ => js}/jquery.plupload.queue/img/delete.gif (100%) rename assets/javascripts/plupload/{ => js}/jquery.plupload.queue/img/done.gif (100%) rename assets/javascripts/plupload/{ => js}/jquery.plupload.queue/img/error.gif (100%) rename assets/javascripts/plupload/{ => js}/jquery.plupload.queue/img/throbber.gif (100%) rename assets/javascripts/plupload/{ => js}/jquery.plupload.queue/img/transp50.png (100%) rename assets/javascripts/plupload/{ => js}/jquery.plupload.queue/jquery.plupload.queue.js (59%) create mode 100644 assets/javascripts/plupload/js/jquery.plupload.queue/jquery.plupload.queue.min.js create mode 100644 assets/javascripts/plupload/js/jquery.ui.plupload/css/jquery.ui.plupload.css create mode 100644 assets/javascripts/plupload/js/jquery.ui.plupload/img/loading.gif create mode 100644 assets/javascripts/plupload/js/jquery.ui.plupload/img/plupload.png create mode 100644 assets/javascripts/plupload/js/jquery.ui.plupload/jquery.ui.plupload.js create mode 100644 assets/javascripts/plupload/js/jquery.ui.plupload/jquery.ui.plupload.min.js create mode 100644 assets/javascripts/plupload/js/moxie.js create mode 100644 assets/javascripts/plupload/js/moxie.min.js create mode 100644 assets/javascripts/plupload/js/plupload.dev.js create mode 100644 assets/javascripts/plupload/js/plupload.full.min.js create mode 100644 assets/javascripts/plupload/js/plupload.min.js create mode 100644 assets/javascripts/plupload/license.txt delete mode 100644 assets/javascripts/plupload/plupload.browserplus.js delete mode 100644 assets/javascripts/plupload/plupload.flash.js delete mode 100644 assets/javascripts/plupload/plupload.gears.js delete mode 100644 assets/javascripts/plupload/plupload.html4.js delete mode 100644 assets/javascripts/plupload/plupload.html5.js delete mode 100644 assets/javascripts/plupload/plupload.js delete mode 100644 assets/javascripts/plupload/plupload.silverlight.js create mode 100644 assets/javascripts/plupload/readme.md create mode 100644 assets/stylesheets/img/loading.gif create mode 100644 assets/stylesheets/img/plupload.png diff --git a/app/views/dmsf/show.html.erb b/app/views/dmsf/show.html.erb index 4e76ba60..dcbf2613 100644 --- a/app/views/dmsf/show.html.erb +++ b/app/views/dmsf/show.html.erb @@ -240,8 +240,8 @@ end %> -<% content_for :header_tags do %> - <%= stylesheet_link_tag 'plupload/jquery.ui.plupload.css', :plugin => 'redmine_dmsf' %> +<% content_for :header_tags do %> + <%= javascript_include_tag 'bowser.min.js', :plugin => 'redmine_dmsf' %> <%= stylesheet_link_tag 'jquery.dataTables/jquery-ui.dataTables.css', :plugin => 'redmine_dmsf' %> <%= javascript_include_tag 'jquery.dataTables/jquery.dataTables.min.js', :plugin => 'redmine_dmsf' %> diff --git a/app/views/dmsf_upload/_multi_upload.html.erb b/app/views/dmsf_upload/_multi_upload.html.erb index 9b8df737..0c1ee706 100644 --- a/app/views/dmsf_upload/_multi_upload.html.erb +++ b/app/views/dmsf_upload/_multi_upload.html.erb @@ -1,8 +1,10 @@ -<%# Redmine plugin for Document Management System "Features" +<% +# encoding: utf-8 +# Redmine plugin for Document Management System "Features" # # Copyright (C) 2011 Vít Jonáš # Copyright (C) 2012 Daniel Munn -# Copyright (C) 2011-14 Karel Picman +# Copyright (C) 2011-15 Karel Pičman # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -16,7 +18,8 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.%> +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +%>
<%= form_tag({:controller => 'dmsf_upload', :action => 'upload_files', :id => @project, :folder_id => @folder}, @@ -72,31 +75,48 @@ <% content_for :header_tags do %> - <%= javascript_include_tag 'bowser.min.js', :plugin => 'redmine_dmsf' %> - <%= javascript_include_tag 'plupload/plupload.js', :plugin => 'redmine_dmsf' %> - <%= javascript_include_tag 'plupload/plupload.flash.js', :plugin => 'redmine_dmsf' %> - <%= javascript_include_tag 'plupload/plupload.html5.js', :plugin => 'redmine_dmsf' %> - <%= javascript_include_tag 'plupload/plupload.html4.js', :plugin => 'redmine_dmsf' %> - <%= javascript_include_tag 'plupload/jquery.ui.plupload/jquery.ui.plupload.js', :plugin => 'redmine_dmsf' %> - <%= javascript_include_tag("plupload/i18n/#{I18n.locale.to_s.downcase}.js", :plugin => 'redmine_dmsf') if I18n.locale && !I18n.locale.to_s.match(/^en.*/) %> + <%= stylesheet_link_tag 'plupload/jquery.ui.plupload.css', :plugin => 'redmine_dmsf' %> + <%= javascript_include_tag 'plupload/js/plupload.full.min.js', :plugin => 'redmine_dmsf' %> + <%= javascript_include_tag 'plupload/js/jquery.ui.plupload/jquery.ui.plupload.js', :plugin => 'redmine_dmsf' %> + <%= javascript_include_tag("plupload/js/i18n/#{I18n.locale.to_s.downcase}.js", :plugin => 'redmine_dmsf') if I18n.locale && !I18n.locale.to_s.match(/^en.*/) %> + + + + + + + +

Custom example

+ +

Shows you how to use the core plupload API.

+ +
Your browser doesn't have Flash, Silverlight or HTML5 support.
+
+ + + +
+

+
+
+
+
+
diff --git a/assets/javascripts/plupload/examples/dump.php b/assets/javascripts/plupload/examples/dump.php
new file mode 100644
index 00000000..3ce4471f
--- /dev/null
+++ b/assets/javascripts/plupload/examples/dump.php
@@ -0,0 +1,27 @@
+
+
+
+
+Plupload - Form dump
+
+
+	
+

Post dump

+ +

Shows the form items posted.

+ + + + + + + $value) { ?> + + + + + +
NameValue
+ + + diff --git a/assets/javascripts/plupload/examples/events.html b/assets/javascripts/plupload/examples/events.html new file mode 100644 index 00000000..dd05e75d --- /dev/null +++ b/assets/javascripts/plupload/examples/events.html @@ -0,0 +1,217 @@ + + + + + +Plupload - Events example + + + + + + + + + + +

Events example

+ + + +
+

+ 
+
+
+
\ No newline at end of file
diff --git a/assets/javascripts/plupload/examples/jquery/all_runtimes.html b/assets/javascripts/plupload/examples/jquery/all_runtimes.html
new file mode 100644
index 00000000..ea44a9ba
--- /dev/null
+++ b/assets/javascripts/plupload/examples/jquery/all_runtimes.html
@@ -0,0 +1,139 @@
+
+
+
+
+
+Plupload - Queue widget example
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

Queue widget example

+ +

Shows the jQuery Plupload Queue widget and under different runtimes.

+ +
+

Flash runtime

+
Your browser doesn't have Flash installed.
+ +

Silverlight runtime

+
Your browser doesn't have Silverlight installed.
+
+ +
+

HTML 4 runtime

+
Your browser doesn't have HTML 4 support.
+ +

HTML 5 runtime

+
Your browser doesn't support native upload.
+
+ +
+ + +
+ + + + + diff --git a/assets/javascripts/plupload/examples/jquery/jquery_ui_widget.html b/assets/javascripts/plupload/examples/jquery/jquery_ui_widget.html new file mode 100644 index 00000000..1beb6c15 --- /dev/null +++ b/assets/javascripts/plupload/examples/jquery/jquery_ui_widget.html @@ -0,0 +1,113 @@ + + + + + +Plupload - jQuery UI Widget + + + + + + + + + + + + + + + + +

jQuery UI Widget

+ +

You can see this example with different themes on the www.plupload.com website.

+ +
+
+

Your browser doesn't have Flash, Silverlight or HTML5 support.

+
+
+ +
+ + + + diff --git a/assets/javascripts/plupload/examples/jquery/queue_widget.html b/assets/javascripts/plupload/examples/jquery/queue_widget.html new file mode 100644 index 00000000..48552870 --- /dev/null +++ b/assets/javascripts/plupload/examples/jquery/queue_widget.html @@ -0,0 +1,66 @@ + + + + + +Plupload - Queue widget example + + + + + + + + + + + + + + + +
+
+

Your browser doesn't have Flash, Silverlight or HTML5 support.

+
+ +
+ + + + + diff --git a/assets/javascripts/plupload/examples/jquery/s3.php b/assets/javascripts/plupload/examples/jquery/s3.php new file mode 100644 index 00000000..a46f1dbc --- /dev/null +++ b/assets/javascripts/plupload/examples/jquery/s3.php @@ -0,0 +1,125 @@ + + + + + + +In our tests SilverLight didn't require anything special and worked with this configuration just fine. It may fail back +to the same crossdomain.xml as last resort. + +!!!Important!!! Plupload UI Widget here, is used only for demo purposes and is not required for uploading to S3. +*/ + +// important variables that will be used throughout this example +$bucket = 'BUCKET'; + +// these can be found on your Account page, under Security Credentials > Access Keys +$accessKeyId = 'ACCESS_KEY_ID'; +$secret = 'SECRET_ACCESS_KEY'; + +// prepare policy +$policy = base64_encode(json_encode(array( + // ISO 8601 - date('c'); generates uncompatible date, so better do it manually + 'expiration' => date('Y-m-d\TH:i:s.000\Z', strtotime('+1 day')), + 'conditions' => array( + array('bucket' => $bucket), + array('acl' => 'public-read'), + array('starts-with', '$key', ''), + // for demo purposes we are accepting only images + array('starts-with', '$Content-Type', 'image/'), + // Plupload internally adds name field, so we need to mention it here + array('starts-with', '$name', ''), + // One more field to take into account: Filename - gets silently sent by FileReference.upload() in Flash + // http://docs.amazonwebservices.com/AmazonS3/latest/dev/HTTPPOSTFlash.html + array('starts-with', '$Filename', ''), + ) +))); + +// sign policy +$signature = base64_encode(hash_hmac('sha1', $policy, $secret, true)); + +?> + + + + + +Plupload to Amazon S3 Example + + + + + + + + + + + + + + + + + + +

Plupload to Amazon S3 Example

+ +
+

Your browser doesn't have Flash, Silverlight or HTML5 support.

+
+ + + + + diff --git a/assets/javascripts/plupload/examples/upload.php b/assets/javascripts/plupload/examples/upload.php new file mode 100644 index 00000000..0b7276ce --- /dev/null +++ b/assets/javascripts/plupload/examples/upload.php @@ -0,0 +1,125 @@ +~5&{%wEViOaR_Qm)In&2fq_+W1-u?ZS# z!oh&Xa1lX7iwYFI;Gwq;~woLawr{Xcg6wQJXA&3EC#g_P^~uL7#K zx3?4^euTV_MGIE1UhU=P=6c!L*})b4-qh5T2e4^_gM&p+pFS;m^ytx6+<$fb`t{+( zix>X^IlOM&y55DZxgdajeSP^@ya`gbdGls}?b@|oPEJk$CJD$J8yoWyi9{gm19RTe zrAveFxRLSk@q+vJ@7H3k&z?Pd_DexQ!8gOh!w=pVV1IvqJv8>+h7B9CHg4P)EKER8 zo;>lO+Tfl-U=tG)0XV9eY*N&qZm*=I!~-xNjD7*x1J+M~;l|ejI5adA!D1JSi;Jsa zKi-NJD*^yeTL4JRxkAtsHUcDAwY0Rf0O+b!tGs2)mSx?$ckg?seD{(iOFqHtL@FHV zsX9S@E-r25<>l4ew{Q2BFJJCKEdfis5-9Hll)`6$6SLL?#Il$MFc0&4Sy@@tj~_p7 z+rNK*?t%b<@(3<1Wo2d2EnBvPU|dix067T3@t#+`x8GZ!6gZ5RmzNhE9UX1iw{KtM zr7DI>F2V_-u~;kwCBxSuvM;Mb+NbS{$Kxq&QL0uSH$oFaUldMs5nUh63lO_Fg56YC zR8$1uWb_g(ZtY5K=gytsJ4#nqSIDM-$}ZJUpo*^CiE-^kRVQakw_$z%*@R23cCw{2{46Y)~s2>&D7V{)|Sp;5FedE zyvn3QNVV1@=L4n?!UZjZ@XTPW*t5)YEaM}bLuM6R>D`EzncdypXYg1RGKddih-o|dfItMyE+&vxq(*_G8VQ>0G4oJXu3R~bd45+}S;@`ruB)qyg#e+>#?sQ# zbON!CA+HsaT#QUnELc~)6q<;Hb26}VJhKZ0agaefP&vWdjRIsk`WmI;2+~v)9m9gM zP9Xp;5bK?;iW%oz)pAbuQ?yBfgjxfe<^24XUVZcC%_^`M@xja<49KAY^FygswkLH8 zsIFWNQ*fjZjTQ@dpW?yI~yLXo!R&$$57aC8Kmm$ zczw^c=!m>$KZ%jqsE^}{ii%jI?De6}7>(EFQZ4FwtrnCM1U3Q|c%OLHHPF60=ACFFoX@2 z`T&;A1*~dQrKjrZ>cF7gm}pgK8QigBM+i;}yRr1vty|$Z3yv)r)U$m|mcbWp+;Rch z^ya2IJ~Ny!#_1hZ18vdy%1_wHQ} zXOrMNYZ9_mE6I100PT+npu`QroaEfOb8}S8ZwQ2G>%f5n!B}d8?b4-7VeC_FC^I6< zHY90Hd9xf2W5x)u530?hQM$&g!7ecNaS^G5V(rZaXr)IkZc8m|?^=`Ja9&EX7U=Ww z(2iWWl`$%nrwNn|DQ+pHG-WeQsxW1%9-9m_w*|-y1Ay&5UYtit`I09tcZb%)+zE7V zgX}_^%|fnLwE3jdo@cRe77wG0jbt%dyoNxn0TYasRF#d}tZlm*(pc-oGBw!pDAqrl z4tGw#hAz{y2$1$9FXYFvF+EGAF2MP!?D;_2;I8l@VbKDBznwmPI^idGQh(>poljBb zq{|*uq}s_WASHHHGOlA;hkFrdJFnD>a5Rk+_-$CQB6h{`@^_r7f&eKYqt+S3n$nlR zy2a~!tXXwRWG=ElVnA{Gds9|WXckIuI-6I%bvBtRO*}WNFdg%hUf=SZR5$4Cwo(# zi%||8@9ga4zmgAGx2Z<7C75e#TAaz>mRqTg2zEoRYWw^9$=wTv^woa|wpAeBlLRsf8ZO$XP0>93FS^6~^0+ZB(;|Hfo*iAh`D zTaeZXZ1%9upn_B;Vgo%(E=VW9?K*bsSYkoH-*7%2>FDUF1Z$T8=v~-nco27)v}Ken z0PI1@s#W0l!?UNShau%J5KwjW=+VS0{U3}*qa5&FOG`^VSPgz)@}SMhl}jy?Zjq~a z>e?LpX>W)a<8aCot*x!E_XAU{tgNiDy}kWsIKfW{Nv0w?Vg_codgCQ9H0Q%Y? jr*Ix_m6~6r{U^Wxc1oXU^|3`U00000NkvXXu0mjf54-xb diff --git a/assets/javascripts/plupload/jquery.ui.plupload/img/plupload.png b/assets/javascripts/plupload/jquery.ui.plupload/img/plupload.png deleted file mode 100644 index 74fa3ad3a5fadd02edd5212426767e2b6e6ad685..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3641 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 LNkvXXu0mjfYMjR1 diff --git a/assets/javascripts/plupload/jquery.ui.plupload/jquery.ui.plupload.js b/assets/javascripts/plupload/jquery.ui.plupload/jquery.ui.plupload.js deleted file mode 100644 index bb0dc566..00000000 --- a/assets/javascripts/plupload/jquery.ui.plupload/jquery.ui.plupload.js +++ /dev/null @@ -1,754 +0,0 @@ -/** - * jquery.ui.plupload.js - * - * Copyright 2009, Moxiecode Systems AB - * Released under GPL License. - * - * License: http://www.plupload.com/license - * Contributing: http://www.plupload.com/contributing - * - * Depends: - * jquery.ui.core.js - * jquery.ui.widget.js - * - * Optionally: - * jquery.ui.button.js - * jquery.ui.progressbar.js - * jquery.ui.sortable.js - */ - -// JSLint defined globals -/*global window:false, document:false, plupload:false, jQuery:false */ - -(function(window, document, plupload, $, undef) { - -var uploaders = {}; - -function _(str) { - return plupload.translate(str) || str; -} - -function renderUI(obj) { - obj.html( - '
' + - '
' + - '
' + - '
' + - '
' + - '
' + _('Select files') + '
' + - '
' + _('Add files to the upload queue and click the start button.') + '
' + - '
' + - '
' + - - '
' + - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '
' + _('Filename') + '' + _('Status') + '' + _('Size') + ' 
' + - - '
' + - '
' + - '
' + - - '' + - '' + - '' + - '' + - '' + - '' + - '' + - '
' + - '
' + - '
' + - '
' + - '' + - '
' - ); -} - - -$.widget("ui.plupload", { - - contents_bak: '', - - runtime: null, - - options: { - browse_button_hover: 'ui-state-hover', - browse_button_active: 'ui-state-active', - - // widget specific - dragdrop : true, - multiple_queues: true, // re-use widget by default - - buttons: { - browse: true, - start: true, - stop: true - }, - autostart: false, - sortable: false, - rename: false, - max_file_count: 0 // unlimited - }, - - FILE_COUNT_ERROR: -9001, - - _create: function() { - var self = this, id, uploader; - - id = this.element.attr('id'); - if (!id) { - id = plupload.guid(); - this.element.attr('id', id); - } - this.id = id; - - // backup the elements initial state - this.contents_bak = this.element.html(); - renderUI(this.element); - - // container, just in case - this.container = $('.plupload_container', this.element).attr('id', id + '_container'); - - // list of files, may become sortable - this.filelist = $('.plupload_filelist_content', this.container) - .attr({ - id: id + '_filelist', - unselectable: 'on' - }); - - // buttons - this.browse_button = $('.plupload_add', this.container).attr('id', id + '_browse'); - this.start_button = $('.plupload_start', this.container).attr('id', id + '_start'); - this.stop_button = $('.plupload_stop', this.container).attr('id', id + '_stop'); - - if ($.ui.button) { - this.browse_button.button({ - icons: { primary: 'ui-icon-circle-plus' } - }); - - this.start_button.button({ - icons: { primary: 'ui-icon-circle-arrow-e' }, - disabled: true - }); - - this.stop_button.button({ - icons: { primary: 'ui-icon-circle-close' } - }); - } - - // progressbar - this.progressbar = $('.plupload_progress_container', this.container); - - if ($.ui.progressbar) { - this.progressbar.progressbar(); - } - - // counter - this.counter = $('.plupload_count', this.element) - .attr({ - id: id + '_count', - name: id + '_count' - }); - - // initialize uploader instance - uploader = this.uploader = uploaders[id] = new plupload.Uploader($.extend({ - container: id , - browse_button: id + '_browse' - }, this.options)); - - // do not show UI if no runtime can be initialized - uploader.bind('Error', function(up, err) { - if (err.code === plupload.INIT_ERROR) { - self.destroy(); - } - }); - - uploader.bind('Init', function(up, res) { - // all buttons are optional, so they can be disabled and hidden - if (!self.options.buttons.browse) { - self.browse_button.button('disable').hide(); - up.disableBrowse(true); - } - - if (!self.options.buttons.start) { - self.start_button.button('disable').hide(); - } - - if (!self.options.buttons.stop) { - self.stop_button.button('disable').hide(); - } - - if (!self.options.unique_names && self.options.rename) { - self._enableRenaming(); - } - - if (uploader.features.dragdrop && self.options.dragdrop) { - self._enableDragAndDrop(); - } - - self.container.attr('title', _('Using runtime: ') + (self.runtime = res.runtime)); - - self.start_button.click(function(e) { - if (!$(this).button('option', 'disabled')) { - self.start(); - } - e.preventDefault(); - }); - - self.stop_button.click(function(e) { - self.stop(); - e.preventDefault(); - }); - }); - - - // check if file count doesn't exceed the limit - if (self.options.max_file_count) { - uploader.bind('FilesAdded', function(up, selectedFiles) { - var removed = [], selectedCount = selectedFiles.length; - var extraCount = up.files.length + selectedCount - self.options.max_file_count; - - if (extraCount > 0) { - removed = selectedFiles.splice(selectedCount - extraCount, extraCount); - - up.trigger('Error', { - code : self.FILE_COUNT_ERROR, - message : _('File count error.'), - file : removed - }); - } - }); - } - - // uploader internal events must run first - uploader.init(); - - uploader.bind('FilesAdded', function(up, files) { - self._trigger('selected', null, { up: up, files: files } ); - - if (self.options.autostart) { - // set a little delay to make sure that QueueChanged triggered by the core has time to complete - setTimeout(function() { - self.start(); - }, 10); - } - }); - - uploader.bind('FilesRemoved', function(up, files) { - self._trigger('removed', null, { up: up, files: files } ); - }); - - uploader.bind('QueueChanged', function() { - self._updateFileList(); - }); - - uploader.bind('StateChanged', function() { - self._handleState(); - }); - - uploader.bind('UploadFile', function(up, file) { - self._handleFileStatus(file); - }); - - uploader.bind('FileUploaded', function(up, file) { - self._handleFileStatus(file); - - self._trigger('uploaded', null, { up: up, file: file } ); - }); - - uploader.bind('UploadProgress', function(up, file) { - // Set file specific progress - $('#' + file.id) - .find('.plupload_file_status') - .html(file.percent + '%') - .end() - .find('.plupload_file_size') - .html(plupload.formatSize(file.size)); - - self._handleFileStatus(file); - self._updateTotalProgress(); - - self._trigger('progress', null, { up: up, file: file } ); - }); - - uploader.bind('UploadComplete', function(up, files) { - self._trigger('complete', null, { up: up, files: files } ); - }); - - uploader.bind('Error', function(up, err) { - var file = err.file, message, details; - - if (file) { - message = '' + err.message + ''; - details = err.details; - - if (details) { - message += "
" + err.details + ""; - } else { - - switch (err.code) { - case plupload.FILE_EXTENSION_ERROR: - details = _("File: %s").replace('%s', file.name); - break; - - case plupload.FILE_SIZE_ERROR: - details = _("File: %f, size: %s, max file size: %m").replace(/%([fsm])/g, function($0, $1) { - switch ($1) { - case 'f': return file.name; - case 's': return file.size; - case 'm': return plupload.parseSize(self.options.max_file_size); - } - }); - break; - - case self.FILE_COUNT_ERROR: - details = _("Upload element accepts only %d file(s) at a time. Extra files were stripped.") - .replace('%d', self.options.max_file_count); - break; - - case plupload.IMAGE_FORMAT_ERROR : - details = plupload.translate('Image format either wrong or not supported.'); - break; - - case plupload.IMAGE_MEMORY_ERROR : - details = plupload.translate('Runtime ran out of available memory.'); - break; - - case plupload.IMAGE_DIMENSIONS_ERROR : - details = plupload.translate('Resoultion out of boundaries! %s runtime supports images only up to %wx%hpx.').replace(/%([swh])/g, function($0, $1) { - switch ($1) { - case 's': return up.runtime; - case 'w': return up.features.maxWidth; - case 'h': return up.features.maxHeight; - } - }); - break; - - case plupload.HTTP_ERROR: - details = _("Upload URL might be wrong or doesn't exist"); - break; - } - message += "
" + details + ""; - } - - self.notify('error', message); - self._trigger('error', null, { up: up, file: file, error: message } ); - } - }); - }, - - _setOption: function(key, value) { - var self = this; - - if (key == 'buttons' && typeof(value) == 'object') { - value = $.extend(self.options.buttons, value); - - if (!value.browse) { - self.browse_button.button('disable').hide(); - up.disableBrowse(true); - } else { - self.browse_button.button('enable').show(); - up.disableBrowse(false); - } - - if (!value.start) { - self.start_button.button('disable').hide(); - } else { - self.start_button.button('enable').show(); - } - - if (!value.stop) { - self.stop_button.button('disable').hide(); - } else { - self.start_button.button('enable').show(); - } - } - - self.uploader.settings[key] = value; - }, - - - start: function() { - this.uploader.start(); - this._trigger('start', null); - }, - - stop: function() { - this.uploader.stop(); - this._trigger('stop', null); - }, - - getFile: function(id) { - var file; - - if (typeof id === 'number') { - file = this.uploader.files[id]; - } else { - file = this.uploader.getFile(id); - } - return file; - }, - - removeFile: function(id) { - var file = this.getFile(id); - if (file) { - this.uploader.removeFile(file); - } - }, - - clearQueue: function() { - this.uploader.splice(); - }, - - getUploader: function() { - return this.uploader; - }, - - refresh: function() { - this.uploader.refresh(); - }, - - - _handleState: function() { - var self = this, up = this.uploader; - - if (up.state === plupload.STARTED) { - - $(self.start_button).button('disable'); - - $([]) - .add(self.stop_button) - .add('.plupload_started') - .removeClass('plupload_hidden'); - - $('.plupload_upload_status', self.element).html( - _('Uploaded %d/%d files').replace('%d/%d', up.total.uploaded+'/'+up.files.length) - ); - - $('.plupload_header_content', self.element).addClass('plupload_header_content_bw'); - - } else { - - $([]) - .add(self.stop_button) - .add('.plupload_started') - .addClass('plupload_hidden'); - - if (self.options.multiple_queues) { - $(self.start_button).button('enable'); - - $('.plupload_header_content', self.element).removeClass('plupload_header_content_bw'); - } - - self._updateFileList(); - } - }, - - - _handleFileStatus: function(file) { - var actionClass, iconClass; - - // since this method might be called asynchronously, file row might not yet be rendered - if (!$('#' + file.id).length) { - return; - } - - switch (file.status) { - case plupload.DONE: - actionClass = 'plupload_done'; - iconClass = 'ui-icon ui-icon-circle-check'; - break; - - case plupload.FAILED: - actionClass = 'ui-state-error plupload_failed'; - iconClass = 'ui-icon ui-icon-alert'; - break; - - case plupload.QUEUED: - actionClass = 'plupload_delete'; - iconClass = 'ui-icon ui-icon-circle-minus'; - break; - - case plupload.UPLOADING: - actionClass = 'ui-state-highlight plupload_uploading'; - iconClass = 'ui-icon ui-icon-circle-arrow-w'; - - // scroll uploading file into the view if its bottom boundary is out of it - var scroller = $('.plupload_scroll', this.container), - scrollTop = scroller.scrollTop(), - scrollerHeight = scroller.height(), - rowOffset = $('#' + file.id).position().top + $('#' + file.id).height(); - - if (scrollerHeight < rowOffset) { - scroller.scrollTop(scrollTop + rowOffset - scrollerHeight); - } - break; - } - actionClass += ' ui-state-default plupload_file'; - - $('#' + file.id) - .attr('class', actionClass) - .find('.ui-icon') - .attr('class', iconClass); - }, - - - _updateTotalProgress: function() { - var up = this.uploader; - - this.progressbar.progressbar('value', up.total.percent); - - this.element - .find('.plupload_total_status') - .html(up.total.percent + '%') - .end() - .find('.plupload_total_file_size') - .html(plupload.formatSize(up.total.size)) - .end() - .find('.plupload_upload_status') - .html(_('Uploaded %d/%d files').replace('%d/%d', up.total.uploaded+'/'+up.files.length)); - }, - - - _updateFileList: function() { - var self = this, up = this.uploader, filelist = this.filelist, - count = 0, - id, prefix = this.id + '_', - fields; - - // destroy sortable if enabled - if ($.ui.sortable && this.options.sortable) { - $('tbody.ui-sortable', filelist).sortable('destroy'); - } - - filelist.empty(); - - $.each(up.files, function(i, file) { - fields = ''; - id = prefix + count; - - if (file.status === plupload.DONE) { - if (file.target_name) { - fields += ''; - } - fields += ''; - fields += ''; - - count++; - self.counter.val(count); - } - - filelist.append( - '' + - '' + file.name + '' + - '' + file.percent + '%' + - '' + plupload.formatSize(file.size) + '' + - '
' + fields + '' + - '' - ); - - self._handleFileStatus(file); - - $('#' + file.id + '.plupload_delete .ui-icon, #' + file.id + '.plupload_done .ui-icon') - .click(function(e) { - $('#' + file.id).remove(); - up.removeFile(file); - - e.preventDefault(); - }); - - self._trigger('updatelist', null, filelist); - }); - - if (up.total.queued === 0) { - $('.ui-button-text', self.browse_button).html(_('Add Files')); - } else { - $('.ui-button-text', self.browse_button).html(_('%d files queued').replace('%d', up.total.queued)); - } - - - if (up.files.length === (up.total.uploaded + up.total.failed)) { - self.start_button.button('disable'); - } else { - self.start_button.button('enable'); - } - - - // Scroll to end of file list - filelist[0].scrollTop = filelist[0].scrollHeight; - - self._updateTotalProgress(); - - if (!up.files.length && up.features.dragdrop && up.settings.dragdrop) { - // Re-add drag message if there are no files - $('#' + id + '_filelist').append('' + _("Drag files here.") + ''); - } else { - // Otherwise re-initialize sortable - if (self.options.sortable && $.ui.sortable) { - self._enableSortingList(); - } - } - }, - - - _enableRenaming: function() { - var self = this; - - this.filelist.on('click', '.plupload_delete .plupload_file_name span', function(e) { - var targetSpan = $(e.target), file, parts, name, ext = ""; - - // Get file name and split out name and extension - file = self.uploader.getFile(targetSpan.parents('tr')[0].id); - name = file.name; - parts = /^(.+)(\.[^.]+)$/.exec(name); - if (parts) { - name = parts[1]; - ext = parts[2]; - } - - // Display input element - targetSpan.hide().after(''); - targetSpan.next().val(name).focus().blur(function() { - targetSpan.show().next().remove(); - }).keydown(function(e) { - var targetInput = $(this); - - if ($.inArray(e.keyCode, [13, 27]) !== -1) { - e.preventDefault(); - - // Rename file and glue extension back on - if (e.keyCode === 13) { - file.name = targetInput.val() + ext; - targetSpan.html(file.name); - } - targetInput.blur(); - } - }); - }); - }, - - - _enableDragAndDrop: function() { - this.filelist.append('' + _("Drag files here.") + ''); - - this.filelist.parent().attr('id', this.id + '_dropbox'); - - this.uploader.settings.drop_element = this.options.drop_element = this.id + '_dropbox'; - }, - - - _enableSortingList: function() { - var idxStart, self = this; - - if ($('tbody tr', this.filelist).length < 2) { - return; - } - - $('tbody', this.filelist).sortable({ - containment: 'parent', - items: '.plupload_delete', - - helper: function(e, el) { - return el.clone(true).find('td:not(.plupload_file_name)').remove().end().css('width', '100%'); - }, - - stop: function(e, ui) { - var i, length, idx, files = []; - - $.each($(this).sortable('toArray'), function(i, id) { - files[files.length] = self.uploader.getFile(id); - }); - - files.unshift(files.length); - files.unshift(0); - - // re-populate files array - Array.prototype.splice.apply(self.uploader.files, files); - } - }); - }, - - notify: function(type, message) { - var popup = $( - '
' + - '' + - '

' + message + '

' + - '
' - ); - - popup - .addClass('ui-state-' + (type === 'error' ? 'error' : 'highlight')) - .find('p .ui-icon') - .addClass('ui-icon-' + (type === 'error' ? 'alert' : 'info')) - .end() - .find('.plupload_message_close') - .click(function() { - popup.remove(); - }) - .end(); - - $('.plupload_header_content', this.container).append(popup); - }, - - - - destroy: function() { - // unbind all button events - $('.plupload_button', this.element).unbind(); - - // destroy buttons - if ($.ui.button) { - $('.plupload_add, .plupload_start, .plupload_stop', this.container) - .button('destroy'); - } - - // destroy progressbar - if ($.ui.progressbar) { - this.progressbar.progressbar('destroy'); - } - - // destroy sortable behavior - if ($.ui.sortable && this.options.sortable) { - $('tbody', this.filelist).sortable('destroy'); - } - - // destroy uploader instance - this.uploader.destroy(); - - // restore the elements initial state - this.element - .empty() - .html(this.contents_bak); - this.contents_bak = ''; - - $.Widget.prototype.destroy.apply(this); - } -}); - - -} (window, document, plupload, jQuery)); diff --git a/assets/javascripts/plupload/js/Moxie.swf b/assets/javascripts/plupload/js/Moxie.swf new file mode 100644 index 0000000000000000000000000000000000000000..e477cf9326ec212859ed21cc1ba4e19296dc5270 GIT binary patch literal 29910 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 ZF&Cr9`@lK>`p4g%AD9NA{{-b?AHb^|E{^~J literal 0 HcmV?d00001 diff --git a/assets/javascripts/plupload/js/Moxie.xap b/assets/javascripts/plupload/js/Moxie.xap new file mode 100644 index 0000000000000000000000000000000000000000..fc7fbfe4b24cfbb901d5f05f760b0996493207a5 GIT binary patch literal 63118 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

ohC;)+F&1(P3t&|kXtQOoB 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 Ug!->zP~VIFcmE literal 0 HcmV?d00001 diff --git a/assets/javascripts/plupload/js/i18n/ar.js b/assets/javascripts/plupload/js/i18n/ar.js new file mode 100644 index 00000000..dc348395 --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/ar.js @@ -0,0 +1,2 @@ +// Arabic (ar) +plupload.addI18n({"Stop Upload":"أيقاف التحميل","Upload URL might be wrong or doesn't exist.":"عنوان التحميل ربما يكون خاطئ أو غير متوفر","tb":"تيرابايت","Size":"الحجم","Close":"أغلاق","Init error.":"خطأ في تهيئة","Add files to the upload queue and click the start button.":"أضف ملفات إلى القائمة إنتظار التحميل ثم أضغط على زر البداية","Filename":"أسم الملف","Image format either wrong or not supported.":"صيغة الصورة أما خطاء أو غير مدعومه","Status":"الحالة","HTTP Error.":"خطأ في برتوكول نقل الملفات","Start Upload":"أبدا التحميل","mb":"ميجابايت","kb":"كيلوبايت","Duplicate file error.":"خطاء في تكرار الملف","File size error.":"خطأ في حجم الملف","N/A":"لا شي","gb":"جيجابايت","Error: Invalid file extension:":"خطاء : أمتداد الملف غير صالح :","Select files":"أختر الملفات","%s already present in the queue.":"%s الملف موجود بالفعل في قائمة الانتظار","File: %s":"ملف: %s","b":"بايت","Uploaded %d/%d files":"تحميل %d/%d ملف","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"العناصر المقبوله لتحميل هي %d ملف في هذا الوقت. الملفات الاضافية أزيلة.","%d files queued":"%d الملفات في قائمة الانتظار","File: %s, size: %d, max file size: %d":"ملف: %s, أقصى حجم للملف: %d, حجم: %d","Drag files here.":"سحب الملف هنا","Runtime ran out of available memory.":"الذاكرة المتوفره أنتهت لمدة التشغيل","File count error.":"خطاء في عد الملفات","File extension error.":"خطأ في أمتداد الملف","Error: File too large:":" خطاء : حجم الملف كبير :","Add Files":"أضف ملفات"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/az.js b/assets/javascripts/plupload/js/i18n/az.js new file mode 100644 index 00000000..5930cbb2 --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/az.js @@ -0,0 +1,2 @@ +// Azerbaijani (az) +plupload.addI18n({"Stop Upload":"Yükləməni saxla","Upload URL might be wrong or doesn't exist.":"Yükləmə ünvanı səhvdir və ya mövcud deyil","tb":"tb","Size":"Həcm","Close":"Bağla","Init error.":"Init error.","Add files to the upload queue and click the start button.":"Faylları əlavə edin və yüklə düyməsinə klikləyin.","Filename":"Faylın adı","Image format either wrong or not supported.":"Şəklin formatı uyğun deyil və ya dəstəklənmir.","Status":"Status","HTTP Error.":"HTTP xətası.","Start Upload":"Yüklə","mb":"mb","kb":"kb","Duplicate file error.":"Bu fayl artıq növbədə var.","File size error.":"Fayl həcmi xətası.","N/A":"N/A","gb":"gb","Error: Invalid file extension:":"Xəta: Yanlış fayl uzantısı:","Select files":"Faylları seçin","%s already present in the queue.":"%s artıq növbədə var.","File: %s":"Fayl: %s","b":"b","Uploaded %d/%d files":"%d/%d fayl yüklənib","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Upload element accepts only %d file(s) at a time. Extra files were stripped.","%d files queued":"Növbədə %d fayl var","File: %s, size: %d, max file size: %d":"Fayl: %s, həcm: %d, max fayl həcmi: %d","Drag files here.":"Faylları bura çəkin.","Runtime ran out of available memory.":"Runtime ran out of available memory.","File count error.":"Fayl sayı çox böyükdür.","File extension error.":"Fayl uzantısı xətası.","Error: File too large:":"Xəta:Fayl həcmi çox böyükdür.","Add Files":"Fayl əlavə et"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/be_BY.js b/assets/javascripts/plupload/js/i18n/be_BY.js new file mode 100644 index 00000000..656a4e52 --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/be_BY.js @@ -0,0 +1,2 @@ +// Belarusian (Belarus) (be_BY) +plupload.addI18n({"Stop Upload":"","Upload URL might be wrong or doesn't exist.":"","tb":"","Size":"","Close":"","Init error.":"","Add files to the upload queue and click the start button.":"","Filename":"","Image format either wrong or not supported.":"","Status":"","HTTP Error.":"","Start Upload":"","mb":"","kb":"","Duplicate file error.":"","File size error.":"","N/A":"","gb":"","Error: Invalid file extension:":"","Select files":"","%s already present in the queue.":"","File: %s":"","b":"","Uploaded %d/%d files":"","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"","%d files queued":"","File: %s, size: %d, max file size: %d":"","Drag files here.":"","Runtime ran out of available memory.":"","File count error.":"","File extension error.":"","Error: File too large:":"","Add Files":""}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/bg.js b/assets/javascripts/plupload/js/i18n/bg.js new file mode 100644 index 00000000..e16bdb0f --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/bg.js @@ -0,0 +1,2 @@ +// Bulgarian (bg) +plupload.addI18n({"Stop Upload":"Спрете качването","Upload URL might be wrong or doesn't exist.":"URL за качване може да е грешен или да не съществува.","tb":"tb","Size":"Размер","Close":"Затвори","Init error.":"Грешка: инициализиране.","Add files to the upload queue and click the start button.":"Добавете файлове в опашката за качване, и щракнете бутона старт.","Filename":"Име на файла","Image format either wrong or not supported.":"Формата на изображението или е объркан, или не се поддържа.","Status":"Статус","HTTP Error.":"Грешка: HTTP .","Start Upload":"Започнете качването","mb":"mb","kb":"kb","Duplicate file error.":"Грешка: файла е вече качен на сървъра.","File size error.":"Грешка: размер на файла.","N/A":"не приложимо","gb":"gb","Error: Invalid file extension:":"Грешка: Невалидно разширение на файл:","Select files":"Изберете файлове","%s already present in the queue.":"%s вече го има в опашката.","File: %s":"Файл: %s","b":"b","Uploaded %d/%d files":"Качени %d/%d файла","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Елемента за качване приема само %d файл(а) наведнъж. Допълнителните файлове бяха отстранени.","%d files queued":"%d файла в опашката","File: %s, size: %d, max file size: %d":"Файл: %s, размер: %d, максимален размер: %d","Drag files here.":"Довлечете файловете тук.","Runtime ran out of available memory.":"Недостатъчна свободна памет.","File count error.":"Грешка в броя на файловете.","File extension error.":"Грешка: разширение на файла.","Error: File too large:":"Грешка: Файла е твърде голям:","Add Files":"Добавете файлове"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/bs.js b/assets/javascripts/plupload/js/i18n/bs.js new file mode 100644 index 00000000..27fe0093 --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/bs.js @@ -0,0 +1,2 @@ +// Bosnian (bs) +plupload.addI18n({"Stop Upload":"Prekini dodavanje","Upload URL might be wrong or doesn't exist.":"URL za dodavanje je neispravan ili ne postoji.","tb":"tb","Size":"Veličina","Close":"Zatvori","Init error.":"Inicijalizacijska greška.","Add files to the upload queue and click the start button.":"Dodajte datoteke u red i kliknite na dugme za pokretanje.","Filename":"Naziv datoteke","Image format either wrong or not supported.":"Format slike je neispravan ili nije podržan.","Status":"Status","HTTP Error.":"HTTP greška.","Start Upload":"Započni dodavanje","mb":"mb","kb":"kb","Duplicate file error.":"Dupla datoteka.","File size error.":"Greška u veličini datoteke.","N/A":"N/A","gb":"gb","Error: Invalid file extension:":"Greška! Neispravan ekstenzija datoteke:","Select files":"Odaberite datoteke","%s already present in the queue.":"%s se već nalazi u redu.","File: %s":"Datoteka: %s","b":"b","Uploaded %d/%d files":"Dodano %d/%d datoteka","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Dodavanje trenutno dozvoljava samo %d datoteka istovremeno. Dodatne datoteke su uklonjene.","%d files queued":"%d datoteka čeka","File: %s, size: %d, max file size: %d":"Datoteka: %s, veličina: %d, maksimalna veličina: %d","Drag files here.":"Dovucite datoteke ovdje.","Runtime ran out of available memory.":"Nema više dostupne memorije.","File count error.":"Greška u brojanju datoeka.","File extension error.":"Greška u ekstenziji datoteke.","Error: File too large:":"Greška! Datoteka je prevelika:","Add Files":"Dodaj datoteke"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/ca.js b/assets/javascripts/plupload/js/i18n/ca.js new file mode 100644 index 00000000..f45ed975 --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/ca.js @@ -0,0 +1,2 @@ +// Catalan (ca) +plupload.addI18n({"Stop Upload":"Parar pujada","Upload URL might be wrong or doesn't exist.":"La URL de càrrega no és correcte o bé no existeix.","tb":"Tb","Size":"Tamany","Close":"Tancar","Init error.":"Error d´inicialització.","Add files to the upload queue and click the start button.":"Afegeixi els fitxers a la cua de pujada i cliqui el botó Iniciar","Filename":"Nom de fitxer","Image format either wrong or not supported.":"Format d'imatge incorrecte o no suportat.","Status":"Estat","HTTP Error.":"Error HTTP.","Start Upload":"Començar pujada","mb":"Mb","kb":"Kb","Duplicate file error.":"Error per duplicitat de fitxer.","File size error.":"Error en la mida del fitxer.","N/A":"N/D","gb":"Gb","Error: Invalid file extension:":"Error: Extensió de fitxer no vàlida:","Select files":"Seleccionar fitxers","%s already present in the queue.":"%s ja existeix a la cua.","File: %s":"Fitxer: %s","b":"b","Uploaded %d/%d files":"Pujats %d/%d fitxers","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"La càrrega d'elements tan sols accepta %d fitxer(s) alhora. Els fitxers sobrants seran descartats.","%d files queued":"%d fitxers en cua","File: %s, size: %d, max file size: %d":"Fitxer: %s, mida: %d, mida màxima de fitxer: %d","Drag files here.":"Arrossegui fitxers aquí","Runtime ran out of available memory.":"L'execució ha arribat al límit de memòria.","File count error.":"Error en el recompte de fitxers","File extension error.":"Error en l´extensió del fitxer.","Error: File too large:":"Error: Fitxer massa gran:","Add Files":"Afegir fitxers"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/cs.js b/assets/javascripts/plupload/js/i18n/cs.js new file mode 100644 index 00000000..82c21ed0 --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/cs.js @@ -0,0 +1,2 @@ +// Czech (cs) +plupload.addI18n({"Stop Upload":"Zastavit nahrávání","Upload URL might be wrong or doesn't exist.":"URL uploadu je možná špatně, nebo neexistuje.","tb":"tb","Size":"Velikost","Close":"Zavřít","Init error.":"Chyba inicializace.","Add files to the upload queue and click the start button.":"Přidejte soubory do fronty a pak spusťte nahrávání.","Filename":"Název souboru","Image format either wrong or not supported.":"Špatný, nebo nepodporovaný formát obrázku.","Status":"Stav","HTTP Error.":"Chyba HTTP.","Start Upload":"Spustit nahrávání","mb":"mb","kb":"kb","Duplicate file error.":"Chyba - duplikovaný soubor.","File size error.":"Chyba velikosti souboru.","N/A":"N/A","gb":"gb","Error: Invalid file extension:":"Chyba: Neplatná koncovka souboru:","Select files":"Vyberte soubory","%s already present in the queue.":"%s je již zařazen ve frontě.","File: %s":"Soubor: %s","b":"b","Uploaded %d/%d files":"Nahráno %d/%d souborů","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Upload akceptuje pouze %d soubor(ů) najednou. Další soubory byly odstraněny.","%d files queued":"%d souborů ve frontě","File: %s, size: %d, max file size: %d":"Soubor: %s, velikost: %d, maximální velikost souboru: %d","Drag files here.":"Sem přetáhněte soubory.","Runtime ran out of available memory.":"Běh skriptu přesáhl dostupnou paměť.","File count error.":"Chyba v počtu souborů.","File extension error.":"Chyba přípony souboru.","Error: File too large:":"Chyba: Soubor je příliš veliký:","Add Files":"Přidat soubory"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/cy.js b/assets/javascripts/plupload/js/i18n/cy.js new file mode 100644 index 00000000..54a60c02 --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/cy.js @@ -0,0 +1,2 @@ +// Welsh (cy) +plupload.addI18n({"Stop Upload":"Atal Lanlwytho","Upload URL might be wrong or doesn't exist.":"URL y lanlwythiad ynb anghywir neu ddim yn bodoli.","tb":"tb","Size":"Maint","Close":"Cau","Init error.":"Gwall cych.","Add files to the upload queue and click the start button.":"Ychwanegwch ffeiliau i'r ciw lanlwytho a chlicio'r botwm dechrau.","Filename":"Enw'r ffeil","Image format either wrong or not supported.":"Fformat delwedd yn anghywir neu heb ei gynnal.","Status":"Statws","HTTP Error.":"Gwall HTTP.","Start Upload":"Dechrau Lanlwytho","mb":"mb","kb":"kb","Duplicate file error.":"Gwall ffeil ddyblyg.","File size error.":"Gwall maint ffeil.","N/A":"Dd/A","gb":"gb","Error: Invalid file extension:":"Gwall: estyniad ffeil annilys:","Select files":"Dewis ffeiliau","%s already present in the queue.":"%s yn y ciw yn barod.","File: %s":"Ffeil: %s","b":"b","Uploaded %d/%d files":"Lanlwythwyd %d/%d ffeil","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Mae'r elfen lanlwytho yn derbyn %d ffeil ar y tro. Caiff ffeiliau ychwanegol eu tynnu.","%d files queued":"%d ffeil mewn ciw","File: %s, size: %d, max file size: %d":"Ffeil: %s, maint: %d, maint mwyaf ffeil: %d","Drag files here.":"Llusgwch ffeiliau yma.","Runtime ran out of available memory.":"Allan o gof.","File count error.":"Gwall cyfri ffeiliau.","File extension error.":"Gwall estyniad ffeil.","Error: File too large:":"Gwall: Ffeil yn rhy fawr:","Add Files":"Ychwanegu Ffeiliau"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/da.js b/assets/javascripts/plupload/js/i18n/da.js new file mode 100644 index 00000000..9a4f62fe --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/da.js @@ -0,0 +1,2 @@ +// Danish (da) +plupload.addI18n({"Stop Upload":"Stop upload","Upload URL might be wrong or doesn't exist.":"Upload URL kan være forkert eller ikke eksisterende.","tb":"tb","Size":"Størrelse","Close":"Luk","Init error.":"Opstarts fejl.","Add files to the upload queue and click the start button.":"Tilføj filer til køen og klik Start upload knappen.","Filename":"Filnavn","Image format either wrong or not supported.":"Billede format er enten forkert eller ikke understøttet.","Status":"Status","HTTP Error.":"HTTP fejl.","Start Upload":"Start upload","mb":"mb","kb":"kb","Duplicate file error.":"Filen findes allerede.","File size error.":"Filstørrelse fejl.","N/A":"N/A","gb":"gb","Error: Invalid file extension:":"Fejl: Ugyldigt fil format:","Select files":"Vælg filer","%s already present in the queue.":"%s findes allerede i køen.","File: %s":"Fil: %s","b":"b","Uploaded %d/%d files":"Uploaded %d/%d filer","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Upload accepterer kun %d fil(er) af gangen. Ekstra filer blev skippet.","%d files queued":"%d filer i kø","File: %s, size: %d, max file size: %d":"Fil: %s, størrelse: %d, maks. filstørrelse: %d","Drag files here.":"Træk filer her.","Runtime ran out of available memory.":"Runtime mangler tilgængelige hukommelse.","File count error.":"Fil antal fejl.","File extension error.":"Fil format fejl.","Error: File too large:":"Fejl: Filen er for stor:","Add Files":"Tilføj filer"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/de.js b/assets/javascripts/plupload/js/i18n/de.js new file mode 100644 index 00000000..c738343d --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/de.js @@ -0,0 +1,2 @@ +// German (de) +plupload.addI18n({"Stop Upload":"Hochladen stoppen","Upload URL might be wrong or doesn't exist.":"Upload-URL ist falsch oder existiert nicht.","tb":"TB","Size":"Größe","Close":"Schließen","Init error.":"Initialisierungsfehler","Add files to the upload queue and click the start button.":"Dateien hinzufügen und auf 'Hochladen' klicken.","Filename":"Dateiname","Image format either wrong or not supported.":"Bildformat falsch oder nicht unterstützt.","Status":"Status","HTTP Error.":"HTTP-Fehler","Start Upload":"Hochladen beginnen","mb":"MB","kb":"KB","Duplicate file error.":"Datei bereits hochgeladen","File size error.":"Fehler bei Dateigröße","N/A":"Nicht verfügbar","gb":"GB","Error: Invalid file extension:":"Fehler: Ungültige Dateiendung:","Select files":"Dateien auswählen","%s already present in the queue.":"%s ist bereits in der Warteschlange","File: %s":"Datei: %s","b":"B","Uploaded %d/%d files":"%d/%d Dateien wurden hochgeladen","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Pro Durchgang können nur %d Datei(en) akzeptiert werden. Überzählige Dateien wurden ignoriert.","%d files queued":"%d Dateien in der Warteschlange","File: %s, size: %d, max file size: %d":"Datei: %s, Größe: %d, maximale Dateigröße: %d","Drag files here.":"Dateien hier hin ziehen.","Runtime ran out of available memory.":"Nicht genügend Speicher verfügbar.","File count error.":"Fehlerhafte Dateianzahl.","File extension error.":"Fehler bei Dateiendung","Error: File too large:":"Fehler: Datei zu groß:","Add Files":"Dateien hinzufügen"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/el.js b/assets/javascripts/plupload/js/i18n/el.js new file mode 100644 index 00000000..1cabee89 --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/el.js @@ -0,0 +1,2 @@ +// Greek (el) +plupload.addI18n({"Stop Upload":"Ακύρωση Μεταφόρτωσης","Upload URL might be wrong or doesn't exist.":"Το URL μεταφόρτωσης είναι λάθος ή δεν υπάρχει.","tb":"tb","Size":"Μέγεθος","Close":"Κλείσιμο","Init error.":"Σφάλμα αρχικοποίησης.","Add files to the upload queue and click the start button.":"Προσθέστε αρχεία στην ουρά μεταφόρτωσης και πατήστε το κουμπί εκκίνησης.","Filename":"Όνομα Αρχείου","Image format either wrong or not supported.":"Ο τύπος εικόνας είναι λάθος ή δεν υποστηρίζεται.","Status":"Κατάσταση","HTTP Error.":"Σφάλμα HTTP.","Start Upload":"Εκκίνηση Μεταφόρτωσης","mb":"mb","kb":"kb","Duplicate file error.":"Το αρχείο έχει ξαναπροστεθεί.","File size error.":"Σφάλμα με το μέγεθος του αρχείου.","N/A":"Δεν ισχύει","gb":"gb","Error: Invalid file extension:":"Σφάλμα: Μη έγκυρος τύπος αρχείου:","Select files":"Επιλέξτε Αρχεία","%s already present in the queue.":"Το «%s» βρίσκεται ήδη στην ουρά.","File: %s":"Αρχείο: %s","b":"b","Uploaded %d/%d files":"Μεταφορτώθηκαν %d/%d αρχεία","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Μπορείτε να μεταφορτώσετε μεχρι και %d αρχείο/α κάθε φορά. Τα επιπλέον αρχεία αφαιρέθηκαν.","%d files queued":"%d αρχεία στην ουρά","File: %s, size: %d, max file size: %d":"Αρχείο: %s, μέγεθος: %d, μέγιστο μέγεθος αρχείου: %d","Drag files here.":"Σύρετε αρχεία εδώ","Runtime ran out of available memory.":"Δεν υπάρχει αρκετή διαθέσιμη μνήμη.","File count error.":"Σφάλμα με τον αριθμό αρχείων.","File extension error.":"Σφάλμα με τον τύπο αρχείου.","Error: File too large:":"Σφάλμα: Πολύ μεγάλο αρχείο:","Add Files":"Προσθέστε Αρχεία"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/en.js b/assets/javascripts/plupload/js/i18n/en.js new file mode 100644 index 00000000..6ab3e2e0 --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/en.js @@ -0,0 +1,2 @@ +// English (en) +plupload.addI18n({"Stop Upload":"Stop Upload","Upload URL might be wrong or doesn't exist.":"Upload URL might be wrong or doesn't exist.","tb":"tb","Size":"Size","Close":"Close","Init error.":"Init error.","Add files to the upload queue and click the start button.":"Add files to the upload queue and click the start button.","Filename":"Filename","Image format either wrong or not supported.":"Image format either wrong or not supported.","Status":"Status","HTTP Error.":"HTTP Error.","Start Upload":"Start Upload","mb":"mb","kb":"kb","Duplicate file error.":"Duplicate file error.","File size error.":"File size error.","N/A":"N/A","gb":"gb","Error: Invalid file extension:":"Error: Invalid file extension:","Select files":"Select files","%s already present in the queue.":"%s already present in the queue.","File: %s":"File: %s","b":"b","Uploaded %d/%d files":"Uploaded %d/%d files","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Upload element accepts only %d file(s) at a time. Extra files were stripped.","%d files queued":"%d files queued","File: %s, size: %d, max file size: %d":"File: %s, size: %d, max file size: %d","Drag files here.":"Drag files here.","Runtime ran out of available memory.":"Runtime ran out of available memory.","File count error.":"File count error.","File extension error.":"File extension error.","Error: File too large:":"Error: File too large:","Add Files":"Add Files"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/es.js b/assets/javascripts/plupload/js/i18n/es.js new file mode 100644 index 00000000..72b0367e --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/es.js @@ -0,0 +1,2 @@ +// Spanish (es) +plupload.addI18n({"Stop Upload":"Detener Subida.","Upload URL might be wrong or doesn't exist.":"URL de carga inexistente.","tb":"TB","Size":"Tamaño","Close":"Cerrar","Init error.":"Error de inicialización.","Add files to the upload queue and click the start button.":"Agregue archivos a la lista de subida y pulse clic en el botón de Iniciar carga","Filename":"Nombre de archivo","Image format either wrong or not supported.":"Formato de imagen no soportada.","Status":"Estado","HTTP Error.":"Error de HTTP.","Start Upload":"Iniciar carga","mb":"MB","kb":"KB","Duplicate file error.":"Error, archivo duplicado","File size error.":"Error de tamaño de archivo.","N/A":"No disponible","gb":"GB","Error: Invalid file extension:":"Error: Extensión de archivo inválida:","Select files":"Elija archivos","%s already present in the queue.":"%s ya se encuentra en la lista.","File: %s":"Archivo: %s","b":"B","Uploaded %d/%d files":"Subidos %d/%d archivos","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Se aceptan sólo %d archivo(s) al tiempo. Más, no se tienen en cuenta.","%d files queued":"%d archivos en cola.","File: %s, size: %d, max file size: %d":"Archivo: %s, tamaño: %d, tamaño máximo de archivo: %d","Drag files here.":"Arrastre archivos aquí","Runtime ran out of available memory.":"No hay memoria disponible.","File count error.":"Error en contador de archivos.","File extension error.":"Error de extensión de archivo.","Error: File too large:":"Error: archivo demasiado grande:","Add Files":"Agregar archivos"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/et.js b/assets/javascripts/plupload/js/i18n/et.js new file mode 100644 index 00000000..3e145b10 --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/et.js @@ -0,0 +1,2 @@ +// Estonian (et) +plupload.addI18n({"Stop Upload":"Stop Upload","Upload URL might be wrong or doesn't exist.":"Üleslaadimise URL võib olla vale või seda pole.","tb":"","Size":"Suurus","Close":"Sulge","Init error.":"Lähtestamise viga.","Add files to the upload queue and click the start button.":"Lisa failid üleslaadimise järjekorda ja klõpsa alustamise nupule.","Filename":"Failinimi","Image format either wrong or not supported.":"Image format either wrong or not supported.","Status":"Olek","HTTP Error.":"HTTP ühenduse viga.","Start Upload":"Start Upload","mb":"","kb":"","Duplicate file error.":"","File size error.":"Failisuuruse viga.","N/A":"N/A","gb":"","Error: Invalid file extension:":"Error: Invalid file extension:","Select files":"Vali faile","%s already present in the queue.":"","File: %s":"Fail: %s","b":"","Uploaded %d/%d files":"Üles laaditud %d/%d","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Üleslaadimise element saab vastu võtta ainult %d faili ühe korraga. Ülejäänud failid jäetakse laadimata.","%d files queued":"Järjekorras on %d faili","File: %s, size: %d, max file size: %d":"","Drag files here.":"Lohista failid siia.","Runtime ran out of available memory.":"Runtime ran out of available memory.","File count error.":"Failide arvu viga.","File extension error.":"Faililaiendi viga.","Error: File too large:":"Error: File too large:","Add Files":"Add Files"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/fa.js b/assets/javascripts/plupload/js/i18n/fa.js new file mode 100644 index 00000000..e3246cc9 --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/fa.js @@ -0,0 +1,2 @@ +// Persian (fa) +plupload.addI18n({"Stop Upload":"توقف انتقال","Upload URL might be wrong or doesn't exist.":"Upload URL might be wrong or doesn't exist.","tb":"ترابایت","Size":"سایز","Close":"بستن","Init error.":"خطا در استارت اسکریپت","Add files to the upload queue and click the start button.":"اضافه کنید فایل ها را به صف آپلود و دکمه شروع را کلیک کنید.","Filename":"نام فایل","Image format either wrong or not supported.":"Image format either wrong or not supported.","Status":"وضعیت","HTTP Error.":"HTTP خطای","Start Upload":"شروع انتقال","mb":"مگابایت","kb":"کیلوبایت","Duplicate file error.":"خطای فایل تکراری","File size error.":"خطای سایز فایل","N/A":"N/A","gb":"گیگابایت","Error: Invalid file extension:":"Error: Invalid file extension:","Select files":"انتخاب فایل","%s already present in the queue.":"%s در لیست آپلود وجود دارد.","File: %s":" فایل ها : %s","b":"بایت","Uploaded %d/%d files":"منتقل شد %d/%d از فایلها","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"عنصر بارگذار فقط %d فایل رو در یک زمان می پذیرد. سایر فایل ها مجرد از این موضوع هستند.","%d files queued":"%d فایل در صف","File: %s, size: %d, max file size: %d":"فایل: %s, اندازه: %d, محدودیت اندازه فایل: %d","Drag files here.":"بکشید فایل ها رو به اینجا","Runtime ran out of available memory.":"Runtime ran out of available memory.","File count error.":"خطای تعداد فایل","File extension error.":"خطا پیشوند فایل","Error: File too large:":"Error: File too large:","Add Files":"افزودن فایل"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/fi.js b/assets/javascripts/plupload/js/i18n/fi.js new file mode 100644 index 00000000..e16ebecf --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/fi.js @@ -0,0 +1,2 @@ +// Finnish (fi) +plupload.addI18n({"Stop Upload":"Pysäytä lähetys","Upload URL might be wrong or doesn't exist.":"Lähetyksen URL-osoite saattaa olla väärä tai sitä ei ole olemassa.","tb":"TB","Size":"Koko","Close":"Sulje","Init error.":"Init virhe.","Add files to the upload queue and click the start button.":"Lisää tiedostoja lähetysjonoon ja klikkaa aloita-nappia.","Filename":"Tiedostonimi","Image format either wrong or not supported.":"Kuvaformaatti on joko väärä tai ei tuettu.","Status":"Tila","HTTP Error.":"HTTP-virhe.","Start Upload":"Aloita lähetys","mb":"MB","kb":"kB","Duplicate file error.":"Tuplatiedostovirhe.","File size error.":"Tiedostokokovirhe.","N/A":"N/A","gb":"GB","Error: Invalid file extension:":"Virhe: Virheellinen tiedostopääte:","Select files":"Valitse tiedostoja","%s already present in the queue.":"%s on jo jonossa.","File: %s":"Tiedosto: %s","b":"B","Uploaded %d/%d files":"Lähetetty %d/%d tiedostoa","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Vain %d tiedosto(a) voidaan lähettää kerralla. Ylimääräiset tiedostot ohitettiin.","%d files queued":"%d tiedostoa jonossa","File: %s, size: %d, max file size: %d":"Tiedosto: %s, koko: %d, suurin sallittu tiedostokoko: %d","Drag files here.":"Raahaa tiedostot tähän.","Runtime ran out of available memory.":"Toiminnon käytettävissä oleva muisti loppui kesken.","File count error.":"Tiedostolaskentavirhe.","File extension error.":"Tiedostopäätevirhe.","Error: File too large:":"Virhe: Liian suuri tiedosto:","Add Files":"Lisää tiedostoja"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/fr.js b/assets/javascripts/plupload/js/i18n/fr.js new file mode 100644 index 00000000..7f2a765b --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/fr.js @@ -0,0 +1,2 @@ +// French (fr) +plupload.addI18n({"Stop Upload":"Arrêter l'envoi.","Upload URL might be wrong or doesn't exist.":"L'URL d'envoi est soit erronée soit n'existe pas.","tb":"To","Size":"Taille","Close":"Fermer","Init error.":"Erreur d'initialisation.","Add files to the upload queue and click the start button.":"Ajoutez des fichiers à la file d'attente de téléchargement et appuyez sur le bouton 'Démarrer l'envoi'","Filename":"Nom du fichier","Image format either wrong or not supported.":"Le format d'image est soit erroné soit pas géré.","Status":"État","HTTP Error.":"Erreur HTTP.","Start Upload":"Démarrer l'envoi","mb":"Mo","kb":"Ko","Duplicate file error.":"Erreur: Fichier déjà sélectionné.","File size error.":"Erreur de taille de fichier.","N/A":"Non applicable","gb":"Go","Error: Invalid file extension:":"Erreur: Extension de fichier non valide:","Select files":"Sélectionnez les fichiers","%s already present in the queue.":"%s déjà présent dans la file d'attente.","File: %s":"Fichier: %s","b":"o","Uploaded %d/%d files":"%d fichiers sur %d ont été envoyés","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Que %d fichier(s) peuvent être envoyé(s) à la fois. Les fichiers supplémentaires ont été ignorés.","%d files queued":"%d fichiers en attente","File: %s, size: %d, max file size: %d":"Fichier: %s, taille: %d, taille max. d'un fichier: %d","Drag files here.":"Déposez les fichiers ici.","Runtime ran out of available memory.":"Le traitement a manqué de mémoire disponible.","File count error.":"Erreur: Nombre de fichiers.","File extension error.":"Erreur d'extension de fichier","Error: File too large:":"Erreur: Fichier trop volumineux:","Add Files":"Ajouter des fichiers"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/he.js b/assets/javascripts/plupload/js/i18n/he.js new file mode 100644 index 00000000..71033478 --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/he.js @@ -0,0 +1,2 @@ +// Hebrew (he) +plupload.addI18n({"Stop Upload":"בטל העלאה","Upload URL might be wrong or doesn't exist.":"כתובת URL שגויה או לא קיימת.","tb":"tb","Size":"גודל","Close":"סגור","Init error.":"שגיאת איתחול","Add files to the upload queue and click the start button.":"הוסף קבצים לרשימה ולחץ על כפתור שליחה להתחלת פעולות העלאה","Filename":"שם קובץ","Image format either wrong or not supported.":"תמונה פגומה או סוג תמונה לא נתמך","Status":"אחוז","HTTP Error.":"שגיאת פרוטוקול","Start Upload":"שליחה","mb":"MB","kb":"KB","Duplicate file error.":"קובץ כפול","File size error.":"גודל קובץ חורג מהמותר","N/A":"שגיאה","gb":"GB","Error: Invalid file extension:":"שגיאה: סוג קובץ לא נתמך:","Select files":"בחר קבצים","%s already present in the queue.":"%sקובץ נמצא כבר ברשימת הקבצים.","File: %s":"קובץ: %s","b":"B","Uploaded %d/%d files":"מעלה: %d/%d","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"אלמנטי ההעלאה מקבלים רק %d קובץ(ים) בפעם אחת. קבצים נוספים הוסרו.","%d files queued":"%d קבצים נותרו","File: %s, size: %d, max file size: %d":"קובץ: %s, גודל: %d, גודל מקסימלי: %d","Drag files here.":"גרור קבצים לכאן","Runtime ran out of available memory.":"שגיאת מחסור בזיכרון","File count error.":"שגיאת מספר קבצים","File extension error.":"קובץ זה לא נתמך","Error: File too large:":"שגיאה: קובץ חורג מהגודל המותר:","Add Files":"הוסף קבצים"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/hr.js b/assets/javascripts/plupload/js/i18n/hr.js new file mode 100644 index 00000000..626dded4 --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/hr.js @@ -0,0 +1,2 @@ +// Croatian (hr) +plupload.addI18n({"Stop Upload":"Zaustavi upload.","Upload URL might be wrong or doesn't exist.":"Upload URL might be wrong or doesn't exist.","tb":"tb","Size":"Veličina","Close":"Zatvori","Init error.":"Greška inicijalizacije.","Add files to the upload queue and click the start button.":"Dodajte datoteke u listu i kliknite Upload.","Filename":"Ime datoteke","Image format either wrong or not supported.":"Image format either wrong or not supported.","Status":"Status","HTTP Error.":"HTTP greška.","Start Upload":"Pokreni upload.","mb":"mb","kb":"kb","Duplicate file error.":"Pogreška dvostruke datoteke.","File size error.":"Greška veličine datoteke.","N/A":"N/A","gb":"gb","Error: Invalid file extension:":"Pogreška: Nevažeći nastavak datoteke:","Select files":"Odaberite datoteke:","%s already present in the queue.":"%s je već prisutan u listi čekanja.","File: %s":"Datoteka: %s","b":"b","Uploaded %d/%d files":"Uploadano %d/%d datoteka","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Upload element accepts only %d file(s) at a time. Extra files were stripped.","%d files queued":"%d datoteka na čekanju.","File: %s, size: %d, max file size: %d":"Datoteka: %s, veličina: %d, maksimalna veličina: %d","Drag files here.":"Dovucite datoteke ovdje","Runtime ran out of available memory.":"Runtime aplikaciji je ponestalo memorije.","File count error.":"Pogreška u broju datoteka.","File extension error.":"Pogreška u nastavku datoteke.","Error: File too large:":"Pogreška: Datoteka je prevelika:","Add Files":"Dodaj datoteke"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/hu.js b/assets/javascripts/plupload/js/i18n/hu.js new file mode 100644 index 00000000..ad233566 --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/hu.js @@ -0,0 +1,2 @@ +// Hungarian (hu) +plupload.addI18n({"Stop Upload":"Feltöltés leállítása","Upload URL might be wrong or doesn't exist.":"A feltöltő URL hibás vagy nem létezik.","tb":"TB","Size":"Méret","Close":"Bezárás","Init error.":"Init hiba.","Add files to the upload queue and click the start button.":"A fájlok feltöltési sorhoz való hozzáadása után az Indítás gombra kell kattintani.","Filename":"Fájlnév","Image format either wrong or not supported.":"Rossz vagy nem támogatott képformátum.","Status":"Állapot","HTTP Error.":"HTTP-hiba.","Start Upload":"Feltöltés indítása","mb":"MB","kb":"kB","Duplicate file error.":"Duplikáltfájl-hiba.","File size error.":"Hibás fájlméret.","N/A":"Nem elérhető","gb":"GB","Error: Invalid file extension:":"Hiba: érvénytelen fájlkiterjesztés:","Select files":"Fájlok kiválasztása","%s already present in the queue.":"%s már szerepel a listában.","File: %s":"Fájl: %s","b":"b","Uploaded %d/%d files":"Feltöltött fájlok: %d/%d","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"A feltöltés egyszerre csak %d fájlt fogad el, a többi fájl nem lesz feltöltve.","%d files queued":"%d fájl sorbaállítva","File: %s, size: %d, max file size: %d":"Fájl: %s, méret: %d, legnagyobb fájlméret: %d","Drag files here.":"Ide lehet húzni a fájlokat.","Runtime ran out of available memory.":"Futásidőben elfogyott a rendelkezésre álló memória.","File count error.":"A fájlok számával kapcsolatos hiba.","File extension error.":"Hibás fájlkiterjesztés.","Error: File too large:":"Hiba: a fájl túl nagy:","Add Files":"Fájlok hozzáadása"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/hy.js b/assets/javascripts/plupload/js/i18n/hy.js new file mode 100644 index 00000000..ddf432df --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/hy.js @@ -0,0 +1,2 @@ +// Armenian (hy) +plupload.addI18n({"Stop Upload":"Կանգնեցնել","Upload URL might be wrong or doesn't exist.":"Ավեցաված URL-ը սխալ է կամ գոյություն չունի։","tb":"տբ","Size":"Չափ","Close":"Փակել","Init error.":"Ստեղծման սխալ","Add files to the upload queue and click the start button.":"Ավելացրեք ֆայլեր ցուցակում և սեղմեք \"Վերբեռնել\"։","Filename":"Ֆայլի անուն","Image format either wrong or not supported.":"Նկարի ֆորմատը սխալ է կամ չի ընդունվում։","Status":"Կարգավիճակ","HTTP Error.":"HTTP սխալ","Start Upload":"Վերբեռնել","mb":"մբ","kb":"կբ","Duplicate file error.":"Ֆայլի կրկնման սխալ","File size error.":"Ֆայլի չափի սխալ","N/A":"N/A","gb":"գբ","Error: Invalid file extension:":"Սխալ։ Ֆայլի ընդլայնումը սխալ է։","Select files":"Ընտրեք ֆայլերը","%s already present in the queue.":"%s ֆայլը արդեն ավելացված է ցուցակում.","File: %s":"Ֆայլ: %s","b":"բ","Uploaded %d/%d files":"Վերբեռնվել են %d/%d ֆայլերը","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Վերբեռնիչը միանգամից ըդունում է միայն %d ֆայլ(եր). Ավելորդ ֆայլերը հեռացվել են.","%d files queued":"ցուցակում կա %d ֆայլ","File: %s, size: %d, max file size: %d":"Ֆայլ: %s, չափ: %d, ֆայլի մաքսիմում չափ: %d","Drag files here.":"Տեղափոխեք ֆայլերը այստեղ","Runtime ran out of available memory.":"Օպերատիվ հիշողության անբավարարուտյուն.","File count error.":"Ֆայլերի քանակի սխալ","File extension error.":"Ֆայլի ընդլայնման սխալ","Error: File too large:":"Սխալ։ Ֆայլի չափը մեծ է։","Add Files":"Ավելացնել ֆայլեր"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/id.js b/assets/javascripts/plupload/js/i18n/id.js new file mode 100644 index 00000000..2921c27d --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/id.js @@ -0,0 +1,2 @@ +// Indonesian (id) +plupload.addI18n({"Stop Upload":"Hentikan Upload","Upload URL might be wrong or doesn't exist.":"Alamat URL untuk upload tidak benar atau tidak ada","tb":"tb","Size":"Ukuran","Close":"Tutup","Init error.":"Kesalahan pada Init","Add files to the upload queue and click the start button.":"Tambahkan file kedalam antrian upload dan klik tombol Mulai","Filename":"Nama File","Image format either wrong or not supported.":"Kesalahan pada jenis gambar atau jenis file tidak didukung","Status":"Status","HTTP Error.":"HTTP Bermasalah","Start Upload":"Mulai Upload","mb":"mb","kb":"kb","Duplicate file error.":"Terjadi duplikasi file","File size error.":"Kesalahan pada ukuran file","N/A":"N/A","gb":"gb","Error: Invalid file extension:":"Kesalahan: Ekstensi file tidak dikenal","Select files":"Pilih file","%s already present in the queue.":"%s sudah ada dalam daftar antrian","File: %s":"File: %s","b":"b","Uploaded %d/%d files":"File terupload %d/%d","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Tempat untuk upload hanya menerima %d file(s) dalam setiap upload. File lainnya tidak akan disertakan","%d files queued":"%d file dalam antrian","File: %s, size: %d, max file size: %d":"File: %s, ukuran: %d, maksimum ukuran file: %d","Drag files here.":"Tarik file kesini","Runtime ran out of available memory.":"Tidak cukup memori","File count error.":"Kesalahan pada jumlah file","File extension error.":"Kesalahan pada ekstensi file","Error: File too large:":"Kesalahan: File terlalu besar","Add Files":"Tambah File"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/it.js b/assets/javascripts/plupload/js/i18n/it.js new file mode 100644 index 00000000..66c9f9df --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/it.js @@ -0,0 +1,2 @@ +// Italian (it) +plupload.addI18n({"Stop Upload":"Ferma Upload","Upload URL might be wrong or doesn't exist.":"URL di Upload errata o non esistente","tb":"tb","Size":"Dimensione","Close":"Chiudi","Init error.":"Errore inizializzazione.","Add files to the upload queue and click the start button.":"Aggiungi i file alla coda di caricamento e clicca il pulsante di avvio.","Filename":"Nome file","Image format either wrong or not supported.":"Formato immagine errato o non supportato.","Status":"Stato","HTTP Error.":"Errore HTTP.","Start Upload":"Inizia Upload","mb":"mb","kb":"kb","Duplicate file error.":"Errore file duplicato.","File size error.":"Errore dimensione file.","N/A":"N/D","gb":"gb","Error: Invalid file extension:":"Errore: Estensione file non valida:","Select files":"Seleziona i files","%s already present in the queue.":"%s già presente nella coda.","File: %s":"File: %s","b":"byte","Uploaded %d/%d files":"Caricati %d/%d file","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Upload element accepts only %d file(s) at a time. Extra files were stripped.","%d files queued":"%d file in coda","File: %s, size: %d, max file size: %d":"File: %s, dimensione: %d, dimensione max file: %d","Drag files here.":"Trascina i files qui.","Runtime ran out of available memory.":"Runtime ha esaurito la memoria disponibile.","File count error.":"File count error.","File extension error.":"Errore estensione file.","Error: File too large:":"Errore: File troppo grande:","Add Files":"Aggiungi file"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/ja.js b/assets/javascripts/plupload/js/i18n/ja.js new file mode 100644 index 00000000..28486992 --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/ja.js @@ -0,0 +1,2 @@ +// Japanese (ja) +plupload.addI18n({"Stop Upload":"アップロード停止","Upload URL might be wrong or doesn't exist.":"アップロード先の URL が存在しません","tb":"TB","Size":"サイズ","Close":"閉じる","Init error.":"イニシャライズエラー","Add files to the upload queue and click the start button.":"ファイルをアップロードキューに追加してスタートボタンをクリックしてください","Filename":"ファイル名","Image format either wrong or not supported.":"画像形式が間違っているかサポートされていません","Status":"ステータス","HTTP Error.":"HTTP エラー","Start Upload":"アップロード開始","mb":"MB","kb":"KB","Duplicate file error.":"重複ファイルエラー","File size error.":"ファイルサイズエラー","N/A":"N/A","gb":"GB","Error: Invalid file extension:":"エラー: ファイルの拡張子が無効です:","Select files":"ファイル選択","%s already present in the queue.":"%s 既にキューに存在しています","File: %s":"ファイル: %s","b":"B","Uploaded %d/%d files":"アップロード中 %d/%d ファイル","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"アップロード可能なファイル数は %d です 余分なファイルは削除されました","%d files queued":"%d ファイルが追加されました","File: %s, size: %d, max file size: %d":"ファイル: %s, サイズ: %d, 最大ファイルサイズ: %d","Drag files here.":"ここにファイルをドラッグ","Runtime ran out of available memory.":"ランタイムが使用するメモリが不足しました","File count error.":"ファイル数エラー","File extension error.":"ファイル拡張子エラー","Error: File too large:":"エラー: ファイルが大きすぎます:","Add Files":"ファイルを追加"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/ka.js b/assets/javascripts/plupload/js/i18n/ka.js new file mode 100644 index 00000000..b1a1fa9d --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/ka.js @@ -0,0 +1,2 @@ +// Georgian (ka) +plupload.addI18n({"Stop Upload":"ატვირთვის შეჩერება","Upload URL might be wrong or doesn't exist.":"ატვირთვის მისამართი არასწორია ან არ არსებობს.","tb":"ტბ","Size":"ზომა","Close":"დავხუროთ","Init error.":"ინიციალიზაციის შეცდომა.","Add files to the upload queue and click the start button.":"დაამატეთ ფაილები და დააჭირეთ ღილაკს - ატვირთვა.","Filename":"ფაილის სახელი","Image format either wrong or not supported.":"ფაილის ფორმატი არ არის მხარდაჭერილი ან არასწორია.","Status":"სტატუსი","HTTP Error.":"HTTP შეცდომა.","Start Upload":"ატვირთვა","mb":"მბ","kb":"კბ","Duplicate file error.":"ესეთი ფაილი უკვე დამატებულია.","File size error.":"ფაილის ზომა დაშვებულზე დიდია.","N/A":"N/A","gb":"გბ","Error: Invalid file extension:":"შეცდომა: ფაილს აქვს არასწორი გაფართოება.","Select files":"ფაილების მონიშვნა","%s already present in the queue.":"%s უკვე დამატებულია.","File: %s":"ფაილი: %s","b":"ბ","Uploaded %d/%d files":"ატვირთულია %d/%d ფაილი","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"ერთდროულად დაშვებულია მხოლოდ %d ფაილის დამატება.","%d files queued":"რიგშია %d ფაილი","File: %s, size: %d, max file size: %d":"ფაილი: %s, ზომა: %d, მაქსიმალური დაშვებული ზომა: %d","Drag files here.":"ჩააგდეთ ფაილები აქ.","Runtime ran out of available memory.":"ხელმისაწვდომი მეხსიერება გადაივსო.","File count error.":"აღმოჩენილია ზედმეტი ფაილები.","File extension error.":"ფაილის ფორმატი დაშვებული არ არის.","Error: File too large:":"შეცდომა: ფაილი ზედმეტად დიდია.","Add Files":"დაამატეთ ფაილები"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/kk.js b/assets/javascripts/plupload/js/i18n/kk.js new file mode 100644 index 00000000..344922a8 --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/kk.js @@ -0,0 +1,2 @@ +// Kazakh (kk) +plupload.addI18n({"Stop Upload":"Жүктеуді тоқтату","Upload URL might be wrong or doesn't exist.":"Жүктеуді қабылдаушы URL қате не мүлдем көрсетілмеген.","tb":"тб","Size":"Өлшемі","Close":"Жабу","Init error.":"Инициализация қатесі.","Add files to the upload queue and click the start button.":"Жүктеу кезегіне файлдар қосып, Бастау кнопкасын басыңыз.","Filename":"Файл аты","Image format either wrong or not supported.":"Сурет форматы қате немесе оның қолдауы жоқ.","Status":"Күйі","HTTP Error.":"HTTP қатесі.","Start Upload":"Жүктеуді бастау","mb":"мб","kb":"кб","Duplicate file error.":"Файл қайталамасының қатесі.","File size error.":"Файл өлшемінің қатесі.","N/A":"Қ/Ж","gb":"гб","Error: Invalid file extension:":"Қате: Файл кеңейтілуі қате:","Select files":"Файлдар таңдаңыз","%s already present in the queue.":"%s файлы кезекте бұрыннан бар.","File: %s":"Файл: %s","b":"б","Uploaded %d/%d files":"Жүктелген: %d/%d файл","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Жүктеу элементі бір кезде %d файл ғана жүктей алады. Артық файлдар жүктелмейді.","%d files queued":"%d файл кезекке қойылды","File: %s, size: %d, max file size: %d":"Файл: %s, өлшемі: %d, макс. файл өлшемі: %d","Drag files here.":"Файлдарды мына жерге тастаңыз.","Runtime ran out of available memory.":"Орындау кезінде жады жетпей қалды.","File count error.":"Файл санының қатесі.","File extension error.":"Файл кеңейтілуінің қатесі.","Error: File too large:":"Қате: Файл мөлшері тым үлкен:","Add Files":"Файл қосу"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/km.js b/assets/javascripts/plupload/js/i18n/km.js new file mode 100644 index 00000000..c77cea13 --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/km.js @@ -0,0 +1,2 @@ +// Khmer (km) +plupload.addI18n({"Stop Upload":"បញ្ឈប់​ការ​ផ្ទុក​ឡើង","Upload URL might be wrong or doesn't exist.":"URL ផ្ទុក​ឡើង​អាច​ខុស ឬ​ក៏​គ្មាន។","tb":"tb","Size":"ទំហំ","Close":"បិទ","Init error.":"កំហុស Init។","Add files to the upload queue and click the start button.":"បន្ថែម​ឯកសារ​ទៅ​ក្នុង​ជួរ​លំដាប់​ផ្ទុក​ឡើង ហើយ​ចុច​ប៊ូតុង​ចាប់​ផ្ដើម។","Filename":"ឈ្មោះ​ឯកសារ","Image format either wrong or not supported.":"ទ្រង់​ទ្រាយ​រូបភាព​អាច​ខុស ឬ​ក៏​មិន​ស្គាល់​តែ​ម្ដង។","Status":"ស្ថានភាព","HTTP Error.":"កំហុស HTTP ។","Start Upload":"ចាប់​ផ្ដើម​ផ្ទុក​ឡើង","mb":"mb","kb":"kb","Duplicate file error.":"កំហុស​ឯកសារ​ស្ទួន​គ្នា។","File size error.":"កំហុស​ទំហំ​ឯកសារ។","N/A":"គ្មាន","gb":"gb","Error: Invalid file extension:":"កំហុស៖ កន្ទុយ​ឯកសារ​មិន​ត្រឹម​ត្រូវ៖","Select files":"ជ្រើស​ឯកសារ","%s already present in the queue.":"មាន %s នៅ​ក្នុង​ជួរ​លំដាប់​ហើយ។","File: %s":"ឯកសារ៖ %s","b":"b","Uploaded %d/%d files":"បាន​ផ្ទុក​ឡើង​ឯកសារ %d/%d","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"ការ​ផ្ទុក​ឡើង​ទទួល​ឯកសារ​បាន​តែ %d ប៉ុណ្ណោះ​ក្នុង​ពេល​តែ​មួយ។ ឯកសារ​ផ្សេង​ទៀត​នឹង​ត្រូវ​ដក​ចេញ។","%d files queued":"បាន​ដាក់​ឯកសារ %d បន្ត​គ្នា","File: %s, size: %d, max file size: %d":"ឯកសារ៖ %s, size: %d, ទំហំ​ឯកសារ​អតិបរមា៖ %d","Drag files here.":"អូស​ឯកសារ​មក​ទីនេះ។","Runtime ran out of available memory.":"ពេល​ដំណើរ​ការ​អស់​អង្គ​ចងចាំ​ទំនេរ​ហើយ។","File count error.":"កំហុស​ការ​រាប់​ឯកសារ។","File extension error.":"កំហុស​កន្ទុយ​ឯកសារ។","Error: File too large:":"កំហុស៖ ឯកសារ​ធំ​ពេក៖","Add Files":"បន្ថែម​ឯកសារ"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/ko.js b/assets/javascripts/plupload/js/i18n/ko.js new file mode 100644 index 00000000..80c65640 --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/ko.js @@ -0,0 +1,2 @@ +// Korean (ko) +plupload.addI18n({"Stop Upload":"업로드 중지","Upload URL might be wrong or doesn't exist.":"업로드할 URL이 존재하지 않습니다.","tb":"tb","Size":"크기","Close":"닫기","Init error.":"초기화 오류.","Add files to the upload queue and click the start button.":"파일을 업로드 큐에 추가한 후 시작 버튼을 클릭하십시오.","Filename":"파일명","Image format either wrong or not supported.":"지원되지 않는 이미지 형식입니다.","Status":"상태","HTTP Error.":"HTTP 오류.","Start Upload":"업로드 시작","mb":"mb","kb":"kb","Duplicate file error.":"파일 중복 오류.","File size error.":"파일 크기 오류.","N/A":"N/A","gb":"gb","Error: Invalid file extension:":"오류: 허용되지 않은 확장자입니다.","Select files":"파일 선택","%s already present in the queue.":"%s 파일이 이미 대기열에 존재합니다.","File: %s":"파일: %s","b":"b","Uploaded %d/%d files":"%d / %d 파일 업로드 완료","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"업로드 가능한 파일의 수는 %d 입니다. 불필요한 파일은 삭제되었습니다.","%d files queued":"%d 파일이 추가됨","File: %s, size: %d, max file size: %d":"파일: %s, 크기: %d, 최대 파일 크기: %d","Drag files here.":"이곳에 파일을 드래그 하세요.","Runtime ran out of available memory.":"런타임 메모리가 부족합니다.","File count error.":"파일 갯수 오류.","File extension error.":"파일 확장자 오류.","Error: File too large:":"오류: 파일 크기가 너무 큽니다.","Add Files":"파일 추가"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/ku_IQ.js b/assets/javascripts/plupload/js/i18n/ku_IQ.js new file mode 100644 index 00000000..f3dd2506 --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/ku_IQ.js @@ -0,0 +1,2 @@ +// Kurdish (Iraq) (ku_IQ) +plupload.addI18n({"Stop Upload":"وەستانی بارکردن","Upload URL might be wrong or doesn't exist.":".بەستەری بارکراو نادروستە یان بەردەست نییە","tb":"تێرابایت","Size":"قەبارە","Close":"داخستن","Init error.":".هەڵەی ئامادەکردن","Add files to the upload queue and click the start button.":".زیادکردنی پەڕگەکان بۆ ڕیزی بارکردن و کرتەکردن لە دوگمەی دەستپێکردن","Filename":"ناوی پەڕگە","Image format either wrong or not supported.":".شێوازی وێنە هەڵەیە یان پاڵپشتی ناکرێت","Status":"ڕەوش","HTTP Error.":".HTTP هەڵەی","Start Upload":"دەستپێکردنی بارکردن","mb":"مێگابایت","kb":"کیلۆبایت","Duplicate file error.":".هەڵەی پەڕگەی دوبارە","File size error.":".هەڵەی قەبارەی پەڕگە","N/A":"بەردەست نییە","gb":"گێگابایت","Error: Invalid file extension:":":هەڵە: پاشگری پەڕگەی نادروست","Select files":"دیاریکردنی پەڕگەکان","%s already present in the queue.":".ئامادەیی هەیە لە ڕیز %s","File: %s":"%s :پەڕگە","b":"بایت","Uploaded %d/%d files":"پەڕگە بارکران %d/%d","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"بەشی بارکردن تەنها %d پەڕگە(کان) وەردەگرێت لەیەک کاتدا. پەڕگە زیادەکان .جیادەکرێنەوە","%d files queued":"پەڕگە ڕیزکران %d","File: %s, size: %d, max file size: %d":"پەڕگە: %s، قەبارە: %d، گەورەترین قەبارەی پەڕگە: %d","Drag files here.":".پەڕگەکان ڕاکێشە بۆ ئێرە","Runtime ran out of available memory.":"هەڵەی دەرچوون لە بیرگەی بەردەست.","File count error.":".هەڵەی ژماردنی پەڕگە","File extension error.":".هەڵەی پاشگری پەڕگە","Error: File too large:":":هەڵە: پەڕگەکە زۆر گەورەیە","Add Files":"زیادکردنی پەڕگەکان"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/lt.js b/assets/javascripts/plupload/js/i18n/lt.js new file mode 100644 index 00000000..b24e65b0 --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/lt.js @@ -0,0 +1,2 @@ +// Lithuanian (lt) +plupload.addI18n({"Stop Upload":"Stabdyti įkėlimą","Upload URL might be wrong or doesn't exist.":"Klaidinga arba neegzistuojanti įkėlimo nuoroda.","tb":"tb","Size":"Dydis","Close":"Uždaryti","Init error.":"Įkrovimo klaida.","Add files to the upload queue and click the start button.":"Pridėkite bylas į įkėlimo eilę ir paspauskite starto mygtuką.","Filename":"Bylos pavadinimas","Image format either wrong or not supported.":"Paveiksliuko formatas klaidingas arba nebepalaikomas.","Status":"Statusas","HTTP Error.":"HTTP klaida.","Start Upload":"Pradėti įkėlimą","mb":"mb","kb":"kb","Duplicate file error.":"Pasikartojanti byla.","File size error.":"Netinkamas bylos dydis.","N/A":"N/A","gb":"gb","Error: Invalid file extension:":"Klaida: Netinkamas bylos plėtinys:","Select files":"Žymėti bylas","%s already present in the queue.":"%s jau yra eilėje.","File: %s":"Byla: %s","b":"b","Uploaded %d/%d files":"Įkelta bylų: %d/%d","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Vienu metu galima įkelti tik %d bylas(ų). Papildomos bylos buvo pašalintos.","%d files queued":"%d bylų eilėje","File: %s, size: %d, max file size: %d":"Byla: %s, dydis: %d, galimas dydis: %d","Drag files here.":"Padėti bylas čia.","Runtime ran out of available memory.":"Išeikvota darbinė atmintis.","File count error.":"Netinkamas bylų kiekis.","File extension error.":"Netinkamas pletinys.","Error: File too large:":"Klaida: Byla per didelė:","Add Files":"Pridėti bylas"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/lv.js b/assets/javascripts/plupload/js/i18n/lv.js new file mode 100644 index 00000000..4e714641 --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/lv.js @@ -0,0 +1,2 @@ +// Latvian (lv) +plupload.addI18n({"Stop Upload":"Apturēt augšupielādi","Upload URL might be wrong or doesn't exist.":"Augšupielādes saite neeksistē vai ir nepareiza.","tb":"terabaiti","Size":"Izmērs","Close":"Aizvērt","Init error.":"Inicializācijas kļūda.","Add files to the upload queue and click the start button.":"Pievienojiet failus rindai un klikšķiniet uz pogas \"Sākt augšupielādi\".","Filename":"Faila nosaukums","Image format either wrong or not supported.":"Attēla formāts ir nepareizs vai arī netiek atbalstīts.","Status":"Statuss","HTTP Error.":"HTTP kļūda.","Start Upload":"Sākt augšupielādi","mb":"megabaiti","kb":"kilobaiti","Duplicate file error.":"Atkārtota faila kļūda","File size error.":"Faila izmēra kļūda.","N/A":"N/A","gb":"gigabaiti","Error: Invalid file extension:":"Kļūda: Nepareizs faila paplašinājums:","Select files":"Izvēlieties failus","%s already present in the queue.":"%s jau ir atrodams rindā.","File: %s":"Fails: %s","b":"baiti","Uploaded %d/%d files":"Augšupielādēti %d/%d faili","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Iespējams ielādēt tikai %d failus vienā reizē. Atlikušie faili netika pievienoti","%d files queued":"%d faili pievienoti rindai","File: %s, size: %d, max file size: %d":"Fails: %s, izmērs: %d, max faila izmērs: %d","Drag files here.":"Ievelciet failus šeit","Runtime ran out of available memory.":"Pietrūkst izmantojamās atmiņas.","File count error.":"Failu skaita kļūda","File extension error.":"Faila paplašinājuma kļūda.","Error: File too large:":"Kļūda: Fails pārāk liels:","Add Files":"Pievienot failus"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/ms.js b/assets/javascripts/plupload/js/i18n/ms.js new file mode 100644 index 00000000..dffb0ae1 --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/ms.js @@ -0,0 +1,2 @@ +// Malay (ms) +plupload.addI18n({"Stop Upload":"Berhenti Muat naik","Upload URL might be wrong or doesn't exist.":"URL muat naik mungkin salah atau tidak wujud.","tb":"tb","Size":"saiz","Close":"Tutup","Init error.":"Ralat perlaksanaan.","Add files to the upload queue and click the start button.":"Tambah fail ke dalam giliran muat naik dan klik butang Muat Naik.","Filename":"Nama fail","Image format either wrong or not supported.":"Format imej sama ada salah atau tidak disokong.","Status":"Status","HTTP Error.":"Ralat HTTP.","Start Upload":"Muat Naik","mb":"mb","kb":"kb","Duplicate file error.":"Ralat menggandakan fail.","File size error.":"Ralat saiz fail.","N/A":"N/A","gb":"gb","Error: Invalid file extension:":"Ralat: Sambungan fail tidak sah:","Select files":"Pilih fail","%s already present in the queue.":"%s telah ada dalam barisan.","File: %s":"Fail: %s","b":"b","Uploaded %d/%d files":"%d/%d telah dimuat naik","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Element muat naik hanya menerima %d fail(-fail) pada satu masa. Fail tambahan telah digugurkan.","%d files queued":"%d fail dalam barisan","File: %s, size: %d, max file size: %d":"Fail: %s, saiz: %d, saiz maks fail: %d","Drag files here.":"Seret fail ke sini.","Runtime ran out of available memory.":"Ruang ingatan masa larian tidak mencukupi.","File count error.":"Ralat bilangan fail.","File extension error.":"Ralat sambungan fail.","Error: File too large:":"Ralat: Fail terlalu bersar:","Add Files":"Tambah Fail"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/nl.js b/assets/javascripts/plupload/js/i18n/nl.js new file mode 100644 index 00000000..9ff3c1c6 --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/nl.js @@ -0,0 +1,2 @@ +// Dutch (nl) +plupload.addI18n({"Stop Upload":"Stop Upload","Upload URL might be wrong or doesn't exist.":"Upload URL is verkeerd of bestaat niet.","tb":"tb","Size":"Grootte","Close":"Sluiten","Init error.":"Initialisatie error.","Add files to the upload queue and click the start button.":"Voeg bestanden toe aan de wachtrij en druk op 'Start'.","Filename":"Bestandsnaam","Image format either wrong or not supported.":"bestandsextensie is verkeerd of niet ondersteund.","Status":"Status","HTTP Error.":"HTTP Error.","Start Upload":"Start Upload","mb":"mb","kb":"kb","Duplicate file error.":"Bestand bestaat al.","File size error.":"Bestandsgrootte error.","N/A":"Niet beschikbaar","gb":"gb","Error: Invalid file extension:":"Error: Ongeldige bestandsextensie:","Select files":"Selecteer bestand(en):","%s already present in the queue.":"%s is al aan de wachtrij toegevoegd.","File: %s":"Bestand: %s","b":"b","Uploaded %d/%d files":"%d/%d bestanden ge-upload","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Upload accepteert alleen %d bestand(en) tegelijk. Extra bestanden zijn verwijderd.","%d files queued":"%d bestand(en) in de wachtrij","File: %s, size: %d, max file size: %d":"Bestand: %s, grootte: %d, maximale bestandsgrootte: %d","Drag files here.":"Sleep bestanden hierheen.","Runtime ran out of available memory.":"Het maximum bruikbare geheugen is overschreden.","File count error.":"Teveel bestand(en) error.","File extension error.":"Ongeldig bestandsextensie.","Error: File too large:":"Error: Bestand te groot:","Add Files":"Bestand(en) toevoegen"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/pl.js b/assets/javascripts/plupload/js/i18n/pl.js new file mode 100644 index 00000000..05a5b295 --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/pl.js @@ -0,0 +1,2 @@ +// Polish (pl) +plupload.addI18n({"Stop Upload":"Przerwij transfer.","Upload URL might be wrong or doesn't exist.":"Adres URL moze bys nieprawidlowy lub moze nieistniec","tb":"tb","Size":"Rozmiar","Close":"Zamknij","Init error.":"Błąd inicjalizacji.","Add files to the upload queue and click the start button.":"Dodaj pliki i kliknij 'Rozpocznij transfer'.","Filename":"Nazwa pliku","Image format either wrong or not supported.":"Format zdjecia jest zly lub nieobslugiwany","Status":"Status","HTTP Error.":"Błąd HTTP.","Start Upload":"Wyslij","mb":"mb","kb":"kb","Duplicate file error.":"Blad: duplikacja pliku.","File size error.":"Plik jest zbyt duży.","N/A":"Nie dostępne","gb":"gb","Error: Invalid file extension:":"Blad: Nieprawidlowe rozszerzenie pliku:","Select files":"Wybierz pliki:","%s already present in the queue.":"%s juz wystepuje w kolejce.","File: %s":"Plik: %s","b":"b","Uploaded %d/%d files":"Wysłano %d/%d plików","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Upload element accepts only %d file(s) at a time. Extra files were stripped.","%d files queued":"%d plików w kolejce.","File: %s, size: %d, max file size: %d":"Plik: %s, rozmiar: %d, maksymalny rozmiar pliku: %d","Drag files here.":"Przeciągnij tu pliki","Runtime ran out of available memory.":"Wyczerpano pamiec RAM.","File count error.":"Blad liczenia pliku.","File extension error.":"Nieobsługiwany format pliku.","Error: File too large:":"Blad: Plik za duzy:","Add Files":"Dodaj pliki"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/pt_BR.js b/assets/javascripts/plupload/js/i18n/pt_BR.js new file mode 100644 index 00000000..dcaf6c6f --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/pt_BR.js @@ -0,0 +1,2 @@ +// Portuguese (Brazil) (pt_BR) +plupload.addI18n({"Stop Upload":"Parar o envio","Upload URL might be wrong or doesn't exist.":"URL de envio está errada ou não existe","tb":"TB","Size":"Tamanho","Close":"Fechar","Init error.":"Erro inicializando.","Add files to the upload queue and click the start button.":"Adicione os arquivos abaixo e clique no botão \"Iniciar o envio\".","Filename":"Nome do arquivo","Image format either wrong or not supported.":"Image format either wrong or not supported.","Status":"Status","HTTP Error.":"Erro HTTP.","Start Upload":"Iniciar o envio","mb":"MB","kb":"KB","Duplicate file error.":"Erro: Arquivo duplicado.","File size error.":"Tamanho de arquivo não permitido.","N/A":"N/D","gb":"GB","Error: Invalid file extension:":"Error: Invalid file extension:","Select files":"Escolha os arquivos","%s already present in the queue.":"%s já presentes na fila.","File: %s":"Arquivo: %s","b":"Bytes","Uploaded %d/%d files":"Enviado(s) %d/%d arquivo(s)","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Só são aceitos %d arquivos por vez. O que passou disso foi descartado.","%d files queued":"%d arquivo(s)","File: %s, size: %d, max file size: %d":"Arquivo: %s, Tamanho: %d , Tamanho Máximo do Arquivo: %d","Drag files here.":"Arraste os arquivos pra cá","Runtime ran out of available memory.":"Runtime ran out of available memory.","File count error.":"Erro na contagem dos arquivos","File extension error.":"Tipo de arquivo não permitido.","Error: File too large:":"Error: File too large:","Add Files":"Adicionar arquivo(s)"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/ro.js b/assets/javascripts/plupload/js/i18n/ro.js new file mode 100644 index 00000000..2ea3f06c --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/ro.js @@ -0,0 +1,2 @@ +// Romanian (ro) +plupload.addI18n({"Stop Upload":"Oprește încărcarea","Upload URL might be wrong or doesn't exist.":"Upload URL might be wrong or doesn't exist.","tb":"tb","Size":"Mărime","Close":"Închide","Init error.":"Eroare inițializare.","Add files to the upload queue and click the start button.":"Adaugă fișiere în lista apoi apasă butonul \"Începe încărcarea\".","Filename":"Nume fișier","Image format either wrong or not supported.":"Formatul de imagine ori este greșit ori nu este suportat.","Status":"Stare","HTTP Error.":"Eroare HTTP","Start Upload":"Începe încărcarea","mb":"mb","kb":"kb","Duplicate file error.":"Eroare duplicat fișier.","File size error.":"Eroare dimensiune fișier.","N/A":"N/A","gb":"gb","Error: Invalid file extension:":"Eroare: Extensia fișierului este invalidă:","Select files":"Selectează fișierele","%s already present in the queue.":"%s există deja în lista de așteptare.","File: %s":"Fișier: %s","b":"b","Uploaded %d/%d files":"Fișiere încărcate %d/%d","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Upload element accepts only %d file(s) at a time. Extra files were stripped.","%d files queued":"%d fișiere listate","File: %s, size: %d, max file size: %d":"Fișier: %s, mărime: %d, mărime maximă: %d","Drag files here.":"Trage aici fișierele.","Runtime ran out of available memory.":"Runtime ran out of available memory.","File count error.":"Eroare numărare fișiere.","File extension error.":"Eroare extensie fișier.","Error: File too large:":"Eroare: Fișierul este prea mare:","Add Files":"Adaugă fișiere"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/ru.js b/assets/javascripts/plupload/js/i18n/ru.js new file mode 100644 index 00000000..ae2470be --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/ru.js @@ -0,0 +1,2 @@ +// Russian (ru) +plupload.addI18n({"Stop Upload":"Остановить Загрузку","Upload URL might be wrong or doesn't exist.":"Адрес заргузки неправильный или он не существует.","tb":"тб","Size":"Размер","Close":"Закрыть","Init error.":"Ошибка инициализации.","Add files to the upload queue and click the start button.":"Добавьте файлы в очередь и нажмите кнопку \"Загрузить файлы\".","Filename":"Имя файла","Image format either wrong or not supported.":"Формат картинки неправильный или он не поддерживается.","Status":"Статус","HTTP Error.":"Ошибка HTTP.","Start Upload":"Начать загрузку","mb":"мб","kb":"кб","Duplicate file error.":"Такой файл уже присутствует в очереди.","File size error.":"Неправильный размер файла.","N/A":"N/A","gb":"гб","Error: Invalid file extension:":"Ошибка: У файла неправильное расширение:","Select files":"Выберите файлы","%s already present in the queue.":"%s уже присутствует в очереди.","File: %s":"Файл: %s","b":"б","Uploaded %d/%d files":"Загружено %d/%d файлов","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Загрузочный элемент за раз принимает только %d файл(ов). Лишние файлы были отброшены.","%d files queued":"В очереди %d файл(ов)","File: %s, size: %d, max file size: %d":"Файл: %s, размер: %d, макс. размер файла: %d","Drag files here.":"Перетащите файлы сюда.","Runtime ran out of available memory.":"Рабочая среда превысила лимит достуной памяти.","File count error.":"Слишком много файлов.","File extension error.":"Неправильное расширение файла.","Error: File too large:":"Ошибка: Файл слишком большой:","Add Files":"Добавьте файлы"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/sk.js b/assets/javascripts/plupload/js/i18n/sk.js new file mode 100644 index 00000000..18c9351c --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/sk.js @@ -0,0 +1,2 @@ +// Slovak (sk) +plupload.addI18n({"Stop Upload":"Zastaviť nahrávanie","Upload URL might be wrong or doesn't exist.":"URL pre nahratie nie je správna alebo neexistuje.","tb":"tb","Size":"Veľkosť","Close":"Zatvoriť","Init error.":"Chyba inicializácie.","Add files to the upload queue and click the start button.":"Pridajte súbory do zoznamu a potom spustite nahrávanie.","Filename":"Názov súboru","Image format either wrong or not supported.":"Formát obrázku je nesprávny alebo nie je podporovaný.","Status":"Stav","HTTP Error.":"HTTP Chyba.","Start Upload":"Spustiť nahrávanie","mb":"mb","kb":"kb","Duplicate file error.":"Duplicitný súbor.","File size error.":"Súbor je príliš veľký.","N/A":"N/A","gb":"gb","Error: Invalid file extension:":"Error: Nesprávny typ súboru:","Select files":"Vyberte súbory","%s already present in the queue.":"%s sa už nachádza v zozname.","File: %s":"Súbor: %s","b":"b","Uploaded %d/%d files":"Nahraných %d/%d súborov","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Upload element accepts only %d file(s) at a time. Extra files were stripped.","%d files queued":"%d súborov pridaných do zoznamu","File: %s, size: %d, max file size: %d":"Súbor: %s, veľkosť: %d, max. veľkosť súboru: %d","Drag files here.":"Sem pretiahnite súbory.","Runtime ran out of available memory.":"Runtime ran out of available memory.","File count error.":"Nesprávny počet súborov.","File extension error.":"Chybný typ súboru.","Error: File too large:":"Chyba: Súbor je príliš veľký:","Add Files":"Pridať súbory"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/sq.js b/assets/javascripts/plupload/js/i18n/sq.js new file mode 100644 index 00000000..921b3361 --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/sq.js @@ -0,0 +1,2 @@ +// Albanian (sq) +plupload.addI18n({"Stop Upload":"Ndalimi i ngarkimit","Upload URL might be wrong or doesn't exist.":"Ngarkimi i URL-s është i gabuar ose nuk ekziston.","tb":"TB","Size":"Madhësia","Close":"Mbyll","Init error.":"Init gabim.","Add files to the upload queue and click the start button.":"Mbas ngarkimit të dosjeve sipas rradhës duhet të klikoni butonin Start.","Filename":"Emri i dosjes","Image format either wrong or not supported.":"Formati i fotove është i keq ose nuk është i pranueshëm.","Status":"Statusi","HTTP Error.":"HTTP Gabim.","Start Upload":"Nisja e ngarkimit","mb":"MB","kb":"KB","Duplicate file error.":"Gabim i dublikimit të dosjes.","File size error.":"Gabim i madhësisë së dosjes.","N/A":"Nuk është në dispozicion","gb":"GB","Error: Invalid file extension:":"Gabim: përhapja e llojit të dosjes është e pavlefshme:","Select files":"Zhgjidhni dosjet","%s already present in the queue.":"%s tashmë ekziston në list.","File: %s":"Dosje: %s","b":"B","Uploaded %d/%d files":"Dosjet e ngarkuara: %d/%d","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Ngarkimi pranon njëherësh vetëm %d dosje, dosjet e tjera nuk do të jenë të ngarkuara.","%d files queued":"Dosja %d e vendosur në rradhë","File: %s, size: %d, max file size: %d":"Dosje: %s, madhësia: %d, madhësia maximale e dosjes: %d","Drag files here.":"Këtu mund të tërhiqni dosjet","Runtime ran out of available memory.":"Memoria që ishte në dispozicion ka mbaruar.","File count error.":"Gabim në lidhje me numrin e dosjeve.","File extension error.":"Gabim i zgjerimit të dosjes.","Error: File too large:":"Gabim: dosja është shumë e madhe:","Add Files":"Shtoni dosjet"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/sr.js b/assets/javascripts/plupload/js/i18n/sr.js new file mode 100644 index 00000000..bb9581c8 --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/sr.js @@ -0,0 +1,2 @@ +// Serbian (sr) +plupload.addI18n({"Stop Upload":"Stop Upload","Upload URL might be wrong or doesn't exist.":"Upload URL might be wrong or doesn't exist.","tb":"","Size":"Veličina","Close":"Close","Init error.":"Init error.","Add files to the upload queue and click the start button.":"Dodajte fajlove u listu i kliknite na dugme Start.","Filename":"Naziv fajla","Image format either wrong or not supported.":"Image format either wrong or not supported.","Status":"Status","HTTP Error.":"HTTP Error.","Start Upload":"Počni upload","mb":"","kb":"","Duplicate file error.":"","File size error.":"File size error.","N/A":"N/A","gb":"","Error: Invalid file extension:":"Error: Invalid file extension:","Select files":"Izaberite fajlove","%s already present in the queue.":"","File: %s":"File: %s","b":"","Uploaded %d/%d files":"Snimljeno %d/%d fajlova","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Upload element accepts only %d file(s) at a time. Extra files were stripped.","%d files queued":"%d files queued","File: %s, size: %d, max file size: %d":"","Drag files here.":"Prevucite fajlove ovde.","Runtime ran out of available memory.":"Runtime ran out of available memory.","File count error.":"File count error.","File extension error.":"File extension error.","Error: File too large:":"Error: File too large:","Add Files":"Dodaj fajlove"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/sv.js b/assets/javascripts/plupload/js/i18n/sv.js new file mode 100644 index 00000000..f25ed818 --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/sv.js @@ -0,0 +1,2 @@ +// Swedish (sv) +plupload.addI18n({"Stop Upload":"Avbryt","Upload URL might be wrong or doesn't exist.":"URL:en va fel eller existerar inte.","tb":"tb","Size":"Storlek","Close":"Stäng","Init error.":"Problem vid initialisering.","Add files to the upload queue and click the start button.":"Lägg till filer till kön och tryck på start.","Filename":"Filnamn","Image format either wrong or not supported.":"Bildformatet är fel eller så finns inte stöd för det.","Status":"Status","HTTP Error.":"HTTP problem.","Start Upload":"Starta","mb":"mb","kb":"kb","Duplicate file error.":"Problem med dubbla filer.","File size error.":"Problem med filstorlek.","N/A":"N/A","gb":"gb","Error: Invalid file extension:":"Fel: Ej godkänd filändelse.","Select files":"Välj filer","%s already present in the queue.":"%s är redan tillagd.","File: %s":"Fil: %s","b":"b","Uploaded %d/%d files":"Laddade upp %d/%d filer","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Det går bara lägga till %d filer åt gången, allt utöver detta togs bort.","%d files queued":"%d filer i kö","File: %s, size: %d, max file size: %d":"Fil: %s, storlek: %d, max storlek: %d","Drag files here.":"Dra filer hit","Runtime ran out of available memory.":"Slut på minne.","File count error.":"Räknefel.","File extension error.":"Problem med filändelse.","Error: File too large:":"Fel: Filen är för stor:","Add Files":"Lägg till"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/th_TH.js b/assets/javascripts/plupload/js/i18n/th_TH.js new file mode 100644 index 00000000..53b995e6 --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/th_TH.js @@ -0,0 +1,2 @@ +// Thai (Thailand) (th_TH) +plupload.addI18n({"Stop Upload":"หยุดอัพโหลด","Upload URL might be wrong or doesn't exist.":"URL ของการอัพโหลดอาจจะผิดหรือไม่มีอยู่","tb":"เทราไบต์","Size":"ขนาด","Close":"ปิด","Init error.":"Init เกิดข้อผิดพลาด","Add files to the upload queue and click the start button.":"เพิ่มไฟล์ไปยังคิวอัพโหลดและคลิกที่ปุ่มเริ่ม","Filename":"ชื่อไฟล์","Image format either wrong or not supported.":"รูปแบบรูปภาพทั้งสองผิดหรือไม่รองรับ","Status":"สถานะ","HTTP Error.":"HTTP เกิดข้อผิดพลาด","Start Upload":"เริ่มอัพโหลด","mb":"เมกะไบต์","kb":"กิโลไบต์","Duplicate file error.":"ไฟล์ที่ซ้ำกันเกิดข้อผิดพลาด","File size error.":"ขนาดไฟล์เกิดข้อผิดพลาด","N/A":"N/A","gb":"กิกะไบต์","Error: Invalid file extension:":"ข้อผิดพลาด: นามสกุลไฟล์ไม่ถูกต้อง:","Select files":"เลือกไฟล์","%s already present in the queue.":"%s อยู่ในคิวแล้ว","File: %s":"ไฟล์: %s","b":"ไบต์","Uploaded %d/%d files":"อัพโหลดแล้ว %d/%d ไฟล์","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"การอัพโหลดจะยอมรับเฉพาะ %d ไฟล์(s) ในช่วงเวลาเดียวกัน เมื่อไฟล์พิเศษถูกปลดออก","%d files queued":"%d ไฟล์ที่อยู่ในคิว","File: %s, size: %d, max file size: %d":"ไฟล์: %s, ขนาด: %d, ขนาดไฟล์สูงสุด: %d","Drag files here.":"ลากไฟล์มาที่นี่","Runtime ran out of available memory.":"รันไทม์วิ่งออกมาจากหน่วยความจำ","File count error.":"การนับไฟล์เกิดข้อผิดพลาด","File extension error.":"นามสกุลไฟล์เกิดข้อผิดพลาด","Error: File too large:":"ข้อผิดพลาด: ไฟล์ใหญ่เกินไป:","Add Files":"เพิ่มไฟล์"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/tr.js b/assets/javascripts/plupload/js/i18n/tr.js new file mode 100644 index 00000000..47fec4ea --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/tr.js @@ -0,0 +1,2 @@ +// Turkish (tr) +plupload.addI18n({"Stop Upload":"Yüklemeyi durdur","Upload URL might be wrong or doesn't exist.":"URL yok ya da hatalı olabilir.","tb":"tb","Size":"Boyut","Close":"Kapat","Init error.":"Başlangıç hatası.","Add files to the upload queue and click the start button.":"Dosyaları kuyruğa ekleyin ve başlatma butonuna tıklayın.","Filename":"Dosya adı","Image format either wrong or not supported.":"Resim formatı yanlış ya da desteklenmiyor.","Status":"Durum","HTTP Error.":"HTTP hatası.","Start Upload":"Yüklemeyi başlat","mb":"mb","kb":"kb","Duplicate file error.":"Yinelenen dosya hatası.","File size error.":"Dosya boyutu hatası.","N/A":"-","gb":"gb","Error: Invalid file extension:":"Hata: Geçersiz dosya uzantısı:","Select files":"Dosyaları seç","%s already present in the queue.":"%s kuyrukta zaten mevcut.","File: %s":"Dosya: %s","b":"bayt","Uploaded %d/%d files":"%d/%d dosya yüklendi","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Yükleme elemanı aynı anda %d dosya kabul eder. Ekstra dosyalar işleme konulmaz.","%d files queued":"Kuyrukta %d dosya var.","File: %s, size: %d, max file size: %d":"Dosya: %s, boyut: %d, maksimum dosya boyutu: %d","Drag files here.":"Dosyaları buraya bırakın.","Runtime ran out of available memory.":"İşlem için yeterli bellek yok.","File count error.":"Dosya sayım hatası.","File extension error.":"Dosya uzantısı hatası.","Error: File too large:":"Hata: Dosya çok büyük:","Add Files":"Dosya ekle"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/uk_UA.js b/assets/javascripts/plupload/js/i18n/uk_UA.js new file mode 100644 index 00000000..726bf94c --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/uk_UA.js @@ -0,0 +1,2 @@ +// Ukrainian (Ukraine) (uk_UA) +plupload.addI18n({"Stop Upload":"Зупинити завантаження","Upload URL might be wrong or doesn't exist.":"Адреса завантаження неправильна або не існує.","tb":"тб","Size":"Розмір","Close":"Закрити","Init error.":"Помилка ініціалізації.","Add files to the upload queue and click the start button.":"Додайте файли в чергу та натисніть кнопку \"Завантажити файли\".","Filename":"Назва файлу","Image format either wrong or not supported.":"Формат картинки не правильний або не підтримується.","Status":"Статус","HTTP Error.":"Помилка HTTP.","Start Upload":"Почати завантаження","mb":"мб","kb":"кб","Duplicate file error.":"Такий файл вже присутній в черзі.","File size error.":"Неправильний розмір файлу.","N/A":"Н/Д","gb":"гб","Error: Invalid file extension:":"Помилка: У файлу неправильне розширення:","Select files":"Оберіть файли","%s already present in the queue.":"%s вже присутній у черзі.","File: %s":"Файл: %s","b":"б","Uploaded %d/%d files":"Завантажено %d/%d файлів","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Завантажувальний елемент приймає лише %d файл(ів) одночасно. Зайві файли було відкинуто.","%d files queued":"В черзі %d файл(ів)","File: %s, size: %d, max file size: %d":"Файл: %s, розмір: %d, макс. розмір файлу: %d","Drag files here.":"Перетягніть файли сюди.","Runtime ran out of available memory.":"Робоче середовище перевищило ліміт доступної пам'яті.","File count error.":"Занадто багато файлів.","File extension error.":"Неправильне розширення файлу.","Error: File too large:":"Помилка: Файл занадто великий:","Add Files":"Додати файли"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/vi.js b/assets/javascripts/plupload/js/i18n/vi.js new file mode 100644 index 00000000..a0cfadcb --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/vi.js @@ -0,0 +1,2 @@ +// Vietnamese (vi) +plupload.addI18n({"Stop Upload":"Dừng","Upload URL might be wrong or doesn't exist.":"Đường dẫn URL tải lên không đúng hoặc không tồn tại.","tb":"TB","Size":"Dung lượng","Close":"Đóng","Init error.":"Lỗi khởi tạo","Add files to the upload queue and click the start button.":"Thêm tập tin để tải lên và bấm vào nút bắt đầu","Filename":"Tên tập tin","Image format either wrong or not supported.":"Địng dạng hình ảnh không đúng hoặc không được hỗ trợ.","Status":"Trạng thái","HTTP Error.":"Lỗi HTTP","Start Upload":"Bắt đầu","mb":"MB","kb":"KB","Duplicate file error.":"Tập tin đã tồn tại","File size error.":"Lỗi dung lượng tập tin","N/A":"Chưa có thông tin","gb":"GB","Error: Invalid file extension:":"Lỗi: Định dạng tập tin không xác định:","Select files":"Chọn tập tin","%s already present in the queue.":"%s đã có trong danh sách chờ tải lên","File: %s":"Tập tin: %s","b":"B","Uploaded %d/%d files":"Đã tải lên %d/%d tập tin","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Chỉ có thể tải lên (%d) tập tin cùng một lúc. Những tập tin còn lại đã bị huỷ bỏ.","%d files queued":"%d tập tin trong danh sách chờ","File: %s, size: %d, max file size: %d":"Tập tin: %s, dung lượng %d, dung lượng tối đa: %d","Drag files here.":"Ném vào đây","Runtime ran out of available memory.":"Thời gian chạy vượt quá giới hạn bộ nhớ cho phép.","File count error.":"Lỗi đếm tập tin","File extension error.":"Lỗi định dạng tập tin","Error: File too large:":"Lỗi: Dung lượng tập tin quá lớn:","Add Files":"Thêm tập tin"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/zh_CN.js b/assets/javascripts/plupload/js/i18n/zh_CN.js new file mode 100644 index 00000000..f48e0c43 --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/zh_CN.js @@ -0,0 +1,2 @@ +// Chinese (China) (zh_CN) +plupload.addI18n({"Stop Upload":"停止上传","Upload URL might be wrong or doesn't exist.":"上传的URL可能是错误的或不存在。","tb":"tb","Size":"大小","Close":"关闭","Init error.":"初始化错误。","Add files to the upload queue and click the start button.":"将文件添加到上传队列,然后点击”开始上传“按钮。","Filename":"文件名","Image format either wrong or not supported.":"图片格式错误或者不支持。","Status":"状态","HTTP Error.":"HTTP 错误。","Start Upload":"开始上传","mb":"mb","kb":"kb","Duplicate file error.":"重复文件错误。","File size error.":"文件大小错误。","N/A":"N/A","gb":"gb","Error: Invalid file extension:":"错误:无效的文件扩展名:","Select files":"选择文件","%s already present in the queue.":"%s 已经在当前队列里。","File: %s":"文件: %s","b":"b","Uploaded %d/%d files":"已上传 %d/%d 个文件","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"每次只接受同时上传 %d 个文件,多余的文件将会被删除。","%d files queued":"%d 个文件加入到队列","File: %s, size: %d, max file size: %d":"文件: %s, 大小: %d, 最大文件大小: %d","Drag files here.":"把文件拖到这里。","Runtime ran out of available memory.":"运行时已消耗所有可用内存。","File count error.":"文件数量错误。","File extension error.":"文件扩展名错误。","Error: File too large:":"错误: 文件太大:","Add Files":"增加文件"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/js/i18n/zh_TW.js b/assets/javascripts/plupload/js/i18n/zh_TW.js new file mode 100644 index 00000000..2deebe2d --- /dev/null +++ b/assets/javascripts/plupload/js/i18n/zh_TW.js @@ -0,0 +1,2 @@ +// Chinese (Taiwan) (zh_TW) +plupload.addI18n({"Stop Upload":"停止上傳","Upload URL might be wrong or doesn't exist.":"檔案URL可能有誤或者不存在。","tb":"tb","Size":"大小","Close":"關閉","Init error.":"初始化錯誤。","Add files to the upload queue and click the start button.":"將檔案加入上傳序列,然後點選”開始上傳“按鈕。","Filename":"檔案名稱","Image format either wrong or not supported.":"圖片格式錯誤或者不支援。","Status":"狀態","HTTP Error.":"HTTP 錯誤。","Start Upload":"開始上傳","mb":"mb","kb":"kb","Duplicate file error.":"錯誤:檔案重複。","File size error.":"錯誤:檔案大小超過限制。","N/A":"N/A","gb":"gb","Error: Invalid file extension:":"錯誤:不接受的檔案格式:","Select files":"選擇檔案","%s already present in the queue.":"%s 已經存在目前的檔案序列。","File: %s":"檔案: %s","b":"b","Uploaded %d/%d files":"已上傳 %d/%d 個文件","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"每次只能上傳 %d 個檔案,超過限制數量的檔案將被忽略。","%d files queued":"%d 個檔案加入到序列","File: %s, size: %d, max file size: %d":"檔案: %s, 大小: %d, 檔案大小上限: %d","Drag files here.":"把檔案拖曳到這裡。","Runtime ran out of available memory.":"執行時耗盡了所有可用的記憶體。","File count error.":"檔案數量錯誤。","File extension error.":"檔案副檔名錯誤。","Error: File too large:":"錯誤: 檔案大小太大:","Add Files":"增加檔案"}); \ No newline at end of file diff --git a/assets/javascripts/plupload/jquery.plupload.queue/css/jquery.plupload.queue.css b/assets/javascripts/plupload/js/jquery.plupload.queue/css/jquery.plupload.queue.css similarity index 95% rename from assets/javascripts/plupload/jquery.plupload.queue/css/jquery.plupload.queue.css rename to assets/javascripts/plupload/js/jquery.plupload.queue/css/jquery.plupload.queue.css index 4f377e22..6bfe0e5e 100644 --- a/assets/javascripts/plupload/jquery.plupload.queue/css/jquery.plupload.queue.css +++ b/assets/javascripts/plupload/js/jquery.plupload.queue/css/jquery.plupload.queue.css @@ -2,6 +2,10 @@ Plupload ------------------------------------------------------------------- */ +.plupload_wrapper * { + box-sizing: content-box; +} + .plupload_button { display: -moz-inline-box; /* FF < 3*/ display: inline-block; @@ -107,7 +111,11 @@ } .plupload_file_size, .plupload_file_status, .plupload_file_action {text-align: right;} -.plupload_filelist .plupload_file_name {width: 205px} +.plupload_filelist .plupload_file_name { + width: 205px; + white-space: nowrap; + text-overflow: ellipsis; +} .plupload_file_action { float: right; diff --git a/assets/javascripts/plupload/jquery.plupload.queue/img/backgrounds.gif b/assets/javascripts/plupload/js/jquery.plupload.queue/img/backgrounds.gif similarity index 100% rename from assets/javascripts/plupload/jquery.plupload.queue/img/backgrounds.gif rename to assets/javascripts/plupload/js/jquery.plupload.queue/img/backgrounds.gif diff --git a/assets/javascripts/plupload/jquery.plupload.queue/img/buttons-disabled.png b/assets/javascripts/plupload/js/jquery.plupload.queue/img/buttons-disabled.png similarity index 100% rename from assets/javascripts/plupload/jquery.plupload.queue/img/buttons-disabled.png rename to assets/javascripts/plupload/js/jquery.plupload.queue/img/buttons-disabled.png diff --git a/assets/javascripts/plupload/jquery.plupload.queue/img/buttons.png b/assets/javascripts/plupload/js/jquery.plupload.queue/img/buttons.png similarity index 100% rename from assets/javascripts/plupload/jquery.plupload.queue/img/buttons.png rename to assets/javascripts/plupload/js/jquery.plupload.queue/img/buttons.png diff --git a/assets/javascripts/plupload/jquery.plupload.queue/img/delete.gif b/assets/javascripts/plupload/js/jquery.plupload.queue/img/delete.gif similarity index 100% rename from assets/javascripts/plupload/jquery.plupload.queue/img/delete.gif rename to assets/javascripts/plupload/js/jquery.plupload.queue/img/delete.gif diff --git a/assets/javascripts/plupload/jquery.plupload.queue/img/done.gif b/assets/javascripts/plupload/js/jquery.plupload.queue/img/done.gif similarity index 100% rename from assets/javascripts/plupload/jquery.plupload.queue/img/done.gif rename to assets/javascripts/plupload/js/jquery.plupload.queue/img/done.gif diff --git a/assets/javascripts/plupload/jquery.plupload.queue/img/error.gif b/assets/javascripts/plupload/js/jquery.plupload.queue/img/error.gif similarity index 100% rename from assets/javascripts/plupload/jquery.plupload.queue/img/error.gif rename to assets/javascripts/plupload/js/jquery.plupload.queue/img/error.gif diff --git a/assets/javascripts/plupload/jquery.plupload.queue/img/throbber.gif b/assets/javascripts/plupload/js/jquery.plupload.queue/img/throbber.gif similarity index 100% rename from assets/javascripts/plupload/jquery.plupload.queue/img/throbber.gif rename to assets/javascripts/plupload/js/jquery.plupload.queue/img/throbber.gif diff --git a/assets/javascripts/plupload/jquery.plupload.queue/img/transp50.png b/assets/javascripts/plupload/js/jquery.plupload.queue/img/transp50.png similarity index 100% rename from assets/javascripts/plupload/jquery.plupload.queue/img/transp50.png rename to assets/javascripts/plupload/js/jquery.plupload.queue/img/transp50.png diff --git a/assets/javascripts/plupload/jquery.plupload.queue/jquery.plupload.queue.js b/assets/javascripts/plupload/js/jquery.plupload.queue/jquery.plupload.queue.js similarity index 59% rename from assets/javascripts/plupload/jquery.plupload.queue/jquery.plupload.queue.js rename to assets/javascripts/plupload/js/jquery.plupload.queue/jquery.plupload.queue.js index cd5d66fc..6894ecde 100644 --- a/assets/javascripts/plupload/jquery.plupload.queue/jquery.plupload.queue.js +++ b/assets/javascripts/plupload/js/jquery.plupload.queue/jquery.plupload.queue.js @@ -8,10 +8,72 @@ * Contributing: http://www.plupload.com/contributing */ -// JSLint defined globals -/*global plupload:false, jQuery:false, alert:false */ +/* global jQuery:true, alert:true */ -(function($) { +/** +jQuery based implementation of the Plupload API - multi-runtime file uploading API. + +To use the widget you must include _jQuery_. It is not meant to be extended in any way and is provided to be +used as it is. + +@example + +

+

Your browser doesn't have Flash, Silverlight or HTML5 support.

+
+ + + +@example + // Retrieving a reference to plupload.Uploader object + var uploader = $('#uploader').pluploadQueue(); + + uploader.bind('FilesAdded', function() { + + // Autostart + setTimeout(uploader.start, 1); // "detach" from the main thread + }); + +@class pluploadQueue +@constructor +@param {Object} settings For detailed information about each option check documentation. + @param {String} settings.url URL of the server-side upload handler. + @param {Number|String} [settings.chunk_size=0] Chunk size in bytes to slice the file into. Shorcuts with b, kb, mb, gb, tb suffixes also supported. `e.g. 204800 or "204800b" or "200kb"`. By default - disabled. + @param {String} [settings.file_data_name="file"] Name for the file field in Multipart formated message. + @param {Array} [settings.filters=[]] Set of file type filters, each one defined by hash of title and extensions. `e.g. {title : "Image files", extensions : "jpg,jpeg,gif,png"}`. Dispatches `plupload.FILE_EXTENSION_ERROR` + @param {String} [settings.flash_swf_url] URL of the Flash swf. + @param {Object} [settings.headers] Custom headers to send with the upload. Hash of name/value pairs. + @param {Number|String} [settings.max_file_size] Maximum file size that the user can pick, in bytes. Optionally supports b, kb, mb, gb, tb suffixes. `e.g. "10mb" or "1gb"`. By default - not set. Dispatches `plupload.FILE_SIZE_ERROR`. + @param {Number} [settings.max_retries=0] How many times to retry the chunk or file, before triggering Error event. + @param {Boolean} [settings.multipart=true] Whether to send file and additional parameters as Multipart formated message. + @param {Object} [settings.multipart_params] Hash of key/value pairs to send with every file upload. + @param {Boolean} [settings.multi_selection=true] Enable ability to select multiple files at once in file dialog. + @param {Boolean} [settings.prevent_duplicates=false] Do not let duplicates into the queue. Dispatches `plupload.FILE_DUPLICATE_ERROR`. + @param {String|Object} [settings.required_features] Either comma-separated list or hash of required features that chosen runtime should absolutely possess. + @param {Object} [settings.resize] Enable resizng of images on client-side. Applies to `image/jpeg` and `image/png` only. `e.g. {width : 200, height : 200, quality : 90, crop: true}` + @param {Number} [settings.resize.width] If image is bigger, it will be resized. + @param {Number} [settings.resize.height] If image is bigger, it will be resized. + @param {Number} [settings.resize.quality=90] Compression quality for jpegs (1-100). + @param {Boolean} [settings.resize.crop=false] Whether to crop images to exact dimensions. By default they will be resized proportionally. + @param {String} [settings.runtimes="html5,flash,silverlight,html4"] Comma separated list of runtimes, that Plupload will try in turn, moving to the next if previous fails. + @param {String} [settings.silverlight_xap_url] URL of the Silverlight xap. + @param {Boolean} [settings.unique_names=false] If true will generate unique filenames for uploaded files. + + @param {Boolean} [settings.dragdrop=true] Enable ability to add file to the queue by drag'n'dropping them from the desktop. + @param {Boolean} [settings.rename=false] Enable ability to rename files in the queue. + @param {Boolean} [settings.multiple_queues=true] Re-activate the widget after each upload procedure. +*/ +;(function($, o) { var uploaders = {}; function _(str) { @@ -53,8 +115,8 @@ '