Da ich meine Seite zweisprachig gestalten wollte, habe ich mir eine Komponente dafür gesucht. Am Beliebtesten in der Joomla Gemeinschaft ist hier eindeutig Joomfish (Version 1.7), weshalb ich mich dafür entschied, dass zu testen. Diese Komponente ist nicht dafür gedacht die Seite automatisch zu übersetzen, sondern nur eine Schnittstelle anzubieten, in dem man die übersetzten Texte eintragen kann und dem Besucher der Seite zur Verfügung darzustellen. Da ich von automatischen Übersetzungen sowieso nicht überzeugt bin, war diese Komponente die richtige Strategie für mich.
Das Einbinden ging relativ problemlos und funktionierte sogar mit Joomsef. Der Link wurde dann einfach dargestellt mit einem Unterordner /de/ oder /en/ , also der entsprechenden Sprache. Für das Übersetzen werden im Backend die deutschen Texte angezeigt und darunter erscheint ein Feld, in dem man die englische Version eintragen kann. Damit alle Texte übersetzbar sind, müssen entsprechende XML Felder hinzugefügt werden, allerdings werden standardmäßig die wichtigsten Einstellungen hierfür mitgeliefert.
Für den Besucher gibt es dann die Möglichkeit (über ein entsprechendes Modul) die Sprache auszuwählen.
Probleme mit dem Anker im Link durch Joomsef und Joomfish
Leider gab es Probleme mit den Links innerhalb der Pony Gallery ML (Version 2.4.0). Die Links werden durch Artio Joomsef (Version 1.5.1) Suchmaschinenfreundlich dargestellt. Allerdings wurde der Anker für die Bilder zusammen mit der Variable für die aktuelle Sprache in dem Link falsch angehängt, so dass die Ankerfunktion nicht mehr funktionierte und die Links auch unschön dargestellt wurden. Der Link sah z.B. so aus:
....bild.html#ponyimg&lang=de
Hierfür habe ich also die passende Stelle gesucht, an der die aktuelle Sprache mit der Variablen "lang" angehängt wird. Dies war gar nicht so einfach, da dies an sehr vielen Stellen in unterschiedlichen Dateien gemacht werden könnte, allerdings hat es nur in der folgenden Datei Wirkung gezeigt.
In der Datei \components\com_sef\joomsef.php habe ich in der Funktion "sefRelToAbs" folgenden Ausdruck hinzugefügt.
Alter Codeschnipsel:
// Add lang if configured to and it is missing.
if (class_exists('JoomFish')) {
// Define language if set to.
if ($sefConfig->alwaysUseLang && strpos($string, 'lang=') === false) {
$string .= ((strpos($string, '?') !== false) ? '&' : '?');
$string .= 'lang='.SEFTools::getLangCode();
}
}
Neuer Codeschnipsel:
// Add lang if configured to and it is missing.
if (class_exists('JoomFish')) {
// Define language if set to.
if ($sefConfig->alwaysUseLang && strpos($string, 'lang=') === false) {
$anker = strstr( $string, '#' );
$string = str_replace($anker, '', $string);
$string .= ((strpos($string, '?') !== false) ? '&' : '?');
$string .= 'lang='.SEFTools::getLangCode() . $anker;
}
}
Die Änderung bewirkt, dass der Anker abgeschnitten wird, bevor der Teil mit der Sprachvariable angehängt wird und direkt danach ans Ende angefügt wird.
Zu finden ist die Komponente unter
http://www.joomfish.net/
Bookmark us
Das Modul musste angepasst werden damit der Text ebenfalls mehrsprachig dargestellt wird, dies habe ich allerdings nicht über joomfish gemacht, sondern über eine Änderung in \modules\mod_bookmarkus.php Ich habe dort die Stelle für den Anzeigetext gesucht und durch die globale Variable "_BOOKMARK_TEXT" ersetzt. Das sah dann so aus:
if($bus_site) bus_display_link('1',$bus_display_image,$bus_site_def_image,
$bus_site_image,$mosConfig_sitename,$mosConfig_live_site, _BOOKMARK_TEXT);
Dann habe ich in \language\english.php die Variablendefinition hinzugefügt:
/** modules/mod_bookmarkus.php */
DEFINE('_BOOKMARK_TEXT','Bookmark us');
In \language\germani.php entsprechend die deutschen Version.
Zu finden ist die Komponente unter
http://joomlacode.org/gf/project/bookmarkus/frs/
Tags: Joomla Joomfish
View blog reactions
» 1 Kommentar
1Kommentar am Sunday, 06 January 2008 17:59
Ich habe gerade die neue Version von Artio Joomsef installiert (Update Version 2.2.2 von Version 1.5.1) und festgestellt, dass die Entwickler die Änderungen bezüglich des Ankers übernommen haben. Es ist also nicht mehr nötig selber die Änderungen im Quelltext vorzunehmen.
» Kommentar schreiben
|