Seite 1 von 1

setlocale im Frontend

Verfasst: Di 20. Mär 2007, 11:10
von Dodger77
Moin,

ich hatte die Tage das Vergnügen, das Verhalten von Umlauten und PCRE zu beobachten. Dabei zeigte sich, dass die Umlaute nur dann als Wortzeichen ("\w") angesehen werden, wenn eine entsprechende Einstellung für setlocale() vorgenommen wurde, z.B.:

Code: Alles auswählen

setlocale(LC_ALL, 'de_DE');
Die Einstellung dazu würde sich doch sehr schön unter "Administration->Sprachen" machen. Das Ausführen von setlocale() könnte man Modul-/Erweiterungsautoren zur Not auch selbst überlassen, wenn das Probleme bereitet wie z. B.:

http://www.contenido.org/forum/viewtopi ... 7374#57374

oder man packt das in die "front_content.php" und beschränkt das auf bestimmte Einstellungen, z.B.:

Code: Alles auswählen

$language = new Language;
$language->loadByPrimaryKey($lang);
$locale = $language->getProperty("locale", "string");

setlocale(LC_COLLATE, $locale);
setlocale(LC_CTYPE, $locale);
setlocale(LC_TIME, $locale);
So hätte man das auch als Voraussetzung für Datums- und Zeitausgaben.

Meinungen, Anregungen, ...?


Gruß

Ingo

Verfasst: Di 20. Mär 2007, 15:02
von emergence
hmm...

ich ergänz das mal hier in bezugname auf gettext

Code: Alles auswählen

    Descriptions of the following environment variables that affect the execution of gettext:

     LC_CTYPE                Determines how gettxt handles  char-
                             acters.  When  LC_CTYPE  is set to a
                             valid value, gettxt can display  and
                             handle text and filenames containing
                             valid characters  for  that  locale.
                             gettxt   can   display   and  handle
                             Extended Unix Code (EUC)  characters
                             where  any  individual character can
                             be 1, 2, or 3 bytes wide. gettxt can
                             also  handle EUC characters of 1, 2,
                             or more column widths.  In  the  "C"
                             locale,  only  characters  from  ISO
                             8859-1 are valid.

     LC_MESSAGES             Determines how diagnostic and infor-
                             mative  messages are presented. This
                             includes the language and  style  of
                             the  messages,  and the correct form
                             of    affirmative    and    negative
                             responses.   In  the "C" locale, the
                             messages  are   presented   in   the
                             default  form  found  in the program
                             itself   (in   most   cases,    U.S.
                             English).
es in der front_content.php global zu setzen, gefällt mir nicht...
die meisten user werden nicht abschätzen können welche auswirkungen das haben kann...

im schlimmsten fall definiert man das ganze im modul
oder config.local.php im mandantenverzeichnis