[3.2] Anderssprachige Sprachvariable ansprechen

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

[3.2] Anderssprachige Sprachvariable ansprechen

Beitragvon ZNC » 25.12.2017 10:40

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?
Keine Witze über ((58 - x : 2) - y * x) * z * 4 - 1 * x + (z * x - 1) + y = jährige und ältere, denn auch Euch wird es treffen. PS: x = √64 und y = √9 und z = 1 : (0.5 * 4)

Benutzeravatar
canonknipser
Supporter
Supporter
Beiträge: 1398
Registriert: 10.09.2011 11:14
Kontaktdaten:

Re: [3.2] Anderssprachige Sprachvariable ansprechen

Beitragvon canonknipser » 26.12.2017 18:06

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: 194
Registriert: 21.05.2014 13:48
Wohnort: Köln

Re: [3.2] Anderssprachige Sprachvariable ansprechen

Beitragvon ZNC » 27.12.2017 09:08

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?
Keine Witze über ((58 - x : 2) - y * x) * z * 4 - 1 * x + (z * x - 1) + y = jährige und ältere, denn auch Euch wird es treffen. PS: x = √64 und y = √9 und z = 1 : (0.5 * 4)

Benutzeravatar
canonknipser
Supporter
Supporter
Beiträge: 1398
Registriert: 10.09.2011 11:14
Kontaktdaten:

Re: [3.2] Anderssprachige Sprachvariable ansprechen

Beitragvon canonknipser » 27.12.2017 10:21

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
Supporter
Supporter
Beiträge: 1398
Registriert: 10.09.2011 11:14
Kontaktdaten:

Re: [3.2] Anderssprachige Sprachvariable ansprechen

Beitragvon canonknipser » 28.12.2017 10:45

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: 194
Registriert: 21.05.2014 13:48
Wohnort: Köln

Re: [3.2] Anderssprachige Sprachvariable ansprechen

Beitragvon ZNC » 30.12.2017 07:47

Was machst Du, wenn Dir nicht langweilig ist :o :-? :P
Würde ich auch können wollen :D
Habs runtergeladen, lieben Dank.
Keine Witze über ((58 - x : 2) - y * x) * z * 4 - 1 * x + (z * x - 1) + y = jährige und ältere, denn auch Euch wird es treffen. PS: x = √64 und y = √9 und z = 1 : (0.5 * 4)


Zurück zu „Styles, Templates und Grafiken“