# 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 => 'Einführung',
    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',
          'regexp' => 'de/doc/ql/regexp',
          'fcsql' => 'de/doc/ql/fcsql',
          'cql' => 'de/doc/ql/cql',
          'annis' => 'de/doc/ql/annis'
        },
        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 => 'Introduction',
    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',
          'regexp' => 'doc/ql/regexp',
          'fcsql' => 'doc/ql/fcsql',
          'cql' => 'doc/ql/cql',
          'annis' => 'doc/ql/annis'
        },
        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?'
    }
  }
};
