strftime() - Keine deutsche Sprachunterstützung bei Strato

Found a bug? Tell us!!
Post Reply
mab
Regular
Posts: 11
Joined: Wed Nov 03, 2004 12:23 pm

strftime() - Keine deutsche Sprachunterstützung bei Strato

Post by mab »

Hi2all!

bin zur Zeit mit meiner Website (leider) bei Strato.
s9y läuft soweit ganz prima, nur alle Datumsangaben werden in Englisch ausgegeben.
Wie ich herausgefunden habe, liegt das daran, dass Strato auf diesen Shared-Servern keine deutsche Sprachunterstützung installiert hat (und auch nicht installieren will - laut Support).
Wie kann man die nun überlisten?
In einem Posting bei selfhtml http://forum.de.selfhtml.org/archiv/2002/3/6644/ zum gleichen Thema wird beschrieben, dass man das Problem umgehen kann, wenn man folgenden Code-Schnipsel einfügt:

Code: Select all

// Übersetzungsarray Englisch->Deutsch
$trans=array(
"Monday"=>"Montag", "Tuesday"=>"Dienstag", "Wednesday"=>"Mittwoch", "Thursday"=>"Donnerstag", "Friday"=>"Freitag", "Saturday"=>"Sonnabend", "Sunday"=>"Sonntag",

"Mon"=>"Mo", "Tue"=>"Di", "Wed"=>"Mi", "Thu"=>"Do", "Fri"=>"Fr", "Sat"=>"Sa", "Sun"=>"So",

"January"=>"Januar", "February"=>"Februar", "March"=>"März", "April"=>"April", "May"=>"Mai", "June"=>"Juni", "July"=>"Juli", "August"=>"August", "September"=>"September", "October"=>"Oktober", "November"=>"November", "December"=>"Dezember",

"Jan"=>"Jan", "Feb"=>"Feb", "Mar"=>"März", "Apr"=>"Apr", "May"=>"Mai", "Jun"=>"Jun", "Jul"=>"Jul", "Aug"=>"Aug", "Sep"=>"Sep", "Oct"=>"Okt", "Nov"=>"Nov", "Dec"=>"Dez"
);


// englischen String erzeugen:
$dattext=strftime(".....",$timestamp);
//                 ^^^^^---Format nach Wunsch

// Erzeugten String übersetzen:
$datumtext= strtr ($dattext,$trans);
Meine Frage ist, ob das auch mit serendipity funktioniert und wenn ja, wo dieser Code eingefügt werden muss - also in welchen Dateien an welcher Stelle. Oder ob man das auch global erledigen kann.

Vielen Dank im voraus für Eure Hilfe!
(PS: Bin PHP-Newbie bzw. -Ahnungsloser)
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: strftime() - Keine deutsche Sprachunterstützung bei Stra

Post by garvinhicking »

Keinen deutschen Sprachsupport einzufügen ist ziemlich schwach von Strato. Und vor allem unüblich.

Deutsche Locales werden von allen möglichen Anwendungen erfordert. Man kann den Code in Serendipity einfügen um das zu ersetzen, aber das erfordert einiges an Handarbeit und wird auch in die distrubution nicht übernommen werden.

In Zukunft wird es im Zuge der Unterstützung vno versetzter Serverzeit jedoch eine einheitlich eFunktion zur Datumsformatierung geben; diese kann man dann wenigstens an einer einzelnen Stelle hacken.

Also bitte nochmal Strato anschreiben, dass die spinnen. :-)

Viele Grüße,
Garvin.
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
mab
Regular
Posts: 11
Joined: Wed Nov 03, 2004 12:23 pm

strftime() - Keine deutsche Sprachunterstützung bei Strato

Post by mab »

Hi Garvin,

Vielen Dank für die schnelle Antwort.
Natürlich war meine Anfrage nicht als Bug-Report gedacht; mir ist klar, dass das angesprochene Problem ursächlich mit Strato zusammenhängt.
Leider habe ich mein Paket dummerweise :oops: gerade bei Strato auf ein Premium-Paket hochgestuft und bin somit die nächsten sechs Monate an die gebunden (was das Premium bedeutet ist mir völlig unklar).
Es muss also eine Lösung her.
Wieviel Handarbeit wäre es denn? Muß man in allen Dateien, die strftime() enthalten den Code austauschen? Oder reicht es aus, in jeder Datei obigen Code-Schnipsel einzufügen?
Wie gesagt - ich bin ein blutiger Anfänger, was PHP betrifft, aber ich scheue mich nicht, selbst Hand anzulegen. Wenn ich nur wüßte wo! Und wie!
Die bei Strato weigern sich trotz mehrmaliger Aufforderung, an ihren Servern was zu drehen. :evil:
Ich bin echt satt, was Strato betrifft. Nachdem bei denen der safe_mod auf ON steht und somit einige Anwendungen wie z.B. Gallery nicht zum Laufen zu bekommen sind - jetzt auch noch das.
Vielleicht kannst Du mir ja einen guten Provider empfehlen?
Danke!
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: strftime() - Keine deutsche Sprachunterstützung bei Stra

Post by garvinhicking »

