locomotive_cms 2.0.0.rc1 → 2.0.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. data/Gemfile +1 -1
  2. data/LICENSE +1 -1
  3. data/app/assets/javascripts/locomotive/models/editable_element.js.coffee +5 -0
  4. data/app/assets/stylesheets/locomotive/backoffice/application.css.scss +12 -0
  5. data/app/assets/stylesheets/locomotive/backoffice/formtastic_changes.css.scss +5 -3
  6. data/app/assets/stylesheets/locomotive/shared/_helpers.css.scss +15 -0
  7. data/app/controllers/locomotive/api/content_entries_controller.rb +6 -1
  8. data/app/helpers/locomotive/content_types_helper.rb +2 -2
  9. data/app/helpers/locomotive/custom_fields_helper.rb +1 -1
  10. data/app/models/locomotive/content_entry.rb +12 -2
  11. data/app/models/locomotive/content_type.rb +32 -83
  12. data/app/models/locomotive/editable_file.rb +2 -2
  13. data/app/models/locomotive/extensions/content_type/default_values.rb +59 -0
  14. data/app/models/locomotive/extensions/content_type/sync.rb +62 -0
  15. data/app/models/locomotive/extensions/page/tree.rb +4 -4
  16. data/app/models/locomotive/extensions/site/locales.rb +0 -1
  17. data/app/models/locomotive/page.rb +6 -2
  18. data/app/models/locomotive/snippet.rb +3 -1
  19. data/app/presenters/locomotive/content_entry_presenter.rb +14 -9
  20. data/app/views/locomotive/content_entries/_list.html.haml +4 -0
  21. data/app/views/locomotive/pages/_page.html.haml +3 -0
  22. data/config/locales/admin_ui.de.yml +98 -100
  23. data/config/locales/admin_ui.en.yml +2 -0
  24. data/config/locales/admin_ui.fr.yml +2 -0
  25. data/config/locales/default.es.yml +2 -2
  26. data/lib/generators/locomotive/install/templates/carrierwave.rb +8 -5
  27. data/lib/locomotive.rb +0 -2
  28. data/lib/locomotive/carrierwave/base.rb +5 -5
  29. data/lib/locomotive/configuration.rb +1 -1
  30. data/lib/locomotive/custom_fields.rb +1 -1
  31. data/lib/locomotive/dependencies.rb +0 -2
  32. data/lib/locomotive/engine.rb +0 -2
  33. data/lib/locomotive/liquid/drops/content_entry.rb +19 -2
  34. data/lib/locomotive/liquid/drops/page.rb +4 -0
  35. data/lib/locomotive/liquid/drops/uploader.rb +15 -0
  36. data/lib/locomotive/liquid/tags/nav.rb +18 -5
  37. data/lib/locomotive/liquid/tags/with_scope.rb +17 -9
  38. data/lib/locomotive/routing/site_dispatcher.rb +1 -1
  39. data/lib/locomotive/version.rb +1 -1
  40. data/lib/tasks/locomotive.rake +7 -185
  41. metadata +71 -68
@@ -18,7 +18,7 @@ module Locomotive
18
18
 
19
19
  ## indexes ##
20
20
  index :position
21
- index [:depth.asc, :position.asc]
21
+ index [[:depth, Mongo::ASCENDING], [:position, Mongo::ASCENDING]]
22
22
  end
23
23
 
24
24
  module ClassMethods
@@ -78,8 +78,8 @@ module Locomotive
78
78
  #
79
79
  # @return [ Array ] The children pages ordered by their position
80
80
  #
81
- def children_with_minimal_attributes
82
- self.children.minimal_attributes
81
+ def children_with_minimal_attributes( attrs = [] )
82
+ self.children.minimal_attributes( attrs )
83
83
  end
84
84
 
85
85
  # Assigns the new position of each child of this node.
@@ -109,4 +109,4 @@ module Locomotive
109
109
  end
110
110
  end
111
111
  end
112
- end
112
+ end
@@ -12,7 +12,6 @@ module Locomotive
12
12
 
13
13
  ## callbacks ##
14
14
  after_validation :add_default_locale
15
- # after_validation :add_missing_locales_for_all_pages
16
15
 
17
16
  end
18
17
 
@@ -45,13 +45,13 @@ module Locomotive
45
45
  validates_exclusion_of :slug, :in => Locomotive.config.reserved_slugs, :if => Proc.new { |p| p.depth <= 1 }
46
46
 
47
47
  ## named scopes ##
48
- scope :latest_updated, :order_by => [[:updated_at, :desc]], :limit => Locomotive.config.ui.latest_entries_nb
48
+ scope :latest_updated, :order_by => [[:updated_at, :desc]], :limit => Locomotive.config.ui[:latest_entries_nb]
49
49
  scope :root, :where => { :slug => 'index', :depth => 0 }
50
50
  scope :not_found, :where => { :slug => '404', :depth => 0 }
51
51
  scope :published, :where => { :published => true }
52
52
  scope :fullpath, lambda { |fullpath| { :where => { :fullpath => fullpath } } }
53
53
  scope :handle, lambda { |handle| { :where => { :handle => handle } } }
54
- scope :minimal_attributes, :only => %w(title slug fullpath position depth published templatized redirect listed parent_id created_at updated_at)
54
+ scope :minimal_attributes, lambda { |attrs = []| { :only => (attrs || []) + %w(title slug fullpath position depth published templatized redirect listed parent_id site_id created_at updated_at) } }
55
55
 
56
56
  ## methods ##
57
57
 
@@ -71,6 +71,10 @@ module Locomotive
71
71
  self.cache_strategy != 'none'
72
72
  end
73
73
 
74
+ def translated?
75
+ self.title_translations.key?(::Mongoid::Fields::I18n.locale.to_s) rescue false
76
+ end
77
+
74
78
  def to_liquid
75
79
  Locomotive::Liquid::Drops::Page.new(self)
76
80
  end
@@ -44,7 +44,9 @@ module Locomotive
44
44
  def update_templates
45
45
  return unless (self.site rescue false) # not run if the site is being destroyed
46
46
 
47
- pages = self.site.pages.any_in(:snippet_dependencies => [self.slug]).to_a
47
+ pages = ::I18n.with_locale(::Mongoid::Fields::I18n.locale) do
48
+ pages = self.site.pages.any_in(:snippet_dependencies => [self.slug]).to_a
49
+ end
48
50
 
49
51
  pages.each do |page|
50
52
  self._change_snippet_inside_template(page.template.root)
@@ -36,16 +36,21 @@ module Locomotive
36
36
  super + self.filtered_custom_fields_methods + default_list
37
37
  end
38
38
 
39
- def method_missing(meth, *arguments, &block)
40
- if self.source.custom_fields_methods.include?(meth.to_s)
41
- if self.source.is_a_custom_field_many_relationship?(meth.to_s)
42
- # go deeper
43
- self.source.send(meth).map { |entry| entry.to_presenter(:depth => self.depth + 1) }
44
- else
45
- self.source.send(meth) rescue nil
39
+ def as_json(methods = nil)
40
+ methods ||= self.included_methods
41
+ {}.tap do |hash|
42
+ methods.each do |meth|
43
+ hash[meth]= (if self.source.custom_fields_methods.include?(meth.to_s)
44
+ if self.source.is_a_custom_field_many_relationship?(meth.to_s)
45
+ # go deeper
46
+ self.source.send(meth).map { |entry| entry.to_presenter(:depth => self.depth + 1) }
47
+ else
48
+ self.source.send(meth) rescue nil
49
+ end
50
+ else
51
+ self.send(meth.to_sym) rescue nil
52
+ end)
46
53
  end
47
- else
48
- super
49
54
  end
50
55
  end
51
56
 
@@ -6,7 +6,11 @@
6
6
  %li.item{ :id => "entry-#{entry._id}" }
7
7
  %span.handle
8
8
  = image_tag 'locomotive/form/icons/drag.png'
9
+
9
10
  %strong= link_to entry_label(content_type, entry), edit_content_entry_url(content_type.slug, entry)
