alchemy_cms 3.2.1 → 3.3.0.rc1

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 (556) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +28 -0
  3. data/.gitignore +2 -2
  4. data/.travis.yml +11 -3
  5. data/CHANGELOG.md +100 -0
  6. data/CONTRIBUTING.md +1 -1
  7. data/Gemfile +12 -1
  8. data/README.md +25 -7
  9. data/Rakefile +1 -3
  10. data/alchemy_cms.gemspec +7 -15
  11. data/app/assets/fonts/alchemy/icons.eot +0 -0
  12. data/app/assets/fonts/alchemy/icons.svg +28 -66
  13. data/app/assets/fonts/alchemy/icons.ttf +0 -0
  14. data/app/assets/fonts/alchemy/icons.woff +0 -0
  15. data/app/assets/images/alchemy/icons.png +0 -0
  16. data/app/assets/javascripts/alchemy/alchemy.base.js.coffee +10 -3
  17. data/app/assets/javascripts/alchemy/alchemy.buttons.js.coffee +15 -6
  18. data/app/assets/javascripts/alchemy/alchemy.char_counter.js.coffee +1 -1
  19. data/app/assets/javascripts/alchemy/alchemy.datepicker.js.coffee +1 -1
  20. data/app/assets/javascripts/alchemy/alchemy.dialog.js.coffee +10 -4
  21. data/app/assets/javascripts/alchemy/alchemy.dirty.js.coffee +16 -22
  22. data/app/assets/javascripts/alchemy/alchemy.dragndrop.js.coffee +69 -32
  23. data/app/assets/javascripts/alchemy/alchemy.element_editors.js.coffee +147 -83
  24. data/app/assets/javascripts/alchemy/alchemy.file_progress.js.coffee +14 -14
  25. data/app/assets/javascripts/alchemy/alchemy.hotkeys.js.coffee +1 -1
  26. data/app/assets/javascripts/alchemy/alchemy.i18n.js.coffee +1 -1
  27. data/app/assets/javascripts/alchemy/alchemy.image_overlay.coffee +55 -0
  28. data/app/assets/javascripts/alchemy/alchemy.initializer.js.coffee +8 -1
  29. data/app/assets/javascripts/alchemy/alchemy.js +3 -1
  30. data/app/assets/javascripts/alchemy/alchemy.link_dialog.js.coffee +36 -31
  31. data/app/assets/javascripts/alchemy/alchemy.preview.js.coffee +35 -29
  32. data/app/assets/javascripts/alchemy/alchemy.sitemap.js.coffee +51 -5
  33. data/app/assets/javascripts/alchemy/alchemy.tinymce.js.coffee +26 -10
  34. data/app/assets/javascripts/alchemy/{alchemy.windows.js.coffee → alchemy.trash_window.js.coffee} +1 -13
  35. data/app/assets/javascripts/alchemy/alchemy.uploader.js.coffee +15 -17
  36. data/app/assets/javascripts/tinymce/plugins/alchemy_link/plugin.min.js +3 -3
  37. data/app/assets/stylesheets/alchemy/_extends.scss +1 -1
  38. data/app/assets/stylesheets/alchemy/_mixins.scss +27 -0
  39. data/app/assets/stylesheets/alchemy/_variables.scss +1 -0
  40. data/app/assets/stylesheets/alchemy/admin.scss +1 -0
  41. data/app/assets/stylesheets/alchemy/archive.scss +0 -57
  42. data/app/assets/stylesheets/alchemy/base.scss +1 -18
  43. data/app/assets/stylesheets/alchemy/buttons.scss +30 -25
  44. data/app/assets/stylesheets/alchemy/dialogs.scss +25 -9
  45. data/app/assets/stylesheets/alchemy/elements.scss +182 -126
  46. data/app/assets/stylesheets/alchemy/form_fields.scss +14 -8
  47. data/app/assets/stylesheets/alchemy/forms.scss +10 -1
  48. data/app/assets/stylesheets/alchemy/frame.scss +3 -10
  49. data/app/assets/stylesheets/alchemy/icon-font.scss +13 -6
  50. data/app/assets/stylesheets/alchemy/icons.scss +16 -0
  51. data/app/assets/stylesheets/alchemy/image_library.scss +269 -0
  52. data/app/assets/stylesheets/alchemy/selects.scss +1 -0
  53. data/app/assets/stylesheets/alchemy/sitemap.scss +12 -1
  54. data/app/assets/stylesheets/alchemy/toolbar.scss +2 -2
  55. data/app/assets/stylesheets/alchemy/upload.scss +97 -87
  56. data/app/assets/stylesheets/alchemy/welcome.sass +49 -0
  57. data/app/controllers/alchemy/admin/attachments_controller.rb +21 -29
  58. data/app/controllers/alchemy/admin/base_controller.rb +23 -4
  59. data/app/controllers/alchemy/admin/clipboard_controller.rb +0 -1
  60. data/app/controllers/alchemy/admin/contents_controller.rb +2 -4
  61. data/app/controllers/alchemy/admin/dashboard_controller.rb +4 -4
  62. data/app/controllers/alchemy/admin/elements_controller.rb +20 -11
  63. data/app/controllers/alchemy/admin/essence_files_controller.rb +2 -2
  64. data/app/controllers/alchemy/admin/essence_pictures_controller.rb +10 -9
  65. data/app/controllers/alchemy/admin/languages_controller.rb +0 -1
  66. data/app/controllers/alchemy/admin/layoutpages_controller.rb +0 -2
  67. data/app/controllers/alchemy/admin/legacy_page_urls_controller.rb +0 -1
  68. data/app/controllers/alchemy/admin/pages_controller.rb +46 -29
  69. data/app/controllers/alchemy/admin/pictures_controller.rb +44 -55
  70. data/app/controllers/alchemy/admin/resources_controller.rb +8 -75
  71. data/app/controllers/alchemy/admin/tags_controller.rb +10 -8
  72. data/app/controllers/alchemy/admin/trash_controller.rb +0 -6
  73. data/app/controllers/alchemy/api/contents_controller.rb +0 -1
  74. data/app/controllers/alchemy/api/elements_controller.rb +0 -1
  75. data/app/controllers/alchemy/api/pages_controller.rb +4 -1
  76. data/app/controllers/alchemy/attachments_controller.rb +4 -5
  77. data/app/controllers/alchemy/base_controller.rb +6 -5
  78. data/app/controllers/alchemy/elements_controller.rb +1 -1
  79. data/app/controllers/alchemy/messages_controller.rb +9 -4
  80. data/app/controllers/alchemy/pages_controller.rb +133 -137
  81. data/app/controllers/alchemy/pictures_controller.rb +12 -10
  82. data/app/controllers/concerns/alchemy/admin/uploader_responses.rb +41 -0
  83. data/app/controllers/concerns/alchemy/legacy_page_redirects.rb +56 -0
  84. data/app/controllers/concerns/alchemy/locale_redirects.rb +38 -0
  85. data/app/controllers/concerns/alchemy/page_redirects.rb +80 -0
  86. data/app/controllers/concerns/alchemy/site_redirects.rb +22 -0
  87. data/app/helpers/alchemy/admin/attachments_helper.rb +1 -2
  88. data/app/helpers/alchemy/admin/base_helper.rb +36 -62
  89. data/app/helpers/alchemy/admin/contents_helper.rb +6 -80
  90. data/app/helpers/alchemy/admin/elements_helper.rb +36 -15
  91. data/app/helpers/alchemy/admin/essences_helper.rb +15 -8
  92. data/app/helpers/alchemy/admin/form_helper.rb +6 -10
  93. data/app/helpers/alchemy/admin/navigation_helper.rb +4 -7
  94. data/app/helpers/alchemy/admin/pages_helper.rb +14 -35
  95. data/app/helpers/alchemy/admin/pictures_helper.rb +12 -14
  96. data/app/helpers/alchemy/admin/tags_helper.rb +5 -7
  97. data/app/helpers/alchemy/base_helper.rb +9 -17
  98. data/app/helpers/alchemy/elements_block_helper.rb +5 -13
  99. data/app/helpers/alchemy/elements_helper.rb +6 -6
  100. data/app/helpers/alchemy/essences_helper.rb +3 -16
  101. data/app/helpers/alchemy/pages_helper.rb +32 -25
  102. data/app/helpers/alchemy/url_helper.rb +14 -16
  103. data/app/mailers/alchemy/messages.rb +0 -2
  104. data/app/models/alchemy.rb +0 -2
  105. data/app/models/alchemy/attachment.rb +45 -56
  106. data/app/models/alchemy/cell.rb +7 -8
  107. data/app/models/alchemy/content.rb +39 -24
  108. data/app/models/alchemy/content/factory.rb +27 -44
  109. data/app/models/alchemy/element.rb +101 -267
  110. data/app/models/alchemy/element/definitions.rb +9 -8
  111. data/app/models/alchemy/element/element_contents.rb +150 -0
  112. data/app/models/alchemy/element/element_essences.rb +109 -0
  113. data/app/models/alchemy/element/presenters.rb +18 -7
  114. data/app/models/alchemy/essence_date.rb +1 -2
  115. data/app/models/alchemy/essence_file.rb +10 -6
  116. data/app/models/alchemy/essence_html.rb +0 -1
  117. data/app/models/alchemy/essence_picture.rb +12 -4
  118. data/app/models/alchemy/essence_richtext.rb +6 -3
  119. data/app/models/alchemy/language.rb +48 -21
  120. data/app/models/alchemy/language/code.rb +1 -4
  121. data/app/models/alchemy/page.rb +33 -35
  122. data/app/models/alchemy/page/page_cells.rb +6 -10
  123. data/app/models/alchemy/page/page_elements.rb +130 -100
  124. data/app/models/alchemy/page/page_naming.rb +2 -3
  125. data/app/models/alchemy/page/page_natures.rb +50 -16
  126. data/app/models/alchemy/page/page_scopes.rb +7 -7
  127. data/app/models/alchemy/page/page_users.rb +3 -3
  128. data/app/models/alchemy/picture.rb +48 -33
  129. data/app/models/alchemy/picture/transformations.rb +8 -9
  130. data/app/models/alchemy/site.rb +19 -17
  131. data/app/models/alchemy/site/layout.rb +9 -9
  132. data/app/models/alchemy/tag.rb +0 -2
  133. data/app/models/alchemy/tree_node.rb +5 -4
  134. data/app/serializers/alchemy/attachment_serializer.rb +0 -1
  135. data/app/serializers/alchemy/base_serializer.rb +30 -0
  136. data/app/serializers/alchemy/cell_serializer.rb +0 -1
  137. data/app/serializers/alchemy/essence_boolean_serializer.rb +0 -1
  138. data/app/serializers/alchemy/essence_date_serializer.rb +0 -1
  139. data/app/serializers/alchemy/essence_file_serializer.rb +0 -1
  140. data/app/serializers/alchemy/essence_html_serializer.rb +0 -1
  141. data/app/serializers/alchemy/essence_link_serializer.rb +0 -1
  142. data/app/serializers/alchemy/essence_picture_serializer.rb +0 -1
  143. data/app/serializers/alchemy/essence_richtext_serializer.rb +0 -1
  144. data/app/serializers/alchemy/essence_select_serializer.rb +0 -1
  145. data/app/serializers/alchemy/essence_text_serializer.rb +0 -1
  146. data/app/serializers/alchemy/legacy_element_serializer.rb +0 -1
  147. data/app/serializers/alchemy/page_serializer.rb +0 -1
  148. data/app/serializers/alchemy/page_tree_serializer.rb +90 -0
  149. data/app/serializers/alchemy/picture_serializer.rb +0 -1
  150. data/app/views/alchemy/_menubar.html.erb +3 -3
  151. data/app/views/alchemy/admin/attachments/_archive_overlay.html.erb +11 -16
  152. data/app/views/alchemy/admin/attachments/_attachment.html.erb +9 -9
  153. data/app/views/alchemy/admin/attachments/_files_list.html.erb +7 -15
  154. data/app/views/alchemy/admin/attachments/_overlay_file_list.html.erb +1 -1
  155. data/app/views/alchemy/admin/attachments/_tag_list.html.erb +2 -2
  156. data/app/views/alchemy/admin/attachments/edit.html.erb +3 -3
  157. data/app/views/alchemy/admin/attachments/index.html.erb +10 -17
  158. data/app/views/alchemy/admin/clipboard/clear.js.erb +1 -1
  159. data/app/views/alchemy/admin/clipboard/index.html.erb +3 -3
  160. data/app/views/alchemy/admin/clipboard/insert.js.erb +3 -3
  161. data/app/views/alchemy/admin/clipboard/remove.js.erb +2 -2
  162. data/app/views/alchemy/admin/contents/_missing.html.erb +5 -7
  163. data/app/views/alchemy/admin/contents/create.js.erb +1 -1
  164. data/app/views/alchemy/admin/contents/new.html.erb +2 -2
  165. data/app/views/alchemy/admin/dashboard/_locked_pages.html.erb +6 -6
  166. data/app/views/alchemy/admin/dashboard/_recent_pages.html.erb +2 -2
  167. data/app/views/alchemy/admin/dashboard/_users.html.erb +2 -2
  168. data/app/views/alchemy/admin/dashboard/help.html.erb +15 -15
  169. data/app/views/alchemy/admin/dashboard/index.html.erb +6 -6
  170. data/app/views/alchemy/admin/dashboard/info.html.erb +5 -5
  171. data/app/views/alchemy/admin/elements/_add_picture.html.erb +1 -1
  172. data/app/views/alchemy/admin/elements/_element.html.erb +52 -18
  173. data/app/views/alchemy/admin/elements/_element_footer.html.erb +11 -0
  174. data/app/views/alchemy/admin/elements/{_element_head.html.erb → _element_header.html.erb} +8 -8
  175. data/app/views/alchemy/admin/elements/_element_toolbar.html.erb +49 -0
  176. data/app/views/alchemy/admin/elements/_new_element_form.html.erb +7 -6
  177. data/app/views/alchemy/admin/elements/_picture_gallery_editor.html.erb +1 -1
  178. data/app/views/alchemy/admin/elements/_refresh_editor.js.erb +1 -1
  179. data/app/views/alchemy/admin/elements/create.js.erb +13 -8
  180. data/app/views/alchemy/admin/elements/fold.js.erb +12 -7
  181. data/app/views/alchemy/admin/elements/index.html.erb +12 -8
  182. data/app/views/alchemy/admin/elements/list.html.erb +3 -3
  183. data/app/views/alchemy/admin/elements/new.html.erb +4 -4
  184. data/app/views/alchemy/admin/elements/order.js.erb +3 -4
  185. data/app/views/alchemy/admin/elements/publish.js.erb +15 -0
  186. data/app/views/alchemy/admin/elements/trash.js.erb +3 -3
  187. data/app/views/alchemy/admin/elements/update.js.erb +7 -8
  188. data/app/views/alchemy/admin/essence_files/edit.html.erb +16 -13
  189. data/app/views/alchemy/admin/essence_pictures/crop.html.erb +3 -3
  190. data/app/views/alchemy/admin/essence_pictures/edit.html.erb +8 -8
  191. data/app/views/alchemy/admin/languages/_form.html.erb +12 -3
  192. data/app/views/alchemy/admin/languages/_language.html.erb +8 -2
  193. data/app/views/alchemy/admin/languages/_table.html.erb +11 -5
  194. data/app/views/alchemy/admin/languages/index.html.erb +1 -1
  195. data/app/views/alchemy/admin/layoutpages/_layoutpage.html.erb +8 -8
  196. data/app/views/alchemy/admin/layoutpages/edit.html.erb +2 -2
  197. data/app/views/alchemy/admin/layoutpages/index.html.erb +6 -13
  198. data/app/views/alchemy/admin/leave.html.erb +5 -5
  199. data/app/views/alchemy/admin/legacy_page_urls/_form.html.erb +1 -1
  200. data/app/views/alchemy/admin/legacy_page_urls/_legacy_page_url.html.erb +4 -4
  201. data/app/views/alchemy/admin/legacy_page_urls/_new.html.erb +1 -1
  202. data/app/views/alchemy/admin/pages/_create_language_form.html.erb +9 -9
  203. data/app/views/alchemy/admin/pages/_external_link.html.erb +6 -6
  204. data/app/views/alchemy/admin/pages/_file_link.html.erb +6 -6
  205. data/app/views/alchemy/admin/pages/_form.html.erb +6 -6
  206. data/app/views/alchemy/admin/pages/_internal_link.html.erb +9 -11
  207. data/app/views/alchemy/admin/pages/_legacy_urls.html.erb +3 -3
  208. data/app/views/alchemy/admin/pages/_locked_page.html.erb +4 -4
  209. data/app/views/alchemy/admin/pages/_new_page_form.html.erb +2 -2
  210. data/app/views/alchemy/admin/pages/_page.html.erb +95 -80
  211. data/app/views/alchemy/admin/pages/_page_for_links.html.erb +22 -22
  212. data/app/views/alchemy/admin/pages/_page_infos.html.erb +12 -0
  213. data/app/views/alchemy/admin/pages/_page_status.html.erb +7 -9
  214. data/app/views/alchemy/admin/pages/_sitemap.html.erb +35 -6
  215. data/app/views/alchemy/admin/pages/_tinymce_custom_config.html.erb +0 -3
  216. data/app/views/alchemy/admin/pages/configure.html.erb +1 -1
  217. data/app/views/alchemy/admin/pages/configure_external.html.erb +4 -4
  218. data/app/views/alchemy/admin/pages/edit.html.erb +39 -44
  219. data/app/views/alchemy/admin/pages/flush.js.erb +1 -1
  220. data/app/views/alchemy/admin/pages/fold.js.erb +2 -3
  221. data/app/views/alchemy/admin/pages/index.html.erb +15 -22
  222. data/app/views/alchemy/admin/pages/info.html.erb +8 -8
  223. data/app/views/alchemy/admin/pages/link.html.erb +3 -3
  224. data/app/views/alchemy/admin/pages/locked.html.erb +1 -1
  225. data/app/views/alchemy/admin/pages/new.html.erb +4 -4
  226. data/app/views/alchemy/admin/pages/sort.js.erb +1 -2
  227. data/app/views/alchemy/admin/pages/unlock.js.erb +1 -1
  228. data/app/views/alchemy/admin/pages/update.js.erb +3 -3
  229. data/app/views/alchemy/admin/partials/_autocomplete_tag_list.html.erb +1 -1
  230. data/app/views/alchemy/admin/partials/_language_tree_select.html.erb +1 -1
  231. data/app/views/alchemy/admin/partials/_main_navigation_entry.html.erb +1 -1
  232. data/app/views/alchemy/admin/partials/_remote_search_form.html.erb +9 -15
  233. data/app/views/alchemy/admin/partials/_search_form.html.erb +14 -13
  234. data/app/views/alchemy/admin/partials/_sub_navigation.html.erb +1 -1
  235. data/app/views/alchemy/admin/pictures/_archive.html.erb +14 -14
  236. data/app/views/alchemy/admin/pictures/_filter_and_size_bar.html.erb +30 -36
  237. data/app/views/alchemy/admin/pictures/_filter_bar.html.erb +5 -5
  238. data/app/views/alchemy/admin/pictures/{edit.html.erb → _form.html.erb} +7 -6
  239. data/app/views/alchemy/admin/pictures/_infos.html.erb +50 -0
  240. data/app/views/alchemy/admin/pictures/_overlay_picture_list.html.erb +1 -1
  241. data/app/views/alchemy/admin/pictures/_picture.html.erb +17 -51
  242. data/app/views/alchemy/admin/pictures/_picture_to_assign.html.erb +1 -1
  243. data/app/views/alchemy/admin/pictures/_tag_list.html.erb +2 -2
  244. data/app/views/alchemy/admin/pictures/edit_multiple.html.erb +6 -6
  245. data/app/views/alchemy/admin/pictures/index.html.erb +28 -36
  246. data/app/views/alchemy/admin/pictures/show.html.erb +46 -9
  247. data/app/views/alchemy/admin/pictures/update.js.erb +6 -0
  248. data/app/views/alchemy/admin/resources/_form.html.erb +3 -3
  249. data/app/views/alchemy/admin/resources/_resource.html.erb +4 -4
  250. data/app/views/alchemy/admin/resources/_table.html.erb +5 -6
  251. data/app/views/alchemy/admin/resources/index.csv.erb +12 -10
  252. data/app/views/alchemy/admin/resources/index.html.erb +4 -4
  253. data/app/views/alchemy/admin/sites/index.html.erb +1 -1
  254. data/app/views/alchemy/admin/tags/_tag.html.erb +4 -4
  255. data/app/views/alchemy/admin/tags/edit.html.erb +5 -5
  256. data/app/views/alchemy/admin/tags/index.html.erb +8 -8
  257. data/app/views/alchemy/admin/tags/new.html.erb +2 -2
  258. data/app/views/alchemy/admin/trash/clear.js.erb +1 -1
  259. data/app/views/alchemy/admin/trash/index.html.erb +8 -6
  260. data/app/views/alchemy/admin/uploader/_button.html.erb +39 -0
  261. data/app/views/alchemy/admin/uploader/_setup.html.erb +13 -0
  262. data/app/views/alchemy/base/500.html.erb +4 -4
  263. data/app/views/alchemy/elements/_editor_not_found.html.erb +1 -1
  264. data/app/views/alchemy/essences/_essence_boolean_editor.html.erb +3 -4
  265. data/app/views/alchemy/essences/_essence_boolean_view.html.erb +1 -1
  266. data/app/views/alchemy/essences/_essence_date_editor.html.erb +2 -6
  267. data/app/views/alchemy/essences/_essence_date_view.html.erb +1 -1
  268. data/app/views/alchemy/essences/_essence_file_editor.html.erb +9 -11
  269. data/app/views/alchemy/essences/_essence_file_view.html.erb +11 -5
  270. data/app/views/alchemy/essences/_essence_html_editor.html.erb +1 -1
  271. data/app/views/alchemy/essences/_essence_link_editor.html.erb +1 -1
  272. data/app/views/alchemy/essences/_essence_link_view.html.erb +1 -1
  273. data/app/views/alchemy/essences/_essence_picture_editor.html.erb +47 -52
  274. data/app/views/alchemy/essences/_essence_richtext_editor.html.erb +1 -1
  275. data/app/views/alchemy/essences/_essence_richtext_view.html.erb +1 -1
  276. data/app/views/alchemy/essences/_essence_select_editor.html.erb +23 -13
  277. data/app/views/alchemy/essences/_essence_text_editor.html.erb +1 -1
  278. data/app/views/alchemy/essences/_essence_text_view.html.erb +1 -1
  279. data/app/views/alchemy/essences/shared/_essence_picture_tools.html.erb +29 -36
  280. data/app/views/alchemy/essences/shared/_linkable_essence_tools.html.erb +5 -5
  281. data/app/views/alchemy/language_links/_language.html.erb +15 -9
  282. data/app/views/alchemy/messages/contact_form_mail.de.text.erb +1 -1
  283. data/app/views/alchemy/messages/contact_form_mail.en.text.erb +1 -1
  284. data/app/views/alchemy/messages/contact_form_mail.es.text.erb +1 -1
  285. data/app/views/alchemy/navigation/_link.html.erb +0 -1
  286. data/app/views/alchemy/pages/show.rss.builder +6 -4
  287. data/app/views/alchemy/welcome.html.erb +28 -0
  288. data/app/views/layouts/alchemy/admin.html.erb +14 -10
  289. data/bin/alchemy +3 -4
  290. data/bin/rspec +7 -0
  291. data/bin/spring +15 -0
  292. data/config/alchemy/config.yml +16 -17
  293. data/config/initializers/assets.rb +13 -0
  294. data/config/locales/alchemy.de.yml +27 -29
  295. data/config/locales/alchemy.en.yml +23 -29
  296. data/config/locales/alchemy.es.yml +23 -29
  297. data/config/locales/alchemy.fr.yml +19 -28
  298. data/config/locales/alchemy.nl.yml +19 -27
  299. data/config/locales/alchemy.ru.yml +19 -28
  300. data/config/routes.rb +53 -54
  301. data/config/spring.rb +2 -0
  302. data/db/migrate/20130827094554_alchemy_two_point_six.rb +1 -3
  303. data/db/migrate/20150608204610_add_parent_element_id_to_alchemy_elements.rb +6 -0
  304. data/db/migrate/20150729151825_add_link_text_to_alchemy_essence_files.rb +5 -0
  305. data/db/migrate/20150906195818_add_locale_to_alchemy_languages.rb +7 -0
  306. data/lib/alchemy/auth_accessors.rb +1 -1
  307. data/lib/alchemy/cache_digests/template_tracker.rb +7 -13
  308. data/lib/alchemy/config.rb +5 -7
  309. data/lib/alchemy/configuration_methods.rb +11 -1
  310. data/lib/alchemy/controller_actions.rb +9 -12
  311. data/lib/alchemy/engine.rb +11 -28
  312. data/lib/alchemy/errors.rb +0 -1
  313. data/lib/alchemy/essence.rb +20 -20
  314. data/lib/alchemy/filetypes.rb +1 -3
  315. data/lib/alchemy/forms/builder.rb +0 -2
  316. data/lib/alchemy/hints.rb +1 -3
  317. data/lib/alchemy/i18n.rb +81 -53
  318. data/lib/alchemy/kaminari/scoped_pagination_url_helper.rb +0 -2
  319. data/lib/alchemy/locale.rb +0 -1
  320. data/lib/alchemy/logger.rb +1 -3
  321. data/lib/alchemy/modules.rb +3 -3
  322. data/lib/alchemy/mount_point.rb +0 -2
  323. data/lib/alchemy/name_conversions.rb +1 -3
  324. data/lib/alchemy/on_page_layout.rb +37 -23
  325. data/lib/alchemy/on_page_layout/callbacks_runner.rb +34 -0
  326. data/lib/alchemy/page_layout.rb +23 -24
  327. data/lib/alchemy/paths.rb +32 -0
  328. data/lib/alchemy/permissions.rb +20 -20
  329. data/lib/alchemy/picture_attributes.rb +0 -3
  330. data/lib/alchemy/resource.rb +66 -22
  331. data/lib/alchemy/resources_helper.rb +48 -11
  332. data/lib/alchemy/routing_constraints.rb +4 -5
  333. data/lib/alchemy/seeder.rb +1 -4
  334. data/lib/alchemy/shell.rb +12 -14
  335. data/lib/alchemy/tasks/helpers.rb +5 -7
  336. data/lib/alchemy/test_support/essence_shared_examples.rb +24 -24
  337. data/lib/alchemy/test_support/factories.rb +2 -146
  338. data/lib/alchemy/test_support/factories/attachment_factory.rb +9 -0
  339. data/lib/alchemy/test_support/factories/cell_factory.rb +9 -0
  340. data/lib/alchemy/test_support/factories/content_factory.rb +10 -0
  341. data/lib/alchemy/test_support/factories/dummy_user_factory.rb +21 -0
  342. data/lib/alchemy/test_support/factories/element_factory.rb +21 -0
  343. data/lib/alchemy/test_support/factories/essence_file_factory.rb +8 -0
  344. data/lib/alchemy/test_support/factories/essence_picture_factory.rb +8 -0
  345. data/lib/alchemy/test_support/factories/essence_text_factory.rb +7 -0
  346. data/lib/alchemy/test_support/factories/language_factory.rb +28 -0
  347. data/lib/alchemy/test_support/factories/page_factory.rb +45 -0
  348. data/lib/alchemy/test_support/factories/picture_factory.rb +10 -0
  349. data/lib/alchemy/test_support/factories/site_factory.rb +12 -0
  350. data/lib/alchemy/test_support/integration_helpers.rb +0 -3
  351. data/lib/alchemy/tinymce.rb +24 -35
  352. data/lib/alchemy/touching.rb +5 -6
  353. data/lib/alchemy/upgrader.rb +3 -5
  354. data/lib/alchemy/upgrader/tasks/available_contents_upgrader.rb +155 -0
  355. data/lib/alchemy/upgrader/tasks/nestable_elements_migration.rb +71 -0
  356. data/lib/alchemy/upgrader/tasks/three_point_two_task.rb +31 -0
  357. data/lib/alchemy/upgrader/three_point_three.rb +50 -0
  358. data/lib/alchemy/upgrader/three_point_two.rb +3 -32
  359. data/lib/alchemy/upgrader/three_point_zero.rb +0 -1
  360. data/lib/alchemy/version.rb +1 -1
  361. data/lib/rails/generators/alchemy/base.rb +1 -1
  362. data/lib/rails/generators/alchemy/elements/elements_generator.rb +1 -7
  363. data/lib/rails/generators/alchemy/elements/templates/editor.html.erb +5 -7
  364. data/lib/rails/generators/alchemy/elements/templates/editor.html.haml +6 -8
  365. data/lib/rails/generators/alchemy/elements/templates/editor.html.slim +6 -7
  366. data/lib/rails/generators/alchemy/elements/templates/view.html.erb +4 -4
  367. data/lib/rails/generators/alchemy/elements/templates/view.html.haml +3 -3
  368. data/lib/rails/generators/alchemy/elements/templates/view.html.slim +3 -3
  369. data/lib/rails/generators/alchemy/essence/essence_generator.rb +2 -3
  370. data/lib/rails/generators/alchemy/essence/templates/editor.html.erb +1 -1
  371. data/lib/rails/generators/alchemy/install/files/alchemy.de.yml +2 -2
  372. data/lib/rails/generators/alchemy/install/files/alchemy.en.yml +2 -2
  373. data/lib/rails/generators/alchemy/install/files/alchemy.es.yml +3 -3
  374. data/lib/rails/generators/alchemy/install/install_generator.rb +0 -1
  375. data/lib/rails/generators/alchemy/install/templates/elements.yml.tt +2 -2
  376. data/lib/rails/generators/alchemy/install/templates/page_layouts.yml.tt +1 -1
  377. data/lib/rails/generators/alchemy/module/module_generator.rb +1 -1
  378. data/lib/rails/templates/alchemy.rb +2 -2
  379. data/lib/tasks/alchemy/convert.rake +4 -8
  380. data/lib/tasks/alchemy/db.rake +2 -3
  381. data/lib/tasks/alchemy/install.rake +3 -4
  382. data/lib/tasks/alchemy/tidy.rake +4 -5
  383. data/lib/tasks/alchemy/upgrade.rake +2 -4
  384. data/spec/controllers/{admin → alchemy/admin}/attachments_controller_spec.rb +26 -44
  385. data/spec/controllers/{admin → alchemy/admin}/base_controller_spec.rb +14 -1
  386. data/spec/controllers/{admin → alchemy/admin}/clipboard_controller_spec.rb +3 -3
  387. data/spec/controllers/{admin → alchemy/admin}/contents_controller_spec.rb +4 -4
  388. data/spec/controllers/{admin → alchemy/admin}/dashboard_controller_spec.rb +11 -6
  389. data/spec/controllers/{admin → alchemy/admin}/elements_controller_spec.rb +54 -31
  390. data/spec/controllers/{admin → alchemy/admin}/essence_files_controller_spec.rb +8 -3
  391. data/spec/controllers/{admin → alchemy/admin}/essence_pictures_controller_spec.rb +3 -3
  392. data/spec/controllers/{admin → alchemy/admin}/languages_controller_spec.rb +13 -1
  393. data/spec/controllers/{admin → alchemy/admin}/layoutpages_controller_spec.rb +0 -6
  394. data/spec/controllers/{admin → alchemy/admin}/pages_controller_spec.rb +103 -35
  395. data/spec/controllers/{admin → alchemy/admin}/pictures_controller_spec.rb +133 -108
  396. data/spec/controllers/alchemy/admin/resources_controller_spec.rb +81 -0
  397. data/spec/controllers/{admin → alchemy/admin}/trash_controller_spec.rb +12 -13
  398. data/spec/controllers/alchemy/api/contents_controller_spec.rb +12 -13
  399. data/spec/controllers/alchemy/api/elements_controller_spec.rb +8 -9
  400. data/spec/controllers/alchemy/api/pages_controller_spec.rb +40 -7
  401. data/spec/controllers/{attachments_controller_spec.rb → alchemy/attachments_controller_spec.rb} +7 -7
  402. data/spec/controllers/alchemy/base_controller_spec.rb +106 -0
  403. data/spec/controllers/{elements_controller_spec.rb → alchemy/elements_controller_spec.rb} +4 -4
  404. data/spec/controllers/{messages_controller_spec.rb → alchemy/messages_controller_spec.rb} +14 -9
  405. data/spec/controllers/alchemy/on_page_layout_mixin_spec.rb +330 -0
  406. data/spec/controllers/{pages_controller_spec.rb → alchemy/pages_controller_spec.rb} +167 -89
  407. data/spec/controllers/{pictures_controller_spec.rb → alchemy/pictures_controller_spec.rb} +42 -20
  408. data/spec/dummy/app/models/dummy_user.rb +4 -0
  409. data/spec/dummy/app/views/alchemy/elements/_all_you_can_eat_view.html.erb +31 -0
  410. data/spec/dummy/app/views/alchemy/elements/_article_editor.html.erb +6 -10
  411. data/spec/dummy/app/views/alchemy/elements/_article_view.html.erb +9 -24
  412. data/spec/dummy/app/views/alchemy/elements/_bild_editor.html.erb +3 -0
  413. data/spec/dummy/app/views/alchemy/elements/_bild_view.html.erb +5 -0
  414. data/spec/dummy/app/views/alchemy/elements/_contactform_editor.html.erb +6 -0
  415. data/spec/dummy/app/views/alchemy/elements/_contactform_view.html.erb +16 -0
  416. data/spec/dummy/app/views/alchemy/elements/_download_editor.html.erb +3 -0
  417. data/spec/dummy/app/views/alchemy/elements/_download_view.html.erb +5 -0
  418. data/spec/dummy/app/views/alchemy/elements/_erb_element_editor.html.erb +3 -0
  419. data/spec/dummy/app/views/alchemy/elements/_erb_element_view.html.erb +5 -0
  420. data/spec/dummy/app/views/alchemy/elements/_header_editor.html.erb +3 -0
  421. data/spec/dummy/app/views/alchemy/elements/_header_view.html.erb +5 -0
  422. data/spec/dummy/app/views/alchemy/elements/_news_editor.html.erb +5 -0
  423. data/spec/dummy/app/views/alchemy/elements/_search_editor.html.erb +1 -0
  424. data/spec/dummy/app/views/alchemy/elements/_search_view.html.erb +4 -0
  425. data/spec/dummy/app/views/alchemy/elements/_slide_editor.html.erb +3 -0
  426. data/spec/dummy/app/views/alchemy/elements/_slide_view.html.erb +5 -0
  427. data/spec/dummy/app/views/alchemy/elements/_slider_editor.html.erb +2 -0
  428. data/spec/dummy/app/views/alchemy/elements/_slider_view.html.erb +4 -0
  429. data/spec/dummy/app/views/alchemy/elements/_text_editor.html.erb +3 -0
  430. data/spec/dummy/app/views/alchemy/elements/_text_view.html.erb +5 -0
  431. data/spec/dummy/app/views/alchemy/page_layouts/_standard.html.erb +1 -0
  432. data/spec/dummy/config/alchemy/elements.yml +10 -13
  433. data/spec/dummy/config/alchemy/page_layouts.yml +1 -1
  434. data/spec/dummy/config/initializers/alchemy.rb +1 -0
  435. data/spec/dummy/config/locales/kl.yml +2 -0
  436. data/spec/dummy/db/migrate/20150608204610_add_parent_element_id_to_alchemy_elements.rb +1 -0
  437. data/spec/dummy/db/migrate/20150729151825_add_link_text_to_alchemy_essence_files.rb +1 -0
  438. data/spec/dummy/db/migrate/20150906195818_add_locale_to_alchemy_languages.rb +1 -0
  439. data/spec/dummy/db/schema.rb +10 -6
  440. data/spec/factories.rb +13 -0
  441. data/spec/features/admin/admin_layout_spec.rb +14 -0
  442. data/spec/features/admin/dashboard_spec.rb +1 -2
  443. data/spec/features/admin/edit_elements_feature_spec.rb +36 -0
  444. data/spec/features/admin/language_tree_feature_spec.rb +7 -8
  445. data/spec/features/admin/languages_features_spec.rb +65 -0
  446. data/spec/features/admin/legacy_page_url_management_spec.rb +3 -3
  447. data/spec/features/admin/link_overlay_spec.rb +16 -17
  448. data/spec/features/admin/locale_select_feature_spec.rb +1 -1
  449. data/spec/features/admin/modules_integration_spec.rb +0 -1
  450. data/spec/features/admin/navigation_feature_spec.rb +11 -2
  451. data/spec/features/admin/page_creation_feature_spec.rb +5 -5
  452. data/spec/features/admin/page_editing_feature_spec.rb +6 -6
  453. data/spec/features/admin/picture_library_integration_spec.rb +3 -3
  454. data/spec/features/admin/resources_integration_spec.rb +7 -12
  455. data/spec/features/admin/site_select_feature_spec.rb +1 -2
  456. data/spec/features/admin/tinymce_feature_spec.rb +0 -1
  457. data/spec/features/page_feature_spec.rb +57 -158
  458. data/spec/features/page_redirects_spec.rb +358 -0
  459. data/spec/features/picture_security_spec.rb +1 -7
  460. data/spec/fixtures/animated.gif +0 -0
  461. data/spec/helpers/{admin → alchemy/admin}/attachments_helper_spec.rb +0 -0
  462. data/spec/helpers/{admin → alchemy/admin}/base_helper_spec.rb +39 -29
  463. data/spec/helpers/{admin → alchemy/admin}/contents_helper_spec.rb +4 -23
  464. data/spec/helpers/{admin → alchemy/admin}/elements_helper_spec.rb +141 -5
  465. data/spec/helpers/{admin → alchemy/admin}/essences_helper_spec.rb +69 -8
  466. data/spec/helpers/{admin → alchemy/admin}/navigation_helper_spec.rb +43 -37
  467. data/spec/helpers/{admin → alchemy/admin}/pages_helper_spec.rb +6 -38
  468. data/spec/helpers/{admin → alchemy/admin}/pictures_helper_spec.rb +0 -1
  469. data/spec/helpers/{admin → alchemy/admin}/tags_helper_spec.rb +1 -3
  470. data/spec/helpers/{base_helper_spec.rb → alchemy/base_helper_spec.rb} +1 -2
  471. data/spec/helpers/{elements_block_helper_spec.rb → alchemy/elements_block_helper_spec.rb} +3 -3
  472. data/spec/helpers/{elements_helper_spec.rb → alchemy/elements_helper_spec.rb} +18 -19
  473. data/spec/helpers/alchemy/essences_helper_spec.rb +85 -0
  474. data/spec/helpers/{pages_helper_spec.rb → alchemy/pages_helper_spec.rb} +125 -39
  475. data/spec/helpers/alchemy/picture_url_helpers_spec.rb +78 -0
  476. data/spec/helpers/{url_helper_spec.rb → alchemy/url_helper_spec.rb} +66 -40
  477. data/spec/libraries/config_spec.rb +2 -3
  478. data/spec/libraries/controller_actions_spec.rb +18 -18
  479. data/spec/libraries/i18n_spec.rb +7 -0
  480. data/spec/libraries/page_layout_spec.rb +13 -7
  481. data/spec/libraries/paths_spec.rb +15 -0
  482. data/spec/libraries/permissions_spec.rb +6 -7
  483. data/spec/libraries/resource_spec.rb +48 -75
  484. data/spec/libraries/resources_helper_spec.rb +55 -6
  485. data/spec/libraries/shell_spec.rb +0 -4
  486. data/spec/libraries/template_tracker_spec.rb +4 -13
  487. data/spec/libraries/tinymce_spec.rb +53 -9
  488. data/spec/mailers/{messages_spec.rb → alchemy/messages_spec.rb} +0 -2
  489. data/spec/models/{attachment_spec.rb → alchemy/attachment_spec.rb} +43 -20
  490. data/spec/models/{cell_spec.rb → alchemy/cell_spec.rb} +2 -3
  491. data/spec/models/{content_spec.rb → alchemy/content_spec.rb} +179 -70
  492. data/spec/models/{element_spec.rb → alchemy/element_spec.rb} +315 -70
  493. data/spec/models/{element_to_page_spec.rb → alchemy/element_to_page_spec.rb} +0 -1
  494. data/spec/models/{essence_boolean_spec.rb → alchemy/essence_boolean_spec.rb} +0 -0
  495. data/spec/models/{essence_date_spec.rb → alchemy/essence_date_spec.rb} +2 -3
  496. data/spec/models/{essence_file_spec.rb → alchemy/essence_file_spec.rb} +2 -5
  497. data/spec/models/{essence_html_spec.rb → alchemy/essence_html_spec.rb} +1 -1
  498. data/spec/models/{essence_link_spec.rb → alchemy/essence_link_spec.rb} +0 -0
  499. data/spec/models/{essence_picture_spec.rb → alchemy/essence_picture_spec.rb} +101 -29
  500. data/spec/models/{essence_richtext_spec.rb → alchemy/essence_richtext_spec.rb} +7 -2
  501. data/spec/models/{essence_select_spec.rb → alchemy/essence_select_spec.rb} +0 -0
  502. data/spec/models/{essence_text_spec.rb → alchemy/essence_text_spec.rb} +4 -8
  503. data/spec/models/alchemy/language_spec.rb +243 -0
  504. data/spec/models/{legacy_page_url_spec.rb → alchemy/legacy_page_url_spec.rb} +1 -1
  505. data/spec/models/{message_spec.rb → alchemy/message_spec.rb} +0 -0
  506. data/spec/models/{page_spec.rb → alchemy/page_spec.rb} +460 -248
  507. data/spec/models/{picture_spec.rb → alchemy/picture_spec.rb} +118 -30
  508. data/spec/models/{site_spec.rb → alchemy/site_spec.rb} +19 -84
  509. data/spec/models/{tag_spec.rb → alchemy/tag_spec.rb} +1 -3
  510. data/spec/models/dummy_model_spec.rb +1 -2
  511. data/spec/requests/alchemy/admin/resources_requests_spec.rb +26 -0
  512. data/spec/requests/alchemy/admin/site_requests_spec.rb +19 -0
  513. data/spec/requests/alchemy/site_requests_spec.rb +18 -0
  514. data/spec/requests/alchemy/sitemap_spec.rb +56 -0
  515. data/spec/routing/api_routing_spec.rb +1 -1
  516. data/spec/routing/routing_spec.rb +121 -15
  517. data/spec/spec_helper.rb +2 -1
  518. data/spec/support/hint_examples.rb +1 -3
  519. data/spec/support/test_tweaks.rb +3 -3
  520. data/spec/support/transformation_examples.rb +6 -7
  521. data/spec/tasks/helpers_spec.rb +2 -4
  522. data/spec/views/admin/pictures/show_spec.rb +43 -0
  523. data/spec/views/essences/essence_boolean_editor_spec.rb +0 -1
  524. data/spec/views/essences/essence_boolean_view_spec.rb +2 -4
  525. data/spec/views/essences/essence_date_view_spec.rb +0 -1
  526. data/spec/views/essences/essence_file_editor_spec.rb +4 -6
  527. data/spec/views/essences/essence_file_view_spec.rb +56 -3
  528. data/spec/views/essences/essence_link_view_spec.rb +1 -1
  529. data/spec/views/essences/essence_picture_editor_spec.rb +80 -0
  530. data/spec/views/essences/essence_picture_view_spec.rb +0 -1
  531. data/spec/views/essences/essence_select_view_spec.rb +0 -1
  532. data/spec/views/essences/essence_text_view_spec.rb +0 -1
  533. data/vendor/assets/javascripts/handlebars.js +4608 -0
  534. data/vendor/assets/javascripts/tinymce/langs/de.js +19 -0
  535. data/vendor/assets/javascripts/tinymce/langs/es.js +19 -0
  536. data/vendor/assets/javascripts/tinymce/langs/fr.js +23 -4
  537. data/vendor/assets/javascripts/tinymce/langs/nl.js +22 -3
  538. data/vendor/assets/javascripts/tinymce/langs/ru.js +22 -3
  539. data/vendor/assets/javascripts/tinymce/plugins/paste/plugin.min.js +1 -1
  540. data/vendor/assets/javascripts/tinymce/plugins/table/plugin.min.js +1 -1
  541. data/vendor/assets/javascripts/tinymce/themes/modern/theme.min.js +1 -1
  542. data/vendor/assets/javascripts/tinymce/tinymce.min.js +12 -13
  543. metadata +274 -256
  544. data/app/views/alchemy/admin/attachments/create.js.erb +0 -11
  545. data/app/views/alchemy/admin/attachments/new.html.erb +0 -14
  546. data/app/views/alchemy/admin/elements/_element_foot.html.erb +0 -36
  547. data/app/views/alchemy/admin/partials/_upload_form.html.erb +0 -67
  548. data/app/views/alchemy/admin/pictures/info.html.erb +0 -38
  549. data/app/views/alchemy/admin/pictures/new.html.erb +0 -16
  550. data/lib/alchemy/middleware/rescue_old_cookies.rb +0 -27
  551. data/spec/controllers/admin/resources_controller_spec.rb +0 -53
  552. data/spec/controllers/base_controller_spec.rb +0 -51
  553. data/spec/helpers/essences_helper_spec.rb +0 -156
  554. data/spec/helpers/picture_url_helpers_spec.rb +0 -35
  555. data/spec/libraries/on_page_layout_spec.rb +0 -112
  556. data/spec/models/language_spec.rb +0 -123
