Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#26 12. Januar 2013 19:32

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.058

Re:

Dies passiert, da andere Skripte in verschiedenen Threads des selben Prozesses zur selben Zeit prozessweit die Locale-Einstellungen mittels setlocale() ändern.

Ah, okay. Das sagt eigentlich schon alles roll

Wie sieht es mit dieser Möglichkeit aus?

Offline

#27 12. Januar 2013 19:59

czarnowski
arbeitet mit CMSMS
Registriert: 18. Oktober 2012
Beiträge: 457

Re:

Dazu müsste man das http://php.net/manual/en/book.intl.php  zur Verfügung haben (hat kaum jemand) und die Problematik wäre exakt die gleiche.

Offline

#28 13. Januar 2013 13:05

Janl
Server-Pate
Ort: Freistadt, Österreich
Registriert: 13. Dezember 2010
Beiträge: 1.039
Webseite

Re:

UDT - "time_locale_de"
mit inhalt:

setlocale (LC_TIME, 'de_DE.UTF8');

Als erste Zeile (nur so funktioniert es immer) im Template

{time_locale_d}
{process_pagedata}<!DOCTYPE html PUBLIC "- . . . . . .

So funktioniert es bei mir in alle Sprachen und bei alle Hoster, war schon einmal beschrieben im Forum auf .org.

mfg
Jan


Ubuntu 12.04 mit KDE und Kubuntu 16.04 - FOSS Fan

Offline

#29 13. Januar 2013 20:20

cyberman
Moderator
Ort: Dohna / Sachsen
Registriert: 13. September 2010
Beiträge: 6.741
Webseite

Re:

Den UDT kannst du dir sparen, kannste auch in die config.php packen ...


1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMSMS
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi

Offline

#30 13. Januar 2013 21:56

Janl
Server-Pate
Ort: Freistadt, Österreich
Registriert: 13. Dezember 2010
Beiträge: 1.039
Webseite

Re:

Hallo Cyberman,

Den UDT kannst du dir sparen

Doch nicht denn für jede Sprache gibt es 1 (oder mehrere) Templates,
zum Beispiel für DE und SK oder für DE, NL und UK.

mfg
Jan


Ubuntu 12.04 mit KDE und Kubuntu 16.04 - FOSS Fan

Offline

#31 14. Januar 2013 04:03

cyberman
Moderator
Ort: Dohna / Sachsen
Registriert: 13. September 2010
Beiträge: 6.741
Webseite

Re:

Würde ich trotzdem nicht über einen UDT machen, allenfalls über 1 "echtes" Plugin, also das ganze als function.page_locale.php ins /plugin-Verzeichnis speichern

[== PHP ==]
<?php
function smarty_function_page_locale($params, $template)
{
  $locale = $params['lang'];
  $encode = (isset($params['encode'])) ? $params['encode'] : 'UTF8';
  switch ($locale) {
    case "nl":
      $page_lang = 'nl_NL';
      break;
    case "en":
      $page_lang = 'en_GB';
      break;
    default:
      $page_lang = 'de_DE';
      break;
  }
  $page_locale = $page_lang.'.'.$encode;
  setlocale (LC_TIME, $page_locale);
}
?>

und im einfachsten Fall über

{page_locale} 

aufrufen.

Verfügbar sind die Parameter lang und encode.

