Difference between revisions 137924 and 138372 on testwiki

/// PerfektesChaos/js/WikisyntaxTextMod/?L.js
/// 2012-06-228 [email protected]
/// Fingerprint: #0#0#
/// <nowiki>
// Localization for WikiSyntaxTextMod



if (typeof(mediaWiki) !== "object") {   // disconnected
(contracted; show full)
//-----------------------------------------------------------------------



mw.libs.WikiSyntaxTextMod.bb.dewiki  =  function (WSTM) {
   // Localization functions for dewiki project
   // 2012-0
46-248 [email protected]
   if (typeof(WSTM.l10n.proj.dewiki) !== "object") {
      WSTM.l10n.proj.dewiki  =  {  re:       { s:      {} },
                                   template: { anchor: "Anker" }
                                };
   }



WSTM.l10n.proj.dewiki.comment  =  function (arglist) {
   // Handler for encountered <!-- comment -->
   // Precondition:
   //    arglist  -- String: comment content, including whitespace around
   // Postcondition:
   //    Returns false, if not adjusted
   //            String with adjusted content including whitespace around
   //            true   remove entire content
   // Uses:
   //     < .w.encountered.schweizbezogen
   // 2012-05-30 [email protected]
   var r  =  false;
   if (/[ \n]*schweiz-?bezogen[ \n]*/i.test(arglist)) {
      WSTM.w.encountered.schweizbezogen  =  true;
      if (arglist !== "schweizbezogen") {
         r  =  "schweizbezogen";
      }
   }
   return  r;
};   // .l10n.proj.dewiki.comment()



WSTM.l10n.proj.dewiki.valEqualsign  =  function (arglist) {
   // Handler for template with '=' heading value
   // Precondition:
   //    arglist  -- String: template name
   // Postcondition:
   //    Returns false, if not known
   //            true   permit '=' heading value
   // 2012-06-16 [email protected]
   var r  =  false;
   switch (arglist) {
      case "Schachbrett" :
      case "schachbrett" :
         r  =  true;
         break;
   }   // switch arglist
   return  r;
};   // .l10n.proj.dewiki.valEqualsign()



WSTM.l10n.proj.dewiki.template.fresh  =  function (arglist) {
   // Prüfe und berichtige ggf. Vorlagen in deutschsprachiger Wikipedia
   // Precondition:
   //    arglist  -- [0] template name
   //                [1] node number of template start
   //                [2] node number of template end
   //                [3] WikiTom sequence
   // Postcondition:
   //    Returns false, if not adjusted
   //            or Array   [0] newname
   //                       [1] true: place template on single line(s)
   //                       [2] function callback, or false
   //                           requires forked element as parameter
   //    WikiTom sequence was changed if necessary
   //    RegExp was used.
   // Uses:
   //    >  WikisyntaxDeutschVieles
   //    (.l10n.proj.dewiki.template.normdaten.fire)
   //    (.l10n.proj.dewiki.template.personendaten.fire)
   // 2012-05-30 [email protected]
   var r  =  false;
   switch (arglist[0]) {
      case "Anker" :
      case "anker" :
         r  =  ["Anker",
                false,
                null];// // // // // // // // //
        break;
      case "Normdaten" :
      case "normdaten" :
         r  =  ["Normdaten",
                true,
                this.normdaten.fire];
        break;
      case "Personendaten" :
      case "personendaten" :
         r  =  ["Personendaten",
                true,
                this.personendaten.fire];
        break;
      case "Belege" :
      case "belege" :
      case "belege fehlen" :
      case "Quelle" :
      case "quelle" :
      case "Quellen" :
      case "quellen" :
      case "Quellen fehlen" :
      case "quellen fehlen" :
         r  =  ["Belege fehlen", true, false];
         break;
      default:
         /*
         if (WikisyntaxDeutschVieles) {
            var scope  =  arglist[0].toLowerCase();
            if (scope ===  "commons cat") {
               r  =  "Commonscat";
            }
         }   // WikisyntaxDeutschVieles
         */
   }   // switch arglist
   return  r;
};   // .l10n.proj.dewiki.template.fresh()



WSTM.l10n.proj.dewiki.template.normdaten  =  { };



WSTM.l10n.proj.dewiki.template.normdaten.fire  =  function (adjust) {
   // Vorlage:Normdaten -- Formatierung
   // Precondition:
   //    adjust  -- WikiTom sequence (forked element)
   //               .symbol
   //               .values
   // Postcondition:
   //    adjust was changed if necessary
   // Uses:
   //    .l10n.proj.dewiki.template.normdaten.format()
   // Remark: May be used as event handler -- 'this' is not accessed
   // 2012-05-30 [email protected]
if (WSTM.config) {
if (! WSTM.config.xEvaluation) {
   WSTM.l10n.proj.dewiki.template.normdaten.format(adjust);
}
}
};   // .l10n.proj.dewiki.template.normdaten.fire()



WSTM.l10n.proj.dewiki.template.normdaten.format  =  function (adjust) {
   // Vorlage:Normdaten -- Formatierung
   // Precondition:
   //    adjust  -- WikiTom sequence (forked element)
   //               .values
   // Postcondition:
   //    adjust was changed if necessary
   // Uses:
   //     < .w.encountered.normdaten
   //    .w.template.mod.trim()
   //    .w.template.mod.flush()
   //    .w.template.mod.fix()
   //    .w.template.par.find()
   //    .w.template.par.fiat()
   //    .w.template.mod.fixed()
   //    .w.template.mod.furnish()
   //    .w.template.mod.format()
   // 2012-05-31 [email protected]
   var d  =  [ [/^SELIBR$/i,            true],
               [/^(PND|GKD|SWD|EST)$/i, false] ];
   var t  =  [ [/^Normdaten/i,  "Normdaten"],
               [/^TYP$/i,       "TYP",       true],      //  1
               [/^GND$/i,       "GND",       true],      //  2
               [/^LCCN$/i,      "LCCN",      false],     //  3
               [/^NDL$/i,       "NDL",       false],     //  4
               [/^VIAF$/i,      "VIAF",      false],     //  5
               [/^GNDName$/i,   "GNDName",   false],     //  6
               [/^GNDfehlt$/i,  "GNDfehlt",  false],     //  7
               [/^GNDCheck$/i,  "GNDCheck",  false],     //  8
               [/^GKD$/i,       "GKD",       false],     //  9
               [/^PND$/i,       "PND",       false],     // 10
               [/^SWD$/i,       "SWD",       false],     // 11
               [/^EST$/i,       "EST",       false] ];   // 12
   var p;
   var v;
//mw.log(WSTM.debugging,".l10n.proj.dewiki.normdaten.format()>>",0,adjust);
   WSTM.w.template.mod.trim(adjust);
   WSTM.w.template.mod.flush(adjust, d);
   WSTM.w.template.par.fix(t, adjust);
   p  =  WSTM.w.template.par.find(adjust, "PND");
   if (p) {
      v  =  WSTM.w.template.par.find(adjust, "GND");
      if (v) {
         if (v.value.toString()) {
            v  =  false;
         } else {
            v.value  =  p.value;
         }
      } else {
         v  =  WSTM.w.template.par.fiat(adjust, "GND", p.value);
      }
      if (v) {
         WSTM.w.template.par.fiat(adjust, "TYP", "p");
         WSTM.w.template.mod.flush(adjust,  [ [/^PND$/, true] ]);
      }
   }
   WSTM.w.template.par.fixed(t, adjust);
   WSTM.w.template.mod.furnish( adjust,
                                { indent:    0,
                                  later:     false,
                                  leap:      false,
                                  leave:     false,
                                  linebreak: false,
                                  lineup:    false
                                } );
   if (adjust.learnt) {
      WSTM.w.template.mod.format(adjust);
   }
   WSTM.w.encountered.normdaten  =  true;
got:      {},
                                   re:       { s:      {} },
                                   template: { anchor: "Anker" }
                                };
   }



   WSTM.l10n.proj.dewiki.comment  =  function (adjust) {
      // Handler for encountered <!-- comment -->
      // Precondition:
      //    adjust  -- comment content, including whitespace around
      // Postcondition:
      //    Returns false, if not adjusted
      //            String with adjusted content including whitespace
      //            true   remove entire content
      // Uses:
      //     < .l10n.proj.dewiki.got.ch
      //     < .l10n.proj.dewiki.got.at
      // Remark: May be used as event handler -- 'this' is not accessed
      // 2012-06-28 [email protected]
      var r  =  false;
      if (adjust.indexOf("bezogen") > 0) {
         if (/[ \n]*schweiz-?bezogen[ \n]*/i.test(adjust)) {
            WSTM.l10n.proj.dewiki.got.ch  =  true;
            if (adjust !== "schweizbezogen") {
               r  =  "schweizbezogen";
            }
         } else if (/[ \n]*österreichbezogen[ \n]*/i.test(adjust)) {
            WSTM.l10n.proj.dewiki.got.at  =  true;
            if (adjust !== "österreichbezogen") {
               r  =  "österreichbezogen";
            }
         }
      }
      return  r;
   };   // .l10n.proj.dewiki.comment()



   WSTM.l10n.proj.dewiki.isPerson  =  function () {
      // Check whether this page is categorized as person
      // Uses:
      //    >  .w.encountered.cats
      //    >< .l10n.proj.dewiki.rePerson
      // 2012-06-27 [email protected]
      var e, i, n;
      var r  =  false;
      if (WSTM.w.encountered) {
         e  =  WSTM.w.encountered.cats;
         if (e) {
            if (! this.rePerson) {
               this.rePerson  =  new RegExp("^(Frau$"
                                            + "|Mann$"
                                            + "|Intersexueller$"
                                            + "|Geschlecht unbekannt$"
                                            + "|Geboren "
                                            + "|Gestorben "
                                            + ")",
                                            "");
            }
            n  =  e.length;
            for (i = 0;  i < n;  i++) {
mw.log(WSTM.debugging,".l10n.proj.dewiki.isPerson() "+s,0);
               if (this.rePerson.test(e[i])) {
                  r  =  true;
                  break;
               }
            }   // for n
         }
      }
      return  r;
   };   // .l10n.proj.dewiki.isPerson()



   WSTM.l10n.proj.dewiki.valEqualsign  =  function (arglist) {
      // Handler for template with '=' heading value
      // Precondition:
      //    arglist  -- String: template name
      // Postcondition:
      //    Returns false, if not known
      //            true   permit '=' heading value
      // 2012-06-16 [email protected]
      var r  =  false;
      switch (arglist) {
         case "Schachbrett" :
         case "schachbrett" :
            r  =  true;
            break;
      }   // switch arglist
      return  r;
   };   // .l10n.proj.dewiki.valEqualsign()



   WSTM.l10n.proj.dewiki.template.fresh  =  function (arglist) {
      // Prüfe und berichtige Vorlagen in deutschsprachiger Wikipedia
      // Precondition:
      //    arglist  -- [0] template name
      //                [1] node number of template start
      //                [2] node number of template end
      //                [3] WikiTom sequence
      // Postcondition:
      //    Returns false, if not adjusted
      //            or Array   [0] newname
      //                       [1] true: place template on single line(s)
      //                       [2] function callback, or false
      //                           requires forked element as parameter
      //    WikiTom sequence was changed if necessary
      //    RegExp was used.
      // Uses:
      //    >  WikisyntaxDeutschVieles
      //    (.l10n.proj.dewiki.template.normdaten.fire)
      //    (.l10n.proj.dewiki.template.personendaten.fire)
      // 2012-05-30 [email protected]
      var r  =  false;
      switch (arglist[0]) {
         case "Anker" :
         case "anker" :
            r  =  ["Anker",
                   false,
                   null];// // // // // // // // //
            break;
         case "Normdaten" :
         case "normdaten" :
            r  =  ["Normdaten",
                   true,
                   this.normdaten.fire];
            break;
         case "Personendaten" :
         case "personendaten" :
            r  =  ["Personendaten",
                   true,
                   this.personendaten.fire];
            break;
         case "Belege" :
         case "belege" :
         case "belege fehlen" :
         case "Quelle" :
         case "quelle" :
         case "Quellen" :
         case "quellen" :
         case "Quellen fehlen" :
         case "quellen fehlen" :
            r  =  ["Belege fehlen", true, false];
            break;
         default:
            /*
            if (WikisyntaxDeutschVieles) {
               var scope  =  arglist[0].toLowerCase();
               if (scope ===  "commons cat") {
                  r  =  "Commonscat";
               }
            }   // WikisyntaxDeutschVieles
            */
      }   // switch arglist
      return  r;
   };   // .l10n.proj.dewiki.template.fresh()



   WSTM.l10n.proj.dewiki.template.normdaten  =  { };



   WSTM.l10n.proj.dewiki.template.normdaten.fetch  =  function () {
      // Apply TYP=p if person
      // Uses:
      //    >  .w.encountered.normdaten
      //    .l10n.proj.dewiki.isPerson()
      //    .w.template.par.fiat()
      // 2012-06-27 [email protected]
      if (WSTM.l10n.proj.dewiki.isPerson()) {
         WSTM.w.template.par.fiat(WSTM.w.encountered.normdaten,
                                  "TYP",
                                  "p");
      }
   };   // .l10n.proj.dewiki.template.normdaten.fetch()



   WSTM.l10n.proj.dewiki.template.normdaten.fire  =  function (adjust) {
      // Vorlage:Normdaten -- Formatierung
      // Precondition:
      //    adjust  -- WikiTom sequence (forked element)
      //               .symbol
      //               .values
      // Postcondition:
      //    adjust was changed if necessary
      // Uses:
      //    >< .w.encountered.normdaten
      //    .l10n.proj.dewiki.template.normdaten.format()
      // Remark: May be used as event handler -- 'this' is not accessed
      // 2012-06-22 [email protected]
if (WSTM.config) {
if (! WSTM.config.xEvaluation) {
      if (adjust  &&  ! WSTM.w.encountered.normdaten) {
         WSTM.w.encountered.normdaten  =  adjust;
      }
      WSTM.l10n.proj.dewiki.template.normdaten.format();
}
}
   };   // .l10n.proj.dewiki.template.normdaten.fire()



   WSTM.l10n.proj.dewiki.template.normdaten.format  =  function () {
      // Vorlage:Normdaten -- Formatierung
      // Postcondition:
      //    adjust was changed if necessary
      // Uses:
      //    >  .w.encountered.normdaten
      //    .w.template.mod.trim()
      //    .w.template.mod.flush()
      //    .w.template.mod.fix()
      //    .w.template.par.find()
      //    .w.template.par.fiat()
      //    .w.template.mod.fixed()
      //    .hooks.finalize()
      //    .w.template.mod.furnish()
      //    .w.template.mod.format()
      //    (.l10n.proj.dewiki.template.normdaten.fetch)
      // 2012-06-27 [email protected]
      var d  =  [ [/^SELIBR$/i,        true],     // --EST
                  [/^(PND|GKD|SWD)$/i, false] ];
      var t  =  [ [/^Normdaten/i,  "Normdaten"],
                  [/^TYP$/i,       "TYP",       true],      //  1
                  [/^GND$/i,       "GND",       true],      //  2
                  [/^LCCN$/i,      "LCCN",      false],     //  3
                  [/^NDL$/i,       "NDL",       false],     //  4
                  [/^VIAF$/i,      "VIAF",      false],     //  5
                  [/^GNDName$/i,   "GNDName",   false],     //  6
                  [/^GNDfehlt$/i,  "GNDfehlt",  false],     //  7
                  [/^GNDCheck$/i,  "GNDCheck",  false],     //  8
                  [/^REMARK$/i,    "REMARK",    false],     //  9
                  [/^GKD$/i,       "GKD",       false],     // 10
                  [/^SWD$/i,       "SWD",       false] ];   // 11
      var o  =  WSTM.w.encountered.normdaten;
      var p;
      var v;
//mw.log(WSTM.debugging,".l10n.proj.dewiki.normdaten.format()>>",0,o);
      WSTM.w.template.mod.trim(o);
      WSTM.w.template.mod.flush(o, d);
      WSTM.w.template.par.fix(t, o);
      p  =  WSTM.w.template.par.find(o, "PND");
      if (p) {
         v  =  WSTM.w.template.par.find(o, "GND");
         if (v) {
            if (v.value.toString()) {
               v  =  false;
            } else {
               v.value  =  p.value;
            }
         } else {
            v  =  WSTM.w.template.par.fiat(o, "GND", p.value);
         }
         if (v) {
            WSTM.w.template.par.fiat(o, "TYP", "p");
            WSTM.w.template.mod.flush(o,  [ [/^PND$/, true] ]);
         }
      }
      WSTM.w.template.par.fixed(t, o);
      v  =  WSTM.w.template.par.find(o, "TYP");
      if (typeof(v) === "string") {
         if (v) {
            p  =  v.toLowerCase();
            if (v !== p) {
               WSTM.w.template.par.fiat(o, "TYP", p);
            }
         } else {
            WSTM.hooks.finalize(this.fetch);
         }
      }
      WSTM.w.template.mod.furnish( o,
                                   { indent:    0,
                                     later:     false,
                                     leap:      false,
                                     leave:     false,
                                     linebreak: false,
                                     lineup:    false
                                   } );
      if (o.learnt) {
         WSTM.w.template.mod.format(o);
      }
   };   // .l10n.proj.dewiki.template.normdaten.format()



WSTM.l10n.proj.dewiki.template.personendaten  =  { };



(contracted; show full)// Emacs
// Local Variables:
// coding: utf-8-unix
// encoding: utf-8-unix
// fill-column: 80
// End:

/// EOF </nowiki>   WikiSyntaxTextMod/?L.js