@@ -175,7 +175,7 @@ fr:
175
175
  back: 'arrière'
176
176
  create_tree_as_new_language: "%{language} Création d'un nouvel arbre de la langue"
177
177
  "<a href=\"http://get.adobe.com/flashplayer\" target=\"_blank\">%{value}</a>": ""
178
- "Active Pages": "sites actifs"
178
+ locked_pages: "sites actifs"
179
179
  "Add global page": "Nouvelle page globale"
180
180
  "Add page link": "Add Reference"
181
181
  "Adobe Website": "site Web d'Adobe"
@@ -205,17 +205,14 @@ fr:
205
205
  "Element trashed": "L'élément a été placé dans la corbeille"
206
206
  "Error with the Flash® Uploader!": "erreur avec le Flash® Uploader!"
207
207
  "Excerpt": "Extrait"
208
- "File uploaded succesfully": "Element %{name} téléchargé"
209
208
  "File successfully updated": "Le fichier a été enregistré avec succès."
210
- "File upload error": "Le fichier ne peut être téléchargé: %{error}"
211
209
  "File: '%{name}' deleted successfully": "%{name} effacé"
212
210
  "Filter by tag": "Filtrer par tag"
213
211
  "Flush page cache": "Effacer la page cache"
214
212
  "Flush picture cache": "Effacer Cache des images"
