fix french javascript pluralization rule and add specs for locale loading
This commit is contained in:
parent
1f9f0c2932
commit
3eb628c2a3
4 changed files with 57 additions and 3 deletions
|
|
@ -1,3 +1,7 @@
|
||||||
|
# 0.0.1.1
|
||||||
|
|
||||||
|
Fix syntax error in French Javascript pluralization rule.
|
||||||
|
|
||||||
# 0.0.1.0
|
# 0.0.1.0
|
||||||
|
|
||||||
## New configuration system!
|
## New configuration system!
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
defaults:
|
defaults:
|
||||||
version:
|
version:
|
||||||
number: "0.0.1.0"
|
number: "0.0.1.1"
|
||||||
release: true # Do not touch unless in a merge conflict on doing a release, master should have a commit setting this to true which is not backported to the develop branch.
|
release: true # Do not touch unless in a merge conflict on doing a release, master should have a commit setting this to true which is not backported to the develop branch.
|
||||||
heroku: false
|
heroku: false
|
||||||
environment:
|
environment:
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
:eu => { :i18n => {:plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other }, :js_rule => 'function (n) { return n == 1 ? "one" : "other" }' } } },
|
:eu => { :i18n => {:plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other }, :js_rule => 'function (n) { return n == 1 ? "one" : "other" }' } } },
|
||||||
:fi => { :i18n => {:plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other }, :js_rule => 'function (n) { return n == 1 ? "one" : "other" }' } } },
|
:fi => { :i18n => {:plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other }, :js_rule => 'function (n) { return n == 1 ? "one" : "other" }' } } },
|
||||||
:fil => { :i18n => {:plural => { :keys => [:one, :other], :rule => lambda { |n| [0, 1].include?(n) ? :one : :other }, :js_rule => 'function (n) { return jQuery.inArray(n, [0, 1]) != -1 ? "one" : "other" }' } } },
|
:fil => { :i18n => {:plural => { :keys => [:one, :other], :rule => lambda { |n| [0, 1].include?(n) ? :one : :other }, :js_rule => 'function (n) { return jQuery.inArray(n, [0, 1]) != -1 ? "one" : "other" }' } } },
|
||||||
:fr => { :i18n => {:plural => { :keys => [:one, :other], :rule => lambda { |n| n.between?(0, 2) && n != 2 ? :one : :other }, :js_rule => 'function (n) { return n.between?(0, 2) && n != 2 ? "one" : "other" }' } } },
|
:fr => { :i18n => {:plural => { :keys => [:one, :other], :rule => lambda { |n| n.between?(0, 2) && n != 2 ? :one : :other }, :js_rule => 'function (n) { return n >= 0 && n <= 2 && n != 2 ? "one" : "other" }' } } },
|
||||||
:ga => { :i18n => {:plural => { :keys => [:one, :two, :few, :many, :other], :rule => lambda { |n| n == 1 ? :one : n == 2 ? :two : [3, 4, 5, 6].include?(n) ? :few : [7, 8, 9, 10].include?(n) ? :many : :other }, :js_rule => 'function (n) { return n == 1 ? "one" : n == 2 ? "two" : jQuery.inArray(n, [3, 4, 5, 6]) != -1 ? "few" : jQuery.inArray(n, [7, 8, 9, 10]) != -1 ? "many" : "other" }' } } },
|
:ga => { :i18n => {:plural => { :keys => [:one, :two, :few, :many, :other], :rule => lambda { |n| n == 1 ? :one : n == 2 ? :two : [3, 4, 5, 6].include?(n) ? :few : [7, 8, 9, 10].include?(n) ? :many : :other }, :js_rule => 'function (n) { return n == 1 ? "one" : n == 2 ? "two" : jQuery.inArray(n, [3, 4, 5, 6]) != -1 ? "few" : jQuery.inArray(n, [7, 8, 9, 10]) != -1 ? "many" : "other" }' } } },
|
||||||
:gl => { :i18n => {:plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other }, :js_rule => 'function (n) { return n == 1 ? "one" : "other" }' } } },
|
:gl => { :i18n => {:plural => { :keys => [:one, :other], :rule => lambda { |n| n == 1 ? :one : :other }, :js_rule => 'function (n) { return n == 1 ? "one" : "other" }' } } },
|
||||||
:he => { :i18n => {:plural => { :keys => [:one, :two, :many, :other], :rule => lambda { |n| n == 1 ? :one : n == 2 ? :two : n != 0 ? :many : :other }, :js_rule => 'function (n) { return n == 1 ? "one" : n == 2 ? "two" : n != 0 ? "many" : "other" }' } } },
|
:he => { :i18n => {:plural => { :keys => [:one, :two, :many, :other], :rule => lambda { |n| n == 1 ? :one : n == 2 ? :two : n != 0 ? :many : :other }, :js_rule => 'function (n) { return n == 1 ? "one" : n == 2 ? "two" : n != 0 ? "many" : "other" }' } } },
|
||||||
|
|
|
||||||
50
spec/locale_spec.rb
Normal file
50
spec/locale_spec.rb
Normal file
|
|
@ -0,0 +1,50 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe 'locale files' do
|
||||||
|
describe "cldr/plurals.rb" do
|
||||||
|
AVAILABLE_LANGUAGE_CODES.each do |locale|
|
||||||
|
describe "#{locale} plural rules" do
|
||||||
|
it "defines the keys" do
|
||||||
|
I18n.with_locale locale do
|
||||||
|
expect {
|
||||||
|
I18n.t 'i18n.plural.keys'
|
||||||
|
}.to_not raise_error
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
it "defines a valid pluralization function" do
|
||||||
|
I18n.with_locale locale do
|
||||||
|
expect {
|
||||||
|
rule = I18n.t 'i18n.plural.rule', resolve: false
|
||||||
|
rule.call(1)
|
||||||
|
}.to_not raise_error
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
it "defines a valid javascript pluralization function" do
|
||||||
|
I18n.with_locale locale do
|
||||||
|
expect {
|
||||||
|
ExecJS.eval I18n.t('i18n.plural.js_rule')
|
||||||
|
}.to_not raise_error
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
AVAILABLE_LANGUAGE_CODES.each do |locale|
|
||||||
|
["diaspora/#{locale}.yml",
|
||||||
|
"devise/devise.#{locale}.yml",
|
||||||
|
"javascript/javascript.#{locale}.yml"].each do |file|
|
||||||
|
describe file do
|
||||||
|
it "has no syntax errors if it exists" do
|
||||||
|
file = Rails.root.join("config", "locales", file)
|
||||||
|
pending "Not yet available" unless File.exists? file
|
||||||
|
expect {
|
||||||
|
YAML.load_file file
|
||||||
|
}.to_not raise_error
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
Loading…
Reference in a new issue