11
+
12
+ - unless entry.translated?
13
+ %span.untranslated= t('locomotive.shared.list.untranslated')
10
14
  .more
11
15
  %span
12
16
  != t('locomotive.content_entries.index.updated_at')
@@ -17,6 +17,9 @@
17
17
 
18
18
  = link_to truncate(page.title, :length => 80), edit_page_url(page)
19
19
 
20
+ - unless page.translated?
21
+ %span.untranslated= t('locomotive.shared.list.untranslated')
22
+
20
23
  .more
21
24
  %span!= t('.updated_at')
22
25
  = l page.updated_at, :format => :short
@@ -7,34 +7,49 @@ de:
7
7
  new_item: "+ hinzufügen"
8
8
  switch_to_site: Los
9
9
  delete: "Löschen"
10
+ close: "Schließen"
11
+
12
+ locales:
13
+ en: Englisch
14
+ de: Deutsch
15
+ fr: Französisch
16
+ pt-BR: "Bras. Portugiesisch"
17
+ it: Italienisch
18
+ nl: Niederländisch
19
+ "no": Norwegisch
20
+ es: Spanisch
21
+ ru: Russisch
10
22
 
11
23
  messages:
12
- confirm: Bist du sicher ?
24
+ confirm: Sind Sie sicher ?
13
25
 
14
26
  shared:
15
27
  header:
16
28
  welcome: Willkommen, %{name}
17
- see: Webseite ansehen
18
- switch: Zu anderer Seite wechseln
29
+ see: Webseite zeigen
30
+ switch: Webseite wechseln
19
31
  help: Hilfe
20
32
  logout: Ausloggen
21
33
  menu:
22
34
  contents: Inhalte
23
- assets: Galerien
35
+ assets: Medien
24
36
  settings: Einstellungen
25
37
  pages: Seiten
26
38
  snippets: Snippets
27
- account: Mein Account
39
+ account: Mein Zugang
28
40
  site: Webseite
29
- theme_assets: Templates
30
- bookings: Buchungen
31
- footer:
32
- who_is_behind: "Dienst entwickelt von %{development} und entworfen von <a href=\"http://www.sachagreif.com\">Sacha Greif</a>"
41
+ theme_assets: Dateien
42
+ form:
43
+ change_file: Ändern
44
+ delete_file: Löschen
45
+ cancel: Abbrechen
33
46
  form_actions:
34
47
  back: Ohne Speichern zurück
35
48
  create: Neu
36
49
  update: Speichern
37
50
  send: Senden
51
+ footer:
52
+ who_is_behind: "Dienst entwickelt von %{development} und entworfen von <a href=\"http://www.sachagreif.com\">Sacha Greif</a> &mdash; <small>version</small> %{version}"
38
53
 
39
54
  errors:
40
55
  "500":
@@ -49,7 +64,7 @@ de:
49
64
  notifications:
50
65
  new_content_entry:
51
66
  subject: "[%{type}] neu"
52
- title: "Hi %{name}, nur damit du Bescheid weißt! Am %{date} wurde folgende neue Instanz erstellt."
67
+ title: "Hi %{name}, nur damit Sie Bescheid wissen! Am %{date} wurde folgende neue Instanz erstellt."
53
68
  type: "Model: %{type}"
54
69
 
55
70
  sites_picker:
@@ -64,10 +79,18 @@ de:
64
79
  types:
65
80
  file:
66
81
  delete_file: Datei löschen
67
- index:
68
- is_required: ist erforderlich
69
- default_label: Feld-Name
82
+ has_many:
83
+ empty: Die Liste ist leer
84
+ new_entry: + Neuer Eintrag
85
+ many_to_many:
86
+ empty: Die Liste ist leer. Wählen Sie einen Eintrag unten aus.
70
87
 
88
+ form:
89
+ required: Pflichtfeld
90
+ optional: Optional
91
+ default_label: Feldname
92
+ select_options:
93
+ ask_name: "Geben Sie den Namen der Auswahloption an."
71
94
 