Hi!
Wieviel Handarbeit wäre es denn? Muß man in allen Dateien, die strftime() enthalten den Code austauschen? Oder reicht es aus, in jeder Datei obigen Code-Schnipsel einzufügen?
Was Du tun müsstest, wäre jeden strftime() aufruf z.B. durch ein serendipity_strftime() auszutauschen. Also anstelle:

Code: Select all

$date = strftime('%d %M %Y', $entry['timestamp']);
müsstest Du folgendes machen:

Code: Select all

$date = serendipity_strftime('%d %M %Y', $entry['timestamp']);
Und dann müsstest Du in Deiner serendipity_functions.inc.php folgendes einfügen:

Code: Select all

function serendipity_strftime($format, $timestamp = null) {
static $trans=array(
"Monday"=>"Montag", "Tuesday"=>"Dienstag", "Wednesday"=>"Mittwoch", "Thursday"=>"Donnerstag", "Friday"=>"Freitag", "Saturday"=>"Sonnabend", "Sunday"=>"Sonntag",

"Mon"=>"Mo", "Tue"=>"Di", "Wed"=>"Mi", "Thu"=>"Do", "Fri"=>"Fr", "Sat"=>"Sa", "Sun"=>"So",

"January"=>"Januar", "February"=>"Februar", "March"=>"März", "April"=>"April", "May"=>"Mai", "June"=>"Juni", "July"=>"Juli", "August"=>"August", "September"=>"September", "October"=>"Oktober", "November"=>"November", "December"=>"Dezember",

"Jan"=>"Jan", "Feb"=>"Feb", "Mar"=>"März", "Apr"=>"Apr", "May"=>"Mai", "Jun"=>"Jun", "Jul"=>"Jul", "Aug"=>"Aug", "Sep"=>"Sep", "Oct"=>"Okt", "Nov"=>"Nov", "Dec"=>"Dez"
); 

    if ($timestamp == null) {
        $timestamp = time();
    }

    $time = strftime($format, $timestamp);

    return strtr($time, $trans);
}
Das ist halt sehr viel Suchen/Ersetzen Arbeit. In der 0.8 Version werde ich aber in Kürze diese Option einbasteln alles auf eine Funktion zu reduzieren.

Viele Grüße,
Garvin.
Last edited by garvinhicking on Thu Nov 11, 2004 5:29 pm, edited 1 time in total.
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
mab
Regular
Posts: 11
Joined: Wed Nov 03, 2004 12:23 pm

strftime() - Keine deutsche Sprachunterstützung bei Strato

Post by mab »

Vielen vielen Dank Garvin!
Du weißt, wie man solche Anfänger wie mich glücklich macht :D

Grüße

mab
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: strftime() - Keine deutsche Sprachunterstützung bei Stra

Post by garvinhicking »

In der aktuellen 0.8 CVS-Version habe ich nun die Funktionen alle in serendipity_formatTime() vereinheitlicht. Da dürftest Du relativ leicht nun Deine Funktion einsetzen können ohne den ganzen Source zu durchgraben. :-)

Viele Grüße,
Garvin.
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
mab
Regular
Posts: 11
Joined: Wed Nov 03, 2004 12:23 pm

strftime() - Keine deutsche Sprachunterstützung bei Strato

Post by mab »

Hi Garvin,

es bleibt mir nicht erspart, mich als völliger Dummbatz zu outen.
Das was Du als "relativ leicht" bezeichnest, stellt mich vor unüberwindbare Probleme!
Ich habe keinen blassen Schimmer, wo ich nun was einsetzen muss.
Vielleicht kannst Du ja noch mal helfen? Ansonsten habe ich bereits etwa drei Viertel des Source bereits "durchgraben" (ist doch mehr als ich dachte) und den Rest würde ich auch noch schaffen...
Aber irgendwie erscheint mir Deine Lösung doch eleganter :wink: , obwohl ich keine Ahnung habe... :)

Viele Grüße

mab
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: strftime() - Keine deutsche Sprachunterstützung bei Stra

Post by garvinhicking »

Kein Problem.

Im aktuellen 0.8 CVS würde Dir folgendes helfen:

1. Datei 'include/functions.inc.php' öffnen
2. Nach Funktion "serendipity_strftime" suchen (ist direkt am Anfang)
3. Diese Funktion komplett durch folgendes austauschen:

Code: Select all

function serendipity_strftime($format, $timestamp = null, $useOffset = true) {
static $trans = array("Monday"=>"Montag", "Tuesday"=>"Dienstag", "Wednesday"=>"Mittwoch", "Thursday"=>"Donnerstag", "Friday"=>"Freitag", "Saturday"=>"Sonnabend", "Sunday"=>"Sonntag",
                      "Mon"=>"Mo", "Tue"=>"Di", "Wed"=>"Mi", "Thu"=>"Do", "Fri"=>"Fr", "Sat"=>"Sa", "Sun"=>"So",
                      "January"=>"Januar", "February"=>"Februar", "March"=>"März", "April"=>"April", "May"=>"Mai", "June"=>"Juni", "July"=>"Juli", "August"=>"August", "September"=>"September", "October"=>"Oktober", "November"=>"November", "December"=>"Dezember",
                      "Jan"=>"Jan", "Feb"=>"Feb", "Mar"=>"März", "Apr"=>"Apr", "May"=>"Mai", "Jun"=>"Jun", "Jul"=>"Jul", "Aug"=>"Aug", "Sep"=>"Sep", "Oct"=>"Okt", "Nov"=>"Nov", "Dec"=>"Dez"
);

    if ($timestamp == null) {
        $timestamp = serendipity_serverOffsetHour();
    } elseif ($useOffset) {
        $timestamp = serendipity_serverOffsetHour($timestamp);
    }

    return strtr(strftime($format, $timestamp), $trans);
}
4. Freuen, weil Du nicht mehr machen musst. :-)

