word: two-letter language codes
authorMischa POSLAWSKY <perl@shiar.org>
Sun, 31 May 2020 03:37:02 +0000 (05:37 +0200)
committerMischa POSLAWSKY <perl@shiar.org>
Sat, 6 Jun 2020 01:49:20 +0000 (03:49 +0200)
Match Wikipedia subdomains and common browser headers.

tools/word.pg.sql
word.plp
writer.js
writer.plp

index 31a117e83001ba926fd8ec06b09a95c1e6b085b1..55de8ecd2415c24c3444e9c967ffe9aa7f97b1be 100644 (file)
@@ -1,7 +1,7 @@
 CREATE TABLE word (
        form       text        NOT NULL,
        alt        text[],
-       lang       text        NOT NULL DEFAULT 'eng',
+       lang       text        NOT NULL DEFAULT 'en',
        cat        integer              REFERENCES word (id),
        ref        integer              REFERENCES word (id),
        prio       smallint    NOT NULL DEFAULT '1',
@@ -16,9 +16,9 @@ CREATE TABLE word (
 
 COMMENT ON COLUMN word.form       IS 'preferred textual representation';
 COMMENT ON COLUMN word.alt        IS 'alternate forms with equivalent meaning';
-COMMENT ON COLUMN word.lang       IS 'ISO 639-3 language code';
+COMMENT ON COLUMN word.lang       IS 'ISO 639 language code matching wikipedia subdomain';
 COMMENT ON COLUMN word.cat        IS 'hierarchical classification';
-COMMENT ON COLUMN word.ref        IS 'reference to equivalent eng translation';
+COMMENT ON COLUMN word.ref        IS 'reference to equivalent en translation';
 COMMENT ON COLUMN word.prio       IS 'difficulty level or importance; lower values have precedence';
 COMMENT ON COLUMN word.grade      IS 'ascending hierarchical order, preceding default alphabetical';
 COMMENT ON COLUMN word.cover      IS 'highlight if selected';
index 5739731d6e8eed613b39c38439e1b8cb8e2f2142..508fd06731147627776c01a344c01f69f296ea45 100644 (file)
--- a/word.plp
+++ b/word.plp
@@ -1,6 +1,6 @@
 <(common.inc.plp)><:
 
-my $wordlist = 'wordlist.eng.inc.pl';
+my $wordlist = 'wordlist.en.inc.pl';
 my $limit = $get{v} // (exists $get{v} ? 4 : 3);
 
 Html({
@@ -90,7 +90,7 @@ sub showimg {
        $name = "<q>$name</q>" if $name =~ s/\?$//;
        $name = "<figcaption>$name</figcaption>";
 
-       if ($imgname and -e ($img = "data/word/eng/$imgname.jpg")) {
+       if ($imgname and -e ($img = "data/word/en/$imgname.jpg")) {
                $name .= sprintf '<img src="/%s" alt="%s" />', $img, $imgname;
        }
        return sprintf '<figure%s>%s</figure>', $hidden && !exists $get{v} && ' hidden', $name;
index e9c81ef37447275740312fccc9264c26c206dd8d..80ba7b8969c27b59fed3f21eb68686e9a905ffec 100644 (file)
--- a/writer.js
+++ b/writer.js
@@ -6,7 +6,7 @@ document.addEventListener('DOMContentLoaded', () => {
                wpbutton.append('Download');
                wpbutton.onclick = () => {
                        let wptitle = wpinput.value || document.getElementById('form').value;
-                       let wplang = document.getElementById('lang').value.substr(0, 2); // crude iso-639-3→2
+                       let wplang = document.getElementById('lang').value;
                        let wpapi = `https://${wplang}.wikipedia.org/w/api.php`;
                        let wppage = wpapi+'?action=parse&format=json&origin=*&prop=text&page='+wptitle;
                        fetch(wppage).then(res => res.json()).then(json => {
@@ -37,7 +37,7 @@ document.addEventListener('DOMContentLoaded', () => {
                wpbutton.append('Visit');
                wpbutton.onclick = () => {
                        let wptitle = wpinput.value || document.getElementById('form').value;
-                       let wplang = document.getElementById('lang').value.substr(0, 2); // crude iso-639-3→2
+                       let wplang = document.getElementById('lang').value;
                        let wpurl = `https://${wplang}.wikipedia.org/wiki/${wptitle}`;
                        window.open(wpurl, 'sheet-wikipedia').focus();
                        return false;
index f954ba05563e9627c128f2bf9d3a7d881eade753..4da27053c26ce2096f45be277d56a158539d0906 100644 (file)
@@ -106,9 +106,10 @@ my $db = eval {
 } or Abort('Database error', 501, $@);
 
 my %lang = (
-       nld => ["\N{REGIONAL INDICATOR SYMBOL LETTER N}\N{REGIONAL INDICATOR SYMBOL LETTER L}", 'dutch'],
-       eng => ["\N{REGIONAL INDICATOR SYMBOL LETTER G}\N{REGIONAL INDICATOR SYMBOL LETTER B}", 'english'],
-       epo => ['<span style="color:green">★</span>', 'esperanto'],
+       nl => ["\N{REGIONAL INDICATOR SYMBOL LETTER N}\N{REGIONAL INDICATOR SYMBOL LETTER L}", 'nederlands'],
+       en => ["\N{REGIONAL INDICATOR SYMBOL LETTER G}\N{REGIONAL INDICATOR SYMBOL LETTER B}", 'english'],
+       eo => ['<span style="color:green">★</span>', 'esperanto'],
+       ru => ["\N{REGIONAL INDICATOR SYMBOL LETTER R}\N{REGIONAL INDICATOR SYMBOL LETTER U}", 'русский'],
 );
 my @wordcols = pairkeys
 my %wordcol = (
@@ -277,7 +278,7 @@ package Shiar_Sheet::FormRow {
        sub imagepath {
                my ($row, $col) = @_;
                return "data/word/org/$row->{id}.jpg"   if $col eq 'source';
-               return "data/word/eng/$row->{form}.jpg" if $col eq 'thumb';
+               return "data/word/en/$row->{form}.jpg"  if $col eq 'thumb';
                return;
        }
 }