72
95
  sessions:
73
96
  new:
@@ -84,27 +107,29 @@ de:
84
107
  edit:
85
108
  title: Passwort bearbeiten
86
109
  link: "&rarr; Zurück zur Login-Seite"
87
- password: "Dein neues Passwort"
88
- password_confirmation: "Wiederholung deines neuen Passworts"
110
+ password: "Ihr neues Passwort"
111
+ password_confirmation: "Wiederholung ihres neuen Passworts"
89
112
 
90
113
  pages:
91
114
  index:
92
115
  title: Seiten anzeigen
93
- help: "Seiten sind als Baum organisiert. Du kannst die Seiten also wie Ordner sortieren und verschachteln."
94
- no_items: "Momentan gibt es keine Seiten. Klicke einfach <a href='%{url}'>hier</a>, um die erste Seite zu erstellen."
116
+ help: "Seiten sind als Baum organisiert. Sie können die Seiten also wie Ordner sortieren und verschachteln."
117
+ no_items: "Momentan gibt es keine Seiten. Klicken Sie einfach <a href='%{url}'>hier</a>, um die erste Seite zu erstellen."
95
118
  new: neue Seite
96
119
  latest_entries: Neueste Seiten
97
120
  new:
98
121
  title: Neue Seite
99
- help: "Fülle das folgende Formular aus, um eine neue Seite zu erstellen. Nur zur Info: Die Seite wird nicht standardmäßig publiziert!"
122
+ help: "Füllen Sie bitte das folgende Formular aus, um eine neue Seite zu erstellen. Nur zur Info: Die Seite wird nicht standardmäßig publiziert!"
100
123
  page:
101
124
  updated_at: bearbeitet am
102
125
  edit:
103
126
  show: anzeigen
104
127
  help: "Der Seiten-Titel kann durch anklicken bearbeitet werden."
105
- ask_for_title: "Bitte gib den neuen Seiten-Titel ein"
128
+ ask_for_title: "Bitte geben Sie den neuen Seiten-Titel ein"
106
129
  form:
130
+ change_file: Datei ändern
107
131
  delete_file: Datei löschen
132
+ cancel: Abbrechen
108
133
  default_block: Standard
109
134
  cache_strategy:
110
135
  none: Keine
@@ -118,28 +143,29 @@ de:
118
143
  index:
119
144
  title: Snipptes anzeigen
120
145
  help: "Snippets sind HTML-Code Ausschnitte, die an verschiedenen Stellen der Webseite eingesetzt werden können (z.B. die Fußzeile)."
121
- no_items: "Momentan gibt es keine Snippets. Klicke einfach <a href='%{url}'>hier</a>, um das erste Snippet zu erstellen."
146
+ no_items: "Momentan gibt es keine Snippets. Klicken Sie einfach <a href='%{url}'>hier</a>, um das erste Snippet zu erstellen."
122
147
  new: neues Snippet
123
148
  new:
124
149
  title: Neues Snippet
125
- help: "Fülle das folgende Formular aus, um ein neues Snippet zu erstellen."
150
+ help: "Füllen Sie bitte das folgende Formular aus, um ein neues Snippet zu erstellen."
126
151
  edit:
127
152
  title: Snippet bearbeiten
128
- help: "Fülle das folgende Formular aus, um dein Snippet zu aktualisieren."
153
+ help: "Füllen Sie bitte das folgende Formular aus, um ihr Snippet zu aktualisieren."
129
154
  snippet:
130
155
  updated_at: Aktualisiert am
131
156
 
132
157
  sites:
133
158
  new:
134
- title: Neue Webseite
135
- help: "Fülle das folgende Formular aus, um eine neue Webseite zu erstellen."
159
+ title: Neuer Webseite
160
+ help: "Fülle das folgende Formular aus, um einen neuen Webseiteen zu erstellen."
161
+ domains:
162
+ empty: "Bisher sind keine Domains/Hostnamen an diese Seite gebunden. Wenn Sie unten Domains/Hostnamen angeben, achten Sie bitte darauf <b>Ihren DNS Server zu prüfen/aktualisieren.</b>"
136
163
 
137
164
  current_site:
138
165
  edit:
139
- import: Importieren
140
166
  new_membership: Account hinzufügen
141
- help: "Der Name der Webseite kann durch anklicken bearbeitet werden."
142
- ask_for_name: "Bitte gib den neuen Namen der Webseite an"
167
+ help: "Der Name des Webseiteen kann durch einen Klick auf den Namen bearbeitet werden."
168
+ ask_for_name: "Bitte geben Sie den neuen Namen der Webseite an"
143
169
 
144
170
  memberships:
145
171
  roles:
@@ -148,91 +174,66 @@ de:
148
174
  author: Autor
149
175
  new:
150
176
  title: Neuer Account
151
- help: "Bitte gib eine Email für den neuen Account an. Wenn diese noch nicht registriert ist, wirst du zu einem Formular zur Erstellung weitergeleitet."
177
+ help: "Bitte geben Sie eine Email für den neuen Account an. Wenn diese noch nicht registriert ist, werden Sie zu einem Formular zur Erstellung des Accounts weitergeleitet."
152
178
 
153
179
  accounts:
154
180
  new:
155
181
  title: Neuer Account
156
- help: "Fülle das folgende Formular aus, um einen neuen Account anzulegen."
182
+ help: "Füllen Sie das folgende Formular aus, um einen neuen Account anzulegen."
157
183
 
158
184
  my_account:
159
185
  edit:
160
- help: "Deinen Namen kannst du durch darauf klicken ändern."
186
+ help: "Ihren Namen können Sie durch einen Klick auf denselben ändern."
161
187
  new_site: Neue Webseite
162
- en: Englisch
163
- de: Deutsch
164
- fr: Französisch
165
- pt-BR: "Bras. Portugisisch"
166
- it: "Italienisch"
167
- nl: "Holländer"
168
- "no": "Norwegisch"
169
- es: "Spanisch"
170
- ru: "Russisch"
171
- ask_for_name: "Bitte gib deinen neuen Namen an"
188
+ ask_for_name: "Bitte geben Sie Ihren Namen an."
172
189
 
173
190
  theme_assets:
174
191
  index:
175
- title: Template-Dateien
176
- help: "In diesem Bereich kannst du alle Dateien organisieren, die für dein Layout verwendet werden. Wenn du eine Bilder-Galerie organisieren möchtest, dann gehe dazu in den Galerien-Abschnitt."
192
+ title: Layout-Dateien
193
+ help: "In diesem Bereich können Sie alle Dateien organisieren, die für das Layout verwendet werden."
177
194
  new: neue Datei
178
195
  snippets: Snippets
179
196
  css_and_js: Style und Javascript
180
197
  fonts: Fonts
181
198
  images: Bilder
182
199
  media: Medien
183
- no_items: "Momentan gibt es keine Dateien. Klicke einfach <a href='%{url}'>hier</a>, um die erste Datei zu erstellen."
200
+ no_items: "Momentan gibt es keine Dateien. Klicken Sie einfach <a href='%{url}'>hier</a>, um die erste Datei zu erstellen."
184
201
  asset:
185
202
  updated_at: Aktualisiert am
186
203
  new:
187
204
  title: Neue Datei
188
- help: "Du hast die Wahl entweder eine neue Datei hochzuladen oder ein bestehendes Stylesheet / Javascript als Text einzufügen."
205
+ help: "Sie haben die Wahl entweder eine neue Datei hochzuladen oder ein bestehendes Stylesheet / Javascript als Text einzufügen."
189
206
  edit:
190
207
  title: "Bearbeite %{file}"
191
208
  help: "Diese Datei kann über folgende URL erreicht werden: <a href='%{url}'>%{url}</a>"