215
213
  "Global shortcuts": "Raccourcis clavier globaux"
216
214
  "Hide childpages": "Masquer les sous-pages"
217
- "Hide Elements": "masquer les éléments"
218
- "If you have any problems using the Flash uploader you can switch to": "Si vous avez des problèmes avec l'uploader Flash ®, il suffit d'aller à %{link}"
215
+ hide_elements: "masquer les éléments"
219
216
  "Image missing": "límage manque"
220
217
  "Image size": "Grandeur dímage"
221
218
  "Image updated successfully": "L'image a été enregistrée"
@@ -252,8 +249,6 @@ fr:
252
249
  "Password reset": "Remettre mot de passe"
253
250
  "Paste from clipboard": "du presse-papiers"
254
251
  "Picture infos": "Informations sur l'image"
255
- "Picture uploaded succesfully": "Image %{name} à été téléchargé"
256
- "Picture validation error": "Image %{name} ne peut être téléchargé"
257
252
  "Picture renamed successfully": "límage a été renommé avec succès de %{from} vers %{to} "
258
253
  "Picture deleted successfully": "%{name} A été effacé"
259
254
  "Pictures deleted successfully": "Les images %{names} ont été effacées"
@@ -280,7 +275,7 @@ fr:
280
275
  "Select an content": "Sélectionnez un contenu de"
