diaspora/app/helpers/language_helper.rb
Paweł Wilk 279b08ae4a Added inflection of nouns by the grammatical gender for some languages.
- New module I18n::Backend::Genderize keeps configuration and adds :gender option to translate().
- Module methods in Genderize allow fast checking if language needs gender and guessing gender.
- jQuery in views/users/edit.html.haml shows and hides grammatical gender select list when needed.
- Span and select list in views/users/edit.html.haml allows to choose grammatical gender.
- Key :grammatical_gender in User model keeps grammatical gender information.
- Added some methods to language_helper.rb.
- UsersController is aware of grammatical gender and is able to guess it when "getting started".
2010-12-01 17:29:04 +01:00

35 lines
1.1 KiB
Ruby

module LanguageHelper
def available_language_options
options = []
AVAILABLE_LANGUAGES.each do |locale, language|
options << [language, locale]
end
options.sort_by { |o| o[0] }
end
def options_for_gender_select(user)
grammatical_gender = user.grammatical_gender
genders_list = I18n::Backend::Genderize.known_genders.map do |gender|
[t("#{gender}"), gender]
end
if grammatical_gender.blank?
grammatical_gender = I18n::Backend::Genderize.guess(user.profile.gender)
end
options_for_select(genders_list, grammatical_gender.to_s)
end
def gender_select_disabled(user)
not I18n::Backend::Genderize.supports?(user.language)
end
def grammatical_gender_languages
@glang_cache ||= array_or_string_for_javascript(I18n::Backend::Genderize::SupportedLanguages)
end
def options_for_grammatical_gender_block(user)
enabled = I18n::Backend::Genderize.supports? user.language
{:style => 'display: ' + (enabled ? 'inline' : 'none') + ';' +
' margin-left: 1em; margin-right: 0.5em;'
}
end
end