blob: 4d12be278f7b26b66dcbe9c8c189af149d7cf406 [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',
Uyen-Nhu Trana17b08d2025-02-18 19:14:55 +010057 tutorial => 'Hilfe',
58 tour => 'Tour',
Akronf4a7cf42018-01-09 15:58:45 +010059 notAvailInCorpus => 'Im vorliegenden Korpus nicht verfügbar',
Akroncddd1642015-06-10 21:31:53 +020060 pubOn => 'veröffentlicht am',
61 matchCount => 'Treffer',
Akron656c5d92015-11-13 21:17:03 +010062 noMatches => 'Es wurden keine Treffer für <%== loc("searchjob") %> gefunden.',
Akron68751462025-07-04 11:39:55 +020063 moreMatches => {
64 -short => 'mehr als',
65 long => 'Dieser Wert gibt die Mindestanzahl an Treffern wieder. Die tatsächliche Trefferanzahl kann aufgrund von Sucheinschränkungen nicht angezeigt werden.',
66 },
Akroncddd1642015-06-10 21:31:53 +020067 notFound => '404 - Seite nicht gefunden',
Akron3c390c42020-03-30 09:06:21 +020068 notIssued => 'Die Aktion konnte nicht durchgeführt werden.',
Akron8ea84292018-10-24 13:41:52 +020069 backendNotAvailable => 'Das Backend ist nicht verfügbar unter <code><%= app->korap->api =></code>!',
Akroncddd1642015-06-10 21:31:53 +020070 jsFile => 'kalamar-<%= $Kalamar::VERSION %>-de.js',
71 underConstruction => 'In Vorbereitung!',
72 korap => {
73 -short => 'KorAP',
Akronc4177492023-11-29 08:35:37 +010074 desc => '<%= loc "en_korap_label" %> - Korpusanalyseplattform der nächsten Generation',
75 overview => '<%= loc "en_korap_label" %> - Übersicht',
Akrona2d92de2019-02-27 15:51:07 +010076 keywords => 'KorAP, DeReKo, Korpussuche, IDS Mannheim, Leibniz-Institut für Deutsche Sprache',
Akroncddd1642015-06-10 21:31:53 +020077 },
Akronafeca252018-05-23 15:54:28 +020078 privacy => 'Datenschutz',
79 imprint => 'Impressum',
Akronf7ec4442019-10-27 20:01:05 +010080 settings => 'Einstellungen',
Akron459bf582023-11-03 10:17:11 +010081 'oclock' => 'Uhr',
82 maintenanceWork => {
83 time => 'Wartungsfenster',
84 desc => 'Aufgrund von Wartungsarbeiten wird es zu Unterbrechungen des Dienstes kommen.',
85 },
Akronccd71a42017-06-30 18:09:19 +020086 Template => {
Akronbd39a432017-09-20 13:57:13 +020087 intro => 'de/intro',
Akronccd71a42017-06-30 18:09:19 +020088 doc => {
89 ql => {
Akronb9ca92b2024-03-14 10:20:18 +010090 '.' => 'de/doc/ql',
Helgeb4c098c2022-10-04 16:26:38 +020091 'poliqarp-plus' => 'de/doc/ql/poliqarp-plus',
Rebecca Wilmc81e10d2024-08-29 15:48:14 +020092 'cosmas-2' => 'de/doc/ql/cosmas-2',
Rebecca Wilm4ce37af2024-09-17 12:06:42 +020093 'regexp' => 'de/doc/ql/regexp',
Rebecca Wilm155687b2024-11-06 15:25:19 +010094 'fcsql' => 'de/doc/ql/fcsql',
Rebecca Wilm45e9afe2024-11-07 15:17:29 +010095 'cql' => 'de/doc/ql/cql',
96 'annis' => 'de/doc/ql/annis'
Akron48567812017-09-01 16:49:04 +020097 },
Rebecca Wilm6b4d3742025-05-06 10:33:23 +020098 faq => {
99 '.' => 'de/doc/faq'
100 },
Akron48567812017-09-01 16:49:04 +0200101 api => {
Rebecca Wilm6b4d3742025-05-06 10:33:23 +0200102 '.' => 'de/doc/api',
Akron48567812017-09-01 16:49:04 +0200103 'koralquery' => 'de/doc/api/koralquery'
104 },
Rebecca Wilm6b4d3742025-05-06 10:33:23 +0200105 annotation => {
106 '.' => 'de/doc/annotation'
107 },
Akron48567812017-09-01 16:49:04 +0200108 data => {
109 'annotation' => 'de/doc/data/annotation'
110 },
Marc Kupietzfcadda62021-09-08 09:06:25 +0200111 development => {
Rebecca Wilm6b4d3742025-05-06 10:33:23 +0200112 '.' => 'de/doc/development',
Marc Kupietzfcadda62021-09-08 09:06:25 +0200113 'kalamar' => 'de/doc/development/kalamar',
114 'karang' => 'de/doc/development/karang',
115 'koral' => 'de/doc/development/koral',
116 'krill' => 'de/doc/development/krill',
117 'kustvakt' => 'de/doc/development/kustvakt'
Akronccd71a42017-06-30 18:09:19 +0200118 }
119 }
Akron0dc10902017-09-01 18:00:16 +0200120 },
121 Nav => {
122 'ql' => 'Anfragesprachen',
Helgeb4c098c2022-10-04 16:26:38 +0200123 '#queryterms' => 'Suchbegriffe',
124 '#logical-operators' => 'Logische Operatoren',
125 '#distance-operators' => 'Abstandsoperatoren',
126 '#annotation-operators' => 'Annotationsoperatoren',
127 '#combination-operators'=> 'Kombinationsoperatoren',
128 '#area-operators' => 'Textbereich-Operatoren',
Akron0dc10902017-09-01 18:00:16 +0200129 '#segments' => 'Einfache Segmente',
130 '#complex' => 'Komplexe Segmente',
Akronae24e162018-02-13 18:48:44 +0100131 '#spans' => 'Span-Segmente',
Akron0dc10902017-09-01 18:00:16 +0200132 '#paradigmatic-operators' => 'Paradigmatische Operatoren',
133 '#syntagmatic-operators' => 'Syntagmatische Operatoren',
Akronae24e162018-02-13 18:48:44 +0100134 '#class-operators' => 'Klassen-Operatoren',
Akron0dc10902017-09-01 18:00:16 +0200135 'regexp' => 'Reguläre Ausdrücke',
Marc Kupietz4689e792021-09-07 23:29:51 +0200136 'data' => 'Korpusdaten',
Akron0dc10902017-09-01 18:00:16 +0200137 'corpus' => 'Korpora',
138 'annotation' => 'Annotationen',
139 '#default-foundries' => 'Standard Foundries',
Marc Kupietzfcadda62021-09-08 09:06:25 +0200140 'development' => 'Entwicklung',
Akron459bf582023-11-03 10:17:11 +0100141 'faq' => 'FAQ',
Akron397552c2023-09-18 12:13:33 +0200142 },
143 QL => {
144 cqp => 'CQP (neu)'
Akroncddd1642015-06-10 21:31:53 +0200145 }
146 },
147 -en => {
Akron43a73092016-02-11 21:52:27 +0100148 jsFile => 'kalamar-<%= $Kalamar::VERSION %>-en.js',
Akroncddd1642015-06-10 21:31:53 +0200149 numf => sub {
150 shift;
151 my %val = @_;
152 my $num = $val{number} or return 0;
153 $num =~ s/$THOUSAND_SEP_RE/$1\,/g;
154 return $num;
155 },
Akron459bf582023-11-03 10:17:11 +0100156 numo => sub {
157 shift;
158 my %val = @_;
159 my $day = $val{day} or return '';
160 if ($day > 3) {
161 return $day . 'th';
162 } elsif ($day == 3) {
163 return '3rd';
164 } elsif ($day == 2) {
165 return '2nd';
166 };
167 return '1st';
168 },
Akroncddd1642015-06-10 21:31:53 +0200169 about => 'About KorAP',
170 login => 'Login',
Akrona8f56b22017-09-06 16:01:28 +0200171 logout => 'Logout',
Akrone8235be2016-06-27 11:02:18 +0200172 register => 'Register',
173 pwdforgotten => 'Password forgotten?',
Akroncddd1642015-06-10 21:31:53 +0200174 go => 'Go!',
Akron88614332024-04-15 12:16:12 +0200175 news => 'News',
Akron1f0521b2018-08-28 13:01:24 +0200176 # TODO: use document.write() refering to vc.getName()!
177 searchjob => '»<%== $q %>« <% if (param("collection")) { %>in the defined corpus <% } %>with <%== loc("QL_". $ql, "unknown query language") %>',
Akronc4177492023-11-29 08:35:37 +0100178 searchtitle => '<%= loc("korap_label") %>: Find <%== loc("searchjob") %>',
Akroncddd1642015-06-10 21:31:53 +0200179 searchplaceholder => 'Find ...',
180 in => 'in',
181 by => 'by',
Akron22b008a2024-06-26 17:06:05 +0200182 page => {
183 -sg => 'p.',
184 pl => 'pp.',
185 },
Akron189b3592016-01-04 20:56:46 +0100186 pwd => 'Password',
187 email => 'Email',
Akrone208d302020-11-28 11:14:50 +0100188 username => 'Username',
Akron9f2ad342022-05-04 16:16:40 +0200189 upload => 'Upload',
Akron9fa7cc52022-05-12 11:17:20 +0200190 userormail => 'Username or Email',
Akroncddd1642015-06-10 21:31:53 +0200191 with => 'with',
Akronf4a7cf42018-01-09 15:58:45 +0100192 notAvailInCorpus => 'Not available in the current corpus',
Akroncddd1642015-06-10 21:31:53 +0200193 pubOn => 'published on',
Akroncf29b222016-10-12 16:53:32 +0200194 matchCount => '<%= quant($found, "match", "matches") %>',
Akron656c5d92015-11-13 21:17:03 +0100195 noMatches => 'There were no matches found for <%== loc("searchjob") %>.',
Akron68751462025-07-04 11:39:55 +0200196 moreMatches => {
197 -short => 'more than',
198 long => 'This value represents the minimum number of matches in the database. The exact number cannot be displayed due to search restrictions.',
199 },
200
Akroncddd1642015-06-10 21:31:53 +0200201 notFound => '404 - Page not found',
Akron3c390c42020-03-30 09:06:21 +0200202 notIssued => 'Unable to perform the action.',
Akron8ea84292018-10-24 13:41:52 +0200203 backendNotAvailable => 'The backend is not available at <code><%= app->korap->api %></code>!',
Akroncddd1642015-06-10 21:31:53 +0200204 glimpse => {
Akrona18ee1a2017-07-06 16:40:26 +0200205 -short => 'Glimpse',
Akroncddd1642015-06-10 21:31:53 +0200206 desc => 'Just show the first matches in arbitrary order'
207 },
Akrond1741ae2017-11-29 09:58:53 +0100208 activateJS => 'To make use of all features, please activate JavaScript!',
Marc Kupietzb82939b2021-09-07 22:45:38 +0200209 faq => 'FAQ',
Akron459bf582023-11-03 10:17:11 +0100210 'oclock' => 'o\'clock',
Akroncddd1642015-06-10 21:31:53 +0200211 underConstruction => 'Under Construction!',
Uyen-Nhu Trana17b08d2025-02-18 19:14:55 +0100212 tutorial => 'Help',
213 tour => 'Tour',
Akroncddd1642015-06-10 21:31:53 +0200214 korap => {
215 -short => 'KorAP',
Akronc4177492023-11-29 08:35:37 +0100216 label => '<%= loc "korap_short" %><% if (loc("title_addon")) { %>-<%= loc("title_addon") %><% } %>',
217 desc => '<%= loc "korap_label" %> - Corpus Analysis Platform',
218 overview => '<%= loc "korap_label" %> - Overview',
Akrona17bc5b2018-10-05 13:35:01 +0200219 region => 'DE-BW',
220 placename => 'Mannheim',
Akrona2d92de2019-02-27 15:51:07 +0100221 keywords => 'KorAP, DeReKo, Corpus Query Platform, IDS Mannheim, Leibniz Institute for the German Language'
Akron7716f012015-07-01 20:38:32 +0200222 },
223 QL => {
224 poliqarp => 'Poliqarp',
225 cosmas2 => 'Cosmas II',
226 annis => 'Annis QL',
Akron397552c2023-09-18 12:13:33 +0200227 cqp => 'CQP (new)',
Akronef351fa2017-11-22 19:44:50 +0100228 cql => 'CQL v1.2',
229 fcsql => 'FCSQL'
Akrone5ef4e02017-04-19 17:07:52 +0200230 },
Akronafeca252018-05-23 15:54:28 +0200231 privacy => 'Privacy',
232 imprint => 'Imprint',
Akronf7ec4442019-10-27 20:01:05 +0100233 settings => 'Settings',
Akron459bf582023-11-03 10:17:11 +0100234 maintenanceWork => {
235 time => 'Maintenance',
236 desc => 'Due to maintenance work the service will be interrupted.',
237 },
Akronccd71a42017-06-30 18:09:19 +0200238 Template => {
Akronbd39a432017-09-20 13:57:13 +0200239 intro => 'intro',
Akronccd71a42017-06-30 18:09:19 +0200240 doc => {
241 ql => {
Akronb9ca92b2024-03-14 10:20:18 +0100242 '.' => 'doc/ql',
Helgeb4c098c2022-10-04 16:26:38 +0200243 'poliqarp-plus' => 'doc/ql/poliqarp-plus',
Rebecca Wilmc81e10d2024-08-29 15:48:14 +0200244 'cosmas-2' => 'doc/ql/cosmas-2',
Rebecca Wilm4ce37af2024-09-17 12:06:42 +0200245 'regexp' => 'doc/ql/regexp',
Rebecca Wilm155687b2024-11-06 15:25:19 +0100246 'fcsql' => 'doc/ql/fcsql',
Rebecca Wilm45e9afe2024-11-07 15:17:29 +0100247 'cql' => 'doc/ql/cql',
248 'annis' => 'doc/ql/annis'
Akron0dc10902017-09-01 18:00:16 +0200249 },
Rebecca Wilm6b4d3742025-05-06 10:33:23 +0200250 faq => {
251 '.' => 'doc/faq'
252 },
Akron0dc10902017-09-01 18:00:16 +0200253 api => {
Rebecca Wilm6b4d3742025-05-06 10:33:23 +0200254 '.' => 'doc/api',
Akron0dc10902017-09-01 18:00:16 +0200255 'koralquery' => 'doc/api/koralquery'
256 },
Rebecca Wilm6b4d3742025-05-06 10:33:23 +0200257 annotation => {
258 '.' => '/doc/annotation'
259 },
Akron0dc10902017-09-01 18:00:16 +0200260 data => {
261 'annotation' => 'doc/data/annotation'
262 },
Akrondd5ab892021-09-08 12:46:08 +0200263 development => {
Rebecca Wilm6b4d3742025-05-06 10:33:23 +0200264 '.' => 'doc/development',
Marc Kupietzfcadda62021-09-08 09:06:25 +0200265 'kalamar' => 'doc/development/kalamar',
266 'karang' => 'doc/development/karang',
267 'koral' => 'doc/development/koral',
268 'krill' => 'doc/development/krill',
269 'kustvakt' => 'doc/development/kustvakt'
Akronccd71a42017-06-30 18:09:19 +0200270 }
271 }
Akron0dc10902017-09-01 18:00:16 +0200272 },
273 Nav => {
274 'ql' => 'Query Languages',
Helgeb4c098c2022-10-04 16:26:38 +0200275 '#queryterms' => 'Query Terms',
276 '#logical-operators' => 'Logical Operators',
277 '#distance-operators' => 'Distance Operators',
278 '#annotation-operators' => 'Annotation Operators',
279 '#combination-operators'=> 'Combination Operators',
280 '#area-operators' => 'Area Operators',
Akron0dc10902017-09-01 18:00:16 +0200281 '#segments' => 'Simple Segments',
282 '#complex' => 'Complex Segments',
283 '#spans' => 'Span Segments',
284 '#paradigmatic-operators' => 'Paradigmatic Operators',
285 '#syntagmatic-operators' => 'Syntagmatic Operators',
286 '#class-operators' => 'Class Operators',
287 'regexp' => 'Regular Expressions',
Marc Kupietz4689e792021-09-07 23:29:51 +0200288 'data' => 'Corpus Data',
Akron0dc10902017-09-01 18:00:16 +0200289 'corpus' => 'Corpora',
290 'annotation' => 'Annotations',
291 '#default-foundries' => 'Default Foundries',
Marc Kupietzfcadda62021-09-08 09:06:25 +0200292 'development' => 'Development',
Marc Kupietzb82939b2021-09-07 22:45:38 +0200293 'faq' => 'FAQ'
Akroncddd1642015-06-10 21:31:53 +0200294 }
Akron4c33c622018-11-12 13:43:27 +0100295 },
296 Piwik => {
297 en => {
298 'HowToOptOut' => 'How to opt-out from Piwik/Matomo tracking?'
299 },
300 de => {
301 'HowToOptOut' => 'Wie kann ich die Weitergabe meiner Daten per Matomo/Piwik unterbinden?'
302 }
Akroncddd1642015-06-10 21:31:53 +0200303 }
304};