]> git.openstreetmap.org Git - rails.git/commitdiff
First stage of i18n. Some migrations and extra plugins.
authorShaun McDonald <shaun@shaunmcdonald.me.uk>
Fri, 22 May 2009 18:36:17 +0000 (18:36 +0000)
committerShaun McDonald <shaun@shaunmcdonald.me.uk>
Fri, 22 May 2009 18:36:17 +0000 (18:36 +0000)
82 files changed:
app/controllers/application.rb
app/controllers/diary_entry_controller.rb
app/models/diary_entry.rb
app/models/language.rb [new file with mode: 0644]
app/models/user.rb
app/views/diary_entry/_diary_entry.rhtml
app/views/diary_entry/edit.rhtml
config/initializers/available_locales.rb [new file with mode: 0644]
config/initializers/gpx.rb
config/locales/de.yml [new file with mode: 0644]
config/locales/en.yml [new file with mode: 0644]
config/locales/fr.yml [new file with mode: 0644]
db/migrate/032_add_user_locale.rb [new file with mode: 0644]
db/migrate/033_change_diary_entries_language.rb [new file with mode: 0644]
db/migrate/034_create_languages.rb [new file with mode: 0644]
test/fixtures/languages.yml [new file with mode: 0644]
test/unit/diary_entry_test.rb
test/unit/language_test.rb [new file with mode: 0644]
vendor/plugins/http_accept_language/MIT-LICENSE [new file with mode: 0644]
vendor/plugins/http_accept_language/README.rdoc [new file with mode: 0644]
vendor/plugins/http_accept_language/Rakefile [new file with mode: 0644]
vendor/plugins/http_accept_language/init.rb [new file with mode: 0644]
vendor/plugins/http_accept_language/lib/http_accept_language.rb [new file with mode: 0644]
vendor/plugins/http_accept_language/tasks/http_accept_language_tasks.rake [new file with mode: 0644]
vendor/plugins/http_accept_language/test/http_accept_language_test.rb [new file with mode: 0644]
vendor/plugins/rails-i18n/.gitignore [new file with mode: 0644]
vendor/plugins/rails-i18n/README.textile [new file with mode: 0644]
vendor/plugins/rails-i18n/init.rb [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/ar.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/bs.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/cz.rb [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/da.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/de.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/ee.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/el.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/es-AR.rb [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/es-MX.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/es.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/fa.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/fi.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/fr-CH.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/fr.yml [new file with mode: 0755]
vendor/plugins/rails-i18n/locale/fun/en-AU.rb [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/fun/gibberish.rb [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/gl-ES.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/he.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/hu.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/id.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/it.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/ja.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/ko.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/lt.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/mk.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/nl.rb [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/no-NB.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/no-NN.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/pl.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/pt-BR.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/pt-PT.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/ro.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/ru.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/sr-Latn.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/sr.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/sv-SE.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/sw.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/th.rb [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/tr.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/vi.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/zh-CN.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/locale/zh-TW.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/rails/action_view.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/rails/active_record.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/rails/active_support.yml [new file with mode: 0644]
vendor/plugins/rails-i18n/script/update.rb [new file with mode: 0644]
vendor/plugins/rails-i18n/test/lib/key_structure.rb [new file with mode: 0644]
vendor/plugins/rails-i18n/test/structure.rb [new file with mode: 0644]
vendor/plugins/rails-i18n/tools/Rails I18n.tmbundle/Commands/Lookup Translation.tmCommand [new file with mode: 0644]
vendor/plugins/rails-i18n/tools/Rails I18n.tmbundle/Commands/extract translation.tmCommand [new file with mode: 0644]
vendor/plugins/rails-i18n/tools/Rails I18n.tmbundle/Support/lib/dictionary.rb [new file with mode: 0644]
vendor/plugins/rails-i18n/tools/Rails I18n.tmbundle/Support/lib/rails_i18n.rb [new file with mode: 0644]
vendor/plugins/rails-i18n/tools/Rails I18n.tmbundle/Support/lib/yaml_waml.rb [new file with mode: 0644]
vendor/plugins/rails-i18n/tools/Rails I18n.tmbundle/info.plist [new file with mode: 0644]

index 64eb2180f6d7f0807b1a4aef5987110185a98f0d..d902eac75528cff48a6edf870e45d6ac3bffb7a2 100644 (file)
@@ -100,6 +100,10 @@ class ApplicationController < ActionController::Base
     response.headers['Error'] = message
     render :text => message, :status => status
   end
+  
+  def set_locale
+    request.compatible_language_from(I18n.backend.available_locales)
+  end
 
   def api_call_handle_error
     begin
@@ -134,7 +138,6 @@ class ApplicationController < ActionController::Base
   end
 
 private 
-
   # extract authorisation credentials from headers, returns user = nil if none
   def get_auth_data 
     if request.env.has_key? 'X-HTTP_AUTHORIZATION'          # where mod_rewrite might have put it 
index 3ee36af21a9fb53ac5777344ada62cc4a23bce9e..9fad57c02522b44227ad4759c08e4418e2bbbfc3 100644 (file)
@@ -1,6 +1,7 @@
 class DiaryEntryController < ApplicationController
   layout 'site', :except => :rss
 
+  before_filter :set_locale
   before_filter :authorize_web
   before_filter :require_user, :only => [:new, :edit]
   before_filter :check_database_readable
@@ -30,12 +31,7 @@ class DiaryEntryController < ApplicationController
     if @user != @diary_entry.user
       redirect_to :controller => 'diary_entry', :action => 'view', :id => params[:id]
     elsif params[:diary_entry]
-      @diary_entry.title = params[:diary_entry][:title]
-      @diary_entry.body = params[:diary_entry][:body]
-      @diary_entry.latitude = params[:diary_entry][:latitude]
-      @diary_entry.longitude = params[:diary_entry][:longitude]
-
-      if @diary_entry.save
+      if @diary_entry.update_attributes(params[:diary_entry])
         redirect_to :controller => 'diary_entry', :action => 'view', :id => params[:id]
       end
     end
@@ -93,6 +89,15 @@ class DiaryEntryController < ApplicationController
       else
         render :nothing => true, :status => :not_found
       end
+    elsif params[:language]
+      @entries = DiaryEntry.find(:all, :include => :user,
+        :conditions => ["users.visible = ? AND diary_entries.language = ?", true, params[:language]],
+        :order => 'created_at DESC', :limit => 20)
+      @title = "OpenStreetMap diary entries in #{params[:language]}"
+      @description = "Recent diary entries from users of OpenStreetMap"
+      @link = "http://#{SERVER_URL}/diary/#{params[:language]}"
+      
+      render :content_type => Mime::RSS
     else
       @entries = DiaryEntry.find(:all, :include => :user,
                                  :conditions => ["users.visible = ?", true],
index 46d96fec7d86fbf85b85bed3b6646d5784033c9d..33e95d17508057e3a9447a238a4e3faaeed7e296 100644 (file)
@@ -1,12 +1,14 @@
 class DiaryEntry < ActiveRecord::Base
   belongs_to :user
+  belongs_to :language, :foreign_key => 'language'
+  
   has_many :diary_comments, :include => :user,
                             :conditions => ["users.visible = ?", true],
                             :order => "diary_comments.id"
 
   validates_presence_of :title, :body
   validates_length_of :title, :within => 1..255
-  validates_length_of :language, :within => 2..3, :allow_nil => true
+  #validates_length_of :language, :within => 2..5, :allow_nil => false
   validates_numericality_of :latitude, :allow_nil => true,
                             :greater_than_or_equal_to => -90, :less_than_or_equal_to => 90
   validates_numericality_of :longitude, :allow_nil => true,
diff --git a/app/models/language.rb b/app/models/language.rb
new file mode 100644 (file)
index 0000000..9c7ca4c
--- /dev/null
@@ -0,0 +1,6 @@
+class Language < ActiveRecord::Base
+  set_primary_key :language_code
+  
+  has_many :users, :foreign_key => 'locale'
+  has_many :diary_entries, :foreign_key => 'language'
+end
index 2adbbb9a19d729acdc5053f54171a1d2d96ee6f5..85d9713169cdb5d148a07114d1947cd6f2c033c9 100644 (file)
@@ -1,6 +1,8 @@
 class User < ActiveRecord::Base
   require 'xml/libxml'
 
+  belongs_to :language, :foreign_key => 'locale'
+  
   has_many :traces
   has_many :diary_entries, :order => 'created_at DESC'
   has_many :messages, :foreign_key => :to_user_id, :order => 'sent_on DESC'
index fe73155aca85241d4f31a475fdf7849127321ffb..87d2a0112b2abdb2d461af0c2ccf472a3f39e65d 100644 (file)
@@ -1,19 +1,19 @@
 <b><%= link_to h(diary_entry.title), :action => 'view', :display_name => diary_entry.user.display_name, :id => diary_entry.id %></b><br />
 <%= htmlize(diary_entry.body) %>
 <% if diary_entry.latitude and diary_entry.longitude %>
-Coordinates: <div class="geo" style="display: inline"><span class="latitude"><%= diary_entry.latitude %></span>; <span class="longitude"><%= diary_entry.longitude %></span></div> (<%=link_to 'map', :controller => 'site', :action => 'index', :lat => diary_entry.latitude, :lon => diary_entry.longitude, :zoom => 14 %> / <%=link_to 'edit', :controller => 'site', :action => 'edit', :lat => diary_entry.latitude, :lon => diary_entry.longitude, :zoom => 14 %>)<br/>
+<%= t 'map.coordinates' %> <div class="geo" style="display: inline"><span class="latitude"><%= diary_entry.latitude %></span>; <span class="longitude"><%= diary_entry.longitude %></span></div> (<%=link_to (t 'map.view'), :controller => 'site', :action => 'index', :lat => diary_entry.latitude, :lon => diary_entry.longitude, :zoom => 14 %> / <%=link_to (t 'map.edit'), :controller => 'site', :action => 'edit', :lat => diary_entry.latitude, :lon => diary_entry.longitude, :zoom => 14 %>)<br/>
 <% end %>
-Posted by <b><%= link_to h(diary_entry.user.display_name), :controller => 'user', :action => 'view', :display_name => diary_entry.user.display_name %></b> at <%= diary_entry.created_at %>
+Posted by <b><%= link_to h(diary_entry.user.display_name), :controller => 'user', :action => 'view', :display_name => diary_entry.user.display_name %></b> at <%= diary_entry.created_at %> in <%= LANGUAGES[diary_entry.language] %>
 <% if params[:action] == 'list' %>
 <br />
-<%= link_to 'Comment on this entry', :action => 'view', :display_name => diary_entry.user.display_name, :id => diary_entry.id, :anchor => 'newcomment' %>
+<%= link_to t('diary_entry.comment_link'), :action => 'view', :display_name => diary_entry.user.display_name, :id => diary_entry.id, :anchor => 'newcomment' %>
 |
-<%= link_to 'Reply to this entry', :controller => 'message', :action => 'new', :user_id => diary_entry.user.id, :title => "Re: #{diary_entry.title}" %>
+<%= link_to t('diary_entry.reply_link'), :controller => 'message', :action => 'new', :user_id => diary_entry.user.id, :title => "Re: #{diary_entry.title}" %>
 |
-<%= link_to pluralize(diary_entry.diary_comments.count, "comment"), :action => 'view', :display_name => diary_entry.user.display_name, :id => diary_entry.id, :anchor => 'comments' %>
+<%= link_to t('diary_entry.comment_count', :count => diary_entry.diary_comments.count), :action => 'view', :display_name => diary_entry.user.display_name, :id => diary_entry.id, :anchor => 'comments' %>
 <% end %>
 <% if @user == diary_entry.user %> 
-| <%= link_to 'Edit this entry', :action => 'edit', :display_name => @user.display_name, :id => diary_entry.id %>
+| <%= link_to t('diary_entry.edit_link'), :action => 'edit', :display_name => @user.display_name, :id => diary_entry.id %>
 <% end %>
 <br />
 <hr />
index a69f4fd9c9240bc7a666099ac806678ade8032e9..8a91fe5343172e6da369dbd109e7200dc67c44ce 100644 (file)
       <td class="fieldName">Body:</td>
       <td><%= f.text_area :body, :cols => 80 %></td>
     </tr>
+    <tr valign="top">
+      <td class="fieldName">Language:</td>
+      <td><%= f.select :language, Language.find(:all).map {|l| [l.name, l.language_code]} %></td>
+    </tr>
     <tr valign="top">
       <td class="fieldName">Location:</td>
       <td>
diff --git a/config/initializers/available_locales.rb b/config/initializers/available_locales.rb
new file mode 100644 (file)
index 0000000..171d0c6
--- /dev/null
@@ -0,0 +1,24 @@
+# Get loaded locales conveniently
+# See http://rails-i18n.org/wiki/pages/i18n-available_locales
+module I18n
+  class << self
+    def available_locales; backend.available_locales; end
+  end
+  module Backend
+    class Simple
+      def available_locales; translations.keys.collect { |l| l.to_s }.sort; end
+        def langs; translations.values end
+    end
+  end
+end
+
+# You need to "force-initialize" loaded locales
+I18n.backend.send(:init_translations)
+
+#AVAILABLE_LOCALES = I18n.backend.available_locales
+#RAILS_DEFAULT_LOGGER.debug "* Loaded locales: #{AVAILABLE_LOCALES.inspect}"
+
+LANGUAGES = 
+{ "en" => "English",
+  "de" => "Deutsch"
+  }
index df4c6019c12e0213159893017b93e382890c0feb..a967aaa04c10c9eb6cf31e62ecc098a29f31acdc 100644 (file)
@@ -1,5 +1,5 @@
 # Set location of GPX trace files
-GPX_TRACE_DIR = "/home/osm/traces"
+GPX_TRACE_DIR = "/Users/shaunmcdonald/Documents/osm/pg_api06/public/traces"
 
 # Set location of GPX image files
-GPX_IMAGE_DIR = "/home/osm/images"
+GPX_IMAGE_DIR = "/Users/shaunmcdonald/Documents/osm/pg_api06/public/images"
diff --git a/config/locales/de.yml b/config/locales/de.yml
new file mode 100644 (file)
index 0000000..54a697c
--- /dev/null
@@ -0,0 +1,13 @@
+de:
+  map:
+    view: anzeigen
+    edit: bearbeiten
+    coordinates: "Koordinaten:"
+  diary_entry:
+    new: neuen Tagebuch-Eintrag
+    comment_link: Kommentar zu diesem Eintrag
+    reply_link: Antwort auf diese Tagebuch-Eintrag
+    comment_count:
+      one: ein kommentar
+      other: "{{count}} kommentare"
+    edit_link: bearbeiten Tagebuch-Eintrag
diff --git a/config/locales/en.yml b/config/locales/en.yml
new file mode 100644 (file)
index 0000000..8f466c0
--- /dev/null
@@ -0,0 +1,13 @@
+en:
+  map:
+    view: View
+    edit: Edit
+    coordinates: "Coordinates:"
+  diary_entry:
+    new: New Diary Entry
+    comment_link: Comment on this entry
+    reply_link: Reply to this entry
+    comment_count:
+      one: 1 comment
+      other: "{{count}} comments"
+    edit_link: Edit this entry
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
new file mode 100644 (file)
index 0000000..3e51a99
--- /dev/null
@@ -0,0 +1,3 @@
+fr:
+  diary_entry:
+    new: nouveau journal
diff --git a/db/migrate/032_add_user_locale.rb b/db/migrate/032_add_user_locale.rb
new file mode 100644 (file)
index 0000000..4d00fc1
--- /dev/null
@@ -0,0 +1,9 @@
+class AddUserLocale < ActiveRecord::Migration
+  def self.up
+    add_column "users", "locale", :string, :default => "en", :null => false
+  end
+
+  def self.down
+    remove_column "users", "locale"
+  end
+end
diff --git a/db/migrate/033_change_diary_entries_language.rb b/db/migrate/033_change_diary_entries_language.rb
new file mode 100644 (file)
index 0000000..7d4fa17
--- /dev/null
@@ -0,0 +1,9 @@
+class ChangeDiaryEntriesLanguage < ActiveRecord::Migration
+  def self.up
+    change_column "diary_entries", "language", :string, :default => "en", :null => false
+  end
+
+  def self.down
+    change_column "diary_entries", "language", :string, :limit => 3, :default => nil, :null => true
+  end
+end
diff --git a/db/migrate/034_create_languages.rb b/db/migrate/034_create_languages.rb
new file mode 100644 (file)
index 0000000..db34978
--- /dev/null
@@ -0,0 +1,24 @@
+require 'lib/migrate'
+
+class CreateLanguages < ActiveRecord::Migration
+  def self.up
+    create_table :languages do |t|
+      t.string :language_code, :limit => 5, :null => false
+      t.string :name, :null => false
+      t.boolean :translation_available, :null => false, :default => false
+
+      t.timestamps
+    end
+    
+    add_index :languages, [:language_code], :unique => true
+
+    Language.create(:language_code => 'en', :name => 'English', :translation_available => true)
+    
+    add_foreign_key :users, [:locale], :languages, [:language_code]
+    add_foreign_key :diary_entries, [:language], :languages, [:language_code]    
+  end
+
+  def self.down
+    raise IrreversibleMigration.new
+  end
+end
diff --git a/test/fixtures/languages.yml b/test/fixtures/languages.yml
new file mode 100644 (file)
index 0000000..8968290
--- /dev/null
@@ -0,0 +1,11 @@
+# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
+
+en:
+  language_code: en
+  name: English
+  translation_available: true
+
+de:
+  language_code: de
+  name: Deutsch
+  translation_available: false
index e28e03a105704fb6092ac4fdc79691cda1a7bd58..b28577b992263bd9395d5c245fae423f5a501d31 100644 (file)
@@ -2,7 +2,7 @@ require File.dirname(__FILE__) + '/../test_helper'
 
 class DiaryEntryTest < Test::Unit::TestCase
   api_fixtures
-  fixtures :diary_entries
+  fixtures :diary_entries, :languages
   
   def test_diary_entry_count
     assert_equal 2, DiaryEntry.count
@@ -27,7 +27,7 @@ class DiaryEntryTest < Test::Unit::TestCase
   def diary_entry_valid(attrs, result = true)
     entry = diary_entries(:normal_user_entry_1).clone
     entry.attributes = attrs
-    assert_equal result, entry.valid?
+    assert_equal result, entry.valid?, "Expected #{attrs.inspect} to be #{result}"
   end
   
 end
diff --git a/test/unit/language_test.rb b/test/unit/language_test.rb
new file mode 100644 (file)
index 0000000..a366793
--- /dev/null
@@ -0,0 +1,8 @@
+require 'test_helper'
+
+class LanguageTest < ActiveSupport::TestCase
+  # Replace this with your real tests.
+  test "the truth" do
+    assert true
+  end
+end
diff --git a/vendor/plugins/http_accept_language/MIT-LICENSE b/vendor/plugins/http_accept_language/MIT-LICENSE
new file mode 100644 (file)
index 0000000..8eaf6db
--- /dev/null
@@ -0,0 +1,20 @@
+Copyright (c) 2008 [name of plugin creator]
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/vendor/plugins/http_accept_language/README.rdoc b/vendor/plugins/http_accept_language/README.rdoc
new file mode 100644 (file)
index 0000000..3eff7d9
--- /dev/null
@@ -0,0 +1,39 @@
+= HttpAcceptLanguage
+
+A small effort in making a plugin which helps you detect the users preferred language, as sent by the HTTP header.
+
+= Features
+
+* Splits the http-header into languages specified by the user
+* Returns empty array if header is illformed.
+* Corrects case to xx-XX
+* Sorted by priority given, as much as possible.
+* Gives you the most important language
+* Gives compatible languages
+See also: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
+
+= Example
+
+  class SomeController < ApplicationController
+    def some_action
+      
+      request.user_preferred_languages
+      # => [ 'nl-NL', 'nl-BE', 'nl', 'en-US', 'en' ]
+      
+      available = %w{en en-US nl-BE}
+      request.preferred_language_from(available)
+      # => 'nl-BE'
+      
+      request.user_preferred_language
+      # => [ 'en-GB']
+      available = %w{en-US}
+      request.compatible_language_from(available)
+      # => 'en-US'
+    end
+  end
+
+= Changenotes
+
+2009-03-12: Rails 2.3 compatible
+
+Copyright (c) 2008 Iain Hecker, released under the MIT license
diff --git a/vendor/plugins/http_accept_language/Rakefile b/vendor/plugins/http_accept_language/Rakefile
new file mode 100644 (file)
index 0000000..c764e2b
--- /dev/null
@@ -0,0 +1,22 @@
+require 'rake'
+require 'rake/testtask'
+require 'rake/rdoctask'
+
+desc 'Default: run unit tests.'
+task :default => :test
+
+desc 'Test the http_accept_language plugin.'
+Rake::TestTask.new(:test) do |t|
+  t.libs << 'lib'
+  t.pattern = 'test/**/*_test.rb'
+  t.verbose = true
+end
+
+desc 'Generate documentation for the http_accept_language plugin.'
+Rake::RDocTask.new(:rdoc) do |rdoc|
+  rdoc.rdoc_dir = 'rdoc'
+  rdoc.title    = 'HttpAcceptLanguage'
+  rdoc.options << '--line-numbers' << '--inline-source'
+  rdoc.rdoc_files.include('README')
+  rdoc.rdoc_files.include('lib/**/*.rb')
+end
diff --git a/vendor/plugins/http_accept_language/init.rb b/vendor/plugins/http_accept_language/init.rb
new file mode 100644 (file)
index 0000000..67e2687
--- /dev/null
@@ -0,0 +1,7 @@
+if defined?(ActionController::Request)
+  ActionController::Request.send :include, HttpAcceptLanguage
+elsif defined?(ActionController::AbstractRequest)
+  ActionController::AbstractRequest.send :include, HttpAcceptLanguage
+else
+  ActionController::CgiRequest.send :include, HttpAcceptLanguage
+end
diff --git a/vendor/plugins/http_accept_language/lib/http_accept_language.rb b/vendor/plugins/http_accept_language/lib/http_accept_language.rb
new file mode 100644 (file)
index 0000000..bf34935
--- /dev/null
@@ -0,0 +1,52 @@
+module HttpAcceptLanguage
+
+  # Returns a sorted array based on user preference in HTTP_ACCEPT_LANGUAGE.
+  # Browsers send this HTTP header, so don't think this is holy.
+  #
+  # Example:
+  #
+  #   request.user_preferred_languages
+  #   # => [ 'nl-NL', 'nl-BE', 'nl', 'en-US', 'en' ]
+  #
+  def user_preferred_languages
+    @user_preferred_languages ||= env['HTTP_ACCEPT_LANGUAGE'].split(',').collect do |l|
+      l += ';q=1.0' unless l =~ /;q=\d+\.\d+$/
+      l.split(';q=')
+    end.sort do |x,y|
+      raise "Not correctly formatted" unless x.first =~ /^[a-z\-]+$/i
+      y.last.to_f <=> x.last.to_f
+    end.collect do |l|
+      l.first.downcase.gsub(/-[a-z]+$/i) { |x| x.upcase }
+    end
+  rescue # Just rescue anything if the browser messed up badly.
+    []
+  end
+
+  # Finds the locale specifically requested by the browser.
+  #
+  # Example:
+  #
+  #   request.preferred_language_from I18n.available_locales
+  #   # => 'nl'
+  #
+  def preferred_language_from(array)
+    (user_preferred_languages & array.collect { |i| i.to_s }).first
+  end
+
+  # Returns the first of the user_preferred_languages that is compatible
+  # with the available locales. Ignores region.
+  #
+  # Example:
+  #
+  #   request.compatible_language_from I18n.available_locales
+  #
+  def compatible_language_from(array)
+    user_preferred_languages.map do |x|
+      x = x.to_s.split("-")[0]
+      array.find do |y|
+        y.to_s.split("-")[0] == x
+      end
+    end.compact.first
+  end
+
+end
diff --git a/vendor/plugins/http_accept_language/tasks/http_accept_language_tasks.rake b/vendor/plugins/http_accept_language/tasks/http_accept_language_tasks.rake
new file mode 100644 (file)
index 0000000..cfa4476
--- /dev/null
@@ -0,0 +1,4 @@
+# desc "Explaining what the task does"
+# task :http_accept_language do
+#   # Task goes here
+# end
diff --git a/vendor/plugins/http_accept_language/test/http_accept_language_test.rb b/vendor/plugins/http_accept_language/test/http_accept_language_test.rb
new file mode 100644 (file)
index 0000000..8c8a446
--- /dev/null
@@ -0,0 +1,45 @@
+$:.unshift(File.dirname(__FILE__) + '/../lib')
+require 'http_accept_language'
+require 'test/unit'
+
+class MockedCgiRequest
+  include HttpAcceptLanguage
+  def env
+    @env ||= {'HTTP_ACCEPT_LANGUAGE' => 'en-us,en-gb;q=0.8,en;q=0.6'}
+  end
+end
+
+class HttpAcceptLanguageTest < Test::Unit::TestCase
+  def test_should_return_empty_array
+    request.env['HTTP_ACCEPT_LANGUAGE'] = nil
+    assert_equal [], request.user_preferred_languages
+  end
+
+  def test_should_properly_split
+    assert_equal %w{en-US en-GB en}, request.user_preferred_languages
+  end
+
+  def test_should_ignore_jambled_header
+    request.env['HTTP_ACCEPT_LANGUAGE'] = 'odkhjf89fioma098jq .,.,'
+    assert_equal [], request.user_preferred_languages
+  end
+
+  def test_should_find_first_available_language
+    assert_equal 'en-GB', request.preferred_language_from(%w{en en-GB})
+  end
+
+  def test_should_find_first_compatible_language
+    assert_equal 'en-hk', request.compatible_language_from(%w{en-hk})
+    assert_equal 'en', request.compatible_language_from(%w{en})
+  end
+
+  def test_should_find_first_compatible_from_user_preferred
+    request.env['HTTP_ACCEPT_LANGUAGE'] = 'en-us,de-de'
+    assert_equal 'en', request.compatible_language_from(%w{de en})
+  end
+
+  private
+  def request
+    @request ||= MockedCgiRequest.new
+  end
+end
diff --git a/vendor/plugins/rails-i18n/.gitignore b/vendor/plugins/rails-i18n/.gitignore
new file mode 100644 (file)
index 0000000..ba5ac4b
--- /dev/null
@@ -0,0 +1,3 @@
+.DS_Store
+Icon?
+._*
diff --git a/vendor/plugins/rails-i18n/README.textile b/vendor/plugins/rails-i18n/README.textile
new file mode 100644 (file)
index 0000000..d3d0129
--- /dev/null
@@ -0,0 +1,55 @@
+h1. Rails Locale Data Repository
+
+Central point to collect locale data for use in Ruby on Rails.
+
+To contribute just send me a pull request, patch or plain text file. 
+
+Please include a comment with the language/locale name and your name and email address (or other contact information like your github profile) to the locale file so people can come contact you and ask questions etc.
+
+Also, please pay attention to save your files as UTF-8.
+
+h2. Rails translations plugin
+
+To include the translations of this repository into your application, simply install it as a plugin:
+
+./script/plugin install git://github.com/zargony/rails-i18n.git
+
+The plugin will load Rails core translations of locales you are using in your app. (i.e. if you have en.yml, de.yml and fr.yml in config/locales, Rails core locales for :de and :fr are added). These translations are added to the I18n load path before application locales, so you can still override them in your application locales.
+
+h2. Rails translations
+
+Simple tool for testing the integrity of your key structure:
+
+Make sure you have the Ruby I18n gem installed. If you haven't already you can try: 
+
+sudo gem install svenfuchs-i18n -s http://gems.github.com
+
+Then, standing in the root directory of this repository, do:
+
+ruby test/structure.rb [your-locale]
+
+Assuming that there is a file locale/[your-locale].{rb,yml} you will get a summary of missing and bogus keys as well as extra pluralization keys in your locale data.
+
+h2. Rails I18n Textmate bundle
+
+Still in a very experimental state but already helpful for me.
+
+The bundle adds a single command: extract translation (shift-cmd-e)
+
+# expects you to have a string selected (including single or double quotes)
+# prompts you for a dot-separated key
+# opens the file /log/translations.yml (creating it when not available)
+# adds the translation (mapping the dot-separated key to nested yaml keys)
+# replaces the selected string in your source-code with the dot-separated key wrapped into a call to t(your.key)
+
+It currently expects that you're working with English views, so it uses :en as a locale in translation.yml.
+
+Note that Textmate, while active, won't reload the translations.yml for you if it's already open. When you give the focus to another application and then go back to Textmate (e.g. with cmd-tab, cmd-tab) it will reload the file. I found it useful to have translations.yml open on a second monitor while extracting translations from my application.
+
+I still have to figure out how to automatically select the next string after this command has run. It works well to just use Textmate's "Find Next" though:
+
+# hit cmd-f and give it <code>("|').*(\1)</code> as a search expression, tell it to use this as a "Regular expression"
+# hit return and it will select the next string
+# use shift-cmd-e to extract that string
+# hit cmd-g to select the next string
+
diff --git a/vendor/plugins/rails-i18n/init.rb b/vendor/plugins/rails-i18n/init.rb
new file mode 100644 (file)
index 0000000..35b987c
--- /dev/null
@@ -0,0 +1,15 @@
+# Rails plugin initialization: add default locales to I18n.load_path
+# - only add locales that are actually used in the application
+# - prepend locales so that they can be overwritten by the application
+#
+# We do this after_initialize as the I18n.load_path might be modified
+# in a config/initializers/initializer.rb
+class Rails::Initializer #:nodoc:
+  def after_initialize_with_translations_import
+    after_initialize_without_translations_import
+    used_locales = I18n.load_path.map { |f| File.basename(f).gsub(/\.(rb|yml)$/, '') }.uniq
+    files_to_add = Dir[File.join(File.dirname(__FILE__), 'locale', "{#{used_locales.join(',')}}.{rb,yml}")]
+    I18n.load_path.unshift(*files_to_add)
+  end
+  alias_method_chain :after_initialize, :translations_import 
+end
diff --git a/vendor/plugins/rails-i18n/locale/ar.yml b/vendor/plugins/rails-i18n/locale/ar.yml
new file mode 100644 (file)
index 0000000..71241ba
--- /dev/null
@@ -0,0 +1,121 @@
+# Arabic translations for Ruby on Rails 
+# by Rida Al Barazi (me@rida.me)
+# updated by Ahmed Hazem (nardgo@gmail.com)
+
+ar:
+  date:
+    formats:
+      default: "%Y-%m-%d"
+      short: "%e %b"
+      long: "%B %e, %Y"
+
+    day_names: [الأحد, الإثنين, الثلاثاء, الأربعاء, الخميس, الجمعة, السبت]
+    abbr_day_names: [الأحد, الإثنين, الثلاثاء, الأربعاء, الخميس, الجمعة, السبت]
+    month_names: [~, يناير, فبراير, مارس, ابريل, مايو, يونيو, يوليو, اغسطس, سبتمبر, اكتوبر, نوفمبر, ديسمبر]
+    abbr_month_names: [~, يناير, فبراير, مارس, ابريل, مايو, يونيو, يوليو, اغسطس, سبتمبر, اكتوبر, نوفمبر, ديسمبر]
+    order: [ :day, :month, :year ]
+  
+  time:
+    formats:
+      default: "%a %b %d %H:%M:%S %Z %Y"
+      short: "%d %b %H:%M"
+      long: "%B %d, %Y %H:%M"
+      only_second: "%S"
+      
+      datetime:
+        formats:
+          default: "%Y-%m-%dT%H:%M:%S%Z"
+          
+    am: 'صباحا'
+    pm: 'مساءا'
+
+  # Used in array.to_sentence.
+  support:
+    array:
+      sentence_connector: "و"
+      skip_last_comma: false
+      
+  datetime:
+    distance_in_words:
+      half_a_minute: 'نصف دقيقة'
+      less_than_x_seconds:
+        one: 'أقل من ثانية'
+        other: '{{count}} ثوان'
+      x_seconds:
+        one: 'ثانية واحدة'
+        other: '{{count}} ثوان'
+      less_than_x_minutes:
+        one: 'أقل من دقيقة'
+        other: '{{count}} دقائق'
+      x_minutes:
+        one: 'دقيقة واحدة'
+        other: '{{count}} دقائق'
+      about_x_hours:
+        one: 'حوالي ساعة واحدة'
+        other: '{{count}} ساعات'
+      x_days:
+        one: 'يوم واحد'
+        other: '{{count}} أيام'
+      about_x_months:
+        one: 'حوالي شهر واحد'
+        other: '{{count}} أشهر'
+      x_months:
+        one: 'شهر واحد'
+        other: '{{count}} أشهر'
+      about_x_years:
+        one: 'حوالي سنة'
+        other: '{{count}} سنوات'
+      over_x_years:
+        one: 'أكثر من سنة'
+        other: '{{count}} سنوات'
+      
+  number:
+    format:
+      separator: '.'
+      delimiter: ','
+      precision: 3
+    human:
+      format:
+        delimiter: ','
+        precision: 1
+    currency:
+      format:
+        separator: '.'
+        delimiter: ','
+        precision: 2
+        format: '%u %n'
+        unit: '$'
+    percentage:
+      format:
+        delimiter: ','
+    precision:
+      format:
+        delimiter: ','
+        
+  activerecord:
+    errors:
+      template:
+        header:
+          one: "ليس بالامكان حفظ {{model}}: خطأ واحد."
+          other: "ليس بالامكان حفظ {{model}}: {{count}} أخطاء."
+        body: "يرجى التحقق من الحقول التالية:"
+      messages:
+        inclusion: "ليس خيارا مقبولا"
+        exclusion: "محجوز"
+        invalid: "غير معرف أو محدد"
+        confirmation: "لا تتوافق مع التأكيد"
+        accepted: "يجب أن تقبل"
+        empty: "فارغ، يرجى ملء الحقل"
+        blank: "فارغ، يرجى ملء الحقل"
+        too_long: "أطول من اللازم (الحد الأقصى هو {{count}})"
+        too_short: "أقصر من اللازم (الحد الأدنى هو {{count}})"
+        wrong_length: "بطول غير مناسب (يجب أن يكون {{count}})"
+        taken: "غير متوفر (مستخدم)"
+        not_a_number: "ليس رقما"
+        greater_than: "يجب أن يكون أكبر من {{count}}"
+        greater_than_or_equal_to: "يجب أن يكون أكبر من أو يساوي {{count}}"
+        equal_to: "يجب أن يساوي {{count}}"
+        less_than: "يجب أن يكون أصغر من {{count}}"
+        less_than_or_equal_to: "يجب أن يكون أصغر من أو يساوي {{count}}"
+        odd: "يجب أن يكون فردي"
+        even: "يجب أن يكون زوجي"
diff --git a/vendor/plugins/rails-i18n/locale/bs.yml b/vendor/plugins/rails-i18n/locale/bs.yml
new file mode 100644 (file)
index 0000000..f33df6f
--- /dev/null
@@ -0,0 +1,114 @@
+# bs [Bosnian] are the same as bs_BA [Bosnian (Bosnia and Herzegovina)]
+# translations for Ruby on Rails by Dejan Dimić (dejan.dimic@gmail.com)
+
+"bs":
+  date:
+    formats:
+      default: "%d/%m/%Y"
+      short: "%e %b"
+      long: "%B %e, %Y"
+      only_day: "%e"
+
+    day_names: [nedjelja, ponedjeljak, utorak, srijeda, četvrtak, petak, subota]
+    abbr_day_names: [ned, pon, uto, sri, čet, pet, sub]
+    month_names: [~, Januar, Februar, Mart, April, Maj, Јun, Јul, Аvgust, Septembar, Оktobar, Novembar, Decembar]
+    abbr_month_names: [~, Jan, Feb, Mar, Apr, Мaj, Jun, Јul, Avg, Sep, Okt, Nov, Dec]
+    order: [ :day, :month, :year ]
+
+  time:
+    formats:
+      default: "%a %b %d %H:%M:%S %Z %Y"
+      time: "%H:%M"
+      short: "%d %b %H:%M"
+      long: "%B %d, %Y %H:%M"
+      only_second: "%S"
+
+    am: 'АМ'
+    pm: 'PМ'
+
+  datetime:
+    formats:
+      default: "%Y-%m-%dT%H:%M:%S%Z"
+    distance_in_words:
+      half_a_minute: 'pola minute'
+      less_than_x_seconds:
+        zero: 'manje od 1 sekunde'
+        one: 'manje od 1 sekunde'
+        few: 'manje od {{count}} sekunde'
+        other: 'manje od {{count}} sekundi'
+      x_seconds:
+        one: '1 sekunda'
+        few: '{{count}} sekunde'
+        other: '{{count}} sekundi'
+      less_than_x_minutes:
+        zero: 'manje оd minuta'
+        one: 'manje od 1 minut'
+        other: 'manje od {{count}} minuta'
+      x_minutes:
+        one: '1 minut'
+        other: '{{count}} minuta'
+      about_x_hours:
+        one: 'oko 1 sat'
+        few: 'око {{count}} sata'
+        other: 'око {{count}} sati'
+      x_days:
+        one: '1 dan'
+        other: '{{count}} dana'
+      about_x_months:
+        one: 'око 1 mjesec'
+        few: 'око {{count}} mjeseca'
+        other: 'око {{count}} mjeseci'
+      x_months:
+        one: '1 mjesec'
+        few: '{{count}} mjeseca'
+        other: '{{count}} mjeseci'
+      about_x_years:
+        one: 'око 1 godine'
+        other: 'око {{count}} godine'
+      over_x_years:
+        one: 'preko 1 godine'
+        other: 'preko {{count}} godine'
+
+  number:
+    format:
+      precision: 3
+      separator: ','
+      delimiter: '.'
+    currency:
+      format:
+        unit: 'KM'
+        precision: 2
+        format: '%n %u'
+
+  support:
+    array:
+      sentence_connector: "i"
+
+  activerecord:
+    errors:
+      template:
+        header:
+          one: 'nisam uspio sačuvati {{model}}: 1 greška.'
+          few: 'nisam uspio sačuvati {{model}}: {{count}} greške.'
+          other: 'nisam uspio sačuvati {{model}}: {{count}} greški.'
+        body: "Molim Vas da provjerite slijedeća polja:"
+      messages:
+        inclusion: "nije u listi"
+        exclusion: "nije dostupno"
+        invalid: "nije ispravan"
+        confirmation: "se ne slaže sa svojom potvrdom"
+        accepted: "mora biti prihvaćeno"
+        empty: "mora biti dat"
+        blank: "mora biti dat"
+        too_long: "je predugačak (ne više od {{count}} karaktera)"
+        too_short: "је prekratak (ne manje od {{count}} karaktera)"
+        wrong_length: "nije odgovarajuće dužine (mora biti {{count}} karaktera)"
+        taken: "је zauzeto"
+        not_a_number: "nije broj"
+        greater_than: "mora biti veće od {{count}}"
+        greater_than_or_equal_to: "mora biti veće ili jednako {{count}}"
+        equal_to: "mora biti jednako {{count}}"
+        less_than: "mora biti manje od {{count}}"
+        less_than_or_equal_to: "mora biti manje ili jednako {{count}}"
+        odd: "mora biti neparno"
+        even: "mora biti parno"
diff --git a/vendor/plugins/rails-i18n/locale/cz.rb b/vendor/plugins/rails-i18n/locale/cz.rb
new file mode 100644 (file)
index 0000000..5e34630
--- /dev/null
@@ -0,0 +1,166 @@
+# Czech translations for Ruby on Rails 
+# by Karel Minařík (karmi@karmi.cz)
+
+{ :'cz' => {
+
+    # ActiveSupport
+    :support => {
+      :array => {
+        :two_words_connector => ' a ',
+        :sentence_connector => 'a',
+        :skip_last_comma => true
+      }
+    },
+
+    # Date
+    :date => {
+      :formats => {
+        :default => "%d. %m. %Y",
+        :short   => "%d %b",
+        :long    => "%d. %B %Y",
+      },
+      :day_names         => %w{Neděle Pondělí Úterý Středa Čtvrtek Pátek Sobota},
+      :abbr_day_names    => %w{Ne Po Út St Čt Pá So},
+      :month_names       => %w{~ Leden Únor Březen Duben Květen Červen Červenec Srpen Září Říjen Listopad Prosinec},
+      :abbr_month_names  => %w{~ Led Úno Bře Dub Kvě Čvn Čvc Srp Zář Říj Lis Pro},
+      :order             => [:day, :month, :year]
+    },
+
+    # Time
+    :time => {
+      :formats => {
+        :default => "%a %d. %B %Y %H:%M %z",
+        :short   => "%d. %m. %H:%M",
+        :long    => "%A %d. %B %Y %H:%M",
+      },
+      :am => 'am',
+      :pm => 'pm'
+    },
+
+    # Numbers
+    :number => {
+      :format => {
+        :precision => 3,
+        :separator => '.',
+        :delimiter => ','
+      },
+      :currency => {
+        :format => {
+          :unit => 'Kč',
+          :precision => 2,
+          :format    => '%n %u',
+          :separator => ",",
+          :delimiter => " ",
+        }
+      },
+      :human => {
+        :format => {
+          :precision => 1,
+          :delimiter => ''
+        },
+       :storage_units => {
+         :format => "%n %u",
+         :units => {
+           :byte => "B",
+           :kb   => "KB",
+           :mb   => "MB",
+           :gb   => "GB",
+           :tb   => "TB",
+         }
+       }
+      },
+      :percentage => {
+        :format => {
+          :delimiter => ''
+        }
+      },
+      :precision => {
+        :format => {
+          :delimiter => ''
+        }
+      }
+    },
+
+    # Distance of time ... helper
+    # NOTE: In Czech language, these values are different for the past and for the future. Preference has been given to past here.
+    :datetime => {
+      :distance_in_words => {
+        :half_a_minute => 'půl minutou',
+        :less_than_x_seconds => {
+          :one => 'asi před sekundou',
+          :other => 'asi před {{count}} sekundami'
+        },
+        :x_seconds => {
+          :one => 'sekundou',
+          :other => '{{count}} sekundami'
+        },
+        :less_than_x_minutes => {
+          :one => 'před necelou minutou',
+          :other => 'před ani ne {{count}} minutami'
+        },
+        :x_minutes => {
+          :one => 'minutou',
+          :other => '{{count}} minutami'
+        },
+        :about_x_hours => {
+          :one => 'asi hodinou',
+          :other => 'asi {{count}} hodinami'
+        },
+        :x_days => {
+          :one => '24 hodinami',
+          :other => '{{count}} dny'
+        },
+        :about_x_months => {
+          :one => 'asi měsícem',
+          :other => 'asi {{count}} měsíci'
+        },
+        :x_months => {
+          :one => 'měsícem',
+          :other => '{{count}} měsíci'
+        },
+        :about_x_years => {
+          :one => 'asi rokem',
+          :other => 'asi {{count}} roky'
+        },
+        :over_x_years => {
+          :one => 'více než před rokem',
+          :other => 'více než {{count}} roky'
+        }
+      }
+    },
+
+    # ActiveRecord validation messages
+    :activerecord => {
+      :errors => {
+        :messages => {
+          :inclusion           => "není v seznamu povolených hodnot",
+          :exclusion           => "je vyhrazeno pro jiný účel",
+          :invalid             => "není platná hodnota",
+          :confirmation        => "nebylo potvrzeno",
+          :accepted            => "musí být potvrzeno",
+          :empty               => "nesmí být prázdný/é",
+          :blank               => "je povinná položka", # alternate formulation: "is required"
+          :too_long            => "je příliš dlouhá/ý (max. {{count}} znaků)",
+          :too_short           => "je příliš krátký/á (min. {{count}} znaků)",
+          :wrong_length        => "nemá správnou délku (očekáváno {{count}} znaků)",
+          :taken               => "již databáze obsahuje",
+          :not_a_number        => "není číslo",
+          :greater_than        => "musí být větší než {{count}}",
+          :greater_than_or_equal_to => "musí být větší nebo rovno {{count}}",
+          :equal_to            => "musí být rovno {{count}}",
+          :less_than           => "musí být méně než {{count}}",
+          :less_than_or_equal_to    => "musí být méně nebo rovno {{count}}",
+          :odd                 => "musí být liché číslo",
+          :even                => "musí být sudé číslo"
+        },
+        :template => {
+          :header   => {
+            :one => "Při ukládání objektu {{model}} došlo k chybám a nebylo jej možné uložit",
+            :other => "Při ukládání objektu {{model}} došlo ke {{count}} chybám a nebylo možné jej uložit"
+          },
+          :body  => "Následující pole obsahují chybně vyplněné údaje:"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/vendor/plugins/rails-i18n/locale/da.yml b/vendor/plugins/rails-i18n/locale/da.yml
new file mode 100644 (file)
index 0000000..f89cc1d
--- /dev/null
@@ -0,0 +1,149 @@
+# Danish translation file for standard Ruby on Rails internationalization
+# by Lars Hoeg (larshoeg@gmail.com, http://www.lenio.dk/)
+
+da:
+  # active_support
+  date:
+    formats:
+      default: "%d.%m.%Y"
+      short: "%e. %b %Y"
+      long: "%e. %B %Y"
+
+    day_names: [søndag, mandag, tirsdag, onsdag, torsdag, fredag, lørdag]
+    abbr_day_names: [sø, ma, ti, 'on', to, fr, lø]
+    month_names: [~, januar, februar, marts, april, maj, juni, juli, august, september, oktober, november, december]
+    abbr_month_names: [~, jan, feb, mar, apr, maj, jun, jul, aug, sep, okt, nov, dec]
+    order: [ :day, :month, :year ]
+
+  time:
+    formats:
+      default: "%e. %B %Y, %H:%M"
+      short: "%e. %b %Y, %H:%M"
+      long: "%A, %e. %B %Y, %H:%M"
+    am: ""
+    pm: ""
+
+  support:
+    array:
+      # Rails 2.2
+      #sentence_connector: "og"
+      #skip_last_comma: true
+      # Rails 2.3
+      words_connector: ", "
+      two_words_connector: " og "
+      last_word_connector: " og "
+
+  datetime:
+    distance_in_words:
+      half_a_minute: "et halvt minut"
+      less_than_x_seconds:
+        one:  "mindre end et sekund"
+        other: "mindre end {{count}} sekunder"
+      x_seconds:
+        one:  "et sekund"
+        other: "{{count}} sekunder"
+      less_than_x_minutes:
+        one:  "mindre end et minut"
+        other: "mindre end {{count}} minutter"
+      x_minutes:
+        one:  "et minut"
+        other: "{{count}} minutter"
+      about_x_hours:
+        one:  "cirka en time"
+        other: "cirka {{count}} timer"
+      x_days:
+        one:  "en dag"
+        other: "{{count}} dage"
+      about_x_months:
+        one:  "cirka en måned"
+        other: "cirka {{count}} måneder"
+      x_months:
+        one:  "en måned"
+        other: "{{count}} måneder"
+      about_x_years:
+        one:  "cirka et år"
+        other: "cirka {{count}} år"
+      over_x_years:
+        one:  "mere end et år"
+        other: "mere end {{count}} år"
+    prompts:
+      second: "Sekund"
+      minute: "Minut"
+      hour: "Time"
+      day: "Dag"
+      month: "Måned"
+      year: "År"
+
+  # action_view
+  number:
+    format:
+      separator: ","
+      delimiter: "."
+      precision: 3
+    currency:
+      format:
+        format: "%u %n"
+        unit: "DKK"
+        separator: ","
+        delimiter: "."
+        precision: 2
+    precision:
+      format:
+        # separator:
+        delimiter: ""
+        # precision:
+    human:
+      format:
+        # separator: 
+        delimiter: ""
+        precision: 1
+      # Rails 2.2
+      #storage_units: [Bytes, KB, MB, GB, TB]
+      # Rails 2.3
+      storage_units:
+        # Storage units output formatting.
+        # %u is the storage unit, %n is the number (default: 2 MB)
+        format: "%n %u"
+        units:
+          byte:
+            one:   "Byte"
+            other: "Bytes"
+          kb: "KB"
+          mb: "MB"
+          gb: "GB"
+          tb: "TB"
+    percentage:
+      format:
+        # separator:
+        delimiter: ""
+        # precision:
+
+  # active_record
+  activerecord:
+    errors:
+      messages:
+        inclusion: "er ikke i listen"
+        exclusion: "er reserveret"
+        invalid: "er ikke gyldig"
+        confirmation: "stemmer ikke overens"
+        accepted: "skal accepteres"
+        empty: "må ikke udelades"
+        blank: "skal udfyldes"
+        too_long: "er for lang (maksimum {{count}} tegn)"
+        too_short: "er for kort (minimum {{count}} tegn)"
+        wrong_length: "har forkert længde (skulle være {{count}} tegn)"
+        taken: "er allerede brugt"
+        not_a_number: "er ikke et tal"
+        greater_than: "skal være større end {{count}}"
+        greater_than_or_equal_to: "skal være større end eller lig med {{count}}"
+        equal_to: "skal være lig med {{count}}"
+        less_than: "skal være mindre end {{count}}"
+        less_than_or_equal_to: "skal være mindre end eller lig med {{count}}"
+        odd: "skal være ulige"
+        even: "skal være lige"
+
+      template:
+        header:
+          one:   "En fejl forhindrede {{model}} i at blive gemt"
+          other:  "{{count}} fejl forhindrede denne {{model}} i at blive gemt"
+        body: "Der var problemer med følgende felter:"
diff --git a/vendor/plugins/rails-i18n/locale/de.yml b/vendor/plugins/rails-i18n/locale/de.yml
new file mode 100644 (file)
index 0000000..a76e113
--- /dev/null
@@ -0,0 +1,120 @@
+# German translations for Ruby on Rails 
+# by Clemens Kofler (clemens@railway.at)
+
+de:
+  date:
+    formats:
+      default: "%d.%m.%Y"
+      short: "%e. %b"
+      long: "%e. %B %Y"
+      only_day: "%e"
+
+    day_names: [Sonntag, Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag]
+    abbr_day_names: [So, Mo, Di, Mi, Do, Fr, Sa]
+    month_names: [~, Januar, Februar, März, April, Mai, Juni, Juli, August, September, Oktober, November, Dezember]
+    abbr_month_names: [~, Jan, Feb, Mär, Apr, Mai, Jun, Jul, Aug, Sep, Okt, Nov, Dez]
+    order: [ :day, :month, :year ]
+  
+  time:
+    formats:
+      default: "%A, %e. %B %Y, %H:%M Uhr"
+      short: "%e. %B, %H:%M Uhr"
+      long: "%A, %e. %B %Y, %H:%M Uhr"
+      time: "%H:%M"
+
+    am: "vormittags"
+    pm: "nachmittags"
+      
+  datetime:
+    distance_in_words:
+      half_a_minute: 'eine halbe Minute'
+      less_than_x_seconds:
+        zero: 'weniger als 1 Sekunde'
+        one: 'weniger als 1 Sekunde'
+        other: 'weniger als {{count}} Sekunden'
+      x_seconds:
+        one: '1 Sekunde'
+        other: '{{count}} Sekunden'
+      less_than_x_minutes:
+        zero: 'weniger als 1 Minute'
+        one: 'weniger als eine Minute'
+        other: 'weniger als {{count}} Minuten'
+      x_minutes:
+        one: '1 Minute'
+        other: '{{count}} Minuten'
+      about_x_hours:
+        one: 'etwa 1 Stunde'
+        other: 'etwa {{count}} Stunden'
+      x_days:
+        one: '1 Tag'
+        other: '{{count}} Tage'
+      about_x_months:
+        one: 'etwa 1 Monat'
+        other: 'etwa {{count}} Monate'
+      x_months:
+        one: '1 Monat'
+        other: '{{count}} Monate'
+      about_x_years:
+        one: 'etwa 1 Jahr'
+        other: 'etwa {{count}} Jahre'
+      over_x_years:
+        one: 'mehr als 1 Jahr'
+        other: 'mehr als {{count}} Jahre'
+      
+  number:
+    format:
+      precision: 2
+      separator: ','
+      delimiter: '.'
+    currency:
+      format:
+        unit: '€'
+        format: '%n%u'
+        separator: 
+        delimiter: 
+        precision: 
+    percentage:
+      format:
+        delimiter: ""
+    precision:
+      format:
+        delimiter: ""
+    human:
+      format:
+        delimiter: ""
+        precision: 1
+
+  support:
+    array:
+      sentence_connector: "und"
+      skip_last_comma: true
+        
+  activerecord:
+    errors:
+      template:
+        header:
+          one:    "Konnte dieses {{model}} Objekt nicht speichern: 1 Fehler."
+          other:  "Konnte dieses {{model}} Objekt nicht speichern: {{count}} Fehler."
+        body: "Bitte überprüfen Sie die folgenden Felder:"
+
+      messages:
+        inclusion: "ist kein gültiger Wert"
+        exclusion: "ist nicht verfügbar"
+        invalid: "ist nicht gültig"
+        confirmation: "stimmt nicht mit der Bestätigung überein"
+        accepted: "muss akzeptiert werden"
+        empty: "muss ausgefüllt werden"
+        blank: "muss ausgefüllt werden"
+        too_long: "ist zu lang (nicht mehr als {{count}} Zeichen)"
+        too_short: "ist zu kurz (nicht weniger als {{count}} Zeichen)"
+        wrong_length: "hat die falsche Länge (muss genau {{count}} Zeichen haben)"
+        taken: "ist bereits vergeben"
+        not_a_number: "ist keine Zahl"
+        greater_than: "muss größer als {{count}} sein"
+        greater_than_or_equal_to: "muss größer oder gleich {{count}} sein"
+        equal_to: "muss genau {{count}} sein"
+        less_than: "muss kleiner als {{count}} sein"
+        less_than_or_equal_to: "muss kleiner oder gleich {{count}} sein"
+        odd: "muss ungerade sein"
+        even: "muss gerade sein"
+      models:
diff --git a/vendor/plugins/rails-i18n/locale/ee.yml b/vendor/plugins/rails-i18n/locale/ee.yml
new file mode 100644 (file)
index 0000000..e59c84a
--- /dev/null
@@ -0,0 +1,109 @@
+# Estonian localization for Ruby on Rails 2.2+
+# by Zahhar Kirillov <zahhar@gmail.com>
+
+ee:
+  date:
+    formats:
+      default: "%d.%m.%Y"
+      short: "%d.%m.%y"
+      long: "%d. %B %Y"
+
+    day_names: [pühapäev, esmaspäev, teisipäev, kolmapäev, neljapäev, reede, laupäev]
+    standalone_day_names: [Pühapäev, Esmaspäev, Teisipäev, Kolmapäev, Neljapäev, Reede, Laupäev]
+    abbr_day_names: [P, E, T, K, N, R, L]
+
+    month_names: [~, jaanuar, veebruar, märts, aprill, mai, juuni, juuli, august, september, oktoober, november, detsember]
+    standalone_month_names: [~, Jaanuar, Veebruar, Märts, Aprill, Mai, Juuni, Juuli, August, September, Oktoober, November, Detsember]
+    abbr_month_names: [~, jaan., veebr., märts, apr., mai, juuni, juuli, aug., sept., okt., nov., dets.]
+    standalone_abbr_month_names: [~, jaan., veebr., märts, apr., mai, juuni, juuli, aug., sept., okt., nov., dets.]
+
+    order: [ :day, :month, :year ]
+
+  time:
+    formats:
+      default: "%d. %B %Y, %H:%M"
+      short: "%d.%m.%y, %H:%M"
+      long: "%a, %d. %b %Y, %H:%M:%S %z"
+
+    am: "enne lõunat"
+    pm: "pärast lõunat"
+
+  number:
+    format:
+      separator: ","
+      delimiter: " "
+      precision: 2
+      
+    currency:
+      format:
+        format: "%n %u"
+        unit: "kr"
+        separator: ","
+        delimiter: " "
+        precision: 2
+        
+    percentage:
+      format:
+        delimiter: ""
+        
+    precision:
+      format:
+        delimiter: ""
+        
+    human:
+      format:
+        delimiter: ""
+        precision: 1
+      storage_units: [bait, KB, MB, GB, TB]
+
+  datetime:
+    distance_in_words:
+      half_a_minute: "pool minutit"
+      less_than_x_seconds:
+        one:   "vähem kui {{count}} sekund"
+        other: "vähem kui {{count}} sekundit"
+      x_seconds:
+        one:   "{{count}} sekund"
+        other: "{{count}} sekundit"
+      less_than_x_minutes:
+        one:   "vähem kui {{count}} minut"
+        other: "vähem kui {{count}} minutit"
+      x_minutes:
+        one:   "{{count}} minut"
+        other: "{{count}} minutit"
+      about_x_hours:
+        one:   "umbes {{count}} tund"
+        other: "umbes {{count}} tundi"
+      x_days:
+        one:   "{{count}} päev"
+        other: "{{count}} päeva"
+      about_x_months:
+        one:   "umbes {{count}} kuu"
+        other: "umbes {{count}} kuud"
+      x_months:
+        one:   "{{count}} kuu"
+        other: "{{count}} kuud"
+      about_x_years:
+        one:   "umbes {{count}} aasta"
+        other: "umbes {{count}} aastat"
+      over_x_years:
+        one:   "üle {{count}} aasta"
+        other: "üle {{count}} aastat"
+    prompts:
+      year: "Aasta"
+      month: "Kuu"
+      day: "Päev"
+      hour: "Tunde"
+      minute: "Minutit"
+      second: "Sekundit"
+
+  support:
+    array:
+      # Rails 2.2
+      sentence_connector: "ja"
+      skip_last_comma: true
+      
+      # Rails 2.3
+      words_connector: ", "
+      two_words_connector: " ja "
+      last_word_connector: " ja "
diff --git a/vendor/plugins/rails-i18n/locale/el.yml b/vendor/plugins/rails-i18n/locale/el.yml
new file mode 100644 (file)
index 0000000..8f97b8d
--- /dev/null
@@ -0,0 +1,191 @@
+# Greek translations for Ruby on Rails
+# by Nick Kokkos (nkokkos@gmail.com)
+
+el:
+  number:
+    # Used in number_with_delimiter()
+    # These are also the defaults for 'currency', 'percentage', 'precision', and 'human'
+    format:
+      # Sets the separator between the units, for more precision (e.g. 1,0 / 2,0 == 0,5)
+      separator: ","
+      # Delimets thousands (e.g. 1.000.000 is a million) (always in groups of three)
+      delimiter: "."
+      # Number of decimals, behind the separator (the number 1 with a precision of 2 gives: 1,00)
+      precision: 3
+        
+    # Used in number_to_currency()
+    currency:
+      format:
+        # Where is the currency sign? %u is the currency unit, %n the number (default: $5.00)
+        # in Greek currency values would be represented as (e.g €5,78:five euros and seventy eight  cents or €1.012,45: one thousand twelve euros and 45 cents)
+        format: "%u%n"
+        unit: "€"
+        # These three are to override number.format and are optional
+        separator: ","
+        delimiter: "."
+        precision: 2
+        
+    # Used in number_to_percentage()
+    percentage:
+      format:
+        # These three are to override number.format and are optional
+        # separator: 
+        delimiter: ""
+        # precision: 
+        
+    # Used in number_to_precision()
+    precision:
+      format:
+        # These three are to override number.format and are optional
+        # separator:
+        delimiter: ""
+        # precision:
+        
+    # Used in number_to_human_size()
+    human:
+      format:
+        # These three are to override number.format and are optional
+        # separator: 
+        delimiter: ""
+        precision: 1
+        storage_units: [Bytes, KB, MB, GB, TB]
+
+  # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
+  datetime:
+    distance_in_words:
+      half_a_minute: "μισό λεπτό"
+      less_than_x_seconds:
+        one:   "λιγότερο απο ένα δευτερόλεπτο"
+        other: "λιγότερο απο {{count}} δευτερόλεπτα"
+      x_seconds:
+        one:   "1 δευτερόλεπτο"
+        other: "{{count}} δευτερόλεπτα"
+      less_than_x_minutes:
+        one:   "λιγότερο απο ένα λεπτό"
+        other: "λιγότερο απο {{count}} λεπτά"
+      x_minutes:
+        one:   "ένα λεπτό"
+        other: "{{count}} λεπτά"
+      about_x_hours:
+        one:   "1 ώρα περίπου"
+        other: "{{count}} hours περίπου"
+      x_days:
+        one:   "1 μέρα"
+        other: "{{count}} μέρες"
+      about_x_months:
+        one:   "1 μήνα περίπου"
+        other: "{{count}} μήνες περίπου"
+      x_months:
+        one:   "1 μήνα"
+        other: "{{count}} μήνες"
+      about_x_years:
+        one:   "ένα χρόνο περίπου"
+        other: "{{count}} χρόνια περίπου"
+      over_x_years:
+        one:   "πάνω απο 1 χρόνο"
+        other: "πάνω απο {{count}} χρόνια"
+
+  activerecord:
+    errors:
+      template:
+        header:
+          one:    "1 λάθος παρεμπόδισε αυτό το {{model}} να αποθηκευθεί"
+          other:  "{{count}} λάθη εμπόδισαν αυτό το {{model}} να αποθηκευθεί"
+        # The variable :count is also available
+        body: "Υπήρξαν προβλήματα με τα ακόλουθα πεδία :"
+
+
+  activerecord:
+    errors:
+      # The values :model, :attribute and :value are always available for interpolation
+      # The value :count is available when applicable. Can be used for pluralization.
+      messages:
+        inclusion: "δεν συμπεριλαβάνεται στη λίστα"
+        exclusion: "είναι δεσμευμένο"
+        invalid: "είναι άκυρο"
+        confirmation: "δεν ταιριάζει με την επικύρωση"
+        accepted: "πρέπει να είναι αποδεκτό"
+        empty: "δεν πρέπει να είναι άδειο"
+        blank: "δεν πρέπει να είναι κενό"
+        too_long: "είναι πολύ μεγάλο (το μέγιστο μήκος είναι {{count}} χαρακτήρες)"
+        too_short: "είναι πολύ μικρό (το μικρότερο μήκος είναι {{count}} χαρακτήρες)"
+        wrong_length: "έχει λανθασμένο μήκος (πρέπει να είναι {{count}} χαρακτήρες)"
+        taken: "το έχουν ήδη χρησιμοποιήσει"
+        not_a_number: "δεν είναι ένας αριθμός"
+        greater_than: "πρέπει να είναι μεγαλύτερο απο {{count}}"
+        greater_than_or_equal_to: "πρέπει να είναι μεγαλύτερο ή ίσον με {{count}}"
+        equal_to: "πρέπει να είναι ίσον με  {{count}}"
+        less_than: "πρέπει να είναι λιγότερο απο {{count}}"
+        less_than_or_equal_to: "πρέπει να είναι λιγότερο ή ίσον με {{count}}"
+        odd: "πρέπει να είναι περιττός"
+        even: "πρέπει να είναι άρτιος"
+        # Append your own errors here or at the model/attributes scope.
+
+      # You can define own errors for models or model attributes.
+      # The values :model, :attribute and :value are always available for interpolation.
+      #
+      # For example,
+      #   models:
+      #     user:
+      #       blank: "This is a custom blank message for {{model}}: {{attribute}}"
+      #       attributes:
+      #         login:
+      #           blank: "This is a custom blank message for User login"
+      # Will define custom blank validation message for User model and 
+      # custom blank validation message for login attribute of User model.
+      # models:
+        
+    # Translate model names. Used in Model.human_name().
+    #models:
+      # For example,
+      #   user: "Dude"
+      # will translate User model name to "Dude"
+    
+    # Translate model attribute names. Used in Model.human_attribute_name(attribute).
+    #attributes:
+      # For example,
+      #   user:
+      #     login: "Handle"
+      # will translate User attribute "login" as "Handle"
+
+
+  date:
+    formats:
+      # Use the strftime parameters for formats.
+      # When no format has been given, it uses default.
+      # You can provide other formats here if you like!
+      default: "%d-%m-%Y"
+      short: "%d %b"
+      long: "%d %B %Y"
+      only_day: "%e"
+      
+    day_names: [Κυριακή, Δευτέρα, Τρίτη, Τετάρτη, Πέμπτη, Παρασκευή, Σάββατο]
+    abbr_day_names: [Κυρ, Δευ, Τρι, Τετ, Πεμ, Παρ, Σαβ]
+      
+    # Don't forget the nil at the beginning; there's no such thing as a 0th month
+    month_names: [~, Ιανοάριος, Φεβρουάριος, Μάρτιος, Απρίλιος, Μάιος, Ιούνιος, Ιούλιος, Άυγουστος, Σεπτέμβριος, Οκτώβριος, Νοέμβριος, Δεκέμβριος]
+    abbr_month_names: [~, Ιαν, Φεβ, Μάρ, Απρ, Μαι, Ιουν, Ιούλ, Αυγ, Σεπ, Οκτ, Νοε, Δεκ]
+    # Used in date_select and datime_select.
+    # original was: order: [ :year, :month, :day ] 
+    order: [ :day, :month, :year ]
+
+  time:
+    formats:
+      default: "%a %d %b %Y, %H:%M:%S %z"
+      time: "%H:%M"
+      short: "%d %b %H:%M"
+      long: "%d %B %Y %H:%M"
+      only_second: "%S"
+    am: "am"
+    pm: "pm"
+
+  datetime:
+    formats:
+      default: "%d-%m-%YT%H:%M:%S%Z"
+    
+
+# Used in array.to_sentence.
+  support:
+    array:
+      sentence_connector: "και"
+      skip_last_comma: false
diff --git a/vendor/plugins/rails-i18n/locale/es-AR.rb b/vendor/plugins/rails-i18n/locale/es-AR.rb
new file mode 100644 (file)
index 0000000..3009040
--- /dev/null
@@ -0,0 +1,107 @@
+{
+  :'es-AR' => {
+
+    :date => {
+      :formats => {
+        :default      => "%e/%m/%Y",
+        :short        => "%e %b",
+        :long         => "%e de %B de %Y",
+        :only_day     => "%e"
+      },
+      :day_names      => %w(Domingo Lunes Martes Miércoles Jueves Viernes Sábado),
+      :abbr_day_names => %w(Dom Lun Mar Mie Jue Vie Sab),
+      :month_names    => [nil] + %w(Enero Febrero Marzo Abril Mayo Junio Julio Agosto Setiembre Octubre Noviembre Diciembre),
+      :abbr_month_names => [nil] + %w(Ene Feb Mar Abr May Jun Jul Ago Set Oct Nov Dic),
+      :order          => [:day, :month, :year]
+    },
+    :time => {
+      :formats => {
+        :default      => "%A, %e de %B de %Y, %H:%M hs",
+        :time         => "%H:%M hs",
+        :short        => "%e/%m, %H:%M hs",
+        :long         => "%A, %e de %B de %Y, %H:%M hs",
+        :only_second  => "%S"
+      },
+      :datetime => {
+        :formats => {
+          :default => "%d/%m/%Y-%dT%H:%M:%S%Z"
+        }
+      },
+      :time_with_zone => {
+        :formats => {
+          :default => lambda { |time| "%Y-%m-%d %H:%M:%S #{time.formatted_offset(false, 'UTC')}" }
+        }
+      },
+      :am => 'am',
+      :pm => 'pm'
+    },
+    # date helper distancia en palabras
+    #NOTE: Pluralization rules have changed! Rather than simply submitting an array, i18n now allows for a hash with the keys:
+    # :zero, :one & :other   - FUNKY (but a pain to find...)!
+    :datetime => {
+      :distance_in_words => {
+        :half_a_minute       => 'medio minuto',
+        :less_than_x_seconds => {:zero => 'menos de 1 segundo', :one => 'menos de 1 segundo', :other => 'menos de {{count}} segundos'},
+        :x_seconds           => {:one => '1 second', :other => '{{count}} seconds'},
+        :less_than_x_minutes => {:zero => 'menos de 1 minuto', :one => 'menos de 1 minuto', :other => 'menos de {{count}} minutos'},
+        :x_minutes           => {:one => "1 minuto", :other => "{{count}} minutos"},
+        :about_x_hours       => {:one => 'aproximadamente 1 hora', :other => 'aproximadamente {{count}} horas'},
+        :x_days              => {:one => '1 día', :other => '{{count}} días'},
+        :about_x_months      => {:one => 'aproximandamente 1 mes', :other => 'aproximadamente {{count}} mes'},
+        :x_months            => {:one => '1 month', :other => '{{count}} mes'},
+        :about_x_years       => {:one => 'aproximadamente 1 año', :other => 'aproximadamente {{count}} años'},
+        :over_x_years        => {:one => 'más de 1 año', :other => 'más de {{count}} años'}
+      }
+    },
+
+    # numbers
+    :number => {
+      :format => {
+        :precision => 3,
+        :separator => ',',
+        :delimiter => '.'
+      },
+      :currency => {
+        :format => {
+          :unit => '$',
+          :precision => 2,
+          :format => '%u %n'
+        }
+      }
+    },
+
+    # Active Record
+    :activerecord => {
+      :errors => {
+        :template => {
+          :header => {
+            :one => "{{model}} no pudo guardarse: 1 error", 
+            :other => "{{model}}: {{count}} errores."
+          },
+          :body => "Por favor revise los campos siguientes:"
+        },
+        :messages => {
+          :inclusion => "no está incluido en la lista",
+          :exclusion => "no está disponible",
+          :invalid => "no es válido",
+          :confirmation => "no coincide con la confirmación",
+          :accepted  => "debe ser aceptado",
+          :empty => "no puede estar vacío",
+          :blank => "no puede estar en blanco",
+          :too_long => "es demasiado largo (no más de {{count}} caracteres)",
+          :too_short => "es demasiado corto (no menos de {{count}} caracteres)",
+          :wrong_length => "no tiene la longitud correcta (debe ser de {{count}} caracteres)",
+          :taken => "no está disponible",
+          :not_a_number => "no es un número",
+          :greater_than => "debe ser mayor a {{count}}",
+          :greater_than_or_equal_to => "debe ser mayor o igual a {{count}}",
+          :equal_to => "debe ser igual a {{count}}",
+          :less_than => "debe ser menor que {{count}}",
+          :less_than_or_equal_to => "debe ser menor o igual que {{count}}",
+          :odd => "debe ser par",
+          :even => "debe ser impar"
+        }
+      }
+    }
+  }
+}
diff --git a/vendor/plugins/rails-i18n/locale/es-MX.yml b/vendor/plugins/rails-i18n/locale/es-MX.yml
new file mode 100644 (file)
index 0000000..99728ba
--- /dev/null
@@ -0,0 +1,113 @@
+# Spanish as spoken in Mexico (es-MX) translations for Rails
+# by Edgar J. Suárez (edgar.js@gmail.com)
+
+es-MX:
+  number:
+    percentage:
+      format:
+        delimiter: ""
+    currency:
+      format: "%u%n"
+      delimiter: ","
+      unit: "$"
+      precision: 2
+      separator: "."
+    format:
+      delimiter: ","
+      precision: 3
+      separator: "."
+    human:
+      format:
+        delimiter: ""
+        precision: 1
+      storage_units: [Bytes, KB, MB, GB, TB]
+    precision:
+      format:
+        delimiter: ""
+
+  date:
+    order: [:day, :month, :year]
+    abbr_day_names: [Dom, Lun, Mar, Mie, Jue, Vie, Sab]
+    abbr_month_names: [~, Ene, Feb, Mar, Abr, May, Jun, Jul, Ago, Sep, Oct, Nov, Dic]
+    day_names: [Domingo, Lunes, Martes, Miércoles, Jueves, Viernes, Sábado]
+    month_names: [~, Enero, Febrero, Marzo, Abril, Mayo, Junio, Julio, Agosto, Septiembre, Octubre, Noviembre, Diciembre]
+    formats:
+      short: "%d de %b"
+      default: "%d/%m/%Y"
+      long: "%A, %d de %B de %Y"
+  time:
+    formats:
+      short: "%d de %b a las %H:%M hrs"
+      default: "%a, %d de %b de %Y a las %H:%M:%S %Z"
+      long: "%A, %d de %B de %Y a las %I:%M %p"
+    am: "am"
+    pm: "pm"
+
+  datetime:
+    distance_in_words:
+      half_a_minute: "medio minuto"
+      less_than_x_seconds:
+        one: "menos de 1 segundo"
+        other: "menos de {{count}} segundos"
+      x_seconds:
+        one: "1 segundo"
+        other: "{{count}} segundos"
+      less_than_x_minutes:
+        one: "menos de 1 minuto"
+        other: "menos de {{count}} minutos"
+      x_minutes:
+        one: "1 minuto"
+        other: "{{count}} minutos"
+      about_x_hours:
+        one: "cerca de 1 hora"
+        other: "cerca de {{count}} horas"
+      x_days:
+        one: "1 día"
+        other: "{{count}} días"
+      about_x_months:
+        one: "cerca de 1 mes"
+        other: "cerca de {{count}} meses"
+      x_months:
+        one: "1 mes"
+        other: "{{count}} meses"
+      about_x_years:
+        other: "cerca de {{count}} años"
+        one: "cerca de 1 año"
+      over_x_years:
+        one: "más de 1 año"
+        other: "más de {{count}} años"
+
+  activerecord:
+    errors:
+      template:
+        header:
+          one: "{{model}} no pudo guardarse debido a 1 error"
+          other: "{{model}} no pudo guardarse debido a {{count}} errores"
+        body: "Revise que los siguientes campos sean válidos:"
+      messages:
+        inclusion: "no está incluído en la lista"
+        exclusion: "está reservado"
+        invalid: "es inválido"
+        invalid_date: "es una fecha inválida"
+        confirmation: "no coincide con la confirmación"
+        blank: "no puede estar en blanco"
+        empty: "no puede estar vacío"
+        not_a_number: "no es un número"
+        taken: "ya ha sido tomado"
+        less_than: "debe ser menor que {{count}}"
+        less_than_or_equal_to: "debe ser menor o igual que {{count}}"
+        greater_than: "debe ser mayor que {{count}}"
+        greater_than_or_equal_to: "debe ser mayor o igual que {{count}}"
+        too_short:
+          one: "es demasiado corto (mínimo 1 caracter)"
+          other: "es demasiado corto (mínimo {{count}} caracteres)"
+        too_long:
+          one: "es demasiado largo (máximo 1 caracter)"
+          other: "es demasiado largo (máximo {{count}} caracteres)"
+        equal_to: "debe ser igual a {{count}}"
+        wrong_length:
+          one: "longitud errónea (debe ser de 1 caracter)"
+          other: "longitud errónea (debe ser de {{count}} caracteres)"
+        accepted: "debe ser aceptado"
+        even: "debe ser un número par"
+        odd: "debe ser un número non"
diff --git a/vendor/plugins/rails-i18n/locale/es.yml b/vendor/plugins/rails-i18n/locale/es.yml
new file mode 100644 (file)
index 0000000..287bfda
--- /dev/null
@@ -0,0 +1,173 @@
+# Spanish translations for Rails
+# by Francisco Fernando García Nieto (ffgarcianieto@gmail.com)
+
+es:
+  number:
+    # Used in number_with_delimiter()
+    # These are also the defaults for 'currency', 'percentage', 'precision', and 'human'
+    format:
+      # Sets the separator between the units, for more precision (e.g. 1.0 / 2.0 == 0.5)
+      separator: "," 
+      # Delimets thousands (e.g. 1,000,000 is a million) (always in groups of three)
+      delimiter: "." 
+      # Number of decimals, behind the separator (1 with a precision of 2 gives: 1.00)
+      precision: 3
+
+    # Used in number_to_currency()
+    currency:
+      format:
+        # Where is the currency sign? %u is the currency unit, %n the number (default: $5.00)
+        format: "%n %u" 
+        unit: "€" 
+        # These three are to override number.format and are optional
+        separator: "," 
+        delimiter: "." 
+        precision: 2
+
+    # Used in number_to_percentage()
+    percentage:
+      format:
+        # These three are to override number.format and are optional
+        # separator: 
+        delimiter: "" 
+        # precision: 
+
+    # Used in number_to_precision()
+    precision:
+      format:
+        # These three are to override number.format and are optional
+        # separator:
+        delimiter: "" 
+        # precision:
+
+    # Used in number_to_human_size()
+    human:
+      format:
+        # These three are to override number.format and are optional
+        # separator: 
+        delimiter: "" 
+        precision: 1
+      # Rails <= v2.2.2
+      # storage_units: [Bytes, KB, MB, GB, TB]
+      # Rails >= v2.3
+      storage_units:
+        format: "%n %u"
+        units:
+          byte:
+            one:   "Byte"
+            other: "Bytes"
+          kb: "KB"
+          mb: "MB"
+          gb: "GB"
+          tb: "TB"
+
+  # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
+  datetime:
+    distance_in_words:
+      half_a_minute: "medio minuto" 
+      less_than_x_seconds:
+        one:  "menos de 1 segundo" 
+        other: "menos de {{count}} segundos"
+      x_seconds:
+        one:  "1 segundo" 
+        other: "{{count}} segundos" 
+      less_than_x_minutes:
+        one:  "menos de 1 minuto" 
+        other: "menos de {{count}} minutos" 
+      x_minutes:
+        one:  "1 minuto" 
+        other: "{{count}} minutos" 
+      about_x_hours:
+        one:  "alrededor de 1 hora" 
+        other: "alrededor de {{count}} horas" 
+      x_days:
+        one:  "1 día" 
+        other: "{{count}} días" 
+      about_x_months:
+        one:  "alrededor de 1 mes" 
+        other: "alrededor de {{count}} meses" 
+      x_months:
+        one:  "1 mes" 
+        other: "{{count}} meses" 
+      about_x_years:
+        one:  "alrededor de 1 año" 
+        other: "alrededor de {{count}} años" 
+      over_x_years:
+        one:  "más de 1 año" 
+        other: "más de {{count}} años" 
+
+  activerecord:
+    errors:
+      template:
+        header:
+          one:   "no se pudo guardar este {{model}} porque se encontró 1 error" 
+          other:  "no se pudo guardar este {{model}} porque se encontraron {{count}} errores" 
+        # The variable :count is also available
+        body: "Se encontraron problemas con los siguientes campos:" 
+
+      # The values :model, :attribute and :value are always available for interpolation
+      # The value :count is available when applicable. Can be used for pluralization.
+      messages:
+        inclusion: "no está incluido en la lista" 
+        exclusion: "está reservado" 
+        invalid: "no es válido" 
+        confirmation: "no coincide con la confirmación"
+        accepted: "debe ser aceptado"
+        empty: "no puede estar vacío"
+        blank: "no puede estar en blanco"
+        too_long: "es demasiado largo ({{count}} caracteres máximo)"
+        too_short: "es demasiado corto ({{count}} caracteres mínimo)"
+        wrong_length: "no tiene la longitud correcta ({{count}} caracteres exactos)"
+        taken: "ya está en uso"
+        not_a_number: "no es un número"
+        greater_than: "debe ser mayor que {{count}}"
+        greater_than_or_equal_to: "debe ser mayor que o igual a {{count}}"
+        equal_to: "debe ser igual a {{count}}"
+        less_than: "debe ser menor que {{count}}"
+        less_than_or_equal_to: "debe ser menor que o igual a {{count}}"
+        odd: "debe ser impar"
+        even: "debe ser par"
+
+        # Append your own errors here or at the model/attributes scope.
+
+      models:
+        # Overrides default messages
+
+      attributes:
+        # Overrides model and default messages.
+
+  date:
+    formats:
+      # Use the strftime parameters for formats.
+      # When no format has been given, it uses default.
+      # You can provide other formats here if you like!
+      default: "%e/%m/%Y"
+      short: "%d de %b" 
+      long: "%d de %B de %Y" 
+
+    day_names: [Domingo, Lunes, Martes, Miércoles, Jueves, Viernes, Sábado]
+    abbr_day_names: [Dom, Lun, Mar, Mie, Jue, Vie, Sab]
+
+    # Don't forget the nil at the beginning; there's no such thing as a 0th month
+    month_names: [~, Enero, Febrero, Marzo, Abril, Mayo, Junio, Julio, Agosto, Setiembre, Octubre, Noviembre, Diciembre]
+    abbr_month_names: [~, Ene, Feb, Mar, Abr, May, Jun, Jul, Ago, Set, Oct, Nov, Dic]
+    # Used in date_select and datime_select.
+    order: [ :year, :month, :day ]
+
+  time:
+    formats:
+      default: "%A, %d de %B de %Y %H:%M:%S %z"
+      short: "%d de %b %H:%M" 
+      long: "%d de %B de %Y %H:%M" 
+    am: "am" 
+    pm: "pm" 
+
+# Used in array.to_sentence.
+  support:
+    array:
+      # Rails <= v.2.2.2
+      # sentence_connector: "y"
+      # Rails >= v.2.3
+      words_connector: ", "
+      two_words_connector: " y "
+      last_word_connector: " y "
\ No newline at end of file
diff --git a/vendor/plugins/rails-i18n/locale/fa.yml b/vendor/plugins/rails-i18n/locale/fa.yml
new file mode 100644 (file)
index 0000000..e6102aa
--- /dev/null
@@ -0,0 +1,119 @@
+# Persian translations for Ruby on Rails 
+# by Reza (reza@balatarin.com)
+
+fa:
+  number:
+    format:
+      precision: 2
+      separator: '٫'
+      delimiter: '٬'
+    currency:
+      format:
+        unit: 'ریال'
+        format: '%n %u'
+        separator: '٫'
+        delimiter: '٬'
+        precision: 0
+    percentage:
+      format:
+        delimiter: ""
+    precision:
+      format:
+        delimiter: ""
+    human:
+      format:
+        delimiter: ""
+        precision: 1
+      storage_units: [بایت, کیلوبایت, مگابایت, گیگابایت, ترابایت]
+
+  date:
+    formats:
+      default: "%Y/%m/%d"
+      short: "%m/%d"
+      long: "%e %B %Y"
+      only_day: "%e"
+
+    day_names: [یکشنبه, دوشنبه, سه‌شنبه, چهارشنبه, پنج‌شنبه, جمعه, شنبه]
+    abbr_day_names: [ی, د, س, چ, پ, ج]
+    month_names: [~, ژانویه, فوریه, مارس, آوریل, مه, ژوئن, ژوئیه, اوت, سپتامبر, اکتبر, نوامبر, دسامبر]
+    abbr_month_names: [~, ژانویه, فوریه, مارس, آوریل, مه, ژوئن, ژوئیه, اوت, سپتامبر, اکتبر, نوامبر, دسامبر]
+    order: [ :day, :month, :year ]
+
+  time:
+    formats:
+      default: "%A، %e %B %Y، ساعت %H:%M:%S (%Z)"
+      short: "%e %B، ساعت %H:%M"
+      long: "%e %B %Y، ساعت %H:%M"
+      time: "%H:%M"
+    am: "قبل از ظهر"
+    pm: "بعد از ظهر"
+
+  support:
+    array:
+      sentence_connector: "و"
+      skip_last_comma: true
+
+  datetime:
+    distance_in_words:
+      half_a_minute: "نیم دقیقه"
+      less_than_x_seconds:
+        zero:  "کمتر از ۱ ثانیه"
+        one: "۱ ثانیه"
+        other: "کمتر  از {{count}} ثانیه"
+      x_seconds:
+        one:  "۱ ثانیه"
+        other: "{{count}} ثانیه"
+      less_than_x_minutes:
+        one:  "کمتر از ۱ دقیقه"
+        other: "کمتر از {{count}} دقیقه"
+      x_minutes:
+        one:  "۱ دقیقه"
+        other: "{{count}} دقیقه"
+      about_x_hours:
+        one:  "حدود ۱ ساعت"
+        other: "حدود {{count}} ساعت"
+      x_days:
+        one:  "۱ روز"
+        other: "{{count}} روز"
+      about_x_months:
+        one:  "حدود ۱ ماه"
+        other: "حدود {{count}} ماه"
+      x_months:
+        one:  "۱ ماه"
+        other: "{{count}} ماه"
+      about_x_years:
+        one:  "حدود ۱ سال"
+        other: "حدود {{count}} سال"
+      over_x_years:
+        one:  "بیش از ۱ سال"
+        other: "بیش از {{count}} سال"
+
+  activerecord:
+    errors:
+      template:
+        header: 
+          one: "1 خطا جلوی ذخیره این {{model}} را گرفت"
+          other: "{{count}} خطا جلوی ذخیره این {{model}} را گرفت"
+        body: "موارد زیر مشکل داشت:"
+      messages:
+        inclusion: "در لیست موجود نیست" 
+        exclusion: "رزرو است" 
+        invalid: "نامعتبر است" 
+        confirmation: "با تایید نمی‌خواند"
+        accepted: "باید پذیرفته شود" 
+        empty: "نمی‌تواند خالی باشد"
+        blank: "نباید خالی باشد"
+        too_long: "بلند است (حداکثر {{count}} کاراکتر)"
+        too_short: "کوتاه است (حداقل {{count}} کاراکتر)"
+        wrong_length: "نااندازه است (باید {{count}} کاراکتر باشد)"
+        taken: "پیشتر گرفته شده"
+        not_a_number: "عدد نیست"
+        greater_than: "باید بزرگتر از {{count}} باشد"
+        greater_than_or_equal_to: "باید بزرگتر یا برابر {{count}} باشد"
+        equal_to: "باید برابر {{count}} باشد"
+        less_than: "باید کمتر از {{count}} باشد"
+        less_than_or_equal_to: "باید کمتر یا برابر {{count}} باشد"
+        odd: "باید فرد باشد"
+        even: "باید زوج باشد"
+        presence: "را فراموش کرده‌اید"
+        format: "فرمت مشکل دارد"
\ No newline at end of file
diff --git a/vendor/plugins/rails-i18n/locale/fi.yml b/vendor/plugins/rails-i18n/locale/fi.yml
new file mode 100644 (file)
index 0000000..44c51ac
--- /dev/null
@@ -0,0 +1,132 @@
+# Finnish translations for Ruby on Rails 
+# by Marko Seppä (marko.seppa@gmail.com)
+
+fi:
+  date:
+    formats:
+      default: "%e. %Bta %Y"
+      long: "%A%e. %Bta %Y"
+      short: "%e.%m.%Y"
+    day_names: [Sunnuntai, Maanantai, Tiistai, Keskiviikko, Torstai, Perjantai, Lauantai]
+    abbr_day_names: [Su, Ma, Ti, Ke, To, Pe, La]
+    month_names: [~, Tammikuu, Helmikuu, Maaliskuu, Huhtikuu, Toukokuu, Kesäkuu, Heinäkuu, Elokuu, Syyskuu, Lokakuu, Marraskuu, Joulukuu]
+    abbr_month_names: [~, Tammi, Helmi, Maalis, Huhti, Touko, Kesä, Heinä, Elo, Syys, Loka, Marras, Joulu]
+    order: [:day, :month, :year]
+
+  time:
+    formats:
+      default: "%a, %e. %b %Y %H:%M:%S %z"
+      short: "%e. %b %H:%M"
+      long: "%B %d, %Y %H:%M"
+    am: "aamupäivä"
+    pm: "iltapäivä"
+
+  support:
+    array:
+      words_connector: ", "
+      two_words_connector: " ja "
+      last_word_connector: " ja "
+
+
+
+  number:
+    format:
+      separator: ","
+      delimiter: "."
+      precision: 3
+    
+    currency:
+      format:
+        format: "%n %u"
+        unit: "€"
+        separator: ","
+        delimiter: "."
+        precision: 2
+        
+    percentage:
+      format:
+        # separator:
+        delimiter: ""
+        # precision: 
+
+    precision:
+      format:
+        # separator:
+        delimiter: ""
+        # precision:
+        
+    human:
+      format:
+        delimiter: ""
+        precision: 1
+      storage_units: [Tavua, KB, MB, GB, TB]
+  datetime:
+    distance_in_words:
+      half_a_minute: "puoli minuuttia"
+      less_than_x_seconds:
+        one:   "aiemmin kuin sekunti"
+        other: "aiemmin kuin {{count}} sekuntia"
+      x_seconds:
+        one:   "sekunti"
+        other: "{{count}} sekuntia"
+      less_than_x_minutes:
+        one:   "aiemmin kuin minuutti"
+        other: "aiemmin kuin {{count}} minuuttia"
+      x_minutes:
+        one:   "minuutti"
+        other: "{{count}} minuuttia"
+      about_x_hours:
+        one:   "noin tunti"
+        other: "noin {{count}} tuntia"
+      x_days:
+        one:   "päivä"
+        other: "{{count}} päivää"
+      about_x_months:
+        one:   "noin kuukausi"
+        other: "noin {{count}} kuukautta"
+      x_months:
+        one:   "kuukausi"
+        other: "{{count}} kuukautta"
+      about_x_years:
+        one:   "vuosi"
+        other: "noin {{count}} vuotta"
+      over_x_years:
+        one:   "yli vuosi"
+        other: "yli {{count}} vuotta"
+    prompts:
+      year:   "Vuosi"
+      month:  "Kuukausi"
+      day:    "Päivä"
+      hour:   "Tunti"
+      minute: "Minuutti"
+      second: "Sekuntia"
+  
+  activerecord:
+    errors:
+      template:
+        header:
+          one:    "1 virhe esti tämän {{model}} mallinteen tallentamisen"
+          other:  "{{count}} virhettä esti tämän {{model}} mallinteen tallentamisen"
+        body: "Seuraavat kentät aiheuttivat ongelmia:"
+      messages:
+        inclusion: "ei löydy listauksesta"
+        exclusion: "on jo varattu"
+        invalid: "on kelvoton"
+        confirmation: "ei vastaa varmennusta"
+        accepted: "täytyy olla hyväksytty"
+        empty: "ei voi olla tyhjä"
+        blank: "ei voi olla sisällötön"
+        too_long: "on liian pitkä (maksimi on {{count}} merkkiä)"
+        too_short: "on liian lyhyt (minimi on {{count}} merkkiä)"
+        wrong_length: "on väärän pituinen (täytyy olla täsmälleen {{count}} merkkiä)"
+        taken: "on jo käytössä"
+        not_a_number: "ei ole numero"
+        greater_than: "täytyy olla suurempi kuin {{count}}"
+        greater_than_or_equal_to: "täytyy olla suurempi tai yhtä suuri kuin{{count}}"
+        equal_to: "täytyy olla yhtä suuri kuin {{count}}"
+        less_than: "täytyy olla pienempi kuin {{count}}"
+        less_than_or_equal_to: "täytyy olla pienempi tai yhtä suuri kuin {{count}}"
+        odd: "täytyy olla pariton"
+        even: "täytyy olla parillinen"
\ No newline at end of file
diff --git a/vendor/plugins/rails-i18n/locale/fr-CH.yml b/vendor/plugins/rails-i18n/locale/fr-CH.yml
new file mode 100644 (file)
index 0000000..baa144c
--- /dev/null
@@ -0,0 +1,123 @@
+# French (Switzerland) translations for Ruby on Rails 
+# by Yann Lugrin (yann.lugrin@sans-savoir.net, http://github.com/yannlugrin)
+#
+# original translation into French by Christian Lescuyer
+# contributor: Sebastien Grosjean - ZenCocoon.com
+
+fr-CH:
+  date:
+    formats:
+      default: "%d.%m.%Y"
+      short: "%e. %b"
+      long: "%e. %B %Y"
+      long_ordinal: "%e %B %Y"
+      only_day: "%e"
+
+    day_names: [dimanche, lundi, mardi, mercredi, jeudi, vendredi, samedi]
+    abbr_day_names: [dim, lun, mar, mer, jeu, ven, sam]
+    month_names: [~, janvier, février, mars, avril, mai, juin, juillet, août, septembre, octobre, novembre, décembre]
+    abbr_month_names: [~, jan., fév., mar., avr., mai, juin, juil., août, sept., oct., nov., déc.]
+    order: [ :day, :month, :year ]
+  
+  time:
+    formats:
+      default: "%d. %B %Y %H:%M"
+      time: "%H:%M"
+      short: "%d. %b %H:%M"
+      long: "%A, %d. %B %Y %H:%M:%S %Z"
+      long_ordinal: "%A %d %B %Y %H:%M:%S %Z"
+      only_second: "%S"
+    am: 'am'
+    pm: 'pm'
+
+  datetime:
+    distance_in_words:
+      half_a_minute: "une demi-minute"
+      less_than_x_seconds:
+        one:   "moins d'une seconde"
+        other: "moins de {{count}} secondes"
+      x_seconds:
+        one:   "1 seconde"
+        other: "{{count}} secondes"
+      less_than_x_minutes:
+        one:   "moins d'une minute"
+        other: "moins de {{count}} minutes"
+      x_minutes:
+        one:   "1 minute"
+        other: "{{count}} minutes"
+      about_x_hours:
+        one:   "environ une heure"
+        other: "environ {{count}} heures"
+      x_days:
+        one:   "1 jour"
+        other: "{{count}} jours"
+      about_x_months:
+        one:   "environ un mois"
+        other: "environ {{count}} mois"
+      x_months:
+        one:   "1 mois"
+        other: "{{count}} mois"
+      about_x_years:
+        one:   "environ un an"
+        other: "environ {{count}} ans"
+      over_x_years:
+        one:   "plus d'un an"
+        other: "plus de {{count}} ans"
+    prompts:
+      year:   "Année"
+      month:  "Mois"
+      day:    "Jour"
+      hour:   "Heure"
+      minute: "Minute"
+      second: "Seconde"
+  
+  number:
+    format:
+      precision: 3
+      separator: '.'
+      delimiter: "'"
+    currency:
+      format:
+        unit: 'CHF'
+        precision: 2
+        format: '%n %u'
+    human:
+      format:
+        precision: 2
+      storage_units: [ Octet, ko, Mo, Go, To ]
+  
+  support:
+    array:
+      sentence_connector: 'et'
+      skip_last_comma: true
+      word_connector: ", "
+      two_words_connector: " et "
+      last_word_connector: " et "
+  
+  activerecord:
+    errors:
+      template:
+        header: 
+          one: "Impossible d'enregistrer {{model}}: 1 erreur"
+          other: "Impossible d'enregistrer {{model}}: {{count}} erreurs."
+        body: "Veuillez vérifier les champs suivants :"
+      messages:
+        inclusion: "n'est pas inclus(e) dans la liste"
+        exclusion: "n'est pas disponible"
+        invalid: "n'est pas valide"
+        confirmation: "ne concorde pas avec la confirmation"
+        accepted: "doit être accepté(e)"
+        empty: "doit être rempli(e)"
+        blank: "doit être rempli(e)"
+        too_long: "est trop long (pas plus de {{count}} caractères)"
+        too_short: "est trop court (au moins {{count}} caractères)"
+        wrong_length: "ne fait pas la bonne longueur (doit comporter {{count}} caractères)"
+        taken: "n'est pas disponible"
+        not_a_number: "n'est pas un nombre"
+        greater_than: "doit être supérieur à {{count}}"
+        greater_than_or_equal_to: "doit être supérieur ou égal à {{count}}"
+        equal_to: "doit être égal à {{count}}"
+        less_than: "doit être inférieur à {{count}}"
+        less_than_or_equal_to: "doit être inférieur ou égal à {{count}}"
+        odd: "doit être impair"
+        even: "doit être pair"
diff --git a/vendor/plugins/rails-i18n/locale/fr.yml b/vendor/plugins/rails-i18n/locale/fr.yml
new file mode 100755 (executable)
index 0000000..962cb61
--- /dev/null
@@ -0,0 +1,123 @@
+# French translations for Ruby on Rails 
+# by Christian Lescuyer (christian@flyingcoders.com)
+# contributor: Sebastien Grosjean - ZenCocoon.com
+
+fr:
+  date:
+    formats:
+      default: "%d/%m/%Y"
+      short: "%e %b"
+      long: "%e %B %Y"
+      long_ordinal: "%e %B %Y"
+      only_day: "%e"
+
+    day_names: [dimanche, lundi, mardi, mercredi, jeudi, vendredi, samedi]
+    abbr_day_names: [dim, lun, mar, mer, jeu, ven, sam]
+    month_names: [~, janvier, février, mars, avril, mai, juin, juillet, août, septembre, octobre, novembre, décembre]
+    abbr_month_names: [~, jan., fév., mar., avr., mai, juin, juil., août, sept., oct., nov., déc.]
+    order: [ :day, :month, :year ]
+  
+  time:
+    formats:
+      default: "%d %B %Y %H:%M"
+      time: "%H:%M"
+      short: "%d %b %H:%M"
+      long: "%A %d %B %Y %H:%M:%S %Z"
+      long_ordinal: "%A %d %B %Y %H:%M:%S %Z"
+      only_second: "%S"
+    am: 'am'
+    pm: 'pm'
+
+  datetime:
+    distance_in_words:
+      half_a_minute: "une demi-minute"
+      less_than_x_seconds:
+        zero:  "moins d'une seconde"
+        one:   "moins de 1 seconde"
+        other: "moins de {{count}} secondes"
+      x_seconds:
+        one:   "1 seconde"
+        other: "{{count}} secondes"
+      less_than_x_minutes:
+        zero:  "moins d'une minute"
+        one:   "moins de 1 minute"
+        other: "moins de {{count}} minutes"
+      x_minutes:
+        one:   "1 minute"
+        other: "{{count}} minutes"
+      about_x_hours:
+        one:   "environ une heure"
+        other: "environ {{count}} heures"
+      x_days:
+        one:   "1 jour"
+        other: "{{count}} jours"
+      about_x_months:
+        one:   "environ un mois"
+        other: "environ {{count}} mois"
+      x_months:
+        one:   "1 mois"
+        other: "{{count}} mois"
+      about_x_years:
+        one:   "environ un an"
+        other: "environ {{count}} ans"
+      over_x_years:
+        one:   "plus d'un an"
+        other: "plus de {{count}} ans"
+    prompts:
+      year:   "Année"
+      month:  "Mois"
+      day:    "Jour"
+      hour:   "Heure"
+      minute: "Minute"
+      second: "Seconde"
+  
+  number:
+    format:
+      precision: 3
+      separator: ','
+      delimiter: ' '
+    currency:
+      format:
+        unit: '€'
+        precision: 2
+        format: '%n %u'
+    human:
+      format:
+        precision: 2
+      storage_units: [ Octet, ko, Mo, Go, To ]
+  
+  support:
+    array:
+      sentence_connector: 'et'
+      skip_last_comma: true
+      word_connector: ", "
+      two_words_connector: " et "
+      last_word_connector: " et "
+  
+  activerecord:
+    errors:
+      template:
+        header: 
+          one: "Impossible d'enregistrer {{model}}: 1 erreur"
+          other: "Impossible d'enregistrer {{model}}: {{count}} erreurs."
+        body: "Veuillez vérifier les champs suivants :"
+      messages:
+        inclusion: "n'est pas inclus(e) dans la liste"
+        exclusion: "n'est pas disponible"
+        invalid: "n'est pas valide"
+        confirmation: "ne concorde pas avec la confirmation"
+        accepted: "doit être accepté(e)"
+        empty: "doit être rempli(e)"
+        blank: "doit être rempli(e)"
+        too_long: "est trop long (pas plus de {{count}} caractères)"
+        too_short: "est trop court (au moins {{count}} caractères)"
+        wrong_length: "ne fait pas la bonne longueur (doit comporter {{count}} caractères)"
+        taken: "n'est pas disponible"
+        not_a_number: "n'est pas un nombre"
+        greater_than: "doit être supérieur à {{count}}"
+        greater_than_or_equal_to: "doit être supérieur ou égal à {{count}}"
+        equal_to: "doit être égal à {{count}}"
+        less_than: "doit être inférieur à {{count}}"
+        less_than_or_equal_to: "doit être inférieur ou égal à {{count}}"
+        odd: "doit être impair"
+        even: "doit être pair"
diff --git a/vendor/plugins/rails-i18n/locale/fun/en-AU.rb b/vendor/plugins/rails-i18n/locale/fun/en-AU.rb
new file mode 100644 (file)
index 0000000..3b9e0b5
--- /dev/null
@@ -0,0 +1,105 @@
+# original by Dr. Nic
+
+{
+  :'en-AU' => {
+    :date => {
+      :formats => {
+        :default      => "%d/%m/%Y",
+        :short        => "%e %b",
+        :long         => "%e %B, %Y",
+        :long_ordinal => lambda { |date| "#{date.day.ordinalize} %B, %Y" },
+        :only_day     => "%e"
+      },
+      :day_names => Date::DAYNAMES,
+      :abbr_day_names => Date::ABBR_DAYNAMES,
+      :month_names => Date::MONTHNAMES,
+      :abbr_month_names => Date::ABBR_MONTHNAMES,
+      :order => [:year, :month, :day]
+    },
+    :time => {
+      :formats => {
+        :default      => "%a %b %d %H:%M:%S %Z %Y",
+        :time         => "%H:%M",
+        :short        => "%d %b %H:%M",
+        :long         => "%d %B, %Y %H:%M",
+        :long_ordinal => lambda { |time| "#{time.day.ordinalize} %B, %Y %H:%M" },
+        :only_second  => "%S"
+      },
+      :datetime => {
+        :formats => {
+          :default => "%Y-%m-%dT%H:%M:%S%Z"
+        }
+      },
+      :time_with_zone => {
+        :formats => {
+          :default => lambda { |time| "%Y-%m-%d %H:%M:%S #{time.formatted_offset(false, 'UTC')}" }
+        }
+      },
+      :am => 'am',
+      :pm => 'pm'
+    },
+    :datetime => {
+      :distance_in_words => {
+        :half_a_minute       => 'half a minute',
+        :less_than_x_seconds => {:zero => 'less than a second', :one => 'less than a second', :other => 'less than {{count}} seconds'},
+        :x_seconds           => {:one => '1 second', :other => '{{count}} seconds'},
+        :less_than_x_minutes => {:zero => 'less than a minute', :one => 'less than a minute', :other => 'less than {{count}} minutes'},
+        :x_minutes           => {:one => "1 minute", :other => "{{count}} minutes"},
+        :about_x_hours       => {:one => 'about 1 hour', :other => 'about {{count}} hours'},
+        :x_days              => {:one => '1 day', :other => '{{count}} days'},
+        :about_x_months      => {:one => 'about 1 month', :other => 'about {{count}} months'},
+        :x_months            => {:one => '1 month', :other => '{{count}} months'},
+        :about_x_years       => {:one => 'about 1 year', :other => 'about {{count}} years'},
+        :over_x_years        => {:one => 'over 1 year', :other => 'over {{count}} years'}
+      }
+    },
+    :number => {
+      :format => {
+        :precision => 2,
+        :separator => ',',
+        :delimiter => '.'
+      },
+      :currency => {
+        :format => {
+          :unit => 'AUD',
+          :precision => 2,
+          :format => '%n %u'
+        }
+      }
+    },
+
+    # Active Record
+    :activerecord => {
+      :errors => {
+        :template => {
+          :header => {
+            :one => "Couldn't save this {{model}}: 1 error",
+            :other => "Couldn't save this {{model}}: {{count}} errors."
+          },
+          :body => "Please check the following fields, dude:"
+        },
+        :messages => {
+          :inclusion => "ain't included in the list",
+          :exclusion => "ain't available",
+          :invalid => "ain't valid",
+          :confirmation => "don't match its confirmation",
+          :accepted  => "gotta be accepted",
+          :empty => "gotta be given",
+          :blank => "gotta be given",
+          :too_long => "is too long-ish (no more than {{count}} characters)",
+          :too_short => "is too short-ish (no less than {{count}} characters)",
+          :wrong_length => "ain't got the right length (gotta be {{count}} characters)",
+          :taken => "ain't available",
+          :not_a_number => "ain't a number",
+          :greater_than => "gotta be greater than {{count}}",
+          :greater_than_or_equal_to => "gotta be greater than or equal to {{count}}",
+          :equal_to => "gotta be equal to {{count}}",
+          :less_than => "gotta be less than {{count}}",
+          :less_than_or_equal_to => "gotta be less than or equal to {{count}}",
+          :odd => "gotta be odd",
+          :even => "gotta be even"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/vendor/plugins/rails-i18n/locale/fun/gibberish.rb b/vendor/plugins/rails-i18n/locale/fun/gibberish.rb
new file mode 100644 (file)
index 0000000..a480b0b
--- /dev/null
@@ -0,0 +1,109 @@
+{
+  :'gibberish' => {
+    # date and time formats
+    :date => {
+      :formats => {
+        :default      => "%Y-%m-%d (ish)",
+        :short        => "%e %b (ish)",
+        :long         => "%B %e, %Y (ish)",
+        :long_ordinal => lambda { |date| "%B #{date.day}ish, %Y" },
+        :only_day     => lambda { |date| "#{date.day}ish"}
+      },
+      :day_names => %w(Sunday-ish Monday-ish Tuesday-ish Wednesday-ish Thursday-ish Friday-ish Saturday-ish),
+      :abbr_day_names => %w(Sun-i Mon-i Tue-i Wed-i Thu-i Fri-i Sat-i),
+      :month_names => [nil] + %w(January-ish February-ish March-ish April-ish May-ish June-ish
+                                 July-ish August-ish September-ish October-ish November-rish December-ish),
+      :abbr_month_names => [nil] + %w(Jan-i Feb-i Mar-i Apr-i May-i Jun-i Jul-i Aug-i Sep-i Oct-i Nov-i Dec-i),
+      :order => [:day, :month, :year]
+    },
+    :time => {
+      :formats => {
+        :default      => "%a %b %d %H:%M:%S %Z %Y (ish)",
+        :time         => "%H:%M (ish)",
+        :short        => "%d %b %H:%M (ish)",
+        :long         => "%B %d, %Y %H:%M (ish)",
+        :long_ordinal => lambda { |time| "%B #{time.day}ish, %Y %H:%M" },
+        :only_second  => "%S (ish)"
+      },
+        :datetime => {
+          :formats => {
+            :default => "%Y-%m-%dT%H:%M:%S%Z"
+          }
+        },
+        :time_with_zone => {
+          :formats => {
+            :default => lambda { |time| "%Y-%m-%d %H:%M:%S #{time.formatted_offset(false, 'UTC')}" }
+          }
+        },
+      :am => 'am-ish',
+      :pm => 'pm-ish'
+    },
+
+    # date helper distance in words
+    :datetime => {
+      :distance_in_words => {
+        :half_a_minute       => 'a halfish minute',
+        :less_than_x_seconds => {:zero => 'less than 1 second', :one => ' less than 1 secondish', :other => 'less than{{count}}ish seconds'},
+        :x_seconds           => {:one => '1 secondish', :other => '{{count}}ish seconds'},
+        :less_than_x_minutes => {:zero => 'less than a minuteish', :one => 'less than 1 minuteish', :other => 'less than {{count}}ish minutes'},
+        :x_minutes           => {:one => "1ish minute", :other => "{{count}}ish minutes"},
+        :about_x_hours       => {:one => 'about 1 hourish', :other => 'about {{count}}ish hours'},
+        :x_days              => {:one => '1ish day', :other => '{{count}}ish days'},
+        :about_x_months      => {:one => 'about 1ish month', :other => 'about {{count}}ish months'},
+        :x_months            => {:one => '1ish month', :other => '{{count}}ish months'},
+        :about_x_years       => {:one => 'about 1ish year', :other => 'about {{count}}ish years'},
+        :over_x_years        => {:one => 'over 1ish year', :other => 'over {{count}}ish years'}
+      }
+    },
+
+    # numbers
+    :number => {
+      :format => {
+        :precision => 3,
+        :separator => ',',
+        :delimiter => '.'
+      },
+      :currency => {
+        :format => {
+          :unit => 'Gib-$',
+          :precision => 2,
+          :format => '%n %u'
+        }
+      }
+    },
+
+    # Active Record
+    :activerecord => {
+      :errors => {
+        :template => {
+          :header => {
+            :one => "Couldn't save this {{model}}: 1 error", 
+            :other => "Couldn't save this {{model}}: {{count}} errors."
+          },
+          :body => "Please check the following fields, dude:"
+        },
+        :messages => {
+          :inclusion => "ain't included in the list",
+          :exclusion => "ain't available",
+          :invalid => "ain't valid",
+          :confirmation => "don't match its confirmation",
+          :accepted  => "gotta be accepted",
+          :empty => "gotta be given",
+          :blank => "gotta be given",
+          :too_long => "is too long-ish (no more than {{count}} characters)",
+          :too_short => "is too short-ish (no less than {{count}} characters)",
+          :wrong_length => "ain't got the right length (gotta be {{count}} characters)",
+          :taken => "ain't available",
+          :not_a_number => "ain't a number",
+          :greater_than => "gotta be greater than {{count}}",
+          :greater_than_or_equal_to => "gotta be greater than or equal to {{count}}",
+          :equal_to => "gotta be equal to {{count}}",
+          :less_than => "gotta be less than {{count}}",
+          :less_than_or_equal_to => "gotta be less than or equal to {{count}}",
+          :odd => "gotta be odd",
+          :even => "gotta be even"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/vendor/plugins/rails-i18n/locale/gl-ES.yml b/vendor/plugins/rails-i18n/locale/gl-ES.yml
new file mode 100644 (file)
index 0000000..7e46d5c
--- /dev/null
@@ -0,0 +1,193 @@
+# Galician (Spain) for Ruby on Rails
+# by Marcos Arias Pena (markus@agil-e.com)
+
+gl-ES:
+  # action_view
+  number:
+    # Usado en number_with_delimiter()
+    format:
+      separator: "," 
+      delimiter: "." 
+      precision: 2
+    
+    # Usado en number_to_currency()
+    currency:
+      format:
+        # %u é a unidade monetaria, %n o número
+        # 1 euro sería 1.00 €
+        format: "%n %u" 
+        unit: "€" 
+        separator: "," 
+        delimiter: "." 
+        precision: 2
+    
+    # Usado en number_to_percentage()
+    percentage:
+      format:
+        # separator: 
+        delimiter: "" 
+        # precision: 
+    
+    # Usado en number_to_precision()
+    precision:
+      format:
+        # separator:
+        delimiter: "" 
+        # precision:
+    
+    # Usado en number_to_human_size()
+    human:
+      format:
+        # separator: 
+        delimiter: "" 
+        precision: 1
+      # Se estás a usar Rails <= 2.2.2
+      # storage_units: [Bytes, KB, MB, GB, TB]
+      # Se estás a usar Rails >= 2.3
+      storage_units:
+        # Formato de saida de unidades de almacenamento
+        # %u é a unidade de almacenamento
+        # %n é o número (por defecto: 2 MB)
+        format: "%n %u"
+        units:
+          byte:
+            one:   "Byte"
+            other: "Bytes"
+          kb: "KB"
+          mb: "MB"
+          gb: "GB"
+          tb: "TB"
+  
+  # active_support
+  date:
+    formats:
+      default:  "%e/%m/%Y"
+      short:    "%e %b"
+      long:     "%A %e de %B de %Y"
+      # Podes engadir máis formatos nesta lista ou cambiar os aquí definidos
+    day_names:        [Domingo, Luns, Martes, Mércores, Xoves, Venres, Sábado]
+    abbr_day_names:   [Dom, Lun, Mar, Mer, Xov, Ven, Sab]
+    month_names:      [~, Xaneiro, Febreiro, Marzo, Abril, Maio, Xuño, Xullo, Agosto, Setembro, Outubro, Novembro, Decembro]
+    abbr_month_names: [~, Xan, Feb, Mar, Abr, Mai, Xuñ, Xul, Ago, Set, Out, Nov, Dec]
+    order:            [:day, :month, :year]
+
+  time:
+    formats:
+      default:    "%A, %e de %B de %Y ás %H:%M"
+      time:       "%H:%M"
+      short:      "%e/%m, %H:%M"
+      long:       "%A %e de %B de %Y ás %H:%M"
+      # Podes engadir máis formatos nesta lista ou cambiar os aquí definidos
+    am: ''
+    pm: ''
+  
+  # Usados en distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
+  datetime:
+    distance_in_words:
+      half_a_minute: 'medio minuto'
+      less_than_x_seconds:
+        zero: 'menos dun segundo'
+        one: '1 segundo'
+        few: 'poucos segundos'
+        other: '{{count}} segundos'
+      x_seconds:
+        one: '1 segundo'
+        other: '{{count}} segundos'
+      less_than_x_minutes:
+        zero: 'menos dun minuto'
+        one: '1 minuto'
+        other: '{{count}} minutos'
+      x_minutes:
+        one: '1 minuto'
+        other: '{{count}} minuto'
+      about_x_hours:
+        one: 'aproximadamente unha hora'
+        other: '{{count}} horas'
+      x_days:
+        one: '1 día'
+        other: '{{count}} días'
+      x_weeks:
+        one: '1 semana'
+        other: '{{count}} semanas'
+      about_x_months:
+        one: 'aproximadamente 1 mes'
+        other: '{{count}} meses'
+      x_months:
+        one: '1 mes'
+        other: '{{count}} meses'
+      about_x_years:
+        one: 'aproximadamente 1 ano'
+        other: '{{count}} anos'
+      over_x_years:
+        one: 'máis dun ano'
+        other: '{{count}} anos'
+      now: 'agora'
+      today: 'hoxe'
+      tomorrow: 'mañá'
+      in: 'dentro de'
+  
+  support:
+    array:
+      # Se estás a usar Rails <= 2.2.2
+      # sentence_connector: e
+      # Se estás a usar Rails >= 2.3
+      words_connector: ", "
+      two_words_connector: " e "
+      last_word_connector: " e "
+
+  # active_record
+  activerecord:
+    models:
+    # Traduce nomes de modelos. Usado en Model.human_name()
+    # Por exemplo
+    # model:
+    #   user: "Nota"
+    #   traducirá o modelo User como "Nota"
+
+    attributes:
+    # Traduce nomes de atributos de modelos. Usado en Model.human_attribute_name(attribute)
+    # Por exemplo
+    # attributes:
+    #   user:
+    #     login: "Aceso"
+    #     traducirá o atribute login do modelo User como "Aceso"
+    
+    errors:
+      template:
+        header:
+          one: "1 erro evitou que se poidese gardar o {{model}}"
+          other: "{{count}} erros evitaron que se poidese gardar o {{model}}"
+        # A variable :count tamén está dispoñible aquí
+        body: "Atopáronse os seguintes problemas:"
+      messages:
+        inclusion: "non está incluido na lista"
+        exclusion: "xa existe"
+        invalid: "non é válido"
+        confirmation: "non coincide coa confirmación"
+        accepted: "debe ser aceptado"
+        empty: "non pode estar valeiro"
+        blank: "non pode estar en blanco"
+        too_long: "é demasiado longo (non máis de {{count}} carácteres)"
+        too_short: "é demasiado curto (non menos de {{count}} carácteres)"
+        wrong_length: "non ten a lonxitude correcta (debe ser de {{count}} carácteres)"
+        taken: "non está dispoñible"
+        not_a_number: "non é un número"
+        greater_than: "debe ser maior que {{count}}"
+        greater_than_or_equal_to: "debe ser maior ou igual que {{count}}"
+        equal_to: "debe ser igual a {{count}}"
+        less_than: "debe ser menor que {{count}}"
+        less_than_or_equal_to: "debe ser menor ou igual que {{count}}"
+        odd: "debe ser par"
+        even: "debe ser impar"
+        # Engade aquí os teus propios mensaxes de erro ou no ámbito modelo/atributo
+        
+        # Podes definir os teus propios erros para modelos ou para os atributos dun modelo
+        # Os valores :model, :attribute e :value están sempre dispoñibles para a interpolación
+        #
+        # Exemplos avanzados
+        # models:
+        #   user:
+        #     blank: "Esta é unha mensaxe personalizada para o modelo {{model}}: {{attribute}}"
+        #     attributes:
+        #       login:
+        #         blank: "Esta é unha mensaxe personalidaza para o modelo Usuario: login"
diff --git a/vendor/plugins/rails-i18n/locale/he.yml b/vendor/plugins/rails-i18n/locale/he.yml
new file mode 100644 (file)
index 0000000..6b2f6d4
--- /dev/null
@@ -0,0 +1,103 @@
+# Hebrew translations for Ruby on Rails 
+# by Dotan Nahum (dipidi@gmail.com)
+
+"he-IL":
+  date:
+    formats:
+      default: "%Y-%m-%d"
+      short: "%e %b"
+      long: "%B %e, %Y"
+      only_day: "%e"
+
+    day_names: [ראשון, שני, שלישי, רביעי, חמישי, שישי, שבת]
+    abbr_day_names: [רא, שנ, של, רב, חמ, שי, שב]
+    month_names: [~, ינואר, פברואר, מרץ, אפריל, מאי, יוני, יולי, אוגוסט, ספטמבר, אוקטובר, נובמבר, דצמבר]
+    abbr_month_names: [~, יאנ, פב, מרץ, אפר, מאי, יונ, יול, אוג, ספט, אוק, נוב, דצ]
+    order: [ :day, :month, :year ]
+  
+  time:
+    formats:
+      default: "%a %b %d %H:%M:%S %Z %Y"
+      time: "%H:%M"
+      short: "%d %b %H:%M"
+      long: "%B %d, %Y %H:%M"
+      only_second: "%S"
+      
+      datetime:
+        formats:
+          default: "%d-%m-%YT%H:%M:%S%Z"
+          
+      am: 'am'
+      pm: 'pm'
+      
+  datetime:
+    distance_in_words:
+      half_a_minute: 'חצי דקה'
+      less_than_x_seconds:
+        zero: 'פחות משניה אחת'
+        one: 'פחות משניה אחת'
+        other: 'פחות מ- {{count}} שניות'
+      x_seconds:
+        one: 'שניה אחת'
+        other: '{{count}} שניות'
+      less_than_x_minutes:
+        zero: 'פחות מדקה אחת'
+        one: 'פחות מדקה אחת'
+        other: 'פחות מ- {{count}} דקות'
+      x_minutes:
+        one: 'דקה אחת'
+        other: '{{count}} דקות'
+      about_x_hours:
+        one: 'בערך שעה אחת'
+        other: 'בערך {{count}} שעות'
+      x_days:
+        one: 'יום אחד'
+        other: '{{count}} ימים'
+      about_x_months:
+        one: 'בערך חודש אחד'
+        other: 'בערך {{count}} חודשים'
+      x_months:
+        one: 'חודש אחד'
+        other: '{{count}} חודשים'
+      about_x_years:
+        one: 'בערך שנה אחת'
+        other: 'בערך {{count}} שנים'
+      over_x_years:
+        one: 'מעל שנה אחת'
+        other: 'מעל {{count}} שנים'
+      
+  number:
+    format:
+      precision: 3
+      separator: '.'
+      delimiter: ','
+    currency:
+      format:
+        unit: 'שח'
+        precision: 2
+        format: '%u %n'
+        
+  active_record:
+    error:
+      header_message: ["לא ניתן לשמור {{model}}: שגיאה אחת", "לא ניתן לשמור {{model}}: {{count}} שגיאות."]
+      message: "אנא בדוק את השדות הבאים:"
+    error_messages:
+      inclusion: "לא נכלל ברשימה"
+      exclusion: "לא זמין"
+      invalid: "לא ולידי"
+      confirmation: "לא תואם לאישורו"
+      accepted: "חייב באישור"
+      empty: "חייב להכלל"
+      blank: "חייב להכלל"
+      too_long: "יותר מדי ארוך (לא יותר מ- {{count}} תוים)"
+      too_short: "יותר מדי קצר (לא יותר מ- {{count}} תוים)"
+      wrong_length: "לא באורך הנכון (חייב להיות {{count}} תוים)"
+      taken: "לא זמין"
+      not_a_number: "הוא לא מספר"
+      greater_than: "חייב להיות גדול מ- {{count}}"
+      greater_than_or_equal_to: "חייב להיות גדול או שווה ל- {{count}}"
+      equal_to: "חייב להיות שווה ל- {{count}}"
+      less_than: "חייב להיות קטן מ- {{count}}"
+      less_than_or_equal_to: "חייב להיות קטן או שווה ל- {{count}}"
+      odd: "חייב להיות אי זוגי"
+      even: "חייב להיות זוגי"
\ No newline at end of file
diff --git a/vendor/plugins/rails-i18n/locale/hu.yml b/vendor/plugins/rails-i18n/locale/hu.yml
new file mode 100644 (file)
index 0000000..6163892
--- /dev/null
@@ -0,0 +1,127 @@
+# Hungarian translations for Ruby on Rails 
+# by Richard Abonyi (richard.abonyi@gmail.com)
+# thanks to KKata, replaced and #hup.hu
+# Cleaned up by László Bácsi (http://lackac.hu)
+# updated by kfl62 kfl62g@gmail.com
+
+"hu":
+  date:
+    formats:
+      default: "%Y.%m.%d."
+      short: "%b %e."
+      long: "%Y. %B %e."
+    day_names: [vasárnap, hétfő, kedd, szerda, csütörtök, péntek, szombat]
+    abbr_day_names: [v., h., k., sze., cs., p., szo.]
+    month_names: [~, január, február, március, április, május, június, július, augusztus, szeptember, október, november, december]
+    abbr_month_names: [~, jan., febr., márc., ápr., máj., jún., júl., aug., szept., okt., nov., dec.]
+    order: [ :year, :month, :day ]
+
+  time:
+    formats:
+      default: "%Y. %b %e., %H:%M"
+      short: "%b %e., %H:%M"
+      long: "%Y. %B %e., %A, %H:%M"
+    am: "de."
+    pm: "du."
+
+  datetime:
+    distance_in_words:
+      half_a_minute: 'fél perc'
+      less_than_x_seconds:
+#        zero: 'kevesebb, mint 1 másodperc'
+        one: 'kevesebb, mint 1 másodperc'
+        other: 'kevesebb, mint {{count}} másodperc'
+      x_seconds:
+        one: '1 másodperc'
+        other: '{{count}} másodperc'
+      less_than_x_minutes:
+#        zero: 'kevesebb, mint 1 perc'
+        one: 'kevesebb, mint 1 perc'
+        other: 'kevesebb, mint {{count}} perc'
+      x_minutes:
+        one: '1 perc'
+        other: '{{count}} perc'
+      about_x_hours:
+        one: 'majdnem 1 óra'
+        other: 'majdnem {{count}} óra'
+      x_days:
+        one: '1 nap'
+        other: '{{count}} nap'
+      about_x_months:
+        one: 'majdnem 1 hónap'
+        other: 'majdnem {{count}} hónap'
+      x_months:
+        one: '1 hónap'
+        other: '{{count}} hónap'
+      about_x_years:
+        one: 'majdnem 1 év'
+        other: 'majdnem {{count}} év'
+      over_x_years:
+        one: 'több, mint 1 év'
+        other: 'több, mint {{count}} év'
+    prompts:
+      year:   "Év"
+      month:  "Hónap"
+      day:    "Nap"
+      hour:   "Óra"
+      minute: "Perc"
+      second: "Másodperc"
+
+  number:
+    format:
+      precision: 2
+      separator: ','
+      delimiter: ' '
+    currency:
+      format:
+        unit: 'Ft'
+        precision: 0
+        format: '%n %u'
+        separator: ""
+        delimiter: ""
+    percentage:
+      format:
+        delimiter: ""
+    precision:
+      format:
+        delimiter: ""
+    human:
+      format:
+        delimiter: ""
+        precision: 1
+      storage_units: [bájt, KB, MB, GB, TB]
+
+  support:
+    array:
+#      sentence_connector: "és"
+#      skip_last_comma: true
+      words_connector: ", "
+      two_words_connector: " és "
+      last_word_connector: " és "
+  activerecord:
+    errors:
+      template:
+        header:
+          one: "1 hiba miatt nem menthető a következő: {{model}}"
+          other: "{{count}} hiba miatt nem menthető a következő: {{model}}"
+        body: "Problémás mezők:"
+      messages:
+        inclusion: "nincs a listában"
+        exclusion: "nem elérhető"
+        invalid: "nem megfelelő"
+        confirmation: "nem egyezik"
+        accepted: "nincs elfogadva"
+        empty: "nincs megadva"
+        blank: "nincs megadva"
+        too_long: "túl hosszú (nem lehet több {{count}} karakternél)"
+        too_short: "túl rövid (legalább {{count}} karakter kell legyen)"
+        wrong_length: "nem megfelelő hosszúságú ({{count}} karakter szükséges)"
+        taken: "már foglalt"
+        not_a_number: "nem szám"
+        greater_than: "nagyobb kell legyen, mint {{count}}"
+        greater_than_or_equal_to: "legalább {{count}} kell legyen"
+        equal_to: "pontosan {{count}} kell legyen"
+        less_than: "kevesebb, mint {{count}} kell legyen"
+        less_than_or_equal_to: "legfeljebb {{count}} lehet"
+        odd: "páratlan kell legyen"
+        even: "páros kell legyen"
\ No newline at end of file
diff --git a/vendor/plugins/rails-i18n/locale/id.yml b/vendor/plugins/rails-i18n/locale/id.yml
new file mode 100644 (file)
index 0000000..3efb383
--- /dev/null
@@ -0,0 +1,122 @@
+# Bahasa Indonesia translations for Ruby on Rails 
+# by wynst (wynst.uei@gmail.com)
+
+id:
+  date:
+    formats:
+      default: "%d %B %Y"
+      long: "%A, %d %B %Y"
+      short: "%d.%m.%Y"
+    day_names: [Minggu,Senin, Selasa, Rabu, Kamis, Jum'at, Sabtu]
+    abbr_day_names: [Minggu,Senin, Selasa, Rabu, Kamis, Jum'at, Sabtu]
+    month_names: [~, Januari, Februari, Maret, April, Mei, Juni, Juli, Agustus, September, Oktober, November, Desember]
+    abbr_month_names: [~, Jan, Feb, Mar, Apr, Mei, Jun, Jul, Agu, Sep, Okt, Nov, Des]
+    order: [:day, :month, :year]
+
+  time:
+    formats:
+      default: "%a, %d %b %Y %H.%M.%S %z"
+      short: "%d %b %H.%M"
+      long: "%d %B %Y %H.%M"
+    am: "am"
+    pm: "pm"
+
+  support:
+    array:
+      sentence_connector: "dan"
+      skip_last_comma: true
+
+  number:
+    format:
+      separator: ","
+      delimiter: "."
+      precision: 3
+    
+    currency:
+      format:
+        format: "%n. %u"
+        unit: "Rp"
+        separator: ","
+        delimiter: "."
+        precision: 2
+        
+    percentage:
+      format:
+        # separator:
+        delimiter: ""
+        # precision: 
+
+    precision:
+      format:
+        # separator:
+        delimiter: ""
+        # precision:
+        
+    human:
+      format:
+        delimiter: ""
+        precision: 1
+      storage_units: [Byte, KB, MB, GB, TB]
+  datetime:
+    distance_in_words:
+      half_a_minute: "setengah menit"
+      less_than_x_seconds:
+        one:   "kurang dari 1 detik"
+        other: "kurang dari {{count}} detik"
+      x_seconds:
+        one:   "1 detik"
+        other: "{{count}} detik"
+      less_than_x_minutes:
+        one:   "kurang dari 1 menit"
+        other: "kurang dari  {{count}} menit"
+      x_minutes:
+        one:   "menit"
+        other: "{{count}} menit"
+      about_x_hours:
+        one:   "sekitar 1 jam"
+        other: "sekitar {{count}} jam"
+      x_days:
+        one:   "sehari"
+        other: "{{count}} hari"
+      about_x_months:
+        one:   "sekitar sebulan"
+        other: "sekitar {{count}} bulan"
+      x_months:
+        one:   "sebulan"
+        other: "{{count}} bulan"
+      about_x_years:
+        one:   "tahun"
+        other: "noin {{count}} tahun"
+      over_x_years:
+        one:   "lebih dari setahun"
+        other: "lebih dari {{count}} tahun"
+  activerecord:
+    errors:
+      template:
+        header:
+          one:    "1 kesalahan mengakibatkan {{model}} ini tidak bisa disimpan"
+          other:  "{{count}} kesalahan mengakibatkan {{model}} ini tidak bisa disimpan"
+        body: "Ada persoalan dengan field berikut:"
+      messages:
+        inclusion: "tidak terikut di daftar"
+        exclusion: "sudah dipanjar"
+        invalid: "tidak valid"
+        confirmation: "tidak sesuai dengan konfirmasi"
+        accepted: "harus diterima"
+        empty: "tidak bisa kosong"
+        blank: "tidak bisa kosong"
+        too_long: "terlalu panjang (maksimum {{count}} karakter)"
+        too_short: "terlalu pendek (maksimum {{count}} karakter)"
+        wrong_length: "dengan panjang tidak sama (seharusnya {{count}} karakter)"
+        taken: "sudah dipanjar"
+        not_a_number: "bukan nomor"
+        greater_than: "harus lebih besar dari {{count}}"
+        greater_than_or_equal_to: "harus sama atau lebih besar dari {{count}}"
+        equal_to: "harus sama dengan {{count}}"
+        less_than: "harus lebih kecil dari {{count}}"
+        less_than_or_equal_to: "harus sama atau lebih kecil dari {{count}}"
+        odd: "harus ganjil"
+        even: "harus genap"
\ No newline at end of file
diff --git a/vendor/plugins/rails-i18n/locale/it.yml b/vendor/plugins/rails-i18n/locale/it.yml
new file mode 100644 (file)
index 0000000..29885c4
--- /dev/null
@@ -0,0 +1,143 @@
+# Italian translations for Ruby on Rails 
+# by Claudio Poli (masterkain@gmail.com)
+# updated by Simone Carletti (weppos@weppos.net)
+
+it:
+  number:
+    format:
+      separator: ","
+      delimiter: "."
+      precision: 3
+      
+    currency:
+      format:
+        format: "%n %u"
+        unit: "€"
+        separator: "."
+        delimiter: ","
+        precision: 2
+        
+    percentage:
+      format:
+        delimiter: ""
+        # precision: 
+        
+    precision:
+      format:
+        # separator:
+        delimiter: ""
+        # precision:
+        
+    human:
+      format:
+        # separator: 
+        delimiter: ""
+        precision: 1
+      storage_units: [Byte, Kb, Mb, Gb, Tb]
+
+  date:
+    formats:
+      default: "%d-%m-%Y"
+      short: "%d %b"
+      long: "%d %B %Y"
+      # Bogus?
+      only_day: "%e"
+
+    day_names: [Domenica, Lunedì, Martedì, Mercoledì, Giovedì, Venerdì, Sabato]
+    abbr_day_names: [Dom, Lun, Mar, Mer, Gio, Ven, Sab]
+
+    month_names: [~, Gennaio, Febbraio, Marzo, Aprile, Maggio, Giugno, Luglio, Agosto, Settembre, Ottobre, Novembre, Dicembre]
+    abbr_month_names: [~, Gen, Feb, Mar, Apr, Mag, Giu, Lug, Ago, Set, Ott, Nov, Dic]
+    order: [ :day, :month, :year ]
+  
+  time:
+    formats:
+      default: "%a %d %b %Y, %H:%M:%S %z"
+      short: "%d %b %H:%M"
+      long: "%d %B %Y %H:%M"
+      # Bogus?
+      time: "%H:%M"
+      only_second: "%S"
+      
+      # Bogus?
+      datetime:
+        formats:
+          default: "%d-%m-%YT%H:%M:%S%Z"
+          
+    am: 'am'
+    pm: 'pm'
+      
+  datetime:
+    distance_in_words:
+      half_a_minute: "mezzo minuto"
+      less_than_x_seconds:
+        one:  "meno di un secondo"
+        other: "meno di {{count}} secondi"
+      x_seconds:
+        one:  "1 secondo"
+        other: "{{count}} secondi"
+      less_than_x_minutes:
+        one:  "meno di un minuto"
+        other: "meno di {{count}} minuti"
+      x_minutes:
+        one:  "1 minuto"
+        other: "{{count}} minuti"
+      about_x_hours:
+        one:  "circa un'ora"
+        other: "circa {{count}} ore"
+      x_days:
+        one:  "1 giorno"
+        other: "{{count}} giorni"
+      about_x_months:
+        one:  "circa un mese"
+        other: "circa {{count}} mesi"
+      x_months:
+        one:  "1 mese"
+        other: "{{count}} mesi"
+      about_x_years:
+        one:  "circa un anno"
+        other: "circa {{count}} anni"
+      over_x_years:
+        one:  "oltre un anno"
+        other: "oltre {{count}} anni"
+    prompts:
+      year:   "Anno"
+      month:  "Mese"
+      day:    "Giorno"
+      hour:   "Ora"
+      minute: "Minuto"
+      second: "Secondi"
+
+  support:
+    array:
+      words_connector: ", "
+      two_words_connector: " e "
+      last_word_connector: ", e "
+        
+  activerecord:
+    errors:
+      template:
+        header: 
+          one: "Non posso salvare questo {{model}}: 1 errore"
+          other: "Non posso salvare questo {{model}}: {{count}} errori."
+        body: "Per favore ricontrolla i seguenti campi:"
+      messages:
+        inclusion: "non è incluso nella lista"
+        exclusion: "è riservato"
+        invalid: "non è valido"
+        confirmation: "non coincide con la conferma"
+        accepted: "deve essere accettata"
+        empty: "non può essere vuoto"
+        blank: "non può essere lasciato in bianco"
+        too_long: "è troppo lungo (il massimo è {{count}} lettere)"
+        too_short: "è troppo corto (il minimo è {{count}} lettere)"
+        wrong_length: "è della lunghezza sbagliata (deve essere di {{count}} lettere)"
+        taken: "è già in uso"
+        not_a_number: "non è un numero"
+        greater_than: "deve essere superiore a {{count}}"
+        greater_than_or_equal_to: "deve essere superiore o uguale a {{count}}"
+        equal_to: "deve essere uguale a {{count}}"
+        less_than: "deve essere meno di {{count}}"
+        less_than_or_equal_to: "deve essere meno o uguale a {{count}}"
+        odd: "deve essere dispari"
+        even: "deve essere pari"
\ No newline at end of file
diff --git a/vendor/plugins/rails-i18n/locale/ja.yml b/vendor/plugins/rails-i18n/locale/ja.yml
new file mode 100644 (file)
index 0000000..dbd01fb
--- /dev/null
@@ -0,0 +1,135 @@
+# Japanese translations for Ruby on Rails 
+# by Akira Matsuda (ronnie@dio.jp)
+# AR error messages are basically taken from Ruby-GetText-Package. Thanks to Masao Mutoh.
+
+ja:
+  date:
+    formats:
+      default: "%Y/%m/%d"
+      short: "%m/%d"
+      long: "%Y年%m月%d日(%a)"
+
+    day_names: [日曜日, 月曜日, 火曜日, 水曜日, 木曜日, 金曜日, 土曜日]
+    abbr_day_names: [日, 月, 火, 水, 木, 金, 土]
+
+    month_names: [~, 1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月, 10月, 11月, 12月]
+    abbr_month_names: [~, 1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月, 10月, 11月, 12月]
+
+    order: [:year, :month, :day]
+
+  time:
+    formats:
+      default: "%Y/%m/%d %H:%M:%S"
+      short: "%y/%m/%d %H:%M"
+      long: "%Y年%m月%d日(%a) %H時%M分%S秒 %Z"
+    am: "午前"
+    pm: "午後"
+
+  support:
+    array:
+      sentence_connector: "と"
+      skip_last_comma: true
+      words_connector: "と"
+      two_words_connector: "と"
+      last_word_connector: "と"
+
+  number:
+    format:
+      separator: "."
+      delimiter: ","
+      precision: 3
+
+    currency:
+      format:
+        format: "%n%u"
+        unit: "円"
+        separator: "."
+        delimiter: ","
+        precision: 0
+
+    percentage:
+      format:
+        delimiter: ""
+
+    precision:
+      format:
+        delimiter: ""
+
+    human:
+      format:
+        delimiter: ""
+        precision: 1
+      storage_units:
+        format: "%n%u"
+        units:
+          byte: "バイト"
+          kb: "キロバイト"
+          mb: "メガバイト"
+          gb: "ギガバイト"
+          tb: "テラバイト"
+
+  datetime:
+    distance_in_words:
+      half_a_minute: "30秒前後"
+      less_than_x_seconds:
+        one:   "1秒以下"
+        other: "{{count}}秒以下"
+      x_seconds:
+        one:   "1秒"
+        other: "{{count}}秒"
+      less_than_x_minutes:
+        one:   "1分以下"
+        other: "{{count}}分以下"
+      x_minutes:
+        one:   "1分"
+        other: "{{count}}分"
+      about_x_hours:
+        one:   "約1時間"
+        other: "約{{count}}時間"
+      x_days:
+        one:   "1日"
+        other: "{{count}}日"
+      about_x_months:
+        one:   "約1ヶ月"
+        other: "約{{count}}ヶ月"
+      x_months:
+        one:   "1ヶ月"
+        other: "{{count}}ヶ月"
+      about_x_years:
+        one:   "約{{count}}年以上"
+        other: "約{{count}}年以上"
+      over_x_years:
+        one:   "{{count}}年以上"
+        other: "{{count}}年以上"
+
+  activerecord:
+    errors:
+      format:
+        separator: ""
+      template:
+        header:
+          one:   "{{model}}にエラーが発生しました。"
+          other: "{{model}}に{{count}}つのエラーが発生しました。"
+        body: "次の項目を確認してください。"
+
+      messages:
+        inclusion: "は一覧にありません。"
+        exclusion: "は予約されています。"
+        invalid: "は不正な値です。"
+        confirmation: "が一致しません。"
+        accepted: "を受諾してください。"
+        empty: "を入力してください。"
+        blank: "を入力してください。"
+        too_long: "は{{count}}文字以内で入力してください。"
+        too_short: "は{{count}}文字以上で入力してください。"
+        wrong_length: "は{{count}}文字で入力してください。"
+        taken: "はすでに存在します。"
+        not_a_number: "は数値で入力してください。"
+        greater_than: "は{{count}}より大きい値にしてください。"
+        greater_than_or_equal_to: "は{{count}}以上の値にしてください。"
+        equal_to: "は{{count}}にしてください。"
+        less_than: "は{{count}}より小さい値にしてください。"
+        less_than_or_equal_to: "は{{count}}以下の値にしてください。"
+        odd: "は奇数にしてください。"
+        even: "は偶数にしてください。"
+
diff --git a/vendor/plugins/rails-i18n/locale/ko.yml b/vendor/plugins/rails-i18n/locale/ko.yml
new file mode 100644 (file)
index 0000000..7eea83b
--- /dev/null
@@ -0,0 +1,153 @@
+# Korean (한글) translations for Ruby on Rails 
+# by John Hwang (jhwang@tavon.org)
+# http://github.com/tavon
+
+ko:
+  date:
+    formats:
+      default: "%Y/%m/%d"
+      short: "%m/%d"
+      long: "%Y년 %m월 %d일 (%a)"
+      
+    day_names: [일요일, 월요일, 화요일, 수요일, 목요일, 금요일, 토요일]
+    abbr_day_names: [일, 월, 화, 수, 목, 금, 토]
+      
+    month_names: [~, 1월, 2월, 3월, 4월, 5월, 6월, 7월, 8월, 9월, 10월, 11월, 12월]
+    abbr_month_names: [~, 1월, 2월, 3월, 4월, 5월, 6월, 7월, 8월, 9월, 10월, 11월, 12월]
+
+    order: [ :year, :month, :day ]
+
+  time:
+    formats:
+      default: "%Y/%m/%d %H:%M:%S"
+      short: "%y/%m/%d %H:%M"
+      long: "%Y년 %B월 %d일, %H시 %M분 %S초 %Z"
+    am: "오전"
+    pm: "오후"
+      
+  # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
+  datetime:
+    distance_in_words:
+      half_a_minute: "30초"
+      less_than_x_seconds:
+        one:   "일초 이하"
+        other: "{{count}}초 이하"
+      x_seconds:
+        one:   "일초"
+        other: "{{count}}초"
+      less_than_x_minutes:
+        one:   "일분 이하"
+        other: "{{count}}분 이하"
+      x_minutes:
+        one:   "일분"
+        other: "{{count}}분"
+      about_x_hours:
+        one:   "약 한시간"
+        other: "약 {{count}}시간"
+      x_days:
+        one:   "하루"
+        other: "{{count}}일"
+      about_x_months:
+        one:   "약 한달"
+        other: "약 {{count}}달"
+      x_months:
+        one:   "한달"
+        other: "{{count}}달"
+      about_x_years:
+        one:   "약 일년"
+        other: "약 {{count}}년"
+      over_x_years:
+        one:   "일년 이상"
+        other: "{{count}}년 이상"
+    prompts:
+      year:   "년"
+      month:  "월"
+      day:    "일"
+      hour:   "시"
+      minute: "분"
+      second: "초"
+      
+  number:
+    # Used in number_with_delimiter()
+    # These are also the defaults for 'currency', 'percentage', 'precision', and 'human'
+    format:
+      # Sets the separator between the units, for more precision (e.g. 1.0 / 2.0 == 0.5)
+      separator: "."
+      # Delimets thousands (e.g. 1,000,000 is a million) (always in groups of three)
+      delimiter: ","
+      # Number of decimals, behind the separator (the number 1 with a precision of 2 gives: 1.00)
+      precision: 3
+      
+    # Used in number_to_currency()
+    currency:
+      format:
+        # Where is the currency sign? %u is the currency unit, %n the number (default: $5.00)
+        format: "%u%n"
+        unit: "₩"
+        # These three are to override number.format and are optional
+        separator: "."
+        delimiter: ","
+        precision: 0
+        
+    # Used in number_to_percentage()
+    percentage:
+      format:
+        # These three are to override number.format and are optional
+        # separator: 
+        delimiter: ""
+        # precision: 
+        
+    # Used in number_to_precision()
+    precision:
+      format:
+        # These three are to override number.format and are optional
+        # separator:
+        delimiter: ""
+        # precision:
+        
+    # Used in number_to_human_size()
+    human:
+      format:
+        # These three are to override number.format and are optional
+        # separator: 
+        delimiter: ""
+        precision: 1
+      storage_units: [Bytes, KB, MB, GB, TB]
+
+# Used in array.to_sentence.
+  support:
+    array:
+      words_connector: ", "
+      two_words_connector: "과 "
+      last_word_connector: ", "
+        
+  activerecord:
+    errors:
+      template:
+        header:
+          one:    "한개의 오류가 발생해 {{model}}를 저장 안았했습니다"
+          other:  "{{count}}개의 오류가 발생해 {{model}}를 저장 안았했습니다"
+        # The variable :count is also available
+        body: "다음 항목에 문제가 발견했습니다:"
+
+      messages:
+        inclusion: "은 목록에 포함되어 있지 않습니다"
+        exclusion: "은 예약되어 있습니다"
+        invalid: "은 무효입니다"
+        confirmation: "은 확인이 되지 않았습니다"
+        accepted: "은 인정되어야 합니다"
+        empty: "은 비어두면 안 됩니다"
+        blank: "은 비어두면 안 됩니다"
+        too_long: "은 너무 깁니다 (최대 {{count}}자 까지)"
+        too_short: "은 너무 짧습니다 (최소 {{count}}자 까지)"
+        wrong_length: "은 길이가 틀렸습니다 ({{count}}자를 필요합니다)"
+        taken: "은 이미 선택된 겁니다"
+        not_a_number: "은 숫자가 아닙니다"
+        greater_than: "은 {{count}}이상을 요구합니다"
+        greater_than_or_equal_to: "은 {{count}}과 같거나 이상을 요구합니다"
+        equal_to: "은 {{count}}과 같아야 합니다"
+        less_than: "은 {{count}}과 같아야 합니다"
+        less_than_or_equal_to: "은 {{count}}과 같거나 이하을 요구합니다"
+        odd: "은 홀수을 요구합니다"
+        even: "은 짝수을 요구합니다"
+        # Append your own errors here or at the model/attributes scope.
diff --git a/vendor/plugins/rails-i18n/locale/lt.yml b/vendor/plugins/rails-i18n/locale/lt.yml
new file mode 100644 (file)
index 0000000..7471b03
--- /dev/null
@@ -0,0 +1,130 @@
+# Lithuanian translations for Ruby on Rails
+# by Laurynas Butkus (laurynas.butkus@gmail.com)
+
+lt:
+  number:
+    format:
+      separator: ","
+      delimiter: " "
+      precision: 3
+      
+    currency:
+      format:
+        format: "%n %u"
+        unit: "Lt"
+        separator: ","
+        delimiter: " "
+        precision: 2
+        
+    percentage:
+      format:
+        delimiter: ""
+        
+    precision:
+      format:
+        delimiter: ""
+        
+    human:
+      format:
+        delimiter: ""
+        precision: 1
+      storage_units: [baitai, KB, MB, GB, TB]
+
+  datetime:
+    distance_in_words:
+      half_a_minute: "pusė minutės"
+      less_than_x_seconds:
+        one:   "mažiau nei 1 sekundė"
+        other: "mažiau nei {{count}} sekundės"
+      x_seconds:
+        one:   "1 sekundė"
+        other: "{{count}} sekundės"
+      less_than_x_minutes:
+        one:   "mažiau nei minutė"
+        other: "mažiau nei {{count}} minutės"
+      x_minutes:
+        one:   "1 minutė"
+        other: "{{count}} minutės"
+      about_x_hours:
+        one:   "apie 1 valanda"
+        other: "apie {{count}} valandų"
+      x_days:
+        one:   "1 diena"
+        other: "{{count}} dienų"
+      about_x_months:
+        one:   "apie 1 mėnuo"
+        other: "apie {{count}} mėnesiai"
+      x_months:
+        one:   "1 mėnuo"
+        other: "{{count}} mėnesiai"
+      about_x_years:
+        one:   "apie 1 metai"
+        other: "apie {{count}} metų"
+      over_x_years:
+        one:   "virš 1 metų"
+        other: "virš {{count}} metų"
+    prompts:
+      year:   "Metai"
+      month:  "Mėnuo"
+      day:    "Diena"
+      hour:   "Valanda"
+      minute: "Minutė"
+      second: "Sekundės"
+
+  activerecord:
+    errors:
+      template:
+        header:
+          one:    "Išsaugant objektą {{model}} rasta klaida"
+          other:  "Išsaugant objektą {{model}} rastos {{count}} klaidos"
+        body: "Šiuose laukuose yra klaidų:"
+
+      messages:
+        inclusion: "nenumatyta reikšmė"
+        exclusion: "užimtas"
+        invalid: "neteisingas"
+        confirmation: "neteisingai pakartotas"
+        accepted: "turi būti patvirtintas"
+        empty: "negali būti tuščias"
+        blank: "negali būti tuščias"
+        too_long: "per ilgas (daugiausiai {{count}} simboliai)"
+        too_short: "per trumpas (mažiausiai {{count}} simboliai)"
+        wrong_length: "neteisingo ilgio (turi būti {{count}} simboliai)"
+        taken: "jau užimtas"
+        not_a_number: "ne skaičius"
+        greater_than: "turi būti didesnis už {{count}}"
+        greater_than_or_equal_to: "turi būti didesnis arba lygus {{count}}"
+        equal_to: "turi būti lygus {{count}}"
+        less_than: "turi būti mažesnis už {{count}}"
+        less_than_or_equal_to: "turi būti mažesnis arba lygus {{count}}"
+        odd: "turi būti nelyginis"
+        even: "turi būti lyginis"
+    
+      models:
+
+  date:
+    formats:
+      default: "%Y-%m-%d"
+      short: "%b %d"
+      long: "%B %d, %Y"
+      
+    day_names: [sekmadienis, pirmadienis, antradienis, trečiadienis, ketvirtadienis, penktadienis, šeštadienis]
+    abbr_day_names: [Sek, Pir, Ant, Tre, Ket, Pen, Šeš]
+      
+    month_names: [~, sausio, vasario, kovo, balandžio, gegužės, birželio, liepos, rugpjūčio, rugsėjo, spalio, lapkričio, gruodžio]
+    abbr_month_names: [~, Sau, Vas, Kov, Bal, Geg, Bir, Lie, Rgp, Rgs, Spa, Lap, Grd]
+    order: [ :year, :month, :day ]
+
+  time:
+    formats:
+      default: "%a, %d %b %Y %H:%M:%S %z"
+      short: "%d %b %H:%M"
+      long: "%B %d, %Y %H:%M"
+    am: "am"
+    pm: "pm"
+      
+  support:
+    array:
+      words_connector: ", "
+      two_words_connector: " ir "
+      last_word_connector: " ir "
diff --git a/vendor/plugins/rails-i18n/locale/mk.yml b/vendor/plugins/rails-i18n/locale/mk.yml
new file mode 100644 (file)
index 0000000..a465107
--- /dev/null
@@ -0,0 +1,115 @@
+# Macedonian translations for Ruby on Rails
+# by Dejan Dimić (dejan.dimic@gmail.com)
+
+"mk":
+  date:
+    formats:
+      default: "%d/%m/%Y"
+      short: "%e %b"
+      long: "%B %e, %Y"
+      only_day: "%e"
+
+    day_names: [Недела, Понеделник, Вторник, Среда, Четврток, Петок, Сабота]
+    abbr_day_names: [Нед, Пон, Вто, Сре, Чет, Пет, Саб]
+    month_names: [~, Јануари, Февруари, Март, Април, Мај, Јуни, Јули, Август, Септември, Октомври, Ноември, Декември]
+    abbr_month_names: [~, Јан, Фев, Мар, Апр, Мај, Јун, Јул, Авг, Сеп, Окт, Ное, Дек]
+    order: [ :day, :month, :year ]
+
+  time:
+    formats:
+      default: "%a %b %d %H:%M:%S %Z %Y"
+      time: "%H:%M"
+      short: "%d %b %H:%M"
+      long: "%B %d, %Y %H:%M"
+      only_second: "%S"
+
+    am: 'АМ'
+    pm: 'ПМ'
+
+  datetime:
+    formats:
+      default: "%Y-%m-%dT%H:%M:%S%Z"
+    distance_in_words:
+      half_a_minute: 'пола минута'
+      less_than_x_seconds:
+        zero: 'помалку од секунда'
+        one: 'помалку од 1 секунда'
+        few: 'помалку од {{count}} секунди'
+        other: 'помалку од {{count}} секунди'
+      x_seconds:
+        one: '1 секунда'
+        few: '{{count}} секунди'
+        other: '{{count}} секунди'
+      less_than_x_minutes:
+        zero: 'помалку од минута'
+        one: 'помалку од 1 минута'
+        other: 'помалку од {{count}} минути'
+      x_minutes:
+        one: '1 минута'
+        other: '{{count}} минути'
+      about_x_hours:
+        one: 'околу 1 час'
+        few: 'околу {{count}} часа'
+        other: 'околу {{count}} часа'
+      x_days:
+        one: '1 ден'
+        other: '{{count}} денови'
+      about_x_months:
+        one: 'околу 1 месец'
+        few: 'околу {{count}} месеци'
+        other: 'околу {{count}} месеци'
+      x_months:
+        one: '1 месец'
+        few: '{{count}} месеци'
+        other: '{{count}} месеци'
+      about_x_years:
+        one: 'околу 1 година'
+        other: 'околу {{count}} години'
+      over_x_years:
+        one: 'над 1 година'
+        other: 'над {{count}} години'
+
+  number:
+    format:
+      precision: 3
+      separator: ','
+      delimiter: '.'
+    currency:
+      format:
+        unit: 'MKD'
+        precision: 2
+        format: '%n %u'
+
+  support:
+    array:
+      sentence_connector: "и"
+
+  activerecord:
+    errors:
+      template:
+        header:
+          one: 'Не успеав да го зачувам {{model}}: 1 грешка.'
+          few: 'Не успеав да го зачувам {{model}}: {{count}} грешки.'
+          other: 'Не успеав да го зачувам {{model}}: {{count}} грешки.'
+        body: "Ве молиме проверете ги следните полиња:"
+      messages:
+        inclusion: "не е во листата"
+        exclusion: "не е достапно"
+        invalid: "не е исправен"
+        confirmation: "не се совпаѓа со својата потврда"
+        accepted: "мора да биде прифатен"
+        empty: "мора да биде зададен"
+        blank: "мора да биде зададен"
+        too_long: "е предолг (не повеќе од {{count}} карактери)"
+        too_short: "е прекраток (не помалку од {{count}} карактери)"
+        wrong_length: "несоодветна должина (мора да имате {{count}} карактери)"
+        taken: "е зафатено"
+        not_a_number: "не е број "
+        greater_than: "мора да биде поголемо од {{count}}"
+        greater_than_or_equal_to: "мора да биде поголемо или еднакво на {{count}}"
+        equal_to: "мора да биде еднакво на {{count}}"
+        less_than: "мора да биде помало од {{count}}"
+        less_than_or_equal_to: "мора да биде помало или еднакво на {{count}}"
+        odd: "мора да биде непарно"
+        even: "мора да биде парно"
+
diff --git a/vendor/plugins/rails-i18n/locale/nl.rb b/vendor/plugins/rails-i18n/locale/nl.rb
new file mode 100644 (file)
index 0000000..cd6c1cc
--- /dev/null
@@ -0,0 +1,103 @@
+{
+  :'nl' => {
+    :date => {
+      :formats => {
+        :default      => "%d/%m/%Y",
+        :short        => "%e %b",
+        :long         => "%e %B %Y",
+        :long_ordinal => lambda { |date| "#{date.day}e van %B %Y" },
+        :only_day     => "%e"
+      },
+      :day_names => %w(Zondag Maandag Dinsdag Woensdag Donderdag Vrijdag Zaterdag),
+      :abbr_day_names => %w(Zo Ma Di Wo Do Vr Za),
+      :month_names => [nil] + %w(Januari Februari Maart April Mei Juni Juli Augustus September Oktober November December),
+      :abbr_month_names => [nil] + %w(Jan Feb Mrt Apr Mei Jun Jul Aug Sep Okt Nov Dec),
+      :order => [:day, :month, :year]
+    },
+    :time => {
+      :formats => {
+        :default      => "%a %b %d %H:%M:%S %Z %Y",
+        :time         => "%H:%M",
+        :short        => "%d %b %H:%M",
+        :long         => "%d %B %Y %H:%M",
+        :long_ordinal => lambda { |time| "#{time.day}e van %B %Y %H:%M" },
+        :only_second  => "%S"
+      },
+      :datetime => {
+        :formats => {
+          :default => "%Y-%m-%dT%H:%M:%S%Z"
+        }
+      },
+      :time_with_zone => {
+        :formats => {
+          :default => lambda { |time| "%Y-%m-%d %H:%M:%S #{time.formatted_offset(false, 'UTC')}" }
+        }
+      },
+      :am => %q('s ochtends),
+      :pm => %q('s middags)
+    },
+    :datetime => {
+      :distance_in_words => {
+        :half_a_minute       => 'een halve minuut',
+        :less_than_x_seconds => {:zero => 'minder dan een seconde', :one => 'minder dan 1 seconde', :other => 'minder dan {{count}} secondes'},
+        :x_seconds           => {:one => '1 seconde', :other => '{{count}} secondes'},
+        :less_than_x_minutes => {:zero => 'minder dan een minuut', :one => 'minder dan 1 minuut', :other => 'minder dan {{count}} minuten'},
+        :x_minutes           => {:one => "1 minuut", :other => "{{count}} minuten"},
+        :about_x_hours       => {:one => 'ongeveer 1 uur', :other => 'ongeveer {{count}} uren'},
+        :x_days              => {:one => '1 dag', :other => '{{count}} dagen'},
+        :about_x_months      => {:one => 'ongeveer 1 maand', :other => 'ongeveer {{count}} maanden'},
+        :x_months            => {:one => '1 maand', :other => '{{count}} maanden'},
+        :about_x_years       => {:one => 'ongeveer 1 jaar', :other => 'ongeveer {{count}} jaren'},
+        :over_x_years        => {:one => 'langer dan 1 jaar', :other => 'langer dan {{count}} jaren'}
+      }
+    },
+    :number => {
+      :format => {
+        :precision => 2,
+        :separator => ',',
+        :delimiter => '.'
+      },
+      :currency => {
+        :format => {
+          :unit => '€',
+          :precision => 2,
+          :format => '%u %n'
+        }
+      }
+    },
+
+    # Active Record
+    :activerecord => {
+      :errors => {
+        :template => {
+          :header => {
+            :one => "Kon dit {{model}} object niet opslaan: 1 fout.", 
+            :other => "Kon dit {{model}} niet opslaan: {{count}} fouten."
+          },
+          :body => "Controleer alstublieft de volgende velden:"
+        },
+        :messages => {
+          :inclusion => "is niet in de lijst opgenomen",
+          :exclusion => "is niet beschikbaar",
+          :invalid => "is ongeldig",
+          :confirmation => "komt niet met z'n bevestiging overeen",
+          :accepted  => "moet worden geaccepteerd",
+          :empty => "moet opgegeven zijn",
+          :blank => "moet opgegeven zijn",
+          :too_long => "is te lang (niet meer dan {{count}} karakters)",
+          :too_short => "is te kort (niet minder dan {{count}} karakters)",
+          :wrong_length => "heeft niet de juiste lengte (moet precies {{count}} karakters zijn)",
+          :taken => "is niet beschikbaar",
+          :not_a_number => "is niet een getal",
+          :greater_than => "moet groter zijn dan {{count}}",
+          :greater_than_or_equal_to => "moet groter of gelijk zijn aan {{count}}",
+          :equal_to => "moet gelijk zijn aan {{count}}",
+          :less_than => "moet minder zijn dan {{count}}",
+          :less_than_or_equal_to => "moet minder of gelijk zijn aan {{count}}",
+          :odd => "moet oneven zijn",
+          :even => "moet even zijn"
+        }
+      }
+    }
+  }
+}
diff --git a/vendor/plugins/rails-i18n/locale/no-NB.yml b/vendor/plugins/rails-i18n/locale/no-NB.yml
new file mode 100644 (file)
index 0000000..ef2d937
--- /dev/null
@@ -0,0 +1,96 @@
+# Norwegian, norsk bokmål, by irb.no
+"no-NB":
+  support:
+    array:
+      sentence_connector: "og"
+  date:
+    formats:
+      default: "%d.%m.%Y"
+      short: "%e. %b"
+      long: "%e. %B %Y"
+    day_names: [søndag, mandag, tirsdag, onsdag, torsdag, fredag, lørdag]
+    abbr_day_names: [søn, man, tir, ons, tor, fre, lør]
+    month_names: [~, januar, februar, mars, april, mai, juni, juli, august, september, oktober, november, desember]
+    abbr_month_names: [~, jan, feb, mar, apr, mai, jun, jul, aug, sep, okt, nov, des]
+    order: [:day, :month, :year]
+  time:
+    formats:
+      default: "%A, %e. %B %Y, %H:%M"
+      time: "%H:%M"
+      short: "%e. %B, %H:%M"
+      long: "%A, %e. %B %Y, %H:%M"
+    am: ""
+    pm: ""
+  datetime:
+    distance_in_words:
+      half_a_minute: "et halvt minutt"
+      less_than_x_seconds:
+        one: "mindre enn 1 sekund"
+        other: "mindre enn {{count}} sekunder"
+      x_seconds:
+        one: "1 sekund"
+        other: "{{count}} sekunder"
+      less_than_x_minutes:
+        one: "mindre enn 1 minutt"
+        other: "mindre enn {{count}} minutter"
+      x_minutes:
+        one: "1 minutt"
+        other: "{{count}} minutter"
+      about_x_hours:
+        one: "rundt 1 time"
+        other: "rundt {{count}} timer"
+      x_days:
+        one: "1 dag"
+        other: "{{count}} dager"
+      about_x_months:
+        one: "rundt 1 måned"
+        other: "rundt {{count}} måneder"
+      x_months:
+        one: "1 måned"
+        other: "{{count}} måneder"
+      about_x_years:
+        one: "rundt 1 år"
+        other: "rundt {{count}} år"
+      over_x_years:
+        one: "over 1 år"
+        other: "over {{count}} år"
+  number:
+    format:
+      precision: 2
+      separator: "."
+      delimiter: ","
+    currency:
+      format:
+        unit: "kr"
+        format: "%n %u"
+    precision:
+      format:
+        delimiter: ""
+        precision: 4
+  activerecord:
+    errors:
+      template:
+        header: "kunne ikke lagre {{model}} på grunn av {{count}} feil."
+        body: "det oppstod problemer i følgende felt:"
+      messages:
+        inclusion: "er ikke inkludert i listen"
+        exclusion: "er reservert"
+        invalid: "er ugyldig"
+        confirmation: "passer ikke bekreftelsen"
+        accepted: "må være akseptert"
+        empty: "kan ikke være tom"
+        blank: "kan ikke være blank"
+        too_long: "er for lang (maksimum {{count}} tegn)"
+        too_short: "er for kort (minimum {{count}} tegn)"
+        wrong_length: "er av feil lengde (maksimum {{count}} tegn)"
+        taken: "er allerede i bruk"
+        not_a_number: "er ikke et tall"
+        greater_than: "må være større enn {{count}}"
+        greater_than_or_equal_to: "må være større enn eller lik {{count}}"
+        equal_to: "må være lik {{count}}"
+        less_than: "må være mindre enn {{count}}"
+        less_than_or_equal_to: "må være mindre enn eller lik {{count}}"
+        odd: "må være oddetall"
+        even: "må være partall"
+      # models:
+      # attributes:
diff --git a/vendor/plugins/rails-i18n/locale/no-NN.yml b/vendor/plugins/rails-i18n/locale/no-NN.yml
new file mode 100644 (file)
index 0000000..7cd9893
--- /dev/null
@@ -0,0 +1,96 @@
+# Norwegian, nynorsk, by irb.no
+"no-NN":
+  support:
+    array:
+      sentence_connector: "og"
+  date:
+    formats:
+      default: "%d.%m.%Y"
+      short: "%e. %b"
+      long: "%e. %B %Y"
+    day_names: [sundag, måndag, tysdag, onsdag, torsdag, fredag, laurdag]
+    abbr_day_names: [sun, mån, tys, ons, tor, fre, lau]
+    month_names: [~, januar, februar, mars, april, mai, juni, juli, august, september, oktober, november, desember]
+    abbr_month_names: [~, jan, feb, mar, apr, mai, jun, jul, aug, sep, okt, nov, des]
+    order: [:day, :month, :year]
+  time:
+    formats:
+      default: "%A, %e. %B %Y, %H:%M"
+      time: "%H:%M"
+      short: "%e. %B, %H:%M"
+      long: "%A, %e. %B %Y, %H:%M"
+    am: ""
+    pm: ""
+  datetime:
+    distance_in_words:
+      half_a_minute: "eit halvt minutt"
+      less_than_x_seconds:
+        one: "mindre enn 1 sekund"
+        other: "mindre enn {{count}} sekund"
+      x_seconds:
+        one: "1 sekund"
+        other: "{{count}} sekund"
+      less_than_x_minutes:
+        one: "mindre enn 1 minutt"
+        other: "mindre enn {{count}} minutt"
+      x_minutes:
+        one: "1 minutt"
+        other: "{{count}} minutt"
+      about_x_hours:
+        one: "rundt 1 time"
+        other: "rundt {{count}} timar"
+      x_days:
+        one: "1 dag"
+        other: "{{count}} dagar"
+      about_x_months:
+        one: "rundt 1 månad"
+        other: "rundt {{count}} månader"
+      x_months:
+        one: "1 månad"
+        other: "{{count}} månader"
+      about_x_years:
+        one: "rundt 1 år"
+        other: "rundt {{count}} år"
+      over_x_years:
+        one: "over 1 år"
+        other: "over {{count}} år"
+  number:
+    format:
+      precision: 2
+      separator: "."
+      delimiter: ","
+    currency:
+      format:
+        unit: "kr"
+        format: "%n %u"
+    precision:
+      format:
+        delimiter: ""
+        precision: 4
+  activerecord:
+    errors:
+      template:
+        header: "kunne ikkje lagra {{model}} grunna {{count}} feil."
+        body: "det oppstod problem i følgjande felt:"
+      messages:
+        inclusion: "er ikkje inkludert i lista"
+        exclusion: "er reservert"
+        invalid: "er ugyldig"
+        confirmation: "er ikkje stadfesta"
+        accepted: "må vera akseptert"
+        empty: "kan ikkje vera tom"
+        blank: "kan ikkje vera blank"
+        too_long: "er for lang (maksimum {{count}} teikn)"
+        too_short: "er for kort (minimum {{count}} teikn)"
+        wrong_length: "har feil lengde (maksimum {{count}} teikn)"
+        taken: "er allerie i bruk"
+        not_a_number: "er ikkje eit tal"
+        greater_than: "må vera større enn {{count}}"
+        greater_than_or_equal_to: "må vera større enn eller lik {{count}}"
+        equal_to: "må vera lik {{count}}"
+        less_than: "må vera mindre enn {{count}}"
+        less_than_or_equal_to: "må vera mindre enn eller lik {{count}}"
+        odd: "må vera oddetal"
+        even: "må vera partal"
+      # models:
+      # attributes:
\ No newline at end of file
diff --git a/vendor/plugins/rails-i18n/locale/pl.yml b/vendor/plugins/rails-i18n/locale/pl.yml
new file mode 100644 (file)
index 0000000..af84006
--- /dev/null
@@ -0,0 +1,118 @@
+# Polish translations for Ruby on Rails
+# by Jacek Becela (jacek.becela@gmail.com, http://github.com/ncr)
+
+pl:
+  number:
+    format:
+      separator: ","
+      delimiter: " "
+      precision: 2
+    currency:
+      format:
+        format: "%n %u"
+        unit: "PLN"
+    percentage:
+      format:
+        delimiter: ""
+    precision:
+      format:
+        delimiter: ""
+    human:
+      format:
+        delimiter: ""
+        precision: 1
+      storage_units: [B, KB, MB, GB, TB]
+
+  date:
+    formats:
+      default: "%Y-%m-%d"
+      short: "%d %b"
+      long: "%d %B %Y"
+    
+    day_names: [Niedziela, Poniedziałek, Wtorek, Środa, Czwartek, Piątek, Sobota]
+    abbr_day_names: [nie, pon, wto, śro, czw, pia, sob]
+    
+    month_names: [~, Styczeń, Luty, Marzec, Kwiecień, Maj, Czerwiec, Lipiec, Sierpień, Wrzesień, Październik, Listopad, Grudzień]
+    abbr_month_names: [~, sty, lut, mar, kwi, maj, cze, lip, sie, wrz, paź, lis, gru]
+    order: [ :year, :month, :day ]
+
+  time:
+    formats:
+      default: "%a, %d %b %Y, %H:%M:%S %z"
+      short: "%d %b, %H:%M"
+      long: "%d %B %Y, %H:%M"
+    am: "przed południem"
+    pm: "po południu"
+
+  datetime:
+    distance_in_words:
+      half_a_minute: "pół minuty"
+      less_than_x_seconds:
+        one:   "mniej niż sekundę"
+        few:   "mniej niż {{count}} sekundy"
+        other: "mniej niż {{count}} sekund"
+      x_seconds:
+        one:   "sekundę"
+        few:   "{{count}} sekundy"
+        other: "{{count}} sekund"
+      less_than_x_minutes:
+        one:   "mniej niż minutę"
+        few:   "mniej niż {{count}} minuty"
+        other: "mniej niż {{count}} minut"
+      x_minutes:
+        one:   "minutę"
+        few:   "{{count}} minuty"
+        other: "{{count}} minut"
+      about_x_hours:
+        one:   "około godziny"
+        other: "about {{count}} godzin"
+      x_days:
+        one:   "1 dzień"
+        other: "{{count}} dni"
+      about_x_months:
+        one:   "około miesiąca"
+        other: "około {{count}} miesięcy"
+      x_months:
+        one:   "1 miesiąc"
+        few:   "{{count}} miesiące"
+        other: "{{count}} miesięcy"
+      about_x_years:
+        one:   "około roku"
+        other: "około {{count}} lat"
+      over_x_years:
+        one:   "ponad rok"
+        few:   "ponad {{count}} lata"
+        other: "ponad {{count}} lat"
+
+  activerecord:
+    errors:
+      template:
+        header:
+          one:    "{{model}} nie został zachowany z powodu jednego błędu"
+          other:  "{{model}} nie został zachowany z powodu {{count}} błędów"
+        body: "Błędy dotyczą następujących pól:"
+      messages:
+        inclusion: "nie znajduje się na liście dopuszczalnych wartości"
+        exclusion: "znajduje się na liście zabronionych wartości"
+        invalid: "jest nieprawidłowe"
+        confirmation: "nie zgadza się z potwierdzeniem"
+        accepted: "musi być zaakceptowane"
+        empty: "nie może być puste"
+        blank: "nie może być puste"
+        too_long: "jest za długie (maksymalnie {{count}} znaków)"
+        too_short: "jest za krótkie (minimalnie {{count}} znaków)"
+        wrong_length: "jest nieprawidłowej długości (powinna wynosić {{count}} znaków)"
+        taken: "zostało już zajęte"
+        not_a_number: "nie jest liczbą"
+        greater_than: "musi być większe niż {{count}}"
+        greater_than_or_equal_to: "musi być większe lub równe {{count}}"
+        equal_to: "musi być równe {{count}}"
+        less_than: "musie być mniejsze niż {{count}}"
+        less_than_or_equal_to: "musi być mniejsze lub równe {{count}}"
+        odd: "musi być nieparzyste"
+        even: "musi być parzyste"
+      
+  support:
+    array:
+      sentence_connector: "i"
+      skip_last_comma: true
diff --git a/vendor/plugins/rails-i18n/locale/pt-BR.yml b/vendor/plugins/rails-i18n/locale/pt-BR.yml
new file mode 100644 (file)
index 0000000..ef980c4
--- /dev/null
@@ -0,0 +1,128 @@
+pt-BR:
+  # formatos de data e hora
+  date:
+    formats:
+      default: "%d/%m/%Y"
+      short: "%d de %B"
+      long: "%d de %B de %Y"
+      only_day: "%d"
+    
+    day_names: [Domingo, Segunda, Terça, Quarta, Quinta, Sexta, Sábado]
+    abbr_day_names: [Dom, Seg, Ter, Qua, Qui, Sex, Sáb]
+    month_names: [~, Janeiro, Fevereiro, Março, Abril, Maio, Junho, Julho, Agosto, Setembro, Outubro, Novembro, Dezembro]
+    abbr_month_names: [~, Jan, Fev, Mar, Abr, Mai, Jun, Jul, Ago, Set, Out, Nov, Dez]
+    order: [:day,:month,:year]
+  
+  time:
+    formats:
+      default: "%A, %d de %B de %Y, %H:%M hs"
+      time: "%H:%M hs"
+      short: "%d/%m, %H:%M hs"
+      long: "%A, %d de %B de %Y, %H:%M hs"
+      only_second: "%S"
+      datetime:
+        formats:
+          default: "%Y-%m-%dT%H:%M:%S%Z"
+    am: ''
+    pm: ''
+  
+  # date helper distanci em palavras
+  datetime:
+    distance_in_words:
+      half_a_minute: 'meio minuto'
+      less_than_x_seconds:
+        one: 'menos de 1 segundo'
+        other: 'menos de {{count}} segundos'
+      
+      x_seconds:
+        one: '1 segundo'
+        other: '{{count}} segundos'
+      
+      less_than_x_minutes:
+        one: 'menos de um minuto'
+        other: 'menos de {{count}} minutos'
+      
+      x_minutes:
+        one: '1 minuto'
+        other: '{{count}} minutos'
+      
+      about_x_hours:
+        one: 'aproximadamente 1 hora'
+        other: 'aproximadamente {{count}} horas'
+      
+      x_days:
+        one: '1 dia'
+        other: '{{count}} dias'
+      
+      about_x_months:
+        one: 'aproximadamente 1 mês'
+        other: 'aproximadamente {{count}} meses'
+      
+      x_months:
+        one: '1 mês'
+        other: '{{count}} meses'
+      
+      about_x_years:
+        one: 'aproximadamente 1 ano'
+        other: 'aproximadamente {{count}} anos'
+      
+      over_x_years:
+        one: 'mais de 1 ano'
+        other: 'mais de {{count}} anos'
+  
+  # numeros
+  number:
+    format:
+      precision: 3
+      separator: ','
+      delimiter: '.'
+    currency:
+      format:
+        unit: 'R$'
+        precision: 2
+        format: '%u %n'
+        separator: ','
+        delimiter: '.'
+    percentage:
+      format:
+        delimiter: '.'
+    precision:
+      format:
+        delimiter: '.'
+    human:
+      format:
+        precision: 1
+        delimiter: '.'
+  support:
+    array:
+      sentence_connector: "e"
+      skip_last_comma: true
+    
+  # Active Record
+  activerecord:
+    errors:
+      template:
+        header:
+          one: "{{model}} não pôde ser salvo: 1 erro"
+          other: "{{model}} não pôde ser salvo: {{count}} erros."
+        body: "Por favor, cheque os seguintes campos:"
+      messages:
+        inclusion: "não está incluso na lista"
+        exclusion: "não está disponível"
+        invalid: "não é válido"
+        confirmation: "não bate com a confirmação"
+        accepted: "precisa ser aceito"
+        empty: "não pode ser vazio"
+        blank: "não pode ser vazio"
+        too_long: "é muito longo (não mais do que {{count}} caracteres)"
+        too_short: "é muito curto (não menos do que {{count}} caracteres)"
+        wrong_length: "não é do tamanho correto (precisa ter {{count}} caracteres)"
+        taken: "não está disponível"
+        not_a_number: "não é um número"
+        greater_than: "precisa ser maior do que {{count}}"
+        greater_than_or_equal_to: "precisa ser maior ou igual a {{count}}"
+        equal_to: "precisa ser igual a {{count}}"
+        less_than: "precisa ser menor do que {{count}}"
+        less_than_or_equal_to: "precisa ser menor ou igual a {{count}}"
+        odd: "precisa ser ímpar"
+        even: "precisa ser par"
\ No newline at end of file
diff --git a/vendor/plugins/rails-i18n/locale/pt-PT.yml b/vendor/plugins/rails-i18n/locale/pt-PT.yml
new file mode 100644 (file)
index 0000000..6dfccbe
--- /dev/null
@@ -0,0 +1,112 @@
+# Portuguese localization for Ruby on Rails
+# by Ricardo Otero <oterosantos@gmail.com>
+pt-PT:
+  support:
+    array:
+      sentence_connector: "e"
+      skip_last_comma: true
+    
+  date:
+    formats:
+      default: "%d/%m/%Y"
+      short: "%d de %B"
+      long: "%d de %B de %Y"
+      only_day: "%d"
+    day_names: [Domingo, Segunda, Terça, Quarta, Quinta, Sexta, Sábado]
+    abbr_day_names: [Dom, Seg, Ter, Qua, Qui, Sex, Sáb]
+    month_names: [~, Janeiro, Fevereiro, Março, Abril, Maio, Junho, Julho, Agosto, Setembro, Outubro, Novembro, Dezembro]
+    abbr_month_names: [~, Jan, Fev, Mar, Abr, Mai, Jun, Jul, Ago, Set, Out, Nov, Dez]
+    order: [:day, :month, :year]
+    
+  time:
+    formats:        
+      default: "%A, %d de %B de %Y, %H:%Mh"
+      short: "%d/%m, %H:%M hs"
+      long: "%A, %d de %B de %Y, %H:%Mh"
+    am: ''
+    pm: ''
+  datetime:
+    distance_in_words:
+      half_a_minute: "meio minuto"
+      less_than_x_seconds:
+        one: "menos de 1 segundo"
+        other: "menos de {{count}} segundos"
+      x_seconds:
+        one: "1 segundo"
+        other: "{{count}} segundos"
+      less_than_x_minutes: 
+        one: "menos de um minuto"
+        other: "menos de {{count}} minutos"
+      x_minutes:
+        one: "1 minuto"
+        other: "{{count}} minutos"
+      about_x_hours:
+        one: "aproximadamente 1 hora"
+        other: "aproximadamente {{count}} horas"
+      x_days:
+        one: "1 dia"
+        other: "{{count}} dias"
+      about_x_months:
+        one: "aproximadamente 1 mês"
+        other: "aproximadamente {{count}} meses"
+      x_months:
+        one: "1 mês"
+        other: "{{count}} meses"
+      about_x_years:
+        one: "aproximadamente 1 ano"
+        other: "aproximadamente {{count}} anos"
+      over_x_years:
+        one: "mais de 1 ano"
+        other: "mais de {{count}} anos"
+        
+  number:
+    format:
+      precision: 3
+      separator: ','
+      delimiter: '.'
+    currency:
+      format:
+        unit: '€'
+        precision: 2
+        format: "%u %n"
+        separator: ','
+        delimiter: '.'
+    percentage:
+      format:
+        delimiter: ''
+    precision:
+      format:
+        delimiter: ''
+    human:
+      format:
+        precision: 1
+        delimiter: ''
+
+  activerecord:
+    errors:
+      template:
+        header:
+          one: "Não foi possível guardar {{model}}: 1 erro"
+          other: "Não foi possível guardar {{model}}: {{count}} erros"
+        body: "Por favor, verifique os seguintes campos:"
+      messages:
+        inclusion: "não está incluído na lista"
+        exclusion: "não está disponível"
+        invalid: "não é válido"
+        confirmation: "não está de acordo com a confirmação"
+        accepted:  "precisa de ser aceite"
+        empty: "não pode estar em branco"
+        blank: "não pode estar em branco"
+        too_long: "tem demasiados caracteres (máximo: {{count}} caracteres)"
+        too_short: "tem poucos caracteres (mínimo: {{count}} caracteres)"
+        wrong_length: "não é do tamanho correcto (necessita de ter {{count}} caracteres)"
+        taken: "não está disponível"
+        not_a_number: "não é um número"
+        greater_than: "tem de ser maior do que {{count}}"
+        greater_than_or_equal_to: "tem de ser maior ou igual a {{count}}"
+        equal_to: "tem de ser igual a {{count}}"
+        less_than: "tem de ser menor do que {{count}}"
+        less_than_or_equal_to: "tem de ser menor ou igual a {{count}}"
+        odd: "tem de ser ímpar"
+        even: "tem de ser par"
\ No newline at end of file
diff --git a/vendor/plugins/rails-i18n/locale/ro.yml b/vendor/plugins/rails-i18n/locale/ro.yml
new file mode 100644 (file)
index 0000000..5053cb3
--- /dev/null
@@ -0,0 +1,136 @@
+# Romanian translations for Ruby on Rails 
+# by Catalin Ilinca (me@talin.ro)
+# updated by kfl62 (bogus keys are now commented)
+
+ro:
+  date:
+    formats:
+      default: "%d-%m-%Y"
+      short: "%d %b"
+      long: "%d %B %Y"
+#      only_day: "%e"
+
+    day_names: [Duminică, Luni, Marți, Miercuri, Joi, Vineri, Sâmbată]
+    abbr_day_names: [Dum, Lun, Mar, Mie, Joi, Vin, Sâm]
+    month_names: [~, Ianuarie, Februarie, Martie, Aprilie, Mai, Iunie, Iulie, August, Septembrie, Octombrie, Noiembrie, Decembrie]
+    abbr_month_names: [~, Ian, Feb, Mar, Apr, Mai, Iun, Iul, Aug, Sep, Oct, Noi, Dec]
+    order: [ :day, :month, :year ]
+  
+  time:
+    formats:
+      default: "%a %d %b %Y, %H:%M:%S %z"
+#      time: "%H:%M"
+      short: "%d %b %H:%M"
+      long: "%d %B %Y %H:%M"
+#      only_second: "%S"
+      
+#      datetime:
+#        formats:
+#          default: "%d-%m-%YT%H:%M:%S%Z"
+          
+    am: ''
+    pm: ''
+      
+  datetime:
+    distance_in_words:
+      half_a_minute: "jumătate de minut"
+      less_than_x_seconds:
+        one:  "mai puțin de o secundă"
+        other: "mai puțin de {{count}} secunde"
+      x_seconds:
+        one:  "1 secundă"
+        other: "{{count}} secunde"
+      less_than_x_minutes:
+        one:  "mai puțin de un minut"
+        other: "mai puțin de {{count}} minute"
+      x_minutes:
+        one:  "1 minut"
+        other: "{{count}} minute"
+      about_x_hours:
+        one:  "aproximativ o oră"
+        other: "aproximativ {{count}} ore"
+      x_days:
+        one:  "1 zi"
+        other: "{{count}} zile"
+      about_x_months:
+        one:  "aproximativ o lună"
+        other: "aproximativ {{count}} luni"
+      x_months:
+        one:  "1 lună"
+        other: "{{count}} luni"
+      about_x_years:
+        one:  "aproximativ un an"
+        other: "aproximativ {{count}} ani"
+      over_x_years:
+        one:  "mai mult de un an"
+        other: "mai mult de {{count}} ani"
+    prompts:
+      year:   "Anul"
+      month:  "Luna"
+      day:    "Ziua"
+      hour:   "Ora"
+      minute: "Minutul"
+      second: "Secunda"
+      
+  number:
+    format:
+      precision: 3
+      separator: '.'
+      delimiter: ','
+    currency:
+      format:
+        unit: 'RON'
+        precision: 2
+        separator: '.'
+        delimiter: ','
+        format: '%n %u'
+    percentage:
+      format:
+        # separator:
+        delimiter: ","
+#        precision: 2
+    precision:
+      format:
+        # separator:
+        delimiter: ""
+        # precision:
+    human:
+      format:
+#        separator: "."
+        delimiter: ","
+        precision: 1
+      storage_units: [Bytes, KB, MB, GB, TB]
+        
+  activerecord:
+    errors:
+      template:
+        header: 
+          one: "Nu am putut salva acest model {{model}}: 1 eroare"
+          other: "Nu am putut salva acest {{model}}: {{count}} erori."
+        body: "Încearcă să corectezi urmatoarele câmpuri:"
+      messages:
+        inclusion: "nu este inclus în listă"
+        exclusion: "este rezervat"
+        invalid: "este invalid"
+        confirmation: "nu este confirmat"
+        accepted: "trebuie dat acceptul"
+        empty: "nu poate fi gol"
+        blank: "nu poate fi gol"
+        too_long: "este prea lung (se pot folosi maximum {{count}} caractere)"
+        too_short: "este pre scurt (minumim de caractere este {{count}})"
+        wrong_length: "nu are lungimea corectă (trebuie să aiba {{count}} caractere)"
+        taken: "este deja folosit"
+        not_a_number: "nu este un număr"
+        greater_than: "trebuie să fie mai mare decât {{count}}"
+        greater_than_or_equal_to: "trebuie să fie mai mare sau egal cu {{count}}"
+        equal_to: "trebuie să fie egal cu {{count}}"
+        less_than: "trebuie să fie mai mic decât {{count}}"
+        less_than_or_equal_to: "trebuie să fie mai mic sau egal cu {{count}}"
+        odd: "trebuie să fie par"
+        even: "trebuie să fie impar"
+  support:
+      array:
+#        sentence_connector: "și"
+        words_connector: ", "
+        two_words_connector: " şi "
+        last_word_connector: " şi "
diff --git a/vendor/plugins/rails-i18n/locale/ru.yml b/vendor/plugins/rails-i18n/locale/ru.yml
new file mode 100644 (file)
index 0000000..0b7d1f1
--- /dev/null
@@ -0,0 +1,200 @@
+# Russian localization for Ruby on Rails 2.2+
+# by Yaroslav Markin <yaroslav@markin.net>
+#
+# Be sure to check out "russian" gem (http://github.com/yaroslav/russian) for
+# full Russian language support in Rails (month names, pluralization, etc). 
+# The following is an excerpt from that gem.
+#
+# Для полноценной поддержки русского языка (варианты названий месяцев, 
+# плюрализация и так далее) в Rails 2.2 нужно использовать gem "russian" 
+# (http://github.com/yaroslav/russian). Следующие данные -- выдержка их него, чтобы
+# была возможность минимальной локализации приложения на русский язык.
+
+ru:
+  date:
+    formats:
+      default: "%d.%m.%Y"
+      short: "%d %b"
+      long: "%d %B %Y"
+
+    day_names: [воскресенье, понедельник, вторник, среда, четверг, пятница, суббота]
+    standalone_day_names: [Воскресенье, Понедельник, Вторник, Среда, Четверг, Пятница, Суббота]
+    abbr_day_names: [Вс, Пн, Вт, Ср, Чт, Пт, Сб]
+
+    month_names: [~, января, февраля, марта, апреля, мая, июня, июля, августа, сентября, октября, ноября, декабря]
+    # see russian gem for info on "standalone" day names
+    standalone_month_names: [~, Январь, Февраль, Март, Апрель, Май, Июнь, Июль, Август, Сентябрь, Октябрь, Ноябрь, Декабрь]
+    abbr_month_names: [~, янв., февр., марта, апр., мая, июня, июля, авг., сент., окт., нояб., дек.]
+    standalone_abbr_month_names: [~, янв., февр., март, апр., май, июнь, июль, авг., сент., окт., нояб., дек.]
+
+    order: [ :day, :month, :year ]
+
+  time:
+    formats:
+      default: "%a, %d %b %Y, %H:%M:%S %z"
+      short: "%d %b, %H:%M"
+      long: "%d %B %Y, %H:%M"
+
+    am: "утра"
+    pm: "вечера"
+
+  number:
+    format:
+      separator: "."
+      delimiter: " "
+      precision: 3
+      
+    currency:
+      format:
+        format: "%n %u"
+        unit: "руб."
+        separator: "."
+        delimiter: " "
+        precision: 2
+        
+    percentage:
+      format:
+        delimiter: ""
+        
+    precision:
+      format:
+        delimiter: ""
+        
+    human:
+      format:
+        delimiter: ""
+        precision: 1
+      # Rails 2.2
+      # storage_units: [байт, КБ, МБ, ГБ, ТБ]
+
+      # Rails 2.3
+      storage_units:
+        # Storage units output formatting.
+        # %u is the storage unit, %n is the number (default: 2 MB)
+        format: "%n %u"
+        units:
+          byte:
+            one:   "байт"
+            few:   "байта"
+            many:  "байт"
+            other: "байта"
+          kb: "КБ"
+          mb: "МБ"
+          gb: "ГБ"
+          tb: "ТБ"
+
+  datetime:
+    distance_in_words:
+      half_a_minute: "меньше минуты"
+      less_than_x_seconds:
+        one:   "меньше {{count}} секунды"
+        few:   "меньше {{count}} секунд"
+        many:  "меньше {{count}} секунд"
+        other: "меньше {{count}} секунды"
+      x_seconds:
+        one:   "{{count}} секунда"
+        few:   "{{count}} секунды"
+        many:  "{{count}} секунд"
+        other: "{{count}} секунды"
+      less_than_x_minutes:
+        one:   "меньше {{count}} минуты"
+        few:   "меньше {{count}} минут"
+        many:  "меньше {{count}} минут"
+        other: "меньше {{count}} минуты"
+      x_minutes:
+        one:   "{{count}} минуту"
+        few:   "{{count}} минуты"
+        many:  "{{count}} минут"
+        other: "{{count}} минуты"
+      about_x_hours:
+        one:   "около {{count}} часа"
+        few:   "около {{count}} часов"
+        many:  "около {{count}} часов"
+        other: "около {{count}} часа"
+      x_days:
+        one:   "{{count}} день"
+        few:   "{{count}} дня"
+        many:  "{{count}} дней"
+        other: "{{count}} дня"
+      about_x_months:
+        one:   "около {{count}} месяца"
+        few:   "около {{count}} месяцев"
+        many:  "около {{count}} месяцев"
+        other: "около {{count}} месяца"
+      x_months:
+        one:   "{{count}} месяц"
+        few:   "{{count}} месяца"
+        many:  "{{count}} месяцев"
+        other: "{{count}} месяца"
+      about_x_years:
+        one:   "около {{count}} года"
+        few:   "около {{count}} лет"
+        many:  "около {{count}} лет"
+        other: "около {{count}} лет"
+      over_x_years:
+        one:   "больше {{count}} года"
+        few:   "больше {{count}} лет"
+        many:  "больше {{count}} лет"
+        other: "больше {{count}} лет"
+    prompts:
+      year: "Год"
+      month: "Месяц"
+      day: "День"
+      hour: "Часов"
+      minute: "Минут"
+      second: "Секунд"
+
+  activerecord:
+    errors:
+      template:
+        header:
+          one:   "{{model}}: сохранение не удалось из-за {{count}} ошибки"
+          few:   "{{model}}: сохранение не удалось из-за {{count}} ошибок"
+          many:  "{{model}}: сохранение не удалось из-за {{count}} ошибок"
+          other: "{{model}}: сохранение не удалось из-за {{count}} ошибки"
+
+        body: "Проблемы возникли со следующими полями:"
+
+      messages:
+        inclusion: "имеет непредусмотренное значение"
+        exclusion: "имеет зарезервированное значение"
+        invalid: "имеет неверное значение"
+        confirmation: "не совпадает с подтверждением"
+        accepted: "нужно подтвердить"
+        empty: "не может быть пустым"
+        blank: "не может быть пустым"
+        too_long:
+          one:   "слишком большой длины (не может быть больше чем {{count}} символ)"
+          few:   "слишком большой длины (не может быть больше чем {{count}} символа)"
+          many:  "слишком большой длины (не может быть больше чем {{count}} символов)"
+          other: "слишком большой длины (не может быть больше чем {{count}} символа)"
+        too_short:
+          one:   "недостаточной длины (не может быть меньше {{count}} символа)"
+          few:   "недостаточной длины (не может быть меньше {{count}} символов)"
+          many:  "недостаточной длины (не может быть меньше {{count}} символов)"
+          other: "недостаточной длины (не может быть меньше {{count}} символа)"
+        wrong_length:
+          one:   "неверной длины (может быть длиной ровно {{count}} символ)"
+          few:   "неверной длины (может быть длиной ровно {{count}} символа)"
+          many:  "неверной длины (может быть длиной ровно {{count}} символов)"
+          other: "неверной длины (может быть длиной ровно {{count}} символа)"
+        taken: "уже существует"
+        not_a_number: "не является числом"
+        greater_than: "может иметь значение большее {{count}}"
+        greater_than_or_equal_to: "может иметь значение большее или равное {{count}}"
+        equal_to: "может иметь лишь значение, равное {{count}}"
+        less_than: "может иметь значение меньшее чем {{count}}"
+        less_than_or_equal_to: "может иметь значение меньшее или равное {{count}}"
+        odd: "может иметь лишь четное значение"
+        even: "может иметь лишь нечетное значение"
+
+  support:
+    array:
+      # Rails 2.2
+      sentence_connector: "и"
+      skip_last_comma: true
+      
+      # Rails 2.3
+      words_connector: ", "
+      two_words_connector: " и "
+      last_word_connector: " и "
diff --git a/vendor/plugins/rails-i18n/locale/sr-Latn.yml b/vendor/plugins/rails-i18n/locale/sr-Latn.yml
new file mode 100644 (file)
index 0000000..c28445b
--- /dev/null
@@ -0,0 +1,116 @@
+# Serbian (Latin) translations for Ruby on Rails
+# by Dejan Dimić (dejan.dimic@gmail.com)
+
+"sr-Latn":
+  date:
+    formats:
+      default: "%d/%m/%Y"
+      short: "%e %b"
+      long: "%B %e, %Y"
+      only_day: "%e"
+
+    day_names: [Nedelja, Ponedeljak, Utorak, Sreda, Četvrtak, Petak, Subota]
+    abbr_day_names: [Ned, Pon, Uto, Sre, Čet, Pet, Sub]
+    month_names: [~, Januar, Februar, Mart, April, Maj, Jun, Jul, Avgust, Septembar, Oktobar, Novembar, Decembar]
+    abbr_month_names: [~, Jan, Feb, Mar, Apr, Maj, Jun, Jul, Avg, Sep, Okt, Nov, Dec]
+    order: [ :day, :month, :year ]
+
+  time:
+    formats:
+      default: "%a %b %d %H:%M:%S %Z %Y"
+      time: "%H:%M"
+      short: "%d %b %H:%M"
+      long: "%B %d, %Y %H:%M"
+      only_second: "%S"
+
+      datetime:
+        formats:
+          default: "%Y-%m-%dT%H:%M:%S%Z"
+
+      am: 'AM'
+      pm: 'PM'
+
+  datetime:
+    distance_in_words:
+      half_a_minute: 'pola minute'
+      less_than_x_seconds:
+        zero: 'manje od 1 sekunde'
+        one: 'manje od 1 sekund'
+        few: 'manje od {{count}} sekunde'
+        other: 'manje od {{count}} sekundi'
+      x_seconds:
+        one: '1 sekunda'
+        few: '{{count}} sekunde'
+        other: '{{count}} sekundi'
+      less_than_x_minutes:
+        zero: 'manje od minuta'
+        one: 'manje od 1 minut'
+        other: 'manje od {{count}} minuta'
+      x_minutes:
+        one: '1 minut'
+        other: '{{count}} minuta'
+      about_x_hours:
+        one: 'oko 1 sat'
+        few: 'oko {{count}} sata'
+        other: 'oko {{count}} sati'
+      x_days:
+        one: '1 dan'
+        other: '{{count}} dana'
+      about_x_months:
+        one: 'oko 1 mesec'
+        few: 'oko {{count}} meseca'
+        other: 'oko {{count}} meseci'
+      x_months:
+        one: '1 mesec'
+        few: '{{count}} meseca'
+        other: '{{count}} meseci'
+      about_x_years:
+        one: 'oko 1 godine'
+        other: 'oko {{count}} godine'
+      over_x_years:
+        one: 'preko 1 godine'
+        other: 'preko {{count}} godine'
+
+  number:
+    format:
+      precision: 3
+      separator: ','
+      delimiter: '.'
+    currency:
+      format:
+        unit: 'DIN'
+        precision: 2
+        format: '%n %u'
+
+  support:
+    array:
+      sentence_connector: "i"
+
+  activerecord:
+    errors:
+      template:
+        header:
+          one: 'Nisam uspeo sačuvati {{model}}: 1 greška'
+          few: 'Nisam uspeo sačuvati {{model}}: {{count}} greške.'
+          other: 'Nisam uspeo sačuvati {{model}}: {{count}} greški.'
+        body: "Molim Vas proverite sledeća polja:"
+      messages:
+        inclusion: "nije u listi"
+        exclusion: "nije dostupno"
+        invalid: "nije ispravan"
+        confirmation: "se ne slaže sa svojom potvrdom"
+        accepted: "mora biti prihvaćen"
+        empty: "mora biti dat"
+        blank: "mora biti dat"
+        too_long: "je predugačak (ne više od {{count}} karaktera)"
+        too_short: "je prekratak (ne manje od {{count}} karaktera)"
+        wrong_length: "nije odgovarajuće dužine (mora imati {{count}} karaktera)"
+        taken: "je zauzeto"
+        not_a_number: "nije broj"
+        greater_than: "mora biti veće od {{count}}"
+        greater_than_or_equal_to: "mora biti veće ili jednako {{count}}"
+        equal_to: "mora biti jednako {{count}}"
+        less_than: "mora biti manje od {{count}}"
+        less_than_or_equal_to: "mora biti manje ili jednako {{count}}"
+        odd: "mora biti neparno"
+        even: "mora biti parno"
diff --git a/vendor/plugins/rails-i18n/locale/sr.yml b/vendor/plugins/rails-i18n/locale/sr.yml
new file mode 100644 (file)
index 0000000..7483d91
--- /dev/null
@@ -0,0 +1,116 @@
+# Serbian default (Cyrillic) translations for Ruby on Rails
+# by Dejan Dimić (dejan.dimic@gmail.com)
+
+"sr":
+  date:
+    formats:
+      default: "%d/%m/%Y"
+      short: "%e %b"
+      long: "%B %e, %Y"
+      only_day: "%e"
+
+    day_names: [Недеља, Понедељак, Уторак, Среда, Четвртак, Петак, Субота]
+    abbr_day_names: [Нед, Пон, Уто, Сре, Чет, Пет, Суб]
+    month_names: [~, Јануар, Фабруар, Март, Април, Мај, Јун, Јул, Август, Септембар, Октобар, Новембар, Децембар]
+    abbr_month_names: [~, Јан, Феб, Мар, Апр, Мај, Јун, Јул, Авг, Сеп, Окт, Нов, Дец]
+    order: [ :day, :month, :year ]
+
+  time:
+    formats:
+      default: "%a %b %d %H:%M:%S %Z %Y"
+      time: "%H:%M"
+      short: "%d %b %H:%M"
+      long: "%B %d, %Y %H:%M"
+      only_second: "%S"
+
+      datetime:
+        formats:
+          default: "%Y-%m-%dT%H:%M:%S%Z"
+
+      am: 'АМ'
+      pm: 'ПМ'
+
+  datetime:
+    distance_in_words:
+      half_a_minute: 'пола минуте'
+      less_than_x_seconds:
+        zero: 'мање од 1 секунде'
+        one: 'мање од 1 секунд'
+        few: 'мање од {{count}} секунде'
+        other: 'мање од {{count}} секунди'
+      x_seconds:
+        one: '1 секунда'
+        few: '{{count}} секунде'
+        other: '{{count}} секунди'
+      less_than_x_minutes:
+        zero: 'мање од минута'
+        one: 'мање од 1 минут'
+        other: 'мање од {{count}} минута'
+      x_minutes:
+        one: '1 минут'
+        other: '{{count}} минута'
+      about_x_hours:
+        one: 'око 1 сат'
+        few: 'око {{count}} сата'
+        other: 'око {{count}} сати'
+      x_days:
+        one: '1 дан'
+        other: '{{count}} дана'
+      about_x_months:
+        one: 'око 1 месец'
+        few: 'око {{count}} месеца'
+        other: 'око {{count}} месеци'
+      x_months:
+        one: '1 месец'
+        few: '{{count}} месеца'
+        other: '{{count}} месеци'
+      about_x_years:
+        one: 'око 1 године'
+        other: 'око {{count}} године'
+      over_x_years:
+        one: 'преко 1 године'
+        other: 'преко {{count}} године'
+
+  number:
+    format:
+      precision: 3
+      separator: ','
+      delimiter: '.'
+    currency:
+      format:
+        unit: 'ДИН'
+        precision: 2
+        format: '%n %u'
+
+  support:
+    array:
+      sentence_connector: "и"
+
+  activerecord:
+    errors:
+      template:
+        header:
+          one: 'Нисам успео сачувати {{model}}: 1 грешка.'
+          few: 'Нисам успео сачувати {{model}}: {{count}} грешке.'
+          other: 'Нисам успео сачувати {{model}}: {{count}} грешки.'
+        body: "Молим Вас да проверите следећа поља:"
+      messages:
+        inclusion: "није у листи"
+        exclusion: "није доступно"
+        invalid: "није исправан"
+        confirmation: "се не слаже са својом потврдом"
+        accepted: "мора бити прихваћено"
+        empty: "мора бити дат"
+        blank: "мора бити дат"
+        too_long: "је предугачак (не више од {{count}} карактера)"
+        too_short: "је прекратак (не мање од {{count}} карактера)"
+        wrong_length: "није одговарајуће дужине (мора имати {{count}} карактера)"
+        taken: "је заузето"
+        not_a_number: "није број"
+        greater_than: "мора бити веће од {{count}}"
+        greater_than_or_equal_to: "мора бити веће или једнако {{count}}"
+        equal_to: "кора бити једнако {{count}}"
+        less_than: "мора бити мање од {{count}}"
+        less_than_or_equal_to: "мора бити мање или једнако {{count}}"
+        odd: "мора бити непарно"
+        even: "мора бити парно"
diff --git a/vendor/plugins/rails-i18n/locale/sv-SE.yml b/vendor/plugins/rails-i18n/locale/sv-SE.yml
new file mode 100644 (file)
index 0000000..cbca6d9
--- /dev/null
@@ -0,0 +1,195 @@
+# Swedish translation, by Johan Lundström (johanlunds@gmail.com), with parts taken
+# from http://github.com/daniel/swe_rails
+
+"sv-SE":
+  number:
+    # Used in number_with_delimiter()
+    # These are also the defaults for 'currency', 'percentage', 'precision', and 'human'
+    format:
+      # Sets the separator between the units, for more precision (e.g. 1.0 / 2.0 == 0.5)
+      separator: ","
+      # Delimets thousands (e.g. 1,000,000 is a million) (always in groups of three)
+      delimiter: "."
+      # Number of decimals, behind the separator (the number 1 with a precision of 2 gives: 1.00)
+      precision: 2
+      
+    # Used in number_to_currency()
+    currency:
+      format:
+        # Where is the currency sign? %u is the currency unit, %n the number (default: $5.00)
+        format: "%n %u"
+        unit: "kr"
+        # These three are to override number.format and are optional
+        # separator: "."
+        # delimiter: ","
+        # precision: 2
+        
+    # Used in number_to_percentage()
+    percentage:
+      format:
+        # These three are to override number.format and are optional
+        # separator: 
+        delimiter: ""
+        # precision: 
+        
+    # Used in number_to_precision()
+    precision:
+      format:
+        # These three are to override number.format and are optional
+        # separator:
+        delimiter: ""
+        # precision:
+        
+    # Used in number_to_human_size()
+    human:
+      format:
+        # These three are to override number.format and are optional
+        # separator: 
+        delimiter: ""
+        # precision: 1
+      storage_units:
+        # Storage units output formatting.
+        # %u is the storage unit, %n is the number (default: 2 MB)
+        format: "%n %u"
+        units:
+          byte:
+            one:   "Byte"
+            other: "Bytes"
+          kb: "KB"
+          mb: "MB"
+          gb: "GB"
+          tb: "TB"
+              
+  # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
+  datetime:
+    distance_in_words:
+      half_a_minute: "en halv minut"
+      less_than_x_seconds:
+        one:   "mindre än en sekund"
+        other: "mindre än {{count}} sekunder"
+      x_seconds:
+        one:   "en sekund"
+        other: "{{count}} sekunder"
+      less_than_x_minutes:
+        one:   "mindre än en minut"
+        other: "mindre än {{count}} minuter"
+      x_minutes:
+        one:   "en minut"
+        other: "{{count}} minuter"
+      about_x_hours:
+        one:   "ungefär en timme"
+        other: "ungefär {{count}} timmar"
+      x_days:
+        one:   "en dag"
+        other: "{{count}} dagar"
+      about_x_months:
+        one:   "ungefär en månad"
+        other: "ungefär {{count}} månader"
+      x_months:
+        one:   "en månad"
+        other: "{{count}} månader"
+      about_x_years:
+        one:   "ungefär ett år"
+        other: "ungefär {{count}} år"
+      over_x_years:
+        one:   "mer än ett år"
+        other: "mer än {{count}} år"
+    prompts:
+      year:   "År"
+      month:  "Månad"
+      day:    "Dag"
+      hour:   "Timme"
+      minute: "Minut"
+      second: "Sekund"
+        
+  activerecord:
+    errors:
+      template:
+        header:
+          one:    "Ett fel förhindrade denna {{model}} från att sparas"
+          other:  "{{count}} fel förhindrade denna {{model}} från att sparas"
+        # The variable :count is also available
+        body: "Det var problem med följande fält:"
+      # The values :model, :attribute and :value are always available for interpolation
+      # The value :count is available when applicable. Can be used for pluralization.
+      messages:
+        inclusion: "finns inte i listan"
+        exclusion: "är reserverat"
+        invalid: "är ogiltigt"
+        confirmation: "stämmer inte överens"
+        accepted : "måste vara accepterad"
+        empty: "får ej vara tom"
+        blank: "måste anges"
+        too_long: "är för lång (maximum är {{count}} tecken)"
+        too_short: "är för kort (minimum är {{count}} tecken)"
+        wrong_length: "har fel längd (ska vara {{count}} tecken)"
+        taken: "har redan tagits"
+        not_a_number: "är inte ett nummer"
+        greater_than: "måste vara större än {{count}}"
+        greater_than_or_equal_to: "måste vara större än eller lika med {{count}}"
+        equal_to: "måste vara samma som"
+        less_than: "måste vara mindre än {{count}}"
+        less_than_or_equal_to: "måste vara mindre än eller lika med {{count}}"
+        odd: "måste vara udda"
+        even: "måste vara jämnt"
+        # Append your own errors here or at the model/attributes scope.
+
+      # You can define own errors for models or model attributes.
+      # The values :model, :attribute and :value are always available for interpolation.
+      #
+      # For example,
+      #   models:
+      #     user:
+      #       blank: "This is a custom blank message for {{model}}: {{attribute}}"
+      #       attributes:
+      #         login:
+      #           blank: "This is a custom blank message for User login"
+      # Will define custom blank validation message for User model and 
+      # custom blank validation message for login attribute of User model.
+      # models:
+        
+    # Translate model names. Used in Model.human_name().
+    #models:
+      # For example,
+      #   user: "Dude"
+      # will translate User model name to "Dude"
+    
+    # Translate model attribute names. Used in Model.human_attribute_name(attribute).
+    #attributes:
+      # For example,
+      #   user:
+      #     login: "Handle"
+      # will translate User attribute "login" as "Handle"
+
+  date:
+    formats:
+      # Use the strftime parameters for formats.
+      # When no format has been given, it uses default.
+      # You can provide other formats here if you like!
+      default: "%Y-%m-%d"
+      short: "%e %b"
+      long: "%e %B, %Y"
+      
+    day_names: [söndag, måndag, tisdag, onsdag, torsdag, fredag, lördag]
+    abbr_day_names: [sön, mån, tis, ons, tor, fre, lör]
+      
+    # Don't forget the nil at the beginning; there's no such thing as a 0th month
+    month_names: [~, januari, februari, mars, april, maj, juni, juli, augusti, september, oktober, november, december]
+    abbr_month_names: [~, jan, feb, mar, apr, maj, jun, jul, aug, sep, okt, nov, dec]
+    # Used in date_select and datime_select.
+    order: [ :day, :month, :year ]
+
+  time:
+    formats:
+      default: "%a, %d %b %Y %H:%M:%S %z"
+      short: "%d %b %H:%M"
+      long: "%d %B, %Y %H:%M"
+    am: ""
+    pm: ""
+            
+# Used in array.to_sentence.
+  support:
+    array:
+      words_connector: ", "
+      two_words_connector: " och "
+      last_word_connector: " och "
diff --git a/vendor/plugins/rails-i18n/locale/sw.yml b/vendor/plugins/rails-i18n/locale/sw.yml
new file mode 100644 (file)
index 0000000..ae21301
--- /dev/null
@@ -0,0 +1,122 @@
+# Swahili translations for Rails
+# by Joachim Mangilima (joachimm3@gmail.com) and Matthew Todd (http://matthewtodd.org)
+
+sw:
+  # date:
+  #   formats:
+  #     default: "%d.%m.%Y"
+  #     short: "%e. %b"
+  #     long: "%e. %B %Y"
+  #     only_day: "%e"
+  # 
+  #   day_names: [Sonntag, Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag]
+  #   abbr_day_names: [So, Mo, Di, Mi, Do, Fr, Sa]
+  #   month_names: [~, Januar, Februar, März, April, Mai, Juni, Juli, August, September, Oktober, November, Dezember]
+  #   abbr_month_names: [~, Jan, Feb, Mär, Apr, Mai, Jun, Jul, Aug, Sep, Okt, Nov, Dez]
+  #   order: [ :day, :month, :year ]
+  # 
+  # time:
+  #   formats:
+  #     default: "%A, %e. %B %Y, %H:%M Uhr"
+  #     short: "%e. %B, %H:%M Uhr"
+  #     long: "%A, %e. %B %Y, %H:%M Uhr"
+  #     time: "%H:%M"
+  # 
+  #   am: "vormittags"
+  #   pm: "nachmittags"
+  #     
+  # datetime:
+  #   distance_in_words:
+  #     half_a_minute: 'eine halbe Minute'
+  #     less_than_x_seconds:
+  #       zero: 'weniger als 1 Sekunde'
+  #       one: 'weniger als 1 Sekunde'
+  #       other: 'weniger als {{count}} Sekunden'
+  #     x_seconds:
+  #       one: '1 Sekunde'
+  #       other: '{{count}} Sekunden'
+  #     less_than_x_minutes:
+  #       zero: 'weniger als 1 Minute'
+  #       one: 'weniger als eine Minute'
+  #       other: 'weniger als {{count}} Minuten'
+  #     x_minutes:
+  #       one: '1 Minute'
+  #       other: '{{count}} Minuten'
+  #     about_x_hours:
+  #       one: 'etwa 1 Stunde'
+  #       other: 'etwa {{count}} Stunden'
+  #     x_days:
+  #       one: '1 Tag'
+  #       other: '{{count}} Tage'
+  #     about_x_months:
+  #       one: 'etwa 1 Monat'
+  #       other: 'etwa {{count}} Monate'
+  #     x_months:
+  #       one: '1 Monat'
+  #       other: '{{count}} Monate'
+  #     about_x_years:
+  #       one: 'etwa 1 Jahr'
+  #       other: 'etwa {{count}} Jahre'
+  #     over_x_years:
+  #       one: 'mehr als 1 Jahr'
+  #       other: 'mehr als {{count}} Jahre'
+  #     
+  # number:
+  #   format:
+  #     precision: 2
+  #     separator: ','
+  #     delimiter: '.'
+  #   currency:
+  #     format:
+  #       unit: '€'
+  #       format: '%n%u'
+  #       separator: 
+  #       delimiter: 
+  #       precision: 
+  #   percentage:
+  #     format:
+  #       delimiter: ""
+  #   precision:
+  #     format:
+  #       delimiter: ""
+  #   human:
+  #     format:
+  #       delimiter: ""
+  #       precision: 1
+  # 
+  support:
+    array:
+      words_connector: ", "
+      two_words_connector: " na "
+      last_word_connector: ", na "
+        
+  activerecord:
+    errors:
+      # template:
+      #   header:
+      #     one:    "Konnte dieses {{model}} Objekt nicht speichern: 1 Fehler."
+      #     other:  "Konnte dieses {{model}} Objekt nicht speichern: {{count}} Fehler."
+      #   body: "Bitte überprüfen Sie die folgenden Felder:"
+  
+      # The values :model, :attribute and :value are always available for interpolation
+      # The value :count is available when applicable. Can be used for pluralization.
+      messages:
+        # inclusion: "is not included in the list"
+        exclusion: "haiwezi kutumika"
+        invalid: "haifai"
+        confirmation: "haifanani na hapo chini"
+        # accepted: "must be accepted"
+        empty: "haitakiwi kuwa wazi"
+        blank: "haitakiwi kuwa wazi"
+        too_long: "ndefu sana (isizidi herufi {{count}})"
+        too_short: "fupi mno (isipungue herufi {{count}})"
+        # wrong_length: "is the wrong length (should be {{count}} characters)"
+        taken: "imeshachukuliwa"
+        not_a_number: "inaruhusiwa namba tu"
+        # greater_than: "must be greater than {{count}}"
+        # greater_than_or_equal_to: "must be greater than or equal to {{count}}"
+        # equal_to: "must be equal to {{count}}"
+        # less_than: "must be less than {{count}}"
+        # less_than_or_equal_to: "must be less than or equal to {{count}}"
+        # odd: "must be odd"
+        # even: "must be even"
diff --git a/vendor/plugins/rails-i18n/locale/th.rb b/vendor/plugins/rails-i18n/locale/th.rb
new file mode 100644 (file)
index 0000000..30787a1
--- /dev/null
@@ -0,0 +1,110 @@
+# Thai translation for Ruby on Rails
+# original by Prem Sichanugrist (s@sikachu.com/sikandsak@gmail.com)
+# activerecord keys fixed by Jittat Fakcharoenphol (jittat@gmail.com)
+
+{ 
+  :'th' => {
+    :date => {
+      :formats => {
+        :default      => lambda { |date| "%d-%m-#{date.year+543}" },
+        :short        => "%e %b",
+        :long         => lambda { |date| "%e %B #{date.year+543}" },
+        :long_ordinal => lambda { |date| "%e %B #{date.year+543}" },
+        :only_day     => "%e"
+      },
+      :day_names => %w(อาทิตย์ จันทร์ อังคาร พุธ พฤหัสบดี ศุกร์ เสาร์),
+      :abbr_day_names => %w(อา จ อ พ พฤ ศ ส),
+      :month_names => [nil] + %w(มกราคม กุมภาพันธ์ มีนาคม เมษายน พฤษภาคม มิถุนายน กรกฎาคม สิงหาคม กันยายน ตุลาคม พฤศจิกายน ธันวาคม),
+      :abbr_month_names => [nil] + %w(ม.ค. ก.พ. มี.ค. เม.ย. พ.ค. มิ.ย. ก.ค. ส.ค. ก.ย. ต.ค. พ.ย. ธ.ค.),
+      :order => [:day, :month, :year]
+    },
+    :time => {
+      :formats => {
+        :default      => lambda { |time| "%a %d %b #{time.year+543} %H:%M:%S %Z" },
+        :time         => "%H:%M น.",
+        :short        => "%d %b %H:%M น.",
+        :long         => lambda { |time| "%d %B #{time.year+543} %H:%M น." },
+        :long_ordinal => lambda { |time| "%d %B #{time.year+543} %H:%M น." },
+        :only_second  => "%S"
+      },
+      :time_with_zone => {
+        :formats => {
+          :default => lambda { |time| "%Y-%m-%d %H:%M:%S #{time.formatted_offset(false, 'UTC')}" }
+        }
+      },
+      :am => '',
+      :pm => ''
+    },
+    :datetime => {
+      :formats => {
+        :default => "%Y-%m-%dT%H:%M:%S%Z"
+      },
+      :distance_in_words => {
+        :half_a_minute       => 'ครึ่งนาทีที่ผ่านมา',
+        :less_than_x_seconds => 'น้อยกว่า {{count}} วินาที',
+        :x_seconds           => '{{count}} วินาที',
+        :less_than_x_minutes => 'น้อยกว่า {{count}} วินาที',
+        :x_minutes           => '{{count}} นาที',
+        :about_x_hours       => 'ประมาณ {{count}} ชั่วโมง',
+        :x_hours             => '{{count}} ชั่วโมง',
+        :about_x_days        => 'ประมาณ {{count}} วัน',
+        :x_days              => '{{count}} วัน',
+        :about_x_months      => 'ประมาณ {{count}} เดือน',
+        :x_months            => '{{count}} เดือน',
+        :about_x_years       => 'ประมาณ {{count}} ปี',
+        :over_x_years        => 'เกิน {{count}} ปี'
+      }
+    },
+
+    # numbers
+    :number => {
+      :format => {
+        :precision => 3,
+        :separator => '.',
+        :delimiter => ','
+      },
+      :currency => {
+        :format => {
+          :unit => 'Baht',
+          :precision => 2,
+          :format => '%n %u'
+        }
+      },
+    },
+
+    # Active Record
+    :activerecord => {
+      :errors => {
+        :template => {
+          :header => {
+            :one => "ไม่สามารถบันทึก {{model}} ได้เนื่องจากเกิดข้อผิดพลาด",
+            :other => "ไม่สามารถบันทึก {{model}} ได้เนื่องจากเกิด {{count}} ข้อผิดพลาด"
+          },
+          :body => "โปรดตรวจสอบข้อมูลที่คุณกรอกในช่องต่อไปนี้:"
+        },
+        :messages => {
+          :inclusion => "ไม่ได้อยู่ในลิสต์",
+          :exclusion => "ถูกจองเอาไว้แล้ว",
+          :invalid => "ไม่ถูกต้อง",
+          :confirmation => "ไม่ตรงกับการยืนยัน",
+          :accepted  => "ต้องอยู่ในรูปแบบที่ยอมรับ",
+          :empty => "ต้องไม้เว้นว่างเอาไว้",
+          :blank => "ต้องไม่เว้นว่างเอาไว้",
+          :too_long => "ยาวเกินไป (ต้องไม่เกิน {{count}} ตัวอักษร)",
+          :too_short => "สั้นเกินไป (ต้องยาวกว่า {{count}} ตัวอักษร)",
+          :wrong_length => "มีความยาวไม่ถูกต้อง (ต้องมีความยาว {{count}} ตัวอักษร)",
+          :taken => "ถูกใช้ไปแล้ว",
+          :not_a_number => "ไม่ใช่ตัวเลข",
+          :greater_than => "ต้องมากกว่า {{count}}",
+          :greater_than_or_equal_to => "ต้องมากกว่าหรือเท่ากับ {{count}}",
+          :equal_to => "ต้องเท่ากับ {{count}}",
+          :less_than => "ต้องน้อยกว่า {{count}}",
+          :less_than_or_equal_to => "ต้องน้อยกว่าหรือเท่ากับ {{count}}",
+          :odd => "ต้องเป็นเลขคี่",
+          :even => "ต้องเป็นเลขคู่"
+        }
+      }
+    }
+  }
+} 
+
diff --git a/vendor/plugins/rails-i18n/locale/tr.yml b/vendor/plugins/rails-i18n/locale/tr.yml
new file mode 100644 (file)
index 0000000..ccb21e4
--- /dev/null
@@ -0,0 +1,129 @@
+# Turkish translations for Ruby on Rails 
+# by Ozgun Ataman (ozataman@gmail.com)
+
+tr:
+  locale:
+    native_name: Türkçe
+    address_separator: " "
+  date:
+    formats:
+      default: "%d.%m.%Y"
+      numeric: "%d.%m.%Y"
+      short: "%e %b"
+      long: "%e %B %Y, %A"
+      only_day: "%e"
+
+    day_names: [Pazar, Pazartesi, Salı, Çarşamba, Perşembe, Cuma, Cumartesi]
+    abbr_day_names: [Pzr, Pzt, Sal, Çrş, Prş, Cum, Cts]
+    month_names: [~, Ocak, Şubat, Mart, Nisan, Mayıs, Haziran, Temmuz, Ağustos, Eylül, Ekim, Kasım, Aralık]
+    abbr_month_names: [~, Oca, Şub, Mar, Nis, May, Haz, Tem, Ağu, Eyl, Eki, Kas, Ara]
+    order: [ :day, :month, :year ]
+  
+  time:
+    formats:
+      default: "%a %d.%b.%y %H:%M"
+      numeric: "%d.%b.%y %H:%M"
+      short: "%e %B, %H:%M"
+      long: "%e %B %Y, %A, %H:%M"
+      time: "%H:%M"
+
+    am: "öğleden önce"
+    pm: "öğleden sonra"
+      
+  datetime:
+    distance_in_words:
+      half_a_minute: 'yarım dakika'
+      less_than_x_seconds:
+        zero: '1 saniyeden az'
+        one: '1 saniyeden az'
+        other: '{{count}} saniyeden az'
+      x_seconds:
+        one: '1 saniye'
+        other: '{{count}} saniye'
+      less_than_x_minutes:
+        zero: '1 dakikadan az'
+        one: '1 dakikadan az'
+        other: '{{count}} dakikadan az'
+      x_minutes:
+        one: '1 dakika'
+        other: '{{count}} dakika'
+      about_x_hours:
+        one: '1 saat civarında'
+        other: '{{count}} saat civarında'
+      x_days:
+        one: '1 gün'
+        other: '{{count}} gün'
+      about_x_months:
+        one: '1 ay civarında'
+        other: '{{count}} ay civarında'
+      x_months:
+        one: '1 ay'
+        other: '{{count}} ay'
+      about_x_years:
+        one: '1 yıl civarında'
+        other: '{{count}} yıl civarında'
+      over_x_years:
+        one: '1 yıldan fazla'
+        other: '{{count}} yıldan fazla'
+      
+  number:
+    format:
+      precision: 2
+      separator: ','
+      delimiter: '.'
+    currency:
+      format:
+        unit: 'TL'
+        format: '%n %u'
+        separator: ','
+        delimiter: '.'
+        precision: 2
+    percentage:
+      format:
+        delimiter: '.'
+        separator: ','
+        precision: 2
+    precision:
+      format:
+        delimiter: '.'
+        separator: ','
+    human:
+      format:
+        delimiter: '.'
+        separator: ','
+        precision: 2
+
+  support:
+    array:
+      sentence_connector: "ve"
+      skip_last_comma: true
+        
+  activerecord:
+    errors:
+      template:
+        header:
+          one:    "{{model}} girişi kaydedilemedi: 1 hata."
+          other:  "{{model}} girişi kadedilemedi: {{count}} hata."
+        body: "Lütfen aşağıdaki hataları düzeltiniz:"
+
+      messages:
+        inclusion: "kabul edilen bir kelime değil"
+        exclusion: "kullanılamaz"
+        invalid: "geçersiz"
+        confirmation: "teyidi uyuşmamakta"
+        accepted: "kabul edilmeli"
+        empty: "doldurulmalı"
+        blank: "doldurulmalı"
+        too_long: "çok uzun (en fazla {{count}} karakter)"
+        too_short: "çok kısa (en az {{count}} karakter)"
+        wrong_length: "yanlış uzunlukta (tam olarak {{count}} karakter olmalı)"
+        taken: "hali hazırda kullanılmakta"
+        not_a_number: "geçerli bir sayı değil"
+        greater_than: "{{count}} sayısından büyük olmalı"
+        greater_than_or_equal_to: "{{count}} sayısına eşit veya büyük olmalı"
+        equal_to: "tam olarak {{count}} olmalı"
+        less_than: "{{count}} sayısından küçük olmalı"
+        less_than_or_equal_to: "{{count}} sayısına eşit veya küçük olmalı"
+        odd: "tek olmalı"
+        even: "çift olmalı"
+      models:
diff --git a/vendor/plugins/rails-i18n/locale/vi.yml b/vendor/plugins/rails-i18n/locale/vi.yml
new file mode 100644 (file)
index 0000000..9070998
--- /dev/null
@@ -0,0 +1,187 @@
+# Vietnamese translation for Ruby on Rails
+# by
+#   Do Hai Bac (dohaibac@gmail.com)
+#   Dao Thanh Ngoc (ngocdaothanh@gmail.com, http://github.com/ngocdaothanh/rails-i18n/tree/master)
+
+vi:
+  number:
+    # Used in number_with_delimiter()
+    # These are also the defaults for 'currency', 'percentage', 'precision', and 'human'
+    format:
+      # Sets the separator between the units, for more precision (e.g. 1.0 / 2.0 == 0.5)
+      separator: ","
+      # Delimets thousands (e.g. 1,000,000 is a million) (always in groups of three)
+      delimiter: "."
+      # Number of decimals, behind the separator (1 with a precision of 2 gives: 1.00)
+      precision: 3
+
+    # Used in number_to_currency()
+    currency:
+      format:
+        # Where is the currency sign? %u is the currency unit, %n the number (default: $5.00)
+        format: "%n %u"
+        unit: "đồng"
+        # These three are to override number.format and are optional
+        separator: ","
+        delimiter: "."
+        precision: 2
+
+    # Used in number_to_percentage()
+    percentage:
+      format:
+        # These three are to override number.format and are optional
+        # separator:
+        delimiter: ""
+        # precision:
+
+    # Used in number_to_precision()
+    precision:
+      format:
+        # These three are to override number.format and are optional
+        # separator:
+        delimiter: ""
+        # precision:
+
+    # Used in number_to_human_size()
+    human:
+      format:
+        # These three are to override number.format and are optional
+        # separator:
+        delimiter: ""
+        precision: 1
+      storage_units: [Bytes, KB, MB, GB, TB]
+
+  # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
+  datetime:
+    distance_in_words:
+      half_a_minute: "30 giây"
+      less_than_x_seconds:
+        one:   "chưa tới 1 giây"
+        other: "chưa tới {{count}} giây"
+      x_seconds:
+        one:   "1 giây"
+        other: "{{count}} giây"
+      less_than_x_minutes:
+        one:   "chưa tới 1 phút"
+        other: "chưa tới {{count}} phút"
+      x_minutes:
+        one:   "1 phút"
+        other: "{{count}} phút"
+      about_x_hours:
+        one:   "khoảng 1 giờ"
+        other: "khoảng {{count}} giờ"
+      x_days:
+        one:   "1 ngày"
+        other: "{{count}} ngày"
+      about_x_months:
+        one:   "khoảng 1 tháng"
+        other: "khoảng {{count}} tháng"
+      x_months:
+        one:   "1 tháng"
+        other: "{{count}} tháng"
+      about_x_years:
+        one:   "khoảng 1 năm"
+        other: "khoảng {{count}} năm"
+      over_x_years:
+        one:   "hơn 1 năm"
+        other: "hơn {{count}} năm"
+    prompts:
+      year:   "Năm"
+      month:  "Tháng"
+      day:    "Ngày"
+      hour:   "Giờ"
+      minute: "Phút"
+      second: "Giây"
+
+  activerecord:
+    errors:
+      template:
+        header:
+          one:   "1 lỗi ngăn không cho lưu {{model}} này"
+          other: "{{count}} lỗi ngăn không cho lưu {{model}} này"
+        # The variable :count is also available
+        body: "Có lỗi với các mục sau:"
+
+      # The values :model, :attribute and :value are always available for interpolation
+      # The value :count is available when applicable. Can be used for pluralization.
+      messages:
+        inclusion: "không có trong danh sách"
+        exclusion: "đã được giành trước"
+        invalid: "không hợp lệ"
+        confirmation: "không khớp với xác nhận"
+        accepted: "phải được đồng ý"
+        empty: "không thể rỗng"
+        blank: "không thể để trắng"
+        too_long: "quá dài (tối đa {{count}} ký tự)"
+        too_short: "quá ngắn (tối thiểu {{count}} ký tự)"
+        wrong_length: "độ dài không đúng (phải là {{count}} ký tự)"
+        taken: "đã có"
+        not_a_number: "không phải là số"
+        greater_than: "phải lớn hơn {{count}}"
+        greater_than_or_equal_to: "phải lớn hơn hoặc bằng {{count}}"
+        equal_to: "phải bằng {{count}}"
+        less_than: "phải nhỏ hơn {{count}}"
+        less_than_or_equal_to: "phải nhỏ hơn hoặc bằng {{count}}"
+        odd: "phải là số chẵn"
+        even: "phải là số lẻ"
+        # Append your own errors here or at the model/attributes scope.
+
+      # You can define own errors for models or model attributes.
+      # The values :model, :attribute and :value are always available for interpolation.
+      #
+      # For example,
+      #   models:
+      #     user:
+      #       blank: "This is a custom blank message for {{model}}: {{attribute}}"
+      #       attributes:
+      #         login:
+      #           blank: "This is a custom blank message for User login"
+      # Will define custom blank validation message for User model and 
+      # custom blank validation message for login attribute of User model.
+      # models:
+        
+    # Translate model names. Used in Model.human_name().
+    #models:
+      # For example,
+      #   user: "Dude"
+      # will translate User model name to "Dude"
+    
+    # Translate model attribute names. Used in Model.human_attribute_name(attribute).
+    #attributes:
+      # For example,
+      #   user:
+      #     login: "Handle"
+      # will translate User attribute "login" as "Handle"
+
+  date:
+    formats:
+      # Use the strftime parameters for formats.
+      # When no format has been given, it uses default.
+      # You can provide other formats here if you like!
+      default: "%d-%m-%Y"
+      short: "%d %b"
+      long: "%d %B, %Y"
+
+    day_names: ["Chủ nhật", "Thứ hai", "Thứ ba", "Thứ tư", "Thứ năm", "Thứ sáu", "Thứ bảy"]
+    abbr_day_names: ["Chủ nhật", "Thứ hai", "Thứ ba", "Thứ tư", "Thứ năm", "Thứ sáu", "Thứ bảy"]
+
+    # Don't forget the nil at the beginning; there's no such thing as a 0th month
+    month_names: [~, "Tháng một", "Tháng hai", "Tháng ba", "Tháng tư", "Tháng năm", "Tháng sáu", "Tháng bảy", "Tháng tám", "Tháng chín", "Tháng mười", "Tháng mười một", "Tháng mười hai"]
+    abbr_month_names: [~, "Tháng một", "Tháng hai", "Tháng ba", "Tháng tư", "Tháng năm", "Tháng sáu", "Tháng bảy", "Tháng tám", "Tháng chín", "Tháng mười", "Tháng mười một", "Tháng mười hai"]
+    # Used in date_select and datime_select.
+    order: [ :day, :month, :year ]
+
+  time:
+    formats:
+      default: "%a, %d %b %Y %H:%M:%S %z"
+      short: "%d %b %H:%M"
+      long: "%d %B, %Y %H:%M"
+    am: "sáng"
+    pm: "chiều"
+
+  # Used in array.to_sentence.
+  support:
+    array:
+      words_connector: ", "
+      two_words_connector: " và "
+      last_word_connector: ", và "
diff --git a/vendor/plugins/rails-i18n/locale/zh-CN.yml b/vendor/plugins/rails-i18n/locale/zh-CN.yml
new file mode 100644 (file)
index 0000000..2208b80
--- /dev/null
@@ -0,0 +1,124 @@
+# Chinese (China) translations for Ruby on Rails 
+# by tsechingho (http://github.com/tsechingho)
+
+"zh-CN":
+  date:
+    formats:
+      default: "%Y-%m-%d"
+      short: "%b%d日"
+      long: "%Y年%b%d日"
+    day_names: [星期天, 星期一, 星期二, 星期三, 星期四, 星期五, 星期六]
+    abbr_day_names: [日, 一, 二, 三, 四, 五, 六]
+    month_names: [~, 一月, 二月, 三月, 四月, 五月, 六月, 七月, 八月, 九月, 十月, 十一月, 十二月]
+    abbr_month_names: [~, 1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月, 10月, 11月, 12月]
+    order: [ :year, :month, :day ]
+  
+  time:
+    formats:
+      default: "%Y年%b%d日 %A %H:%M:%S %Z"
+      short: "%b%d日 %H:%M"
+      long: "%Y年%b%d日 %H:%M"
+    am: "上午"
+    pm: "下午"
+  
+  datetime:
+    distance_in_words:
+      half_a_minute: "半分钟"
+      less_than_x_seconds:
+        one: "一秒内"
+        other: "少于 {{count}} 秒"
+      x_seconds:
+        one: "一秒"
+        other: "{{count}} 秒"
+      less_than_x_minutes:
+        one: "一分钟内"
+        other: "少于 {{count}} 分钟"
+      x_minutes:
+        one: "一分钟"
+        other: "{{count}} 分钟"
+      about_x_hours:
+        one: "大约一小时"
+        other: "大约 {{count}} 小时"
+      x_days:
+        one: "一天"
+        other: "{{count}} 天"
+      about_x_months:
+        one: "大约一个月"
+        other: "大约 {{count}} 个月"
+      x_months:
+        one: "一个月"
+        other: "{{count}} 个月"
+      about_x_years:
+        one: "大约一年"
+        other: "大约 {{count}} 年"
+      over_x_years:
+        one: "一年以上"
+        other: "{{count}} 年以上"
+    prompts:
+      year:   "年"
+      month:  "月"
+      day:    "日"
+      hour:   "时"
+      minute: "分"
+      second: "秒"
+  
+  number:
+    format:
+      separator: "."
+      delimiter: ","
+      precision: 3
+    currency:
+      format:
+        format: "%u %n"
+        unit: "CNY"
+        separator: "."
+        delimiter: ","
+        precision: 2
+    percentage:
+      format:
+        delimiter: ""
+    precision:
+      format:
+        delimiter: ""
+    human:
+      format:
+        delimiter: ""
+        precision: 1
+      storage_units: [Bytes, KB, MB, GB, TB]
+  
+  support:
+    array:
+      words_connector: ", "
+      two_words_connector: " 和 "
+      last_word_connector: ", 和 "
+  
+  activerecord:
+    errors:
+      template:
+        header: 
+          one: "有 1 个错误发生导致「{{model}}」无法被保存。"
+          other: "有 {{count}} 个错误发生导致「{{model}}」无法被保存。"
+        body: "如下字段出现错误:"
+      messages:
+        inclusion: "不包含于列表中"
+        exclusion: "是保留关键字"
+        invalid: "是无效的"
+        confirmation: "与确认值不匹配"
+        accepted: "必须是可被接受的"
+        empty: "不能留空"
+        blank: "不能为空字符"
+        too_long: "过长(最长为 {{count}} 个字符)"
+        too_short: "過短(最短为 {{count}} 个字符)"
+        wrong_length: "长度非法(必须为 {{count}} 个字符)"
+        taken: "已经被使用"
+        not_a_number: "不是数字"
+        greater_than: "必须大于 {{count}}"
+        greater_than_or_equal_to: "必须大于或等于 {{count}}"
+        equal_to: "必须等于 {{count}}"
+        less_than: "必须小于 {{count}}"
+        less_than_or_equal_to: "必须小于或等于 {{count}}"
+        odd: "必须为单数"
+        even: "必须为双数"
+  
+
+  
\ No newline at end of file
diff --git a/vendor/plugins/rails-i18n/locale/zh-TW.yml b/vendor/plugins/rails-i18n/locale/zh-TW.yml
new file mode 100644 (file)
index 0000000..2cb462c
--- /dev/null
@@ -0,0 +1,123 @@
+# Chinese (Taiwan) translations for Ruby on Rails 
+# by tsechingho (http://github.com/tsechingho)
+
+"zh-TW":
+  date:
+    formats:
+      default: "%Y-%m-%d"
+      short: "%b%d日"
+      long: "%Y年%b%d日"
+    day_names: [星期天, 星期一, 星期二, 星期三, 星期四, 星期五, 星期六]
+    abbr_day_names: [日, 一, 二, 三, 四, 五, 六]
+    month_names: [~, 一月, 二月, 三月, 四月, 五月, 六月, 七月, 八月, 九月, 十月, 十一月, 十二月]
+    abbr_month_names: [~, 1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月, 10月, 11月, 12月]
+    order: [ :year, :month, :day ]
+  
+  time:
+    formats:
+      default: "%Y年%b%d日 %A %H:%M:%S %Z"
+      short: "%b%d日 %H:%M"
+      long: "%Y年%b%d日 %H:%M"
+    am: "上午"
+    pm: "下午"
+  
+  datetime:
+    distance_in_words:
+      half_a_minute: "半分鐘"
+      less_than_x_seconds:
+        one: "一秒内"
+        other: "少於 {{count}} 秒"
+      x_seconds:
+        one: "一秒"
+        other: "{{count}} 秒"
+      less_than_x_minutes:
+        one: "一分鐘内"
+        other: "少於 {{count}} 分鐘"
+      x_minutes:
+        one: "一分鐘"
+        other: "{{count}} 分鐘"
+      about_x_hours:
+        one: "大約一小時"
+        other: "大約 {{count}} 小時"
+      x_days:
+        one: "一天"
+        other: "{{count}} 天"
+      about_x_months:
+        one: "大約一個月"
+        other: "大約 {{count}} 個月"
+      x_months:
+        one: "一個月"
+        other: "{{count}} 個月"
+      about_x_years:
+        one: "大約一年"
+        other: "大約 {{count}} 年"
+      over_x_years:
+        one: "一年以上"
+        other: "{{count}} 年以上"
+    prompts:
+      year:   "年"
+      month:  "月"
+      day:    "日"
+      hour:   "時"
+      minute: "分"
+      second: "秒"
+  
+  number:
+    format:
+      separator: "."
+      delimiter: ","
+      precision: 3
+    currency:
+      format:
+        format: "%u %n"
+        unit: "NT$"
+        separator: "."
+        delimiter: ","
+        precision: 2
+    percentage:
+      format:
+        delimiter: ""
+    precision:
+      format:
+        delimiter: ""
+    human:
+      format:
+        delimiter: ""
+        precision: 1
+      storage_units: [Bytes, KB, MB, GB, TB]
+  
+  support:
+    array:
+      words_connector: ", "
+      two_words_connector: " 和 "
+      last_word_connector: ", 和 "
+  
+  activerecord:
+    errors:
+      template:
+        header: 
+          one: "有 1 個錯誤發生使得「{{model}}」無法被儲存。"
+          other: "有 {{count}} 個錯誤發生使得「{{model}}」無法被儲存。"
+        body: "下面欄位有問題:"
+      messages:
+        inclusion: "沒有包含在列表中"
+        exclusion: "是被保留的"
+        invalid: "是無效的"
+        confirmation: "不符合確認值"
+        accepted: "必须是可被接受的"
+        empty: "不能留空"
+        blank: "不能是空白字元"
+        too_long: "過長(最長是 {{count}} 個字)"
+        too_short: "過短(最短是 {{count}} 個字)"
+        wrong_length: "字數錯誤(必須是 {{count}} 個字)"
+        taken: "已經被使用"
+        not_a_number: "不是數字"
+        greater_than: "必須大於 {{count}}"
+        greater_than_or_equal_to: "必須大於或等於 {{count}}"
+        equal_to: "必須等於 {{count}}"
+        less_than: "必須小於 {{count}}"
+        less_than_or_equal_to: "必須小於或等於 {{count}}"
+        odd: "必須是奇數"
+        even: "必須是偶數"
+  
+
diff --git a/vendor/plugins/rails-i18n/rails/action_view.yml b/vendor/plugins/rails-i18n/rails/action_view.yml
new file mode 100644 (file)
index 0000000..afe3569
--- /dev/null
@@ -0,0 +1,110 @@
+"en":
+  number:
+    # Used in number_with_delimiter()
+    # These are also the defaults for 'currency', 'percentage', 'precision', and 'human'
+    format:
+      # Sets the separator between the units, for more precision (e.g. 1.0 / 2.0 == 0.5)
+      separator: "."
+      # Delimets thousands (e.g. 1,000,000 is a million) (always in groups of three)
+      delimiter: ","
+      # Number of decimals, behind the separator (the number 1 with a precision of 2 gives: 1.00)
+      precision: 3
+      
+    # Used in number_to_currency()
+    currency:
+      format:
+        # Where is the currency sign? %u is the currency unit, %n the number (default: $5.00)
+        format: "%u%n"
+        unit: "$"
+        # These three are to override number.format and are optional
+        separator: "."
+        delimiter: ","
+        precision: 2
+        
+    # Used in number_to_percentage()
+    percentage:
+      format:
+        # These three are to override number.format and are optional
+        # separator: 
+        delimiter: ""
+        # precision: 
+        
+    # Used in number_to_precision()
+    precision:
+      format:
+        # These three are to override number.format and are optional
+        # separator:
+        delimiter: ""
+        # precision:
+        
+    # Used in number_to_human_size()
+    human:
+      format:
+        # These three are to override number.format and are optional
+        # separator: 
+        delimiter: ""
+        precision: 1
+      storage_units:
+        # Storage units output formatting.
+        # %u is the storage unit, %n is the number (default: 2 MB)
+        format: "%n %u"
+        units:
+          byte:
+            one:   "Byte"
+            other: "Bytes"
+          kb: "KB"
+          mb: "MB"
+          gb: "GB"
+          tb: "TB"
+
+  # Used in distance_of_time_in_words(), distance_of_time_in_words_to_now(), time_ago_in_words()
+  datetime:
+    distance_in_words:
+      half_a_minute: "half a minute"
+      less_than_x_seconds:
+        one:   "less than 1 second"
+        other: "less than {{count}} seconds"
+      x_seconds:
+        one:   "1 second"
+        other: "{{count}} seconds"
+      less_than_x_minutes:
+        one:   "less than a minute"
+        other: "less than {{count}} minutes"
+      x_minutes:
+        one:   "1 minute"
+        other: "{{count}} minutes"
+      about_x_hours:
+        one:   "about 1 hour"
+        other: "about {{count}} hours"
+      x_days:
+        one:   "1 day"
+        other: "{{count}} days"
+      about_x_months:
+        one:   "about 1 month"
+        other: "about {{count}} months"
+      x_months:
+        one:   "1 month"
+        other: "{{count}} months"
+      about_x_years:
+        one:   "about 1 year"
+        other: "about {{count}} years"
+      over_x_years:
+        one:   "over 1 year"
+        other: "over {{count}} years"
+    prompts:
+      year:   "Year"
+      month:  "Month"
+      day:    "Day"
+      hour:   "Hour"
+      minute: "Minute"
+      second: "Seconds"
+
+  activerecord:
+    errors:
+      template:
+        header:
+          one:    "1 error prohibited this {{model}} from being saved"
+          other:  "{{count}} errors prohibited this {{model}} from being saved"
+        # The variable :count is also available
+        body: "There were problems with the following fields:"
+
diff --git a/vendor/plugins/rails-i18n/rails/active_record.yml b/vendor/plugins/rails-i18n/rails/active_record.yml
new file mode 100644 (file)
index 0000000..bf8a71d
--- /dev/null
@@ -0,0 +1,54 @@
+en:
+  activerecord:
+    errors:
+      # The values :model, :attribute and :value are always available for interpolation
+      # The value :count is available when applicable. Can be used for pluralization.
+      messages:
+        inclusion: "is not included in the list"
+        exclusion: "is reserved"
+        invalid: "is invalid"
+        confirmation: "doesn't match confirmation"
+        accepted: "must be accepted"
+        empty: "can't be empty"
+        blank: "can't be blank"
+        too_long: "is too long (maximum is {{count}} characters)"
+        too_short: "is too short (minimum is {{count}} characters)"
+        wrong_length: "is the wrong length (should be {{count}} characters)"
+        taken: "has already been taken"
+        not_a_number: "is not a number"
+        greater_than: "must be greater than {{count}}"
+        greater_than_or_equal_to: "must be greater than or equal to {{count}}"
+        equal_to: "must be equal to {{count}}"
+        less_than: "must be less than {{count}}"
+        less_than_or_equal_to: "must be less than or equal to {{count}}"
+        odd: "must be odd"
+        even: "must be even"
+        # Append your own errors here or at the model/attributes scope.
+
+      # You can define own errors for models or model attributes.
+      # The values :model, :attribute and :value are always available for interpolation.
+      #
+      # For example,
+      #   models:
+      #     user:
+      #       blank: "This is a custom blank message for {{model}}: {{attribute}}"
+      #       attributes:
+      #         login:
+      #           blank: "This is a custom blank message for User login"
+      # Will define custom blank validation message for User model and 
+      # custom blank validation message for login attribute of User model.
+      #models:
+        
+    # Translate model names. Used in Model.human_name().
+    #models:
+      # For example,
+      #   user: "Dude"
+      # will translate User model name to "Dude"
+    
+    # Translate model attribute names. Used in Model.human_attribute_name(attribute).
+    #attributes:
+      # For example,
+      #   user:
+      #     login: "Handle"
+      # will translate User attribute "login" as "Handle"
+
diff --git a/vendor/plugins/rails-i18n/rails/active_support.yml b/vendor/plugins/rails-i18n/rails/active_support.yml
new file mode 100644 (file)
index 0000000..e604c9e
--- /dev/null
@@ -0,0 +1,33 @@
+en:
+  date:
+    formats:
+      # Use the strftime parameters for formats.
+      # When no format has been given, it uses default.
+      # You can provide other formats here if you like!
+      default: "%Y-%m-%d"
+      short: "%b %d"
+      long: "%B %d, %Y"
+      
+    day_names: [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday]
+    abbr_day_names: [Sun, Mon, Tue, Wed, Thu, Fri, Sat]
+      
+    # Don't forget the nil at the beginning; there's no such thing as a 0th month
+    month_names: [~, January, February, March, April, May, June, July, August, September, October, November, December]
+    abbr_month_names: [~, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec]
+    # Used in date_select and datime_select.
+    order: [ :year, :month, :day ]
+
+  time:
+    formats:
+      default: "%a, %d %b %Y %H:%M:%S %z"
+      short: "%d %b %H:%M"
+      long: "%B %d, %Y %H:%M"
+    am: "am"
+    pm: "pm"
+      
+# Used in array.to_sentence.
+  support:
+    array:
+      words_connector: ", "
+      two_words_connector: " and "
+      last_word_connector: ", and "
diff --git a/vendor/plugins/rails-i18n/script/update.rb b/vendor/plugins/rails-i18n/script/update.rb
new file mode 100644 (file)
index 0000000..42f9744
--- /dev/null
@@ -0,0 +1,12 @@
+curr_dir = File.expand_path(File.dirname(__FILE__))
+rails_locale_dir = File.expand_path(File.join(curr_dir, "..", "rails"))
+
+puts "Fetching latest Rails locale files to #{rails_locale_dir}"
+
+exec %(
+  curl -Lo '#{rails_locale_dir}/action_view.yml' http://github.com/rails/rails/tree/master/actionpack/lib/action_view/locale/en.yml?raw=true
+
+  curl -Lo '#{rails_locale_dir}/active_record.yml' http://github.com/rails/rails/tree/master/activerecord/lib/active_record/locale/en.yml?raw=true
+
+  curl -Lo '#{rails_locale_dir}/active_support.yml' http://github.com/rails/rails/tree/master/activesupport/lib/active_support/locale/en.yml?raw=true
+)
diff --git a/vendor/plugins/rails-i18n/test/lib/key_structure.rb b/vendor/plugins/rails-i18n/test/lib/key_structure.rb
new file mode 100644 (file)
index 0000000..aeb7165
--- /dev/null
@@ -0,0 +1,89 @@
+$KCODE = 'u'
+
+require 'rubygems'
+require 'i18n'
+
+module I18n
+  module Backend
+    class Simple
+      public :translations, :init_translations
+    end
+  end
+end
+
+class KeyStructure
+  attr_reader :result
+  
+  def initialize(locale)
+    @locale = locale.to_sym
+    init_backend
+
+    @reference = I18n.backend.translations[:'en']
+    @data = I18n.backend.translations[@locale]
+    
+    @result = {:bogus => [], :missing => [], :pluralization => []}
+    @key_stack = []
+  end
+  
+  def run
+    compare :missing, @reference, @data
+    compare :bogus, @data, @reference
+  end
+  
+  def output
+    [:missing, :bogus, :pluralization].each do |direction|
+      next unless result[direction].size > 0
+      case direction
+      when :pluralization
+        puts "\nThe following pluralization keys seem to differ:"
+      else
+        puts "\nThe following keys seem to be #{direction} for #{@locale.inspect}:"
+      end
+      puts '   ' + result[direction].join("\n   ")
+    end
+    if result.map{|k, v| v.size == 0}.uniq == [true]
+      puts "No inconsistencies found."
+    end
+    puts "\n"
+  end
+  
+  protected
+  
+    def compare(direction, reference, data)
+      reference.each do |key, value|
+        if data.has_key?(key)
+          @key_stack << key
+          if namespace?(value)
+            compare direction, value, (namespace?(data[key]) ? data[key] : {})
+          elsif pluralization?(value)
+            compare :pluralization, value, (pluralization?(data[key]) ? data[key] : {})
+          end
+          @key_stack.pop
+        else
+          @result[direction] << current_key(key)
+        end
+      end
+    end
+  
+    def current_key(key)
+      (@key_stack.dup << key).join('.')
+    end
+    
+    def namespace?(hash)
+      Hash === hash and !pluralization?(hash)
+    end
+    
+    def pluralization?(hash)
+      Hash === hash and hash.has_key?(:one) and hash.has_key?(:other)
+    end
+  
+    def init_backend
+      I18n.load_path = %W(
+        rails/action_view.yml
+        rails/active_record.yml
+        rails/active_support.yml
+      )
+      I18n.load_path += Dir["locale/#{@locale}.{rb,yml}"]
+      I18n.backend.init_translations
+    end
+end
diff --git a/vendor/plugins/rails-i18n/test/structure.rb b/vendor/plugins/rails-i18n/test/structure.rb
new file mode 100644 (file)
index 0000000..80c0f1a
--- /dev/null
@@ -0,0 +1,7 @@
+require File.dirname(__FILE__) + '/lib/key_structure.rb'
+
+locale = ARGV.first || raise("must give a locale as a command line argument")
+
+test = KeyStructure.new locale
+test.run
+test.output
\ No newline at end of file
diff --git a/vendor/plugins/rails-i18n/tools/Rails I18n.tmbundle/Commands/Lookup Translation.tmCommand b/vendor/plugins/rails-i18n/tools/Rails I18n.tmbundle/Commands/Lookup Translation.tmCommand
new file mode 100644 (file)
index 0000000..e304f8c
--- /dev/null
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>beforeRunningCommand</key>
+       <string>nop</string>
+       <key>command</key>
+       <string>#!/usr/bin/ruby 
+require 'rubygems'
+require 'i18n'
+I18n.locale = :en
+I18n.load_path &lt;&lt; File.join(ENV['TM_PROJECT_DIRECTORY'], 'config', 'locales', 'en.yml')
+
+class &lt;&lt; Object
+  def const_missing(const)
+    nil
+  end
+end
+
+def method_missing(method, *args)
+  "**#{method}**"
+end
+
+def t(*args)
+  I18n.t(*args)
+end
+
+def args_to_array(*args)
+  args
+end
+
+args = eval('args_to_array(' + ENV['TM_SELECTED_TEXT'] + ')')
+
+if args.last.is_a?(Hash)
+  args.last.each { |k, v| args.last[k] = "**#{k}**" if v.nil? }
+end
+
+print I18n.t(*args)
+</string>
+       <key>fallbackInput</key>
+       <string>none</string>
+       <key>input</key>
+       <string>selection</string>
+       <key>keyEquivalent</key>
+       <string>@I</string>
+       <key>name</key>
+       <string>Lookup Translation</string>
+       <key>output</key>
+       <string>showAsTooltip</string>
+       <key>uuid</key>
+       <string>7DAF30C3-0247-4E94-AA44-DD2E69A6E236</string>
+</dict>
+</plist>
diff --git a/vendor/plugins/rails-i18n/tools/Rails I18n.tmbundle/Commands/extract translation.tmCommand b/vendor/plugins/rails-i18n/tools/Rails I18n.tmbundle/Commands/extract translation.tmCommand
new file mode 100644 (file)
index 0000000..54b31a1
--- /dev/null
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>beforeRunningCommand</key>
+       <string>nop</string>
+       <key>command</key>
+       <string>#!/usr/bin/ruby 
+
+require ENV['TM_SUPPORT_PATH'] + '/lib/ui.rb'
+require ENV['TM_BUNDLE_SUPPORT'] + '/lib/rails_i18n.rb'
+
+class Hash
+  def deep_merge(other)
+    # deep_merge by Stefan Rusterholz, see http://www.ruby-forum.com/topic/142809
+    merger = proc { |key, v1, v2| Hash === v1 &amp;&amp; Hash === v2 ? v1.merge(v2, &amp;merger) : v2 }
+    merge(other, &amp;merger)
+  end
+
+  def set(keys, value)
+    key = keys.shift
+    if keys.empty?
+      self[key] = value
+    else
+      self[key] ||= {}
+      self[key].set keys, value
+    end
+  end
+end
+
+project_dir = ENV['TM_PROJECT_DIRECTORY']
+path = File.join(project_dir, 'log', 'translations')
+
+translation = ENV['TM_SELECTED_TEXT'].gsub(/^\s*("|')|("|')\s*$/, '')
+key = TextMate::UI.request_string :title =&gt; 'Key', :prompt =&gt; 'Key'
+keys = ['en'] + key.split('.')
+
+log_file = File.open(path, 'a+')
+log_file.puts "#{key}: #{translation}"
+
+data = { 'en' =&gt; {} }
+data.set keys, translation
+
+path = File.join(project_dir, 'log', 'translations.yml')
+data = data.deep_merge YAML.load(File.open(path, 'r') { |f| f.read }) if File.exists?(path)
+
+File.open(path, 'w+') { |f| f.write YAML.dump(data) }
+
+print "t(:'#{key}')"
+</string>
+       <key>fallbackInput</key>
+       <string>none</string>
+       <key>input</key>
+       <string>selection</string>
+       <key>keyEquivalent</key>
+       <string>@E</string>
+       <key>name</key>
+       <string>extract translation</string>
+       <key>output</key>
+       <string>replaceSelectedText</string>
+       <key>uuid</key>
+       <string>914BB49A-6809-425F-812E-7C3C5321D403</string>
+</dict>
+</plist>
diff --git a/vendor/plugins/rails-i18n/tools/Rails I18n.tmbundle/Support/lib/dictionary.rb b/vendor/plugins/rails-i18n/tools/Rails I18n.tmbundle/Support/lib/dictionary.rb
new file mode 100644 (file)
index 0000000..35470eb
--- /dev/null
@@ -0,0 +1,478 @@
+# = Dictionary
+#
+# The Dictionary class is a Hash that preserves order.
+# So it has some array-like extensions also. By defualt
+# a Dictionary object preserves insertion order, but any
+# order can be specified including alphabetical key order.
+#
+# == Usage
+#
+# Just require this file and use Dictionary instead of Hash.
+#
+#   # You can do simply
+#   hsh = Dictionary.new
+#   hsh['z'] = 1
+#   hsh['a'] = 2
+#   hsh['c'] = 3
+#   p hsh.keys     #=> ['z','a','c']
+#
+#   # or using Dictionary[] method
+#   hsh = Dictionary['z', 1, 'a', 2, 'c', 3]
+#   p hsh.keys     #=> ['z','a','c']
+#
+#   # but this don't preserve order
+#   hsh = Dictionary['z'=>1, 'a'=>2, 'c'=>3]
+#   p hsh.keys     #=> ['a','c','z']
+#
+#   # Dictionary has useful extensions: push, pop and unshift
+#   p hsh.push('to_end', 15)       #=> true, key added
+#   p hsh.push('to_end', 30)       #=> false, already - nothing happen
+#   p hsh.unshift('to_begin', 50)  #=> true, key added
+#   p hsh.unshift('to_begin', 60)  #=> false, already - nothing happen
+#   p hsh.keys                     #=> ["to_begin", "a", "c", "z", "to_end"]
+#   p hsh.pop                      #=> ["to_end", 15], if nothing remains, return nil
+#   p hsh.keys                     #=> ["to_begin", "a", "c", "z"]
+#   p hsh.shift                    #=> ["to_begin", 30], if nothing remains, return nil
+#
+# == Usage Notes
+#
+# * You can use #order_by to set internal sort order.
+# * #<< takes a two element [k,v] array and inserts.
+# * Use ::auto which creates Dictionay sub-entries as needed.
+# * And ::alpha which creates a new Dictionary sorted by key.
+#
+# == Authors
+#
+# * Jan Molic
+# * Thomas Sawyer
+#
+# == Acknowledgments
+#
+# * Andrew Johnson (merge, to_a, inspect, shift and Hash[])
+# * Jeff Sharpe    (reverse and reverse!)
+# * Thomas Leitner (has_key? and key?)
+#
+# Originally ported from OrderHash 2.0, Copyright (c) 2005 jan molic
+#
+# == History
+#
+# * 2007.10.31 trans
+# ** Fixed initialize so the constructor blocks correctly effected dictionary rather then just the internal hash.
+#
+# == Copying
+#
+# Copyright (c) 2005 Jan Molic, Thomas Sawyer
+#
+# Ruby License
+#
+# This module is free software. You may use, modify, and/or redistribute this
+# software under the same terms as Ruby.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE.
+
+
+# = Dictionary
+#
+# The Dictionary class is a Hash that preserves order.
+# So it has some array-like extensions also. By defualt
+# a Dictionary object preserves insertion order, but any
+# order can be specified including alphabetical key order.
+#
+# == Usage
+#
+# Just require this file and use Dictionary instead of Hash.
+#
+#   # You can do simply
+#   hsh = Dictionary.new
+#   hsh['z'] = 1
+#   hsh['a'] = 2
+#   hsh['c'] = 3
+#   p hsh.keys     #=> ['z','a','c']
+#
+#   # or using Dictionary[] method
+#   hsh = Dictionary['z', 1, 'a', 2, 'c', 3]
+#   p hsh.keys     #=> ['z','a','c']
+#
+#   # but this don't preserve order
+#   hsh = Dictionary['z'=>1, 'a'=>2, 'c'=>3]
+#   p hsh.keys     #=> ['a','c','z']
+#
+#   # Dictionary has useful extensions: push, pop and unshift
+#   p hsh.push('to_end', 15)       #=> true, key added
+#   p hsh.push('to_end', 30)       #=> false, already - nothing happen
+#   p hsh.unshift('to_begin', 50)  #=> true, key added
+#   p hsh.unshift('to_begin', 60)  #=> false, already - nothing happen
+#   p hsh.keys                     #=> ["to_begin", "a", "c", "z", "to_end"]
+#   p hsh.pop                      #=> ["to_end", 15], if nothing remains, return nil
+#   p hsh.keys                     #=> ["to_begin", "a", "c", "z"]
+#   p hsh.shift                    #=> ["to_begin", 30], if nothing remains, return nil
+#
+# == Usage Notes
+#
+# * You can use #order_by to set internal sort order.
+# * #<< takes a two element [k,v] array and inserts.
+# * Use ::auto which creates Dictionay sub-entries as needed.
+# * And ::alpha which creates a new Dictionary sorted by key.
+#
+class Dictionary
+
+  include Enumerable
+
+  class << self
+    #--
+    # TODO is this needed? Doesn't the super class do this?
+    #++
+
+    def [](*args)
+      hsh = new
+      if Hash === args[0]
+        hsh.replace(args[0])
+      elsif (args.size % 2) != 0
+        raise ArgumentError, "odd number of elements for Hash"
+      else
+        while !args.empty?
+          hsh[args.shift] = args.shift
+        end
+      end
+      hsh
+    end
+
+    # Like #new but the block sets the order.
+    #
+    def new_by(*args, &blk)
+      new(*args).order_by(&blk)
+    end
+
+    # Alternate to #new which creates a dictionary sorted by key.
+    #
+    #   d = Dictionary.alpha
+    #   d["z"] = 1
+    #   d["y"] = 2
+    #   d["x"] = 3
+    #   d  #=> {"x"=>3,"y"=>2,"z"=>2}
+    #
+    # This is equivalent to:
+    #
+    #   Dictionary.new.order_by { |key,value| key }
+
+    def alpha(*args, &block)
+      new(*args, &block).order_by_key
+    end
+
+    # Alternate to #new which auto-creates sub-dictionaries as needed.
+    #
+    #   d = Dictionary.auto
+    #   d["a"]["b"]["c"] = "abc"  #=> { "a"=>{"b"=>{"c"=>"abc"}}}
+    #
+    def auto(*args)
+      #AutoDictionary.new(*args)
+      leet = lambda { |hsh, key| hsh[key] = new(&leet) }
+      new(*args, &leet)
+    end
+  end
+
+   # New Dictiionary.
+
+  def initialize(*args, &blk)
+    @order = []
+    @order_by = nil
+    if blk
+      dict = self                                  # This ensure autmatic key entry effect the
+      oblk = lambda{ |hsh, key| blk[dict,key] }    # dictionary rather then just the interal hash.
+      @hash = Hash.new(*args, &oblk)
+    else
+      @hash = Hash.new(*args)
+    end
+  end
+
+  def order
+    reorder if @order_by
+    @order
+  end
+
+  # Keep dictionary sorted by a specific sort order.
+
+  def order_by( &block )
+    @order_by = block
+    order
+    self
+  end
+
+  # Keep dictionary sorted by key.
+  #
+  #   d = Dictionary.new.order_by_key
+  #   d["z"] = 1
+  #   d["y"] = 2
+  #   d["x"] = 3
+  #   d  #=> {"x"=>3,"y"=>2,"z"=>2}
+  #
+  # This is equivalent to:
+  #
+  #   Dictionary.new.order_by { |key,value| key }
+  #
+  # The initializer Dictionary#alpha also provides this.
+
+  def order_by_key
+    @order_by = lambda { |k,v| k }
+    order
+    self
+  end
+
+  # Keep dictionary sorted by value.
+  #
+  #   d = Dictionary.new.order_by_value
+  #   d["z"] = 1
+  #   d["y"] = 2
+  #   d["x"] = 3
+  #   d  #=> {"x"=>3,"y"=>2,"z"=>2}
+  #
+  # This is equivalent to:
+  #
+  #   Dictionary.new.order_by { |key,value| value }
+
+  def order_by_value
+    @order_by = lambda { |k,v| v }
+    order
+    self
+  end
+
+  #
+
+  def reorder
+    if @order_by
+      assoc = @order.collect{ |k| [k,@hash[k]] }.sort_by(&@order_by)
+      @order = assoc.collect{ |k,v| k }
+    end
+    @order
+  end
+
+  #def ==( hsh2 )
+  #  return false if @order != hsh2.order
+  #  super hsh2
+  #end
+
+  def ==(hsh2)
+    if hsh2.is_a?( Dictionary )
+      @order == hsh2.order &&
+      @hash  == hsh2.instance_variable_get("@hash")
+    else
+      false
+    end
+  end
+
+  def [] k
+    @hash[ k ]
+  end
+
+  def fetch(k, *a, &b)
+    @hash.fetch(k, *a, &b)
+  end
+
+  # Store operator.
+  #
+  #   h[key] = value
+  #
+  # Or with additional index.
+  #
+  #  h[key,index] = value
+
+  def []=(k, i=nil, v=nil)
+    if v
+      insert(i,k,v)
+    else
+      store(k,i)
+    end
+  end
+
+  def insert( i,k,v )
+    @order.insert( i,k )
+    @hash.store( k,v )
+  end
+
+  def store( a,b )
+    @order.push( a ) unless @hash.has_key?( a )
+    @hash.store( a,b )
+  end
+
+  def clear
+    @order = []
+    @hash.clear
+  end
+
+  def delete( key )
+    @order.delete( key )
+    @hash.delete( key )
+  end
+
+  def each_key
+    order.each { |k| yield( k ) }
+    self
+  end
+
+  def each_value
+    order.each { |k| yield( @hash[k] ) }
+    self
+  end
+
+  def each
+    order.each { |k| yield( k,@hash[k] ) }
+    self
+  end
+  alias each_pair each
+
+  def delete_if
+    order.clone.each { |k| delete k if yield(k,@hash[k]) }
+    self
+  end
+
+  def values
+    ary = []
+    order.each { |k| ary.push @hash[k] }
+    ary
+  end
+
+  def keys
+    order
+  end
+
+  def invert
+    hsh2 = self.class.new
+    order.each { |k| hsh2[@hash[k]] = k }
+    hsh2
+  end
+
+  def reject(&block)
+    self.dup.delete_if(&block)
+  end
+
+  def reject!( &block )
+    hsh2 = reject(&block)
+    self == hsh2 ? nil : hsh2
+  end
+
+  def replace( hsh2 )
+    @order = hsh2.order
+    @hash = hsh2.hash
+  end
+
+  def shift
+    key = order.first
+    key ? [key,delete(key)] : super
+  end
+
+  def unshift( k,v )
+    unless @hash.include?( k )
+      @order.unshift( k )
+      @hash.store( k,v )
+      true
+    else
+      false
+    end
+  end
+
+  def <<(kv)
+    push(*kv)
+  end
+
+  def push( k,v )
+    unless @hash.include?( k )
+      @order.push( k )
+      @hash.store( k,v )
+      true
+    else
+      false
+    end
+  end
+
+  def pop
+    key = order.last
+    key ? [key,delete(key)] : nil
+  end
+
+  def inspect
+    ary = []
+    each {|k,v| ary << k.inspect + "=>" + v.inspect}
+    '{' + ary.join(", ") + '}'
+  end
+
+  def dup
+    a = []
+    each{ |k,v| a << k; a << v }
+    self.class[*a]
+  end
+
+  def update( hsh2 )
+    hsh2.each { |k,v| self[k] = v }
+    reorder
+    self
+  end
+  alias :merge! update
+
+  def merge( hsh2 )
+    self.dup.update(hsh2)
+  end
+
+  def select
+    ary = []
+    each { |k,v| ary << [k,v] if yield k,v }
+    ary
+  end
+
+  def reverse!
+    @order.reverse!
+    self
+  end
+
+  def reverse
+    dup.reverse!
+  end
+
+  #
+  def first(x=nil)
+    return @hash[order.first] unless x
+    order.first(x).collect { |k| @hash[k] }
+  end
+
+  #
+  def last(x=nil)
+    return @hash[order.last] unless x
+    order.last(x).collect { |k| @hash[k] }
+  end
+
+  def length
+    @order.length
+  end
+  alias :size :length
+
+  def empty?
+    @hash.empty?
+  end
+
+  def has_key?(key)
+    @hash.has_key?(key)
+  end
+
+  def key?(key)
+    @hash.key?(key)
+  end
+
+  def to_a
+    ary = []
+    each { |k,v| ary << [k,v] }
+    ary
+  end
+
+  def to_s
+    self.to_a.to_s
+  end
+
+  def to_hash
+    @hash.dup
+  end
+
+  def to_h
+    @hash.dup
+  end
+end
\ No newline at end of file
diff --git a/vendor/plugins/rails-i18n/tools/Rails I18n.tmbundle/Support/lib/rails_i18n.rb b/vendor/plugins/rails-i18n/tools/Rails I18n.tmbundle/Support/lib/rails_i18n.rb
new file mode 100644 (file)
index 0000000..8ab0e2b
--- /dev/null
@@ -0,0 +1,2 @@
+require File.join(File.dirname(__FILE__), 'dictionary')
+require File.join(File.dirname(__FILE__), 'yaml_waml')
\ No newline at end of file
diff --git a/vendor/plugins/rails-i18n/tools/Rails I18n.tmbundle/Support/lib/yaml_waml.rb b/vendor/plugins/rails-i18n/tools/Rails I18n.tmbundle/Support/lib/yaml_waml.rb
new file mode 100644 (file)
index 0000000..a0dda2f
--- /dev/null
@@ -0,0 +1,37 @@
+# stolen from Kakutani Shintaro http://github.com/kakutani/yaml_waml
+
+require "yaml"
+
+class String
+  def is_binary_data?
+    false
+  end
+end
+
+module YamlWaml
+  def decode(orig_yamled)
+    yamled_str = case orig_yamled
+                 when String then orig_yamled
+                 when StringIO then orig_yamled.string
+                 else return orig_yamled
+                 end
+    yamled_str.gsub!(/\\x(\w{2})/){[$1].pack("H2")}
+    return yamled_str
+  end
+  module_function :decode
+end
+
+ObjectSpace.each_object(Class) do |klass|
+  klass.class_eval do
+    if method_defined?(:to_yaml) && !method_defined?(:to_yaml_with_decode)
+      def to_yaml_with_decode(*args)
+        io = args.shift if IO === args.first
+        yamled_str = YamlWaml.decode(to_yaml_without_decode(*args))
+        io.write(yamled_str) if io
+        return yamled_str
+      end
+      alias_method :to_yaml_without_decode, :to_yaml
+      alias_method :to_yaml, :to_yaml_with_decode
+    end
+  end
+end
\ No newline at end of file
diff --git a/vendor/plugins/rails-i18n/tools/Rails I18n.tmbundle/info.plist b/vendor/plugins/rails-i18n/tools/Rails I18n.tmbundle/info.plist
new file mode 100644 (file)
index 0000000..119dcb3
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>name</key>
+       <string>Rails I18n</string>
+       <key>ordering</key>
+       <array>
+               <string>914BB49A-6809-425F-812E-7C3C5321D403</string>
+               <string>7DAF30C3-0247-4E94-AA44-DD2E69A6E236</string>
+       </array>
+       <key>uuid</key>
+       <string>F217218F-CCD3-45C0-8D67-DB761EA9CE61</string>
+</dict>
+</plist>