uploader 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/MIT-LICENSE +20 -0
- data/README.rdoc +275 -0
- data/Rakefile +66 -0
- data/TODO +2 -0
- data/VERSION +1 -0
- data/app/controllers/uploader/uploads_controller.rb +122 -0
- data/app/helpers/uploader_helper.rb +17 -0
- data/app/views/uploads/_swf_javascript.html.erb +63 -0
- data/app/views/uploads/_swf_upload.html.erb +32 -0
- data/config/uploader_routes.rb +3 -0
- data/db/migrate/20090517040220_create_uploads.rb +38 -0
- data/lib/active_record/acts/uploader_upload.rb +235 -0
- data/lib/uploader/exceptions.rb +5 -0
- data/lib/uploader/initialize_routes.rb +8 -0
- data/lib/uploader/middleware/flash_session_cookie_middleware.rb +18 -0
- data/lib/uploader/mime_type_groups.rb +18 -0
- data/lib/uploader/tasks.rb +36 -0
- data/lib/uploader.rb +24 -0
- data/locales/ar.yml +17 -0
- data/locales/bg.yml +17 -0
- data/locales/ca.yml +17 -0
- data/locales/cs.yml +17 -0
- data/locales/da.yml +17 -0
- data/locales/de.yml +17 -0
- data/locales/el.yml +17 -0
- data/locales/en.yml +16 -0
- data/locales/es.yml +17 -0
- data/locales/fr.yml +17 -0
- data/locales/it.yml +17 -0
- data/locales/iw.yml +17 -0
- data/locales/ja.yml +17 -0
- data/locales/ko.yml +17 -0
- data/locales/lt.yml +17 -0
- data/locales/lv.yml +17 -0
- data/locales/nl.yml +17 -0
- data/locales/no.yml +18 -0
- data/locales/pl.yml +17 -0
- data/locales/pt.yml +17 -0
- data/locales/ro.yml +17 -0
- data/locales/ru.yml +17 -0
- data/locales/sk.yml +17 -0
- data/locales/sl.yml +17 -0
- data/locales/sr.yml +17 -0
- data/locales/sv.yml +17 -0
- data/locales/tl.yml +17 -0
- data/locales/uk.yml +17 -0
- data/locales/vi.yml +17 -0
- data/locales/zh-CN.yml +17 -0
- data/locales/zh-TW.yml +17 -0
- data/locales/zh.yml +17 -0
- data/pkg/uploader-0.1.0.gem +0 -0
- data/pkg/uploader-0.1.1.gem +0 -0
- data/pkg/uploader-0.1.2.gem +0 -0
- data/public/images/SWFUploadButton.png +0 -0
- data/public/images/file_icons/excel.gif +0 -0
- data/public/images/file_icons/file.gif +0 -0
- data/public/images/file_icons/mp3.gif +0 -0
- data/public/images/file_icons/pdf.gif +0 -0
- data/public/images/file_icons/text.gif +0 -0
- data/public/images/file_icons/word.gif +0 -0
- data/public/javascripts/swfupload/fileprogress.js +151 -0
- data/public/javascripts/swfupload/handlers.js +206 -0
- data/public/javascripts/swfupload/swfupload.cookies.js +53 -0
- data/public/javascripts/swfupload/swfupload.js +945 -0
- data/public/javascripts/swfupload/swfupload.queue.js +77 -0
- data/public/javascripts/swfupload/swfupload.swfobject.js +110 -0
- data/public/stylesheets/swfupload.css +26 -0
- data/public/swf/swfupload.swf +0 -0
- data/rails/init.rb +10 -0
- data/tasks/rails.rake +2 -0
- data/test/test_helper.rb +3 -0
- data/test/unit/upload_test.rb +5 -0
- data/uninstall.rb +0 -0
- data/uploader.gemspec +127 -0
- metadata +128 -0
@@ -0,0 +1,235 @@
|
|
1
|
+
module ActiveRecord
|
2
|
+
module Acts #:nodoc:
|
3
|
+
|
4
|
+
module UploaderUpload #:nodoc:
|
5
|
+
def self.included(base)
|
6
|
+
base.extend(ClassMethods)
|
7
|
+
end
|
8
|
+
|
9
|
+
module ClassMethods
|
10
|
+
|
11
|
+
# acts_as_uploader requires an option for :has_attached_file. These values will be passed to paperclip.
|
12
|
+
# i.e.
|
13
|
+
# acts_as_uploader :has_attached_file => {
|
14
|
+
# :url => "/uploads/:class/:id/:style_:basename.:extension",
|
15
|
+
# :path => ":rails_root/public/uploads/:class/:id/:style_:basename.:extension",
|
16
|
+
# :styles => { :icon => "30x30!", :thumb => "100>", :small => "150>", :medium => "300>", :large => "660>"},
|
17
|
+
# :default_url => "/images/profile_default.jpg" }
|
18
|
+
def acts_as_uploader(options)
|
19
|
+
|
20
|
+
#Named scopes
|
21
|
+
named_scope :newest_first, :order => "created_at DESC"
|
22
|
+
named_scope :alphabetic, :order => "filename DESC"
|
23
|
+
named_scope :recent, :order => "created_at DESC"
|
24
|
+
named_scope :public, :conditions => 'is_public = true'
|
25
|
+
named_scope :images, :conditions => "local_content_type IN (#{Uploader::MimeTypeGroups::IMAGE_TYPES.collect{|type| "'#{type}'"}.join(',')})"
|
26
|
+
named_scope :documents, :conditions => "local_content_type IN (#{(Uploader::MimeTypeGroups::WORD_TYPES + Uploader::MimeTypeGroups::EXCEL_TYPES + Uploader::MimeTypeGroups::PDF_TYPES).collect{|type| "'#{type}'"}.join(',')})"
|
27
|
+
named_scope :files, :conditions => "local_content_type NOT IN (#{Uploader::MimeTypeGroups::IMAGE_TYPES.collect{|type| "'#{type}'"}.join(',')})"
|
28
|
+
named_scope :since, lambda { |*args| { :conditions => ["created_at > ?", (args.first || 7.days.ago.to_s(:db)) ]} }
|
29
|
+
named_scope :pending_s3_migration, lambda {
|
30
|
+
{ :conditions => ["remote_file_name IS NULL AND created_at <= ?", 20.minutes.ago.to_s(:db)],
|
31
|
+
:order => 'created_at DESC',
|
32
|
+
:limit => 1 }
|
33
|
+
}
|
34
|
+
|
35
|
+
# Paperclip
|
36
|
+
has_attached_file :local, options[:has_attached_file].merge(:storage => :filesystem) # Override any storage settings. This one has to be local.
|
37
|
+
if options[:enable_s3] == true
|
38
|
+
has_attached_file :remote, options[:has_attached_file]
|
39
|
+
end
|
40
|
+
|
41
|
+
|
42
|
+
belongs_to :uploadable, :polymorphic => true
|
43
|
+
belongs_to :creator, :class_name => 'User', :foreign_key => 'creator_id'
|
44
|
+
|
45
|
+
class_eval <<-EOV
|
46
|
+
validates_attachment_size :local, :less_than => 10.megabytes
|
47
|
+
before_post_process :transliterate_file_name
|
48
|
+
before_create :add_width_and_height
|
49
|
+
|
50
|
+
# prevents a user from submitting a crafted form that bypasses activation
|
51
|
+
attr_protected :creator_id, :uploadable_id, :uploadable_type
|
52
|
+
EOV
|
53
|
+
|
54
|
+
include ActiveRecord::Acts::UploaderUpload::InstanceMethods
|
55
|
+
extend ActiveRecord::Acts::UploaderUpload::SingletonMethods
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
# class methods
|
60
|
+
module SingletonMethods
|
61
|
+
|
62
|
+
end
|
63
|
+
|
64
|
+
# All the methods available to a record that has had <tt>acts_as_uploader</tt> specified.
|
65
|
+
module InstanceMethods
|
66
|
+
|
67
|
+
def file
|
68
|
+
local_file_name ? local : remote
|
69
|
+
end
|
70
|
+
|
71
|
+
def file_name
|
72
|
+
remote_file_name || local_file_name
|
73
|
+
end
|
74
|
+
|
75
|
+
def send_to_remote
|
76
|
+
if local_file_name
|
77
|
+
self.remote = local.to_file
|
78
|
+
if self.save and remote.original_filename and remote.exists?
|
79
|
+
self.local = nil
|
80
|
+
self.save
|
81
|
+
else
|
82
|
+
false
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
def swfupload_local=(filedata)
|
88
|
+
filedata.content_type = MIME::Types.type_for(filedata.original_filename)[0].to_s
|
89
|
+
self.local = filedata
|
90
|
+
end
|
91
|
+
|
92
|
+
def is_image?
|
93
|
+
Uploader::MimeTypeGroups::IMAGE_TYPES.include?(self.local_content_type)
|
94
|
+
end
|
95
|
+
|
96
|
+
def is_mp3?
|
97
|
+
Uploader::MimeTypeGroups::MP3_TYPES.include?(self.local_content_type)
|
98
|
+
end
|
99
|
+
|
100
|
+
def is_excel?
|
101
|
+
Uploader::MimeTypeGroups::EXCEL_TYPES.include?(self.local_content_type)
|
102
|
+
end
|
103
|
+
|
104
|
+
def is_pdf?
|
105
|
+
Uploader::MimeTypeGroups::PDF_TYPES.include?(self.local_content_type)
|
106
|
+
end
|
107
|
+
|
108
|
+
def is_word?
|
109
|
+
Uploader::MimeTypeGroups::WORD_TYPES.include?(self.local_content_type)
|
110
|
+
end
|
111
|
+
|
112
|
+
def is_text?
|
113
|
+
Uploader::MimeTypeGroups::TEXT_TYPES.include?(self.local_content_type)
|
114
|
+
end
|
115
|
+
|
116
|
+
def upload_type
|
117
|
+
if self.is_pdf?
|
118
|
+
'Adobe pdf file'
|
119
|
+
elsif self.is_word?
|
120
|
+
'Word document'
|
121
|
+
elsif self.is_image?
|
122
|
+
'photo'
|
123
|
+
elsif self.is_mp3?
|
124
|
+
'mp3'
|
125
|
+
elsif self.is_excel?
|
126
|
+
'Excel document'
|
127
|
+
elsif self.is_text?
|
128
|
+
'text file'
|
129
|
+
else
|
130
|
+
'file'
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
def icon
|
135
|
+
if self.is_pdf?
|
136
|
+
'/images/file_icons/pdf.gif'
|
137
|
+
elsif self.is_word?
|
138
|
+
'/images/file_icons/word.gif'
|
139
|
+
elsif self.is_image?
|
140
|
+
self.file.url(:icon)
|
141
|
+
elsif self.is_mp3?
|
142
|
+
'/images/file_icons/mp3.gif'
|
143
|
+
elsif self.is_excel?
|
144
|
+
'/images/file_icons/excel.gif'
|
145
|
+
elsif self.is_text?
|
146
|
+
'/images/file_icons/text.gif'
|
147
|
+
else
|
148
|
+
'/images/file_icons/file.gif'
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
def display_name
|
153
|
+
CGI::escapeHTML(self.local_file_name)
|
154
|
+
end
|
155
|
+
|
156
|
+
def can_edit?(check_user)
|
157
|
+
return false if check_user.blank?
|
158
|
+
check_user == self.creator
|
159
|
+
end
|
160
|
+
|
161
|
+
# Image dimension calculations
|
162
|
+
|
163
|
+
def width(style = :default)
|
164
|
+
return nil unless self[:width]
|
165
|
+
return self[:width] if style == :default
|
166
|
+
calculate_sizes(style.to_sym)
|
167
|
+
return @image_width.to_i
|
168
|
+
end
|
169
|
+
|
170
|
+
def height(style = :default)
|
171
|
+
return nil unless self[:height]
|
172
|
+
return self[:height] if style == :default
|
173
|
+
calculate_sizes(style.to_sym)
|
174
|
+
return @image_height.to_i
|
175
|
+
end
|
176
|
+
|
177
|
+
def size(style = :default)
|
178
|
+
return nil unless width || height
|
179
|
+
return "#{width}x#{height}" if style == :default
|
180
|
+
calculate_sizes(style.to_sym)
|
181
|
+
return @image_size
|
182
|
+
end
|
183
|
+
|
184
|
+
def max_dimension(style)
|
185
|
+
@max_dimension ||= Paperclip::Geometry.parse(self.local.styles[style][:geometry]).width.to_f
|
186
|
+
end
|
187
|
+
|
188
|
+
def image_ratio
|
189
|
+
@image_ratio ||= width.to_f / height.to_f
|
190
|
+
end
|
191
|
+
|
192
|
+
def calculate_sizes(style)
|
193
|
+
if image_ratio > 1
|
194
|
+
@image_width ||= width > max_dimension(style) ? max_dimension(style) : width
|
195
|
+
@image_height ||= (@image_width / image_ratio).round
|
196
|
+
else
|
197
|
+
@image_height ||= height > max_dimension(style) ? max_dimension(style) : height
|
198
|
+
@image_width ||= (@image_height * image_ratio).round
|
199
|
+
end
|
200
|
+
@image_size ||= "#{@image_width.to_i}x#{@image_height.to_i}"
|
201
|
+
end
|
202
|
+
|
203
|
+
protected
|
204
|
+
def transliterate_file_name
|
205
|
+
extension = File.extname(local_file_name).gsub(/^\.+/, '')
|
206
|
+
filename = local_file_name.gsub(/\.#{extension}$/, '')
|
207
|
+
self.local.instance_write(:file_name, "#{transliterate(filename)}.#{transliterate(extension)}")
|
208
|
+
end
|
209
|
+
|
210
|
+
def transliterate(str)
|
211
|
+
# Lifted from permalink_fu by Rick Olsen
|
212
|
+
# Escape str by transliterating to UTF-8 with Iconv,
|
213
|
+
# downcasing, then removing illegal characters and replacing them with ’-’
|
214
|
+
s = Iconv.iconv('ascii//ignore//translit', 'utf-8', str).to_s
|
215
|
+
s.downcase!
|
216
|
+
s.gsub!(/\'/, '')
|
217
|
+
s.gsub!(/[^A-Za-z0-9]+/, ' ')
|
218
|
+
s.strip!
|
219
|
+
s.gsub!(/\ +/, '-') # set single or multiple spaces to a single dash
|
220
|
+
return s
|
221
|
+
end
|
222
|
+
|
223
|
+
def add_width_and_height
|
224
|
+
return unless self.is_image?
|
225
|
+
if self.local.to_file
|
226
|
+
geometry = Paperclip::Geometry.from_file self.local.to_file
|
227
|
+
self[:width] = geometry.width.to_i
|
228
|
+
self[:height] = geometry.height.to_i
|
229
|
+
end
|
230
|
+
end
|
231
|
+
|
232
|
+
end
|
233
|
+
end
|
234
|
+
end
|
235
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
class ActionController::Routing::RouteSet
|
2
|
+
def load_routes_with_uploader!
|
3
|
+
uploader_routes = File.join(File.dirname(__FILE__), *%w[.. .. config uploader_routes.rb])
|
4
|
+
add_configuration_file(uploader_routes) unless configuration_files.include? uploader_routes
|
5
|
+
load_routes_without_uploader!
|
6
|
+
end
|
7
|
+
alias_method_chain :load_routes!, :uploader
|
8
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'rack/utils'
|
2
|
+
|
3
|
+
module Uploader
|
4
|
+
class FlashSessionCookieMiddleware
|
5
|
+
def initialize(app, session_key = '_session_id')
|
6
|
+
@app = app
|
7
|
+
@session_key = session_key
|
8
|
+
end
|
9
|
+
|
10
|
+
def call(env)
|
11
|
+
if env['HTTP_USER_AGENT'] =~ /^(Adobe|Shockwave) Flash/
|
12
|
+
params = ::Rack::Utils.parse_query(env['QUERY_STRING'])
|
13
|
+
env['HTTP_COOKIE'] = [ @session_key, params[@session_key] ].join('=').freeze unless params[@session_key].nil?
|
14
|
+
end
|
15
|
+
@app.call(env)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Uploader
|
2
|
+
module MimeTypeGroups
|
3
|
+
|
4
|
+
IMAGE_TYPES = ['image/jpeg', 'image/pjpeg', 'image/gif', 'image/png', 'image/x-png', 'image/jpg']
|
5
|
+
MP3_TYPES = ['audio/mpeg', 'audio/mpeg3', 'audio/x-mpeg-3', 'video/mpeg', 'video/x-mpeg']
|
6
|
+
EXCEL_TYPES = ['application/excel', 'application/excel', 'application/x-excel', 'application/x-msexcel', 'application/excel',
|
7
|
+
'application/vnd.ms-excel', 'application/x-excel', 'application/excel', 'application/vnd.ms-excel',
|
8
|
+
'application/x-excel', 'application/excel', 'application/x-excel', 'application/excel', 'application/x-excel', 'application/excel',
|
9
|
+
'application/vnd.ms-excel', 'application/x-excel', 'application/excel', 'application/vnd.ms-excel',
|
10
|
+
'application/x-excel', 'application/excel', 'application/vnd.ms-excel', 'application/x-excel',
|
11
|
+
'application/x-msexcel', 'application/excel', 'application/x-excel', 'application/excel',
|
12
|
+
'application/x-excel', 'application/excel', 'application/vnd.ms-excel', 'application/x-excel',
|
13
|
+
'application/x-msexcel', 'application/vnd.oasis.opendocument.spreadsheet']
|
14
|
+
PDF_TYPES = ['application/pdf']
|
15
|
+
WORD_TYPES = ['application/word', 'application/msword']
|
16
|
+
TEXT_TYPES = ['text/plain']
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'rake/tasklib'
|
3
|
+
require 'fileutils'
|
4
|
+
|
5
|
+
module Uploader
|
6
|
+
class Tasks < ::Rake::TaskLib
|
7
|
+
def initialize
|
8
|
+
define
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
def define
|
13
|
+
namespace :uploader do
|
14
|
+
|
15
|
+
task :app_env do
|
16
|
+
Rake::Task[:environment].invoke if defined?(RAILS_ROOT)
|
17
|
+
end
|
18
|
+
|
19
|
+
desc 'Send all uploads to S3'
|
20
|
+
task :upload_to_s3 do
|
21
|
+
# TODO write rake task to upload to s3
|
22
|
+
end
|
23
|
+
|
24
|
+
desc "Sync required files from uploader."
|
25
|
+
task :sync do
|
26
|
+
path = File.join(File.dirname(__FILE__), *%w[.. ..])
|
27
|
+
puts path
|
28
|
+
system "rsync -ruv #{path}/public ."
|
29
|
+
system "rsync -ruv #{path}/db ."
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
Uploader::Tasks.new
|
data/lib/uploader.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'uploader/exceptions'
|
2
|
+
require 'uploader/mime_type_groups'
|
3
|
+
require 'uploader/middleware/flash_session_cookie_middleware'
|
4
|
+
|
5
|
+
begin
|
6
|
+
require 'thoughtbot-paperclip'
|
7
|
+
rescue LoadError
|
8
|
+
begin
|
9
|
+
gem 'thoughtbot-paperclip'
|
10
|
+
rescue Gem::LoadError
|
11
|
+
puts "Please install the thoughtbot-paperclip gem"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
begin
|
17
|
+
require 'mime/types'
|
18
|
+
rescue LoadError
|
19
|
+
begin
|
20
|
+
gem 'mime-types'
|
21
|
+
rescue Gem::LoadError
|
22
|
+
puts "Please install the mime-types gem"
|
23
|
+
end
|
24
|
+
end
|
data/locales/ar.yml
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
---
|
2
|
+
ar:
|
3
|
+
uploader:
|
4
|
+
cancel_all: "إلغاء جميع عمليات التحميل"
|
5
|
+
file_delete_permission_denied: "ليس لديك إذن لحذف هذا الملف."
|
6
|
+
file_deleted: "حذف الملفات"
|
7
|
+
file_upload_error: "حدث خطأ أثناء تحميل الملف."
|
8
|
+
javascript_not_enabled: "عذرا. SWFUpload لا يمكن تحميل. يجب أن يكون لديك إلى تشغيل الجافا سكريبت ليتمتع SWFUpload."
|
9
|
+
missing_parent_id_error: "يرجى تحديد وجوه أحد الوالدين"
|
10
|
+
permission_denied: "ليس لديك إذن لإكمال هذا العمل."
|
11
|
+
standard_file_upload_error: "حدث خطأ أثناء تحميل الملف : {{error}}. يرجى التأكد من أن الملف هو صحيح. فحص للتأكد من الملف ليس فارغا. ثم حاول مرة أخرى."
|
12
|
+
successful_upload: "الملف الذي تم تحميله بنجاح."
|
13
|
+
swf_loading: "SWFUpload هو تحميل. يرجى الانتظار قليلا..."
|
14
|
+
swf_not_loading: "عذرا. SWFUpload لا يمكن تحميل. قد تحتاج إلى تثبيت أو تحديث فلاش لاعب. زيارة {{url}}للحصول على فلاش لاعب."
|
15
|
+
swf_taking_to_long: "SWFUpload يأخذ وقتا طويلا لتحميل أو الحمل قد فشلت. يرجى التأكد من ان البرنامج المساعد فلاش تمكين وعمل نسخة من أدوبي فلاش لاعب مثبتة."
|
16
|
+
upload_file: "تحميل الملف"
|
17
|
+
upload_files: "تحميل ملفات"
|
data/locales/bg.yml
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
---
|
2
|
+
bg:
|
3
|
+
uploader:
|
4
|
+
cancel_all: "Отмени Всички Качването"
|
5
|
+
file_delete_permission_denied: "Вие нямате разрешение да изтриете този файл."
|
6
|
+
file_deleted: "Изтрити файлове"
|
7
|
+
file_upload_error: "Възникна грешка при качването на файла."
|
8
|
+
javascript_not_enabled: "Съжаляваме. SWFUpload не можа да се зареди. Трябва да имате активиран JavaScript за да се насладите SWFUpload."
|
9
|
+
missing_parent_id_error: "Моля, посочете майка обект"
|
10
|
+
permission_denied: "Вие нямате разрешение да се извърши съответното действие."
|
11
|
+
standard_file_upload_error: "Възникна грешка при качването на файла: {{error}}. Уверете се, че файлът е валиден. Проверете дали файлът не е празна. След това опитайте отново."
|
12
|
+
successful_upload: "Успешно качен файл."
|
13
|
+
swf_loading: "SWFUpload се зарежда. Моля изчакайте за момент ..."
|
14
|
+
swf_not_loading: "Съжаляваме. SWFUpload не можа да се зареди. Може да се наложи да инсталирате или надграждане на Flash Player. Посетете {{url}} да отида на Flash Player."
|
15
|
+
swf_taking_to_long: "SWFUpload е необходимо много време, за да заредите или товар е неуспешно. Моля, уверете се, че Flash Plug-in е включено и че работна версия на Adobe Flash Player е инсталиран."
|
16
|
+
upload_file: "Качване на файла"
|
17
|
+
upload_files: "Качване на файлове"
|
data/locales/ca.yml
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
---
|
2
|
+
ca:
|
3
|
+
uploader:
|
4
|
+
cancel_all: "Cancel la totes les Càrregues"
|
5
|
+
file_delete_permission_denied: "Vostè no té permís per eliminar aquest arxiu."
|
6
|
+
file_deleted: "Suprimeix el fitxer"
|
7
|
+
file_upload_error: "S'ha produït un error en carregar l'arxiu."
|
8
|
+
javascript_not_enabled: "Ho sentim. SWFUpload no ha pogut carregar. Vostè ha d'activar Javascript per poder gaudir de SWFUpload."
|
9
|
+
missing_parent_id_error: "Si us plau, especifiqueu un objecte pare"
|
10
|
+
permission_denied: "Vostè no té permís per completar aquesta acció."
|
11
|
+
standard_file_upload_error: "S'ha produït un error en carregar l'arxiu: {{error}}. Si us plau, assegureu-vos que el fitxer és vàlid. Assegureu-vos que l'arxiu no està buit. Torneu a intentar-ho."
|
12
|
+
successful_upload: "Arxiu pujat amb èxit."
|
13
|
+
swf_loading: "SWFUpload s'està carregant. Si us plau, espereu un moment ..."
|
14
|
+
swf_not_loading: "Ho sentim. SWFUpload no ha pogut carregar. És possible que necessiteu instal lar o actualitzar Flash Player. Visiteu el {{url}} per obtenir el Flash Player."
|
15
|
+
swf_taking_to_long: "SWFUpload està prenent molt de temps en la càrrega o la càrrega ha fallat. Si us plau, assegureu-vos que el plugin de Flash està activada i que un grup de treball de la versió de Adobe Flash Player instal lat."
|
16
|
+
upload_file: Carrega
|
17
|
+
upload_files: "Pujar arxius"
|
data/locales/cs.yml
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
---
|
2
|
+
cs:
|
3
|
+
uploader:
|
4
|
+
cancel_all: "Zrušit všech uploadů"
|
5
|
+
file_delete_permission_denied: "Nemáte oprávnění ke smazání souboru."
|
6
|
+
file_deleted: "Vypouští soubor"
|
7
|
+
file_upload_error: "Vyskytla se chyba při nahrávání souboru."
|
8
|
+
javascript_not_enabled: "Omlouváme se. SWFUpload nelze načíst. Musíte mít povolen JavaScript těšit SWFUpload."
|
9
|
+
missing_parent_id_error: "Prosíme, uveďte mateřský objekt"
|
10
|
+
permission_denied: "Nemáte oprávnění k dokončení této akce."
|
11
|
+
standard_file_upload_error: "Vyskytla se chyba při nahrávání souboru: {{error}}. Prosím ujistěte se, že soubor je platný. Zkontrolujte, soubor není prázdná. Pak zkuste to znovu."
|
12
|
+
successful_upload: "Úspěšně uploadovaný soubor."
|
13
|
+
swf_loading: "SWFUpload se načítá. Prosím, vyčkejte chvíli ..."
|
14
|
+
swf_not_loading: "Omlouváme se. SWFUpload nelze načíst. Možná budete muset nainstalovat nebo upgradovat Flash Player. Navštivte {{url}} dostat Flash Player."
|
15
|
+
swf_taking_to_long: "SWFUpload je příliš dlouho, aby zatížení nebo zatížení se nezdařil. Prosím, ujistěte se, že Flash Plugin je povoleno, a že pracovní verzi Adobe Flash Player je nainstalován."
|
16
|
+
upload_file: "Nahrát soubor"
|
17
|
+
upload_files: "Upload souborů"
|
data/locales/da.yml
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
---
|
2
|
+
da:
|
3
|
+
uploader:
|
4
|
+
cancel_all: "Annuller Alle Uploads"
|
5
|
+
file_delete_permission_denied: "Du har ikke tilladelse til at slette denne fil."
|
6
|
+
file_deleted: "Slettes filen"
|
7
|
+
file_upload_error: "Der opstod en fejl under overførsel af filen."
|
8
|
+
javascript_not_enabled: "Vi beklager. SWFUpload kunne ikke indlæse. Du skal have Javascript aktiveret for at nyde SWFUpload."
|
9
|
+
missing_parent_id_error: "Angiv en forælder objekt"
|
10
|
+
permission_denied: "Du har ikke tilladelse til at fuldføre denne aktion."
|
11
|
+
standard_file_upload_error: "Der opstod en fejl under overførsel af filen: {{error}}. Sørg for, at filen er gyldig. Kontrollere, at filen ikke er tom. Så prøv igen."
|
12
|
+
successful_upload: "Uploadet fil."
|
13
|
+
swf_loading: "SWFUpload indlæses. Vent et øjeblik ..."
|
14
|
+
swf_not_loading: "Vi beklager. SWFUpload kunne ikke indlæse. Du kan være nødt til at installere eller opgradere Flash Player. Besøg {{url}} at få Flash Player."
|
15
|
+
swf_taking_to_long: "SWFUpload det tager lang tid at indlæse eller belastningen er mislykkedes. Sørg for, at Flash Plugin er aktiveret, og at en arbejdsgruppe version af Adobe Flash Player er installeret."
|
16
|
+
upload_file: "Upload fil"
|
17
|
+
upload_files: "Upload af filer"
|
data/locales/de.yml
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
---
|
2
|
+
de:
|
3
|
+
uploader:
|
4
|
+
cancel_all: "Stil Alle Uploads"
|
5
|
+
file_delete_permission_denied: "Sie haben keine Berechtigung zum Löschen der Datei."
|
6
|
+
file_deleted: "Gelöschte Datei"
|
7
|
+
file_upload_error: "Fehler beim Hochladen der Datei."
|
8
|
+
javascript_not_enabled: "Es tut uns leid. SWFUpload konnte nicht geladen werden. Sie müssen Javascript aktivieren, damit Sie SWFUpload."
|
9
|
+
missing_parent_id_error: "Bitte geben Sie ein Objekt"
|
10
|
+
permission_denied: "Sie haben keine Berechtigung, um diese Aktion."
|
11
|
+
standard_file_upload_error: "Fehler beim Hochladen der Datei: {{error}}. Bitte stellen Sie sicher, dass die Datei gültig ist. Überprüfen Sie, ob Sie die Datei nicht leer ist. Dann versuchen Sie es erneut."
|
12
|
+
successful_upload: "Erfolgreich hochgeladenen Datei."
|
13
|
+
swf_loading: "SWFUpload wird geladen. Bitte einen Moment warten ..."
|
14
|
+
swf_not_loading: "Es tut uns leid. SWFUpload konnte nicht geladen werden. Möglicherweise müssen Sie installieren oder aktualisieren Flash Player. Besuchen Sie die {{url}}, um den Flash Player."
|
15
|
+
swf_taking_to_long: "SWFUpload ist eine lange Zeit zu laden oder die Kraft hat. Bitte stellen Sie sicher, dass das Flash-Plugin aktiviert ist, und dass eine funktionierende Version des Adobe Flash Player installiert ist."
|
16
|
+
upload_file: "Upload File"
|
17
|
+
upload_files: "Dateien hochladen"
|
data/locales/el.yml
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
---
|
2
|
+
el:
|
3
|
+
uploader:
|
4
|
+
cancel_all: "Ακύρωση όλων Uploads"
|
5
|
+
file_delete_permission_denied: "Δεν έχετε δικαίωμα να διαγράψετε το αρχείο."
|
6
|
+
file_deleted: "Διαγράφεται αρχείου"
|
7
|
+
file_upload_error: "Σφάλμα κατά τη μεταφόρτωση του αρχείου."
|
8
|
+
javascript_not_enabled: "Λυπούμαστε. SWFUpload δεν είναι δυνατή η φόρτωση. Θα πρέπει να έχετε ενεργοποιημένη τη JavaScript για να απολαύσετε SWFUpload."
|
9
|
+
missing_parent_id_error: "Να αναφερθεί η μητρική αντικείμενο"
|
10
|
+
permission_denied: "Δεν έχετε άδεια για να ολοκληρωθεί αυτή η ενέργεια."
|
11
|
+
standard_file_upload_error: "Σφάλμα κατά τη μεταφόρτωση του αρχείου: {{error}}. Βεβαιωθείτε ότι το αρχείο είναι έγκυρο. Ελέγξτε για να βεβαιωθείτε ότι ο φάκελος δεν είναι κενός. Στη συνέχεια, προσπαθήστε ξανά."
|
12
|
+
successful_upload: "Επιτυχής αρχείο."
|
13
|
+
swf_loading: "SWFUpload είναι φόρτωσης. Περιμένετε ένα λεπτό ..."
|
14
|
+
swf_not_loading: "Λυπούμαστε. SWFUpload δεν είναι δυνατή η φόρτωση. Μπορεί να χρειαστεί να εγκαταστήσετε ή να αναβαθμίσετε το Flash Player. Επισκεφθείτε την {{url}} να το Flash Player."
|
15
|
+
swf_taking_to_long: "SWFUpload παίρνει πολύ χρόνο για να φορτώσει το φορτίο ή έχει αποτύχει. Βεβαιωθείτε ότι το Flash Plugin είναι ενεργοποιημένη και ότι μια λειτουργική έκδοση του Adobe Flash Player είναι εγκατεστημένος."
|
16
|
+
upload_file: "Επιφόρτωση αρχείου"
|
17
|
+
upload_files: "Ανέβασμα Αρχείων"
|
data/locales/en.yml
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
en:
|
2
|
+
uploader:
|
3
|
+
successful_upload: 'Successfully uploaded file.'
|
4
|
+
permission_denied: "You don't have permission to complete this action."
|
5
|
+
missing_parent_id_error: 'Please specify a parent object'
|
6
|
+
file_deleted: 'Deleted file'
|
7
|
+
file_delete_permission_denied: "You don't have permission to delete that file."
|
8
|
+
upload_file: 'Upload File'
|
9
|
+
upload_files: 'Upload Files'
|
10
|
+
cancel_all: 'Cancel All Uploads'
|
11
|
+
swf_loading: 'SWFUpload is loading. Please wait a moment...'
|
12
|
+
javascript_not_enabled: "We're sorry. SWFUpload could not load. You must have JavaScript enabled to enjoy SWFUpload."
|
13
|
+
swf_taking_to_long: "SWFUpload is taking a long time to load or the load has failed. Please make sure that the Flash Plugin is enabled and that a working version of the Adobe Flash Player is installed."
|
14
|
+
swf_not_loading: "We're sorry. SWFUpload could not load. You may need to install or upgrade Flash Player. Visit the {{url}} to get the Flash Player."
|
15
|
+
file_upload_error: "An error occured while uploading the file."
|
16
|
+
standard_file_upload_error: "An error occured while uploading the file: {{error}}. Please ensure that the file is valid. Check to make sure the file is not empty. Then try again."
|
data/locales/es.yml
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
---
|
2
|
+
es:
|
3
|
+
uploader:
|
4
|
+
cancel_all: "Cancelar todas las Cargas"
|
5
|
+
file_delete_permission_denied: "Usted no tiene permiso para eliminar ese archivo."
|
6
|
+
file_deleted: "Suprime el archivo"
|
7
|
+
file_upload_error: "Se ha producido un error al cargar el archivo."
|
8
|
+
javascript_not_enabled: "Lo sentimos. SWFUpload no ha podido cargar. Usted debe tener Javascript activado para poder disfrutar de SWFUpload."
|
9
|
+
missing_parent_id_error: "Por favor, especifique un objeto padre"
|
10
|
+
permission_denied: "Usted no tiene permiso para completar esta acción."
|
11
|
+
standard_file_upload_error: "Se ha producido un error al cargar el archivo: {{error}}. Por favor, asegúrese de que el archivo es válido. Asegúrese de que el archivo no está vacío. Vuelva a intentarlo."
|
12
|
+
successful_upload: "Archivo subido con éxito."
|
13
|
+
swf_loading: "SWFUpload se está cargando. Por favor, espere un momento ..."
|
14
|
+
swf_not_loading: "Lo sentimos. SWFUpload no ha podido cargar. Puede que necesite instalar o actualizar Flash Player. Visite el {{url}} para obtener el Flash Player."
|
15
|
+
swf_taking_to_long: "SWFUpload está tomando mucho tiempo en la carga o la carga ha fallado. Por favor, asegúrese de que el plugin de Flash está activada y que un grupo de trabajo de la versión de Adobe Flash Player está instalado."
|
16
|
+
upload_file: "Subir archivo"
|
17
|
+
upload_files: "Subir archivos"
|
data/locales/fr.yml
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
---
|
2
|
+
fr:
|
3
|
+
uploader:
|
4
|
+
cancel_all: "Annuler tous les Uploads"
|
5
|
+
file_delete_permission_denied: "Vous n'êtes pas autorisé à supprimer ce fichier."
|
6
|
+
file_deleted: "Fichier supprimé"
|
7
|
+
file_upload_error: "Une erreur s'est produite lors du téléchargement du fichier."
|
8
|
+
javascript_not_enabled: "Nous sommes désolés. SWFUpload n'a pas pu charger. Il faut activer JavaScript pour profiter de SWFUpload."
|
9
|
+
missing_parent_id_error: "S'il vous plaît spécifier un objet parent de"
|
10
|
+
permission_denied: "Vous n'avez pas la permission d'effectuer cette action."
|
11
|
+
standard_file_upload_error: "Une erreur s'est produite lors du chargement du fichier: {{error}}. S'il vous plaît assurer que le fichier est valide. Assurez-vous que le fichier n'est pas vide. Ensuite, essayez à nouveau."
|
12
|
+
successful_upload: "Transfert de fichier."
|
13
|
+
swf_loading: "SWFUpload chargement. S'il vous plaît attendez un instant ..."
|
14
|
+
swf_not_loading: "Nous sommes désolés. SWFUpload n'a pas pu charger. Vous mai besoin d'installer ou mettre à jour Flash Player. Visitez le {{url}} pour obtenir le Flash Player."
|
15
|
+
swf_taking_to_long: "SWFUpload prend beaucoup de temps pour charger ou le chargement a échoué. S'il vous plaît assurez-vous que le plugin flash est activé et qu'un groupe de travail de la version d'Adobe Flash Player est installé."
|
16
|
+
upload_file: "Envoyer un fichier"
|
17
|
+
upload_files: "Télécharger des fichiers"
|
data/locales/it.yml
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
---
|
2
|
+
it:
|
3
|
+
uploader:
|
4
|
+
cancel_all: "Cancellare tutti i Uploads"
|
5
|
+
file_delete_permission_denied: "Non hai il permesso di eliminare il file."
|
6
|
+
file_deleted: "File eliminato"
|
7
|
+
file_upload_error: "Si è verificato un errore durante il caricamento del file."
|
8
|
+
javascript_not_enabled: "Siamo spiacenti. SWFUpload non poteva carico. È necessario che JavaScript sia abilitato per godere SWFUpload."
|
9
|
+
missing_parent_id_error: "Si prega di specificare un oggetto genitore"
|
10
|
+
permission_denied: "Non hai il permesso di completare l'operazione."
|
11
|
+
standard_file_upload_error: "Si è verificato un errore durante il caricamento del file: {{error}}. Si prega di assicurarsi che il file è valido. Verificare che il file non è vuoto. Quindi riprovare."
|
12
|
+
successful_upload: "File caricato con successo."
|
13
|
+
swf_loading: "SWFUpload viene caricata. Si prega di attendere un momento ..."
|
14
|
+
swf_not_loading: "Siamo spiacenti. SWFUpload non poteva carico. Potrebbe essere necessario installare o aggiornare Flash Player. Visita il {{url}} per ottenere il Flash Player."
|
15
|
+
swf_taking_to_long: "SWFUpload è tenuto un lungo tempo di carico o il carico non è riuscito. Si prega di accertarsi che il plug in flash è attivato un gruppo di lavoro e che la versione di Adobe Flash Player è installato."
|
16
|
+
upload_file: "Carica file"
|
17
|
+
upload_files: "Carica Files"
|
data/locales/iw.yml
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
---
|
2
|
+
iw:
|
3
|
+
uploader:
|
4
|
+
cancel_all: "בטל את כל ההעלאות"
|
5
|
+
file_delete_permission_denied: "אין לך הרשאה למחוק את הקובץ."
|
6
|
+
file_deleted: "קובץ מחוק"
|
7
|
+
file_upload_error: "אירעה שגיאה בעת העלאת קובץ."
|
8
|
+
javascript_not_enabled: "אנו מתנצלים. SWFUpload לא ניתן היה לטעון. אתה צריך לאפשר Javascript חייב ליהנות SWFUpload."
|
9
|
+
missing_parent_id_error: "ציין האב לאובייקט"
|
10
|
+
permission_denied: "אין לך הרשאה כדי להשלים פעולה זו."
|
11
|
+
standard_file_upload_error: "אירעה שגיאה בעת העלאת קובץ: {{error}}. אנא ודא כי הקובץ הוא חוקי. ודא שהקובץ לא ריק. לאחר מכן נסה שוב."
|
12
|
+
successful_upload: "הקובץ שהועלה בהצלחה."
|
13
|
+
swf_loading: "SWFUpload הוא טוען. אנא המתן רגע ..."
|
14
|
+
swf_not_loading: "אנו מתנצלים. SWFUpload לא ניתן היה לטעון. ייתכן שיש צורך להתקין או לשדרג את Flash Player. בקר {{url}} להשיג את Flash Player."
|
15
|
+
swf_taking_to_long: "SWFUpload הוא לוקח הרבה זמן לטעון או לטעון נכשל. אנא ודא כי פלאש Plugin מופעלת וכי עבודה גירסה של התוכנה Adobe Flash Player מותקן."
|
16
|
+
upload_file: "הוספת קובץ"
|
17
|
+
upload_files: "העלאת קבצים"
|
data/locales/ja.yml
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
---
|
2
|
+
ja:
|
3
|
+
uploader:
|
4
|
+
cancel_all: キャンセルの全てのアップロード
|
5
|
+
file_delete_permission_denied: 使用する許可は、そのファイルを削除する必要はありません。
|
6
|
+
file_deleted: 削除したファイル
|
7
|
+
file_upload_error: ファイルのアップロード中にエラーが発生しました。
|
8
|
+
javascript_not_enabled: "申し訳ありませんが、 SWFUploadを読み込むことができませんでした。 SWFUploadを享受するにはJavaScriptを有効にしている必要があります。"
|
9
|
+
missing_parent_id_error: 親オブジェクトを指定してください。
|
10
|
+
permission_denied: この操作を完了するには、許可されていません。
|
11
|
+
standard_file_upload_error: "ファイルのアップロード中にエラーが発生しました: {{error}}.以下は、そのファイルが有効であることを確認します。チェックして、ファイルが空ではないことを確認します。し、もう一度試してください。"
|
12
|
+
successful_upload: 正常にアップロードされたファイル。
|
13
|
+
swf_loading: SWFUploadのロードされています。しばらくお待ちください...
|
14
|
+
swf_not_loading: "申し訳ありませんが、 SWFUploadを読み込むことができませんでした。 Flash Playerをインストールしたりアップグレードする必要があります。は、 Flash Playerを取得するには、 {{url}}をご覧ください。"
|
15
|
+
swf_taking_to_long: "SWFUploadの読み込みに失敗したかは、負荷に長い時間がかかっている。以下は、 Flashプラグインが有効になっていることを確認しては、 Adobe Flash Playerのバージョンがインストールされての作業。"
|
16
|
+
upload_file: ファイルのアップロード
|
17
|
+
upload_files: ファイルのアップロード
|
data/locales/ko.yml
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
---
|
2
|
+
ko:
|
3
|
+
uploader:
|
4
|
+
cancel_all: "취소 모든 업로드"
|
5
|
+
file_delete_permission_denied: "그 파일을 삭제할 권한이없습니다."
|
6
|
+
file_deleted: "삭제된 파일"
|
7
|
+
file_upload_error: "파일을 업로드하는 동안 오류가 발생했습니다."
|
8
|
+
javascript_not_enabled: "죄송합니다. SWFUpload를 로드할 수없습니다. 자바 스크립트를 즐길 수 SWFUpload를 활성화해야합니다."
|
9
|
+
missing_parent_id_error: "부모 개체를 지정하여주십시오"
|
10
|
+
permission_denied: "권한이 작업을 완료하는 데 필요가없습니다."
|
11
|
+
standard_file_upload_error: "파일을 업로드하는 동안 오류가 발생했습니다 : {{error}}. 그 파일이 유효한지 확인하시기 바랍니다. 확인 파일이 비어 있지 않은지 확인합니다. 그럼 다시 해 봐요."
|
12
|
+
successful_upload: "성공적으로 업로드된 파일입니다."
|
13
|
+
swf_loading: "SWFUpload로드하는 것입니다. 잠시 기다려주십시오 ..."
|
14
|
+
swf_not_loading: "죄송합니다. SWFUpload를 로드할 수없습니다. 플래시 플레이어를 설치하거나 업그레이 드해야 할 수도있습니다. Flash Player를 얻기 위해 {{url}}를 방문하십시오."
|
15
|
+
swf_taking_to_long: "실패했습니다 SWFUpload로드하거나 부하 시간이 오래 걸립니다. 제발, 플래시 플러그인이 활성화되어 있는지 그리고 그 작업은 Adobe Flash Player의 버전이 설치되어있다."
|
16
|
+
upload_file: "파일 업로드"
|
17
|
+
upload_files: "파일 업로드"
|
data/locales/lt.yml
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
---
|
2
|
+
lt:
|
3
|
+
uploader:
|
4
|
+
cancel_all: "Atšaukti Visos parsisiųsti"
|
5
|
+
file_delete_permission_denied: "Jūs neturite leidimo, jei norite ištrinti šį failą."
|
6
|
+
file_deleted: "Išbraukta failą"
|
7
|
+
file_upload_error: "Įvyko klaida įkeliant failą."
|
8
|
+
javascript_not_enabled: "Apgailestaujame. SWFUpload nepavyko įkelti. Jūs privalote turėti Javascript, kad galėtumėte mėgautis SWFUpload."
|
9
|
+
missing_parent_id_error: "Nurodykite patronuojanti objektą"
|
10
|
+
permission_denied: "Jūs neturite leidimo atlikti šį veiksmą."
|
11
|
+
standard_file_upload_error: "Įvyko klaida įkeliant failą: {{error}}. Prašome įsitikinti, kad failas yra svarbūs. Įsitikinkite, kad failo nėra tuščias. Tada bandykite dar kartą."
|
12
|
+
successful_upload: "Sėkmingai įkeltas failas."
|
13
|
+
swf_loading: "SWFUpload kraunamas. Prašome palaukti ..."
|
14
|
+
swf_not_loading: "Apgailestaujame. SWFUpload nepavyko įkelti. Jums gali reikėti įdiegti ar atnaujinti Flash Player. Aplankykite {{url}} gauti Flash Player."
|
15
|
+
swf_taking_to_long: "SWFUpload yra nemažai laiko, kol apkrova arba apkrova nepavyko. Įsitikinkite, kad Flash plugin yra įjungta, ir kad darbo versiją Adobe Flash Player įdiegtas."
|
16
|
+
upload_file: "Įkelti failą"
|
17
|
+
upload_files: "Įkelti failai"
|