Datumsformatierung mit qTranslate


Vor fast einem Jahr beschrieb ich hier, wie ich es geschafft hatte, in meinem WordPress-Theme zwei unterschiedliche Datumsformate für deutsch und englisch einzurichten. Vor allem Benutzer des Plugins „qTranslate“ verschlug es deshalb des öfteren hierher, denn ich hatte eine – zwar eher verworrene, aber eben funktionierende – Lösung gefunden, das Datum für jede Sprache in einem eigenen Format anzuzeigen, da die vom Autor empfohlene Methode damals bei mir nicht funktioniert hatte. Elf Monate später aber hat sich das Plugin natürlich ganz schön weiterentwickelt und bietet gleich vier Varianten für die Formatierung des Datums an.

Ich will mal zeigen, wie ich für diese Seite hier vorgegangen bin. Zuerst habe ich in den erweiterten qTranslate-Optionen den Haken bei „Benutze emulierte date Funktion“ gesetzt. Das bedeutet, daß man in seinem Template nun wie gewohnt the_date() benutzen kann, qTranslate aber automatisch so Dinge wie Wochentage oder Monatsnamen auf die jeweilige Sprache umstellt. Man braucht also nicht wie früher die qTranslate-Funktion qtrans_formatPostDateTime() zu benutzen! Diese Einstellung empfinde ich von allen als die komfortabelste.

Eine ganz einfache Datumsanzeige ohne Zusatztext (etwa „Sonntag, 19. April 2009“) könnte dann z. B. so aussehen:

the_date('l, j. F Y');

Für diese Seite wollte ich gerne eine Anzeige haben wie „19. Apr 2009“. Das geht wie folgt:

the_date('j. M Y');

Dazwischen habe ich anschließend noch jeweils einen Zeilenumbruch eingefügt:

the_date('j.MY');

Das „r“ muß man in diesem Fall mit einem Backslash schützen, da es von der date()-Funktion bereits belegt ist. Überhaupt muß man bei allem zusätzlichen Text, den man in sein Datum einbauen möchte, aufpassen, ob er Buchstaben enthält, die von der Funktion als Formatparameter erkannt werden. Diese muß man dann alle escapen. Beispiel:

the_date('l, j. F Y \u\m G:i \U\h\r');

In einem solchen Fall muß man sämtliche Buchstaben der Wörter „um“ und „Uhr“ escapen, weil sie sonst alle von der date()-Funktion interpretiert werden und irgendein Murks herauskommt:

Sonntag, 2. November 2008 00000011 7:04 122560586907Sun, 02 Nov 2008 07:04:29 +0100

Wenn man nun gerne auf deutsch die Worte „um“ und „Uhr“ in seinem Datum haben möchte, auf englisch jedoch „at“ und „am“/„pm“, dann kann man dank der (relativ) neuen qTranslate-Quicktags jetzt einfach zwei verschiedene Formate angeben:

the_date('[:de]l, j. F Y \u\m G:i \U\h\r[:en]l, jS F Y \a\t g:i a');

Dieses Beispiel würde auf deutsch so etwas ausgeben wie „Sonntag, 19. April 2009 um 4:18 Uhr“ und auf englisch entsprechend „Sunday, 19th April 2009 at 4:18 am“.

Eine Auflistung aller Parameter für die date()-Funktion findet man auf php.net.

P.S.: Die alte qTranslate-Funktion qtrans_formatCommentDateTime() benötigt man dementsprechend jetzt auch nicht mehr. Stattdessen nimmt man die normale WordPress-Funktion comment_date(), z. B. so:

comment_date('[:de]j. F Y[:en]jS F, Y');

40 Antworten zu “Datumsformatierung mit qTranslate”

  1. Hi Ginchen

    i had made one php script in template directory.now i had created one „page“ in admin side called „Products“.when user click on the „products“ link, i have to call that upper php script.

    do u know how can i do that?

  2. You could simply choose your PHP script as the template for your „Products“ page. The file should begin with something like this:

    
    

    Then you can edit the page in the WordPress backend and choose „Products“ as template for it.

  3. Hi Ginchen

    http://www.screencast.com/users/Tatva13/folders/Default/media/1d4c73fa-ec5f-49ff-be9c-ae25d14458b8

    i had attached a link to screen shot of product page in admin side.should u explain how wordpress executed this page? wp-e-commerce plugin created this page when i activated it.

    what does mean [productpage]?

    when i run that page on front side,“product_page.php“ script is executed.that script is location like below

    „wp-content\plugins\wp-e-commerce\themes\default\products_page.php“

  4. Well, the e-Commerce plugin needs a certain page where it can display the products. That’s your products page. The plugin creates a so-called „shortcode“, [productspage], that you can place wherever you want in order to display your products. This is probably done in one of the main plugin files, like wp-ecommerce.php or whatever.

    However, as I said, I have never used that plugin, so I don’t know anything about how to use it or how it works exactly. They have a very detailed website, you should rather ask there. Or in their forum. Or have a look at the documentation. For example, this might be what you’re looking for.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert