it-swarm.com.de

Wie verwende ich die Funktion t()) für einen Text mit Ankerlinks?

Ich habe einen Text, den ich in 5 Sprachen zeigen muss. Ich benutze dafür t(). Der Text ist:

Bei Problemen wenden Sie sich bitte an uns, um Unterstützung zu erhalten.

Ich möchte, dass der Ausdruck "Kontakt" ein Link ist. Das habe ich also getan:

$text = t('In case of any issues, please ')."<a href="link/to/path">".t('Contact Us')."</a>".t('for assistance');

Ich vermute, dass dies möglicherweise nicht der richtige Weg ist, da dies die Übersetzung beschädigen wird. Ich befürchte, dass der Satz nicht als Ganzes, sondern in Teilen übersetzt wird.

Habe ich recht?

Und wenn ja, wie könnte ich das richtig machen?

6
kmdhrm

Du bist absolut richtig; Sie sollten Zeichenfolgen niemals mit t() verketten. Der springende Punkt ist, dass Platzhalter verwendet werden, sodass Sie dies nicht tun müssen. Speziell:

// DO NOT DO THESE THINGS
$BAD_EXTERNAL_LINK = t('Look at Drupal documentation at !handbook.', array('!handbook' => '<a href="http://drupal.org/handbooks">'. t('the Drupal Handbooks') .'</a>'));

$ANOTHER_BAD_EXTERNAL_LINK = t('Look at Drupal documentation at <a href="http://drupal.org/handbooks">the Drupal Handbooks</a>.');

$BAD_INTERNAL_LINK = t('To get an overview of your administration options, go to !administer in the main menu.', array('!administer' => l(t('the Administer screen'), 'admin'));

Anstelle dieser sollten Sie Folgendes verwenden:

// Do this instead.
$external_link = t('Look at Drupal documentation at <a href="@drupal-handbook">the Drupal Handbooks</a>.', array('@drupal-handbook' => 'http://drupal.org/handbooks'));

$internal_link = t('To get an overview of your administration options, go to <a href="@administer-page">the Administer screen</a> in the main menu.', array('@administer-page' => url('admin')));

Weitere Informationen finden Sie unter Dynamische oder statische Links und HTML in übersetzbaren Zeichenfolgen .

18
Clive

Ich schlage vor, Sie versuchen l() function und lernen es, es ist sehr gut und einfach. und Lösung für Sie

l(t('yourtext'),'link/to/path');

Ich hoffe, Sie können lernen drupal Basismethode, um Ihre Links in drupal :) zu schreiben)

aktualisierter Teil :

$link='<a href="link/to/path">'.t('Contact Us').'</a>';
t('first part of your context @link the end part of your text',array('link'=>$link));
5
Yusef