Für lang ist "de" voreingestellt. Außerdem sind derzeit die Werte "nl" und "en" möglich. Ansonsten kann das Script relativ einfach um andere Länder erweitert werden, indem nach

 switch ($locale) { 

ein neuen case-Block eingefügt und auf die jeweilige Sprache angepasst wird. Für französisch sähe der zusätzlich einzufügende case-Block z.Bsp. dann so aus

    case "fr":
      $page_lang = 'fr_FR';
      break;

Der Parameter encode ist dafür gedacht, verschiedene Serverkonfigurationen abzufangen. Manch ein Server will UTF8 (ist voreingestellt), ein anderer UTF-8 oder utf8 oder utf-8 oder ...

Zum einen hat's 'ne bessere Performance (keine Datenbankabfragen für das Laden der UDTs) und zum anderen kann man zur Steuerung externe Variablen einsetzen, so dass auch nicht so viele Templates benötigt werden, also z.Bsp. für MleCMS

{page_locale lang=$lang_parent}

Und nicht zuletzt kannst du damit alle Locales auf einen Rutsch erledigen, die du jemals in deinem Webdesigner-Leben benötigst. Das Plugin wird einmal erstellt und kann ruckzuck ins /plugin-Verzeichnis kopiert werden, währenddessen du ansonsten bei jeder neuen Installation anfängst, unzählige UDTs zu erstellen wink.


1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMSMS
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi

Offline

#32 14. Januar 2013 10:13

czarnowski
arbeitet mit CMSMS
Registriert: 18. Oktober 2012
Beiträge: 457

Re:

Ich hätte das Plugin so formuliert

[== php ==]
<?php

function smarty_function_page_locale($params, $template) {
    $locale = (isset($params['locale'])) ? $params['locale'] : '';
    $fix = (isset($params['fix'])) ? true : false;
    if (!empty($locale)) {
        $encode = (isset($params['encode'])) ? $params['encode'] : 'UTF-8';
        if (!$fix)
            @set_locale(LC_ALL, strtolower($locale) . '_' . strtoupper($locale) . '.' . $encode);
        else
            @set_locale(LC_ALL, $locale . '.' . $encode);
    }
}

?>

Man muss also als locale nur de oder en etc. übergeben.

Allerdings gibt es locale Einstellungen welche nicht diesen Regeln folgen siehe  Tabelle  , dann setzt man den Parameter fix und schreibt den Parameter locale voll aus.

@ vor set_locale sollte sein da diverse Provider set_locale gesperrt haben (dann funktioniert sowieso nichts) und man damit eine Fehlermeldung unterdrückt.

Beitrag geändert von czarnowski (14. Januar 2013 11:59)

Offline

#33 14. Januar 2013 12:43

Janl
Server-Pate
Ort: Freistadt, Österreich
Registriert: 13. Dezember 2010
Beiträge: 1.039
Webseite

Re:

Hallo Cyberman / Czarnowski

Beide Beispiele werde ich bewahren und von meine UDT's Functions machen.
Bei mehrsprachige Websites muss man nur 1 x im Template diese UDT/Function setzen.
Es passt sehr gut zu Rolf's Lösung für mehrsprachige Sites mit standard CMSMS,
trotzdem Danke für die Bemühung, vielleicht kommt später eine Site wo ich es brauche.

mfg
Jan


Ubuntu 12.04 mit KDE und Kubuntu 16.04 - FOSS Fan

Offline

#34 17. Januar 2013 02:08

cyberman
Moderator
Ort: Dohna / Sachsen
Registriert: 13. September 2010
Beiträge: 6.741
Webseite

Re:

Alternativ könntest du auch versuchen, dafür auch den CMSMS-eigenen Tag {cms_set_language} zu nutzen ...


1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMSMS
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi

Offline

#35 17. Januar 2013 09:44

Janl
Server-Pate
Ort: Freistadt, Österreich
Registriert: 13. Dezember 2010
Beiträge: 1.039
Webseite

Re:

Hallo cyberman,

{cms_set_language} braucht ein nls-file da bleibe ich doch lieber bei einfachem PHP,
trotzdem Danke

mfg
Jan


Ubuntu 12.04 mit KDE und Kubuntu 16.04 - FOSS Fan

Offline

#36 17. Januar 2013 09:51

cyberman
Moderator
Ort: Dohna / Sachsen
Registriert: 13. September 2010
Beiträge: 6.741
Webseite

Re:

Die nls Datei wird doch bereits mit CMSMS mitgeliefert (/lib/nls)... da musst du gar nix mehr machen wink .


1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMSMS
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi

Offline

#37 17. Januar 2013 10:02

Janl
Server-Pate
Ort: Freistadt, Österreich
Registriert: 13. Dezember 2010
Beiträge: 1.039
Webseite

Re:

OOPS

habe es verwechselt mit ein Windows .nls Datei.
Werde doch mal genauer ansehen.

mfg
Jan


Ubuntu 12.04 mit KDE und Kubuntu 16.04 - FOSS Fan

Offline

#38 23. Juli 2015 13:17

Klinge
probiert CMSMS aus
Ort: Stuttgart / BW
Registriert: 27. September 2011
Beiträge: 31

Re:

Ist zwar gelöst, aber bei meinem Provider InternetX hilft auch nur:

$config['timezone'] = 'Europe/Berlin'; $config['locale'] = 'de_DE.UTF-8';

Sonst wird bei mir das Datum auch falsch angezeigt!

Offline

#39 24. Juli 2015 23:14

cyberman
Moderator
Ort: Dohna / Sachsen
Registriert: 13. September 2010
Beiträge: 6.741
Webseite

Re:

Werd ich wohl nie verstehen, weshalb ein nach eigenen Worten Marktführer in DE mit "undeutschen" Einstellungen am Start ist.


1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMSMS
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi

Offline

Fußzeile des Forums

Powered by FluxBB