In einem aktuellen projekt haben wir uns gefragt, wie wir in einem Kollaborativen Umfeld einige Seiten mit Mehrsprachigkeit versehen können. Wie in unserem Beispiel die Collaboration Community, die einerseits Informationen in D, FR und IT beinhaltet, jedoch im Grossteil entweder in der Corporage Language, oder in einer jeweiligen Landessprache, wenn alle Beteiligten die Sprache beherrschen. Es kann auch mal gemischter Content sein, Collaborative eben.
Natürlich könnten wir Variations benutzen, das wäre das naheliegende. Aber dann wäre die Diskussion in der Community auch getrennt, und dass will man ev. nicht. Ausserdem extra eine Publishing Seite machen, schien mir nicht zielführend, da es sich eben um eine Kollaborative seite handelt. SharePoint 2013 macht es mir ja einfach, Script Blöcke einzubauen, also hab ich mir überlegt, ob es nicht mit Javascript klappen könnte, die Browsersprache raus zu popeln und anhand dieser auf Sprachseiten (aspx Wikipages) zu routen. Nach ein paar Anläufen, mit tollen Hilfe von Thorsten Hans und Kevin Mees ist es uns dann gelungen, einen entsprechenden Script zu bauen.
Die Funktionsweise ist ziemlich simpel. Die Homepage der Community ist eine leere Seite, welche nur Javascript enthält und anhand der Browsersprache auf die richtige Home Seite verzweigt. Die sprachabhängigen Homeseiten wiederum enthalten zum Einen Text in der jeweiligen Sprache aber auch wiederverwendbare Elemente wie z.B. die Community Members. So haben wir dieselbe Datenbasis mit mehrsprachigen Info-Seiten.
Weiter war uns wichtig, dass de-ch, de-de, de-at oder fr und fr-ch gleich behandelt werden, und auch da haben wir eine Lösung gefunden. Wir beachten einfach die ersten zwei Zeichen.
Als Sahnehäubchen sind Wikipages ja eben Wikipages, und auf jeder Sprachseite implementieren wir noch DE | [[Community-Home-fr|FR]] | [[Community-Home-it|IT]] damit jederzeit auf eine andere Sprache umgeschaltet werden kann.
Und natürlich hier der Javascript, welcher verwendet wurde um auf die Sprachseiten (Wikipages) zu verzweigen
var browserLanguage = window.navigator.userLanguage || window.navigator.language;
var redirectTo = "/topic/collaborationcommunity/SitePages/Community-Home-de.aspx";
switch (browserLanguage.substring(0,2)) {
case "de":
break;
case "fr":
redirectTo ="/topic/collaborationcommunity/SitePages/Community-Home-fr.aspx";
break;
case "it":
redirectTo ="/topic/collaborationcommunity/SitePages/Community-Home-it.aspx";
break;
default:
break;
}
window.location = redirectTo;
Nicht jeder Browser ist gleichschnell, z.B. der IE ist mit Javascript langsam, und es dauert eine halbe Sekunde bis der Redirect erfolgt. Chrome sieht man keinen switch.
Für die langsamen Browser haben wir noch die allgemeinen elemente auf die Home Seite gepackt, und per loading gif ein asynchrones Laden der Seite simuliert.
Das sieht dann so aus:
So sind die User glücklich, auch wenn der Browser eine halbe Sekunde zum umschalten braucht, und wir haben eine sehr einfache und günstige Lösung für diese Bereiche einer Kollaborationsplattform, die eben ggf. trotzdem Mehrsprachig sein sollen.
So long, Samuel
Spread the Word, Share this Post
Gefällt mir Wird geladen …