olelo 0.9.8 → 0.9.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +1 -0
- data/Rakefile +44 -10
- data/config.ru +4 -1
- data/lib/olelo/application.rb +1 -54
- data/lib/olelo/helper.rb +12 -7
- data/lib/olelo/initializer.rb +10 -13
- data/lib/olelo/locale.rb +7 -12
- data/lib/olelo/locale.yml +1 -36
- data/lib/olelo/plugin.rb +0 -12
- data/lib/olelo/routing.rb +1 -1
- data/lib/olelo/templates.rb +2 -3
- data/lib/olelo/util.rb +1 -1
- data/lib/olelo/version.rb +1 -1
- data/{views → lib/olelo/views}/delete.slim +0 -0
- data/{views → lib/olelo/views}/deleted.slim +0 -0
- data/{views → lib/olelo/views}/edit.slim +3 -3
- data/{views → lib/olelo/views}/error.slim +0 -0
- data/{views → lib/olelo/views}/layout.slim +1 -1
- data/{views → lib/olelo/views}/login.slim +1 -1
- data/{views → lib/olelo/views}/move.slim +0 -0
- data/{views → lib/olelo/views}/not_found.slim +0 -0
- data/{views → lib/olelo/views}/profile.slim +0 -0
- data/lib/olelo/views/show.slim +8 -0
- data/lib/olelo/virtualfs.rb +5 -29
- data/plugins/aspects/changelog.rb +3 -5
- data/plugins/aspects/documentbrowser.rb +24 -2
- data/plugins/aspects/download.rb +12 -0
- data/plugins/aspects/gallery/main.rb +9 -0
- data/plugins/aspects/highlight.rb +11 -0
- data/plugins/aspects/image.rb +12 -0
- data/plugins/aspects/imageinfo.rb +36 -2
- data/plugins/aspects/main.rb +16 -1
- data/plugins/aspects/pageinfo.rb +20 -2
- data/plugins/aspects/source.rb +12 -0
- data/plugins/aspects/subpages.rb +17 -1
- data/plugins/aspects/text.rb +12 -0
- data/plugins/blog/main.rb +4 -4
- data/plugins/editor/preview.rb +16 -0
- data/plugins/editor/recaptcha.rb +19 -0
- data/plugins/filters/editsection.rb +19 -0
- data/plugins/filters/locale.yml +11 -16
- data/plugins/filters/toc.rb +12 -0
- data/{views → plugins/history}/changes.slim +0 -0
- data/{views → plugins/history}/compare.slim +2 -2
- data/{views → plugins/history}/history.slim +1 -1
- data/plugins/history/locale.yml +40 -0
- data/plugins/history/main.rb +67 -0
- data/plugins/history/script.js +2 -0
- data/{static/script/12-olelo.historytable.js → plugins/history/script/00-historytable.js} +0 -0
- data/plugins/history/script/init.js +7 -0
- data/plugins/login/persistent.rb +11 -0
- data/plugins/repositories/git_grep.rb +19 -2
- data/plugins/repositories/gitrb_repository.rb +8 -0
- data/plugins/repositories/rugged_repository.rb +10 -0
- data/plugins/security/acl.rb +23 -0
- data/plugins/security/private_wiki.rb +11 -0
- data/plugins/utils/assets.rb +15 -21
- data/plugins/utils/store.rb +40 -19
- data/static/{images/favicon.png → favicon.png} +0 -0
- data/static/script.js +3 -5
- data/static/script/init.js +0 -1
- data/static/themes/atlantis/screen.scss +3 -3
- data/static/themes/atlantis/style.css +1 -1
- data/test/templates_test.rb +3 -11
- metadata +47 -49
- data/plugins/aspects/locale.yml +0 -87
- data/plugins/editor/locale.yml +0 -20
- data/plugins/login/locale.yml +0 -8
- data/plugins/repositories/locale.yml +0 -16
- data/plugins/security/locale.yml +0 -24
- data/views/show.slim +0 -8
data/.gitignore
CHANGED
data/Rakefile
CHANGED
@@ -33,10 +33,11 @@ file('static/script.js' => Dir.glob('static/script/*.js')) { |t| shrink_js(t) }
|
|
33
33
|
file('plugins/treeview/script.js' => Dir.glob('plugins/treeview/script/*.js')) {|t| shrink_js(t) }
|
34
34
|
file('plugins/misc/fancybox/script.js' => Dir.glob('plugins/misc/fancybox/script/*.js')) {|t| shrink_js(t) }
|
35
35
|
file('plugins/editor/markup/script.js' => Dir.glob('plugins/editor/markup/script/*.js')) {|t| shrink_js(t) }
|
36
|
+
file('plugins/history/script.js' => Dir.glob('plugins/history/script/*.js')) {|t| shrink_js(t) }
|
36
37
|
|
37
38
|
namespace :gen do
|
38
39
|
desc('Shrink JS files')
|
39
|
-
task js: %w(static/script.js plugins/treeview/script.js plugins/misc/fancybox/script.js plugins/editor/markup/script.js)
|
40
|
+
task js: %w(static/script.js plugins/treeview/script.js plugins/misc/fancybox/script.js plugins/editor/markup/script.js plugins/history/script.js)
|
40
41
|
|
41
42
|
desc('Compile CSS files')
|
42
43
|
task css: %w(static/themes/atlantis/style.css
|
@@ -74,26 +75,59 @@ end
|
|
74
75
|
namespace :locale do
|
75
76
|
desc 'Sort locale yaml files'
|
76
77
|
task :sort do
|
77
|
-
|
78
|
+
require File.join(File.dirname(__FILE__), 'lib/olelo/virtualfs')
|
79
|
+
require 'i18n_yaml_sorter'
|
80
|
+
|
81
|
+
Dir['**/*.rb'].each do |file|
|
82
|
+
begin
|
83
|
+
locale = Olelo::VirtualFS::Embedded.new(file).read('locale.yml')
|
84
|
+
rescue
|
85
|
+
next
|
86
|
+
end
|
87
|
+
puts "Sorting #{file}"
|
88
|
+
result = I18nYamlSorter::Sorter.new(StringIO.new(locale)).sort
|
89
|
+
if result != locale
|
90
|
+
puts "Sorted #{file}:\n#{result}\n"
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
78
94
|
Dir['**/locale.yml'].each do |file|
|
79
95
|
puts "Sorting #{file}"
|
80
|
-
system("sort_yaml < #{file} > #{file}.sorted
|
96
|
+
system("sort_yaml < #{file} > #{file}.sorted && mv #{file}.sorted #{file}")
|
81
97
|
end
|
82
98
|
end
|
83
99
|
|
84
100
|
desc 'Check locales for missing keys'
|
85
101
|
task :check do
|
102
|
+
require File.join(File.dirname(__FILE__), 'lib/olelo/virtualfs')
|
86
103
|
require 'yaml'
|
104
|
+
files = {}
|
105
|
+
Dir['**/*.rb'].each do |file|
|
106
|
+
begin
|
107
|
+
files[file] = Olelo::VirtualFS::Embedded.new(file).read('locale.yml')
|
108
|
+
rescue
|
109
|
+
end
|
110
|
+
end
|
87
111
|
Dir['**/locale.yml'].each do |file|
|
112
|
+
files[file] = File.read(file)
|
113
|
+
end
|
114
|
+
|
115
|
+
files.each do |file, content|
|
88
116
|
puts "Checking #{file}"
|
89
|
-
translations = YAML.
|
90
|
-
|
91
|
-
|
117
|
+
translations = YAML.load(content)
|
118
|
+
en = translations['en']
|
119
|
+
raise 'en locale missing' unless en
|
120
|
+
en_keys = en.keys
|
92
121
|
translations.each do |locale,hash|
|
93
|
-
delta = hash.keys -
|
94
|
-
puts "\
|
95
|
-
delta =
|
96
|
-
puts "\
|
122
|
+
delta = hash.keys - en_keys
|
123
|
+
puts "\t#{locale} has additional keys #{delta.join(' ')}" unless delta.empty?
|
124
|
+
delta = en_keys - hash.keys
|
125
|
+
puts "\t#{locale} is missing the keys #{delta.join(' ')}" unless delta.empty?
|
126
|
+
(en_keys & hash.keys).each do |key|
|
127
|
+
if hash[key].count('%{') != en[key].count('%{')
|
128
|
+
puts "\t#{locale}:#{key} has invalid number of arguments"
|
129
|
+
end
|
130
|
+
end
|
97
131
|
end
|
98
132
|
end
|
99
133
|
end
|
data/config.ru
CHANGED
@@ -16,7 +16,6 @@ Olelo::Config.instance['app_path'] = app_path
|
|
16
16
|
Olelo::Config.instance['config_path'] = ::File.join(app_path, 'config')
|
17
17
|
Olelo::Config.instance['initializers_path'] = ::File.join(app_path, 'config', 'initializers')
|
18
18
|
Olelo::Config.instance['plugins_path'] = ::File.join(app_path, 'plugins')
|
19
|
-
Olelo::Config.instance['views_path'] = ::File.join(app_path, 'views')
|
20
19
|
Olelo::Config.instance['themes_path'] = ::File.join(app_path, 'static', 'themes')
|
21
20
|
Olelo::Config.instance['rack.session_secret'] = SecureRandom.hex
|
22
21
|
Olelo::Config.instance.load!(::File.join(app_path, 'config', 'config.yml.default'))
|
@@ -84,6 +83,10 @@ end
|
|
84
83
|
|
85
84
|
use Rack::StaticCache, urls: ['/static'], root: app_path
|
86
85
|
use Rack::Session::Cookie, key: 'olelo.session', secret: Olelo::Config['rack.session_secret']
|
86
|
+
|
87
|
+
#require 'rack/perftools_profiler'
|
88
|
+
#use Rack::PerftoolsProfiler
|
89
|
+
|
87
90
|
use Olelo::Middleware::DegradeMimeType
|
88
91
|
use Olelo::Middleware::UAHeader
|
89
92
|
|
data/lib/olelo/application.rb
CHANGED
@@ -11,7 +11,7 @@ module Olelo
|
|
11
11
|
attr_reader :page
|
12
12
|
attr_setter :on_error
|
13
13
|
|
14
|
-
has_around_hooks :
|
14
|
+
has_around_hooks :routing, :action, :login_buttons,
|
15
15
|
:edit_buttons, :attributes_buttons, :upload_buttons
|
16
16
|
has_hooks :auto_login, :render, :menu, :head
|
17
17
|
|
@@ -59,18 +59,6 @@ module Olelo
|
|
59
59
|
edit_menu.item(:move, href: build_path(page, action: :move), rel: 'nofollow')
|
60
60
|
edit_menu.item(:delete, href: build_path(page, action: :delete), rel: 'nofollow')
|
61
61
|
end
|
62
|
-
history_menu = menu.item(:history, href: build_path(page, action: :history), accesskey: 'h')
|
63
|
-
|
64
|
-
if @menu_versions
|
65
|
-
head = !page.head? && (Olelo::Page.find(page.path) rescue nil)
|
66
|
-
if page.previous_version || head || page.next_version
|
67
|
-
history_menu.item(:older, href: build_path(page, original_params.merge(version: page.previous_version)),
|
68
|
-
accesskey: 'o') if page.previous_version
|
69
|
-
history_menu.item(:head, href: build_path(page.path, original_params), accesskey: 'c') if head
|
70
|
-
history_menu.item(:newer, href: build_path(page, original_params.merge(version: page.next_version)),
|
71
|
-
accesskey: 'n') if page.next_version
|
72
|
-
end
|
73
|
-
end
|
74
62
|
end
|
75
63
|
end
|
76
64
|
|
@@ -139,29 +127,6 @@ module Olelo
|
|
139
127
|
render :profile
|
140
128
|
end
|
141
129
|
|
142
|
-
get '/changes/:version(/:path)' do
|
143
|
-
@page = Page.find!(params[:path])
|
144
|
-
begin
|
145
|
-
@diff = page.diff(nil, params[:version])
|
146
|
-
rescue => ex
|
147
|
-
Olelo.logger.debug ex
|
148
|
-
raise NotFound
|
149
|
-
end
|
150
|
-
@version = @diff.to
|
151
|
-
cache_control etag: @version.to_s
|
152
|
-
render :changes
|
153
|
-
end
|
154
|
-
|
155
|
-
get '/history(/:path)' do
|
156
|
-
per_page = 30
|
157
|
-
@page = Page.find!(params[:path])
|
158
|
-
@page_nr = [params[:page].to_i, 1].max
|
159
|
-
@history = page.history((@page_nr - 1) * per_page, per_page)
|
160
|
-
@page_count = @page_nr + @history.length / per_page
|
161
|
-
cache_control etag: page.etag
|
162
|
-
render :history
|
163
|
-
end
|
164
|
-
|
165
130
|
get '/move/:path' do
|
166
131
|
@page = Page.find!(params[:path])
|
167
132
|
render :move
|
@@ -184,23 +149,6 @@ module Olelo
|
|
184
149
|
end
|
185
150
|
end
|
186
151
|
|
187
|
-
get '/compare/:versions(/:path)', versions: '(?:\w+)\.{2,3}(?:\w+)' do
|
188
|
-
@page = Page.find!(params[:path])
|
189
|
-
versions = params[:versions].split(/\.{2,3}/)
|
190
|
-
begin
|
191
|
-
@diff = page.diff(versions.first, versions.last)
|
192
|
-
rescue => ex
|
193
|
-
Olelo.logger.debug ex
|
194
|
-
raise NotFound
|
195
|
-
end
|
196
|
-
render :compare
|
197
|
-
end
|
198
|
-
|
199
|
-
get '/compare(/:path)' do
|
200
|
-
versions = params[:versions] || []
|
201
|
-
redirect build_path(params[:path], action: versions.size < 2 ? :history : "compare/#{versions.first}...#{versions.last}")
|
202
|
-
end
|
203
|
-
|
204
152
|
get '/edit(/:path)' do
|
205
153
|
@page = Page.find!(params[:path])
|
206
154
|
flash.info!(:info_binary.t(page: page.title, type: "#{page.mime.comment} (#{page.mime})")) unless page.editable?
|
@@ -261,7 +209,6 @@ module Olelo
|
|
261
209
|
end
|
262
210
|
|
263
211
|
def show_page
|
264
|
-
@menu_versions = true
|
265
212
|
render(:show, locals: {content: page.try(:content)})
|
266
213
|
end
|
267
214
|
|
data/lib/olelo/helper.rb
CHANGED
@@ -2,19 +2,24 @@
|
|
2
2
|
module Olelo
|
3
3
|
module BlockHelper
|
4
4
|
def blocks
|
5
|
-
@blocks ||= Hash.
|
5
|
+
@blocks ||= Hash.new('')
|
6
6
|
end
|
7
7
|
|
8
|
-
def define_block(name, content = nil)
|
9
|
-
blocks[name] =
|
8
|
+
def define_block(name, content = nil, &block)
|
9
|
+
blocks[name] = block ? block : escape_html(content)
|
10
10
|
''
|
11
11
|
end
|
12
12
|
|
13
|
+
def render_block(name)
|
14
|
+
block = blocks[name]
|
15
|
+
block.respond_to?(:call) ? block.call : block
|
16
|
+
end
|
17
|
+
|
13
18
|
def include_block(name)
|
14
|
-
|
19
|
+
wrap_block(name) { render_block(name) }
|
15
20
|
end
|
16
21
|
|
17
|
-
def
|
22
|
+
def wrap_block(name)
|
18
23
|
with_hooks(name) { yield }.join.html_safe
|
19
24
|
end
|
20
25
|
end
|
@@ -299,7 +304,7 @@ module Olelo
|
|
299
304
|
if block_given? || content
|
300
305
|
define_block(:footer, content, &block)
|
301
306
|
else
|
302
|
-
|
307
|
+
render_block(:footer)
|
303
308
|
end
|
304
309
|
end
|
305
310
|
|
@@ -307,7 +312,7 @@ module Olelo
|
|
307
312
|
if block_given? || content
|
308
313
|
define_block(:title, content, &block)
|
309
314
|
else
|
310
|
-
|
315
|
+
render_block(:title)
|
311
316
|
end
|
312
317
|
end
|
313
318
|
|
data/lib/olelo/initializer.rb
CHANGED
@@ -23,26 +23,23 @@ module Olelo
|
|
23
23
|
|
24
24
|
def init_locale
|
25
25
|
Locale.locale = Config['locale']
|
26
|
-
Locale.
|
26
|
+
Locale.add(YAML.load_file(File.join(File.dirname(__FILE__), 'locale.yml')))
|
27
27
|
end
|
28
28
|
|
29
29
|
def init_templates
|
30
30
|
Templates.enable_caching if Config['production']
|
31
|
-
Templates.loader =
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
def load(name)
|
37
|
-
VirtualFS::Union.new(Plugin.caller.first.try(:virtual_fs),
|
38
|
-
VirtualFS::Native.new(Config['views_path'])).read(name)
|
39
|
-
end
|
40
|
-
end.new
|
31
|
+
Templates.loader = proc do |name|
|
32
|
+
VirtualFS::Union.new(VirtualFS::Native.new(File.join(File.dirname(__FILE__), 'views')),
|
33
|
+
*Plugin.loaded.map(&:virtual_fs)).read(name)
|
34
|
+
end
|
41
35
|
end
|
42
36
|
|
43
37
|
def init_plugins
|
44
|
-
# Load
|
45
|
-
Plugin.after(:load)
|
38
|
+
# Load locale provided by plugin
|
39
|
+
Plugin.after(:load) do
|
40
|
+
locale = virtual_fs.read('locale.yml') rescue nil
|
41
|
+
Locale.add(YAML.load(locale)) if locale
|
42
|
+
end
|
46
43
|
|
47
44
|
# Configure plugin system
|
48
45
|
Plugin.disabled = Config['disabled_plugins'].to_a
|
data/lib/olelo/locale.rb
CHANGED
@@ -3,27 +3,22 @@ module Olelo
|
|
3
3
|
module Locale
|
4
4
|
@locale = nil
|
5
5
|
@translations = Hash.with_indifferent_access
|
6
|
-
@loaded = []
|
7
6
|
|
8
7
|
class << self
|
9
8
|
attr_accessor :locale
|
10
9
|
|
11
|
-
#
|
10
|
+
# Add locale hash
|
12
11
|
#
|
13
|
-
# A locale is a
|
12
|
+
# A locale is a hash which maps
|
14
13
|
# keys to strings.
|
15
14
|
#
|
16
|
-
# @param [
|
15
|
+
# @param [Hash] Locale hash
|
17
16
|
# @return [void]
|
18
17
|
#
|
19
|
-
def
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
@translations.update(locale[@locale] || {})
|
24
|
-
@translations.each_value(&:freeze)
|
25
|
-
@loaded << file
|
26
|
-
end
|
18
|
+
def add(locale)
|
19
|
+
@translations.update(locale[$1] || {}) if @locale =~ /^(\w+)(_|-)/
|
20
|
+
@translations.update(locale[@locale] || {})
|
21
|
+
@translations.each_value(&:freeze)
|
27
22
|
end
|
28
23
|
|
29
24
|
# Return translated string for key
|
data/lib/olelo/locale.yml
CHANGED
@@ -7,19 +7,14 @@ cs_CZ:
|
|
7
7
|
attribute_title: 'Titulek'
|
8
8
|
attributes: 'Atributy'
|
9
9
|
attributes_edited: 'Atributy stránky %{page} editovány'
|
10
|
-
author: 'Autor'
|
11
10
|
binary_file: 'Binární soubor'
|
12
11
|
cancel: 'Zrušit'
|
13
12
|
change_password: 'Změnit heslo'
|
14
|
-
changes: 'Změny'
|
15
|
-
changes_of: 'Změny stránky %{page}'
|
16
13
|
changes_saved: 'Změny uloženy'
|
17
14
|
comment: 'Komentář'
|
18
|
-
compare: 'Porovnat %{name}'
|
19
15
|
confirm_password: 'Potvrdit heslo'
|
20
16
|
create_page: 'Vytvořit stránku %{page}'
|
21
17
|
create_redirect: 'Vytvořit přesměrování'
|
22
|
-
date: 'Datum'
|
23
18
|
delete: 'Smazat'
|
24
19
|
delete_page: 'Smazat stránku %{page}'
|
25
20
|
deleted: 'Smazáno'
|
@@ -35,7 +30,6 @@ cs_CZ:
|
|
35
30
|
groups: 'Skupiny'
|
36
31
|
head: 'Nejnovější'
|
37
32
|
history: 'Historie'
|
38
|
-
history_of: 'Historie stránky %{page}'
|
39
33
|
info_binary: 'Stránka %{page} je binární typ %{type} a nemůže být editována jako textový soubor.'
|
40
34
|
invalid_email: 'e-mail je neplatný'
|
41
35
|
invalid_mime_type: 'mime-type je neplatný'
|
@@ -48,10 +42,6 @@ cs_CZ:
|
|
48
42
|
menu_actions_edit_delete: 'Smazat'
|
49
43
|
menu_actions_edit_move: 'Přesunout'
|
50
44
|
menu_actions_edit_new: 'Nová stránka'
|
51
|
-
menu_actions_history: 'Historie'
|
52
|
-
menu_actions_history_head: 'Aktuální'
|
53
|
-
menu_actions_history_newer: 'Novější'
|
54
|
-
menu_actions_history_older: 'Starší'
|
55
45
|
menu_actions_view: 'Zobrazit'
|
56
46
|
move: 'Přesunout'
|
57
47
|
move_page: 'Přesunout stránku %{page}'
|
@@ -66,10 +56,10 @@ cs_CZ:
|
|
66
56
|
not_found_title: '404 Not found'
|
67
57
|
page_moved: 'Stránka %{page} přesunuta do %{destination}.'
|
68
58
|
page_uploaded: 'Stránka %{page} nahrána'
|
69
|
-
parents: 'Rodiče'
|
70
59
|
password: 'Heslo'
|
71
60
|
passwords_do_not_match: 'Hesla se neshodují'
|
72
61
|
path: 'Cesta'
|
62
|
+
powered_by: 'Powered by <a href="https://github.com/minad/olelo">Ōlelo</a>'
|
73
63
|
profile_title: 'Profil uživatele %{user}'
|
74
64
|
really_delete: 'Opravdu smazat?'
|
75
65
|
reserved_path: 'Cesta je rezervována'
|
@@ -104,19 +94,14 @@ de:
|
|
104
94
|
attribute_title: 'Titel'
|
105
95
|
attributes: 'Attribute'
|
106
96
|
attributes_edited: 'Attribute von %{page} bearbeitet'
|
107
|
-
author: 'Autor'
|
108
97
|
binary_file: 'Binärdatei'
|
109
98
|
cancel: 'Abbrechen'
|
110
99
|
change_password: 'Passwort ändern'
|
111
|
-
changes: 'Änderungen'
|
112
|
-
changes_of: 'Änderungen von %{page}'
|
113
100
|
changes_saved: 'Änderungen gespeichert'
|
114
101
|
comment: 'Kommentar'
|
115
|
-
compare: 'Vergleiche %{name}'
|
116
102
|
confirm_password: 'Bestätige Passwort'
|
117
103
|
create_page: 'Neue %{page}'
|
118
104
|
create_redirect: 'Weiterleitung'
|
119
|
-
date: 'Datum'
|
120
105
|
delete: 'Löschen'
|
121
106
|
delete_page: 'Lösche %{page}'
|
122
107
|
deleted: 'Gelöscht'
|
@@ -132,7 +117,6 @@ de:
|
|
132
117
|
groups: 'Gruppen'
|
133
118
|
head: 'Kopf'
|
134
119
|
history: 'Historie'
|
135
|
-
history_of: 'Historie von %{page}'
|
136
120
|
info_binary: '%{page} ist eine Datei mit dem Typ %{type} und kann nicht wie eine Textdatei bearbeitet werden.'
|
137
121
|
invalid_email: 'E-Mail ist ungültig'
|
138
122
|
invalid_mime_type: 'Mime-Typ ist ungültig'
|
@@ -145,9 +129,6 @@ de:
|
|
145
129
|
menu_actions_edit_delete: 'Löschen'
|
146
130
|
menu_actions_edit_move: 'Verschieben'
|
147
131
|
menu_actions_edit_new: 'Neue Seite'
|
148
|
-
menu_actions_history: 'Historie'
|
149
|
-
menu_actions_history_newer: 'Neuer'
|
150
|
-
menu_actions_history_older: 'Älter'
|
151
132
|
menu_actions_view: 'Ansicht'
|
152
133
|
move: 'Verschieben'
|
153
134
|
move_page: 'Verschiebe %{page}'
|
@@ -162,7 +143,6 @@ de:
|
|
162
143
|
page_edited: '%{page} bearbeitet'
|
163
144
|
page_moved: '%{page} verschoben nach %{destination}.'
|
164
145
|
page_uploaded: 'Seite %{page} hochgeladen'
|
165
|
-
parents: 'Eltern'
|
166
146
|
password: 'Passwort'
|
167
147
|
passwords_do_not_match: 'Passwörter stimmen nicht überein'
|
168
148
|
path: 'Pfad'
|
@@ -201,19 +181,14 @@ en:
|
|
201
181
|
attribute_title: 'Title'
|
202
182
|
attributes: 'Attributes'
|
203
183
|
attributes_edited: 'Attributes of %{page} edited'
|
204
|
-
author: 'Author'
|
205
184
|
binary_file: 'Binary file'
|
206
185
|
cancel: 'Cancel'
|
207
186
|
change_password: 'Change password'
|
208
|
-
changes: 'Changes'
|
209
|
-
changes_of: 'Changes of %{page}'
|
210
187
|
changes_saved: 'Changes saved'
|
211
188
|
comment: 'Comment'
|
212
|
-
compare: 'Compare %{name}: %{from} → %{to}'
|
213
189
|
confirm_password: 'Confirm password'
|
214
190
|
create_page: 'Create %{page}'
|
215
191
|
create_redirect: 'Create redirect'
|
216
|
-
date: 'Date'
|
217
192
|
delete: 'Delete'
|
218
193
|
delete_page: 'Delete %{page}'
|
219
194
|
deleted: 'Deleted'
|
@@ -229,7 +204,6 @@ en:
|
|
229
204
|
groups: 'Groups'
|
230
205
|
head: 'Head'
|
231
206
|
history: 'History'
|
232
|
-
history_of: 'History of %{page}'
|
233
207
|
info_binary: '%{page} is a binary %{type} and cannot be edited like a text file.'
|
234
208
|
invalid_email: 'E-Mail is invalid'
|
235
209
|
invalid_mime_type: 'Invalid mime type'
|
@@ -252,7 +226,6 @@ en:
|
|
252
226
|
page_edited: '%{page} edited'
|
253
227
|
page_moved: '%{page} moved to %{destination}.'
|
254
228
|
page_uploaded: 'Page %{page} uploaded'
|
255
|
-
parents: 'Parents'
|
256
229
|
password: 'Password'
|
257
230
|
passwords_do_not_match: 'Passwords do not match'
|
258
231
|
path: 'Path'
|
@@ -291,19 +264,14 @@ fr:
|
|
291
264
|
attribute_title: "Titre"
|
292
265
|
attributes: "Attributs"
|
293
266
|
attributes_edited: "Attributs de %{page} modifiés"
|
294
|
-
author: "Auteur"
|
295
267
|
binary_file: "Fichier binaire"
|
296
268
|
cancel: "Cancel"
|
297
269
|
change_password: "Changer de mot de passe"
|
298
|
-
changes: "Changement"
|
299
|
-
changes_of: "Chamgements de %{page}"
|
300
270
|
changes_saved: "Changement enregistrés"
|
301
271
|
comment: "Commentaire"
|
302
|
-
compare: "Comparer %{name}"
|
303
272
|
confirm_password: "Confirmer le mot de passe"
|
304
273
|
create_page: "Créer %{page}"
|
305
274
|
create_redirect: "Créer une redirection"
|
306
|
-
date: "Date"
|
307
275
|
delete: "Effacer"
|
308
276
|
delete_page: "Effacer %{page}"
|
309
277
|
deleted: "Supprimé"
|
@@ -319,7 +287,6 @@ fr:
|
|
319
287
|
groups: "Groupes"
|
320
288
|
head: "Tête"
|
321
289
|
history: "Historique"
|
322
|
-
history_of: "Historique de %{page}"
|
323
290
|
info_binary: "%{page} est un binaire %{type} et ne peut pas être édité comme un fichier texte."
|
324
291
|
invalid_email: "Courriel invalide"
|
325
292
|
invalid_mime_type: "Type MIME invalide"
|
@@ -333,7 +300,6 @@ fr:
|
|
333
300
|
move_page: "Déplacer %{page}"
|
334
301
|
name: "Nom"
|
335
302
|
new_page: "Nouvelle page"
|
336
|
-
newer: "Plus récent"
|
337
303
|
no_changes: "Aucun changement"
|
338
304
|
not_found_text: "Désolé, la page que vous recherchez n'a pas été trouvée."
|
339
305
|
not_found_title: '404 Non trouvé'
|
@@ -343,7 +309,6 @@ fr:
|
|
343
309
|
page_edited: "%{page} éditée"
|
344
310
|
page_moved: "%{page} déplacer vers %{destination}."
|
345
311
|
page_uploaded: "Page %{page} téléversé"
|
346
|
-
parents: "Parents"
|
347
312
|
password: "Mot de passe"
|
348
313
|
passwords_do_not_match: "Les mots de passe ne correspondent pas"
|
349
314
|
path: "Chemin"
|