281
276
  "Select style": "Feuille de style"
282
277
  "Send reset instructions": "Envoyer instructions"
283
- "Show Elements": "Montrer les éléments"
278
+ show_elements: "Montrer les éléments"
284
279
  "Show childpages": "Montrer les sous de pages"
285
280
  "Show clipboard": "Voir le presse-papiers"
286
281
  "Show picture infos": "Afficher les infos de l'image"
@@ -306,16 +301,14 @@ fr:
306
301
  "View File": "Montrer Dossier"
307
302
  "Visit page": "Allerà la page"
308
303
  "Warning!": "Attention!"
309
- content_description_missing: "avertissement!: Pour ce contenu le modèle n'a pas été trouvé. S'il vous plaît vérifier le fichier elements.yml."
310
- element_description_missing: "avertissement! Pour cet élément, le modèle ne peut pas être trouvé. S'il vous plaît vérifier le fichier elements.yml."
304
+ content_definition_missing: "avertissement!: Pour ce contenu le modèle n'a pas été trouvé. S'il vous plaît vérifier le fichier elements.yml."
305
+ element_definition_missing: "avertissement! Pour cet élément, le modèle ne peut pas être trouvé. S'il vous plaît vérifier le fichier elements.yml."
311
306
  "Welcome to Alchemy": "Bienvenue sur Alchemy"
