spina 2.1.0 → 2.3.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of spina might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/README.md +3 -3
- data/app/assets/config/spina/manifest.js +1 -0
- data/app/assets/javascripts/spina/application.js +2 -0
- data/app/assets/javascripts/spina/controllers/attachment_picker_controller.js +15 -0
- data/app/assets/javascripts/spina/controllers/autofocus_controller.js +1 -1
- data/app/assets/javascripts/spina/controllers/button_controller.js +1 -1
- data/app/assets/javascripts/spina/controllers/confetti_controller.js +2 -2
- data/app/assets/javascripts/spina/controllers/confirm_controller.js +1 -1
- data/app/assets/javascripts/spina/controllers/delegate_click_controller.js +1 -1
- data/app/assets/javascripts/spina/controllers/exists_controller.js +1 -1
- data/app/assets/javascripts/spina/controllers/form_controller.js +2 -2
- data/app/assets/javascripts/spina/controllers/hotkeys_controller.js +2 -2
- data/app/assets/javascripts/spina/controllers/image_collection_controller.js +2 -2
- data/app/assets/javascripts/spina/controllers/image_fade_in_controller.js +1 -1
- data/app/assets/javascripts/spina/controllers/infinite_scroll_controller.js +1 -1
- data/app/assets/javascripts/spina/controllers/loading_button_controller.js +1 -1
- data/app/assets/javascripts/spina/controllers/media_picker_controller.js +1 -1
- data/app/assets/javascripts/spina/controllers/media_picker_modal_controller.js +1 -1
- data/app/assets/javascripts/spina/controllers/modal_controller.js +1 -1
- data/app/assets/javascripts/spina/controllers/navigation_controller.js +1 -1
- data/app/assets/javascripts/spina/controllers/parent_pages_controller.js +1 -1
- data/app/assets/javascripts/spina/controllers/repeater_controller.js +2 -2
- data/app/assets/javascripts/spina/controllers/select_placeholder_controller.js +1 -1
- data/app/assets/javascripts/spina/controllers/selectable_controller.js +1 -1
- data/app/assets/javascripts/spina/controllers/shortcuts_controller.js +1 -1
- data/app/assets/javascripts/spina/controllers/sortable_controller.js +3 -3
- data/app/assets/javascripts/spina/controllers/switch_controller.js +1 -1
- data/app/assets/javascripts/spina/controllers/tabs_controller.js +1 -1
- data/app/assets/javascripts/spina/controllers/toggle_controller.js +1 -1
- data/app/assets/javascripts/spina/controllers/trix_controller.js +1 -1
- data/app/assets/javascripts/spina/controllers/unique_id_controller.js +1 -1
- data/app/assets/javascripts/spina/libraries/stimulus-reveal@1.2.4.js +1 -1
- data/app/assets/stylesheets/spina/_tailwind.css +110078 -105581
- data/app/components/spina/media_picker/modal_component.html.erb +2 -2
- data/app/controllers/concerns/spina/api/paginable.rb +44 -0
- data/app/controllers/concerns/spina/current_account.rb +17 -0
- data/app/controllers/concerns/spina/current_theme.rb +17 -0
- data/app/controllers/spina/admin/admin_controller.rb +3 -10
- data/app/controllers/spina/admin/pages_controller.rb +2 -2
- data/app/controllers/spina/admin/password_resets_controller.rb +1 -1
- data/app/controllers/spina/admin/sessions_controller.rb +1 -1
- data/app/controllers/spina/admin/users_controller.rb +11 -1
- data/app/controllers/spina/api/api_controller.rb +29 -0
- data/app/controllers/spina/api/images_controller.rb +12 -0
- data/app/controllers/spina/api/navigations_controller.rb +20 -0
- data/app/controllers/spina/api/pages_controller.rb +26 -0
- data/app/controllers/spina/api/resources_controller.rb +19 -0
- data/app/controllers/spina/application_controller.rb +2 -1
- data/app/controllers/spina/pages_controller.rb +5 -5
- data/app/helpers/spina/attachments_helper.rb +1 -1
- data/app/helpers/spina/images_helper.rb +1 -5
- data/app/helpers/spina/spina_helper.rb +5 -8
- data/app/models/spina/attachment.rb +4 -0
- data/app/models/spina/page.rb +1 -1
- data/app/serializers/spina/api/base_serializer.rb +6 -0
- data/app/serializers/spina/api/image_serializer.rb +20 -0
- data/app/serializers/spina/api/navigation_serializer.rb +30 -0
- data/app/serializers/spina/api/page_serializer.rb +28 -0
- data/app/serializers/spina/api/resource_serializer.rb +12 -0
- data/app/views/layouts/spina/admin/application.html.erb +3 -7
- data/app/views/spina/admin/attachments/_attachment.html.erb +5 -0
- data/app/views/spina/admin/attachments/index.html.erb +1 -1
- data/app/views/spina/admin/parts/attachments/_form.html.erb +2 -2
- data/app/views/spina/admin/shared/_navigation.html.erb +18 -13
- data/config/locales/TH.yml +1 -0
- data/config/locales/bg.yml +1 -0
- data/config/locales/de.yml +177 -166
- data/config/locales/en.yml +7 -0
- data/config/locales/es.yml +133 -130
- data/config/locales/fr.yml +1 -0
- data/config/locales/id.yml +1 -0
- data/config/locales/it.yml +1 -0
- data/config/locales/nl.yml +1 -0
- data/config/locales/pl.yml +1 -0
- data/config/locales/pt-BR.yml +1 -0
- data/config/locales/ro.yml +1 -0
- data/config/locales/ru.yml +199 -176
- data/config/locales/sv.yml +1 -0
- data/config/locales/tr.yml +1 -0
- data/config/locales/zh-CN.yml +1 -0
- data/config/routes.rb +10 -0
- data/lib/generators/spina/templates/config/initializers/spina.rb +48 -13
- data/lib/generators/spina/templates/config/initializers/themes/demo.rb +1 -1
- data/lib/spina.rb +36 -30
- data/lib/spina/authentication/basic.rb +24 -0
- data/lib/spina/authentication/sessions.rb +32 -0
- data/lib/spina/engine.rb +18 -7
- data/lib/spina/railtie.rb +1 -1
- data/lib/spina/version.rb +1 -1
- data/lib/tasks/spina_tasks.rake +1 -1
- metadata +66 -10
- data/app/assets/javascripts/spina/importmap.json.erb +0 -5
- data/app/controllers/concerns/spina/current_methods.rb +0 -34
- data/lib/spina/importmap_helper.rb +0 -37
@@ -0,0 +1,30 @@
|
|
1
|
+
module Spina::Api
|
2
|
+
class NavigationSerializer < BaseSerializer
|
3
|
+
set_type :navigation
|
4
|
+
|
5
|
+
attributes :name, :label
|
6
|
+
|
7
|
+
attribute :tree do |navigation|
|
8
|
+
items_to_tree(navigation.navigation_items.sorted.roots.in_menu.live.joins(:page))
|
9
|
+
end
|
10
|
+
|
11
|
+
class << self
|
12
|
+
|
13
|
+
def items_to_tree(collection)
|
14
|
+
collection.map do |item|
|
15
|
+
{
|
16
|
+
depth: item.depth,
|
17
|
+
page: {
|
18
|
+
id: item.page_id,
|
19
|
+
menu_title: item.menu_title,
|
20
|
+
materialized_path: item.materialized_path
|
21
|
+
},
|
22
|
+
children: items_to_tree(item.children.sorted.in_menu.live.joins(:page))
|
23
|
+
}
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Spina::Api
|
2
|
+
class PageSerializer < BaseSerializer
|
3
|
+
set_type :page
|
4
|
+
|
5
|
+
attributes :title, :seo_title, :menu_title, :materialized_path, :name, :description, :view_template
|
6
|
+
|
7
|
+
attribute(:content) { |page| page_content(page) }
|
8
|
+
|
9
|
+
belongs_to :resource
|
10
|
+
|
11
|
+
class << self
|
12
|
+
|
13
|
+
def page_content(page)
|
14
|
+
return [] unless view_template(page)
|
15
|
+
|
16
|
+
view_template(page)[:parts].map do |part|
|
17
|
+
{ part => page.content(part) }
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def view_template(page)
|
22
|
+
Spina::Current.theme.view_templates.find{|view_template| view_template[:name] == page.view_template}
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module Spina::Api
|
2
|
+
class ResourceSerializer < BaseSerializer
|
3
|
+
set_type :resource
|
4
|
+
|
5
|
+
attributes :name, :label, :view_template, :order_by, :slug
|
6
|
+
|
7
|
+
has_many :pages, lazy_load_data: true, links: {
|
8
|
+
self: -> (object) { api_resource_path(object.id) },
|
9
|
+
related: -> (object) { api_resource_pages_path(object.id) }
|
10
|
+
}, meta: -> (resource) { {count: resource.pages.live.length} }
|
11
|
+
end
|
12
|
+
end
|
@@ -10,19 +10,15 @@
|
|
10
10
|
|
11
11
|
<title>Spina CMS</title>
|
12
12
|
|
13
|
-
<!-- Tailwind -->
|
13
|
+
<!-- Tailwind -->
|
14
14
|
<%= stylesheet_link_tag 'spina/application', data: {turbolinks_track: true} %>
|
15
15
|
|
16
|
-
<!--
|
17
|
-
<%=
|
18
|
-
<%= spina_include_tags %>
|
16
|
+
<!-- Spina's importmap -->
|
17
|
+
<%= spina_importmap_tags %>
|
19
18
|
|
20
19
|
<!-- Plugins & Hooks -->
|
21
20
|
<%= yield(:head) %>
|
22
21
|
<%= render Spina::Hooks::HookComponent.new(partial: "head") %>
|
23
|
-
|
24
|
-
<!-- Stimulus Autoloader -->
|
25
|
-
<%= autoloader_include_tag %>
|
26
22
|
</head>
|
27
23
|
|
28
24
|
<body>
|
@@ -9,6 +9,11 @@
|
|
9
9
|
<%= heroicon('pencil', style: :solid, class: 'w-4 h-4 mr-1 text-gray-600') %>
|
10
10
|
<%=t 'spina.ui.rename' %>
|
11
11
|
<% end %>
|
12
|
+
|
13
|
+
<%= link_to file_url(attachment.file), class: "btn btn-default h-7 px-2 mr-2 text-xs" do %>
|
14
|
+
<%= heroicon('download', style: :solid, class: 'w-4 h-4 mr-1 text-gray-600') %>
|
15
|
+
<%=t 'spina.attachments.download' %>
|
16
|
+
<% end %>
|
12
17
|
</div>
|
13
18
|
</turbo-frame>
|
14
19
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<%= render Spina::UserInterface::HeaderComponent.new do |header| %>
|
2
2
|
<% header.actions do %>
|
3
|
-
<%= form_with model: [:admin, Spina::Attachment.new], url: spina.admin_attachments_path, data: {controller: "form loading-button", loading_message: t('spina.media_library.uploading'), action: "turbo
|
3
|
+
<%= form_with model: [:admin, Spina::Attachment.new], url: spina.admin_attachments_path, data: {controller: "form loading-button", loading_message: t('spina.media_library.uploading'), action: "turbo:submit-end->loading-button#doneLoading"} do |f| %>
|
4
4
|
|
5
5
|
<%= f.file_field :files, multiple: true, id: "new_attachment_file_field", class: 'hidden', data: {action: "loading-button#loading form#requestSubmit"} %>
|
6
6
|
|
@@ -1,8 +1,8 @@
|
|
1
|
-
<div class="mt-6">
|
1
|
+
<div class="mt-6" data-controller="attachment-picker">
|
2
2
|
<label for="price" class="block text-sm leading-5 font-medium text-gray-700"><%= f.object.title %></label>
|
3
3
|
|
4
4
|
<%= f.hidden_field :signed_blob_id, data: {attachment_picker_target: 'signedBlobId'} %>
|
5
5
|
<%= f.hidden_field :filename, data: {attachment_picker_target: 'filename'} %>
|
6
6
|
|
7
|
-
<%= f.select :attachment_id, Spina::Attachment.sorted.map{|attachment| [attachment.file&.filename, attachment.id, data: {signed_blob_id: attachment.file&.blob&.signed_id, filename: attachment.file&.filename}]}, {include_blank: t("spina.attachments.choose_attachment")}, {class: "form-select"} %>
|
7
|
+
<%= f.select :attachment_id, Spina::Attachment.sorted.map{|attachment| [attachment.file&.filename, attachment.id, data: {signed_blob_id: attachment.file&.blob&.signed_id, filename: attachment.file&.filename}]}, {include_blank: t("spina.attachments.choose_attachment")}, {class: "form-select", data: {action: "attachment-picker#pick"}} %>
|
8
8
|
</div>
|
@@ -8,7 +8,7 @@
|
|
8
8
|
<%= heroicon('menu', style: :solid, class: 'md:hidden w-8 h-8 text-white md:mr-3') %>
|
9
9
|
|
10
10
|
<div class="text-white font-semibold hidden md:block transform -translate-x-2 ease-in-out duration-300 absolute md:relative opacity-0 transition-all" data-navigation-target="label">
|
11
|
-
|
11
|
+
<%= t('spina.website.content') %>
|
12
12
|
</div>
|
13
13
|
<% end %>
|
14
14
|
|
@@ -17,8 +17,8 @@
|
|
17
17
|
<%= render Spina::MainNavigation::LinkComponent.new t('spina.website.pages'), spina.admin_pages_path, active: controller_name.in?(%w(pages resources)) %>
|
18
18
|
|
19
19
|
<%= render Spina::MainNavigation::LinkComponent.new t('spina.navigations.navigations'), spina.admin_navigations_path, active: controller_name == "navigations" %>
|
20
|
-
|
21
|
-
<%= render Spina::MainNavigation::LinkComponent.new
|
20
|
+
|
21
|
+
<%= render Spina::MainNavigation::LinkComponent.new t('spina.layout.layout'), spina.edit_admin_layout_path, active: controller_name == "layout" %>
|
22
22
|
|
23
23
|
<%= render Spina::MainNavigation::LinkComponent.new t('spina.website.media_library'), spina.admin_images_path, active: controller_name.in?(%w(images media_folders attachments)) %>
|
24
24
|
|
@@ -33,14 +33,17 @@
|
|
33
33
|
<%= heroicon('cog', style: :solid, class: 'w-8 h-8 text-white md:mr-3') %>
|
34
34
|
|
35
35
|
<div class="text-white font-semibold hidden md:block transform -translate-x-2 ease-in-out duration-300 absolute md:relative opacity-0 transition-all" data-navigation-target="label">
|
36
|
-
|
36
|
+
<%= t('spina.website.settings') %>
|
37
37
|
</div>
|
38
38
|
<% end %>
|
39
39
|
|
40
40
|
<% nav.links do %>
|
41
|
-
<%= render Spina::MainNavigation::LinkComponent.new(
|
41
|
+
<%= render Spina::MainNavigation::LinkComponent.new(t('spina.settings.general'), spina.edit_admin_account_path, active: controller_name == "accounts") %>
|
42
42
|
<%= render Spina::MainNavigation::LinkComponent.new(t('spina.website.theme'), spina.edit_admin_theme_path, active: controller_name == "theme") %>
|
43
|
-
|
43
|
+
|
44
|
+
<% if Spina.config.authentication == "Spina::Authentication::Sessions" %>
|
45
|
+
<%= render Spina::MainNavigation::LinkComponent.new(t('spina.settings.users'), spina.admin_users_path, active: controller_name == "users") %>
|
46
|
+
<% end %>
|
44
47
|
|
45
48
|
<%= render Spina::Hooks::HookComponent.new(partial: "settings_secondary_navigation") %>
|
46
49
|
|
@@ -54,13 +57,15 @@
|
|
54
57
|
<% end %>
|
55
58
|
</ul>
|
56
59
|
|
57
|
-
|
58
|
-
<
|
59
|
-
|
60
|
-
<%=
|
61
|
-
|
62
|
-
|
63
|
-
|
60
|
+
<% if defined?(logout_path) %>
|
61
|
+
<ul class="md:block">
|
62
|
+
<li>
|
63
|
+
<%= link_to logout_path, class: 'p-3 w-14 block flex justify-center opacity-50 hover:opacity-100 transition duration-200 ease', data: {turbo: false} do %>
|
64
|
+
<%= heroicon('logout', style: :solid, class: 'h-8 w-8 text-white') %>
|
65
|
+
<% end %>
|
66
|
+
</li>
|
67
|
+
</ul>
|
68
|
+
<% end %>
|
64
69
|
|
65
70
|
</div>
|
66
71
|
</nav>
|
data/config/locales/TH.yml
CHANGED
data/config/locales/bg.yml
CHANGED
data/config/locales/de.yml
CHANGED
@@ -1,4 +1,7 @@
|
|
1
1
|
de:
|
2
|
+
time:
|
3
|
+
formats:
|
4
|
+
long: "%Y-%m-%d %H:%M:%S"
|
2
5
|
activerecord:
|
3
6
|
attributes:
|
4
7
|
spina/account:
|
@@ -18,7 +21,7 @@ de:
|
|
18
21
|
phone: Telefon
|
19
22
|
postal_code: PLZ
|
20
23
|
robots_allowed: Sichtbar für Suchmaschinen
|
21
|
-
theme:
|
24
|
+
theme: Webseiten Theme
|
22
25
|
twitter: Twitter
|
23
26
|
vat_identifier: USt-IdNr
|
24
27
|
vat_identifier_description: USt-IdNr
|
@@ -36,43 +39,43 @@ de:
|
|
36
39
|
pages: Seiten
|
37
40
|
pages_description: Wähle die Seiten aus, die du in diesem Menü verwenden willst
|
38
41
|
spina/page:
|
39
|
-
ancestry:
|
40
|
-
created_at:
|
42
|
+
ancestry: Oberseite
|
43
|
+
created_at: Erstellt am
|
41
44
|
description: Meta Beschreibung
|
42
45
|
description_description: Diese Beschreibung wird in den Suchergebnissen angezeigt
|
43
46
|
description_placeholder: Kurze Beschreibung deiner Seite
|
44
47
|
draft: Entwurf
|
45
|
-
draft_description:
|
48
|
+
draft_description: Praktisch wenn deine Seite noch nicht ganz fertig ist
|
46
49
|
link_url: Seitenumleitung
|
47
50
|
link_url_description: Weiterleiten an URL
|
48
51
|
link_url_placeholder: z.B. http://www.example.com/
|
49
52
|
menu_title: Menü-Titel
|
50
53
|
menu_title_placeholder: Leer lassen um den Seiten-Titel zu verwenden
|
51
|
-
no_parent: Kein
|
52
|
-
resource:
|
54
|
+
no_parent: Kein Oberelement
|
55
|
+
resource: Kollektion
|
53
56
|
seo_title: SEO <title>
|
54
|
-
seo_title_description:
|
57
|
+
seo_title_description: Stelle sicher dass deine Suchresultate gut aussehen
|
55
58
|
seo_title_placeholder: Dieser Titel wird im <title>-tag verwendet
|
56
59
|
show_in_menu: In der Navigation anzeigen
|
57
60
|
show_in_menu_description: Wenn diese Option ausgeschaltet ist, wird deine Seite nicht in der Navigation angezeigt
|
58
|
-
skip_to_first_child:
|
59
|
-
skip_to_first_child_description: Zur ersten
|
61
|
+
skip_to_first_child: Weiterleiten
|
62
|
+
skip_to_first_child_description: Zur ersten Unterseite
|
60
63
|
title: Titel
|
61
64
|
title_placeholder: Seiten-Titel
|
62
|
-
url_title:
|
63
|
-
url_title_description:
|
64
|
-
url_title_placeholder:
|
65
|
+
url_title: Prefix überschreiben
|
66
|
+
url_title_description: Optional
|
67
|
+
url_title_placeholder: Prefix
|
65
68
|
view_template: Seiten-Template
|
66
69
|
spina/resource:
|
67
|
-
label:
|
68
|
-
order_by:
|
69
|
-
parent_page:
|
70
|
-
view_template:
|
70
|
+
label: Label
|
71
|
+
order_by: Ordnen nach
|
72
|
+
parent_page: Oberseite
|
73
|
+
view_template: Standard View Template
|
71
74
|
spina/user:
|
72
75
|
admin: Administrator
|
73
76
|
admin_description: Administratoren können Benutzer anlegen
|
74
77
|
email: E-Mail
|
75
|
-
email_description: Deine E-Mail muss eindeutig sein
|
78
|
+
email_description: Deine E-Mail Adresse muss eindeutig sein
|
76
79
|
last_logged_in: Zuletzt eingeloggt
|
77
80
|
name: Name
|
78
81
|
name_placeholder: Name
|
@@ -96,20 +99,21 @@ de:
|
|
96
99
|
other: Benutzer
|
97
100
|
spina:
|
98
101
|
accounts:
|
99
|
-
contact_details:
|
100
|
-
contact_details_description:
|
101
|
-
couldnt_be_saved:
|
102
|
-
name_description:
|
103
|
-
save:
|
104
|
-
saved:
|
102
|
+
contact_details: Kontaktangaben
|
103
|
+
contact_details_description: Email und Telefon
|
104
|
+
couldnt_be_saved: Konto konnte nicht gespeichert werden
|
105
|
+
name_description: Name deiner Webseite
|
106
|
+
save: Konto speichern
|
107
|
+
saved: Konto wurde gespeichert
|
105
108
|
ago: vor
|
106
109
|
attachments:
|
107
|
-
choose_attachment:
|
108
|
-
delete_confirmation_html:
|
110
|
+
choose_attachment: Dokument auswählen
|
111
|
+
delete_confirmation_html: Bist du sicher? Dieses Dokument <span class='font-semibold'>könnte</span> von einer Seite genutzt werden.
|
109
112
|
insert: Dokument einfügen
|
110
113
|
insert_multiple: Dokumente einfügen
|
114
|
+
upload: Dokumente Hochladen
|
111
115
|
cancel: Abbrechen
|
112
|
-
choose_from_library:
|
116
|
+
choose_from_library: In Bibliothek auswählen
|
113
117
|
close: Schließen
|
114
118
|
delete: Löschen
|
115
119
|
delete_confirmation: Bist du sicher, dass du <strong>%{subject}</strong> löschen möchtest?
|
@@ -124,230 +128,237 @@ de:
|
|
124
128
|
success: Du kannst dein neues Passwort verwenden
|
125
129
|
unknown_user: Dieser Nutzer existiert nicht
|
126
130
|
images:
|
127
|
-
all_images:
|
128
|
-
back:
|
129
|
-
cannot_be_created:
|
130
|
-
choose_image:
|
131
|
-
choose_images:
|
132
|
-
confirm_selection:
|
133
|
-
delete:
|
134
|
-
delete_confirmation_html:
|
135
|
-
delete_folder:
|
136
|
-
done_organizing:
|
137
|
-
insert_image:
|
138
|
-
insert_photo:
|
139
|
-
insert_photos:
|
140
|
-
link:
|
141
|
-
new_folder:
|
142
|
-
organize:
|
143
|
-
remove_image:
|
144
|
-
upload:
|
145
|
-
upload_image:
|
131
|
+
all_images: Alle Bilder
|
132
|
+
back: Zurück
|
133
|
+
cannot_be_created: Konnte nicht erstellt werden
|
134
|
+
choose_image: Bild auswählen
|
135
|
+
choose_images: Bilder auswählen
|
136
|
+
confirm_selection: Auswahl bestätigen
|
137
|
+
delete: Löschen
|
138
|
+
delete_confirmation_html: Bist du sicher, dass du dieses <strong>Bild</strong> löschen möchtest?
|
139
|
+
delete_folder: Ordner löschen
|
140
|
+
done_organizing: Speichern
|
141
|
+
insert_image: Bild einfügen
|
142
|
+
insert_photo: Foto einfügen
|
143
|
+
insert_photos: Fotos einfügen
|
144
|
+
link: Link
|
145
|
+
new_folder: Neuer Ordner
|
146
|
+
organize: Ordnen
|
147
|
+
remove_image: Bild löschen
|
148
|
+
upload: Bilder hochladen
|
149
|
+
upload_image: Bild hochladen
|
146
150
|
languages:
|
147
|
-
bg:
|
148
|
-
de:
|
151
|
+
bg: Bulgarisch
|
152
|
+
de: Deutsch
|
149
153
|
en: Englisch
|
150
|
-
es:
|
151
|
-
fr:
|
152
|
-
id:
|
153
|
-
it:
|
154
|
+
es: Spanisch
|
155
|
+
fr: Französisch
|
156
|
+
id: Indonesisch
|
157
|
+
it: Italiensich
|
154
158
|
nl: Holländisch
|
155
|
-
pl:
|
156
|
-
pt-BR:
|
157
|
-
ro:
|
158
|
-
ru:
|
159
|
-
sv:
|
160
|
-
th:
|
161
|
-
tr:
|
162
|
-
zh-CN:
|
159
|
+
pl: Polnisch
|
160
|
+
pt-BR: Brasilianisches Portugiesisch
|
161
|
+
ro: Rumänisch
|
162
|
+
ru: Russisch
|
163
|
+
sv: Schwedisch
|
164
|
+
th: Thai
|
165
|
+
tr: Türkisch
|
166
|
+
zh-CN: Vereinfachtes Chinesisch
|
163
167
|
layout:
|
164
|
-
couldnt_be_saved:
|
165
|
-
layout:
|
166
|
-
no_layout_parts:
|
167
|
-
save:
|
168
|
-
saved:
|
168
|
+
couldnt_be_saved: Layout konnte nicht gespeichert werden
|
169
|
+
layout: Layout
|
170
|
+
no_layout_parts: Keine Layout Elemente verfügbar
|
171
|
+
save: Layout speichern
|
172
|
+
saved: Layout gespeichert
|
169
173
|
login: Login
|
170
174
|
logout: Logout
|
171
175
|
main_menu: Hauptmenü
|
172
176
|
media_library:
|
173
|
-
add_folder:
|
174
|
-
add_image:
|
177
|
+
add_folder: Ordner hinzufügen
|
178
|
+
add_image: Bild hinzufügen
|
175
179
|
attachments: Dokumente
|
176
|
-
back_to_all:
|
177
|
-
filename:
|
178
|
-
images:
|
180
|
+
back_to_all: Zurück
|
181
|
+
filename: Dateiname
|
182
|
+
images: Bilder
|
179
183
|
images_count:
|
180
|
-
|
181
|
-
|
182
|
-
|
184
|
+
one: 1 Bild
|
185
|
+
other: "%{count} Bilder"
|
186
|
+
insert: Bild einfügen
|
187
|
+
media_folder_delete_confirmation_html: Bist du sicher? Die Bilder werden <strong>nicht</strong> gelöscht.
|
188
|
+
no_folder: Kein Ordner
|
183
189
|
photos: Bilder
|
184
|
-
rename_folder:
|
185
|
-
save_media_folder:
|
186
|
-
upload_from_device:
|
187
|
-
uploading:
|
190
|
+
rename_folder: Ordner umbenennen
|
191
|
+
save_media_folder: Medien-Ordner speichern
|
192
|
+
upload_from_device: Von Gerät hochladen
|
193
|
+
uploading: Wird hochgeladen...
|
188
194
|
modal:
|
189
195
|
agree: Ja, ich bin sicher
|
190
196
|
cancel: Nein, abbrechen
|
191
197
|
navigations:
|
192
|
-
add_menu_item:
|
193
|
-
add_sub_item:
|
194
|
-
choose_page:
|
195
|
-
delete_item:
|
196
|
-
delete_item_confirmation_html:
|
197
|
-
description:
|
198
|
-
navigations:
|
199
|
-
no_navigations:
|
200
|
-
sorting_saved:
|
198
|
+
add_menu_item: Menü-Eintrag hinzufügen
|
199
|
+
add_sub_item: Untereintrag hinzufügen
|
200
|
+
choose_page: Seite auswählen
|
201
|
+
delete_item: Eintrag löschen
|
202
|
+
delete_item_confirmation_html: Bist du sicher, dass du diesen Menü-Eintrag <span class='font-semibold'>löschen</span> möchtest?
|
203
|
+
description: Füge und sortiere Einträge wie du möchtest. Optional kannst du auch verschachtelte Menü-Einträge hinzufügen.
|
204
|
+
navigations: Navigationen
|
205
|
+
no_navigations: Diese Webseite hat noch keine Navigationen. Du kannst eine in der Theme Konfiguration erstellen.
|
206
|
+
sorting_saved: Reihenfolge gespeichert
|
201
207
|
notifications:
|
202
|
-
alert:
|
208
|
+
alert: Ups! Etwas ist falsch gelaufen
|
203
209
|
information: Information
|
204
210
|
login: Du musst dich zuerst einloggen
|
205
|
-
wrong_username_or_password:
|
211
|
+
wrong_username_or_password: E-Mail oder Passwort falsch
|
206
212
|
options:
|
207
|
-
choose_option:
|
213
|
+
choose_option: Option auswählen
|
208
214
|
pages:
|
209
|
-
add_page_to:
|
210
|
-
add_translation:
|
215
|
+
add_page_to: 'Seite hinzufügen zu:'
|
216
|
+
add_translation: Übersetzung für %{language} hinzufügen
|
211
217
|
advanced: Erweitert
|
212
|
-
cannot_be_deleted:
|
218
|
+
cannot_be_deleted: Seite kann nicht gelöscht werden
|
213
219
|
change_order: Reihenfolge ändern
|
214
|
-
change_view_template:
|
215
|
-
change_view_template_confirmation:
|
220
|
+
change_view_template: View Template ändern
|
221
|
+
change_view_template_confirmation: Bist du sicher, dass du dein view Template ändern möchtest? Inhalte die nicht zum neuen Template passen gehen verloren.
|
216
222
|
concept: Entwurf
|
217
|
-
create:
|
218
|
-
create_page:
|
219
|
-
delete:
|
223
|
+
create: Seite erstellen
|
224
|
+
create_page: Neue(s) %{template}
|
225
|
+
delete: Seite löschen
|
220
226
|
delete_confirmation: Bist du sicher, dass du die Seite <strong>%{subject}</strong> löschen möchtest?
|
221
|
-
deleted:
|
227
|
+
deleted: Seite gelöscht
|
222
228
|
done_changing_order: Reihenfolge speichern
|
223
|
-
edit_translation:
|
229
|
+
edit_translation: Übersetzung für %{language} editieren
|
224
230
|
invisible_to_search_engines: Deine Website ist für Suchmaschinen nicht sichtbar.
|
225
231
|
invisible_to_search_engines_description: Gehe zu deinen Einstellungen um Suchmaschinen-Support zu aktivieren.
|
226
|
-
main_collection:
|
232
|
+
main_collection: Hauptkollektion
|
227
233
|
materialize_path_confirmation: Bist du sicher, dass du den Pfad für diese Seite neu erzeugen willst?
|
228
|
-
missing_translations:
|
229
|
-
move_page:
|
230
|
-
moved:
|
234
|
+
missing_translations: Fehlende Übersetzungen
|
235
|
+
move_page: Seite verschieben
|
236
|
+
moved: Seite verschoben
|
231
237
|
new: Neue Seite
|
232
|
-
no_pages_yet:
|
233
|
-
no_parent_page:
|
238
|
+
no_pages_yet: Noch keine Seiten
|
239
|
+
no_parent_page: Keine Oberseite
|
234
240
|
page_content: Inhalt
|
235
241
|
page_part: Seiteninhalt
|
236
242
|
page_seo: Suchmaschinen
|
237
|
-
path:
|
238
|
-
photo_picker:
|
239
|
-
photos_picker:
|
240
|
-
preview:
|
241
|
-
publish:
|
242
|
-
published:
|
243
|
+
path: 'Pfad:'
|
244
|
+
photo_picker: Bild auswählen
|
245
|
+
photos_picker: Bilder auswählen
|
246
|
+
preview: Vorschau
|
247
|
+
publish: Publizieren
|
248
|
+
published: Seite publiziert
|
243
249
|
rebuild_materialized_path: Materialisierten Pfad neu erzeugen
|
244
|
-
recommended:
|
250
|
+
recommended: Empfohlen
|
245
251
|
save: Seite speichern
|
246
|
-
save_changes:
|
247
|
-
save_draft:
|
252
|
+
save_changes: Änderungen speichern
|
253
|
+
save_draft: Entwurf speichern
|
248
254
|
saved: Seite gespeichert
|
249
|
-
saving:
|
250
|
-
search_engines:
|
255
|
+
saving: wird gespeichert...
|
256
|
+
search_engines: Suchmaschinen
|
251
257
|
show_in_menu: unsichtbar
|
252
|
-
skip_to_first_child:
|
253
|
-
sorting_saved:
|
258
|
+
skip_to_first_child: Zur ersten Unterseite weiterleiten
|
259
|
+
sorting_saved: Reihenfolge gespeichert
|
254
260
|
permanently_delete: Permanent Löschen
|
255
261
|
photos:
|
256
262
|
cannot_be_created: 'Bild kann nicht verarbeitet werden:'
|
257
|
-
choose_images:
|
258
|
-
delete:
|
263
|
+
choose_images: Bilder auswählen
|
264
|
+
delete: Löschen
|
259
265
|
delete_confirmation: Bist du sicher, dass du das Bild <strong>%{image}</strong> löschen möchtest?
|
260
|
-
delete_folder:
|
261
|
-
done_organizing:
|
266
|
+
delete_folder: Ordner löschen
|
267
|
+
done_organizing: Reihenfolge speichern
|
262
268
|
insert_photo: Bild einfügen
|
263
|
-
insert_photos:
|
269
|
+
insert_photos: Bilder auswählen
|
264
270
|
link: 'URL des Bildes:'
|
265
271
|
new_folder: Neuer Ordner
|
266
|
-
organize:
|
267
|
-
rename_folder:
|
268
|
-
select_images:
|
272
|
+
organize: Bilder sortieren
|
273
|
+
rename_folder: Ordner umbenenen
|
274
|
+
select_images: Bilder auswählen
|
269
275
|
upload_image: Bild hochladen
|
270
276
|
preferences:
|
271
|
-
Analytics:
|
277
|
+
Analytics: Analytics
|
272
278
|
account: Allgemein
|
273
279
|
account_description: Persönliche Einstellungen
|
274
280
|
account_save: Einstellungen speichern
|
275
281
|
analytics: Analytics und Suchmaschinen
|
276
|
-
analytics_description:
|
282
|
+
analytics_description: Verknüpfe deinen Account für real-time Analysen
|
277
283
|
analytics_save: Einstellungen speichern
|
278
284
|
domain_name_settings: Domain Einstellungen
|
279
285
|
domain_name_settings_description: Richte deine Domain ein
|
280
286
|
social_media: Social Media
|
281
287
|
social_media_description: Facebook und Twitter Accounts
|
282
288
|
social_media_save: Speichere Social Media
|
283
|
-
style:
|
284
|
-
style_description: Wähle einen passenden
|
285
|
-
style_save:
|
289
|
+
style: Stil
|
290
|
+
style_description: Wähle einen passenden Stil
|
291
|
+
style_save: Stil speichern
|
286
292
|
title: Einstellungen
|
287
293
|
users: Benutzer
|
288
294
|
users_description: Benutzer und Administratoren verwalten
|
289
295
|
preview_website: Vorschau der Webseite
|
290
296
|
resources:
|
291
|
-
edit:
|
292
|
-
label_description:
|
293
|
-
manual_sorting:
|
294
|
-
no_default_template:
|
295
|
-
saved:
|
296
|
-
settings:
|
297
|
-
settings_description:
|
297
|
+
edit: Kollektion editieren
|
298
|
+
label_description: Label für diese Seiten Kollektion
|
299
|
+
manual_sorting: Manuell sortieren
|
300
|
+
no_default_template: Kein Standard-Template
|
301
|
+
saved: Kollektion gespeichert
|
302
|
+
settings: Einstellungen für %{label}
|
303
|
+
settings_description: Alle Seiten in dieser Kollektion haben folgendes Prefix.
|
298
304
|
save: Speichern
|
299
305
|
search: Suchen...
|
300
306
|
settings:
|
307
|
+
general: Allgemein
|
301
308
|
save: Einstellungen speichern
|
302
309
|
title: Einstellungen
|
310
|
+
users: Benutzer
|
303
311
|
theme:
|
304
|
-
save:
|
305
|
-
saved:
|
306
|
-
theme:
|
307
|
-
theme_description:
|
312
|
+
save: Theme speichern
|
313
|
+
saved: Theme gespeichert
|
314
|
+
theme: Theme
|
315
|
+
theme_description: Konfiguriere dein Theme
|
308
316
|
ui:
|
309
|
-
cancel:
|
310
|
-
delete:
|
311
|
-
load_more:
|
312
|
-
move_to:
|
313
|
-
new_entry:
|
314
|
-
optional:
|
315
|
-
rename:
|
316
|
-
save_changes:
|
317
|
-
saving:
|
317
|
+
cancel: Abbrechen
|
318
|
+
delete: Löschen
|
319
|
+
load_more: Weitere laden
|
320
|
+
move_to: Verschieben nach
|
321
|
+
new_entry: Neuer Eintrag
|
322
|
+
optional: Optional
|
323
|
+
rename: Umbenennen
|
324
|
+
save_changes: Änderungen speichern
|
325
|
+
saving: Speichern...
|
318
326
|
users:
|
319
|
-
authorization:
|
320
|
-
authorization_description:
|
327
|
+
authorization: Authorisierung
|
328
|
+
authorization_description: Administratoren können Benutzer verwalten. Normale Benutzer nicht.
|
321
329
|
cannot_be_created: Der Benutzer kann nicht gespeichert werden
|
322
|
-
delete:
|
330
|
+
delete: Benutzer löschen
|
323
331
|
delete_confirmation_html: Bist du sicher, dass du den Benutzer <strong>%{user}</strong> löschen möchtest?
|
324
|
-
deleted:
|
325
|
-
last_login:
|
326
|
-
never_logged_in:
|
332
|
+
deleted: Benutzer gelöscht
|
333
|
+
last_login: Letztes Login
|
334
|
+
never_logged_in: Noch nie eingeloggt
|
327
335
|
new: Neuer Benutzer
|
328
|
-
profile:
|
329
|
-
profile_description:
|
336
|
+
profile: Profil
|
337
|
+
profile_description: Diese Information wird zur Identifikation des Benutzers verwendet. Benutzer müssen sich mit ihrer Email Adresse anmelden.
|
330
338
|
save: Benutzer speichern
|
331
|
-
saved:
|
332
|
-
visit_page:
|
339
|
+
saved: Benutzer speichern
|
340
|
+
visit_page: Seite besuchen
|
333
341
|
website:
|
334
342
|
all_pages: Alle Seiten
|
343
|
+
content: Inhalt
|
335
344
|
documents: Dokumente
|
336
|
-
images:
|
345
|
+
images: Bilder
|
337
346
|
media_library: Medien-Bibliothek
|
338
347
|
media_library_description: Hier findest du alle deine Bilder und Dokumente
|
339
348
|
pages: Seiten
|
340
349
|
pages_description: Alle Seiten deiner Webseite
|
341
|
-
photos:
|
350
|
+
photos: Fotos
|
351
|
+
settings: Einstellungen
|
352
|
+
theme: Theme
|
342
353
|
title: Deine Webseite
|
343
354
|
wysiwyg:
|
344
355
|
heading_1: Überschrift 1
|
345
356
|
heading_2: Überschrift 2
|
346
357
|
heading_3: Überschrift 3
|
347
358
|
insert_link: Link einfügen
|
348
|
-
link:
|
359
|
+
link: Link
|
349
360
|
paragraph: Paragraph
|
350
361
|
quote: Zitat
|
351
|
-
unlink:
|
352
|
-
url:
|
353
|
-
url_placeholder:
|
362
|
+
unlink: Link löschen
|
363
|
+
url: URL
|
364
|
+
url_placeholder: URL einfügen
|