Hallo, ich habe ein Problem mit der Formatierung meiner Preise : Wir haben in unserem Shop einige Teile die mehr als 1.000 € kosten, einige auch über 10.000. Das fällt aus einigen Boxen raus (ist zu breit bei dem Responsive Template. Da ich nicht die Schrift kleiner machen will und die ,00 hinter jedem Artikel eh nur stört möchte ich diese Artikel statt 15.999,00 € als 15.999 € Formatieren. Das hat jetzt jemand so für mich gelöst : {if $sArticle.price \>= 1000} {$sArticle.price|currency|regex\_replace:"/,[0-9]+/":""} {else} {$sArticle.price|currency} {/if}
Das funktioniert auch zum Teil. Leider benutze ich auch die englische Übersetzung. Die Lokalisierungseinstellung en_GB formatiert aber den Preis so 15,000.00 € Der Code oben macht dann daraus € 15.00 :wtf: Zum Glück hat noch keiner was bestellt… Hat da einer eine Idee ? Kann man die Zahlenformatierung für die eingestellt Lokalisierung umstellen? Wenn ich den englischen Subshop auf de_DE umstelle werden leider einige Shopseiten in deutsch angezeigt, und ich kann im Backend keine Übersetzungen eingeben. Irgendeine Lösung wäre schön. Ich hatte daran gedacht, den obigen Codeschnipsel um eine locale_id Abfrage zu erweitern, hab aber leider keine Ahnung wie die genaue Syntax wäre. So etwa stelle ich mir das vor : {if $locale\_id = 1} {if $sArticle.price \>= 1000} {$sArticle.price|currency|regex\_replace:"/,[0-9]+/":""} {else} {$sArticle.price|currency} {/if} {else} {if $sArticle.price \>= 1000} {$sArticle.price|currency|regex\_replace:"/.[0-9]+/":""} {else} {$sArticle.price|currency} {/if}
Das geht aber so nicht. Ich schätze mal, eine locale_id gibt es nicht?? Ansonsten : Frohe Weihnachten Grüße Tom
Hi, schau mal hier: post71957.html?hilit=preis%20komma#p71957 vieleicht hilft es. Ob es auch im englischen Shop geht weiß ich nicht.
Hallo Petra, vielen Dank für den Versuch, aber… das wars leider nicht. Die Funktion replace unterscheidet sich ja nur im Details zu der von mir schon genutzten Funktion regex_replace. Das Ergebnis ist also das selbe… Trotzdem. War ein Versuch Grüße Tom
Hallo, habe es jetzt nicht getestet, aber versuch das ganze mal mit {if $Locale = "de\_DE"}
Hallo Creatixx, vielen Dank. Die Variable ist schon mal die richtige. mit {if $Locale == "de\_DE"}
bzw. {if $Locale != "de\_DE"}
komme ich schon mal weiter. Leider produziert aber regex\_replace:"/.[0-9]+/":""
einen Fehler. Hat da noch einer einen Tip für die richtige Syntax? Wenn ich selber was finde poste ich das hier. Ansonsten wäre ich für weitere Hilfe sehr dankbar. Tom
Versuch mal damit string\_format:"%d"
Danke auch für diese Idee, leider gibt string\_format:"%d"
keine Tausendertrennung aus. Das gefällt mir dann auch nicht so :oops: Ich habs jetzt erst mal über die Feiertage so gelöst : {$article.price|number\_format:0:",":"."} €
Das erscheint mir aber auch nicht so elegant. Weiterhin probiere ich gern alles aus. Tom