Hallo,
ich möchte gern meine Blog auf Zweisprachigkeit erweitern. Für die meisten Fragen habe ich hier im Forum Lösungsansätze gefunden.
Was derzeit bleibt, sind die Navigationslinks im 2k11 Template. Kann mir jemand einen Tipp geben, wie ich dort mehrere Sprachen (de, en) hinbekommen könnte? Ich habe hier gelesen, dass man es über Sprachkonstanten lösen könnte? Geht das auch in 2k11? Was müsste ich da in den Template-Optionen eingeben, damit diese Variablen ausgewertet werden?
Getestet habe ich mal {$CONST.TWOK11_TWEET_THIS} und auch ohne Klammern. Das ist aber 1:1 im Linknamen erschienen.
zweisprachige Navigation in 2k11-Template (gelöst)
zweisprachige Navigation in 2k11-Template (gelöst)
Last edited by konus on Tue Oct 29, 2013 8:22 pm, edited 1 time in total.
Author von Dresden für Kinder
-
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Re: zweisprachige Navigation in 2k11-Template
Hi!
So out of the box geht das eher nicht, die Navlinks müssten durch das multilingual plugin geparst werden, dafür müsste die config.inc.php vom 2k11 entsprechende API-Methoden des Plugins aufrufen, bevor der Inhalt per assign an das Template durchgereicht wird.
Ich würde da eher empfehlen die .tpl Datei zu patchen und manuell IF-Abfragen einzubauen, die die Sprachvariable ({$lang} oder sowas) abfragen, und dann die entsprechenden Links zu setzen...
Die Idee mit Konstanten zu Arbeiten wäre auch eine Möglichkeit, würde aber auch bedeuten dass hier die config.inc.php angepasst werden muss, die dann erstmal prüft ob der eingetragene Linkname eine Konstante ist, oder ein normaler String...
So out of the box geht das eher nicht, die Navlinks müssten durch das multilingual plugin geparst werden, dafür müsste die config.inc.php vom 2k11 entsprechende API-Methoden des Plugins aufrufen, bevor der Inhalt per assign an das Template durchgereicht wird.
Ich würde da eher empfehlen die .tpl Datei zu patchen und manuell IF-Abfragen einzubauen, die die Sprachvariable ({$lang} oder sowas) abfragen, und dann die entsprechenden Links zu setzen...
Die Idee mit Konstanten zu Arbeiten wäre auch eine Möglichkeit, würde aber auch bedeuten dass hier die config.inc.php angepasst werden muss, die dann erstmal prüft ob der eingetragene Linkname eine Konstante ist, oder ein normaler String...
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Re: zweisprachige Navigation in 2k11-Template
Vielen Dank für die schnelle Antwort!
Ich habe in der index.tpl des Templates den folgenden Block gefunden
Kennt jemand eine leichte Möglichkeit, die foreach-Schleife so zu verändern, dass man beide Sprachvarianten in die Datenbank legen kann? Also dass abhängig von der Sprachvariable z.B. nur die Links 0-5 oder nur 6-11 ausgegeben werden bzw. dass einmal nur die geraden und einmal die ungeraden Links ausgegeben werden?
Ich habe in der index.tpl des Templates den folgenden Block gefunden
Code: Select all
{foreach from=$navlinks item="navlink" name="sbnav"}
{if $navlink.title!=""&&$navlink.href!=""}<li>
{if $currpage==$navlink.href or $currpage2==$navlink.href}<span>
{else}<a href="{$navlink.href}">
{/if}
{$navlink.title}
{if $currpage==$navlink.href or $currpage2==$navlink.href}</span>
{else}</a>
{/if}</li>
{/if}
{/foreach}
Author von Dresden für Kinder
Re: zweisprachige Navigation in 2k11-Template
Hallo, ist wahrscheinlich etwas naiv, aber kann man in der Schleife Rechnen, also für die erste Hälfte z.B.
from=$navlinks/2
und für die zweite Hälte
from=$navlinks/2+$navlinks
Wenn ich die Schleife auflöse und die Links hart kodiere, verliere ich die Möglichkeit, dass die aktuelle Seite speziell markiert wird. (Oder ich bringe echt sehr viele Abfragen rein.)
from=$navlinks/2
und für die zweite Hälte
from=$navlinks/2+$navlinks
Wenn ich die Schleife auflöse und die Links hart kodiere, verliere ich die Möglichkeit, dass die aktuelle Seite speziell markiert wird. (Oder ich bringe echt sehr viele Abfragen rein.)
Author von Dresden für Kinder
-
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Re: zweisprachige Navigation in 2k11-Template
Hi!
Ja, du kannst innerhalb von {foreach} mittels:
z.b. nur jeden zweiten Navlink ausgeben. Innerhalb dieses IFs könntest du dann noch die Sprache abfragen:
(Ungetestet )
Ja, du kannst innerhalb von {foreach} mittels:
Code: Select all
{foreach from=$navlinks item="navlink" name="sbnav"}
{if $smarty.foreach.foo.iteration % 2}
<!-- Das ist eine ungerade Wiederholung -->
{else}
<!-- Das ist eine gerade Wiederhoilung -->
{/if}
{/foreach}
Code: Select all
{foreach from=$navlinks item="navlink" name="sbnav"}
{if $smarty.foreach.foo.iteration % 2}
{if $lang == 'de'}
<li>...Navilink deutsch...</li>
{else}
<!-- kein navilink hier, da nicht deutsche sprachversion -->
{/if}
{else}
{if $lang == 'en'}
<li>...Navilink englisch...</li>
{else}
<!-- kein navilink hier, da nicht englische sprachversion -->
{/if}
{/if}
{/foreach}
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Re: zweisprachige Navigation in 2k11-Template
Vielen Dank, das hat mir sehr geholfen! Ich habe nur noch $smarty.foreach.foo.iteration in $smarty.foreach.sbnav.iteration umbenannt und etwas eingekürzt. Jetzt sieht es so aus:
Code: Select all
{foreach from=$navlinks item="navlink" name="sbnav"}
{if $smarty.foreach.sbnav.iteration % 2}
{if $lang == 'de'}
<!-- ungerade für Navilink deutsch, siehe oben -->
{/if}
{else}
{if $lang == 'en'}
<!-- gerade für Navilink englisch -->
{/if}
{/if}
{/foreach}
Author von Dresden für Kinder
Re: zweisprachige Navigation in 2k11-Template (gelöst)
Sidestep:
Mit Smarty 3 foreach kann man das noch kürzen und vereinfachen. Und man hat mehr Möglichkeiten.
http://www.smarty.net/docs/en/language. ... erty.index
Mit Smarty 3 foreach kann man das noch kürzen und vereinfachen. Und man hat mehr Möglichkeiten.
http://www.smarty.net/docs/en/language. ... erty.index
Regards,
Ian
Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian
Ian
Serendipity Styx Edition and additional_plugins @ https://ophian.github.io/ @ https://github.com/ophian