Serendipity mehrsprachig
Mittwoch, 10. September 2008Nachdem ich mich zu Serendipity als Blog-Software entschieden habe, mußte ich feststellen, daß es nicht ganz so multilingual ist wie ich angenommen hatte. Es fehlt noch die eine oder andere Sprachumsetzung, die noch auf sich warten lässt. Die Änderungen die man durchführen muss sind allerdings nicht so kompliziert und einfach nachzuvollziehen.
Mit den Informationen aus dem S9Y-Forum, speziell von Serendipity-Developer Garvin konnte ich meine Seite soweit wunderbar anpassen. Nun versuche ich alles noch einmal übersichtlich zusammenzustellen.
Umschaltbar sind auf dieser Seite die Kategorienamen in der Seitennavigation, in den Beiträgen und der Blogüberschrift. Auch die Titel der Seitenleistenplugins wechseln die Sprache. Mehrsprachige Beiträge und Beitragstitel werden von Hause aus schon unterstützt. Das einzige an das ich mich noch nicht herangewagt habe, sind die umschaltbaren statischen Seiten. Alles eine Frage der Zeit.
Ich hoffe ich kann jemandem hiermit helfen...
Die Sprachumstellung habe ich mit Serendipity Version 1.3.1 und dem "i3theme" version 1.6 durchgeführt. Sollte so ähnlich bei anderen Themes aussehen!
Generelles
Zuerst werden die gewünschten Sprachvariablen in den folgenden Dateien angelegt...
Sprachvariablen: @define('MY_BEISPIEL', 'BEISPIELTEXT');
In Dateien:
/templates/i3theme/lang_de.inc.php
/templates/i3theme/lang_en.inc.php
/templates/i3theme/utf-8/lang_de.inc.php
/templates/i3theme/utf-8/lang_en.inc.php
Folgende Funktion in /templates/i3theme/config.inc.php hinzugefügt (Line 14)
function serendipity_constant($zeichenkette) {
if (defined($zeichenkette)) {
return constant($zeichenkette);
} else {
return $zeichenkette;
}
}
$serendipity['smarty']->register_modifier('serendipity_constant', 'serendipity_constant');
Pluginüberschirften
Die Sidepanelplugins werden in der Pluginverwaltung umbenannt in MY_BEISPIEL, MY_ARCHIVES, MY_TAGS, ... und dieDatei /templates/i3theme/sidebar.tpl abgeändert:
<h3 class="serendipitySideBarTitle {$item.class}">{$item.title}</h3>
in
<h3 class="serendipitySideBarTitle {$item.class}">{$item.title|serendipity_constant}</h3>
Anpassen der Navigationsleiste
Datei /templates/i3theme/index.tpl geändert:
{foreach from=$navlinks item="navlink" name=navbar}
<li class="{if $currpage==$navlink.href}currentpage{/if}{if $smarty.foreach.navbar.first} navlink_first{/if}{if $smarty.foreach.navbar.last} navlink_last{/if}"><a href="{$navlink.href}" title="{$navlink.title}">{$navlink.title}</a></li>
{/foreach}
ändern in:
{foreach from=$navlinks item="navlink" name=navbar}
<li class="{if $currpage==$navlink.href}currentpage{/if}{if $smarty.foreach.navbar.first} navlink_first{/if}{if $smarty.foreach.navbar.last} navlink_last{/if}"><a href="{$navlink.href}" title="{$navlink.title|@serendipity_constant}">{$navlink.title|@serendipity_constant}</a></li>
{/foreach}
Kategorienamen in Seitennavigation
Datei plugin_categories von "/templates/default" in i3theme Verzeichniss kopieren und...
<a href="{$plugin_category.categoryURL}" title="{$plugin_category.category_description|@escape}" style="padding-left: {$plugin_category.paddingPx}px">{$plugin_category.category_name|@escape}</a>
ändern in: (Für Kategoriebeschreibung in "TitleTag" und Kategoriename selber!)
<a href="{$plugin_category.categoryURL}" title="{$plugin_category.category_description|serendipity_constant}" style="padding-left: {$plugin_category.paddingPx}px">{$plugin_category.category_name|serendipity_constant}</a>
Achtung! Pluginverwaltung -> Kategorieplugin: "Smarty-Templating" aktivieren!!
Anpassen der Kategorienamen in Artikelansicht und im Header
Datei /templates/i3theme/index.tpl
<div id="header">
<h1><a href="{$serendipityBaseURL}">{$head_title|@default:$blogTitle}</a></h1>
<div class="description">{$head_subtitle|@default:$blogDescription}</div>
ändern in:
<div id="header">
<h1><a href="{$serendipityBaseURL}">{$head_title|serendipity_constant|@default:$blogTitle}</a></h1>
<div class="description">{$head_subtitle|@default:$blogDescription}</div>
Datei /templates/i3theme/entries.tpl
<div class="postdata">
<span class="category">{if $entry.categories}{foreach from=$entry.categories item="entry_category" name="categories"}<a href="{$entry_category.category_link}">{$entry_category.category_name|@escape}</a>{if not $smarty.foreach.categories.last}, {/if}{/foreach}{/if}</span>
ändern in:
<div class="postdata">
<span class="category">{if $entry.categories}{foreach from=$entry.categories item="entry_category" name="categories"}<a href="{$entry_category.category_link}">{$entry_category.category_name|serendipity_constant|@escape}</a>{if not $smarty.foreach.categories.last}, {/if}{/foreach}{/if}</span>
Das war es dann auch schon!




