alchemy_cms 3.0.0.rc7 → 3.0.0.rc8

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 (69) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -1
  3. data/README.md +1 -1
  4. data/app/assets/javascripts/alchemy/alchemy.dragndrop.js.coffee +0 -2
  5. data/app/assets/javascripts/alchemy/alchemy.element_editors.js.coffee +1 -1
  6. data/app/assets/javascripts/alchemy/alchemy.elements_window.js.coffee +26 -2
  7. data/app/assets/javascripts/alchemy/alchemy.preview_window.js.coffee +1 -1
  8. data/app/assets/javascripts/alchemy/alchemy.translations.js.coffee +22 -0
  9. data/app/assets/stylesheets/alchemy/base.scss +1 -5
  10. data/app/assets/stylesheets/alchemy/elements.scss +11 -61
  11. data/app/assets/stylesheets/alchemy/frame.scss +1 -1
  12. data/app/assets/stylesheets/tinymce/skins/alchemy/skin.min.css.scss +1 -1
  13. data/app/controllers/alchemy/admin/attachments_controller.rb +1 -1
  14. data/app/controllers/alchemy/admin/base_controller.rb +7 -13
  15. data/app/controllers/alchemy/admin/clipboard_controller.rb +15 -10
  16. data/app/controllers/alchemy/admin/elements_controller.rb +15 -11
  17. data/app/controllers/alchemy/admin/essence_pictures_controller.rb +8 -1
  18. data/app/controllers/alchemy/admin/pages_controller.rb +95 -22
  19. data/app/controllers/alchemy/admin/tags_controller.rb +1 -1
  20. data/app/controllers/alchemy/pictures_controller.rb +33 -32
  21. data/app/helpers/alchemy/admin/base_helper.rb +3 -16
  22. data/app/models/alchemy/element.rb +1 -1
  23. data/app/models/alchemy/page/page_naming.rb +4 -2
  24. data/app/models/alchemy/page/page_natures.rb +1 -1
  25. data/app/models/alchemy/page.rb +20 -1
  26. data/app/models/alchemy/picture.rb +1 -0
  27. data/app/models/alchemy/tree_node.rb +4 -0
  28. data/app/views/alchemy/admin/contents/destroy.js.erb +4 -0
  29. data/app/views/alchemy/admin/dashboard/index.html.erb +1 -1
  30. data/app/views/alchemy/admin/elements/_element.html.erb +11 -12
  31. data/app/views/alchemy/admin/elements/_new_element_form.html.erb +0 -3
  32. data/app/views/alchemy/admin/elements/create.js.erb +3 -3
  33. data/app/views/alchemy/admin/elements/index.html.erb +4 -19
  34. data/app/views/alchemy/admin/elements/new.html.erb +0 -3
  35. data/app/views/alchemy/admin/elements/trash.js.erb +12 -16
  36. data/app/views/alchemy/admin/pages/_page.html.erb +1 -1
  37. data/app/views/alchemy/admin/pages/edit.html.erb +36 -30
  38. data/app/views/alchemy/admin/pictures/edit_multiple.html.erb +1 -1
  39. data/app/views/alchemy/admin/trash/clear.js.erb +4 -0
  40. data/config/locales/alchemy.de.yml +56 -84
  41. data/config/locales/alchemy.en.yml +326 -105
  42. data/config/locales/alchemy.fr.yml +942 -0
  43. data/config/locales/alchemy.nl.yml +111 -137
  44. data/config/locales/simple_form.fr.yml +26 -0
  45. data/lib/alchemy/engine.rb +7 -1
  46. data/lib/alchemy/i18n.rb +7 -1
  47. data/lib/alchemy/middleware/rescue_old_cookies.rb +27 -0
  48. data/lib/alchemy/permissions.rb +1 -1
  49. data/lib/alchemy/version.rb +1 -1
  50. data/spec/controllers/admin/clipboard_controller_spec.rb +16 -19
  51. data/spec/controllers/admin/elements_controller_spec.rb +20 -23
  52. data/spec/controllers/admin/essence_pictures_controller_spec.rb +22 -6
  53. data/spec/controllers/admin/pages_controller_spec.rb +94 -5
  54. data/spec/controllers/pictures_controller_spec.rb +44 -3
  55. data/spec/features/admin/link_overlay_spec.rb +1 -0
  56. data/spec/features/admin/locale_select_feature_spec.rb +22 -0
  57. data/spec/libraries/i18n_spec.rb +30 -0
  58. data/spec/libraries/permissions_spec.rb +1 -1
  59. data/spec/models/element_spec.rb +5 -4
  60. data/spec/models/page_spec.rb +137 -8
  61. data/spec/spec_helper.rb +23 -19
  62. data/vendor/assets/javascripts/jquery_plugins/jquery.ui.nestedSortable.js +9 -3
  63. metadata +12 -10
  64. data/app/models/alchemy/clipboard.rb +0 -74
  65. data/app/views/alchemy/admin/contents/destroy.js.coffee +0 -4
  66. data/app/views/alchemy/admin/elements/_add_element_button.html.erb +0 -18
  67. data/app/views/alchemy/admin/trash/clear.js.coffee +0 -4
  68. data/spec/models/clipboard_spec.rb +0 -111
  69. data/spec/support/phantomjs_mavericks_fix.rb +0 -32
