[3.2] Anderssprachige Sprachvariable ansprechen

Alles zu Styles, Templates, Icons und Smilies für phpBB 3.3, sowie allgemeine Designfragen zur Integration von phpBB in bestehende Websites.
Forumsregeln
Bei Style spezifischen Fragen ist der Stylename und die Downloadquelle des Styles erforderlich sowie die URL vom betroffenen Forum.
Antworten
ZNC
Mitglied
Beiträge: 229
Registriert: 21.05.2014 13:48
Wohnort: Köln

[3.2] Anderssprachige Sprachvariable ansprechen

Beitrag von ZNC »

Da ich Schwierigkeiten habe, meine Fragestellung verständlich zu formulieren, nehmen wir mal folgendes Beispiel an:

Wenn ich deutsch eingestellt habe, so verweist der Link bei folgendem Beispiel korrekterweise auf die türkische Datenschutzrichtlinie, jedoch wird über die Variable {{ lang('TERMS_USE') }} "Datenschutzrichtlinie" anstelle "Gizlilik ilkeleri" angezeigt.

Code: Alles auswählen

<a href="{{ U_TERMS_USE }}&lang={% if S_USER_LANG == 'tr' %}de{% else %}tr{% endif %}" title="{{ lang('TERMS_USE') }}" role="menuitem">
	<span>{{ lang('TERMS_USE') }}</span>
</a>
Wie kann ich also das türkische TERMS_USE aus dem Deutschen ansteuern?
Der, die, das, wer, wie. was ... wer nicht fragt bleibt dumm. :D
Benutzeravatar
canonknipser
Ehemaliges Teammitglied
Beiträge: 2053
Registriert: 10.09.2011 11:14
Kontaktdaten:

Re: [3.2] Anderssprachige Sprachvariable ansprechen

Beitrag von canonknipser »

Versuch es mal so:

Code: Alles auswählen

<a href="{{ U_TERMS_USE }}&lang={% if S_USER_LANG == 'tr' %}de{% else %}tr{% endif %}" title="{% if S_USER_LANG == 'tr' %}Datenschutzerklärung{% else %}Gizlilik ilkeleri{% endif %}" role="menuitem">
   <span>{% if S_USER_LANG == 'tr' %}Datenschutzerklärung{% else %}Gizlilik ilkeleri{% endif %} </span>
</a>
Grüße, canonknipser
"there are only 10 types of people: those, who understand binary and those, who don't"
just arrived ;) - Bilder
Kein Support via PN, nur im Board und (manchmal) im IRC
ZNC
Mitglied
Beiträge: 229
Registriert: 21.05.2014 13:48
Wohnort: Köln

Re: [3.2] Anderssprachige Sprachvariable ansprechen

Beitrag von ZNC »

Danke canonenknipser für Deine Rückmeldung. Verstehe ich Dich richtig, dass ich nicht auf die anderssprachigen Variablen in z. B. common.php zugreifen kann?
Der, die, das, wer, wie. was ... wer nicht fragt bleibt dumm. :D
Benutzeravatar
canonknipser
Ehemaliges Teammitglied
Beiträge: 2053
Registriert: 10.09.2011 11:14
Kontaktdaten:

Re: [3.2] Anderssprachige Sprachvariable ansprechen

Beitrag von canonknipser »

Nicht, wenn du rein im Template bleiben willst. Für jeden Benutzer werden die sprachspezifischen Variablen zu Beginn eines phpBB-Scriptes geladen, entweder aus der Sprachangabe im Profil oder, wenn angegeben, aus der Angabe in der Variable lang. Wenn du zweisprachige Ausgaben haben willst, kannst du nicht einfach im template zwischen den Sprachen umschalten, sondern müsstest dann ein separates Script erstellen, dass den jeweils anderen Sprachsatz einliest. Dadurch wird aber der normale Sprachsatz überschrieben (jede Sprachvariable ist ja ein benannter Eintrag im Array $lang, also hier $lang['TERMS_USE']) - also musst du tricksen. Grob im Pseudocode (ungetestet, nur als Idee):

Code: Alles auswählen

// andere Sprache laden
$user->user_lang = "andere Sprache";
$user->add_lang('common');
// gewünschte Variable sichern
$temp_terms_use_andere_sprache = $user->lang['TERMS_USE'];
// ursprüngliche Sprache laden
$user->user_lang = "ursprüngliche Sprache";
$user->add_lang('common');
// Sprachvariable zum aktuellen Spracharray hinzufügen
$user->lang = array_merge($user->lang, array('TERMS_USE_OTHER_LANGUAGE' => $temp_terms_use_andere_sprache));


Alternativ (vielleicht auch die sauberste Variante) bastelst du dir eine Extension, die je ein Language-File de/termuse (mit dem türkischen Wort) und tr/termuse (mit dem deutschen Wort) als Variable TERMS_USE_OTHER_LANGUAGE enthält , lädst diese Extension z.B. im core.user_setup_after - der Listener enthält dann nur das Laden der Sprachdatei (add_lang('termuse')).

Im Template sprichst dann in beiden Fällen die TERMS_USE_OTHER_LANGUAGE an:

Code: Alles auswählen

<a href="{{ U_TERMS_USE }}&lang={% if S_USER_LANG == 'tr' %}de{% else %}tr{% endif %}" title="{{ lang('TERMS_USE_OTHER_LANGUAGE') }}" role="menuitem">
   <span>{{ lang('TERMS_USE_OTHER_LANGUAGE') }}</span>
</a>

Für deinen Anwendungsfall (weil du ja "nur" auf die Nutzungsbedingungen in der jeweils anderen Sprache verlinken willst) ist es sicher einfacher, das eine Wort in beiden Sprachen in das Template hineinzuschreiben ;)
Grüße, canonknipser
"there are only 10 types of people: those, who understand binary and those, who don't"
just arrived ;) - Bilder
Kein Support via PN, nur im Board und (manchmal) im IRC
Benutzeravatar
canonknipser
Ehemaliges Teammitglied
Beiträge: 2053
Registriert: 10.09.2011 11:14
Kontaktdaten:

Re: [3.2] Anderssprachige Sprachvariable ansprechen

Beitrag von canonknipser »

Mir war langweilig - die Extension findest du hier: http://canonknipser.com/viewtopic.php?f=16&t=42#p48 ;)
Grüße, canonknipser
"there are only 10 types of people: those, who understand binary and those, who don't"
just arrived ;) - Bilder
Kein Support via PN, nur im Board und (manchmal) im IRC
ZNC
Mitglied
Beiträge: 229
Registriert: 21.05.2014 13:48
Wohnort: Köln

Re: [3.2] Anderssprachige Sprachvariable ansprechen

Beitrag von ZNC »

Was machst Du, wenn Dir nicht langweilig ist :o :-? :P
Würde ich auch können wollen :D
Habs runtergeladen, lieben Dank.
Der, die, das, wer, wie. was ... wer nicht fragt bleibt dumm. :D
Antworten

Zurück zu „Styles, Templates und Grafiken“