Viel Spaß,
Garvin.
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
mab
Regular
Posts: 11
Joined: Wed Nov 03, 2004 12:23 pm

strftime() - Keine deutsche Sprachunterstützung bei Strato

Post by mab »

Hi Garvin,

vielen Dank für Deine Antwort!
Ich muss allerdings gestehen, dass ich ein wenig verwirrt bin.
Habe zur Zeit auf dem Server die s9y_200411141337 installiert. In dieser Version ist ja auch - wie in Deinem Beitrag vom 12.11. beschrieben - alles in der Funktion serendipity_formatTime() vereinheitlicht.
Dein letzter Beitrag bezieht sich jetzt aber auf die smarty-Versionen von s9y, oder?
Gibt es auch so eine einfache Lösung für die "normale" Version?

Viele Grüße

Mab
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: strftime() - Keine deutsche Sprachunterstützung bei Stra

Post by garvinhicking »

Richtig, das bezog sich auf die Smarty-Version. Und nein, die Lösung gilt leider nicht für die 0.7 Version. Um die Vereinfachung für Smarty zu bauen habe ich gut 5 Stunden gebraucht, die Mühe möchte ich mir nicht für eine entwicklungstechnisch veraltete Version machen...

Allerdings ist die Smarty-Version schon recht gut nutzbar. :-)

Viele Grüße,
Garvin.
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
mab
Regular
Posts: 11
Joined: Wed Nov 03, 2004 12:23 pm

strftime() - Keine deutsche Sprachunterstützung bei Strato

Post by mab »

Hi Garvin,

ok, ok, habe verstanden!
Dann werde ich mal die smarty-Version installieren!
Wenn ich mich nicht irre, gibt es keine Möglichkeit von der 0.7 auf die smarty ein Upgrade durchzuführen, oder?
Das heißt, Datenbank löschen, serendipity löschen und die smarty-Version neu aufspielen und entsprechend installieren, nicht wahr?
Funktionieren denn dann noch die für die 0.7 entwickelten Templates (habe ein Standard-Template auf meine Bedürfnisse angepasst - das würde ich auch nicht so gerne nochmal machen :wink: ) ?
Habe nämlich irgendwo gelesen, dass durch den Einsatz neuer bzw. veränderter Variablen von dem Basteln an den Themes erstmal abzuraten sei.

Vielen Dank im voraus.

mab
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: strftime() - Keine deutsche Sprachunterstützung bei Stra

Post by garvinhicking »

Hi!

Doch, ein Update von 0.7 sollte genauso wie vorige Versionen durch unseren Upgrader durchgeführt werden, die Logik ist die gleiche. Ich habe es noch nicht probiert, aber ich bin mir sehr sicher, dass es klappt :-)

(Backup schadet natürlich trotzdem nie).

Also einfach Smarty 0.8 ins 0.7 Verzeichnis entpacken, HTTP des Blogs aufrufen, und der Installer sollte seine Magie tun.

Für alte Templates gibt es einen Kompatibilitätsmodus, der problemlos klappen sollte -- wenn Du sogar nur die CSS-Daten verändert hast, wirst Du überhaupt keine Probleme kriegen.

Es ist jedoch noch nicht so ratsam, in den Smarty-Templates viel zu ändern, denn da kann sich unsere Struktur noch etwas ändern.
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
mab
Regular
Posts: 11
Joined: Wed Nov 03, 2004 12:23 pm

strftime() - Keine deutsche Sprachunterstützung bei Strato

Post by mab »

Hi Garvin,

WOW! SUPER! GENIAL! :D :D
Alles funktioniert!! Ich bin begeistert!
Der höfliche Updater macht das Update von 0.7 auf die smarty-Version ohne Probleme und anhand Deiner Anleitung ist jetzt auch das Datumsproblem mit Strato hinfort.
Zauberer, Du! :wink:

Nochmal vielen herzlichen Dank für den SUPER-Support!!

mab
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: strftime() - Keine deutsche Sprachunterstützung bei Stra

Post by garvinhicking »

Klasse, das freut mich zu hören! Bei solche Erfolgsmeldungen macht das Entwickeln direkt viel mehr Spaß!

Also noch viel Spaß beim weiteren entwickeln; und immer mal nach einem aktuellen CVS-Snapshot suchen und docs/NEWS lesen. Derzeit tut sich da täglich recht viel. :-)

Viele Grüße,
Garvin.
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Post Reply