312
307
  "Who else is online": "Qui d'autre est en ligne"
313
308
  "Yes": "oui"
314
309
  "You are not authorized": "Vous n'êtes pas autorisé."
315
310
  "You are about to edit %{length} pictures at once": "Vous êtes en cours de modifier plusieurs images %{length}."
316
311
  element_dirty_close_window_notice: "Vous avez des éléments non enregistrés. Souhaitez-vous vraiment envie de fermer les éléments de la fenêtre?"
317
- "You may upload files with following extensions": "vous pouvez telechargés %{file_types_description} avec les extensions suivantes: %{file_types}"
318
- "You may upload any file": "Vous pouvez télécharger tout type de fichier."
319
312
  "Your last login was on %{time}": "Votre dernière session était le %{time}."
320
313
  "Your last updated pages": "Vos pages les plus récemment modifiés"
321
314
  "Your trash is empty": "La corbeille est vide"
@@ -334,7 +327,6 @@ fr:
334
327
  attachment_filename_notice: "* S'il vous plaît ne pas utiliser de caractères spéciaux ou d'accentuations dans le nom du fichier."
335
328
  auto_play: "Jouer le film automatiquement"
336
329
  big_thumbnails: "grandes vignettes"
337
- browse: "rechercher"
338
330
  cancel: "Annuler"
