derekovecs: add obvious parts of German localization
diff --git a/w2v-server.dict b/w2v-server.dict
new file mode 100644
index 0000000..c4b43f8
--- /dev/null
+++ b/w2v-server.dict
@@ -0,0 +1,58 @@
+# Dictionary template generated Wed, 04 Dec 2019 13:37:00 GMT
+# 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;
+    },
+    Cancel => 'Abbrechen',
+    Apply => 'Anwenden',
+    Options => 'Optionen',
+    SEARCH => 'SUCHE',
+    words_to_be_searched => 'Zu suchende Wortform(en)',
+    search_description => 'Wenn sie mehrere Wortformen kontrastieren wollen, trennen Sie diese mit Leerzeichen, um um den Mittelpunkt der Alternativen herum nach ähnlichen Wörtern zu suchen und mit "|", um die Nachbarn zu allen angegebenen Wortformen zur erhalten.',
+    paradigmatic_tsne => 'Paradigmatisch (t-SNE)',
+    paradigmatic_som => 'Paradigmatisch (SOM)',
+    syntagmatic =>  'Syntagmatisch',
+    collocate_w2v => "Kollokat (W2V)",
+    collocate_ca => "Kollokat (KA)",
+    af_window => "AF-Fenster"
+  },
+  -en => {
+    numf => sub {
+      shift;
+      my %val = @_;
+      my $num = $val{number} or return 0;
+      $num =~ s/$THOUSAND_SEP_RE/$1\,/g;
+      return $num;
+    },
+    Cancel => 'Cancel',
+    Apply => 'Apply',
+    Options => 'Options',
+    SEARCH => 'SEARCH',
+    words_to_be_searched => 'Word(s) to be searched',
+    search_description => 'When looking for multiple words use spaces as separators to search around the average vector and | as separator to get the neighbours for each word.',
+    paradigmatic_tsne => 'Paradigmatic (t-SNE)',
+    paradigmatic_som => 'Paradigmatic (SOM)',
+    syntagmatic =>  'Syntagmatic',
+    collocate_w2v => "Collocate (W2V)",
+    collocate_ca => "Collocate (CA)",
+    af_window => "AF window"
+  }
+};