Unverified Commit 2b3bbc1a authored by Benjamin Neff's avatar Benjamin Neff

Merge branch 'release/0.7.6.0'

parents 42ceb8b3 097754e4
......@@ -3,6 +3,7 @@ AllCops:
Exclude:
- "bin/**/*"
- "db/schema.rb"
- "config/locales/cldr/plurals.rb"
Rails:
Enabled: true
......
# 0.7.6.0
## Refactor
* Add unique index to poll participations on `poll_id` and `author_id` [#7798](https://github.com/diaspora/diaspora/pull/7798)
* Add 'completed at' date to account migrations [#7805](https://github.com/diaspora/diaspora/pull/7805)
* Handle duplicates for TagFollowing on account merging [#7807](https://github.com/diaspora/diaspora/pull/7807)
* Add link to the pod in the email footer [#7814](https://github.com/diaspora/diaspora/pull/7814)
## Bug fixes
* Fix compatibility with newer glibc versions [#7828](https://github.com/diaspora/diaspora/pull/7828)
* Allow fonts to be served from asset host in CSP [#7825](https://github.com/diaspora/diaspora/pull/7825)
## Features
* Support fetching StatusMessage by Poll GUID [#7815](https://github.com/diaspora/diaspora/pull/7815)
* Always include link to diaspora in facebook cross-posts [#7774](https://github.com/diaspora/diaspora/pull/7774)
# 0.7.5.0
## Refactor
......
......@@ -348,7 +348,7 @@ GEM
to_regexp (~> 0.2.1)
jwt (1.5.6)
kgio (2.11.2)
kostya-sigar (2.0.0)
kostya-sigar (2.0.4)
leaflet-rails (1.3.1)
rails (>= 4.2.0)
listen (3.1.5)
......@@ -475,7 +475,7 @@ GEM
byebug (~> 10.0)
pry (~> 0.10)
public_suffix (3.0.2)
rack (2.0.4)
rack (2.0.5)
rack-cors (1.0.2)
rack-google-analytics (1.2.0)
actionpack
......@@ -669,7 +669,7 @@ GEM
spring (>= 0.9.1)
spring-commands-rspec (1.0.4)
spring (>= 0.9.1)
sprockets (3.7.1)
sprockets (3.7.2)
concurrent-ruby (~> 1.0)
rack (> 1, < 3)
sprockets-rails (3.2.1)
......@@ -906,4 +906,4 @@ DEPENDENCIES
will_paginate (= 3.1.6)
BUNDLED WITH
1.16.1
1.16.2
# diaspora*
# diaspora\*
### A privacy-aware, distributed, open source social network
**master:** [![Build Status master](https://secure.travis-ci.org/diaspora/diaspora.svg?branch=master)](http://travis-ci.org/diaspora/diaspora)
......@@ -6,7 +6,6 @@
[![Coverage Status next-minor](https://coveralls.io/repos/github/diaspora/diaspora/badge.svg?branch=next-minor)](https://coveralls.io/github/diaspora/diaspora?branch=next-minor)|
**develop:** [![Build Status develop](https://secure.travis-ci.org/diaspora/diaspora.svg?branch=develop)](http://travis-ci.org/diaspora/diaspora)
[![Coverage Status develop](https://coveralls.io/repos/github/diaspora/diaspora/badge.svg?branch=develop)](https://coveralls.io/github/diaspora/diaspora?branch=develop) |
[![Dependency Status](https://gemnasium.com/badges/github.com/diaspora/diaspora.svg)](https://gemnasium.com/diaspora/diaspora)
[![Code Climate](https://codeclimate.com/github/diaspora/diaspora/badges/gpa.svg)](https://codeclimate.com/github/diaspora/diaspora)
[Project site](https://diasporafoundation.org) |
......@@ -18,9 +17,9 @@
## Installation
You don't have to install diaspora* to use the network. There are many servers connected to diaspora*s network which are open to anyone, and you can create an account on one of these servers. Have a look at our [tips for finding a home](https://wiki.diasporafoundation.org/Choosing_a_pod), or you can just go straight to the [list of open servers](http://podupti.me) to sign up.
You don't have to install diaspora\* to use the network. There are many servers connected to diaspora\*s network which are open to anyone, and you can create an account on one of these servers. Have a look at our [tips for finding a home](https://wiki.diasporafoundation.org/Choosing_a_pod), or you can just go straight to the [list of open servers](http://podupti.me) to sign up.
Want to own your data and install diaspora*? Whether you just want to try it out, want to install it on your server or want to contribute and need a development setup, our [installation guides](https://wiki.diasporafoundation.org/Installation) will get you started!
Want to own your data and install diaspora\*? Whether you just want to try it out, want to install it on your server or want to contribute and need a development setup, our [installation guides](https://wiki.diasporafoundation.org/Installation) will get you started!
## Questions?
......
......@@ -40,10 +40,11 @@ class AccountMigration < ApplicationRecord
dispatch if locally_initiated?
dispatch_contacts if remotely_initiated?
update(completed_at: Time.zone.now)
end
def performed?
old_person.closed_account?
!completed_at.nil?
end
# We assume that migration message subscribers are people that are subscribed to a new user profile updates.
......@@ -193,6 +194,10 @@ class AccountMigration < ApplicationRecord
.joins("INNER JOIN contacts as c2 ON (contacts.person_id = c2.person_id AND contacts.user_id=#{old_user.id} AND"\
" c2.user_id=#{new_user.id})")
.destroy_all
TagFollowing
.joins("INNER JOIN tag_followings as t2 ON (tag_followings.tag_id = t2.tag_id AND"\
" tag_followings.user_id=#{old_user.id} AND t2.user_id=#{new_user.id})")
.destroy_all
end
def update_person_references
......
......@@ -15,6 +15,8 @@ class Poll < ApplicationRecord
validate :enough_poll_answers
validates :question, presence: true
scope :all_public, -> { joins(:status_message).where(posts: {public: true}) }
self.include_root_in_json = false
def enough_poll_answers
......
......@@ -24,14 +24,18 @@ class Services::Facebook < Service
def create_post_params(post)
message = post.message.plain_text_without_markdown
if post.photos.any?
message += " " + short_post_url(post, protocol: AppConfig.pod_uri.scheme,
host: AppConfig.pod_uri.authority)
end
{message: message,
access_token: access_token,
link: post.message.urls.first
post_url = short_post_url(post, protocol: AppConfig.pod_uri.scheme, host: AppConfig.pod_uri.authority)
message = if message.empty?
post_url
else
"#{message} (via #{post_url})"
end
{
message: message,
access_token: access_token,
link: post.message.urls.first
}
end
......
......@@ -10,6 +10,6 @@
!= yield
%div{style: "font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 12px; color: #999; padding-top: 10px; margin-top: 10px; border-top: 1px solid #ddd"}
!= t("notifier.email_sent_by_diaspora", pod_name: pod_name)
!= t("notifier.email_sent_by_diaspora", pod_name: link_to(pod_name, AppConfig.pod_uri.site))
!= link_to t("notifier.click_here"), edit_user_url
!= t("notifier.to_change_your_notification_settings") + "."
!= yield
!= t('notifier.email_sent_by_diaspora', :pod_name => pod_name)
!= t('notifier.to_change_your_notification_settings')
!= t("notifier.email_sent_by_diaspora", pod_name: pod_name)
!= t("notifier.to_change_your_notification_settings")
!= edit_user_url
......@@ -4,7 +4,7 @@
defaults:
version:
number: "0.7.5.0" # Do not touch unless doing a release, do not backport the version number that's in master
number: "0.7.6.0" # Do not touch unless doing a release, do not backport the version number that's in master
heroku: false
environment:
url: "http://localhost:3000/"
......
......@@ -117,8 +117,13 @@ DiasporaFederation.configure do |config|
end
on :fetch_public_entity do |entity_type, guid|
entity = Diaspora::Federation::Mappings.model_class_for(entity_type).find_by(guid: guid, public: true)
Diaspora::Federation::Entities.post(entity) if entity.is_a? Post
entity = Diaspora::Federation::Mappings.model_class_for(entity_type).all_public.find_by(guid: guid)
case entity
when Post
Diaspora::Federation::Entities.post(entity)
when Poll
Diaspora::Federation::Entities.status_message(entity.status_message)
end
end
on :fetch_person_url_to do |diaspora_id, path|
......
......@@ -21,6 +21,7 @@ SecureHeaders::Configuration.default do |config|
if AppConfig.environment.assets.host.present?
asset_host = Addressable::URI.parse(AppConfig.environment.assets.host.get).host
csp[:font_src] << asset_host
csp[:script_src] << asset_host
csp[:style_src] << asset_host
end
......
......@@ -35,7 +35,9 @@ available:
gl: "Galego"
he: "עברית"
hu: "magyar nyelv"
hy: "հայերեն"
hye: "արեւելահայերեն"
hye-classical: "արեւելահայերէն"
hyw: "արեւմտահայերէն"
ia: "Interlingua"
id: "Bahasa Indonesia"
is: "íslenska"
......@@ -136,6 +138,10 @@ fallbacks:
- "it"
ja-KS:
- "ja"
hye-classical:
- "hye"
hyw:
- "hye"
rtl:
- "ar"
......
......@@ -2,6 +2,7 @@
{
:ar => {:i18n => {:plural => {:keys => [:zero, :one, :two, :few, :many, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (n == 0 ? :zero : (n == 1 ? :one : (n == 2 ? :two : ((3..10).include?(n % 100) ? :few : ((11..99).include?(n % 100) ? :many : :other))))) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (n == 0 ? 'zero' : (n == 1 ? 'one' : (n == 2 ? 'two' : (((n % 100 >= 3) && (n % 100 <= 10)) ? 'few' : (((n % 100 >= 11) && (n % 100 <= 99)) ? 'many' : 'other'))))); })"}}},
:"art-nvi" => {:i18n => {:plural => {:keys => [:zero, :one, :two, :few, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (n == 0 ? :zero : (n == 1 ? :one : (n == 2 ? :two : (n == 3 ? :few : :other)))) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (n == 0 ? 'zero' : (n == 1 ? 'one' : (n == 2 ? 'two' : (n == 3 ? 'few' : 'other')))); })"}}},
:bg => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (n == 1 ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (n == 1 ? 'one' : 'other'); })"}}},
:br => {:i18n => {:plural => {:keys => [:one, :two, :few, :many, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((n % 10 == 1 && ((n % 100 != 11) && (n % 100 != 71) && (n % 100 != 91))) ? :one : ((n % 10 == 2 && ((n % 100 != 12) && (n % 100 != 72) && (n % 100 != 92))) ? :two : ((((3..4).include?(n % 10) || (n % 10 == 9)) && (!(10..19).include?(n % 100) && !(70..79).include?(n % 100) && !(90..99).include?(n % 100))) ? :few : ((n != 0 && n % 1000000 == 0) ? :many : :other)))) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return ((n % 10 == 1 && ((n % 100 != 11) && (n % 100 != 71) && (n % 100 != 91))) ? 'one' : ((n % 10 == 2 && ((n % 100 != 12) && (n % 100 != 72) && (n % 100 != 92))) ? 'two' : (((((n % 10 >= 3) && (n % 10 <= 4)) || (n % 10 == 9)) && (!((n % 100 >= 10) && (n % 100 <= 19)) && !((n % 100 >= 70) && (n % 100 <= 79)) && !((n % 100 >= 90) && (n % 100 <= 99)))) ? 'few' : ((n != 0 && n % 1000000 == 0) ? 'many' : 'other')))); })"}}},
:bs => {:i18n => {:plural => {:keys => [:one, :few, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((((v == 0 && i % 10 == 1) && i % 100 != 11) || (f % 10 == 1 && f % 100 != 11)) ? :one : ((((v == 0 && (2..4).include?(i % 10)) && !(12..14).include?(i % 100)) || ((2..4).include?(f % 10) && !(12..14).include?(f % 100))) ? :few : :other)) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return ((((v == 0 && i % 10 == 1) && i % 100 != 11) || (f % 10 == 1 && f % 100 != 11)) ? 'one' : ((((v == 0 && ((i % 10 >= 2) && (i % 10 <= 4))) && !((i % 100 >= 12) && (i % 100 <= 14))) || (((f % 10 >= 2) && (f % 10 <= 4)) && !((f % 100 >= 12) && (f % 100 <= 14)))) ? 'few' : 'other')); })"}}},
......@@ -21,10 +22,13 @@
:fr => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (((i == 0) || (i == 1)) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (((i == 0) || (i == 1)) ? 'one' : 'other'); })"}}},
:fy => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((i == 1 && v == 0) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return ((i == 1 && v == 0) ? 'one' : 'other'); })"}}},
:ga => {:i18n => {:plural => {:keys => [:one, :two, :few, :many, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (n == 1 ? :one : (n == 2 ? :two : ((3..6).include?(n) ? :few : ((7..10).include?(n) ? :many : :other)))) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (n == 1 ? 'one' : (n == 2 ? 'two' : (((n >= 3) && (n <= 6)) ? 'few' : (((n >= 7) && (n <= 10)) ? 'many' : 'other')))); })"}}},
:gd => {:i18n => {:plural => {:keys => [:one, :two, :few, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (((n == 1) || (n == 11)) ? :one : (((n == 2) || (n == 12)) ? :two : (((3..10).include?(n) || (13..19).include?(n)) ? :few : :other))) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (((n == 1) || (n == 11)) ? 'one' : (((n == 2) || (n == 12)) ? 'two' : ((((n >= 3) && (n <= 10)) || ((n >= 13) && (n <= 19))) ? 'few' : 'other'))); })"}}},
:gl => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((i == 1 && v == 0) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return ((i == 1 && v == 0) ? 'one' : 'other'); })"}}},
:he => {:i18n => {:plural => {:keys => [:one, :two, :many, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((i == 1 && v == 0) ? :one : ((i == 2 && v == 0) ? :two : (((v == 0 && !(0..10).include?(n)) && n % 10 == 0) ? :many : :other))) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return ((i == 1 && v == 0) ? 'one' : ((i == 2 && v == 0) ? 'two' : (((v == 0 && !((n >= 0) && (n <= 10))) && n % 10 == 0) ? 'many' : 'other'))); })"}}},
:hu => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (n == 1 ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (n == 1 ? 'one' : 'other'); })"}}},
:hy => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (((i == 0) || (i == 1)) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (((i == 0) || (i == 1)) ? 'one' : 'other'); })"}}},
:hye => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (((i == 0) || (i == 1)) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (((i == 0) || (i == 1)) ? 'one' : 'other'); })"}}},
:"hye-classical" => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (((i == 0) || (i == 1)) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (((i == 0) || (i == 1)) ? 'one' : 'other'); })"}}},
:hyw => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (((i == 0) || (i == 1)) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (((i == 0) || (i == 1)) ? 'one' : 'other'); })"}}},
:id => {:i18n => {:plural => {:keys => [:other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); :other },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return 'other'; })"}}},
:is => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((((t == 0 && i % 10 == 1) && i % 100 != 11) || t != 0) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return ((((t == 0 && i % 10 == 1) && i % 100 != 11) || t != 0) ? 'one' : 'other'); })"}}},
:it => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((i == 1 && v == 0) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return ((i == 1 && v == 0) ? 'one' : 'other'); })"}}},
......@@ -32,7 +36,7 @@
:ka => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (n == 1 ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (n == 1 ? 'one' : 'other'); })"}}},
:ko => {:i18n => {:plural => {:keys => [:other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); :other },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return 'other'; })"}}},
:lt => {:i18n => {:plural => {:keys => [:one, :few, :many, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((n % 10 == 1 && !(11..19).include?(n % 100)) ? :one : (((2..9).include?(n % 10) && !(11..19).include?(n % 100)) ? :few : (f != 0 ? :many : :other))) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return ((n % 10 == 1 && !((n % 100 >= 11) && (n % 100 <= 19))) ? 'one' : ((((n % 10 >= 2) && (n % 10 <= 9)) && !((n % 100 >= 11) && (n % 100 <= 19))) ? 'few' : (f != 0 ? 'many' : 'other'))); })"}}},
:mk => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (((v == 0 && i % 10 == 1) || f % 10 == 1) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (((v == 0 && i % 10 == 1) || f % 10 == 1) ? 'one' : 'other'); })"}}},
:mk => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((((v == 0 && i % 10 == 1) && i % 100 != 11) || (f % 10 == 1 && f % 100 != 11)) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return ((((v == 0 && i % 10 == 1) && i % 100 != 11) || (f % 10 == 1 && f % 100 != 11)) ? 'one' : 'other'); })"}}},
:ml => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (n == 1 ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (n == 1 ? 'one' : 'other'); })"}}},
:ms => {:i18n => {:plural => {:keys => [:other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); :other },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return 'other'; })"}}},
:nb => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (n == 1 ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (n == 1 ? 'one' : 'other'); })"}}},
......@@ -40,8 +44,8 @@
:nn => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (n == 1 ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (n == 1 ? 'one' : 'other'); })"}}},
:pa => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((0..1).include?(n) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (((n >= 0) && (n <= 1)) ? 'one' : 'other'); })"}}},
:pl => {:i18n => {:plural => {:keys => [:one, :few, :many, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((i == 1 && v == 0) ? :one : (((v == 0 && (2..4).include?(i % 10)) && !(12..14).include?(i % 100)) ? :few : (((((v == 0 && i != 1) && (0..1).include?(i % 10)) || (v == 0 && (5..9).include?(i % 10))) || (v == 0 && (12..14).include?(i % 100))) ? :many : :other))) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return ((i == 1 && v == 0) ? 'one' : (((v == 0 && ((i % 10 >= 2) && (i % 10 <= 4))) && !((i % 100 >= 12) && (i % 100 <= 14))) ? 'few' : (((((v == 0 && i != 1) && ((i % 10 >= 0) && (i % 10 <= 1))) || (v == 0 && ((i % 10 >= 5) && (i % 10 <= 9)))) || (v == 0 && ((i % 100 >= 12) && (i % 100 <= 14)))) ? 'many' : 'other'))); })"}}},
:pt => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (((0..2).include?(n) && n != 2) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return ((((n >= 0) && (n <= 2)) && n != 2) ? 'one' : 'other'); })"}}},
:"pt-PT" => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((n == 1 && v == 0) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return ((n == 1 && v == 0) ? 'one' : 'other'); })"}}},
:pt => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((0..1).include?(i) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (((i >= 0) && (i <= 1)) ? 'one' : 'other'); })"}}},
:"pt-PT" => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((i == 1 && v == 0) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return ((i == 1 && v == 0) ? 'one' : 'other'); })"}}},
:ro => {:i18n => {:plural => {:keys => [:one, :few, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((i == 1 && v == 0) ? :one : (((v != 0 || n == 0) || (n != 1 && (1..19).include?(n % 100))) ? :few : :other)) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return ((i == 1 && v == 0) ? 'one' : (((v != 0 || n == 0) || (n != 1 && ((n % 100 >= 1) && (n % 100 <= 19)))) ? 'few' : 'other')); })"}}},
:ru => {:i18n => {:plural => {:keys => [:one, :few, :many, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (((v == 0 && i % 10 == 1) && i % 100 != 11) ? :one : (((v == 0 && (2..4).include?(i % 10)) && !(12..14).include?(i % 100)) ? :few : ((((v == 0 && i % 10 == 0) || (v == 0 && (5..9).include?(i % 10))) || (v == 0 && (11..14).include?(i % 100))) ? :many : :other))) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (((v == 0 && i % 10 == 1) && i % 100 != 11) ? 'one' : (((v == 0 && ((i % 10 >= 2) && (i % 10 <= 4))) && !((i % 100 >= 12) && (i % 100 <= 14))) ? 'few' : ((((v == 0 && i % 10 == 0) || (v == 0 && ((i % 10 >= 5) && (i % 10 <= 9)))) || (v == 0 && ((i % 100 >= 11) && (i % 100 <= 14)))) ? 'many' : 'other'))); })"}}},
:si => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((((n == 0) || (n == 1)) || (i == 0 && f == 1)) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return ((((n == 0) || (n == 1)) || (i == 0 && f == 1)) ? 'one' : 'other'); })"}}},
......@@ -56,6 +60,5 @@
:ur => {:i18n => {:plural => {:keys => [:one, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); ((i == 1 && v == 0) ? :one : :other) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return ((i == 1 && v == 0) ? 'one' : 'other'); })"}}},
:vi => {:i18n => {:plural => {:keys => [:other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); :other },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return 'other'; })"}}},
:wo => {:i18n => {:plural => {:keys => [:other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); :other },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return 'other'; })"}}},
:zh => {:i18n => {:plural => {:keys => [:other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); :other },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return 'other'; })"}}},
:"art-nvi" => {:i18n => {:plural => {:keys => [:zero, :one, :two, :few, :other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); (n == 0 ? :zero : (n == 1 ? :one : (n == 2 ? :two : (n == 3 ? :few : :other)))) },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return (n == 0 ? 'zero' : (n == 1 ? 'one' : (n == 2 ? 'two' : (n == 3 ? 'few' : 'other')))); })"}}}
:zh => {:i18n => {:plural => {:keys => [:other],:rule => ->(input) { to_num = ->(str) { str.include?('.') ? str.to_f : str.to_i }; _n = ->(str) { str.gsub(/(-)(.*)/, '\2') }; _i = ->(str) { _n.(str).gsub(/([\d]+)(\..*)/, '\1') }; _f = ->(str) { _n.(str).gsub(/([\d]+\.?)(.*)/, '\2') }; _t = ->(str) { _f.(str).gsub(/([0]+\z)/, '') }; _v = ->(str) { _f.(str).length.to_s }; _w = ->(str) { _t.(str).length.to_s }; __n = ->(str) { to_num.(str.include?('.') ? _n.(str).gsub(/([0]+\z)/, '').chomp('.') : _n.(str)) }; __i = ->(str) { to_num.(_i.(str)) }; __f = ->(str) { to_num.(_f.(str)) }; __t = ->(str) { to_num.(_t.(str)) }; __v = ->(str) { to_num.(_v.(str)) }; __w = ->(str) { to_num.(_w.(str)) }; num = input.to_s; n = __n.(num); i = __i.(num); v = __v.(num); w = __w.(num); f = __f.(num); t = __t.(num); :other },:js_rule => "(function(input) { var runtime = (function(){return this.buildArgsFor=function(t){return[this.n(t),this.i(t),this.f(t),this.t(t),this.v(t),this.w(t)]},this.n=function(t){return this.toNum(t.indexOf(\".\")>-1?this._n(t).replace(/([0]+\\.$)/,\"\"):this._n(t))},this.i=function(t){return this.toNum(this._i(t))},this.f=function(t){return this.toNum(this._f(t))},this.t=function(t){return this.toNum(this._t(t))},this.v=function(t){return this.toNum(this._v(t))},this.w=function(t){return this.toNum(this._w(t))},this.toNum=function(t){return 0==t.length?0:t.indexOf(\".\")>-1?parseFloat(t):parseInt(t)},this._n=function(t){return/(-)?(.*)/.exec(t)[2]},this._i=function(t){return/([\\d]+)(\\..*)?/.exec(this._n(t))[1]},this._f=function(t){return/([\\d]+\\.?)(.*)/.exec(this._n(t))[2]},this._t=function(t){return this._f(t).replace(/([0]+$)/,\"\")},this._v=function(t){return this._f(t).length.toString()},this._w=function(t){return this._t(t).length.toString()},this}).call({}); var num = input.toString(); var n = runtime.n(num); var i = runtime.i(num); var v = runtime.v(num); var w = runtime.w(num); var f = runtime.f(num); var t = runtime.t(num); return 'other'; })"}}}
}
\ No newline at end of file
# Copyright (c) 2010-2013, Diaspora Inc. This file is
# licensed under the Affero General Public License version 3 or later. See
# the COPYRIGHT file.
hye-classical:
devise:
confirmations:
confirmed: "Էլ․ հասցէդ հաջողութեամբ հաստատուեց։"
new:
resend_confirmation: "Կրկին ուղարկել հաստատման ցուցումները"
send_instructions: "Րոպէների ընթացքում նամակ կստանաս՝ էլ․ հասցէդ հաստատելու ցուցումներով։"
send_paranoid_instructions: "Եթէ քո էլ․ հասցէն կայ մեր տուեալների բազայում, րոպէների ընթացքում նամակ կը ստանաս՝ էլ․ հասցէդ հաստատելու ցուցումներով։"
failure:
already_authenticated: "Արդեն մուտք գործած ես։"
inactive: "Քո հաշիւը դեռ ակտիւացուած չէ։"
invalid: "Սխալ %{authentication_keys} կամ գաղտնաբառ։"
invalid_token: "Նոյնականացման սխալ։"
last_attempt: "Եւս մեկ հնարաւորութիւնն ունես նախքան հաշիւդ կարգելափակուի։"
locked: "Քո հաշիւն արգելափակուած է։"
not_found_in_database: "Սխալ %{authentication_keys} կամ գաղտնաբառ։"
timeout: "Աշխատաշրջանիդ ժամկէտն անցել է, խնդրում ենք կրկին մուտք գործիր, որ շարունակես։"
unauthenticated: "Շարունակելուց առաջ պէտք է մուտք գործես կամ գրանցուես։"
unconfirmed: "Շարունակելուց առաջ պէտք է հաստատես էլ․ հասցէդ։"
invitations:
invitation_token_invalid: "Հազար ներողութիւն, բայց այս հրաւէրը վաւեր չէ։"
send_instructions: "Հրաւէրդ ուղարկուած է։"
updated: "Գաղտնաբառդ հաջողութեամբ մուտքագրուեց։ Այժմ համակարգում ես։"
mailer:
confirmation_instructions:
confirm: "Հաստատել իմ հաշիւը"
subject: "Հաստատման ցուցումներ"
you_can_confirm: "Կարող ես հաշիւդ հաստատել հետեւեալ յղմամբ՝"
hello: "Ողջո՜յն, %{email}"
inviter:
accept_at: "%{url} հասցէով, որը կարող ես հաստատել ստորև բերուած յղման միջոցով։"
have_invited_you: "%{names} հրաւիրել է քեզ՝ միանալու դիասպորա*֊ին"
password_change:
subject: "Գաղտնաբառդ փոխուած է։"
reset_password_instructions:
change: "Փոխել գաղտնաբառը"
ignore: "Եթէ չես ուղարկել այս հարցումը, ապա պարզապէս անտեսիր այս նամակը։"
someone_requested: "Ինչ-որ մէկը յղում է խնդրել գաղտնաբառդ փոխելու համար։ Եթէ դա դու էիր, կարող ես անել դա հեեւեալ յղմամբ՝"
subject: "Գաղտնաբառը փոխելու ցուցումներ"
wont_change: "Գաղտնաբառդ չի փոխուի, եթէ չանցնես վերը նշուած յղմամբ եւ չստեղծես նոր գաղտնաբառ։"
unlock_instructions:
account_locked: "Մուտք գործելու չափից շատ չհաջուած փորձերի պատճառով հաշիւդ արգելափակուեց։"
click_to_unlock: "Սեղմիր ներքեւի յղումը, որպէսզի ապաարգելափակես հաշիւդ։"
subject: "Ապաարգելափակման ցուցումներ"
unlock: "Ապաարգելափակել հաշիւս"
welcome: "Բարի գալո՜ւստ, %{email}"
omniauth_callbacks:
failure: "Չյաջողուեց նոյնականացնել քեզ %{kind}֊ից զի՝ %{reason}"
success: "Յաջողութեամբ նոյնականացումն անցար %{kind} հաշուով։"
passwords:
edit:
change_password: "Փոխել իմ գաղտնաբառը"
confirm_password: "Հաստատել գաղտնաբառը"
new_password: "Նոր գաղտնաբառ"
new:
email: "Էլ․ հասցէ"
forgot_password: "Մոռացե՞լ ես գաղտնաբառդ"
no_account: "Այս էլ.հասցէով հաշիւ չկայ։"
reset_password: "Վերականգնել գաղտնաբառը"
send_password_instructions: "Ուղարկէք ինձ գաղտնաբառը փոխելու ցուցումները"
no_token: "Այս էջը հասանելի է միայն գաղտնաբառը վերականգնելու յղումով նամակից գալու դէպքում։ Եթէ հէնց այդտեղից է, որ եկել ես, հաւաստիացիր, որ ամբողջական յղումն ես օգտագործել։"
send_instructions: "Րոպէների ընթացքում նամակ կը ստանաս՝ գաղտնաբառդ վերականգնելու ցուցումներով։"
send_paranoid_instructions: "Եթէ քո էլ․ հասցէն կայ մեր տուեալների բազայում, րոպէների ընթացքում նամակ կը ստանաս՝ գաղտնաբառդ վերականգնելու յղումով։"
updated: "Գաղտաբառդ հաջողութեամբ փոխուեց։ Հիմա արդէն համակարգում ես։"
updated_not_active: "Գաղտնաբառդ հաջողութեամբ փոխուեց։"
registrations:
destroyed: "Ցը՜։ Քո հաշիւը բարեյաջող փակուեց։ Յոյսով ենք շուտով կրկին կհանդիպենք։"
signed_up: "Բարեյաջող գրանցուեցիր։ Միացուած լինելու դէպքում, քո էլ. փոստին հաստատման նամակ կը ստանաս։"
signed_up_but_inactive: "Բարեյաջող գրանցուեցիր։ Այնուհանդերձ, մուտք գործելը չստացուեց՝ հաշուիդ դեռ ակտիւացուած չլինելու պատճառով։"
signed_up_but_locked: "Բարեյաջող գրանցուեցիր։ Այնուհանդերձ, մուտք գործելը չստացուեց՝ հաշուիդ արգելափակուած լինելու պատճառով։"
signed_up_but_unconfirmed: "Քո էլ․ հասցէին նամակ ենք ուղարկել հաստատման յղումով։ Անցիր այդ յղումով հաշիւդ ակտիւացնելու համար։"
update_needs_confirmation: "Հաշիւդ հաջողութեամբ թարմացրիր, բայց դեռ պէտք է հաստատես նոր էլ․ հասցէդ։ Ստուգիր էլ․ փոստդ ու անցիր հաստատման յղումով, որ հաստատես այն։"
updated: "Հաշիւդ հաջողութեամբ թարմացուեց։"
sessions:
already_signed_out: "Բարեյաջող դուրս եկար։ Մի՜նչ։"
new:
login: "Մտնել"
modern_browsers: "աշխատում է միայն ժամանակակից զննիչներում։"
password: "Գաղտնաբառ"
remember_me: "Յիշել ինձ"
sign_in: "Մուտք գործել"
username: "Օգտանուն"
signed_in: "Ողջո՜յն, բարեյաջող մուտք գործեցիր։"
signed_out: "Բարեյաջող դուրս եկար։ Մի՜նչ։"
shared: