alchemy_cms 3.2.0.rc1 → 3.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/CODE_OF_CONDUCT.md +13 -0
- data/README.md +2 -2
- data/app/assets/javascripts/alchemy/alchemy.dragndrop.js.coffee +5 -9
- data/app/assets/javascripts/alchemy/alchemy.gui.js.coffee +0 -1
- data/app/assets/javascripts/alchemy/alchemy.windows.js.coffee +16 -4
- data/app/assets/stylesheets/alchemy/selects.scss +26 -2
- data/app/controllers/alchemy/admin/elements_controller.rb +1 -1
- data/app/helpers/alchemy/elements_block_helper.rb +6 -6
- data/app/models/alchemy/language.rb +23 -11
- data/app/models/alchemy/page/page_naming.rb +29 -16
- data/app/views/alchemy/admin/elements/fold.js.erb +0 -1
- data/app/views/alchemy/admin/elements/order.js.erb +6 -4
- data/app/views/alchemy/admin/trash/index.html.erb +1 -0
- data/bin/alchemy +3 -3
- data/config/locales/alchemy.nl.yml +35 -35
- data/lib/alchemy/auth_accessors.rb +1 -1
- data/lib/alchemy/config.rb +3 -5
- data/lib/alchemy/errors.rb +14 -0
- data/lib/alchemy/modules.rb +1 -1
- data/lib/alchemy/mount_point.rb +1 -1
- data/lib/alchemy/tasks/helpers.rb +1 -1
- data/lib/alchemy/version.rb +1 -1
- data/lib/rails/generators/alchemy/base.rb +1 -1
- data/lib/rails/templates/alchemy.rb +1 -1
- data/spec/controllers/admin/elements_controller_spec.rb +1 -1
- data/spec/controllers/alchemy/api/contents_controller_spec.rb +41 -23
- data/spec/controllers/alchemy/api/elements_controller_spec.rb +49 -21
- data/spec/controllers/alchemy/api/pages_controller_spec.rb +50 -12
- data/spec/libraries/auth_accessors_spec.rb +3 -1
- data/spec/libraries/config_spec.rb +1 -3
- data/spec/libraries/modules_spec.rb +1 -1
- data/spec/libraries/mount_point_spec.rb +1 -1
- data/spec/models/content_spec.rb +2 -2
- data/spec/models/element_spec.rb +28 -26
- data/spec/models/language_spec.rb +3 -1
- data/spec/models/page_spec.rb +13 -1
- data/spec/tasks/helpers_spec.rb +15 -9
- data/vendor/assets/javascripts/tinymce/langs/de.js +3 -0
- data/vendor/assets/javascripts/tinymce/langs/es.js +5 -2
- data/vendor/assets/javascripts/tinymce/langs/fr.js +14 -11
- data/vendor/assets/javascripts/tinymce/langs/nl.js +6 -3
- data/vendor/assets/javascripts/tinymce/langs/ru.js +3 -0
- data/vendor/assets/javascripts/tinymce/plugins/autoresize/plugin.min.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/charmap/plugin.min.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/fullscreen/plugin.min.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/link/plugin.min.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/paste/plugin.min.js +1 -1
- data/vendor/assets/javascripts/tinymce/plugins/table/plugin.min.js +1 -1
- data/vendor/assets/javascripts/tinymce/themes/modern/theme.min.js +1 -1
- data/vendor/assets/javascripts/tinymce/tinymce.min.js +13 -11
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 843d3c5e682842d297dfa3ac503f46739f0c7923
|
4
|
+
data.tar.gz: 923ddb8430a40163ca1268c1bc8543bbdbac53ef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a21f12882df65fe9f1e4d5ad7381d20c74de29f3dd61e3d532e0c9a4bc3358620849809f63acc239189ded7f286f31c67982d822a77d5ae0eea0925d493a6494
|
7
|
+
data.tar.gz: 76e2ba7f396580a673ec3fc7e7444d8acb7b78828e9dd7dc3c19dc49b958e1e98180a10315a62f25056ebf37384e99fca54d97e9388c57d4dbf957341d6c33d1
|
data/.gitignore
CHANGED
data/CODE_OF_CONDUCT.md
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
# Contributor Code of Conduct
|
2
|
+
|
3
|
+
As contributors and maintainers of AlchemyCMS, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
|
4
|
+
|
5
|
+
We are committed to making participation in AlchemyCMS a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, or religion.
|
6
|
+
|
7
|
+
Examples of unacceptable behavior by participants include the use of sexual language or imagery, derogatory comments or personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct.
|
8
|
+
|
9
|
+
AlchemyCMS maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. AlchemyCMS maintainers who do not follow the Code of Conduct may be removed from the AlchemyCMS team.
|
10
|
+
|
11
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the AlchemyCMS maintainers.
|
12
|
+
|
13
|
+
This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.0.0, available at [http://contributor-covenant.org/version/1/0/0/](http://contributor-covenant.org/version/1/0/0/)
|
data/README.md
CHANGED
@@ -29,7 +29,7 @@ Read more about Alchemy on the [website](http://alchemy-cms.com) and in the [gui
|
|
29
29
|
|
30
30
|
## Rails Version
|
31
31
|
|
32
|
-
**This version of Alchemy CMS runs with Rails 4.2**
|
32
|
+
**This version of Alchemy CMS runs with Rails 4.2 only**
|
33
33
|
|
34
34
|
* For a Rails 4.0/4.1 compatible version use the [`3.1-stable` branch](https://github.com/AlchemyCMS/alchemy_cms/tree/3.1-stable).
|
35
35
|
* For a Rails 3.2 compatible version use the [`2.8-stable` branch](https://github.com/AlchemyCMS/alchemy_cms/tree/2.8-stable).
|
@@ -54,7 +54,7 @@ For a Ruby 1.8.7 compatible version use the [`2.3-stable` branch](https://github
|
|
54
54
|
Use the installer:
|
55
55
|
|
56
56
|
```shell
|
57
|
-
$ gem install alchemy_cms
|
57
|
+
$ gem install alchemy_cms
|
58
58
|
$ alchemy new my_magicpage
|
59
59
|
```
|
60
60
|
|
@@ -30,11 +30,6 @@ $.extend Alchemy,
|
|
30
30
|
$(child).attr "data-element-id"
|
31
31
|
params_string = ""
|
32
32
|
cell_id = $(this).attr("data-cell-id")
|
33
|
-
# Is the trash window open?
|
34
|
-
if Alchemy.TrashWindow.current
|
35
|
-
# update the trash icon
|
36
|
-
if $("#trash_items div.element_editor").not(".dragged").length is 0
|
37
|
-
$("#element_trash_button .icon").removeClass "full"
|
38
33
|
$(event.target).css "cursor", "progress"
|
39
34
|
params_string = "page_id=" + page_id + "&authenticity_token=" + encodeURIComponent(form_token) + "&" + $.param(element_ids: ids)
|
40
35
|
params_string += "&cell_id=" + cell_id if cell_id
|
@@ -82,7 +77,8 @@ $.extend Alchemy,
|
|
82
77
|
iframeFix: "iframe#alchemy_preview_window"
|
83
78
|
connectToSortable: cell_classes.replace(/,.$/, "")
|
84
79
|
start: (event, ui) ->
|
85
|
-
$(this).hide().addClass
|
86
|
-
ui.helper.css
|
87
|
-
stop: ->
|
88
|
-
$(this).show().removeClass
|
80
|
+
$(this).hide().addClass("dragged")
|
81
|
+
ui.helper.css("width", "300px")
|
82
|
+
stop: (event, ui) ->
|
83
|
+
$(this).show().removeClass("dragged")
|
84
|
+
ui.helper.css("width", "")
|
@@ -18,13 +18,25 @@ $.extend Alchemy,
|
|
18
18
|
# Opens the trash window
|
19
19
|
open: (page_id, title) ->
|
20
20
|
url = Alchemy.routes.admin_trash_path(page_id)
|
21
|
-
|
21
|
+
@current = new Alchemy.Dialog url,
|
22
22
|
title: title,
|
23
23
|
size: '380x460',
|
24
24
|
modal: false
|
25
|
-
|
25
|
+
@current.open()
|
26
|
+
return
|
26
27
|
|
27
28
|
# Refreshes the trash window
|
28
29
|
refresh: ->
|
29
|
-
if
|
30
|
-
|
30
|
+
@current.reload() if @current
|
31
|
+
return
|
32
|
+
|
33
|
+
# Update the trash window icon
|
34
|
+
updateIcon: ->
|
35
|
+
return unless @current?
|
36
|
+
$icon = $("#element_trash_button .icon")
|
37
|
+
# Is the trash window open?
|
38
|
+
if $("#trash_items div.element_editor").not(".dragged").length is 0
|
39
|
+
$icon.removeClass("full")
|
40
|
+
else
|
41
|
+
$icon.addClass("full")
|
42
|
+
return
|
@@ -28,9 +28,13 @@ select {
|
|
28
28
|
|
29
29
|
b {
|
30
30
|
@extend .icon-menu;
|
31
|
-
width: 18px;
|
32
|
-
line-height: 23px;
|
33
31
|
background-image: none;
|
32
|
+
|
33
|
+
&:before {
|
34
|
+
position: relative;
|
35
|
+
top: 5px;
|
36
|
+
left: 1px;
|
37
|
+
}
|
34
38
|
}
|
35
39
|
}
|
36
40
|
}
|
@@ -55,6 +59,11 @@ select {
|
|
55
59
|
line-height: 4px;
|
56
60
|
width: 12px;
|
57
61
|
font-size: 10px;
|
62
|
+
|
63
|
+
&:before {
|
64
|
+
top: 0px;
|
65
|
+
left: 0px;
|
66
|
+
}
|
58
67
|
}
|
59
68
|
}
|
60
69
|
}
|
@@ -209,3 +218,18 @@ select {
|
|
209
218
|
margin-right: 2*$default-margin;
|
210
219
|
}
|
211
220
|
}
|
221
|
+
|
222
|
+
// overriding important of select2 default style for retina screens
|
223
|
+
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
|
224
|
+
only screen and (min-resolution: 2dppx) {
|
225
|
+
|
226
|
+
#alchemy {
|
227
|
+
|
228
|
+
.select2-search input,
|
229
|
+
.select2-search-choice-close,
|
230
|
+
.select2-container .select2-choice abbr,
|
231
|
+
.select2-container .select2-choice .select2-arrow b {
|
232
|
+
background-image: none !important;
|
233
|
+
}
|
234
|
+
}
|
235
|
+
}
|
@@ -84,7 +84,7 @@ module Alchemy
|
|
84
84
|
end
|
85
85
|
|
86
86
|
def order
|
87
|
-
@
|
87
|
+
@trashed_element_ids = Element.trashed.where(id: params[:element_ids]).pluck(:id)
|
88
88
|
Element.transaction do
|
89
89
|
params[:element_ids].each_with_index do |element_id, idx|
|
90
90
|
# Ensure to set page_id and cell_id to the current page and
|
@@ -108,15 +108,15 @@ module Alchemy
|
|
108
108
|
#
|
109
109
|
def element_view_for(element, options = {})
|
110
110
|
options = {
|
111
|
-
:
|
112
|
-
:
|
113
|
-
:
|
114
|
-
:
|
111
|
+
tag: :div,
|
112
|
+
id: element_dom_id(element),
|
113
|
+
class: element.name,
|
114
|
+
tags_formatter: ->(tags) { tags.join(" ") }
|
115
115
|
}.merge(options)
|
116
116
|
|
117
117
|
# capture inner template block
|
118
118
|
output = capture do
|
119
|
-
yield ElementViewHelper.new(self, :
|
119
|
+
yield ElementViewHelper.new(self, element: element) if block_given?
|
120
120
|
end
|
121
121
|
|
122
122
|
# wrap output in a useful DOM element
|
@@ -155,7 +155,7 @@ module Alchemy
|
|
155
155
|
}.merge(options)
|
156
156
|
|
157
157
|
capture do
|
158
|
-
yield ElementEditorHelper.new(self, :element
|
158
|
+
yield ElementEditorHelper.new(self, element: element) if block_given?
|
159
159
|
end
|
160
160
|
end
|
161
161
|
end
|
@@ -19,6 +19,9 @@
|
|
19
19
|
|
20
20
|
module Alchemy
|
21
21
|
class Language < ActiveRecord::Base
|
22
|
+
belongs_to :site
|
23
|
+
has_many :pages
|
24
|
+
|
22
25
|
validates_presence_of :name
|
23
26
|
validates_presence_of :language_code
|
24
27
|
validates_presence_of :page_layout
|
@@ -26,20 +29,30 @@ module Alchemy
|
|
26
29
|
validates_uniqueness_of :language_code, scope: [:site_id, :country_code]
|
27
30
|
validate :presence_of_default_language
|
28
31
|
validate :publicity_of_default_language
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
validates_format_of :country_code, with: /\A[a-z]{2}\z/,
|
32
|
+
|
33
|
+
validates_format_of :language_code, with: /\A[a-z]{2}\z/,
|
34
|
+
if: -> { language_code.present? }
|
35
|
+
|
36
|
+
validates_format_of :country_code, with: /\A[a-z]{2}\z/,
|
37
|
+
if: -> { country_code.present? }
|
38
|
+
|
39
|
+
before_save :remove_old_default,
|
40
|
+
if: -> { default_changed? && self != Language.default }
|
41
|
+
|
42
|
+
after_update :set_pages_language,
|
43
|
+
if: -> { language_code_changed? || country_code_changed? }
|
44
|
+
|
45
|
+
after_update :unpublish_pages,
|
46
|
+
if: -> { changes[:public] == [true, false] }
|
47
|
+
|
34
48
|
before_destroy :check_for_default
|
35
|
-
|
36
|
-
|
37
|
-
|
49
|
+
after_destroy :delete_language_root_page
|
50
|
+
|
51
|
+
default_scope { on_site(Site.current) }
|
38
52
|
|
39
53
|
scope :published, -> { where(public: true) }
|
40
54
|
scope :with_root_page, -> { joins(:pages).where(Page.table_name => {language_root: true}) }
|
41
55
|
scope :on_site, ->(s) { s.present? ? where(site_id: s) : all }
|
42
|
-
default_scope { on_site(Site.current) }
|
43
56
|
|
44
57
|
class << self
|
45
58
|
|
@@ -117,7 +130,7 @@ module Alchemy
|
|
117
130
|
end
|
118
131
|
|
119
132
|
def check_for_default
|
120
|
-
raise
|
133
|
+
raise DefaultLanguageNotDeletable if default?
|
121
134
|
end
|
122
135
|
|
123
136
|
def delete_language_root_page
|
@@ -127,6 +140,5 @@ module Alchemy
|
|
127
140
|
def unpublish_pages
|
128
141
|
self.pages.update_all(public: false)
|
129
142
|
end
|
130
|
-
|
131
143
|
end
|
132
144
|
end
|
@@ -37,8 +37,7 @@ module Alchemy
|
|
37
37
|
# Makes a slug of all ancestors urlnames including mine and delimit them be slash.
|
38
38
|
# So the whole path is stored as urlname in the database.
|
39
39
|
def update_urlname!
|
40
|
-
|
41
|
-
new_urlname = (names << slug).join('/')
|
40
|
+
new_urlname = nested_url_name(slug)
|
42
41
|
if urlname != new_urlname
|
43
42
|
legacy_urls.create(urlname: urlname)
|
44
43
|
update_column(:urlname, new_urlname)
|
@@ -56,6 +55,18 @@ module Alchemy
|
|
56
55
|
"http://#{urlname}"
|
57
56
|
end
|
58
57
|
|
58
|
+
# Returns an array of visible/non-language_root ancestors.
|
59
|
+
def visible_ancestors
|
60
|
+
return [] unless parent
|
61
|
+
if new_record?
|
62
|
+
parent.visible_ancestors.tap do |base|
|
63
|
+
base.push(parent) if parent.visible?
|
64
|
+
end
|
65
|
+
else
|
66
|
+
ancestors.visible.contentpages.where(language_root: nil).to_a
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
59
70
|
private
|
60
71
|
|
61
72
|
def update_descendants_urlnames
|
@@ -71,18 +82,15 @@ module Alchemy
|
|
71
82
|
# If url_nesting is enabled the urlname contains the whole path.
|
72
83
|
def set_urlname
|
73
84
|
if Config.get(:url_nesting)
|
74
|
-
|
75
|
-
parent_urlname,
|
76
|
-
convert_url_name(urlname.blank? ? name : slug)
|
77
|
-
].compact.join('/')
|
85
|
+
value = slug
|
78
86
|
else
|
79
|
-
|
87
|
+
value = urlname
|
80
88
|
end
|
81
|
-
|
89
|
+
self[:urlname] = nested_url_name(value)
|
82
90
|
end
|
83
91
|
|
84
92
|
def set_title
|
85
|
-
|
93
|
+
self[:title] = name
|
86
94
|
end
|
87
95
|
|
88
96
|
# Converts the given name into an url friendly string.
|
@@ -90,8 +98,8 @@ module Alchemy
|
|
90
98
|
# Names shorter than 3 will be filled up with dashes,
|
91
99
|
# so it does not collidate with the language code.
|
92
100
|
#
|
93
|
-
def convert_url_name(
|
94
|
-
url_name = convert_to_urlname(name)
|
101
|
+
def convert_url_name(value)
|
102
|
+
url_name = convert_to_urlname(value.blank? ? name : value)
|
95
103
|
if url_name.length < 3
|
96
104
|
('-' * (3 - url_name.length)) + url_name
|
97
105
|
else
|
@@ -99,11 +107,16 @@ module Alchemy
|
|
99
107
|
end
|
100
108
|
end
|
101
109
|
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
110
|
+
def nested_url_name(value)
|
111
|
+
(ancestor_slugs << convert_url_name(value)).join('/')
|
112
|
+
end
|
113
|
+
|
114
|
+
# Slugs of all visible/non-language_root ancestors.
|
115
|
+
# Returns [], if there is no parent, the parent is
|
116
|
+
# the root page itself, or url_nesting is off.
|
117
|
+
def ancestor_slugs
|
118
|
+
return [] if !Config.get(:url_nesting) || parent.nil? || parent.root?
|
119
|
+
visible_ancestors.map(&:slug).compact
|
107
120
|
end
|
108
121
|
end
|
109
122
|
end
|
@@ -1,10 +1,12 @@
|
|
1
1
|
$('#element_area .ajax_folder').show();
|
2
2
|
Alchemy.PreviewWindow.refresh();
|
3
|
-
<% if @
|
3
|
+
<% if @trashed_element_ids.any? %>
|
4
4
|
Alchemy.growl('<%= _t(:successfully_restored_element) -%>');
|
5
|
-
<% element_ids = @
|
6
|
-
|
7
|
-
|
5
|
+
<% element_ids = @trashed_element_ids.collect do |id|
|
6
|
+
"#element_area [data-element-id=\"#{id}\"]"
|
7
|
+
end.join(", ").html_safe %>
|
8
|
+
<% @trashed_element_ids.each do |id| %>
|
9
|
+
$('<%= element_ids %>').each(function() { this.id = 'element_' + <%= id %> });
|
8
10
|
<% end %>
|
9
11
|
Alchemy.ElementEditors.reinit('<%= element_ids %>');
|
10
12
|
<% else %>
|
data/bin/alchemy
CHANGED
@@ -24,7 +24,7 @@ class AlchemyInstaller < Thor
|
|
24
24
|
say welcome_message, :yellow
|
25
25
|
say "Step 1: Creating a Rails #{rails_version} application.", :yellow
|
26
26
|
say "Please wait...", :yellow
|
27
|
-
system("rails _#{rails_version}_ new #{@application} -m #{alchemy_template} -d #{options[:database]} -
|
27
|
+
system("rails _#{rails_version}_ new #{@application} -m #{alchemy_template} -d #{options[:database]} -T") || exit!(1)
|
28
28
|
say "Successfully created the Rails application!", :green
|
29
29
|
say instructions, :yellow
|
30
30
|
if options[:database] == 'mysql' || options[:database] == 'postgresql'
|
@@ -57,7 +57,7 @@ class AlchemyInstaller < Thor
|
|
57
57
|
end
|
58
58
|
|
59
59
|
def bundle_cmd
|
60
|
-
"cd #{@application} && bundle exec"
|
60
|
+
"cd #{@application} && DISABLE_SPRING=1 bundle exec"
|
61
61
|
end
|
62
62
|
|
63
63
|
def alchemy_template
|
@@ -88,7 +88,7 @@ INSTRUCTIONS
|
|
88
88
|
def further_instructions
|
89
89
|
<<-EOF
|
90
90
|
|
91
|
-
Step
|
91
|
+
Step 4: Further Instructions
|
92
92
|
|
93
93
|
Change into your app folder:
|
94
94
|
|
@@ -178,18 +178,18 @@ nl:
|
|
178
178
|
"Currently locked pages": "Vergrendelde pagina's"
|
179
179
|
"Default language has to be public": "De standaardpagina moet publiek zijn."
|
180
180
|
"Delete image": "Afbeelding verwijderen"
|
181
|
-
"Do you really want to clear the clipboard?": "Klembord
|
182
|
-
"Do you really want to clear the trash?": "Prullenbak
|
183
|
-
"Do you really want to delete this content?": "
|
181
|
+
"Do you really want to clear the clipboard?": "Klembord echt leeg maken?"
|
182
|
+
"Do you really want to clear the trash?": "Prullenbak echt leeg maken?"
|
183
|
+
"Do you really want to delete this content?": "Inhoud echt verwijderen?"
|
184
184
|
"Drag an element over to the element window to restore it": "Sleep een element over het elementenvenster om deze te herstellen"
|
185
|
-
"Edit Picturemask": "
|
185
|
+
"Edit Picturemask": "Afbeeldingsmasker bewerken"
|
186
186
|
"Edit image": "Afbeelding bewerken"
|
187
187
|
"Edit multiple pictures": "Meerdere afbeeldingen bewerken"
|
188
188
|
"Elements": "Elementen"
|
189
189
|
"Element trashed": "Element verwijderd"
|
190
190
|
"Error with the Flash® Uploader!": "Fout in de Flash® Uploader!"
|
191
191
|
"Excerpt": "fragment"
|
192
|
-
"File uploaded succesfully": "Bestand %{name}
|
192
|
+
"File uploaded succesfully": "Bestand %{name} geüpload"
|
193
193
|
"File successfully updated": "Bestand is succesvol geüpdatet"
|
194
194
|
"File upload error": "Bestand kon niet worden geüpload: %{error}"
|
195
195
|
"File deleted successfully": "%{name} verwijderd"
|
@@ -231,7 +231,7 @@ nl:
|
|
231
231
|
"Pages order saved": "Paginasortering is opgeslagen"
|
232
232
|
"Password": "Wachtwoord"
|
233
233
|
"Password reset": "Wachtwoord resetten"
|
234
|
-
"Paste from clipboard": "Uit klembord
|
234
|
+
"Paste from clipboard": "Uit klembord kopiëren"
|
235
235
|
"Picture infos": "Afbeeldingsinformatie"
|
236
236
|
"Picture uploaded succesfully": "Afbeelding %{name} is geüpload"
|
237
237
|
"Picture validation error": "Fout bij het uploaden van afbeelding %{name}"
|
@@ -290,11 +290,11 @@ nl:
|
|
290
290
|
"Welcome to Alchemy": "Welkom bij Alchemy"
|
291
291
|
"Who else is online": "Wie is ook online"
|
292
292
|
"Yes": "Ja"
|
293
|
-
"You are not authorized": "U bent niet
|
293
|
+
"You are not authorized": "U bent niet geautoriseerd."
|
294
294
|
"You are about to edit many pictures at once": "%{length} afbeeldingen worden in een keer aangepast"
|
295
295
|
element_dirty_close_window_notice: "Elementen zijn nog niet opgeslagen. Dit venster toch sluiten?"
|
296
296
|
"You may upload files with following extensions": "%{file_types_description} mogen worden geüpload met de volgende extensies: %{file_types}"
|
297
|
-
"You may upload any file": "Alle bestanden kunnen worden
|
297
|
+
"You may upload any file": "Alle bestanden kunnen worden geüpload"
|
298
298
|
"Your last login was on": "Uw laatste aanmelding was op %{time}."
|
299
299
|
"Your last updated pages": "Your last updated pages"
|
300
300
|
"Your trash is empty": "De prullenbak is leeg"
|
@@ -329,11 +329,11 @@ nl:
|
|
329
329
|
content_essence_not_found: "Content essence is niet gevonden"
|
330
330
|
content_not_found: "Veld voor content is niet aanwezig"
|
331
331
|
content_validations_headline: "Controleer de gemarkeerde velden"
|
332
|
-
copy: "
|
333
|
-
copy_element: "Dit element
|
334
|
-
copy_page: "Pagina
|
332
|
+
copy: "kopiëren"
|
333
|
+
copy_element: "Dit element kopiëren"
|
334
|
+
copy_page: "Pagina kopiëren"
|
335
335
|
"Could not delete Pictures": "Kan de afbeeldingen niet verwijderen"
|
336
|
-
copy_language_tree_heading: "Paginastructuur
|
336
|
+
copy_language_tree_heading: "Paginastructuur kopiëren"
|
337
337
|
country_code_placeholder: 'bijv. us (optioneel)'
|
338
338
|
country_code_foot_note: "Een landcode is alleen nodig voor het toewijzen van een aparte taal aan elk land."
|
339
339
|
create: "maken"
|
@@ -347,25 +347,25 @@ nl:
|
|
347
347
|
delete_image: "Deze afbeelding verwijderen"
|
348
348
|
delete_language: "Deze taal verwijderen"
|
349
349
|
delete_page: "Deze pagina verwijderen"
|
350
|
-
delete_tag: 'Tag
|
350
|
+
delete_tag: 'Tag wissen'
|
351
351
|
document: "Bestand"
|
352
352
|
documents: "Bestanden"
|
353
353
|
download_csv: "CSV downloaden"
|
354
354
|
download_file: "Bestand '%{filename}' downloaden"
|
355
|
-
do_you_really_want_to_delete_this_tag?: "
|
355
|
+
do_you_really_want_to_delete_this_tag?: "Wilt u deze tag echt verwijderen?"
|
356
356
|
drag_to_sort: "slepen om afbeeldingen te sorteren"
|
357
357
|
edit_file_properties: "Eigenschappen van het bestand aanpassen"
|
358
358
|
edit_image_properties: "Eigenschappen van de afbeelding aanpassen"
|
359
359
|
edit_language: "Taal aanpassen"
|
360
360
|
edit_page: "Pagina aanpassen"
|
361
361
|
edit_page_properties: "Eigenschappen van de pagina aanpassen"
|
362
|
-
edit_tag: 'Tag
|
362
|
+
edit_tag: 'Tag bewerken'
|
363
363
|
edit_selected_pictures: "Geselecteerde afbeeldingen aanpassen"
|
364
364
|
element_editor_not_found: "Foutmelding in het element"
|
365
365
|
element_of_type: "Element"
|
366
366
|
element_saved: "Opgeslagen element."
|
367
367
|
enter_external_link: "Voer de URL van de snelkoppeling in"
|
368
|
-
explain_cropping: "<p>Verplaats het frame en verander de grootte om de uitsnede aan te passen.</p><p>Klik op
|
368
|
+
explain_cropping: "<p>Verplaats het frame en verander de grootte om de uitsnede aan te passen.</p><p>Klik op 'toepassen' als het goed is.</p>"
|
369
369
|
explain_publishing: "Pagina publiceren en gecachede versie van de server verwijderen."
|
370
370
|
explain_sitemap_dragndrop_sorting: "Tip: Versleep de pagina's met het icoon om ze te sorteren."
|
371
371
|
explain_unlocking: "Pagina verlaten en ontgrendelen voor andere gebruikers."
|
@@ -373,7 +373,7 @@ nl:
|
|
373
373
|
footnote: "HINT! Gebruik de CTRL knop (of CMD voor OSX) om meerdere %{name} te uploaden."
|
374
374
|
intro: "Zo werkt het uploaden van %{name}."
|
375
375
|
step1: "Klik op 'browse' en ga naar de %{name} map"
|
376
|
-
step2: "Selecteer alle %{name} die
|
376
|
+
step2: "Selecteer alle %{name} die u wilt uploaden"
|
377
377
|
step3: "Klik op 'open'."
|
378
378
|
dragndrop: "Of sleep de bestanden op onderstaande vlak"
|
379
379
|
external_link_notice_1: "Voer de complete URL in (inclusief bijvoorbeeld http://)"
|
@@ -406,19 +406,19 @@ nl:
|
|
406
406
|
image_title: "Titel-tag"
|
407
407
|
images: "Bilder"
|
408
408
|
internal_link_headline: "Kies een pagina om een snelkoppeling naar te maken."
|
409
|
-
internal_link_page_elements_explanation: "
|
410
|
-
internal_link_page_anchors_explanation: "
|
411
|
-
"item copied to clipboard": "%{name} naar het klembord
|
409
|
+
internal_link_page_elements_explanation: "Ook kunt u rechts klikken op een pagina in 'Toon Elementen' om naar een interne verwijzing (anchor) van deze pagina te verwijzen."
|
410
|
+
internal_link_page_anchors_explanation: "Ook kunt u naar de pagina zelf verwijzen."
|
411
|
+
"item copied to clipboard": "%{name} naar het klembord gekopiëerd"
|
412
412
|
"item moved to clipboard": "%{name} naar het klembord verplaatst"
|
413
413
|
"item removed from clipboard": "%{name} van het klembord verwijderd"
|
414
414
|
javascript_disabled_headline: "Javascript is uitgeschakeld!"
|
415
|
-
javascript_disabled_text: "Javascript is nodig voor een juiste werking van Alchemy. Gebruik de
|
415
|
+
javascript_disabled_text: "Javascript is nodig voor een juiste werking van Alchemy. Gebruik de browserinstellingen om Javascript in te schakelen."
|
416
416
|
language_code_placeholder: 'bijv. en'
|
417
417
|
language_does_not_exist: "Deze boomstructuur bestaat niet."
|
418
418
|
language_pages_copied: "Boomstructuur gekopieerd."
|
419
419
|
last_upload_only: "Alleen de laatste upload"
|
420
420
|
left: "links"
|
421
|
-
legacy_url_info_text: "
|
421
|
+
legacy_url_info_text: "Een link is een omleiding van een historische URL naar de huidige URL van deze pagina. Deze omleiding gebeurt met een <a href='https://support.google.com/webmasters/answer/93633' target='_blank'>301 status code</a>."
|
422
422
|
link_image: "Snelkoppeling naar deze afbeelding maken."
|
423
423
|
link_overlay_tab_label:
|
424
424
|
contactform: "Contactformulier"
|
@@ -489,7 +489,7 @@ nl:
|
|
489
489
|
page_type: "Type"
|
490
490
|
page_visible_in_navigation: "Zichtbaar in navigatie"
|
491
491
|
page_was_created: "Is aangemaakt"
|
492
|
-
page_was_updated: "Is
|
492
|
+
page_was_updated: "Is geüpdatet"
|
493
493
|
pages:
|
494
494
|
update:
|
495
495
|
comma_seperated: "Komma gescheiden"
|
@@ -556,7 +556,7 @@ nl:
|
|
556
556
|
title: "Titel"
|
557
557
|
to_alchemy: "Naar Alchemy"
|
558
558
|
"trash element": "Element naar de prullenbak verplaatsen"
|
559
|
-
unknown: "
|
559
|
+
unknown: "onbekend"
|
560
560
|
unlink: "Snelkoppeling van deze afbeelding verwijderen."
|
561
561
|
unlock_page: "Pagina verlaten"
|
562
562
|
unlocked_page: "pagina %{name} is ontgrendeld."
|
@@ -565,8 +565,8 @@ nl:
|
|
565
565
|
url_name: "URL-Naam"
|
566
566
|
visible: "zichtbaar"
|
567
567
|
want_to_create_new_language: "Nieuwe boomstructuur aanmaken?"
|
568
|
-
want_to_make_copy_of_existing_language: "Een boomstructuur
|
569
|
-
"We need at least one default.": "Er moet
|
568
|
+
want_to_make_copy_of_existing_language: "Een boomstructuur kopiëren?"
|
569
|
+
"We need at least one default.": "Er moet minimaal één standaard taal zijn."
|
570
570
|
welcome_note: "Welkom %{name}"
|
571
571
|
welcome_back_note: "Welkom terug %{name}"
|
572
572
|
welcome_please_identify_notice: "Welkom! voer uw gegevens in."
|
@@ -576,7 +576,7 @@ nl:
|
|
576
576
|
zoom_image: "Afbeelding vergroten"
|
577
577
|
"Leave Alchemy": "Alchemy verlaten"
|
578
578
|
leave: "Afmelden"
|
579
|
-
"You are about to leave Alchemy": "U staat op het punt
|
579
|
+
"You are about to leave Alchemy": "U staat op het punt Alchemy te verlaten"
|
580
580
|
"Do you want to": "Wilt u"
|
581
581
|
"stay logged in": "ingelogd blijven"
|
582
582
|
"or to completely": "of compleet"
|
@@ -631,15 +631,15 @@ nl:
|
|
631
631
|
distance_in_words:
|
632
632
|
half_a_minute: "halve minuut"
|
633
633
|
less_than_x_seconds:
|
634
|
-
zero: '
|
634
|
+
zero: 'minder dan nul seconden'
|
635
635
|
one: "minder dan 1 seconde"
|
636
636
|
many: "minder dan %{count} seconden"
|
637
637
|
x_seconds:
|
638
638
|
one: "1 seconde"
|
639
639
|
many: "%{count} seconden"
|
640
640
|
less_than_x_minutes:
|
641
|
-
zero: '
|
642
|
-
one: "minder dan
|
641
|
+
zero: 'minder dan nul minuten'
|
642
|
+
one: "minder dan één minuut"
|
643
643
|
many: "minder dan %{count} minuten"
|
644
644
|
x_minutes:
|
645
645
|
one: "1 minuut"
|
@@ -857,9 +857,9 @@ nl:
|
|
857
857
|
link_title: Link-Titel
|
858
858
|
css_class: Stijl
|
859
859
|
link_target: Link-Doel
|
860
|
-
render_size:
|
861
|
-
crop_from:
|
862
|
-
crop_size:
|
860
|
+
render_size: Weergavegrootte
|
861
|
+
crop_from: Uitsnede uit
|
862
|
+
crop_size: Grootte van uitsnede
|
863
863
|
picture_id: Afbeelding
|
864
864
|
|
865
865
|
alchemy/language:
|
@@ -880,12 +880,12 @@ nl:
|
|
880
880
|
locked: "Deze pagina is geblokkeerd door een andere gebruiker."
|
881
881
|
locked_by: "geblokkeerd door"
|
882
882
|
meta_description: "Omschrijving"
|
883
|
-
meta_keywords: "
|
883
|
+
meta_keywords: "Sleutelwoorden"
|
884
884
|
name: "Naam"
|
885
885
|
page_layout: "Paginatype"
|
886
886
|
public: "publiek"
|
887
887
|
restricted: "afgeschermd"
|
888
|
-
robot_follow: "robot mag
|
888
|
+
robot_follow: "robot mag URL's volgen"
|
889
889
|
robot_index: "robot mag index volgen"
|
890
890
|
sitemap: "zichtbaar in sitemap"
|
891
891
|
tag_list: Tags
|