mirror of
https://github.com/meineerde/redmine.git
synced 2026-01-31 19:47:14 +00:00
Custom I18n Pluralization rules are not applied correctly (#36396).
Contributed by Felix Schäfer. git-svn-id: http://svn.redmine.org/redmine/trunk@21365 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
addac907e5
commit
09dc778eb2
@ -159,14 +159,14 @@ module Redmine
|
||||
# * available_locales are determined by looking at translation file names
|
||||
class Backend < ::I18n::Backend::Simple
|
||||
module Implementation
|
||||
include ::I18n::Backend::Pluralization
|
||||
|
||||
# Get available locales from the translations filenames
|
||||
def available_locales
|
||||
@available_locales ||= ::I18n.load_path.map {|path| File.basename(path, '.*')}.uniq.sort.map(&:to_sym)
|
||||
end
|
||||
end
|
||||
|
||||
# Adds custom pluralization rules
|
||||
include ::I18n::Backend::Pluralization
|
||||
# Adds fallback to default locale for untranslated strings
|
||||
include ::I18n::Backend::Fallbacks
|
||||
end
|
||||
|
||||
@ -255,4 +255,13 @@ class Redmine::I18nTest < ActiveSupport::TestCase
|
||||
set_language_if_valid 'fr'
|
||||
assert_equal 'French (Français)', l(:general_lang_name)
|
||||
end
|
||||
|
||||
def test_custom_pluralization_rules
|
||||
I18n.backend.store_translations :pt, i18n: {plural: {rule: ->(n) {[0, 1].include?(n) ? :one : :other }}}
|
||||
I18n.backend.store_translations :pt, apples: {one: 'one or none', other: 'more than one'}
|
||||
assert_equal 'one or none', ll(:pt, :apples, count: 0)
|
||||
assert_equal 'more than one', ll(:pt, :apples, count: 2)
|
||||
ensure
|
||||
I18n.reload!
|
||||
end
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user