192
- help_image: "Du kannst das Bild in Templates oder Snippets mit folgendem Code einbinden : <span class='code'>{{ '%{path}' | theme_image_tag }}</span>.<br/>Aktuelle Breite x Höhe : <b>%{width}px x %{height}px</b>.<br/>"
193
- help_javascript: "Du kannst die Javascript Datei in Templates oder Snippets mit folgendem Code einbinden: <span class='code'>{{ '%{path}' | javascript_tag }}</span>.<br/>"
194
- help_stylesheet: "Du kannst die CSS Datei in Templates oder Snippets mit folgendem Code einbinden : <span class='code'>{{ '%{path}' | stylesheet_tag }}</span>.<br/>"
209
+ help_image: "Sie können das Bild in Templates oder Snippets mit folgendem Code einbinden : <span class='code'>{{ '%{path}' | theme_image_tag }}</span>.<br/>Aktuelle Breite x Höhe : <b>%{width}px x %{height}px</b>.<br/>"
210
+ help_javascript: "Sie können die Javascript Datei in Templates oder Snippets mit folgendem Code einbinden: <span class='code'>{{ '%{path}' | javascript_tag }}</span>.<br/>"
211
+ help_stylesheet: "Sie können die CSS Datei in Templates oder Snippets mit folgendem Code einbinden : <span class='code'>{{ '%{path}' | stylesheet_tag }}</span>.<br/>"
195
212
  form:
196
- picker_link: Füge eine Datei in den Code ein
213
+ picker_link: Fügen Sie eine Datei in den Code ein
197
214
  choose_file: Datei auswählen
198
215
  choose_plain_text: Text einfügen
199
216
  images:
200
- title: Bilder anzeigen
217
+ title: "Bilder anzeigen"
201
218
  no_items: "Momentan gibt es keine Bilder."
219
+ upload: "Bilder hochladen"
202
220
 
203
- assets:
204
- new:
205
- title: Neues Bild
206
- help: "Fülle das folgende Formular aus, um dein Bild zu erstellen."
207
- edit:
208
- title: Bild bearbeiten
209
- help: "Fülle das folgende Formular aus, um dein Bild zu aktualisieren."
210
-
211
- bookings:
212
- index:
213
- title: Buchungen
214
- help: "Der Name der Buchung kann durch darauf klicken bearbeitet werden."
215
- new: neue Buchung
216
- no_items: "Momentan gibt es keine Buchungen. Klicke einfach <a href='%{url}'>hier</a>, um eine neue Buchung zu erstellen."
217
- latest_entries: Letzte Buchungen
218
- updated_at: bearbeitet am
219
- new:
220
- title: Neue Buchung
221
- help: "Gib erst mal einen Namen ein. Alle anderen Einstellungen kannst du vornehmen, sobald das Formular abgesendet ist."
222
- edit:
223
- help: "Der Name der Buchung kann durch darauf klicken bearbeitet werden."
224
- destroy: Buchung löschen
225
- ask_for_name: "Gib den neuen Namen ein"
221
+ content_assets:
222
+ picker:
223
+ title: "Eine Mediendatei einfügen"
224
+ no_items: "Es gibt bisher keine Mediendateien."
225
+ upload: "Mediendatei hochladen"
226
226
 
227
227
  content_types:
228
228
  index:
229
229
  new: Neuer Baustein
230
+ edit: "Baustein bearbeiten"
230
231
  new:
231
232
  title: Neuer Baustein
232
- help: "Erstelle deine eigenen Baustein (Projekte, Leute, ...usw). Dein Baustein muss mindestens ein Feld haben. Das erste Feld ist dabei immer verpflichtend auszufüllen."
233
+ help: "Erstellen Sie ihren eigenen Baustein (Projekte, Leute, ...usw). Der Baustein muss mindestens ein Feld haben. Das erste Feld ist dabei immer verpflichtend auszufüllen."
233
234
  edit:
234
235
  title: Vorlage bearbeiten
235
- help: "Deine Vorlage muss mindestens ein Feld haben. Das erste Feld ist dabei immer verpflichtend auszufüllen."
236
+ help: "Ihre Vorlage muss mindestens ein Feld haben. Das erste Feld ist dabei immer verpflichtend auszufüllen."
236
237
  show_items: zeige Elemente
237
238
  new_item: neues Element
238
239
  form:
