threddedDANIEL 0.14.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (367) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +744 -0
  4. data/app/assets/images/favicons/README.md +3 -0
  5. data/app/assets/images/favicons/amazon.png +0 -0
  6. data/app/assets/images/favicons/github.png +0 -0
  7. data/app/assets/images/favicons/google_branding/logo_calendar_128px.png +0 -0
  8. data/app/assets/images/favicons/google_branding/logo_docs_48px.png +0 -0
  9. data/app/assets/images/favicons/google_branding/logo_drive_48px.png +0 -0
  10. data/app/assets/images/favicons/google_branding/logo_forms_48px.png +0 -0
  11. data/app/assets/images/favicons/google_branding/logo_sheets_48px.png +0 -0
  12. data/app/assets/images/favicons/google_branding/logo_slides_48px.png +0 -0
  13. data/app/assets/images/favicons/stackexchange.png +0 -0
  14. data/app/assets/images/favicons/twitter.png +0 -0
  15. data/app/assets/images/favicons/wikipedia.png +0 -0
  16. data/app/assets/images/thredded/breadcrumb-chevron.svg +1 -0
  17. data/app/assets/images/thredded/follow.svg +1 -0
  18. data/app/assets/images/thredded/lock.svg +1 -0
  19. data/app/assets/images/thredded/moderation.svg +1 -0
  20. data/app/assets/images/thredded/private-messages.svg +1 -0
  21. data/app/assets/images/thredded/settings.svg +1 -0
  22. data/app/assets/images/thredded/three-dot-menu.svg +3 -0
  23. data/app/assets/images/thredded/unfollow.svg +1 -0
  24. data/app/assets/javascripts/thredded.es6 +2 -0
  25. data/app/assets/javascripts/thredded/components/currently_online.es6 +32 -0
  26. data/app/assets/javascripts/thredded/components/flash_messages.es6 +9 -0
  27. data/app/assets/javascripts/thredded/components/mention_autocompletion.es6 +40 -0
  28. data/app/assets/javascripts/thredded/components/post_form.es6 +37 -0
  29. data/app/assets/javascripts/thredded/components/preview_area.es6 +56 -0
  30. data/app/assets/javascripts/thredded/components/quote_post.es6 +49 -0
  31. data/app/assets/javascripts/thredded/components/time_stamps.es6 +25 -0
  32. data/app/assets/javascripts/thredded/components/topic_form.es6 +94 -0
  33. data/app/assets/javascripts/thredded/components/topics.es6 +46 -0
  34. data/app/assets/javascripts/thredded/components/turboforms.es6 +25 -0
  35. data/app/assets/javascripts/thredded/components/user_preferences_form.es6 +66 -0
  36. data/app/assets/javascripts/thredded/components/user_textcomplete.es6 +50 -0
  37. data/app/assets/javascripts/thredded/components/users_select.es6 +122 -0
  38. data/app/assets/javascripts/thredded/core/csrf_tokens.es6 +9 -0
  39. data/app/assets/javascripts/thredded/core/debounce.es6 +32 -0
  40. data/app/assets/javascripts/thredded/core/escape_html.es6 +7 -0
  41. data/app/assets/javascripts/thredded/core/hide_soft_keyboard.es6 +7 -0
  42. data/app/assets/javascripts/thredded/core/on_page_load.es6 +54 -0
  43. data/app/assets/javascripts/thredded/core/serialize_form.es6 +9 -0
  44. data/app/assets/javascripts/thredded/core/thredded.es6 +1 -0
  45. data/app/assets/javascripts/thredded/dependencies.js +8 -0
  46. data/app/assets/javascripts/thredded/dependencies/autosize.js +1 -0
  47. data/app/assets/javascripts/thredded/dependencies/textcomplete.js +1 -0
  48. data/app/assets/javascripts/thredded/dependencies/timeago.js +1 -0
  49. data/app/assets/javascripts/thredded/dependencies/ujs.js +1 -0
  50. data/app/assets/javascripts/thredded/thredded.es6 +2 -0
  51. data/app/assets/stylesheets/thredded.scss +3 -0
  52. data/app/assets/stylesheets/thredded/_base.scss +13 -0
  53. data/app/assets/stylesheets/thredded/_dependencies.scss +0 -0
  54. data/app/assets/stylesheets/thredded/_email.scss +51 -0
  55. data/app/assets/stylesheets/thredded/_thredded.scss +33 -0
  56. data/app/assets/stylesheets/thredded/base/_alerts.scss +44 -0
  57. data/app/assets/stylesheets/thredded/base/_buttons.scss +73 -0
  58. data/app/assets/stylesheets/thredded/base/_dropdown-menu.scss +83 -0
  59. data/app/assets/stylesheets/thredded/base/_forms.scss +84 -0
  60. data/app/assets/stylesheets/thredded/base/_grid.scss +58 -0
  61. data/app/assets/stylesheets/thredded/base/_lists.scss +31 -0
  62. data/app/assets/stylesheets/thredded/base/_nav.scss +67 -0
  63. data/app/assets/stylesheets/thredded/base/_tables.scss +17 -0
  64. data/app/assets/stylesheets/thredded/base/_typography.scss +72 -0
  65. data/app/assets/stylesheets/thredded/base/_variables.scss +141 -0
  66. data/app/assets/stylesheets/thredded/components/_alerts.scss +19 -0
  67. data/app/assets/stylesheets/thredded/components/_base.scss +25 -0
  68. data/app/assets/stylesheets/thredded/components/_currently-online.scss +54 -0
  69. data/app/assets/stylesheets/thredded/components/_empty.scss +11 -0
  70. data/app/assets/stylesheets/thredded/components/_flash-message.scss +19 -0
  71. data/app/assets/stylesheets/thredded/components/_following.scss +14 -0
  72. data/app/assets/stylesheets/thredded/components/_form-list.scss +39 -0
  73. data/app/assets/stylesheets/thredded/components/_icons.scss +3 -0
  74. data/app/assets/stylesheets/thredded/components/_main-section.scss +9 -0
  75. data/app/assets/stylesheets/thredded/components/_mention-autocomplete.scss +57 -0
  76. data/app/assets/stylesheets/thredded/components/_messageboard.scss +155 -0
  77. data/app/assets/stylesheets/thredded/components/_onebox.scss +275 -0
  78. data/app/assets/stylesheets/thredded/components/_pagination.scss +35 -0
  79. data/app/assets/stylesheets/thredded/components/_post-form.scss +27 -0
  80. data/app/assets/stylesheets/thredded/components/_post.scss +138 -0
  81. data/app/assets/stylesheets/thredded/components/_preferences.scss +19 -0
  82. data/app/assets/stylesheets/thredded/components/_preview_area.scss +11 -0
  83. data/app/assets/stylesheets/thredded/components/_topic-delete.scss +8 -0
  84. data/app/assets/stylesheets/thredded/components/_topic-header.scss +111 -0
  85. data/app/assets/stylesheets/thredded/components/_topics.scss +186 -0
  86. data/app/assets/stylesheets/thredded/layout/_main-container.scss +16 -0
  87. data/app/assets/stylesheets/thredded/layout/_main-navigation.scss +79 -0
  88. data/app/assets/stylesheets/thredded/layout/_moderation.scss +97 -0
  89. data/app/assets/stylesheets/thredded/layout/_navigation.scss +87 -0
  90. data/app/assets/stylesheets/thredded/layout/_search-navigation.scss +126 -0
  91. data/app/assets/stylesheets/thredded/layout/_user-navigation.scss +20 -0
  92. data/app/assets/stylesheets/thredded/layout/_user.scss +10 -0
  93. data/app/assets/stylesheets/thredded/utilities/_is-compact.scss +26 -0
  94. data/app/assets/stylesheets/thredded/utilities/_is-expanded.scss +16 -0
  95. data/app/commands/thredded/at_notification_extractor.rb +23 -0
  96. data/app/commands/thredded/autofollow_users.rb +62 -0
  97. data/app/commands/thredded/create_messageboard.rb +42 -0
  98. data/app/commands/thredded/mark_all_read.rb +22 -0
  99. data/app/commands/thredded/moderate_post.rb +48 -0
  100. data/app/commands/thredded/notify_following_users.rb +78 -0
  101. data/app/commands/thredded/notify_private_topic_users.rb +34 -0
  102. data/app/controllers/concerns/thredded/new_post_params.rb +21 -0
  103. data/app/controllers/concerns/thredded/new_private_post_params.rb +21 -0
  104. data/app/controllers/concerns/thredded/new_private_topic_params.rb +25 -0
  105. data/app/controllers/concerns/thredded/new_topic_params.rb +19 -0
  106. data/app/controllers/concerns/thredded/render_preview.rb +16 -0
  107. data/app/controllers/thredded/application_controller.rb +145 -0
  108. data/app/controllers/thredded/autocomplete_users_controller.rb +52 -0
  109. data/app/controllers/thredded/messageboard_groups_controller.rb +31 -0
  110. data/app/controllers/thredded/messageboards_controller.rb +53 -0
  111. data/app/controllers/thredded/moderation_controller.rb +103 -0
  112. data/app/controllers/thredded/post_permalinks_controller.rb +11 -0
  113. data/app/controllers/thredded/post_previews_controller.rb +29 -0
  114. data/app/controllers/thredded/posts_controller.rb +97 -0
  115. data/app/controllers/thredded/preferences_controller.rb +42 -0
  116. data/app/controllers/thredded/private_post_permalinks_controller.rb +12 -0
  117. data/app/controllers/thredded/private_post_previews_controller.rb +29 -0
  118. data/app/controllers/thredded/private_posts_controller.rb +96 -0
  119. data/app/controllers/thredded/private_topic_previews_controller.rb +15 -0
  120. data/app/controllers/thredded/private_topics_controller.rb +102 -0
  121. data/app/controllers/thredded/read_states_controller.rb +13 -0
  122. data/app/controllers/thredded/theme_previews_controller.rb +34 -0
  123. data/app/controllers/thredded/topic_previews_controller.rb +15 -0
  124. data/app/controllers/thredded/topics_controller.rb +205 -0
  125. data/app/forms/thredded/edit_topic_form.rb +51 -0
  126. data/app/forms/thredded/post_form.rb +54 -0
  127. data/app/forms/thredded/private_post_form.rb +50 -0
  128. data/app/forms/thredded/private_topic_form.rb +160 -0
  129. data/app/forms/thredded/topic_form.rb +95 -0
  130. data/app/forms/thredded/user_preferences_form.rb +110 -0
  131. data/app/helpers/thredded/application_helper.rb +129 -0
  132. data/app/helpers/thredded/nav_helper.rb +42 -0
  133. data/app/helpers/thredded/render_helper.rb +15 -0
  134. data/app/helpers/thredded/urls_helper.rb +134 -0
  135. data/app/jobs/thredded/activity_updater_job.rb +21 -0
  136. data/app/jobs/thredded/auto_follow_and_notify_job.rb +14 -0
  137. data/app/jobs/thredded/notify_private_topic_users_job.rb +12 -0
  138. data/app/mailer_previews/thredded/base_mailer_preview.rb +118 -0
  139. data/app/mailer_previews/thredded/post_mailer_preview.rb +13 -0
  140. data/app/mailer_previews/thredded/private_topic_mailer_preview.rb +13 -0
  141. data/app/mailers/thredded/base_mailer.rb +18 -0
  142. data/app/mailers/thredded/post_mailer.rb +21 -0
  143. data/app/mailers/thredded/private_topic_mailer.rb +21 -0
  144. data/app/models/concerns/thredded/content_moderation_state.rb +67 -0
  145. data/app/models/concerns/thredded/friendly_id_reserved_words_and_pagination.rb +17 -0
  146. data/app/models/concerns/thredded/moderation_state.rb +14 -0
  147. data/app/models/concerns/thredded/notifier_preference.rb +19 -0
  148. data/app/models/concerns/thredded/post_common.rb +76 -0
  149. data/app/models/concerns/thredded/search_parser.rb +41 -0
  150. data/app/models/concerns/thredded/topic_common.rb +94 -0
  151. data/app/models/concerns/thredded/topics_search.rb +67 -0
  152. data/app/models/concerns/thredded/user_topic_read_state_common.rb +42 -0
  153. data/app/models/thredded/category.rb +18 -0
  154. data/app/models/thredded/messageboard.rb +120 -0
  155. data/app/models/thredded/messageboard_group.rb +19 -0
  156. data/app/models/thredded/messageboard_notifications_for_followed_topics.rb +30 -0
  157. data/app/models/thredded/messageboard_user.rb +14 -0
  158. data/app/models/thredded/notifications_for_followed_topics.rb +25 -0
  159. data/app/models/thredded/notifications_for_private_topics.rb +22 -0
  160. data/app/models/thredded/null_user.rb +51 -0
  161. data/app/models/thredded/null_user_topic_read_state.rb +17 -0
  162. data/app/models/thredded/post.rb +77 -0
  163. data/app/models/thredded/post_moderation_record.rb +56 -0
  164. data/app/models/thredded/private_post.rb +63 -0
  165. data/app/models/thredded/private_topic.rb +89 -0
  166. data/app/models/thredded/private_user.rb +8 -0
  167. data/app/models/thredded/stats.rb +25 -0
  168. data/app/models/thredded/topic.rb +179 -0
  169. data/app/models/thredded/topic_category.rb +8 -0
  170. data/app/models/thredded/user_detail.rb +27 -0
  171. data/app/models/thredded/user_extender.rb +75 -0
  172. data/app/models/thredded/user_messageboard_preference.rb +45 -0
  173. data/app/models/thredded/user_permissions/admin/if_admin_column_true.rb +14 -0
  174. data/app/models/thredded/user_permissions/admin/none.rb +14 -0
  175. data/app/models/thredded/user_permissions/message/readers_of_writeable_boards.rb +15 -0
  176. data/app/models/thredded/user_permissions/moderate/if_moderator_column_true.rb +16 -0
  177. data/app/models/thredded/user_permissions/moderate/none.rb +16 -0
  178. data/app/models/thredded/user_permissions/read/all.rb +27 -0
  179. data/app/models/thredded/user_permissions/write/all.rb +16 -0
  180. data/app/models/thredded/user_permissions/write/none.rb +16 -0
  181. data/app/models/thredded/user_post_notification.rb +29 -0
  182. data/app/models/thredded/user_preference.rb +26 -0
  183. data/app/models/thredded/user_private_topic_read_state.rb +13 -0
  184. data/app/models/thredded/user_topic_follow.rb +34 -0
  185. data/app/models/thredded/user_topic_read_state.rb +13 -0
  186. data/app/notifiers/thredded/email_notifier.rb +25 -0
  187. data/app/policies/thredded/messageboard_group_policy.rb +16 -0
  188. data/app/policies/thredded/messageboard_policy.rb +49 -0
  189. data/app/policies/thredded/post_policy.rb +64 -0
  190. data/app/policies/thredded/private_post_policy.rb +38 -0
  191. data/app/policies/thredded/private_topic_policy.rb +24 -0
  192. data/app/policies/thredded/topic_policy.rb +49 -0
  193. data/app/view_hooks/thredded/all_view_hooks.rb +125 -0
  194. data/app/view_models/thredded/base_topic_view.rb +43 -0
  195. data/app/view_models/thredded/messageboard_group_view.rb +27 -0
  196. data/app/view_models/thredded/post_view.rb +89 -0
  197. data/app/view_models/thredded/posts_page_view.rb +27 -0
  198. data/app/view_models/thredded/private_topic_view.rb +20 -0
  199. data/app/view_models/thredded/private_topics_page_view.rb +31 -0
  200. data/app/view_models/thredded/topic_email_view.rb +18 -0
  201. data/app/view_models/thredded/topic_posts_page_view.rb +17 -0
  202. data/app/view_models/thredded/topic_view.rb +68 -0
  203. data/app/view_models/thredded/topics_page_view.rb +38 -0
  204. data/app/views/layouts/thredded/application.html.erb +18 -0
  205. data/app/views/thredded/categories/_category.html.erb +1 -0
  206. data/app/views/thredded/error_pages/forbidden.html.erb +6 -0
  207. data/app/views/thredded/error_pages/not_found.html.erb +6 -0
  208. data/app/views/thredded/kaminari/_first_page.html.erb +11 -0
  209. data/app/views/thredded/kaminari/_gap.html.erb +8 -0
  210. data/app/views/thredded/kaminari/_last_page.html.erb +11 -0
  211. data/app/views/thredded/kaminari/_next_page.html.erb +11 -0
  212. data/app/views/thredded/kaminari/_page.html.erb +12 -0
  213. data/app/views/thredded/kaminari/_paginator.html.erb +23 -0
  214. data/app/views/thredded/kaminari/_prev_page.html.erb +11 -0
  215. data/app/views/thredded/messageboard_groups/new.html.erb +28 -0
  216. data/app/views/thredded/messageboards/_form.html.erb +30 -0
  217. data/app/views/thredded/messageboards/_messageboard.html.erb +20 -0
  218. data/app/views/thredded/messageboards/_messageboard_meta.html.erb +13 -0
  219. data/app/views/thredded/messageboards/edit.html.erb +15 -0
  220. data/app/views/thredded/messageboards/index.html.erb +34 -0
  221. data/app/views/thredded/messageboards/new.html.erb +15 -0
  222. data/app/views/thredded/moderation/_nav.html.erb +19 -0
  223. data/app/views/thredded/moderation/_post.html.erb +19 -0
  224. data/app/views/thredded/moderation/_post_moderation_actions.html.erb +12 -0
  225. data/app/views/thredded/moderation/_post_moderation_record.html.erb +46 -0
  226. data/app/views/thredded/moderation/_user_moderation_state.html.erb +3 -0
  227. data/app/views/thredded/moderation/_user_post.html.erb +12 -0
  228. data/app/views/thredded/moderation/_users_search_form.html.erb +13 -0
  229. data/app/views/thredded/moderation/activity.html.erb +20 -0
  230. data/app/views/thredded/moderation/history.html.erb +13 -0
  231. data/app/views/thredded/moderation/pending.html.erb +24 -0
  232. data/app/views/thredded/moderation/user.html.erb +54 -0
  233. data/app/views/thredded/moderation/users.html.erb +41 -0
  234. data/app/views/thredded/post_mailer/post_notification.html.erb +26 -0
  235. data/app/views/thredded/post_mailer/post_notification.text.erb +14 -0
  236. data/app/views/thredded/post_previews/preview.html.erb +1 -0
  237. data/app/views/thredded/post_previews/update.html.erb +1 -0
  238. data/app/views/thredded/posts/_content.html.erb +1 -0
  239. data/app/views/thredded/posts/_form.html.erb +5 -0
  240. data/app/views/thredded/posts/_post.html.erb +13 -0
  241. data/app/views/thredded/posts/_user.html.erb +3 -0
  242. data/app/views/thredded/posts/edit.html.erb +16 -0
  243. data/app/views/thredded/posts/new.html.erb +15 -0
  244. data/app/views/thredded/posts_common/_actions.html.erb +28 -0
  245. data/app/views/thredded/posts_common/_content.html.erb +3 -0
  246. data/app/views/thredded/posts_common/_form.html.erb +22 -0
  247. data/app/views/thredded/posts_common/_header.html.erb +8 -0
  248. data/app/views/thredded/posts_common/_header_with_topic.html.erb +15 -0
  249. data/app/views/thredded/posts_common/_header_with_user_and_topic.html.erb +18 -0
  250. data/app/views/thredded/posts_common/actions/_delete.html.erb +4 -0
  251. data/app/views/thredded/posts_common/actions/_edit.html.erb +3 -0
  252. data/app/views/thredded/posts_common/actions/_mark_as_unread.html.erb +2 -0
  253. data/app/views/thredded/posts_common/actions/_quote.html.erb +4 -0
  254. data/app/views/thredded/posts_common/form/_after_content.html.erb +8 -0
  255. data/app/views/thredded/posts_common/form/_before_content.html.erb +8 -0
  256. data/app/views/thredded/posts_common/form/_content.html.erb +7 -0
  257. data/app/views/thredded/posts_common/form/_content_field.html.erb +8 -0
  258. data/app/views/thredded/posts_common/form/_preview_area.html.erb +16 -0
  259. data/app/views/thredded/preferences/_form.html.erb +95 -0
  260. data/app/views/thredded/preferences/_messageboards_nav.html.erb +8 -0
  261. data/app/views/thredded/preferences/_messageboards_nav_item.html.erb +2 -0
  262. data/app/views/thredded/preferences/edit.html.erb +20 -0
  263. data/app/views/thredded/private_post_previews/preview.html.erb +1 -0
  264. data/app/views/thredded/private_post_previews/update.html.erb +1 -0
  265. data/app/views/thredded/private_posts/_content.html.erb +1 -0
  266. data/app/views/thredded/private_posts/_form.html.erb +6 -0
  267. data/app/views/thredded/private_posts/_private_post.html.erb +6 -0
  268. data/app/views/thredded/private_posts/edit.html.erb +16 -0
  269. data/app/views/thredded/private_posts/new.html.erb +11 -0
  270. data/app/views/thredded/private_topic_mailer/message_notification.html.erb +26 -0
  271. data/app/views/thredded/private_topic_mailer/message_notification.text.erb +15 -0
  272. data/app/views/thredded/private_topic_previews/preview.html.erb +1 -0
  273. data/app/views/thredded/private_topics/_breadcrumbs.html.erb +4 -0
  274. data/app/views/thredded/private_topics/_form.html.erb +39 -0
  275. data/app/views/thredded/private_topics/_header.html.erb +17 -0
  276. data/app/views/thredded/private_topics/_no_private_topics.html.erb +6 -0
  277. data/app/views/thredded/private_topics/_private_topic.html.erb +23 -0
  278. data/app/views/thredded/private_topics/edit.html.erb +35 -0
  279. data/app/views/thredded/private_topics/header/_participant.html.erb +1 -0
  280. data/app/views/thredded/private_topics/index.html.erb +32 -0
  281. data/app/views/thredded/private_topics/new.html.erb +11 -0
  282. data/app/views/thredded/private_topics/private_topic/_participant.html.erb +1 -0
  283. data/app/views/thredded/private_topics/show.html.erb +28 -0
  284. data/app/views/thredded/search/_form.html.erb +13 -0
  285. data/app/views/thredded/shared/_breadcrumbs.html.erb +6 -0
  286. data/app/views/thredded/shared/_content_moderation_blocked_state.html.erb +8 -0
  287. data/app/views/thredded/shared/_currently_online.html.erb +6 -0
  288. data/app/views/thredded/shared/_flash_messages.html.erb +7 -0
  289. data/app/views/thredded/shared/_header.html.erb +3 -0
  290. data/app/views/thredded/shared/_nav.html.erb +19 -0
  291. data/app/views/thredded/shared/_page.html.erb +15 -0
  292. data/app/views/thredded/shared/currently_online/_header.html.erb +5 -0
  293. data/app/views/thredded/shared/currently_online/_user_list.html.erb +3 -0
  294. data/app/views/thredded/shared/currently_online/_user_list_item.html.erb +6 -0
  295. data/app/views/thredded/shared/nav/_moderation.html.erb +14 -0
  296. data/app/views/thredded/shared/nav/_notification_preferences.html.erb +8 -0
  297. data/app/views/thredded/shared/nav/_private_topics.html.erb +12 -0
  298. data/app/views/thredded/shared/nav/_standalone.html.erb +12 -0
  299. data/app/views/thredded/shared/nav/_standalone_profile.html.erb +3 -0
  300. data/app/views/thredded/shared/preview.html.erb +10 -0
  301. data/app/views/thredded/theme_previews/_section_title.html.erb +3 -0
  302. data/app/views/thredded/theme_previews/show.html.erb +99 -0
  303. data/app/views/thredded/topic_previews/preview.html.erb +1 -0
  304. data/app/views/thredded/topics/_followers.html.erb +12 -0
  305. data/app/views/thredded/topics/_form.html.erb +32 -0
  306. data/app/views/thredded/topics/_header.html.erb +32 -0
  307. data/app/views/thredded/topics/_sticky_topics_divider.html.erb +1 -0
  308. data/app/views/thredded/topics/_topic.html.erb +47 -0
  309. data/app/views/thredded/topics/_topic_form_admin_options.html.erb +12 -0
  310. data/app/views/thredded/topics/edit.html.erb +50 -0
  311. data/app/views/thredded/topics/index.html.erb +35 -0
  312. data/app/views/thredded/topics/new.html.erb +12 -0
  313. data/app/views/thredded/topics/search.html.erb +39 -0
  314. data/app/views/thredded/topics/show.html.erb +46 -0
  315. data/app/views/thredded/users/_link.html.erb +14 -0
  316. data/app/views/thredded/users/_post.html.erb +6 -0
  317. data/app/views/thredded/users/_posts.html.erb +7 -0
  318. data/bin/rails +6 -0
  319. data/config/i18n-tasks.yml +16 -0
  320. data/config/locales/de.yml +257 -0
  321. data/config/locales/en.yml +253 -0
  322. data/config/locales/es.yml +257 -0
  323. data/config/locales/fr.yml +255 -0
  324. data/config/locales/it.yml +257 -0
  325. data/config/locales/pl.yml +257 -0
  326. data/config/locales/pt-BR.yml +258 -0
  327. data/config/locales/ru.yml +255 -0
  328. data/config/locales/zh-CN.yml +246 -0
  329. data/config/routes.rb +87 -0
  330. data/db/migrate/20160329231848_create_thredded.rb +257 -0
  331. data/db/seeds.rb +4 -0
  332. data/db/upgrade_migrations/20160611094616_upgrade_v0_5_to_v0_6.rb +28 -0
  333. data/db/upgrade_migrations/20160723012349_upgrade_v0_6_to_v0_7.rb +46 -0
  334. data/db/upgrade_migrations/20161019150201_upgrade_v0_7_to_v0_8.rb +34 -0
  335. data/db/upgrade_migrations/20161113161801_upgrade_v0_8_to_v0_9.rb +60 -0
  336. data/db/upgrade_migrations/20170125033319_upgrade_v0_9_to_v0_10.rb +36 -0
  337. data/db/upgrade_migrations/20170312131417_upgrade_thredded_v0_10_to_v0_11.rb +23 -0
  338. data/db/upgrade_migrations/20170420163138_upgrade_thredded_v0_11_to_v0_12.rb +28 -0
  339. data/db/upgrade_migrations/20170811090735_upgrade_thredded_v0_13_to_v_014.rb +21 -0
  340. data/lib/generators/thredded/install/USAGE +8 -0
  341. data/lib/generators/thredded/install/install_generator.rb +20 -0
  342. data/lib/generators/thredded/install/templates/initializer.rb +160 -0
  343. data/lib/tasks/thredded_tasks.rake +14 -0
  344. data/lib/thredded.rb +190 -0
  345. data/lib/thredded/base_migration.rb +14 -0
  346. data/lib/thredded/base_notifier.rb +28 -0
  347. data/lib/thredded/collection_to_strings_with_cache_renderer.rb +86 -0
  348. data/lib/thredded/content_formatter.rb +129 -0
  349. data/lib/thredded/database_seeder.rb +290 -0
  350. data/lib/thredded/db_tools.rb +103 -0
  351. data/lib/thredded/email_transformer.rb +22 -0
  352. data/lib/thredded/email_transformer/base.rb +47 -0
  353. data/lib/thredded/email_transformer/onebox.rb +21 -0
  354. data/lib/thredded/engine.rb +28 -0
  355. data/lib/thredded/errors.rb +68 -0
  356. data/lib/thredded/formatting_demo_content.rb +30 -0
  357. data/lib/thredded/html_pipeline/at_mention_filter.rb +78 -0
  358. data/lib/thredded/html_pipeline/autolink_filter.rb +15 -0
  359. data/lib/thredded/html_pipeline/kramdown_filter.rb +39 -0
  360. data/lib/thredded/html_pipeline/onebox_filter.rb +143 -0
  361. data/lib/thredded/html_pipeline/wrap_iframes_filter.rb +13 -0
  362. data/lib/thredded/version.rb +5 -0
  363. data/lib/thredded/view_hooks/config.rb +37 -0
  364. data/lib/thredded/view_hooks/renderer.rb +30 -0
  365. data/vendor/assets/javascripts/autosize.min.js +6 -0
  366. data/vendor/assets/javascripts/textcomplete.min.js +2 -0
  367. metadata +1035 -0
@@ -0,0 +1,253 @@
1
+ ---
2
+ en:
3
+ thredded:
4
+ content_moderation_states:
5
+ content_blocked_notice: Blocked
6
+ content_blocked_notice_with_record_html: Blocked by %{moderator} %{time_ago}
7
+ email_notifier:
8
+ by_email: by email
9
+ emails:
10
+ message_notification:
11
+ html:
12
+ email_sent_reason_html: >-
13
+ This email was sent to you because %{user} included you in a private topic, “<a href="%{post_url}">%{topic_title}</a>”.
14
+ post_lead_html: 'A new message from %{user} in <a href="%{post_url}">“%{topic_title}”</a>:'
15
+ unsubscribe_instructions_html: :thredded.emails.post_notification.html.unsubscribe_instructions_html
16
+ subject: A new message from %{user} in “%{topic_title}”
17
+ text:
18
+ email_sent_reason: |-
19
+ This email was sent to you because %{user} included you in
20
+ the private topic “%{topic_title}”.
21
+
22
+ Go here to view the conversation:
23
+ %{post_url}
24
+ post_lead: 'A new message from %{user} in “%{topic_title}”:'
25
+ unsubscribe_instructions: :thredded.emails.post_notification.text.unsubscribe_instructions
26
+ post_notification:
27
+ html:
28
+ email_sent_reason_html: 'This email was sent to you because you are following this topic: “<a href="%{post_url}">%{topic_title}</a>”.'
29
+ post_lead_html: '%{user} <a href="%{post_url}">said in “%{topic_title}”</a>:'
30
+ unsubscribe_instructions_html: To unsubscribe from these emails, update your <a href="%{preferences_url}">preferences</a>.
31
+ subject: A new post in “%{topic_title}”
32
+ text:
33
+ email_sent_reason: |-
34
+ This email was sent to you because you are following
35
+ the topic “%{topic_title}”.
36
+
37
+ Go here to view the conversation:
38
+ %{post_url}
39
+ post_lead: "%{user} said in “%{topic_title}”:"
40
+ unsubscribe_instructions: |-
41
+ To unsubscribe from these emails, update your preferences here:
42
+ %{unsubscribe_url}
43
+ errors:
44
+ login_required: Please sign in first.
45
+ not_authorized: You are not authorized to access this page.
46
+ private_topic_create_denied: You are not authorized to create private topics.
47
+ private_topic_not_found: This private topic does not exist.
48
+ form:
49
+ create_btn_submitting: Creating...
50
+ preview: Preview
51
+ update: Update
52
+ update_btn_submitting: Updating...
53
+ messageboard:
54
+ create: Create a New Messageboard
55
+ form:
56
+ create_btn_submitting: :thredded.form.create_btn_submitting
57
+ description_label: Description
58
+ locked_label: Locked
59
+ locked_notice: This messageboard is locked. Only moderators can create new topics here.
60
+ messageboard_group_id_label: Messageboard group
61
+ no_group: No Group
62
+ title_label: Name
63
+ update_btn_submitting: :thredded.form.update_btn_submitting
64
+ index:
65
+ page_title: Messageboards
66
+ last_updated_by_html: Updated %{time_ago} <cite>by %{user}</cite>
67
+ topics_and_posts_counts: "%{topics_count} topics / %{posts_count} posts"
68
+ update: :thredded.form.update
69
+ updated_notice: Messageboard has been updated
70
+ messageboard_first_topic:
71
+ content: |-
72
+ There's not a whole lot here for now.
73
+
74
+ These forums are powered by [Thredded](https://github.com/thredded/thredded) v%{thredded_version}.
75
+ You can contact the Thredded team via the [Thredded chat room](https://gitter.im/thredded/thredded).
76
+ Please let us know that you are using Thredded by tweeting [@thredded](https://twitter.com/thredded)!
77
+ title: Welcome to your messageboard's very first thread
78
+ messageboard_group:
79
+ create: Create a New Messageboard Group
80
+ form:
81
+ create_btn_submitting: :thredded.form.create_btn_submitting
82
+ saved: Messageboard Group %{name} created
83
+ moderation:
84
+ approve_btn: Approve
85
+ block_btn: Block
86
+ moderation_state:
87
+ name: Moderation state
88
+ pending:
89
+ empty:
90
+ content: All posts have been moderated.
91
+ title: Good job!
92
+ post_approved_html: Post approved by %{moderator} %{time_ago}.
93
+ post_blocked_html: Post blocked by %{moderator} %{time_ago}.
94
+ post_deleted_notice: This post has been deleted.
95
+ posts_content_changed_since_moderation_html: >-
96
+ The <a href="%{post_url}">post's</a> content change since it was moderated. Below is the content at the
97
+ time it was moderated.
98
+ search_users:
99
+ form_label: Search users
100
+ form_placeholder: :thredded.moderation.search_users.form_label
101
+ no_results_message: No users with name starting with %{query}
102
+ results_message: Users with names starting with %{query}
103
+ user:
104
+ name: User
105
+ nav:
106
+ all_messageboards: All Messageboards
107
+ edit_messageboard: Edit Messageboard
108
+ edit_post: Edit Post
109
+ edit_private_topic: :thredded.nav.edit_topic
110
+ edit_topic: Edit
111
+ mark_all_read: Mark All As Read
112
+ moderation: Moderation
113
+ moderation_activity: Activity
114
+ moderation_history: History
115
+ moderation_pending: Pending
116
+ moderation_users: Users
117
+ private_topics: Private Messages
118
+ settings: Notification Settings
119
+ null_user_name: Deleted user
120
+ posts:
121
+ delete: Delete Post
122
+ delete_confirm: Are you sure you want to delete this post?
123
+ deleted_notice: Your post has been deleted.
124
+ edit: :thredded.nav.edit_post
125
+ form:
126
+ content_label: Content
127
+ create_btn: Submit Reply
128
+ create_btn_submitting: Posting...
129
+ title_label: Add a post
130
+ update_btn: Update Post
131
+ update_btn_submitting: :thredded.form.update_btn_submitting
132
+ pending_moderation_notice: Your post will be published when it has been reviewed by a moderator.
133
+ quote_btn: Quote
134
+ preferences:
135
+ edit:
136
+ page_title: :thredded.nav.settings
137
+ form:
138
+ auto_follow_topics:
139
+ hint: Automatically follow all new topics. Changing this setting will change it for all messageboards.
140
+ label: Follow all new topics
141
+ follow_topics_on_mention:
142
+ hint: 'When someone mentions you by your username (eg: @sam) you will follow the topic.'
143
+ label: Follow topics you are mentioned in
144
+ messageboard_auto_follow_topics:
145
+ hint: Automatically follow all new topics in this messageboard. This overrides the respective setting
146
+ above.
147
+ label: Follow all new topics
148
+ messageboard_follow_topics_on_mention:
149
+ hint: 'When someone mentions you by your username (eg: @sam) in this messageboard you will follow the
150
+ topic.'
151
+ label: :thredded.preferences.form.follow_topics_on_mention.label
152
+ messageboard_notifications_for_followed_topics:
153
+ label: :thredded.preferences.form.notifications_for_followed_topics.label
154
+ notifications_for_followed_topics:
155
+ label: Notifications for followed topics
156
+ notifications_for_private_topics:
157
+ label: Notifications for private messages
158
+ submit_btn: Update Settings
159
+ update_btn_submitting: :thredded.form.update_btn_submitting
160
+ global_preferences_title: Global Settings
161
+ messageboard_preferences_nav_title: Messageboard Settings
162
+ messageboard_preferences_title_html: Settings for <em>%{messageboard}</em>
163
+ updated_notice: Your settings have been updated.
164
+ private_posts:
165
+ form:
166
+ content_label: Message
167
+ create_btn: Send Message
168
+ create_btn_submitting: Sending...
169
+ update_btn_submitting: :thredded.form.update_btn_submitting
170
+ private_topics:
171
+ create: :thredded.private_topics.form.create_btn
172
+ edit: Edit
173
+ errors:
174
+ user_ids_length: Please specify at least one other user.
175
+ form:
176
+ content_label: :thredded.private_posts.form.content_label
177
+ create_btn: :thredded.private_posts.form.create_btn
178
+ create_btn_submitting: :thredded.private_posts.form.create_btn_submitting
179
+ title_label: :thredded.topics.form.title_label
180
+ title_placeholder_new: Write the subject of this conversation
181
+ title_placeholder_start: Start a new conversation
182
+ update_btn: Update
183
+ update_btn_submitting: :thredded.private_posts.form.update_btn_submitting
184
+ users_label: Participants
185
+ users_placeholder: Select users to participate in this conversation
186
+ no_private_topics:
187
+ create_btn: Start your first private conversation
188
+ title: You have no private messages.
189
+ updated_notice: Title updated
190
+ recent_activity: Recent activity
191
+ search:
192
+ form:
193
+ btn_submit: :thredded.search.form.label
194
+ label: Search
195
+ placeholder: Search Topics and Posts
196
+ time_ago: "%{time} ago"
197
+ topics:
198
+ create: :thredded.topics.form.create_btn
199
+ delete_confirm: Are you sure you want to delete this topic? This CANNOT be undone.
200
+ delete_topic: Delete Topic
201
+ deleted_notice: Topic deleted
202
+ edit: Edit Topic
203
+ follow: Follow this topic
204
+ followed_by: 'Followed by:'
205
+ followed_by_noone: No one is following this topic
206
+ followed_notice: You are now following this topic
207
+ following:
208
+ auto: You are following this topic because auto-follow is enabled.
209
+ manual: You are following this topic.
210
+ mentioned: You are following this topic because you were mentioned on it.
211
+ posted: You are following this topic because you posted to it.
212
+ form:
213
+ categories_placeholder: Categories
214
+ content_label: :thredded.posts.form.content_label
215
+ create_btn: Create New Topic
216
+ messageboard_label: Messageboard
217
+ title_label: Title
218
+ title_placeholder: :thredded.topics.form.title_label
219
+ title_placeholder_start: Start a New Topic
220
+ update_btn: Update Topic
221
+ locked:
222
+ label: Locked
223
+ message: This topic has been locked by a moderator.
224
+ mark_as_unread: Mark unread from here
225
+ not_following: You are not following this topic.
226
+ search:
227
+ no_results_in_messageboard_message_html: There are no results for your search <q>%{query}</q> in %{messageboard}
228
+ no_results_message_html: There are no results for your search <q>%{query}</q>
229
+ page_title: Topics Search Results
230
+ results_in_messageboard_message_html: Search results for <q>%{query}</q> in %{messageboard}
231
+ results_message_html: Search results for <q>%{query}</q>
232
+ search_in_all_messageboards_btn: Search everywhere
233
+ started_by_html: Started %{time_ago} by %{user}
234
+ sticky:
235
+ label: Sticky
236
+ unfollow: Stop following
237
+ unfollowed_notice: You are no longer following this topic
238
+ updated_notice: Topic updated
239
+ users:
240
+ currently_online: Currently Online
241
+ last_active_html: Last active %{time_ago}
242
+ posted_in_topic_html: Posted in %{topic_link}
243
+ posts_count:
244
+ one: Posted once
245
+ other: Posted %{count} times
246
+ recent_activity: :thredded.recent_activity
247
+ started_topic_html: Started %{topic_link}
248
+ started_topics_count:
249
+ one: Started one topic
250
+ other: Started %{count} topics
251
+ user_posted_in_topic_html: "%{user_link} posted in %{topic_link}"
252
+ user_since_html: User since %{time_ago}
253
+ user_started_topic_html: "%{user_link} started %{topic_link}"
@@ -0,0 +1,257 @@
1
+ ---
2
+ es:
3
+ thredded:
4
+ content_moderation_states:
5
+ content_blocked_notice: Censurado
6
+ content_blocked_notice_with_record_html: Censurado por %{moderator} hace %{time_ago}
7
+ email_notifier:
8
+ by_email: vía email
9
+ emails:
10
+ message_notification:
11
+ html:
12
+ email_sent_reason_html: >-
13
+ Este correo electrónico se te envió porque %{user} te incluyó en un tema privado, "<a href="%{post_url}">%{topic_title}</a>".
14
+ post_lead_html: 'Un nuevo mensaje de %{user} en <a href="%{post_url}">"%{topic_title}"</a>:'
15
+ unsubscribe_instructions_html: :thredded.emails.post_notification.html.unsubscribe_instructions_html
16
+ subject: Un nuevo mensaje de %{user} en "%{topic_title}"
17
+ text:
18
+ email_sent_reason: |-
19
+ Este correo electrónico se te envió porque %{user} te incluyó en
20
+ el tema privado "%{topic_title}".
21
+
22
+ Ve aquí para ver la conversación:
23
+ %{post_url}
24
+ post_lead: 'Un nuevo mensaje de %{user} en "%{topic_title}":'
25
+ unsubscribe_instructions: :thredded.emails.post_notification.text.unsubscribe_instructions
26
+ post_notification:
27
+ html:
28
+ email_sent_reason_html: >-
29
+ Este correo electrónico se le envió porque está siguiendo este tema: "<a href="%{post_url}">%{topic_title}</a>".
30
+ post_lead_html: '%{user} <a href="%{post_url}">dijo en "%{topic_title}"</a>:'
31
+ unsubscribe_instructions_html: >-
32
+ Para cancelar la suscripción a estos correos electrónicos, actualice sus <a href="%{preferences_url}">preferencias</a>.
33
+ subject: Un nuevo mensaje en "%{topic_title}"
34
+ text:
35
+ email_sent_reason: |-
36
+ Este correo electrónico se te envió porque estás siguiendo
37
+ el tema "%{topic_title}".
38
+
39
+ Ve aquí para ver la conversación:
40
+ %{post_url}
41
+ post_lead: '%{user} dijo en "%{topic_title}":'
42
+ unsubscribe_instructions: |-
43
+ Para anular la suscripción de estos correos electrónicos, actualice sus preferencias aquí:
44
+ %{unsubscribe_url}
45
+ errors:
46
+ login_required: Por favor, inicia sesión.
47
+ not_authorized: No estás autorizado para ver esta página.
48
+ private_topic_create_denied: No estás autorizado para crear temas privados.
49
+ private_topic_not_found: Este tema privado no existe.
50
+ form:
51
+ create_btn_submitting: Creando...
52
+ preview: Vista previa
53
+ update: Actualizar
54
+ update_btn_submitting: Actualizando...
55
+ messageboard:
56
+ create: Crear un nuevo foro
57
+ form:
58
+ create_btn_submitting: :thredded.form.create_btn_submitting
59
+ description_label: Descripción
60
+ locked_label: Bloqueado
61
+ locked_notice: Este mensaje está bloqueado. Solo los moderadores pueden crear nuevos temas aquí.
62
+ messageboard_group_id_label: grupo messageboard
63
+ no_group: Sin grupo
64
+ title_label: Nombre
65
+ update_btn_submitting: :thredded.form.update_btn_submitting
66
+ index:
67
+ page_title: Foros
68
+ last_updated_by_html: Actualizado %{time_ago} <cite>por %{user}</cite>
69
+ topics_and_posts_counts: "%{topics_count} temas / %{posts_count} mensajes"
70
+ update: :thredded.form.update
71
+ updated_notice: Foro actualizado
72
+ messageboard_first_topic:
73
+ content: |-
74
+ There's not a whole lot here for now.
75
+
76
+ These forums are powered by [Thredded](https://github.com/thredded/thredded) v%{thredded_version}.
77
+ You can contact the Thredded team via the [Thredded chat room](https://gitter.im/thredded/thredded).
78
+ Please let us know that you are using Thredded by tweeting [@thredded](https://twitter.com/thredded)!
79
+ title: Welcome to your messageboard's very first thread
80
+ messageboard_group:
81
+ create: Crear una Nueva Sección
82
+ form:
83
+ create_btn_submitting: :thredded.form.create_btn_submitting
84
+ saved: Sección %{name} creada
85
+ moderation:
86
+ approve_btn: Aprobar
87
+ block_btn: Rechazar
88
+ moderation_state:
89
+ name: Estado de moderación
90
+ pending:
91
+ empty:
92
+ content: Todos los mensajes han sido moderados.
93
+ title: "¡Buen trabajo!"
94
+ post_approved_html: Mensaje aprobado por %{moderator} hace %{time_ago}.
95
+ post_blocked_html: Mensaje censurado por %{moderator} hace %{time_ago}.
96
+ post_deleted_notice: Este mensaje ha sido eliminado.
97
+ posts_content_changed_since_moderation_html: >-
98
+ El contenido del <a href="%{post_url}">mensaje</a> ha sido editado por un moderador. Debajo está el contenido
99
+ original del mensaje.
100
+ search_users:
101
+ form_label: Buscar usuarios
102
+ form_placeholder: :thredded.moderation.search_users.form_label
103
+ no_results_message: No existen usuarios con el nombre empezando por %{query}
104
+ results_message: Usuarios cuyo nombre empieza por %{query}
105
+ user:
106
+ name: Usuario
107
+ nav:
108
+ all_messageboards: Todos los Foros
109
+ edit_messageboard: Editar Foro
110
+ edit_post: Editar Mensaje
111
+ edit_private_topic: :thredded.nav.edit_topic
112
+ edit_topic: Editar
113
+ mark_all_read: Marcar todo como leído
114
+ moderation: Moderación
115
+ moderation_activity: Actividad
116
+ moderation_history: Historial
117
+ moderation_pending: Pendientes
118
+ moderation_users: Usuarios
119
+ private_topics: Mensajes Privados
120
+ settings: Ajuste de Notificaciones
121
+ null_user_name: Usuario eliminado
122
+ posts:
123
+ delete: Eliminar Mensaje
124
+ delete_confirm: "¿Estás seguro de que quieres eliminar este mensaje?"
125
+ deleted_notice: Tu mensaje ha sido eliminado.
126
+ edit: :thredded.nav.edit_post
127
+ form:
128
+ content_label: Contenido
129
+ create_btn: Responder
130
+ create_btn_submitting: Enviando...
131
+ title_label: Añadir una publicación
132
+ update_btn: Actualizar Mensaje
133
+ update_btn_submitting: :thredded.form.update_btn_submitting
134
+ pending_moderation_notice: Tu post será publicado cuando haya sido revisado por un moderador.
135
+ quote_btn: Citar
136
+ preferences:
137
+ edit:
138
+ page_title: :thredded.nav.settings
139
+ form:
140
+ auto_follow_topics:
141
+ hint: Sigue automáticamente todos los temas nuevos. El cambio de este ajuste se cambiará en todos los
142
+ messageboards.
143
+ label: Siga todos los temas nuevos
144
+ follow_topics_on_mention:
145
+ hint: 'Cuando alguien te menciona usando tu nombre de usuario (por ejemplo: @sam), seguirás el tema.'
146
+ label: Sigue temas en los que seas mencionado
147
+ messageboard_auto_follow_topics:
148
+ hint: >-
149
+ Sigue automáticamente todos los nuevos temas en este tablero de mensajes. Esto anula la configuración
150
+ respectiva anteriormente.
151
+ label: Siga todos los temas nuevos
152
+ messageboard_follow_topics_on_mention:
153
+ hint: 'Cuando alguien te menciona usando tu nombre de usuario (por ejemplo: @sam) en este foro, seguirás
154
+ el tema.'
155
+ label: :thredded.preferences.form.follow_topics_on_mention.label
156
+ messageboard_notifications_for_followed_topics:
157
+ label: :thredded.preferences.form.notifications_for_followed_topics.label
158
+ notifications_for_followed_topics:
159
+ label: Notificaciones de temas seguidos
160
+ notifications_for_private_topics:
161
+ label: Notificaciones de mensajes privados
162
+ submit_btn: Actualizar Ajustes
163
+ update_btn_submitting: :thredded.form.update_btn_submitting
164
+ global_preferences_title: Ajustes Generales
165
+ messageboard_preferences_nav_title: Ajustes por foro
166
+ messageboard_preferences_title_html: Ajustes de Notificaciones para <em>%{messageboard}</em>
167
+ updated_notice: Tus ajustes han sido actualizados.
168
+ private_posts:
169
+ form:
170
+ content_label: Mensaje
171
+ create_btn: Enviar Mensaje
172
+ create_btn_submitting: Enviando...
173
+ update_btn_submitting: :thredded.form.update_btn_submitting
174
+ private_topics:
175
+ create: :thredded.private_topics.form.create_btn
176
+ edit: Editar
177
+ errors:
178
+ user_ids_length: Por favor, introduce el nombre de al menos un usuario.
179
+ form:
180
+ content_label: :thredded.private_posts.form.content_label
181
+ create_btn: :thredded.private_posts.form.create_btn
182
+ create_btn_submitting: :thredded.private_posts.form.create_btn_submitting
183
+ title_label: :thredded.topics.form.title_label
184
+ title_placeholder_new: Escribe el asunto de la conversación
185
+ title_placeholder_start: Empezar una nueva conversación
186
+ update_btn: Actualizar
187
+ update_btn_submitting: :thredded.private_posts.form.update_btn_submitting
188
+ users_label: Participantes
189
+ users_placeholder: Selecciona usuarios para que participen en la conversación
190
+ no_private_topics:
191
+ create_btn: Empieza tu primera conversación privada
192
+ title: No tienes mensajes privados.
193
+ updated_notice: Título actualizado
194
+ recent_activity: Actividad reciente
195
+ search:
196
+ form:
197
+ btn_submit: :thredded.search.form.label
198
+ label: Buscar
199
+ placeholder: Busca Temas y Mensajes
200
+ time_ago: hace %{time}
201
+ topics:
202
+ create: :thredded.topics.form.create_btn
203
+ delete_confirm: "¿Seguro que queires eliminar este tema? Esta acción NO se puede deshacer."
204
+ delete_topic: Eliminar Tema
205
+ deleted_notice: Tema eliminado
206
+ edit: Editar Tema
207
+ follow: Seguir este tema
208
+ followed_by: 'Seguido por:'
209
+ followed_by_noone: Nadie está siguiendo este tema
210
+ followed_notice: Estás siguiendo este tema
211
+ following:
212
+ auto: Estás siguiendo este tema porque seguimiento automático está activado.
213
+ manual: Estás siguiendo este tema.
214
+ mentioned: Estás siguiendo este tema porque alguien te ha mencionado en él.
215
+ posted: Estás siguiendo este tema porque has escrito en él.
216
+ form:
217
+ categories_placeholder: Categorías
218
+ content_label: :thredded.posts.form.content_label
219
+ create_btn: Crear Nuevo Tema
220
+ messageboard_label: Foro
221
+ title_label: Título
222
+ title_placeholder: :thredded.topics.form.title_label
223
+ title_placeholder_start: Crear un Nuevo Tema
224
+ update_btn: Actualizar Tema
225
+ locked:
226
+ label: Bloqueado
227
+ message: Este tema ha sido bloqueado por un moderador.
228
+ mark_as_unread: Marcar sin leer desde aquí
229
+ not_following: No estás siguiendo este tema.
230
+ search:
231
+ no_results_in_messageboard_message_html: No hay resultados para tu búsqueda <q>%{query}</q> en %{messageboard}
232
+ no_results_message_html: No hay resultados para tu búsqueda - <q>%{query}</q>
233
+ page_title: Temas encontrados
234
+ results_in_messageboard_message_html: Resultados de la búsqueda para <q>%{query}</q> en %{messageboard}
235
+ results_message_html: Resultados de búsqueda para <q>%{query}</q>
236
+ search_in_all_messageboards_btn: Buscar en todas partes
237
+ started_by_html: Empezado hace %{time_ago} por %{user}
238
+ sticky:
239
+ label: Fijado
240
+ unfollow: Deja de seguir
241
+ unfollowed_notice: Has dejado de seguir este tema
242
+ updated_notice: Tema actualizado
243
+ users:
244
+ currently_online: En línea
245
+ last_active_html: Última vez activo hace %{time_ago}
246
+ posted_in_topic_html: Escribió en %{topic_link}
247
+ posts_count:
248
+ one: Ha escrito una vez
249
+ other: Ha escrito %{count} veces
250
+ recent_activity: :thredded.recent_activity
251
+ started_topic_html: Empezó %{topic_link}
252
+ started_topics_count:
253
+ one: Ha empezado un tema
254
+ other: Ha empezado %{count} temas
255
+ user_posted_in_topic_html: "%{user_link} escribió en %{topic_link}"
256
+ user_since_html: Usuario desde %{time_ago}
257
+ user_started_topic_html: "%{user_link} empezó %{topic_link}"