Branch: Tag:

2003-07-11

2003-07-11 13:10:30 by Anders Johansson <anders@roxen.com>

Made strftime() aware of laguages.
This is utilized by <date strftime="..." lang="..."/>.

Rev: server/etc/modules/Roxen.pmod:1.160

1:   // This is a roxen pike module. Copyright © 1999 - 2001, Roxen IS.   // - // $Id: Roxen.pmod,v 1.159 2003/07/07 18:15:45 mast Exp $ + // $Id: Roxen.pmod,v 1.160 2003/07/11 13:10:30 anders Exp $      #include <roxen.h>   #include <config.h>
1646:    return "\"" + replace((string)str, ({"&", "\"", "<"}), ({"&amp;", "&quot;", "&lt;"})) + "\"";   }    - string strftime(string fmt, int t) + string strftime(string fmt, int t, +  void|string lang, void|function language, void|RequestID id)   //! Encodes the time `t' according to the format string `fmt'.   {    if(!sizeof(fmt)) return "";
1654:    fmt=replace(fmt, "%%", "\0");    array(string) a = fmt/"%";    string res = a[0]; +  mapping(string:string) m = (["type":"string"]);       foreach(a[1..], string key) {    if(key=="") continue;    switch(key[0]) {    case 'a': // Abbreviated weekday name -  +  if (language) +  res += number2string(lt->wday+1,m,language(lang,"day",id))[..2]; +  else    res += ({ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" })[lt->wday];    break;    case 'A': // Weekday name -  +  if (language) +  res += number2string(lt->wday+1,m,language(lang,"day",id)); +  else    res += ({ "Sunday", "Monday", "Tuesday", "Wednesday",    "Thursday", "Friday", "Saturday" })[lt->wday];    break;    case 'b': // Abbreviated month name    case 'h': // Abbreviated month name -  +  if (language) +  res += number2string(lt->mon+1,m,language(lang,"month",id))[..2]; +  else    res += ({ "Jan", "Feb", "Mar", "Apr", "May", "Jun",    "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" })[lt->mon];    break;    case 'B': // Month name -  +  if (language) +  res += number2string(lt->mon+1,m,language(lang,"month",id)); +  else    res += ({ "January", "February", "March", "April", "May", "June",    "July", "August", "September", "October", "November", "December" })[lt->mon];    break;
1984:    if(m->lang) lang=m->lang;       if(m->strftime) -  return strftime(m->strftime, t); +  return strftime(m->strftime, t, lang, language, id);       if (m->part)    {