alchemy_cms 3.0.0.rc7 → 3.0.0.rc8

Sign up to get free protection for your applications and to get access to all the features.
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: