elabs 2.0.0.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (404) hide show
  1. checksums.yaml +7 -0
  2. data/.eslintrc.yml +26 -0
  3. data/.gitignore +49 -0
  4. data/.gitlab-ci.yml +93 -0
  5. data/.haml-lint.yml +4 -0
  6. data/.node-version +1 -0
  7. data/.rspec +1 -0
  8. data/.rubocop.yml +59 -0
  9. data/.ruby-version +1 -0
  10. data/.simplecov +5 -0
  11. data/.stylelintrc.yml +218 -0
  12. data/CHANGELOG.md +273 -0
  13. data/CODE_OF_CONDUCT.md +78 -0
  14. data/Gemfile +75 -0
  15. data/Gemfile.lock +376 -0
  16. data/LICENSE +21 -0
  17. data/LICENSES.md +6 -0
  18. data/README.md +41 -0
  19. data/ROADMAP.md +61 -0
  20. data/Rakefile +32 -0
  21. data/app/assets/config/elabs_manifest.js +3 -0
  22. data/app/assets/images/elabs/preview_placeholder.png +0 -0
  23. data/app/assets/images/elabs/preview_placeholder_nsfw.png +0 -0
  24. data/app/assets/javascripts/elabs/application.js +27 -0
  25. data/app/assets/javascripts/elabs/helpers-codemirror.js +29 -0
  26. data/app/assets/javascripts/elabs/helpers-markdown.js +42 -0
  27. data/app/assets/javascripts/elabs/helpers.js +17 -0
  28. data/app/assets/javascripts/elabs/modals.js +19 -0
  29. data/app/assets/javascripts/elabs/tabs.js +32 -0
  30. data/app/assets/stylesheets/elabs/_colors.scss +345 -0
  31. data/app/assets/stylesheets/elabs/_icons.scss +9 -0
  32. data/app/assets/stylesheets/elabs/_variables.scss +13 -0
  33. data/app/assets/stylesheets/elabs/app/_acts.scss +58 -0
  34. data/app/assets/stylesheets/elabs/app/_alerts.scss +3 -0
  35. data/app/assets/stylesheets/elabs/app/_buttons.scss +21 -0
  36. data/app/assets/stylesheets/elabs/app/_comments.scss +1 -0
  37. data/app/assets/stylesheets/elabs/app/_content.scss +10 -0
  38. data/app/assets/stylesheets/elabs/app/_content_uploads.scss +39 -0
  39. data/app/assets/stylesheets/elabs/app/_empty.scss +19 -0
  40. data/app/assets/stylesheets/elabs/app/_errors.scss +9 -0
  41. data/app/assets/stylesheets/elabs/app/_filter_links.scss +27 -0
  42. data/app/assets/stylesheets/elabs/app/_forms.scss +69 -0
  43. data/app/assets/stylesheets/elabs/app/_helpers.scss +3 -0
  44. data/app/assets/stylesheets/elabs/app/_languages.scss +6 -0
  45. data/app/assets/stylesheets/elabs/app/_layout.scss +194 -0
  46. data/app/assets/stylesheets/elabs/app/_licenses.scss +6 -0
  47. data/app/assets/stylesheets/elabs/app/_link-to-top.scss +8 -0
  48. data/app/assets/stylesheets/elabs/app/_medias.scss +12 -0
  49. data/app/assets/stylesheets/elabs/app/_modals.scss +53 -0
  50. data/app/assets/stylesheets/elabs/app/_nsfw.scss +5 -0
  51. data/app/assets/stylesheets/elabs/app/_pagination.scss +16 -0
  52. data/app/assets/stylesheets/elabs/app/_tabs.scss +54 -0
  53. data/app/assets/stylesheets/elabs/app/_tags.scss +6 -0
  54. data/app/assets/stylesheets/elabs/app/_toolbars.scss +3 -0
  55. data/app/assets/stylesheets/elabs/app/_users.scss +6 -0
  56. data/app/assets/stylesheets/elabs/app/admin-members/_forms.scss +6 -0
  57. data/app/assets/stylesheets/elabs/app/admin-members/_indexes.scss +70 -0
  58. data/app/assets/stylesheets/elabs/app/admin-members/_layout.scss +17 -0
  59. data/app/assets/stylesheets/elabs/app/areas/_devise.scss +31 -0
  60. data/app/assets/stylesheets/elabs/app/components/_cards.scss +16 -0
  61. data/app/assets/stylesheets/elabs/app/components/_container.scss +4 -0
  62. data/app/assets/stylesheets/elabs/app/mixins/_classifier-card.scss +16 -0
  63. data/app/assets/stylesheets/elabs/app/mixins/_content-card.scss +58 -0
  64. data/app/assets/stylesheets/elabs/app/mixins/_content-full.scss +39 -0
  65. data/app/assets/stylesheets/elabs/app/mixins/_icon.scss +9 -0
  66. data/app/assets/stylesheets/elabs/application.css +14 -0
  67. data/app/assets/stylesheets/elabs/lib/_codemirror.scss +26 -0
  68. data/app/assets/stylesheets/elabs/lib/fontawesome/_fontawesome.scss +38 -0
  69. data/app/assets/stylesheets/elabs/lib/fontawesome/_fonts.scss +42 -0
  70. data/app/assets/stylesheets/elabs/lib/fontawesome/_icons.scss +1118 -0
  71. data/app/assets/stylesheets/elabs/lib/knacss/_knacss-variables.scss +230 -0
  72. data/app/assets/stylesheets/elabs/lib/knacss/_knacss.scss +59 -0
  73. data/app/assets/stylesheets/elabs/style.scss +72 -0
  74. data/app/controllers/elabs/acts_controller.rb +12 -0
  75. data/app/controllers/elabs/admin/admin_application_controller.rb +19 -0
  76. data/app/controllers/elabs/admin/admin_content_application_controller.rb +66 -0
  77. data/app/controllers/elabs/admin/albums_controller.rb +10 -0
  78. data/app/controllers/elabs/admin/articles_controller.rb +10 -0
  79. data/app/controllers/elabs/admin/languages_controller.rb +77 -0
  80. data/app/controllers/elabs/admin/licenses_controller.rb +77 -0
  81. data/app/controllers/elabs/admin/notes_controller.rb +10 -0
  82. data/app/controllers/elabs/admin/projects_controller.rb +10 -0
  83. data/app/controllers/elabs/admin/reports_controller.rb +34 -0
  84. data/app/controllers/elabs/admin/tags_controller.rb +56 -0
  85. data/app/controllers/elabs/admin/uploads_controller.rb +10 -0
  86. data/app/controllers/elabs/admin/users_controller.rb +43 -0
  87. data/app/controllers/elabs/albums_controller.rb +26 -0
  88. data/app/controllers/elabs/articles_controller.rb +25 -0
  89. data/app/controllers/elabs/auth/callbacks_controller.rb +38 -0
  90. data/app/controllers/elabs/auth/confirmations_controller.rb +43 -0
  91. data/app/controllers/elabs/auth/passwords_controller.rb +47 -0
  92. data/app/controllers/elabs/auth/registrations_controller.rb +70 -0
  93. data/app/controllers/elabs/auth/sessions_controller.rb +36 -0
  94. data/app/controllers/elabs/auth/unlocks_controller.rb +38 -0
  95. data/app/controllers/elabs/concerns/elabs_controller.rb +18 -0
  96. data/app/controllers/elabs/concerns/localizable.rb +11 -0
  97. data/app/controllers/elabs/concerns/reportable.rb +17 -0
  98. data/app/controllers/elabs/content_application_controller.rb +45 -0
  99. data/app/controllers/elabs/elabs_application_controller.rb +95 -0
  100. data/app/controllers/elabs/languages_controller.rb +36 -0
  101. data/app/controllers/elabs/licenses_controller.rb +31 -0
  102. data/app/controllers/elabs/member/albums_controller.rb +11 -0
  103. data/app/controllers/elabs/member/articles_controller.rb +11 -0
  104. data/app/controllers/elabs/member/member_application_controller.rb +12 -0
  105. data/app/controllers/elabs/member/member_content_application_controller.rb +128 -0
  106. data/app/controllers/elabs/member/notes_controller.rb +11 -0
  107. data/app/controllers/elabs/member/preferences_controller.rb +36 -0
  108. data/app/controllers/elabs/member/projects_controller.rb +11 -0
  109. data/app/controllers/elabs/member/uploads_controller.rb +11 -0
  110. data/app/controllers/elabs/member/users_controller.rb +28 -0
  111. data/app/controllers/elabs/notes_controller.rb +25 -0
  112. data/app/controllers/elabs/projects_controller.rb +30 -0
  113. data/app/controllers/elabs/reports_controller.rb +36 -0
  114. data/app/controllers/elabs/tags_controller.rb +36 -0
  115. data/app/controllers/elabs/uploads_controller.rb +24 -0
  116. data/app/controllers/elabs/users_controller.rb +36 -0
  117. data/app/helpers/elabs/acts_helper.rb +22 -0
  118. data/app/helpers/elabs/admin_content_helper.rb +54 -0
  119. data/app/helpers/elabs/application_helper.rb +54 -0
  120. data/app/helpers/elabs/content_filters_helper.rb +97 -0
  121. data/app/helpers/elabs/content_renderer_helper.rb +13 -0
  122. data/app/helpers/elabs/member_content_helper.rb +47 -0
  123. data/app/helpers/elabs/thumbnails_helper.rb +28 -0
  124. data/app/helpers/elabs/time_helper.rb +19 -0
  125. data/app/helpers/elabs/uploads_helper.rb +19 -0
  126. data/app/jobs/elabs/application_job.rb +4 -0
  127. data/app/mailers/elabs/application_mailer.rb +6 -0
  128. data/app/models/elabs/act.rb +7 -0
  129. data/app/models/elabs/album.rb +24 -0
  130. data/app/models/elabs/albums_tag.rb +21 -0
  131. data/app/models/elabs/albums_upload.rb +21 -0
  132. data/app/models/elabs/application_content_record.rb +10 -0
  133. data/app/models/elabs/application_record.rb +5 -0
  134. data/app/models/elabs/article.rb +23 -0
  135. data/app/models/elabs/articles_tag.rb +21 -0
  136. data/app/models/elabs/comment.rb +12 -0
  137. data/app/models/elabs/concerns/actable_entity.rb +52 -0
  138. data/app/models/elabs/concerns/content_entity.rb +70 -0
  139. data/app/models/elabs/concerns/countable_entity.rb +81 -0
  140. data/app/models/elabs/concerns/taggable.rb +33 -0
  141. data/app/models/elabs/language.rb +17 -0
  142. data/app/models/elabs/license.rb +15 -0
  143. data/app/models/elabs/note.rb +21 -0
  144. data/app/models/elabs/notes_tag.rb +21 -0
  145. data/app/models/elabs/preference.rb +9 -0
  146. data/app/models/elabs/project.rb +25 -0
  147. data/app/models/elabs/projects_album.rb +21 -0
  148. data/app/models/elabs/projects_article.rb +21 -0
  149. data/app/models/elabs/projects_note.rb +21 -0
  150. data/app/models/elabs/projects_tag.rb +21 -0
  151. data/app/models/elabs/projects_upload.rb +21 -0
  152. data/app/models/elabs/report.rb +11 -0
  153. data/app/models/elabs/tag.rb +18 -0
  154. data/app/models/elabs/upload.rb +28 -0
  155. data/app/models/elabs/uploads_tag.rb +21 -0
  156. data/app/models/elabs/user.rb +30 -0
  157. data/app/validators/elabs/associated_author_validator.rb +11 -0
  158. data/app/views/elabs/acts/_act.json.jbuilder +2 -0
  159. data/app/views/elabs/acts/_filters.html.haml +3 -0
  160. data/app/views/elabs/acts/index.html.haml +27 -0
  161. data/app/views/elabs/acts/index.json.jbuilder +1 -0
  162. data/app/views/elabs/admin/albums/_album.json.jbuilder +2 -0
  163. data/app/views/elabs/admin/albums/index.html.haml +43 -0
  164. data/app/views/elabs/admin/albums/index.json.jbuilder +1 -0
  165. data/app/views/elabs/admin/articles/_article.json.jbuilder +2 -0
  166. data/app/views/elabs/admin/articles/index.html.haml +41 -0
  167. data/app/views/elabs/admin/articles/index.json.jbuilder +1 -0
  168. data/app/views/elabs/admin/languages/_form.html.haml +18 -0
  169. data/app/views/elabs/admin/languages/_language.json.jbuilder +2 -0
  170. data/app/views/elabs/admin/languages/edit.html.haml +6 -0
  171. data/app/views/elabs/admin/languages/index.html.haml +34 -0
  172. data/app/views/elabs/admin/languages/index.json.jbuilder +1 -0
  173. data/app/views/elabs/admin/languages/new.html.haml +3 -0
  174. data/app/views/elabs/admin/licenses/_form.html.haml +25 -0
  175. data/app/views/elabs/admin/licenses/_license.json.jbuilder +2 -0
  176. data/app/views/elabs/admin/licenses/edit.html.haml +6 -0
  177. data/app/views/elabs/admin/licenses/index.html.haml +42 -0
  178. data/app/views/elabs/admin/licenses/index.json.jbuilder +1 -0
  179. data/app/views/elabs/admin/licenses/new.html.haml +3 -0
  180. data/app/views/elabs/admin/notes/_note.json.jbuilder +2 -0
  181. data/app/views/elabs/admin/notes/index.html.haml +40 -0
  182. data/app/views/elabs/admin/notes/index.json.jbuilder +1 -0
  183. data/app/views/elabs/admin/projects/_project.json.jbuilder +2 -0
  184. data/app/views/elabs/admin/projects/index.html.haml +45 -0
  185. data/app/views/elabs/admin/projects/index.json.jbuilder +1 -0
  186. data/app/views/elabs/admin/reports/index.html.haml +27 -0
  187. data/app/views/elabs/admin/reports/index.json.jbuilder +1 -0
  188. data/app/views/elabs/admin/tags/_form.html.haml +17 -0
  189. data/app/views/elabs/admin/tags/_tag.json.jbuilder +2 -0
  190. data/app/views/elabs/admin/tags/edit.html.haml +6 -0
  191. data/app/views/elabs/admin/tags/index.html.haml +27 -0
  192. data/app/views/elabs/admin/tags/index.json.jbuilder +1 -0
  193. data/app/views/elabs/admin/uploads/_upload.json.jbuilder +2 -0
  194. data/app/views/elabs/admin/uploads/index.html.haml +45 -0
  195. data/app/views/elabs/admin/uploads/index.json.jbuilder +1 -0
  196. data/app/views/elabs/admin/users/_admin_user.json.jbuilder +2 -0
  197. data/app/views/elabs/admin/users/index.html.haml +33 -0
  198. data/app/views/elabs/admin/users/index.json.jbuilder +1 -0
  199. data/app/views/elabs/admin/users/show.html.haml +26 -0
  200. data/app/views/elabs/admin/users/show.json.jbuilder +1 -0
  201. data/app/views/elabs/albums/_album.html.haml +38 -0
  202. data/app/views/elabs/albums/_album.json.jbuilder +2 -0
  203. data/app/views/elabs/albums/_filters.html.haml +8 -0
  204. data/app/views/elabs/albums/index.html.haml +9 -0
  205. data/app/views/elabs/albums/index.json.jbuilder +1 -0
  206. data/app/views/elabs/albums/show.html.haml +60 -0
  207. data/app/views/elabs/albums/show.json.jbuilder +1 -0
  208. data/app/views/elabs/articles/_article.html.haml +30 -0
  209. data/app/views/elabs/articles/_article.json.jbuilder +2 -0
  210. data/app/views/elabs/articles/_filters.html.haml +8 -0
  211. data/app/views/elabs/articles/index.html.haml +9 -0
  212. data/app/views/elabs/articles/index.json.jbuilder +1 -0
  213. data/app/views/elabs/articles/show.html.haml +45 -0
  214. data/app/views/elabs/articles/show.json.jbuilder +1 -0
  215. data/app/views/elabs/auth/confirmations/new.html.haml +26 -0
  216. data/app/views/elabs/auth/passwords/edit.html.haml +31 -0
  217. data/app/views/elabs/auth/passwords/new.html.haml +23 -0
  218. data/app/views/elabs/auth/registrations/edit.html.haml +48 -0
  219. data/app/views/elabs/auth/registrations/new.html.haml +34 -0
  220. data/app/views/elabs/auth/sessions/_new.html.haml +15 -0
  221. data/app/views/elabs/auth/sessions/new.html.haml +8 -0
  222. data/app/views/elabs/auth/shared/_links.html.haml +16 -0
  223. data/app/views/elabs/auth/unlocks/new.html.haml +23 -0
  224. data/app/views/elabs/comments/_comment.json.jbuilder +2 -0
  225. data/app/views/elabs/comments/_comments.html.haml +21 -0
  226. data/app/views/elabs/comments/_form.html.haml +31 -0
  227. data/app/views/elabs/languages/_associations.html.haml +51 -0
  228. data/app/views/elabs/languages/_filters.html.haml +6 -0
  229. data/app/views/elabs/languages/_language.json.jbuilder +2 -0
  230. data/app/views/elabs/languages/index.html.haml +33 -0
  231. data/app/views/elabs/languages/index.json.jbuilder +1 -0
  232. data/app/views/elabs/languages/show.html.haml +38 -0
  233. data/app/views/elabs/languages/show.json.jbuilder +1 -0
  234. data/app/views/elabs/layouts/_empty.html.haml +3 -0
  235. data/app/views/elabs/layouts/_footer.html.haml +6 -0
  236. data/app/views/elabs/layouts/_hidden_entry.html.haml +6 -0
  237. data/app/views/elabs/layouts/_hidden_entry_full.html.haml +6 -0
  238. data/app/views/elabs/layouts/_language_menu.html.haml +2 -0
  239. data/app/views/elabs/layouts/_menu.html.haml +72 -0
  240. data/app/views/elabs/layouts/admin_application.html.haml +21 -0
  241. data/app/views/elabs/layouts/application.html.haml +37 -0
  242. data/app/views/elabs/layouts/lists/_albums.html.haml +10 -0
  243. data/app/views/elabs/layouts/lists/_projects.html.haml +10 -0
  244. data/app/views/elabs/layouts/lists/_tags.html.haml +9 -0
  245. data/app/views/elabs/layouts/mailer.html.haml +8 -0
  246. data/app/views/elabs/layouts/mailer.text.haml +1 -0
  247. data/app/views/elabs/layouts/member_application.html.haml +21 -0
  248. data/app/views/elabs/licenses/_associations.html.haml +51 -0
  249. data/app/views/elabs/licenses/_filters.html.haml +3 -0
  250. data/app/views/elabs/licenses/_license.json.jbuilder +2 -0
  251. data/app/views/elabs/licenses/index.html.haml +27 -0
  252. data/app/views/elabs/licenses/index.json.jbuilder +1 -0
  253. data/app/views/elabs/licenses/show.html.haml +44 -0
  254. data/app/views/elabs/licenses/show.json.jbuilder +1 -0
  255. data/app/views/elabs/member/albums/_album.json.jbuilder +2 -0
  256. data/app/views/elabs/member/albums/_form.html.haml +64 -0
  257. data/app/views/elabs/member/albums/edit.html.haml +6 -0
  258. data/app/views/elabs/member/albums/index.html.haml +49 -0
  259. data/app/views/elabs/member/albums/index.json.jbuilder +1 -0
  260. data/app/views/elabs/member/albums/new.html.haml +3 -0
  261. data/app/views/elabs/member/articles/_article.json.jbuilder +2 -0
  262. data/app/views/elabs/member/articles/_form.html.haml +70 -0
  263. data/app/views/elabs/member/articles/edit.html.haml +6 -0
  264. data/app/views/elabs/member/articles/index.html.haml +47 -0
  265. data/app/views/elabs/member/articles/index.json.jbuilder +1 -0
  266. data/app/views/elabs/member/articles/new.html.haml +3 -0
  267. data/app/views/elabs/member/layouts/_empty.html.haml +4 -0
  268. data/app/views/elabs/member/layouts/_markdown-preview.html.haml +8 -0
  269. data/app/views/elabs/member/notes/_form.html.haml +54 -0
  270. data/app/views/elabs/member/notes/_note.json.jbuilder +2 -0
  271. data/app/views/elabs/member/notes/edit.html.haml +6 -0
  272. data/app/views/elabs/member/notes/index.html.haml +47 -0
  273. data/app/views/elabs/member/notes/index.json.jbuilder +1 -0
  274. data/app/views/elabs/member/notes/new.html.haml +3 -0
  275. data/app/views/elabs/member/preferences/_form.html.haml +20 -0
  276. data/app/views/elabs/member/preferences/edit.html.haml +3 -0
  277. data/app/views/elabs/member/projects/_form.html.haml +71 -0
  278. data/app/views/elabs/member/projects/_project.json.jbuilder +2 -0
  279. data/app/views/elabs/member/projects/edit.html.haml +6 -0
  280. data/app/views/elabs/member/projects/index.html.haml +53 -0
  281. data/app/views/elabs/member/projects/index.json.jbuilder +1 -0
  282. data/app/views/elabs/member/projects/new.html.haml +3 -0
  283. data/app/views/elabs/member/uploads/_form.html.haml +67 -0
  284. data/app/views/elabs/member/uploads/_upload.json.jbuilder +2 -0
  285. data/app/views/elabs/member/uploads/edit.html.haml +6 -0
  286. data/app/views/elabs/member/uploads/index.html.haml +61 -0
  287. data/app/views/elabs/member/uploads/index.json.jbuilder +1 -0
  288. data/app/views/elabs/member/uploads/new.html.haml +3 -0
  289. data/app/views/elabs/member/users/_form.html.haml +38 -0
  290. data/app/views/elabs/notes/_filters.html.haml +7 -0
  291. data/app/views/elabs/notes/_note.html.haml +31 -0
  292. data/app/views/elabs/notes/_note.json.jbuilder +2 -0
  293. data/app/views/elabs/notes/index.html.haml +9 -0
  294. data/app/views/elabs/notes/index.json.jbuilder +1 -0
  295. data/app/views/elabs/notes/show.html.haml +44 -0
  296. data/app/views/elabs/notes/show.json.jbuilder +1 -0
  297. data/app/views/elabs/projects/_associations.html.haml +46 -0
  298. data/app/views/elabs/projects/_filters.html.haml +8 -0
  299. data/app/views/elabs/projects/_project.html.haml +29 -0
  300. data/app/views/elabs/projects/index.html.haml +9 -0
  301. data/app/views/elabs/projects/index.json.jbuilder +1 -0
  302. data/app/views/elabs/projects/show.html.haml +71 -0
  303. data/app/views/elabs/projects/show.json.jbuilder +1 -0
  304. data/app/views/elabs/reports/_form.html.haml +29 -0
  305. data/app/views/elabs/tags/_associations.html.haml +51 -0
  306. data/app/views/elabs/tags/_filters.html.haml +3 -0
  307. data/app/views/elabs/tags/_tag.json.jbuilder +2 -0
  308. data/app/views/elabs/tags/index.html.haml +26 -0
  309. data/app/views/elabs/tags/index.json.jbuilder +1 -0
  310. data/app/views/elabs/tags/show.html.haml +34 -0
  311. data/app/views/elabs/tags/show.json.jbuilder +1 -0
  312. data/app/views/elabs/uploads/_filters.html.haml +7 -0
  313. data/app/views/elabs/uploads/_player.html.haml +10 -0
  314. data/app/views/elabs/uploads/_preview.html.haml +17 -0
  315. data/app/views/elabs/uploads/_upload.html.haml +41 -0
  316. data/app/views/elabs/uploads/_upload.json.jbuilder +2 -0
  317. data/app/views/elabs/uploads/index.html.haml +9 -0
  318. data/app/views/elabs/uploads/index.json.jbuilder +1 -0
  319. data/app/views/elabs/uploads/show.html.haml +58 -0
  320. data/app/views/elabs/uploads/show.json.jbuilder +1 -0
  321. data/app/views/elabs/users/_associations.html.haml +51 -0
  322. data/app/views/elabs/users/_filters.html.haml +4 -0
  323. data/app/views/elabs/users/_user.html.haml +31 -0
  324. data/app/views/elabs/users/_user.json.jbuilder +2 -0
  325. data/app/views/elabs/users/index.html.haml +7 -0
  326. data/app/views/elabs/users/index.json.jbuilder +1 -0
  327. data/app/views/elabs/users/show.html.haml +48 -0
  328. data/app/views/elabs/users/show.json.jbuilder +1 -0
  329. data/bin/rails +14 -0
  330. data/config.ru +5 -0
  331. data/config/brakeman.ignore +124 -0
  332. data/config/brakeman.yml +3 -0
  333. data/config/cucumber.yml +9 -0
  334. data/config/routes.rb +116 -0
  335. data/db/migrate/20180813000000_devise_update_users.rb +15 -0
  336. data/db/migrate/20180813000001_create_languages.rb +16 -0
  337. data/db/migrate/20180813000002_create_tags.rb +14 -0
  338. data/db/migrate/20180813000004_create_licenses.rb +17 -0
  339. data/db/migrate/20180813000005_create_reports.rb +15 -0
  340. data/db/migrate/20180813000006_create_comments.rb +15 -0
  341. data/db/migrate/20180813000007_create_acts.rb +10 -0
  342. data/db/migrate/20180813000008_create_preferences.rb +13 -0
  343. data/db/migrate/20180813000009_create_active_storage_tables.active_storage.rb +26 -0
  344. data/db/migrate/20180813000010_create_albums.rb +23 -0
  345. data/db/migrate/20180813000011_create_articles.rb +23 -0
  346. data/db/migrate/20180813000012_create_notes.rb +21 -0
  347. data/db/migrate/20180813000013_create_uploads.rb +26 -0
  348. data/db/migrate/20180813000014_create_projects.rb +44 -0
  349. data/db/seeds.rb +10 -0
  350. data/db/seeds_development.rb +21 -0
  351. data/db/seeds_production.rb +0 -0
  352. data/docs/contributing.md +52 -0
  353. data/docs/cucumber_terms.md +9 -0
  354. data/docs/migrating.md +4 -0
  355. data/docs/overriding.md +20 -0
  356. data/docs/setup.md +136 -0
  357. data/docs/tips.md +13 -0
  358. data/elabs.gemspec +25 -0
  359. data/lib/assets/javascripts/README-highlight.js.md +39 -0
  360. data/lib/assets/javascripts/codemirror-5.39.2/addon/mode/overlay.js +90 -0
  361. data/lib/assets/javascripts/codemirror-5.39.2/lib/codemirror.js +9684 -0
  362. data/lib/assets/javascripts/codemirror-5.39.2/mode/clike/clike.js +834 -0
  363. data/lib/assets/javascripts/codemirror-5.39.2/mode/css/css.js +832 -0
  364. data/lib/assets/javascripts/codemirror-5.39.2/mode/gfm/gfm.js +129 -0
  365. data/lib/assets/javascripts/codemirror-5.39.2/mode/htmlmixed/htmlmixed.js +152 -0
  366. data/lib/assets/javascripts/codemirror-5.39.2/mode/javascript/javascript.js +896 -0
  367. data/lib/assets/javascripts/codemirror-5.39.2/mode/markdown/markdown.js +882 -0
  368. data/lib/assets/javascripts/codemirror-5.39.2/mode/meta.js +217 -0
  369. data/lib/assets/javascripts/codemirror-5.39.2/mode/xml/xml.js +402 -0
  370. data/lib/assets/javascripts/highlight.js-9.12.0/highlight.pack.js +2 -0
  371. data/lib/assets/javascripts/markdown-it-8.4.2.min.js +1 -0
  372. data/lib/assets/stylesheets/codemirror-5.39.2/lib/codemirror.css +346 -0
  373. data/lib/assets/stylesheets/codemirror-5.39.2/theme/base16-dark.css +38 -0
  374. data/lib/assets/stylesheets/codemirror-5.39.2/theme/base16-light.css +38 -0
  375. data/lib/assets/stylesheets/highlight.js-9.12.0/styles/atelier-sulphurpool-light.css +69 -0
  376. data/lib/elabs.rb +41 -0
  377. data/lib/elabs/engine.rb +5 -0
  378. data/lib/elabs/version.rb +3 -0
  379. data/lib/generators/elabs/assets_generator.rb +36 -0
  380. data/lib/generators/elabs/devise_views_generator.rb +24 -0
  381. data/lib/generators/elabs/install_generator.rb +26 -0
  382. data/lib/generators/elabs/required_assets_generator.rb +26 -0
  383. data/lib/generators/elabs/views_generator.rb +25 -0
  384. data/lib/generators/templates/elabs.rb +25 -0
  385. data/lib/generators/templates/fast_gettext.rb +3 -0
  386. data/lib/tasks/.keep +0 -0
  387. data/lib/tasks/cucumber.rake +75 -0
  388. data/lib/tasks/elabs_tasks.rake +4 -0
  389. data/lib/tasks/factory_bot.rake +14 -0
  390. data/lib/tasks/wipe.rake +31 -0
  391. data/locale/app.pot +1124 -0
  392. data/locale/devise_strings.rb +88 -0
  393. data/locale/en/app.edit.po +1123 -0
  394. data/locale/en/app.po +1123 -0
  395. data/locale/en/app.po.time_stamp +0 -0
  396. data/locale/fr/app.edit.po +1126 -0
  397. data/locale/fr/app.po +1125 -0
  398. data/locale/fr/app.po.time_stamp +0 -0
  399. data/locale/model_attributes.rb +85 -0
  400. data/package.json +22 -0
  401. data/script/cucumber +10 -0
  402. data/tmp/pids/.keep +0 -0
  403. data/yarn.lock +2759 -0
  404. metadata +463 -0
File without changes
@@ -0,0 +1,1126 @@
1
+ # French translations for app package.
2
+ # Copyright (C) 2018 THE PACKAGE'S COPYRIGHT HOLDER
3
+ # This file is distributed under the same license as the app package.
4
+ # FIRST AUTHOR <EMAIL@ADDRESS>, 2018.
5
+ #
6
+ msgid ""
7
+ msgstr ""
8
+ "Project-Id-Version: app 1.0.0\n"
9
+ "Report-Msgid-Bugs-To: \n"
10
+ "PO-Revision-Date: 2018-09-06 06:49+0200\n"
11
+ "Language-Team: French\n"
12
+ "Language: fr\n"
13
+ "MIME-Version: 1.0\n"
14
+ "Content-Type: text/plain; charset=UTF-8\n"
15
+ "Content-Transfer-Encoding: 8bit\n"
16
+ "Plural-Forms: nplurals=2; plural=(n > 1);\n"
17
+ "X-Language: fr_FR\n"
18
+ "X-Source-Language: C\n"
19
+ "Last-Translator: \n"
20
+ "X-Generator: Poedit 2.1.1\n"
21
+ "POT-Creation-Date: 2018-09-06 06:46+0200\n"
22
+
23
+ msgid "%<icon>s %<text>s"
24
+ msgstr "%<icon>s %<text>s"
25
+
26
+ msgid "%<model_name>s was successfully created."
27
+ msgstr "%<model_name>s mis à jour avec succès."
28
+
29
+ msgid "%<model_name>s was successfully destroyed."
30
+ msgstr "%<model_name>s supprimé avec succès."
31
+
32
+ msgid "%<model_name>s was successfully locked."
33
+ msgstr "%<model_name>s verrouillé avec succès."
34
+
35
+ msgid "%<model_name>s was successfully published."
36
+ msgstr "%<model_name>s publié avec succès."
37
+
38
+ msgid "%<model_name>s was successfully removed from publication."
39
+ msgstr "%<model_name>s dé-publié avec succès."
40
+
41
+ msgid "%<model_name>s was successfully unlocked."
42
+ msgstr "%<model_name>s déverrouillé avec succès."
43
+
44
+ msgid "%<model_name>s was successfully updated."
45
+ msgstr "%<model_name>s mis à jour avec succès."
46
+
47
+ msgid "%<nb>i album"
48
+ msgid_plural "%<nb>i albums"
49
+ msgstr[0] "%<nb>i album"
50
+ msgstr[1] "%<nb>i albums"
51
+
52
+ msgid "%<nb>i article"
53
+ msgid_plural "%<nb>i articles"
54
+ msgstr[0] "%<nb>i article"
55
+ msgstr[1] "%<nb>i articles"
56
+
57
+ msgid "%<nb>i note"
58
+ msgid_plural "%<nb>i notes"
59
+ msgstr[0] "%<nb>i note"
60
+ msgstr[1] "%<nb>i notes"
61
+
62
+ msgid "%<nb>i project"
63
+ msgid_plural "%<nb>i projects"
64
+ msgstr[0] "%<nb>i projet"
65
+ msgstr[1] "%<nb>i projets"
66
+
67
+ msgid "%<nb>i upload"
68
+ msgid_plural "%<nb>i uploads"
69
+ msgstr[0] "%<nb>i fichier"
70
+ msgstr[1] "%<nb>i fichiers"
71
+
72
+ msgid "%<number>i characters minimum"
73
+ msgstr "%{number} caractères minimum"
74
+
75
+ msgid "%<s>s:"
76
+ msgstr "%<s>s :"
77
+
78
+ msgid "%<string>s has been %<event>s"
79
+ msgstr "%<string>s a été %<event>s"
80
+
81
+ msgid "%<text>s %<icon>s"
82
+ msgstr "%<text>s %<icon>s"
83
+
84
+ msgid "%I:%M %p"
85
+ msgstr "%H:%M"
86
+
87
+ msgid "%Y-%m-%d"
88
+ msgstr "%m-%d-%Y"
89
+
90
+ msgid "(leave blank if you don't want to change it)"
91
+ msgstr "(laissez vide si vous ne souhaitez pas le changer)"
92
+
93
+ msgid "(we need your current password to confirm the following changes)"
94
+ msgstr "(nous avons besoin de votre mot de passe actuel pour valider les changements suivants)"
95
+
96
+ msgid "A note"
97
+ msgstr "Une note"
98
+
99
+ msgid "About"
100
+ msgstr "À propos"
101
+
102
+ msgid "Account"
103
+ msgstr "Compte"
104
+
105
+ msgid "Act"
106
+ msgstr "Acte"
107
+
108
+ msgid "Act|Content type"
109
+ msgstr "Type de contenu"
110
+
111
+ msgid "Act|Event"
112
+ msgstr "Évènement"
113
+
114
+ msgid "Admin"
115
+ msgstr "Admin"
116
+
117
+ msgid "Administration:"
118
+ msgstr "Administration :"
119
+
120
+ msgid "Album count"
121
+ msgstr "Nb. d'albums"
122
+
123
+ msgid "Albums"
124
+ msgstr "Albums"
125
+
126
+ msgid "Albums:"
127
+ msgstr "Albums :"
128
+
129
+ msgid "Allow contact"
130
+ msgstr "Autoriser le contact"
131
+
132
+ msgid "An error prevented the instructions from being sent:"
133
+ msgid_plural "%<nb>i errors prevented the instructions from being sent:"
134
+ msgstr[0] "Une erreur a empêché les instructions d'être envoyées :"
135
+ msgstr[1] "%<nb>i erreur ont empêché les instructions d'être envoyées :"
136
+
137
+ msgid "An error prevented this album from being saved:"
138
+ msgid_plural "%<nb>i errors prevented this album from being saved:"
139
+ msgstr[0] "Une erreur a empêché cet album d'être enregistré :"
140
+ msgstr[1] "%<nb>i erreurs ont empêché cet album d'être enregistré :"
141
+
142
+ msgid "An error prevented this article from being saved:"
143
+ msgid_plural "%<nb>i errors prevented this article from being saved:"
144
+ msgstr[0] "Une erreur a empêché cet article d'être enregistré :"
145
+ msgstr[1] "%<nb>i erreurs ont empêché cet article d'être enregistré :"
146
+
147
+ msgid "An error prevented this language from being saved:"
148
+ msgid_plural "%<nb>i errors prevented this language from being saved:"
149
+ msgstr[0] "Une erreur a empêché cette langue d'être enregistrée :"
150
+ msgstr[1] "%<nb>i erreurs ont empêché cette langue d'être enregistrée :"
151
+
152
+ msgid "An error prevented this license from being saved:"
153
+ msgid_plural "%<nb>i errors prevented this license from being saved:"
154
+ msgstr[0] "Une erreur a empêché cette licence d'être enregistrée :"
155
+ msgstr[1] "%<nb>i erreurs ont empêché cette licence d'être enregistrée :"
156
+
157
+ msgid "An error prevented this note from being saved:"
158
+ msgid_plural "%<nb>i errors prevented this note from being saved:"
159
+ msgstr[0] "Une erreur a empêché cette note d'être enregistrée :"
160
+ msgstr[1] "%<nb>i erreurs ont empêché cette note d'être enregistrée :"
161
+
162
+ msgid "An error prevented this project from being saved:"
163
+ msgid_plural "%<nb>i errors prevented this project from being saved:"
164
+ msgstr[0] "Une erreur a empêché ce projet d'être enregistré :"
165
+ msgstr[1] "%<nb>i erreurs ont empêché ce projet d'être enregistré :"
166
+
167
+ msgid "An error prevented this tag from being saved:"
168
+ msgid_plural "%<nb>i errors prevented this tag from being saved:"
169
+ msgstr[0] "Une erreur a empêché ce tag d'être enregistré :"
170
+ msgstr[1] "%<nb>i erreurs ont empêché ce tag d'être enregistré :"
171
+
172
+ msgid "An error prevented this upload from being saved:"
173
+ msgid_plural "%<nb>i errors prevented this upload from being saved:"
174
+ msgstr[0] "Une erreur a empêché ce fichier d'être enregistré :"
175
+ msgstr[1] "%<nb>i erreurs ont empêché ce fichier d'être enregistré :"
176
+
177
+ msgid "An error prevented your account from being created:"
178
+ msgid_plural "%<nb>i errors prevented your account from being created:"
179
+ msgstr[0] "Une erreur a empêché la création de votre compte :"
180
+ msgstr[1] "%<nb>i erreurs ont empêché la création de votre compte :"
181
+
182
+ msgid "An error prevented your account from being updated:"
183
+ msgid_plural "%<nb>i errors prevented your account from being updated:"
184
+ msgstr[0] "Une erreur a empêché la mise à jour de votre compte :"
185
+ msgstr[1] "%<nb>i erreurs ont empêché la création de votre compte :"
186
+
187
+ msgid "An error prevented your comment from being saved:"
188
+ msgid_plural "%<nb>i errors prevented your comment from being saved:"
189
+ msgstr[0] "Une erreur a empêché ce commentaire d'être enregistré :"
190
+ msgstr[1] "%<nb>i erreurs ont empêché ce commentaire d'être enregistré :"
191
+
192
+ msgid "An error prevented your password from being changed:"
193
+ msgid_plural "%<nb>i errors prevented your password from being changed:"
194
+ msgstr[0] "Une erreur a empêché votre mot de passe d'être modifié:"
195
+ msgstr[1] "%<nb>i erreurs ont empêché votre mot de passe d'être modifié :"
196
+
197
+ msgid "An error prevented your preferences from being saved:"
198
+ msgid_plural "%<nb>i errors prevented your preferences from being saved:"
199
+ msgstr[0] "Une erreur a empêché l'enregistrement de vos preférences :"
200
+ msgstr[1] "%<nb>i erreurs ont empêché l'enregistrement de vos preférences :"
201
+
202
+ msgid "An error prevented your report from being saved:"
203
+ msgid_plural "%<nb>i errors prevented your report from being saved:"
204
+ msgstr[0] "Une erreur a empêché ce rapport d'être enregistré :"
205
+ msgstr[1] "%<nb>i erreurs ont empêché ce rapport d'être enregistré :"
206
+
207
+ msgid "Application content record"
208
+ msgstr ""
209
+
210
+ msgid "ApplicationContentRecord|Albums count"
211
+ msgstr "Nombre d'albums"
212
+
213
+ msgid "ApplicationContentRecord|Articles count"
214
+ msgstr "Nombre d'articles"
215
+
216
+ msgid "ApplicationContentRecord|Content"
217
+ msgstr "Contenu"
218
+
219
+ msgid "ApplicationContentRecord|Description"
220
+ msgstr "Description"
221
+
222
+ msgid "ApplicationContentRecord|Excerpt"
223
+ msgstr "Extrait"
224
+
225
+ msgid "ApplicationContentRecord|Hidden in history"
226
+ msgstr "Caché de l'historique"
227
+
228
+ msgid "ApplicationContentRecord|Locked"
229
+ msgstr "Verrouillé"
230
+
231
+ msgid "ApplicationContentRecord|Main url"
232
+ msgstr "URL principale"
233
+
234
+ msgid "ApplicationContentRecord|Name"
235
+ msgstr "Nom"
236
+
237
+ msgid "ApplicationContentRecord|Notes count"
238
+ msgstr "Nombre de notes"
239
+
240
+ msgid "ApplicationContentRecord|Published"
241
+ msgstr "Publié"
242
+
243
+ msgid "ApplicationContentRecord|Published at"
244
+ msgstr "Publié le"
245
+
246
+ msgid "ApplicationContentRecord|Sfw"
247
+ msgstr "Sfw"
248
+
249
+ msgid "ApplicationContentRecord|Short description"
250
+ msgstr "Description courte"
251
+
252
+ msgid "ApplicationContentRecord|Title"
253
+ msgstr "Titre"
254
+
255
+ msgid "ApplicationContentRecord|Uploads count"
256
+ msgstr "Nombre de fichers"
257
+
258
+ msgid "Are you sure?"
259
+ msgstr "Êtes-vous sûr·e ?"
260
+
261
+ msgid "Article count"
262
+ msgstr "Nb. d'articles"
263
+
264
+ msgid "Articles"
265
+ msgstr "Articles"
266
+
267
+ msgid "Articles:"
268
+ msgstr "Articles :"
269
+
270
+ msgid "Author:"
271
+ msgstr "Auteur :"
272
+
273
+ msgid "Authors"
274
+ msgstr "Auteurs"
275
+
276
+ msgid "Bio"
277
+ msgstr "Bio"
278
+
279
+ msgid "By submitting this comment, you agree to be recontacted by the author."
280
+ msgstr "En soumettant ce commentaire, vous acceptez que l'auteur prenne contact avec vous."
281
+
282
+ msgid "By submitting this report, you agree to be recontacted by administrators."
283
+ msgstr "En soumettant ce commentaire, vous acceptez que des administrateurs prennent contact avec vous."
284
+
285
+ msgid "Cancel my account"
286
+ msgstr "Annuler mon compte"
287
+
288
+ msgid "Cancelling your account will delete all the content you created, with no possibility to restore it. This is definitive."
289
+ msgstr "L'annulation de votre compte supprimera tout le contenu que vous avez créé, sans possibilité de le restaurer. C'est définitif."
290
+
291
+ msgid "Change my password"
292
+ msgstr "Changer mon mot de passe"
293
+
294
+ msgid "Change your password"
295
+ msgstr "Changer de mot de passe"
296
+
297
+ msgid "Come back later, content is being created, somewhere"
298
+ msgstr "Revenez plus tard, le contenu n'est pas encore créé"
299
+
300
+ msgid "Comment"
301
+ msgstr "Commentaire"
302
+
303
+ msgid "Comment was successfully created."
304
+ msgstr "Le commentaire a bien été sauvegardé."
305
+
306
+ msgid "Comments"
307
+ msgstr "Commentaires"
308
+
309
+ msgid "Comment|Allow contact"
310
+ msgstr "Autoriser le contact"
311
+
312
+ msgid "Comment|Comment"
313
+ msgstr "Commentaire"
314
+
315
+ msgid "Comment|Content type"
316
+ msgstr "Type de contenu"
317
+
318
+ msgid "Comment|Deleted"
319
+ msgstr "Supprimé"
320
+
321
+ msgid "Comment|Email"
322
+ msgstr "Courriel"
323
+
324
+ msgid "Comment|Name"
325
+ msgstr "Nom"
326
+
327
+ msgid "Confirm new password"
328
+ msgstr "Confirmez le nouveau mot de passe"
329
+
330
+ msgid "Confirmation"
331
+ msgstr "Confirmation"
332
+
333
+ msgid "Content"
334
+ msgstr "Contenu"
335
+
336
+ msgid "Content not displayed"
337
+ msgstr "Contenu masqué"
338
+
339
+ msgid "Create some content"
340
+ msgstr "Créer du contenu"
341
+
342
+ msgid "Created at"
343
+ msgstr "Créé le"
344
+
345
+ msgid "Currently waiting confirmation for: %<email>s"
346
+ msgstr "En attente de confirmation pour : %<email>s"
347
+
348
+ msgid "Date"
349
+ msgstr "Date"
350
+
351
+ msgid "Destroy"
352
+ msgstr "Supprimer"
353
+
354
+ msgid "Didn't receive confirmation instructions?"
355
+ msgstr "Vous n'avez pas reçu les instructions de confirmation ?"
356
+
357
+ msgid "Didn't receive unlock instructions?"
358
+ msgstr "Vous n'avez pas reçu les informations de déverouillage ?"
359
+
360
+ msgid "Download"
361
+ msgstr "Télécharger"
362
+
363
+ msgid "Edit"
364
+ msgstr "Éditer"
365
+
366
+ msgid "Edit \"%<language>s\""
367
+ msgstr "Éditer \"%<language>s\""
368
+
369
+ msgid "Edit \"%<name>s\""
370
+ msgstr "Éditer \"%<name>s\""
371
+
372
+ msgid "Editing album"
373
+ msgstr "Édition d'un album"
374
+
375
+ msgid "Editing article"
376
+ msgstr "Édition d'un article"
377
+
378
+ msgid "Editing license"
379
+ msgstr "Édition d'une licence"
380
+
381
+ msgid "Editing note"
382
+ msgstr "Édition d'une note"
383
+
384
+ msgid "Editing preferences"
385
+ msgstr "Édition des préférences"
386
+
387
+ msgid "Editing project"
388
+ msgstr "Édition d'un projet"
389
+
390
+ msgid "Editing upload"
391
+ msgstr "Édition d'un fichier"
392
+
393
+ msgid "Email"
394
+ msgstr "Courriel"
395
+
396
+ msgid "Email:"
397
+ msgstr "Courriel :"
398
+
399
+ msgid "Forgot your password?"
400
+ msgstr "Mot de passe oublié ?"
401
+
402
+ msgid "Hide NSFW"
403
+ msgstr "Cacher NSFW"
404
+
405
+ msgid "Home page"
406
+ msgstr "Accueil"
407
+
408
+ msgid "ISO 639-1 code"
409
+ msgstr "Code ISO 639-1"
410
+
411
+ msgid "ISO 639-1 code:"
412
+ msgstr "Code ISO 639-1 :"
413
+
414
+ msgid "Icon"
415
+ msgstr "Icône"
416
+
417
+ msgid "Icon:"
418
+ msgstr "Icône :"
419
+
420
+ msgid "Insc. date"
421
+ msgstr "Date d'insc."
422
+
423
+ msgid "Is SFW:"
424
+ msgstr "Est SFW :"
425
+
426
+ msgid "Javascript seems to be disabled."
427
+ msgstr "Javascript semble désactivé."
428
+
429
+ msgid "Language"
430
+ msgstr "Langue"
431
+
432
+ msgid "Language was successfully created."
433
+ msgstr "La langue a été créée avec succès."
434
+
435
+ msgid "Language was successfully destroyed."
436
+ msgstr "La langue a été supprimée avec succès."
437
+
438
+ msgid "Language was successfully updated."
439
+ msgstr "La langue a été mise à jour avec succès."
440
+
441
+ msgid "Language:"
442
+ msgstr "Langue :"
443
+
444
+ msgid "Languages"
445
+ msgstr "Langues"
446
+
447
+ msgid "Language|Albums count"
448
+ msgstr "Nb. d'albums"
449
+
450
+ msgid "Language|Articles count"
451
+ msgstr "Nb. d'articles"
452
+
453
+ msgid "Language|Iso639 1"
454
+ msgstr "Iso639 1"
455
+
456
+ msgid "Language|Name"
457
+ msgstr "Nom"
458
+
459
+ msgid "Language|Notes count"
460
+ msgstr "Nb. de notes"
461
+
462
+ msgid "Language|Projects count"
463
+ msgstr "Nb. de projets"
464
+
465
+ msgid "Language|Uploads count"
466
+ msgstr "Nb. de fichiers"
467
+
468
+ msgid "Last %<amount>i albums:"
469
+ msgstr "Derniers %<amount>i albums :"
470
+
471
+ msgid "Last %<amount>i articles:"
472
+ msgstr "Derniers %<amount>i articles :"
473
+
474
+ msgid "Last %<amount>i notes:"
475
+ msgstr "Dernières %<amount>i notes :"
476
+
477
+ msgid "Last %<amount>i projects:"
478
+ msgstr "Derniers %<amount>i projets :"
479
+
480
+ msgid "Last %<amount>i uploads:"
481
+ msgstr "Derniers %<amount>i fichiers :"
482
+
483
+ msgid "Last events"
484
+ msgstr "Derniers évènements"
485
+
486
+ msgid "Leave a comment"
487
+ msgstr "Laisser un commentaire"
488
+
489
+ msgid "License"
490
+ msgstr "Licence"
491
+
492
+ msgid "License was successfully created."
493
+ msgstr "La licence a été créée avec succès."
494
+
495
+ msgid "License was successfully destroyed."
496
+ msgstr "La licence a été supprimée avec succès."
497
+
498
+ msgid "License was successfully updated."
499
+ msgstr "La licence a été mise à jour avec succès."
500
+
501
+ msgid "License:"
502
+ msgstr "Licence :"
503
+
504
+ msgid "Licenses"
505
+ msgstr "Licences"
506
+
507
+ msgid "License|Albums count"
508
+ msgstr "Nb. d'albums"
509
+
510
+ msgid "License|Articles count"
511
+ msgstr "Nb. d'articles"
512
+
513
+ msgid "License|Icon"
514
+ msgstr "Icône"
515
+
516
+ msgid "License|Name"
517
+ msgstr "Nom"
518
+
519
+ msgid "License|Notes count"
520
+ msgstr "Nb. de notes"
521
+
522
+ msgid "License|Projects count"
523
+ msgstr "Nb. de projets"
524
+
525
+ msgid "License|Tldr url"
526
+ msgstr "URL TL;DR"
527
+
528
+ msgid "License|Uploads count"
529
+ msgstr "Nb. de fichiers"
530
+
531
+ msgid "License|Url"
532
+ msgstr "URL"
533
+
534
+ msgid "List of comma-separated tags"
535
+ msgstr "Liste de tags séparés par des virgules"
536
+
537
+ msgid "Listing reports"
538
+ msgstr "Liste des rapports"
539
+
540
+ msgid "Lock"
541
+ msgstr "Verrouiller"
542
+
543
+ msgid "Lock."
544
+ msgstr "Verr."
545
+
546
+ msgid "Log in"
547
+ msgstr "Connexion"
548
+
549
+ msgid "Log out"
550
+ msgstr "Déconnexion"
551
+
552
+ msgid "Login"
553
+ msgstr "Connexion"
554
+
555
+ msgid "Main url"
556
+ msgstr "URL principale"
557
+
558
+ msgid "Main url:"
559
+ msgstr "URL principale :"
560
+
561
+ msgid "Markdown supported. %<preview_button>s"
562
+ msgstr "Markdown supporté. %<preview_button>s"
563
+
564
+ msgid "Member"
565
+ msgstr "Membre"
566
+
567
+ msgid "Name"
568
+ msgstr "Nom"
569
+
570
+ msgid "New Album"
571
+ msgstr "Nouvel Album"
572
+
573
+ msgid "New Article"
574
+ msgstr "Nouvel Article"
575
+
576
+ msgid "New Language"
577
+ msgstr "Nouvelle Langues"
578
+
579
+ msgid "New License"
580
+ msgstr "Nouvelle Licence"
581
+
582
+ msgid "New Note"
583
+ msgstr "Nouvelle Note"
584
+
585
+ msgid "New Project"
586
+ msgstr "Nouveau Projet"
587
+
588
+ msgid "New Upload"
589
+ msgstr "Nouveau Fichier"
590
+
591
+ msgid "New album"
592
+ msgstr "Nouvel album"
593
+
594
+ msgid "New article"
595
+ msgstr "Nouvel article"
596
+
597
+ msgid "New language"
598
+ msgstr "Nouvelle langue"
599
+
600
+ msgid "New license"
601
+ msgstr "Nouvele licence"
602
+
603
+ msgid "New note"
604
+ msgstr "Nouvelle note"
605
+
606
+ msgid "New password"
607
+ msgstr "Nouveau mot de passe"
608
+
609
+ msgid "New project"
610
+ msgstr "Nouveau projet"
611
+
612
+ msgid "New upload"
613
+ msgstr "Nouveau fichier"
614
+
615
+ msgid "No comment has been left"
616
+ msgstr "Aucun commentaire"
617
+
618
+ msgid "No tags"
619
+ msgstr "Pas de tag"
620
+
621
+ msgid "Not in a project"
622
+ msgstr "Aucun projet"
623
+
624
+ msgid "Not in an album"
625
+ msgstr "Aucun album"
626
+
627
+ msgid "Note count"
628
+ msgstr "Nb. de notes"
629
+
630
+ msgid "Notes"
631
+ msgstr "Notes"
632
+
633
+ msgid "Notes:"
634
+ msgstr "Notes :"
635
+
636
+ msgid "Oh noes ! There is nothing here!"
637
+ msgstr "Oh non ! Il n'y a rien ici !"
638
+
639
+ msgid "Only NSFW"
640
+ msgstr "NSFW seuls"
641
+
642
+ msgid "Only SFW"
643
+ msgstr "SFW seuls"
644
+
645
+ msgid "Permalink"
646
+ msgstr "Lien permanent"
647
+
648
+ msgid "Posted on:"
649
+ msgstr "Posté le :"
650
+
651
+ msgid "Preference"
652
+ msgstr "Préférence"
653
+
654
+ msgid "Preference was successfully updated."
655
+ msgstr "Préference mises à jour avec succès"
656
+
657
+ msgid "Preferences"
658
+ msgstr "Préférences"
659
+
660
+ msgid "Preference|Locale"
661
+ msgstr "Langue"
662
+
663
+ msgid "Preference|Show nsfw"
664
+ msgstr "Afficher NSFW"
665
+
666
+ msgid "Preview"
667
+ msgstr "Prévisualiser"
668
+
669
+ msgid "Project count"
670
+ msgstr "Nb. de projets"
671
+
672
+ msgid "Projects"
673
+ msgstr "Projets"
674
+
675
+ msgid "Projects:"
676
+ msgstr "Projets :"
677
+
678
+ msgid "Pub."
679
+ msgstr "Pub."
680
+
681
+ msgid "Pub. date"
682
+ msgstr "Date de pub."
683
+
684
+ msgid "Publish"
685
+ msgstr "Publier"
686
+
687
+ msgid "Published at"
688
+ msgstr "Publié le"
689
+
690
+ msgid "Published at:"
691
+ msgstr "Publié le :"
692
+
693
+ msgid "Real name"
694
+ msgstr "Nom réel"
695
+
696
+ msgid "Real name:"
697
+ msgstr "Nom réel :"
698
+
699
+ msgid "Reason"
700
+ msgstr "Raison"
701
+
702
+ msgid "Report"
703
+ msgstr "Rapport"
704
+
705
+ msgid "Report this page"
706
+ msgstr "Rapporter cette page"
707
+
708
+ msgid "Report was successfully created."
709
+ msgstr "Le rapport a été créé avec succès"
710
+
711
+ msgid "Report was successfully destroyed."
712
+ msgstr "Le rapport a été supprimé avec succès"
713
+
714
+ msgid "Report will be posted as \"%<name>s\""
715
+ msgstr "Le rapport sera envoyé en tant que \"%<name>s\""
716
+
717
+ msgid "Reports"
718
+ msgstr "Rapports"
719
+
720
+ msgid "Report|Allow contact"
721
+ msgstr "Autoriser d'être contacté"
722
+
723
+ msgid "Report|Email"
724
+ msgstr "Courriel"
725
+
726
+ msgid "Report|Name"
727
+ msgstr "Nom"
728
+
729
+ msgid "Report|Reason"
730
+ msgstr "Raison"
731
+
732
+ msgid "Report|Url"
733
+ msgstr "URL"
734
+
735
+ msgid "Resend confirmation instructions"
736
+ msgstr "Ré-envoyer les instructions de confirmation"
737
+
738
+ msgid "Resend unlock instructions"
739
+ msgstr "Ré-envoyer les instructions de déverouillage"
740
+
741
+ msgid "Role"
742
+ msgstr "Rôle"
743
+
744
+ msgid "Role:"
745
+ msgstr "Rôle :"
746
+
747
+ msgid "SFW"
748
+ msgstr "SFW"
749
+
750
+ msgid "SFW:"
751
+ msgstr "SFW :"
752
+
753
+ msgid "Save"
754
+ msgstr "Enregister"
755
+
756
+ msgid "Send me reset password instructions"
757
+ msgstr "Envoyez-moi les instructions de réinitialisation du mot de passe"
758
+
759
+ msgid "Sensitive changes"
760
+ msgstr "Changements sensibles"
761
+
762
+ msgid "Show"
763
+ msgstr "Afficher"
764
+
765
+ msgid "Show NSFW"
766
+ msgstr "Afficher NSFW"
767
+
768
+ msgid "Show all"
769
+ msgstr "Afficher tout"
770
+
771
+ msgid "Show online"
772
+ msgstr "Afficher en ligne"
773
+
774
+ msgid "Sign in with %<provider>s"
775
+ msgstr "Connectez-vous avec %<provider>s"
776
+
777
+ msgid "Sign up"
778
+ msgstr "S'inscrire"
779
+
780
+ msgid "Since"
781
+ msgstr "Depuis"
782
+
783
+ msgid "Since:"
784
+ msgstr "Depuis :"
785
+
786
+ msgid "Skip hist."
787
+ msgstr "Passer l'histo."
788
+
789
+ msgid "Subscription date"
790
+ msgstr "Date d'inscription"
791
+
792
+ msgid "Subscription date:"
793
+ msgstr "Date d'inscription :"
794
+
795
+ msgid "TL; DR"
796
+ msgstr "TL ; DR"
797
+
798
+ msgid "TL;DR URL"
799
+ msgstr "URL TL ; DR"
800
+
801
+ msgid "Tag"
802
+ msgstr "Tag"
803
+
804
+ msgid "Tag was successfully destroyed."
805
+ msgstr "Tag supprimé avec succès"
806
+
807
+ msgid "Tag was successfully updated."
808
+ msgstr "Tag mis à jour avec succès"
809
+
810
+ msgid "Tags"
811
+ msgstr "Tags"
812
+
813
+ msgid "Tags list"
814
+ msgstr "Liste des tags"
815
+
816
+ msgid "Tags:"
817
+ msgstr "Tags :"
818
+
819
+ msgid "Tag|Albums count"
820
+ msgstr "Nb. d'albums"
821
+
822
+ msgid "Tag|Articles count"
823
+ msgstr "Nb. d'articles"
824
+
825
+ msgid "Tag|Name"
826
+ msgstr "Nom"
827
+
828
+ msgid "Tag|Notes count"
829
+ msgstr "Nb. de notes"
830
+
831
+ msgid "Tag|Projects count"
832
+ msgstr "Nb. de projets"
833
+
834
+ msgid "Tag|Uploads count"
835
+ msgstr "Nb. de fichiers"
836
+
837
+ msgid "The following formats will be viewable online; other will need a download: %<formats>s"
838
+ msgstr "Les formats suivant seront visionnables en ligne; les autre demanderont un téléchargement : %<formats>s"
839
+
840
+ msgid "This %<model>s is not yours"
841
+ msgstr "Ce %<model>s n'est pas le vôtre"
842
+
843
+ msgid "This comment will be posted as \"%<name>s\""
844
+ msgstr "Ce commentaire sera posté en tant que \"%<name>s\""
845
+
846
+ msgid "This content might not be appropriate for every situation."
847
+ msgstr "Ce contenu n'est sûrement pas approprié dans toutes les situations"
848
+
849
+ msgid "This content needs review and have been retired for now."
850
+ msgstr "Ce contenu a besoin d'être revu et a été enlevé pour le moment."
851
+
852
+ msgid "This space is empty"
853
+ msgstr "Cet espace est vide"
854
+
855
+ msgid "Title"
856
+ msgstr "Titre"
857
+
858
+ msgid "URL"
859
+ msgstr "URL"
860
+
861
+ msgid "Unlock"
862
+ msgstr "Déverrouiller"
863
+
864
+ msgid "Unpublish"
865
+ msgstr "Dé-publier"
866
+
867
+ msgid "Upd. date"
868
+ msgstr "Date de MàJ"
869
+
870
+ msgid "Updated at:"
871
+ msgstr "Date de MàJ :"
872
+
873
+ msgid "Upload count"
874
+ msgstr "Nb. de fichiers"
875
+
876
+ msgid "Uploads"
877
+ msgstr "Fichiers"
878
+
879
+ msgid "Uploads:"
880
+ msgstr "Fichiers :"
881
+
882
+ msgid "User"
883
+ msgstr "Utilisateur"
884
+
885
+ msgid "User was successfully destroyed."
886
+ msgstr "L'utilisateur a été supprimé avec succès."
887
+
888
+ msgid "User:"
889
+ msgstr "Utilisateur :"
890
+
891
+ msgid "Username"
892
+ msgstr "Nom d'utilisateur"
893
+
894
+ msgid "Username:"
895
+ msgstr "Nom d'utilisateur :"
896
+
897
+ msgid "Users"
898
+ msgstr "Utilisateurs"
899
+
900
+ msgid "User|Albums count"
901
+ msgstr "Nb. d'albums"
902
+
903
+ msgid "User|Articles count"
904
+ msgstr "Nb. d'articles"
905
+
906
+ msgid "User|Biography"
907
+ msgstr "User|Biographie"
908
+
909
+ msgid "User|Confirmation sent at"
910
+ msgstr "User|Confirmation envoyée le"
911
+
912
+ msgid "User|Confirmation token"
913
+ msgstr "User|Jeton de confirmation"
914
+
915
+ msgid "User|Confirmed at"
916
+ msgstr "User|Confirmé le"
917
+
918
+ msgid "User|Email"
919
+ msgstr "User|Courriel"
920
+
921
+ msgid "User|Encrypted password"
922
+ msgstr "User|Mot de passe crypté"
923
+
924
+ msgid "User|Failed attempts"
925
+ msgstr "User|Tentatives manquées"
926
+
927
+ msgid "User|Locked at"
928
+ msgstr "User|Vérouillé le"
929
+
930
+ msgid "User|Notes count"
931
+ msgstr "Nb. de notes"
932
+
933
+ msgid "User|Projects count"
934
+ msgstr "Nb. de projets"
935
+
936
+ msgid "User|Real name"
937
+ msgstr "Nom réel"
938
+
939
+ msgid "User|Remember created at"
940
+ msgstr ""
941
+
942
+ msgid "User|Reset password sent at"
943
+ msgstr ""
944
+
945
+ msgid "User|Reset password token"
946
+ msgstr ""
947
+
948
+ msgid "User|Role"
949
+ msgstr "Rôle"
950
+
951
+ msgid "User|Unconfirmed email"
952
+ msgstr "Courriel non confirmé"
953
+
954
+ msgid "User|Unlock token"
955
+ msgstr ""
956
+
957
+ msgid "User|Uploads count"
958
+ msgstr "Nb. de fichiers"
959
+
960
+ msgid "User|Username"
961
+ msgstr "Nom d'utilisateur"
962
+
963
+ msgid "View online"
964
+ msgstr "Voir en ligne"
965
+
966
+ msgid "With content only"
967
+ msgstr "Avec du contenu"
968
+
969
+ msgid "Your browser does not support the audio tag."
970
+ msgstr "Votre navigateur ne supporte pas le tag \"audio\"."
971
+
972
+ msgid "Your browser does not support the video tag."
973
+ msgstr "Votre navigateur ne supporte pas le tag \"video\"."
974
+
975
+ msgid "Your infos were successfully saved"
976
+ msgstr "Vos informations ont été sauvegardées avec succès"
977
+
978
+ msgid "created"
979
+ msgstr "créé"
980
+
981
+ msgid "devise.confirmations.confirmed"
982
+ msgstr "Addresse de courriel confirmée."
983
+
984
+ msgid "devise.confirmations.send_instructions"
985
+ msgstr "Vous allez recevoir un courriel avec les instructions de confirmation dans quelques minutes"
986
+
987
+ msgid "devise.confirmations.send_paranoid_instructions"
988
+ msgstr "Si votre addresse existe dans la base de données, vous allez recevoir un email avec les instructions de confirmation d'ici quelques minutes."
989
+
990
+ msgid "devise.failure.already_authenticated"
991
+ msgstr "Votre session est déjà ouverte."
992
+
993
+ msgid "devise.failure.inactive"
994
+ msgstr "Votre compte n'est pas encore activé."
995
+
996
+ msgid "devise.failure.invalid"
997
+ msgstr "Courriel ou mot de passe invalide."
998
+
999
+ msgid "devise.failure.last_attempt"
1000
+ msgstr "Votre compte est verouillé."
1001
+
1002
+ msgid "devise.failure.locked"
1003
+ msgstr "Il ne vous reste qu'un essai avant que votre compte ne soit verrouillé."
1004
+
1005
+ msgid "devise.failure.not_found_in_database"
1006
+ msgstr "Courriel ou mot de passe invalide."
1007
+
1008
+ msgid "devise.failure.timeout"
1009
+ msgstr "La session a expiré. Veuillez vous reconnecter."
1010
+
1011
+ msgid "devise.failure.unauthenticated"
1012
+ msgstr "Vous devez vous authentifier ou vous identifier pour continuer."
1013
+
1014
+ msgid "devise.failure.unconfirmed"
1015
+ msgstr "Veuillez confirmer votre addresse de courriel avant de continuer."
1016
+
1017
+ msgid "devise.mailer.confirmation_instructions.subject"
1018
+ msgstr "Instructions de confirmation"
1019
+
1020
+ msgid "devise.mailer.email_changed.subject"
1021
+ msgstr "Instructions de changement de mot de passe"
1022
+
1023
+ msgid "devise.mailer.password_change.subject"
1024
+ msgstr "Informations de déverouillage"
1025
+
1026
+ msgid "devise.mailer.reset_password_instructions.subject"
1027
+ msgstr "Courriel changé"
1028
+
1029
+ msgid "devise.mailer.unlock_instructions.subject"
1030
+ msgstr "Mot de passe changé"
1031
+
1032
+ msgid "devise.omniauth_callbacks.failure"
1033
+ msgstr "Could not authenticate you from %{kind} because \"%{reason}\"."
1034
+
1035
+ msgid "devise.omniauth_callbacks.success"
1036
+ msgstr "Successfully authenticated from %{kind} account."
1037
+
1038
+ msgid "devise.passwords.no_token"
1039
+ msgstr "Vous ne pouvez pas accéder à cette page sans venir d'un lien présent dans un email de confirmation. Si c'est le cas, vérifiez que vous avez bien utilisé la bonne URL."
1040
+
1041
+ msgid "devise.passwords.send_instructions"
1042
+ msgstr "Vous allez recevoir un courriel avec les instructions de changement de mot de passe."
1043
+
1044
+ msgid "devise.passwords.send_paranoid_instructions"
1045
+ msgstr "Si votre addresse existe dans la base de données, vous allez recevoir un lien pour récupérer votre mot de passe."
1046
+
1047
+ msgid "devise.passwords.updated"
1048
+ msgstr "Votre mot de passe a été changé avec succès. Vous êtes maintenant authentifié·e"
1049
+
1050
+ msgid "devise.passwords.updated_not_active"
1051
+ msgstr "Votre mot de passe a été changé avec succès"
1052
+
1053
+ msgid "devise.registrations.destroyed"
1054
+ msgstr "Au revoir! Votre compte a été annulé avec succès. À la prochaine !"
1055
+
1056
+ msgid "devise.registrations.signed_up"
1057
+ msgstr "Bienvenue !"
1058
+
1059
+ msgid "devise.registrations.signed_up_but_inactive"
1060
+ msgstr "Votre inscription est réussie. Vous devez cependant activer votre compte avant de vous connecter"
1061
+
1062
+ msgid "devise.registrations.signed_up_but_locked"
1063
+ msgstr "Votre inscription est réussie. Votre compte est malheureusement verouillé"
1064
+
1065
+ msgid "devise.registrations.signed_up_but_unconfirmed"
1066
+ msgstr "Un courriel avec un lien de confirmation a été envoyé."
1067
+
1068
+ msgid "devise.registrations.update_needs_confirmation"
1069
+ msgstr "Votre compte a été mis à jour avec succès. Cependant, vous devez maintenant valider votre nouvelle addresse de courriel en suivant le lien qui vous a été envoyé."
1070
+
1071
+ msgid "devise.registrations.updated"
1072
+ msgstr "Votre compte a été mis à jour avec succès."
1073
+
1074
+ msgid "devise.sessions.already_signed_out"
1075
+ msgstr "Session ouverte avec succès."
1076
+
1077
+ msgid "devise.sessions.signed_in"
1078
+ msgstr "Session fermée avec succès."
1079
+
1080
+ msgid "devise.sessions.signed_out"
1081
+ msgstr "Session fermée avec succès."
1082
+
1083
+ msgid "devise.unlocks.send_instructions"
1084
+ msgstr "Vous allez recevoir un courriel abec les instructions de déverrouillage."
1085
+
1086
+ msgid "devise.unlocks.send_paranoid_instructions"
1087
+ msgstr "Si votre compte existe, vous allez recevoir un courriel avec les instructions de déverrouillage."
1088
+
1089
+ msgid "devise.unlocks.unlocked"
1090
+ msgstr "Votre compte a bien été déverouillé. Vous pouvez vous connecter."
1091
+
1092
+ msgid "errors.messages.already_confirmed"
1093
+ msgstr "a déjà été confirmé. Vous pouvez vous connecter."
1094
+
1095
+ msgid "errors.messages.confirmation_period_expired"
1096
+ msgstr "a besoin d'être confirmé dans une période de %{period}. Veuillez en redemander un autre."
1097
+
1098
+ msgid "errors.messages.expired"
1099
+ msgstr "a expiré, veuillez en redemander un autre"
1100
+
1101
+ msgid "errors.messages.not_found"
1102
+ msgstr "non trouvé"
1103
+
1104
+ msgid "errors.messages.not_locked"
1105
+ msgstr "n'était pas verouillé"
1106
+
1107
+ msgid "errors.messages.not_saved.one"
1108
+ msgstr "Une erreur a empêché votre compte d'être enregistré :"
1109
+
1110
+ msgid "errors.messages.not_saved.other"
1111
+ msgstr "%{count} erreurs ont empêché votre compte d'être enregistré :"
1112
+
1113
+ msgid "locked"
1114
+ msgstr "verrouillé"
1115
+
1116
+ msgid "published"
1117
+ msgstr "publié"
1118
+
1119
+ msgid "removed from publication"
1120
+ msgstr "non publié"
1121
+
1122
+ msgid "unlocked"
1123
+ msgstr "déverrouillé"
1124
+
1125
+ msgid "updated"
1126
+ msgstr "mis à jour"