#1612 closed Bug/Fehler (fixed)
In Klassenerweiterungen ist das Sprach-Handling problematisch
| Reported by: | noRiddle | Owned by: | somebody |
|---|---|---|---|
| Priority: | normal | Milestone: | modified-shop-2.0.5.0 |
| Component: | Admin | Version: | 2.0.4.2 |
| Keywords: | Cc: | ||
| Blocked By: | Blocking: |
Description
Wenn man eine Klassenerweiterung schreibt kann man die sprachabhängigen Texte
- mittels einer Funktion translate() definieren, wie es z.B. in /includes/modules/order/productTagsOnCheckout.php gemacht wird, oder
- mittels Sprachdateien in /lang/SPRACHE/module/MODULE_TYPE/
Das funktioniert allerdings nicht bei allen Klassenerweiterungen gleich und Erstgenanntes will mir auch frickelig erscheinen.
Bei einer shopping_cart-Klassenerweiterung beispielsweise, ist ein translate() mittels
switch($_SESSION['language_code'])
nicht möglich, weil, was das Frontend betrifft, die Session noch nicht initiiert ist (siehe /includes/application_top.php), für's Backend ginge es so.
Mittels genanntem Sprach-File geht es ebenfalls im Frontend nicht weil das zugehörige Sprachfile nur im Backend geladen wird wenn
$_GET['set']
gesetzt ist (siehe /admin/modules.php),
die Erweiterung der shopping_cart-Klasse jedoch im Frontend bereits bei Instantiierung der shopping_cart-Klasse selbst ebenfalls instantiiert wird.
Man kann sich zwar mit einem
if(isset($_SESSION['language_code'])) { //this is to prevent notice on not yet set session in front end
$this->translate();
}
behelfen, insofern die nötigen Texte nur für's Backend nötig sind, was meist der Fall sein dürfte, das ist jedoch imho keine zufriedenstellende Lösung.
Vor allem auch deshalb nicht weil es so keine systematisch gleiche Vorgehensweise für Klassenerweiterungen gibt.
Gruß,
noRiddle
Attachments (0)
Change History (6)
comment:1 by , 7 years ago
| Reporter: | changed from to |
|---|---|
| Version: | → 2.0.4.2 |
comment:2 by , 7 years ago
comment:6 by , 6 years ago
| Milestone: | → modified-shop-2.0.5.0 |
|---|

Korrektur um der Exaktheit willen:
Dieser Satzteil
"...die Erweiterung der shopping_cart-Klasse jedoch im Frontend bereits bei Instantiierung der shopping_cart-Klasse selbst ebenfalls instantiiert wird."
sollte so lauten
"...die Erweiterung der shopping_cart-Klasse jedoch im Frontend bereits bei Includen der shopping_cart-Klasse selbst instantiiert wird."
Gruß,
noRiddle