class I18nCountryTranslations::LocaleFilesPatternGenerator
Generates patterns for locale files, bases on a list of supported locales
Attributes
base_pattern[R]
extension[R]
Public Class Methods
new(base_pattern, extension = '.yml')
click to toggle source
# File lib/i18n_country_translations/locale_files_pattern_generator.rb, line 8 def initialize(base_pattern, extension = '.yml') @base_pattern = base_pattern @extension = extension end
Public Instance Methods
pattern_from(locales)
click to toggle source
Generates a glob file pattern for the specified list of locales (i.e. IETF language tags)
# File lib/i18n_country_translations/locale_files_pattern_generator.rb, line 14 def pattern_from(locales) locales = Array(locales || []) locales = locales.map { |locale| subpatterns_from locale }.flatten pattern = locales.blank? ? '*' : "{#{locales.join ','}}" "#{base_pattern}#{pattern}#{extension}" end
Protected Instance Methods
subpatterns_from(locale)
click to toggle source
Generates subpatterns for the specified locale (i.e. IETF language tag). Subpatterns are all more generic variations of a locale. E.g. subpatterns for en-US are en-US and en. Subpatterns for az-Latn-IR are az-Latn-IR, az-Latn and az
# File lib/i18n_country_translations/locale_files_pattern_generator.rb, line 26 def subpatterns_from(locale) parts = locale.to_s.split('-') parts.map.with_index { |part,index| parts[0..index].join('-') } end