@@ -5,9 +5,6 @@
5
5
  </div>
6
6
  <%- else -%>
7
7
  <%= alchemy_form_for [:admin, @element] do |form| %>
8
- <% if params[:insert_after].present? %>
9
- <%= hidden_field_tag :insert_after, params[:insert_after] %>
10
- <% end %>
11
8
  <%= form.hidden_field :page_id %>
12
9
  <%- if @page.can_have_cells? -%>
13
10
  <%= form.input :name,
@@ -16,10 +16,10 @@
16
16
 
17
17
  $element_area = $('#cell_<%= @cell_name %>');
18
18
 
19
- <%- if @element_before -%>
20
- $('#element_<%= @element_before.id %>').after(element_html);
19
+ <%- if @insert_at_top -%>
20
+ $element_area.prepend(element_html);
21
21
  <%- else -%>
22
- $('#insert_element_top').after(element_html).removeClass('expanded');
22
+ $element_area.append(element_html);
23
23
  <%- end -%>
24
24
 
25
25
  if ($element_area.find('.element_editor').length > 0) {
@@ -5,37 +5,22 @@
5
5
  <% @elements.each do |cell, elements| %>
6
6
  <li>
7
7
  <a href="#cell_<%= cell.name %>">
8
- <%= _t(cell.name, scope: 'cell_names') %>
8
+ <%= _t(cell.name, :scope => :cell_names) %>
9
9
  </a>
10
10
  </li>
11
11
  <% end %>
12
12
  </ul>
13
13
  <div id="cell_for_other_elements" class="sortable_cell for_other_elements_cell">
14
- <%= render 'add_element_button',
15
- expanded: @page.elements.not_trashed.not_in_cell.empty?,
16
- id: 'insert_element_top' %>
17
- <%= render partial: 'alchemy/admin/elements/element',
18
- collection: @page.elements.not_trashed.not_in_cell,
19
- locals: {draggable: true} %>
14
+ <%= render :partial => 'alchemy/admin/elements/element', :collection => @page.elements.not_trashed.not_in_cell, :locals => {:draggable => true} %>
20
15
  </div>
21
16
  <% @elements.each do |cell, elements| -%>
22
17
  <div id="cell_<%= cell.name %>" class="sortable_cell <%= cell.name %>_cell" data-cell-id="<%= cell.id %>">
23
- <%= render 'add_element_button',
24
- expanded: elements.empty?,
25
- id: 'insert_element_top' %>
26
- <%= render partial: 'alchemy/admin/elements/element',
27
- collection: elements,
28
- locals: {draggable: true} %>
18
+ <%= render :partial => 'alchemy/admin/elements/element', :collection => elements, :locals => {:draggable => true} %>
29
19
  </div>
30
20
  <% end %>
31
21
  </div>
32
22
  <% else %>
33
23
  <div class="sortable_cell for_other_elements_cell" id="cell_for_other_elements">
34
- <%= render 'add_element_button',
35
- expanded: @elements.empty?,
36
- id: 'insert_element_top' %>
37
- <%= render partial: 'alchemy/admin/elements/element',
38
- collection: @elements,
39
- locals: {draggable: true} %>
24
+ <%= render :partial => 'alchemy/admin/elements/element', :collection => @elements, :locals => {:draggable => true} %>
40
25
  </div>
41
26
  <% end %>
@@ -11,9 +11,6 @@
11
11
  </div>
12
12
  <div id="paste_element_tab">
13
13
  <%= alchemy_form_for([:admin, @element]) do |f| %>
14
- <% if params[:insert_after].present? %>
15
- <%= hidden_field_tag :insert_after, params[:insert_after] %>
16
- <% end %>
17
14
  <%= f.hidden_field(:page_id) %>
18
15
  <div class="input select">
19
16
  <label for="paste_from_clipboard" class="control-label"><%= _t("Element") %></label>
@@ -1,16 +1,12 @@
1
- (function() {
2
- var $el = $('#element_<%= @element.id %>');
3
- var $parent = $el.parent();
4
- $el.hide(200, function() {
5
- $(this).remove();
6
- Alchemy.growl('<%= j _t("Element trashed") %>');
7
- $('#element_area .sortable_cell').sortable('refresh');
8
- Alchemy.TrashWindow.refresh();
9
- $('#element_trash_button .icon').addClass('full');
10
- Alchemy.PreviewWindow.refresh();
11
- <%= update_essence_select_elements(@page, @element) -%>
12
- if ($parent.find('.element_editor').length === 0) {
13
- $('#insert_element_top').addClass('expanded');
14
- }
15
- });
16
- })();
1
+ $('#element_<%= @element.id %>').hide(200, function() {
2
+ $(this).remove();
3
+ Alchemy.growl('<%= j _t("Element trashed") %>');
4
+ $('#element_area .sortable_cell').sortable('refresh');
5
+ Alchemy.TrashWindow.refresh();
6
+ $('#element_trash_button .icon').addClass('full');
7
+ Alchemy.PreviewWindow.refresh();
8
+ <% @element.contents.essence_richtexts.each do |content| %>
9
+ tinymce.get('contents_content_<%= content.id %>_body').remove();
10
+ <% end %>
11
+ <%= update_essence_select_elements(@page, @element) -%>
12
+ });
@@ -1,4 +1,4 @@
1
- <li id="page_<%= page.id %>" class="page_level_<%= "#{page.level} #{page.page_layout}" %>">
1
+ <li id="page_<%= page.id %>" class="page_level_<%= "#{page.level} #{page.page_layout}" %>" data-slug="<%= page.slug %>" data-restricted="<%= page.restricted? %>" data-visible="<%= page.visible? %>" data-external="<%= page.redirects_to_external? %>">
2
2
  <div class="sitemap_page<%= page.locked ? ' locked' : '' %>" name="<%= page.name %>">
3
3
  <div class="sitemap_left_images">
4
4
  <%= sitemap_folder_link(page) unless page.level == 1 || page.children.blank? || @sorting %>
@@ -98,35 +98,6 @@
98
98
  </div>
99
99
  </div>
100
100
  <div class="toolbar_buttons right">
101
- <% if can?(:create, Alchemy::Element) %>
102
- <div class="button_with_label" id="clipboard_button">
103
- <%= link_to_dialog(
104
- render_icon("clipboard#{clipboard_empty?('elements') ? '' : ' full'}"),
105
- alchemy.admin_clipboard_path(remarkable_type: "elements"),
106
- {
107
- title: _t('Clipboard'),
108
- size: '380x305'
109
- },
110
- {
111
- title: _t('Show clipboard'),
112
- class: 'icon_button'
113
- }
114
- ) %>
115
- <label><%= _t('Show clipboard') %></label>
116
- </div>
117
- <% end %>
118
- <div class="button_with_label" id="element_trash_button">
119
- <%= link_to(
120
- render_icon("trash#{trash_empty?('elements') ? '' : ' full'}"),
121
- '',
122
- {
123
- title: _t('Show trash'),
124
- onclick: "Alchemy.TrashWindow.open(#{@page.id}, '#{_t('Trash')}'); return false",
125
- class: 'icon_button'
126
- }
127
- ) %>
128
- <label><%= _t('Show trash') %></label>
129
- </div>
130
101
  <div class="button_with_label" id="element_window_button">
131
102
  <%= link_to render_icon(:element_window), '', {
132
103
  title: _t('Hide Elements'),
@@ -160,7 +131,42 @@
160
131
  cancel_label: '<%= _t("No") %>',
161
132
  hideElements: '<%= _t("Hide Elements") %>',
162
133
  showElements: '<%= _t("Show Elements") %>'
163
- }
134
+ },
135
+ toolbarButtons: [
136
+ {
137
+ title: '<%= _t("New Element") %>',
138
+ label: '<%= _t("New Element") %>',
139
+ hotkey: 'alt+n',
140
+ iconClass: 'new_element',
141
+ onClick: function() {
142
+ Alchemy.openDialog('<%= alchemy.new_admin_element_path(page_id: @page.id) %>', {
143
+ title: '<%= _t("New Element") %>',
144
+ size: '320x125'
145
+ });
146
+ }
147
+ },
148
+ {
149
+ title: '<%= _t("Clipboard") %>',
150
+ label: '<%= _t("Show clipboard") %>',
151
+ iconClass: 'clipboard<%= clipboard_empty?("elements") ? "" : " full" %>',
152
+ buttonId: 'clipboard_button',
153
+ onClick: function() {
154
+ Alchemy.openDialog('<%= alchemy.admin_clipboard_path(remarkable_type: "elements") %>', {
155
+ title :'<%= _t("Clipboard") %>',
156
+ size: '380x305'
157
+ });
158
+ }
159
+ },
160
+ {
161
+ title: '<%= _t("Show trash") %>',
162
+ label: '<%= _t("Show trash") %>',
163
+ iconClass: 'trash<%= trash_empty?("elements") ? "" : " full" %>',
164
+ buttonId: 'element_trash_button',
165
+ onClick: function() {
166
+ Alchemy.TrashWindow.open(<%= @page.id %>, '<%= _t("Trash") %>');
167
+ }
168
+ }
169
+ ]
164
170
  }, function() {
165
171
  Alchemy.ImageLoader('#element_area');
166
172
  Alchemy.SortableElements(<%= @page.id %>, '<%= form_authenticity_token %>');
@@ -10,7 +10,7 @@
10
10
 
11
11
  <div class="info">
12
12
  <%= render_icon :info %>
13
- <p><%= _t("You are about to edit %{length} pictures at once") % {length: @pictures.size} %></p>
13
+ <p><%= _t('You are about to edit many pictures at once') % {length: @pictures.size} %></p>
14
14
  </div>
15
15
 
16
16
  <div class="input text">
@@ -0,0 +1,4 @@
1
+ Alchemy.growl('<%= _t("Cleared trash") %>');
2
+ Alchemy.TrashWindow.refresh();
3
+ jQuery('#element_trash_button .icon').removeClass('full');
4
+ Alchemy.pleaseWaitOverlay(false);
@@ -10,78 +10,64 @@ de:
10
10
  # Just use the page_layouts name like defined inside the config/alchemy/page_layouts.yml file and translate it.
11
11
  #
12
12
  # Example:
13
- # de:
14
- # alchemy:
15
- # page_layout_names:
16
- # contact: Kontakt
17
- # search: Suche
13
+ #
14
+ # de:
15
+ # alchemy:
16
+ # page_layout_names:
17
+ # contact: Kontakt
18
+ # search: Suche
18
19
  #
19
20
  page_layout_names:
20
- contact: Kontakt
21
- search: Suche
22
- layout_header: 'Header Bereich'
23
- layout_footer: 'Footer Bereich'
24
- external: Externer Link
25
21
 
26
22
  # == Translations for element names
27
23
  # Just use the elements name like defined inside the config/alchemy/elements.yml file and translate it.
28
24
  #
29
25
  # Example:
30
- # de:
31
- # alchemy:
32
- # element_names:
33
- # article: Artikel
34
- # intro_image_text: Intro Artikel
26
+ #
27
+ # de:
28
+ # alchemy:
29
+ # element_names:
30
+ # article: Artikel
31
+ # contactform: Kontaktformular
35
32
  #
36
33
  element_names:
37
- article: Artikel
38
- intro_image_text: Intro Artikel
39
- text: Text
40
- bild: Bild(er)
41
- bild_text: Text (Bild)
42
- headline: Überschrift
43
- image_mosaic: Bildergalerie
44
- footnote: Fußnote
45
- sitename: Webseiten Name
46
- claim: Claim
47
- header: Header-Bild
48
- intro: Intro
49
- subheadline: Zwischenüberschrift
50
- news: News
51
- searchresult: Suchergebnisse
52
- contactform: Kontaktformular
53
34
 
54
35
  # == Translated names for contents in elements.
55
36
  # Used for the content editor label inside the element editor view (The elements window)
56
37
  #
57
38
  # Tip: You can translate content names globally for all contents of this name, or specificly for an element.
58
39
  # To do so, just place the content_name under the element name
40
+ #
41
+ # Example:
42
+ #
43
+ # de:
44
+ # alchemy:
45
+ # content_names:
46
+ # headline: Überschrift
47
+ # news_article:
48
+ # headline: News Überschrift
49
+ # image_caption: Bildunterschrift
50
+ # show_caption: Zeige Bildunterschrift
51
+ #
59
52
  content_names:
60
- text: 'Text'
61
- date: 'Datum'
62
- body: 'Inhalt'
63
- image: 'Bild'
64
- mail_from: 'Absender (E-Mail)'
65
- mail_to: 'Empfänger (E-Mail)'
66
- caption: "Bildunterschrift"
67
- subject: 'Betreff'
68
- intro: "Einleitung"
69
- headline: "Überschrift"
70
- subheadline: "Unterüberschrift"
71
- news_headline: "News Überschrift"
72
- image_mosaic:
73
- caption: "Mosaik Bildunterschrift"
74
- show_caption: "Bildunterschrift anzeigen"
75
- file: Datei
76
- contactform:
77
- success_page: 'Folgeseite'
78
-
79
- # Translations for content validations
53
+
54
+ # === Translations for content validations
55
+ # Used when a user did not enter (correct) values to the content field.
56
+ #
57
+ # Tip: You can define the validation messages translations different for each element and content
58
+ #
59
+ # Example:
60
+ #
61
+ # de:
62
+ # alchemy:
63
+ # content_validations:
64
+ # contactform:
65
+ # success_page:
66
+ # blank: 'Bitte wählen Sie eine Folgeseite.'
67
+ # mail_to:
68
+ # blank: 'Bitte geben Sie eine E-Mail Adresse an zu der das Kontaktformular sendet.'
80
69
  #
81
70
  content_validations:
82
- contactform:
83
- success_page:
84
- blank: 'Bitte wählen Sie eine Folgeseite'
85
71
  errors:
86
72
  blank: '%{field} darf nicht leer sein'
87
73
  invalid: '%{field} hat das falsche Format'
@@ -122,6 +108,7 @@ de:
122
108
  de: 'DE'
123
109
  en: 'EN'
124
110
  nl: 'NL'
111
+ fr: 'FR'
125
112
 
126
113
  # == User roles translations
127
114
  user_roles:
@@ -172,7 +159,6 @@ de:
172
159
  anchor: 'Sprungmarke'
173
160
  back: 'zurück'
174
161
  create_tree_as_new_language: "%{language} als neuen Sprachbaum anlegen"
175
- "<a href=\"http://get.adobe.com/flashplayer\" target=\"_blank\">%{value}</a>": ""
176
162
  "Active Pages": "Aktive Seiten"
177
163
  "Add global page": "Neue globale Seite"
178
164
  "Add page link": "Verweis hinzufügen"
@@ -206,7 +192,7 @@ de:
206
192
  "File uploaded succesfully": "Datei %{name} wurde hochgeladen"
207
193
  "File successfully updated": "Datei wurde erfolgreich gespeichert."
208
194
  "File upload error": "Datei konnte nicht hochgeladen werden: %{error}"
209
- "File: '%{name}' deleted successfully": "%{name} wurde gelöscht"
195
+ "File deleted successfully": "%{name} wurde gelöscht"
210
196
  "Filter by tag": "Nach Tag filtern"
211
197
  "Flush page cache": "Seitencache löschen"
212
198
  "Flush picture cache": "Bildercache löschen"
@@ -216,11 +202,9 @@ de:
216
202
  "If you have any problems using the Flash uploader you can switch to": "Sollten Sie Probleme mit dem Flash® Uploader haben, wechseln Sie einfach zur %{link}"
217
203
  "Image missing": "Bild fehlt"
218
204
  "Image size": "Bildgröße"
219
- "Image updated successfully": "Bild wurde gespeichert"
220
- "Index Error after saving Element. Please try again!": "Indizierungsfehler beim Speichern des Elements. Bitte erneut versuchen!"
221
- "Language successfully created.": "Sprache wurde erfolgreich erstellt."
222
- "Language successfully destroyed.": "Sprache wurde erfolgreich gelöscht."
223
- "Language successfully updated.": "Sprache wurde erfolgreich aktualisiert."
205
+ "Language successfully created": "Sprache wurde erfolgreich erstellt."
206
+ "Language successfully removed": "Sprache wurde erfolgreich gelöscht."
207
+ "Language successfully updated": "Sprache wurde erfolgreich aktualisiert."
224
208
  "Language tree": "Sprachbaum"
225
209
  "Layout default": "Standard des Layouts"
226
210
  "Library shortcuts": "Tastaturbefehle in der Bibliothek"
@@ -235,7 +219,6 @@ de:
235
219
  "New Tag": "Neues Tag"
236
220
  "New Tag Created": "Neues Tag wurde erstellt"
237
221
  "No": "Nein"
238
- "No EssenceType given": ""
239
222
  "No items in your clipboard": "Ihre Zwischenablage ist leer"
240
223
  "No Tags found": "Keine Tags gefunden"
241
224
  "None": "ohne"
@@ -254,7 +237,6 @@ de:
254
237
  "Picture validation error": "Bild %{name} konnte nicht hochgeladen werden"
255
238
  "Picture renamed successfully": "Bild wurde erfolgreich von %{from} nach %{to} umbenannt"
256
239
  "Picture deleted successfully": "%{name} wurde gelöscht"
257
- "Pictures deleted successfully": "Die Bilder %{names} wurden gelöscht"
258
240
  "Pictures updated successfully": "Die Bilder wurden gespeichert"
259
241
  "Picture cache flushed": "Bildercache wurde geleert"
260
242
  "Please Signup": "Um Ihre Homepage bearbeiten zu können, müssen Sie als erstes einen Admin Benutzer einrichten."
@@ -263,7 +245,6 @@ de:
263
245
  "Please enter your email address": "Bitte geben Sie Ihre E-Mail-Adresse ein."
264
246
  "Please log in": "Bitte melden Sie sich an."
265
247
  "Please seperate the tags with commata": "* Die Tags bitte mit Komma getrennt eingeben."
266
- use_alternative_uploader_instead: "Benutzen Sie bitte diesen alternativen Uploader."
267
248
  "Properties": "Eigenschaften"
268
249
  "Publish page": "veröffentlichen"
269
250
  "Read the License": "Lizenz lesen"
@@ -283,17 +264,17 @@ de:
283
264
  "Show clipboard": "Zwischenablage anzeigen"
284
265
  "Show picture infos": "Bild Informationen anzeigen"
285
266
  "Show trash": "Papierkorb anzeigen"
267
+ "Site successfully created": "Website wurde erfolgreich erstellt."
268
+ "Site successfully removed": "Website wurde erfolgreich gelöscht."
269
+ "Site successfully updated": "Website wurde erfolgreich aktualisiert."
286
270
  "Size": "Größe"
287
271
  "Sort pages": "Seiten sortieren"
288
272
  "Successfully added content": "%{content} wurde hinzugefügt"
289
273
  "Successfully deleted content": "%{content} wurde gelöscht"
290
274
  "Successfully saved content position": "Die Position wurde gespeichert."
291
- "Switch to Flash® Uploader": "Auf den Flash® Uploader wechseln"
292
- sitemap_editor_info: "Die Sitemap wird automatisch generiert"
293
- searchresults_editor_info: "Dieses Element stellt die Suchergebnisse dar. Es Bedarf keinerlei Anpassung."
294
275
  "Tags": "Tags"
295
276
  "These pictures could not be deleted, because they were in use": "Diese Bilder konnten nicht gelöscht werden, da sie in Benutzung sind: %{names}"
296
- "This page is locked by %{name}": "Diese Seite wird gerade von %{name} blockiert"
277
+ "This page is locked": "Diese Seite wird gerade von %{name} blockiert"
297
278
  "Title": "Titel"
298
279
  "Trash": "Papierkorb"
299
280
  "User created": "%{name} wurde erstellt"
@@ -310,11 +291,11 @@ de:
310
291
  "Who else is online": "Wer ist noch online"
311
292
  "Yes": "Ja"
312
293
  "You are not authorized": "Sie sind dazu nicht authorisiert."
313
- "You are about to edit %{length} pictures at once": "Sie sind dabei %{length} Bilder auf einmal zu bearbeiten."
294
+ "You are about to edit many pictures at once": "Sie sind dabei %{length} Bilder auf einmal zu bearbeiten."
314
295
  element_dirty_close_window_notice: "Sie haben ungesicherte Elemente. Möchten Sie das Elemente Fenster wirklich schließen?"
315
296
  "You may upload files with following extensions": "Sie können %{file_types_description} mit folgenden Endungen hochladen: %{file_types}"
316
297
  "You may upload any file": "Sie können jede Art von Datei hochladen."
317
- "Your last login was on %{time}": "Sie waren zuletzt angemeldet am %{time}."
298
+ "Your last login was on": "Sie waren zuletzt angemeldet am %{time}."
318
299
  "Your last updated pages": "Ihre zuletzt bearbeiteten Seiten"
319
300
  "Your trash is empty": "Der Papierkorb ist leer"
320
301
  above: "darüber"
@@ -323,7 +304,6 @@ de:
323
304
  add_image_to_element: "Bild hinzufügen"
324
305
  align_in_text: "Im Text anordnen"
325
306
  all: "alle"
326
- allow_fullscreen: "Vollbild ansicht"
327
307
  all_pictures: "Alle Bilder anzeigen"
328
308
  apply: "übernehmen"
329
309
  assign_file: "Datei zuweisen"
@@ -345,9 +325,7 @@ de:
345
325
  confirm_to_delete_image: "Wollen Sie dieses Bild wirklich löschen?"
346
326
  confirm_to_delete_image_from_server: "Wollen Sie dieses Bild wirklich vom Server löschen?"
347
327
  confirm_to_delete_images_from_server: "Wollen Sie diese Bilder wirklich vom Server löschen?"
348
- confirm_to_delete_language: "Wollen Sie diese Sprache wirklich löschen?<br/>ACHTUNG! Alle zugehörigen Seiten werden ebenfalls gelöscht!"
349
328
  confirm_to_delete_page: "Wollen Sie diese Seite wirklich löschen? Alle Inhalte gehen dabei unwiderruflich verloren!"
350
- contactform_body: "Nachrichten Vorlage"
351
329
  content_essence_not_found: "Essenz wurde nicht gefunden"
352
330
  content_not_found: "Das Feld für diesen Inhalt ist nicht vorhanden."
353
331
  content_validations_headline: "Bitte überprüfen Sie die markierten Felder."
@@ -543,7 +521,7 @@ de:
543
521
  rename_file: "Datei umbenennen"
544
522
  rename: umbenennen
545
523
  replace: ersetzen
546
- 'Replaced Tag %{old_tag} with %{new_tag}': "Das Tag '%{old_tag}' wurde durch das Tag '%{new_tag}' ersetzt"
524
+ 'Replaced Tag': "Das Tag '%{old_tag}' wurde durch das Tag '%{new_tag}' ersetzt"
547
525
  resources:
548
526
  relation_select:
549
527
  blank: '- ohne -'
@@ -574,7 +552,6 @@ de:
574
552
  insert_image: "Bild einfügen"
575
553
  tag_list: Tags
576
554
  tags_get_created_if_used_the_first_time: 'Ein Tag wird automatisch erstellt, sobald Sie es das erste mal verwenden.'
577
- this_picture_is_not_used_on_any_page: "Dieses Bild wird auf keiner Seite benutzt."
578
555
  this_picture_is_used_on_these_pages: "Dieses Bild wird auf folgenden Seiten benutzt"
579
556
  title: "Titel"
580
557
  to_alchemy: "Zu Alchemy"
@@ -583,7 +560,6 @@ de:
583
560
  unlink: "Link entfernen"
584
561
  unlock_page: "Seite verlassen"
585
562
  unlocked_page: "Seite %{name} wurde freigegeben."
586
- upload: "Datei hochladen"
587
563
  upload_file: "Datei(en) hochladen"
588
564
  upload_image: "Bild(er) hochladen"
589
565
  url_name: "URL-Name"
@@ -604,7 +580,6 @@ de:
604
580
  "Do you want to": "Wollen Sie dabei"
605
581
  "stay logged in": "angemeldet bleiben"
606
582
  "or to completly": "oder Sich komplett"
607
- "Please wait. Flash® is loading...": "Bitte warten. Flash® Uploader wird geladen..."
608
583
  "Are you sure?": "Sind Sie sicher?"
609
584
  "Create": "Hinzufügen"
610
585
  "Edit": "Bearbeiten"
@@ -614,13 +589,10 @@ de:
614
589
  "Succesfully removed": "Erfolgreich gelöscht"
615
590
  "Nothing found": "Keine Einträge gefunden."
616
591
  "Or drag files over here": "Oder ziehen Sie die Dateien hier rauf"
617
- "Now drop the files": "Lassen Sie die Dateien nun los"
618
- "Queued x files": "x Dateien in der Warteschlange."
619
592
  complete: 'Abgeschlossen'
620
593
  "Update available": 'Es ist ein Update verfügbar'
621
594
  "Update status unavailable": 'Update Status konnte nicht ermittelt werden'
622
595
  "Uploading": "Hochladen"
623
- "Uploaded x files": "x Dateien hochgeladen."
624
596
 
625
597
  # END of Alchemy translation
626
598
 
@@ -841,14 +813,14 @@ de:
841
813
  one: "Seite"
842
814
  other: "Seiten"
843
815
 
844
- alchemy/picture:
845
- one: Bild
846
- other: Bilder
847
-
848
816
  alchemy/site:
849
817
  one: Website
850
818
  other: Websites
851
819
 
820
+ alchemy/picture:
821
+ one: Bild
822
+ other: Bilder
823
+
852
824
  attributes:
853
825
 
854
826
  acts_as_taggable_on/tag: