MyBB.de Forum
Monatsnamen und Wochentage auf Deutsch - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: MyBB 1.8.x (https://www.mybb.de/forum/forum-87.html)
+--- Forum: Allgemeiner Support (https://www.mybb.de/forum/forum-88.html)
+--- Thema: Monatsnamen und Wochentage auf Deutsch (/thread-34971.html)



Monatsnamen und Wochentage auf Deutsch - initium8novum - 30.08.2017

Hallo zusammen,

es tut mir leid, im Forum 'Programmierung' darf ich leider noch kein Thema erstellen. Daher hoffe ich, ihr seht es mir nach, das ich das Thema für meine Frage zur Anpassung des MyBB in Bezug auf Codeänderungen hier erstelle.

URL zum Forum
https://initiumnovum.de

Welche Styles nutzt du?
Theme und Template von Flatty, mit Anpassungen von mir

Hast du Plugins installiert? Welche? (wenn möglich bitte Links zu den Plugins angeben)
Nein

Welche MyBB-Version benutzt du?
1.8.12

Welche PHP-Version benutzt du?
5.6.31

Welche Datenbank benutzt du? (mit Version)
MySQLi 5.6.34

Hast du ein Update/Upgrade durchgeführt?
Ja, 1.8.8 auf 1.8.12

Hast du dein MyBB Forum von einer anderen Boardsoftware konvertiert?
Nein

Seit wann tritt das Problem auf?
Kein Problem, nur Anpassung

Wird eine Fehlermeldung ausgegeben? Welche? Wann?
Nein



Es gibt bereits einige Themen zur Anpassung der Wochentage und Monatsnamen auf Deutsch. Ein Thema, das die Frage noch am ehesten beantwortet, ist dieser von März 2009: https://www.mybb.de/forum/thread-12803.html

Doch leider ist das für jemanden wie mich, der sich mit PHP kaum auskennt, nicht sonderlich hilfreich.

Ich persönlich finde es viel schöner, wenn das Datums-Format im Forum allgemein folgendermaßen aussieht:
Beispiel: Mi, 30. August 2017 (auf Deutsch)

Gut wäre es natürlich auch, wenn dieses Datums-Format ein Benutzer im UCP auch auswählen könnte. Allerdings wäre das für mich zweitrangig.

Versucht habe ich bereits, wie im oben genannten Thema angeregt, die Funktionen setlocal() und strftime(). Die Übersetzung ins Deutsche mit der Funktion setlocal() habe ich sogar noch hinbekommen.
Jedoch die Funktion strftime() in die bestehende Datums-Funktion my_date() in der Datei inc/functions.php zu implementieren, damit die Wochentage und Monatsnamen auf Deutsch angezeigt werden, da bin ich gescheitert.

Der Funktion werden folgende Werte übergeben: function my_date($format, $stamp=0, $offset="", $ty=1, $adodb=false)
Der Rückgabewert: return $date;
Wobei der Rückgabewert auch den String 'Heute', 'Gestern' usw. beinhalten kann.
Somit muss, wenn ich das richtig verstanden habe, in der Funktion selbst überall, wo der Timestamp als Datum und nicht als 'Heute' etc. übergeben wird, die Funktion strftime() eingesetzt werden.

Doch dies scheitert bereits an der Stelle, wo die Funktionen adodb_date und gmdate() zum Einsatz kommen:
PHP-Code:
$date gmdate($mybb->settings['dateformat'], $stamp + ($offset 3600)); 
gmdate() muss ja stehen bleiben, wo soll ich dort also noch strftime() unterbringen. Die beiden kommen sich doch gegenseitig in die Quere.



Also habe ich dann versucht, mit den Arrays zu arbeiten.
PHP-Code:
$days = array("So""Mo""Di""Mi""Do""Fr""Sa");
$months = array(1=>"Januar",2=>"Februar",3=>"März",4=>"April",5=>"Mai",6=>"Juni",
                7=>"Juli",8=>"August",9=>"September",10=>"Oktober",11=>"November",12=>"Dezember"); 
Dort habe ich ein ähnliches Problem, denn die Ausgabe müsste in meinem Fall ja wie folgt lauten:
PHP-Code:
$date $days[date("w"$stamp)].date(", d. "$stamp).$months[date("n"$stamp)].date(" Y"$stamp); 
Der eigentliche Code in der Funktion my_date() sieht folgendermaßen aus:
PHP-Code:
$todaysdate $yesterdaysdate '';
if(
$ty && ($format == $mybb->settings['dateformat'] || $format == 'relative'))
{
$_stamp TIME_NOW;
if(
$adodb == true)
{
$date adodb_date($mybb->settings['dateformat'], $stamp + ($offset 3600));
$todaysdate adodb_date($mybb->settings['dateformat'], $_stamp + ($offset 3600));
$yesterdaysdate adodb_date($mybb->settings['dateformat'], ($_stamp 86400) + ($offset 3600));
}
else
{
$date gmdate($mybb->settings['dateformat'], $stamp + ($offset 3600));
$todaysdate gmdate($mybb->settings['dateformat'], $_stamp + ($offset 3600));
$yesterdaysdate gmdate($mybb->settings['dateformat'], ($_stamp 86400) + ($offset 3600));
}

Zum einen bin ich mir nicht sicher, wo ich die Arrays hinpacken soll. Kommen die mit in die Funktion my_date()?
Und zum anderen weiß ich nicht, wie ich den Codeabschnitt so anpassen soll, das er funktioniert. Da sind mir die Funktionen adodb_date() und gmdate() im Weg, die jedoch wohl drinbleiben müssen.

PHP-Code:
$mybb->settings['dateformat'
mit
PHP-Code:
$days[date("w"$stamp)].date(", d. "$stamp).$months[date("n"$stamp)].date(" Y"$stamp
zu ersetzen funktioniert nicht.

Wäre super, wenn mir hier jemand weiterhelfen könnte.