in lib/twitter_cldr/resources/language_codes_importer.rb [154:179]
def process_bcp_47_data(data, result)
if !data.empty? && %w[language extlang].include?(data['type']) && !data['names'].include?('Private use') && data['scope'] != 'collection'
existing_names = data['names'].select { |name| result.has_key?(name) }
prefered = data['preferred-value']
alternative = [data['prefix'], data['subtag']].compact.join('-')
bcp_47 = {}
bcp_47[:bcp_47] = (prefered || alternative).to_sym
bcp_47[:bcp_47_alt] = alternative.to_sym if prefered
existing_names.each do |name|
result[name.to_sym].merge!(bcp_47)
end
bcp_47.merge!(result[existing_names.first]) unless existing_names.empty?
(data['names'] - existing_names).each do |name|
result[name.to_sym] = bcp_47.dup
end
end
data.clear
end