Mehrsprachigkeit im Logo nutzen

  • WCF 1

Achtung: Diese Seite ist nur noch Teil eines Archivs und wird in Zukunft entfernt.

Es ist nicht unüblich, sein Forum in mehreren Sprachen anzubieten. Gerne nutzt man dort dann auch Wörter in den entsprechenden Sprachen. Hier auf KittBlog z.B. stand ich selbst vor dem Problem, dass ich in der Logo-Grafik auch das Motto des Projekts habe. Dieses ist jedoch normalerweise nur in einer Sprache möglich. Entscheiden wollte ich mich zwischen Deutsch und Englisch jedoch nicht, also habe ich geschaut, wie ich am besten zwei Logos nutzen kann, für jede Sprache eines.

Die Lösung möchte ich natürlich niemandem vorenthalten:
Über einen Template-Patch habe ich eine Abfrage in das header-Template eingefügt, das überprüft, ob mehr als eine Sprache vorhanden ist (dieselbe Abfrage geschieht auch an anderer Stelle) und dementsprechend dann das jeweilige Kürzel der aktuellen Sprache einfügt. Diese Abfrage habe ich dann an die Stelle geschrieben, an der das Logo eingelesen wird.

Hier stand ich zuerst vor zwei Problemen:
Das Logo wird als Ganzes übertragen, d.h. mit Dateiendung, z.B. als "logo.png". Damit muss der Name der Grafiken schon einmal mindestens logo.pngXX.png heißen (XX für die Sprache), im Falle von Deutsch z.B. logo.pngDe.png. Es sieht zwar nicht schön aus, aber damit lässt es sich leben. Problem 1 damit behoben, das aber automatisch Problem zwei hervorrief:
Das Logo wurde so nicht angezeigt. Das liegt daran, dass das Kürzel, das eingefügt wird, nicht alleine steht, sondern komischerweise bei mir noch ein Leerzeichen davor erzeugte. Damit war der richtige Dateiname "logo.png De.png". Warum das so ist, kann ich nicht sagen, denn an anderer Stelle funktioniert es problemlos.

Kommen wir aber zum eigentlich wichtigen nach diesen Erklärungen (die dazu dienen, meine Vorgehensweise zu erläutern), dem Code:
Gesucht werden muss nach folgender Zeile (wie oben erwähnt, im Template "header"):

Smarty-Template

  1. <img src="{$this->getStyle()->getVariable('page.logo.image')}" title="{lang}{PAGE_TITLE}{/lang}" alt="" />
Dieses ist in einer normalen Installation in Zeile 206 zu finden. Es ist in jeder Endanwendung eigentlich möglich, allerdings bezieht sich die Zeile oben aus einer header.tpl eines Burning Board 3.
Diese Zeile muss dann durch folgende ersetzt werden:

Smarty-Template

  1. <img src="{$this->getStyle()->getVariable('page.logo.image')}{if $this->language->countAvailableLanguages() > 1}{@$this->language->getLanguageCode()|ucfirst}.png{/if}" title="{lang}{PAGE_TITLE}{/lang}" alt="" />
Nicht vergessen, die entsprechenden Bilder dann auch in den Ordner zu legen, aus dem das Logo angezeigt wird ;)
Über den Autor
Ich bin Webentwickler in Stuttgart und administriere Server seit vielen Jahren. In diesem Blog erstelle ich hauptsächlich Tutorials für andere Webentwickler, Webdesigner und Serveradministratoren.
-------------------------------------------------------------------------------------------------------------------------------------
I’m a web developer in Stuttgart, Germany, and server administrator since many years. This blog mainly contains a tutorial set for other web developer, web designer and server administrators.

120 mal gelesen

Kommentare 0

Es wurden keine Einträge gefunden.