catstodon/app/helpers/settings_helper.rb
Eugen Rochko 1caf11ddcc Fix language filter codes (#4841)
* Fix language filter codes

CLD3 returns BCP-47 language identifier, filter settings expect
identifiers in the ISO 639-1 format. Convert between formats,
and exclude duplicate languages from filter choices (zh-CN->zh)

* Fix zh name
2017-09-08 12:32:22 +02:00

62 lines
1.2 KiB
Ruby

# frozen_string_literal: true
module SettingsHelper
HUMAN_LOCALES = {
en: 'English',
ar: 'العربية',
bg: 'Български',
ca: 'Català',
de: 'Deutsch',
eo: 'Esperanto',
es: 'Español',
fa: 'فارسی',
fi: 'Suomi',
fr: 'Français',
he: 'עברית',
hr: 'Hrvatski',
hu: 'Magyar',
id: 'Bahasa Indonesia',
io: 'Ido',
it: 'Italiano',
ja: '日本語',
ko: '한국어',
nl: 'Nederlands',
no: 'Norsk',
oc: 'Occitan',
pl: 'Polszczyzna',
pt: 'Português',
'pt-BR': 'Português do Brasil',
ru: 'Русский',
th: 'ภาษาไทย',
tr: 'Türkçe',
uk: 'Українська',
zh: '中文',
'zh-CN': '简体中文',
'zh-HK': '繁體中文(香港)',
'zh-TW': '繁體中文(臺灣)',
}.freeze
def human_locale(locale)
HUMAN_LOCALES[locale]
end
def filterable_languages
I18n.available_locales.map { |locale| locale.to_s.split('-').first.to_sym }.uniq
end
def hash_to_object(hash)
HashObject.new(hash)
end
def session_device_icon(session)
device = session.detection.device
if device.mobile?
'mobile'
elsif device.tablet?
'tablet'
else
'desktop'
end
end
end