339
331
  cannot_delete_picture_notice: "L´image %{name} ne peut pas être supprimé car il est encore utilisé sur les pages."
340
332
  choose_element_as_target: "Sélectionnez un élément de cette page en tant que destination"
@@ -358,7 +350,7 @@ fr:
358
350
  copy_page: "Copier page"
359
351
  "Could not delete Pictures": "Images n'ont pas pu être supprimés"
360
352
  copy_language_tree_heading: "Copier un langage d'arbres"
361
- country_code_placeholder: 'par exemple at (optionnel)'
353
+ country_code_placeholder: 'par exemple AT (optionnel)'
362
354
  country_code_foot_note: "Le code du pays est seulement nécessaire si vous souhaitez appliquer plusieurs pays de langues différentes."
363
355
  create: "Etablir"
364
356
  "Create language": "Création d´un nouveau langage"
@@ -373,7 +365,6 @@ fr:
373
365
  delete_page: "Supprimer la page"
374
366
  delete_tag: 'Supprimer le tag'
375
367
  document: "Document"
376
- documents: "Fichiers"
377
368
  download_csv: "CSV télécharger"
378
369
  download_file: "%{filename} télécharger"
379
370
  do_you_really_want_to_delete_this_tag?: "Voulez-vous vraiment supprimer ce tag?"
@@ -393,19 +384,11 @@ fr:
393
384
  explain_publishing: "Supprimer la version mise en cache du serveur et de publier les changements actuels"
394
385
  explain_sitemap_dragndrop_sorting: "Conseil: Gardez à trier les pages, l'icône de la page avec la souris fermement et déplacez-le vers sa nouvelle position."
395
386
  explain_unlocking: "Quitter la page pour permetre d´autres utilisateuer d´activer l´édition."
396
- explain_upload:
397
- footnote: "CONSEIL! Maintenez la touche Ctrl (cmd-Taste pour Mac) en cliquant sur le% {name} avec la souris pour sélectionner plusieur %{name} à télécharger simultanément."
398
- intro: "Ainsi fonctionne %{name} le chargement"
399
- step1: 'Cliquez sur "Parcourir" et ouvrez le dossier avec votre %{name}'
400
- step2: "Sélectionner tous % {name} à partir duquel vous souhaitez télécharger en même temps"
401
- step3: 'Cliquez sur "Ouvrir". Le téléchargement commence!'
402
- dragndrop: "Alternativement, vous pouvez faire glisser et déposer des fichiers depuis votre ordinateur avec la souris sur la surface inférieure."
403
387
  external_link_notice_1: "S'il vous plaît entrez l'URL complète par http:// (ou protocole similaire)."
404
388
  external_link_notice_2: "Pour faire référence à un chemin dans les pages Web URL, vous commencez avec un /."
405
389
  female: "Femme"
406
390
  file: "Dossier"
407
391
  file_rename_error: "Le fichier ne peut pas être renommé."
408
- files: "Dossiers"
409
392
  from_at: "De %{by} le %{at}"
410
393
  height: "Hauteur"
411
394
  help:
@@ -428,7 +411,6 @@ fr:
428
411
  image_caption: "légende"
429
412
  image_name: "Nom"
430
413
  image_title: "Tag Titre"
431
- images: "Images"
432
414
  internal_link_headline: "Sélectionnez une page un lien vers."
433
415
  internal_link_page_elements_explanation: "En outre, vous pouvez clicker à droite de chaque page sur « monter élément » pour créer une étiquette à un élément de cette page."
434
416
  internal_link_page_anchors_explanation: "Sinon, vous pouvez également créer une étiquette dans la page courante."
@@ -585,9 +567,15 @@ fr:
585
567
  unlink: "Supprimer le lien"
586
568
  unlock_page: "Quitter la page"
587
569
  unlocked_page: "Page %{name} a été libéré."
588
- upload: "Télécharger un fichier"
589
- upload_file: "Télécharger plusieurs fichiers"
590
- upload_image: "Télécharger Images"
570
+ uploader:
571
+ alchemy/attachment:
572
+ button_label: Télécharger plusieurs fichiers
573
+ upload_success: "Element %{name} téléchargé"
574
+ upload_failure: "Le fichier %{name} ne peut être téléchargé: %{error}"
575
+ alchemy/picture:
576
+ button_label: Télécharger Images
577
+ upload_success: "Image %{name} à été téléchargé"
578
+ upload_failure: "Image %{name} ne peut être téléchargé: %{error}"
591
579
  url_name: "URL-Nom"
592
580
  visible: "visible"
593
581
  want_to_create_new_language: "Voulez-vous créer un nouvel arbre de langage vide?,"
@@ -615,7 +603,6 @@ fr:
615
603
  "Succesfully updated": "correctement mis à jour"
616
604
  "Succesfully removed": "supprimé avec succès"
617
605
  "Nothing found": "Aucun article trouvé."
618
- "Or drag files over here": "Ou vous pouvez faire glisser les fichiers ici"
619
606
  "Now drop the files": "Lacher les fichiers maintenant"
620
607
  "Queued x files": "x Fichiers dans la file d'attente."
621
608
  complete: 'terminé'
@@ -777,6 +764,8 @@ fr:
777
764
  language_code:
778
765
  invalid: "n'est pas correct. S'il vous plaît utiliser deux minuscules exactement."
779
766
  taken: 'existe déjà pour les codes de ce pays.'
767
+ locale:
768
+ missing_file: "Localization not found for given language code. Please choose an existing one."
780
769
  alchemy/page:
781
770
  attributes:
782
771
  name:
@@ -894,6 +883,8 @@ fr:
894
883
  name: "Naom"
895
884
  page_layout: "Page Type de Page d'accueil"
896
885
  public: "publier langage"
886
+ locale: Localization
887
+ code: ISO code
897
888
 
898
889
  alchemy/page:
899
890
  created_at: "créée le"
@@ -159,7 +159,7 @@ nl:
159
159
  anchor: 'Anchor'
160
160
  back: 'back'
161
161
  create_tree_as_new_language: "%{language} aanmaken als nieuwe boomstructuur"
162
- "Active Pages": "Actieve pagina's"
162
+ locked_pages: "Actieve pagina's"
163
163
  "Add global page": "Nieuwe globale pagina"
164
164
  "Add page link": "Voeg pagina link toe"
165
165
  "Adobe Website": "Adobe Website"
@@ -189,17 +189,14 @@ nl:
189
189
  "Element trashed": "Element verwijderd"
190
190
  "Error with the Flash® Uploader!": "Fout in de Flash® Uploader!"
191
191
  "Excerpt": "fragment"
192
- "File uploaded succesfully": "Bestand %{name} geüpload"
193
192
  "File successfully updated": "Bestand is succesvol geüpdatet"
194
- "File upload error": "Bestand kon niet worden geüpload: %{error}"
195
193
  "File deleted successfully": "%{name} verwijderd"
196
194
  "Filter by tag": "Op tag filteren"
