# 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',
    page => {
      -sg => 'S.',
      pl => 'S.'
    },
    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',
    page => {
      -sg => 'p.',
      pl  => 'pp.',
    },
    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?'
    }
  }
};
