The code powering m.abunchtell.com https://m.abunchtell.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

109 lines
2.5 KiB

  1. # frozen_string_literal: true
  2. module SettingsHelper
  3. HUMAN_LOCALES = {
  4. ar: 'العربية',
  5. ast: 'Asturianu',
  6. bg: 'Български',
  7. bn: 'বাংলা',
  8. br: 'Breton',
  9. ca: 'Català',
  10. co: 'Corsu',
  11. cs: 'Čeština',
  12. cy: 'Cymraeg',
  13. da: 'Dansk',
  14. de: 'Deutsch',
  15. el: 'Ελληνικά',
  16. en: 'English',
  17. eo: 'Esperanto',
  18. 'es-AR': 'Español (Argentina)',
  19. es: 'Español',
  20. et: 'Eesti',
  21. eu: 'Euskara',
  22. fa: 'فارسی',
  23. fi: 'Suomi',
  24. fr: 'Français',
  25. ga: 'Gaeilge',
  26. gl: 'Galego',
  27. he: 'עברית',
  28. hi: 'हिन्दी',
  29. hr: 'Hrvatski',
  30. hu: 'Magyar',
  31. hy: 'Հայերեն',
  32. id: 'Bahasa Indonesia',
  33. io: 'Ido',
  34. is: 'Íslenska',
  35. it: 'Italiano',
  36. ja: '日本語',
  37. ka: 'ქართული',
  38. kab: 'Taqbaylit',
  39. kk: 'Қазақша',
  40. kn: 'ಕನ್ನಡ',
  41. ko: '한국어',
  42. lt: 'Lietuvių',
  43. lv: 'Latviešu',
  44. mk: 'Македонски',
  45. ml: 'മലയാളം',
  46. mr: 'मराठी',
  47. ms: 'Bahasa Melayu',
  48. nl: 'Nederlands',
  49. nn: 'Nynorsk',
  50. no: 'Norsk',
  51. oc: 'Occitan',
  52. pl: 'Polski',
  53. 'pt-BR': 'Português (Brasil)',
  54. 'pt-PT': 'Português (Portugal)',
  55. pt: 'Português',
  56. ro: 'Română',
  57. ru: 'Русский',
  58. sk: 'Slovenčina',
  59. sl: 'Slovenščina',
  60. sq: 'Shqip',
  61. 'sr-Latn': 'Srpski (latinica)',
  62. sr: 'Српски',
  63. sv: 'Svenska',
  64. ta: 'தமிழ்',
  65. te: 'తెలుగు',
  66. th: 'ไทย',
  67. tr: 'Türkçe',
  68. uk: 'Українська',
  69. ur: 'اُردُو',
  70. 'zh-CN': '简体中文',
  71. 'zh-HK': '繁體中文(香港)',
  72. 'zh-TW': '繁體中文(臺灣)',
  73. zh: '中文',
  74. }.freeze
  75. def human_locale(locale)
  76. HUMAN_LOCALES[locale]
  77. end
  78. def filterable_languages
  79. LanguageDetector.instance.language_names.select(&HUMAN_LOCALES.method(:key?))
  80. end
  81. def hash_to_object(hash)
  82. HashObject.new(hash)
  83. end
  84. def session_device_icon(session)
  85. device = session.detection.device
  86. if device.mobile?
  87. 'mobile'
  88. elsif device.tablet?
  89. 'tablet'
  90. else
  91. 'desktop'
  92. end
  93. end
  94. def compact_account_link_to(account)
  95. return if account.nil?
  96. link_to ActivityPub::TagManager.instance.url_for(account), class: 'name-tag', title: account.acct do
  97. safe_join([image_tag(account.avatar.url, width: 15, height: 15, alt: display_name(account), class: 'avatar'), content_tag(:span, account.acct, class: 'username')], ' ')
  98. end
  99. end
  100. end