blob: 70c8d76908e51502627b95d4e42541e75218859f [file] [log] [blame]
# Based on Mojolicious::Plugin::Number::Commify
my $THOUSAND_SEP_RE = qr/(
^[-+]? # beginning of number.
\d+? # first digits before first comma
(?= # followed by, (but not included in the match) :
(?>(?:\d{3})+) # some positive multiple of three digits.
(?!\d) # an *exact* multiple, not x * 3 + 1 or whatever.
)| # or:
\G\d{3} # after the last group, get three digits
(?=\d) # but they have to have more digits after them.
)/x;
{
_ => sub { $_->locale },
de => {
numf => sub {
shift;
my %val = @_;
my $num = $val{number} or return 0;
$num =~ s/$THOUSAND_SEP_RE/$1\./g;
return $num;
},
numo => sub {
shift;
my %val = @_;
my $day = $val{day} or return '';
return $day . '.';
},
about => 'Über KorAP',
login => 'Anmelden',
logout => 'Abmelden',
register => 'Registrieren',
pwdforgotten => 'Password vergessen?',
# TODO: use document.write() refering to vc.getName()!
searchjob => '»<%== $q %>« <% if (param("collection")) { %>im definierten Korpus <% } %>mit <%== loc("QL_" . $ql, "unbekannter Anfragesprache") %>',
searchtitle => '<%= loc("en_korap_label") %>: Finde <%== loc("searchjob") %>',
searchplaceholder => 'Finde ...',
go => 'Los!',
news => 'Neuigkeiten',
in => 'in',
by => 'von',
pwd => 'Passwort',
email => 'Email',
username => 'Benutzername',
upload => 'Hochladen',
userormail => 'Benutzername oder Email',
with => 'mit',
glimpse => {
desc => 'Zeige nur die ersten Treffer in beliebiger Reihenfolge'
},
activateJS => 'Für den vollen Funktionsumfang aktivieren Sie bitte JavaScript!',
faq => 'FAQ',
tutorial => 'Hilfe und Dokumentation',
notAvailInCorpus => 'Im vorliegenden Korpus nicht verfügbar',
pubOn => 'veröffentlicht am',
matchCount => 'Treffer',
noMatches => 'Es wurden keine Treffer für <%== loc("searchjob") %> gefunden.',
notFound => '404 - Seite nicht gefunden',
notIssued => 'Die Aktion konnte nicht durchgeführt werden.',
backendNotAvailable => 'Das Backend ist nicht verfügbar unter <code><%= app->korap->api =></code>!',
jsFile => 'kalamar-<%= $Kalamar::VERSION %>-de.js',
underConstruction => 'In Vorbereitung!',
korap => {
-short => 'KorAP',
desc => '<%= loc "en_korap_label" %> - Korpusanalyseplattform der nächsten Generation',
overview => '<%= loc "en_korap_label" %> - Übersicht',
keywords => 'KorAP, DeReKo, Korpussuche, IDS Mannheim, Leibniz-Institut für Deutsche Sprache',
},
privacy => 'Datenschutz',
imprint => 'Impressum',
settings => 'Einstellungen',
'oclock' => 'Uhr',
maintenanceWork => {
time => 'Wartungsfenster',
desc => 'Aufgrund von Wartungsarbeiten wird es zu Unterbrechungen des Dienstes kommen.',
},
Template => {
intro => 'de/intro',
doc => {
ql => {
'.' => 'de/doc/ql',
'poliqarp-plus' => 'de/doc/ql/poliqarp-plus',
'cosmas-2' => 'de/doc/ql/cosmas-2'
},
api => {
'koralquery' => 'de/doc/api/koralquery'
},
data => {
'annotation' => 'de/doc/data/annotation'
},
development => {
'kalamar' => 'de/doc/development/kalamar',
'karang' => 'de/doc/development/karang',
'koral' => 'de/doc/development/koral',
'krill' => 'de/doc/development/krill',
'kustvakt' => 'de/doc/development/kustvakt'
}
}
},
Nav => {
'ql' => 'Anfragesprachen',
'#queryterms' => 'Suchbegriffe',
'#logical-operators' => 'Logische Operatoren',
'#distance-operators' => 'Abstandsoperatoren',
'#annotation-operators' => 'Annotationsoperatoren',
'#combination-operators'=> 'Kombinationsoperatoren',
'#area-operators' => 'Textbereich-Operatoren',
'#segments' => 'Einfache Segmente',
'#complex' => 'Komplexe Segmente',
'#spans' => 'Span-Segmente',
'#paradigmatic-operators' => 'Paradigmatische Operatoren',
'#syntagmatic-operators' => 'Syntagmatische Operatoren',
'#class-operators' => 'Klassen-Operatoren',
'regexp' => 'Reguläre Ausdrücke',
'data' => 'Korpusdaten',
'corpus' => 'Korpora',
'annotation' => 'Annotationen',
'#default-foundries' => 'Standard Foundries',
'development' => 'Entwicklung',
'faq' => 'FAQ',
},
QL => {
cqp => 'CQP (neu)'
}
},
-en => {
jsFile => 'kalamar-<%= $Kalamar::VERSION %>-en.js',
numf => sub {
shift;
my %val = @_;
my $num = $val{number} or return 0;
$num =~ s/$THOUSAND_SEP_RE/$1\,/g;
return $num;
},
numo => sub {
shift;
my %val = @_;
my $day = $val{day} or return '';
if ($day > 3) {
return $day . 'th';
} elsif ($day == 3) {
return '3rd';
} elsif ($day == 2) {
return '2nd';
};
return '1st';
},
about => 'About KorAP',
login => 'Login',
logout => 'Logout',
register => 'Register',
pwdforgotten => 'Password forgotten?',
go => 'Go!',
news => 'News',
# TODO: use document.write() refering to vc.getName()!
searchjob => '»<%== $q %>« <% if (param("collection")) { %>in the defined corpus <% } %>with <%== loc("QL_". $ql, "unknown query language") %>',
searchtitle => '<%= loc("korap_label") %>: Find <%== loc("searchjob") %>',
searchplaceholder => 'Find ...',
in => 'in',
by => 'by',
pwd => 'Password',
email => 'Email',
username => 'Username',
upload => 'Upload',
userormail => 'Username or Email',
with => 'with',
notAvailInCorpus => 'Not available in the current corpus',
pubOn => 'published on',
matchCount => '<%= quant($found, "match", "matches") %>',
noMatches => 'There were no matches found for <%== loc("searchjob") %>.',
notFound => '404 - Page not found',
notIssued => 'Unable to perform the action.',
backendNotAvailable => 'The backend is not available at <code><%= app->korap->api %></code>!',
glimpse => {
-short => 'Glimpse',
desc => 'Just show the first matches in arbitrary order'
},
activateJS => 'To make use of all features, please activate JavaScript!',
faq => 'FAQ',
'oclock' => 'o\'clock',
underConstruction => 'Under Construction!',
tutorial => 'Help and Documentation',
korap => {
-short => 'KorAP',
label => '<%= loc "korap_short" %><% if (loc("title_addon")) { %>-<%= loc("title_addon") %><% } %>',
desc => '<%= loc "korap_label" %> - Corpus Analysis Platform',
overview => '<%= loc "korap_label" %> - Overview',
region => 'DE-BW',
placename => 'Mannheim',
keywords => 'KorAP, DeReKo, Corpus Query Platform, IDS Mannheim, Leibniz Institute for the German Language'
},
QL => {
poliqarp => 'Poliqarp',
cosmas2 => 'Cosmas II',
annis => 'Annis QL',
cqp => 'CQP (new)',
cql => 'CQL v1.2',
fcsql => 'FCSQL'
},
privacy => 'Privacy',
imprint => 'Imprint',
settings => 'Settings',
maintenanceWork => {
time => 'Maintenance',
desc => 'Due to maintenance work the service will be interrupted.',
},
Template => {
intro => 'intro',
doc => {
ql => {
'.' => 'doc/ql',
'poliqarp-plus' => 'doc/ql/poliqarp-plus',
'cosmas-2' => 'doc/ql/cosmas-2'
},
api => {
'koralquery' => 'doc/api/koralquery'
},
data => {
'annotation' => 'doc/data/annotation'
},
development => {
'kalamar' => 'doc/development/kalamar',
'karang' => 'doc/development/karang',
'koral' => 'doc/development/koral',
'krill' => 'doc/development/krill',
'kustvakt' => 'doc/development/kustvakt'
}
}
},
Nav => {
'ql' => 'Query Languages',
'#queryterms' => 'Query Terms',
'#logical-operators' => 'Logical Operators',
'#distance-operators' => 'Distance Operators',
'#annotation-operators' => 'Annotation Operators',
'#combination-operators'=> 'Combination Operators',
'#area-operators' => 'Area Operators',
'#segments' => 'Simple Segments',
'#complex' => 'Complex Segments',
'#spans' => 'Span Segments',
'#paradigmatic-operators' => 'Paradigmatic Operators',
'#syntagmatic-operators' => 'Syntagmatic Operators',
'#class-operators' => 'Class Operators',
'regexp' => 'Regular Expressions',
'data' => 'Corpus Data',
'corpus' => 'Corpora',
'annotation' => 'Annotations',
'#default-foundries' => 'Default Foundries',
'development' => 'Development',
'faq' => 'FAQ'
}
},
Piwik => {
en => {
'HowToOptOut' => 'How to opt-out from Piwik/Matomo tracking?'
},
de => {
'HowToOptOut' => 'Wie kann ich die Weitergabe meiner Daten per Matomo/Piwik unterbinden?'
}
}
};