blob: 1a5769afa84ec25a2dd87bbbb7e7bca07f6985f9 [file] [log] [blame]
Akroncddd1642015-06-10 21:31:53 +02001# Based on Mojolicious::Plugin::Number::Commify
2my $THOUSAND_SEP_RE = qr/(
3 ^[-+]? # beginning of number.
4 \d+? # first digits before first comma
5 (?= # followed by, (but not included in the match) :
6 (?>(?:\d{3})+) # some positive multiple of three digits.
7 (?!\d) # an *exact* multiple, not x * 3 + 1 or whatever.
8 )| # or:
9 \G\d{3} # after the last group, get three digits
10 (?=\d) # but they have to have more digits after them.
11)/x;
12
13{
14 _ => sub { $_->locale },
15 de => {
16 numf => sub {
17 shift;
18 my %val = @_;
19 my $num = $val{number} or return 0;
20 $num =~ s/$THOUSAND_SEP_RE/$1\./g;
21 return $num;
22 },
Akron459bf582023-11-03 10:17:11 +010023 numo => sub {
24 shift;
25 my %val = @_;
26 my $day = $val{day} or return '';
27 return $day . '.';
28 },
Akroncddd1642015-06-10 21:31:53 +020029 about => 'Über KorAP',
30 login => 'Anmelden',
Akrone5ef4e02017-04-19 17:07:52 +020031 logout => 'Abmelden',
Akrone8235be2016-06-27 11:02:18 +020032 register => 'Registrieren',
33 pwdforgotten => 'Password vergessen?',
Akron1f0521b2018-08-28 13:01:24 +020034 # TODO: use document.write() refering to vc.getName()!
35 searchjob => '»<%== $q %>« <% if (param("collection")) { %>im definierten Korpus <% } %>mit <%== loc("QL_" . $ql, "unbekannter Anfragesprache") %>',
Akronc4177492023-11-29 08:35:37 +010036 searchtitle => '<%= loc("en_korap_label") %>: Finde <%== loc("searchjob") %>',
Akroncddd1642015-06-10 21:31:53 +020037 searchplaceholder => 'Finde ...',
38 go => 'Los!',
Akron88614332024-04-15 12:16:12 +020039 news => 'Neuigkeiten',
Akroncddd1642015-06-10 21:31:53 +020040 in => 'in',
41 by => 'von',
Akron22b008a2024-06-26 17:06:05 +020042 page => {
43 -sg => 'S.',
44 pl => 'S.'
45 },
Akron189b3592016-01-04 20:56:46 +010046 pwd => 'Passwort',
47 email => 'Email',
Akrone208d302020-11-28 11:14:50 +010048 username => 'Benutzername',
Akron9f2ad342022-05-04 16:16:40 +020049 upload => 'Hochladen',
Akron9fa7cc52022-05-12 11:17:20 +020050 userormail => 'Benutzername oder Email',
Akroncddd1642015-06-10 21:31:53 +020051 with => 'mit',
52 glimpse => {
Akroncddd1642015-06-10 21:31:53 +020053 desc => 'Zeige nur die ersten Treffer in beliebiger Reihenfolge'
54 },
Akrond1741ae2017-11-29 09:58:53 +010055 activateJS => 'Für den vollen Funktionsumfang aktivieren Sie bitte JavaScript!',
Marc Kupietzb82939b2021-09-07 22:45:38 +020056 faq => 'FAQ',
Marc Kupietz08095ef2026-08-10 11:52:03 +020057 citationIntro => 'Wenn Sie die hier bereitgestellten Forschungswerkzeuge und Korpusdaten in Ihrer Forschung verwenden, zitieren Sie bitte mindestens je eine der aufgeführten Publikationen zu KorAP und zur Korpusgrundlage sowie – sofern einschlägig – die relevanten Publikationen zu den verwendeten Annotationen, Klassifikationen und Aufbereitungen:',
58 corpusPub => 'Korpusgrundlage',
59 korapPub => 'KorAP',
60 annotationToolPub => 'Korpusaufbereitung, Annotation und Klassifikation',
Uyen-Nhu Trana17b08d2025-02-18 19:14:55 +010061 tutorial => 'Hilfe',
62 tour => 'Tour',
Akronf4a7cf42018-01-09 15:58:45 +010063 notAvailInCorpus => 'Im vorliegenden Korpus nicht verfügbar',
Akroncddd1642015-06-10 21:31:53 +020064 pubOn => 'veröffentlicht am',
65 matchCount => 'Treffer',
Akron656c5d92015-11-13 21:17:03 +010066 noMatches => 'Es wurden keine Treffer für <%== loc("searchjob") %> gefunden.',
Akron68751462025-07-04 11:39:55 +020067 moreMatches => {
68 -short => 'mehr als',
69 long => 'Dieser Wert gibt die Mindestanzahl an Treffern wieder. Die tatsächliche Trefferanzahl kann aufgrund von Sucheinschränkungen nicht angezeigt werden.',
70 },
Akroncddd1642015-06-10 21:31:53 +020071 notFound => '404 - Seite nicht gefunden',
Akron3c390c42020-03-30 09:06:21 +020072 notIssued => 'Die Aktion konnte nicht durchgeführt werden.',
Akron8ea84292018-10-24 13:41:52 +020073 backendNotAvailable => 'Das Backend ist nicht verfügbar unter <code><%= app->korap->api =></code>!',
Akroncddd1642015-06-10 21:31:53 +020074 jsFile => 'kalamar-<%= $Kalamar::VERSION %>-de.js',
75 underConstruction => 'In Vorbereitung!',
76 korap => {
77 -short => 'KorAP',
Akronc4177492023-11-29 08:35:37 +010078 desc => '<%= loc "en_korap_label" %> - Korpusanalyseplattform der nächsten Generation',
79 overview => '<%= loc "en_korap_label" %> - Übersicht',
Akrona2d92de2019-02-27 15:51:07 +010080 keywords => 'KorAP, DeReKo, Korpussuche, IDS Mannheim, Leibniz-Institut für Deutsche Sprache',
Akroncddd1642015-06-10 21:31:53 +020081 },
Akronafeca252018-05-23 15:54:28 +020082 privacy => 'Datenschutz',
83 imprint => 'Impressum',
Akronf7ec4442019-10-27 20:01:05 +010084 settings => 'Einstellungen',
Akron459bf582023-11-03 10:17:11 +010085 'oclock' => 'Uhr',
86 maintenanceWork => {
87 time => 'Wartungsfenster',
88 desc => 'Aufgrund von Wartungsarbeiten wird es zu Unterbrechungen des Dienstes kommen.',
89 },
Akronccd71a42017-06-30 18:09:19 +020090 Template => {
Akronbd39a432017-09-20 13:57:13 +020091 intro => 'de/intro',
Akronccd71a42017-06-30 18:09:19 +020092 doc => {
93 ql => {
Akronb9ca92b2024-03-14 10:20:18 +010094 '.' => 'de/doc/ql',
Helgeb4c098c2022-10-04 16:26:38 +020095 'poliqarp-plus' => 'de/doc/ql/poliqarp-plus',
Rebecca Wilmc81e10d2024-08-29 15:48:14 +020096 'cosmas-2' => 'de/doc/ql/cosmas-2',
Rebecca Wilm4ce37af2024-09-17 12:06:42 +020097 'regexp' => 'de/doc/ql/regexp',
Rebecca Wilm155687b2024-11-06 15:25:19 +010098 'fcsql' => 'de/doc/ql/fcsql',
Rebecca Wilm45e9afe2024-11-07 15:17:29 +010099 'cql' => 'de/doc/ql/cql',
100 'annis' => 'de/doc/ql/annis'
Akron48567812017-09-01 16:49:04 +0200101 },
Rebecca Wilm6b4d3742025-05-06 10:33:23 +0200102 faq => {
103 '.' => 'de/doc/faq'
104 },
Akron48567812017-09-01 16:49:04 +0200105 api => {
Rebecca Wilm6b4d3742025-05-06 10:33:23 +0200106 '.' => 'de/doc/api',
Akron48567812017-09-01 16:49:04 +0200107 'koralquery' => 'de/doc/api/koralquery'
108 },
Rebecca Wilm6b4d3742025-05-06 10:33:23 +0200109 annotation => {
110 '.' => 'de/doc/annotation'
111 },
Akron48567812017-09-01 16:49:04 +0200112 data => {
113 'annotation' => 'de/doc/data/annotation'
114 },
Marc Kupietzfcadda62021-09-08 09:06:25 +0200115 development => {
Rebecca Wilm6b4d3742025-05-06 10:33:23 +0200116 '.' => 'de/doc/development',
Marc Kupietzfcadda62021-09-08 09:06:25 +0200117 'kalamar' => 'de/doc/development/kalamar',
118 'karang' => 'de/doc/development/karang',
119 'koral' => 'de/doc/development/koral',
120 'krill' => 'de/doc/development/krill',
121 'kustvakt' => 'de/doc/development/kustvakt'
Akronccd71a42017-06-30 18:09:19 +0200122 }
123 }
Akron0dc10902017-09-01 18:00:16 +0200124 },
125 Nav => {
126 'ql' => 'Anfragesprachen',
Helgeb4c098c2022-10-04 16:26:38 +0200127 '#queryterms' => 'Suchbegriffe',
128 '#logical-operators' => 'Logische Operatoren',
129 '#distance-operators' => 'Abstandsoperatoren',
130 '#annotation-operators' => 'Annotationsoperatoren',
131 '#combination-operators'=> 'Kombinationsoperatoren',
132 '#area-operators' => 'Textbereich-Operatoren',
Akron0dc10902017-09-01 18:00:16 +0200133 '#segments' => 'Einfache Segmente',
134 '#complex' => 'Komplexe Segmente',
Akronae24e162018-02-13 18:48:44 +0100135 '#spans' => 'Span-Segmente',
Akron0dc10902017-09-01 18:00:16 +0200136 '#paradigmatic-operators' => 'Paradigmatische Operatoren',
137 '#syntagmatic-operators' => 'Syntagmatische Operatoren',
Akronae24e162018-02-13 18:48:44 +0100138 '#class-operators' => 'Klassen-Operatoren',
Akron0dc10902017-09-01 18:00:16 +0200139 'regexp' => 'Reguläre Ausdrücke',
Marc Kupietz4689e792021-09-07 23:29:51 +0200140 'data' => 'Korpusdaten',
Akron0dc10902017-09-01 18:00:16 +0200141 'corpus' => 'Korpora',
142 'annotation' => 'Annotationen',
143 '#default-foundries' => 'Standard Foundries',
Marc Kupietzfcadda62021-09-08 09:06:25 +0200144 'development' => 'Entwicklung',
Akron459bf582023-11-03 10:17:11 +0100145 'faq' => 'FAQ',
Akroncddd1642015-06-10 21:31:53 +0200146 }
147 },
148 -en => {
Akron43a73092016-02-11 21:52:27 +0100149 jsFile => 'kalamar-<%= $Kalamar::VERSION %>-en.js',
Akroncddd1642015-06-10 21:31:53 +0200150 numf => sub {
151 shift;
152 my %val = @_;
153 my $num = $val{number} or return 0;
154 $num =~ s/$THOUSAND_SEP_RE/$1\,/g;
155 return $num;
156 },
Akron459bf582023-11-03 10:17:11 +0100157 numo => sub {
158 shift;
159 my %val = @_;
160 my $day = $val{day} or return '';
161 if ($day > 3) {
162 return $day . 'th';
163 } elsif ($day == 3) {
164 return '3rd';
165 } elsif ($day == 2) {
166 return '2nd';
167 };
168 return '1st';
169 },
Akroncddd1642015-06-10 21:31:53 +0200170 about => 'About KorAP',
171 login => 'Login',
Akrona8f56b22017-09-06 16:01:28 +0200172 logout => 'Logout',
Akrone8235be2016-06-27 11:02:18 +0200173 register => 'Register',
174 pwdforgotten => 'Password forgotten?',
Akroncddd1642015-06-10 21:31:53 +0200175 go => 'Go!',
Akron88614332024-04-15 12:16:12 +0200176 news => 'News',
Akron1f0521b2018-08-28 13:01:24 +0200177 # TODO: use document.write() refering to vc.getName()!
178 searchjob => '»<%== $q %>« <% if (param("collection")) { %>in the defined corpus <% } %>with <%== loc("QL_". $ql, "unknown query language") %>',
Akronc4177492023-11-29 08:35:37 +0100179 searchtitle => '<%= loc("korap_label") %>: Find <%== loc("searchjob") %>',
Akroncddd1642015-06-10 21:31:53 +0200180 searchplaceholder => 'Find ...',
181 in => 'in',
182 by => 'by',
Akron22b008a2024-06-26 17:06:05 +0200183 page => {
184 -sg => 'p.',
185 pl => 'pp.',
186 },
Akron189b3592016-01-04 20:56:46 +0100187 pwd => 'Password',
188 email => 'Email',
Akrone208d302020-11-28 11:14:50 +0100189 username => 'Username',
Akron9f2ad342022-05-04 16:16:40 +0200190 upload => 'Upload',
Akron9fa7cc52022-05-12 11:17:20 +0200191 userormail => 'Username or Email',
Akroncddd1642015-06-10 21:31:53 +0200192 with => 'with',
Akronf4a7cf42018-01-09 15:58:45 +0100193 notAvailInCorpus => 'Not available in the current corpus',
Akroncddd1642015-06-10 21:31:53 +0200194 pubOn => 'published on',
Akroncf29b222016-10-12 16:53:32 +0200195 matchCount => '<%= quant($found, "match", "matches") %>',
Akron656c5d92015-11-13 21:17:03 +0100196 noMatches => 'There were no matches found for <%== loc("searchjob") %>.',
Akron68751462025-07-04 11:39:55 +0200197 moreMatches => {
198 -short => 'more than',
199 long => 'This value represents the minimum number of matches in the database. The exact number cannot be displayed due to search restrictions.',
200 },
201
Akroncddd1642015-06-10 21:31:53 +0200202 notFound => '404 - Page not found',
Akron3c390c42020-03-30 09:06:21 +0200203 notIssued => 'Unable to perform the action.',
Akron8ea84292018-10-24 13:41:52 +0200204 backendNotAvailable => 'The backend is not available at <code><%= app->korap->api %></code>!',
Akroncddd1642015-06-10 21:31:53 +0200205 glimpse => {
Akrona18ee1a2017-07-06 16:40:26 +0200206 -short => 'Glimpse',
Akroncddd1642015-06-10 21:31:53 +0200207 desc => 'Just show the first matches in arbitrary order'
208 },
Akrond1741ae2017-11-29 09:58:53 +0100209 activateJS => 'To make use of all features, please activate JavaScript!',
Marc Kupietzb82939b2021-09-07 22:45:38 +0200210 faq => 'FAQ',
Marc Kupietz08095ef2026-08-10 11:52:03 +0200211 citationIntro => 'If you use the research tools and corpus data provided here in your research, please cite at least one of the listed publications on KorAP and on the underlying corpus and, where applicable, the relevant publications on the annotations, classifications and preparation steps used:',
212 corpusPub => 'Corpus basis',
213 korapPub => 'KorAP',
214 annotationToolPub => 'Corpus preparation, annotation and classification',
Akron459bf582023-11-03 10:17:11 +0100215 'oclock' => 'o\'clock',
Akroncddd1642015-06-10 21:31:53 +0200216 underConstruction => 'Under Construction!',
Uyen-Nhu Trana17b08d2025-02-18 19:14:55 +0100217 tutorial => 'Help',
218 tour => 'Tour',
Akroncddd1642015-06-10 21:31:53 +0200219 korap => {
220 -short => 'KorAP',
Akronc4177492023-11-29 08:35:37 +0100221 label => '<%= loc "korap_short" %><% if (loc("title_addon")) { %>-<%= loc("title_addon") %><% } %>',
222 desc => '<%= loc "korap_label" %> - Corpus Analysis Platform',
223 overview => '<%= loc "korap_label" %> - Overview',
Akrona17bc5b2018-10-05 13:35:01 +0200224 region => 'DE-BW',
225 placename => 'Mannheim',
Akrona2d92de2019-02-27 15:51:07 +0100226 keywords => 'KorAP, DeReKo, Corpus Query Platform, IDS Mannheim, Leibniz Institute for the German Language'
Akron7716f012015-07-01 20:38:32 +0200227 },
228 QL => {
229 poliqarp => 'Poliqarp',
230 cosmas2 => 'Cosmas II',
231 annis => 'Annis QL',
Akron5da3c432026-03-13 11:38:29 +0100232 cqp => 'CQP',
Akronef351fa2017-11-22 19:44:50 +0100233 cql => 'CQL v1.2',
234 fcsql => 'FCSQL'
Akrone5ef4e02017-04-19 17:07:52 +0200235 },
Akronafeca252018-05-23 15:54:28 +0200236 privacy => 'Privacy',
237 imprint => 'Imprint',
Akronf7ec4442019-10-27 20:01:05 +0100238 settings => 'Settings',
Akron459bf582023-11-03 10:17:11 +0100239 maintenanceWork => {
240 time => 'Maintenance',
241 desc => 'Due to maintenance work the service will be interrupted.',
242 },
Akronccd71a42017-06-30 18:09:19 +0200243 Template => {
Akronbd39a432017-09-20 13:57:13 +0200244 intro => 'intro',
Akronccd71a42017-06-30 18:09:19 +0200245 doc => {
246 ql => {
Akronb9ca92b2024-03-14 10:20:18 +0100247 '.' => 'doc/ql',
Helgeb4c098c2022-10-04 16:26:38 +0200248 'poliqarp-plus' => 'doc/ql/poliqarp-plus',
Rebecca Wilmc81e10d2024-08-29 15:48:14 +0200249 'cosmas-2' => 'doc/ql/cosmas-2',
Rebecca Wilm4ce37af2024-09-17 12:06:42 +0200250 'regexp' => 'doc/ql/regexp',
Rebecca Wilm155687b2024-11-06 15:25:19 +0100251 'fcsql' => 'doc/ql/fcsql',
Rebecca Wilm45e9afe2024-11-07 15:17:29 +0100252 'cql' => 'doc/ql/cql',
253 'annis' => 'doc/ql/annis'
Akron0dc10902017-09-01 18:00:16 +0200254 },
Rebecca Wilm6b4d3742025-05-06 10:33:23 +0200255 faq => {
256 '.' => 'doc/faq'
257 },
Akron0dc10902017-09-01 18:00:16 +0200258 api => {
Rebecca Wilm6b4d3742025-05-06 10:33:23 +0200259 '.' => 'doc/api',
Akron0dc10902017-09-01 18:00:16 +0200260 'koralquery' => 'doc/api/koralquery'
261 },
Rebecca Wilm6b4d3742025-05-06 10:33:23 +0200262 annotation => {
263 '.' => '/doc/annotation'
264 },
Akron0dc10902017-09-01 18:00:16 +0200265 data => {
266 'annotation' => 'doc/data/annotation'
267 },
Akrondd5ab892021-09-08 12:46:08 +0200268 development => {
Rebecca Wilm6b4d3742025-05-06 10:33:23 +0200269 '.' => 'doc/development',
Marc Kupietzfcadda62021-09-08 09:06:25 +0200270 'kalamar' => 'doc/development/kalamar',
271 'karang' => 'doc/development/karang',
272 'koral' => 'doc/development/koral',
273 'krill' => 'doc/development/krill',
274 'kustvakt' => 'doc/development/kustvakt'
Akronccd71a42017-06-30 18:09:19 +0200275 }
276 }
Akron0dc10902017-09-01 18:00:16 +0200277 },
278 Nav => {
279 'ql' => 'Query Languages',
Helgeb4c098c2022-10-04 16:26:38 +0200280 '#queryterms' => 'Query Terms',
281 '#logical-operators' => 'Logical Operators',
282 '#distance-operators' => 'Distance Operators',
283 '#annotation-operators' => 'Annotation Operators',
284 '#combination-operators'=> 'Combination Operators',
285 '#area-operators' => 'Area Operators',
Akron0dc10902017-09-01 18:00:16 +0200286 '#segments' => 'Simple Segments',
287 '#complex' => 'Complex Segments',
288 '#spans' => 'Span Segments',
289 '#paradigmatic-operators' => 'Paradigmatic Operators',
290 '#syntagmatic-operators' => 'Syntagmatic Operators',
291 '#class-operators' => 'Class Operators',
292 'regexp' => 'Regular Expressions',
Marc Kupietz4689e792021-09-07 23:29:51 +0200293 'data' => 'Corpus Data',
Akron0dc10902017-09-01 18:00:16 +0200294 'corpus' => 'Corpora',
295 'annotation' => 'Annotations',
296 '#default-foundries' => 'Default Foundries',
Marc Kupietzfcadda62021-09-08 09:06:25 +0200297 'development' => 'Development',
Marc Kupietzb82939b2021-09-07 22:45:38 +0200298 'faq' => 'FAQ'
Akroncddd1642015-06-10 21:31:53 +0200299 }
Akron4c33c622018-11-12 13:43:27 +0100300 },
301 Piwik => {
302 en => {
303 'HowToOptOut' => 'How to opt-out from Piwik/Matomo tracking?'
304 },
305 de => {
306 'HowToOptOut' => 'Wie kann ich die Weitergabe meiner Daten per Matomo/Piwik unterbinden?'
307 }
Akroncddd1642015-06-10 21:31:53 +0200308 }
309};