From 9f8d0d28aca06422d95d6a4cc57d782cc1cfb63c Mon Sep 17 00:00:00 2001 From: Benjamin Meichsner Date: Tue, 6 Jan 2009 15:45:19 +0100 Subject: [PATCH] Removed gettext and simplified_localization-plugin. L18n is now the appropriate module. Upgraded to rails 2.2.2 and replaced complex foodsoft.rb-loader with simple initializers/load_app_config.rb. Multiple foodcoops option is temporarly deactivated. --- app/controllers/application.rb | 23 +- app/controllers/finance_controller.rb | 2 +- app/controllers/messages_controller.rb | 2 +- app/controllers/orders_controller.rb | 6 +- app/helpers/application_helper.rb | 8 +- app/models/article.rb | 13 +- app/models/assignment.rb | 2 - app/models/financial_transaction.rb | 2 +- app/models/group_order.rb | 2 - app/models/group_order_article.rb | 2 - app/models/group_order_article_quantity.rb | 2 - app/models/group_order_article_result.rb | 2 +- app/models/group_order_result.rb | 2 - app/models/mailer.rb | 28 +- app/models/membership.rb | 3 - app/models/message.rb | 2 - app/models/order.rb | 8 +- app/models/order_article.rb | 5 +- app/models/order_article_result.rb | 8 +- app/models/shared_article.rb | 5 +- app/models/shared_supplier.rb | 4 +- app/models/user.rb | 6 +- app/views/admin/_listUsers.haml | 2 +- app/views/finance/_summary.haml | 2 +- app/views/layouts/application.haml | 2 +- app/views/layouts/login.haml | 2 +- app/views/messages/negative_balance.rhtml | 6 +- app/views/messages/order_finished.rhtml | 6 +- app/views/ordering/order.rhtml | 8 +- app/views/orders/articlesPdf.rfpdf | 2 +- app/views/orders/faxPdf.rfpdf | 12 +- app/views/orders/groupsPdf.rfpdf | 2 +- app/views/orders/matrixPdf.rfpdf | 2 +- app/views/shared/_loginInfo.haml | 4 +- app/views/shared/_mail_footer.rhtml | 4 +- config/app_config.yml.SAMPLE | 58 + config/boot.rb | 10 +- config/environment.rb | 72 +- config/environments/production.rb | 6 + config/foodcoops.yml.SAMPLE | 5 +- config/foodsoft.yml.SAMPLE | 38 - config/initializers/extensions.rb | 12 + config/initializers/gettext_helper.rb | 10 + config/initializers/inflections.rb | 10 + config/initializers/load_app_config.rb | 9 + config/initializers/mime_types.rb | 5 + config/initializers/new_rails_defaults.rb | 17 + config/locales/de.yml | 125 ++ config/locales/en.yml | 5 + config/routes.rb | 41 +- lib/foodsoft.rb | 183 -- locale/de/LC_MESSAGES/foodsoft.mo | Bin 27674 -> 0 bytes po/de/foodsoft.po | 1978 ----------------- po/de/foodsoft.po.autosave | 1966 ---------------- po/foodsoft.pot | 1911 ---------------- public/javascripts/controls.js | 144 +- public/javascripts/dragdrop.js | 329 +-- public/javascripts/effects.js | 338 +-- public/javascripts/prototype.js | 629 +++--- vendor/plugins/exception_notification/init.rb | 3 + .../lib/exception_notifier.rb | 15 +- .../lib/exception_notifier_helper.rb | 5 +- .../exception_notifier/_environment.rhtml | 2 +- .../views/exception_notifier/_request.rhtml | 3 +- .../plugins/l10n-simplified-0.8/MIT-LICENSE | 20 - vendor/plugins/l10n-simplified-0.8/README | 158 -- vendor/plugins/l10n-simplified-0.8/Rakefile | 22 - .../l10n-simplified-0.8/create-release.txt | 24 - vendor/plugins/l10n-simplified-0.8/init.rb | 20 - .../l10n-simplified-0.8/lib/lang_cf.rb | 118 - .../l10n-simplified-0.8/lib/lang_chef.rb | 119 - .../l10n-simplified-0.8/lib/lang_da.rb | 117 - .../l10n-simplified-0.8/lib/lang_de.rb | 117 - .../l10n-simplified-0.8/lib/lang_en.rb | 119 - .../l10n-simplified-0.8/lib/lang_es.rb | 115 - .../l10n-simplified-0.8/lib/lang_es_ar.rb | 120 - .../l10n-simplified-0.8/lib/lang_fi.rb | 119 - .../l10n-simplified-0.8/lib/lang_fr.rb | 118 - .../l10n-simplified-0.8/lib/lang_it.rb | 120 - .../l10n-simplified-0.8/lib/lang_ko.rb | 119 - .../l10n-simplified-0.8/lib/lang_nl.rb | 115 - .../l10n-simplified-0.8/lib/lang_pirate.rb | 119 - .../l10n-simplified-0.8/lib/lang_se.rb | 116 - .../lib/localization_simplified.rb | 229 -- .../rdoc/classes/ActionController.html | 107 - .../rdoc/classes/ActionController/Base.html | 161 -- .../rdoc/classes/ActionView.html | 117 - .../rdoc/classes/ActionView/Helpers.html | 113 - .../Helpers/ActiveRecordHelper.html | 176 -- .../ActionView/Helpers/DateHelper.html | 233 -- .../ActionView/Helpers/NumberHelper.html | 157 -- .../rdoc/classes/ActiveRecord.html | 111 - .../rdoc/classes/ActiveRecord/Errors.html | 111 - .../rdoc/classes/Array.html | 161 -- .../rdoc/classes/Date.html | 136 -- .../rdoc/classes/LocalizationSimplified.html | 344 --- .../LocalizationSimplified/ActiveRecord.html | 376 ---- .../LocalizationSimplified/ArrayHelper.html | 304 --- .../LocalizationSimplified/DateHelper.html | 969 -------- .../LocalizationSimplified/NumberHelper.html | 304 --- .../rdoc/classes/Time.html | 179 -- .../l10n-simplified-0.8/rdoc/created.rid | 1 - .../rdoc/files/README.html | 384 ---- .../rdoc/files/lib/lang_chef_rb.html | 109 - .../rdoc/files/lib/lang_da_rb.html | 108 - .../rdoc/files/lib/lang_de_rb.html | 110 - .../rdoc/files/lib/lang_en_rb.html | 108 - .../rdoc/files/lib/lang_es_rb.html | 108 - .../rdoc/files/lib/lang_nl_rb.html | 107 - .../rdoc/files/lib/lang_pirate_rb.html | 109 - .../rdoc/files/lib/lang_se_rb.html | 110 - .../files/lib/localization_simplified_rb.html | 111 - .../rdoc/fr_class_index.html | 43 - .../rdoc/fr_file_index.html | 41 - .../rdoc/fr_method_index.html | 36 - .../l10n-simplified-0.8/rdoc/index.html | 24 - .../l10n-simplified-0.8/rdoc/rdoc-style.css | 208 -- .../tasks/localization_simplified_tasks.rake | 7 - .../test/helper_tests.rhtml | 175 -- .../test/test_the_hooks_test.rb | 115 - .../test/test_the_plugin_test.rb | 117 - 121 files changed, 1197 insertions(+), 15237 deletions(-) create mode 100644 config/app_config.yml.SAMPLE delete mode 100644 config/foodsoft.yml.SAMPLE create mode 100644 config/initializers/extensions.rb create mode 100644 config/initializers/gettext_helper.rb create mode 100644 config/initializers/inflections.rb create mode 100644 config/initializers/load_app_config.rb create mode 100644 config/initializers/mime_types.rb create mode 100644 config/initializers/new_rails_defaults.rb create mode 100644 config/locales/de.yml create mode 100644 config/locales/en.yml delete mode 100644 lib/foodsoft.rb delete mode 100644 locale/de/LC_MESSAGES/foodsoft.mo delete mode 100644 po/de/foodsoft.po delete mode 100644 po/de/foodsoft.po.autosave delete mode 100644 po/foodsoft.pot delete mode 100755 vendor/plugins/l10n-simplified-0.8/MIT-LICENSE delete mode 100755 vendor/plugins/l10n-simplified-0.8/README delete mode 100755 vendor/plugins/l10n-simplified-0.8/Rakefile delete mode 100755 vendor/plugins/l10n-simplified-0.8/create-release.txt delete mode 100755 vendor/plugins/l10n-simplified-0.8/init.rb delete mode 100755 vendor/plugins/l10n-simplified-0.8/lib/lang_cf.rb delete mode 100755 vendor/plugins/l10n-simplified-0.8/lib/lang_chef.rb delete mode 100755 vendor/plugins/l10n-simplified-0.8/lib/lang_da.rb delete mode 100755 vendor/plugins/l10n-simplified-0.8/lib/lang_de.rb delete mode 100755 vendor/plugins/l10n-simplified-0.8/lib/lang_en.rb delete mode 100755 vendor/plugins/l10n-simplified-0.8/lib/lang_es.rb delete mode 100755 vendor/plugins/l10n-simplified-0.8/lib/lang_es_ar.rb delete mode 100755 vendor/plugins/l10n-simplified-0.8/lib/lang_fi.rb delete mode 100755 vendor/plugins/l10n-simplified-0.8/lib/lang_fr.rb delete mode 100755 vendor/plugins/l10n-simplified-0.8/lib/lang_it.rb delete mode 100755 vendor/plugins/l10n-simplified-0.8/lib/lang_ko.rb delete mode 100755 vendor/plugins/l10n-simplified-0.8/lib/lang_nl.rb delete mode 100755 vendor/plugins/l10n-simplified-0.8/lib/lang_pirate.rb delete mode 100755 vendor/plugins/l10n-simplified-0.8/lib/lang_se.rb delete mode 100755 vendor/plugins/l10n-simplified-0.8/lib/localization_simplified.rb delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActionController.html delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActionController/Base.html delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActionView.html delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActionView/Helpers.html delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActionView/Helpers/ActiveRecordHelper.html delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActionView/Helpers/DateHelper.html delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActionView/Helpers/NumberHelper.html delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActiveRecord.html delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActiveRecord/Errors.html delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/classes/Array.html delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/classes/Date.html delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/classes/LocalizationSimplified.html delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/classes/LocalizationSimplified/ActiveRecord.html delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/classes/LocalizationSimplified/ArrayHelper.html delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/classes/LocalizationSimplified/DateHelper.html delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/classes/LocalizationSimplified/NumberHelper.html delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/classes/Time.html delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/created.rid delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/files/README.html delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/lang_chef_rb.html delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/lang_da_rb.html delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/lang_de_rb.html delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/lang_en_rb.html delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/lang_es_rb.html delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/lang_nl_rb.html delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/lang_pirate_rb.html delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/lang_se_rb.html delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/localization_simplified_rb.html delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/fr_class_index.html delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/fr_file_index.html delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/fr_method_index.html delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/index.html delete mode 100755 vendor/plugins/l10n-simplified-0.8/rdoc/rdoc-style.css delete mode 100755 vendor/plugins/l10n-simplified-0.8/tasks/localization_simplified_tasks.rake delete mode 100755 vendor/plugins/l10n-simplified-0.8/test/helper_tests.rhtml delete mode 100755 vendor/plugins/l10n-simplified-0.8/test/test_the_hooks_test.rb delete mode 100755 vendor/plugins/l10n-simplified-0.8/test/test_the_plugin_test.rb diff --git a/app/controllers/application.rb b/app/controllers/application.rb index 35a76d73..f7a12a65 100644 --- a/app/controllers/application.rb +++ b/app/controllers/application.rb @@ -1,12 +1,7 @@ -require 'user' - class ApplicationController < ActionController::Base - # Gettext For i18n - # locale is chosen through browser http request - init_gettext "foodsoft" - - before_filter :select_foodcoop, :authenticate, :store_controller -# before_filter :ensureUTF8 + + #before_filter :select_foodcoop + before_filter :authenticate, :store_controller after_filter :send_email_messages, :remove_controller # sends a mail, when an error occurs @@ -56,12 +51,12 @@ class ApplicationController < ActionController::Base private # selects the foodcoop depending on the subdomain - def select_foodcoop - # get subdomain and set FoodSoft-class-variable (for later config-requests) - FoodSoft.subdomain = request.subdomains.first - # set database-connection - ActiveRecord::Base.establish_connection(FoodSoft.get_database) - end +# def select_foodcoop +# # get subdomain and set FoodSoft-class-variable (for later config-requests) +# FoodSoft.subdomain = request.subdomains.first +# # set database-connection +# ActiveRecord::Base.establish_connection(FoodSoft.get_database) +# end # Ensures the HTTP content-type encoding is set to "UTF-8" for "text/html" contents. def ensureUTF8 diff --git a/app/controllers/finance_controller.rb b/app/controllers/finance_controller.rb index 99f2386e..3ceb3089 100644 --- a/app/controllers/finance_controller.rb +++ b/app/controllers/finance_controller.rb @@ -163,7 +163,7 @@ class FinanceController < ApplicationController def createArticleResult render :update do |page| @article = OrderArticleResult.new(params[:order_article_result]) - @article.fc_markup = FoodSoft::getPriceMarkup + @article.fc_markup = APP_CONFIG[:price_markup] @article.make_gross if @article.tax && @article.deposit && @article.net_price if @article.valid? @article.save diff --git a/app/controllers/messages_controller.rb b/app/controllers/messages_controller.rb index 285807b6..5b060e5f 100644 --- a/app/controllers/messages_controller.rb +++ b/app/controllers/messages_controller.rb @@ -118,7 +118,7 @@ class MessagesController < ApplicationController @message = Message.new( :recipient => message.sender, :subject => "Re: #{message.subject}", - :body => "#{message.sender.nick} schrieb am #{FoodSoft::format_date(message.created_on)} um #{FoodSoft::format_time(message.created_on)}:\n" + :body => "#{message.sender.nick} schrieb am #{I18n.l(message.created_on.to_date)} um #{I18n.l(message.created_on, :format => :time)}:\n" ) if (message.body) message.body.each_line{|l| @message.body += "> #{l}"} diff --git a/app/controllers/orders_controller.rb b/app/controllers/orders_controller.rb index 1d433a10..b507521a 100644 --- a/app/controllers/orders_controller.rb +++ b/app/controllers/orders_controller.rb @@ -133,13 +133,13 @@ class OrdersController < ApplicationController def text_fax_template order = Order.find(params[:id]) supplier = order.supplier - contact = FoodSoft.getFoodcoopContact - text = _("Order for") + " #{FoodSoft.getFoodcoopName}" + contact = APP_CONFIG[:contact].symbolize_keys + text = _("Order for") + " #{APP_CONFIG[:name]}" text += "\n" + _("Customer number") + ": #{supplier.customer_number}" unless supplier.customer_number.blank? text += "\n" + _("Delivery date") + ": " text += "\n\n#{supplier.name}\n#{supplier.address}\nFAX: #{supplier.fax}\n\n" text += "****** " + _("Shipping address") + "\n\n" - text += "#{FoodSoft.getFoodcoopName}\n#{contact[:street]}\n#{contact[:zip_code]} #{contact[:city]}\n\n" + text += "#{APP_CONFIG[:name]}\n#{contact[:street]}\n#{contact[:zip_code]} #{contact[:city]}\n\n" text += "****** " + _("Articles") + "\n\n" text += _("Number") + " " + _("Quantity") + " " + _("Name") + "\n" # now display all ordered articles diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 61ddfab5..836644a2 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -2,11 +2,15 @@ module ApplicationHelper def format_time(time = Time.now) - FoodSoft::format_date_time(time) unless time.nil? + I18n.l time, :format => "%d.%m.%Y %H:%M" end def format_date(time = Time.now) - FoodSoft::format_date(time) unless time.nil? + I18n.l time.to_date + end + + def format_datetime(time = Time.now) + I18n.l time end # Creates ajax-controlled-links for pagination diff --git a/app/models/article.rb b/app/models/article.rb index a665de63..0db95af8 100644 --- a/app/models/article.rb +++ b/app/models/article.rb @@ -31,22 +31,22 @@ class Article < ActiveRecord::Base # Custom attribute setter that accepts decimal numbers using localized decimal separator. def net_price=(net_price) - self[:net_price] = FoodSoft::delocalizeDecimalString(net_price) + self[:net_price] = String.delocalized_decimal(net_price) end # Custom attribute setter that accepts decimal numbers using localized decimal separator. def tax=(tax) - self[:tax] = FoodSoft::delocalizeDecimalString(tax) + self[:tax] = String.delocalized_decimal(tax) end # Custom attribute setter that accepts decimal numbers using localized decimal separator. def deposit=(deposit) - self[:deposit] = FoodSoft::delocalizeDecimalString(deposit) + self[:deposit] = String.delocalized_decimal(deposit) end # calculate the fc price and sets the attribute def calc_gross_price - self.gross_price = ((net_price + deposit) * (tax / 100 + 1)) * (FoodSoft::getPriceMarkup / 100 + 1) + self.gross_price = ((net_price + deposit) * (tax / 100 + 1)) * (APP_CONFIG[:price_markup] / 100 + 1) end # Returns true if article has been updated at least 2 days ago @@ -150,7 +150,7 @@ class Article < ActiveRecord::Base end # convert units in foodcoop-size - # uses FoodSoft.get_units_factors to calc the price/unit_quantity + # uses unit factors in app_config.yml to calc the price/unit_quantity # returns new price and unit_quantity in array, when calc is possible => [price, unit_quanity] # returns false if units aren't foodsoft-compatible # returns nil if units are eqal @@ -166,7 +166,8 @@ class Article < ActiveRecord::Base false end else # get factors for fc and supplier - fc_unit_factor, supplier_unit_factor = FoodSoft.get_units_factors[self.unit], FoodSoft.get_units_factors[self.shared_article.unit] + fc_unit_factor = APP_CONFIG[:units][self.unit] + supplier_unit_factor = APP_CONFIG[:units][self.shared_article.unit] if fc_unit_factor and supplier_unit_factor convertion_factor = fc_unit_factor / supplier_unit_factor new_price = BigDecimal((convertion_factor * shared_article.price).to_s).round(2) diff --git a/app/models/assignment.rb b/app/models/assignment.rb index 90e23f82..6e56a4ec 100644 --- a/app/models/assignment.rb +++ b/app/models/assignment.rb @@ -1,6 +1,4 @@ class Assignment < ActiveRecord::Base - # gettext-option - untranslate_all belongs_to :user belongs_to :task diff --git a/app/models/financial_transaction.rb b/app/models/financial_transaction.rb index 7f09470c..a4d5641b 100644 --- a/app/models/financial_transaction.rb +++ b/app/models/financial_transaction.rb @@ -15,7 +15,7 @@ class FinancialTransaction < ActiveRecord::Base # Custom attribute setter that accepts decimal numbers using localized decimal separator. def amount=(amount) - self[:amount] = FoodSoft::delocalizeDecimalString(amount) + self[:amount] = String.delocalized_decimal(amount) end end diff --git a/app/models/group_order.rb b/app/models/group_order.rb index 6bfc8de9..18912146 100644 --- a/app/models/group_order.rb +++ b/app/models/group_order.rb @@ -10,8 +10,6 @@ # * updated_by (User): the user who last updated this order # class GroupOrder < ActiveRecord::Base - # gettext-option - untranslate_all belongs_to :order belongs_to :order_group diff --git a/app/models/group_order_article.rb b/app/models/group_order_article.rb index ab24648d..9db29b1a 100644 --- a/app/models/group_order_article.rb +++ b/app/models/group_order_article.rb @@ -9,8 +9,6 @@ # * updated_on (timestamp): updated automatically by ActiveRecord # class GroupOrderArticle < ActiveRecord::Base - # gettext-option - untranslate_all belongs_to :group_order belongs_to :order_article diff --git a/app/models/group_order_article_quantity.rb b/app/models/group_order_article_quantity.rb index a6bf30d3..6ea484e7 100644 --- a/app/models/group_order_article_quantity.rb +++ b/app/models/group_order_article_quantity.rb @@ -8,8 +8,6 @@ # * created_on (timestamp) class GroupOrderArticleQuantity < ActiveRecord::Base - # gettext-option - untranslate_all belongs_to :group_order_article diff --git a/app/models/group_order_article_result.rb b/app/models/group_order_article_result.rb index 02711cbe..ddf2d8e8 100644 --- a/app/models/group_order_article_result.rb +++ b/app/models/group_order_article_result.rb @@ -21,7 +21,7 @@ class GroupOrderArticleResult < ActiveRecord::Base # Custom attribute setter that accepts decimal numbers using localized decimal separator. def quantity=(quantity) - self[:quantity] = FoodSoft::delocalizeDecimalString(quantity) + self[:quantity] = String.delocalized_decimal(quantity) end end diff --git a/app/models/group_order_result.rb b/app/models/group_order_result.rb index 4929bccf..b631e782 100644 --- a/app/models/group_order_result.rb +++ b/app/models/group_order_result.rb @@ -6,8 +6,6 @@ # * group_order_article_results: collection of associated GroupOrderArticleResults # class GroupOrderResult < ActiveRecord::Base - # gettext-option - untranslate_all belongs_to :order has_many :group_order_article_results, :dependent => :destroy diff --git a/app/models/mailer.rb b/app/models/mailer.rb index c3487154..f5f100d8 100644 --- a/app/models/mailer.rb +++ b/app/models/mailer.rb @@ -5,37 +5,37 @@ class Mailer < ActionMailer::Base # Assumes user.setResetPasswordToken has been successfully called already. def password(user) request = ApplicationController.current.request - subject "[#{FoodSoft::getFoodcoopName}] Neues Passwort für/ New password for " + user.nick + subject "[#{APP_CONFIG[:name]}] Neues Passwort für/ New password for " + user.nick recipients user.email - from "FoodSoft <#{FoodSoft::getEmailSender}>" + from "FoodSoft <#{APP_CONFIG[:email_sender]}>" body :user => user, - :link => url_for(:host => FoodSoft::getHost || request.host, :controller => "login", :action => "password", :id => user.id, :token => user.reset_password_token), - :foodsoftUrl => url_for(:host => FoodSoft::getHost || request.host, :controller => "index") + :link => url_for(:host => request.host, :controller => "login", :action => "password", :id => user.id, :token => user.reset_password_token), + :foodsoftUrl => url_for(:host => request.host, :controller => "index") end # Sends an email copy of the given internal foodsoft message. def message(message) request = ApplicationController.current.request - subject "[#{FoodSoft::getFoodcoopName}] " + message.subject + subject "[#{APP_CONFIG[:name]}] " + message.subject recipients message.recipient.email - from (message.system_message? ? "FoodSoft <#{FoodSoft::getEmailSender}>" : "#{message.sender.nick} <#{message.sender.email}>") + from (message.system_message? ? "FoodSoft <#{APP_CONFIG[:email_sender]}>" : "#{message.sender.nick} <#{message.sender.email}>") body :body => message.body, :sender => (message.system_message? ? 'Foodsoft' : message.sender.nick), :recipients => message.recipients, - :reply => url_for(:host => FoodSoft::getHost || request.host, :controller => "messages", :action => "reply", :id => message), - :profile => url_for(:host => FoodSoft::getHost || request.host, :controller => "index", :action => "myProfile", :id => message.recipient), - :link => url_for(:host => FoodSoft::getHost || request.host, :controller => "messages", :action => "show", :id => message), - :foodsoftUrl => url_for(:host => FoodSoft::getHost || request.host, :controller => "index") + :reply => url_for(:host => request.host, :controller => "messages", :action => "reply", :id => message), + :profile => url_for(:host => request.host, :controller => "index", :action => "myProfile", :id => message.recipient), + :link => url_for(:host => request.host, :controller => "messages", :action => "show", :id => message), + :foodsoftUrl => url_for(:host => request.host, :controller => "index") end # Sends an invite email. def invite(invite) request = ApplicationController.current.request - subject "Einladung in die Foodcoop #{FoodSoft::getFoodcoopName} - Invitation to the Foodcoop" + subject "Einladung in die Foodcoop #{APP_CONFIG[:name]} - Invitation to the Foodcoop" recipients invite.email - from "FoodSoft <#{FoodSoft::getEmailSender}>" + from "FoodSoft <#{APP_CONFIG[:email_sender]}>" body :invite => invite, - :link => url_for(:host => FoodSoft::getHost || request.host, :controller => "login", :action => "invite", :id => invite.token), - :foodsoftUrl => url_for(:host => FoodSoft::getHost || request.host, :controller => "index") + :link => url_for(:host => request.host, :controller => "login", :action => "invite", :id => invite.token), + :foodsoftUrl => url_for(:host => request.host, :controller => "index") end end diff --git a/app/models/membership.rb b/app/models/membership.rb index c4272e3d..c43ba73f 100644 --- a/app/models/membership.rb +++ b/app/models/membership.rb @@ -1,8 +1,5 @@ class Membership < ActiveRecord::Base - # gettext-option - untranslate_all - belongs_to :user belongs_to :group diff --git a/app/models/message.rb b/app/models/message.rb index 7e02b0c4..393ff6f6 100644 --- a/app/models/message.rb +++ b/app/models/message.rb @@ -14,8 +14,6 @@ class Message < ActiveRecord::Base attr_accessible :recipient_id, :recipient, :subject, :body, :recipients - # needed for method 'from_template' - include GetText::Rails # Values for the email_state attribute: :none, :pending, :sent, :failed EMAIL_STATE = { diff --git a/app/models/order.rb b/app/models/order.rb index 37943614..56aa46d1 100644 --- a/app/models/order.rb +++ b/app/models/order.rb @@ -26,17 +26,17 @@ class Order < ActiveRecord::Base # Custom attribute setter that accepts decimal numbers using localized decimal separator. def invoice_amount=(amount) - self[:invoice_amount] = FoodSoft::delocalizeDecimalString(amount) + self[:invoice_amount] = String.delocalized_decimal(amount) end # Custom attribute setter that accepts decimal numbers using localized decimal separator. def deposit=(deposit) - self[:deposit] = FoodSoft::delocalizeDecimalString(deposit) + self[:deposit] = String.delocalized_decimal(deposit) end # Custom attribute setter that accepts decimal numbers using localized decimal separator. def deposit_credit=(deposit) - self[:deposit_credit] = FoodSoft::delocalizeDecimalString(deposit) + self[:deposit_credit] = String.delocalized_decimal(deposit) end # Create or destroy OrderArticle associations on create/update @@ -169,7 +169,7 @@ class Order < ActiveRecord::Base :gross_price => oa.article.gross_price, :tax => oa.article.tax, :deposit => oa.article.deposit, - :fc_markup => FoodSoft::getPriceMarkup, + :fc_markup => APP_CONFIG[:price_markup], :order_number => oa.article.order_number, :unit_quantity => oa.article.unit_quantity, :units_to_order => oa.units_to_order) diff --git a/app/models/order_article.rb b/app/models/order_article.rb index 654fddab..d88c16a0 100644 --- a/app/models/order_article.rb +++ b/app/models/order_article.rb @@ -8,10 +8,7 @@ # * units_to_order (int): number of packaging units to be ordered according to the order quantity/tolerance # class OrderArticle < ActiveRecord::Base - - # gettext-option - untranslate_all - + belongs_to :order belongs_to :article has_many :group_order_articles, :dependent => :destroy diff --git a/app/models/order_article_result.rb b/app/models/order_article_result.rb index 5c1cb3dc..1a80153d 100644 --- a/app/models/order_article_result.rb +++ b/app/models/order_article_result.rb @@ -28,22 +28,22 @@ class OrderArticleResult < ActiveRecord::Base # Custom attribute setter that accepts decimal numbers using localized decimal separator. def net_price=(net_price) - self[:net_price] = FoodSoft::delocalizeDecimalString(net_price) + self[:net_price] = String.delocalized_decimal(net_price) end # Custom attribute setter that accepts decimal numbers using localized decimal separator. def tax=(tax) - self[:tax] = FoodSoft::delocalizeDecimalString(tax) + self[:tax] = String.delocalized_decimal(tax) end # Custom attribute setter that accepts decimal numbers using localized decimal separator. def deposit=(deposit) - self[:deposit] = FoodSoft::delocalizeDecimalString(deposit) + self[:deposit] = String.delocalized_decimal(deposit) end # Custom attribute setter that accepts decimal numbers using localized decimal separator. def units_to_order=(units_to_order) - self[:units_to_order] = FoodSoft::delocalizeDecimalString(units_to_order) + self[:units_to_order] = String.delocalized_decimal(units_to_order) end # counts from every GroupOrderArticleResult for this ArticleResult diff --git a/app/models/shared_article.rb b/app/models/shared_article.rb index 976ef80d..c42481c1 100644 --- a/app/models/shared_article.rb +++ b/app/models/shared_article.rb @@ -1,10 +1,7 @@ class SharedArticle < ActiveRecord::Base - # gettext-option - untranslate_all - # connect to database from sharedLists-Application - SharedArticle.establish_connection(FoodSoft::get_shared_lists_config) + SharedArticle.establish_connection(APP_CONFIG[:shared_lists]) # set correct table_name in external DB set_table_name :articles diff --git a/app/models/shared_supplier.rb b/app/models/shared_supplier.rb index 3f7d71c9..43430757 100644 --- a/app/models/shared_supplier.rb +++ b/app/models/shared_supplier.rb @@ -1,9 +1,7 @@ class SharedSupplier < ActiveRecord::Base - # used for gettext - untranslate_all # connect to database from sharedLists-Application - SharedSupplier.establish_connection(FoodSoft::get_shared_lists_config) + SharedSupplier.establish_connection(APP_CONFIG[:shared_lists]) # set correct table_name in external DB set_table_name :suppliers diff --git a/app/models/user.rb b/app/models/user.rb index cb23af44..fe875ec7 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -12,6 +12,7 @@ require 'digest/sha1' class User < ActiveRecord::Base has_many :memberships, :dependent => :destroy has_many :groups, :through => :memberships + has_many :order_groups, :through => :memberships, :source => :group has_many :assignments, :dependent => :destroy has_many :tasks, :through => :assignments @@ -119,8 +120,9 @@ class User < ActiveRecord::Base end # Returns the user's OrderGroup or nil if none found. - def find_ordergroup - groups.find(:first, :conditions => "type = 'OrderGroup'") + def find_ordergroup + order_groups.first + #groups.find(:first, :conditions => "type = 'OrderGroup'") end # Find all tasks, for which the current user should be responsible diff --git a/app/views/admin/_listUsers.haml b/app/views/admin/_listUsers.haml index a7c81cd8..1e2a1f75 100644 --- a/app/views/admin/_listUsers.haml +++ b/app/views/admin/_listUsers.haml @@ -30,7 +30,7 @@ %td=h user.last_name %td=h user.email %td=h roles.join(', ') - %td=h FoodSoft::format_date_time(user.last_login) + %td=h format_date_time(user.last_login) %td = link_to(image_tag('b_edit.png', :size => "16x16", :border => "0", :alt => 'Benutzer_in bearbeiten', :title => 'Benutzer_in bearbeiten'), :action => 'editUser', :id => user) = link_to(image_tag('b_drop.png', :size => "16x16", :border => "0", :alt => 'Benutzer_in löschen', :title => 'Benutzer_in löschen'), | diff --git a/app/views/finance/_summary.haml b/app/views/finance/_summary.haml index a0628957..8caced84 100644 --- a/app/views/finance/_summary.haml +++ b/app/views/finance/_summary.haml @@ -56,5 +56,5 @@ %td{:colspan => "4"} %b %abbr{:title => "= Gruppenbeträge - Rechnung ohne Pfand"} Differenz mit Aufschlag - = "(#{number_to_percentage(FoodSoft.getPriceMarkup)}):" + = "(#{number_to_percentage(APP_CONFIG[:price_markup])}):" %span#fcProfit= number_to_currency(@order.fcProfit) diff --git a/app/views/layouts/application.haml b/app/views/layouts/application.haml index fa68e76d..609db973 100644 --- a/app/views/layouts/application.haml +++ b/app/views/layouts/application.haml @@ -17,7 +17,7 @@ #logo %a{:href => "/"} foodsoft - %span{:style => "color:white; font-size:45%; letter-spacing: -1px;"}= FoodSoft::getFoodcoopName + %span{:style => "color:white; font-size:45%; letter-spacing: -1px;"}= APP_CONFIG[:name] #nav= render :partial => 'shared/nav' #main diff --git a/app/views/layouts/login.haml b/app/views/layouts/login.haml index fe539021..87d7e15e 100644 --- a/app/views/layouts/login.haml +++ b/app/views/layouts/login.haml @@ -12,4 +12,4 @@ = yield #meta Foodcoop - = link_to_if FoodSoft::getFoodcoopUrl, FoodSoft::getFoodcoopName, FoodSoft::getFoodcoopUrl + = link_to_if APP_CONFIG[:base_url], APP_CONFIG[:name], APP_CONFIG[:base_url] diff --git a/app/views/messages/negative_balance.rhtml b/app/views/messages/negative_balance.rhtml index ac4b71eb..11e15175 100644 --- a/app/views/messages/negative_balance.rhtml +++ b/app/views/messages/negative_balance.rhtml @@ -1,9 +1,9 @@ Hallo <%= user.nick %>! -Der Kontostand deiner Bestellgruppe <%= group.name %> ist durch eine Buchung am <%= transaction.created_on.strftime('%d.%m.%Y um %H:%M') %> ins Minus gerutscht: <%= FoodSoft::format_currency(group.account_balance) %> +Der Kontostand deiner Bestellgruppe <%= group.name %> ist durch eine Buchung am <%= transaction.created_on.strftime('%d.%m.%Y um %H:%M') %> ins Minus gerutscht: <%= group.account_balance %> -Es wurden <%= FoodSoft::format_currency(transaction.amount) %> für "<%= transaction.note %>" abgebucht, die Buchung wurde von <%= transaction.user.nick %> erstellt. +Es wurden <%= transaction.amount %> für "<%= transaction.note %>" abgebucht, die Buchung wurde von <%= transaction.user.nick %> erstellt. Bitte zahlt so bald wie möglich wieder Geld ein, um das Gruppenkonto auszugleichen. -Viele Grüße von <%= FoodSoft::getFoodcoopName %> \ No newline at end of file +Viele Grüße von <%= APP_CONFIG[:name] %> \ No newline at end of file diff --git a/app/views/messages/order_finished.rhtml b/app/views/messages/order_finished.rhtml index 5f345a6a..270d3e2a 100644 --- a/app/views/messages/order_finished.rhtml +++ b/app/views/messages/order_finished.rhtml @@ -5,10 +5,10 @@ Die Bestellung "<%= order.name %>" wurde am <%= order.ends.strftime('%d.%m.%Y um Für deine Bestellgruppe <%= group.name %> wurden die folgenden Artikel bestellt: <% for result in results article = result.order_article_result -%> -<%= article.name %>: <%= result.quantity %> x <%= article.unit %> = <%= FoodSoft::format_currency(result.quantity * article.gross_price) %> +<%= article.name %>: <%= result.quantity %> x <%= article.unit %> = <%= result.quantity * article.gross_price %> <% end -%> -Gesamtpreis: <%= FoodSoft::format_currency(total) %> +Gesamtpreis: <%= total %> Bestellung online einsehen: <%= ApplicationController.current.url_for(:controller => 'ordering', :action => 'my_order_result', :id => order.id) %> -Viele Grüße von <%= FoodSoft::getFoodcoopName %> \ No newline at end of file +Viele Grüße von <%= APP_CONFIG[:name] %> \ No newline at end of file diff --git a/app/views/ordering/order.rhtml b/app/views/ordering/order.rhtml index 8cc6583d..087d66d3 100644 --- a/app/views/ordering/order.rhtml +++ b/app/views/ordering/order.rhtml @@ -125,7 +125,7 @@ <%= button_to_function('-', "decreaseTolerance(#{i})") %> <% end -%> - <%= number_to_currency(article_total, :unit => "") %> <%= FoodSoft::getCurrencyUnit %> + <%= number_to_currency(article_total, :unit => "") %> <%= l18n.number.currency.format.unit %> <% unless order_article.article.note.empty? -%> @@ -139,7 +139,7 @@ - <%=_ "Total amount" %>: <%= total %> <%= FoodSoft::getCurrencyUnit %> + <%=_ "Total amount" %>: <%= total %> <%= l18n.number.currency.format.unit %> @@ -147,7 +147,7 @@ - <%=_ "New account balance"%>: <%= @order_group.account_balance - total %> <%= FoodSoft::getCurrencyUnit %> + <%=_ "New account balance"%>: <%= @order_group.account_balance - total %> <%= l18n.number.currency.format.unit %> <%= link_to_top %> @@ -171,7 +171,7 @@ setGroupBalance(<%= @availableFunds %>); // localization - setDecimalSeparator("<%= FoodSoft::getDecimalSeparator %>"); + setDecimalSeparator("<%= l18n.number.currency.format.separator %>"); // initialize javascript updateBalance(); diff --git a/app/views/orders/articlesPdf.rfpdf b/app/views/orders/articlesPdf.rfpdf index a54fe857..f9b43e0b 100644 --- a/app/views/orders/articlesPdf.rfpdf +++ b/app/views/orders/articlesPdf.rfpdf @@ -20,7 +20,7 @@ @ends = @order.ends.strftime('%d.%m.%Y').to_s @title = replace_UTF8(@order.name.to_s) + " | beendet am " + @ends - pdf.SetAuthor(FoodSoft.getFoodcoopName) + pdf.SetAuthor(APP_CONFIG[:name]) pdf.SetTitle(replace_UTF8("Artikelsortierung für #{@order.name}, #{format_date(@order.ends)}")) pdf.AliasNbPages() pdf.AddPage() diff --git a/app/views/orders/faxPdf.rfpdf b/app/views/orders/faxPdf.rfpdf index c1c99853..3d45430f 100644 --- a/app/views/orders/faxPdf.rfpdf +++ b/app/views/orders/faxPdf.rfpdf @@ -11,7 +11,7 @@ @order_articles = @order.order_article_results - pdf.SetAuthor(replace_UTF8(FoodSoft.getFoodcoopName)) + pdf.SetAuthor(replace_UTF8(APP_CONFIG[:name])) pdf.SetTitle(replace_UTF8("BestellFAX für #{@order.supplier.name}")) pdf.AliasNbPages() pdf.AddPage() @@ -19,15 +19,15 @@ #the main informations pdf.SetY(15) pdf.SetFont('Arial','',10) - pdf.Cell(0,5,replace_UTF8(FoodSoft.getFoodcoopName),0,0,'R') + pdf.Cell(0,5,replace_UTF8(APP_CONFIG[:name]),0,0,'R') pdf.Ln() - pdf.Cell(0,5,replace_UTF8(FoodSoft.getFoodcoopContact[:street]),0,0,'R') + pdf.Cell(0,5,replace_UTF8(APP_CONFIG[:contact].symbolize_keys[:street]),0,0,'R') pdf.Ln() - pdf.Cell(0,5,FoodSoft.getFoodcoopContact[:zip_code] + " " + replace_UTF8(FoodSoft.getFoodcoopContact[:city]),0,0,'R') + pdf.Cell(0,5,APP_CONFIG[:contact].symbolize_keys[:zip_code] + " " + replace_UTF8(APP_CONFIG[:contact].symbolize_keys[:city]),0,0,'R') pdf.Ln() - pdf.Cell(0,5,replace_UTF8(FoodSoft.getFoodcoopName[:phone]),0,0,'R') + pdf.Cell(0,5,replace_UTF8(APP_CONFIG[:name][:phone]),0,0,'R') pdf.Ln() - pdf.Cell(0,5,replace_UTF8(FoodSoft.getFoodcoopName[:email]),0,0,'R') + pdf.Cell(0,5,replace_UTF8(APP_CONFIG[:name][:email]),0,0,'R') pdf.Ln() pdf.Cell(0,5,Date.today.strftime('%d.%m.%Y').to_s,0,0,'R') pdf.Ln() diff --git a/app/views/orders/groupsPdf.rfpdf b/app/views/orders/groupsPdf.rfpdf index 8ae2b890..5d20af9a 100644 --- a/app/views/orders/groupsPdf.rfpdf +++ b/app/views/orders/groupsPdf.rfpdf @@ -19,7 +19,7 @@ @ends = @order.ends.strftime('%d.%m.%Y').to_s @title = replace_UTF8(@order.name.to_s) + " | beendet am " + @ends - pdf.SetAuthor(FoodSoft.getFoodcoopName) + pdf.SetAuthor(APP_CONFIG[:name]) pdf.SetTitle(replace_UTF8("GruppenSortierung für #{@order.name}, #{format_date(@order.ends)}")) pdf.SetFillColor(235) pdf.AliasNbPages() diff --git a/app/views/orders/matrixPdf.rfpdf b/app/views/orders/matrixPdf.rfpdf index 1fec1eab..d8e212da 100644 --- a/app/views/orders/matrixPdf.rfpdf +++ b/app/views/orders/matrixPdf.rfpdf @@ -18,7 +18,7 @@ MAX_ARTICLES_PER_PAGE = 15 #how many articles shoud written on a page pdf=PDF.new - pdf.SetAuthor(FoodSoft.getFoodcoopName) + pdf.SetAuthor(APP_CONFIG[:name]) @starts = @order.starts.strftime('%d.%m.%Y').to_s @ends = @order.ends.strftime('%d.%m.%Y').to_s @title = replace_UTF8(@order.name.to_s) + " | beendet am " + @ends diff --git a/app/views/shared/_loginInfo.haml b/app/views/shared/_loginInfo.haml index 3375722a..e69de735 100644 --- a/app/views/shared/_loginInfo.haml +++ b/app/views/shared/_loginInfo.haml @@ -2,7 +2,7 @@ %li = image_tag 'b_user.png' , :size => '7x10', :border => 0, :alt => _("User") = link_to h(@current_user.nick), { :controller => 'index', :action => 'myProfile' }, { :title => _("User Settings") } - - if FoodSoft::getFoodcoopUrl - %li= link_to FoodSoft::getFoodcoopName, FoodSoft::getFoodcoopUrl, { :title => _("Go to your FoodCoop-Hompage") } + - if APP_CONFIG[:base_url] + %li= link_to APP_CONFIG[:name], APP_CONFIG[:base_url], { :title => _("Go to your FoodCoop-Hompage") } %li= link_to _("Help"), 'http://dev.foodcoops.net/wiki/FoodsoftDoku' %li= link_to _("Logout"), :controller => '/login', :action => 'logout' \ No newline at end of file diff --git a/app/views/shared/_mail_footer.rhtml b/app/views/shared/_mail_footer.rhtml index 2539e3e1..31eb70b2 100644 --- a/app/views/shared/_mail_footer.rhtml +++ b/app/views/shared/_mail_footer.rhtml @@ -1,4 +1,4 @@ -- FoodSoft: <%= @foodsoftUrl %> -Foodcoop-Homepage: <%= FoodSoft::getFoodcoopUrl %> -Hilfe/Help: <%= FoodSoft::getHelp %> \ No newline at end of file +Foodcoop-Homepage: <%= APP_CONFIG[:base_url] %> +Hilfe/Help: <%= APP_CONFIG[:help_url] %> \ No newline at end of file diff --git a/config/app_config.yml.SAMPLE b/config/app_config.yml.SAMPLE new file mode 100644 index 00000000..f9d566e2 --- /dev/null +++ b/config/app_config.yml.SAMPLE @@ -0,0 +1,58 @@ +# Foodsoft configuration + +development: &defaults + # name of this foodcoop + name: FC Test + # foodcoop contact information (used for FAX messages) + contact: + street: Grüne Straße 103 + zip_code: "10997" + city: Berlin + country: Deutschland + email: foodsoft@myfoodcoop.org + phone: "030 323 23249" + # base URL for this installation + base_url: http://www.fctest.de + # foodsoft documentation URL + help_url: http://foodsoft.fcschinke09.de/trac/wiki/FoodsoftDoku + # price markup in percent + price_markup: 2.0 + # email address to be used as sender + email_sender: foodsoft@myfoodcoop.org + +# Config for the exception_notification plugin + notification: + error_recipients: + - benni@dresdener27.de + sender_address: FoodSoft Error + email_prefix: "[FoodSoft]" + # Access to sharedLists, the external article-database + shared_lists: + adapter: mysql + host: localhost + database: sharedlists_development + username: root + password: + encoding: utf8 + socket: /opt/lampp/var/mysql/mysql.sock + # auto-units-conversion + # this is used for automatic article-synchronization to handle different units + # e.g. when foodcoop-unit should be 500g and supplier-unit is 1kg + units: + KG: 1 + 1kg: 1 + 500g: 0.5 + 400g: 0.4 + 300g: 0.3 + 250g: 0.25 + 200g: 0.2 + 150g: 0.15 + 125g: 0.125 + 100g: 0.1 + 50g: 0.05 + +test: + <<: *defaults + +production: + <<: *defaults \ No newline at end of file diff --git a/config/boot.rb b/config/boot.rb index cd21fb9e..0a516880 100644 --- a/config/boot.rb +++ b/config/boot.rb @@ -67,7 +67,7 @@ module Rails class << self def rubygems_version - Gem::RubyGemsVersion if defined? Gem::RubyGemsVersion + Gem::RubyGemsVersion rescue nil end def gem_version @@ -82,14 +82,14 @@ module Rails def load_rubygems require 'rubygems' - - unless rubygems_version >= '0.9.4' - $stderr.puts %(Rails requires RubyGems >= 0.9.4 (you have #{rubygems_version}). Please `gem update --system` and try again.) + min_version = '1.3.1' + unless rubygems_version >= min_version + $stderr.puts %Q(Rails requires RubyGems >= #{min_version} (you have #{rubygems_version}). Please `gem update --system` and try again.) exit 1 end rescue LoadError - $stderr.puts %(Rails requires RubyGems >= 0.9.4. Please install RubyGems and try again: http://rubygems.rubyforge.org) + $stderr.puts %Q(Rails requires RubyGems >= #{min_version}. Please install RubyGems and try again: http://rubygems.rubyforge.org) exit 1 end diff --git a/config/environment.rb b/config/environment.rb index 79df7b84..7b44cbcc 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -5,25 +5,22 @@ # ENV['RAILS_ENV'] ||= 'production' # Specifies gem version of Rails to use when vendor/rails is not present -RAILS_GEM_VERSION = '2.1.0' unless defined? RAILS_GEM_VERSION +RAILS_GEM_VERSION = '2.2.2' unless defined? RAILS_GEM_VERSION # Bootstrap the Rails environment, frameworks, and default configuration require File.join(File.dirname(__FILE__), 'boot') -# Need gettext for i18n -require 'gettext/rails' - -# Loads the "FoodSoft" module and configuration: -require 'foodsoft' - Rails::Initializer.run do |config| - # Settings in config/environments/* take precedence over those specified here + # Settings in config/environments/* take precedence over those specified here. + # Application configuration should go into files in config/initializers + # -- all .rb files in that directory are automatically loaded. + # See Rails::Configuration for more options. # Skip frameworks you're not going to use (only works if using vendor/rails) # config.frameworks -= [ :action_web_service, :action_mailer ] # Only load the plugins named here, by default all plugins in vendor/plugins are loaded - # config.plugins = %W( exception_notification ssl_requirement ) + # config.plugins = [ :exception_notification, :ssl_requirement, :all ] # Add additional load paths for your own custom dirs # config.load_paths += %W( #{RAILS_ROOT}/extras ) @@ -48,7 +45,7 @@ Rails::Initializer.run do |config| # config.active_record.observers = :cacher, :garbage_collector # Make Active Record use UTC-base instead of local time - # config.active_record.default_timezone = :utc + config.time_zone = 'UTC' # Your secret key for verifying cookie session data integrity. # If you change this key, all old sessions will become invalid! @@ -56,42 +53,31 @@ Rails::Initializer.run do |config| # no regular words or you'll be exposed to dictionary attacks. config.action_controller.session = { :session_key => '_foodsoft_session', - :secret => FoodSoft.get_session_secret + :secret => "dhjfuez47892nsl39fh83ham3jsdfjkh4879sdh" } + # Specify gems that this application depends on. + # They can then be installed with "rake gems:install" on new installations. + # You have to specify the :lib option for libraries, where the Gem name (sqlite3-ruby) differs from the file itself (sqlite3) + # config.gem "bj" + # config.gem "hpricot", :version => '0.6', :source => "http://code.whytheluckystiff.net" + # config.gem "sqlite3-ruby", :lib => "sqlite3" + # config.gem "aws-s3", :lib => "aws/s3" + # + # library for parsing/writing files from/to csv-file + config.gem "fastercsv" + + # The internationalization framework can be changed to have another default locale (standard is :en) or more load paths. + # All files from config/locales/*.rb,yml are added automatically. + # config.i18n.load_path << Dir[File.join(RAILS_ROOT, 'my', 'locales', '*.{rb,yml}')] + config.i18n.default_locale = :de + # See Rails::Configuration for more options end - -# Add new inflection rules using the following format -# (all these examples are active by default): -# Inflector.inflections do |inflect| -# inflect.plural /^(ox)$/i, '\1en' -# inflect.singular /^(ox)en/i, '\1' -# inflect.irregular 'person', 'people' -# inflect.uncountable %w( fish sheep )decimal -# end - -# Add new mime types for use in respond_to blocks: -# Mime::Type.register "text/richtext", :rtf -# Mime::Type.register "application/x-mobile", :mobile - -# Include your application configuration below - -# library for parsing/writing files from/to csv-file -# doc: http://fastercsv.rubyforge.org/ -require 'faster_csv' - -# Attention: Don't forget to set the locale through LocalizationSimplified plugin! # Defines custom logging format. -class Logger - def format_message(severity, timestamp, progname, msg) - format("%s %-5.5s %s\n", timestamp.strftime('%H:%M:%S'), severity, msg) - end -end - -# Configuration of the exception_notification plugin -# Mailadresses are set in config/foodsoft.yaml -ExceptionNotifier.exception_recipients = FoodSoft.get_notification_config[:error_recipients] -ExceptionNotifier.sender_address = FoodSoft.get_notification_config[:sender_address] -ExceptionNotifier.email_prefix = FoodSoft.get_notification_config[:email_prefix] \ No newline at end of file +#class Logger +# def format_message(severity, timestamp, progname, msg) +# format("%s %-5.5s %s\n", timestamp.strftime('%H:%M:%S'), severity, msg) +# end +#end \ No newline at end of file diff --git a/config/environments/production.rb b/config/environments/production.rb index 7703e1aa..ce84c103 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -4,6 +4,9 @@ # Code is not reloaded between requests config.cache_classes = true +# Enable threaded mode +# config.threadsafe! + # Use a different logger for distributed setups # config.logger = SyslogLogger.new config.log_level = :warn @@ -12,6 +15,9 @@ config.log_level = :warn config.action_controller.consider_all_requests_local = false config.action_controller.perform_caching = true +# Use a different cache store in production +# config.cache_store = :mem_cache_store + # Enable serving of images, stylesheets, and javascripts from an asset server # config.action_controller.asset_host = "http://assets.example.com" diff --git a/config/foodcoops.yml.SAMPLE b/config/foodcoops.yml.SAMPLE index 3f110e78..2883d035 100644 --- a/config/foodcoops.yml.SAMPLE +++ b/config/foodcoops.yml.SAMPLE @@ -27,8 +27,7 @@ test1: email_sender: foodsoft@myfoodcoop.org # localized date/time formats - date_format: %d.%m.%Y - time_format: %H:%M + #test2: @@ -44,5 +43,3 @@ test1: # help_url: http://foodsoft.fcschinke09.de/trac/wiki/FoodsoftDoku # price_markup: 1.0 # email_sender: foodsoft@fctest2.org -# date_format: %d.%m.%Y -# time_format: %H:%M diff --git a/config/foodsoft.yml.SAMPLE b/config/foodsoft.yml.SAMPLE deleted file mode 100644 index 0f7a71ce..00000000 --- a/config/foodsoft.yml.SAMPLE +++ /dev/null @@ -1,38 +0,0 @@ -# Foodsoft configuration - -# Config for the exception_notification plugin -notification: - error_recipients: - - foo@bar.tld - sender_address: FoodSoft Error - email_prefix: "[FoodSoft]" - -# Access to sharedLists, the external article-database -shared_lists: - adapter: mysql - host: localhost - database: sharedLists_development - username: root - password: - encoding: utf8 - socket: /opt/lampp/var/mysql/mysql.sock - -# secret to generate an integrity hash for cookie session data -# the string should have at least 30 characters -session_secret: dhjfuez47892nsl39fh83ham3jsdfjkh4879sdh - -# auto-units-conversion -# this is used for automatic article-synchronization to handle different units -# e.g. when foodcoop-unit should be 500g and supplier-unit is 1kg -units: - KG: 1 - 1kg: 1 - 500g: 0.5 - 400g: 0.4 - 300g: 0.3 - 250g: 0.25 - 200g: 0.2 - 150g: 0.15 - 125g: 0.125 - 100g: 0.1 - 50g: 0.05 \ No newline at end of file diff --git a/config/initializers/extensions.rb b/config/initializers/extensions.rb new file mode 100644 index 00000000..a6577545 --- /dev/null +++ b/config/initializers/extensions.rb @@ -0,0 +1,12 @@ +# extend the BigDecimal class +class String + + # remove comma from decimal inputs + def self.delocalized_decimal(string) + if !string.blank? and string.is_a?(String) + BigDecimal.new(string.sub(',', '.')) + else + string + end + end +end \ No newline at end of file diff --git a/config/initializers/gettext_helper.rb b/config/initializers/gettext_helper.rb new file mode 100644 index 00000000..1de3983e --- /dev/null +++ b/config/initializers/gettext_helper.rb @@ -0,0 +1,10 @@ +# Remove this file, when every gettext-method <_("text to translate..")> +# is replaced by rails l18n method: l18n.name.name... + +module ActionView + class Base + def _(text) + text + end + end +end \ No newline at end of file diff --git a/config/initializers/inflections.rb b/config/initializers/inflections.rb new file mode 100644 index 00000000..d531b8bb --- /dev/null +++ b/config/initializers/inflections.rb @@ -0,0 +1,10 @@ +# Be sure to restart your server when you modify this file. + +# Add new inflection rules using the following format +# (all these examples are active by default): +# ActiveSupport::Inflector.inflections do |inflect| +# inflect.plural /^(ox)$/i, '\1en' +# inflect.singular /^(ox)en/i, '\1' +# inflect.irregular 'person', 'people' +# inflect.uncountable %w( fish sheep ) +# end diff --git a/config/initializers/load_app_config.rb b/config/initializers/load_app_config.rb new file mode 100644 index 00000000..95b63272 --- /dev/null +++ b/config/initializers/load_app_config.rb @@ -0,0 +1,9 @@ +raw_config = File.read(RAILS_ROOT + "/config/app_config.yml") +APP_CONFIG = YAML.load(raw_config)[RAILS_ENV].symbolize_keys + + +# Configuration of the exception_notification plugin +# Mailadresses are set in config/foodsoft.yaml +ExceptionNotifier.exception_recipients = APP_CONFIG[:error_recipients] +ExceptionNotifier.sender_address = APP_CONFIG[:sender_address] +ExceptionNotifier.email_prefix = APP_CONFIG[:email_prefix] \ No newline at end of file diff --git a/config/initializers/mime_types.rb b/config/initializers/mime_types.rb new file mode 100644 index 00000000..72aca7e4 --- /dev/null +++ b/config/initializers/mime_types.rb @@ -0,0 +1,5 @@ +# Be sure to restart your server when you modify this file. + +# Add new mime types for use in respond_to blocks: +# Mime::Type.register "text/richtext", :rtf +# Mime::Type.register_alias "text/html", :iphone diff --git a/config/initializers/new_rails_defaults.rb b/config/initializers/new_rails_defaults.rb new file mode 100644 index 00000000..78e0117c --- /dev/null +++ b/config/initializers/new_rails_defaults.rb @@ -0,0 +1,17 @@ +# These settings change the behavior of Rails 2 apps and will be defaults +# for Rails 3. You can remove this initializer when Rails 3 is released. + +if defined?(ActiveRecord) + # Include Active Record class name as root for JSON serialized output. + ActiveRecord::Base.include_root_in_json = true + + # Store the full class name (including module namespace) in STI type column. + ActiveRecord::Base.store_full_sti_class = true +end + +# Use ISO 8601 format for JSON serialized times and dates. +ActiveSupport.use_standard_json_time_format = true + +# Don't escape HTML entities in JSON, leave that for the #json_escape helper. +# if you're including raw json in an HTML page. +ActiveSupport.escape_html_entities_in_json = false \ No newline at end of file diff --git a/config/locales/de.yml b/config/locales/de.yml new file mode 100644 index 00000000..9ead95fe --- /dev/null +++ b/config/locales/de.yml @@ -0,0 +1,125 @@ +# 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: + article: Artikel + attributes: + article: + net_price: Nettopreis + gross_price: Bruttopreis \ No newline at end of file diff --git a/config/locales/en.yml b/config/locales/en.yml new file mode 100644 index 00000000..f265c068 --- /dev/null +++ b/config/locales/en.yml @@ -0,0 +1,5 @@ +# Sample localization file for English. Add more files in this directory for other locales. +# See http://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points. + +en: + hello: "Hello world" \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index d2f86639..b8f08e45 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,23 +1,46 @@ ActionController::Routing::Routes.draw do |map| + map.my_profile 'my_profile', :controller => 'index', :action => 'myProfile' # The priority is based upon order of creation: first created -> highest priority. - + # Sample of regular route: - # map.connect 'products/:id', :controller => 'catalog', :action => 'view' + # map.connect 'products/:id', :controller => 'catalog', :action => 'view' # Keep in mind you can assign values other than :controller and :action # Sample of named route: - # map.purchase 'products/:id/purchase', :controller => 'catalog', :action => 'purchase' + # map.purchase 'products/:id/purchase', :controller => 'catalog', :action => 'purchase' # This route can be invoked with purchase_url(:id => product.id) - # You can have the root of your site routed by hooking up '' - # -- just remember to delete public/index.html. - #map.connect '', :controller => 'login' + # Sample resource route (maps HTTP verbs to controller actions automatically): + # map.resources :products - # Allow downloading Web Service WSDL as a file with an extension - # instead of a file named 'wsdl' - map.connect ':controller/service.wsdl', :action => 'wsdl' + # Sample resource route with options: + # map.resources :products, :member => { :short => :get, :toggle => :post }, :collection => { :sold => :get } + + # Sample resource route with sub-resources: + # map.resources :products, :has_many => [ :comments, :sales ], :has_one => :seller + + # Sample resource route with more complex sub-resources + # map.resources :products do |products| + # products.resources :comments + # products.resources :sales, :collection => { :recent => :get } + # end + + # Sample resource route within a namespace: + # map.namespace :admin do |admin| + # # Directs /admin/products/* to Admin::ProductsController (app/controllers/admin/products_controller.rb) + # admin.resources :products + # end + + # You can have the root of your site routed with map.root -- just remember to delete public/index.html. + # map.root :controller => "welcome" + + # See how all your routes lay out with "rake routes" + + # Install the default routes as the lowest priority. + # Note: These default routes make all actions in every controller accessible via GET requests. You should + # consider removing the them or commenting them out if you're using named routes and resources. # Install the default route as the lowest priority. map.connect ':controller/:action/:id', :controller => 'index' diff --git a/lib/foodsoft.rb b/lib/foodsoft.rb deleted file mode 100644 index 6e0e9bff..00000000 --- a/lib/foodsoft.rb +++ /dev/null @@ -1,183 +0,0 @@ -require 'yaml' - -# General FoodSoft module for application configuration and global methods. -# -# This library needs to be loaded in environment.rb through require 'foodsoft'. -# -module FoodSoft - private - @@foodcoops = Hash.new - @@database = Hash.new - @@foodsoft = Hash.new - @@subdomain = String.new - - public - - # Loads the configuration file config/foodsoft.yml, ..foodcoops.yml and ..database.yml - def self.load_configuration - # load foodcoops-config - @@foodcoops = YAML::load(File.open("#{RAILS_ROOT}/config/foodcoops.yml")) - - # load database-config - @@database = YAML::load(File.open("#{RAILS_ROOT}/config/database.yml")) - - # load foodsoft-config - @@foodsoft = YAML::load(File.open("#{RAILS_ROOT}/config/foodsoft.yml")).symbolize_keys - - # validates the parsed data - self.validate - rescue => e - # raise "Failed to load configuration files: #{e.message}" - end - - - def self.subdomain=(subdomain) - @@subdomain = subdomain - end - - def self.subdomain - return @@subdomain - end - - def self.format_time(time = Time.now) - raise "FoodSoft::time_format has not been set!" unless @@foodcoops[subdomain]["time_format"] - time.strftime(@@foodcoops[subdomain]["time_format"]) unless time.nil? - end - - def self.format_date(date = Time.now) - raise "FoodSoft: date_format has not been set!" unless @@foodcoops[subdomain]["date_format"] - date.strftime(@@foodcoops[subdomain]["date_format"]) unless date.nil? - end - - def self.format_date_time(time = Time.now) - "#{format_date(time)} #{format_time(time)}" unless time.nil? - end - - def self.format_currency(decimal) - "#{self.getCurrencyUnit} %01.2f" % decimal - end - - # Returns the set host, otherwise returns nil - def self.getHost - return @@foodcoops[subdomain]["host"] - end - - def self.getFoodcoopName - raise 'foodcoopName has not been set!' unless @@foodcoops[subdomain]["name"] - return @@foodcoops[subdomain]["name"] - end - - def self.getFoodcoopContact - raise "contact has not been set!" unless @@foodcoops[subdomain]["contact"] - return @@foodcoops[subdomain]["contact"].symbolize_keys - end - - def self.getFoodcoopUrl - return @@foodcoops[subdomain]["base_url"] - end - - def self.getHelp - raise 'foodsoftHelp has not been set!' unless @@foodcoops[subdomain]["help_url"] - return @@foodcoops[subdomain]["help_url"] - end - - # Returns the email sender used for system emails. - def self.getEmailSender - raise 'FoodSoft::emailSender has not been set!' unless @@foodcoops[subdomain]["email_sender"] - return @@foodcoops[subdomain]["email_sender"] - end - - # Returns the price markup. - def self.getPriceMarkup - raise "FoodSoft::priceMarkup has not been set!" unless @@foodcoops[subdomain]["price_markup"] - return @@foodcoops[subdomain]["price_markup"] - end - - # Returns the local decimal separator. - def self.getDecimalSeparator - if (separator = LocalizationSimplified::NumberHelper::CurrencyOptions[:separator]) - return separator - else - logger.warn('No locale configured through plugin LocalizationSimplified') - return '.' - end - end - - # Returns the local currency unit. - def self.getCurrencyUnit - if (unit = LocalizationSimplified::NumberHelper::CurrencyOptions[:unit]) - return unit - else - logger.warn('No locale configured through plugin LocalizationSimplified') - return '$' - end - end - - # Returns the delocalized version of the string, i.e. with the decimal separator local character properly replaced. - # For example, for the locale "de-DE", the comma character "," will be replaced with the standard separator ".". - def self.delocalizeDecimalString(string) - if (string && string.is_a?(String) && !string.empty?) - separator = getDecimalSeparator - if (separator != '.' && string.index(separator)) - string = string.sub(separator, '.') - end - end - return string - end - - # Return the specific database - def self.get_database - raise 'databse for foodcoop has not been set' unless @@database[subdomain] - return @@database[subdomain] - end - - # Foodsoft-Config begins - - # Returns an array with mail-adresses for the exception_notification plugin - def self.get_notification_config - raise 'FoodSoft::errorRecipients has not been set!' unless @@foodsoft[:notification] - return @@foodsoft[:notification].symbolize_keys - end - - # returns shared_lists database connection - def self.get_shared_lists_config - raise "sharedLists database config has not been set" unless @@foodsoft[:shared_lists] - return @@foodsoft[:shared_lists] - end - - # returns a string for an integrity hash for cookie session data - def self.get_session_secret - raise "session secret string has not been set" unless @@foodsoft[:session_secret] - return @@foodsoft[:session_secret] - end - - # returns units-hash for automatic units-conversion - # this hash looks like {"KG" => 1, "500g" => 0.5, ...} - def self.get_units_factors - raise "units has not been set" unless @@foodsoft[:units] - @@foodsoft[:units] - end - - # validates the yaml-parsed-config-file - def self.validate - raise "Price markup is not a proper float. please use at least one decimal place" unless @@foodcoops.each {|fc| fc["price_markup"].is_a?(Float)} - raise "Error recipients aren't set correctly. use hyphen for each recipient" unless @@foodsoft[:error_recipients].is_a?(Array) - end -end - -# Automatically load configuration file: -FoodSoft::load_configuration - -# Makes "number_to_percentage" locale aware. -module ActionView - module Helpers - module NumberHelper - alias_method :foodsoft_old_number_to_percentage, :number_to_percentage - - # Returns the number in the localized percentage format. - def number_to_percentage(number, options = {}) - foodsoft_old_number_to_percentage(number, :precision => 1, :separator => FoodSoft::getDecimalSeparator) - end - end - end -end \ No newline at end of file diff --git a/locale/de/LC_MESSAGES/foodsoft.mo b/locale/de/LC_MESSAGES/foodsoft.mo deleted file mode 100644 index 284a7ad6baceac0b87ca3374e594ff118669b2ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27674 zcmb`Pd7NBTnfEUcwg3T*?AuM)5|ZvL$krr*ES&^MLX++!5ErcOzExdx)vcy(RXW|a zz#yXFf@}hcvMY)TibT;UBdsrpjDpK3f;z&0iZkvqI_SLb_ji_iZ?zqqKi>Lq`g_lE z&-$F_Jm=gKe)8HWHw641+$jhSgJ0Vx2+rO)2r7pvGze}wItccHH^Z6mZg?7e3?2`s z9Ao3>Ii3dhCVUl~4twCfZ~*QHx5C}wmGA&~jq~3Fr{TXJ>ivfupMZPfe;S?)pNG4_ zLyrxD*+zX8=RQ)c7fG^qTh!(HJ_xEq`WRsKAv_m{${@Eo`Y+zeHIA5^^> zP~~0ecnehe`=IjuB0L!WGt~P(f?e==7yfz%<8b`zp!%f()t)h^_FV~8-VIRo{U}tr z2cg>Wb*Oqj4wddHsCqvKcZa`)%ID9{KV^=6Z*Qn{uYs!9kuH3e^S8mNgrDTN6z++C z4OIVZglgXaM8tv^?gFoelB=7b(%lbL&LdFuc@nDMeh4K${|S$Td(O4}G#iHampgwy z+#CPJQ1y8?RDC}H)!thj?}w_-S0N%5JPOsXzk!-J`?T5m9}QJ*J5>6!pyaR%?gjf{ z2#28h^%|&tzX?jdKIZsksP=sqsva*m|I1MI+@sx=I~{7gj)#(i4ygDZxDUJlDxWIU zcwPd#;pI^M@YaAj(>pa4=IB;fW4vK8-S971nRxFIbIEw{&uK-{S;LHJ>d97sCs-A zs@+dPmH$&Hx%dyL_y6ep!3nm%_JA7inNaEHz}Lc4;BxWJ{73=i{UhQ4OF?e zLCL}WQ0;gWsvh5gYR|txmGctRIQ#(~4gc)o4}ZN)cO0Bf_yVZKx;@<>SZVAqT zTcGm21F9bPI{%lT%J~{peZB!DU*Cfab?_3DoF2@eDcy-s?dyQ**ER4E*zMwDsD4kN z${&Gh*Snzf@U_l=FH}D~2-W^4pxW^xsQg}pTGw_u3E6^2K+WgHP~jV#zYdk}RZwzz zCp-X-L#6)_4B_wL3^@H{TmKWG+Pey>-1SiHc{5afBdBq%LDg>zz7Adm_1>*e?fZla ze+X*4zvcWtgG%?Z<4&j8{Pu==?_j9%X1VZrP~)=*s+>+JdE5-upS>=Az{Ot#>7w8Y zcp%&k_lMtuD)%L*_x=Qrfv>=`;EYpkITfgSG@;U64o&-9{H>1n!2O8-3{*co0#)yC zLCL}Qq2%!AQ0;#ODxYaAcFOlCsB&gQ$eo*Be0hRs)sCF%b z%5Oc?`-6^Kq0+qrsy^34jpv7<`sGfjd_V2D9V)-aq3Zi1sQUlP#s3NFyg!9&hK=HPOu z^i`<(TnUed*TFgPE07@zUV@50cB$=$`A~AW7%Kcs=kJDU-vv~0&FFWqG%<8`bpz>b;mG4PVwKtmMYt9Y zLiOWAF8<3<q7)pO^gA3rZQ0u% z9s+*>_1-R>wjZWK<-4!*9|)DtVJ`d_sQzn%lJ8UDu5dNf{8$Gyulk_+Z4@fM_dxaA z^-%fU0jI!w9q)%n;eQb7y{Do2?^jUzV9H7xejp6-&xZXwG5?|Ry>FGZo4yP;;C}(0 z08d+O>sf;umy4n5c`cN@e+;U>z7Ex{C*dCOSvUi}09F6p&$RjM3ne#4K#kKJsPY%V zv*1~9H+TbF2yb!xHaraf&Lk3#go0*sQRpc8kY?&ydUn0f5`c_K-K>;sC=%5Q{nYc>28H;&)rb{@BrKkZii~uV^HOO z8>*ZiK*{BcQ1yNpE`ob78I*4)RQfI`xi}9hpBmf~ZgJt4I^GEN-ltvsLs0TP4%Ht| zJO0jv@442NdnD9*3*fX%UU*?FCnuY;lLKNqUJC5}CCZ~PZR z_0KR=zq}0|0k432!Mk1jXQ0x59xC0}9RCF>|9^G-1yp_i8>;_yJ;%oH4^{qgP;$Q* zN)EfA`mGLU!x5`Kkc^g!H-UT)OAA;)d2cX*dFjPN00X46ma^Ww+qw)U%O79)C-pboyQ2l!> zRJn`bD!2@)-dDk|z)wQ;^I$i1gf~E%68sE?aAA+NAG={4|CR7E_*bac6c}{eK1AA71TvH&j1-2`c|bq4IeOD*dx? zKllQazIhp{-07QaKZj89v!LEP6-pnjfXcTQYJ6hnzZj}MS3!-_O;GRM=6Ekux!YX) z!%+S3C{%vWIRDS#Yw^DVr@?9G+3`CZ9*2J>RQj`^%HIf8&mvU$!!GhJAPe5N}eBpO7{h*bYFw&@5iC~ z;rmeadLC*#UV`e+-@^moPH(XNau8JdIZ*MZLe*n6RKIS38n+@;IW?&CO{jXj9V-8K zLG|PNq4K%S`R{{D_b@c|bbK7D{!c<9k5K*o0#rNx0@ZI*-e~hb0IEGlK&3wh9thiE z8(ayc=NeGsawAm!pMt92LvSwqDrD*gzlO?hDU(U%tcI%JW_U1si}Q~{m3JvrzE?u^ z%dJr3dp}e?z6jN?-+>3gUqYqZ`OUVR=}_+<0`=Z}sB$}8_!{^+{Jn5K9EKW)dmJBx zs^23}{rebHxj%r1!r!>?y)Llxot91Y8N#p2%?+9)kZ$sCwT8HLjn4s?UQ^{k0uxe7*~n?ir|h z{|u_1eg{>LSD@1EUabL9EjZp7B1ZTs4hcn@{ z$hLa{)Vw(rE`%kx1bz^zzE4B7_c^Hc{KolTaonS5%ikZWALm1*I|ZuWR={0hH`F+s z4>jIZsPmGuZDDSa52>U`WZY->EK*=K-s2S4mJKG@HqG$sCs@5 z?hYS;nn#bro#8W3{qqwj{qmCYPr1;_&3;hrIuz>tSy1`Scm5?%@2!Mt=Ud=zFoJ4- z1?~yo?&9C;{MS1FEpQLwZ->hN6HxN@S*UUzfm7j=Q29LrRsY{Zjn^)N_PxWP+I=)s zdrpSRXE{{9-LM_L0ct$2f*Rjjp!)F(Q2Biy&Vj#%JHda)y`6_K+|9V16zG2Q;S;#y zaMCsUolE@1@LjmqxU`xVsCBbX1m^cc{+@~3pEL!Rt^wak*v@bR{0L5c@I3AVgblcK zcuk*v8+H(;@!5!DX)?c~`Fj%KYj72w=fFd8pXPZ6?pmI&z`YSS@pltp!vua7cH-WQ z`ylR*ggu3uhdTjxI${3z8J@4ea|}EO(sjX&F7p4tx8u$s4wJ+DHoJE}=lrk7{|TPQ zaR>7J6&J4YT7-W-?i()bEchoJVsCyg@K^KsCfudC1-RFez7yVy+lKoN&i`&FPV#Vu z3mC?)-#2liJWF=B<2K=D;a>@VjQbGoP52MPeV=FjeutAx{v5X};h)6)E6>tr58$TZ z{|%IUPv=>`c`$N|Hh+D+-Qru#kep_+J z5w72rj(73=Z@503e#cq_PdmQbrIYuQxO?#5kPAzAejjdz3)>2>Bi&rMz=dsr@4}rz zcpI+B^PNyS^hDec{x87`;mhz1(Eqe9RB=6oy#nus*Tb3c3-Av({XUj^=hHmz>-_)Z zxB_saQ!Z@2>S59#Pf*r$Bx22 z#J$7$-{RiOMF&d=`v3uZEVbnD=9!dK$H>%xR%U0OZ=4EIqz z@OvlWWjKa=z@@niuEGBx?qr_Nh98FgP`^8H%W=2L!|zJmYV%~*qwn#o^Rb8E$8f87 zHb2Mv9sf+=F1SxP{~>S+?sbH{7x#XiPr%*Ga|5Se6aPW>F<8s9ep(COgWG~T40j6Q zd*BY2!+#$x;<*Ptg46E|{72eH^Y=RZQ+VofVei4e4EGuQS3&(Y!3*KRxP`dY`0s`v zR~XNy;Wpq-#LXt`Ib1jHX#5Al|H94Y`RnkDIQ>q-U4pw^9)8ntA2v_46@H5JH#q;1 zJimqKGJFts8_&n%4&eDL+<)`@Pq?RH!FWf0#7;`l2K$HY=5p_8{yl z#Br?=_C{fUREZiq&QlT8TPm(U5uu?0j>t7{lN0?>dict^)PIbe2RA8JL zbo`7?QJpXl(o42cr%#$tFAf*zb>8TY=(O6%WUu&45uv`QLJEYX8dZCvdNNQRQr7iC zT%ugtoq1natksEcAe>>f5YzKj1WO^3*X49%sa78uTM;FF_41G%vI%kP3RT3x33&Pt z7VEXD_l>z|gxqGBMQkaQD}~;2rQ8@v1DDfTj9^$uD?$Z^YDqcsuaXFdL-n#m(Uv{7 zwh%Xqg}w$|Y}%w2jOA-Lwk|?OTHaY#Yh)Rmqv;gJP4!%w>pAr@BcFP^n?pmDaxT87 zur-a`5a+5WPk2$2;mfye!w{3vwav`da44z`Rj34`j5Jhh8UQ^aD2!u_*!K-YeS_t= z6xNDif3vqzRyU^82FbOZNG8h)eS`clQ`F6tU|FR4FE_H`kdqD{VpK_j&kRtR3Frqu zSUzB+Cvh$BAfQ%b?i7$_+ZpZc?SCJbrHgGsp7U4p-78 zNZAk%^%4tn7c28HsZRF+L%Dz^-L(qMTWzn)zk6CEakj;fiK;Nt%^L zJ{D6W2_p?!60E9e0nzlcPiFb_Rcu>bs}7;}15_&OwE1h6O3ey%Y@_DFtQ?ql(>YG< zt~W)Go$D2yNkEy(jrCUD7|}j?$0isJ6GEF-HKw7BCZnH}M_tv%a)W8J%g+HDVzj+| z>|yd~(M;E^T(B9VoWCAj)ReT!#HzcxkM)cU`I0v=6Z#7yu4eMNc@eCRDntB1SIe?1 z$IOSSRa0T1x7KV-G*#MDg;X$BO=PTtx>S(HIq{}lmZur4A*xlACD$D_8mt6~jhB5O z<<@64v`t!%iqr>7AZZT~Kdit4lgnBmf0uXwmEl%A#>&>#%Vzu3FkIAIUo!Q4S4>)E z6zT9lxo;purUy%Qq*WLCpndA1p(Tsv4K10PRk2u(S6$lwM*{CS;N+?;fk#(*n+e{f-P4KW_ZENY}3Vn_BL9hMYNpKqWtO*-A|+Kwk9|;-cqQPrQ{JeqxgAu zFpB45l3UG}+uztM`^hEk2>Td~ne`?0n4C~#4Ig5rtoQV&0Piu{_$;mGSWoo7nF=kv zW42SVB91fTxT8+!j~eu;>BFoy+JiL(@?N7&fPFM7#00XH@oP~M7#VL3sg+7v{+bOk zvG42e40#9)uv*c+sRHnRqc{`!GMjd7p;0ey?FiNy+un?|dnTc^_r1-MO-y3kj>s9kaw94K5Ttd=+AlBW0kc}$f8|{Dq@No>yBbnf97rWYBw3IWyP#E zt9D_?%;U8qVOPCoOcowZg%4$i8kc!w7`~X-#`Vq zB-$I5wK+lwhsA<_Gig?Mgb7=<&WXd@KGbxY-KeA?Eqq>!C z6KNh3TL%v$!Umv0(7pZ6(=rf#qpoe7b{r5n{ykOjn$ZuXdBwypjp1Sbi3}h@#mP;xh4rFNh-YVK{D_ABL6i^}(TCSiXqGV=x7v2VbK zH`sZ`#j-OfgD#de8R{G=b;)eAfB&Hl?6TU(oFNzs!W}>QcA9$iP2AD5=$gbRadnEy zZ4bKY(Ux+pNyXiR6Q?e7q|)Uq6w|rvxODUxq}zh^*6QdF)<;ElD+5_S=Z+bPtk$+f z4*6w(T?P}-tm!*JQ!4qTxlj)mYN$0vvXu{T|y#? zwMwNntV+wQOIqTzK9H2tiI$@U@*}jOGYswXwFsL(-Xz8hui6FL25bF60<0xSklS5! zb8a}Kf}Lp@bjutxU0}`-t=C(B#urNmnkUz5>4B|PE8T45BudW5LCeTot!=c^9CL9p zhho-Xwg=rZE_+A9b2L^~6|wmEP%pV@fKygJ-kg6H%Ta}~pyv$nJGu8rcRc}VPER2=F+ZzX1@CFzuJY^nQZVSTwhzKP9m@oj+5 zW-LA0GU2Pt>4kYT{a~Kfx9;mrm_LAJgtW@`uahRki}m+|aYK?Ub4Ja}Mg9eMG%BJQovXg!O?5$Wa|;-T)Rhf-~1{ z)QI6rPL2Mz6>t`*$(EUBk4jBN+Qa2K9yZz-WP7FK-l$sUFtiqjvu2()bGEWcBBY(H?A}y! zj{O?t_t!Y5ju29$Fd_Leb~$k&;S7rR{7zd1*gBXQZ1>6L7=;Zo-9r9mQ|wpAXsb>T zv>~t3Gc(M{WZya1NOOE*j=9;s*?f&EGM$z`TW%Sqb%PRn{k)-_Ij z{Px2x9*he^&bt+cN#E^yY7LH&oVjH^cGa@a7~d|5HM}=4X#Sg`(fq~)HS4Q=t#zrD z@7!h}WM_XHVyfNm*PVn|jvzELIxjGWn4Oaow`HU>CxXbOYp*{gBf=bUFZC;s^ZRKU z7gm_%002w`XlE_AL{oBaM)XK*QFC z?JTmh!pcH6VOmo+8w0gEYqXhm9E?eD(t|R)2i1{sfvk1F)l?6nwn|vJ7|QJ?Gyfgd z3@ak5dQJ$_{?jDJ>|mB)3Z^!k)IuRF(wPm3noDKcXiv+KWPJXhNgCE2HqF&(V0~nU z3e?$~4#TBotl#98DxKyKx>Q4`-El{d*)&dg0zdKekxd^z1J0lPJ~n;ulB-QlSRK*M z+#FuG3I!+-rkg%r7wkoMv+-+$7osL0ZO-=32tYzKO+}Eb2rW2~RGyB^%vJlfR z9pS?E`BT^P#jW0GTbq>1{cX#drKGK=))7waI;W@2SSuuKTY;>Qdj9-V+7>KmTX1T) z;N*@I7R;HyVE%j(wykI1qzordx6r23VPad4&WHFCR;zb}%cA(g0-_qOjW}yhVkX=o z9Zn~;V&e>dN}aTGqhra`HGHCNV&S&+LU@<8V?aUgs zfQHFlrK{WYp`#LqG zF@1^DS1L{BeJ_@2V-zKXF~sLOlWCP%Y+s=lSPXbWLmKxM;=z!^fx&ou`%sa0bbqE% zo7Y=!0z%r<1ODj)= z_Gd1;R+Q?Pqwou zO$^$ya)Sj;oyM_2A+BOMYNY?azQTri$N3StOaiciD>mi&AeSlz_}IuXNj>Z@r;U`r zj5dwAP5n;a(JOOpHkAq)PI%i&>#MwLURYahl(<&Xk6;&yjg}()01-GGm6;EzgrTMy zOeED2F|b!wm`%v*FrT6bW+2Fr`P3_q*%!HqVy>)c=51jg(|LGL~HRa)^rL z1!zM}9>%E}bQL9~%Z&UFk+b;{X`-V#XAhwOvz+;{4S zX}Oq=T!~>W_0rxFibHirFq`Has&4>6qf@1J%)(u$Tm8#ywBy{K#Y7sdQB4lIVO2$4 zGu(_3DkPo`4q2m6rVOYwSei{vi~B4!L8Qes<22PSjL^ZkiGOx9$O2s*-<}}hVPSBT z8#!jQt(Kn=tdGjnK{@M&B-Z;7G9J-U>kypKD`MA#mJy(oN@SFz)7Dv{Y~YcYRhYm9 zRtG-t*=2*)nGQj8)LVQDiDD+D?1rADB|ryOEWq4q1B3vhj9{H{u+T+)0@Y(~qlvQW*bBJa)otLy@i3&~o7F3a9? z9g+*$G`>w^&8ZmhZHn_Rb+)ZFSAh(SVn+~?XaH?t)KKWBgcO2SuTJ_cC?JS_Ii6={ z3Hm>)meSd!H(Pnl)u4?vdVo`Jdx2+ET_M|gv_;F=l6N`1%2N$P$ z&nolI+&IzXi3^mK$(Vw&7+)tdLf*5*Ne2BEk8f)*ZzNDw9|ah-?4OM&V~I>E)xqj= zr5JI8fL&JA>@d+h#*#z9{Jo)*a1<}qBkj~^s$p?%NZSL`>E`fvd>bD>jK=KLl?swt z4YC@A=9OT7(-orK)ec?=$L~V0>R3yg`C`6|#g?z`+~ziw>%llK)|@^HYf_1d2))?0 z+q*kUo2Yv1fBxC0CUpDKR$&;mQEr>R?FKZ8VW>2r!(&tinuD+wuoL@q1I;|89aG-=CrtbIS z?~TX-hEX+|%b}*PSel4M&FWOYT?jTYihQz0F7497KAiOky>DfRW0y1m%LCR4cPX4Y zbT2TdD1<^)$FSL3tPNV^Wd6~9w6-h`R=jexO1JAnx;3QjytEf4%Z(~?oHps;CowG` z7i=$08}?Robw3+cv+5xV^md)YFcd8|K|9+570IAeVild-=5_&`lF(7MoNhLYW}DAt z7PFo*ei8ub9|?n7h_g)0*qUyRWo{bDwR)X2XtO3OWh!IdbPVlYp8`-y8{!fTU_Md> zBbRyIUk}Z_9SyblpxS8N+gXWE_jZyb+mnG?b}Hj{HEB_yS7xA9EPQ+$z%oHYR{}r( z(eb>>ZSa9fJBX&BW3>-q#B671YG{{9R1|83OFIHZTWCt|vJSxvll?*i*O)6k($q#b z*G z;h`dfiY(+Gm-e!pBBG2J8^U6dD&S2Tu0?F4S$R12K%JR`HS?UB3syU{h8a0^L0&;n zT|ScP&;Q0uF}oJZ)1JoIl&noocN>2_r|n&U-%KgFqMbQC>Felklbx%)Udbksvz*Z? zLpuCmm%|)2(?8o9n>x9s*%I<%<;%3opLSy7cd?bwJs%3#GjHRsIQtv!6h$I({1HO|J;p8BY+_T)m!$?cGW zv&^QXH_KNaf%x|ym@xSXXT>wik~!x*ED#N6;jdiY#$aK?V7GZdCG{SEO z+qEz^{O1lawd$z^;Shc8^Q zZLq$R)C!ZS0#hQ(P+d8G7mFda4p3%%b)rffJ~{i%)AomE*sE=&?5UY4#T;s29$;>m zIcSbbwMw}oRT&)iAb>`&ESQBY#(r~WE`%5(f_)DHuI-QHJR5l`D@~XMxGO!h*x0`4 zS}AF_lSvPejB)I?09xbR4l_OK?2H?n`Dk0{a<&4fYr8Hy9V2!!I&a`0TD!i9wpbUd zoH-orblatQe$ct^gJrsdU3|Awuvvw@%8i5Z%Oz)4>a);X4`hMb@SC%G_5$XNcCsVv zoI2-xt57WRj|EJpI*-*O-ApX|Z_soeXMDOmLZIw8H=Hsq_#Tmkdy`Nj%82CRs-Y&; z4%#2`ok>hI05^Rozvoj{<3@NAqS3COn5GhkIGZ378llBUdLrGHSD;nY_wuq2pYLny%T%B?%6_D_jt{9l$LB56O_wH{g7 z7aN?Vcw1UGizYL?a!T2C#p>E{PtB_;&v0SjzLsDHd$q#9i?IKk$PegJb4Msu1m!9Q zxo+6|ka(?b3i;Gnlyf<8TgzgIXbhWXU#)) z3=a2>qk8Z7e+%=p6wdSzXLZjiyZ^!ignqH zI(wGpVO6b`2Xj}GwEF4DOquxf{^TD$Kz9si9w(!2VRtu_%n|#{*|us{O6D3pNgtyz z?Lu3SN;Ko9t+e@|uAcTvB^uzL|acV=}KpUy?vZFponlM zzUEM4qG6PM(bByh+fR0%@0S~{YijqP#n@|$ECjV>gx|$z{nmC#pYvRlJAId(^E_QH4I_beFAEY@c;f=efwl4cI-&4DaJ37qq2;p#_ei`nGpM9Nj(3yo% z7zo&=s4mC+FcoY>oWtSO@t6)~68&Ec^tHnuRHD3drUq6O+91$jjw@YX8}g=$YD9i+ z8abmA@ngqEvJRc3+nu2i9ZpFKO}-=cOME6yWZtq9E-TP&C7THq(MCZVT5T$IDD96a z&Cz6*0)f|Nh^d4rW6yc)X_+&7+4+(YlV4Y;=uumQ@19(Ewv}y(G#z2oJ}sAN@0VEh zdhS${oYXZE4SGzf$mroYf=uent`GX?8VZSrAoVqcctyycoJ9?i}oG!L8&y8bNQlLio zb4F+Mxo%EB)1*CzMaC7ZR4}=WHBdKy>?JIGI?%Rd@bQ9ww5z!tn=5Pn9+neO`kQ%d zrh=Q{zN;|^IV0!WsUPh?JHL6(@QJchs3>sX+qi)xnRNHDWahFt@b(&eRo%-PsMq-7 zWaHcbrZ!nPi2l&^53i;+wg?axQ3{%TULBiCGp+QmHnVebH>){FF(39_FHEAMXT`J8 dvpZ0zPGgxy7Pu?TXAxg1v+2=-Vwd|k_, 2007. -# Thomas Bechtold , 2007, 2008. -# Thomas Bechtold , 2008. -# -# -msgid "" -msgstr "" -"Project-Id-Version: 2.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-11-19 17:31+0100\n" -"PO-Revision-Date: 2008-11-19 17:32+0100\n" -"Last-Translator: Benjamin Meichsner \n" -"Language-Team: German \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);" - -#: app/helpers/application_helper.rb:16 -msgid "Previous" -msgstr "Vorige" - -#: app/helpers/application_helper.rb:17 -msgid "Next" -msgstr "Nächste" - -#: app/helpers/application_helper.rb:35 -msgid "Per page: " -msgstr "Pro Seite: " - -#: app/helpers/application_helper.rb:53 -msgid "Sort by this field" -msgstr "Nach diesem Feld sortieren" - -#: app/controllers/articles_controller.rb:323 -msgid " ..in line " -msgstr " ...in Zeile " - -#: app/controllers/articles_controller.rb:327 -msgid " articles are parsed successfully." -msgstr " Artikel wurden erfolgreich eingelesen." - -#: app/controllers/articles_controller.rb:329 -#: app/controllers/suppliers_controller.rb:68 -msgid "An error has occurred: " -msgstr "Ein Fehler ist aufgetreten: " - -#: app/controllers/articles_controller.rb:348 -msgid "The articles are saved successfully" -msgstr "Die Artikel wurden erfolgreich gespeichert" - -#: app/controllers/articles_controller.rb:352 -#: app/controllers/finance_controller.rb:129 -msgid "An error occured: " -msgstr "Ein Fehler ist aufgetreten: " - -#: app/controllers/articles_controller.rb:406 -msgid " ist not assigned to an external database." -msgstr " ist nicht mit einer externen Datenbank verknüpft." - -#: app/controllers/articles_controller.rb:414 -msgid "The database is up to date." -msgstr "Die Datenbank ist aktuell." - -#: app/controllers/index_controller.rb:255 -msgid "The membership was cancelled." -msgstr "Die Mitgliedschaft wurde beendet." - -#: app/controllers/index_controller.rb:257 -msgid "You are not allowed to cancel this membership" -msgstr "Dir ist nicht erlaubt diese Mitgliedschaft zu beenden" - -#: app/controllers/login_controller.rb:17 -msgid "Logged out." -msgstr "Abgemeldet." - -#: app/controllers/login_controller.rb:23 -msgid "" -"You are not authorized to do this. Please log in as another user or go back." -msgstr "" -"Du bist nicht ausreichend berechtigt. Bitte mit ausreichenden Rechten " -"anmelden oder zurück gehen." - -#: app/controllers/login_controller.rb:42 -msgid "Sorry, login is not possible." -msgstr "Sorry, Anmeldung nicht möglich." - -#: app/controllers/login_controller.rb:60 -msgid "" -"If your email address is listed in our system, you will now receive an email " -"with the instructions how to change your password." -msgstr "" -"Wenn Deine Email-Adresse in der FoodSoft registriert ist, bekommt du jetzt " -"eine Email mit den Anweisungen für ein neues Passwort." - -#: app/controllers/login_controller.rb:69 -#: app/controllers/login_controller.rb:79 -msgid "Invalid or expired token, password cannot be changed." -msgstr "" -"Ungültiger oder abgelaufender Token, Passwort kann nicht geändert werden." - -#: app/controllers/login_controller.rb:87 -msgid "New password has been saved, please log in." -msgstr "Neues Passwort wurde gespeichert, bitte anmelden." - -#: app/controllers/login_controller.rb:91 -msgid "" -"When trying to save your new password an error has occured. Please try again." -msgstr "" -"Während des Speicherns ist ein Fehler aufgetreten. Bitte nochmal versuchen." - -#: app/controllers/login_controller.rb:105 -msgid "Your invitation is invalid or has expired, sorry!" -msgstr "Deine Einladung ist abgelaufen oder ungültig, sorry!" - -#: app/controllers/login_controller.rb:108 -msgid "The group you are invited to join doesn't exist any more!" -msgstr "Die Gruppe, in die Du eingeladen wurdest, existiert nicht mehr!" - -#: app/controllers/login_controller.rb:121 -msgid "" -"Congratulations, your account has been created successfully. You can log in " -"now." -msgstr "" -"Herzlichen Glückwunsch, Dein Benutzerkonto wurde erfolgreich erstellt. Du " -"kannst Dich jetzt anmelden." - -#: app/controllers/login_controller.rb:129 -msgid "An error has occured. Please try again." -msgstr "Ein Fehler ist aufgetreten. Bitte erneut anmelden." - -#: app/controllers/orders_controller.rb:71 -msgid "The order has been created successfully." -msgstr "Die Bestellung wurde erfolgreich angelegt." - -#: app/controllers/orders_controller.rb:88 -msgid "The order has been updated." -msgstr "Die Bestellung wurde aktualisiert." - -#: app/controllers/orders_controller.rb:106 -msgid "The order has been finished successfully." -msgstr "Die Bestellung wurde erfolgreich beendet." - -#: app/controllers/orders_controller.rb:137 -msgid "Order for" -msgstr "Bestellung für" - -#: app/controllers/orders_controller.rb:138 -msgid "Customer number" -msgstr "Kundennummer" - -#: app/controllers/orders_controller.rb:139 -msgid "Delivery date" -msgstr "Lieferdatum" - -#: app/controllers/orders_controller.rb:141 -msgid "Shipping address" -msgstr "Lieferadresse" - -#: app/controllers/orders_controller.rb:143 app/views/ordering/order.rhtml:64 -#: app/views/shared/_nav.haml:32 app/views/orders/show.haml:73 -#: app/views/orders/_form.html.haml:28 -msgid "Articles" -msgstr "Artikel" - -#: app/controllers/orders_controller.rb:144 -#: app/views/articles/upload_articles.haml:15 -#: app/views/articles/parse_articles.haml:11 -msgid "Number" -msgstr "Nummer" - -#: app/controllers/orders_controller.rb:144 app/views/ordering/order.rhtml:76 -msgid "Quantity" -msgstr "Menge" - -#: app/controllers/orders_controller.rb:144 app/views/ordering/order.rhtml:70 -#: app/views/ordering/_finishedOrders.haml:4 -#: app/views/ordering/my_order_result.haml:18 -#: app/views/ordering/_bookedOrders.haml:6 -#: app/views/ordering/_finished_order_result.haml:4 -#: app/views/ordering/_currentOrders.haml:10 -#: app/views/articles/upload_articles.haml:15 app/views/articles/_list.haml:19 -#: app/views/articles/parse_articles.haml:12 app/views/tasks/show.haml:7 -#: app/views/orders/show.haml:18 app/views/orders/index.haml:20 -#: app/views/orders/_show_unfinished.haml:3 app/views/orders/_list.haml:5 -#: app/views/orders/_form.html.haml:11 app/views/orders/_form.html.haml:41 -#: app/views/finance/_listOrdergroups.haml:15 -msgid "Name" -msgstr "Name" - -#: app/controllers/orders_controller.rb:178 -#: app/controllers/ordering_controller.rb:204 -msgid "Comment has been created." -msgstr "Kommentar wurde erstellt." - -#: app/controllers/orders_controller.rb:181 -#: app/controllers/ordering_controller.rb:207 -msgid "The comment has not been saved. Check the title and try again." -msgstr "" -"Der Kommentar konnte nicht gespeichert werden. Überprüfe den Titel und " -"versuche es nochmal." - -#: app/controllers/finance_controller.rb:119 -msgid "Note is required!" -msgstr "Notiz wird benötigt!" - -#: app/controllers/finance_controller.rb:126 -msgid "Saved all transactions successfully" -msgstr "Die Transaktionen wurden erfolgreich gespeichert" - -#: app/controllers/application.rb:33 -msgid "An error has occurred. Please login again." -msgstr "Ein Fehler ist aufgetreten. Bitte erneut anmelden." - -#: app/models/invite.rb:- -msgid "invite" -msgstr "Einladung" - -#: app/models/invite.rb:- -msgid "Invite|Token" -msgstr "Schlüssel" - -#: app/models/invite.rb:- -msgid "Invite|Expires at" -msgstr "läuft ab am" - -#: app/models/invite.rb:- -msgid "Invite|Group" -msgstr "Gruppe" - -#: app/models/invite.rb:- -msgid "Invite|User" -msgstr "Benutzerin" - -#: app/models/invite.rb:- -msgid "Invite|Email" -msgstr "E-Mail" - -#: app/models/article.rb:- -msgid "article" -msgstr "Artikel" - -#: app/models/article.rb:- -msgid "Article|Name" -msgstr "Name" - -#: app/models/article.rb:- -msgid "Article|Supplier" -msgstr "Lieferantin" - -#: app/models/article.rb:- -msgid "Article|Article category" -msgstr "Artikelkategorie" - -#: app/models/article.rb:- -msgid "Article|Unit" -msgstr "Einheit" - -#: app/models/article.rb:- -msgid "Article|Note" -msgstr "Notiz" - -#: app/models/article.rb:- -msgid "Article|Availability" -msgstr "Verfügbarkeit" - -#: app/models/article.rb:- -msgid "Article|Manufacturer" -msgstr "Herstellerin" - -#: app/models/article.rb:- -msgid "Article|Origin" -msgstr "Herkunft" - -#: app/models/article.rb:- -msgid "Article|Shared updated on" -msgstr "" - -#: app/models/article.rb:- -msgid "Article|Net price" -msgstr "Nettopreis" - -#: app/models/article.rb:- -msgid "Article|Gross price" -msgstr "Bruttopreis" - -#: app/models/article.rb:- -msgid "Article|Tax" -msgstr "Steuer" - -#: app/models/article.rb:- -msgid "Article|Deposit" -msgstr "Pfand" - -#: app/models/article.rb:- -msgid "Article|Unit quantity" -msgstr "Gebindegröße" - -#: app/models/article.rb:- -msgid "Article|Order number" -msgstr "Bestellnummer" - -#: app/models/article.rb:- -msgid "Article|Created at" -msgstr "erstellt am" - -#: app/models/article.rb:- -msgid "Article|Updated at" -msgstr "aktualisiert am" - -#: app/models/article.rb:95 -msgid " cannot be deleted. The article is used in a current order!" -msgstr "" -" kann nicht gelöscht werden. Der Artikel wird in einer laufenden Bestellung " -"benutzt." - -#: app/models/article_category.rb:- -msgid "article category" -msgstr "Artikelkategorie" - -#: app/models/article_category.rb:- -msgid "ArticleCategory|Name" -msgstr "Name" - -#: app/models/article_category.rb:- -msgid "ArticleCategory|Description" -msgstr "Beschreibung" - -#: app/models/user.rb:36 -msgid "Get message with order result" -msgstr "Bekomme Nachricht mit Bestellergebnis" - -#: app/models/user.rb:37 -msgid "Get message if negative account balance" -msgstr "Bekomme Nachricht bei negativem Kontostand" - -#: app/models/user.rb:38 -msgid "Get messages as emails" -msgstr "Nachrichten als E-Mails empfangen" - -#: app/models/user.rb:39 -msgid "Phone is visible for foodcoop members" -msgstr "Telefonnummer einsehbar für Mitgliederinnen" - -#: app/models/user.rb:40 -msgid "Email is visible for foodcoop members" -msgstr "E-Mail ist einsehbar für Mitgliederinnen" - -#: app/models/user.rb:41 -msgid "Name is visible for foodcoop members" -msgstr "Name ist einsehbar für Mitgliederinnen" - -#: app/models/user.rb:72 -msgid "Password is required" -msgstr "Passwort wird benötigt" - -#: app/models/user.rb:75 -msgid "Passwords doesn't match" -msgstr "Passwörter stimmen nicht überein" - -#: app/models/user.rb:77 -msgid "Password-length has to be between 5 and 25 characters" -msgstr "Passwort muss zwischen 5 und 25 Zeichen haben" - -#: app/models/supplier.rb:- -msgid "supplier" -msgstr "Lieferantin" - -#: app/models/supplier.rb:- -msgid "Supplier|Name" -msgstr "Name" - -#: app/models/supplier.rb:- -msgid "Supplier|Address" -msgstr "Adresse" - -#: app/models/supplier.rb:- -msgid "Supplier|Phone" -msgstr "Telefon" - -#: app/models/supplier.rb:- -msgid "Supplier|Phone2" -msgstr "Telefon 2" - -#: app/models/supplier.rb:- -msgid "Supplier|Fax" -msgstr "Fax" - -#: app/models/supplier.rb:- -msgid "Supplier|Email" -msgstr "E-Mail" - -#: app/models/supplier.rb:- -msgid "Supplier|Url" -msgstr "Hompage" - -#: app/models/supplier.rb:- -msgid "Supplier|Contact person" -msgstr "Kontaktperson" - -#: app/models/supplier.rb:- -msgid "Supplier|Customer number" -msgstr "Kundennummer" - -#: app/models/supplier.rb:- -msgid "Supplier|Delivery days" -msgstr "Liefertage" - -#: app/models/supplier.rb:- -msgid "Supplier|Order howto" -msgstr "BestellHowTo" - -#: app/models/supplier.rb:- -msgid "Supplier|Note" -msgstr "Notiz" - -#: app/models/supplier.rb:- -msgid "Supplier|Shared supplier" -msgstr "externer Lieferant" - -#: app/models/supplier.rb:- -msgid "Supplier|Min order quantity" -msgstr "Mindestbestellmenge" - -#: app/models/order.rb:- -msgid "order" -msgstr "Bestellung" - -#: app/models/order.rb:- -msgid "Order|Name" -msgstr "Name" - -#: app/models/order.rb:- -msgid "Order|Supplier" -msgstr "Lieferantin" - -#: app/models/order.rb:- -msgid "Order|Starts" -msgstr "Start" - -#: app/models/order.rb:- -msgid "Order|Ends" -msgstr "Ende" - -#: app/models/order.rb:- -msgid "Order|Note" -msgstr "Notiz" - -#: app/models/order.rb:- -msgid "Order|Finished" -msgstr "beendet" - -#: app/models/order.rb:- -msgid "Order|Booked" -msgstr "verbucht" - -#: app/models/order.rb:- -msgid "Order|Lock version" -msgstr "" - -#: app/models/order.rb:- -msgid "Order|Updated by user" -msgstr "" - -#: app/models/order.rb:- -msgid "Order|Invoice amount" -msgstr "Rechnungsbetrag" - -#: app/models/order.rb:- -msgid "Order|Deposit" -msgstr "Pfand" - -#: app/models/order.rb:- -msgid "Order|Deposit credit" -msgstr "Pfandguthaben" - -#: app/models/order.rb:- -msgid "Order|Invoice number" -msgstr "Rechnungsnummer" - -#: app/models/order.rb:- -msgid "Order|Invoice date" -msgstr "Rechnungsdatum" - -#: app/models/order.rb:271 -msgid "running" -msgstr "laufend" - -#: app/models/order.rb:273 app/views/orders/_list.haml:20 -msgid "expired" -msgstr "abgelaufen" - -#: app/models/order.rb:275 -msgid "finished" -msgstr "beendet" - -#: app/models/order.rb:277 app/views/ordering/myOrders.haml:24 -msgid "balanced" -msgstr "abgerechnet" - -#: app/models/order.rb:288 -msgid "There must be at least one article selected" -msgstr "Es muss mindestens ein Artikel ausgewählt werden." - -#: app/models/financial_transaction.rb:- -msgid "financial transaction" -msgstr "Überweisung" - -#: app/models/financial_transaction.rb:- -msgid "FinancialTransaction|Order group" -msgstr "Bestellgruppe" - -#: app/models/financial_transaction.rb:- -msgid "FinancialTransaction|Amount" -msgstr "Betrag" - -#: app/models/financial_transaction.rb:- -msgid "FinancialTransaction|Note" -msgstr "Notiz" - -#: app/models/financial_transaction.rb:- -msgid "FinancialTransaction|User" -msgstr "Benutzerin" - -#: app/models/financial_transaction.rb:- -msgid "FinancialTransaction|Created on" -msgstr "Erstellt am" - -#: app/models/message.rb:- -msgid "message" -msgstr "Nachricht" - -#: app/models/message.rb:- -msgid "Message|Sender" -msgstr "Absender" - -#: app/models/message.rb:- -msgid "Message|Recipient" -msgstr "Empfänger" - -#: app/models/message.rb:- -msgid "Message|Recipients" -msgstr "Empfänger" - -#: app/models/message.rb:- -msgid "Message|Subject" -msgstr "Betreff" - -#: app/models/message.rb:- -msgid "Message|Body" -msgstr "Nachrichtentext" - -#: app/models/message.rb:- -msgid "Message|Read" -msgstr "gelesen" - -#: app/models/message.rb:- -msgid "Message|Email state" -msgstr "E-Mail Status" - -#: app/models/message.rb:- -msgid "Message|Created on" -msgstr "Erstellt am" - -#: app/models/order_article_result.rb:- -msgid "order article result" -msgstr "BestellArtikelErgebnis" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Order" -msgstr "Bestellung" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Name" -msgstr "Name" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Unit" -msgstr "Einheit" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Note" -msgstr "Notiz" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Net price" -msgstr "Netto Preis" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Gross price" -msgstr "Brutto Preis" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Tax" -msgstr "Steuer" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Deposit" -msgstr "Pfand" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Fc markup" -msgstr "FC-Aufschlag" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Order number" -msgstr "Bestellnummer" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Unit quantity" -msgstr "Gebindegröße" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Units to order" -msgstr "Einheiten zu Bestellen" - -#: app/models/group.rb:- -msgid "group" -msgstr "Gruppe" - -#: app/models/group.rb:- -msgid "Group|Type" -msgstr "Typ" - -#: app/models/group.rb:- -msgid "Group|Name" -msgstr "Name" - -#: app/models/group.rb:- -msgid "Group|Description" -msgstr "Beschreibung" - -#: app/models/group.rb:- -msgid "Group|Actual size" -msgstr "aktuelle Gruppengröße" - -#: app/models/group.rb:- -msgid "Group|Account balance" -msgstr "Kontostand" - -#: app/models/group.rb:- -msgid "Group|Account updated" -msgstr "Konte akutalisiert" - -#: app/models/group.rb:- -msgid "Group|Created on" -msgstr "Erstellt am" - -#: app/models/group.rb:- -msgid "Group|Role admin" -msgstr "" - -#: app/models/group.rb:- -msgid "Group|Role suppliers" -msgstr "" - -#: app/models/group.rb:- -msgid "Group|Role article meta" -msgstr "" - -#: app/models/group.rb:- -msgid "Group|Role finance" -msgstr "" - -#: app/models/group.rb:- -msgid "Group|Role orders" -msgstr "" - -#: app/models/group.rb:- -msgid "Group|Weekly task" -msgstr "Wöchentliche Aufgabe" - -#: app/models/group.rb:- -msgid "Group|Weekday" -msgstr "Wochentag" - -#: app/models/group.rb:- -msgid "Group|Task name" -msgstr "Aufgabenname" - -#: app/models/group.rb:- -msgid "Group|Task description" -msgstr "Aufgabenbeschreibung" - -#: app/models/group.rb:- -msgid "Group|Task required users" -msgstr "Aufgabenvorlage: Benötigte Benutzer" - -#: app/models/task.rb:- -msgid "task" -msgstr "Aufgabe" - -#: app/models/task.rb:- -msgid "Task|Name" -msgstr "Name" - -#: app/models/task.rb:- -msgid "Task|Description" -msgstr "Beschreibung" - -#: app/models/task.rb:- -msgid "Task|Due date" -msgstr "Fälligkeitsdatum" - -#: app/models/task.rb:- -msgid "Task|Done" -msgstr "Erledigt" - -#: app/models/task.rb:- -msgid "Task|Group" -msgstr "Gruppe" - -#: app/models/task.rb:- -msgid "Task|Assigned" -msgstr "zugeordnet" - -#: app/models/task.rb:- -msgid "Task|Created on" -msgstr "Erstellt am" - -#: app/models/task.rb:- -msgid "Task|Updated on" -msgstr "aktualisiert am" - -#: app/models/task.rb:- -msgid "Task|Required users" -msgstr "Benötigte Benutzerinnen" - -#: app/models/group_order_article_result.rb:- -msgid "group order article result" -msgstr "Gruppenbestellergebnis" - -#: app/models/group_order_article_result.rb:- -msgid "GroupOrderArticleResult|Order article result" -msgstr "" - -#: app/models/group_order_article_result.rb:- -msgid "GroupOrderArticleResult|Group order result" -msgstr "" - -#: app/models/group_order_article_result.rb:- -msgid "GroupOrderArticleResult|Quantity" -msgstr "Menge" - -#: app/models/group_order_article_result.rb:- -msgid "GroupOrderArticleResult|Tolerance" -msgstr "" - -#: app/views/login/forgot_password.rhtml:1 -msgid "Forgot password?" -msgstr "Passwort vergessen?" - -#: app/views/login/forgot_password.rhtml:4 -msgid "No problem: You can enter a new password here." -msgstr "Kein Problem: Du kannst hier ein neues Passwort eingeben." - -#: app/views/login/forgot_password.rhtml:5 -msgid "" -"Just enter your email address. Then you'll receive an email with the " -"detailed instructions." -msgstr "" -"Einfach Deine Email-Adresse eingeben. Du bekommst dann eine Mail mit den " -"genauen Anweisungen." - -#: app/views/login/forgot_password.rhtml:10 -msgid "Reset your password" -msgstr "Passwort zurücksetzen" - -#: app/views/login/forgot_password.rhtml:10 app/views/articles/list.haml:67 -#: app/views/articles/parse_articles.haml:39 -msgid "Back" -msgstr "Zurück" - -#: app/views/ordering/order.rhtml:9 app/views/ordering/_finishedOrders.haml:5 -#: app/views/ordering/my_order_result.haml:21 -#: app/views/ordering/_bookedOrders.haml:7 -#: app/views/ordering/_currentOrders.haml:11 app/views/orders/show.haml:21 -#: app/views/orders/index.haml:21 app/views/orders/_list.haml:7 -#: app/views/orders/_form.html.haml:9 -msgid "Supplier" -msgstr "Lieferant" - -#: app/views/ordering/order.rhtml:10 app/views/ordering/_finishedOrders.haml:6 -#: app/views/ordering/my_order_result.haml:28 -#: app/views/ordering/_bookedOrders.haml:8 -#: app/views/ordering/_currentOrders.haml:12 app/views/orders/show.haml:31 -#: app/views/orders/index.haml:22 app/views/orders/_list.haml:10 -#: app/views/orders/_form.html.haml:23 -msgid "End" -msgstr "Ende" - -#: app/views/ordering/order.rhtml:12 -msgid "person ordered at last" -msgstr "Zuletzt bestellt" - -#: app/views/ordering/order.rhtml:14 app/views/ordering/order.rhtml:146 -msgid "Credit available" -msgstr "Verfügbares Guthaben" - -#: app/views/ordering/order.rhtml:19 -#: app/views/ordering/my_order_result.haml:25 -#: app/views/articles/upload_articles.haml:15 app/views/articles/_list.haml:26 -#: app/views/articles/parse_articles.haml:13 app/views/orders/show.haml:25 -#: app/views/orders/_form.html.haml:15 app/views/orders/_form.html.haml:42 -#: app/views/index/index.haml:61 app/views/finance/new_transactions.haml:5 -msgid "Note" -msgstr "Notiz" - -#: app/views/ordering/order.rhtml:25 -msgid "Minimum order quantity" -msgstr "Mindestbestellmenge" - -#: app/views/ordering/order.rhtml:30 -msgid "Order quanitity so far" -msgstr "Bisherige Gesamtbestellmenge" - -#: app/views/ordering/order.rhtml:42 -msgid "Other orders" -msgstr "Andere Bestellungen" - -#: app/views/ordering/order.rhtml:72 -#: app/views/articles/upload_articles.haml:15 -#: app/views/articles/parse_articles.haml:14 -#: app/views/orders/_form.html.haml:44 -msgid "Manufacturer" -msgstr "Herstellerin" - -#: app/views/ordering/order.rhtml:73 -msgid "Package" -msgstr "Gebinde" - -#: app/views/ordering/order.rhtml:74 app/views/articles/_list.haml:28 -#: app/views/orders/_show_unfinished.haml:5 -#: app/views/orders/_form.html.haml:46 -msgid "Price" -msgstr "Preis" - -#: app/views/ordering/order.rhtml:75 -msgid "totally ordered packages" -msgstr "Insgesamt bestellte Gebinde" - -#: app/views/ordering/order.rhtml:75 -msgid "Ord." -msgstr "Best." - -#: app/views/ordering/order.rhtml:77 -msgid "Tolerance" -msgstr "Toleranz" - -#: app/views/ordering/order.rhtml:78 app/views/index/index.haml:62 -#: app/views/finance/new_transactions.haml:11 -msgid "Amount" -msgstr "Betrag" - -#: app/views/ordering/order.rhtml:100 -msgid "Show note" -msgstr "Zeige Notiz" - -#: app/views/ordering/order.rhtml:142 -msgid "Total amount" -msgstr "Gesamtbetrag" - -#: app/views/ordering/order.rhtml:150 -msgid "New account balance" -msgstr "Neuer Kontostand" - -#: app/views/ordering/order.rhtml:155 -msgid "Save order" -msgstr "Bestellung speichern" - -#: app/views/ordering/order.rhtml:155 app/views/tasks/edit.haml:8 -#: app/views/orders/edit.html.haml:7 app/views/orders/new.html.haml:7 -#: app/views/finance/new_transactions.haml:20 -msgid "Cancel" -msgstr "Abbrechen" - -#: app/views/index/myProfile.rhtml:1 -msgid "edit my profile" -msgstr "Mein Profil" - -#: app/views/index/myProfile.rhtml:2 -msgid "" -"Here you can change your preferences. For example you can change your phone " -"number or your password.\n" -"
\n" -"You can also see in which workgroups you are.\n" -"

\n" -msgstr "" -"Hier kannst du deine persönlichen Einstellungen ändern. Zum Beispiel deine " -"Telefonnummer oder dein Passwort.
\n" -"Außerdem siehst du, bei welchen Arbeitsgruppen du Mitglied bist.

\n" - -#: app/views/index/myProfile.rhtml:25 -msgid "Cancel membership" -msgstr "Mitgliedschaft beenden" - -#: app/views/index/myProfile.rhtml:25 -msgid "Are you sure to cancel this membership?" -msgstr "Bist Du wirklich sicher die Mitgliedschaft zu beenden?" - -#: app/views/shared/_loginInfo.haml:3 app/views/shared/_nav.haml:51 -msgid "User" -msgstr "Benutzerinnen" - -#: app/views/shared/_loginInfo.haml:4 -msgid "User Settings" -msgstr "Persönliche Einstellungen" - -#: app/views/shared/_loginInfo.haml:6 -msgid "Go to your FoodCoop-Hompage" -msgstr "Gehe zur Deiner FoodCoop-Hompage" - -#: app/views/shared/_loginInfo.haml:7 -msgid "Help" -msgstr "Hilfe" - -#: app/views/shared/_loginInfo.haml:8 -msgid "Logout" -msgstr "Abmelden" - -#: app/views/shared/_nav.haml:4 -msgid "Startpage" -msgstr "Startseite" - -#: app/views/shared/_nav.haml:4 -msgid "The Startpage. A good Startpoint." -msgstr "Die Startseite. Ein guter Ausgabspunkt zum Entdecken der Foodsoft." - -#: app/views/shared/_nav.haml:6 app/views/index/_showGroup.haml:20 -msgid "Members" -msgstr "Mitglieder" - -#: app/views/shared/_nav.haml:6 -msgid "Here you find a List with all Foodcoop members." -msgstr "Eine Liste mit allen Foodcoop Mitgliedern" - -#: app/views/shared/_nav.haml:7 -msgid "Workgroups" -msgstr "Arbeitsgruppen" - -#: app/views/shared/_nav.haml:7 -msgid "" -"Here you find all Workgroups. For Example the sortinggroup with all their " -"members." -msgstr "" -"Eine Liste mit allen Arbeitsgruppen. Z.B. Sortiergruppe, Palettengruppe,..." - -#: app/views/shared/_nav.haml:8 app/views/index/index.haml:9 -msgid "Tasks" -msgstr "Aufgaben" - -#: app/views/shared/_nav.haml:8 -msgid "Here you see the tasks. Please do something for the foodcoop!" -msgstr "" -"Hier gehts zu den Aufgaben. Bitte hilf mit, damit alle Aufgaben erledigt " -"werden." - -#: app/views/shared/_nav.haml:10 -msgid "Messages" -msgstr "Nachrichten" - -#: app/views/shared/_nav.haml:12 app/views/index/index.haml:46 -msgid "My ordergroup" -msgstr "Meine Bestellgruppe" - -#: app/views/shared/_nav.haml:12 -msgid "" -"Here are informations about your ordergroup. You can also see your accounts " -"current" -msgstr "Informationen über deine Bestellgruppe sowie den aktuellen Kontostand." - -#: app/views/shared/_nav.haml:13 -msgid "My Profile" -msgstr "Mein Profil" - -#: app/views/shared/_nav.haml:13 -msgid "Here are your personal Settings" -msgstr "Deine persönlichen Einstellungen" - -#: app/views/shared/_nav.haml:21 app/views/index/_start_nav.haml:15 -msgid "Orders" -msgstr "Bestellungen" - -#: app/views/shared/_nav.haml:24 app/views/orders/_form.html.haml:5 -msgid "Order" -msgstr "Bestellen" - -#: app/views/shared/_nav.haml:25 -msgid "My orders" -msgstr "Meine Bestellungen" - -#: app/views/shared/_nav.haml:27 app/views/orders/index.haml:1 -msgid "Manage orders" -msgstr "Gesamtbestellungen verwalten" - -#: app/views/shared/_nav.haml:34 -msgid "Show articles" -msgstr "Artikel anzeigen" - -#: app/views/shared/_nav.haml:35 -msgid "Categories" -msgstr "Kategorien" - -#: app/views/shared/_nav.haml:36 app/views/index/_start_nav.haml:27 -msgid "Suppliers" -msgstr "Lieferanten" - -#: app/views/shared/_nav.haml:41 -msgid "Finance" -msgstr "Finanzen" - -#: app/views/shared/_nav.haml:43 app/views/finance/listOrdergroups.haml:8 -msgid "Ordergroups" -msgstr "Bestellgruppen" - -#: app/views/shared/_nav.haml:44 -msgid "Balance orders" -msgstr "Bestellungen abrechnen" - -#: app/views/shared/_nav.haml:49 app/views/index/_start_nav.haml:40 -msgid "Administration" -msgstr "Administration" - -#: app/views/shared/_nav.haml:52 app/views/admin/listGroups.haml:1 -msgid "Groups" -msgstr "Gruppen" - -#: app/views/login/invite.haml:1 -msgid "Invitation" -msgstr "Einladung" - -#: app/views/login/invite.haml:3 -msgid "You are invited to join:" -msgstr "Du bist eingeladen Mitglied einer Bestellgruppe zu werden:" - -#: app/views/login/invite.haml:5 -msgid "" -"If you accept the invitation and want to join the foodcoop please fill out " -"the form." -msgstr "" -"Wenn Du die Einladung annimmst und bei der Foodcoop mitmachen willst, dann " -"fülle bitte das folgende Formular aus." - -#: app/views/login/invite.haml:12 -msgid "Nickname (for log in)" -msgstr "Nickname (für den Login)" - -#: app/views/login/invite.haml:16 app/views/admin/_listUsers.haml:13 -msgid "First name" -msgstr "Vorname" - -#: app/views/login/invite.haml:20 app/views/admin/_listUsers.haml:14 -msgid "Last name" -msgstr "Nachname" - -#: app/views/login/invite.haml:24 -msgid "Phone" -msgstr "Telefon" - -#: app/views/login/invite.haml:28 -msgid "Address" -msgstr "Adresse" - -#: app/views/login/invite.haml:32 app/views/login/login.haml:13 -msgid "Password" -msgstr "Passwort" - -#: app/views/login/invite.haml:36 -msgid "Passwort confirmation" -msgstr "Passwort Bestätigung" - -#: app/views/login/invite.haml:40 -msgid "Settings" -msgstr "Einstellungen" - -#: app/views/login/invite.haml:46 -msgid "Send" -msgstr "Senden" - -#: app/views/login/login.haml:1 -msgid "Login" -msgstr "Anmeldung" - -#: app/views/login/login.haml:9 app/views/admin/_listUsers.haml:12 -msgid "Username" -msgstr "Benutzername" - -#: app/views/login/login.haml:16 -msgid "Login!" -msgstr "Anmeldung!" - -#: app/views/login/login.haml:18 -msgid "Forgot Password?" -msgstr "Passwort vergessen?" - -#: app/views/login/login.haml:21 -msgid "Cookies must be accepted!" -msgstr "Kekse müssen akzeptiert werden!" - -#: app/views/ordering/_finishedOrders.haml:7 -#: app/views/ordering/_bookedOrders.haml:9 -#: app/views/ordering/_finished_order_result.haml:32 -#: app/views/ordering/_currentOrders.haml:14 -msgid "Sum" -msgstr "Summe" - -#: app/views/ordering/_finishedOrders.haml:13 -#: app/views/ordering/_finishedOrders.haml:21 -#: app/views/ordering/_finishedOrders.haml:27 -#: app/views/ordering/my_order_result.haml:22 -#: app/views/ordering/_bookedOrders.haml:15 -#: app/views/ordering/_bookedOrders.haml:23 -#: app/views/ordering/_bookedOrders.haml:29 app/views/orders/show.haml:22 -#: app/views/orders/_list.haml:17 app/views/finance/listOrders.haml:27 -#: app/views/finance/_summary.haml:2 -msgid "nonexistent" -msgstr "nicht vorhanden" - -#: app/views/ordering/index.haml:1 -msgid "Order Overview" -msgstr "Bestellübersicht" - -#: app/views/ordering/index.haml:10 app/views/finance/_listOrdergroups.haml:17 -msgid "Account balance" -msgstr "Kontostand" - -#: app/views/ordering/index.haml:13 -msgid "Current orders" -msgstr "Laufende Bestellungen" - -#: app/views/ordering/index.haml:16 -msgid "Unrecorded orders" -msgstr "Unverbuchte Bestellungen" - -#: app/views/ordering/index.haml:19 -msgid "Available" -msgstr "Verfügbar" - -#: app/views/ordering/index.haml:29 -msgid "unrecorded orders" -msgstr "Unverbuchte Bestellungen" - -#: app/views/ordering/index.haml:34 -msgid "total order value" -msgstr "Gesamtbestellwert" - -#: app/views/ordering/index.haml:41 -msgid "balanced orders" -msgstr "Abgerechnete Bestellungen" - -#: app/views/ordering/index.haml:45 -msgid "more..." -msgstr "mehr..." - -#: app/views/ordering/my_order_result.haml:1 -msgid "Your result for" -msgstr "Dein Ergebnis für" - -#: app/views/ordering/my_order_result.haml:3 app/views/orders/show.haml:3 -msgid "Previous order" -msgstr "Vorige Bestellung" - -#: app/views/ordering/my_order_result.haml:5 -#: app/views/ordering/myOrders.haml:7 app/views/orders/show.haml:5 -msgid "Overview" -msgstr "Übersicht" - -#: app/views/ordering/my_order_result.haml:7 app/views/orders/show.haml:7 -msgid "Next order" -msgstr "Nächste Bestellung" - -#: app/views/ordering/my_order_result.haml:12 app/views/orders/show.haml:12 -msgid "Summary" -msgstr "Zusammenfassung" - -#: app/views/ordering/my_order_result.haml:31 -msgid "Order value" -msgstr "Bestellwert" - -#: app/views/ordering/my_order_result.haml:38 -msgid "Cleared by" -msgstr "Abgerechnet durch" - -#: app/views/ordering/my_order_result.haml:38 app/views/orders/show.haml:16 -msgid "Order isn't balanced yet" -msgstr "Bestellung ist noch nicht abgerechnet" - -#: app/views/ordering/my_order_result.haml:39 -msgid "read/add comments" -msgstr "lese/schreibe Kommentare" - -#: app/views/ordering/my_order_result.haml:44 -#: app/views/ordering/_currentOrders.haml:4 app/views/orders/index.haml:14 -msgid "Running orders" -msgstr "Laufende Bestellungen" - -#: app/views/ordering/my_order_result.haml:55 -msgid "Overview of articles" -msgstr "Artikelübersicht" - -#: app/views/ordering/my_order_result.haml:62 -msgid "You haven't ordered" -msgstr "Du hast nicht bestellt." - -#: app/views/ordering/my_order_result.haml:71 -msgid "You haven't ordered yet." -msgstr "Du hast noch nicht bestellt." - -#: app/views/ordering/my_order_result.haml:72 -msgid "Order now" -msgstr "Jetzt bestellen" - -#: app/views/ordering/my_order_result.haml:78 app/views/orders/show.haml:84 -msgid "Comments" -msgstr "Kommentare" - -#: app/views/ordering/my_order_result.haml:85 -msgid "New comment" -msgstr "Neuer Kommentar" - -#: app/views/ordering/_finished_order_result.haml:5 -#: app/views/articles/upload_articles.haml:15 -#: app/views/articles/parse_articles.haml:20 -#: app/views/orders/_show_unfinished.haml:4 -#: app/views/orders/_form.html.haml:45 -msgid "Unit quantity" -msgstr "Gebindegröße" - -#: app/views/ordering/_finished_order_result.haml:6 -msgid "Unit price" -msgstr "Einzelpreis" - -#: app/views/ordering/_finished_order_result.haml:7 -msgid "Received" -msgstr "Bekommen" - -#: app/views/ordering/_finished_order_result.haml:8 -#: app/views/orders/show.haml:41 -msgid "Total price" -msgstr "Gesamtpreis" - -#: app/views/ordering/myOrders.haml:2 -msgid "Orders of" -msgstr "Bestellungen von" - -#: app/views/ordering/myOrders.haml:6 -msgid "See current orders in" -msgstr "Laufende Bestellungen findest Du in der" - -#: app/views/ordering/myOrders.haml:9 -msgid "Also show orders, your ordergroup haven't participated:" -msgstr "" -"Zeige auch Bestellungen, bei denen Deine Bestellgruppe nicht bestellt hat." - -#: app/views/ordering/myOrders.haml:18 -msgid "finished/not balanced" -msgstr "beendet/nicht abgerechnet" - -#: app/views/ordering/_currentOrders.haml:13 -msgid "Who ordered?" -msgstr "Wer bestellte?" - -#: app/views/ordering/_currentOrders.haml:31 -msgid "Total sum" -msgstr "Gesamtbetrag" - -#: app/views/ordering/_currentOrders.haml:34 app/views/orders/index.haml:35 -msgid "There aren't current orders at the moment." -msgstr "Es gibt derzeit keine laufenden Bestellungen." - -#: app/views/articles/upload_articles.haml:1 -#: app/views/articles/upload_articles.haml:18 app/views/articles/list.haml:52 -msgid "Upload articles" -msgstr "Artikel hochladen" - -#: app/views/articles/upload_articles.haml:4 -msgid "" -"The file-type must be \"csv\" (textfile). Use a semicolon (\";\") to " -"seperate the fields and double quotes (\"Bananas...\") for the text." -msgstr "" -"Die Datei muss vom Typ \"csv\" (Textdatei) sein. Als Feldtrenner benutze ein " -"Semikolon (\";\") und als Texttrenner doppelte Anführungszeichen " -"(\"Bananen...\")." - -#: app/views/articles/upload_articles.haml:6 -msgid "" -"The character-set has to be \"UTF-8\". The first row, maybe used for " -"headers, will be ignored." -msgstr "" -"Der Zeichensatz muss \"UTF-8\" sein. Die erste Zeile wird ignoriert, z.B. " -"für Spaltenüberschriften." - -#: app/views/articles/upload_articles.haml:9 -msgid "Correct order of the columns:" -msgstr "Reihenfolge der Spalten:" - -#: app/views/articles/upload_articles.haml:15 -msgid "Status (x=outlistet)" -msgstr "Status (x=ausgelistet)" - -#: app/views/articles/upload_articles.haml:15 -#: app/views/articles/parse_articles.haml:15 -#: app/views/orders/_form.html.haml:43 -msgid "Origin" -msgstr "Herkunft" - -#: app/views/articles/upload_articles.haml:15 app/views/articles/_list.haml:24 -#: app/views/articles/parse_articles.haml:16 -msgid "Unit" -msgstr "Einheit" - -#: app/views/articles/upload_articles.haml:15 -#: app/views/articles/parse_articles.haml:17 -msgid "Net price" -msgstr "Netto Preis" - -#: app/views/articles/upload_articles.haml:15 app/views/articles/_list.haml:29 -#: app/views/articles/parse_articles.haml:18 -msgid "Tax" -msgstr "Steuer" - -#: app/views/articles/upload_articles.haml:15 app/views/articles/_list.haml:30 -#: app/views/articles/parse_articles.haml:19 -msgid "Deposit" -msgstr "Pfand" - -#: app/views/articles/upload_articles.haml:15 -msgid "Scale quantity" -msgstr "Staffelmenge" - -#: app/views/articles/upload_articles.haml:15 -msgid "Scale price" -msgstr "Staffelpreis" - -#: app/views/articles/upload_articles.haml:15 app/views/articles/_list.haml:22 -#: app/views/articles/parse_articles.haml:21 -msgid "Category" -msgstr "Kategorie" - -#: app/views/articles/_list.haml:2 -msgid "Number of found articles :" -msgstr "Anzahl gefundener Artikel :" - -#: app/views/articles/_list.haml:27 -msgid "UnitQu" -msgstr "GebGr" - -#: app/views/articles/list.haml:2 -msgid "Articles from" -msgstr "Artikel von" - -#: app/views/articles/list.haml:10 -msgid "External database" -msgstr "Externe Datenbank" - -#: app/views/articles/list.haml:12 -msgid "search/import" -msgstr "suchen/importieren" - -#: app/views/articles/list.haml:13 -msgid "sync" -msgstr "synchronisieren" - -#: app/views/articles/list.haml:18 -msgid "Change supplier:" -msgstr "Lieferantin wechseln:" - -#: app/views/articles/list.haml:26 -msgid "Import articles" -msgstr "Artikel importieren" - -#: app/views/articles/list.haml:31 -msgid "Search articles" -msgstr "Artikel Suchen" - -#: app/views/articles/list.haml:33 -msgid "Search in following lists: " -msgstr "Suche in folgenden Listen: " - -#: app/views/articles/list.haml:38 -msgid "only regional:" -msgstr "nur regional:" - -#: app/views/articles/list.haml:42 -msgid "Close" -msgstr "Schließen" - -#: app/views/articles/list.haml:48 -msgid "New article" -msgstr "Neuer Artikel" - -#: app/views/articles/list.haml:50 -msgid "Edit all" -msgstr "Alle bearbeiten" - -#: app/views/articles/list.haml:54 -msgid "Create order" -msgstr "Bestellung anlegen" - -#: app/views/articles/list.haml:59 -msgid "Search in article name: " -msgstr "Suche in Artikelnamen: " - -#: app/views/articles/list.haml:61 -msgid "Search" -msgstr "Suche" - -#: app/views/articles/parse_articles.haml:1 -msgid "Upload Articles" -msgstr "Artikel hochladen" - -#: app/views/articles/parse_articles.haml:4 -msgid "" -"Please check the parsed articles and choose a supplier at the end of page." -msgstr "" -"Bitte überprüfe die eingelesenen Artikel und wähle unten einen Lieferanten " -"aus." - -#: app/views/articles/parse_articles.haml:6 -msgid "At the moment there is now checking of dublicate articles." -msgstr "Momentan gibt es keine Überprüfung von doppelten Artikeln." - -#: app/views/articles/parse_articles.haml:36 -msgid "Choose a supplier:" -msgstr "Lieferantin auswählen:" - -#: app/views/articles/parse_articles.haml:38 -msgid "Save articles" -msgstr "Artikel speichern" - -#: app/views/admin/_listUsers.haml:15 -msgid "Email" -msgstr "E-Mail" - -#: app/views/admin/_listUsers.haml:16 -msgid "Roles" -msgstr "Rollen" - -#: app/views/admin/_listUsers.haml:17 -msgid "Last Login" -msgstr "Letzter Login" - -#: app/views/tasks/myTasks.haml:1 app/views/tasks/_nav.haml:11 -#: app/views/index/index.haml:28 app/views/index/_start_nav.haml:7 -msgid "My tasks" -msgstr "Meine Aufgaben" - -#: app/views/tasks/show.haml:1 -msgid "Task in detail" -msgstr "Aufgabe im Detail" - -#: app/views/tasks/show.haml:11 app/views/tasks/_form.html.haml:9 -#: app/views/index/_showGroup.haml:7 -msgid "Description" -msgstr "Beschreibung" - -#: app/views/tasks/show.haml:14 app/views/tasks/_list.haml:3 -#: app/views/tasks/archive.haml:6 app/views/tasks/_form.html.haml:35 -msgid "Due date" -msgstr "Fälligkeitsdatum" - -#: app/views/tasks/show.haml:17 app/views/tasks/archive.haml:8 -#: app/views/tasks/_form.html.haml:14 -msgid "Responsible people" -msgstr "Verantwortliche Personen" - -#: app/views/tasks/show.haml:20 app/views/tasks/_form.html.haml:30 -msgid "Group" -msgstr "Gruppe" - -#: app/views/tasks/show.haml:27 app/views/tasks/_list.haml:29 -#: app/views/tasks/_list.haml:31 -msgid "Done" -msgstr "Erledigt" - -#: app/views/tasks/show.haml:33 app/views/orders/index.haml:32 -#: app/views/orders/_list.haml:21 -msgid "Edit" -msgstr "Bearbeiten" - -#: app/views/tasks/show.haml:35 -msgid "Delete" -msgstr "Löschen" - -#: app/views/tasks/show.haml:35 -msgid "Delete the task?" -msgstr "Die Aufgabe wirklich löschen?" - -#: app/views/tasks/index.haml:1 -msgid "Arrange tasks" -msgstr "Aufgaben zuweisen" - -#: app/views/tasks/index.haml:8 -msgid "Tasks for all" -msgstr "Aufgaben für alle" - -#: app/views/tasks/new.haml:1 -msgid "Create new task" -msgstr "Neue Aufgabe erstellen" - -#: app/views/tasks/new.haml:6 -msgid "Create task" -msgstr "Aufgabe erstellen" - -#: app/views/tasks/new.haml:9 app/views/tasks/edit.haml:10 -msgid "Members of the workgroups" -msgstr "Mitglieder der Arbeitsgruppen" - -#: app/views/tasks/_assignments.haml:3 app/views/finance/_order_group.haml:6 -msgid "Remove" -msgstr "Entfernen" - -#: app/views/tasks/_list.haml:4 app/views/tasks/archive.haml:7 -#: app/views/tasks/_form.html.haml:4 -msgid "Subject" -msgstr "Betreff" - -#: app/views/tasks/_list.haml:6 app/views/tasks/workgroup.haml:16 -msgid "Who will make it?" -msgstr "Wer macht das?" - -#: app/views/tasks/_list.haml:7 -msgid "How many are still required?" -msgstr "Wie viele werden noch benötigt?" - -#: app/views/tasks/_list.haml:25 app/views/tasks/workgroup.haml:17 -#: app/views/tasks/workgroup.haml:39 -msgid "Accept task" -msgstr "Aufgabe übernehmen" - -#: app/views/tasks/_list.haml:26 app/views/tasks/workgroup.haml:40 -msgid "Reject task" -msgstr "Aufgabe ablehnen" - -#: app/views/tasks/archive.haml:1 -msgid "Task archive" -msgstr "AufgabenArchiv" - -#: app/views/tasks/_form.html.haml:15 -msgid "tasks can have multiple assignments" -msgstr "Aufgaben können mehrere Verantwortliche haben" - -#: app/views/tasks/_form.html.haml:19 -msgid "use commas to seperate the names" -msgstr "Benutze Kommas, um mehrere Namen zu trennen" - -#: app/views/tasks/_form.html.haml:25 -msgid "How many users are altogether required?" -msgstr "Wie viele Verantwortliche werden insgesamt benötigt?" - -#: app/views/tasks/workgroup.haml:2 -msgid "Arrange tasks for" -msgstr "AufgabenVerteilung für" - -#: app/views/tasks/workgroup.haml:9 -msgid "Weekly tasks" -msgstr "Wöchentliche Aufgaben" - -#: app/views/tasks/workgroup.haml:15 -msgid "Date" -msgstr "Datum" - -#: app/views/tasks/workgroup.haml:33 -msgid "more" -msgstr "mehr" - -#: app/views/tasks/workgroup.haml:36 app/views/tasks/workgroup.haml:42 -msgid "Assign people" -msgstr "Personen zuweisen" - -#: app/views/tasks/workgroup.haml:47 app/views/index/_showGroup.haml:33 -msgid "No weekly tasks defined yet" -msgstr "Noch keine wöchentlichen Aufgaben angelegt" - -#: app/views/tasks/workgroup.haml:48 -msgid "Edit weekly tasks" -msgstr "Wöchentliche Aufgaben bearbeiten" - -#: app/views/tasks/workgroup.haml:52 -msgid "all tasks" -msgstr "Alle Aufgaben" - -#: app/views/tasks/_nav.haml:2 -msgid "TaskMenu" -msgstr "AufgabenMenu" - -#: app/views/tasks/_nav.haml:5 -msgid "Actions" -msgstr "Aktionen" - -#: app/views/tasks/_nav.haml:7 -msgid "New task" -msgstr "Neue Aufgabe" - -#: app/views/tasks/_nav.haml:9 -msgid "Pages" -msgstr "Seiten" - -#: app/views/tasks/_nav.haml:12 -msgid "All tasks" -msgstr "Alle Aufgaben" - -#: app/views/tasks/_nav.haml:13 -msgid "Tasks done" -msgstr "Erledigte Aufgaben" - -#: app/views/tasks/_nav.haml:16 -msgid "Group tasks" -msgstr "GruppenAufgaben" - -#: app/views/tasks/edit.haml:1 -msgid "Edit task" -msgstr "Aufgabe bearbeiten" - -#: app/views/tasks/edit.haml:6 -msgid "Save changes" -msgstr "Änderungen speichern" - -#: app/views/orders/show.haml:1 -msgid "Show order" -msgstr "Bestellung anzeigen" - -#: app/views/orders/show.haml:28 -msgid "Begin" -msgstr "Beginn" - -#: app/views/orders/show.haml:34 -msgid "Groups ordered" -msgstr "Gruppenbestellungen" - -#: app/views/orders/show.haml:45 app/views/orders/_show_unfinished.haml:32 -msgid "Ordered articles:" -msgstr "Bestellte Artikel:" - -#: app/views/orders/show.haml:53 -msgid "All articles" -msgstr "Alle Artikel" - -#: app/views/orders/show.haml:55 -msgid "Sort by groups" -msgstr "Gruppensortierung" - -#: app/views/orders/show.haml:56 app/views/orders/show.haml:59 -#: app/views/orders/show.haml:62 app/views/orders/show.haml:65 -#: app/views/orders/show.haml:66 -msgid "Download file" -msgstr "Datei runterladen" - -#: app/views/orders/show.haml:58 -msgid "Sort by articles" -msgstr "Artikelsortierung" - -#: app/views/orders/show.haml:61 -msgid "Matrix:" -msgstr "Matrix:" - -#: app/views/orders/show.haml:64 -msgid "FAX-template:" -msgstr "FAX-Vorlage:" - -#: app/views/orders/index.haml:6 -msgid "New Order" -msgstr "Neue Bestellung" - -#: app/views/orders/index.haml:7 -msgid "for" -msgstr "für" - -#: app/views/orders/index.haml:9 -msgid "Choose a supplier..." -msgstr "Lieferant auswählen..." - -#: app/views/orders/index.haml:30 -msgid "finish" -msgstr "beenden" - -#: app/views/orders/index.haml:30 app/views/orders/_list.haml:20 -msgid "Are you really sure to finish the order?" -msgstr "Bist Du wirklich sicher die Bestellung zu beenden?" - -#: app/views/orders/index.haml:33 app/views/orders/_list.haml:22 -msgid "Destroy" -msgstr "Löschen" - -#: app/views/orders/index.haml:33 app/views/orders/_list.haml:22 -msgid "Are you really sure you want to destroy the order?" -msgstr "Bist Du wirklich sicher, Du willst die Bestellung löschen?" - -#: app/views/orders/index.haml:39 -msgid "Expired/finished orders" -msgstr "abgelaufende/beendete Bestellungen" - -#: app/views/orders/_show_unfinished.haml:6 -msgid "Units ordered" -msgstr "bestellte Einheiten" - -#: app/views/orders/_show_unfinished.haml:7 -msgid "Result/Unit quantity" -msgstr "Ergebnis/Gebinde" - -#: app/views/orders/_show_unfinished.haml:28 -msgid "Total value" -msgstr "Gesamtbetrag" - -#: app/views/orders/_show_unfinished.haml:29 -msgid "(net/gross)" -msgstr "(netto/brutto)" - -#: app/views/orders/_list.haml:8 app/views/orders/_form.html.haml:19 -msgid "Start" -msgstr "Start" - -#: app/views/orders/_list.haml:11 -msgid "Status" -msgstr "Status" - -#: app/views/orders/_list.haml:20 -msgid "finish now" -msgstr "jetzt beenden" - -#: app/views/orders/_form.html.haml:32 -msgid "Use article selection from" -msgstr "Benutze Artikelauswahl von" - -#: app/views/orders/_form.html.haml:34 -msgid "Choose an order..." -msgstr "Bestellung wählen..." - -#: app/views/orders/_form.html.haml:66 -msgid "Select all" -msgstr "Alle auswählen" - -#: app/views/orders/edit.html.haml:1 -msgid "Edit order" -msgstr "Bestellung bearbeiten" - -#: app/views/orders/edit.html.haml:5 -#: app/views/finance/new_transactions.haml:18 -msgid "Save" -msgstr "Speichern" - -#: app/views/orders/new.html.haml:1 -msgid "New order" -msgstr "Neue Bestellung" - -#: app/views/orders/new.html.haml:5 -msgid "Put the order online" -msgstr "Bestellung online stellen" - -#: app/views/index/index.haml:13 -msgid "Your tasks for the upcoming week:" -msgstr "Deine Aufgaben für die nächste Woche:" - -#: app/views/index/index.haml:22 -msgid "Accept tasks" -msgstr "Aufgaben übernehmen" - -#: app/views/index/index.haml:23 -msgid "Your are responsible for a few tasks." -msgstr "Du bist für einige Aufgaben verantwortlich." - -#: app/views/index/index.haml:24 -msgid "Accept/Reject tasks" -msgstr "Aufgaben übernehmen/ablehnen" - -#: app/views/index/index.haml:26 -msgid "Unassigned tasks" -msgstr "Nicht zugewiesene Aufgaben" - -#: app/views/index/index.haml:27 -msgid "There are" -msgstr "Es gibt" - -#: app/views/index/index.haml:27 -msgid "unassigned task(s)" -msgstr "nicht zugewiesene Aufgabe(n)" - -#: app/views/index/index.haml:33 -msgid "Unread messages" -msgstr "Ungelesene Nachrichten" - -#: app/views/index/index.haml:36 -msgid "All messages" -msgstr "Alle Nachrichten" - -#: app/views/index/index.haml:51 -msgid "Account balance:" -msgstr "Kontostand:" - -#: app/views/index/index.haml:56 -msgid "Last transactions" -msgstr "Letzte Überweisungen" - -#: app/views/index/index.haml:59 -msgid "When" -msgstr "Wann" - -#: app/views/index/index.haml:60 -msgid "Who" -msgstr "Wer" - -#: app/views/index/index.haml:71 -msgid "more ..." -msgstr "mehr ..." - -#: app/views/index/foodcoop_members.haml:27 -msgid "Sort by Ordergroups :" -msgstr "Sortiere nach Bestellgruppen :" - -#: app/views/index/_list_members.haml:26 -msgid "Send user an email" -msgstr "Mitglied eine Nachricht schicken" - -#: app/views/index/_start_nav.haml:1 -msgid "Go to ..." -msgstr "Direkt zu ..." - -#: app/views/index/_start_nav.haml:4 -msgid "FoodCoop" -msgstr "FoodCoop" - -#: app/views/index/_start_nav.haml:6 -msgid "Member list" -msgstr "Mitgliederliste " - -#: app/views/index/_start_nav.haml:8 -msgid "Write message" -msgstr "Nachricht schreiben" - -#: app/views/index/_start_nav.haml:18 -msgid "Order summary" -msgstr "Bestellungen" - -#: app/views/index/_start_nav.haml:20 -msgid "Finish order" -msgstr "Bestellung beenden" - -#: app/views/index/_start_nav.haml:24 -msgid "Artcle management" -msgstr "Artikelverwaltung" - -#: app/views/index/_start_nav.haml:26 -msgid "Refresh articles" -msgstr "Artikel aktualisieren" - -#: app/views/index/_start_nav.haml:32 -msgid "Financial management" -msgstr "Finanzverwaltung" - -#: app/views/index/_start_nav.haml:34 -msgid "Update account balances" -msgstr "Kontostände aktualisieren" - -#: app/views/index/_start_nav.haml:35 -msgid "Cancel orders" -msgstr "Bestellungen abbrechen" - -#: app/views/index/_start_nav.haml:42 -#: app/views/finance/listOrdergroups.haml:24 -msgid "New ordergroup" -msgstr "Neue Bestellgruppe" - -#: app/views/index/_start_nav.haml:43 -msgid "New user" -msgstr "Neue Benutzerin" - -#: app/views/index/_showGroup.haml:10 -msgid "Group has access to" -msgstr "Gruppe hat Zugriff auf" - -#: app/views/index/_showGroup.haml:26 -msgid "Weekly task" -msgstr "Wöchentliche Aufgabe" - -#: app/views/index/_showGroup.haml:30 -msgid "at" -msgstr "am" - -#: app/views/index/_showGroup.haml:35 -msgid "Show all tasks" -msgstr "Zeige alle Aufgaben" - -#: app/views/index/_showGroup.haml:38 -msgid "Edit group" -msgstr "Gruppe bearbeiten" - -#: app/views/index/_showGroup.haml:40 -msgid "Send members a message" -msgstr "Schicke den Mitgliedern eine Nachricht" - -#: app/views/finance/listOrdergroups.haml:1 -msgid "Manage accounts" -msgstr "Kontenverwaltung" - -#: app/views/finance/listOrdergroups.haml:4 -msgid "To create multiple transactions at once please follow this " -msgstr "Um mehrere Transaktionen auf einmal zu erstellen folge diesem " - -#: app/views/finance/listOrdergroups.haml:5 -msgid "link" -msgstr "Link" - -#: app/views/finance/listOrdergroups.haml:12 -msgid "Search in name" -msgstr "Suche im Namen" - -#: app/views/finance/_listOrdergroups.haml:2 -msgid "Found" -msgstr "Gefunden" - -#: app/views/finance/_listOrdergroups.haml:16 -msgid "Size of group" -msgstr "Gruppengröße" - -#: app/views/finance/_listOrdergroups.haml:22 -msgid "Show ordergroup" -msgstr "Zeige Bestellgruppe" - -#: app/views/finance/_listOrdergroups.haml:26 -msgid "New transaction" -msgstr "Neue Überweisung" - -#: app/views/finance/_listOrdergroups.haml:27 -msgid "List transactions" -msgstr "Überweisung anzeigen" - -#: app/views/finance/new_transactions.haml:1 -msgid "Update multiple accounts" -msgstr "Aktualisiere mehrere Konten" - -#: app/views/finance/new_transactions.haml:10 -msgid "Ordergroup" -msgstr "Bestellgruppe" - -#: app/views/finance/new_transactions.haml:15 -msgid "Add another ordergroup" -msgstr "Weitere Bestellgruppe hinzufügen" - -#: app/views/finance/_order_group.haml:6 -msgid "Remove ordergroup" -msgstr "Bestellgruppe entfernen" - -#~ msgid "user" -#~ msgstr "Benutzerin" - -#~ msgid "User|Nick" -#~ msgstr "Benutzername" - -#~ msgid "User|Password hash" -#~ msgstr "Passwort" - -#~ msgid "User|Password salt" -#~ msgstr "Passwort" - -#~ msgid "User|First name" -#~ msgstr "Vorname" - -#~ msgid "User|Last name" -#~ msgstr "Nachname" - -#~ msgid "User|Email" -#~ msgstr "E-Mail" - -#~ msgid "User|Phone" -#~ msgstr "Telefon" - -#~ msgid "User|Address" -#~ msgstr "Adresse" - -#~ msgid "User|Created on" -#~ msgstr "Erstelle am" - -#~ msgid "User|Last login" -#~ msgstr "Letzter Login" diff --git a/po/de/foodsoft.po.autosave b/po/de/foodsoft.po.autosave deleted file mode 100644 index c9d9603e..00000000 --- a/po/de/foodsoft.po.autosave +++ /dev/null @@ -1,1966 +0,0 @@ -# translation of foodsoft.po to German -# German translation of foodsoft. -# Copyright (C) 2007 lasse, tom, benni -# This file is distributed under the same license as the foodsoft package. -# benni , 2007. -# Thomas Bechtold , 2007, 2008. -# Thomas Bechtold , 2008. -# -# -msgid "" -msgstr "" -"Project-Id-Version: 2.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-09-25 13:46+0200\n" -"PO-Revision-Date: 2008-09-25 13:52+0200\n" -"Last-Translator: Benjamin Meichsner \n" -"Language-Team: German \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);" - -#: app/helpers/application_helper.rb:16 -msgid "Previous" -msgstr "Vorige" - -#: app/helpers/application_helper.rb:17 -msgid "Next" -msgstr "Nächste" - -#: app/helpers/application_helper.rb:35 -msgid "Per page: " -msgstr "Pro Seite: " - -#: app/helpers/application_helper.rb:53 -msgid "Sort by this field" -msgstr "Nach diesem Feld sortieren" - -#: app/controllers/articles_controller.rb:323 -msgid " ..in line " -msgstr " ...in Zeile " - -#: app/controllers/articles_controller.rb:327 -msgid " articles are parsed successfully." -msgstr " Artikel wurden erfolgreich eingelesen." - -#: app/controllers/articles_controller.rb:329 -#: app/controllers/suppliers_controller.rb:68 -msgid "An error has occurred: " -msgstr "Ein Fehler ist aufgetreten: " - -#: app/controllers/articles_controller.rb:348 -msgid "The articles are saved successfully" -msgstr "Die Artikel wurden erfolgreich gespeichert" - -#: app/controllers/articles_controller.rb:352 -#: app/controllers/finance_controller.rb:129 -msgid "An error occured: " -msgstr "Ein Fehler ist aufgetreten: " - -#: app/controllers/articles_controller.rb:406 -msgid " ist not assigned to an external database." -msgstr " ist nicht mit einer externen Datenbank verknüpft." - -#: app/controllers/articles_controller.rb:414 -msgid "The database is up to date." -msgstr "Die Datenbank ist aktuell." - -#: app/controllers/index_controller.rb:255 -msgid "The membership was cancelled." -msgstr "Die Mitgliedschaft wurde beendet." - -#: app/controllers/index_controller.rb:257 -msgid "You are not allowed to cancel this membership" -msgstr "Dir ist nicht erlaubt diese Mitgliedschaft zu beenden" - -#: app/controllers/login_controller.rb:17 -msgid "Logged out." -msgstr "Abgemeldet." - -#: app/controllers/login_controller.rb:23 -msgid "" -"You are not authorized to do this. Please log in as another user or go back." -msgstr "" -"Du bist nicht ausreichend berechtigt. Bitte mit ausreichenden Rechten " -"anmelden oder zurück gehen." - -#: app/controllers/login_controller.rb:42 -msgid "Sorry, login is not possible." -msgstr "Sorry, Anmeldung nicht möglich." - -#: app/controllers/login_controller.rb:60 -msgid "" -"If your email address is listed in our system, you will now receive an email " -"with the instructions how to change your password." -msgstr "" -"Wenn Deine Email-Adresse in der FoodSoft registriert ist, bekommt du jetzt " -"eine Email mit den Anweisungen für ein neues Passwort." - -#: app/controllers/login_controller.rb:69 -#: app/controllers/login_controller.rb:79 -msgid "Invalid or expired token, password cannot be changed." -msgstr "" -"Ungültiger oder abgelaufender Token, Passwort kann nicht geändert werden." - -#: app/controllers/login_controller.rb:87 -msgid "New password has been saved, please log in." -msgstr "Neues Passwort wurde gespeichert, bitte anmelden." - -#: app/controllers/login_controller.rb:91 -msgid "" -"When trying to save your new password an error has occured. Please try again." -msgstr "" -"Während des Speicherns ist ein Fehler aufgetreten. Bitte nochmal versuchen." - -#: app/controllers/login_controller.rb:105 -msgid "Your invitation is invalid or has expired, sorry!" -msgstr "Deine Einladung ist abgelaufen oder ungültig, sorry!" - -#: app/controllers/login_controller.rb:108 -msgid "The group you are invited to join doesn't exist any more!" -msgstr "Die Gruppe, in die Du eingeladen wurdest, existiert nicht mehr!" - -#: app/controllers/login_controller.rb:121 -msgid "" -"Congratulations, your account has been created successfully. You can log in " -"now." -msgstr "" -"Herzlichen Glückwunsch, Dein Benutzerkonto wurde erfolgreich erstellt. Du " -"kannst Dich jetzt anmelden." - -#: app/controllers/login_controller.rb:129 -msgid "An error has occured. Please try again." -msgstr "Ein Fehler ist aufgetreten. Bitte erneut anmelden." - -#: app/controllers/orders_controller.rb:71 -msgid "The order has been created successfully." -msgstr "Die Bestellung wurde erfolgreich angelegt." - -#: app/controllers/orders_controller.rb:88 -msgid "The order has been updated." -msgstr "Die Bestellung wurde aktualisiert." - -#: app/controllers/orders_controller.rb:106 -msgid "The order has been finished successfully." -msgstr "Die Bestellung wurde erfolgreich beendet." - -#: app/controllers/orders_controller.rb:137 -msgid "Order for" -msgstr "Bestellung für" - -#: app/controllers/orders_controller.rb:138 -msgid "Customer number" -msgstr "Kundennummer" - -#: app/controllers/orders_controller.rb:140 -msgid "Shipping address" -msgstr "Lieferadresse" - -#: app/controllers/orders_controller.rb:142 app/views/ordering/order.rhtml:64 -#: app/views/shared/_nav.haml:32 app/views/orders/show.haml:73 -#: app/views/orders/_form.html.haml:28 -msgid "Articles" -msgstr "Artikel" - -#: app/controllers/orders_controller.rb:143 -#: app/views/articles/upload_articles.haml:15 -#: app/views/articles/parse_articles.haml:11 -msgid "Number" -msgstr "Nummer" - -#: app/controllers/orders_controller.rb:143 app/views/ordering/order.rhtml:76 -msgid "Quantity" -msgstr "Menge" - -#: app/controllers/orders_controller.rb:143 app/views/ordering/order.rhtml:70 -#: app/views/ordering/_finishedOrders.haml:4 -#: app/views/ordering/my_order_result.haml:18 -#: app/views/ordering/_bookedOrders.haml:6 -#: app/views/ordering/_finished_order_result.haml:4 -#: app/views/ordering/_currentOrders.haml:10 -#: app/views/articles/upload_articles.haml:15 app/views/articles/_list.haml:19 -#: app/views/articles/parse_articles.haml:12 app/views/tasks/show.haml:7 -#: app/views/orders/show.haml:18 app/views/orders/index.haml:20 -#: app/views/orders/_show_unfinished.haml:3 app/views/orders/_list.haml:5 -#: app/views/orders/_form.html.haml:11 app/views/orders/_form.html.haml:41 -#: app/views/finance/_listOrdergroups.haml:15 -msgid "Name" -msgstr "Name" - -#: app/controllers/orders_controller.rb:177 -#: app/controllers/ordering_controller.rb:204 -msgid "Comment has been created." -msgstr "Kommentar wurde erstellt." - -#: app/controllers/orders_controller.rb:180 -#: app/controllers/ordering_controller.rb:207 -msgid "The comment has not been saved. Check the title and try again." -msgstr "" -"Der Kommentar konnte nicht gespeichert werden. Überprüfe den Titel und " -"versuche es nochmal." - -#: app/controllers/finance_controller.rb:119 -msgid "Note is required!" -msgstr "Notiz wird benötigt!" - -#: app/controllers/finance_controller.rb:126 -msgid "Saved all transactions successfully" -msgstr "Die Transaktionen wurden erfolgreich gespeichert" - -#: app/controllers/application.rb:33 -msgid "An error has occurred. Please login again." -msgstr "Ein Fehler ist aufgetreten. Bitte erneut anmelden." - -#: app/models/invite.rb:- -msgid "invite" -msgstr "Einladung" - -#: app/models/invite.rb:- -msgid "Invite|Token" -msgstr "Schlüssel" - -#: app/models/invite.rb:- -msgid "Invite|Expires at" -msgstr "läuft ab am" - -#: app/models/invite.rb:- -msgid "Invite|Group" -msgstr "Gruppe" - -#: app/models/invite.rb:- -msgid "Invite|User" -msgstr "Benutzerin" - -#: app/models/invite.rb:- -msgid "Invite|Email" -msgstr "E-Mail" - -#: app/models/article.rb:- -msgid "article" -msgstr "Artikel" - -#: app/models/article.rb:- -msgid "Article|Name" -msgstr "Name" - -#: app/models/article.rb:- -msgid "Article|Supplier" -msgstr "Lieferantin" - -#: app/models/article.rb:- -msgid "Article|Article category" -msgstr "Artikelkategorie" - -#: app/models/article.rb:- -msgid "Article|Unit" -msgstr "Einheit" - -#: app/models/article.rb:- -msgid "Article|Note" -msgstr "Notiz" - -#: app/models/article.rb:- -msgid "Article|Availability" -msgstr "Verfügbarkeit" - -#: app/models/article.rb:- -msgid "Article|Manufacturer" -msgstr "Herstellerin" - -#: app/models/article.rb:- -msgid "Article|Origin" -msgstr "Herkunft" - -#: app/models/article.rb:- -msgid "Article|Shared updated on" -msgstr "" - -#: app/models/article.rb:- -msgid "Article|Net price" -msgstr "Nettopreis" - -#: app/models/article.rb:- -msgid "Article|Gross price" -msgstr "Bruttopreis" - -#: app/models/article.rb:- -msgid "Article|Tax" -msgstr "Steuer" - -#: app/models/article.rb:- -msgid "Article|Deposit" -msgstr "Pfand" - -#: app/models/article.rb:- -msgid "Article|Unit quantity" -msgstr "Gebindegröße" - -#: app/models/article.rb:- -msgid "Article|Order number" -msgstr "Bestellnummer" - -#: app/models/article.rb:- -msgid "Article|Created at" -msgstr "erstellt am" - -#: app/models/article.rb:- -msgid "Article|Updated at" -msgstr "aktualisiert am" - -#: app/models/article.rb:95 -msgid " cannot be deleted. The article is used in a current order!" -msgstr "" -" kann nicht gelöscht werden. Der Artikel wird in einer laufenden Bestellung " -"benutzt." - -#: app/models/article_category.rb:- -msgid "article category" -msgstr "Artikelkategorie" - -#: app/models/article_category.rb:- -msgid "ArticleCategory|Name" -msgstr "Name" - -#: app/models/article_category.rb:- -msgid "ArticleCategory|Description" -msgstr "Beschreibung" - -#: app/models/user.rb:36 -msgid "Get message with order result" -msgstr "Bekomme Nachricht mit Bestellergebnis" - -#: app/models/user.rb:37 -msgid "Get message if negative account balance" -msgstr "Bekomme Nachricht bei negativem Kontostand" - -#: app/models/user.rb:38 -msgid "Get messages as emails" -msgstr "Nachrichten als E-Mails empfangen" - -#: app/models/user.rb:39 -msgid "Phone is visible for foodcoop members" -msgstr "Telefonnummer einsehbar für Mitgliederinnen" - -#: app/models/user.rb:40 -msgid "Email is visible for foodcoop members" -msgstr "E-Mail ist einsehbar für Mitgliederinnen" - -#: app/models/user.rb:41 -msgid "Name is visible for foodcoop members" -msgstr "Name ist einsehbar für Mitgliederinnen" - -#: app/models/user.rb:72 -msgid "Password is required" -msgstr "Passwort wird benötigt" - -#: app/models/user.rb:75 -msgid "Passwords doesn't match" -msgstr "Passwörter stimmen nicht überein" - -#: app/models/user.rb:77 -msgid "Password-length has to be between 5 and 25 characters" -msgstr "Passwort muss zwischen 5 und 25 Zeichen haben" - -#: app/models/supplier.rb:- -msgid "supplier" -msgstr "Lieferantin" - -#: app/models/supplier.rb:- -msgid "Supplier|Name" -msgstr "Name" - -#: app/models/supplier.rb:- -msgid "Supplier|Address" -msgstr "Adresse" - -#: app/models/supplier.rb:- -msgid "Supplier|Phone" -msgstr "Telefon" - -#: app/models/supplier.rb:- -msgid "Supplier|Phone2" -msgstr "Telefon 2" - -#: app/models/supplier.rb:- -msgid "Supplier|Fax" -msgstr "Fax" - -#: app/models/supplier.rb:- -msgid "Supplier|Email" -msgstr "E-Mail" - -#: app/models/supplier.rb:- -msgid "Supplier|Url" -msgstr "Hompage" - -#: app/models/supplier.rb:- -msgid "Supplier|Contact person" -msgstr "Kontaktperson" - -#: app/models/supplier.rb:- -msgid "Supplier|Customer number" -msgstr "Kundennummer" - -#: app/models/supplier.rb:- -msgid "Supplier|Delivery days" -msgstr "Liefertage" - -#: app/models/supplier.rb:- -msgid "Supplier|Order howto" -msgstr "BestellHowTo" - -#: app/models/supplier.rb:- -msgid "Supplier|Note" -msgstr "Notiz" - -#: app/models/supplier.rb:- -msgid "Supplier|Shared supplier" -msgstr "externer Lieferant" - -#: app/models/supplier.rb:- -msgid "Supplier|Min order quantity" -msgstr "Mindestbestellmenge" - -#: app/models/order.rb:- -msgid "order" -msgstr "Bestellung" - -#: app/models/order.rb:- -msgid "Order|Name" -msgstr "Name" - -#: app/models/order.rb:- -msgid "Order|Supplier" -msgstr "Lieferantin" - -#: app/models/order.rb:- -msgid "Order|Starts" -msgstr "Start" - -#: app/models/order.rb:- -msgid "Order|Ends" -msgstr "Ende" - -#: app/models/order.rb:- -msgid "Order|Note" -msgstr "Notiz" - -#: app/models/order.rb:- -msgid "Order|Finished" -msgstr "beendet" - -#: app/models/order.rb:- -msgid "Order|Booked" -msgstr "verbucht" - -#: app/models/order.rb:- -msgid "Order|Lock version" -msgstr "" - -#: app/models/order.rb:- -msgid "Order|Updated by user" -msgstr "" - -#: app/models/order.rb:- -msgid "Order|Invoice amount" -msgstr "Rechnungsbetrag" - -#: app/models/order.rb:- -msgid "Order|Deposit" -msgstr "Pfand" - -#: app/models/order.rb:- -msgid "Order|Deposit credit" -msgstr "Pfandguthaben" - -#: app/models/order.rb:- -msgid "Order|Invoice number" -msgstr "Rechnungsnummer" - -#: app/models/order.rb:- -msgid "Order|Invoice date" -msgstr "Rechnungsdatum" - -#: app/models/order.rb:271 -msgid "running" -msgstr "laufend" - -#: app/models/order.rb:273 app/views/orders/_list.haml:20 -msgid "expired" -msgstr "abgelaufen" - -#: app/models/order.rb:275 -msgid "finished" -msgstr "beendet" - -#: app/models/order.rb:277 app/views/ordering/myOrders.haml:24 -msgid "balanced" -msgstr "abgerechnet" - -#: app/models/order.rb:288 -msgid "There must be at least one article selected" -msgstr "Es muss mindestens ein Artikel ausgewählt werden." - -#: app/models/financial_transaction.rb:- -msgid "financial transaction" -msgstr "Überweisung" - -#: app/models/financial_transaction.rb:- -msgid "FinancialTransaction|Order group" -msgstr "Bestellgruppe" - -#: app/models/financial_transaction.rb:- -msgid "FinancialTransaction|Amount" -msgstr "Betrag" - -#: app/models/financial_transaction.rb:- -msgid "FinancialTransaction|Note" -msgstr "Notiz" - -#: app/models/financial_transaction.rb:- -msgid "FinancialTransaction|User" -msgstr "Benutzerin" - -#: app/models/financial_transaction.rb:- -msgid "FinancialTransaction|Created on" -msgstr "Erstellt am" - -#: app/models/message.rb:- -msgid "message" -msgstr "Nachricht" - -#: app/models/message.rb:- -msgid "Message|Sender" -msgstr "Absender" - -#: app/models/message.rb:- -msgid "Message|Recipient" -msgstr "Empfänger" - -#: app/models/message.rb:- -msgid "Message|Recipients" -msgstr "Empfänger" - -#: app/models/message.rb:- -msgid "Message|Subject" -msgstr "Betreff" - -#: app/models/message.rb:- -msgid "Message|Body" -msgstr "Nachrichtentext" - -#: app/models/message.rb:- -msgid "Message|Read" -msgstr "gelesen" - -#: app/models/message.rb:- -msgid "Message|Email state" -msgstr "E-Mail Status" - -#: app/models/message.rb:- -msgid "Message|Created on" -msgstr "Erstellt am" - -#: app/models/order_article_result.rb:- -msgid "order article result" -msgstr "BestellArtikelErgebnis" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Order" -msgstr "Bestellung" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Name" -msgstr "Name" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Unit" -msgstr "Einheit" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Note" -msgstr "Notiz" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Net price" -msgstr "Netto Preis" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Gross price" -msgstr "Brutto Preis" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Tax" -msgstr "Steuer" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Deposit" -msgstr "Pfand" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Fc markup" -msgstr "FC-Aufschlag" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Order number" -msgstr "Bestellnummer" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Unit quantity" -msgstr "Gebindegröße" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Units to order" -msgstr "Einheiten zu Bestellen" - -#: app/models/group.rb:- -msgid "group" -msgstr "Gruppe" - -#: app/models/group.rb:- -msgid "Group|Type" -msgstr "Typ" - -#: app/models/group.rb:- -msgid "Group|Name" -msgstr "Name" - -#: app/models/group.rb:- -msgid "Group|Description" -msgstr "Beschreibung" - -#: app/models/group.rb:- -msgid "Group|Actual size" -msgstr "aktuelle Gruppengröße" - -#: app/models/group.rb:- -msgid "Group|Account balance" -msgstr "Kontostand" - -#: app/models/group.rb:- -msgid "Group|Account updated" -msgstr "Konte akutalisiert" - -#: app/models/group.rb:- -msgid "Group|Created on" -msgstr "Erstellt am" - -#: app/models/group.rb:- -msgid "Group|Role admin" -msgstr "" - -#: app/models/group.rb:- -msgid "Group|Role suppliers" -msgstr "" - -#: app/models/group.rb:- -msgid "Group|Role article meta" -msgstr "" - -#: app/models/group.rb:- -msgid "Group|Role finance" -msgstr "" - -#: app/models/group.rb:- -msgid "Group|Role orders" -msgstr "" - -#: app/models/group.rb:- -msgid "Group|Weekly task" -msgstr "Wöchentliche Aufgabe" - -#: app/models/group.rb:- -msgid "Group|Weekday" -msgstr "Wochentag" - -#: app/models/group.rb:- -msgid "Group|Task name" -msgstr "Aufgabenname" - -#: app/models/group.rb:- -msgid "Group|Task description" -msgstr "Aufgabenbeschreibung" - -#: app/models/group.rb:- -msgid "Group|Task required users" -msgstr "Aufgabenvorlage: Benötigte Benutzer" - -#: app/models/task.rb:- -msgid "task" -msgstr "Aufgabe" - -#: app/models/task.rb:- -msgid "Task|Name" -msgstr "Name" - -#: app/models/task.rb:- -msgid "Task|Description" -msgstr "Beschreibung" - -#: app/models/task.rb:- -msgid "Task|Due date" -msgstr "Fälligkeitsdatum" - -#: app/models/task.rb:- -msgid "Task|Done" -msgstr "Erledigt" - -#: app/models/task.rb:- -msgid "Task|Group" -msgstr "Gruppe" - -#: app/models/task.rb:- -msgid "Task|Assigned" -msgstr "zugeordnet" - -#: app/models/task.rb:- -msgid "Task|Created on" -msgstr "Erstellt am" - -#: app/models/task.rb:- -msgid "Task|Updated on" -msgstr "aktualisiert am" - -#: app/models/task.rb:- -msgid "Task|Required users" -msgstr "Benötigte Benutzerinnen" - -#: app/models/group_order_article_result.rb:- -msgid "group order article result" -msgstr "Gruppenbestellergebnis" - -#: app/models/group_order_article_result.rb:- -msgid "GroupOrderArticleResult|Order article result" -msgstr "" - -#: app/models/group_order_article_result.rb:- -msgid "GroupOrderArticleResult|Group order result" -msgstr "" - -#: app/models/group_order_article_result.rb:- -msgid "GroupOrderArticleResult|Quantity" -msgstr "Menge" - -#: app/models/group_order_article_result.rb:- -msgid "GroupOrderArticleResult|Tolerance" -msgstr "" - -#: app/views/login/forgot_password.rhtml:1 -msgid "Forgot password?" -msgstr "Passwort vergessen?" - -#: app/views/login/forgot_password.rhtml:4 -msgid "No problem: You can enter a new password here." -msgstr "Kein Problem: Du kannst hier ein neues Passwort eingeben." - -#: app/views/login/forgot_password.rhtml:5 -msgid "" -"Just enter your email address. Then you'll receive an email with the " -"detailed instructions." -msgstr "" -"Einfach Deine Email-Adresse eingeben. Du bekommst dann eine Mail mit den " -"genauen Anweisungen." - -#: app/views/login/forgot_password.rhtml:10 -msgid "Reset your password" -msgstr "Passwort zurücksetzen" - -#: app/views/login/forgot_password.rhtml:10 app/views/articles/list.haml:67 -#: app/views/articles/parse_articles.haml:39 -msgid "Back" -msgstr "Zurück" - -#: app/views/ordering/order.rhtml:9 app/views/ordering/_finishedOrders.haml:5 -#: app/views/ordering/my_order_result.haml:21 -#: app/views/ordering/_bookedOrders.haml:7 -#: app/views/ordering/_currentOrders.haml:11 app/views/orders/show.haml:21 -#: app/views/orders/index.haml:21 app/views/orders/_list.haml:7 -#: app/views/orders/_form.html.haml:9 -msgid "Supplier" -msgstr "Lieferant" - -#: app/views/ordering/order.rhtml:10 app/views/ordering/_finishedOrders.haml:6 -#: app/views/ordering/my_order_result.haml:28 -#: app/views/ordering/_bookedOrders.haml:8 -#: app/views/ordering/_currentOrders.haml:12 app/views/orders/show.haml:31 -#: app/views/orders/index.haml:22 app/views/orders/_list.haml:10 -#: app/views/orders/_form.html.haml:23 -msgid "End" -msgstr "Ende" - -#: app/views/ordering/order.rhtml:12 -msgid "person ordered at last" -msgstr "Zuletzt bestellt" - -#: app/views/ordering/order.rhtml:14 app/views/ordering/order.rhtml:146 -msgid "Credit available" -msgstr "Verfügbares Guthaben" - -#: app/views/ordering/order.rhtml:19 -#: app/views/ordering/my_order_result.haml:25 -#: app/views/articles/upload_articles.haml:15 app/views/articles/_list.haml:26 -#: app/views/articles/parse_articles.haml:13 app/views/orders/show.haml:25 -#: app/views/orders/_form.html.haml:15 app/views/orders/_form.html.haml:42 -#: app/views/index/index.haml:62 app/views/finance/new_transactions.haml:5 -msgid "Note" -msgstr "Notiz" - -#: app/views/ordering/order.rhtml:25 -msgid "Minimum order quantity" -msgstr "Mindestbestellmenge" - -#: app/views/ordering/order.rhtml:30 -msgid "Order quanitity so far" -msgstr "Bisherige Gesamtbestellmenge" - -#: app/views/ordering/order.rhtml:42 -msgid "Other orders" -msgstr "Andere Bestellungen" - -#: app/views/ordering/order.rhtml:72 -#: app/views/articles/upload_articles.haml:15 -#: app/views/articles/parse_articles.haml:14 -#: app/views/orders/_form.html.haml:44 -msgid "Manufacturer" -msgstr "Herstellerin" - -#: app/views/ordering/order.rhtml:73 -msgid "Package" -msgstr "Gebinde" - -#: app/views/ordering/order.rhtml:74 app/views/articles/_list.haml:28 -#: app/views/orders/_show_unfinished.haml:5 -#: app/views/orders/_form.html.haml:46 -msgid "Price" -msgstr "Preis" - -#: app/views/ordering/order.rhtml:75 -msgid "totally ordered packages" -msgstr "Insgesamt bestellte Gebinde" - -#: app/views/ordering/order.rhtml:75 -msgid "Ord." -msgstr "Best." - -#: app/views/ordering/order.rhtml:77 -msgid "Tolerance" -msgstr "Toleranz" - -#: app/views/ordering/order.rhtml:78 app/views/index/index.haml:63 -#: app/views/finance/new_transactions.haml:11 -msgid "Amount" -msgstr "Betrag" - -#: app/views/ordering/order.rhtml:100 -msgid "Show note" -msgstr "Zeige Notiz" - -#: app/views/ordering/order.rhtml:142 -msgid "Total amount" -msgstr "Gesamtbetrag" - -#: app/views/ordering/order.rhtml:150 -msgid "New account balance" -msgstr "Neuer Kontostand" - -#: app/views/ordering/order.rhtml:155 -msgid "Save order" -msgstr "Bestellung speichern" - -#: app/views/ordering/order.rhtml:155 app/views/tasks/edit.haml:8 -#: app/views/orders/edit.html.haml:7 app/views/orders/new.html.haml:7 -#: app/views/finance/new_transactions.haml:20 -msgid "Cancel" -msgstr "Abbrechen" - -#: app/views/index/myProfile.rhtml:1 -msgid "edit my profile" -msgstr "Mein Profil" - -#: app/views/index/myProfile.rhtml:2 -msgid "" -"Here you can change your preferences. For example you can change your phone " -"number or your password.\n" -"
\n" -"You can also see in which workgroups you are.\n" -"

\n" -msgstr "" -"Hier kannst du deine persönlichen Einstellungen ändern. Zum Beispiel deine " -"Telefonnummer oder dein Passwort.
\n" -"Außerdem siehst du, bei welchen Arbeitsgruppen du Mitglied bist.

\n" - -#: app/views/index/myProfile.rhtml:25 -msgid "Cancel membership" -msgstr "Mitgliedschaft beenden" - -#: app/views/index/myProfile.rhtml:25 -msgid "Are you sure to cancel this membership?" -msgstr "Bist Du wirklich sicher die Mitgliedschaft zu beenden?" - -#: app/views/shared/_loginInfo.haml:3 app/views/shared/_nav.haml:51 -msgid "User" -msgstr "Benutzerinnen" - -#: app/views/shared/_loginInfo.haml:4 -msgid "User Settings" -msgstr "Persönliche Einstellungen" - -#: app/views/shared/_loginInfo.haml:6 -msgid "Go to your FoodCoop-Hompage" -msgstr "Gehe zur Deiner FoodCoop-Hompage" - -#: app/views/shared/_loginInfo.haml:7 -msgid "Help" -msgstr "Hilfe" - -#: app/views/shared/_loginInfo.haml:8 -msgid "Logout" -msgstr "Abmelden" - -#: app/views/shared/_nav.haml:4 -msgid "Startpage" -msgstr "Startseite" - -#: app/views/shared/_nav.haml:4 -msgid "The Startpage. A good Startpoint." -msgstr "Die Startseite. Ein guter Ausgabspunkt zum Entdecken der Foodsoft." - -#: app/views/shared/_nav.haml:6 app/views/index/_showGroup.haml:20 -msgid "Members" -msgstr "Mitglieder" - -#: app/views/shared/_nav.haml:6 -msgid "Here you find a List with all Foodcoop members." -msgstr "Eine Liste mit allen Foodcoop Mitgliedern" - -#: app/views/shared/_nav.haml:7 -msgid "Workgroups" -msgstr "Arbeitsgruppen" - -#: app/views/shared/_nav.haml:7 -msgid "" -"Here you find all Workgroups. For Example the sortinggroup with all their " -"members." -msgstr "" -"Eine Liste mit allen Arbeitsgruppen. Z.B. Sortiergruppe, Palettengruppe,..." - -#: app/views/shared/_nav.haml:8 app/views/index/index.haml:9 -msgid "Tasks" -msgstr "Aufgaben" - -#: app/views/shared/_nav.haml:8 -msgid "Here you see the tasks. Please do something for the foodcoop!" -msgstr "" -"Hier gehts zu den Aufgaben. Bitte hilf mit, damit alle Aufgaben erledigt " -"werden." - -#: app/views/shared/_nav.haml:10 -msgid "Messages" -msgstr "Nachrichten" - -#: app/views/shared/_nav.haml:12 app/views/index/index.haml:47 -msgid "My ordergroup" -msgstr "Meine Bestellgruppe" - -#: app/views/shared/_nav.haml:12 -msgid "" -"Here are informations about your ordergroup. You can also see your accounts " -"current" -msgstr "Informationen über deine Bestellgruppe sowie den aktuellen Kontostand." - -#: app/views/shared/_nav.haml:13 -msgid "My Profile" -msgstr "Mein Profil" - -#: app/views/shared/_nav.haml:13 -msgid "Here are your personal Settings" -msgstr "Deine persönlichen Einstellungen" - -#: app/views/shared/_nav.haml:21 app/views/index/_start_nav.haml:15 -msgid "Orders" -msgstr "Bestellungen" - -#: app/views/shared/_nav.haml:24 app/views/orders/_form.html.haml:5 -msgid "Order" -msgstr "Bestellen" - -#: app/views/shared/_nav.haml:25 -msgid "My orders" -msgstr "Meine Bestellungen" - -#: app/views/shared/_nav.haml:27 app/views/orders/index.haml:1 -msgid "Manage orders" -msgstr "Gesamtbestellungen verwalten" - -#: app/views/shared/_nav.haml:34 -msgid "Show articles" -msgstr "Artikel anzeigen" - -#: app/views/shared/_nav.haml:35 -msgid "Categories" -msgstr "Kategorien" - -#: app/views/shared/_nav.haml:36 app/views/index/_start_nav.haml:27 -msgid "Suppliers" -msgstr "Lieferanten" - -#: app/views/shared/_nav.haml:41 -msgid "Finance" -msgstr "Finanzen" - -#: app/views/shared/_nav.haml:43 app/views/finance/listOrdergroups.haml:8 -msgid "Ordergroups" -msgstr "Bestellgruppen" - -#: app/views/shared/_nav.haml:44 -msgid "Balance orders" -msgstr "Bestellungen abrechnen" - -#: app/views/shared/_nav.haml:49 app/views/index/_start_nav.haml:40 -msgid "Administration" -msgstr "Administration" - -#: app/views/shared/_nav.haml:52 app/views/admin/listGroups.haml:1 -msgid "Groups" -msgstr "Gruppen" - -#: app/views/login/invite.haml:1 -msgid "Invitation" -msgstr "Einladung" - -#: app/views/login/invite.haml:3 -msgid "You are invited to join:" -msgstr "Du bist eingeladen Mitglied einer Bestellgruppe zu werden:" - -#: app/views/login/invite.haml:5 -msgid "" -"If you accept the invitation and want to join the foodcoop please fill out " -"the form." -msgstr "" -"Wenn Du die Einladung annimmst und bei der Foodcoop mitmachen willst, dann " -"fülle bitte das folgende Formular aus." - -#: app/views/login/invite.haml:12 -msgid "Nickname (for log in)" -msgstr "Nickname (für den Login)" - -#: app/views/login/invite.haml:16 app/views/admin/_listUsers.haml:13 -msgid "First name" -msgstr "Vorname" - -#: app/views/login/invite.haml:20 app/views/admin/_listUsers.haml:14 -msgid "Last name" -msgstr "Nachname" - -#: app/views/login/invite.haml:24 -msgid "Phone" -msgstr "Telefon" - -#: app/views/login/invite.haml:28 -msgid "Address" -msgstr "Adresse" - -#: app/views/login/invite.haml:32 app/views/login/login.haml:13 -msgid "Password" -msgstr "Passwort" - -#: app/views/login/invite.haml:36 -msgid "Passwort confirmation" -msgstr "Passwort Bestätigung" - -#: app/views/login/invite.haml:40 -msgid "Settings" -msgstr "Einstellungen" - -#: app/views/login/invite.haml:46 -msgid "Send" -msgstr "Senden" - -#: app/views/login/login.haml:1 -msgid "Login" -msgstr "Anmeldung" - -#: app/views/login/login.haml:9 app/views/admin/_listUsers.haml:12 -msgid "Username" -msgstr "Benutzername" - -#: app/views/login/login.haml:16 -msgid "Login!" -msgstr "Anmeldung!" - -#: app/views/login/login.haml:18 -msgid "Forgot Password?" -msgstr "Passwort vergessen?" - -#: app/views/login/login.haml:21 -msgid "Cookies must be accepted!" -msgstr "Kekse müssen akzeptiert werden!" - -#: app/views/ordering/_finishedOrders.haml:7 -#: app/views/ordering/_bookedOrders.haml:9 -#: app/views/ordering/_finished_order_result.haml:32 -#: app/views/ordering/_currentOrders.haml:14 -msgid "Sum" -msgstr "Summe" - -#: app/views/ordering/_finishedOrders.haml:13 -#: app/views/ordering/_finishedOrders.haml:21 -#: app/views/ordering/_finishedOrders.haml:27 -#: app/views/ordering/my_order_result.haml:22 -#: app/views/ordering/_bookedOrders.haml:15 -#: app/views/ordering/_bookedOrders.haml:23 -#: app/views/ordering/_bookedOrders.haml:29 app/views/orders/show.haml:22 -#: app/views/orders/_list.haml:17 app/views/finance/listOrders.haml:27 -#: app/views/finance/_summary.haml:2 -msgid "nonexistent" -msgstr "nicht vorhanden" - -#: app/views/ordering/index.haml:1 -msgid "Order Overview" -msgstr "Bestellübersicht" - -#: app/views/ordering/index.haml:10 app/views/finance/_listOrdergroups.haml:17 -msgid "Account balance" -msgstr "Kontostand" - -#: app/views/ordering/index.haml:13 -msgid "Current orders" -msgstr "Laufende Bestellungen" - -#: app/views/ordering/index.haml:16 -msgid "Unrecorded orders" -msgstr "Unverbuchte Bestellungen" - -#: app/views/ordering/index.haml:19 -msgid "Available" -msgstr "Verfügbar" - -#: app/views/ordering/index.haml:29 -msgid "unrecorded orders" -msgstr "Unverbuchte Bestellungen" - -#: app/views/ordering/index.haml:34 -msgid "total order value" -msgstr "Gesamtbestellwert" - -#: app/views/ordering/index.haml:41 -msgid "balanced orders" -msgstr "Abgerechnete Bestellungen" - -#: app/views/ordering/index.haml:45 -msgid "more..." -msgstr "mehr..." - -#: app/views/ordering/my_order_result.haml:1 -msgid "Your result for" -msgstr "Dein Ergebnis für" - -#: app/views/ordering/my_order_result.haml:3 app/views/orders/show.haml:3 -msgid "Previous order" -msgstr "Vorige Bestellung" - -#: app/views/ordering/my_order_result.haml:5 -#: app/views/ordering/myOrders.haml:7 app/views/orders/show.haml:5 -msgid "Overview" -msgstr "Übersicht" - -#: app/views/ordering/my_order_result.haml:7 app/views/orders/show.haml:7 -msgid "Next order" -msgstr "Nächste Bestellung" - -#: app/views/ordering/my_order_result.haml:12 app/views/orders/show.haml:12 -msgid "Summary" -msgstr "Zusammenfassung" - -#: app/views/ordering/my_order_result.haml:31 -msgid "Order value" -msgstr "Bestellwert" - -#: app/views/ordering/my_order_result.haml:38 -msgid "Cleared by" -msgstr "Abgerechnet durch" - -#: app/views/ordering/my_order_result.haml:38 app/views/orders/show.haml:16 -msgid "Order isn't balanced yet" -msgstr "Bestellung ist noch nicht abgerechnet" - -#: app/views/ordering/my_order_result.haml:39 -msgid "read/add comments" -msgstr "lese/schreibe Kommentare" - -#: app/views/ordering/my_order_result.haml:44 -#: app/views/ordering/_currentOrders.haml:4 app/views/orders/index.haml:14 -msgid "Running orders" -msgstr "Laufende Bestellungen" - -#: app/views/ordering/my_order_result.haml:55 -msgid "Overview of articles" -msgstr "Artikelübersicht" - -#: app/views/ordering/my_order_result.haml:62 -msgid "You haven't ordered" -msgstr "Du hast nicht bestellt." - -#: app/views/ordering/my_order_result.haml:71 -msgid "You haven't ordered yet." -msgstr "Du hast noch nicht bestellt." - -#: app/views/ordering/my_order_result.haml:72 -msgid "Order now" -msgstr "Jetzt bestellen" - -#: app/views/ordering/my_order_result.haml:78 app/views/orders/show.haml:84 -msgid "Comments" -msgstr "Kommentare" - -#: app/views/ordering/my_order_result.haml:85 -msgid "New comment" -msgstr "Neuer Kommentar" - -#: app/views/ordering/_finished_order_result.haml:5 -#: app/views/articles/upload_articles.haml:15 -#: app/views/articles/parse_articles.haml:20 -#: app/views/orders/_show_unfinished.haml:4 -#: app/views/orders/_form.html.haml:45 -msgid "Unit quantity" -msgstr "Gebindegröße" - -#: app/views/ordering/_finished_order_result.haml:6 -msgid "Unit price" -msgstr "Einzelpreis" - -#: app/views/ordering/_finished_order_result.haml:7 -msgid "Received" -msgstr "Bekommen" - -#: app/views/ordering/_finished_order_result.haml:8 -#: app/views/orders/show.haml:41 -msgid "Total price" -msgstr "Gesamtpreis" - -#: app/views/ordering/myOrders.haml:2 -msgid "Orders of" -msgstr "Bestellungen von" - -#: app/views/ordering/myOrders.haml:6 -msgid "See current orders in" -msgstr "Laufende Bestellungen findest Du in der" - -#: app/views/ordering/myOrders.haml:9 -msgid "Also show orders, your ordergroup haven't participated:" -msgstr "" -"Zeige auch Bestellungen, bei denen Deine Bestellgruppe nicht bestellt hat." - -#: app/views/ordering/myOrders.haml:18 -msgid "finished/not balanced" -msgstr "beendet/nicht abgerechnet" - -#: app/views/ordering/_currentOrders.haml:13 -msgid "Who ordered?" -msgstr "Wer bestellte?" - -#: app/views/ordering/_currentOrders.haml:31 -msgid "Total sum" -msgstr "Gesamtbetrag" - -#: app/views/ordering/_currentOrders.haml:34 app/views/orders/index.haml:35 -msgid "There aren't current orders at the moment." -msgstr "Es gibt derzeit keine laufenden Bestellungen." - -#: app/views/articles/upload_articles.haml:1 -#: app/views/articles/upload_articles.haml:18 app/views/articles/list.haml:52 -msgid "Upload articles" -msgstr "Artikel hochladen" - -#: app/views/articles/upload_articles.haml:4 -msgid "" -"The file-type must be \"csv\" (textfile). Use a semicolon (\";\") to " -"seperate the fields and double quotes (\"Bananas...\") for the text." -msgstr "" -"Die Datei muss vom Typ \"csv\" (Textdatei) sein. Als Feldtrenner benutze ein " -"Semikolon (\";\") und als Texttrenner doppelte Anführungszeichen " -"(\"Bananen...\")." - -#: app/views/articles/upload_articles.haml:6 -msgid "" -"The character-set has to be \"UTF-8\". The first row, maybe used for " -"headers, will be ignored." -msgstr "" -"Der Zeichensatz muss \"UTF-8\" sein. Die erste Zeile wird ignoriert, z.B. " -"für Spaltenüberschriften." - -#: app/views/articles/upload_articles.haml:9 -msgid "Correct order of the columns:" -msgstr "Reihenfolge der Spalten:" - -#: app/views/articles/upload_articles.haml:15 -msgid "Status (x=outlistet)" -msgstr "Status (x=ausgelistet)" - -#: app/views/articles/upload_articles.haml:15 -#: app/views/articles/parse_articles.haml:15 -#: app/views/orders/_form.html.haml:43 -msgid "Origin" -msgstr "Herkunft" - -#: app/views/articles/upload_articles.haml:15 app/views/articles/_list.haml:24 -#: app/views/articles/parse_articles.haml:16 -msgid "Unit" -msgstr "Einheit" - -#: app/views/articles/upload_articles.haml:15 -#: app/views/articles/parse_articles.haml:17 -msgid "Net price" -msgstr "Netto Preis" - -#: app/views/articles/upload_articles.haml:15 app/views/articles/_list.haml:29 -#: app/views/articles/parse_articles.haml:18 -msgid "Tax" -msgstr "Steuer" - -#: app/views/articles/upload_articles.haml:15 app/views/articles/_list.haml:30 -#: app/views/articles/parse_articles.haml:19 -msgid "Deposit" -msgstr "Pfand" - -#: app/views/articles/upload_articles.haml:15 -msgid "Scale quantity" -msgstr "Staffelmenge" - -#: app/views/articles/upload_articles.haml:15 -msgid "Scale price" -msgstr "Staffelpreis" - -#: app/views/articles/upload_articles.haml:15 app/views/articles/_list.haml:22 -#: app/views/articles/parse_articles.haml:21 -msgid "Category" -msgstr "Kategorie" - -#: app/views/articles/_list.haml:2 -msgid "Number of found articles :" -msgstr "Anzahl gefundener Artikel :" - -#: app/views/articles/_list.haml:27 -msgid "UnitQu" -msgstr "GebGr" - -#: app/views/articles/list.haml:2 -msgid "Articles from" -msgstr "Artikel von" - -#: app/views/articles/list.haml:10 -msgid "External database" -msgstr "Externe Datenbank" - -#: app/views/articles/list.haml:12 -msgid "search/import" -msgstr "suchen/importieren" - -#: app/views/articles/list.haml:13 -msgid "sync" -msgstr "synchronisieren" - -#: app/views/articles/list.haml:18 -msgid "Change supplier:" -msgstr "Lieferantin wechseln:" - -#: app/views/articles/list.haml:26 -msgid "Import articles" -msgstr "Artikel importieren" - -#: app/views/articles/list.haml:31 -msgid "Search articles" -msgstr "Artikel Suchen" - -#: app/views/articles/list.haml:33 -msgid "Search in following lists: " -msgstr "Suche in folgenden Listen: " - -#: app/views/articles/list.haml:38 -msgid "only regional:" -msgstr "nur regional:" - -#: app/views/articles/list.haml:42 -msgid "Close" -msgstr "Schließen" - -#: app/views/articles/list.haml:48 -msgid "New article" -msgstr "Neuer Artikel" - -#: app/views/articles/list.haml:50 -msgid "Edit all" -msgstr "Alle bearbeiten" - -#: app/views/articles/list.haml:54 -msgid "Create order" -msgstr "Bestellung anlegen" - -#: app/views/articles/list.haml:59 -msgid "Search in article name: " -msgstr "Suche in Artikelnamen: " - -#: app/views/articles/list.haml:61 -msgid "Search" -msgstr "Suche" - -#: app/views/articles/parse_articles.haml:1 -msgid "Upload Articles" -msgstr "Artikel hochladen" - -#: app/views/articles/parse_articles.haml:4 -msgid "" -"Please check the parsed articles and choose a supplier at the end of page." -msgstr "" -"Bitte überprüfe die eingelesenen Artikel und wähle unten einen Lieferanten " -"aus." - -#: app/views/articles/parse_articles.haml:6 -msgid "At the moment there is now checking of dublicate articles." -msgstr "Momentan gibt es keine Überprüfung von doppelten Artikeln." - -#: app/views/articles/parse_articles.haml:36 -msgid "Choose a supplier:" -msgstr "Lieferantin auswählen:" - -#: app/views/articles/parse_articles.haml:38 -msgid "Save articles" -msgstr "Artikel speichern" - -#: app/views/admin/_listUsers.haml:15 -msgid "Email" -msgstr "E-Mail" - -#: app/views/admin/_listUsers.haml:16 -msgid "Roles" -msgstr "Rollen" - -#: app/views/admin/_listUsers.haml:17 -msgid "Last Login" -msgstr "Letzter Login" - -#: app/views/tasks/myTasks.haml:1 app/views/tasks/_nav.haml:11 -#: app/views/index/_start_nav.haml:7 -msgid "My tasks" -msgstr "Meine Aufgaben" - -#: app/views/tasks/show.haml:1 -msgid "Task in detail" -msgstr "Aufgabe im Detail" - -#: app/views/tasks/show.haml:11 app/views/tasks/_form.html.haml:9 -#: app/views/index/_showGroup.haml:7 -msgid "Description" -msgstr "Beschreibung" - -#: app/views/tasks/show.haml:14 app/views/tasks/_list.haml:3 -#: app/views/tasks/archive.haml:6 app/views/tasks/_form.html.haml:35 -msgid "Due date" -msgstr "Fälligkeitsdatum" - -#: app/views/tasks/show.haml:17 app/views/tasks/archive.haml:8 -#: app/views/tasks/_form.html.haml:14 -msgid "Responsible people" -msgstr "Verantwortliche Personen" - -#: app/views/tasks/show.haml:20 app/views/tasks/_form.html.haml:30 -msgid "Group" -msgstr "Gruppe" - -#: app/views/tasks/show.haml:27 app/views/tasks/_list.haml:29 -#: app/views/tasks/_list.haml:31 -msgid "Done" -msgstr "Erledigt" - -#: app/views/tasks/show.haml:33 app/views/orders/index.haml:32 -#: app/views/orders/_list.haml:21 -msgid "Edit" -msgstr "Bearbeiten" - -#: app/views/tasks/show.haml:35 -msgid "Delete" -msgstr "Löschen" - -#: app/views/tasks/show.haml:35 -msgid "Delete the task?" -msgstr "Die Aufgabe wirklich löschen?" - -#: app/views/tasks/index.haml:1 -msgid "Arrange tasks" -msgstr "Aufgaben zuweisen" - -#: app/views/tasks/index.haml:8 -msgid "Tasks for all" -msgstr "Aufgaben für alle" - -#: app/views/tasks/new.haml:1 -msgid "Create new task" -msgstr "Neue Aufgabe erstellen" - -#: app/views/tasks/new.haml:6 -msgid "Create task" -msgstr "Aufgabe erstellen" - -#: app/views/tasks/new.haml:9 app/views/tasks/edit.haml:10 -msgid "Members of the workgroups" -msgstr "Mitglieder der Arbeitsgruppen" - -#: app/views/tasks/_assignments.haml:3 app/views/finance/_order_group.haml:6 -msgid "Remove" -msgstr "Entfernen" - -#: app/views/tasks/_list.haml:4 app/views/tasks/archive.haml:7 -#: app/views/tasks/_form.html.haml:4 -msgid "Subject" -msgstr "Betreff" - -#: app/views/tasks/_list.haml:6 app/views/tasks/workgroup.haml:16 -msgid "Who will make it?" -msgstr "Wer macht das?" - -#: app/views/tasks/_list.haml:7 -msgid "How many are still required?" -msgstr "Wie viele werden noch benötigt?" - -#: app/views/tasks/_list.haml:25 app/views/tasks/workgroup.haml:17 -#: app/views/tasks/workgroup.haml:39 -msgid "Accept task" -msgstr "Aufgabe übernehmen" - -#: app/views/tasks/_list.haml:26 app/views/tasks/workgroup.haml:40 -msgid "Reject task" -msgstr "Aufgabe ablehnen" - -#: app/views/tasks/archive.haml:1 -msgid "Task archive" -msgstr "AufgabenArchiv" - -#: app/views/tasks/_form.html.haml:15 -msgid "tasks can have multiple assignments" -msgstr "Aufgaben können mehrere Verantwortliche haben" - -#: app/views/tasks/_form.html.haml:19 -msgid "use commas to seperate the names" -msgstr "Benutze Kommas, um mehrere Namen zu trennen" - -#: app/views/tasks/_form.html.haml:25 -msgid "How many users are altogether required?" -msgstr "Wie viele Verantwortliche werden insgesamt benötigt?" - -#: app/views/tasks/workgroup.haml:2 -msgid "Arrange tasks for" -msgstr "AufgabenVerteilung für" - -#: app/views/tasks/workgroup.haml:9 -msgid "Weekly tasks" -msgstr "Wöchentliche Aufgaben" - -#: app/views/tasks/workgroup.haml:15 -msgid "Date" -msgstr "Datum" - -#: app/views/tasks/workgroup.haml:33 -msgid "more" -msgstr "mehr" - -#: app/views/tasks/workgroup.haml:36 app/views/tasks/workgroup.haml:42 -msgid "Assign people" -msgstr "Personen zuweisen" - -#: app/views/tasks/workgroup.haml:47 app/views/index/_showGroup.haml:33 -msgid "No weekly tasks defined yet" -msgstr "Noch keine wöchentlichen Aufgaben angelegt" - -#: app/views/tasks/workgroup.haml:48 -msgid "Edit weekly tasks" -msgstr "Wöchentliche Aufgaben bearbeiten" - -#: app/views/tasks/workgroup.haml:52 -msgid "all tasks" -msgstr "Alle Aufgaben" - -#: app/views/tasks/_nav.haml:2 -msgid "TaskMenu" -msgstr "AufgabenMenu" - -#: app/views/tasks/_nav.haml:5 -msgid "Actions" -msgstr "Aktionen" - -#: app/views/tasks/_nav.haml:7 -msgid "New task" -msgstr "Neue Aufgabe" - -#: app/views/tasks/_nav.haml:9 -msgid "Pages" -msgstr "Seiten" - -#: app/views/tasks/_nav.haml:12 -msgid "All tasks" -msgstr "Alle Aufgaben" - -#: app/views/tasks/_nav.haml:13 -msgid "Tasks done" -msgstr "Erledigte Aufgaben" - -#: app/views/tasks/_nav.haml:16 -msgid "Group tasks" -msgstr "GruppenAufgaben" - -#: app/views/tasks/edit.haml:1 -msgid "Edit task" -msgstr "Aufgabe bearbeiten" - -#: app/views/tasks/edit.haml:6 -msgid "Save changes" -msgstr "Änderungen speichern" - -#: app/views/orders/show.haml:1 -msgid "Show order" -msgstr "Bestellung anzeigen" - -#: app/views/orders/show.haml:28 -msgid "Begin" -msgstr "Beginn" - -#: app/views/orders/show.haml:34 -msgid "Groups ordered" -msgstr "Gruppenbestellungen" - -#: app/views/orders/show.haml:45 app/views/orders/_show_unfinished.haml:32 -msgid "Ordered articles:" -msgstr "Bestellte Artikel:" - -#: app/views/orders/show.haml:53 -msgid "All articles" -msgstr "Alle Artikel" - -#: app/views/orders/show.haml:55 -msgid "Sort by groups" -msgstr "Gruppensortierung" - -#: app/views/orders/show.haml:56 app/views/orders/show.haml:59 -#: app/views/orders/show.haml:62 app/views/orders/show.haml:65 -#: app/views/orders/show.haml:66 -msgid "Download file" -msgstr "Datei runterladen" - -#: app/views/orders/show.haml:58 -msgid "Sort by articles" -msgstr "Artikelsortierung" - -#: app/views/orders/show.haml:61 -msgid "Matrix:" -msgstr "Matrix:" - -#: app/views/orders/show.haml:64 -msgid "FAX-template:" -msgstr "FAX-Vorlage:" - -#: app/views/orders/index.haml:6 -msgid "New Order" -msgstr "Neue Bestellung" - -#: app/views/orders/index.haml:7 -msgid "for" -msgstr "für" - -#: app/views/orders/index.haml:9 -msgid "Choose a supplier..." -msgstr "Lieferant auswählen..." - -#: app/views/orders/index.haml:30 -msgid "finish" -msgstr "beenden" - -#: app/views/orders/index.haml:30 app/views/orders/_list.haml:20 -msgid "Are you really sure to finish the order?" -msgstr "Bist Du wirklich sicher die Bestellung zu beenden?" - -#: app/views/orders/index.haml:33 app/views/orders/_list.haml:22 -msgid "Destroy" -msgstr "Löschen" - -#: app/views/orders/index.haml:33 app/views/orders/_list.haml:22 -msgid "Are you really sure you want to destroy the order?" -msgstr "Bist Du wirklich sicher, Du willst die Bestellung löschen?" - -#: app/views/orders/index.haml:39 -msgid "Expired/finished orders" -msgstr "abgelaufende/beendete Bestellungen" - -#: app/views/orders/_show_unfinished.haml:6 -msgid "Units ordered" -msgstr "bestellte Einheiten" - -#: app/views/orders/_show_unfinished.haml:7 -msgid "Result/Unit quantity" -msgstr "Ergebnis/Gebinde" - -#: app/views/orders/_show_unfinished.haml:28 -msgid "Total value" -msgstr "Gesamtbetrag" - -#: app/views/orders/_show_unfinished.haml:29 -msgid "(net/gross)" -msgstr "(netto/brutto)" - -#: app/views/orders/_list.haml:8 app/views/orders/_form.html.haml:19 -msgid "Start" -msgstr "Start" - -#: app/views/orders/_list.haml:11 -msgid "Status" -msgstr "Status" - -#: app/views/orders/_list.haml:20 -msgid "finish now" -msgstr "jetzt beenden" - -#: app/views/orders/_form.html.haml:32 -msgid "Use article selection from" -msgstr "Benutze Artikelauswahl von" - -#: app/views/orders/_form.html.haml:34 -msgid "Choose an order..." -msgstr "Bestellung wählen..." - -#: app/views/orders/_form.html.haml:66 -msgid "Select all" -msgstr "Alle auswählen" - -#: app/views/orders/edit.html.haml:1 -msgid "Edit order" -msgstr "Bestellung bearbeiten" - -#: app/views/orders/edit.html.haml:5 -#: app/views/finance/new_transactions.haml:18 -msgid "Save" -msgstr "Speichern" - -#: app/views/orders/new.html.haml:1 -msgid "New order" -msgstr "Neue Bestellung" - -#: app/views/orders/new.html.haml:5 -msgid "Put the order online" -msgstr "Bestellung online stellen" - -#: app/views/index/index.haml:13 -msgid "Your tasks for the upcoming week:" -msgstr "Deine Aufgaben für die nächste Woche:" - -#: app/views/index/index.haml:22 -msgid "Accept tasks" -msgstr "Aufgaben übernehmen" - -#: app/views/index/index.haml:25 -msgid "Accept/Reject task" -msgstr "Aufgabe übernehmen/ablehnen" - -#: app/views/index/index.haml:27 -msgid "Unassigned tasks" -msgstr "Nicht zugewiesene Aufgaben" - -#: app/views/index/index.haml:28 -msgid "There are" -msgstr "Es gibt" - -#: app/views/index/index.haml:29 app/views/index/index.haml:72 -msgid "more ..." -msgstr "mehr ..." - -#: app/views/index/index.haml:34 -msgid "Unread messages" -msgstr "Ungelesene Nachrichten" - -#: app/views/index/index.haml:37 -msgid "All messages" -msgstr "Alle Nachrichten" - -#: app/views/index/index.haml:52 -msgid "Account balance:" -msgstr "Kontostand:" - -#: app/views/index/index.haml:57 -msgid "Last transactions" -msgstr "Letzte Überweisungen" - -#: app/views/index/index.haml:60 -msgid "When" -msgstr "Wann" - -#: app/views/index/index.haml:61 -msgid "Who" -msgstr "Wer" - -#: app/views/index/foodcoop_members.haml:27 -msgid "Sort by Ordergroups :" -msgstr "Sortiere nach Bestellgruppen :" - -#: app/views/index/_list_members.haml:26 -msgid "Send user an email" -msgstr "Mitglied eine Nachricht schicken" - -#: app/views/index/_start_nav.haml:1 -msgid "Go to ..." -msgstr "Direkt zu ..." - -#: app/views/index/_start_nav.haml:4 -msgid "FoodCoop" -msgstr "FoodCoop" - -#: app/views/index/_start_nav.haml:6 -msgid "Member list" -msgstr "Mitgliederliste " - -#: app/views/index/_start_nav.haml:8 -msgid "Write message" -msgstr "Nachricht schreiben" - -#: app/views/index/_start_nav.haml:18 -msgid "Order summary" -msgstr "Bestellungen" - -#: app/views/index/_start_nav.haml:20 -msgid "Finish order" -msgstr "Bestellung beenden" - -#: app/views/index/_start_nav.haml:24 -msgid "Artcle management" -msgstr "Artikelverwaltung" - -#: app/views/index/_start_nav.haml:26 -msgid "Refresh articles" -msgstr "Artikel aktualisieren" - -#: app/views/index/_start_nav.haml:32 -msgid "Financial management" -msgstr "Finanzverwaltung" - -#: app/views/index/_start_nav.haml:34 -msgid "Update account balances" -msgstr "Kontostände aktualisieren" - -#: app/views/index/_start_nav.haml:35 -msgid "Cancel orders" -msgstr "Bestellungen abbrechen" - -#: app/views/index/_start_nav.haml:42 -#: app/views/finance/listOrdergroups.haml:24 -msgid "New ordergroup" -msgstr "Neue Bestellgruppe" - -#: app/views/index/_start_nav.haml:43 -msgid "New user" -msgstr "Neue Benutzerin" - -#: app/views/index/_showGroup.haml:10 -msgid "Group has access to" -msgstr "Gruppe hat Zugriff auf" - -#: app/views/index/_showGroup.haml:26 -msgid "Weekly task" -msgstr "Wöchentliche Aufgabe" - -#: app/views/index/_showGroup.haml:30 -msgid "at" -msgstr "am" - -#: app/views/index/_showGroup.haml:35 -msgid "Show all tasks" -msgstr "Zeige alle Aufgaben" - -#: app/views/index/_showGroup.haml:38 -msgid "Edit group" -msgstr "Gruppe bearbeiten" - -#: app/views/index/_showGroup.haml:40 -msgid "Send members a message" -msgstr "Schicke den Mitgliedern eine Nachricht" - -#: app/views/finance/listOrdergroups.haml:1 -msgid "Manage accounts" -msgstr "Kontenverwaltung" - -#: app/views/finance/listOrdergroups.haml:4 -msgid "To create multiple transactions at once please follow this " -msgstr "Um mehrere Transaktionen auf einmal zu erstellen folge diesem " - -#: app/views/finance/listOrdergroups.haml:5 -msgid "link" -msgstr "Link" - -#: app/views/finance/listOrdergroups.haml:12 -msgid "Search in name" -msgstr "Suche im Namen" - -#: app/views/finance/_listOrdergroups.haml:2 -msgid "Found" -msgstr "Gefunden" - -#: app/views/finance/_listOrdergroups.haml:16 -msgid "Size of group" -msgstr "Gruppengröße" - -#: app/views/finance/_listOrdergroups.haml:22 -msgid "Show ordergroup" -msgstr "Zeige Bestellgruppe" - -#: app/views/finance/_listOrdergroups.haml:26 -msgid "New transaction" -msgstr "Neue Überweisung" - -#: app/views/finance/_listOrdergroups.haml:27 -msgid "List transactions" -msgstr "Überweisung anzeigen" - -#: app/views/finance/new_transactions.haml:1 -msgid "Update multiple accounts" -msgstr "Aktualisiere mehrere Konten" - -#: app/views/finance/new_transactions.haml:10 -msgid "Ordergroup" -msgstr "Bestellgruppe" - -#: app/views/finance/new_transactions.haml:15 -msgid "Add another ordergroup" -msgstr "Weitere Bestellgruppe hinzufügen" - -#: app/views/finance/_order_group.haml:6 -msgid "Remove ordergroup" -msgstr "Bestellgruppe entfernen" - -#~ msgid "user" -#~ msgstr "Benutzerin" - -#~ msgid "User|Nick" -#~ msgstr "Benutzername" - -#~ msgid "User|Password hash" -#~ msgstr "Passwort" - -#~ msgid "User|Password salt" -#~ msgstr "Passwort" - -#~ msgid "User|First name" -#~ msgstr "Vorname" - -#~ msgid "User|Last name" -#~ msgstr "Nachname" - -#~ msgid "User|Email" -#~ msgstr "E-Mail" - -#~ msgid "User|Phone" -#~ msgstr "Telefon" - -#~ msgid "User|Address" -#~ msgstr "Adresse" - -#~ msgid "User|Created on" -#~ msgstr "Erstelle am" - -#~ msgid "User|Last login" -#~ msgstr "Letzter Login" diff --git a/po/foodsoft.pot b/po/foodsoft.pot deleted file mode 100644 index 058b2dd7..00000000 --- a/po/foodsoft.pot +++ /dev/null @@ -1,1911 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: 2.0\n" -"POT-Creation-Date: 2008-11-19 17:31+0100\n" -"PO-Revision-Date: 2007-11-16 15:07+0100\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" - -#: app/helpers/application_helper.rb:16 -msgid "Previous" -msgstr "" - -#: app/helpers/application_helper.rb:17 -msgid "Next" -msgstr "" - -#: app/helpers/application_helper.rb:35 -msgid "Per page: " -msgstr "" - -#: app/helpers/application_helper.rb:53 -msgid "Sort by this field" -msgstr "" - -#: app/controllers/articles_controller.rb:323 -msgid " ..in line " -msgstr "" - -#: app/controllers/articles_controller.rb:327 -msgid " articles are parsed successfully." -msgstr "" - -#: app/controllers/articles_controller.rb:329 -#: app/controllers/suppliers_controller.rb:68 -msgid "An error has occurred: " -msgstr "" - -#: app/controllers/articles_controller.rb:348 -msgid "The articles are saved successfully" -msgstr "" - -#: app/controllers/articles_controller.rb:352 -#: app/controllers/finance_controller.rb:129 -msgid "An error occured: " -msgstr "" - -#: app/controllers/articles_controller.rb:406 -msgid " ist not assigned to an external database." -msgstr "" - -#: app/controllers/articles_controller.rb:414 -msgid "The database is up to date." -msgstr "" - -#: app/controllers/index_controller.rb:255 -msgid "The membership was cancelled." -msgstr "" - -#: app/controllers/index_controller.rb:257 -msgid "You are not allowed to cancel this membership" -msgstr "" - -#: app/controllers/login_controller.rb:17 -msgid "Logged out." -msgstr "" - -#: app/controllers/login_controller.rb:23 -msgid "" -"You are not authorized to do this. Please log in as another user or go back." -msgstr "" - -#: app/controllers/login_controller.rb:42 -msgid "Sorry, login is not possible." -msgstr "" - -#: app/controllers/login_controller.rb:60 -msgid "" -"If your email address is listed in our system, you will now receive an email " -"with the instructions how to change your password." -msgstr "" - -#: app/controllers/login_controller.rb:69 -#: app/controllers/login_controller.rb:79 -msgid "Invalid or expired token, password cannot be changed." -msgstr "" - -#: app/controllers/login_controller.rb:87 -msgid "New password has been saved, please log in." -msgstr "" - -#: app/controllers/login_controller.rb:91 -msgid "" -"When trying to save your new password an error has occured. Please try again." -msgstr "" - -#: app/controllers/login_controller.rb:105 -msgid "Your invitation is invalid or has expired, sorry!" -msgstr "" - -#: app/controllers/login_controller.rb:108 -msgid "The group you are invited to join doesn't exist any more!" -msgstr "" - -#: app/controllers/login_controller.rb:121 -msgid "" -"Congratulations, your account has been created successfully. You can log in " -"now." -msgstr "" - -#: app/controllers/login_controller.rb:129 -msgid "An error has occured. Please try again." -msgstr "" - -#: app/controllers/orders_controller.rb:71 -msgid "The order has been created successfully." -msgstr "" - -#: app/controllers/orders_controller.rb:88 -msgid "The order has been updated." -msgstr "" - -#: app/controllers/orders_controller.rb:106 -msgid "The order has been finished successfully." -msgstr "" - -#: app/controllers/orders_controller.rb:137 -msgid "Order for" -msgstr "" - -#: app/controllers/orders_controller.rb:138 -msgid "Customer number" -msgstr "" - -#: app/controllers/orders_controller.rb:139 -msgid "Delivery date" -msgstr "" - -#: app/controllers/orders_controller.rb:141 -msgid "Shipping address" -msgstr "" - -#: app/controllers/orders_controller.rb:143 app/views/ordering/order.rhtml:64 -#: app/views/shared/_nav.haml:32 app/views/orders/show.haml:73 -#: app/views/orders/_form.html.haml:28 -msgid "Articles" -msgstr "" - -#: app/controllers/orders_controller.rb:144 -#: app/views/articles/upload_articles.haml:15 -#: app/views/articles/parse_articles.haml:11 -msgid "Number" -msgstr "" - -#: app/controllers/orders_controller.rb:144 app/views/ordering/order.rhtml:76 -msgid "Quantity" -msgstr "" - -#: app/controllers/orders_controller.rb:144 app/views/ordering/order.rhtml:70 -#: app/views/ordering/_finishedOrders.haml:4 -#: app/views/ordering/my_order_result.haml:18 -#: app/views/ordering/_bookedOrders.haml:6 -#: app/views/ordering/_finished_order_result.haml:4 -#: app/views/ordering/_currentOrders.haml:10 -#: app/views/articles/upload_articles.haml:15 app/views/articles/_list.haml:19 -#: app/views/articles/parse_articles.haml:12 app/views/tasks/show.haml:7 -#: app/views/orders/show.haml:18 app/views/orders/index.haml:20 -#: app/views/orders/_show_unfinished.haml:3 app/views/orders/_list.haml:5 -#: app/views/orders/_form.html.haml:11 app/views/orders/_form.html.haml:41 -#: app/views/finance/_listOrdergroups.haml:15 -msgid "Name" -msgstr "" - -#: app/controllers/orders_controller.rb:178 -#: app/controllers/ordering_controller.rb:204 -msgid "Comment has been created." -msgstr "" - -#: app/controllers/orders_controller.rb:181 -#: app/controllers/ordering_controller.rb:207 -msgid "The comment has not been saved. Check the title and try again." -msgstr "" - -#: app/controllers/finance_controller.rb:119 -msgid "Note is required!" -msgstr "" - -#: app/controllers/finance_controller.rb:126 -msgid "Saved all transactions successfully" -msgstr "" - -#: app/controllers/application.rb:33 -msgid "An error has occurred. Please login again." -msgstr "" - -#: app/models/invite.rb:- -msgid "invite" -msgstr "" - -#: app/models/invite.rb:- -msgid "Invite|Token" -msgstr "" - -#: app/models/invite.rb:- -msgid "Invite|Expires at" -msgstr "" - -#: app/models/invite.rb:- -msgid "Invite|Group" -msgstr "" - -#: app/models/invite.rb:- -msgid "Invite|User" -msgstr "" - -#: app/models/invite.rb:- -msgid "Invite|Email" -msgstr "" - -#: app/models/article.rb:- -msgid "article" -msgstr "" - -#: app/models/article.rb:- -msgid "Article|Name" -msgstr "" - -#: app/models/article.rb:- -msgid "Article|Supplier" -msgstr "" - -#: app/models/article.rb:- -msgid "Article|Article category" -msgstr "" - -#: app/models/article.rb:- -msgid "Article|Unit" -msgstr "" - -#: app/models/article.rb:- -msgid "Article|Note" -msgstr "" - -#: app/models/article.rb:- -msgid "Article|Availability" -msgstr "" - -#: app/models/article.rb:- -msgid "Article|Manufacturer" -msgstr "" - -#: app/models/article.rb:- -msgid "Article|Origin" -msgstr "" - -#: app/models/article.rb:- -msgid "Article|Shared updated on" -msgstr "" - -#: app/models/article.rb:- -msgid "Article|Net price" -msgstr "" - -#: app/models/article.rb:- -msgid "Article|Gross price" -msgstr "" - -#: app/models/article.rb:- -msgid "Article|Tax" -msgstr "" - -#: app/models/article.rb:- -msgid "Article|Deposit" -msgstr "" - -#: app/models/article.rb:- -msgid "Article|Unit quantity" -msgstr "" - -#: app/models/article.rb:- -msgid "Article|Order number" -msgstr "" - -#: app/models/article.rb:- -msgid "Article|Created at" -msgstr "" - -#: app/models/article.rb:- -msgid "Article|Updated at" -msgstr "" - -#: app/models/article.rb:95 -msgid " cannot be deleted. The article is used in a current order!" -msgstr "" - -#: app/models/article_category.rb:- -msgid "article category" -msgstr "" - -#: app/models/article_category.rb:- -msgid "ArticleCategory|Name" -msgstr "" - -#: app/models/article_category.rb:- -msgid "ArticleCategory|Description" -msgstr "" - -#: app/models/user.rb:36 -msgid "Get message with order result" -msgstr "" - -#: app/models/user.rb:37 -msgid "Get message if negative account balance" -msgstr "" - -#: app/models/user.rb:38 -msgid "Get messages as emails" -msgstr "" - -#: app/models/user.rb:39 -msgid "Phone is visible for foodcoop members" -msgstr "" - -#: app/models/user.rb:40 -msgid "Email is visible for foodcoop members" -msgstr "" - -#: app/models/user.rb:41 -msgid "Name is visible for foodcoop members" -msgstr "" - -#: app/models/user.rb:72 -msgid "Password is required" -msgstr "" - -#: app/models/user.rb:75 -msgid "Passwords doesn't match" -msgstr "" - -#: app/models/user.rb:77 -msgid "Password-length has to be between 5 and 25 characters" -msgstr "" - -#: app/models/supplier.rb:- -msgid "supplier" -msgstr "" - -#: app/models/supplier.rb:- -msgid "Supplier|Name" -msgstr "" - -#: app/models/supplier.rb:- -msgid "Supplier|Address" -msgstr "" - -#: app/models/supplier.rb:- -msgid "Supplier|Phone" -msgstr "" - -#: app/models/supplier.rb:- -msgid "Supplier|Phone2" -msgstr "" - -#: app/models/supplier.rb:- -msgid "Supplier|Fax" -msgstr "" - -#: app/models/supplier.rb:- -msgid "Supplier|Email" -msgstr "" - -#: app/models/supplier.rb:- -msgid "Supplier|Url" -msgstr "" - -#: app/models/supplier.rb:- -msgid "Supplier|Contact person" -msgstr "" - -#: app/models/supplier.rb:- -msgid "Supplier|Customer number" -msgstr "" - -#: app/models/supplier.rb:- -msgid "Supplier|Delivery days" -msgstr "" - -#: app/models/supplier.rb:- -msgid "Supplier|Order howto" -msgstr "" - -#: app/models/supplier.rb:- -msgid "Supplier|Note" -msgstr "" - -#: app/models/supplier.rb:- -msgid "Supplier|Shared supplier" -msgstr "" - -#: app/models/supplier.rb:- -msgid "Supplier|Min order quantity" -msgstr "" - -#: app/models/order.rb:- -msgid "order" -msgstr "" - -#: app/models/order.rb:- -msgid "Order|Name" -msgstr "" - -#: app/models/order.rb:- -msgid "Order|Supplier" -msgstr "" - -#: app/models/order.rb:- -msgid "Order|Starts" -msgstr "" - -#: app/models/order.rb:- -msgid "Order|Ends" -msgstr "" - -#: app/models/order.rb:- -msgid "Order|Note" -msgstr "" - -#: app/models/order.rb:- -msgid "Order|Finished" -msgstr "" - -#: app/models/order.rb:- -msgid "Order|Booked" -msgstr "" - -#: app/models/order.rb:- -msgid "Order|Lock version" -msgstr "" - -#: app/models/order.rb:- -msgid "Order|Updated by user" -msgstr "" - -#: app/models/order.rb:- -msgid "Order|Invoice amount" -msgstr "" - -#: app/models/order.rb:- -msgid "Order|Deposit" -msgstr "" - -#: app/models/order.rb:- -msgid "Order|Deposit credit" -msgstr "" - -#: app/models/order.rb:- -msgid "Order|Invoice number" -msgstr "" - -#: app/models/order.rb:- -msgid "Order|Invoice date" -msgstr "" - -#: app/models/order.rb:271 -msgid "running" -msgstr "" - -#: app/models/order.rb:273 app/views/orders/_list.haml:20 -msgid "expired" -msgstr "" - -#: app/models/order.rb:275 -msgid "finished" -msgstr "" - -#: app/models/order.rb:277 app/views/ordering/myOrders.haml:24 -msgid "balanced" -msgstr "" - -#: app/models/order.rb:288 -msgid "There must be at least one article selected" -msgstr "" - -#: app/models/financial_transaction.rb:- -msgid "financial transaction" -msgstr "" - -#: app/models/financial_transaction.rb:- -msgid "FinancialTransaction|Order group" -msgstr "" - -#: app/models/financial_transaction.rb:- -msgid "FinancialTransaction|Amount" -msgstr "" - -#: app/models/financial_transaction.rb:- -msgid "FinancialTransaction|Note" -msgstr "" - -#: app/models/financial_transaction.rb:- -msgid "FinancialTransaction|User" -msgstr "" - -#: app/models/financial_transaction.rb:- -msgid "FinancialTransaction|Created on" -msgstr "" - -#: app/models/message.rb:- -msgid "message" -msgstr "" - -#: app/models/message.rb:- -msgid "Message|Sender" -msgstr "" - -#: app/models/message.rb:- -msgid "Message|Recipient" -msgstr "" - -#: app/models/message.rb:- -msgid "Message|Recipients" -msgstr "" - -#: app/models/message.rb:- -msgid "Message|Subject" -msgstr "" - -#: app/models/message.rb:- -msgid "Message|Body" -msgstr "" - -#: app/models/message.rb:- -msgid "Message|Read" -msgstr "" - -#: app/models/message.rb:- -msgid "Message|Email state" -msgstr "" - -#: app/models/message.rb:- -msgid "Message|Created on" -msgstr "" - -#: app/models/order_article_result.rb:- -msgid "order article result" -msgstr "" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Order" -msgstr "" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Name" -msgstr "" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Unit" -msgstr "" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Note" -msgstr "" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Net price" -msgstr "" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Gross price" -msgstr "" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Tax" -msgstr "" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Deposit" -msgstr "" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Fc markup" -msgstr "" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Order number" -msgstr "" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Unit quantity" -msgstr "" - -#: app/models/order_article_result.rb:- -msgid "OrderArticleResult|Units to order" -msgstr "" - -#: app/models/group.rb:- -msgid "group" -msgstr "" - -#: app/models/group.rb:- -msgid "Group|Type" -msgstr "" - -#: app/models/group.rb:- -msgid "Group|Name" -msgstr "" - -#: app/models/group.rb:- -msgid "Group|Description" -msgstr "" - -#: app/models/group.rb:- -msgid "Group|Actual size" -msgstr "" - -#: app/models/group.rb:- -msgid "Group|Account balance" -msgstr "" - -#: app/models/group.rb:- -msgid "Group|Account updated" -msgstr "" - -#: app/models/group.rb:- -msgid "Group|Created on" -msgstr "" - -#: app/models/group.rb:- -msgid "Group|Role admin" -msgstr "" - -#: app/models/group.rb:- -msgid "Group|Role suppliers" -msgstr "" - -#: app/models/group.rb:- -msgid "Group|Role article meta" -msgstr "" - -#: app/models/group.rb:- -msgid "Group|Role finance" -msgstr "" - -#: app/models/group.rb:- -msgid "Group|Role orders" -msgstr "" - -#: app/models/group.rb:- -msgid "Group|Weekly task" -msgstr "" - -#: app/models/group.rb:- -msgid "Group|Weekday" -msgstr "" - -#: app/models/group.rb:- -msgid "Group|Task name" -msgstr "" - -#: app/models/group.rb:- -msgid "Group|Task description" -msgstr "" - -#: app/models/group.rb:- -msgid "Group|Task required users" -msgstr "" - -#: app/models/task.rb:- -msgid "task" -msgstr "" - -#: app/models/task.rb:- -msgid "Task|Name" -msgstr "" - -#: app/models/task.rb:- -msgid "Task|Description" -msgstr "" - -#: app/models/task.rb:- -msgid "Task|Due date" -msgstr "" - -#: app/models/task.rb:- -msgid "Task|Done" -msgstr "" - -#: app/models/task.rb:- -msgid "Task|Group" -msgstr "" - -#: app/models/task.rb:- -msgid "Task|Assigned" -msgstr "" - -#: app/models/task.rb:- -msgid "Task|Created on" -msgstr "" - -#: app/models/task.rb:- -msgid "Task|Updated on" -msgstr "" - -#: app/models/task.rb:- -msgid "Task|Required users" -msgstr "" - -#: app/models/group_order_article_result.rb:- -msgid "group order article result" -msgstr "" - -#: app/models/group_order_article_result.rb:- -msgid "GroupOrderArticleResult|Order article result" -msgstr "" - -#: app/models/group_order_article_result.rb:- -msgid "GroupOrderArticleResult|Group order result" -msgstr "" - -#: app/models/group_order_article_result.rb:- -msgid "GroupOrderArticleResult|Quantity" -msgstr "" - -#: app/models/group_order_article_result.rb:- -msgid "GroupOrderArticleResult|Tolerance" -msgstr "" - -#: app/views/login/forgot_password.rhtml:1 -msgid "Forgot password?" -msgstr "" - -#: app/views/login/forgot_password.rhtml:4 -msgid "No problem: You can enter a new password here." -msgstr "" - -#: app/views/login/forgot_password.rhtml:5 -msgid "" -"Just enter your email address. Then you'll receive an email with the " -"detailed instructions." -msgstr "" - -#: app/views/login/forgot_password.rhtml:10 -msgid "Reset your password" -msgstr "" - -#: app/views/login/forgot_password.rhtml:10 app/views/articles/list.haml:67 -#: app/views/articles/parse_articles.haml:39 -msgid "Back" -msgstr "" - -#: app/views/ordering/order.rhtml:9 app/views/ordering/_finishedOrders.haml:5 -#: app/views/ordering/my_order_result.haml:21 -#: app/views/ordering/_bookedOrders.haml:7 -#: app/views/ordering/_currentOrders.haml:11 app/views/orders/show.haml:21 -#: app/views/orders/index.haml:21 app/views/orders/_list.haml:7 -#: app/views/orders/_form.html.haml:9 -msgid "Supplier" -msgstr "" - -#: app/views/ordering/order.rhtml:10 app/views/ordering/_finishedOrders.haml:6 -#: app/views/ordering/my_order_result.haml:28 -#: app/views/ordering/_bookedOrders.haml:8 -#: app/views/ordering/_currentOrders.haml:12 app/views/orders/show.haml:31 -#: app/views/orders/index.haml:22 app/views/orders/_list.haml:10 -#: app/views/orders/_form.html.haml:23 -msgid "End" -msgstr "" - -#: app/views/ordering/order.rhtml:12 -msgid "person ordered at last" -msgstr "" - -#: app/views/ordering/order.rhtml:14 app/views/ordering/order.rhtml:146 -msgid "Credit available" -msgstr "" - -#: app/views/ordering/order.rhtml:19 -#: app/views/ordering/my_order_result.haml:25 -#: app/views/articles/upload_articles.haml:15 app/views/articles/_list.haml:26 -#: app/views/articles/parse_articles.haml:13 app/views/orders/show.haml:25 -#: app/views/orders/_form.html.haml:15 app/views/orders/_form.html.haml:42 -#: app/views/index/index.haml:61 app/views/finance/new_transactions.haml:5 -msgid "Note" -msgstr "" - -#: app/views/ordering/order.rhtml:25 -msgid "Minimum order quantity" -msgstr "" - -#: app/views/ordering/order.rhtml:30 -msgid "Order quanitity so far" -msgstr "" - -#: app/views/ordering/order.rhtml:42 -msgid "Other orders" -msgstr "" - -#: app/views/ordering/order.rhtml:72 -#: app/views/articles/upload_articles.haml:15 -#: app/views/articles/parse_articles.haml:14 -#: app/views/orders/_form.html.haml:44 -msgid "Manufacturer" -msgstr "" - -#: app/views/ordering/order.rhtml:73 -msgid "Package" -msgstr "" - -#: app/views/ordering/order.rhtml:74 app/views/articles/_list.haml:28 -#: app/views/orders/_show_unfinished.haml:5 -#: app/views/orders/_form.html.haml:46 -msgid "Price" -msgstr "" - -#: app/views/ordering/order.rhtml:75 -msgid "totally ordered packages" -msgstr "" - -#: app/views/ordering/order.rhtml:75 -msgid "Ord." -msgstr "" - -#: app/views/ordering/order.rhtml:77 -msgid "Tolerance" -msgstr "" - -#: app/views/ordering/order.rhtml:78 app/views/index/index.haml:62 -#: app/views/finance/new_transactions.haml:11 -msgid "Amount" -msgstr "" - -#: app/views/ordering/order.rhtml:100 -msgid "Show note" -msgstr "" - -#: app/views/ordering/order.rhtml:142 -msgid "Total amount" -msgstr "" - -#: app/views/ordering/order.rhtml:150 -msgid "New account balance" -msgstr "" - -#: app/views/ordering/order.rhtml:155 -msgid "Save order" -msgstr "" - -#: app/views/ordering/order.rhtml:155 app/views/tasks/edit.haml:8 -#: app/views/orders/edit.html.haml:7 app/views/orders/new.html.haml:7 -#: app/views/finance/new_transactions.haml:20 -msgid "Cancel" -msgstr "" - -#: app/views/index/myProfile.rhtml:1 -msgid "edit my profile" -msgstr "" - -#: app/views/index/myProfile.rhtml:2 -msgid "" -"Here you can change your preferences. For example you can change your phone " -"number or your password.\n" -"
\n" -"You can also see in which workgroups you are.\n" -"

\n" -msgstr "" - -#: app/views/index/myProfile.rhtml:25 -msgid "Cancel membership" -msgstr "" - -#: app/views/index/myProfile.rhtml:25 -msgid "Are you sure to cancel this membership?" -msgstr "" - -#: app/views/shared/_loginInfo.haml:3 app/views/shared/_nav.haml:51 -msgid "User" -msgstr "" - -#: app/views/shared/_loginInfo.haml:4 -msgid "User Settings" -msgstr "" - -#: app/views/shared/_loginInfo.haml:6 -msgid "Go to your FoodCoop-Hompage" -msgstr "" - -#: app/views/shared/_loginInfo.haml:7 -msgid "Help" -msgstr "" - -#: app/views/shared/_loginInfo.haml:8 -msgid "Logout" -msgstr "" - -#: app/views/shared/_nav.haml:4 -msgid "Startpage" -msgstr "" - -#: app/views/shared/_nav.haml:4 -msgid "The Startpage. A good Startpoint." -msgstr "" - -#: app/views/shared/_nav.haml:6 app/views/index/_showGroup.haml:20 -msgid "Members" -msgstr "" - -#: app/views/shared/_nav.haml:6 -msgid "Here you find a List with all Foodcoop members." -msgstr "" - -#: app/views/shared/_nav.haml:7 -msgid "Workgroups" -msgstr "" - -#: app/views/shared/_nav.haml:7 -msgid "" -"Here you find all Workgroups. For Example the sortinggroup with all their " -"members." -msgstr "" - -#: app/views/shared/_nav.haml:8 app/views/index/index.haml:9 -msgid "Tasks" -msgstr "" - -#: app/views/shared/_nav.haml:8 -msgid "Here you see the tasks. Please do something for the foodcoop!" -msgstr "" - -#: app/views/shared/_nav.haml:10 -msgid "Messages" -msgstr "" - -#: app/views/shared/_nav.haml:12 app/views/index/index.haml:46 -msgid "My ordergroup" -msgstr "" - -#: app/views/shared/_nav.haml:12 -msgid "" -"Here are informations about your ordergroup. You can also see your accounts " -"current" -msgstr "" - -#: app/views/shared/_nav.haml:13 -msgid "My Profile" -msgstr "" - -#: app/views/shared/_nav.haml:13 -msgid "Here are your personal Settings" -msgstr "" - -#: app/views/shared/_nav.haml:21 app/views/index/_start_nav.haml:15 -msgid "Orders" -msgstr "" - -#: app/views/shared/_nav.haml:24 app/views/orders/_form.html.haml:5 -msgid "Order" -msgstr "" - -#: app/views/shared/_nav.haml:25 -msgid "My orders" -msgstr "" - -#: app/views/shared/_nav.haml:27 app/views/orders/index.haml:1 -msgid "Manage orders" -msgstr "" - -#: app/views/shared/_nav.haml:34 -msgid "Show articles" -msgstr "" - -#: app/views/shared/_nav.haml:35 -msgid "Categories" -msgstr "" - -#: app/views/shared/_nav.haml:36 app/views/index/_start_nav.haml:27 -msgid "Suppliers" -msgstr "" - -#: app/views/shared/_nav.haml:41 -msgid "Finance" -msgstr "" - -#: app/views/shared/_nav.haml:43 app/views/finance/listOrdergroups.haml:8 -msgid "Ordergroups" -msgstr "" - -#: app/views/shared/_nav.haml:44 -msgid "Balance orders" -msgstr "" - -#: app/views/shared/_nav.haml:49 app/views/index/_start_nav.haml:40 -msgid "Administration" -msgstr "" - -#: app/views/shared/_nav.haml:52 app/views/admin/listGroups.haml:1 -msgid "Groups" -msgstr "" - -#: app/views/login/invite.haml:1 -msgid "Invitation" -msgstr "" - -#: app/views/login/invite.haml:3 -msgid "You are invited to join:" -msgstr "" - -#: app/views/login/invite.haml:5 -msgid "" -"If you accept the invitation and want to join the foodcoop please fill out " -"the form." -msgstr "" - -#: app/views/login/invite.haml:12 -msgid "Nickname (for log in)" -msgstr "" - -#: app/views/login/invite.haml:16 app/views/admin/_listUsers.haml:13 -msgid "First name" -msgstr "" - -#: app/views/login/invite.haml:20 app/views/admin/_listUsers.haml:14 -msgid "Last name" -msgstr "" - -#: app/views/login/invite.haml:24 -msgid "Phone" -msgstr "" - -#: app/views/login/invite.haml:28 -msgid "Address" -msgstr "" - -#: app/views/login/invite.haml:32 app/views/login/login.haml:13 -msgid "Password" -msgstr "" - -#: app/views/login/invite.haml:36 -msgid "Passwort confirmation" -msgstr "" - -#: app/views/login/invite.haml:40 -msgid "Settings" -msgstr "" - -#: app/views/login/invite.haml:46 -msgid "Send" -msgstr "" - -#: app/views/login/login.haml:1 -msgid "Login" -msgstr "" - -#: app/views/login/login.haml:9 app/views/admin/_listUsers.haml:12 -msgid "Username" -msgstr "" - -#: app/views/login/login.haml:16 -msgid "Login!" -msgstr "" - -#: app/views/login/login.haml:18 -msgid "Forgot Password?" -msgstr "" - -#: app/views/login/login.haml:21 -msgid "Cookies must be accepted!" -msgstr "" - -#: app/views/ordering/_finishedOrders.haml:7 -#: app/views/ordering/_bookedOrders.haml:9 -#: app/views/ordering/_finished_order_result.haml:32 -#: app/views/ordering/_currentOrders.haml:14 -msgid "Sum" -msgstr "" - -#: app/views/ordering/_finishedOrders.haml:13 -#: app/views/ordering/_finishedOrders.haml:21 -#: app/views/ordering/_finishedOrders.haml:27 -#: app/views/ordering/my_order_result.haml:22 -#: app/views/ordering/_bookedOrders.haml:15 -#: app/views/ordering/_bookedOrders.haml:23 -#: app/views/ordering/_bookedOrders.haml:29 app/views/orders/show.haml:22 -#: app/views/orders/_list.haml:17 app/views/finance/listOrders.haml:27 -#: app/views/finance/_summary.haml:2 -msgid "nonexistent" -msgstr "" - -#: app/views/ordering/index.haml:1 -msgid "Order Overview" -msgstr "" - -#: app/views/ordering/index.haml:10 app/views/finance/_listOrdergroups.haml:17 -msgid "Account balance" -msgstr "" - -#: app/views/ordering/index.haml:13 -msgid "Current orders" -msgstr "" - -#: app/views/ordering/index.haml:16 -msgid "Unrecorded orders" -msgstr "" - -#: app/views/ordering/index.haml:19 -msgid "Available" -msgstr "" - -#: app/views/ordering/index.haml:29 -msgid "unrecorded orders" -msgstr "" - -#: app/views/ordering/index.haml:34 -msgid "total order value" -msgstr "" - -#: app/views/ordering/index.haml:41 -msgid "balanced orders" -msgstr "" - -#: app/views/ordering/index.haml:45 -msgid "more..." -msgstr "" - -#: app/views/ordering/my_order_result.haml:1 -msgid "Your result for" -msgstr "" - -#: app/views/ordering/my_order_result.haml:3 app/views/orders/show.haml:3 -msgid "Previous order" -msgstr "" - -#: app/views/ordering/my_order_result.haml:5 -#: app/views/ordering/myOrders.haml:7 app/views/orders/show.haml:5 -msgid "Overview" -msgstr "" - -#: app/views/ordering/my_order_result.haml:7 app/views/orders/show.haml:7 -msgid "Next order" -msgstr "" - -#: app/views/ordering/my_order_result.haml:12 app/views/orders/show.haml:12 -msgid "Summary" -msgstr "" - -#: app/views/ordering/my_order_result.haml:31 -msgid "Order value" -msgstr "" - -#: app/views/ordering/my_order_result.haml:38 -msgid "Cleared by" -msgstr "" - -#: app/views/ordering/my_order_result.haml:38 app/views/orders/show.haml:16 -msgid "Order isn't balanced yet" -msgstr "" - -#: app/views/ordering/my_order_result.haml:39 -msgid "read/add comments" -msgstr "" - -#: app/views/ordering/my_order_result.haml:44 -#: app/views/ordering/_currentOrders.haml:4 app/views/orders/index.haml:14 -msgid "Running orders" -msgstr "" - -#: app/views/ordering/my_order_result.haml:55 -msgid "Overview of articles" -msgstr "" - -#: app/views/ordering/my_order_result.haml:62 -msgid "You haven't ordered" -msgstr "" - -#: app/views/ordering/my_order_result.haml:71 -msgid "You haven't ordered yet." -msgstr "" - -#: app/views/ordering/my_order_result.haml:72 -msgid "Order now" -msgstr "" - -#: app/views/ordering/my_order_result.haml:78 app/views/orders/show.haml:84 -msgid "Comments" -msgstr "" - -#: app/views/ordering/my_order_result.haml:85 -msgid "New comment" -msgstr "" - -#: app/views/ordering/_finished_order_result.haml:5 -#: app/views/articles/upload_articles.haml:15 -#: app/views/articles/parse_articles.haml:20 -#: app/views/orders/_show_unfinished.haml:4 -#: app/views/orders/_form.html.haml:45 -msgid "Unit quantity" -msgstr "" - -#: app/views/ordering/_finished_order_result.haml:6 -msgid "Unit price" -msgstr "" - -#: app/views/ordering/_finished_order_result.haml:7 -msgid "Received" -msgstr "" - -#: app/views/ordering/_finished_order_result.haml:8 -#: app/views/orders/show.haml:41 -msgid "Total price" -msgstr "" - -#: app/views/ordering/myOrders.haml:2 -msgid "Orders of" -msgstr "" - -#: app/views/ordering/myOrders.haml:6 -msgid "See current orders in" -msgstr "" - -#: app/views/ordering/myOrders.haml:9 -msgid "Also show orders, your ordergroup haven't participated:" -msgstr "" - -#: app/views/ordering/myOrders.haml:18 -msgid "finished/not balanced" -msgstr "" - -#: app/views/ordering/_currentOrders.haml:13 -msgid "Who ordered?" -msgstr "" - -#: app/views/ordering/_currentOrders.haml:31 -msgid "Total sum" -msgstr "" - -#: app/views/ordering/_currentOrders.haml:34 app/views/orders/index.haml:35 -msgid "There aren't current orders at the moment." -msgstr "" - -#: app/views/articles/upload_articles.haml:1 -#: app/views/articles/upload_articles.haml:18 app/views/articles/list.haml:52 -msgid "Upload articles" -msgstr "" - -#: app/views/articles/upload_articles.haml:4 -msgid "" -"The file-type must be \"csv\" (textfile). Use a semicolon (\";\") to " -"seperate the fields and double quotes (\"Bananas...\") for the text." -msgstr "" - -#: app/views/articles/upload_articles.haml:6 -msgid "" -"The character-set has to be \"UTF-8\". The first row, maybe used for " -"headers, will be ignored." -msgstr "" - -#: app/views/articles/upload_articles.haml:9 -msgid "Correct order of the columns:" -msgstr "" - -#: app/views/articles/upload_articles.haml:15 -msgid "Status (x=outlistet)" -msgstr "" - -#: app/views/articles/upload_articles.haml:15 -#: app/views/articles/parse_articles.haml:15 -#: app/views/orders/_form.html.haml:43 -msgid "Origin" -msgstr "" - -#: app/views/articles/upload_articles.haml:15 app/views/articles/_list.haml:24 -#: app/views/articles/parse_articles.haml:16 -msgid "Unit" -msgstr "" - -#: app/views/articles/upload_articles.haml:15 -#: app/views/articles/parse_articles.haml:17 -msgid "Net price" -msgstr "" - -#: app/views/articles/upload_articles.haml:15 app/views/articles/_list.haml:29 -#: app/views/articles/parse_articles.haml:18 -msgid "Tax" -msgstr "" - -#: app/views/articles/upload_articles.haml:15 app/views/articles/_list.haml:30 -#: app/views/articles/parse_articles.haml:19 -msgid "Deposit" -msgstr "" - -#: app/views/articles/upload_articles.haml:15 -msgid "Scale quantity" -msgstr "" - -#: app/views/articles/upload_articles.haml:15 -msgid "Scale price" -msgstr "" - -#: app/views/articles/upload_articles.haml:15 app/views/articles/_list.haml:22 -#: app/views/articles/parse_articles.haml:21 -msgid "Category" -msgstr "" - -#: app/views/articles/_list.haml:2 -msgid "Number of found articles :" -msgstr "" - -#: app/views/articles/_list.haml:27 -msgid "UnitQu" -msgstr "" - -#: app/views/articles/list.haml:2 -msgid "Articles from" -msgstr "" - -#: app/views/articles/list.haml:10 -msgid "External database" -msgstr "" - -#: app/views/articles/list.haml:12 -msgid "search/import" -msgstr "" - -#: app/views/articles/list.haml:13 -msgid "sync" -msgstr "" - -#: app/views/articles/list.haml:18 -msgid "Change supplier:" -msgstr "" - -#: app/views/articles/list.haml:26 -msgid "Import articles" -msgstr "" - -#: app/views/articles/list.haml:31 -msgid "Search articles" -msgstr "" - -#: app/views/articles/list.haml:33 -msgid "Search in following lists: " -msgstr "" - -#: app/views/articles/list.haml:38 -msgid "only regional:" -msgstr "" - -#: app/views/articles/list.haml:42 -msgid "Close" -msgstr "" - -#: app/views/articles/list.haml:48 -msgid "New article" -msgstr "" - -#: app/views/articles/list.haml:50 -msgid "Edit all" -msgstr "" - -#: app/views/articles/list.haml:54 -msgid "Create order" -msgstr "" - -#: app/views/articles/list.haml:59 -msgid "Search in article name: " -msgstr "" - -#: app/views/articles/list.haml:61 -msgid "Search" -msgstr "" - -#: app/views/articles/parse_articles.haml:1 -msgid "Upload Articles" -msgstr "" - -#: app/views/articles/parse_articles.haml:4 -msgid "" -"Please check the parsed articles and choose a supplier at the end of page." -msgstr "" - -#: app/views/articles/parse_articles.haml:6 -msgid "At the moment there is now checking of dublicate articles." -msgstr "" - -#: app/views/articles/parse_articles.haml:36 -msgid "Choose a supplier:" -msgstr "" - -#: app/views/articles/parse_articles.haml:38 -msgid "Save articles" -msgstr "" - -#: app/views/admin/_listUsers.haml:15 -msgid "Email" -msgstr "" - -#: app/views/admin/_listUsers.haml:16 -msgid "Roles" -msgstr "" - -#: app/views/admin/_listUsers.haml:17 -msgid "Last Login" -msgstr "" - -#: app/views/tasks/myTasks.haml:1 app/views/tasks/_nav.haml:11 -#: app/views/index/index.haml:28 app/views/index/_start_nav.haml:7 -msgid "My tasks" -msgstr "" - -#: app/views/tasks/show.haml:1 -msgid "Task in detail" -msgstr "" - -#: app/views/tasks/show.haml:11 app/views/tasks/_form.html.haml:9 -#: app/views/index/_showGroup.haml:7 -msgid "Description" -msgstr "" - -#: app/views/tasks/show.haml:14 app/views/tasks/_list.haml:3 -#: app/views/tasks/archive.haml:6 app/views/tasks/_form.html.haml:35 -msgid "Due date" -msgstr "" - -#: app/views/tasks/show.haml:17 app/views/tasks/archive.haml:8 -#: app/views/tasks/_form.html.haml:14 -msgid "Responsible people" -msgstr "" - -#: app/views/tasks/show.haml:20 app/views/tasks/_form.html.haml:30 -msgid "Group" -msgstr "" - -#: app/views/tasks/show.haml:27 app/views/tasks/_list.haml:29 -#: app/views/tasks/_list.haml:31 -msgid "Done" -msgstr "" - -#: app/views/tasks/show.haml:33 app/views/orders/index.haml:32 -#: app/views/orders/_list.haml:21 -msgid "Edit" -msgstr "" - -#: app/views/tasks/show.haml:35 -msgid "Delete" -msgstr "" - -#: app/views/tasks/show.haml:35 -msgid "Delete the task?" -msgstr "" - -#: app/views/tasks/index.haml:1 -msgid "Arrange tasks" -msgstr "" - -#: app/views/tasks/index.haml:8 -msgid "Tasks for all" -msgstr "" - -#: app/views/tasks/new.haml:1 -msgid "Create new task" -msgstr "" - -#: app/views/tasks/new.haml:6 -msgid "Create task" -msgstr "" - -#: app/views/tasks/new.haml:9 app/views/tasks/edit.haml:10 -msgid "Members of the workgroups" -msgstr "" - -#: app/views/tasks/_assignments.haml:3 app/views/finance/_order_group.haml:6 -msgid "Remove" -msgstr "" - -#: app/views/tasks/_list.haml:4 app/views/tasks/archive.haml:7 -#: app/views/tasks/_form.html.haml:4 -msgid "Subject" -msgstr "" - -#: app/views/tasks/_list.haml:6 app/views/tasks/workgroup.haml:16 -msgid "Who will make it?" -msgstr "" - -#: app/views/tasks/_list.haml:7 -msgid "How many are still required?" -msgstr "" - -#: app/views/tasks/_list.haml:25 app/views/tasks/workgroup.haml:17 -#: app/views/tasks/workgroup.haml:39 -msgid "Accept task" -msgstr "" - -#: app/views/tasks/_list.haml:26 app/views/tasks/workgroup.haml:40 -msgid "Reject task" -msgstr "" - -#: app/views/tasks/archive.haml:1 -msgid "Task archive" -msgstr "" - -#: app/views/tasks/_form.html.haml:15 -msgid "tasks can have multiple assignments" -msgstr "" - -#: app/views/tasks/_form.html.haml:19 -msgid "use commas to seperate the names" -msgstr "" - -#: app/views/tasks/_form.html.haml:25 -msgid "How many users are altogether required?" -msgstr "" - -#: app/views/tasks/workgroup.haml:2 -msgid "Arrange tasks for" -msgstr "" - -#: app/views/tasks/workgroup.haml:9 -msgid "Weekly tasks" -msgstr "" - -#: app/views/tasks/workgroup.haml:15 -msgid "Date" -msgstr "" - -#: app/views/tasks/workgroup.haml:33 -msgid "more" -msgstr "" - -#: app/views/tasks/workgroup.haml:36 app/views/tasks/workgroup.haml:42 -msgid "Assign people" -msgstr "" - -#: app/views/tasks/workgroup.haml:47 app/views/index/_showGroup.haml:33 -msgid "No weekly tasks defined yet" -msgstr "" - -#: app/views/tasks/workgroup.haml:48 -msgid "Edit weekly tasks" -msgstr "" - -#: app/views/tasks/workgroup.haml:52 -msgid "all tasks" -msgstr "" - -#: app/views/tasks/_nav.haml:2 -msgid "TaskMenu" -msgstr "" - -#: app/views/tasks/_nav.haml:5 -msgid "Actions" -msgstr "" - -#: app/views/tasks/_nav.haml:7 -msgid "New task" -msgstr "" - -#: app/views/tasks/_nav.haml:9 -msgid "Pages" -msgstr "" - -#: app/views/tasks/_nav.haml:12 -msgid "All tasks" -msgstr "" - -#: app/views/tasks/_nav.haml:13 -msgid "Tasks done" -msgstr "" - -#: app/views/tasks/_nav.haml:16 -msgid "Group tasks" -msgstr "" - -#: app/views/tasks/edit.haml:1 -msgid "Edit task" -msgstr "" - -#: app/views/tasks/edit.haml:6 -msgid "Save changes" -msgstr "" - -#: app/views/orders/show.haml:1 -msgid "Show order" -msgstr "" - -#: app/views/orders/show.haml:28 -msgid "Begin" -msgstr "" - -#: app/views/orders/show.haml:34 -msgid "Groups ordered" -msgstr "" - -#: app/views/orders/show.haml:45 app/views/orders/_show_unfinished.haml:32 -msgid "Ordered articles:" -msgstr "" - -#: app/views/orders/show.haml:53 -msgid "All articles" -msgstr "" - -#: app/views/orders/show.haml:55 -msgid "Sort by groups" -msgstr "" - -#: app/views/orders/show.haml:56 app/views/orders/show.haml:59 -#: app/views/orders/show.haml:62 app/views/orders/show.haml:65 -#: app/views/orders/show.haml:66 -msgid "Download file" -msgstr "" - -#: app/views/orders/show.haml:58 -msgid "Sort by articles" -msgstr "" - -#: app/views/orders/show.haml:61 -msgid "Matrix:" -msgstr "" - -#: app/views/orders/show.haml:64 -msgid "FAX-template:" -msgstr "" - -#: app/views/orders/index.haml:6 -msgid "New Order" -msgstr "" - -#: app/views/orders/index.haml:7 -msgid "for" -msgstr "" - -#: app/views/orders/index.haml:9 -msgid "Choose a supplier..." -msgstr "" - -#: app/views/orders/index.haml:30 -msgid "finish" -msgstr "" - -#: app/views/orders/index.haml:30 app/views/orders/_list.haml:20 -msgid "Are you really sure to finish the order?" -msgstr "" - -#: app/views/orders/index.haml:33 app/views/orders/_list.haml:22 -msgid "Destroy" -msgstr "" - -#: app/views/orders/index.haml:33 app/views/orders/_list.haml:22 -msgid "Are you really sure you want to destroy the order?" -msgstr "" - -#: app/views/orders/index.haml:39 -msgid "Expired/finished orders" -msgstr "" - -#: app/views/orders/_show_unfinished.haml:6 -msgid "Units ordered" -msgstr "" - -#: app/views/orders/_show_unfinished.haml:7 -msgid "Result/Unit quantity" -msgstr "" - -#: app/views/orders/_show_unfinished.haml:28 -msgid "Total value" -msgstr "" - -#: app/views/orders/_show_unfinished.haml:29 -msgid "(net/gross)" -msgstr "" - -#: app/views/orders/_list.haml:8 app/views/orders/_form.html.haml:19 -msgid "Start" -msgstr "" - -#: app/views/orders/_list.haml:11 -msgid "Status" -msgstr "" - -#: app/views/orders/_list.haml:20 -msgid "finish now" -msgstr "" - -#: app/views/orders/_form.html.haml:32 -msgid "Use article selection from" -msgstr "" - -#: app/views/orders/_form.html.haml:34 -msgid "Choose an order..." -msgstr "" - -#: app/views/orders/_form.html.haml:66 -msgid "Select all" -msgstr "" - -#: app/views/orders/edit.html.haml:1 -msgid "Edit order" -msgstr "" - -#: app/views/orders/edit.html.haml:5 -#: app/views/finance/new_transactions.haml:18 -msgid "Save" -msgstr "" - -#: app/views/orders/new.html.haml:1 -msgid "New order" -msgstr "" - -#: app/views/orders/new.html.haml:5 -msgid "Put the order online" -msgstr "" - -#: app/views/index/index.haml:13 -msgid "Your tasks for the upcoming week:" -msgstr "" - -#: app/views/index/index.haml:22 -msgid "Accept tasks" -msgstr "" - -#: app/views/index/index.haml:23 -msgid "Your are responsible for a few tasks." -msgstr "" - -#: app/views/index/index.haml:24 -msgid "Accept/Reject tasks" -msgstr "" - -#: app/views/index/index.haml:26 -msgid "Unassigned tasks" -msgstr "" - -#: app/views/index/index.haml:27 -msgid "There are" -msgstr "" - -#: app/views/index/index.haml:27 -msgid "unassigned task(s)" -msgstr "" - -#: app/views/index/index.haml:33 -msgid "Unread messages" -msgstr "" - -#: app/views/index/index.haml:36 -msgid "All messages" -msgstr "" - -#: app/views/index/index.haml:51 -msgid "Account balance:" -msgstr "" - -#: app/views/index/index.haml:56 -msgid "Last transactions" -msgstr "" - -#: app/views/index/index.haml:59 -msgid "When" -msgstr "" - -#: app/views/index/index.haml:60 -msgid "Who" -msgstr "" - -#: app/views/index/index.haml:71 -msgid "more ..." -msgstr "" - -#: app/views/index/foodcoop_members.haml:27 -msgid "Sort by Ordergroups :" -msgstr "" - -#: app/views/index/_list_members.haml:26 -msgid "Send user an email" -msgstr "" - -#: app/views/index/_start_nav.haml:1 -msgid "Go to ..." -msgstr "" - -#: app/views/index/_start_nav.haml:4 -msgid "FoodCoop" -msgstr "" - -#: app/views/index/_start_nav.haml:6 -msgid "Member list" -msgstr "" - -#: app/views/index/_start_nav.haml:8 -msgid "Write message" -msgstr "" - -#: app/views/index/_start_nav.haml:18 -msgid "Order summary" -msgstr "" - -#: app/views/index/_start_nav.haml:20 -msgid "Finish order" -msgstr "" - -#: app/views/index/_start_nav.haml:24 -msgid "Artcle management" -msgstr "" - -#: app/views/index/_start_nav.haml:26 -msgid "Refresh articles" -msgstr "" - -#: app/views/index/_start_nav.haml:32 -msgid "Financial management" -msgstr "" - -#: app/views/index/_start_nav.haml:34 -msgid "Update account balances" -msgstr "" - -#: app/views/index/_start_nav.haml:35 -msgid "Cancel orders" -msgstr "" - -#: app/views/index/_start_nav.haml:42 -#: app/views/finance/listOrdergroups.haml:24 -msgid "New ordergroup" -msgstr "" - -#: app/views/index/_start_nav.haml:43 -msgid "New user" -msgstr "" - -#: app/views/index/_showGroup.haml:10 -msgid "Group has access to" -msgstr "" - -#: app/views/index/_showGroup.haml:26 -msgid "Weekly task" -msgstr "" - -#: app/views/index/_showGroup.haml:30 -msgid "at" -msgstr "" - -#: app/views/index/_showGroup.haml:35 -msgid "Show all tasks" -msgstr "" - -#: app/views/index/_showGroup.haml:38 -msgid "Edit group" -msgstr "" - -#: app/views/index/_showGroup.haml:40 -msgid "Send members a message" -msgstr "" - -#: app/views/finance/listOrdergroups.haml:1 -msgid "Manage accounts" -msgstr "" - -#: app/views/finance/listOrdergroups.haml:4 -msgid "To create multiple transactions at once please follow this " -msgstr "" - -#: app/views/finance/listOrdergroups.haml:5 -msgid "link" -msgstr "" - -#: app/views/finance/listOrdergroups.haml:12 -msgid "Search in name" -msgstr "" - -#: app/views/finance/_listOrdergroups.haml:2 -msgid "Found" -msgstr "" - -#: app/views/finance/_listOrdergroups.haml:16 -msgid "Size of group" -msgstr "" - -#: app/views/finance/_listOrdergroups.haml:22 -msgid "Show ordergroup" -msgstr "" - -#: app/views/finance/_listOrdergroups.haml:26 -msgid "New transaction" -msgstr "" - -#: app/views/finance/_listOrdergroups.haml:27 -msgid "List transactions" -msgstr "" - -#: app/views/finance/new_transactions.haml:1 -msgid "Update multiple accounts" -msgstr "" - -#: app/views/finance/new_transactions.haml:10 -msgid "Ordergroup" -msgstr "" - -#: app/views/finance/new_transactions.haml:15 -msgid "Add another ordergroup" -msgstr "" - -#: app/views/finance/_order_group.haml:6 -msgid "Remove ordergroup" -msgstr "" diff --git a/public/javascripts/controls.js b/public/javascripts/controls.js index 5aaf0bb2..ca29aefd 100644 --- a/public/javascripts/controls.js +++ b/public/javascripts/controls.js @@ -1,22 +1,22 @@ // Copyright (c) 2005-2008 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) -// (c) 2005-2007 Ivan Krstic (http://blogs.law.harvard.edu/ivan) -// (c) 2005-2007 Jon Tirsen (http://www.tirsen.com) +// (c) 2005-2008 Ivan Krstic (http://blogs.law.harvard.edu/ivan) +// (c) 2005-2008 Jon Tirsen (http://www.tirsen.com) // Contributors: // Richard Livsey // Rahul Bhargava // Rob Wills -// +// // script.aculo.us is freely distributable under the terms of an MIT-style license. // For details, see the script.aculo.us web site: http://script.aculo.us/ -// Autocompleter.Base handles all the autocompletion functionality +// Autocompleter.Base handles all the autocompletion functionality // that's independent of the data source for autocompletion. This // includes drawing the autocompletion menu, observing keyboard // and mouse events, and similar. // -// Specific autocompleters need to provide, at the very least, +// Specific autocompleters need to provide, at the very least, // a getUpdatedChoices function that will be invoked every time -// the text inside the monitored textbox changes. This method +// the text inside the monitored textbox changes. This method // should get the text for which to provide autocompletion by // invoking this.getToken(), NOT by directly accessing // this.element.value. This is to allow incremental tokenized @@ -30,23 +30,23 @@ // will incrementally autocomplete with a comma as the token. // Additionally, ',' in the above example can be replaced with // a token array, e.g. { tokens: [',', '\n'] } which -// enables autocompletion on multiple tokens. This is most -// useful when one of the tokens is \n (a newline), as it +// enables autocompletion on multiple tokens. This is most +// useful when one of the tokens is \n (a newline), as it // allows smart autocompletion after linebreaks. if(typeof Effect == 'undefined') throw("controls.js requires including script.aculo.us' effects.js library"); -var Autocompleter = { } +var Autocompleter = { }; Autocompleter.Base = Class.create({ baseInitialize: function(element, update, options) { - element = $(element) - this.element = element; - this.update = $(update); - this.hasFocus = false; - this.changed = false; - this.active = false; - this.index = 0; + element = $(element); + this.element = element; + this.update = $(update); + this.hasFocus = false; + this.changed = false; + this.active = false; + this.index = 0; this.entryCount = 0; this.oldElementValue = this.element.value; @@ -59,28 +59,28 @@ Autocompleter.Base = Class.create({ this.options.tokens = this.options.tokens || []; this.options.frequency = this.options.frequency || 0.4; this.options.minChars = this.options.minChars || 1; - this.options.onShow = this.options.onShow || - function(element, update){ + this.options.onShow = this.options.onShow || + function(element, update){ if(!update.style.position || update.style.position=='absolute') { update.style.position = 'absolute'; Position.clone(element, update, { - setHeight: false, + setHeight: false, offsetTop: element.offsetHeight }); } Effect.Appear(update,{duration:0.15}); }; - this.options.onHide = this.options.onHide || + this.options.onHide = this.options.onHide || function(element, update){ new Effect.Fade(update,{duration:0.15}) }; - if(typeof(this.options.tokens) == 'string') + if(typeof(this.options.tokens) == 'string') this.options.tokens = new Array(this.options.tokens); // Force carriage returns as token delimiters anyway if (!this.options.tokens.include('\n')) this.options.tokens.push('\n'); this.observer = null; - + this.element.setAttribute('autocomplete','off'); Element.hide(this.update); @@ -91,10 +91,10 @@ Autocompleter.Base = Class.create({ show: function() { if(Element.getStyle(this.update, 'display')=='none') this.options.onShow(this.element, this.update); - if(!this.iefix && + if(!this.iefix && (Prototype.Browser.IE) && (Element.getStyle(this.update, 'position')=='absolute')) { - new Insertion.After(this.update, + new Insertion.After(this.update, ''); @@ -102,7 +102,7 @@ Autocompleter.Base = Class.create({ } if(this.iefix) setTimeout(this.fixIEOverlapping.bind(this), 50); }, - + fixIEOverlapping: function() { Position.clone(this.update, this.iefix, {setTop:(!this.update.style.height)}); this.iefix.style.zIndex = 1; @@ -150,15 +150,15 @@ Autocompleter.Base = Class.create({ Event.stop(event); return; } - else - if(event.keyCode==Event.KEY_TAB || event.keyCode==Event.KEY_RETURN || + else + if(event.keyCode==Event.KEY_TAB || event.keyCode==Event.KEY_RETURN || (Prototype.Browser.WebKit > 0 && event.keyCode == 0)) return; this.changed = true; this.hasFocus = true; if(this.observer) clearTimeout(this.observer); - this.observer = + this.observer = setTimeout(this.onObserverEvent.bind(this), this.options.frequency*1000); }, @@ -170,35 +170,35 @@ Autocompleter.Base = Class.create({ onHover: function(event) { var element = Event.findElement(event, 'LI'); - if(this.index != element.autocompleteIndex) + if(this.index != element.autocompleteIndex) { this.index = element.autocompleteIndex; this.render(); } Event.stop(event); }, - + onClick: function(event) { var element = Event.findElement(event, 'LI'); this.index = element.autocompleteIndex; this.selectEntry(); this.hide(); }, - + onBlur: function(event) { // needed to make click events working setTimeout(this.hide.bind(this), 250); this.hasFocus = false; - this.active = false; - }, - + this.active = false; + }, + render: function() { if(this.entryCount > 0) { for (var i = 0; i < this.entryCount; i++) - this.index==i ? - Element.addClassName(this.getEntry(i),"selected") : + this.index==i ? + Element.addClassName(this.getEntry(i),"selected") : Element.removeClassName(this.getEntry(i),"selected"); - if(this.hasFocus) { + if(this.hasFocus) { this.show(); this.active = true; } @@ -207,27 +207,27 @@ Autocompleter.Base = Class.create({ this.hide(); } }, - + markPrevious: function() { - if(this.index > 0) this.index-- + if(this.index > 0) this.index--; else this.index = this.entryCount-1; this.getEntry(this.index).scrollIntoView(true); }, - + markNext: function() { - if(this.index < this.entryCount-1) this.index++ + if(this.index < this.entryCount-1) this.index++; else this.index = 0; this.getEntry(this.index).scrollIntoView(false); }, - + getEntry: function(index) { return this.update.firstChild.childNodes[index]; }, - + getCurrentEntry: function() { return this.getEntry(this.index); }, - + selectEntry: function() { this.active = false; this.updateElement(this.getCurrentEntry()); @@ -244,7 +244,7 @@ Autocompleter.Base = Class.create({ if(nodes.length>0) value = Element.collectTextNodes(nodes[0], this.options.select); } else value = Element.collectTextNodesIgnoreClass(selectedElement, 'informal'); - + var bounds = this.getTokenBounds(); if (bounds[0] != -1) { var newValue = this.element.value.substr(0, bounds[0]); @@ -257,7 +257,7 @@ Autocompleter.Base = Class.create({ } this.oldElementValue = this.element.value; this.element.focus(); - + if (this.options.afterUpdateElement) this.options.afterUpdateElement(this.element, selectedElement); }, @@ -269,20 +269,20 @@ Autocompleter.Base = Class.create({ Element.cleanWhitespace(this.update.down()); if(this.update.firstChild && this.update.down().childNodes) { - this.entryCount = + this.entryCount = this.update.down().childNodes.length; for (var i = 0; i < this.entryCount; i++) { var entry = this.getEntry(i); entry.autocompleteIndex = i; this.addObservers(entry); } - } else { + } else { this.entryCount = 0; } this.stopIndicator(); this.index = 0; - + if(this.entryCount==1 && this.options.autoSelect) { this.selectEntry(); this.hide(); @@ -298,7 +298,7 @@ Autocompleter.Base = Class.create({ }, onObserverEvent: function() { - this.changed = false; + this.changed = false; this.tokenBounds = null; if(this.getToken().length>=this.options.minChars) { this.getUpdatedChoices(); @@ -351,16 +351,16 @@ Ajax.Autocompleter = Class.create(Autocompleter.Base, { getUpdatedChoices: function() { this.startIndicator(); - - var entry = encodeURIComponent(this.options.paramName) + '=' + + + var entry = encodeURIComponent(this.options.paramName) + '=' + encodeURIComponent(this.getToken()); this.options.parameters = this.options.callback ? this.options.callback(this.element, entry) : entry; - if(this.options.defaultParams) + if(this.options.defaultParams) this.options.parameters += '&' + this.options.defaultParams; - + new Ajax.Request(this.url, this.options); }, @@ -382,7 +382,7 @@ Ajax.Autocompleter = Class.create(Autocompleter.Base, { // - choices - How many autocompletion choices to offer // // - partialSearch - If false, the autocompleter will match entered -// text only at the beginning of strings in the +// text only at the beginning of strings in the // autocomplete array. Defaults to true, which will // match text at the beginning of any *word* in the // strings in the autocomplete array. If you want to @@ -399,7 +399,7 @@ Ajax.Autocompleter = Class.create(Autocompleter.Base, { // - ignoreCase - Whether to ignore case when autocompleting. // Defaults to true. // -// It's possible to pass in a custom function as the 'selector' +// It's possible to pass in a custom function as the 'selector' // option, if you prefer to write your own autocompletion logic. // In that case, the other options above will not apply unless // you support them. @@ -427,20 +427,20 @@ Autocompleter.Local = Class.create(Autocompleter.Base, { var entry = instance.getToken(); var count = 0; - for (var i = 0; i < instance.options.array.length && - ret.length < instance.options.choices ; i++) { + for (var i = 0; i < instance.options.array.length && + ret.length < instance.options.choices ; i++) { var elem = instance.options.array[i]; - var foundPos = instance.options.ignoreCase ? - elem.toLowerCase().indexOf(entry.toLowerCase()) : + var foundPos = instance.options.ignoreCase ? + elem.toLowerCase().indexOf(entry.toLowerCase()) : elem.indexOf(entry); while (foundPos != -1) { - if (foundPos == 0 && elem.length != entry.length) { - ret.push("
  • " + elem.substr(0, entry.length) + "" + + if (foundPos == 0 && elem.length != entry.length) { + ret.push("
  • " + elem.substr(0, entry.length) + "" + elem.substr(entry.length) + "
  • "); break; - } else if (entry.length >= instance.options.partialChars && + } else if (entry.length >= instance.options.partialChars && instance.options.partialSearch && foundPos != -1) { if (instance.options.fullSearch || /\s/.test(elem.substr(foundPos-1,1))) { partial.push("
  • " + elem.substr(0, foundPos) + "" + @@ -450,14 +450,14 @@ Autocompleter.Local = Class.create(Autocompleter.Base, { } } - foundPos = instance.options.ignoreCase ? - elem.toLowerCase().indexOf(entry.toLowerCase(), foundPos + 1) : + foundPos = instance.options.ignoreCase ? + elem.toLowerCase().indexOf(entry.toLowerCase(), foundPos + 1) : elem.indexOf(entry, foundPos + 1); } } if (partial.length) - ret = ret.concat(partial.slice(0, instance.options.choices - ret.length)) + ret = ret.concat(partial.slice(0, instance.options.choices - ret.length)); return "
      " + ret.join('') + "
    "; } }, options || { }); @@ -474,7 +474,7 @@ Field.scrollFreeActivate = function(field) { setTimeout(function() { Field.activate(field); }, 1); -} +}; Ajax.InPlaceEditor = Class.create({ initialize: function(element, url, options) { @@ -604,7 +604,7 @@ Ajax.InPlaceEditor = Class.create({ this.triggerCallback('onEnterHover'); }, getText: function() { - return this.element.innerHTML; + return this.element.innerHTML.unescapeHTML(); }, handleAJAXFailure: function(transport) { this.triggerCallback('onFailure', transport); @@ -780,7 +780,7 @@ Ajax.InPlaceCollectionEditor = Class.create(Ajax.InPlaceEditor, { onSuccess: function(transport) { var js = transport.responseText.strip(); if (!/^\[.*\]$/.test(js)) // TODO: improve sanity check - throw 'Server returned an invalid collection representation.'; + throw('Server returned an invalid collection representation.'); this._collection = eval(js); this.checkForExternalText(); }.bind(this), @@ -937,7 +937,7 @@ Ajax.InPlaceCollectionEditor.DefaultOptions = { loadingCollectionText: 'Loading options...' }; -// Delayed observer, like Form.Element.Observer, +// Delayed observer, like Form.Element.Observer, // but waits for delay after last key input // Ideal for live-search fields @@ -947,7 +947,7 @@ Form.Element.DelayedObserver = Class.create({ this.element = $(element); this.callback = callback; this.timer = null; - this.lastValue = $F(this.element); + this.lastValue = $F(this.element); Event.observe(this.element,'keyup',this.delayedListener.bindAsEventListener(this)); }, delayedListener: function(event) { @@ -960,4 +960,4 @@ Form.Element.DelayedObserver = Class.create({ this.timer = null; this.callback(this.element, $F(this.element)); } -}); +}); \ No newline at end of file diff --git a/public/javascripts/dragdrop.js b/public/javascripts/dragdrop.js index bf5cfea6..07229f98 100644 --- a/public/javascripts/dragdrop.js +++ b/public/javascripts/dragdrop.js @@ -1,6 +1,6 @@ // Copyright (c) 2005-2008 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) -// (c) 2005-2007 Sammi Williams (http://www.oriontransfer.co.nz, sammi@oriontransfer.co.nz) -// +// (c) 2005-2008 Sammi Williams (http://www.oriontransfer.co.nz, sammi@oriontransfer.co.nz) +// // script.aculo.us is freely distributable under the terms of an MIT-style license. // For details, see the script.aculo.us web site: http://script.aculo.us/ @@ -32,7 +32,7 @@ var Droppables = { options._containers.push($(containment)); } } - + if(options.accept) options.accept = [options.accept].flatten(); Element.makePositioned(element); // fix IE @@ -40,34 +40,34 @@ var Droppables = { this.drops.push(options); }, - + findDeepestChild: function(drops) { deepest = drops[0]; - + for (i = 1; i < drops.length; ++i) if (Element.isParent(drops[i].element, deepest.element)) deepest = drops[i]; - + return deepest; }, isContained: function(element, drop) { var containmentNode; if(drop.tree) { - containmentNode = element.treeNode; + containmentNode = element.treeNode; } else { containmentNode = element.parentNode; } return drop._containers.detect(function(c) { return containmentNode == c }); }, - + isAffected: function(point, element, drop) { return ( (drop.element!=element) && ((!drop._containers) || this.isContained(element, drop)) && ((!drop.accept) || - (Element.classNames(element).detect( + (Element.classNames(element).detect( function(v) { return drop.accept.include(v) } ) )) && Position.within(drop.element, point[0], point[1]) ); }, @@ -87,12 +87,12 @@ var Droppables = { show: function(point, element) { if(!this.drops.length) return; var drop, affected = []; - + this.drops.each( function(drop) { if(Droppables.isAffected(point, element, drop)) affected.push(drop); }); - + if(affected.length>0) drop = Droppables.findDeepestChild(affected); @@ -101,7 +101,7 @@ var Droppables = { Position.within(drop.element, point[0], point[1]); if(drop.onHover) drop.onHover(element, drop.element, Position.overlap(drop.overlap, drop.element)); - + if (drop != this.last_active) Droppables.activate(drop); } }, @@ -112,8 +112,8 @@ var Droppables = { if (this.isAffected([Event.pointerX(event), Event.pointerY(event)], element, this.last_active)) if (this.last_active.onDrop) { - this.last_active.onDrop(element, this.last_active.element, event); - return true; + this.last_active.onDrop(element, this.last_active.element, event); + return true; } }, @@ -121,25 +121,25 @@ var Droppables = { if(this.last_active) this.deactivate(this.last_active); } -} +}; var Draggables = { drags: [], observers: [], - + register: function(draggable) { if(this.drags.length == 0) { this.eventMouseUp = this.endDrag.bindAsEventListener(this); this.eventMouseMove = this.updateDrag.bindAsEventListener(this); this.eventKeypress = this.keyPress.bindAsEventListener(this); - + Event.observe(document, "mouseup", this.eventMouseUp); Event.observe(document, "mousemove", this.eventMouseMove); Event.observe(document, "keypress", this.eventKeypress); } this.drags.push(draggable); }, - + unregister: function(draggable) { this.drags = this.drags.reject(function(d) { return d==draggable }); if(this.drags.length == 0) { @@ -148,24 +148,24 @@ var Draggables = { Event.stopObserving(document, "keypress", this.eventKeypress); } }, - + activate: function(draggable) { - if(draggable.options.delay) { - this._timeout = setTimeout(function() { - Draggables._timeout = null; - window.focus(); - Draggables.activeDraggable = draggable; - }.bind(this), draggable.options.delay); + if(draggable.options.delay) { + this._timeout = setTimeout(function() { + Draggables._timeout = null; + window.focus(); + Draggables.activeDraggable = draggable; + }.bind(this), draggable.options.delay); } else { window.focus(); // allows keypress events if window isn't currently focused, fails for Safari this.activeDraggable = draggable; } }, - + deactivate: function() { this.activeDraggable = null; }, - + updateDrag: function(event) { if(!this.activeDraggable) return; var pointer = [Event.pointerX(event), Event.pointerY(event)]; @@ -173,36 +173,36 @@ var Draggables = { // the same coordinates, prevent needless redrawing (moz bug?) if(this._lastPointer && (this._lastPointer.inspect() == pointer.inspect())) return; this._lastPointer = pointer; - + this.activeDraggable.updateDrag(event, pointer); }, - + endDrag: function(event) { - if(this._timeout) { - clearTimeout(this._timeout); - this._timeout = null; + if(this._timeout) { + clearTimeout(this._timeout); + this._timeout = null; } if(!this.activeDraggable) return; this._lastPointer = null; this.activeDraggable.endDrag(event); this.activeDraggable = null; }, - + keyPress: function(event) { if(this.activeDraggable) this.activeDraggable.keyPress(event); }, - + addObserver: function(observer) { this.observers.push(observer); this._cacheObserverCallbacks(); }, - + removeObserver: function(element) { // element instead of observer fixes mem leaks this.observers = this.observers.reject( function(o) { return o.element==element }); this._cacheObserverCallbacks(); }, - + notify: function(eventName, draggable, event) { // 'onStart', 'onEnd', 'onDrag' if(this[eventName+'Count'] > 0) this.observers.each( function(o) { @@ -210,7 +210,7 @@ var Draggables = { }); if(draggable.options[eventName]) draggable.options[eventName](draggable, event); }, - + _cacheObserverCallbacks: function() { ['onStart','onEnd','onDrag'].each( function(eventName) { Draggables[eventName+'Count'] = Draggables.observers.select( @@ -218,7 +218,7 @@ var Draggables = { ).length; }); } -} +}; /*--------------------------------------------------------------------------*/ @@ -234,12 +234,12 @@ var Draggable = Class.create({ }, endeffect: function(element) { var toOpacity = Object.isNumber(element._opacity) ? element._opacity : 1.0; - new Effect.Opacity(element, {duration:0.2, from:0.7, to:toOpacity, + new Effect.Opacity(element, {duration:0.2, from:0.7, to:toOpacity, queue: {scope:'_draggable', position:'end'}, - afterFinish: function(){ - Draggable._dragging[element] = false + afterFinish: function(){ + Draggable._dragging[element] = false } - }); + }); }, zindex: 1000, revert: false, @@ -250,57 +250,57 @@ var Draggable = Class.create({ snap: false, // false, or xy or [x,y] or function(x,y){ return [x,y] } delay: 0 }; - + if(!arguments[1] || Object.isUndefined(arguments[1].endeffect)) Object.extend(defaults, { starteffect: function(element) { element._opacity = Element.getOpacity(element); Draggable._dragging[element] = true; - new Effect.Opacity(element, {duration:0.2, from:element._opacity, to:0.7}); + new Effect.Opacity(element, {duration:0.2, from:element._opacity, to:0.7}); } }); - + var options = Object.extend(defaults, arguments[1] || { }); this.element = $(element); - + if(options.handle && Object.isString(options.handle)) this.handle = this.element.down('.'+options.handle, 0); - + if(!this.handle) this.handle = $(options.handle); if(!this.handle) this.handle = this.element; - + if(options.scroll && !options.scroll.scrollTo && !options.scroll.outerHTML) { options.scroll = $(options.scroll); this._isScrollChild = Element.childOf(this.element, options.scroll); } - Element.makePositioned(this.element); // fix IE + Element.makePositioned(this.element); // fix IE this.options = options; - this.dragging = false; + this.dragging = false; this.eventMouseDown = this.initDrag.bindAsEventListener(this); Event.observe(this.handle, "mousedown", this.eventMouseDown); - + Draggables.register(this); }, - + destroy: function() { Event.stopObserving(this.handle, "mousedown", this.eventMouseDown); Draggables.unregister(this); }, - + currentDelta: function() { return([ parseInt(Element.getStyle(this.element,'left') || '0'), parseInt(Element.getStyle(this.element,'top') || '0')]); }, - + initDrag: function(event) { if(!Object.isUndefined(Draggable._dragging[this.element]) && Draggable._dragging[this.element]) return; - if(Event.isLeftClick(event)) { + if(Event.isLeftClick(event)) { // abort on form elements, fixes a Firefox issue var src = Event.element(event); if((tag_name = src.tagName.toUpperCase()) && ( @@ -309,34 +309,34 @@ var Draggable = Class.create({ tag_name=='OPTION' || tag_name=='BUTTON' || tag_name=='TEXTAREA')) return; - + var pointer = [Event.pointerX(event), Event.pointerY(event)]; var pos = Position.cumulativeOffset(this.element); this.offset = [0,1].map( function(i) { return (pointer[i] - pos[i]) }); - + Draggables.activate(this); Event.stop(event); } }, - + startDrag: function(event) { this.dragging = true; if(!this.delta) this.delta = this.currentDelta(); - + if(this.options.zindex) { this.originalZ = parseInt(Element.getStyle(this.element,'z-index') || 0); this.element.style.zIndex = this.options.zindex; } - + if(this.options.ghosting) { this._clone = this.element.cloneNode(true); - this.element._originallyAbsolute = (this.element.getStyle('position') == 'absolute'); - if (!this.element._originallyAbsolute) + this._originallyAbsolute = (this.element.getStyle('position') == 'absolute'); + if (!this._originallyAbsolute) Position.absolutize(this.element); this.element.parentNode.insertBefore(this._clone, this.element); } - + if(this.options.scroll) { if (this.options.scroll == window) { var where = this._getWindowScroll(this.options.scroll); @@ -347,28 +347,28 @@ var Draggable = Class.create({ this.originalScrollTop = this.options.scroll.scrollTop; } } - + Draggables.notify('onStart', this, event); - + if(this.options.starteffect) this.options.starteffect(this.element); }, - + updateDrag: function(event, pointer) { if(!this.dragging) this.startDrag(event); - + if(!this.options.quiet){ Position.prepare(); Droppables.show(pointer, this.element); } - + Draggables.notify('onDrag', this, event); - + this.draw(pointer); if(this.options.change) this.options.change(this); - + if(this.options.scroll) { this.stopScrolling(); - + var p; if (this.options.scroll == window) { with(this._getWindowScroll(this.options.scroll)) { p = [ left, top, left+width, top+height ]; } @@ -386,16 +386,16 @@ var Draggable = Class.create({ if(pointer[1] > (p[3]-this.options.scrollSensitivity)) speed[1] = pointer[1]-(p[3]-this.options.scrollSensitivity); this.startScrolling(speed); } - + // fix AppleWebKit rendering if(Prototype.Browser.WebKit) window.scrollBy(0,0); - + Event.stop(event); }, - + finishDrag: function(event, success) { this.dragging = false; - + if(this.options.quiet){ Position.prepare(); var pointer = [Event.pointerX(event), Event.pointerY(event)]; @@ -403,24 +403,24 @@ var Draggable = Class.create({ } if(this.options.ghosting) { - if (!this.element._originallyAbsolute) + if (!this._originallyAbsolute) Position.relativize(this.element); - delete this.element._originallyAbsolute; + delete this._originallyAbsolute; Element.remove(this._clone); this._clone = null; } - var dropped = false; - if(success) { - dropped = Droppables.fire(event, this.element); - if (!dropped) dropped = false; + var dropped = false; + if(success) { + dropped = Droppables.fire(event, this.element); + if (!dropped) dropped = false; } if(dropped && this.options.onDropped) this.options.onDropped(this.element); Draggables.notify('onEnd', this, event); var revert = this.options.revert; if(revert && Object.isFunction(revert)) revert = revert(this.element); - + var d = this.currentDelta(); if(revert && this.options.reverteffect) { if (dropped == 0 || revert != 'failure') @@ -433,67 +433,67 @@ var Draggable = Class.create({ if(this.options.zindex) this.element.style.zIndex = this.originalZ; - if(this.options.endeffect) + if(this.options.endeffect) this.options.endeffect(this.element); - + Draggables.deactivate(this); Droppables.reset(); }, - + keyPress: function(event) { if(event.keyCode!=Event.KEY_ESC) return; this.finishDrag(event, false); Event.stop(event); }, - + endDrag: function(event) { if(!this.dragging) return; this.stopScrolling(); this.finishDrag(event, true); Event.stop(event); }, - + draw: function(point) { var pos = Position.cumulativeOffset(this.element); if(this.options.ghosting) { var r = Position.realOffset(this.element); pos[0] += r[0] - Position.deltaX; pos[1] += r[1] - Position.deltaY; } - + var d = this.currentDelta(); pos[0] -= d[0]; pos[1] -= d[1]; - + if(this.options.scroll && (this.options.scroll != window && this._isScrollChild)) { pos[0] -= this.options.scroll.scrollLeft-this.originalScrollLeft; pos[1] -= this.options.scroll.scrollTop-this.originalScrollTop; } - - var p = [0,1].map(function(i){ - return (point[i]-pos[i]-this.offset[i]) + + var p = [0,1].map(function(i){ + return (point[i]-pos[i]-this.offset[i]) }.bind(this)); - + if(this.options.snap) { if(Object.isFunction(this.options.snap)) { p = this.options.snap(p[0],p[1],this); } else { if(Object.isArray(this.options.snap)) { p = p.map( function(v, i) { - return (v/this.options.snap[i]).round()*this.options.snap[i] }.bind(this)) + return (v/this.options.snap[i]).round()*this.options.snap[i] }.bind(this)); } else { p = p.map( function(v) { - return (v/this.options.snap).round()*this.options.snap }.bind(this)) + return (v/this.options.snap).round()*this.options.snap }.bind(this)); } }} - + var style = this.element.style; if((!this.options.constraint) || (this.options.constraint=='horizontal')) style.left = p[0] + "px"; if((!this.options.constraint) || (this.options.constraint=='vertical')) style.top = p[1] + "px"; - + if(style.visibility=="hidden") style.visibility = ""; // fix gecko rendering }, - + stopScrolling: function() { if(this.scrollInterval) { clearInterval(this.scrollInterval); @@ -501,14 +501,14 @@ var Draggable = Class.create({ Draggables._lastScrollPointer = null; } }, - + startScrolling: function(speed) { if(!(speed[0] || speed[1])) return; this.scrollSpeed = [speed[0]*this.options.scrollSpeed,speed[1]*this.options.scrollSpeed]; this.lastScrolled = new Date(); this.scrollInterval = setInterval(this.scroll.bind(this), 10); }, - + scroll: function() { var current = new Date(); var delta = current - this.lastScrolled; @@ -524,7 +524,7 @@ var Draggable = Class.create({ this.options.scroll.scrollLeft += this.scrollSpeed[0] * delta / 1000; this.options.scroll.scrollTop += this.scrollSpeed[1] * delta / 1000; } - + Position.prepare(); Droppables.show(Draggables._lastPointer, this.element); Draggables.notify('onDrag', this); @@ -538,10 +538,10 @@ var Draggable = Class.create({ Draggables._lastScrollPointer[1] = 0; this.draw(Draggables._lastScrollPointer); } - + if(this.options.change) this.options.change(this); }, - + _getWindowScroll: function(w) { var T, L, W, H; with (w.document) { @@ -560,7 +560,7 @@ var Draggable = Class.create({ H = documentElement.clientHeight; } else { W = body.offsetWidth; - H = body.offsetHeight + H = body.offsetHeight; } } return { top: T, left: L, width: W, height: H }; @@ -577,11 +577,11 @@ var SortableObserver = Class.create({ this.observer = observer; this.lastValue = Sortable.serialize(this.element); }, - + onStart: function() { this.lastValue = Sortable.serialize(this.element); }, - + onEnd: function() { Sortable.unmark(); if(this.lastValue != Sortable.serialize(this.element)) @@ -591,11 +591,11 @@ var SortableObserver = Class.create({ var Sortable = { SERIALIZE_RULE: /^[^_\-](?:[A-Za-z0-9\-\_]*)[_](.*)$/, - + sortables: { }, - + _findRootElement: function(element) { - while (element.tagName.toUpperCase() != "BODY") { + while (element.tagName.toUpperCase() != "BODY") { if(element.id && Sortable.sortables[element.id]) return element; element = element.parentNode; } @@ -606,22 +606,23 @@ var Sortable = { if(!element) return; return Sortable.sortables[element.id]; }, - + destroy: function(element){ - var s = Sortable.options(element); - + element = $(element); + var s = Sortable.sortables[element.id]; + if(s) { Draggables.removeObserver(s.element); s.droppables.each(function(d){ Droppables.remove(d) }); s.draggables.invoke('destroy'); - + delete Sortable.sortables[s.element.id]; } }, create: function(element) { element = $(element); - var options = Object.extend({ + var options = Object.extend({ element: element, tag: 'li', // assumes li children, override with tag: 'tagname' dropOnEmpty: false, @@ -635,17 +636,17 @@ var Sortable = { delay: 0, hoverclass: null, ghosting: false, - quiet: false, + quiet: false, scroll: false, scrollSensitivity: 20, scrollSpeed: 15, format: this.SERIALIZE_RULE, - - // these take arrays of elements or ids and can be + + // these take arrays of elements or ids and can be // used for better initialization performance elements: false, handles: false, - + onChange: Prototype.emptyFunction, onUpdate: Prototype.emptyFunction }, arguments[1] || { }); @@ -682,24 +683,24 @@ var Sortable = { if(options.zindex) options_for_draggable.zindex = options.zindex; - // build options for the droppables + // build options for the droppables var options_for_droppable = { overlap: options.overlap, containment: options.containment, tree: options.tree, hoverclass: options.hoverclass, onHover: Sortable.onHover - } - + }; + var options_for_tree = { onHover: Sortable.onEmptyHover, overlap: options.overlap, containment: options.containment, hoverclass: options.hoverclass - } + }; // fix for gecko engine - Element.cleanWhitespace(element); + Element.cleanWhitespace(element); options.draggables = []; options.droppables = []; @@ -712,14 +713,14 @@ var Sortable = { (options.elements || this.findElements(element, options) || []).each( function(e,i) { var handle = options.handles ? $(options.handles[i]) : - (options.handle ? $(e).select('.' + options.handle)[0] : e); + (options.handle ? $(e).select('.' + options.handle)[0] : e); options.draggables.push( new Draggable(e, Object.extend(options_for_draggable, { handle: handle }))); Droppables.add(e, options_for_droppable); if(options.tree) e.treeNode = element; - options.droppables.push(e); + options.droppables.push(e); }); - + if(options.tree) { (Sortable.findTreeElements(element, options) || []).each( function(e) { Droppables.add(e, options_for_tree); @@ -741,7 +742,7 @@ var Sortable = { return Element.findChildren( element, options.only, options.tree ? true : false, options.tag); }, - + findTreeElements: function(element, options) { return Element.findChildren( element, options.only, options.tree ? true : false, options.treeTag); @@ -758,7 +759,7 @@ var Sortable = { var oldParentNode = element.parentNode; element.style.visibility = "hidden"; // fix gecko rendering dropon.parentNode.insertBefore(element, dropon); - if(dropon.parentNode!=oldParentNode) + if(dropon.parentNode!=oldParentNode) Sortable.options(oldParentNode).onChange(element); Sortable.options(dropon.parentNode).onChange(element); } @@ -769,26 +770,26 @@ var Sortable = { var oldParentNode = element.parentNode; element.style.visibility = "hidden"; // fix gecko rendering dropon.parentNode.insertBefore(element, nextElement); - if(dropon.parentNode!=oldParentNode) + if(dropon.parentNode!=oldParentNode) Sortable.options(oldParentNode).onChange(element); Sortable.options(dropon.parentNode).onChange(element); } } }, - + onEmptyHover: function(element, dropon, overlap) { var oldParentNode = element.parentNode; var droponOptions = Sortable.options(dropon); - + if(!Element.isParent(dropon, element)) { var index; - + var children = Sortable.findElements(dropon, {tag: droponOptions.tag, only: droponOptions.only}); var child = null; - + if(children) { var offset = Element.offsetSize(dropon, droponOptions.overlap) * (1.0 - overlap); - + for (index = 0; index < children.length; index += 1) { if (offset - Element.offsetSize (children[index], droponOptions.overlap) >= 0) { offset -= Element.offsetSize (children[index], droponOptions.overlap); @@ -801,9 +802,9 @@ var Sortable = { } } } - + dropon.insertBefore(element, child); - + Sortable.options(oldParentNode).onChange(element); droponOptions.onChange(element); } @@ -816,34 +817,34 @@ var Sortable = { mark: function(dropon, position) { // mark on ghosting only var sortable = Sortable.options(dropon.parentNode); - if(sortable && !sortable.ghosting) return; + if(sortable && !sortable.ghosting) return; if(!Sortable._marker) { - Sortable._marker = + Sortable._marker = ($('dropmarker') || Element.extend(document.createElement('DIV'))). hide().addClassName('dropmarker').setStyle({position:'absolute'}); document.getElementsByTagName("body").item(0).appendChild(Sortable._marker); - } + } var offsets = Position.cumulativeOffset(dropon); Sortable._marker.setStyle({left: offsets[0]+'px', top: offsets[1] + 'px'}); - + if(position=='after') - if(sortable.overlap == 'horizontal') + if(sortable.overlap == 'horizontal') Sortable._marker.setStyle({left: (offsets[0]+dropon.clientWidth) + 'px'}); else Sortable._marker.setStyle({top: (offsets[1]+dropon.clientHeight) + 'px'}); - + Sortable._marker.show(); }, - + _tree: function(element, options, parent) { var children = Sortable.findElements(element, options) || []; - + for (var i = 0; i < children.length; ++i) { var match = children[i].id.match(options.format); if (!match) continue; - + var child = { id: encodeURIComponent(match ? match[1] : null), element: element, @@ -851,16 +852,16 @@ var Sortable = { children: [], position: parent.children.length, container: $(children[i]).down(options.treeTag) - } - + }; + /* Get the element containing the children and recurse over it */ if (child.container) - this._tree(child.container, options, child) - + this._tree(child.container, options, child); + parent.children.push (child); } - return parent; + return parent; }, tree: function(element) { @@ -873,15 +874,15 @@ var Sortable = { name: element.id, format: sortableOptions.format }, arguments[1] || { }); - + var root = { id: null, parent: null, children: [], container: element, position: 0 - } - + }; + return Sortable._tree(element, options, root); }, @@ -897,7 +898,7 @@ var Sortable = { sequence: function(element) { element = $(element); var options = Object.extend(this.options(element), arguments[1] || { }); - + return $(this.findElements(element, options) || []).map( function(item) { return item.id.match(options.format) ? item.id.match(options.format)[1] : ''; }); @@ -906,14 +907,14 @@ var Sortable = { setSequence: function(element, new_sequence) { element = $(element); var options = Object.extend(this.options(element), arguments[2] || { }); - + var nodeMap = { }; this.findElements(element, options).each( function(n) { if (n.id.match(options.format)) nodeMap[n.id.match(options.format)[1]] = [n, n.parentNode]; n.parentNode.removeChild(n); }); - + new_sequence.each(function(ident) { var n = nodeMap[ident]; if (n) { @@ -922,16 +923,16 @@ var Sortable = { } }); }, - + serialize: function(element) { element = $(element); var options = Object.extend(Sortable.options(element), arguments[1] || { }); var name = encodeURIComponent( (arguments[1] && arguments[1].name) ? arguments[1].name : element.id); - + if (options.tree) { return Sortable.tree(element, arguments[1]).children.map( function (item) { - return [name + Sortable._constructIndex(item) + "[id]=" + + return [name + Sortable._constructIndex(item) + "[id]=" + encodeURIComponent(item.id)].concat(item.children.map(arguments.callee)); }).flatten().join('&'); } else { @@ -940,16 +941,16 @@ var Sortable = { }).join('&'); } } -} +}; // Returns true if child is contained within element Element.isParent = function(child, element) { if (!child.parentNode || child == element) return false; if (child.parentNode == element) return true; return Element.isParent(child.parentNode, element); -} +}; -Element.findChildren = function(element, only, recursive, tagName) { +Element.findChildren = function(element, only, recursive, tagName) { if(!element.hasChildNodes()) return null; tagName = tagName.toUpperCase(); if(only) only = [only].flatten(); @@ -965,8 +966,8 @@ Element.findChildren = function(element, only, recursive, tagName) { }); return (elements.length>0 ? elements.flatten() : []); -} +}; Element.offsetSize = function (element, type) { return element['offset' + ((type=='vertical' || type=='height') ? 'Height' : 'Width')]; -} +}; \ No newline at end of file diff --git a/public/javascripts/effects.js b/public/javascripts/effects.js index f030b5db..5a639d2d 100644 --- a/public/javascripts/effects.js +++ b/public/javascripts/effects.js @@ -3,46 +3,46 @@ // Justin Palmer (http://encytemedia.com/) // Mark Pilgrim (http://diveintomark.org/) // Martin Bialasinki -// +// // script.aculo.us is freely distributable under the terms of an MIT-style license. -// For details, see the script.aculo.us web site: http://script.aculo.us/ +// For details, see the script.aculo.us web site: http://script.aculo.us/ -// converts rgb() and #xxx to #xxxxxx format, -// returns self (or first argument) if not convertable -String.prototype.parseColor = function() { +// converts rgb() and #xxx to #xxxxxx format, +// returns self (or first argument) if not convertable +String.prototype.parseColor = function() { var color = '#'; - if (this.slice(0,4) == 'rgb(') { - var cols = this.slice(4,this.length-1).split(','); - var i=0; do { color += parseInt(cols[i]).toColorPart() } while (++i<3); - } else { - if (this.slice(0,1) == '#') { - if (this.length==4) for(var i=1;i<4;i++) color += (this.charAt(i) + this.charAt(i)).toLowerCase(); - if (this.length==7) color = this.toLowerCase(); - } - } - return (color.length==7 ? color : (arguments[0] || this)); + if (this.slice(0,4) == 'rgb(') { + var cols = this.slice(4,this.length-1).split(','); + var i=0; do { color += parseInt(cols[i]).toColorPart() } while (++i<3); + } else { + if (this.slice(0,1) == '#') { + if (this.length==4) for(var i=1;i<4;i++) color += (this.charAt(i) + this.charAt(i)).toLowerCase(); + if (this.length==7) color = this.toLowerCase(); + } + } + return (color.length==7 ? color : (arguments[0] || this)); }; /*--------------------------------------------------------------------------*/ -Element.collectTextNodes = function(element) { +Element.collectTextNodes = function(element) { return $A($(element).childNodes).collect( function(node) { - return (node.nodeType==3 ? node.nodeValue : + return (node.nodeType==3 ? node.nodeValue : (node.hasChildNodes() ? Element.collectTextNodes(node) : '')); }).flatten().join(''); }; -Element.collectTextNodesIgnoreClass = function(element, className) { +Element.collectTextNodesIgnoreClass = function(element, className) { return $A($(element).childNodes).collect( function(node) { - return (node.nodeType==3 ? node.nodeValue : - ((node.hasChildNodes() && !Element.hasClassName(node,className)) ? + return (node.nodeType==3 ? node.nodeValue : + ((node.hasChildNodes() && !Element.hasClassName(node,className)) ? Element.collectTextNodesIgnoreClass(node, className) : '')); }).flatten().join(''); }; Element.setContentZoom = function(element, percent) { - element = $(element); - element.setStyle({fontSize: (percent/100) + 'em'}); + element = $(element); + element.setStyle({fontSize: (percent/100) + 'em'}); if (Prototype.Browser.WebKit) window.scrollBy(0,0); return element; }; @@ -70,28 +70,23 @@ var Effect = { Transitions: { linear: Prototype.K, sinoidal: function(pos) { - return (-Math.cos(pos*Math.PI)/2) + 0.5; + return (-Math.cos(pos*Math.PI)/2) + .5; }, reverse: function(pos) { return 1-pos; }, flicker: function(pos) { - var pos = ((-Math.cos(pos*Math.PI)/4) + 0.75) + Math.random()/4; + var pos = ((-Math.cos(pos*Math.PI)/4) + .75) + Math.random()/4; return pos > 1 ? 1 : pos; }, wobble: function(pos) { - return (-Math.cos(pos*Math.PI*(9*pos))/2) + 0.5; + return (-Math.cos(pos*Math.PI*(9*pos))/2) + .5; }, - pulse: function(pos, pulses) { - pulses = pulses || 5; - return ( - ((pos % (1/pulses)) * pulses).round() == 0 ? - ((pos * pulses * 2) - (pos * pulses * 2).floor()) : - 1 - ((pos * pulses * 2) - (pos * pulses * 2).floor()) - ); + pulse: function(pos, pulses) { + return (-Math.cos((pos*((pulses||5)-.5)*2)*Math.PI)/2) + .5; }, - spring: function(pos) { - return 1 - (Math.cos(pos * 4.5 * Math.PI) * Math.exp(-pos * 6)); + spring: function(pos) { + return 1 - (Math.cos(pos * 4.5 * Math.PI) * Math.exp(-pos * 6)); }, none: function(pos) { return 0; @@ -112,14 +107,14 @@ var Effect = { tagifyText: function(element) { var tagifyStyle = 'position:relative'; if (Prototype.Browser.IE) tagifyStyle += ';zoom:1'; - + element = $(element); $A(element.childNodes).each( function(child) { if (child.nodeType==3) { child.nodeValue.toArray().each( function(character) { element.insertBefore( new Element('span', {style: tagifyStyle}).update( - character == ' ' ? String.fromCharCode(160) : character), + character == ' ' ? String.fromCharCode(160) : character), child); }); Element.remove(child); @@ -128,13 +123,13 @@ var Effect = { }, multiple: function(element, effect) { var elements; - if (((typeof element == 'object') || - Object.isFunction(element)) && + if (((typeof element == 'object') || + Object.isFunction(element)) && (element.length)) elements = element; else elements = $(element).childNodes; - + var options = Object.extend({ speed: 0.1, delay: 0.0 @@ -156,7 +151,7 @@ var Effect = { var options = Object.extend({ queue: { position:'end', scope:(element.id || 'global'), limit: 1 } }, arguments[2] || { }); - Effect[element.visible() ? + Effect[element.visible() ? Effect.PAIRS[effect][1] : Effect.PAIRS[effect][0]](element, options); } }; @@ -168,20 +163,20 @@ Effect.DefaultOptions.transition = Effect.Transitions.sinoidal; Effect.ScopedQueue = Class.create(Enumerable, { initialize: function() { this.effects = []; - this.interval = null; + this.interval = null; }, _each: function(iterator) { this.effects._each(iterator); }, add: function(effect) { var timestamp = new Date().getTime(); - - var position = Object.isString(effect.options.queue) ? + + var position = Object.isString(effect.options.queue) ? effect.options.queue : effect.options.queue.position; - + switch(position) { case 'front': - // move unstarted effects after this effect + // move unstarted effects after this effect this.effects.findAll(function(e){ return e.state=='idle' }).each( function(e) { e.startOn += effect.finishOn; e.finishOn += effect.finishOn; @@ -195,13 +190,13 @@ Effect.ScopedQueue = Class.create(Enumerable, { timestamp = this.effects.pluck('finishOn').max() || timestamp; break; } - + effect.startOn += timestamp; effect.finishOn += timestamp; if (!effect.options.queue.limit || (this.effects.length < effect.options.queue.limit)) this.effects.push(effect); - + if (!this.interval) this.interval = setInterval(this.loop.bind(this), 15); }, @@ -214,7 +209,7 @@ Effect.ScopedQueue = Class.create(Enumerable, { }, loop: function() { var timePos = new Date().getTime(); - for(var i=0, len=this.effects.length;i0) { @@ -430,9 +437,9 @@ Effect.Scale = Class.create(Effect.Base, { this.fontSizeType = fontSizeType; } }.bind(this)); - + this.factor = (this.options.scaleTo - this.options.scaleFrom)/100; - + this.dims = null; if (this.options.scaleMode=='box') this.dims = [this.element.offsetHeight, this.element.offsetWidth]; @@ -507,17 +514,16 @@ Effect.Highlight = Class.create(Effect.Base, { Effect.ScrollTo = function(element) { var options = arguments[1] || { }, - scrollOffsets = document.viewport.getScrollOffsets(), - elementOffsets = $(element).cumulativeOffset(), - max = (window.height || document.body.scrollHeight) - document.viewport.getHeight(); + scrollOffsets = document.viewport.getScrollOffsets(), + elementOffsets = $(element).cumulativeOffset(); if (options.offset) elementOffsets[1] += options.offset; return new Effect.Tween(null, scrollOffsets.top, - elementOffsets[1] > max ? max : elementOffsets[1], + elementOffsets[1], options, - function(p){ scrollTo(scrollOffsets.left, p.round()) } + function(p){ scrollTo(scrollOffsets.left, p.round()); } ); }; @@ -529,9 +535,9 @@ Effect.Fade = function(element) { var options = Object.extend({ from: element.getOpacity() || 1.0, to: 0.0, - afterFinishInternal: function(effect) { + afterFinishInternal: function(effect) { if (effect.options.to!=0) return; - effect.element.hide().setStyle({opacity: oldOpacity}); + effect.element.hide().setStyle({opacity: oldOpacity}); } }, arguments[1] || { }); return new Effect.Opacity(element,options); @@ -547,15 +553,15 @@ Effect.Appear = function(element) { effect.element.forceRerendering(); }, beforeSetup: function(effect) { - effect.element.setOpacity(effect.options.from).show(); + effect.element.setOpacity(effect.options.from).show(); }}, arguments[1] || { }); return new Effect.Opacity(element,options); }; Effect.Puff = function(element) { element = $(element); - var oldStyle = { - opacity: element.getInlineOpacity(), + var oldStyle = { + opacity: element.getInlineOpacity(), position: element.getStyle('position'), top: element.style.top, left: element.style.left, @@ -563,12 +569,12 @@ Effect.Puff = function(element) { height: element.style.height }; return new Effect.Parallel( - [ new Effect.Scale(element, 200, - { sync: true, scaleFromCenter: true, scaleContent: true, restoreAfterFinish: true }), - new Effect.Opacity(element, { sync: true, to: 0.0 } ) ], - Object.extend({ duration: 1.0, + [ new Effect.Scale(element, 200, + { sync: true, scaleFromCenter: true, scaleContent: true, restoreAfterFinish: true }), + new Effect.Opacity(element, { sync: true, to: 0.0 } ) ], + Object.extend({ duration: 1.0, beforeSetupInternal: function(effect) { - Position.absolutize(effect.effects[0].element) + Position.absolutize(effect.effects[0].element); }, afterFinishInternal: function(effect) { effect.effects[0].element.hide().setStyle(oldStyle); } @@ -580,12 +586,12 @@ Effect.BlindUp = function(element) { element = $(element); element.makeClipping(); return new Effect.Scale(element, 0, - Object.extend({ scaleContent: false, - scaleX: false, + Object.extend({ scaleContent: false, + scaleX: false, restoreAfterFinish: true, afterFinishInternal: function(effect) { effect.element.hide().undoClipping(); - } + } }, arguments[1] || { }) ); }; @@ -593,15 +599,15 @@ Effect.BlindUp = function(element) { Effect.BlindDown = function(element) { element = $(element); var elementDimensions = element.getDimensions(); - return new Effect.Scale(element, 100, Object.extend({ - scaleContent: false, + return new Effect.Scale(element, 100, Object.extend({ + scaleContent: false, scaleX: false, scaleFrom: 0, scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, restoreAfterFinish: true, afterSetup: function(effect) { - effect.element.makeClipping().setStyle({height: '0px'}).show(); - }, + effect.element.makeClipping().setStyle({height: '0px'}).show(); + }, afterFinishInternal: function(effect) { effect.element.undoClipping(); } @@ -616,16 +622,16 @@ Effect.SwitchOff = function(element) { from: 0, transition: Effect.Transitions.flicker, afterFinishInternal: function(effect) { - new Effect.Scale(effect.element, 1, { + new Effect.Scale(effect.element, 1, { duration: 0.3, scaleFromCenter: true, scaleX: false, scaleContent: false, restoreAfterFinish: true, - beforeSetup: function(effect) { + beforeSetup: function(effect) { effect.element.makePositioned().makeClipping(); }, afterFinishInternal: function(effect) { effect.element.hide().undoClipping().undoPositioned().setStyle({opacity: oldOpacity}); } - }) + }); } }, arguments[1] || { })); }; @@ -637,16 +643,16 @@ Effect.DropOut = function(element) { left: element.getStyle('left'), opacity: element.getInlineOpacity() }; return new Effect.Parallel( - [ new Effect.Move(element, {x: 0, y: 100, sync: true }), + [ new Effect.Move(element, {x: 0, y: 100, sync: true }), new Effect.Opacity(element, { sync: true, to: 0.0 }) ], Object.extend( { duration: 0.5, beforeSetup: function(effect) { - effect.effects[0].element.makePositioned(); + effect.effects[0].element.makePositioned(); }, afterFinishInternal: function(effect) { effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle); - } + } }, arguments[1] || { })); }; @@ -674,7 +680,7 @@ Effect.Shake = function(element) { new Effect.Move(effect.element, { x: -distance, y: 0, duration: split, afterFinishInternal: function(effect) { effect.element.undoPositioned().setStyle(oldStyle); - }}) }}) }}) }}) }}) }}); + }}); }}); }}); }}); }}); }}); }; Effect.SlideDown = function(element) { @@ -682,9 +688,9 @@ Effect.SlideDown = function(element) { // SlideDown need to have the content of the element wrapped in a container element with fixed height! var oldInnerBottom = element.down().getStyle('bottom'); var elementDimensions = element.getDimensions(); - return new Effect.Scale(element, 100, Object.extend({ - scaleContent: false, - scaleX: false, + return new Effect.Scale(element, 100, Object.extend({ + scaleContent: false, + scaleX: false, scaleFrom: window.opera ? 0 : 1, scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, restoreAfterFinish: true, @@ -692,11 +698,11 @@ Effect.SlideDown = function(element) { effect.element.makePositioned(); effect.element.down().makePositioned(); if (window.opera) effect.element.setStyle({top: ''}); - effect.element.makeClipping().setStyle({height: '0px'}).show(); + effect.element.makeClipping().setStyle({height: '0px'}).show(); }, afterUpdateInternal: function(effect) { effect.element.down().setStyle({bottom: - (effect.dims[0] - effect.element.clientHeight) + 'px' }); + (effect.dims[0] - effect.element.clientHeight) + 'px' }); }, afterFinishInternal: function(effect) { effect.element.undoClipping().undoPositioned(); @@ -710,8 +716,8 @@ Effect.SlideUp = function(element) { var oldInnerBottom = element.down().getStyle('bottom'); var elementDimensions = element.getDimensions(); return new Effect.Scale(element, window.opera ? 0 : 1, - Object.extend({ scaleContent: false, - scaleX: false, + Object.extend({ scaleContent: false, + scaleX: false, scaleMode: 'box', scaleFrom: 100, scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, @@ -721,7 +727,7 @@ Effect.SlideUp = function(element) { effect.element.down().makePositioned(); if (window.opera) effect.element.setStyle({top: ''}); effect.element.makeClipping().show(); - }, + }, afterUpdateInternal: function(effect) { effect.element.down().setStyle({bottom: (effect.dims[0] - effect.element.clientHeight) + 'px' }); @@ -734,15 +740,15 @@ Effect.SlideUp = function(element) { ); }; -// Bug in opera makes the TD containing this element expand for a instance after finish +// Bug in opera makes the TD containing this element expand for a instance after finish Effect.Squish = function(element) { - return new Effect.Scale(element, window.opera ? 1 : 0, { + return new Effect.Scale(element, window.opera ? 1 : 0, { restoreAfterFinish: true, beforeSetup: function(effect) { - effect.element.makeClipping(); - }, + effect.element.makeClipping(); + }, afterFinishInternal: function(effect) { - effect.element.hide().undoClipping(); + effect.element.hide().undoClipping(); } }); }; @@ -762,13 +768,13 @@ Effect.Grow = function(element) { width: element.style.width, opacity: element.getInlineOpacity() }; - var dims = element.getDimensions(); + var dims = element.getDimensions(); var initialMoveX, initialMoveY; var moveX, moveY; - + switch (options.direction) { case 'top-left': - initialMoveX = initialMoveY = moveX = moveY = 0; + initialMoveX = initialMoveY = moveX = moveY = 0; break; case 'top-right': initialMoveX = dims.width; @@ -793,11 +799,11 @@ Effect.Grow = function(element) { moveY = -dims.height / 2; break; } - + return new Effect.Move(element, { x: initialMoveX, y: initialMoveY, - duration: 0.01, + duration: 0.01, beforeSetup: function(effect) { effect.element.hide().makeClipping().makePositioned(); }, @@ -806,17 +812,17 @@ Effect.Grow = function(element) { [ new Effect.Opacity(effect.element, { sync: true, to: 1.0, from: 0.0, transition: options.opacityTransition }), new Effect.Move(effect.element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }), new Effect.Scale(effect.element, 100, { - scaleMode: { originalHeight: dims.height, originalWidth: dims.width }, + scaleMode: { originalHeight: dims.height, originalWidth: dims.width }, sync: true, scaleFrom: window.opera ? 1 : 0, transition: options.scaleTransition, restoreAfterFinish: true}) ], Object.extend({ beforeSetup: function(effect) { - effect.effects[0].element.setStyle({height: '0px'}).show(); + effect.effects[0].element.setStyle({height: '0px'}).show(); }, afterFinishInternal: function(effect) { - effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldStyle); + effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldStyle); } }, options) - ) + ); } }); }; @@ -838,7 +844,7 @@ Effect.Shrink = function(element) { var dims = element.getDimensions(); var moveX, moveY; - + switch (options.direction) { case 'top-left': moveX = moveY = 0; @@ -855,19 +861,19 @@ Effect.Shrink = function(element) { moveX = dims.width; moveY = dims.height; break; - case 'center': + case 'center': moveX = dims.width / 2; moveY = dims.height / 2; break; } - + return new Effect.Parallel( [ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, transition: options.opacityTransition }), new Effect.Scale(element, window.opera ? 1 : 0, { sync: true, transition: options.scaleTransition, restoreAfterFinish: true}), new Effect.Move(element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }) - ], Object.extend({ + ], Object.extend({ beforeStartInternal: function(effect) { - effect.effects[0].element.makePositioned().makeClipping(); + effect.effects[0].element.makePositioned().makeClipping(); }, afterFinishInternal: function(effect) { effect.effects[0].element.hide().undoClipping().undoPositioned().setStyle(oldStyle); } @@ -877,12 +883,14 @@ Effect.Shrink = function(element) { Effect.Pulsate = function(element) { element = $(element); - var options = arguments[1] || { }; - var oldOpacity = element.getInlineOpacity(); - var transition = options.transition || Effect.Transitions.sinoidal; - var reverser = function(pos){ return transition(1-Effect.Transitions.pulse(pos, options.pulses)) }; - reverser.bind(transition); - return new Effect.Opacity(element, + var options = arguments[1] || { }, + oldOpacity = element.getInlineOpacity(), + transition = options.transition || Effect.Transitions.linear, + reverser = function(pos){ + return 1 - transition((-Math.cos((pos*(options.pulses||5)*2)*Math.PI)/2) + .5); + }; + + return new Effect.Opacity(element, Object.extend(Object.extend({ duration: 2.0, from: 0, afterFinishInternal: function(effect) { effect.element.setStyle({opacity: oldOpacity}); } }, options), {transition: reverser})); @@ -896,12 +904,12 @@ Effect.Fold = function(element) { width: element.style.width, height: element.style.height }; element.makeClipping(); - return new Effect.Scale(element, 5, Object.extend({ + return new Effect.Scale(element, 5, Object.extend({ scaleContent: false, scaleX: false, afterFinishInternal: function(effect) { - new Effect.Scale(element, 1, { - scaleContent: false, + new Effect.Scale(element, 1, { + scaleContent: false, scaleY: false, afterFinishInternal: function(effect) { effect.element.hide().undoClipping().setStyle(oldStyle); @@ -916,7 +924,7 @@ Effect.Morph = Class.create(Effect.Base, { var options = Object.extend({ style: { } }, arguments[1] || { }); - + if (!Object.isString(options.style)) this.style = $H(options.style); else { if (options.style.include(':')) @@ -934,18 +942,18 @@ Effect.Morph = Class.create(Effect.Base, { effect.transforms.each(function(transform) { effect.element.style[transform.style] = ''; }); - } + }; } } this.start(options); }, - + setup: function(){ function parseColor(color){ if (!color || ['rgba(0, 0, 0, 0)','transparent'].include(color)) color = '#ffffff'; color = color.parseColor(); return $R(0,2).map(function(i){ - return parseInt( color.slice(i*2+1,i*2+3), 16 ) + return parseInt( color.slice(i*2+1,i*2+3), 16 ); }); } this.transforms = this.style.map(function(pair){ @@ -965,9 +973,9 @@ Effect.Morph = Class.create(Effect.Base, { } var originalValue = this.element.getStyle(property); - return { - style: property.camelize(), - originalValue: unit=='color' ? parseColor(originalValue) : parseFloat(originalValue || 0), + return { + style: property.camelize(), + originalValue: unit=='color' ? parseColor(originalValue) : parseFloat(originalValue || 0), targetValue: unit=='color' ? parseColor(value) : value, unit: unit }; @@ -978,13 +986,13 @@ Effect.Morph = Class.create(Effect.Base, { transform.unit != 'color' && (isNaN(transform.originalValue) || isNaN(transform.targetValue)) ) - ) + ); }); }, update: function(position) { var style = { }, transform, i = this.transforms.length; while(i--) - style[(transform = this.transforms[i]).style] = + style[(transform = this.transforms[i]).style] = transform.unit=='color' ? '#'+ (Math.round(transform.originalValue[0]+ (transform.targetValue[0]-transform.originalValue[0])*position)).toColorPart() + @@ -993,7 +1001,7 @@ Effect.Morph = Class.create(Effect.Base, { (Math.round(transform.originalValue[2]+ (transform.targetValue[2]-transform.originalValue[2])*position)).toColorPart() : (transform.originalValue + - (transform.targetValue - transform.originalValue) * position).toFixed(3) + + (transform.targetValue - transform.originalValue) * position).toFixed(3) + (transform.unit === null ? '' : transform.unit); this.element.setStyle(style, true); } @@ -1030,7 +1038,7 @@ Effect.Transform = Class.create({ }); Element.CSS_PROPERTIES = $w( - 'backgroundColor backgroundPosition borderBottomColor borderBottomStyle ' + + 'backgroundColor backgroundPosition borderBottomColor borderBottomStyle ' + 'borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth ' + 'borderRightColor borderRightStyle borderRightWidth borderSpacing ' + 'borderTopColor borderTopStyle borderTopWidth bottom clip color ' + @@ -1039,7 +1047,7 @@ Element.CSS_PROPERTIES = $w( 'maxWidth minHeight minWidth opacity outlineColor outlineOffset ' + 'outlineWidth paddingBottom paddingLeft paddingRight paddingTop ' + 'right textIndent top width wordSpacing zIndex'); - + Element.CSS_LENGTH = /^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/; String.__parseStyleElement = document.createElement('div'); @@ -1051,11 +1059,11 @@ String.prototype.parseStyle = function(){ String.__parseStyleElement.innerHTML = '
    '; style = String.__parseStyleElement.childNodes[0].style; } - + Element.CSS_PROPERTIES.each(function(property){ - if (style[property]) styleRules.set(property, style[property]); + if (style[property]) styleRules.set(property, style[property]); }); - + if (Prototype.Browser.IE && this.include('opacity')) styleRules.set('opacity', this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1]); @@ -1074,14 +1082,14 @@ if (document.defaultView && document.defaultView.getComputedStyle) { Element.getStyles = function(element) { element = $(element); var css = element.currentStyle, styles; - styles = Element.CSS_PROPERTIES.inject({ }, function(hash, property) { - hash.set(property, css[property]); - return hash; + styles = Element.CSS_PROPERTIES.inject({ }, function(results, property) { + results[property] = css[property]; + return results; }); - if (!styles.opacity) styles.set('opacity', element.getOpacity()); + if (!styles.opacity) styles.opacity = element.getOpacity(); return styles; }; -}; +} Effect.Methods = { morph: function(element, style) { @@ -1090,7 +1098,7 @@ Effect.Methods = { return element; }, visualEffect: function(element, effect, options) { - element = $(element) + element = $(element); var s = effect.dasherize().camelize(), klass = s.charAt(0).toUpperCase() + s.substring(1); new Effect[klass](element, options); return element; @@ -1104,17 +1112,17 @@ Effect.Methods = { $w('fade appear grow shrink fold blindUp blindDown slideUp slideDown '+ 'pulsate shake puff squish switchOff dropOut').each( - function(effect) { + function(effect) { Effect.Methods[effect] = function(element, options){ element = $(element); Effect[effect.charAt(0).toUpperCase() + effect.substring(1)](element, options); return element; - } + }; } ); -$w('getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles').each( +$w('getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles').each( function(f) { Effect.Methods[f] = Element[f]; } ); -Element.addMethods(Effect.Methods); +Element.addMethods(Effect.Methods); \ No newline at end of file diff --git a/public/javascripts/prototype.js b/public/javascripts/prototype.js index 546f9fe4..dfe8ab4e 100644 --- a/public/javascripts/prototype.js +++ b/public/javascripts/prototype.js @@ -1,5 +1,5 @@ -/* Prototype JavaScript framework, version 1.6.0.1 - * (c) 2005-2007 Sam Stephenson +/* Prototype JavaScript framework, version 1.6.0.3 + * (c) 2005-2008 Sam Stephenson * * Prototype is freely distributable under the terms of an MIT-style license. * For details, see the Prototype web site: http://www.prototypejs.org/ @@ -7,23 +7,26 @@ *--------------------------------------------------------------------------*/ var Prototype = { - Version: '1.6.0.1', + Version: '1.6.0.3', Browser: { - IE: !!(window.attachEvent && !window.opera), - Opera: !!window.opera, + IE: !!(window.attachEvent && + navigator.userAgent.indexOf('Opera') === -1), + Opera: navigator.userAgent.indexOf('Opera') > -1, WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1, - Gecko: navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') == -1, + Gecko: navigator.userAgent.indexOf('Gecko') > -1 && + navigator.userAgent.indexOf('KHTML') === -1, MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/) }, BrowserFeatures: { XPath: !!document.evaluate, + SelectorsAPI: !!document.querySelector, ElementExtensions: !!window.HTMLElement, SpecificElementExtensions: - document.createElement('div').__proto__ && - document.createElement('div').__proto__ !== - document.createElement('form').__proto__ + document.createElement('div')['__proto__'] && + document.createElement('div')['__proto__'] !== + document.createElement('form')['__proto__'] }, ScriptFragment: ']*>([\\S\\s]*?)<\/script>', @@ -83,12 +86,13 @@ Class.Methods = { var property = properties[i], value = source[property]; if (ancestor && Object.isFunction(value) && value.argumentNames().first() == "$super") { - var method = value, value = Object.extend((function(m) { + var method = value; + value = (function(m) { return function() { return ancestor[m].apply(this, arguments) }; - })(property).wrap(method), { - valueOf: function() { return method }, - toString: function() { return method.toString() } - }); + })(property).wrap(method); + + value.valueOf = method.valueOf.bind(method); + value.toString = method.toString.bind(method); } this.prototype[property] = value; } @@ -110,7 +114,7 @@ Object.extend(Object, { try { if (Object.isUndefined(object)) return 'undefined'; if (object === null) return 'null'; - return object.inspect ? object.inspect() : object.toString(); + return object.inspect ? object.inspect() : String(object); } catch (e) { if (e instanceof RangeError) return '...'; throw e; @@ -167,11 +171,12 @@ Object.extend(Object, { }, isElement: function(object) { - return object && object.nodeType == 1; + return !!(object && object.nodeType == 1); }, isArray: function(object) { - return object && object.constructor === Array; + return object != null && typeof object == "object" && + 'splice' in object && 'join' in object; }, isHash: function(object) { @@ -197,7 +202,8 @@ Object.extend(Object, { Object.extend(Function.prototype, { argumentNames: function() { - var names = this.toString().match(/^[\s\(]*function[^(]*\((.*?)\)/)[1].split(",").invoke("strip"); + var names = this.toString().match(/^[\s\(]*function[^(]*\(([^\)]*)\)/)[1] + .replace(/\s+/g, '').split(','); return names.length == 1 && !names[0] ? [] : names; }, @@ -231,6 +237,11 @@ Object.extend(Function.prototype, { }, timeout); }, + defer: function() { + var args = [0.01].concat($A(arguments)); + return this.delay.apply(this, args); + }, + wrap: function(wrapper) { var __method = this; return function() { @@ -247,8 +258,6 @@ Object.extend(Function.prototype, { } }); -Function.prototype.defer = Function.prototype.delay.curry(0.01); - Date.prototype.toJSON = function() { return '"' + this.getUTCFullYear() + '-' + (this.getUTCMonth() + 1).toPaddedString(2) + '-' + @@ -529,7 +538,7 @@ if (Prototype.Browser.WebKit || Prototype.Browser.IE) Object.extend(String.proto return this.replace(/&/g,'&').replace(//g,'>'); }, unescapeHTML: function() { - return this.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>'); + return this.stripTags().replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>'); } }); @@ -546,7 +555,7 @@ Object.extend(String.prototype.escapeHTML, { text: document.createTextNode('') }); -with (String.prototype.escapeHTML) div.appendChild(text); +String.prototype.escapeHTML.div.appendChild(String.prototype.escapeHTML.text); var Template = Class.create({ initialize: function(template, pattern) { @@ -578,7 +587,7 @@ var Template = Class.create({ } return before + String.interpret(ctx); - }.bind(this)); + }); } }); Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/; @@ -588,10 +597,9 @@ var $break = { }; var Enumerable = { each: function(iterator, context) { var index = 0; - iterator = iterator.bind(context); try { this._each(function(value) { - iterator(value, index++); + iterator.call(context, value, index++); }); } catch (e) { if (e != $break) throw e; @@ -600,47 +608,46 @@ var Enumerable = { }, eachSlice: function(number, iterator, context) { - iterator = iterator ? iterator.bind(context) : Prototype.K; var index = -number, slices = [], array = this.toArray(); + if (number < 1) return array; while ((index += number) < array.length) slices.push(array.slice(index, index+number)); return slices.collect(iterator, context); }, all: function(iterator, context) { - iterator = iterator ? iterator.bind(context) : Prototype.K; + iterator = iterator || Prototype.K; var result = true; this.each(function(value, index) { - result = result && !!iterator(value, index); + result = result && !!iterator.call(context, value, index); if (!result) throw $break; }); return result; }, any: function(iterator, context) { - iterator = iterator ? iterator.bind(context) : Prototype.K; + iterator = iterator || Prototype.K; var result = false; this.each(function(value, index) { - if (result = !!iterator(value, index)) + if (result = !!iterator.call(context, value, index)) throw $break; }); return result; }, collect: function(iterator, context) { - iterator = iterator ? iterator.bind(context) : Prototype.K; + iterator = iterator || Prototype.K; var results = []; this.each(function(value, index) { - results.push(iterator(value, index)); + results.push(iterator.call(context, value, index)); }); return results; }, detect: function(iterator, context) { - iterator = iterator.bind(context); var result; this.each(function(value, index) { - if (iterator(value, index)) { + if (iterator.call(context, value, index)) { result = value; throw $break; } @@ -649,17 +656,16 @@ var Enumerable = { }, findAll: function(iterator, context) { - iterator = iterator.bind(context); var results = []; this.each(function(value, index) { - if (iterator(value, index)) + if (iterator.call(context, value, index)) results.push(value); }); return results; }, grep: function(filter, iterator, context) { - iterator = iterator ? iterator.bind(context) : Prototype.K; + iterator = iterator || Prototype.K; var results = []; if (Object.isString(filter)) @@ -667,7 +673,7 @@ var Enumerable = { this.each(function(value, index) { if (filter.match(value)) - results.push(iterator(value, index)); + results.push(iterator.call(context, value, index)); }); return results; }, @@ -695,9 +701,8 @@ var Enumerable = { }, inject: function(memo, iterator, context) { - iterator = iterator.bind(context); this.each(function(value, index) { - memo = iterator(memo, value, index); + memo = iterator.call(context, memo, value, index); }); return memo; }, @@ -710,10 +715,10 @@ var Enumerable = { }, max: function(iterator, context) { - iterator = iterator ? iterator.bind(context) : Prototype.K; + iterator = iterator || Prototype.K; var result; this.each(function(value, index) { - value = iterator(value, index); + value = iterator.call(context, value, index); if (result == null || value >= result) result = value; }); @@ -721,10 +726,10 @@ var Enumerable = { }, min: function(iterator, context) { - iterator = iterator ? iterator.bind(context) : Prototype.K; + iterator = iterator || Prototype.K; var result; this.each(function(value, index) { - value = iterator(value, index); + value = iterator.call(context, value, index); if (result == null || value < result) result = value; }); @@ -732,10 +737,10 @@ var Enumerable = { }, partition: function(iterator, context) { - iterator = iterator ? iterator.bind(context) : Prototype.K; + iterator = iterator || Prototype.K; var trues = [], falses = []; this.each(function(value, index) { - (iterator(value, index) ? + (iterator.call(context, value, index) ? trues : falses).push(value); }); return [trues, falses]; @@ -750,19 +755,20 @@ var Enumerable = { }, reject: function(iterator, context) { - iterator = iterator.bind(context); var results = []; this.each(function(value, index) { - if (!iterator(value, index)) + if (!iterator.call(context, value, index)) results.push(value); }); return results; }, sortBy: function(iterator, context) { - iterator = iterator.bind(context); return this.map(function(value, index) { - return {value: value, criteria: iterator(value, index)}; + return { + value: value, + criteria: iterator.call(context, value, index) + }; }).sort(function(left, right) { var a = left.criteria, b = right.criteria; return a < b ? -1 : a > b ? 1 : 0; @@ -806,20 +812,24 @@ Object.extend(Enumerable, { function $A(iterable) { if (!iterable) return []; if (iterable.toArray) return iterable.toArray(); - var length = iterable.length, results = new Array(length); + var length = iterable.length || 0, results = new Array(length); while (length--) results[length] = iterable[length]; return results; } if (Prototype.Browser.WebKit) { - function $A(iterable) { + $A = function(iterable) { if (!iterable) return []; - if (!(Object.isFunction(iterable) && iterable == '[object NodeList]') && - iterable.toArray) return iterable.toArray(); - var length = iterable.length, results = new Array(length); + // In Safari, only use the `toArray` method if it's not a NodeList. + // A NodeList is a function, has an function `item` property, and a numeric + // `length` property. Adapted from Google Doctype. + if (!(typeof iterable === 'function' && typeof iterable.length === + 'number' && typeof iterable.item === 'function') && iterable.toArray) + return iterable.toArray(); + var length = iterable.length || 0, results = new Array(length); while (length--) results[length] = iterable[length]; return results; - } + }; } Array.from = $A; @@ -962,8 +972,8 @@ Object.extend(Number.prototype, { return this + 1; }, - times: function(iterator) { - $R(0, this, true).each(iterator); + times: function(iterator, context) { + $R(0, this, true).each(iterator, context); return this; }, @@ -1010,7 +1020,9 @@ var Hash = Class.create(Enumerable, (function() { }, get: function(key) { - return this._object[key]; + // simulating poorly supported hasOwnProperty + if (this._object[key] !== Object.prototype[key]) + return this._object[key]; }, unset: function(key) { @@ -1050,14 +1062,14 @@ var Hash = Class.create(Enumerable, (function() { }, toQueryString: function() { - return this.map(function(pair) { + return this.inject([], function(results, pair) { var key = encodeURIComponent(pair.key), values = pair.value; if (values && typeof values == 'object') { if (Object.isArray(values)) - return values.map(toQueryPair.curry(key)).join('&'); - } - return toQueryPair(key, values); + return results.concat(values.map(toQueryPair.curry(key))); + } else results.push(toQueryPair(key, values)); + return results; }).join('&'); }, @@ -1298,7 +1310,7 @@ Ajax.Request = Class.create(Ajax.Base, { var contentType = response.getHeader('Content-type'); if (this.options.evalJS == 'force' - || (this.options.evalJS && contentType + || (this.options.evalJS && this.isSameOrigin() && contentType && contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i))) this.evalResponse(); } @@ -1316,9 +1328,18 @@ Ajax.Request = Class.create(Ajax.Base, { } }, + isSameOrigin: function() { + var m = this.url.match(/^\s*https?:\/\/[^\/]*/); + return !m || (m[0] == '#{protocol}//#{domain}#{port}'.interpolate({ + protocol: location.protocol, + domain: document.domain, + port: location.port ? ':' + location.port : '' + })); + }, + getHeader: function(name) { try { - return this.transport.getResponseHeader(name); + return this.transport.getResponseHeader(name) || null; } catch (e) { return null } }, @@ -1391,7 +1412,8 @@ Ajax.Response = Class.create({ if (!json) return null; json = decodeURIComponent(escape(json)); try { - return json.evalJSON(this.request.options.sanitizeJSON); + return json.evalJSON(this.request.options.sanitizeJSON || + !this.request.isSameOrigin()); } catch (e) { this.request.dispatchException(e); } @@ -1404,7 +1426,8 @@ Ajax.Response = Class.create({ this.responseText.blank()) return null; try { - return this.responseText.evalJSON(options.sanitizeJSON); + return this.responseText.evalJSON(options.sanitizeJSON || + !this.request.isSameOrigin()); } catch (e) { this.request.dispatchException(e); } @@ -1546,6 +1569,7 @@ if (!Node.ELEMENT_NODE) { return Element.writeAttribute(cache[tagName].cloneNode(false), attributes); }; Object.extend(this.Element, element || { }); + if (element) this.Element.prototype = element.prototype; }).call(window); Element.cache = { }; @@ -1562,12 +1586,14 @@ Element.Methods = { }, hide: function(element) { - $(element).style.display = 'none'; + element = $(element); + element.style.display = 'none'; return element; }, show: function(element) { - $(element).style.display = ''; + element = $(element); + element.style.display = ''; return element; }, @@ -1608,24 +1634,28 @@ Element.Methods = { Object.isElement(insertions) || (insertions && (insertions.toElement || insertions.toHTML))) insertions = {bottom:insertions}; - var content, t, range; + var content, insert, tagName, childNodes; - for (position in insertions) { + for (var position in insertions) { content = insertions[position]; position = position.toLowerCase(); - t = Element._insertionTranslations[position]; + insert = Element._insertionTranslations[position]; if (content && content.toElement) content = content.toElement(); if (Object.isElement(content)) { - t.insert(element, content); + insert(element, content); continue; } content = Object.toHTML(content); - range = element.ownerDocument.createRange(); - t.initializeRange(element, range); - t.insert(element, range.createContextualFragment(content.stripScripts())); + tagName = ((position == 'before' || position == 'after') + ? element.parentNode : element).tagName.toUpperCase(); + + childNodes = Element._getContentFromAnonymousElement(tagName, content.stripScripts()); + + if (position == 'top' || position == 'after') childNodes.reverse(); + childNodes.each(insert.curry(element)); content.evalScripts.bind(content).defer(); } @@ -1670,7 +1700,7 @@ Element.Methods = { }, descendants: function(element) { - return $(element).getElementsBySelector("*"); + return $(element).select("*"); }, firstDescendant: function(element) { @@ -1709,32 +1739,31 @@ Element.Methods = { element = $(element); if (arguments.length == 1) return $(element.parentNode); var ancestors = element.ancestors(); - return expression ? Selector.findElement(ancestors, expression, index) : - ancestors[index || 0]; + return Object.isNumber(expression) ? ancestors[expression] : + Selector.findElement(ancestors, expression, index); }, down: function(element, expression, index) { element = $(element); if (arguments.length == 1) return element.firstDescendant(); - var descendants = element.descendants(); - return expression ? Selector.findElement(descendants, expression, index) : - descendants[index || 0]; + return Object.isNumber(expression) ? element.descendants()[expression] : + Element.select(element, expression)[index || 0]; }, previous: function(element, expression, index) { element = $(element); if (arguments.length == 1) return $(Selector.handlers.previousElementSibling(element)); var previousSiblings = element.previousSiblings(); - return expression ? Selector.findElement(previousSiblings, expression, index) : - previousSiblings[index || 0]; + return Object.isNumber(expression) ? previousSiblings[expression] : + Selector.findElement(previousSiblings, expression, index); }, next: function(element, expression, index) { element = $(element); if (arguments.length == 1) return $(Selector.handlers.nextElementSibling(element)); var nextSiblings = element.nextSiblings(); - return expression ? Selector.findElement(nextSiblings, expression, index) : - nextSiblings[index || 0]; + return Object.isNumber(expression) ? nextSiblings[expression] : + Selector.findElement(nextSiblings, expression, index); }, select: function() { @@ -1848,23 +1877,16 @@ Element.Methods = { descendantOf: function(element, ancestor) { element = $(element), ancestor = $(ancestor); - var originalAncestor = ancestor; if (element.compareDocumentPosition) return (element.compareDocumentPosition(ancestor) & 8) === 8; - if (element.sourceIndex && !Prototype.Browser.Opera) { - var e = element.sourceIndex, a = ancestor.sourceIndex, - nextAncestor = ancestor.nextSibling; - if (!nextAncestor) { - do { ancestor = ancestor.parentNode; } - while (!(nextAncestor = ancestor.nextSibling) && ancestor.parentNode); - } - if (nextAncestor) return (e > a && e < nextAncestor.sourceIndex); - } + if (ancestor.contains) + return ancestor.contains(element) && ancestor !== element; while (element = element.parentNode) - if (element == originalAncestor) return true; + if (element == ancestor) return true; + return false; }, @@ -1879,7 +1901,7 @@ Element.Methods = { element = $(element); style = style == 'float' ? 'cssFloat' : style.camelize(); var value = element.style[style]; - if (!value) { + if (!value || value == 'auto') { var css = document.defaultView.getComputedStyle(element, null); value = css ? css[style] : null; } @@ -1918,7 +1940,7 @@ Element.Methods = { getDimensions: function(element) { element = $(element); - var display = $(element).getStyle('display'); + var display = element.getStyle('display'); if (display != 'none' && display != null) // Safari bug return {width: element.offsetWidth, height: element.offsetHeight}; @@ -1947,7 +1969,7 @@ Element.Methods = { element.style.position = 'relative'; // Opera returns the offset relative to the positioning context, when an // element is position relative but top and left have not been defined - if (window.opera) { + if (Prototype.Browser.Opera) { element.style.top = 0; element.style.left = 0; } @@ -2002,9 +2024,9 @@ Element.Methods = { valueL += element.offsetLeft || 0; element = element.offsetParent; if (element) { - if (element.tagName == 'BODY') break; + if (element.tagName.toUpperCase() == 'BODY') break; var p = Element.getStyle(element, 'position'); - if (p == 'relative' || p == 'absolute') break; + if (p !== 'static') break; } } while (element); return Element._returnOffset(valueL, valueT); @@ -2012,7 +2034,7 @@ Element.Methods = { absolutize: function(element) { element = $(element); - if (element.getStyle('position') == 'absolute') return; + if (element.getStyle('position') == 'absolute') return element; // Position.prepare(); // To be done manually by Scripty when it needs it. var offsets = element.positionedOffset(); @@ -2036,7 +2058,7 @@ Element.Methods = { relativize: function(element) { element = $(element); - if (element.getStyle('position') == 'relative') return; + if (element.getStyle('position') == 'relative') return element; // Position.prepare(); // To be done manually by Scripty when it needs it. element.style.position = 'relative'; @@ -2087,7 +2109,7 @@ Element.Methods = { element = forElement; do { - if (!Prototype.Browser.Opera || element.tagName == 'BODY') { + if (!Prototype.Browser.Opera || (element.tagName && (element.tagName.toUpperCase() == 'BODY'))) { valueT -= element.scrollTop || 0; valueL -= element.scrollLeft || 0; } @@ -2153,46 +2175,6 @@ Element._attributeTranslations = { } }; - -if (!document.createRange || Prototype.Browser.Opera) { - Element.Methods.insert = function(element, insertions) { - element = $(element); - - if (Object.isString(insertions) || Object.isNumber(insertions) || - Object.isElement(insertions) || (insertions && (insertions.toElement || insertions.toHTML))) - insertions = { bottom: insertions }; - - var t = Element._insertionTranslations, content, position, pos, tagName; - - for (position in insertions) { - content = insertions[position]; - position = position.toLowerCase(); - pos = t[position]; - - if (content && content.toElement) content = content.toElement(); - if (Object.isElement(content)) { - pos.insert(element, content); - continue; - } - - content = Object.toHTML(content); - tagName = ((position == 'before' || position == 'after') - ? element.parentNode : element).tagName.toUpperCase(); - - if (t.tags[tagName]) { - var fragments = Element._getContentFromAnonymousElement(tagName, content.stripScripts()); - if (position == 'top' || position == 'after') fragments.reverse(); - fragments.each(pos.insert.curry(element)); - } - else element.insertAdjacentHTML(pos.adjacency, content.stripScripts()); - - content.evalScripts.bind(content).defer(); - } - - return element; - }; -} - if (Prototype.Browser.Opera) { Element.Methods.getStyle = Element.Methods.getStyle.wrap( function(proceed, element, style) { @@ -2237,12 +2219,36 @@ if (Prototype.Browser.Opera) { } else if (Prototype.Browser.IE) { - $w('positionedOffset getOffsetParent viewportOffset').each(function(method) { + // IE doesn't report offsets correctly for static elements, so we change them + // to "relative" to get the values, then change them back. + Element.Methods.getOffsetParent = Element.Methods.getOffsetParent.wrap( + function(proceed, element) { + element = $(element); + // IE throws an error if element is not in document + try { element.offsetParent } + catch(e) { return $(document.body) } + var position = element.getStyle('position'); + if (position !== 'static') return proceed(element); + element.setStyle({ position: 'relative' }); + var value = proceed(element); + element.setStyle({ position: position }); + return value; + } + ); + + $w('positionedOffset viewportOffset').each(function(method) { Element.Methods[method] = Element.Methods[method].wrap( function(proceed, element) { element = $(element); + try { element.offsetParent } + catch(e) { return Element._returnOffset(0,0) } var position = element.getStyle('position'); - if (position != 'static') return proceed(element); + if (position !== 'static') return proceed(element); + // Trigger hasLayout on the offset parent so that IE6 reports + // accurate offsetTop and offsetLeft values for position: fixed. + var offsetParent = element.getOffsetParent(); + if (offsetParent && offsetParent.getStyle('position') === 'fixed') + offsetParent.setStyle({ zoom: 1 }); element.setStyle({ position: 'relative' }); var value = proceed(element); element.setStyle({ position: position }); @@ -2251,6 +2257,14 @@ else if (Prototype.Browser.IE) { ); }); + Element.Methods.cumulativeOffset = Element.Methods.cumulativeOffset.wrap( + function(proceed, element) { + try { element.offsetParent } + catch(e) { return Element._returnOffset(0,0) } + return proceed(element); + } + ); + Element.Methods.getStyle = function(element, style) { element = $(element); style = (style == 'float' || style == 'cssFloat') ? 'styleFloat' : style.camelize(); @@ -2324,7 +2338,10 @@ else if (Prototype.Browser.IE) { }; Element._attributeTranslations.write = { - names: Object.clone(Element._attributeTranslations.read.names), + names: Object.extend({ + cellpadding: 'cellPadding', + cellspacing: 'cellSpacing' + }, Element._attributeTranslations.read.names), values: { checked: function(element, value) { element.checked = !!value; @@ -2339,7 +2356,7 @@ else if (Prototype.Browser.IE) { Element._attributeTranslations.has = {}; $w('colSpan rowSpan vAlign dateTime accessKey tabIndex ' + - 'encType maxLength readOnly longDesc').each(function(attr) { + 'encType maxLength readOnly longDesc frameBorder').each(function(attr) { Element._attributeTranslations.write.names[attr.toLowerCase()] = attr; Element._attributeTranslations.has[attr.toLowerCase()] = attr; }); @@ -2392,7 +2409,7 @@ else if (Prototype.Browser.WebKit) { (value < 0.00001) ? 0 : value; if (value == 1) - if(element.tagName == 'IMG' && element.width) { + if(element.tagName.toUpperCase() == 'IMG' && element.width) { element.width++; element.width--; } else try { var n = document.createTextNode(' '); @@ -2444,7 +2461,7 @@ if (Prototype.Browser.IE || Prototype.Browser.Opera) { }; } -if (document.createElement('div').outerHTML) { +if ('outerHTML' in document.createElement('div')) { Element.Methods.replace = function(element, content) { element = $(element); @@ -2482,45 +2499,25 @@ Element._returnOffset = function(l, t) { Element._getContentFromAnonymousElement = function(tagName, html) { var div = new Element('div'), t = Element._insertionTranslations.tags[tagName]; - div.innerHTML = t[0] + html + t[1]; - t[2].times(function() { div = div.firstChild }); + if (t) { + div.innerHTML = t[0] + html + t[1]; + t[2].times(function() { div = div.firstChild }); + } else div.innerHTML = html; return $A(div.childNodes); }; Element._insertionTranslations = { - before: { - adjacency: 'beforeBegin', - insert: function(element, node) { - element.parentNode.insertBefore(node, element); - }, - initializeRange: function(element, range) { - range.setStartBefore(element); - } + before: function(element, node) { + element.parentNode.insertBefore(node, element); }, - top: { - adjacency: 'afterBegin', - insert: function(element, node) { - element.insertBefore(node, element.firstChild); - }, - initializeRange: function(element, range) { - range.selectNodeContents(element); - range.collapse(true); - } + top: function(element, node) { + element.insertBefore(node, element.firstChild); }, - bottom: { - adjacency: 'beforeEnd', - insert: function(element, node) { - element.appendChild(node); - } + bottom: function(element, node) { + element.appendChild(node); }, - after: { - adjacency: 'afterEnd', - insert: function(element, node) { - element.parentNode.insertBefore(node, element.nextSibling); - }, - initializeRange: function(element, range) { - range.setStartAfter(element); - } + after: function(element, node) { + element.parentNode.insertBefore(node, element.nextSibling); }, tags: { TABLE: ['', '
    ', 1], @@ -2532,7 +2529,6 @@ Element._insertionTranslations = { }; (function() { - this.bottom.initializeRange = this.top.initializeRange; Object.extend(this.tags, { THEAD: this.tags.TBODY, TFOOT: this.tags.TBODY, @@ -2544,7 +2540,7 @@ Element.Methods.Simulated = { hasAttribute: function(element, attribute) { attribute = Element._attributeTranslations.has[attribute] || attribute; var node = $(element).getAttributeNode(attribute); - return node && node.specified; + return !!(node && node.specified); } }; @@ -2553,9 +2549,9 @@ Element.Methods.ByTag = { }; Object.extend(Element, Element.Methods); if (!Prototype.BrowserFeatures.ElementExtensions && - document.createElement('div').__proto__) { + document.createElement('div')['__proto__']) { window.HTMLElement = { }; - window.HTMLElement.prototype = document.createElement('div').__proto__; + window.HTMLElement.prototype = document.createElement('div')['__proto__']; Prototype.BrowserFeatures.ElementExtensions = true; } @@ -2570,7 +2566,7 @@ Element.extend = (function() { element.nodeType != 1 || element == window) return element; var methods = Object.clone(Methods), - tagName = element.tagName, property, value; + tagName = element.tagName.toUpperCase(), property, value; // extend methods for specific tags if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]); @@ -2666,7 +2662,7 @@ Element.addMethods = function(methods) { if (window[klass]) return window[klass]; window[klass] = { }; - window[klass].prototype = document.createElement(tagName).__proto__; + window[klass].prototype = document.createElement(tagName)['__proto__']; return window[klass]; } @@ -2692,12 +2688,18 @@ Element.addMethods = function(methods) { document.viewport = { getDimensions: function() { - var dimensions = { }; - var B = Prototype.Browser; + var dimensions = { }, B = Prototype.Browser; $w('width height').each(function(d) { var D = d.capitalize(); - dimensions[d] = (B.WebKit && !document.evaluate) ? self['inner' + D] : - (B.Opera) ? document.body['client' + D] : document.documentElement['client' + D]; + if (B.WebKit && !document.evaluate) { + // Safari <3.0 needs self.innerWidth/Height + dimensions[d] = self['inner' + D]; + } else if (B.Opera && parseFloat(window.opera.version()) < 9.5) { + // Opera <9.5 needs document.body.clientWidth/Height + dimensions[d] = document.body['client' + D] + } else { + dimensions[d] = document.documentElement['client' + D]; + } }); return dimensions; }, @@ -2716,14 +2718,24 @@ document.viewport = { window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop); } }; -/* Portions of the Selector class are derived from Jack Slocum’s DomQuery, +/* Portions of the Selector class are derived from Jack Slocum's DomQuery, * part of YUI-Ext version 0.40, distributed under the terms of an MIT-style * license. Please see http://www.yui-ext.com/ for more information. */ var Selector = Class.create({ initialize: function(expression) { this.expression = expression.strip(); - this.compileMatcher(); + + if (this.shouldUseSelectorsAPI()) { + this.mode = 'selectorsAPI'; + } else if (this.shouldUseXPath()) { + this.mode = 'xpath'; + this.compileXPathMatcher(); + } else { + this.mode = "normal"; + this.compileMatcher(); + } + }, shouldUseXPath: function() { @@ -2738,16 +2750,29 @@ var Selector = Class.create({ // XPath can't do namespaced attributes, nor can it read // the "checked" property from DOM nodes - if ((/(\[[\w-]*?:|:checked)/).test(this.expression)) + if ((/(\[[\w-]*?:|:checked)/).test(e)) return false; return true; }, - compileMatcher: function() { - if (this.shouldUseXPath()) - return this.compileXPathMatcher(); + shouldUseSelectorsAPI: function() { + if (!Prototype.BrowserFeatures.SelectorsAPI) return false; + if (!Selector._div) Selector._div = new Element('div'); + + // Make sure the browser treats the selector as valid. Test on an + // isolated element to minimize cost of this check. + try { + Selector._div.querySelector(this.expression); + } catch(e) { + return false; + } + + return true; + }, + + compileMatcher: function() { var e = this.expression, ps = Selector.patterns, h = Selector.handlers, c = Selector.criteria, le, p, m; @@ -2765,7 +2790,7 @@ var Selector = Class.create({ p = ps[i]; if (m = e.match(p)) { this.matcher.push(Object.isFunction(c[i]) ? c[i](m) : - new Template(c[i]).evaluate(m)); + new Template(c[i]).evaluate(m)); e = e.replace(m[0], ''); break; } @@ -2804,8 +2829,27 @@ var Selector = Class.create({ findElements: function(root) { root = root || document; - if (this.xpath) return document._getElementsByXPath(this.xpath, root); - return this.matcher(root); + var e = this.expression, results; + + switch (this.mode) { + case 'selectorsAPI': + // querySelectorAll queries document-wide, then filters to descendants + // of the context element. That's not what we want. + // Add an explicit context to the selector if necessary. + if (root !== document) { + var oldId = root.id, id = $(root).identify(); + e = "#" + id + " " + e; + } + + results = $A(root.querySelectorAll(e)).map(Element.extend); + root.id = oldId; + + return results; + case 'xpath': + return document._getElementsByXPath(this.xpath, root); + default: + return this.matcher(root); + } }, match: function(element) { @@ -2896,10 +2940,10 @@ Object.extend(Selector, { 'first-child': '[not(preceding-sibling::*)]', 'last-child': '[not(following-sibling::*)]', 'only-child': '[not(preceding-sibling::* or following-sibling::*)]', - 'empty': "[count(*) = 0 and (count(text()) = 0 or translate(text(), ' \t\r\n', '') = '')]", + 'empty': "[count(*) = 0 and (count(text()) = 0)]", 'checked': "[@checked]", - 'disabled': "[@disabled]", - 'enabled': "[not(@disabled)]", + 'disabled': "[(@disabled) and (@type!='hidden')]", + 'enabled': "[not(@disabled) and (@type!='hidden')]", 'not': function(m) { var e = m[6], p = Selector.patterns, x = Selector.xpath, le, v; @@ -2959,13 +3003,13 @@ Object.extend(Selector, { }, criteria: { - tagName: 'n = h.tagName(n, r, "#{1}", c); c = false;', - className: 'n = h.className(n, r, "#{1}", c); c = false;', - id: 'n = h.id(n, r, "#{1}", c); c = false;', - attrPresence: 'n = h.attrPresence(n, r, "#{1}"); c = false;', + tagName: 'n = h.tagName(n, r, "#{1}", c); c = false;', + className: 'n = h.className(n, r, "#{1}", c); c = false;', + id: 'n = h.id(n, r, "#{1}", c); c = false;', + attrPresence: 'n = h.attrPresence(n, r, "#{1}", c); c = false;', attr: function(m) { m[3] = (m[5] || m[6]); - return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}"); c = false;').evaluate(m); + return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}", c); c = false;').evaluate(m); }, pseudo: function(m) { if (m[6]) m[6] = m[6].replace(/"/g, '\\"'); @@ -2989,8 +3033,9 @@ Object.extend(Selector, { tagName: /^\s*(\*|[\w\-]+)(\b|$)?/, id: /^#([\w\-\*]+)(\b|$)/, className: /^\.([\w\-\*]+)(\b|$)/, - pseudo: /^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s)|(?=:))/, - attrPresence: /^\[([\w]+)\]/, + pseudo: +/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s|[:+~>]))/, + attrPresence: /^\[((?:[\w]+:)?[\w]+)\]/, attr: /\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/ }, @@ -3014,7 +3059,7 @@ Object.extend(Selector, { attr: function(element, matches) { var nodeValue = Element.readAttribute(element, matches[1]); - return Selector.operators[matches[2]](nodeValue, matches[3]); + return nodeValue && Selector.operators[matches[2]](nodeValue, matches[5] || matches[6]); } }, @@ -3029,14 +3074,15 @@ Object.extend(Selector, { // marks an array of nodes for counting mark: function(nodes) { + var _true = Prototype.emptyFunction; for (var i = 0, node; node = nodes[i]; i++) - node._counted = true; + node._countedByPrototype = _true; return nodes; }, unmark: function(nodes) { for (var i = 0, node; node = nodes[i]; i++) - node._counted = undefined; + node._countedByPrototype = undefined; return nodes; }, @@ -3044,15 +3090,15 @@ Object.extend(Selector, { // "ofType" flag indicates whether we're indexing for nth-of-type // rather than nth-child index: function(parentNode, reverse, ofType) { - parentNode._counted = true; + parentNode._countedByPrototype = Prototype.emptyFunction; if (reverse) { for (var nodes = parentNode.childNodes, i = nodes.length - 1, j = 1; i >= 0; i--) { var node = nodes[i]; - if (node.nodeType == 1 && (!ofType || node._counted)) node.nodeIndex = j++; + if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++; } } else { for (var i = 0, j = 1, nodes = parentNode.childNodes; node = nodes[i]; i++) - if (node.nodeType == 1 && (!ofType || node._counted)) node.nodeIndex = j++; + if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++; } }, @@ -3061,8 +3107,8 @@ Object.extend(Selector, { if (nodes.length == 0) return nodes; var results = [], n; for (var i = 0, l = nodes.length; i < l; i++) - if (!(n = nodes[i])._counted) { - n._counted = true; + if (!(n = nodes[i])._countedByPrototype) { + n._countedByPrototype = Prototype.emptyFunction; results.push(Element.extend(n)); } return Selector.handlers.unmark(results); @@ -3102,7 +3148,7 @@ Object.extend(Selector, { nextElementSibling: function(node) { while (node = node.nextSibling) - if (node.nodeType == 1) return node; + if (node.nodeType == 1) return node; return null; }, @@ -3114,7 +3160,7 @@ Object.extend(Selector, { // TOKEN FUNCTIONS tagName: function(nodes, root, tagName, combinator) { - tagName = tagName.toUpperCase(); + var uTagName = tagName.toUpperCase(); var results = [], h = Selector.handlers; if (nodes) { if (combinator) { @@ -3127,7 +3173,7 @@ Object.extend(Selector, { if (tagName == "*") return nodes; } for (var i = 0, node; node = nodes[i]; i++) - if (node.tagName.toUpperCase() == tagName) results.push(node); + if (node.tagName.toUpperCase() === uTagName) results.push(node); return results; } else return root.getElementsByTagName(tagName); }, @@ -3174,16 +3220,18 @@ Object.extend(Selector, { return results; }, - attrPresence: function(nodes, root, attr) { + attrPresence: function(nodes, root, attr, combinator) { if (!nodes) nodes = root.getElementsByTagName("*"); + if (nodes && combinator) nodes = this[combinator](nodes); var results = []; for (var i = 0, node; node = nodes[i]; i++) if (Element.hasAttribute(node, attr)) results.push(node); return results; }, - attr: function(nodes, root, attr, value, operator) { + attr: function(nodes, root, attr, value, operator, combinator) { if (!nodes) nodes = root.getElementsByTagName("*"); + if (nodes && combinator) nodes = this[combinator](nodes); var handler = Selector.operators[operator], results = []; for (var i = 0, node; node = nodes[i]; i++) { var nodeValue = Element.readAttribute(node, attr); @@ -3262,7 +3310,7 @@ Object.extend(Selector, { var h = Selector.handlers, results = [], indexed = [], m; h.mark(nodes); for (var i = 0, node; node = nodes[i]; i++) { - if (!node.parentNode._counted) { + if (!node.parentNode._countedByPrototype) { h.index(node.parentNode, reverse, ofType); indexed.push(node.parentNode); } @@ -3289,7 +3337,7 @@ Object.extend(Selector, { 'empty': function(nodes, value, root) { for (var i = 0, results = [], node; node = nodes[i]; i++) { // IE treats comments as element nodes - if (node.tagName == '!' || (node.firstChild && !node.innerHTML.match(/^\s*$/))) continue; + if (node.tagName == '!' || node.firstChild) continue; results.push(node); } return results; @@ -3300,14 +3348,15 @@ Object.extend(Selector, { var exclusions = new Selector(selector).findElements(root); h.mark(exclusions); for (var i = 0, results = [], node; node = nodes[i]; i++) - if (!node._counted) results.push(node); + if (!node._countedByPrototype) results.push(node); h.unmark(exclusions); return results; }, 'enabled': function(nodes, value, root) { for (var i = 0, results = [], node; node = nodes[i]; i++) - if (!node.disabled) results.push(node); + if (!node.disabled && (!node.type || node.type !== 'hidden')) + results.push(node); return results; }, @@ -3327,18 +3376,29 @@ Object.extend(Selector, { operators: { '=': function(nv, v) { return nv == v; }, '!=': function(nv, v) { return nv != v; }, - '^=': function(nv, v) { return nv.startsWith(v); }, + '^=': function(nv, v) { return nv == v || nv && nv.startsWith(v); }, + '$=': function(nv, v) { return nv == v || nv && nv.endsWith(v); }, + '*=': function(nv, v) { return nv == v || nv && nv.include(v); }, '$=': function(nv, v) { return nv.endsWith(v); }, '*=': function(nv, v) { return nv.include(v); }, '~=': function(nv, v) { return (' ' + nv + ' ').include(' ' + v + ' '); }, - '|=': function(nv, v) { return ('-' + nv.toUpperCase() + '-').include('-' + v.toUpperCase() + '-'); } + '|=': function(nv, v) { return ('-' + (nv || "").toUpperCase() + + '-').include('-' + (v || "").toUpperCase() + '-'); } + }, + + split: function(expression) { + var expressions = []; + expression.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) { + expressions.push(m[1].strip()); + }); + return expressions; }, matchElements: function(elements, expression) { - var matches = new Selector(expression).findElements(), h = Selector.handlers; + var matches = $$(expression), h = Selector.handlers; h.mark(matches); for (var i = 0, results = [], element; element = elements[i]; i++) - if (element._counted) results.push(element); + if (element._countedByPrototype) results.push(element); h.unmark(matches); return results; }, @@ -3351,11 +3411,7 @@ Object.extend(Selector, { }, findChildElements: function(element, expressions) { - var exprs = expressions.join(','); - expressions = []; - exprs.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) { - expressions.push(m[1].strip()); - }); + expressions = Selector.split(expressions.join(',')); var results = [], h = Selector.handlers; for (var i = 0, l = expressions.length, selector; i < l; i++) { selector = new Selector(expressions[i].strip()); @@ -3366,13 +3422,22 @@ Object.extend(Selector, { }); if (Prototype.Browser.IE) { - // IE returns comment nodes on getElementsByTagName("*"). - // Filter them out. - Selector.handlers.concat = function(a, b) { - for (var i = 0, node; node = b[i]; i++) - if (node.tagName !== "!") a.push(node); - return a; - }; + Object.extend(Selector.handlers, { + // IE returns comment nodes on getElementsByTagName("*"). + // Filter them out. + concat: function(a, b) { + for (var i = 0, node; node = b[i]; i++) + if (node.tagName !== "!") a.push(node); + return a; + }, + + // IE improperly serializes _countedByPrototype in (inner|outer)HTML. + unmark: function(nodes) { + for (var i = 0, node; node = nodes[i]; i++) + node.removeAttribute('_countedByPrototype'); + return nodes; + } + }); } function $$() { @@ -3392,7 +3457,7 @@ var Form = { var data = elements.inject({ }, function(result, element) { if (!element.disabled && element.name) { key = element.name; value = $(element).getValue(); - if (value != null && (element.type != 'submit' || (!submitted && + if (value != null && element.type != 'file' && (element.type != 'submit' || (!submitted && submit !== false && (!submit || key == submit) && (submitted = true)))) { if (key in result) { // a key is already present; construct an array of values @@ -3553,7 +3618,6 @@ Form.Element.Methods = { disable: function(element) { element = $(element); - element.blur(); element.disabled = true; return element; }, @@ -3593,22 +3657,22 @@ Form.Element.Serializers = { else element.value = value; }, - select: function(element, index) { - if (Object.isUndefined(index)) + select: function(element, value) { + if (Object.isUndefined(value)) return this[element.type == 'select-one' ? 'selectOne' : 'selectMany'](element); else { - var opt, value, single = !Object.isArray(index); + var opt, currentValue, single = !Object.isArray(value); for (var i = 0, length = element.length; i < length; i++) { opt = element.options[i]; - value = this.optionValue(opt); + currentValue = this.optionValue(opt); if (single) { - if (value == index) { + if (currentValue == value) { opt.selected = true; return; } } - else opt.selected = index.include(value); + else opt.selected = value.include(currentValue); } } }, @@ -3779,8 +3843,23 @@ Event.Methods = (function() { isRightClick: function(event) { return isButton(event, 2) }, element: function(event) { - var node = Event.extend(event).target; - return Element.extend(node.nodeType == Node.TEXT_NODE ? node.parentNode : node); + event = Event.extend(event); + + var node = event.target, + type = event.type, + currentTarget = event.currentTarget; + + if (currentTarget && currentTarget.tagName) { + // Firefox screws up the "click" event when moving between radio buttons + // via arrow keys. It also screws up the "load" and "error" events on images, + // reporting the document as the target instead of the original image. + if (type === 'load' || type === 'error' || + (type === 'click' && currentTarget.tagName.toLowerCase() === 'input' + && currentTarget.type === 'radio')) + node = currentTarget; + } + if (node.nodeType == Node.TEXT_NODE) node = node.parentNode; + return Element.extend(node); }, findElement: function(event, expression) { @@ -3791,11 +3870,15 @@ Event.Methods = (function() { }, pointer: function(event) { + var docElement = document.documentElement, + body = document.body || { scrollLeft: 0, scrollTop: 0 }; return { x: event.pageX || (event.clientX + - (document.documentElement.scrollLeft || document.body.scrollLeft)), + (docElement.scrollLeft || body.scrollLeft) - + (docElement.clientLeft || 0)), y: event.pageY || (event.clientY + - (document.documentElement.scrollTop || document.body.scrollTop)) + (docElement.scrollTop || body.scrollTop) - + (docElement.clientTop || 0)) }; }, @@ -3840,7 +3923,7 @@ Event.extend = (function() { }; } else { - Event.prototype = Event.prototype || document.createEvent("HTMLEvents").__proto__; + Event.prototype = Event.prototype || document.createEvent("HTMLEvents")['__proto__']; Object.extend(Event.prototype, methods); return Prototype.K; } @@ -3850,9 +3933,9 @@ Object.extend(Event, (function() { var cache = Event.cache; function getEventID(element) { - if (element._eventID) return element._eventID; + if (element._prototypeEventID) return element._prototypeEventID[0]; arguments.callee.id = arguments.callee.id || 1; - return element._eventID = ++arguments.callee.id; + return element._prototypeEventID = [++arguments.callee.id]; } function getDOMEventName(eventName) { @@ -3880,7 +3963,7 @@ Object.extend(Event, (function() { return false; Event.extend(event); - handler.call(element, event) + handler.call(element, event); }; wrapper.handler = handler; @@ -3905,10 +3988,20 @@ Object.extend(Event, (function() { cache[id][eventName] = null; } + + // Internet Explorer needs to remove event handlers on page unload + // in order to avoid memory leaks. if (window.attachEvent) { window.attachEvent("onunload", destroyCache); } + // Safari has a dummy event handler on page unload so that it won't + // use its bfcache. Safari <= 3.1 has an issue with restoring the "document" + // object when page is returned to via the back button using its bfcache. + if (Prototype.Browser.WebKit) { + window.addEventListener('unload', Prototype.emptyFunction, false); + } + return { observe: function(element, eventName, handler) { element = $(element); @@ -3962,11 +4055,12 @@ Object.extend(Event, (function() { if (element == document && document.createEvent && !element.dispatchEvent) element = document.documentElement; + var event; if (document.createEvent) { - var event = document.createEvent("HTMLEvents"); + event = document.createEvent("HTMLEvents"); event.initEvent("dataavailable", true, true); } else { - var event = document.createEventObject(); + event = document.createEventObject(); event.eventType = "ondataavailable"; } @@ -3995,20 +4089,21 @@ Element.addMethods({ Object.extend(document, { fire: Element.Methods.fire.methodize(), observe: Element.Methods.observe.methodize(), - stopObserving: Element.Methods.stopObserving.methodize() + stopObserving: Element.Methods.stopObserving.methodize(), + loaded: false }); (function() { /* Support for the DOMContentLoaded event is based on work by Dan Webb, Matthias Miller, Dean Edwards and John Resig. */ - var timer, fired = false; + var timer; function fireContentLoadedEvent() { - if (fired) return; + if (document.loaded) return; if (timer) window.clearInterval(timer); document.fire("dom:loaded"); - fired = true; + document.loaded = true; } if (document.addEventListener) { diff --git a/vendor/plugins/exception_notification/init.rb b/vendor/plugins/exception_notification/init.rb index b39bd95d..4d9d76ee 100644 --- a/vendor/plugins/exception_notification/init.rb +++ b/vendor/plugins/exception_notification/init.rb @@ -1 +1,4 @@ require "action_mailer" +require "exception_notifier" +require "exception_notifiable" +require "exception_notifier_helper" diff --git a/vendor/plugins/exception_notification/lib/exception_notifier.rb b/vendor/plugins/exception_notification/lib/exception_notifier.rb index 0518c3d4..72e2e1a6 100644 --- a/vendor/plugins/exception_notification/lib/exception_notifier.rb +++ b/vendor/plugins/exception_notification/lib/exception_notifier.rb @@ -33,25 +33,25 @@ class ExceptionNotifier < ActionMailer::Base @@sections = %w(request session environment backtrace) cattr_accessor :sections - def self.reloadable?; false; end + self.template_root = "#{File.dirname(__FILE__)}/../views" + + def self.reloadable?() false end def exception_notification(exception, controller, request, data={}) + content_type "text/plain" + subject "#{email_prefix}#{controller.controller_name}##{controller.action_name} (#{exception.class}) #{exception.message.inspect}" recipients exception_recipients from sender_address body data.merge({ :controller => controller, :request => request, - :exception => exception, :host => request.env["HTTP_HOST"], + :exception => exception, :host => (request.env["HTTP_X_FORWARDED_HOST"] || request.env["HTTP_HOST"]), :backtrace => sanitize_backtrace(exception.backtrace), :rails_root => rails_root, :data => data, :sections => sections }) end - def template_root - "#{File.dirname(__FILE__)}/../views" - end - private def sanitize_backtrace(trace) @@ -60,8 +60,7 @@ class ExceptionNotifier < ActionMailer::Base end def rails_root - return @rails_root if @rails_root - @rails_root = Pathname.new(RAILS_ROOT).cleanpath.to_s + @rails_root ||= Pathname.new(RAILS_ROOT).cleanpath.to_s end end diff --git a/vendor/plugins/exception_notification/lib/exception_notifier_helper.rb b/vendor/plugins/exception_notification/lib/exception_notifier_helper.rb index c00c652b..d3dc63ab 100644 --- a/vendor/plugins/exception_notification/lib/exception_notifier_helper.rb +++ b/vendor/plugins/exception_notification/lib/exception_notifier_helper.rb @@ -67,11 +67,12 @@ module ExceptionNotifierHelper end def filter_sensitive_post_data_parameters(parameters) - exclude_raw_post_parameters? ? @controller.filter_parameters(parameters) : parameters + exclude_raw_post_parameters? ? @controller.__send__(:filter_parameters, parameters) : parameters end def filter_sensitive_post_data_from_env(env_key, env_value) return env_value unless exclude_raw_post_parameters? - (env_key =~ /RAW_POST_DATA/i) ? PARAM_FILTER_REPLACEMENT : env_value + return PARAM_FILTER_REPLACEMENT if (env_key =~ /RAW_POST_DATA/i) + return @controller.__send__(:filter_parameters, {env_key => env_value}).values[0] end end diff --git a/vendor/plugins/exception_notification/views/exception_notifier/_environment.rhtml b/vendor/plugins/exception_notification/views/exception_notifier/_environment.rhtml index 320765b8..42dd803f 100644 --- a/vendor/plugins/exception_notification/views/exception_notifier/_environment.rhtml +++ b/vendor/plugins/exception_notification/views/exception_notifier/_environment.rhtml @@ -1,6 +1,6 @@ <% max = @request.env.keys.max { |a,b| a.length <=> b.length } -%> <% @request.env.keys.sort.each do |key| -%> -* <%= "%*-s: %s" % [max.length, key, filter_sensitive_post_data_from_env(key, @request.env[key].to_s.strip)] %> +* <%= "%-*s: %s" % [max.length, key, filter_sensitive_post_data_from_env(key, @request.env[key].to_s.strip)] %> <% end -%> * Process: <%= $$ %> diff --git a/vendor/plugins/exception_notification/views/exception_notifier/_request.rhtml b/vendor/plugins/exception_notification/views/exception_notifier/_request.rhtml index 820931f4..25423093 100644 --- a/vendor/plugins/exception_notification/views/exception_notifier/_request.rhtml +++ b/vendor/plugins/exception_notification/views/exception_notifier/_request.rhtml @@ -1,3 +1,4 @@ -* URL: <%= @request.protocol %><%= @host %><%= @request.request_uri %> +* URL : <%= @request.protocol %><%= @host %><%= @request.request_uri %> +* IP address: <%= @request.env["HTTP_X_FORWARDED_FOR"] || @request.env["REMOTE_ADDR"] %> * Parameters: <%= filter_sensitive_post_data_parameters(@request.parameters).inspect %> * Rails root: <%= @rails_root %> diff --git a/vendor/plugins/l10n-simplified-0.8/MIT-LICENSE b/vendor/plugins/l10n-simplified-0.8/MIT-LICENSE deleted file mode 100755 index 31435cc2..00000000 --- a/vendor/plugins/l10n-simplified-0.8/MIT-LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2006 Jesper Rønn-Jensen - -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. \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/README b/vendor/plugins/l10n-simplified-0.8/README deleted file mode 100755 index 0b981fe1..00000000 --- a/vendor/plugins/l10n-simplified-0.8/README +++ /dev/null @@ -1,158 +0,0 @@ -= Localization Simplified (aka LocalizationSimplified or L10n-simplified) - -Localization Simplified plugin for Ruby on Rails. Really simple localization. Written by Jesper Rønn-Jensen ( http://justaddwater.dk/ ) - -The goal is to have a dead simple plugin for one-language (non-english) Rails -applications. Many of the existing localization / internationalization plugins are -too big for this and hard to get started with. Just dump this plugin in -/vendor/plugins/, set your language and off you go. - -Unlike the more advanced plugins, you don't have to translate anything in your -view files. Just use the standard Rails commands you're used to. - -The simple approach also makes limits. Make sure you understand them to decide if -this plugin is right for you. - -I use this plugin when creating new projects. Then later in the development -process I can decide to change to a more advanced localization plugin (if necessary) - -=== What it does -This plugin modifies the following most used helpers for Rails -* Sets UTF-8 connection to database (known to work with MySQL and PostgreSQL) -* Localized monthnames on date_select etc. (changing the order of Y-M-D, on date_select and datetime_select from 0.7) -* Localized ActiveRecord errors (and error headings) -* Localized distance_of_time_in_words -* Localized to_currency (from 0.7 also changing the order of unit/currency) -* Simple pluralization also available in the lang-file -* Uses standard Rails methods. In this way, there is no tedious rewrite required - to localize your view files - - -=== Limitations -* More advanced features are not likely to be available here. -* If you want support for multiple languages, use another L10N/I18n plugin, like - GLoc or Globalize -It could be a good idea to take a look at the [comparison chart](http://wiki.rubyonrails.org/rails/pages/InternationalizationComparison) on the Ruby on Rails wiki - -=== Version notes -* For Rails 1.1.x or below, use version 0.7.1 of this plugin -* For Rails 1.2 or above, use version 0.8 (or higher) of this plugin - -=== Supported languages -Curr ently supported languages: -* English (for running test cases and comparing to normal texts) -* German -* Spanish -* Spanish (argentinian) -* French -* Dutch -* Italian -* Danish -* Swedish -* Finnish -* Canadian French -* Korean -* Swedish Chef, and Pirate talk (just for the fun of it) -* any other language you want. Just dump your translation in the /lib folder - -=== Download code -* Project homepage: http://rubyforge.org/projects/l10n-simplified/ -* Subversion access: svn checkout svn://rubyforge.org/var/svn/l10n-simplified -* Browse: http://rubyforge.org/plugins/scmsvn/viewcvs.php/?root=l10n-simplified - - - -=== Usage: -in init.rb, set your language. That's it. Now your db connection is running UTF-8 and standard Rails output is localized. - -If your view files contains text containing non-English characters (such as ß,ö,ñ or å), you probably also want to save your files as UTF-8. - - -=== Installation: - -1. Just copy this plugin into your /vendor/plugins/ folder -2. Choose your lang-file in init.rb (default is Danish because I am Danish) -3. no step three :) - - -A special note of WARNING: All files here are saved using UTF-8 encoding. -It's not required for working, I guess, but other encodings could bring you in trouble. - -=== Your help -Feel free to use, translate, modify and improve this code. -Do send me translations, improvements, etc. I cannot promise to use it, -but chances are that I will unless it bloats the code here completely or makes -code harder to maintain. - -I added FIXME notes in the code to indicate where I also could use help. - -=== TODO / wishlist -* A Rails application for testing L10n-simplified. This is top of my wish-list. - I'd like it to contain a test suite testing ActiveRecord errors, datehelper, necessary - numberhelper etc. -* Rake task to create a release -* Better tests to verify both hooks in Rails and this plugin -* Better tests to verify each lang-file -* Create rdoc in UTF-8 format and not including every lang-file (only lang_en.rb) -* Rake task that modifies all view-files and converts them to UTF-8 -* Also a task that modifies all generators to use UTF-8 - -=== DONE -* --- release 0.8 --- -* Works with Rails 1.2 (not working with earlier versions) -* Whitespace/formatting modifications. Removed commented code not needed -* Removed code from plugin because Rails 1.2 date_select and datetime_select - now support :order -* ActiveRecord hooks updated for Rails 1.2 (thanks Casper Fabricius) -* Dots after day number in time formats (Danish), to keep it consistent with Date formats -* --- release 0.7.1 --- -* Fixed RJS bug where javascript content-header was overwritten with text/html (thanks Jakob Skjerning) -* Small language corrections by Wijnand Wiersma -* PostGres friendly: Added quotes around ActiveRecord::Base.connection.execute "SET NAMES 'UTF8'" (thanks Wijnand Wiersma) -* German language errors corrected by Matthias Tarasiewicz -* Added "no step three" in installation section :) -* --- release 0.7 --- -* Fixed messed-up ø's and a few wording changes in README -* Override +number_to_currency+ and +datetime_select+ to support :order - even though I prefer these changes to go into Rails Core (2006-10-10) -* Added italian lang file (thanks Michele Franzin) (2006-10-08) -* Added argentinian flavoured Spanish lang File + corrected bug in lang_es (thanks Damian Janowski) (2006-10-03) -* German translation issues (thanks Christian W. Zuckschwerdt) (2006-10-03) -* Fixed typo in README File (thanks Diego Algorta Casamayou) (2006-10-02) -* Bugfix removed incorrect 'then' after 'else' (thanks Michele Franzin)(2006-09-16) -* Added augmented and corrected distance_of_time_in_words from Rails trunk (2006-09-07) -* Added date_select and datetime_select on the helper page (2006-09-07) -* Updated dutch date-time formats, thanks Jeroen Houben (2006-09-07) -* --- release 0.6.1 --- -* Added comments in all lang-files, thanks Jarkko Laine for the idea (2006-09-07) -* Bugfix: Replaced hardcoded string in distance_of_time_in_words when :include_seconds was false (2006-08-30) -* Added Canadian French translation (thanks Daniel) (2006-08-25) -* Added comments in lang-file for documentation of how to localize (2006-08-25) -* Added French translation (thanks Fred Cavazza) (2006-08-25) -* Added Finnish translation (thanks Jarkko Laine) (2006-08-25) -* Bugfix re-added HTTP header for UTF-8. Necessary for some lang-files (2004-08-24) -* --- release 0.6 --- -* Renamed test files to make rake test command work (2006-08-23) -* Localized time "Wed Aug 23 12:38:22 Romance Daylight Time 2006" => - "onsdag d. 23 august 2006 12:38:22" (Danish) -* Reordering of date_select fields (2006-08-23) -* Test that plugin works with the Rails version it is installed next to (2006-08-20) -* Added Dutch translation lang_nl.rb, thanks to Jeroen Houben (2006-08-20) -* Added Pirate language lang_pirate.rb, thanks to Tobias Michaelsen (2006-08-18) -* Added Date and Time#to_formatted_s with locale specific strings (2006-08-18) -* Added MIT-license, copied from Ruby on Rails (2006-08-13) -* Added tests for plugin (2006-08-13) -* Localized version of Array.to_sentence (2006-08-09) -* Added test scaffold (2006-08-09) -* Added swedish language, thanks to Olle Jonsson (2006-08-09) -* Localized version of to_currency helper (2006-08-07) - - -=== Credits -This plugin uses a few bits and pieces from other Rails plugins GLoc (http://rubyforge.org/projects/gloc/) and swe_rails (http://opensource.ki.se/swe_rails.html) - - -Created 2006-07-28 by -Jesper Rønn-Jensen http://justaddwater.dk/ -http://rubyforge.org/projects/l10n-simplified/ -http://agilewebdevelopment.com/plugins/localization_simplified diff --git a/vendor/plugins/l10n-simplified-0.8/Rakefile b/vendor/plugins/l10n-simplified-0.8/Rakefile deleted file mode 100755 index 58c48647..00000000 --- a/vendor/plugins/l10n-simplified-0.8/Rakefile +++ /dev/null @@ -1,22 +0,0 @@ -require 'rake' -require 'rake/testtask' -require 'rake/rdoctask' - -desc 'Default: run unit tests.' -task :default => :test - -desc 'Test the l10n_simplified plugin.' -Rake::TestTask.new(:test) do |t| - t.libs << 'lib' - t.pattern = 'test/**/*_test.rb' - t.verbose = true -end - -desc 'Generate documentation for the l10n_simplified plugin.' -Rake::RDocTask.new(:rdoc) do |rdoc| - rdoc.rdoc_dir = 'rdoc' - rdoc.title = 'LocalizationSimplified' - rdoc.options << '--line-numbers' << '--inline-source' - rdoc.rdoc_files.include('README') - rdoc.rdoc_files.include('lib/**/*.rb') -end diff --git a/vendor/plugins/l10n-simplified-0.8/create-release.txt b/vendor/plugins/l10n-simplified-0.8/create-release.txt deleted file mode 100755 index 18dfb08b..00000000 --- a/vendor/plugins/l10n-simplified-0.8/create-release.txt +++ /dev/null @@ -1,24 +0,0 @@ -cd .. -svn export l10n-simplified export\l10n-simplified-0.8 -(right-click to create zip file) -FIXME make a rake task and - -cd export -tar -czf l10n-simplified-0.8.tar.gz l10n-simplified-0.8 - - - - -# ========== -# other commands that I use with this plugin -# ========== - - -FIXME Create rdoc in UTF-8 format and not including every lang-file (only lang_en.rb) -FIXME describe upload of rdoc to l10n-simplified website - - - - - - diff --git a/vendor/plugins/l10n-simplified-0.8/init.rb b/vendor/plugins/l10n-simplified-0.8/init.rb deleted file mode 100755 index c6978f32..00000000 --- a/vendor/plugins/l10n-simplified-0.8/init.rb +++ /dev/null @@ -1,20 +0,0 @@ -# Choose language file here -# ONLY choose one of the ones below: -#require 'lang_en' #default language to run the test cases -#require 'lang_da' -require 'lang_de' -#require 'lang_es' -#require 'lang_fi' -#require 'lang_fr' -#require 'lang_nl' -#require 'lang_ko' -#require 'lang_se' -#require 'lang_chef' -#require 'lang_pirate' -# You can Add your own localization file and add it here - - - -# Also include hook code here -require 'localization_simplified' - diff --git a/vendor/plugins/l10n-simplified-0.8/lib/lang_cf.rb b/vendor/plugins/l10n-simplified-0.8/lib/lang_cf.rb deleted file mode 100755 index 7f0cc8c2..00000000 --- a/vendor/plugins/l10n-simplified-0.8/lib/lang_cf.rb +++ /dev/null @@ -1,118 +0,0 @@ -# lang_cf.rb -# french canadian translation file -# Translation by Daniel Lepage ( http://www.solulabs.com/ ) - -module LocalizationSimplified - About = { - :lang => "cf", - :updated => "2006-09-07" - } - - class ActiveRecord - # ErrorMessages to override default messages in - # +ActiveRecord::Errors::@@default_error_messages+ - # This plugin also replaces hardcoded 3 text messages - # :error_translation is inflected using the Rails - # inflector. - # - # Remember to modify the Inflector with your localized translation - # of "error" and "errors" in the bottom of this file - # - ErrorMessages = { - :inclusion => "n'est pas inclus dans la liste", - :exclusion => "est réservé", - :invalid => "est non valide", - :confirmation => "ne correspond pas à la confirmation", - :accepted => "doit être accepté", - :empty => "ne peut pas être vide", - :blank => "ne peut pas être laissé à blanc", - :too_long => "dépasse la longueur permise (le maximum étant de %d caractères)", - :too_short => "est trop court (le minimum étant de %d caractères)", - :wrong_length => "n'est pas de la bonne longueur (doit être de %d caractères)", - :taken => "as déjà été pris", - :not_a_number => "n'est pas un nombre", - #Jespers additions: - :error_translation => "erreur", - :error_header => "%s interdit d'enregistrer %s ", - :error_subheader => "Il y a des erreurs dans les champs suivants : " - } - end - - # Texts to override +distance_of_time_in_words()+ - class DateHelper - Texts = { - :less_than_x_seconds => "moins de %d secondes", - :half_a_minute => "30 secondes", - :less_than_a_minute => "moins d'une minute", - :one_minute => "1 minute", - :x_minutes => "%d minutes", - :one_hour => "environ 1 heure", - :x_hours => "environ %d heures", - :one_day => "1 jour", - :x_days => "%d jours", - :one_month => "1 mois", - :x_months => "%d mois", - :one_year => "1 an", - :x_years => "%d ans" - } - - # Rails uses Month names in Date and time select boxes - # (+date_select+ and +datetime_select+ ) - # Currently (as of version 1.1.6), Rails doesn't use daynames - Monthnames = [nil] + %w{Janvier Février Mars Avril Mai Juin Juillet Août Septembre Octobre Novembre Décembre} - AbbrMonthnames = [nil] + %w{Jan Fev Mar Avr Mai Jun Jui Aou Sep Oct Nov Dec} - Daynames = %w{Dimanche Lundi Mardi Mercredi Jeudi Vendredi Samedi} - AbbrDaynames = %w{Dim Lun Mar Mer Jeu Ven Sam} - - # Date and time format syntax explained in http://www.rubycentral.com/ref/ref_c_time.html#strftime - # These are sent to strftime that Ruby's date and time handlers use internally - # Same options as php (that has a better list: http://www.php.net/strftime ) - DateFormats = { - :default => "%Y-%m-%d", - :short => "%b %e", - :long => "%B %e, %Y" - } - - TimeFormats = { - :default => "%a, %d %b %Y %H:%M:%S %z", - :short => "%d %b %H:%M", - :long => "%B %d, %Y %H:%M" - } - # Set the order of +date_select+ and +datetime_select+ boxes - # Note that at present, the current Rails version only supports ordering of date_select boxes - DateSelectOrder = { - :order => [:year, :month, :day] #default Rails is US ordered: :order => [:year, :month, :day] - } - end - - class NumberHelper - # CurrencyOptions are used as default for +Number#to_currency()+ - # http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#M000449 - CurrencyOptions = { - :unit => "$", - :separator => ".", #unit separator (between integer part and fraction part) - :delimiter => ",", #delimiter between each group of thousands. Example: 1.234.567 - :order => [:unit, :number] #order is at present unsupported in Rails - #to support for instance Danish format, the order is different: Unit comes last (ex. "1.234,00 dkr.") - } - end - - class ArrayHelper - # Modifies +Array#to_sentence()+ - # http://api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Array/Conversions.html#M000274 - ToSentenceTexts = { - :connector => 'et', - :skip_last_comma => false - } - end -end - - -# Use the inflector below to pluralize "error" from -# @@default_error_messages[:error_translation] above (if necessary) -# Inflector.inflections do |inflect| -# inflect.plural /^(ox)$/i, '\1en' -# inflect.singular /^(ox)en/i, '\1' -# inflect.irregular 'person people' -# inflect.uncountable %w( information ) -# end diff --git a/vendor/plugins/l10n-simplified-0.8/lib/lang_chef.rb b/vendor/plugins/l10n-simplified-0.8/lib/lang_chef.rb deleted file mode 100755 index efcf291f..00000000 --- a/vendor/plugins/l10n-simplified-0.8/lib/lang_chef.rb +++ /dev/null @@ -1,119 +0,0 @@ -# lang_chef.rb -# Swedish Chef language file for Ruby on Rails -# Translation by Jesper Rønn-Jensen ( http://justaddwater.dk/ ), via web based translator - - -module LocalizationSimplified - About = { - :lang => "chef", - :updated => "2006-09-07" - } - - class ActiveRecord - # ErrorMessages to override default messages in - # +ActiveRecord::Errors::@@default_error_messages+ - # This plugin also replaces hardcoded 3 text messages - # :error_translation is inflected using the Rails - # inflector. - # - # Remember to modify the Inflector with your localized translation - # of "error" and "errors" in the bottom of this file - # - ErrorMessages = { - :inclusion => "is nut inclooded in zee leest", - :exclusion => "is reserfed", - :invalid => "is infeleed", - :confirmation => "duesn't metch cunffurmeshun", - :accepted => "moost be-a eccepted", - :empty => "cun't be-a impty", - :blank => "ees reeequired",# alternate, formulation: "is required" - :too_long => "is tuu lung (mexeemoom is %d cherecters)", - :too_short => "is tuu shurt (meenimoom is %d cherecters)", - :wrong_length => "is zee vrung lengt (shuoold be-a %d cherecters)", - :taken => "hes elreedy beee tekee", - :not_a_number => "is nut a noomber", - #Jespers additions: - :error_translation => "irrur", - :error_header => "%s pruheebited thees %s frum beeeng sefed. Børk! Børk! Børk!", - :error_subheader => "Zeere-a vere-a prublems veet zee fullooeeng feeelds:" - } - end - - # Texts to override +distance_of_time_in_words()+ - class DateHelper - Texts = { - :less_than_x_seconds => "less thun %d secunds", - :half_a_minute => "helff a meenoote-a", - :less_than_a_minute => "less thun a meenoote-a", - :one_minute => "one-a meenoote-a", - :x_minutes => "%d meenootes", - :one_hour => "ebuoot one-a huoor", - :x_hours => "ebuoot %d huoors", - :one_day => "one-a dey", - :x_days => "%d deys", - :one_month => "one-a munt", - :x_months => "%d munts", - :one_year => "one-a yeer", - :x_years => "%d yeers" - } - - # Rails uses Month names in Date and time select boxes - # (+date_select+ and +datetime_select+ ) - # Currently (as of version 1.1.6), Rails doesn't use daynames - Monthnames = [nil] + %w{Junooery Febrooery Merch Epreel Mey Joone-a Jooly Oogoost Seeptembooor Ooctuber Nufember Deezember} - AbbrMonthnames = [nil] + %w{Jun Feb Mer Epr Mey Joon Jool Oog Sep Ooct Nuf Deez} - Daynames = %w{Soondey Mundey Tooesdey Vednesdey Thoorsdey Freedey Setoordey} - AbbrDaynames = %w{Soon Mun Tooe-a Ved Thoo Free Set} - - # Date and time format syntax explained in http://www.rubycentral.com/ref/ref_c_time.html#strftime - # These are sent to strftime that Ruby's date and time handlers use internally - # Same options as php (that has a better list: http://www.php.net/strftime ) - DateFormats = { - :default => "%Y-%m-%d", - :short => "%b %e", - :long => "%B %e, %Y" - } - - TimeFormats = { - :default => "%a, %d %b %Y %H:%M:%S %z", - :short => "%d %b %H:%M", - :long => "%B %d, %Y %H:%M" - } - # Set the order of +date_select+ and +datetime_select+ boxes - # Note that at present, the current Rails version only supports ordering of date_select boxes - DateSelectOrder = { - :order => [:year, :month, :day] #default Rails is US ordered: :order => [:year, :month, :day] - } - end - - class NumberHelper - # CurrencyOptions are used as default for +Number#to_currency()+ - # http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#M000449 - CurrencyOptions = { - :unit => "$", - :separator => ".", #unit separator (between integer part and fraction part) - :delimiter => ",", #delimiter between each group of thousands. Example: 1.234.567 - :order => [:unit, :number] #order is at present unsupported in Rails - #to support for instance Danish format, the order is different: Unit comes last (ex. "1.234,00 dkr.") - } - end - - class ArrayHelper - # Modifies +Array#to_sentence()+ - # http://api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Array/Conversions.html#M000274 - ToSentenceTexts = { - :connector => 'eend', - :skip_last_comma => false - } - end -end - - -# Use the inflector below to pluralize "error" from -# @@default_error_messages[:error_translation] above (if necessary) -# Inflector.inflections do |inflect| -# inflect.plural /^(ox)$/i, '\1en' -# inflect.singular /^(ox)en/i, '\1' -# inflect.irregular 'person people' -# inflect.uncountable %w( information ) -# end diff --git a/vendor/plugins/l10n-simplified-0.8/lib/lang_da.rb b/vendor/plugins/l10n-simplified-0.8/lib/lang_da.rb deleted file mode 100755 index 832f8d4b..00000000 --- a/vendor/plugins/l10n-simplified-0.8/lib/lang_da.rb +++ /dev/null @@ -1,117 +0,0 @@ -# lang_da.rb -# Danish translation file -# Translation by Jesper Rønn-Jensen ( http://justaddwater.dk/ ) - - -module LocalizationSimplified - About = { - :lang => "da", - :updated => "2006-09-07" - } - - class ActiveRecord - # ErrorMessages to override default messages in - # +ActiveRecord::Errors::@@default_error_messages+ - # This plugin also replaces hardcoded 3 text messages - # :error_translation is inflected using the Rails - # inflector. - # - # Remember to modify the Inflector with your localized translation - # of "error" and "errors" in the bottom of this file - # - ErrorMessages = { - :inclusion => "er ikke med på listen", - :exclusion => "er et reserveret ord", - :invalid => "er ugyldig", - :confirmation => "matcher ikke med bekræftelsen", - :accepted => "skal accepteres", - :empty => "kan ikke være tom", - :blank => "skal udfyldes", - :too_long => "er for langt (max er %d tegn)", - :too_short => "er for kort (minimum er %d tegn)", - :wrong_length => "har forkert længde (skal være %d tegn)", - :taken => "er allerede taget", - :not_a_number => "er ikke et tal", - #Jespers additions: - :error_translation => "fejl", - :error_header => "%s forhindrede %s i at blive gemt", - :error_subheader => "Problemer med følgende felter:" - } - end - - # Texts to override +distance_of_time_in_words()+ - class DateHelper - Texts = { - :less_than_x_seconds => "under %d sekunder", - :half_a_minute => "et halvt minut", - :less_than_a_minute => "under et minut", - :one_minute => "1 minut", - :x_minutes => "%d minutter", - :one_hour => "omkring en time", - :x_hours => "omkring %d timer", - :one_day => "1 dag", - :x_days => "%d dage", - :one_month => "1 måned", - :x_months => "%d måneder", - :one_year => "1 år", - :x_years => "%d år" - } - - # Rails uses Month names in Date and time select boxes - # (+date_select+ and +datetime_select+ ) - # Currently (as of version 1.1.6), Rails doesn't use daynames - Monthnames = [nil] + %w{januar februar marts april maj juni juli august september oktober november december} - AbbrMonthnames = [nil] + %w{jan feb mar apr maj jun jul aug sep okt nov dec} - Daynames = %w{søndag mandag tirsdag onsdag torsdag fredag lørdag} - AbbrDaynames = %w{søn man tir ons tors fre lør} - - - # Date and time format syntax explained in http://www.rubycentral.com/ref/ref_c_time.html#strftime - # These are sent to strftime that Ruby's date and time handlers use internally - # Same options as php (that has a better list: http://www.php.net/strftime ) - DateFormats = { - :default => "%Y-%m-%d", - :short => "%e. %b", - :long => "%e. %B, %Y" - } - - TimeFormats = { - :default => "%A d. %d %B %Y %H:%M", #no timezone - :short => "%d. %b %H:%M", - :long => "%d. %B %Y %H:%M" - } - # Set the order of +date_select+ and +datetime_select+ boxes - # Note that at present, the current Rails version only supports ordering of date_select boxes - DateSelectOrder = { - :order => [:day, :month, :year] #default Rails is US ordered: :order => [:year, :month, :day] - } - end - - class NumberHelper - # CurrencyOptions are used as default for +Number#to_currency()+ - # http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#M000449 - CurrencyOptions = { - :unit => "kr.", - :separator => ",", #unit separator (between integer part and fraction part) - :delimiter => ".", #delimiter between each group of thousands. Example: 1.234.567 - :order => [:number, :unit] #order is at present unsupported in Rails - #to support for instance Danish format, the order is different: Unit comes last (ex. "1.234,00 dkr.") - } - end - - class ArrayHelper - # Modifies +Array#to_sentence()+ - # http://api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Array/Conversions.html#M000274 - ToSentenceTexts = { - :connector => 'og', - :skip_last_comma => true - } - end -end - - -# Use the inflector below to pluralize "error" from -# @@default_error_messages[:error_translation] above (if necessary) - Inflector.inflections do |inflect| - inflect.uncountable %w( fejl ) - end diff --git a/vendor/plugins/l10n-simplified-0.8/lib/lang_de.rb b/vendor/plugins/l10n-simplified-0.8/lib/lang_de.rb deleted file mode 100755 index 3597fcf2..00000000 --- a/vendor/plugins/l10n-simplified-0.8/lib/lang_de.rb +++ /dev/null @@ -1,117 +0,0 @@ -# lang_de.rb -# German translation file -# Translation by Benedikt Huber -# Additions by Matthias Tarasiewicz - parasew (at) gmail - -module LocalizationSimplified - About = { - :lang => "de", - :updated => "2006-09-28" - } - - class ActiveRecord - # ErrorMessages to override default messages in - # +ActiveRecord::Errors::@@default_error_messages+ - # This plugin also replaces hardcoded 3 text messages - # :error_translation is inflected using the Rails - # inflector. - # - # Remember to modify the Inflector with your localized translation - # of "error" and "errors" in the bottom of this file - # - ErrorMessages = { - :inclusion => "ist nicht in der Liste gültiger Optionen enthalten", - :exclusion => "ist reserviert", - :invalid => "ist ungültig", - :confirmation => "entspricht nicht der Bestätigung", - :accepted => "muss akzeptiert werden", - :empty => "darf nicht leer sein", - :blank => "wird benötigt",# alternate, formulation: "is required" - :too_long => "ist zu lang (höchstens %d Zeichen)", - :too_short => "ist zu kurz (mindestens %d Zeichen)", - :wrong_length => "hat eine falsche Länge (sollte %d Zeichen sein)", - :taken => "ist schon vergeben", - :not_a_number => "ist keine Zahl", - #Bennis additions - :greater_than => "muss größer sein als %d", - #Jespers additions: - :error_translation => "Fehler", - :error_header => "%s hinderte %s daran, gespeichert zu werden", - :error_subheader => "Es gab folgende Probleme: " - } - end - - # Texts to override +distance_of_time_in_words()+ - class DateHelper - Texts = { - :less_than_x_seconds => "weniger als %d Sekunden", - :half_a_minute => "eine halbe Minute", - :less_than_a_minute => "weniger als eine Minute", - :one_minute => "1 Minute", - :x_minutes => "%d Minuten", - :one_hour => "ungefähr 1 Stunde", - :x_hours => "ungefähr %d Stunden", - :one_day => "1 Tag", - :x_days => "%d Tage", - :one_month => "1 Monat", - :x_months => "%d Monate", - :one_year => "1 Jahr", - :x_years => "%d Jahre" - } - - # Rails uses Month names in Date and time select boxes - # (+date_select+ and +datetime_select+ ) - # Currently (as of version 1.1.6), Rails doesn't use daynames - Monthnames = [nil] + %w{Januar Februar März April Mai Juni Juli August September Oktober November Dezember} - AbbrMonthnames = [nil] + %w{Jan Feb Mrz Apr Mai Jun Jul Aug Sep Okt Nov Dez} - Daynames = %w{Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag} - AbbrDaynames = %w{So Mo Di Mi Do Fr Sa} - - # Date and time format syntax explained in http://www.rubycentral.com/ref/ref_c_time.html#strftime - # These are sent to strftime that Ruby's date and time handlers use internally - # Same options as php (that has a better list: http://www.php.net/strftime ) - DateFormats = { - :default => "%Y-%m-%d", - :short => "%b %e", - :long => "%B %e, %Y" - } - - TimeFormats = { - :default => "%A, %d %B %Y %H:%M:%S %Z", - :short => "%d %b. %H:%M", - :long => "%d %B %Y, %H:%M" - } - # Set the order of +date_select+ and +datetime_select+ boxes - # Note that at present, the current Rails version only supports ordering of date_select boxes - DateSelectOrder = { - :order => [:day, :month, :year] #default Rails is US ordered: :order => [:year, :month, :day] - } - end - - class NumberHelper - # CurrencyOptions are used as default for +Number#to_currency()+ - # http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#M000449 - CurrencyOptions = { - :unit => "€", - :separator => ",", #unit separator (between integer part and fraction part) - :delimiter => ".", #delimiter between each group of thousands. Example: 1.234.567 - :order => [:number, :unit] #order is at present unsupported in Rails - } - end - - class ArrayHelper - # Modifies +Array#to_sentence()+ - # http://api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Array/Conversions.html#M000274 - ToSentenceTexts = { - :connector => 'und', - :skip_last_comma => true - } - end -end - - -# Use the inflector below to pluralize "error" from -# @@default_error_messages[:error_translation] above (if necessary) - Inflector.inflections do |inflect| - inflect.uncountable %w( Fehler ) - end diff --git a/vendor/plugins/l10n-simplified-0.8/lib/lang_en.rb b/vendor/plugins/l10n-simplified-0.8/lib/lang_en.rb deleted file mode 100755 index 1016f963..00000000 --- a/vendor/plugins/l10n-simplified-0.8/lib/lang_en.rb +++ /dev/null @@ -1,119 +0,0 @@ -# lang_en.rb -# English baseline translation file. Comes in handy for testing purposes - - - -module LocalizationSimplified - About = { - :lang => "en", - :updated => "2006-09-01" - } - - class ActiveRecord - # ErrorMessages to override default messages in - # +ActiveRecord::Errors::@@default_error_messages+ - # This plugin also replaces hardcoded 3 text messages - # :error_translation is inflected using the Rails - # inflector. - # - # Remember to modify the Inflector with your localized translation - # of "error" and "errors" in the bottom of this file - # - ErrorMessages = { - :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",# alternate, formulation: "is required" - :too_long => "is too long (maximum is %d characters)", - :too_short => "is too short (minimum is %d characters)", - :wrong_length => "is the wrong length (should be %d characters)", - :taken => "has already been taken", - :not_a_number => "is not a number", - #Jespers additions: - :error_translation => "error", - :error_header => "%s prohibited this %s from being saved", - :error_subheader => "There were problems with the following fields:" - } - end - - # Texts to override +distance_of_time_in_words()+ - class DateHelper - Texts = { - :less_than_x_seconds => "less than %d seconds", - :half_a_minute => "half a minute", - :less_than_a_minute => "less than a minute", - :one_minute => "1 minute", - :x_minutes => "%d minutes", - :one_hour => "about 1 hour", - :x_hours => "about %d hours", - :one_day => "1 day", - :x_days => "%d days", - :one_month => "1 month", - :x_months => "%d months", - :one_year => "1 year", - :x_years => "%d years" - } - - # Rails uses Month names in Date and time select boxes - # (+date_select+ and +datetime_select+ ) - # Currently (as of version 1.1.6), Rails doesn't use daynames - Monthnames = [nil] + %w{January February March April May June July August September October November December} - AbbrMonthnames = [nil] + %w{Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec} - Daynames = %w{Sunday Monday Tuesday Wednesday Thursday Friday Saturday} - AbbrDaynames = %w{Sun Mon Tue Wed Thu Fri Sat} - - # Date and time format syntax explained in http://www.rubycentral.com/ref/ref_c_time.html#strftime - # These are sent to strftime that Ruby's date and time handlers use internally - # Same options as php (that has a better list: http://www.php.net/strftime ) - DateFormats = { - :default => "%Y-%m-%d", - :short => "%b %e", - :long => "%B %e, %Y" - } - - TimeFormats = { - :default => "%a, %d %b %Y %H:%M:%S %z", - :short => "%d %b %H:%M", - :long => "%B %d, %Y %H:%M" - } - # Set the order of +date_select+ and +datetime_select+ boxes - # Note that at present, the current Rails version only supports ordering of date_select boxes - DateSelectOrder = { - :order => [:year, :month, :day] #default Rails is US ordered: :order => [:year, :month, :day] - } - end - - class NumberHelper - # CurrencyOptions are used as default for +Number#to_currency()+ - # http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#M000449 - CurrencyOptions = { - :unit => "$", - :separator => ".", #unit separator (between integer part and fraction part) - :delimiter => ",", #delimiter between each group of thousands. Example: 1.234.567 - :order => [:unit, :number] #order is at present unsupported in Rails - #to support for instance Danish format, the order is different: Unit comes last (ex. "1.234,00 dkr.") - } - end - - class ArrayHelper - # Modifies +Array#to_sentence()+ - # http://api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Array/Conversions.html#M000274 - ToSentenceTexts = { - :connector => 'and', - :skip_last_comma => false - } - end -end - - -# Use the inflector below to pluralize "error" from -# @@default_error_messages[:error_translation] above (if necessary) -# Inflector.inflections do |inflect| -# inflect.plural /^(ox)$/i, '\1en' -# inflect.singular /^(ox)en/i, '\1' -# inflect.irregular 'person people' -# inflect.uncountable %w( information ) -# end diff --git a/vendor/plugins/l10n-simplified-0.8/lib/lang_es.rb b/vendor/plugins/l10n-simplified-0.8/lib/lang_es.rb deleted file mode 100755 index f9dba3dc..00000000 --- a/vendor/plugins/l10n-simplified-0.8/lib/lang_es.rb +++ /dev/null @@ -1,115 +0,0 @@ -# lang_es.rb -# Spanish translation file. -# Translation by Luis Villa del Campo (www.grancomo.com) - - -module LocalizationSimplified - About = { - :lang => "es", - :updated => "2006-10-03" - } - - class ActiveRecord - # ErrorMessages to override default messages in - # +ActiveRecord::Errors::@@default_error_messages+ - # This plugin also replaces hardcoded 3 text messages - # :error_translation is inflected using the Rails - # inflector. - # - # Remember to modify the Inflector with your localized translation - # of "error" and "errors" in the bottom of this file - # - ErrorMessages = { - :inclusion => "no está incluido en la lista", - :exclusion => "está reservado", - :invalid => "no es válido", - :confirmation => "no coincide con la conformación", - :accepted => "debe ser aceptado", - :empty => "no puede estar vacío", - :blank => "no puede estar en blanco",# alternate, formulation: "is required" - :too_long => "es demasiado largo (el máximo es %d caracteres)", - :too_short => "es demasiado corto (el mínimo es %d caracteres)", - :wrong_length => "no posee el largo correcto (debería ser de %d caracteres)", - :taken => "ya está ocupado", - :not_a_number => "no es un número", - #Jespers additions: - :error_translation => "error", - :error_header => "%s no permite guardar %s", - :error_subheader => "Ha habido problemas con los siguientes campos:" - } - end - - # Texts to override +distance_of_time_in_words()+ - class DateHelper - Texts = { - :less_than_x_seconds => "menos de %d segundos", - :half_a_minute => "medio minuto", - :less_than_a_minute => "menos de un minuto", - :one_minute => "1 minuto", - :x_minutes => "%d minutos", - :one_hour => "sobre una hora", - :x_hours => "sobre %d horas", - :one_day => "un día", - :x_days => "%d días", - :one_month => "1 mes", - :x_months => "%d meses", - :one_year => "1 año", - :x_years => "%d años" - } - - # Rails uses Month names in Date and time select boxes - # (+date_select+ and +datetime_select+ ) - # Currently (as of version 1.1.6), Rails doesn't use daynames - Monthnames = [nil] + %w{enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre} - AbbrMonthnames = [nil] + %w{ene feb mar abr may jun jul ago sep oct nov dic} - Daynames = %w{domingo lunes martes miércoles jueves viernes sábado} - AbbrDaynames = %w{dom lun mar mié jue vie sáb} - - # Date and time format syntax explained in http://www.rubycentral.com/ref/ref_c_time.html#strftime - # These are sent to strftime that Ruby's date and time handlers use internally - # Same options as php (that has a better list: http://www.php.net/strftime ) - DateFormats = { - :default => "%Y-%m-%d", - :short => "%b %e", - :long => "%B %e, %Y" - } - - TimeFormats = { - :default => "%a, %d %b %Y %H:%M:%S %z", - :short => "%d %b %H:%M", - :long => "%B %d, %Y %H:%M" - } - # Set the order of +date_select+ and +datetime_select+ boxes - # Note that at present, the current Rails version only supports ordering of date_select boxes - DateSelectOrder = { - :order => [:day, :month, :year] #default Rails is US ordered: :order => [:year, :month, :day] - } - end - - class NumberHelper - # CurrencyOptions are used as default for +Number#to_currency()+ - # http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#M000449 - CurrencyOptions = { - :unit => "€", - :separator => ",", #unit separator (between integer part and fraction part) - :delimiter => ".", #delimiter between each group of thousands. Example: 1.234.567 - :order => [:unit, :number] #order is at present unsupported in Rails - } - end - - class ArrayHelper - # Modifies +Array#to_sentence()+ - # http://api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Array/Conversions.html#M000274 - ToSentenceTexts = { - :connector => 'y', - :skip_last_comma => true - } - end -end - - -# Use the inflector below to pluralize "error" from -# @@default_error_messages[:error_translation] above (if necessary) - Inflector.inflections do |inflect| - inflect.plural /^(error)$/i, '\1es' - end \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/lib/lang_es_ar.rb b/vendor/plugins/l10n-simplified-0.8/lib/lang_es_ar.rb deleted file mode 100755 index 8c40140c..00000000 --- a/vendor/plugins/l10n-simplified-0.8/lib/lang_es_ar.rb +++ /dev/null @@ -1,120 +0,0 @@ -# lang_es-AR.rb -# Argentinean-flavored Spanish translation file. -# Translation by Damian Janowski damian.janowski@gmail.com -# (based on lang_es.rb by Luis Villa del Campo) - -module LocalizationSimplified - About = { - :lang => "es-ar", - :updated => "2006-10-03" - } - - class ActiveRecord - # ErrorMessages to override default messages in - # +ActiveRecord::Errors::@@default_error_messages+ - # This plugin also replaces hardcoded 3 text messages - # :error_translation is inflected using the Rails - # inflector. - # - # Remember to modify the Inflector with your localized translation - # of "error" and "errors" in the bottom of this file - # - ErrorMessages = { - :inclusion => "no está incluido en la lista", - :exclusion => "está reservado", - :invalid => "es inválido", - :confirmation => "no coincide con la confirmación", - :accepted => "debe ser aceptado", - :empty => "no puede estar vacío", - :blank => "no puede estar en blanco", # alternate, formulation: "es requerido" - :too_long => "es demasiado largo (el máximo es de %d caracteres)", - :too_short => "es demasiado corto (el mínimo es de %d caracteres)", - :wrong_length => "no posee el largo correcto (debería ser de %d caracteres)", - :taken => "ya está tomado", - :not_a_number => "no es un número", - #Jespers additions: - :error_translation => "error ocurrió", - :error_header => "%s al guardar su %s", - :error_subheader => "Los siguientes campos presentan problemas:" - } - end - - # Texts to override +distance_of_time_in_words()+ - class DateHelper - Texts = { - :less_than_x_seconds => "menos de %d segundos", - :half_a_minute => "medio minuto", - :less_than_a_minute => "menos de un minuto", - :one_minute => "1 minuto", - :x_minutes => "%d minutos", - :one_hour => "una hora", - :x_hours => "%d horas", - :one_day => "un día", - :x_days => "%d días", - :one_month => "un mes", - :x_months => "%d meses", - :one_year => "un año", - :x_years => "%d años" - } - - # Rails uses Month names in Date and time select boxes - # (+date_select+ and +datetime_select+ ) - # Currently (as of version 1.1.6), Rails doesn't use daynames - Monthnames = [nil] + %w{enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre} - AbbrMonthnames = [nil] + %w{ene feb mar abr may jun jul ago sep oct nov dic} - Daynames = %w{domingo lunes martes miércoles jueves viernes sábado} - AbbrDaynames = %w{dom lun mar mié jue vie sáb} - - # Date and time format syntax explained in http://www.rubycentral.com/ref/ref_c_time.html#strftime - # These are sent to strftime that Ruby's date and time handlers use internally - # Same options as php (that has a better list: http://www.php.net/strftime ) - DateFormats = { - :default => "%Y-%m-%d", - :short => "%e %b", - :long => "%e de %B de %Y" - } - - TimeFormats = { - :default => "%a, %d de %b de %Y %H:%M:%S %z", - :short => "%b %d %H:%M", - :long => "%d de %B de %Y %H:%M" - } - # Set the order of +date_select+ and +datetime_select+ boxes - # Note that at present, the current Rails version only supports ordering of date_select boxes - DateSelectOrder = { - :order => [:day, :month, :year] #default Rails is US ordered: :order => [:year, :month, :day] - } - end - - class NumberHelper - # CurrencyOptions are used as default for +Number#to_currency()+ - # http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#M000449 - CurrencyOptions = { - :unit => "$", - :separator => ",", #unit separator (between integer part and fraction part) - :delimiter => ".", #delimiter between each group of thousands. Example: 1.234.567 - :order => [:unit, :number] #order is at present unsupported in Rails - #to support for instance Danish format, the order is different: Unit comes last (ex. "1.234,00 dkr.") - } - end - - class ArrayHelper - # Modifies +Array#to_sentence()+ - # http://api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Array/Conversions.html#M000274 - ToSentenceTexts = { - :connector => 'y', - :skip_last_comma => true - } - end -end - - -# Use the inflector below to pluralize "error" from -# @@default_error_messages[:error_translation] above (if necessary) -Inflector.inflections do |inflect| -# inflect.plural /^(ox)$/i, '\1en' -# inflect.singular /^(ox)en/i, '\1' -# inflect.irregular 'person people' -# inflect.uncountable %w( information ) - inflect.plural /^(error ocurrió)$/i, 'errores ocurrieron' -end diff --git a/vendor/plugins/l10n-simplified-0.8/lib/lang_fi.rb b/vendor/plugins/l10n-simplified-0.8/lib/lang_fi.rb deleted file mode 100755 index 86530042..00000000 --- a/vendor/plugins/l10n-simplified-0.8/lib/lang_fi.rb +++ /dev/null @@ -1,119 +0,0 @@ -# lang_fi.rb -# Finnish translation file. -# Translation by Jarkko Laine ( http://jlaine.net/ ) - - -module LocalizationSimplified - About = { - :lang => "fi", - :updated => "2006-09-07" - } - - class ActiveRecord - # ErrorMessages to override default messages in - # +ActiveRecord::Errors::@@default_error_messages+ - # This plugin also replaces hardcoded 3 text messages - # :error_translation is inflected using the Rails - # inflector. - # - # Remember to modify the Inflector with your localized translation - # of "error" and "errors" in the bottom of this file - # - ErrorMessages = { - :inclusion => "ei löydy listalta", - :exclusion => "on varattu", - :invalid => "on virheellinen", - :confirmation => "ei vastaa vahvistusta", - :accepted => "on hyväksyttävä", - :empty => "ei voi olla tyhjä", - :blank => "ei voi olla tyhjä", - :too_long => "on liian pitkä (maksimi on %d merkkiä)", - :too_short => "on liian lyhyt (minimi on %d merkkiä)", - :wrong_length => "on väärän pituinen (oikea pituus %d merkkiä)", - :taken => "on jo varattu", - :not_a_number => "ei ole numero", - #Jespers additions: - :error_translation => "virhe", - :error_header => "%s esti tämän %s tallentamisen", - :error_subheader => "Seuraavat kentät aiheuttivat ongelmia:" - } - end - - # Texts to override +distance_of_time_in_words()+ - class DateHelper - Texts = { - :less_than_x_seconds => "alle %d sekuntia", - :half_a_minute => "puoli minuuttia", - :less_than_a_minute => "alle minuutti", - :one_minute => "1 minuutti", - :x_minutes => "%d minuuttia", - :one_hour => "noin tunti", - :x_hours => "noin %d tuntia", - :one_day => "1 päivä", - :x_days => "%d päivää", - :one_month => "1 month", - :x_months => "%d months", - :one_year => "1 year", - :x_years => "%d years" - } - - # Rails uses Month names in Date and time select boxes - # (+date_select+ and +datetime_select+ ) - # Currently (as of version 1.1.6), Rails doesn't use daynames - Monthnames = [nil] + %w{tammikuu helmikuu maaliskuu huhtikuu toukokuu kesäkuu heinäkuu elokuu syyskuu lokakuu marraskuu joulukuu} - AbbrMonthnames = [nil] + %w{tammi helmi maalis huhti touko kesä heinä elo syys loka marras joulu} - Daynames = %w{sunnuntai maanantai tiistai keskiviikko torstai perjantai lauantai} - AbbrDaynames = %w{su ma ti ke to pe la} - - # Date and time format syntax explained in http://www.rubycentral.com/ref/ref_c_time.html#strftime - # These are sent to strftime that Ruby's date and time handlers use internally - # Same options as php (that has a better list: http://www.php.net/strftime ) - DateFormats = { - :default => "%e.%m.%Y", - :short => "%d.%m.", - :long => "%e. %Bta %Y" - } - - TimeFormats = { - :default => "%a %Bn %e. %H:%M:%S %Z %Y", - :short => "%d.%m.%Y %H:%M", - :long => "%a %e. %Bta %Y %T" - } - # Set the order of +date_select+ and +datetime_select+ boxes - # Note that at present, the current Rails version only supports ordering of date_select boxes - DateSelectOrder = { - :order => [:day, :month, :year] #default Rails is US ordered: :order => [:year, :month, :day] - } - end - - class NumberHelper - # CurrencyOptions are used as default for +Number#to_currency()+ - # http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#M000449 - CurrencyOptions = { - :unit => "€", - :separator => " ", #unit separator (between integer part and fraction part) - :delimiter => ",", #delimiter between each group of thousands. Example: 1.234.567 - :order => [:unit, :number] #order is at present unsupported in Rails - #to support for instance Danish format, the order is different: Unit comes last (ex. "1.234,00 dkr.") - } - end - - class ArrayHelper - # Modifies +Array#to_sentence()+ - # http://api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Array/Conversions.html#M000274 - ToSentenceTexts = { - :connector => 'ja', - :skip_last_comma => true - } - end -end - - -# Use the inflector below to pluralize "error" from -# @@default_error_messages[:error_translation] above (if necessary) -# Inflector.inflections do |inflect| -# inflect.plural /^(ox)$/i, '\1en' -# inflect.singular /^(ox)en/i, '\1' -# inflect.irregular 'person people' -# inflect.uncountable %w( information ) -# end diff --git a/vendor/plugins/l10n-simplified-0.8/lib/lang_fr.rb b/vendor/plugins/l10n-simplified-0.8/lib/lang_fr.rb deleted file mode 100755 index 0ca60a5d..00000000 --- a/vendor/plugins/l10n-simplified-0.8/lib/lang_fr.rb +++ /dev/null @@ -1,118 +0,0 @@ -# lang_fr.rb -# Traduction française des messages d'erruer. A compléter ou corriger. -# Translation by Frédéric Cavazza ( www.fredcavazza.net ) - - -module LocalizationSimplified - About = { - :lang => "fr", - :updated => "2006-09-07" - } - - class ActiveRecord - # ErrorMessages to override default messages in - # +ActiveRecord::Errors::@@default_error_messages+ - # This plugin also replaces hardcoded 3 text messages - # :error_translation is inflected using the Rails - # inflector. - # - # Remember to modify the Inflector with your localized translation - # of "error" and "errors" in the bottom of this file - # - ErrorMessages = { - :inclusion => "n'est pas inclut dans la liste", - :exclusion => "est réservé", - :invalid => "est invalide", - :confirmation => "ne correspond pas à la confirmation", - :accepted => "doit être accepté", - :empty => "ne peut pas être vide", - :blank => "ne peut pas être vierge",# alternate, formulation: "is required" - :too_long => "est trop long (%d caractères maximum)", - :too_short => "est trop court(%d caractères minimum)", - :wrong_length => "n'est pas de la bonne longueur (devrait être de %d caractères)", - :taken => "est déjà prit", - :not_a_number => "n'est pas le nombre", - #Jespers additions: - :error_translation => "erreur", - :error_header => "%s interdit ce %s d'être sauvegardé", - :error_subheader => "Il y a des problèmes avec les champs suivants :" - } - end - - # Texts to override +distance_of_time_in_words()+ - class DateHelper - Texts = { - :less_than_x_seconds => "moins de %d secondes", - :half_a_minute => "une demi-minute", - :less_than_a_minute => "moins d'une minute", - :one_minute => "1 minute", - :x_minutes => "%d minutes", - :one_hour => "à peut près 1 heure", - :x_hours => "à peu près %d heures", - :one_day => "1 jour", - :x_days => "%d jours", - :one_month => "1 mois", - :x_months => "%d mois", - :one_year => "1 an", - :x_years => "%d ans" - } - - # Rails uses Month names in Date and time select boxes - # (+date_select+ and +datetime_select+ ) - # Currently (as of version 1.1.6), Rails doesn't use daynames - Monthnames = [nil] + %w{Janvier Février Mars Avril Mai Juin Juillet Août Septembre Octobre Novembre Decembre} - AbbrMonthnames = [nil] + %w{Jan Fev Mar Avr Mai Jui Jul Aoû Sep Oct Nov Dec} - Daynames = %w{Dimanche Lundi Mardi Mercredi Jeudi Vendredi Samedi} - AbbrDaynames = %w{Dim Lun Mar Mer Jeu Ven Sam} - - # Date and time format syntax explained in http://www.rubycentral.com/ref/ref_c_time.html#strftime - # These are sent to strftime that Ruby's date and time handlers use internally - # Same options as php (that has a better list: http://www.php.net/strftime ) - DateFormats = { - :default => "%Y-%m-%d", - :short => "%b %e", - :long => "%B %e, %Y" - } - - TimeFormats = { - :default => "%a, %d %b %Y %H:%M:%S %z", - :short => "%d %b %H:%M", - :long => "%B %d, %Y %H:%M" - } - # Set the order of +date_select+ and +datetime_select+ boxes - # Note that at present, the current Rails version only supports ordering of date_select boxes - DateSelectOrder = { - :order => [:year, :month, :day] #default Rails is US ordered: :order => [:year, :month, :day] - } - end - - class NumberHelper - # CurrencyOptions are used as default for +Number#to_currency()+ - # http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#M000449 - CurrencyOptions = { - :unit => "€", - :separator => ".", #unit separator (between integer part and fraction part) - :delimiter => ",", #delimiter between each group of thousands. Example: 1.234.567 - :order => [:unit, :number] #order is at present unsupported in Rails - } - end - - class ArrayHelper - # Modifies +Array#to_sentence()+ - # http://api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Array/Conversions.html#M000274 - ToSentenceTexts = { - :connector => 'et', - :skip_last_comma => false - } - end -end - - -# Use the inflector below to pluralize "error" from -# @@default_error_messages[:error_translation] above (if necessary) -# Inflector.inflections do |inflect| -# inflect.plural /^(ox)$/i, '\1en' -# inflect.singular /^(ox)en/i, '\1' -# inflect.irregular 'person people' -# inflect.uncountable %w( information ) -# end diff --git a/vendor/plugins/l10n-simplified-0.8/lib/lang_it.rb b/vendor/plugins/l10n-simplified-0.8/lib/lang_it.rb deleted file mode 100755 index b1440e6b..00000000 --- a/vendor/plugins/l10n-simplified-0.8/lib/lang_it.rb +++ /dev/null @@ -1,120 +0,0 @@ -# lang_it.rb -# Traduzione italiana. - - - -module LocalizationSimplified - About = { - :lang => "it", - :updated => "2006-09-16" - } - - class ActiveRecord - # ErrorMessages to override default messages in - # +ActiveRecord::Errors::@@default_error_messages+ - # This plugin also replaces hardcoded 3 text messages - # :error_translation is inflected using the Rails - # inflector. - # - # Remember to modify the Inflector with your localized translation - # of "error" and "errors" in the bottom of this file - # - ErrorMessages = { - :inclusion => "non incluso nella lista", - :exclusion => " riservato", - :invalid => "non valido", - :confirmation => "doesn't match confirmation", - :accepted => "deve essere accettato", - :empty => "non pu essere vuoto", - :blank => " richiesto",# alternate, formulation: "is required" - :too_long => " troppo lungo (massimo %d caratteri)", - :too_short => " troppo corto (minimo %d caratteri)", - :wrong_length => " della lunghezza sbagliata (dovrebbe essere di %d caratteri)", - :taken => " gi stato assegnato", - :not_a_number => "non un numero", - #Jespers additions: - :error_translation => "errore", - :error_header => "%s impedisce a %s di essere salvato", - :error_subheader => "Ci sono dei problemi con i seguenti campi:" - } - end - - # Texts to override +distance_of_time_in_words()+ - class DateHelper - Texts = { - :less_than_x_seconds => "meno di %d secondi", - :half_a_minute => "mezzo minuto", - :less_than_a_minute => "meno di un minuto", - :one_minute => "un minuto", - :x_minutes => "%d minuti", - :one_hour => "circa un'ora", - :x_hours => "circa %d ore", - :one_day => "un giorno", - :x_days => "%d giorni", - :one_month => "un mese", - :x_months => "%d mesi", - :one_year => "un anno", - :x_years => "%d anni" - } - - # Rails uses Month names in Date and time select boxes - # (+date_select+ and +datetime_select+ ) - # Currently (as of version 1.1.6), Rails doesn't use daynames - Monthnames = [nil] + %w( Gennaio Febbraio Marzo Aprile Maggio Giugno Luglio - Agosto Settembre Ottobre Novembre Dicembre ) - Daynames = %w( Domenica Luned Marted Marcoled Gioved Venerd Sabato ) - AbbrMonthnames = [nil] + %w( Gen Feb Mar Apr Mag Giu - Lug Ago Set Ott Nov Dic ) - AbbrDaynames = %w( Dom Lun Mar Mer Gio Ven Sab ) - - # Date and time format syntax explained in http://www.rubycentral.com/ref/ref_c_time.html#strftime - # These are sent to strftime that Ruby's date and time handlers use internally - # Same options as php (that has a better list: http://www.php.net/strftime ) - DateFormats = { - :default => "%d-%m-%Y", - :short => "%e %b", - :long => "%e %B, %Y" - } - - TimeFormats = { - :default => "%a, %d %b %Y %H:%M:%S %z", - :short => "%d %b %H:%M", - :long => "%d %B, %Y %H:%M" - } - # Set the order of +date_select+ and +datetime_select+ boxes - # Note that at present, the current Rails version only supports ordering of date_select boxes - DateSelectOrder = { - :order => [:day, :month, :year] #default Rails is US ordered: :order => [:year, :month, :day] - } - end - - class NumberHelper - # CurrencyOptions are used as default for +Number#to_currency()+ - # http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#M000449 - CurrencyOptions = { - :unit => "", - :separator => ",", #unit separator (between integer part and fraction part) - :delimiter => ".", #delimiter between each group of thousands. Example: 1.234.567 - :order => [:unit, :number] #order is at present unsupported in Rails - #to support for instance Danish format, the order is different: Unit comes last (ex. "1.234,00 dkr.") - } - end - - class ArrayHelper - # Modifies +Array#to_sentence()+ - # http://api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Array/Conversions.html#M000274 - ToSentenceTexts = { - :connector => 'e', - :skip_last_comma => false - } - end -end - -# Use the inflector below to pluralize "error" from -# @@default_error_messages[:error_translation] above (if necessary) -# Inflector.inflections do |inflect| -# inflect.plural /^(ox)$/i, '\1en' -# inflect.singular /^(ox)en/i, '\1' -# inflect.irregular 'person people' -# inflect.uncountable %w( information ) -# end diff --git a/vendor/plugins/l10n-simplified-0.8/lib/lang_ko.rb b/vendor/plugins/l10n-simplified-0.8/lib/lang_ko.rb deleted file mode 100755 index f1ec2b11..00000000 --- a/vendor/plugins/l10n-simplified-0.8/lib/lang_ko.rb +++ /dev/null @@ -1,119 +0,0 @@ -# lang_ko.rb -# Translation by Jeong Mok, Cho ( http://niceview.egloos.com ) - - -module LocalizationSimplified - About = { - :lang => "ko", - :updated => "2006-09-29" - } - - class ActiveRecord - # ErrorMessages to override default messages in - # +ActiveRecord::Errors::@@default_error_messages+ - # This plugin also replaces hardcoded 3 text messages - # :error_translation is inflected using the Rails - # inflector. - # - # Remember to modify the Inflector with your localized translation - # of "error" and "errors" in the bottom of this file - # - ErrorMessages = { - :inclusion => "값은 목록에 없습니다.", - :exclusion => "값은 이미 사용중입니다.", - :invalid => "값이 잘못되었습니다.", - :confirmation => "가 일치하지 않습니다.", - :accepted => "항목이 채크되어야 합니다.", - :empty => "값은 꼭 입력하셔야 합니다.", - :blank => "값은 꼭 입력하셔야 합니다.",# alternate, formulation: "is required" - :too_long => "값이 너무 깁니다. (최대 %d자 이내)", - :too_short => "값이 너무 짧습니다. (최소 %d자 이상)", - :wrong_length => "값은 길이가 잘못되었습니다. (%d자로 입력하세요)", - :taken => "값은 이미 사용중입니다.", - :not_a_number => "값은 숫자가 아닙니다.", - #Jespers additions: - :error_translation => "개의 애러", - :error_header => "%s가 발생하였습니다. 이 %s는(은) 저장되지 않았습니다.", - :error_subheader => "다음의 항목에 대한 입력값들이 잘못되었습니다." - } - end - - # Texts to override +distance_of_time_in_words()+ - class DateHelper - Texts = { - :less_than_x_seconds => "%d초 이내", - :half_a_minute => "30초", - :less_than_a_minute => "1분 이내", - :one_minute => "1분", - :x_minutes => "%d분", - :one_hour => "약 1시간", - :x_hours => "약 %d시간", - :one_day => "1일", - :x_days => "%d일", - :one_month => "1개월", - :x_months => "%d개월", - :one_year => "1년", - :x_years => "%d년" - } - - # Rails uses Month names in Date and time select boxes - # (+date_select+ and +datetime_select+ ) - # Currently (as of version 1.1.6), Rails doesn't use daynames - Monthnames = [nil] + %w{1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월} - AbbrMonthnames = [nil] + %w{1 2 3 4 5 6 7 8 9 10 11 12} - Daynames = %w{일요일 월요일 화요일 수요일 목요일 금요일 토요일} - AbbrDaynames = %w{일 월 화 수 목 금 토} - - # Date and time format syntax explained in http://www.rubycentral.com/ref/ref_c_time.html#strftime - # These are sent to strftime that Ruby's date and time handlers use internally - # Same options as php (that has a better list: http://www.php.net/strftime ) - DateFormats = { - :default => "%Y/%m/%d", - :short => "%m/%d", - :long => "%Y년 %b월 %e일 %A" - } - - TimeFormats = { - #:default => "%a, %d %b %Y %H:%M:%S %z", - :default => "%Y/%m/%d (%a) %p %H:%M:%S", - :short => "%H:%M", - :long => "%Y년 %b월 %e일 %A %p %I시 %M분 %S초" - } - # Set the order of +date_select+ and +datetime_select+ boxes - # Note that at present, the current Rails version only supports ordering of date_select boxes - DateSelectOrder = { - :order => [:year, :month, :day] #default Rails is US ordered: :order => [:year, :month, :day] - } - end - - class NumberHelper - # CurrencyOptions are used as default for +Number#to_currency()+ - # http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#M000449 - CurrencyOptions = { - :unit => "₩", - :separator => ".", #unit separator (between integer part and fraction part) - :delimiter => ",", #delimiter between each group of thousands. Example: 1.234.567 - :order => [:unit, :number] #order is at present unsupported in Rails - } - end - - class ArrayHelper - # Modifies +Array#to_sentence()+ - # http://api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Array/Conversions.html#M000274 - ToSentenceTexts = { - :connector => '그리고', - :skip_last_comma => true - } - end -end - - -# Use the inflector below to pluralize "error" from -# @@default_error_messages[:error_translation] above (if necessary) -Inflector.inflections do |inflect| -# inflect.plural /^(ox)$/i, '\1en' -# inflect.singular /^(ox)en/i, '\1' -# inflect.irregular 'person people' - inflect.uncountable '개의 애러' -end - diff --git a/vendor/plugins/l10n-simplified-0.8/lib/lang_nl.rb b/vendor/plugins/l10n-simplified-0.8/lib/lang_nl.rb deleted file mode 100755 index 3117fdab..00000000 --- a/vendor/plugins/l10n-simplified-0.8/lib/lang_nl.rb +++ /dev/null @@ -1,115 +0,0 @@ -# lang_nl.rb -# Dutch translation by Jeroen Houben - - - -module LocalizationSimplified - About = { - :lang => "nl", - :updated => "2006-08-23" - } - - class ActiveRecord - # ErrorMessages to override default messages in - # +ActiveRecord::Errors::@@default_error_messages+ - # This plugin also replaces hardcoded 3 text messages - # :error_translation is inflected using the Rails - # inflector. - # - # Remember to modify the Inflector with your localized translation - # of "error" and "errors" in the bottom of this file - # - ErrorMessages = { - :inclusion => "zit niet in de lijst", - :exclusion => "is gereserveerd", - :invalid => "is ongeldig", - :confirmation => "is niet hetzelfde als de verificatie", - :accepted => "moet worden geaccepteerd", - :empty => "mag niet leeg zijn", - :blank => "mag niet blanko zijn",# alternate, formulation: "is required" - :too_long => "is te lang (maximum is %d karakters)", - :too_short => "is te kort (minimum is %d karakters)", - :wrong_length => "is de verkeerde lengte (dient %d karakters te zijn)", - :taken => "is reeds in gebruik", - :not_a_number => "is geen nummer", - #Jespers additions: - :error_translation => "fout", - :error_header => "%s zorgen ervoor dat %s niet kan worden opgeslagen", - :error_subheader => "Er zijn problemen met de volgende velden:" - } - end - - # Texts to override +distance_of_time_in_words()+ - class DateHelper - Texts = { - :less_than_x_seconds => "minder dan %d seconden", - :half_a_minute => "een halve minuut", - :less_than_a_minute => "minder dan een halve minuut", - :one_minute => "1 minuut", - :x_minutes => "%d minuten", - :one_hour => "ongeveer 1 uur", - :x_hours => "ongeveer %d uur", - :one_day => "1 dag", - :x_days => "%d dagen", - :one_month => "1 maand", - :x_months => "%d maanden", - :one_year => "1 jaar", - :x_years => "%d jaar" - } - # Rails uses Month names in Date and time select boxes - # (+date_select+ and +datetime_select+ ) - # Currently (as of version 1.1.6), Rails doesn't use daynames - Monthnames = [nil] + %w{Januari Februari Maart April Mei Juni Juli Augustus September Oktober November December} - AbbrMonthnames = [nil] + %w{Jan Feb Mar Apr Mei Jun Jul Aug Sep Okt Nov Dec} - Daynames = %w{Zondag Maandag Dinsdag Woensdag Donderdag Vrijdag Zaterdag} - AbbrDaynames = %w{Zo Ma Di Wo Do Vr Za} - - # Date and time format syntax explained in http://www.rubycentral.com/ref/ref_c_time.html#strftime - # These are sent to strftime that Ruby's date and time handlers use internally - # Same options as php (that has a better list: http://www.php.net/strftime ) - DateFormats = { - :default => "%d-%m-%Y", - :short => "%d %b", - :long => "%d %B %Y" - } - - TimeFormats = { - :default => "%a, %d %b %Y %H:%M:%S %z", - :short => "%d %b %H:%M", - :long => "%d %B %Y %H:%M" - } - # Set the order of +date_select+ and +datetime_select+ boxes - # Note that at present, the current Rails version only supports ordering of date_select boxes - DateSelectOrder = { - :order => [:day, :month, :year] #default Rails is US ordered: :order => [:year, :month, :day] - } - end - - class NumberHelper - # CurrencyOptions are used as default for +Number#to_currency()+ - # http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#M000449 - CurrencyOptions = { - :unit => "€", - :separator => ".", #unit separator (between integer part and fraction part) - :delimiter => ",", #delimiter between each group of thousands. Example: 1.234.567 - :order => [:unit, :number] #order is at present unsupported in Rails - #to support for instance Danish format, the order is different: Unit comes last (ex. "1.234,00 dkr.") - } - end - - class ArrayHelper - # Modifies +Array#to_sentence()+ - # http://api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Array/Conversions.html#M000274 - ToSentenceTexts = { - :connector => 'en', - :skip_last_comma => false - } - end -end - - -# Use the inflector below to pluralize "error" from -# @@default_error_messages[:error_translation] above (if necessary) -Inflector.inflections do |inflect| - inflect.irregular 'fout', 'fouten' -end diff --git a/vendor/plugins/l10n-simplified-0.8/lib/lang_pirate.rb b/vendor/plugins/l10n-simplified-0.8/lib/lang_pirate.rb deleted file mode 100755 index 040a0dc9..00000000 --- a/vendor/plugins/l10n-simplified-0.8/lib/lang_pirate.rb +++ /dev/null @@ -1,119 +0,0 @@ -# lang_pirate.rb -# Pirate baseline translation file. -# Translated by Tobias Michaelsen , additions by Jesper Rønn-Jensen ( http://justaddwater.dk/ ) - - -module LocalizationSimplified - About = { - :lang => "pirate", - :updated => "2006-09-07" - } - - class ActiveRecord - # ErrorMessages to override default messages in - # +ActiveRecord::Errors::@@default_error_messages+ - # This plugin also replaces hardcoded 3 text messages - # :error_translation is inflected using the Rails - # inflector. - # - # Remember to modify the Inflector with your localized translation - # of "error" and "errors" in the bottom of this file - # - ErrorMessages = { - :inclusion => "be not included in the list, me hearty", - :exclusion => "be reserrrrved", - :invalid => "be innvalid, m hearty", - :confirmation => "doesn't match confirmation", - :accepted => "must be accepted, arrrrh!", - :empty => "no nay ne'er be empty", - :blank => "no nay be blank, ye scurvy dog!",# alternate, formulation: "is required" - :too_long => "be too vastly in length (no more than %d characters or ye drivin' me nuts)", - :too_short => "be way too short (at least %d characters or ye drivin' me nuts)", - :wrong_length => "be the wrong length (should be %d characters)", - :taken => "has already been taken", - :not_a_number => "be not a number, matey", - #Jespers additions: - :error_translation => "errrorrr", - :error_header => "Ahoy me hearty! %s prohibited ye %s from bein' saved", - :error_subheader => "Turn the steering wheeel and corrrect these fields, arrrrh." - } - end - - # Texts to override +distance_of_time_in_words()+ - class DateHelper - Texts = { - :less_than_x_seconds => "less than %d seconds", - :half_a_minute => "half arrr minute", - :less_than_a_minute => "less than arrr minute", - :one_minute => "1 minute ye landlubber", - :x_minutes => "%d minutes accounted ferrrr", - :one_hour => "about one hourrr and a bottle of rum", - :x_hours => "about %d hourrrs and a bottle of rum", - :one_day => "1 day and a dead mans chest arrr", - :x_days => "%d days and a ship full of hornpipes", - :one_month => "1 full moon", - :x_months => "%d full moons", - :one_year => "1 yearrrr", - :x_years => "%d yearrrrrs" - } - - # Rails uses Month names in Date and time select boxes - # (+date_select+ and +datetime_select+ ) - # Currently (as of version 1.1.6), Rails doesn't use daynames - Monthnames = [nil] + %w{January February March April May June July August September October November December} - AbbrMonthnames = [nil] + %w{Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec} - Daynames = %w{Sunday Monday Tuesday Wednesday Thurrrrrrsday Frrriday Saturrrrday} - AbbrDaynames = %w{Sun Mon Tue Wed Thurrrr Frri Sat} - - # Date and time format syntax explained in http://www.rubycentral.com/ref/ref_c_time.html#strftime - # These are sent to strftime that Ruby's date and time handlers use internally - # Same options as php (that has a better list: http://www.php.net/strftime ) - DateFormats = { - :default => "%Y-%m-%d", - :short => "%b %e", - :long => "%B %e, %Y" - } - - TimeFormats = { - :default => "%A, %d %b %Y %H:%M:%S", - :short => "%d %b %H:%M", - :long => "%B %d, %Y %H:%M" - } - # Set the order of +date_select+ and +datetime_select+ boxes - # Note that at present, the current Rails version only supports ordering of date_select boxes - DateSelectOrder = { - :order => [:year, :month, :day] #default Rails is US ordered: :order => [:year, :month, :day] - } - end - - class NumberHelper - # CurrencyOptions are used as default for +Number#to_currency()+ - # http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#M000449 - CurrencyOptions = { - :unit => "pieces o' silver", - :separator => ".", #unit separator (between integer part and fraction part) - :delimiter => ",", #delimiter between each group of thousands. Example: 1.234.567 - :order => [:number, :unit] #order is at present unsupported in Rails - #to support for instance Danish format, the order is different: Unit comes last (ex. "1.234,00 dkr.") - } - end - - class ArrayHelper - # Modifies +Array#to_sentence()+ - # http://api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Array/Conversions.html#M000274 - ToSentenceTexts = { - :connector => 'and', - :skip_last_comma => false - } - end -end - - -# Use the inflector below to pluralize "error" from -# @@default_error_messages[:error_translation] above (if necessary) -# Inflector.inflections do |inflect| -# inflect.plural /^(ox)$/i, '\1en' -# inflect.singular /^(ox)en/i, '\1' -# inflect.irregular 'person people' -# inflect.uncountable %w( information ) -# end diff --git a/vendor/plugins/l10n-simplified-0.8/lib/lang_se.rb b/vendor/plugins/l10n-simplified-0.8/lib/lang_se.rb deleted file mode 100755 index 490ee11a..00000000 --- a/vendor/plugins/l10n-simplified-0.8/lib/lang_se.rb +++ /dev/null @@ -1,116 +0,0 @@ -# lang_se.rb -# Swedish translation file. -# Translation from plugin swe_rails by Ola Bini ( http://ola-bini.blogspot.com/ ) and Olle Jonsson ( http://olleolleolle.dk ) - - -module LocalizationSimplified - About = { - :lang => "se", - :updated => "2006-09-07" - } - - class ActiveRecord - # ErrorMessages to override default messages in - # +ActiveRecord::Errors::@@default_error_messages+ - # This plugin also replaces hardcoded 3 text messages - # :error_translation is inflected using the Rails - # inflector. - # - # Remember to modify the Inflector with your localized translation - # of "error" and "errors" in the bottom of this file - # - ErrorMessages = { - :inclusion => "finns inte i listan", - :exclusion => "Är reserverat", - :invalid => "Är ogiltigt", - :confirmation => "stämmer inte övererens", - :accepted => "måste vara accepterad", - :empty => "för ej vara tom", - :blank => "för ej vara blank", - :too_long => "Är för lång (maximum är %d tecken)", - :too_short => "Är för kort (minimum är %d tecken)", - :wrong_length => "har fel längd (ska vara %d tecken)", - :taken => "har redan tagits", - :not_a_number => "Är ej ett nummer", - #Jespers additions: - :error_translation => "fel", - :error_header => "%s förhindrade %s från at sparse", - :error_subheader => "Problemar met dissa felterne:" - } - end - - # Texts to override +distance_of_time_in_words()+ - class DateHelper - Texts = { - :less_than_x_seconds => "mindre än %d sekunder", - :half_a_minute => "en halv minut", - :less_than_a_minute => "mindre än en minut", - :one_minute => "1 minut", - :x_minutes => "%d minutter", - :one_hour => "ungefär 1 timma", - :x_hours => "ungefär %d timmar", - :one_day => "1 dygn", - :x_days => "%d dygn", - :one_month => "1 month", - :x_months => "%d months", - :one_year => "1 year", - :x_years => "%d years" - } - # Rails uses Month names in Date and time select boxes - # (+date_select+ and +datetime_select+ ) - # Currently (as of version 1.1.6), Rails doesn't use daynames - Monthnames = [nil] + %w{januari februari mars april maj juni juli augusti september oktober november december} - AbbrMonthnames = [nil] + %w{jan feb mar apr maj jun jul aug sep okt nov dec} - Daynames = %w{söndag måndag tisdag onsdag torsdag fredag lördag} - AbbrDaynames = %w{sön mån tis ons tors fre lör} - - - # Date and time format syntax explained in http://www.rubycentral.com/ref/ref_c_time.html#strftime - # These are sent to strftime that Ruby's date and time handlers use internally - # Same options as php (that has a better list: http://www.php.net/strftime ) - DateFormats = { - :default => "%Y-%m-%d", - :short => "%b %e", - :long => "%B %e, %Y" - } - - TimeFormats = { - :default => "%a, %d %b %Y %H:%M:%S %z", - :short => "%d %b %H:%M", - :long => "%B %d, %Y %H:%M" - } - # Set the order of +date_select+ and +datetime_select+ boxes - # Note that at present, the current Rails version only supports ordering of date_select boxes - DateSelectOrder = { - :order => [:day, :month, :year] #default Rails is US ordered: :order => [:year, :month, :day] - } - end - - class NumberHelper - # CurrencyOptions are used as default for +Number#to_currency()+ - # http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#M000449 - CurrencyOptions = { - :unit => "kr.", - :separator => ",", #unit separator (between integer part and fraction part) - :delimiter => ".", #delimiter between each group of thousands. Example: 1.234.567 - :order => [:number, :unit] #order is at present unsupported in Rails - #to support for instance Swedish format, the order is different: Unit comes last (ex. "1.234,00 kr.") - } - end - - class ArrayHelper - # Modifies +Array#to_sentence()+ - # http://api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Array/Conversions.html#M000274 - ToSentenceTexts = { - :connector => 'och', - :skip_last_comma => true - } - end -end - - -# Use the inflector below to pluralize "error" from -# @@default_error_messages[:error_translation] above (if necessary) - Inflector.inflections do |inflect| - inflect.uncountable %w( fel ) - end diff --git a/vendor/plugins/l10n-simplified-0.8/lib/localization_simplified.rb b/vendor/plugins/l10n-simplified-0.8/lib/localization_simplified.rb deleted file mode 100755 index 33860a1b..00000000 --- a/vendor/plugins/l10n-simplified-0.8/lib/localization_simplified.rb +++ /dev/null @@ -1,229 +0,0 @@ -# LocalizationSimplified (L10n-simplified) -# Really simple localization for Rails -# By Jesper Rønn-Jensen ( http://justaddwater.dk/ ) -# Plugin available at http://rubyforge.org/projects/l10n-simplified/ -# -module LocalizationSimplified - @@ignore = "\xFF\xFF\xFF\xFF" # %% == Literal "%" character - # substitute all daynames and monthnames with localized names - # from RUtils plugin - def self.localize_strftime(date='%d.%m.%Y', time='') - date.gsub!(/%%/, @@ignore) - date.gsub!(/%a/, LocalizationSimplified::DateHelper::AbbrDaynames[time.wday]) - date.gsub!(/%A/, LocalizationSimplified::DateHelper::Daynames[time.wday]) - date.gsub!(/%b/, LocalizationSimplified::DateHelper::AbbrMonthnames[time.mon]) - date.gsub!(/%B/, LocalizationSimplified::DateHelper::Monthnames[time.mon]) - date.gsub!(@@ignore, '%%') - end -end - - -module ActiveRecord - class Errors - #Error messages modified in lang file - @@default_error_messages.update(LocalizationSimplified::ActiveRecord::ErrorMessages) - end -end - -module ActionView - module Helpers - - #Modify ActiveRecord to use error message headers (text from lang-file) - module ActiveRecordHelper - alias_method :old_error_messages_for, :error_messages_for - - def error_messages_for(*params) - options = params.last.is_a?(Hash) ? params.pop.symbolize_keys : {} - objects = params.collect {|object_name| instance_variable_get("@#{object_name}") }.compact - count = objects.inject(0) {|sum, object| sum + object.errors.count } - unless count.zero? - html = {} - [:id, :class].each do |key| - if options.include?(key) - value = options[key] - html[key] = value unless value.blank? - else - html[key] = 'errorExplanation' - end - end - messages = ActiveRecord:: Errors.default_error_messages - header_message = format( messages[:error_header], - pluralize(count, messages[:error_translation]), - (options[:object_name] || - params.first).to_s.gsub("_", " ")) - error_messages = objects.map {|object| object.errors.full_messages.map {|msg| content_tag(:li, msg) } } - content_tag(:div, - content_tag(options[:header_tag] || :h2, header_message) << - content_tag(:p, messages[:error_subheader]) << - content_tag(:ul, error_messages), - html - ) - else - '' - end - end - - end - - # Modify DateHelper to use text from lang-file - module DateHelper - #Modify DateHelper distance_of_time_in_words - alias_method :old_distance_of_time_in_words, :distance_of_time_in_words - def distance_of_time_in_words(from_time, to_time = 0, include_seconds = false) - from_time = from_time.to_time if from_time.respond_to?(:to_time) - to_time = to_time.to_time if to_time.respond_to?(:to_time) - distance_in_minutes = (((to_time - from_time).abs)/60).round - distance_in_seconds = ((to_time - from_time).abs).round - - #First, I invent a variable (makes it easier for future localization) - messages = LocalizationSimplified::DateHelper::Texts #localized - case distance_in_minutes - when 0..1 - return (distance_in_minutes==0) ? messages[:less_than_a_minute] : messages[:one_minute] unless include_seconds - case distance_in_seconds - when 0..5 then format( messages[:less_than_x_seconds], 5 ) - when 6..10 then format( messages[:less_than_x_seconds], 10 ) - when 11..20 then format( messages[:less_than_x_seconds], 20 ) - when 21..40 then messages[:half_a_minute] - when 41..59 then messages[:less_than_a_minute] - else messages[:one_minute] - end - - when 2..44 then format(messages[:x_minutes], distance_in_minutes) - when 45..89 then messages[:one_hour] - when 90..1439 then format( messages[:x_hours], (distance_in_minutes.to_f / 60.0).round ) - when 1440..2879 then messages[:one_day] - when 2880..43199 then format( messages[:x_days], (distance_in_minutes / 1440).round ) - when 43200..86399 then messages[:one_month] - when 86400..525959 then format( messages[:x_months], (distance_in_minutes / 43200).round ) - when 525960..1051919 then messages[:one_year] - else format( messages[:x_years], (distance_in_minutes / 525960).round ) - end - end - end - - - # Give default settings to number_to_currency() - module NumberHelper - alias_method :orig_number_to_currency, :number_to_currency - #modify number_to_currency to accept :order option - def number_to_currency(number, options = {}) - # Blend default options with localized currency options - options.reverse_merge!(LocalizationSimplified::NumberHelper::CurrencyOptions) - options[:order] ||= [:unit, :number] - options = options.stringify_keys - precision, unit, separator, delimiter = options.delete("precision") { 2 }, options.delete("unit") { "$" }, options.delete("separator") { "." }, options.delete("delimiter") { "," } - separator = "" unless precision > 0 - - #add leading space before trailing unit - unit = " " + unit if options["order"] == [:number, :unit] - output = '' - begin - options["order"].each do |param| - case param - when :unit - output << unit - when :number - parts = number_with_precision(number, precision).split('.') - output << number_with_delimiter(parts[0], delimiter) + separator + parts[1].to_s - end - end - rescue - output = number - end - output - end - end# module NumberHelper - - module DateHelper - alias_method :orig_date_select, :date_select - # Blend default options with localized :order option - def date_select(object_name, method, options = {}) - options.reverse_merge!(LocalizationSimplified::DateHelper::DateSelectOrder) - orig_date_select(object_name, method, options) - end - - alias_method :orig_datetime_select, :datetime_select - # Blend default options with localized :order option - def datetime_select(object_name, method, options = {}) - options.reverse_merge!(LocalizationSimplified::DateHelper::DateSelectOrder) - orig_datetime_select(object_name, method, options) - end - end #module DateHelper - - end #module Helpers -end #module ActionView - - -class Array - alias :orig_to_sentence :to_sentence - def to_sentence(options = {}) - #Blend default options with sent through options - options.reverse_merge!(LocalizationSimplified::ArrayHelper::ToSentenceTexts) - orig_to_sentence(options) - end -end - - -# Modification of ruby constants -class Date - #FIXME as these are defined as Ruby constants, they can not be overwritten - MONTHNAMES = LocalizationSimplified::DateHelper::Monthnames - ABBR_MONTHNAMES = LocalizationSimplified::DateHelper::AbbrMonthnames - #DAYNAMES = LocalizationSimplified::DateHelper::Daynames #not in use by Rails - #ABBR_DAYNAMES = LocalizationSimplified::DateHelper::AbbrDaynames #not in use by Rails -end - -# Modification of default Time format using Time.to_formatted_s(:default) -# Localizes the hash with the formats :default, :short, :long -# Usage: -# <% t = Time.parse('2006-12-25 13:55') %> -# <%= t.to_formatted_s(:short) #=> outputs time in localized format %> -# <%= t #=> outputs time in localized format %> -class Time - alias_method :old_strftime, :strftime - # Pre-translate format of Time before the time string is translated by strftime. - # The :default time format is changed by localizing month and daynames. - # Also Rails ActiveSupport allow us to modify the :default timeformatting string. - # Originally, its :default => "%a, %d %b %Y %H:%M:%S %z" (RFC2822 names), but as it can be - # modified in this plugin, and we can end up with a different file format in logfiles, etc - def strftime(date) - LocalizationSimplified::localize_strftime(date, self) - old_strftime(date) - end -end - -# Modification of default Date format using Date.to_formatted_s(:default) -# Localizes the hash with the formats :default, :short, :long -# Usage: -# <% d = Date.parse('2006-12-25') %> -# <%= d.to_formatted_s(:short) #=> outputs date in localized format %> -# -# FIXME The Time conversion still does not modify week day and month (for some reason) -ActiveSupport::CoreExtensions::Date::Conversions::DATE_FORMATS.merge!(LocalizationSimplified::DateHelper::DateFormats) - -# Modification of default Time format using Time.to_formatted_s(:default) -# Localizes the hash with the formats :default, :short, :long -# Usage: -# <% t = Time.parse('2006-12-25 13:55') %> -# <%= t.to_formatted_s(:short) #=> outputs time in localized format %> -# <%= t #=> outputs time in localized format %> -# -# FIXME The Time conversion still does not modify week day and month (for some reason) -ActiveSupport::CoreExtensions::Time::Conversions::DATE_FORMATS.merge!(LocalizationSimplified::DateHelper::TimeFormats) - - -# Modify Actioncontroller to always use UTF-8 -# Currently this modifies MySQL. Please add other databases you find necessary -class ActionController::Base - before_filter :configure_charsets - - def configure_charsets(charset='utf-8') - # Set connection charset. MySQL 4.0 doesn't support this so it - # will throw an error, MySQL 4.1+ needs this. - suppress(ActiveRecord::StatementInvalid) do - ActiveRecord::Base.connection.execute "SET NAMES 'UTF8'" - end - end -end - diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActionController.html b/vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActionController.html deleted file mode 100755 index ddec42a8..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActionController.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - Module: ActionController - - - - - - - - - - -
    - - - - - - - - - - -
    ModuleActionController
    In: -
    -
    - - -
    - - - -
    - - - -
    - - -
    - - - - -
    - -
    -

    Classes and Modules

    - - Class ActionController::Base
    - -
    - - - - - - - - - - -
    - - - - - - \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActionController/Base.html b/vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActionController/Base.html deleted file mode 100755 index 79694e76..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActionController/Base.html +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - Class: ActionController::Base - - - - - - - - - - -
    - - - - - - - - - - - - - - -
    ClassActionController::Base
    In: - - lib/localization_simplified.rb - -
    -
    Parent: - Object -
    -
    - - -
    - - - -
    - -
    -

    -Modify Actioncontroller to always use UTF-8 Currently this modifies MySQL. -Please add other databases you find necessary -

    - -
    - - -
    - -
    -

    Methods

    - - -
    - -
    - - - - -
    - - - - - - - - - -
    -

    Public Instance methods

    - -
    - - - - -
    -

    [Source]

    -
    -
    -     # File lib/localization_simplified.rb, line 197
    -197:   def configure_charsets(charset='utf-8')
    -198:     $KCODE = 'u'
    -199:     # Response header necessary with some lang-files (like lang_pirate.rb for some reason)
    -200:     @response.headers["Content-Type"] = "text/html; charset=utf-8"
    -201: 
    -202:     # Set connection charset. MySQL 4.0 doesn't support this so it
    -203:     # will throw an error, MySQL 4.1 needs this
    -204:     suppress(ActiveRecord::StatementInvalid) do
    -205:       ActiveRecord::Base.connection.execute 'SET NAMES UTF8'
    -206:     end
    -207:   end
    -
    -
    -
    -
    - - -
    - - -
    - - - - - - \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActionView.html b/vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActionView.html deleted file mode 100755 index 5d12f2d4..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActionView.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - Module: ActionView - - - - - - - - - - -
    - - - - - - - - - - -
    ModuleActionView
    In: - - lib/localization_simplified.rb - -
    -
    -
    - - -
    - - - -
    - -
    -

    -Give default settings to number_to_currency() -

    - -
    - - -
    - - -
    - - - - -
    - -
    -

    Classes and Modules

    - - Module ActionView::Helpers
    - -
    - - - - - - - - - - -
    - - - - - - \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActionView/Helpers.html b/vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActionView/Helpers.html deleted file mode 100755 index 9bfe6390..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActionView/Helpers.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - Module: ActionView::Helpers - - - - - - - - - - -
    - - - - - - - - - - -
    ModuleActionView::Helpers
    In: - - lib/localization_simplified.rb - -
    -
    -
    - - -
    - - - -
    - - - -
    - - -
    - - - - -
    - - - - - - - - - - - - -
    - - - - - - \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActionView/Helpers/ActiveRecordHelper.html b/vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActionView/Helpers/ActiveRecordHelper.html deleted file mode 100755 index 5f5d7b97..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActionView/Helpers/ActiveRecordHelper.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - Module: ActionView::Helpers::ActiveRecordHelper - - - - - - - - - - -
    - - - - - - - - - - -
    ModuleActionView::Helpers::ActiveRecordHelper
    In: - - lib/localization_simplified.rb - -
    -
    -
    - - -
    - - - -
    - -
    -

    -Modify ActiveRecord to use error -message headers (text from lang-file) -

    - -
    - - -
    - -
    -

    Methods

    - - -
    - -
    - - - - -
    - - - -
    -

    External Aliases

    - -
    - - - - - - -
    error_messages_for->old_error_messages_for
    -
    -
    - - - - - - -
    -

    Public Instance methods

    - -
    - - - - -
    -

    [Source]

    -
    -
    -    # File lib/localization_simplified.rb, line 65
    -65:       def error_messages_for(object_name, options = {})
    -66:         messages = ActiveRecord::Errors.default_error_messages
    -67:         options = options.symbolize_keys
    -68:         object = instance_variable_get("@#{object_name}")
    -69:         if object && !object.errors.empty?
    -70:           content_tag("div",
    -71:             content_tag(
    -72:               options[:header_tag] || "h2",
    -73:               format( messages[:error_header], pluralize(object.errors.count, messages[:error_translation]), object_name.to_s.gsub("_", " ")  )
    -74:               #"#{pluralize(object.errors.count, "error")} prohibited this #{object_name.to_s.gsub("_", " ")} from being saved"
    -75:             ) +
    -76:             content_tag("p", messages[:error_subheader]) +
    -77:             content_tag("ul", object.errors.full_messages.collect { |msg| content_tag("li", msg) }),
    -78:             "id" => options[:id] || "errorExplanation", "class" => options[:class] || "errorExplanation"
    -79:           )
    -80:         else
    -81:           ""
    -82:         end
    -83:       end
    -
    -
    -
    -
    - - -
    - - -
    - - - - - - \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActionView/Helpers/DateHelper.html b/vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActionView/Helpers/DateHelper.html deleted file mode 100755 index 1132b797..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActionView/Helpers/DateHelper.html +++ /dev/null @@ -1,233 +0,0 @@ - - - - - - Module: ActionView::Helpers::DateHelper - - - - - - - - - - -
    - - - - - - - - - - -
    ModuleActionView::Helpers::DateHelper
    In: - - lib/localization_simplified.rb - -
    -
    -
    - - -
    - - - -
    - -
    -

    -Modify DateHelper to use text from lang-file -

    - -
    - - -
    - -
    -

    Methods

    - - -
    - -
    - - - - -
    - - - -
    -

    External Aliases

    - -
    - - - - - - - - - - - - - - - - - - - - -
    distance_of_time_in_words->old_distance_of_time_in_words
      -Modify DateHelper distance_of_time_in_words - -
    date_select->orig_date_select
    datetime_select->orig_datetime_select
    -
    -
    - - - - - - -
    -

    Public Instance methods

    - -
    - - - - -
    -

    -Blend default options with localized :order option -

    -

    [Source]

    -
    -
    -     # File lib/localization_simplified.rb, line 117
    -117:       def date_select(object_name, method, options = {})
    -118:         options.reverse_merge!(LocalizationSimplified::DateHelper::DateSelectOrder)
    -119:         orig_date_select(object_name, method, options)
    -120:       end
    -
    -
    -
    -
    - -
    - - - - -
    -

    -Blend default options with localized :order option -

    -

    [Source]

    -
    -
    -     # File lib/localization_simplified.rb, line 126
    -126:       def datetime_select(object_name, method, options = {})
    -127:         options.reverse_merge!(LocalizationSimplified::DateHelper::DateSelectOrder)
    -128:         orig_datetime_select(object_name, method, options)
    -129:       end
    -
    -
    -
    -
    - -
    - - - - -
    -

    [Source]

    -
    -
    -    # File lib/localization_simplified.rb, line 93
    -93:       def distance_of_time_in_words(from_time, to_time = 0, include_seconds = false)
    -94:         LocalizationSimplified::distance_of_time_in_words(from_time, to_time, include_seconds)
    -95:       end
    -
    -
    -
    -
    - - -
    - - -
    - - - - - - \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActionView/Helpers/NumberHelper.html b/vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActionView/Helpers/NumberHelper.html deleted file mode 100755 index 9517386d..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActionView/Helpers/NumberHelper.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - Module: ActionView::Helpers::NumberHelper - - - - - - - - - - -
    - - - - - - - - - - -
    ModuleActionView::Helpers::NumberHelper
    In: - - lib/localization_simplified.rb - -
    -
    -
    - - -
    - - - -
    - - - -
    - -
    -

    Methods

    - - -
    - -
    - - - - -
    - - - -
    -

    External Aliases

    - -
    - - - - - - -
    number_to_currency->orig_number_to_currency
    -
    -
    - - - - - - -
    -

    Public Instance methods

    - -
    - - - - -
    -

    -Blend default options with localized currency options -

    -

    [Source]

    -
    -
    -     # File lib/localization_simplified.rb, line 107
    -107:       def number_to_currency(number, options = {})
    -108:         options.reverse_merge!(LocalizationSimplified::NumberHelper::CurrencyOptions)
    -109:         orig_number_to_currency(number, options)
    -110:       end
    -
    -
    -
    -
    - - -
    - - -
    - - - - - - \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActiveRecord.html b/vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActiveRecord.html deleted file mode 100755 index 5a2ad460..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActiveRecord.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - Module: ActiveRecord - - - - - - - - - - -
    - - - - - - - - - - -
    ModuleActiveRecord
    In: - - lib/localization_simplified.rb - -
    -
    -
    - - -
    - - - -
    - - - -
    - - -
    - - - - -
    - -
    -

    Classes and Modules

    - - Class ActiveRecord::Errors
    - -
    - - - - - - - - - - -
    - - - - - - \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActiveRecord/Errors.html b/vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActiveRecord/Errors.html deleted file mode 100755 index a6eaf0b0..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/ActiveRecord/Errors.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - Class: ActiveRecord::Errors - - - - - - - - - - -
    - - - - - - - - - - - - - - -
    ClassActiveRecord::Errors
    In: - - lib/localization_simplified.rb - -
    -
    Parent: - Object -
    -
    - - -
    - - - -
    - - - -
    - - -
    - - - - -
    - - - - - - - - - - - -
    - - - - - - \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/Array.html b/vendor/plugins/l10n-simplified-0.8/rdoc/classes/Array.html deleted file mode 100755 index 6812758e..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/Array.html +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - Class: Array - - - - - - - - - - -
    - - - - - - - - - - - - - - -
    ClassArray
    In: - - lib/localization_simplified.rb - -
    -
    Parent: - Object -
    -
    - - -
    - - - -
    - - - -
    - -
    -

    Methods

    - -
    - to_sentence   -
    -
    - -
    - - - - -
    - - - -
    -

    External Aliases

    - -
    - - - - - - -
    to_sentence->orig_to_sentence
    -
    -
    - - - - - - -
    -

    Public Instance methods

    - -
    - - - - -
    -

    [Source]

    -
    -
    -     # File lib/localization_simplified.rb, line 137
    -137:   def to_sentence(options = {})
    -138:     #Blend default options with sent through options
    -139:     options.reverse_merge!(LocalizationSimplified::ArrayHelper::ToSentenceTexts)
    -140:     orig_to_sentence(options)
    -141:   end
    -
    -
    -
    -
    - - -
    - - -
    - - - - - - \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/Date.html b/vendor/plugins/l10n-simplified-0.8/rdoc/classes/Date.html deleted file mode 100755 index fd3bfc2d..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/Date.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - Class: Date - - - - - - - - - - -
    - - - - - - - - - - - - - - -
    ClassDate
    In: - - lib/localization_simplified.rb - -
    -
    Parent: - Object -
    -
    - - -
    - - - -
    - -
    -

    -Modification of ruby constants -

    - -
    - - -
    - - -
    - - - - -
    - - -
    -

    Constants

    - -
    - - - - - - - - -
    MONTHNAMES=LocalizationSimplified::DateHelper::Monthnames  -FIXME as these are defined as Ruby constants, they can’t be -overwritten - -
    -
    -
    - - - - - - - - - -
    - - - - - - \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/LocalizationSimplified.html b/vendor/plugins/l10n-simplified-0.8/rdoc/classes/LocalizationSimplified.html deleted file mode 100755 index 54930683..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/LocalizationSimplified.html +++ /dev/null @@ -1,344 +0,0 @@ - - - - - - Module: LocalizationSimplified - - - - - - - - - - - - - -
    - - - -
    - -
    -

    -LocalizationSimplified Really -simple localization for Rails By Jesper Rønn-Jensen ( justaddwater.dk/ ) Plugin available at rubyforge.org/projects/l10n-simplified/ -

    - -
    - - -
    - -
    -

    Methods

    - - -
    - -
    - - - - -
    - - - -
    -

    Constants

    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    About={ :lang => "cf", :updated => "2006-09-07"
    About={ :lang => "chef", :updated => "2006-09-07"
    About={ :lang => "da", :updated => "2006-09-07"
    About={ :lang => "de", :updated => "2006-09-07"
    About={ :lang => "en", :updated => "2006-09-01"
    About={ :lang => "es", :updated => "2006-09-07"
    About={ :lang => "fi", :updated => "2006-09-07"
    About={ :lang => "fr", :updated => "2006-09-03"
    About={ :lang => "fr", :updated => "2006-08-24"
    About={ :lang => "nl", :updated => "2006-08-23"
    About={ :lang => "pirate", :updated => "2006-09-07"
    About={ :lang => "se", :updated => "2006-09-07"
    About={ :lang => "en",#add locale code here :updated => "2006-09-01"
    -
    -
    - - - - - - - -
    -

    Public Class methods

    - -
    - - - - -
    -

    -Modify DateHelper distance_of_time_in_words -

    -

    [Source]

    -
    -
    -    # File lib/localization_simplified.rb, line 20
    -20:   def self.distance_of_time_in_words(from_time, to_time = 0, include_seconds = false)
    -21:     from_time = from_time.to_time if from_time.respond_to?(:to_time)
    -22:     to_time = to_time.to_time if to_time.respond_to?(:to_time)
    -23:     distance_in_minutes = (((to_time - from_time).abs)/60).round
    -24:     distance_in_seconds = ((to_time - from_time).abs).round
    -25:     
    -26:     #First, I invent a variable (makes it easier for future i10n)
    -27:     messages = LocalizationSimplified::DateHelper::Texts #localized
    -28:     case distance_in_minutes
    -29:       when 0..1
    -30:         return (distance_in_minutes==0) ? messages[:less_than_a_minute] :  messages[:one_minute] unless include_seconds
    -31:         case distance_in_seconds
    -32:           when 0..5   then format( messages[:less_than_x_seconds], 5 )
    -33:           when 6..10  then format( messages[:less_than_x_seconds], 10 )
    -34:           when 11..20 then format( messages[:less_than_x_seconds], 20 )
    -35:           when 21..40 then messages[:half_a_minute]
    -36:           when 41..59 then messages[:less_than_a_minute]
    -37:           else             messages[:one_minute]
    -38:         end
    -39:                             
    -40:       when 2..45      then format(messages[:x_minutes], distance_in_minutes)
    -41:       when 46..90     then messages[:one_hour]
    -42:       when 90..1440   then format( messages[:x_hours], (distance_in_minutes.to_f / 60.0).round )
    -43:       when 1441..2880 then messages[:one_day]
    -44:       else                  format( messages[:x_days], (distance_in_minutes / 1440).round )
    -45:     end
    -46:   end
    -
    -
    -
    -
    - -
    - - - - -
    -

    -substitute all daynames and monthnames with localized names from RUtils -plugin -

    -

    [Source]

    -
    -
    -    # File lib/localization_simplified.rb, line 10
    -10:   def self.localize_strftime(date='%d.%m.%Y', time='')
    -11:     date.gsub!(/%%/, @@ignore)
    -12:     date.gsub!(/%a/, LocalizationSimplified::DateHelper::AbbrDaynames[time.wday])
    -13:     date.gsub!(/%A/, LocalizationSimplified::DateHelper::Daynames[time.wday])
    -14:     date.gsub!(/%b/, LocalizationSimplified::DateHelper::AbbrMonthnames[time.mon])
    -15:     date.gsub!(/%B/, LocalizationSimplified::DateHelper::Monthnames[time.mon])
    -16:     date.gsub!(@@ignore, '%%')
    -17:   end
    -
    -
    -
    -
    - - -
    - - -
    - - - - - - \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/LocalizationSimplified/ActiveRecord.html b/vendor/plugins/l10n-simplified-0.8/rdoc/classes/LocalizationSimplified/ActiveRecord.html deleted file mode 100755 index 88636826..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/LocalizationSimplified/ActiveRecord.html +++ /dev/null @@ -1,376 +0,0 @@ - - - - - - Class: LocalizationSimplified::ActiveRecord - - - - - - - - - - - - - -
    - - - -
    - - - -
    - - -
    - - - - -
    - - -
    -

    Constants

    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ErrorMessages={ :inclusion => "n'est pas inclus dans la liste", :exclusion => "est réservé", :invalid => "est non valide", :confirmation => "ne correspond pas à la confirmation", :accepted => "doit être accepté", :empty => "ne peut pas être vide", :blank => "ne peut pas être laissé à blanc", :too_long => "dépasse la longueur permise (le maximum étant de %d caractères)", :too_short => "est trop court (le minimum étant de %d caractères)", :wrong_length => "n'est pas de la bonne longueur (doit être de %d caractères)", :taken => "as déjà été pris", :not_a_number => "n'est pas un nombre", #Jespers additions: :error_translation => "erreur", :error_header => "%s interdit d'enregistrer %s ", :error_subheader => "Il y a des erreurs dans les champs suivants : "  -ErrorMessages to override default messages in -+ActiveRecord::Errors::@@default_error_messages+ This plugin also replaces -hardcoded 3 text messages :error_translation is inflected using the Rails -inflector. - -

    -Remember to modify the Inflector with your localized translation of -"error" and "errors" in the bottom of this file -

    -
    ErrorMessages={ :inclusion => "is nut inclooded in zee leest", :exclusion => "is reserfed", :invalid => "is infeleed", :confirmation => "duesn't metch cunffurmeshun", :accepted => "moost be-a eccepted", :empty => "cun't be-a impty", :blank => "ees reeequired",# alternate, formulation: "is required" :too_long => "is tuu lung (mexeemoom is %d cherecters)", :too_short => "is tuu shurt (meenimoom is %d cherecters)", :wrong_length => "is zee vrung lengt (shuoold be-a %d cherecters)", :taken => "hes elreedy beee tekee", :not_a_number => "is nut a noomber", #Jespers additions: :error_translation => "irrur", :error_header => "%s pruheebited thees %s frum beeeng sefed", :error_subheader => "Zeere-a vere-a prublems veet zee fullooeeng feeelds:"  -ErrorMessages to override default messages in -+ActiveRecord::Errors::@@default_error_messages+ This plugin also replaces -hardcoded 3 text messages :error_translation is inflected using the Rails -inflector. - -

    -Remember to modify the Inflector with your localized translation of -"error" and "errors" in the bottom of this file -

    -
    ErrorMessages={ :inclusion => "er ikke med på listen", :exclusion => "er et reserveret ord", :invalid => "er ugyldig", :confirmation => "matcher ikke med bekræftelsen", :accepted => "skal accepteres", :empty => "kan ikke være tom", :blank => "skal udfyldes", :too_long => "er for langt (max er %d tegn)", :too_short => "er for kort (minimum er %d tegn)", :wrong_length => "har forkert længde (skal være %d tegn)", :taken => "er allerede taget", :not_a_number => "er ikke et tal", #Jespers additions: :error_translation => "fejl", :error_header => "%s forhindrede %s i at blive gemt", :error_subheader => "Problemer med følgende felter:"  -ErrorMessages to override default messages in -+ActiveRecord::Errors::@@default_error_messages+ This plugin also replaces -hardcoded 3 text messages :error_translation is inflected using the Rails -inflector. - -

    -Remember to modify the Inflector with your localized translation of -"error" and "errors" in the bottom of this file -

    -
    ErrorMessages={ :inclusion => "ist nicht in Liste gültiger Optionen enthalten", :exclusion => "ist reserviert", :invalid => "ist ungültig", :confirmation => "entspricht nicht der Best�tigung", :accepted => "muß akzeptiert werden", :empty => "darf nicht leer sein", :blank => "darf nicht leer sein",# alternate, formulation: "is required" :too_long => "ist zu lang (höchstens %d Zeichen)", :too_short => "ist zu kurz (mindestens %d Zeichen)", :wrong_length => "hat eine falsche Länge (es sollten %d Zeichen sein)", :taken => "ist schon vergeben", :not_a_number => "ist keine Zahl", #Jespers additions: :error_translation => "Fehl", :error_header => "%s verhinderte dieser %s gespeichert werden", :error_subheader => "Es gab probleme mit dem folgenden:"  -ErrorMessages to override default messages in -+ActiveRecord::Errors::@@default_error_messages+ This plugin also replaces -hardcoded 3 text messages :error_translation is inflected using the Rails -inflector. - -

    -Remember to modify the Inflector with your localized translation of -"error" and "errors" in the bottom of this file -

    -
    ErrorMessages={ :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",# alternate, formulation: "is required" :too_long => "is too long (maximum is %d characters)", :too_short => "is too short (minimum is %d characters)", :wrong_length => "is the wrong length (should be %d characters)", :taken => "has already been taken", :not_a_number => "is not a number", #Jespers additions: :error_translation => "error", :error_header => "%s prohibited this %s from being saved", :error_subheader => "There were problems with the following fields:"  -ErrorMessages to override default messages in -+ActiveRecord::Errors::@@default_error_messages+ This plugin also replaces -hardcoded 3 text messages :error_translation is inflected using the Rails -inflector. - -

    -Remember to modify the Inflector with your localized translation of -"error" and "errors" in the bottom of this file -

    -
    ErrorMessages={ :inclusion => "no está incluido en la lista", :exclusion => "está reservado", :invalid => "no es válido", :confirmation => "no coincide con la conformación", :accepted => "debe ser aceptado", :empty => "no puede estar vacío", :blank => "no puede estar en blanco",# alternate, formulation: "is required" :too_long => "es demasiado largo (el máximo es %d caracteres)", :too_short => "es demasiado cordo (el minimo es %d caracteres)", :wrong_length => "is the wrong length (should be %d characters)", :taken => "ya está ocupado", :not_a_number => "no es un número", #Jespers additions: :error_translation => "error", :error_header => "%s no permite guardar %s", :error_subheader => "Ha habido problemas con los siguientes campos:"  -ErrorMessages to override default messages in -+ActiveRecord::Errors::@@default_error_messages+ This plugin also replaces -hardcoded 3 text messages :error_translation is inflected using the Rails -inflector. - -

    -Remember to modify the Inflector with your localized translation of -"error" and "errors" in the bottom of this file -

    -
    ErrorMessages={ :inclusion => "ei löydy listalta", :exclusion => "on varattu", :invalid => "on virheellinen", :confirmation => "ei vastaa vahvistusta", :accepted => "on hyväksyttävä", :empty => "ei voi olla tyhjä", :blank => "ei voi olla tyhjä", :too_long => "on liian pitkä (maksimi on %d merkkiä)", :too_short => "on liian lyhyt (minimi on %d merkkiä)", :wrong_length => "on väärän pituinen (oikea pituus %d merkkiä)", :taken => "on jo varattu", :not_a_number => "ei ole numero", #Jespers additions: :error_translation => "virhe", :error_header => "%s esti tämän %s tallentamisen", :error_subheader => "Seuraavat kentät aiheuttivat ongelmia:"  -ErrorMessages to override default messages in -+ActiveRecord::Errors::@@default_error_messages+ This plugin also replaces -hardcoded 3 text messages :error_translation is inflected using the Rails -inflector. - -

    -Remember to modify the Inflector with your localized translation of -"error" and "errors" in the bottom of this file -

    -
    ErrorMessages={ :inclusion => "n'est pas inclut dans la liste", :exclusion => "est réservé", :invalid => "est invalide", :confirmation => "ne correspond pas à la confirmation", :accepted => "doit être accepté", :empty => "ne peut pas être vide", :blank => "ne peut pas être vierge",# alternate, formulation: "is required" :too_long => "est trop long (%d caractères maximum)", :too_short => "est trop court(%d caractères minimum)", :wrong_length => "n'est pas de la bonne longueur (devrait être de %d caractères)", :taken => "est déjà prit", :not_a_number => "n'est pas le nombre", #Jespers additions: :error_translation => "erreur", :error_header => "%s interdit ce %s d'être sauvegardé", :error_subheader => "Il y a des problèmes avec les champs suivants :"  -ErrorMessages to override default messages in -+ActiveRecord::Errors::@@default_error_messages+ This plugin also replaces -hardcoded 3 text messages :error_translation is inflected using the Rails -inflector. - -

    -Remember to modify the Inflector with your localized translation of -"error" and "errors" in the bottom of this file -

    -
    ErrorMessages={ :inclusion => "n'est pas inclus dans la liste", :exclusion => "est réservé", :invalid => "est non valide", :confirmation => "ne correspond pas à la confirmation", :accepted => "doit être accepté", :empty => "ne peut pas être vide", :blank => "ne peut pas être laissé à blanc", :too_long => "dépasse la longueur permise (le maximum étant de %d caractères)", :too_short => "est trop court (le minimum étant de %d caractères)", :wrong_length => "n'est pas de la bonne longueur (doit être de %d caractères)", :taken => "as déjà été pris", :not_a_number => "n'est pas un nombre", #Jespers additions: :error_translation => "erreur", :error_header => "%s interdit d'enregistrer %s ", :error_subheader => "Il y a des erreurs dans les champs suivants : "
    ErrorMessages={ :inclusion => "zit niet in de lijst", :exclusion => "is gereserveerd", :invalid => "is ongeldig", :confirmation => "is niet hetzelfde als de verificatie", :accepted => "moet worden geaccepteerd", :empty => "mag niet leeg zijn", :blank => "mag niet blanko zijn",# alternate, formulation: "is required" :too_long => "is te land (maximum is %d karakters)", :too_short => "is te kort (minimum is %d karakters)", :wrong_length => "is de verkeerde lengte (dient %d karakters te zijn)", :taken => "is reeds in gebruik", :not_a_number => "is geen nummer", #Jespers additions: :error_translation => "fout", :error_header => "%s zorgen ervoor dat %s niet kan worden opgeslagen", :error_subheader => "Er zijn problemen met de volgende velden:"  -ErrorMessages to override default messages in -+ActiveRecord::Errors::@@default_error_messages+ This plugin also replaces -hardcoded 3 text messages :error_translation is inflected using the Rails -inflector. - -

    -Remember to modify the Inflector with your localized translation of -"error" and "errors" in the bottom of this file -

    -
    ErrorMessages={ :inclusion => "be not included in the list, me hearty", :exclusion => "be reserrrrved", :invalid => "be innvalid, m hearty", :confirmation => "doesn't match confirmation", :accepted => "must be accepted, arrrrh!", :empty => "no nay ne'er be empty", :blank => "no nay be blank, ye scurvy dog!",# alternate, formulation: "is required" :too_long => "be too vastly in length (no more than %d characters or ye drivin' me nuts)", :too_short => "be way too short (at least %d characters or ye drivin' me nuts)", :wrong_length => "be the wrong length (should be %d characters)", :taken => "has already been taken", :not_a_number => "be not a number, matey", #Jespers additions: :error_translation => "errrorrr", :error_header => "Ohoy! %s prohibited ye %s from bein' saved", :error_subheader => "Turn the steering wheeel and corrrect these fields, arrrrh."  -ErrorMessages to override default messages in -+ActiveRecord::Errors::@@default_error_messages+ This plugin also replaces -hardcoded 3 text messages :error_translation is inflected using the Rails -inflector. - -

    -Remember to modify the Inflector with your localized translation of -"error" and "errors" in the bottom of this file -

    -
    ErrorMessages={ :inclusion => "finns inte i listan", :exclusion => "Är reserverat", :invalid => "Är ogiltigt", :confirmation => "stämmer inte övererens", :accepted => "måste vara accepterad", :empty => "för ej vara tom", :blank => "för ej vara blank", :too_long => "Är för lång (maximum är %d tecken)", :too_short => "Är för kort (minimum är %d tecken)", :wrong_length => "har fel längd (ska vara %d tecken)", :taken => "har redan tagits", :not_a_number => "Är ej ett nummer", #Jespers additions: :error_translation => "fel", :error_header => "%s förhindrade %s från at sparse", :error_subheader => "Problemar met dissa felterne:"  -ErrorMessages to override default messages in -+ActiveRecord::Errors::@@default_error_messages+ This plugin also replaces -hardcoded 3 text messages :error_translation is inflected using the Rails -inflector. - -

    -Remember to modify the Inflector with your localized translation of -"error" and "errors" in the bottom of this file -

    -
    ErrorMessages={ :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",# alternate, formulation: "is required" :too_long => "is too long (maximum is %d characters)", :too_short => "is too short (minimum is %d characters)", :wrong_length => "is the wrong length (should be %d characters)", :taken => "has already been taken", :not_a_number => "is not a number", #Jespers additions: :error_translation => "error", :error_header => "%s prohibited this %s from being saved", :error_subheader => "There were problems with the following fields:"  -ErrorMessages to override default messages in -+ActiveRecord::Errors::@@default_error_messages+ This plugin also replaces -hardcoded 3 text messages :error_translation is inflected using the Rails -inflector. - -

    -Remember to modify the Inflector with your localized translation of -"error" and "errors" in the bottom of this file -

    -
    -
    -
    - - - - - - - - - -
    - - - - - - \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/LocalizationSimplified/ArrayHelper.html b/vendor/plugins/l10n-simplified-0.8/rdoc/classes/LocalizationSimplified/ArrayHelper.html deleted file mode 100755 index 85a12c69..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/LocalizationSimplified/ArrayHelper.html +++ /dev/null @@ -1,304 +0,0 @@ - - - - - - Class: LocalizationSimplified::ArrayHelper - - - - - - - - - - - - - -
    - - - -
    - - - -
    - - -
    - - - - -
    - - -
    -

    Constants

    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ToSentenceTexts={ :connector => 'et', :skip_last_comma => false  -Modifies +Array#to_sentence()+ api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Array/Conversions.html#M000274 - -
    ToSentenceTexts={ :connector => 'eend', :skip_last_comma => false  -Modifies +Array#to_sentence()+ api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Array/Conversions.html#M000274 - -
    ToSentenceTexts={ :connector => 'og', :skip_last_comma => true  -Modifies +Array#to_sentence()+ api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Array/Conversions.html#M000274 - -
    ToSentenceTexts={ :connector => 'und', :skip_last_comma => true  -Modifies +Array#to_sentence()+ api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Array/Conversions.html#M000274 - -
    ToSentenceTexts={ :connector => 'and', :skip_last_comma => false  -Modifies +Array#to_sentence()+ api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Array/Conversions.html#M000274 - -
    ToSentenceTexts={ :connector => 'y', :skip_last_comma => true  -Modifies +Array#to_sentence()+ api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Array/Conversions.html#M000274 - -
    ToSentenceTexts={ :connector => 'ja', :skip_last_comma => true  -Modifies +Array#to_sentence()+ api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Array/Conversions.html#M000274 - -
    ToSentenceTexts={ :connector => 'et', :skip_last_comma => false  -Modifies +Array#to_sentence()+ api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Array/Conversions.html#M000274 - -
    ToSentenceTexts={ :connector => 'et', :skip_last_comma => false
    ToSentenceTexts={ :connector => 'en', :skip_last_comma => false  -Modifies +Array#to_sentence()+ api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Array/Conversions.html#M000274 - -
    ToSentenceTexts={ :connector => 'and', :skip_last_comma => false  -Modifies +Array#to_sentence()+ api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Array/Conversions.html#M000274 - -
    ToSentenceTexts={ :connector => 'och', :skip_last_comma => true  -Modifies +Array#to_sentence()+ api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Array/Conversions.html#M000274 - -
    ToSentenceTexts={ :connector => 'and', :skip_last_comma => false  -Modifies +Array#to_sentence()+ api.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Array/Conversions.html#M000274 - -
    -
    -
    - - - - - - - - - -
    - - - - - - \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/LocalizationSimplified/DateHelper.html b/vendor/plugins/l10n-simplified-0.8/rdoc/classes/LocalizationSimplified/DateHelper.html deleted file mode 100755 index 5c6ec900..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/LocalizationSimplified/DateHelper.html +++ /dev/null @@ -1,969 +0,0 @@ - - - - - - Class: LocalizationSimplified::DateHelper - - - - - - - - - - - - - -
    - - - -
    - -
    -

    -Texts to override +distance_of_time_in_words()+ -

    - -
    - - -
    - - -
    - - - - -
    - - -
    -

    Constants

    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Texts={ :less_than_x_seconds => "moins de %d secondes", :half_a_minute => "30 secondes", :less_than_a_minute => "moins d'une minute", :one_minute => "1 minute", :x_minutes => "%d minutes", :one_hour => "environ 1 heure", :x_hours => "environ %d heures", :one_day => "1 jour", :x_days => "%d jours"
    Monthnames=[nil] + %w{Janvier Février Mars Avril Mai Juin Juillet Août Septembre Octobre Novembre Décembre}  -Rails uses Month names in Date and time select -boxes (date_select and datetime_select ) Currently (as of -version 1.1.6), Rails doesn’t use daynames - -
    AbbrMonthnames=[nil] + %w{Jan Fev Mar Avr Mai Jun Jui Aou Sep Oct Nov Dec}
    Daynames=%w{Dimanche Lundi Mardi Mercredi Jeudi Vendredi Samedi}
    AbbrDaynames=%w{Dim Lun Mar Mer Jeu Ven Sam}
    DateFormats={ :default => "%Y-%m-%d", :short => "%b %e", :long => "%B %e, %Y"  -Date and time format syntax explained in www.rubycentral.com/ref/ref_c_time.html#strftime -These are sent to strftime that Ruby’s date and time handlers use -internally Same options as php (that has a better list: www.php.net/strftime ) - -
    TimeFormats={ :default => "%a, %d %b %Y %H:%M:%S %z", :short => "%d %b %H:%M", :long => "%B %d, %Y %H:%M"
    DateSelectOrder={ :order => [:year, :month, :day]  -Set the order of date_select and datetime_select boxes -Note that at present, the current Rails version only supports ordering of -date_select boxes - -
    Texts={ :less_than_x_seconds => "less thun %d secunds", :half_a_minute => "helff a meenoote-a", :less_than_a_minute => "less thun a meenoote-a", :one_minute => "1 meenoote-a", :x_minutes => "%d meenootes", :one_hour => "ebuoot 1 huoor", :x_hours => "ebuoot %d huoors", :one_day => "1 dey", :x_days => "%d deys"
    Monthnames=[nil] + %w{Junooery Febrooery Merch Epreel Mey Joone-a Jooly Oogoost Seeptembooor Ooctuber Nufember Deezember}  -Rails uses Month names in Date and time select -boxes (date_select and datetime_select ) Currently (as of -version 1.1.6), Rails doesn’t use daynames - -
    AbbrMonthnames=[nil] + %w{Jun Feb Mer Epr Mey Joon Jool Oog Sep Ooct Nuf Deez}
    Daynames=%w{Soondey Mundey Tooesdey Vednesdey Thoorsdey Freedey Setoordey}
    AbbrDaynames=%w{Soon Mun Tooe-a Ved Thoo Free Set}
    DateFormats={ :default => "%Y-%m-%d", :short => "%b %e", :long => "%B %e, %Y"  -Date and time format syntax explained in www.rubycentral.com/ref/ref_c_time.html#strftime -These are sent to strftime that Ruby’s date and time handlers use -internally Same options as php (that has a better list: www.php.net/strftime ) - -
    TimeFormats={ :default => "%a, %d %b %Y %H:%M:%S %z", :short => "%d %b %H:%M", :long => "%B %d, %Y %H:%M"
    DateSelectOrder={ :order => [:year, :month, :day]  -Set the order of date_select and datetime_select boxes -Note that at present, the current Rails version only supports ordering of -date_select boxes - -
    Texts={ :less_than_x_seconds => "under %d sekunder", :half_a_minute => "et halvt minut", :less_than_a_minute => "under et minut", :one_minute => "1 minut", :x_minutes => "%d minutter", :one_hour => "omkring en time", :x_hours => "omkring %d timer", :one_day => "1 dag", :x_days => "%d dage"
    Monthnames=[nil] + %w{januar februar marts april maj juni juli august september oktober november december}  -Rails uses Month names in Date and time select -boxes (date_select and datetime_select ) Currently (as of -version 1.1.6), Rails doesn’t use daynames - -
    AbbrMonthnames=[nil] + %w{jan feb mar apr maj jun jul aug sep okt nov dec}
    Daynames=%w{søndag mandag tirsdag onsdag torsdag fredag lørdag}
    AbbrDaynames=%w{søn man tir ons tors fre lør}
    DateFormats={ :default => "%Y-%m-%d", :short => "%e %b", :long => "%e %B, %Y"  -Date and time format syntax explained in www.rubycentral.com/ref/ref_c_time.html#strftime -These are sent to strftime that Ruby’s date and time handlers use -internally Same options as php (that has a better list: www.php.net/strftime ) - -
    TimeFormats={ :default => "%A d. %d %B %Y %H:%M", #no timezone :short => "%d. %b %H:%M", :long => "%d. %B %Y %H:%M"
    DateSelectOrder={ :order => [:day, :month, :year]  -Set the order of date_select and datetime_select boxes -Note that at present, the current Rails version only supports ordering of -date_select boxes - -
    Texts={ :less_than_x_seconds => "weniger als %d Sekunden", :half_a_minute => "hälfte ein Minute", :less_than_a_minute => "weniger als ein Minute", :one_minute => "1 minute", :x_minutes => "%d Minuten", :one_hour => "ungefähr 1 Stunden", :x_hours => "ungefähr %d Stunden", :one_day => "1 Tag", :x_days => "%d Tage"
    Monthnames=[nil] + %w{Januar Februar Märtz April Mai Juni Juli August September Oktober November Dezember}  -Rails uses Month names in Date and time select -boxes (date_select and datetime_select ) Currently (as of -version 1.1.6), Rails doesn’t use daynames - -
    AbbrMonthnames=[nil] + %w{Jan Feb Mrz Apr Mai Jun Jul Aug Sep Oct Nov Dez}
    Daynames=%w{Sontag Montag Dienstag Mittwoch Donnerstag Freitag Samstag}
    AbbrDaynames=%w{Son Mon Die Mit Don Fre Sam}
    DateFormats={ :default => "%Y-%m-%d", :short => "%b %e", :long => "%B %e, %Y"  -Date and time format syntax explained in www.rubycentral.com/ref/ref_c_time.html#strftime -These are sent to strftime that Ruby’s date and time handlers use -internally Same options as php (that has a better list: www.php.net/strftime ) - -
    TimeFormats={ :default => "%a, %d %b %Y %H:%M:%S %z", :short => "%d %b %H:%M", :long => "%B %d, %Y %H:%M"
    DateSelectOrder={ :order => [:day, :month, :year]  -Set the order of date_select and datetime_select boxes -Note that at present, the current Rails version only supports ordering of -date_select boxes - -
    Texts={ :less_than_x_seconds => "less than %d seconds", :half_a_minute => "half a minute", :less_than_a_minute => "less than a minute", :one_minute => "1 minute", :x_minutes => "%d minutes", :one_hour => "about 1 hour", :x_hours => "about %d hours", :one_day => "1 day", :x_days => "%d days"
    Monthnames=[nil] + %w{January February March April May June July August September October November December}  -Rails uses Month names in Date and time select -boxes (date_select and datetime_select ) Currently (as of -version 1.1.6), Rails doesn’t use daynames - -
    AbbrMonthnames=[nil] + %w{Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec}
    Daynames=%w{Sunday Monday Tuesday Wednesday Thursday Friday Saturday}
    AbbrDaynames=%w{Sun Mon Tue Wed Thu Fri Sat}
    DateFormats={ :default => "%Y-%m-%d", :short => "%b %e", :long => "%B %e, %Y"  -Date and time format syntax explained in www.rubycentral.com/ref/ref_c_time.html#strftime -These are sent to strftime that Ruby’s date and time handlers use -internally Same options as php (that has a better list: www.php.net/strftime ) - -
    TimeFormats={ :default => "%a, %d %b %Y %H:%M:%S %z", :short => "%d %b %H:%M", :long => "%B %d, %Y %H:%M"
    DateSelectOrder={ :order => [:year, :month, :day]  -Set the order of date_select and datetime_select boxes -Note that at present, the current Rails version only supports ordering of -date_select boxes - -
    Texts={ :less_than_x_seconds => "menos de %d segundos", :half_a_minute => "medio minuto", :less_than_a_minute => "menos de un minuto", :one_minute => "1 minuto", :x_minutes => "%d minutos", :one_hour => "sobre una hora", :x_hours => "sobre %d horas", :one_day => "un día", :x_days => "%d días"
    Monthnames=[nil] + %w{enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre}  -Rails uses Month names in Date and time select -boxes (date_select and datetime_select ) Currently (as of -version 1.1.6), Rails doesn’t use daynames - -
    AbbrMonthnames=[nil] + %w{ene feb mar abr may jun jul ago sep oct nov dic}
    Daynames=%w{domingo lunes martes miércoles jueves viernes sábado}
    AbbrDaynames=%w{dom lun mar mié jue vie sáb }
    DateFormats={ :default => "%Y-%m-%d", :short => "%b %e", :long => "%B %e, %Y"  -Date and time format syntax explained in www.rubycentral.com/ref/ref_c_time.html#strftime -These are sent to strftime that Ruby’s date and time handlers use -internally Same options as php (that has a better list: www.php.net/strftime ) - -
    TimeFormats={ :default => "%a, %d %b %Y %H:%M:%S %z", :short => "%d %b %H:%M", :long => "%B %d, %Y %H:%M"
    DateSelectOrder={ :order => [:day, :month, :year]  -Set the order of date_select and datetime_select boxes -Note that at present, the current Rails version only supports ordering of -date_select boxes - -
    Texts={ :less_than_x_seconds => "alle %d sekuntia", :half_a_minute => "puoli minuuttia", :less_than_a_minute => "alle minuutti", :one_minute => "1 minuutti", :x_minutes => "%d minuuttia", :one_hour => "noin tunti", :x_hours => "noin %d tuntia", :one_day => "1 päivä", :x_days => "%d päivää"
    Monthnames=[nil] + %w{tammikuu helmikuu maaliskuu huhtikuu toukokuu kesäkuu heinäkuu elokuu syyskuu lokakuu marraskuu joulukuu}  -Rails uses Month names in Date and time select -boxes (date_select and datetime_select ) Currently (as of -version 1.1.6), Rails doesn’t use daynames - -
    AbbrMonthnames=[nil] + %w{tammi helmi maalis huhti touko kesä heinä elo syys loka marras joulu}
    Daynames=%w{sunnuntai maanantai tiistai keskiviikko torstai perjantai lauantai}
    AbbrDaynames=%w{su ma ti ke to pe la}
    DateFormats={ :default => "%e.%m.%Y", :short => "%d.%m.", :long => "%e. %Bta %Y"  -Date and time format syntax explained in www.rubycentral.com/ref/ref_c_time.html#strftime -These are sent to strftime that Ruby’s date and time handlers use -internally Same options as php (that has a better list: www.php.net/strftime ) - -
    TimeFormats={ :default => "%a %Bn %e. %H:%M:%S %Z %Y", :short => "%d.%m.%Y %H:%M", :long => "%a %e. %Bta %Y %T"
    DateSelectOrder={ :order => [:day, :month, :year]  -Set the order of date_select and datetime_select boxes -Note that at present, the current Rails version only supports ordering of -date_select boxes - -
    Texts={ :less_than_x_seconds => "moins de %d secondes", :half_a_minute => "une demi-minute", :less_than_a_minute => "moins d'une minute", :one_minute => "1 minute", :x_minutes => "%d minutes", :one_hour => "à peut près 1 heure", :x_hours => "à peu près %d heures", :one_day => "1 jour", :x_days => "%d jours"
    Monthnames=[nil] + %w{Janvier Février Mars Avril Mai Juin Juillet Août Septembre Octobre Novembre Decembre}  -Rails uses Month names in Date and time select -boxes (date_select and datetime_select ) Currently (as of -version 1.1.6), Rails doesn’t use daynames - -
    AbbrMonthnames=[nil] + %w{Jan Fev Mar Avr Mai Jui Jul Aoû Sep Oct Nov Dec}
    Daynames=%w{Dimanche Lundi Mardi Mercredi Jeudi Vendredi Samedi}
    AbbrDaynames=%w{Dim Lun Mar Mer Jeu Ven Sam}
    DateFormats={ :default => "%Y-%m-%d", :short => "%b %e", :long => "%B %e, %Y"  -Date and time format syntax explained in www.rubycentral.com/ref/ref_c_time.html#strftime -These are sent to strftime that Ruby’s date and time handlers use -internally Same options as php (that has a better list: www.php.net/strftime ) - -
    TimeFormats={ :default => "%a, %d %b %Y %H:%M:%S %z", :short => "%d %b %H:%M", :long => "%B %d, %Y %H:%M"
    DateSelectOrder={ :order => [:year, :month, :day]  -Set the order of date_select and datetime_select boxes -Note that at present, the current Rails version only supports ordering of -date_select boxes - -
    Texts={ :less_than_x_seconds => "moins de %d secondes", :half_a_minute => "30 secondes", :less_than_a_minute => "moins d'une minute", :one_minute => "1 minute", :x_minutes => "%d minutes", :one_hour => "environ 1 heure", :x_hours => "environ %d heures", :one_day => "1 jour", :x_days => "%d jours"
    Monthnames=[nil] + %w{Janvier Février Mars Avril Mai Juin Juillet Août Septembre Octobre Novembre Décembre}
    AbbrMonthnames=[nil] + %w{Jan Fev Mar Avr Mai Jun Jui Aou Sep Oct Nov Dec}
    Daynames=%w{Dimanche Lundi Mardi Mercredi Jeudi Vendredi Samedi}
    AbbrDaynames=%w{Dim Lun Mar Mer Jeu Ven Sam}
    DateFormats={ :default => "%Y-%m-%d", :short => "%b %e", :long => "%B %e, %Y"
    TimeFormats={ :default => "%a, %d %b %Y %H:%M:%S %z", :short => "%d %b %H:%M", :long => "%B %d, %Y %H:%M"
    DateSelectOrder={ :order => [:year, :month, :day]
    Texts={ :less_than_x_seconds => "minder dan %d seconden", :half_a_minute => "een halve minuut", :less_than_a_minute => "minder dan een halve minuut", :one_minute => "1 minuut", :x_minutes => "%d minuten", :one_hour => "ongeveer 1 uur", :x_hours => "ongeveer %d uur", :one_day => "1 dag", :x_days => "%d dagen"
    Monthnames=[nil] + %w{Januari Februari Maart April Mei Juni Juli Augustus September October November December}  -Rails uses Month names in Date and time select -boxes (date_select and datetime_select ) Currently (as of -version 1.1.6), Rails doesn’t use daynames - -
    AbbrMonthnames=[nil] + %w{Jan Feb Mar Apr Mei Jun Jul Aug Sep Oct Nov Dec}
    Daynames=%w{Zondag Maandag Dinsdag Woensdag Donderdag Vrijdag Zaterdag}
    AbbrDaynames=%w{Zo Ma Di Wo Do Vr Za}
    DateFormats={ :default => "%Y-%m-%d", :short => "%b %e", :long => "%B %e, %Y"  -Date and time format syntax explained in www.rubycentral.com/ref/ref_c_time.html#strftime -These are sent to strftime that Ruby’s date and time handlers use -internally Same options as php (that has a better list: www.php.net/strftime ) - -
    TimeFormats={ :default => "%a, %d %b %Y %H:%M:%S %z", :short => "%d %b %H:%M", :long => "%B %d, %Y %H:%M"
    DateSelectOrder={ :order => [:day, :month, :year]  -Set the order of date_select and datetime_select boxes -Note that at present, the current Rails version only supports ordering of -date_select boxes - -
    Texts={ :less_than_x_seconds => "less than %d seconds", :half_a_minute => "half arrr minute", :less_than_a_minute => "less than arrr minute", :one_minute => "1 minute ye landlubber", :x_minutes => "%d minutes accounted ferrrr", :one_hour => "about one hourrr and a bottle of rum", :x_hours => "about %d hourrrs and a bottle of rum", :one_day => "1 day and a dead mans chest arrr", :x_days => "%d days and a ship full of hornpipes"
    Monthnames=[nil] + %w{January February March April May June July August September October November December}  -Rails uses Month names in Date and time select -boxes (date_select and datetime_select ) Currently (as of -version 1.1.6), Rails doesn’t use daynames - -
    AbbrMonthnames=[nil] + %w{Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec}
    Daynames=%w{Sunday Monday Tuesday Wednesday Thurrrrrrsday Frrriday Saturrrrday}
    AbbrDaynames=%w{Sun Mon Tue Wed Thurrrr Frri Sat}
    DateFormats={ :default => "%Y-%m-%d", :short => "%b %e", :long => "%B %e, %Y"  -Date and time format syntax explained in www.rubycentral.com/ref/ref_c_time.html#strftime -These are sent to strftime that Ruby’s date and time handlers use -internally Same options as php (that has a better list: www.php.net/strftime ) - -
    TimeFormats={ :default => "%A, %d %b %Y %H:%M:%S", :short => "%d %b %H:%M", :long => "%B %d, %Y %H:%M"
    DateSelectOrder={ :order => [:year, :month, :day]  -Set the order of date_select and datetime_select boxes -Note that at present, the current Rails version only supports ordering of -date_select boxes - -
    Texts={ :less_than_x_seconds => "mindre än %d sekunder", :half_a_minute => "en halv minut", :less_than_a_minute => "mindre än en minut", :one_minute => "1 minut", :x_minutes => "%d minutter", :one_hour => "ungefär 1 timma", :x_hours => "ungefär %d timmar", :one_day => "1 dygn", :x_days => "%d dygn"
    Monthnames=[nil] + %w{januari februari mars april maj juni juli augusti september oktober november december}  -Rails uses Month names in Date and time select -boxes (date_select and datetime_select ) Currently (as of -version 1.1.6), Rails doesn’t use daynames - -
    AbbrMonthnames=[nil] + %w{jan feb mar apr maj jun jul aug sep okt nov dec}
    Daynames=%w{söndag måndag tisdag onsdag torsdag fredag lördag}
    AbbrDaynames=%w{sön mån tis ons tors fre lör}
    DateFormats={ :default => "%Y-%m-%d", :short => "%b %e", :long => "%B %e, %Y"  -Date and time format syntax explained in www.rubycentral.com/ref/ref_c_time.html#strftime -These are sent to strftime that Ruby’s date and time handlers use -internally Same options as php (that has a better list: www.php.net/strftime ) - -
    TimeFormats={ :default => "%a, %d %b %Y %H:%M:%S %z", :short => "%d %b %H:%M", :long => "%B %d, %Y %H:%M"
    DateSelectOrder={ :order => [:day, :month, :year]  -Set the order of date_select and datetime_select boxes -Note that at present, the current Rails version only supports ordering of -date_select boxes - -
    Texts={ :less_than_x_seconds => "less than %d seconds", :half_a_minute => "half a minute", :less_than_a_minute => "less than a minute", :one_minute => "1 minute", :x_minutes => "%d minutes", :one_hour => "about 1 hour", :x_hours => "about %d hours", :one_day => "1 day", :x_days => "%d days"
    Monthnames=[nil] + %w{January February March April May June July August September October November December}  -Monthnames used by Rails in Date and time select -boxes (date_select and datetime_select ) Currently (as of -version 1.1.6), Rails doesn’t use daynames - -
    AbbrMonthnames=[nil] + %w{Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec}
    Daynames=%w{Sunday Monday Tuesday Wednesday Thursday Friday Saturday}
    AbbrDaynames=%w{Sun Mon Tue Wed Thu Fri Sat}
    DateFormats={ :default => "%Y-%m-%d", :short => "%b %e", :long => "%B %e, %Y"  -Date and time format syntax explained in www.rubycentral.com/ref/ref_c_time.html#strftime -These are sent to strftime that Ruby’s date and time handlers use -internally Same options as php (that has a better list: www.php.net/strftime ) - -
    TimeFormats={ :default => "%a, %d %b %Y %H:%M:%S %z", :short => "%d %b %H:%M", :long => "%B %d, %Y %H:%M"
    DateSelectOrder={ :order => [:year, :month, :day]  -Set the order of date_select and datetime_select boxes -Note that at present, the current Rails version only supports ordering of -date_select boxes - -
    -
    -
    - - - - - - - - - -
    - - - - - - \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/LocalizationSimplified/NumberHelper.html b/vendor/plugins/l10n-simplified-0.8/rdoc/classes/LocalizationSimplified/NumberHelper.html deleted file mode 100755 index 80da877c..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/LocalizationSimplified/NumberHelper.html +++ /dev/null @@ -1,304 +0,0 @@ - - - - - - Class: LocalizationSimplified::NumberHelper - - - - - - - - - - - - - -
    - - - -
    - - - -
    - - -
    - - - - -
    - - -
    -

    Constants

    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    CurrencyOptions={ :unit => "$", :separator => ".", #unit separator (between integer part and fraction part) :delimiter => ",", #delimiter between each group of thousands. Example: 1.234.567 :order => [:unit, :number]  -CurrencyOptions are used as default for +Number#to_currency()+ api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#M000449 - -
    CurrencyOptions={ :unit => "$", :separator => ".", #unit separator (between integer part and fraction part) :delimiter => ",", #delimiter between each group of thousands. Example: 1.234.567 :order => [:unit, :number]  -CurrencyOptions are used as default for +Number#to_currency()+ api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#M000449 - -
    CurrencyOptions={ :unit => "kr. ", :separator => ",", #unit separator (between integer part and fraction part) :delimiter => ".", #delimiter between each group of thousands. Example: 1.234.567 :order => [:number, :unit]  -CurrencyOptions are used as default for +Number#to_currency()+ api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#M000449 - -
    CurrencyOptions={ :unit => "€", :separator => ",", #unit separator (between integer part and fraction part) :delimiter => ".", #delimiter between each group of thousands. Example: 1.234.567 :order => [:unit, :number]  -CurrencyOptions are used as default for +Number#to_currency()+ api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#M000449 - -
    CurrencyOptions={ :unit => "$", :separator => ".", #unit separator (between integer part and fraction part) :delimiter => ",", #delimiter between each group of thousands. Example: 1.234.567 :order => [:unit, :number]  -CurrencyOptions are used as default for +Number#to_currency()+ api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#M000449 - -
    CurrencyOptions={ :unit => "€", :separator => ",", #unit separator (between integer part and fraction part) :delimiter => ".", #delimiter between each group of thousands. Example: 1.234.567 :order => [:unit, :number]  -CurrencyOptions are used as default for +Number#to_currency()+ api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#M000449 - -
    CurrencyOptions={ :unit => "€", :separator => " ", #unit separator (between integer part and fraction part) :delimiter => ",", #delimiter between each group of thousands. Example: 1.234.567 :order => [:unit, :number]  -CurrencyOptions are used as default for +Number#to_currency()+ api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#M000449 - -
    CurrencyOptions={ :unit => "€", :separator => ".", #unit separator (between integer part and fraction part) :delimiter => ",", #delimiter between each group of thousands. Example: 1.234.567 :order => [:unit, :number]  -CurrencyOptions are used as default for +Number#to_currency()+ api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#M000449 - -
    CurrencyOptions={ :unit => "$", :separator => ".", :delimiter => ",", :order => nil
    CurrencyOptions={ :unit => "€", :separator => ".", #unit separator (between integer part and fraction part) :delimiter => ",", #delimiter between each group of thousands. Example: 1.234.567 :order => [:unit, :number]  -CurrencyOptions are used as default for +Number#to_currency()+ api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#M000449 - -
    CurrencyOptions={ :unit => "pieces o' silver", :separator => ".", #unit separator (between integer part and fraction part) :delimiter => ",", #delimiter between each group of thousands. Example: 1.234.567 :order => [:unit, :number]  -CurrencyOptions are used as default for +Number#to_currency()+ api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#M000449 - -
    CurrencyOptions={ :unit => "kr. ", :separator => ",", #unit separator (between integer part and fraction part) :delimiter => ".", #delimiter between each group of thousands. Example: 1.234.567 :order => [:number, :unit]  -CurrencyOptions are used as default for +Number#to_currency()+ api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#M000449 - -
    CurrencyOptions={ :unit => "$", :separator => ".", #unit separator (between integer part and fraction part) :delimiter => ",", #delimiter between each group of thousands. Example: 1.234.567 :order => [:unit, :number]  -CurrencyOptions are used as default for +Number#to_currency()+ api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#M000449 - -
    -
    -
    - - - - - - - - - -
    - - - - - - \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/Time.html b/vendor/plugins/l10n-simplified-0.8/rdoc/classes/Time.html deleted file mode 100755 index 34aab5b9..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/classes/Time.html +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - Class: Time - - - - - - - - - - -
    - - - - - - - - - - - - - - -
    ClassTime
    In: - - lib/localization_simplified.rb - -
    -
    Parent: - Object -
    -
    - - -
    - - - -
    - -
    -

    -Modification of default Time format using -Time.to_formatted_s(:default) Localizes the hash with the formats :default, -:short, :long Usage: <% t = Time.parse(‘2006-12-25 13:55’) -%> <%= t.to_formatted_s(:short) #=> outputs time in localized -format %> <%= t #=> outputs time in localized format %> -

    - -
    - - -
    - -
    -

    Methods

    - -
    - strftime   -
    -
    - -
    - - - - -
    - - - -
    -

    External Aliases

    - -
    - - - - - - -
    strftime->old_strftime
    -
    -
    - - - - - - -
    -

    Public Instance methods

    - -
    - - - - -
    -

    -Pre-translate format of Time before the time string -is translated by strftime. The :default time format is changed by -localizing month and daynames. Also Rails ActiveSupport allow us to modify -the :default timeformatting string. Originally, its :default -=> "%a, %d %b %Y %H:%M:%S %z" (RFC2822 names), but as it -can be modified in this plugin, and we can end up with a different file -format in logfiles, etc -

    -

    [Source]

    -
    -
    -     # File lib/localization_simplified.rb, line 166
    -166:   def strftime(date) 
    -167:     LocalizationSimplified::localize_strftime(date, self)
    -168:     old_strftime(date)
    -169:   end
    -
    -
    -
    -
    - - -
    - - -
    - - - - - - \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/created.rid b/vendor/plugins/l10n-simplified-0.8/rdoc/created.rid deleted file mode 100755 index 2d40c34b..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/created.rid +++ /dev/null @@ -1 +0,0 @@ -Thu Sep 07 11:04:30 Romance Daylight Time 2006 diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/files/README.html b/vendor/plugins/l10n-simplified-0.8/rdoc/files/README.html deleted file mode 100755 index b29a3ba4..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/files/README.html +++ /dev/null @@ -1,384 +0,0 @@ - - - - - - File: README - - - - - - - - - - -
    -

    README

    - - - - - - - - - -
    Path:README -
    Last Update:Thu Sep 07 12:03:56 Romance Daylight Time 2006
    -
    - - -
    - - - -
    - -
    -

    -= Localization Simplified (LocalizationSimplified) -

    -

    -Localization Simplified plugin for Ruby on Rails. Really simple -localization. Written by Jesper Rønn-Jensen ( justaddwater.dk/ ) -

    -

    -The goal is to have a dead simple plugin for one-language (non-english) -Rails applications. Many of the existing localization / -internationalization plugins are too big for this and hard to get started -with. Just dump this plugin in /vendor/plugins/, set your language and off -you go. -

    -

    -Unlike the more advanced plugins, you don’t have to translate -anything in your view files. Just use the standard Rails commands -you’re used to. -

    -

    -The simple approach also makes limits. Make sure you understand them to -decide if this plugin is right for you. -

    -

    -I use this plugin when creating new projects. Then later in the development -process I can decide to change to a more advanced localization plugin (if -necessary) -

    -

    What it does

    -

    -This plugin modifies the following most used helpers for Rails -

    -
      -
    • Sets UTF-8 content-type HTTP header - -
    • -
    • Sets UTF-8 connection to database - -
    • -
    • Localized monthnames on date_select etc. (changing the order of Y-M-D, -where Rails allows) - -
    • -
    • Localized ActiveRecord errors -(and error headings) - -
    • -
    • Localized distance_of_time_in_words - -
    • -
    • Localized to_currency (but not changing the order of unit/currency) - -
    • -
    • Simple pluralization also available in the lang-file (but currently only -used for pluralizing "error"=>"errors" in local -language) - -
    • -
    • Uses standard Rails methods. In this way, there is no tedious rewrite of -localization functions in your view files - -
    • -
    -

    Limitations

    -
      -
    • More advanced features are not likely to be available here. - -
    • -
    • No translation of models or the like. - -
    • -
    • If you want support for multiple languages, use another L10N/I18n plugin, -like GLoc or Globalize - -
    • -
    • No support for re-ordering datetime_select fields or currency indicators. -But date_select IS re-ordered. Currently, Rails lacks support of :order on -these, but it can be done fairly easy and is already implemented in other -frameworks. - -
    • -
    -

    -The reason why I have not reordered the datetime_select fields or currency -is that it will introduce an unnecessary dependency here (because functions -have to be recoded). -

    -

    Supported languages

    -

    -Currently supported languages: -

    -
      -
    • English (for running test cases and comparing to normal texts) - -
    • -
    • German - -
    • -
    • Spanish - -
    • -
    • French - -
    • -
    • Dutch - -
    • -
    • Danish - -
    • -
    • Swedish - -
    • -
    • Finnish - -
    • -
    • Canadian French - -
    • -
    • Swedish Chef, and Pirate talk (just for the fun of it) - -
    • -
    • any other language you want. Just dump your translation in the /lib folder - -
    • -
    -

    Download code

    - -

    Usage:

    -

    -in init.rb, set your language. That’s it. Now your db connection is -running UTF-8 and standard Rails output is localized. -

    -

    -If your view files contains text, you probably also want to save your files -as UTF-8. -

    -

    Installation:

    -

    -1) Just copy this plugin into your /vendor/lib folder 2) Choose your -lang-file in init.rb (default is Danish because I am Danish) -

    -

    -A special note of WARNING: All files here are saved using UTF-8 encoding. -It’s not required for working, I guess, but other encodings could -bring you in trouble. -

    -

    TODO

    -
      -
    • Rake task that modifies all view-files and converts them to UTF-8 - -
    • -
    • Also a task that modifies all generators to use UTF-8 - -
    • -
    • Other helpers that need modification? (your suggestions and contributions -are welcome) - -
    • -
    • Add more test cases to verify it works properly - -
    • -
    • Modify to_boolean_select_tag with localized true/false?? (normally, I would -prefer to use a checkbox for this and NOT a select tag) - -
    • -
    • Verify that the lang-files supplied are relevant - -
    • -
    -

    DONE

    -
      -
    • Added comments in all lang-files, thanks Jarkko Laine for the idea -(2006-09-07) - -
    • -
    • Bugfix: Replaced hardcoded string in distance_of_time_in_words when -:include_seconds was false (2006-08-30) - -
    • -
    • Added Canadian French translation (thanks Daniel) (2006-08-25) - -
    • -
    • Added comments in lang-file for documentation of how to localize -(2006-08-25) - -
    • -
    • Added French translation (thanks Fred Cavazza) (2006-08-25) - -
    • -
    • Added Finnish translation (thanks Jarkko Laine) (2006-08-25) - -
    • -
    • Bugfix re-added HTTP header for UTF-8. Necessary for some lang-files -(2004-08-24) - -
    • -
    • Renamed test files to make rake test command work (2006-08-23) - -
    • -
    • Localized time "Wed Aug 23 12:38:22 Romance Daylight Time 2006" => - -
      -               "onsdag d. 23 august 2006 12:38:22" (Danish)
      -
      -
    • -
    • Reordering of date_select fields (2006-08-23) - -
    • -
    • Test that plugin works with the Rails version it is installed next to -(2006-08-20) - -
    • -
    • Added Dutch translation lang_nl.rb, thanks to Jeroen Houben (2006-08-20) - -
    • -
    • Added Pirate language lang_pirate.rb, thanks to Tobias Michaelsen -(2006-08-18) - -
    • -
    • Added Date and Time#to_formatted_s with -locale specific strings (2006-08-18) - -
    • -
    • Added MIT-license, copied from Ruby on Rails (2006-08-13) - -
    • -
    • Added tests for plugin (2006-08-13) - -
    • -
    • Localized version of Array.to_sentence (2006-08-09) - -
    • -
    • Added test scaffold (2006-08-09) - -
    • -
    • Added swedish language, thanks to Olle Jonsson (2006-08-09) - -
    • -
    • Localized version of to_currency helper (2006-08-07) - -
    • -
    -

    Your help

    -

    -Feel free to use, translate, modify and improve this code. Do send me -translations, improvements, etc. I cannot promise to use it, but chances -are that I will unless it bloats the code here completely or makes code -harder to maintain. -

    -

    -I added FIXME notes in the code to indicate where I also could use help. -

    -

    Credits

    -

    -This plugin uses a few bits and pieces from other Rails plugins GLoc (rubyforge.org/projects/gloc/) -and swe_rails (opensource.ki.se/swe_rails.html) -

    -

    -Created 2006-07-28 by Jesper Rønn-Jensen justaddwater.dk/ -

    - -
    - - -
    - - -
    - - - - -
    - - - - - - - - - - - -
    - - - - - - \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/lang_chef_rb.html b/vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/lang_chef_rb.html deleted file mode 100755 index e24f2ba3..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/lang_chef_rb.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - File: lang_chef.rb - - - - - - - - - - -
    -

    lang_chef.rb

    - - - - - - - - - -
    Path:lib/lang_chef.rb -
    Last Update:Thu Sep 07 11:57:22 Romance Daylight Time 2006
    -
    - - -
    - - - -
    - -
    -

    -lang_chef.rb Swedish Chef language file for Ruby on Rails Translation by -Jesper Rønn-Jensen ( justaddwater.dk/ -), via web based translator -

    - -
    - - -
    - - -
    - - - - -
    - - - - - - - - - - - -
    - - - - - - \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/lang_da_rb.html b/vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/lang_da_rb.html deleted file mode 100755 index 8c82a3e1..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/lang_da_rb.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - File: lang_da.rb - - - - - - - - - - -
    -

    lang_da.rb

    - - - - - - - - - -
    Path:lib/lang_da.rb -
    Last Update:Thu Sep 07 11:55:25 Romance Daylight Time 2006
    -
    - - -
    - - - -
    - -
    -

    -lang_da.rb Danish translation file Translation by Jesper Rønn-Jensen ( justaddwater.dk/ ) -

    - -
    - - -
    - - -
    - - - - -
    - - - - - - - - - - - -
    - - - - - - \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/lang_de_rb.html b/vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/lang_de_rb.html deleted file mode 100755 index 679137c5..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/lang_de_rb.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - File: lang_de.rb - - - - - - - - - - -
    -

    lang_de.rb

    - - - - - - - - - -
    Path:lib/lang_de.rb -
    Last Update:Thu Sep 07 11:58:46 Romance Daylight Time 2006
    -
    - - -
    - - - -
    - -
    -

    -lang_de.rb German translation file Translation by Jesper Rønn-Jensen ( justaddwater.dk/ ), inspired by example -on Rails wiki: wiki.rubyonrails.org/rails/pages/OverridingRailsMessagesInAnotherLanguage -

    - -
    - - -
    - - -
    - - - - -
    - - - - - - - - - - - -
    - - - - - - \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/lang_en_rb.html b/vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/lang_en_rb.html deleted file mode 100755 index bacd1a38..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/lang_en_rb.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - File: lang_en.rb - - - - - - - - - - -
    -

    lang_en.rb

    - - - - - - - - - -
    Path:lib/lang_en.rb -
    Last Update:Thu Sep 07 11:58:04 Romance Daylight Time 2006
    -
    - - -
    - - - -
    - -
    -

    -lang_en.rb English baseline translation file. Comes in handy for testing -purposes -

    - -
    - - -
    - - -
    - - - - -
    - - - - - - - - - - - -
    - - - - - - \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/lang_es_rb.html b/vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/lang_es_rb.html deleted file mode 100755 index b5864e72..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/lang_es_rb.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - File: lang_es.rb - - - - - - - - - - -
    -

    lang_es.rb

    - - - - - - - - - -
    Path:lib/lang_es.rb -
    Last Update:Thu Sep 07 11:59:29 Romance Daylight Time 2006
    -
    - - -
    - - - -
    - -
    -

    -lang_es.rb Spanish translation file. Translation by Luis Villa del Campo -(www.grancomo.com) -

    - -
    - - -
    - - -
    - - - - -
    - - - - - - - - - - - -
    - - - - - - \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/lang_nl_rb.html b/vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/lang_nl_rb.html deleted file mode 100755 index c86836c4..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/lang_nl_rb.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - File: lang_nl.rb - - - - - - - - - - -
    -

    lang_nl.rb

    - - - - - - - - - -
    Path:lib/lang_nl.rb -
    Last Update:Thu Sep 07 11:50:53 Romance Daylight Time 2006
    -
    - - -
    - - - -
    - -
    -

    -lang_nl.rb Dutch translation by Jeroen Houben -

    - -
    - - -
    - - -
    - - - - -
    - - - - - - - - - - - -
    - - - - - - \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/lang_pirate_rb.html b/vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/lang_pirate_rb.html deleted file mode 100755 index 273ba1f4..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/lang_pirate_rb.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - File: lang_pirate.rb - - - - - - - - - - -
    -

    lang_pirate.rb

    - - - - - - - - - -
    Path:lib/lang_pirate.rb -
    Last Update:Thu Sep 07 11:52:50 Romance Daylight Time 2006
    -
    - - -
    - - - -
    - -
    -

    -lang_pirate.rb Pirate baseline translation file. Translated by Tobias -Michaelsen , additions by Jesper Rønn-Jensen ( justaddwater.dk/ ) -

    - -
    - - -
    - - -
    - - - - -
    - - - - - - - - - - - -
    - - - - - - \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/lang_se_rb.html b/vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/lang_se_rb.html deleted file mode 100755 index c4ac5ef8..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/lang_se_rb.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - File: lang_se.rb - - - - - - - - - - -
    -

    lang_se.rb

    - - - - - - - - - -
    Path:lib/lang_se.rb -
    Last Update:Thu Sep 07 11:54:24 Romance Daylight Time 2006
    -
    - - -
    - - - -
    - -
    -

    -lang_se.rb Swedish translation file. Translation from plugin swe_rails by -Ola Bini ( ola-bini.blogspot.com/ ) and Olle -Jonsson ( olleolleolle.dk ) -

    - -
    - - -
    - - -
    - - - - -
    - - - - - - - - - - - -
    - - - - - - \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/localization_simplified_rb.html b/vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/localization_simplified_rb.html deleted file mode 100755 index 21f966f9..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/files/lib/localization_simplified_rb.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - File: localization_simplified.rb - - - - - - - - - - -
    -

    localization_simplified.rb

    - - - - - - - - - -
    Path:lib/localization_simplified.rb -
    Last Update:Fri Sep 01 14:23:46 Romance Daylight Time 2006
    -
    - - -
    - - - -
    - -
    -

    -LocalizationSimplified -Really simple localization for Rails By Jesper Rønn-Jensen ( justaddwater.dk/ ) Plugin available at rubyforge.org/projects/l10n-simplified/ -

    - -
    - - -
    - - -
    - - - - -
    - - - - - - - - - - - -
    - - - - - - \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/fr_class_index.html b/vendor/plugins/l10n-simplified-0.8/rdoc/fr_class_index.html deleted file mode 100755 index 7a72c7e8..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/fr_class_index.html +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - - - Classes - - - - - - - - \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/fr_file_index.html b/vendor/plugins/l10n-simplified-0.8/rdoc/fr_file_index.html deleted file mode 100755 index 3068bad8..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/fr_file_index.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - Files - - - - - - - - \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/fr_method_index.html b/vendor/plugins/l10n-simplified-0.8/rdoc/fr_method_index.html deleted file mode 100755 index 09e876ee..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/fr_method_index.html +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - Methods - - - - - - - - \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/index.html b/vendor/plugins/l10n-simplified-0.8/rdoc/index.html deleted file mode 100755 index 622c2477..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/index.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - LocalizationSimplified - - - - - - - - - - - \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/rdoc/rdoc-style.css b/vendor/plugins/l10n-simplified-0.8/rdoc/rdoc-style.css deleted file mode 100755 index fbf7326a..00000000 --- a/vendor/plugins/l10n-simplified-0.8/rdoc/rdoc-style.css +++ /dev/null @@ -1,208 +0,0 @@ - -body { - font-family: Verdana,Arial,Helvetica,sans-serif; - font-size: 90%; - margin: 0; - margin-left: 40px; - padding: 0; - background: white; -} - -h1,h2,h3,h4 { margin: 0; color: #efefef; background: transparent; } -h1 { font-size: 150%; } -h2,h3,h4 { margin-top: 1em; } - -a { background: #eef; color: #039; text-decoration: none; } -a:hover { background: #039; color: #eef; } - -/* Override the base stylesheet's Anchor inside a table cell */ -td > a { - background: transparent; - color: #039; - text-decoration: none; -} - -/* and inside a section title */ -.section-title > a { - background: transparent; - color: #eee; - text-decoration: none; -} - -/* === Structural elements =================================== */ - -div#index { - margin: 0; - margin-left: -40px; - padding: 0; - font-size: 90%; -} - - -div#index a { - margin-left: 0.7em; -} - -div#index .section-bar { - margin-left: 0px; - padding-left: 0.7em; - background: #ccc; - font-size: small; -} - - -div#classHeader, div#fileHeader { - width: auto; - color: white; - padding: 0.5em 1.5em 0.5em 1.5em; - margin: 0; - margin-left: -40px; - border-bottom: 3px solid #006; -} - -div#classHeader a, div#fileHeader a { - background: inherit; - color: white; -} - -div#classHeader td, div#fileHeader td { - background: inherit; - color: white; -} - - -div#fileHeader { - background: #057; -} - -div#classHeader { - background: #048; -} - - -.class-name-in-header { - font-size: 180%; - font-weight: bold; -} - - -div#bodyContent { - padding: 0 1.5em 0 1.5em; -} - -div#description { - padding: 0.5em 1.5em; - background: #efefef; - border: 1px dotted #999; -} - -div#description h1,h2,h3,h4,h5,h6 { - color: #125;; - background: transparent; -} - -div#validator-badges { - text-align: center; -} -div#validator-badges img { border: 0; } - -div#copyright { - color: #333; - background: #efefef; - font: 0.75em sans-serif; - margin-top: 5em; - margin-bottom: 0; - padding: 0.5em 2em; -} - - -/* === Classes =================================== */ - -table.header-table { - color: white; - font-size: small; -} - -.type-note { - font-size: small; - color: #DEDEDE; -} - -.xxsection-bar { - background: #eee; - color: #333; - padding: 3px; -} - -.section-bar { - color: #333; - border-bottom: 1px solid #999; - margin-left: -20px; -} - - -.section-title { - background: #79a; - color: #eee; - padding: 3px; - margin-top: 2em; - margin-left: -30px; - border: 1px solid #999; -} - -.top-aligned-row { vertical-align: top } -.bottom-aligned-row { vertical-align: bottom } - -/* --- Context section classes ----------------------- */ - -.context-row { } -.context-item-name { font-family: monospace; font-weight: bold; color: black; } -.context-item-value { font-size: small; color: #448; } -.context-item-desc { color: #333; padding-left: 2em; } - -/* --- Method classes -------------------------- */ -.method-detail { - background: #efefef; - padding: 0; - margin-top: 0.5em; - margin-bottom: 1em; - border: 1px dotted #ccc; -} -.method-heading { - color: black; - background: #ccc; - border-bottom: 1px solid #666; - padding: 0.2em 0.5em 0 0.5em; -} -.method-signature { color: black; background: inherit; } -.method-name { font-weight: bold; } -.method-args { font-style: italic; } -.method-description { padding: 0 0.5em 0 0.5em; } - -/* --- Source code sections -------------------- */ - -a.source-toggle { font-size: 90%; } -div.method-source-code { - background: #262626; - color: #ffdead; - margin: 1em; - padding: 0.5em; - border: 1px dashed #999; - overflow: hidden; -} - -div.method-source-code pre { color: #ffdead; overflow: hidden; } - -/* --- Ruby keyword styles --------------------- */ - -.standalone-code { background: #221111; color: #ffdead; overflow: hidden; } - -.ruby-constant { color: #7fffd4; background: transparent; } -.ruby-keyword { color: #00ffff; background: transparent; } -.ruby-ivar { color: #eedd82; background: transparent; } -.ruby-operator { color: #00ffee; background: transparent; } -.ruby-identifier { color: #ffdead; background: transparent; } -.ruby-node { color: #ffa07a; background: transparent; } -.ruby-comment { color: #b22222; font-weight: bold; background: transparent; } -.ruby-regexp { color: #ffa07a; background: transparent; } -.ruby-value { color: #7fffd4; background: transparent; } \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/tasks/localization_simplified_tasks.rake b/vendor/plugins/l10n-simplified-0.8/tasks/localization_simplified_tasks.rake deleted file mode 100755 index ae604736..00000000 --- a/vendor/plugins/l10n-simplified-0.8/tasks/localization_simplified_tasks.rake +++ /dev/null @@ -1,7 +0,0 @@ -# desc "Explaining what the task does" -# task :localization_simplified do -# # FIXME: Add task to convert all line-endings to UNIX -# # FIXME: Add task to convert all line-endings to DOS -# # FIXME: Add task to convert all files in project to UTF-8 -# # FIXME: Add task to convert all files in project to ASCII (standard) -# end \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/test/helper_tests.rhtml b/vendor/plugins/l10n-simplified-0.8/test/helper_tests.rhtml deleted file mode 100755 index 51666121..00000000 --- a/vendor/plugins/l10n-simplified-0.8/test/helper_tests.rhtml +++ /dev/null @@ -1,175 +0,0 @@ -

    Use this page to test helpers of the Localization Simplified plugin. -Put this file in your applications view directory, add a controller action "helper_tests", and view this page

    -

    Sentence with UTF-8 characters: Café, Danish(æ,ø,å), Swedish(ä,ö,å), Spanish: (ñ)

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    fnresultexpected
    time_ago_in_words(3.seconds.ago, true)<%= time_ago_in_words(3.seconds.ago, true) %>'less than 5 seconds'
    time_ago_in_words(9.seconds.ago, true)<%= time_ago_in_words(9.seconds.ago, true) %>'less than 10 seconds'
    time_ago_in_words(20.seconds.ago, true)<%= time_ago_in_words(20.seconds.ago, true) %>'less than 20 seconds'
    time_ago_in_words(31.seconds.ago, true)<%= time_ago_in_words(31.seconds.ago, true) %>'half a minute'
    time_ago_in_words(50.seconds.ago, true)<%= time_ago_in_words(50.seconds.ago, true) %>'less than a minute'
    time_ago_in_words(80.seconds.ago, true)<%= time_ago_in_words(80.seconds.ago, true) %>'1 minute'
    time_ago_in_words(4.minutes.ago, true)<%= time_ago_in_words(4.minutes.ago, true) %>'4 minutes'
    time_ago_in_words(50.minutes.ago, true)<%= time_ago_in_words(50.minutes.ago, true) %>'about 1 hour'
    time_ago_in_words(4.hours.ago, true)<%= time_ago_in_words(4.hours.ago, true) %>'about 4 hours'
    time_ago_in_words(1.day.ago, true)<%= time_ago_in_words(1.day.ago, true) %>'1 day'
    time_ago_in_words(4.days.ago, true)<%= time_ago_in_words(4.days.ago, true) %>'4 days'
    time_ago_in_words(1.month.ago, true)<%= time_ago_in_words(1.month.ago, true) %>'1 month'
    time_ago_in_words(4.months.ago, true)<%= time_ago_in_words(4.months.ago, true) %>'4 months'
    time_ago_in_words(13.months.ago, true)<%= time_ago_in_words(13.months.ago, true) %>'1 year'
    time_ago_in_words(26.months.ago, true)<%= time_ago_in_words(26.months.ago, true) %>'2 years'
    -

    number_to_currency test:

    -
      -
    • <%= number_to_currency(1008323) %>
    • -
    • <%= number_to_currency(10083.777) %>
    • -
    • <%= number_to_currency(0.2) %>
    • -
    -

    Array.to_sentence test: [1,2,3].to_sentence: "<%= [1,2,3].to_sentence %>" (expected "1,2, and 3")

    - - <% t = Time.parse('2006-12-25 11:55') -%> - <% d = Date.parse('2006-12-25 11:55') -%> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Formatted time:resultexpected
    t.to_formatted_s()<%= t.to_formatted_s() %>Mon Dec 25 11:55:00 Romance Standard Time 2006
    t.to_formatted_s(:default)<%= t.to_formatted_s(:default) %>Mon Dec 25 11:55:00 Romance Standard Time 2006
    t.to_formatted_s(:long)<%= t.to_formatted_s(:long) %>December 25, 2006 11:55
    t.to_formatted_s(:short)<%= t.to_formatted_s(:short) %> 25 Dec 11:55
    Formatted date:resultexpected
    d.to_formatted_s()<%= d.to_formatted_s() %>2006-12-25
    d.to_formatted_s(:default)<%= d.to_formatted_s(:default) %>2006-12-25
    d.to_formatted_s(:long)<%= d.to_formatted_s(:long) %>December 25, 2006
    d.to_formatted_s(:short)<%= d.to_formatted_s(:short) %> 25 Dec
    - -

    date_select and datetime_select tests

    -<% - - -%> -

    -
    -<%= date_select :testmodel, :date %> -

    - -

    -
    -<%= datetime_select :testmodel, :datetime %> -

    - -

    -
    -<%= -# this gives exception -# select_date :testmodel, :select_date -%> -

    - -

    String concatenation tests

    -

    truncate 'Iñtërnâtiônàlizætiøn', 12: <%= truncate 'Iñtërnâtiônàlizætiøn', 12 %> (expected: "Iñtërnâti…")

    \ No newline at end of file diff --git a/vendor/plugins/l10n-simplified-0.8/test/test_the_hooks_test.rb b/vendor/plugins/l10n-simplified-0.8/test/test_the_hooks_test.rb deleted file mode 100755 index 38206c18..00000000 --- a/vendor/plugins/l10n-simplified-0.8/test/test_the_hooks_test.rb +++ /dev/null @@ -1,115 +0,0 @@ -# run from command line "ruby test_the_hooks.rb" -# -# These tests are testing hooks that this plugin modifies -# These tests are written to test standard ruby/rails functions -# Note that it requires access to the standard ruby/rails plugins that it modifies - -# require standard gems -require 'rubygems' -require 'test/unit' - -require 'active_record' -require 'action_view' -require 'active_support' - - -require File.dirname(__FILE__) + '/../lib/lang_en' - - -class LocalizationSimplifiedTest < Test::Unit::TestCase - include LocalizationSimplified - - - def test_language_file_en - assert_equal "en",LocalizationSimplified::About[:lang] - assert_kind_of Class,LocalizationSimplified::About.class - assert_kind_of Class,LocalizationSimplified::ActiveRecord::ErrorMessages.class - assert_kind_of Class,LocalizationSimplified::DateHelper::Texts.class - assert_kind_of Class,LocalizationSimplified::NumberHelper::CurrencyOptions.class - assert_kind_of Class,LocalizationSimplified::ArrayHelper::ToSentenceTexts.class - end - - def test_default_active_record_exists - assert ::ActiveRecord - assert ::ActiveRecord::Errors - assert_kind_of Hash, ::ActiveRecord::Errors.default_error_messages - end - - def test_default_active_record_hooks - hook = ::ActiveRecord::Errors.default_error_messages - expect = { - :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 %d characters)", - :too_short => "is too short (minimum is %d characters)", - :wrong_length => "is the wrong length (should be %d characters)", - :taken => "has already been taken", - :not_a_number => "is not a number", - #Jespers additions: - :error_translation => "error", - :error_header => "%s prohibited this %s from being saved", - :error_subheader => "There were problems with the following fields:" - } - - assert_equal expect[:inclusion], hook[:inclusion] - assert_equal expect[:exclusion], hook[:exclusion] - assert_equal expect[:invalid], hook[:invalid] - assert_equal expect[:confirmation], hook[:confirmation] - assert_equal expect[:accepted], hook[:accepted] - assert_equal expect[:empty], hook[:empty] - assert_equal expect[:blank], hook[:blank] - assert_equal expect[:too_long], hook[:too_long] - assert_equal expect[:too_short], hook[:too_short] - assert_equal expect[:wrong_length], hook[:wrong_length] - assert_equal expect[:taken], hook[:taken] - assert_equal expect[:not_a_number], hook[:not_a_number] - end - - def test_plugin_hooks_dont exist - hook = ::ActiveRecord::Errors.default_error_messages - - #plugin s additions is supposed to not exist on ActiveRecord before plugin is added - assert_nil hook[:error_translation], "Should fail if plugin already added" - assert_nil hook[:error_header], "Should fail if plugin already added" - assert_nil hook[:error_subheader], "Should fail if plugin already added" - end - - - - def test_number_to_currency - assert ActionView::Helpers::NumberHelper - obj = ActionView::Base.new - assert_respond_to obj, 'number_to_currency' - #assert_nil obj.orig_number_to_currency #FIXME this line makes assertion fail. Should be nil. - assert_equal "$1,234,567,890.51", obj.number_to_currency(1234567890.506) - end - - def test_to_sentence - assert ActiveSupport::CoreExtensions::Array::Conversions - a = Array.new - assert_respond_to a, 'to_sentence' - assert_equal "1, 2, and 3", [1,2,3].to_sentence - end - - def test_date_helpers - assert ActionView::Helpers::NumberHelper - a = ActionView::Base.new - assert 'less than 5 seconds' , a.time_ago_in_words(3.seconds.ago, true) - assert 'less than 10 seconds' , a.time_ago_in_words(9.seconds.ago, true) - assert 'less than 20 seconds' , a.time_ago_in_words(20.seconds.ago, true) - assert 'half a minute' , a.time_ago_in_words(31.seconds.ago, true) - assert 'less than a minute' , a.time_ago_in_words(50.seconds.ago, false) - assert 'less than a minute' , a.time_ago_in_words(50.seconds.ago) - assert '1 minute' , a.time_ago_in_words(80.seconds.ago) - assert '4 minutes' , a.time_ago_in_words(4.minutes.ago) - assert 'about 1 hour' , a.time_ago_in_words(50.minutes.ago) - assert '4 hours' , a.time_ago_in_words(4.hours.ago) - assert '1 day' , a.time_ago_in_words(1.day.ago) - assert '4 days' , a.time_ago_in_words(4.days.ago) - end -end diff --git a/vendor/plugins/l10n-simplified-0.8/test/test_the_plugin_test.rb b/vendor/plugins/l10n-simplified-0.8/test/test_the_plugin_test.rb deleted file mode 100755 index 94e300b6..00000000 --- a/vendor/plugins/l10n-simplified-0.8/test/test_the_plugin_test.rb +++ /dev/null @@ -1,117 +0,0 @@ -# run from command line: "ruby test_the_plugin.rb" -# -# Testing hooks that this plugin modifies -# These tests are written to test standard ruby/rails functions -# Note that it requires access to the standard ruby/rails plugins that it modifies - -# require standard gems -require 'rubygems' -require 'test/unit' - -require 'active_record' -require 'action_view' -require 'active_support' - -# FIXME: I want a way to test all languages at a time. -# Currently this $language flag has to be changed with every test run -$language = "en" unless $language -require File.dirname(__FILE__) + '/../lib/lang_' + $language -require File.dirname(__FILE__) + '/../lib/localization_simplified' - - -class LocalizationSimplifiedTest < Test::Unit::TestCase - include LocalizationSimplified - def setup - @languages=%w{chef da de en es se} #languages that should be tested - end - - def test_language_file - assert_equal $language,LocalizationSimplified::About[:lang] - assert_kind_of Class,LocalizationSimplified::About.class - assert_kind_of Class,LocalizationSimplified::ActiveRecord::ErrorMessages.class - assert_kind_of Class,LocalizationSimplified::DateHelper::Texts.class - assert_kind_of Class,LocalizationSimplified::NumberHelper::CurrencyOptions.class - assert_kind_of Class,LocalizationSimplified::ArrayHelper::ToSentenceTexts.class - end - - - def test_active_record_hooks_should_be_present - expect =LocalizationSimplified::ActiveRecord::ErrorMessages - model = ::ActiveRecord::Errors.default_error_messages - assert_equal expect[:inclusion], model[:inclusion] - assert_equal expect[:exclusion], model[:exclusion] - assert_equal expect[:invalid], model[:invalid] - assert_equal expect[:confirmation], model[:confirmation] - assert_equal expect[:accepted], model[:accepted] - assert_equal expect[:empty], model[:empty] - assert_equal expect[:blank], model[:blank] - assert_equal expect[:too_long], model[:too_long] - assert_equal expect[:too_short], model[:too_short] - assert_equal expect[:wrong_length], model[:wrong_length] - assert_equal expect[:taken], model[:taken] - assert_equal expect[:not_a_number], model[:not_a_number] - - #expect's additions is supposed to not exist on ActiveRecord before expect is added - assert_equal expect[:error_translation], model[:error_translation] - assert_equal expect[:error_header], model[:error_header] - assert_equal expect[:error_subheader], model[:error_subheader] - end - - def test_active_record_is_loaded_with_plugin_hooks - assert_not_nil ::ActiveRecord::Errors.default_error_messages[:error_translation] - assert_not_nil ::ActiveRecord::Errors.default_error_messages[:error_header] - assert_not_nil ::ActiveRecord::Errors.default_error_messages[:error_subheader] - end - - - #note that this test will fail if currency format is different from "$1.234,00" - def test_number_to_currency - assert ActionView::Helpers::NumberHelper - obj = ActionView::Base.new - assert_respond_to obj, 'number_to_currency' - assert_respond_to obj, 'orig_number_to_currency' - - assert_equal "$1,234,567,890.51", obj.number_to_currency(1234567890.506), "NOTE: This currency test should fail if locale has different currency format" - end - - def test_to_sentence - options =LocalizationSimplified::ArrayHelper::ToSentenceTexts - arr = [1,2,3] - s = "1, 2" + ("," unless options[:skip_last_comma]).to_s + " "+ options[:connector].to_s + " 3" - assert_equal s, arr.to_sentence - # FIXME: test below fails for some reason I cannot understand - # assert_respond_to arr, orig_to_sentence - end - - def test_time_ago_in_words - assert ActionView::Helpers::NumberHelper - a = ActionView::Base.new - messages =LocalizationSimplified::DateHelper::Texts - assert messages[:less_than_a_minute] , a.time_ago_in_words(3.seconds.ago, false) - assert format( messages[:less_than_x_seconds], 5 ) , a.time_ago_in_words(3.seconds.ago, true) - assert format( messages[:less_than_x_seconds], 10 ) , a.time_ago_in_words(9.seconds.ago, true) - assert format( messages[:less_than_x_seconds], 20 ) , a.time_ago_in_words(20.seconds.ago, true) - assert messages[:half_a_minute] , a.time_ago_in_words(31.seconds.ago, true) - assert messages[:less_than_a_minute] , a.time_ago_in_words(50.seconds.ago) - assert messages[:one_minute] , a.time_ago_in_words(80.seconds.ago) - assert messages[:one_hour] , a.time_ago_in_words(50.minutes.ago) - assert messages[:one_day] , a.time_ago_in_words(1.day.ago) - assert messages[:one_month] , a.time_ago_in_words(1.month.ago) - assert messages[:one_year] , a.time_ago_in_words(1.year.ago) - # FIXME: 3 tests below are not tested, as they require more logic in the test - # Please fix, if possible and simple -# assert format(messages[:x_minutes], distance_in_minutes) , a.time_ago_in_words(4.minutes.ago) -# assert format( messages[:x_hours], (distance_in_minutes.to_f / 60.0).round ) , a.time_ago_in_words(4.hours.ago) -# assert format( messages[:x_days], (distance_in_minutes / 1440).round ) , a.time_ago_in_words(4.days.ago) - end - - def test_time_is_localized - t = Time.parse('2006-08-23 11:55:44') - assert_equal "Wed Aug 23 11:55:44 Romance Daylight Time 2006", t.to_s, "NOTE: This test should fail if locale has different daynames, monthnames, timezone" - - end - - def test_date_is_localized - - end -end