Views 2, Bug oder Feature
am 11.07.2008 - 22:08 Uhr in
Beim Erstellen eines View hat man die Möglichkeit einen Leertext anzugeben.
Ok habe ich mir gedacht. Nimmst Du PHP Code und printest die die bereits übersetzten Textstrings
Die Seite wurde nicht gefunden.
Die angeforderte Seite konnte nicht gefunden werden.
nach dem Motto:
<h2><?php print t('Page not found '); ?></h2>
<p><?php print t('The requested page could not be found. '); ?></p>
Diese Überlegung geht aber an der Logik von Views 2 vorbei.
Durch den PHP Code in der Textarea werden die beiden mittels der t() Funktion ausgegebenen Textstrings nicht übersetzt angezeigt.
Statt dessen wird der gesamte Inhalt der Textarea als noch auf Deutsch zu übersetzender Text im Lokalisierungssystem erfasst.
Das kann man zunächst als gut bezeichnen - weil es bequem ist. Es ist wohl aber eher nicht so gut.
Denn dadurch landen immer wenn man in Views einen Text in "Leerer Text" eintägt dieser Text in der Lokalisierung als auf Deutsch zu überetzender Text.
Vermutlich verhalten sich die beiden anderen Textbereiche "Kopfbereich" und "Fußbereich" auf die gleiche Weise.
Wozu gibt es dann die Möglichkeit mittels PHP Code t() Funktion basierte Strings einzufügen und
was ist wenn ich keine übersetzbaren Strings möchte?
Was ist wenn ich in einer solchen Textarea umfangreiche PHP Codelogik verwende um einen kleinen Text auszugeben? Dann befindet sich dieser gesamte PHP Code mit dem kleinen Text als auf Deutsch zu übersetzen in der Lokalisierung.
Und nun frage ich mich: Bug oder Feature?
- Anmelden oder Registrieren um Kommentare zu schreiben
Hat man in "Leerer Text"
am 11.07.2008 - 22:34 Uhr
Hat man in "Leerer Text" einen Text eingetragen und entfernt ihn wieder bleibt er als zu uebersetzender String in der Lokalisierung stehen.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
die Unlogik und Schwulitäten
am 11.07.2008 - 23:02 Uhr
Die Antwort auf die Frage, Bug oder Feature, geht nun eindeutig zu Bug.
Erhärtet wird dies durch Folgendes.
Ein in "Leerer Text" eingegebener Text erzeugt keinen "Header Title". Dieser Titel ist bei der Information "Seite nicht gefunden" durchaus sinnvoll. Zumal standardmäßig Drupal bei einer nicht gefundenen Seite diesen Titel erstellt.
Um diesen Titel nun per PHP Code in der Textarea von "Leerer Text" zu generieren kann man Drupal's Funktion drupal_set_title() verwenden. Die Textarea hat damit diesen Inhalt:
<?php drupal_set_title('Page not found'); ?>
<p>The requested page could not be found.</p>
Eigentlich könnte man ja schreiben:
<?php drupal_set_title(t('Page not found')); ?>
<p>The requested page could not be found.</p>
oder
<?php t(drupal_set_title('Page not found')); ?>
<p>The requested page could not be found.</p>
Die beiden letzten Varianten sind aber sinnlos (siehe Erklärung Eröffnungspost) und hier wird die Unlogik sichtbar, den gesamten Inhalt der Textarea zu lokalisieren.
Wieso diese Unlogik an dieser Stelle sichtbar wird?
Die Funktion drupal_set_title() generiert 2 Titel: Den "Header Title" und den Nodetitel.
Selbst wenn man nun den Inhalt der Textarea übersetzt kommt man exakt beim Titel in Schwulitäten. Denn was ist beim übersetzten Inhalt der Textara mit dem "Header Title"?
PS
Anzumerken bleibt das die Funktion drupal_set_title() als Funktion nicht lokalisiert ist.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.