settings_helper.rb 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. # frozen_string_literal: true
  2. module SettingsHelper
  3. HUMAN_LOCALES = {
  4. en: 'English',
  5. ar: 'العربية',
  6. ast: 'Asturianu',
  7. bg: 'Български',
  8. ca: 'Català',
  9. co: 'Corsu',
  10. cs: 'Čeština',
  11. cy: 'Cymraeg',
  12. da: 'Dansk',
  13. de: 'Deutsch',
  14. el: 'Ελληνικά',
  15. eo: 'Esperanto',
  16. es: 'Español',
  17. eu: 'Euskara',
  18. fa: 'فارسی',
  19. fi: 'Suomi',
  20. fr: 'Français',
  21. gl: 'Galego',
  22. he: 'עברית',
  23. hr: 'Hrvatski',
  24. hu: 'Magyar',
  25. hy: 'Հայերեն',
  26. id: 'Bahasa Indonesia',
  27. io: 'Ido',
  28. it: 'Italiano',
  29. ja: '日本語',
  30. ka: 'ქართული',
  31. kk: 'Қазақша',
  32. ko: '한국어',
  33. lt: 'Lietuvių',
  34. lv: 'Latviešu',
  35. ml: 'മലയാളം',
  36. ms: 'Bahasa Melayu',
  37. nl: 'Nederlands',
  38. no: 'Norsk',
  39. oc: 'Occitan',
  40. pl: 'Polski',
  41. pt: 'Português',
  42. 'pt-BR': 'Português do Brasil',
  43. ro: 'Română',
  44. ru: 'Русский',
  45. sk: 'Slovenčina',
  46. sl: 'Slovenščina',
  47. sq: 'Shqip',
  48. sr: 'Српски',
  49. 'sr-Latn': 'Srpski (latinica)',
  50. sv: 'Svenska',
  51. ta: 'தமிழ்',
  52. te: 'తెలుగు',
  53. th: 'ไทย',
  54. tr: 'Türkçe',
  55. uk: 'Українська',
  56. zh: '中文',
  57. 'zh-CN': '简体中文',
  58. 'zh-HK': '繁體中文(香港)',
  59. 'zh-TW': '繁體中文(臺灣)',
  60. }.freeze
  61. def human_locale(locale)
  62. HUMAN_LOCALES[locale]
  63. end
  64. def filterable_languages
  65. LanguageDetector.instance.language_names.select(&HUMAN_LOCALES.method(:key?))
  66. end
  67. def hash_to_object(hash)
  68. HashObject.new(hash)
  69. end
  70. def session_device_icon(session)
  71. device = session.detection.device
  72. if device.mobile?
  73. 'mobile'
  74. elsif device.tablet?
  75. 'tablet'
  76. else
  77. 'desktop'
  78. end
  79. end
  80. end