@@ -255,7 +256,7 @@ de:
255
256
  latest_entries: "Neueste Elemente"
256
257
  updated_at: "Aktualisiert am"
257
258
  list:
258
- no_entries: "Momentan gibt es keine Elemente. Klicke einfach <a href='%{url}'>hier</a>, um das erste Element zu erstellen."
259
+ no_entries: "Momentan gibt es keine Elemente. Klicken Sie einfach <a href='%{url}'>hier</a>, um das erste Element zu erstellen."
259
260
  new:
260
261
  title: '%{type} &mdash; neues Element'
261
262
  edit:
@@ -270,41 +271,38 @@ de:
270
271
  cross_domain_sessions:
271
272
  new:
272
273
  title: Cross-Domain Authentifizierung
273
- notice: Du wirst zu der Webseite in ein paar Sekunden weitergeleitet.
274
-
275
- import:
276
- new:
277
- title: Import
278
- help: "Passe bitte auf, wenn du ein neues Template für deine bestehende Webseite hochlädst. Deine bestehenden Daten könnten verändert oder gelöscht werden!"
279
- show:
280
- title: Import am Laufen
281
- help: "Deine Webseite wird gerade mit deinem hochgeladenen Template aktualisiert. Bitte habe noch ein paar Sekunden Geduld."
282
- steps:
283
- site: Webseiten-Informationen
284
- content_types: Benutzerdefinierte Inhalts-Typen
285
- assets: Template-Dateien
286
- snippets: Snippets
287
- pages: Seiten
288
- messages:
289
- success: "Deine Webseite wurde erfolgreich aktualisiert."
290
- failure: "Der Import war leider nicht erfolgreich."
274
+ notice: Sie werden zu der Webseite in ein paar Sekunden weitergeleitet.
291
275
 
292
276
  installation:
293
277
  common:
294
278
  title: Erst-Installation von Locomotive CMS
295
279
  next: Weiter
296
280
  step_1:
297
- title: "Schritt 1/2 &mdash; Account erstellen"
281
+ title: "Schritt 1/2 &mdash; Zugang erstellen"
298
282
  name: Name
299
283
  email: E-Mail
300
284
  password: Passwort
301
285
  password_confirmation: Passwort-Bestätigung
302
- done: "Du hast bereits einen Account hinzugefügt:<br/><strong>%{name}</strong>, <em>%{email}</em>"
303
- next: Account erstellen
286
+ done: "Sie haben bereits einen Zugang hinzugefügt:<br/><strong>%{name}</strong>, <em>%{email}</em>"
287
+ next: Zugang erstellen
304
288
  step_2:
305
289
  title: "Schritt 2/2 &mdash; Webseite erstellen"
306
- explanations: |
307
- Wenn Du schon eine ein Standard Template hochgeladen hast (siehe Hilfe), kannst Du es gleich benutzen.
308
- Oder Du kannst ein fertiges Template als zip-Datei hochladen. <a href='http://www.locomotivecms.com/support/themes'>Hier</a> findest du ein paar kostenlose Templates, die du gerne kostenlos verwenden kannst.
309
- back_to_default_template: "Klick <a href='#'>hier</a> um ein Template auszuwählen"
290
+ explanations: "Es ist fast geschafft. Bitte geben Sie Ihrer ersten Webseite einen Namen und wählen Sie eine Sprache aus."
291
+ default_site_locale: Sprachauswahl
292
+ default_site_locales_hints: Sie können später weitere Sprachen im Einstellungsdialog vornehmen.
310
293
  next: Webseite erstellen
294
+
295
+ public:
296
+ pages:
297
+ show_toolbar:
298
+ statuses:
299
+ loading: "Lade...."
300
+ disabled: "Inline Editor deaktiviert"
301
+ labels:
302
+ save_changes: "Änderungen speichern: "
303
+ editing_mode: "Bearbeitungsmodus: "
304
+ lang: "Sprache: "
305
+ buttons:
306
+ back: "Zur Administration zurück"
307
+ confirm: Bestätigen
308
+ cancel: Abbrechen