html2slideshow 2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/bin/html2slideshow +27 -0
- data/doc/changes.txt +162 -0
- data/doc/license.txt +674 -0
- data/lib/LANG +1 -0
- data/lib/about.rb +57 -0
- data/lib/argparser.rb +143 -0
- data/lib/completable.rb +157 -0
- data/lib/configurator.rb +155 -0
- data/lib/copyright.txt +22 -0
- data/lib/extstring.rb +75 -0
- data/lib/file_checking.rb +153 -0
- data/lib/html2slideshow.cfg +22 -0
- data/lib/html2slideshow.rb +132 -0
- data/lib/htmlbuilder.rb +267 -0
- data/lib/icons/failure.png +0 -0
- data/lib/icons/howto.png +0 -0
- data/lib/icons/logo.png +0 -0
- data/lib/icons/message.png +0 -0
- data/lib/icons/options.png +0 -0
- data/lib/icons/question.png +0 -0
- data/lib/icons/success.png +0 -0
- data/lib/image.rb +62 -0
- data/lib/list_fields.rb +34 -0
- data/lib/log.conf +60 -0
- data/lib/logging.rb +194 -0
- data/lib/slideshow_css.rb +248 -0
- data/lib/slideshow_images/downCursor.png +0 -0
- data/lib/slideshow_images/leftArrow.png +0 -0
- data/lib/slideshow_images/olive.png +0 -0
- data/lib/slideshow_images/pause.png +0 -0
- data/lib/slideshow_images/rightArrow.png +0 -0
- data/lib/slideshow_images/sizeMedium.png +0 -0
- data/lib/slideshow_images/sizeNormal.png +0 -0
- data/lib/slideshow_images/sizeSmall.png +0 -0
- data/lib/slideshow_images/start.png +0 -0
- data/lib/slideshow_images/stop.png +0 -0
- data/lib/slideshow_images/toggle.png +0 -0
- data/lib/slideshow_images/upCursor.png +0 -0
- data/lib/slideshow_js.rb +390 -0
- data/lib/slideshow_template.rb +194 -0
- data/lib/sourcefile.rb +191 -0
- data/lib/translating.rb +90 -0
- data/lib/translations +354 -0
- metadata +86 -0
data/lib/sourcefile.rb
ADDED
@@ -0,0 +1,191 @@
|
|
1
|
+
#encoding: UTF-8
|
2
|
+
|
3
|
+
=begin
|
4
|
+
/***************************************************************************
|
5
|
+
* Copyright © 2008-2012, Michael Uplawski <michael.uplawski@uplawski.eu> *
|
6
|
+
* *
|
7
|
+
* This program is free software; you can redistribute it and/or modify *
|
8
|
+
* it under the terms of the GNU General Public License as published by *
|
9
|
+
* the Free Software Foundation; either version 3 of the License, or *
|
10
|
+
* (at your option) any later version. *
|
11
|
+
* *
|
12
|
+
* This program is distributed in the hope that it will be useful, *
|
13
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
14
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
15
|
+
* GNU General Public License for more details. *
|
16
|
+
* *
|
17
|
+
* You should have received a copy of the GNU General Public License *
|
18
|
+
* along with this program; if not, write to the *
|
19
|
+
* Free Software Foundation, Inc., *
|
20
|
+
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
21
|
+
***************************************************************************/
|
22
|
+
=end
|
23
|
+
|
24
|
+
RD = File.expand_path(File.dirname(__FILE__) ) + File::Separator if !defined?(RD)
|
25
|
+
|
26
|
+
|
27
|
+
require_relative 'extstring.rb'
|
28
|
+
require_relative 'image.rb'
|
29
|
+
require_relative 'file_checking'
|
30
|
+
require_relative 'logging'
|
31
|
+
|
32
|
+
=begin
|
33
|
+
SourceFile defines objects, which represent the original html-files,
|
34
|
+
to be processed by the slideshow-generator. Each SourceFile-object will
|
35
|
+
provide a few details about the contents and location of 1 such file.
|
36
|
+
=end
|
37
|
+
|
38
|
+
class SourceFile
|
39
|
+
self::extend(Logging)
|
40
|
+
@@log = self::init_logger
|
41
|
+
|
42
|
+
attr_reader :images, :dirname, :img_count, :title, :file_name, :file_ext
|
43
|
+
|
44
|
+
def initialize(path, options)
|
45
|
+
@log = @@log
|
46
|
+
@log.debug(format("initializing SourceFile for %s ", path)) if @log
|
47
|
+
@log.debug('options are ' << options.to_s)
|
48
|
+
|
49
|
+
@path = path
|
50
|
+
@formats = options.formats
|
51
|
+
|
52
|
+
# file extension
|
53
|
+
local = 'files' == options.source_type
|
54
|
+
@file_ext = ((local || options.merge) ? '.html' : File.extname(@path))
|
55
|
+
|
56
|
+
# file name without path or extension
|
57
|
+
@file_name = File.basename(@path.gsub("\\", '/'), @file_ext)
|
58
|
+
|
59
|
+
# directory where the original html-file is found
|
60
|
+
@dirname = File.dirname(@path)
|
61
|
+
|
62
|
+
# All references to image-files, found in the file
|
63
|
+
@images = Array.new
|
64
|
+
|
65
|
+
# number of images, found
|
66
|
+
@img_count = 0
|
67
|
+
|
68
|
+
# title of the original page
|
69
|
+
# or the final slide show file
|
70
|
+
@title = nil
|
71
|
+
@title = options.title if options.title && !options.title.empty?
|
72
|
+
|
73
|
+
@title.strip! if @title
|
74
|
+
|
75
|
+
# scan sub-directories (local image-files, only)
|
76
|
+
@recursive = options.recursive
|
77
|
+
@log.debug("recursive ? " << @recursive.to_s)
|
78
|
+
@log.debug(format("files from %s", (local ? 'directory' : 'html')) ) if @log
|
79
|
+
# read pages or files, analyze, set image-references and title
|
80
|
+
if(local)
|
81
|
+
read_dir
|
82
|
+
elsif(options.merge)
|
83
|
+
read_files
|
84
|
+
else
|
85
|
+
read_file
|
86
|
+
end
|
87
|
+
@log.debug("sourcefile initialized: " + @path) if @log
|
88
|
+
end
|
89
|
+
|
90
|
+
private
|
91
|
+
|
92
|
+
def read_files(p = @path)
|
93
|
+
dir_msg = File_Checking.file_check(p, [:exist?, :directory?, :readable?])
|
94
|
+
if (!dir_msg)
|
95
|
+
@title ||= File.basename(@path).strip
|
96
|
+
Dir.open(p) do |dir|
|
97
|
+
dir.each do |file|
|
98
|
+
@log.debug("testing #{file}") if @log
|
99
|
+
if(file.index('.') != 0 && file.downcase.end_with?('html') )
|
100
|
+
file = format("%s%s%s", p, File::Separator, file)
|
101
|
+
if (!File_Checking.file_check(file, [:file?, :readable?]))
|
102
|
+
read_file(file)
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
else
|
108
|
+
@log.error(msg) if msg && @log
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
def read_dir(p = @path, dir_path = nil)
|
113
|
+
@log.debug(format("read_dir: %s ", p)) if @log
|
114
|
+
Dir.open(p) do |dir|
|
115
|
+
@log.debug('dir is ' << dir.path)
|
116
|
+
dir.each do |file_name|
|
117
|
+
path = File.expand_path(file_name, dir_path)
|
118
|
+
@log.debug('file_name ' << file_name << ', path is ' << path) if @log
|
119
|
+
msg = File_Checking.file_check(path, [:exist?, :file?, :readable?])
|
120
|
+
if(!msg)
|
121
|
+
msg ||= Image::supported?(path, @formats)
|
122
|
+
if(!msg)
|
123
|
+
img = Image.new(file_name)
|
124
|
+
images.push(img)
|
125
|
+
end
|
126
|
+
end
|
127
|
+
if(@recursive)
|
128
|
+
msg = File_Checking.file_check(file_name, :exist?, :directory?, :readable?)
|
129
|
+
if(!msg && file_name && file_name != '.' && file_name != '..' )
|
130
|
+
@log.debug('recursively checking sub-directories')
|
131
|
+
@log.debug('decending into ' << path)
|
132
|
+
read_dir( path, p)
|
133
|
+
end # check if directory
|
134
|
+
end
|
135
|
+
end # all in path 'p'
|
136
|
+
end # Dir.open
|
137
|
+
@title ||= File.basename(@path) if !@images.empty?
|
138
|
+
@title.strip! if @title
|
139
|
+
@log.debug("found #{@images.size} images: " << @images.collect {|im| im.reference}.join(', ')) if @log
|
140
|
+
end
|
141
|
+
|
142
|
+
def read_file(f = @path)
|
143
|
+
@log.debug(format("working on file %s", f)) if @log
|
144
|
+
File.open(f, 'r') do |fp|
|
145
|
+
# order matters!
|
146
|
+
set_title(fp) if !@title
|
147
|
+
register_images(fp)
|
148
|
+
end
|
149
|
+
@img_count = @images.size
|
150
|
+
end
|
151
|
+
|
152
|
+
def set_title(fp)
|
153
|
+
otag = "<title.*"
|
154
|
+
ctag = "</title>"
|
155
|
+
while(!@title && fp.gets('>'))
|
156
|
+
ttag = $_.match(otag)
|
157
|
+
ttext = fp.gets(ctag) if ttag
|
158
|
+
@title = ttext[0, ttext.rindex(ctag)] if ttext
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
def register_images(fp)
|
163
|
+
while(fp.gets('>'))
|
164
|
+
url = $_.match("<a.*\n?.*\n?.*")
|
165
|
+
img = nil
|
166
|
+
if(url)
|
167
|
+
url = url.to_s
|
168
|
+
@log.debug(format("testing link %s", url)) if @log
|
169
|
+
@extensions = Image::FORMATS.keys.collect{|f| f.to_s}
|
170
|
+
@extensions.each do |ex|
|
171
|
+
img = url.to_s.match(/[\w\/]*.#{ex}/)
|
172
|
+
img = img.to_s.delete("\"") if img
|
173
|
+
@log.debug("testing image, result: #{img}") if img && @log
|
174
|
+
if(img && img.size > 0)
|
175
|
+
# img = dir.dup << img
|
176
|
+
image = Image.new(img)
|
177
|
+
@log.debug("result: #{image.to_s}") if image && @log
|
178
|
+
|
179
|
+
@images.push(image )
|
180
|
+
break
|
181
|
+
end
|
182
|
+
end
|
183
|
+
end
|
184
|
+
end
|
185
|
+
@log.debug(format("found %d references", @images.size)) if @log
|
186
|
+
@images.uniq!()
|
187
|
+
@log.debug(format("after uniq: %d", @images.size)) if @log
|
188
|
+
|
189
|
+
end
|
190
|
+
end
|
191
|
+
#---------------------------
|
data/lib/translating.rb
ADDED
@@ -0,0 +1,90 @@
|
|
1
|
+
#encoding: UTF-8
|
2
|
+
=begin
|
3
|
+
/***************************************************************************
|
4
|
+
* ©2011-2017, Michael Uplawski <michael.uplawski@uplawski.eu> *
|
5
|
+
* *
|
6
|
+
* This program is free software; you can redistribute it and/or modify *
|
7
|
+
* it under the terms of the GNU General Public License as published by *
|
8
|
+
* the Free Software Foundation; either version 3 of the License, or *
|
9
|
+
* (at your option) any later version. *
|
10
|
+
* *
|
11
|
+
* This program is distributed in the hope that it will be useful, *
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
14
|
+
* GNU General Public License for more details. *
|
15
|
+
* *
|
16
|
+
* You should have received a copy of the GNU General Public License *
|
17
|
+
* along with this program; if not, write to the *
|
18
|
+
* Free Software Foundation, Inc., *
|
19
|
+
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
20
|
+
***************************************************************************/
|
21
|
+
=end
|
22
|
+
|
23
|
+
|
24
|
+
RD = File.expand_path(File.dirname(__FILE__) ) + File::SEPARATOR if !defined?(RD)
|
25
|
+
|
26
|
+
require 'yaml'
|
27
|
+
require_relative 'file_checking'
|
28
|
+
|
29
|
+
|
30
|
+
# A way to produce translated text in a ruby-program.
|
31
|
+
# Translations are read from a file "translations" in the program folder.
|
32
|
+
module Translating
|
33
|
+
# There are better ways to extend a translated
|
34
|
+
# string, but I keep the 'wild-card' for
|
35
|
+
# historical reasons.
|
36
|
+
# TODO: GET RID OF THIS CRAP
|
37
|
+
@@awild = 'XX'
|
38
|
+
|
39
|
+
@@lang = nil
|
40
|
+
@@lang_file = format("%s%s", RD, 'LANG')
|
41
|
+
@@tr = YAML::load_file("#{RD}translations")
|
42
|
+
|
43
|
+
# find the current language-setting and return it.
|
44
|
+
def self.language()
|
45
|
+
if @@lang == nil
|
46
|
+
r = ENV['LANG']
|
47
|
+
if(r)
|
48
|
+
@@lang = r[0, 2]
|
49
|
+
elsif( !File_Checking::file_check(@@lang_file, [:exist?, :readable?]) && File::size(@@lang_file) >= 2)
|
50
|
+
File::open(@@lang_file, 'r') {|f| @@lang = f.readline}
|
51
|
+
@@lang.chomp!.downcase! if @@lang
|
52
|
+
end
|
53
|
+
end
|
54
|
+
@@lang = 'en' if !@@lang
|
55
|
+
end
|
56
|
+
|
57
|
+
# Translate a string to the currently set langage. The args parameter may
|
58
|
+
# contain replacement-text which will appear at the positions indicated by
|
59
|
+
# wildcard-characters in the original string (DARN).
|
60
|
+
# This is for historical reasons. The format() function is much better suited
|
61
|
+
# to extend plaintext messages.
|
62
|
+
def self.trl(t, *args)
|
63
|
+
Translating::language()
|
64
|
+
lt = @@tr[t]
|
65
|
+
if(lt)
|
66
|
+
lt = lt[@@lang]
|
67
|
+
else
|
68
|
+
# File.open('/tmp/mtf', 'a+') {|f| f << t << "\n"}
|
69
|
+
puts "\nTRANSLATION MISSING: \"" << t << "\""
|
70
|
+
end
|
71
|
+
lt ||= t
|
72
|
+
if(args && !args.empty?)
|
73
|
+
i = -1
|
74
|
+
lt = lt.gsub(@@awild) do |a|
|
75
|
+
i += 1
|
76
|
+
args.flatten[i]
|
77
|
+
end
|
78
|
+
lt += args[i + 1, args.length].join
|
79
|
+
end
|
80
|
+
return lt
|
81
|
+
end
|
82
|
+
|
83
|
+
# Translate a string to the currently set langage.
|
84
|
+
# The args parameter may contain replacement-text which
|
85
|
+
# will appear at the positions indicated by wildcard-characters
|
86
|
+
# in the original string.
|
87
|
+
def trl(t, *args )
|
88
|
+
Translating::trl(t, args)
|
89
|
+
end
|
90
|
+
end
|
data/lib/translations
ADDED
@@ -0,0 +1,354 @@
|
|
1
|
+
ERROR:
|
2
|
+
de: FEHLER
|
3
|
+
fr: ERREUR
|
4
|
+
|
5
|
+
Source-directory:
|
6
|
+
de: Quellverzeichnis
|
7
|
+
fr: Dosssier source
|
8
|
+
|
9
|
+
No source-directory given.:
|
10
|
+
de: Kein HTML-Quellverzeichnis angegeben.
|
11
|
+
fr: Veuillez indiquer le dossier sources HTML.
|
12
|
+
|
13
|
+
is not supported, wrong mime-type:
|
14
|
+
de: wird nicht unterstützt, verkehrter Mime-Type
|
15
|
+
fr: Le Mime-Type n'est pas supporté
|
16
|
+
|
17
|
+
DONE:
|
18
|
+
fr: Terminé
|
19
|
+
de: Fertig
|
20
|
+
|
21
|
+
sec:
|
22
|
+
fr: sec
|
23
|
+
de: sek
|
24
|
+
|
25
|
+
Start:
|
26
|
+
fr: Start
|
27
|
+
de: Start
|
28
|
+
|
29
|
+
Image:
|
30
|
+
fr: Image
|
31
|
+
de: Bild
|
32
|
+
|
33
|
+
Specific options:
|
34
|
+
fr: Options spécifiques
|
35
|
+
de: Spezielle Optionen
|
36
|
+
|
37
|
+
-d:
|
38
|
+
fr: -d
|
39
|
+
de: -d
|
40
|
+
|
41
|
+
debug [true|FALSE]:
|
42
|
+
fr: --debug[true|FALSE]
|
43
|
+
de: --debug[true|FALSE]
|
44
|
+
|
45
|
+
Switch on debug-mode.:
|
46
|
+
fr: Activer le protocole.
|
47
|
+
de: Debug-Modus aktivieren.
|
48
|
+
|
49
|
+
Will generate log-messages during processing:
|
50
|
+
fr: Le logiciel va afficher des messages pendant l'exécution
|
51
|
+
de: Während der Verarbeitung werden Protokollmeldungen ausgegeben
|
52
|
+
|
53
|
+
-f:
|
54
|
+
fr: -f
|
55
|
+
de: -f
|
56
|
+
|
57
|
+
formats:
|
58
|
+
fr: formats
|
59
|
+
de: Formate
|
60
|
+
|
61
|
+
specify the comma-separated list of image formats,:
|
62
|
+
fr: indiquez une liste de formats, séparés par comma,
|
63
|
+
de: Geben Sie eine komma-separierte Liste von Bildformaten an,
|
64
|
+
|
65
|
+
which should be used, others will be ignored.:
|
66
|
+
fr: qui doivent être utilisés. D'autres sont ignorés.
|
67
|
+
de: die benutzt werden sollen; andere werden ignoriert.
|
68
|
+
|
69
|
+
-l:
|
70
|
+
fr: -l
|
71
|
+
de: -l
|
72
|
+
|
73
|
+
local:
|
74
|
+
fr: local
|
75
|
+
de: lokal
|
76
|
+
|
77
|
+
|
78
|
+
Collect the image-files from the source-directory:
|
79
|
+
fr: Les images sont des fichiers dans le répertoire de source
|
80
|
+
de: Verwende die Bilddateien aus dem Quellverzeichnis
|
81
|
+
|
82
|
+
(if not provided, HTML-files are analyzed):
|
83
|
+
fr: (sinon, des fichiers HTML sont analysés)
|
84
|
+
de: (anderenfalls werden HTML-Dateien analysiert)
|
85
|
+
|
86
|
+
-r:
|
87
|
+
fr: -r
|
88
|
+
de: -r
|
89
|
+
|
90
|
+
recursive:
|
91
|
+
fr: récursif
|
92
|
+
de: rekursiv
|
93
|
+
|
94
|
+
When collecting image-files from the source-directory,:
|
95
|
+
fr: Si les images sont trouvés dans le répertoire de source,
|
96
|
+
de: Wenn die Bilddateien im Quellverszeichnis liegen,
|
97
|
+
|
98
|
+
also include the sub-directories.:
|
99
|
+
fr: traverse aussi les sous-répertoires
|
100
|
+
de: lies auch die Unterverzeichnisse
|
101
|
+
|
102
|
+
Usage:
|
103
|
+
fr: Syntaxe
|
104
|
+
de: Aufrufsyntax
|
105
|
+
|
106
|
+
or:
|
107
|
+
fr: ou
|
108
|
+
de: oder
|
109
|
+
|
110
|
+
-s:
|
111
|
+
fr: -s
|
112
|
+
de: -q
|
113
|
+
|
114
|
+
source SOURCE DIR:
|
115
|
+
fr: source RÉPERTOIRE SOURCE
|
116
|
+
de: quelle QUELLVERZEICHNIS
|
117
|
+
|
118
|
+
Read HTML source-files from this directory:
|
119
|
+
fr: Lis les fichiers HTML dans le répertoire de source
|
120
|
+
de: Lies die HTML-Dateien im Quellverzechnis
|
121
|
+
|
122
|
+
-t:
|
123
|
+
fr: -p
|
124
|
+
de: -z
|
125
|
+
|
126
|
+
target [TARGET DIR]:
|
127
|
+
fr: projet [Répertoire du Diaporama]
|
128
|
+
de: ziel [Zielverzeichnis]
|
129
|
+
|
130
|
+
Write slideshow-files to this sub-directory:
|
131
|
+
fr: sauvegarde les diaporamas dans ce sous-répertoire
|
132
|
+
de: Schreibe die Diashow-Dateien in dieses Unterverzeichnis
|
133
|
+
|
134
|
+
(if not provided, SOURCE DIR is used):
|
135
|
+
fr: (sinon, le répertoire de source est utilisé)
|
136
|
+
de: (anderenfalls wird das Quellverzeichnis verwendet)
|
137
|
+
|
138
|
+
Common options:
|
139
|
+
fr: Options généraux
|
140
|
+
de: Allgemeine Optionen
|
141
|
+
|
142
|
+
-h:
|
143
|
+
fr: -a
|
144
|
+
de: -h
|
145
|
+
|
146
|
+
help:
|
147
|
+
fr: aide
|
148
|
+
de: Hilfe
|
149
|
+
|
150
|
+
Show this message:
|
151
|
+
fr: Afficher ce message
|
152
|
+
de: Diese Meldung anzeigen
|
153
|
+
|
154
|
+
version:
|
155
|
+
fr: version
|
156
|
+
de: Version
|
157
|
+
|
158
|
+
Show version:
|
159
|
+
fr: Affiche version
|
160
|
+
de: Version anzeigen
|
161
|
+
|
162
|
+
# Tooltips
|
163
|
+
########################################
|
164
|
+
Path to the source-files:
|
165
|
+
de: Pfad zu den Quelldateien
|
166
|
+
fr: Chemin des fichiers sources
|
167
|
+
|
168
|
+
Include sub-directories in the search for images:
|
169
|
+
de: Unterverzeichnisse bei der Suche nach Bildern einschließen
|
170
|
+
fr: Chercher des images aussi dans les sous-dossiers
|
171
|
+
|
172
|
+
Choose a source-directory:
|
173
|
+
de: Ein Quellverzeichnis wählen
|
174
|
+
fr: Choisir le dossier des sources
|
175
|
+
|
176
|
+
Start generating the slide show(s):
|
177
|
+
de: Diashow(s) generieren
|
178
|
+
fr: Demarrer la création des diaporamas
|
179
|
+
|
180
|
+
Quit Html2Slideshow:
|
181
|
+
de: Html2Slideshow beenden
|
182
|
+
fr: Quitter Html2Slideshow
|
183
|
+
|
184
|
+
About Html2Slideshow:
|
185
|
+
de: Über Html2Slideshow
|
186
|
+
fr: A propos de Html2Slideshow
|
187
|
+
|
188
|
+
Path to the generated slide show(s):
|
189
|
+
de: Pfad zu den generierten Diashows
|
190
|
+
fr: Chemin du dossier pour le(s) diaporama(s)
|
191
|
+
|
192
|
+
Back to the general options:
|
193
|
+
de: Zurück zu den allgemeinen Einstellungen
|
194
|
+
fr: Retour à la configuration principale
|
195
|
+
|
196
|
+
Path and name of the log-file:
|
197
|
+
de: Pfad und name der Log-Datei
|
198
|
+
fr: Chemin et nom du fichier de protocole
|
199
|
+
|
200
|
+
Toggle to write or stop writing to the log-file:
|
201
|
+
de: Schreiben der Protokolldatein ein- und ausschalten
|
202
|
+
fr: Activer ou déactiver la création du protocole
|
203
|
+
|
204
|
+
Activate image-formats to include in the slide show:
|
205
|
+
de: Bildformate auswählen, die berücksichtigt werden sollen
|
206
|
+
fr: Choisissez les formats graphiques à inclure dans les diaporamas
|
207
|
+
|
208
|
+
Use the image-files, found in the source-folder:
|
209
|
+
de: Bilddateien direkt dem Quellverzeichnis entnehmen
|
210
|
+
fr: Les fichiers graphiques sont lus directement du dossiers des sources
|
211
|
+
|
212
|
+
Use the images, which are linked in HTML-files:
|
213
|
+
de: Bildverweise aus HTML-Dateien verwenden
|
214
|
+
fr: Les chemins des images sont extraits des fichiers HTML
|
215
|
+
|
216
|
+
file-names should match this regular expression:
|
217
|
+
de: Dateinamen der Bilder sollen diesem regulären Ausdruck entsprechen
|
218
|
+
fr: Expression regulaire pour filtrer les noms des fichiers
|
219
|
+
|
220
|
+
Create only one slide show file from several HTML source-files:
|
221
|
+
de: Nur eine Diashow-Datei aus mehreren HTML Quelldateien
|
222
|
+
fr: Tous les fichiers HTML seront fusionnés dans un seul diaporama
|
223
|
+
|
224
|
+
Title of the slide show file:
|
225
|
+
de: Titel der Diashow
|
226
|
+
fr: Titre du diaporama
|
227
|
+
|
228
|
+
# Special characters needed for the surface!
|
229
|
+
# JavaScript needs the escape-sequences
|
230
|
+
#######################################
|
231
|
+
You have reached the last picture:
|
232
|
+
de: Sie haben das letzte Bild erreicht.
|
233
|
+
fr: Vous %EAtes arriv%E9 %E0 la derni%E8re image
|
234
|
+
|
235
|
+
You have reached the first picture:
|
236
|
+
de: Sie haben das erste Bild erreicht.
|
237
|
+
fr: Vous %EAtes arriv%E9 %E0 la premi%E8re image
|
238
|
+
|
239
|
+
Image:
|
240
|
+
de: Bild
|
241
|
+
fr: Image
|
242
|
+
|
243
|
+
Continue slideshow:
|
244
|
+
de: Diashow fortsetzen
|
245
|
+
fr: Continuer le diaporama
|
246
|
+
|
247
|
+
Stop the automatic slideshow:
|
248
|
+
de: Automatische Diashow anhalten
|
249
|
+
fr: Arr%EAter le diaporama automatique
|
250
|
+
|
251
|
+
In the Internet-Explorer, the slideshow may suffer from display-errors.:
|
252
|
+
de: Im Internet-Explorer kommt es leider zu Darstellungsfehlern.
|
253
|
+
fr: Avec Internet-Explorer, la pr%E9sentation du diaporama peut %EAtre pertub%E9.
|
254
|
+
|
255
|
+
Please switch to a standard-complient browser until these issues are solved.:
|
256
|
+
de: Bitte weichen Sie auf einen standard-konformen Browser aus, bis diese Fehler beseitigt sind.
|
257
|
+
fr: Veuillez-utiliser un autre logiciel en attendant la correction de ces erreurs.
|
258
|
+
|
259
|
+
# Special characters needed for the surface!
|
260
|
+
# HTML needs HTML-entities.
|
261
|
+
#######################################
|
262
|
+
|
263
|
+
This page will only work, when your browser is configured to use JavaScript.:
|
264
|
+
de: Diese Seite funktioniert leider nur, wenn JavaScript in Ihrem Browser aktiviert ist.
|
265
|
+
fr: Cette page va fonctionner seulement si votre Browser est configuré pour executer JavaScript.
|
266
|
+
|
267
|
+
Click the back-button to return to the previous page or go directly to the:
|
268
|
+
de: Klicken Sie den Zurück-Button, um zur vorigen Seite zu gelangen, oder öffenen Sie direkt die
|
269
|
+
fr: Clickez sur le bouton "retour" pour revenir à la page précédente ou allez directement à la
|
270
|
+
|
271
|
+
Back to the welcome page:
|
272
|
+
de: Zurück zur Startseite
|
273
|
+
fr: Retour à la page de d'acceuil
|
274
|
+
|
275
|
+
welcome page:
|
276
|
+
de: Startseite
|
277
|
+
fr: page d'acceuil
|
278
|
+
|
279
|
+
toggle controls:
|
280
|
+
de: Steuerelemente ein- oder ausblenden
|
281
|
+
fr: afficher/masquer la colonne de commandes
|
282
|
+
|
283
|
+
start (again) automatic slideshow:
|
284
|
+
de: automatische Diashow (neu) starten
|
285
|
+
fr: démarrer (de nouveau) le diaporama automatique
|
286
|
+
|
287
|
+
Run:
|
288
|
+
de: Start
|
289
|
+
fr: Démarrer
|
290
|
+
|
291
|
+
stop the automatic slideshow:
|
292
|
+
de: automatische Diashow stoppen
|
293
|
+
fr: arrêter le diaporama automatique
|
294
|
+
|
295
|
+
Stop:
|
296
|
+
de: Stopp
|
297
|
+
fr: Stop
|
298
|
+
|
299
|
+
pause the automatic slideshow:
|
300
|
+
de: automatische Diashow anhalten
|
301
|
+
fr: pause
|
302
|
+
|
303
|
+
Pause:
|
304
|
+
de: Pause
|
305
|
+
fr: Pause
|
306
|
+
|
307
|
+
forward after:
|
308
|
+
de: weiter nach
|
309
|
+
fr: délai
|
310
|
+
|
311
|
+
sec.:
|
312
|
+
de: Sek.
|
313
|
+
fr: sec.
|
314
|
+
|
315
|
+
time span for each picture:
|
316
|
+
de: Anzeigedauer für jedes Bild
|
317
|
+
fr: durée d'affichage pour chaque image
|
318
|
+
|
319
|
+
more time:
|
320
|
+
de: mehr Zeit
|
321
|
+
fr: plus de temps
|
322
|
+
|
323
|
+
less time:
|
324
|
+
de: weniger Zeit
|
325
|
+
fr: moins de temps
|
326
|
+
|
327
|
+
next/previous:
|
328
|
+
de: vor/zurück
|
329
|
+
fr: avance/retour
|
330
|
+
|
331
|
+
previous picture (please allow time for loading):
|
332
|
+
de: voriges Bild (bitte Ladezeit abwarten)
|
333
|
+
fr: image précédante (l'affichage de l'image peut prendre quelques secondes)
|
334
|
+
|
335
|
+
scale to normal size:
|
336
|
+
de: Bild in Originalgröße
|
337
|
+
fr: Image en taille originale
|
338
|
+
|
339
|
+
scale to alternative large size:
|
340
|
+
de: Bild auf alternativen, großen Maßstab dimensionieren
|
341
|
+
fr: Dimensionner à la grande échelle alternative
|
342
|
+
|
343
|
+
scale to alternative small size:
|
344
|
+
de: Bild auf alternativen, kleinen Maßstab dimensionieren
|
345
|
+
fr: Dimensionner à la petite échelle alternative
|
346
|
+
|
347
|
+
next picture (please allow time for loading):
|
348
|
+
de: nächstes Bild (bitte Ladezeit abwarten)
|
349
|
+
fr: prochaine image (l'affichage de l'image peut prendre quelques secondes)
|
350
|
+
|
351
|
+
Please allow for longer loading-times during the very first cycle.:
|
352
|
+
de: Beim allerersten Durchlauf längere Ladezeiten abwarten.
|
353
|
+
fr: Pendant le premier passage, prévoyez plus de temps pour le chargement des images
|
354
|
+
|