197
195
  "Flush page cache": "Paginacache leegmaken"
198
196
  "Flush picture cache": "Afbeeldingscache leegmaken"
199
197
  "Global shortcuts": "Globale snelkoppelingen"
200
198
  "Hide childpages": "Onderliggende pagina's verbergen"
201
- "Hide Elements": "Elementen verbergen"
202
- "If you have any problems using the Flash uploader you can switch to": "Bij problemen met de Flash® Uploader kunt u gebruik maken van %{link}"
199
+ hide_elements: "Elementen verbergen"
203
200
  "Image missing": "Afbeelding mist"
204
201
  "Image size": "Afbeeldingsgrootte"
205
202
  "Language successfully created": "Taal is aangemaakt."
@@ -233,8 +230,6 @@ nl:
233
230
  "Password reset": "Wachtwoord resetten"
234
231
  "Paste from clipboard": "Uit klembord kopiëren"
235
232
  "Picture infos": "Afbeeldingsinformatie"
236
- "Picture uploaded succesfully": "Afbeelding %{name} is geüpload"
237
- "Picture validation error": "Fout bij het uploaden van afbeelding %{name}"
238
233
  "Picture renamed successfully": "Afbeelding hernoemd van %{from} naar %{to}"
239
234
  "Picture deleted successfully": "Afbeelding %{name} verwijderd"
240
235
  "Pictures updated successfully": "De afbeelding is geüpdatet"
@@ -259,7 +254,7 @@ nl:
259
254
  "Select an content": "Selecteer de inhoud"
260
255
  "Select style": "Stijl selecteren"
261
256
  "Send reset instructions": "Instructies verzenden"
262
- "Show Elements": "Elementen weergeven"
257
+ show_elements: "Elementen weergeven"
263
258
  "Show childpages": "Onderliggende pagina's weergeven"
264
259
  "Show clipboard": "Klembord weergeven"
265
260
  "Show picture infos": "Afbeeldingsinformatie weergeven"
@@ -285,16 +280,14 @@ nl:
285
280
  "View File": "Bestand weergeven"
286
281
  "Visit page": "Pagina bezoeken"
287
282
  "Warning!": "Waarschuwing!"
288
- content_description_missing: "Waarschuwing: content mist een beschrijving. Controleer elements.yml"
289
- element_description_missing: "Waarschuwing: Er is geen beschijving gevonden voor dit element. Controleer elements.yml"
283
+ content_definition_missing: "Waarschuwing: content mist een beschrijving. Controleer elements.yml"
284
+ element_definition_missing: "Waarschuwing: Er is geen beschijving gevonden voor dit element. Controleer elements.yml"
290
285
  "Welcome to Alchemy": "Welkom bij Alchemy"
291
286
  "Who else is online": "Wie is ook online"
292
287
  "Yes": "Ja"
293
288
  "You are not authorized": "U bent niet geautoriseerd."
294
289
  "You are about to edit many pictures at once": "%{length} afbeeldingen worden in een keer aangepast"
295
290
  element_dirty_close_window_notice: "Elementen zijn nog niet opgeslagen. Dit venster toch sluiten?"
296
- "You may upload files with following extensions": "%{file_types_description} mogen worden geüpload met de volgende extensies: %{file_types}"
297
- "You may upload any file": "Alle bestanden kunnen worden geüpload"
298
291
  "Your last login was on": "Uw laatste aanmelding was op %{time}."
299
292
  "Your last updated pages": "Your last updated pages"
300
293
  "Your trash is empty": "De prullenbak is leeg"
@@ -312,7 +305,6 @@ nl:
312
305
  attachment_filename_notice: "* Gebruik geen speciale leestekens voor de bestandsnaam"
313
306
  auto_play: "Video afspelen na laden"
314
307
  big_thumbnails: "Grote thumbnails"
315
- browse: "verkennen"
316
308
  cancel: "afbreken"
317
309
  cannot_delete_picture_notice: "Kan Afbeelding %{name} niet verwijderen, omdat deze nog in gebruik is"
318
310
  choose_element_as_target: "Kies een doelelement"
@@ -334,7 +326,7 @@ nl:
334
326
  copy_page: "Pagina kopiëren"
335
327
  "Could not delete Pictures": "Kan de afbeeldingen niet verwijderen"
336
328
  copy_language_tree_heading: "Paginastructuur kopiëren"
337
- country_code_placeholder: 'bijv. us (optioneel)'
329
+ country_code_placeholder: 'bijv. US (optioneel)'
338
330
  country_code_foot_note: "Een landcode is alleen nodig voor het toewijzen van een aparte taal aan elk land."
339
331
  create: "maken"
340
332
  "Create language": "Nieuwe taal maken"
@@ -349,7 +341,6 @@ nl:
349
341
  delete_page: "Deze pagina verwijderen"
350
342
  delete_tag: 'Tag wissen'
351
343
  document: "Bestand"
352
- documents: "Bestanden"
353
344
  download_csv: "CSV downloaden"
354
345
  download_file: "Bestand '%{filename}' downloaden"
355
346
  do_you_really_want_to_delete_this_tag?: "Wilt u deze tag echt verwijderen?"
@@ -369,19 +360,11 @@ nl:
369
360
  explain_publishing: "Pagina publiceren en gecachede versie van de server verwijderen."
370
361
  explain_sitemap_dragndrop_sorting: "Tip: Versleep de pagina's met het icoon om ze te sorteren."
371
362
  explain_unlocking: "Pagina verlaten en ontgrendelen voor andere gebruikers."
372
- explain_upload:
373
- footnote: "HINT! Gebruik de CTRL knop (of CMD voor OSX) om meerdere %{name} te uploaden."
374
- intro: "Zo werkt het uploaden van %{name}."
375
- step1: "Klik op 'browse' en ga naar de %{name} map"
376
- step2: "Selecteer alle %{name} die u wilt uploaden"
377
- step3: "Klik op 'open'."
378
- dragndrop: "Of sleep de bestanden op onderstaande vlak"
379
363
  external_link_notice_1: "Voer de complete URL in (inclusief bijvoorbeeld http://)"
380
364
  external_link_notice_2: "Om te refereren naar een link van deze website, start met /"
381
365
  female: "Vrouw"
382
366
  file: "Bestand"
383
367
  file_rename_error: "Fout bij hernoemen van het bestand."
384
- files: "Bestanden"
385
368
  from_at: "door %{by} op %{at}"
386
369
  height: "Hoogte"
387
370
  help:
@@ -404,7 +387,6 @@ nl:
404
387
  image_caption: "Caption"
405
388
  image_name: "Naam"
406
389
  image_title: "Titel-tag"
407
- images: "Bilder"
408
390
  internal_link_headline: "Kies een pagina om een snelkoppeling naar te maken."
409
391
  internal_link_page_elements_explanation: "Ook kunt u rechts klikken op een pagina in 'Toon Elementen' om naar een interne verwijzing (anchor) van deze pagina te verwijzen."
410
392
  internal_link_page_anchors_explanation: "Ook kunt u naar de pagina zelf verwijzen."
@@ -560,8 +542,15 @@ nl:
560
542
  unlink: "Snelkoppeling van deze afbeelding verwijderen."
561
543
  unlock_page: "Pagina verlaten"
562
544
  unlocked_page: "pagina %{name} is ontgrendeld."
563
- upload_file: "Geüploade bestand(en)"
564
- upload_image: "Geüploade afbeelding(en)"
545
+ uploader:
546
+ alchemy/attachment:
547
+ button_label: Geüploade bestand(en)
548
+ upload_success: "Bestand %{name} geüpload"
549
+ upload_failure: "Bestand %{name} kon niet worden geüpload: %{error}"
550
+ alchemy/picture:
551
+ button_label: Geüploade afbeelding(en)
552
+ upload_success: "Afbeelding %{name} is geüpload"
553
+ upload_failure: "Fout bij het uploaden van afbeelding %{name}: %{error}"
565
554
  url_name: "URL-Naam"
566
555
  visible: "zichtbaar"
567
556
  want_to_create_new_language: "Nieuwe boomstructuur aanmaken?"
@@ -588,7 +577,6 @@ nl:
588
577
  "Succesfully updated": "Aangepast"
589
578
  "Succesfully removed": "Verwijderd"
590
579
  "Nothing found": "Niets gevonden"
591
- "Or drag files over here": "Of sleep de bestanden hier naartoe"
592
580
  complete: 'Compleet'
593
581
  "Update available": "Er is een update verkrijgbaar"
594
582
  "Update status unavailable": "Updatestatus is niet beschikbaar"
@@ -752,6 +740,8 @@ nl:
752
740
  code:
753
741
  invalid: '^Formaat van de taalcode is niet juist. Gebruik exact twee kleine letters.'
754
742
  taken: 'Is al in gebruik.'
743
+ locale:
744
+ missing_file: "Localization not found for given language code. Please choose an existing one."
755
745
  alchemy/page:
756
746
  attributes:
757
747
  name:
@@ -870,6 +860,8 @@ nl:
870
860
  name: "Naam"
871
861
  page_layout: "Paginatype van voorpagina"
872
862
  public: "Publiek"
863
+ locale: Localization
864
+ code: ISO Code
873
865
 
874
866
  alchemy/legacy_page_url:
875
867
  urlname: "URL pad"
@@ -160,7 +160,7 @@ ru:
160
160
  anchor: 'Анкор'
161
161
  back: 'назад'
162
162
  create_tree_as_new_language: "Создать дерево языка %{language}"
163
- "Active Pages": "Активные страницы"
163
+ locked_pages: "Активные страницы"
164
164
  "Add global page": "Добавить часть макета"
165
165
  "Add page link": "Добавить ссылку на страницу"
166
166
  "Adobe Website": "Adobe Website"
