Webform Übersetzung bei statischem Link
am 14.04.2010 - 16:57 Uhr in
Hi Leute,
ich mal wieder :) Ich hab noch Probleme mit der Übersetzung eines Webforms in einer zweisprachigen Seite. Ich habe also ein Webform für jede Sprache angelegt:
Deutsch: node/49
Englisch: node/60
Soweit kein Problem. Die Seite ist standardmäßig deutsch eingestellt. Ist der Benutzer auf der deutschen Seite unterwegs und klickt den Link für das Formular an, bekommt er das deutsche Formular angezeigt. Klickt er dann im Sprachumschalter auf Englisch wird auch brav das englische Formular angezeigt. Soweit scheint alles zu funktionieren.
Was nicht funktioniert ist folgendes: Benutzer kommt auf die Startseite, schaltet auf Englisch um und klickt er dann auf den Link für das Formular landet er trotzdem beim deutschen Formular. Komischerweise ist dann der Link nicht /en/node/60, sondern /en/node/49.
Ist das ein Bug im System oder warum ist das so? Ich hab auch schon versucht über das Modul path einen Alias anzulegen von /en/node/40 auf /en/node/60, aber da bekomme ich immer eine Fehlermeldung, dass der Zugriff auf den Pfad nicht erlaubt ist oder der Pfad ungültigt ist.
Mein Link zum Kontaktformular ist übrigens statisch eingefügt im Layout ganz oben rechts und zwar folgendermaßen:
<?php print l(t('contact form'), 'node/49')); ?>
Liegt es evtl. daran wie der Link eingefügt ist? Wenn ja, wie kann ich den Link sonst einfügen, damit automatisch auf die richtige Version geschaltet wird?
Danke & viele Grüße
Martin
- Anmelden oder Registrieren um Kommentare zu schreiben
hey.. ich hab zwar von den
am 14.04.2010 - 18:17 Uhr
hey..
ich hab zwar von den mehrsprachigen seiten nich so die ahnung, aber wenn du einen link statisch einfügst, dann kann der nicht durch die seite geändert werden. du müsstest das als variable machen. Bzw. müsste immer eine Abfrage erfolgen, welche Sprache eingestellt ist und dann der entsprechende Link dazu.
Ich weiß aber nicht, ob's ne einfachere Lösung für dein Problem gibt, oder ob du das in PHP dann coden müsstest, da wo der statische Link ist.
Schöne Grüße,
Philipp
Philipp0901 schrieb hey.. ich
am 14.04.2010 - 18:49 Uhr
hey..
ich hab zwar von den mehrsprachigen seiten nich so die ahnung, aber wenn du einen link statisch einfügst, dann kann der nicht durch die seite geändert werden. du müsstest das als variable machen. Bzw. müsste immer eine Abfrage erfolgen, welche Sprache eingestellt ist und dann der entsprechende Link dazu.
Ich weiß aber nicht, ob's ne einfachere Lösung für dein Problem gibt, oder ob du das in PHP dann coden müsstest, da wo der statische Link ist.
Schöne Grüße,
Philipp
Hm,
ich dachte für solche Fälle ist dann die Funktin l() zuständig. Was nützt mir denn diese Funktion sonst? Naja, such ich mal weiter nach einer Lösung.
:D:D Mhpf, okay, kann sein
am 14.04.2010 - 19:04 Uhr
:D:D
Mhpf, okay, kann sein das du recht hast. Kenne den Befehl garnicht.
aber btw.: Du machst 3 Klammern zu, aber nur 2 auf... ist das das Problem, oder befindet sich die andere irgendwie vor dem code?
Schöne Grüße,
Philipp
Philipp0901 schrieb aber
am 14.04.2010 - 19:11 Uhr
aber btw.: Du machst 3 Klammern zu, aber nur 2 auf... ist das das Problem, oder befindet sich die andere irgendwie vor dem code?
Ist nur ein Schreibfehler beim Abtippen ;) Ich hab es jetzt total anders gelöst. Das Webformular für englisch hat einen neuen Alias bekommen, der auf Sprache Englisch eingestellt ist und der Link heißt nun nicht mehr l(t('Contact From'), 'node/12'), sondern l(t('Contact From'), 'alias.html'). Damit wird die halbwegs korrekte URL erstellt, die dann mit dem entsprechenden Alias auf das richtige Formular verweist. Umständlich, aber so kenn ich Drupal ;)
Viele Grüße
Martin
Statt "statischem Link" ein Menü
am 01.05.2010 - 12:49 Uhr
Hallo,
lege doch ein neues Menü an, mit 2 Einträgen, einer deutsch und einer englisch. Dieses lädtst du dann als Block an die gewünschte Stelle (eventuell eine Region anlegen) oder rufst es direkt auf, bspw. in der template.php so:
<?php
function THEMENAME_preprocess_page(&$vars) {
$menu = menu_navigation_links("kontaktmenu");
$vars['kontaktmenu'] = theme('links', $menu);
}
?>
und in der page.tpl.php dann derart:
<?php
print $kontaktmenu;
?>
Ich bin mir gerade nicht mehr sicher, ob drupal dem eigenen Menüname noch ein "menu_" voranstellt, aber das kannst du über ein
<?php
print_r(menu_get_names());
?>
herausfinden.
Viele Grüße
~ aaki