@@ -190,9 +190,7 @@ ru:
190
190
  "Element trashed": "Элемент удален"
191
191
  "Error with the Flash® Uploader!": "Ошибка Flash® Uploader!"
192
192
  "Excerpt": "Отрывок"
193
- "File uploaded succesfully": "Файл %{name} успешно загружен"
194
193
  "File successfully updated": "Файл успешно обновлен"
195
- "File upload error": "Ошибка загрузки файла: %{error}"
196
194
  "File deleted successfully": "%{name} файл удален"
197
195
  "Filter": "Фильтровать"
198
196
  "Filter by tag": "Фильтровать по меткам"
@@ -200,8 +198,7 @@ ru:
200
198
  "Flush picture cache": "Очистить кэш изображений"
201
199
  "Global shortcuts": "Глобальные ярлыки"
202
200
  "Hide childpages": "Спрятать дочерние страницы"
203
- "Hide Elements": "Спрятать элементы"
204
- "If you have any problems using the Flash uploader you can switch to": "Если у вас возникают проблемы с Flash загрузчиком, вы можете воспользоваться %{link}"
201
+ hide_elements: "Спрятать элементы"
205
202
  "Image missing": "Отсутствует изображение"
206
203
  "Image size": "Размер изображений"
207
204
  "Language successfully created": "Язык успешно создан."
@@ -235,8 +232,6 @@ ru:
235
232
  "Password reset": "Сброс пароля"
236
233
  "Paste from clipboard": "Вставить из буфера обмена"
237
234
  "Picture infos": "Информация об изображении"
238
- "Picture uploaded succesfully": "Изображение %{name} успешно загружено"
239
- "Picture validation error": "Ошибка при загрузке изображения %{name}"
240
235
  "Picture renamed successfully": "Изображение успешно переименовано из %{from} в %{to}"
241
236
  "Picture deleted successfully": "Изображение %{name} успешно удалено"
242
237
  "Pictures updated successfully": "Изображение успешно обновлено"
@@ -261,7 +256,7 @@ ru:
261
256
  "Select an content": "Выбрать контент"
262
257
  "Select style": "Выбрать стиль"
263
258
  "Send reset instructions": "Отправить инструкции по сбросу пароля"
264
- "Show Elements": "Показать элементы"
259
+ show_elements: "Показать элементы"
265
260
  "Show childpages": "Показать дочерние страницы"
266
261
  "Show clipboard": "Показать буфер обмена"
267
262
  "Show picture infos": "Информация об изображении"
@@ -288,16 +283,14 @@ ru:
288
283
  "View File": "Просмотр файла"
289
284
  "Visit page": "Перейти на страницу"
290
285
  "Warning!": "Внимание!"
291
- content_description_missing: "Внимание: Отсутствует описание для контента. Проверьте elements.yml."
292
- element_description_missing: "Внимание! Отсутствует описание для элемента. Проверьте elements.yml."
286
+ content_definition_missing: "Внимание: Отсутствует описание для контента. Проверьте elements.yml."
287
+ element_definition_missing: "Внимание! Отсутствует описание для элемента. Проверьте elements.yml."
293
288
  "Welcome to Alchemy": "Добро пожаловать в Alchemy"
294
289
  "Who else is online": "Кто еще онлайн"
295
290
  "Yes": "Да"
296
291
  "You are not authorized": "Вы не авторизованы"
297
292
  "You are about to edit many pictures at once": "Вы собираетесь отредактировать %{length} изображений одновременно"
298
293
  element_dirty_close_window_notice: "Есть несохраненные элементы. Вы действительно хотите закрыть панель элементов?"
299
- "You may upload files with following extensions": "Вы можете загрузить %{file_types_description} со следующими расширениями: %{file_types}"
300
- "You may upload any file": "Вы можете загрузить любой файл"
301
294
  "Your last login was on": "Последний раз Вы заходили в %{time}."
302
295
  "Your last updated pages": "Страницы, отредактированные Вами"
303
296
  "Your trash is empty": "Ваша корзина пуста"
@@ -315,7 +308,6 @@ ru:
315
308
  attachment_filename_notice: "* Пожалуйста, не используйте спецсимволы для имен файлов."
316
309
  auto_play: "Проиграть видеоролик после загрузки"
317
310
  big_thumbnails: "Большие миниатюры"
318
- browse: "Обзор"
319
311
  cancel: "отмена"
320
312
  cannot_delete_picture_notice: "Невозможно удалить изображение %{name}, поскольку оно все еще используется."
321
313
  choose_element_as_target: "Пожалуйста, выберите целевой элемент"
@@ -337,8 +329,7 @@ ru:
337
329
  copy_page: "Копировать страницу"
338
330
  "Could not delete Pictures": "Невозможно удалить изображения"
339
331
  copy_language_tree_heading: "Копировать дерево страниц"
340
- country_code_placeholder: 'например, ru (необязательно)'
341
- country_code_foot_note: "You only need to set a country code if you want to provide each country with an individual language."
332
+ country_code_placeholder: 'например, RU (необязательно)'
342
333
  country_code_foot_note: "Вам нужно установать код страны, если Вы хотите использовать индивидуальный перевод для каждой страны."
343
334
  create: "создать"
344
335
  "Create language": "Создать новый язык"
@@ -353,7 +344,6 @@ ru:
353
344
  delete_page: "Удалить страницу"
354
345
  delete_tag: 'Удалить метку'
355
346
  document: "Файл"
356
- documents: "Файлы"
357
347
  download_csv: "Скачать CSV"
358
348
  download_file: "Скачать файл '%{filename}'"
359
349
  do_you_really_want_to_delete_this_tag?: "Вы действительно хотите удалть эту метку?"
@@ -373,19 +363,11 @@ ru:
373
363
  explain_publishing: "Опубликовать страницу и удалить кэшированную версию с сервера."
374
364
  explain_sitemap_dragndrop_sorting: "Подсказка: для сортировки перетаскивайте страницы за иконку."
375
365
  explain_unlocking: "Покинуть страницу и разблокировать её для других пользователей."
376
- explain_upload:
377
- footnote: "Подсказка: Удерживайте CTRL (CMD на Mac) и нажимайте на %{name}, чтобы загрузить несколько %{name} сразу."
378
- intro: "Как загрузить %{name}"
379
- step1: "Нажмите кнопку 'обзор' и перейдите в папку с %{name}"
380
- step2: "Выберите все %{name}, которые вы хотите загрузить"
381
- step3: "Нажмите кнопку 'открыть'. Загрузка начинается!"
382
- dragndrop: "Так же вы можете перетащить файлы с вашего компьютера на область ниже."
383
366
  external_link_notice_1: "Вводите полный адрес, содержащий http:// или другой протокол."
384
367
  external_link_notice_2: "Чтобы указать путь с вашего сайта, начните ввод с /."
385
368
  female: "Женщина"
386
369
  file: "Файл"
387
370
  file_rename_error: "Ошибка при переименовывании файла."
388
- files: "Файлы"
389
371
  from_at: "%{by} %{at}"
390
372
  height: "Высота"
391
373
  help:
@@ -408,7 +390,6 @@ ru:
408
390
  image_caption: "Подпись"
409
391
  image_name: "Название"
410
392
  image_title: "Атрибут title"
411
- images: "Изображения"
412
393
  internal_link_headline: "Выберите страницу, на которую будет вести ссылка."
413
394
  internal_link_page_elements_explanation: "Кроме того, вы можете нажать на 'Показать элементы страницы' и выбрать элемент, который будет покзан при переходе по ссылке."
414
395
  internal_link_page_anchors_explanation: "В качестве альтернативы вы можете указать анкор самостоятельно."
@@ -564,8 +545,15 @@ ru:
564
545
  unlink: "Убрать ссылку с изображения"
565
546
  unlock_page: "Покинуть страницу"
566
547
  unlocked_page: "Страница %{name} разблокирована."
567
- upload_file: "Загрузить файлы"
568
- upload_image: "Загрузить изображения"
548
+ uploader:
549
+ alchemy/attachment:
550
+ button_label: Загрузить файлы
551
+ upload_success: "Файл %{name} успешно загружен"
552
+ upload_failure: "Ошибка загрузки файла: %{error}"
553
+ alchemy/picture:
554
+ button_label: Загрузить изображения
555
+ upload_success: "Изображение %{name} успешно загружено"
556
+ upload_failure: "Ошибка при загрузке изображения %{name}: %{error}"
569
557
  url_name: "Название URL"
570
558
  visible: "видимый"
571
559
  want_to_create_new_language: "Вы хотите создать новое пустое языковое дерево?"
@@ -592,7 +580,6 @@ ru:
592
580
  "Succesfully updated": "Успешно обновлено"
593
581
  "Succesfully removed": "Успешно удалено"
594
582
  "Nothing found": "Ничег не найдено."
595
- "Or drag files over here": "Или перетащите файлы сюда"
596
583
  complete: 'Завершить'
597
584
  "Update available": 'Доступно обновление'
598
585
  "Update status unavailable": 'Статус обновлений недоступен'
@@ -651,6 +638,8 @@ ru:
651
638
  language_code:
652
639
  invalid: 'Неверный формат кода языка. Используйте две латинские строчные буквы.'
653
640
  taken: 'уже занят для кода этой страны.'
641
+ locale:
642
+ missing_file: "Localization not found for given language code. Please choose an existing one."
654
643
  alchemy/page:
655
644
  attributes:
656
645
  name:
@@ -786,6 +775,8 @@ ru:
786
775
  name: "Название"
787
776
  page_layout: "Тип главной страницы"
788
777
  public: "Публичный"
778
+ locale: Localization
779
+ code: ISO Code
789
780
 
790
781
  alchemy/legacy_page_url:
791
782
  urlname: "Путь URL"