76 Nachrichten unter 21 Themen von 33 Mitgliedern
[SilverStripe Roadmap][Changelog]

Silverstripe Englisch / Deutsch

Seite: 1 , 2 3542 mal gelesen
  • Newbie2009
    Community Member
    14 Beiträge

    Silverstripe Englisch / Deutsch

    Hallo zusammen,

    ich versuche seid 2 Stunden verzweilfelt mein CMS Deutsch / Englisch zu bekommen. Habe wie im Buch beschrieben ind die _config.php

    Translatable::enable();
    Translatable::set_default_lang('de');
    i18n::set_locale('de_DE');

    eingetragen und mit /dev/build installiert.
    Nun kann ich im Backend zwischen Deutsch Englisch wählen. Leider legt das System bei mir bei jeder Modul, Widget installation (/dev/Build) einen neuen Button an (Seite nicht gefunden & Startseite). Die Buttons lassen sich auch nicht mehr löschen (Javascript Parse Error) beim ausführen. Was ist da los?

    Kann mir jemand sagen wie das mit de _t-Funktion gemeint ist. In welche Datei muss man die Änderungen im Template schreiben?

    Ausserdem würde ich gern wissen wie kann ich die CSS Formatierungen also Bilder mit deutschen Texten auf Englisch bekommen. Kann man ein anderes Layout.css dem englischen Seitentyp zuweisen etc. oder wie wird das im allgemeinen gelöst.

    Danke Euch
    Cle


  • Newbie2009
    Community Member
    14 Beiträge

    Re: Silverstripe Englisch / Deutsch

    Hallo Zusammen, ich versuche mich noch ein wenig zu präzisieren (Silverstripe 2.3.3):

    Habe folgende Zeilen in die _config.php eingebracht.

    Enable page translation
    Translatable::enable();
    Translatable::set_default_lang('de');
    i18n::set_locale('de_DE');

    Habe im Buch nicht verstanden an welche stellen in welcher Datei ich eine _t Funktion einbringen soll. Kann das der Author noch mal für Newbies erläutern.

    Habe mich anschließend im CMS eingelockt und konnte zwischen Deutsch / English wählen. Habe im Englischen Profil Neue Kategorien angelegt etc. alles soweit Prima.

    Es kommt aber zu sehr Merkwürdigen Fehlern. Leider legen sich nach jedem dev/build aus heiterem Himmerl neue Kategorien im Englischen Bereich an? Habe jetzt 18 Button im Menu die ich nicht angelegt habe??? Diese lassen sich auch nicht löschen im CMS d.h. Java Script Parse Error. Wie kann man das beheben?




    Desweiteren:
    Der Wechsel im Internetexplorer vom deutschen ins englische Profil macht auch probleme: http://....../admin/admin/?locale=en_US. - doppeltes admin wird geschrieben???

    Bei Mozilla: http://....../admin/?locale=en_US. - Funktioniert

    Kann man den Reiter im CMS Rückgängig machen??? Oder Alles Rückgängig machen. Ich habe einen anderen weg gefunden? Was mein Ihr? http://doc.silverstripe.com/doku.php?id=recipes:multilingual_content
  • alexbeka
    Community Member
    11 Beiträge

    Re: Silverstripe Englisch / Deutsch

    Hallo,

    als Einstieg bezüglich Mehrsprachigkeit ist folgender Artikel hilfreich: http://doc.silverstripe.org/doku.php?id=multilingualcontent;
    ich habe im _config.php file folgendes stehen bzgl. Mehrsprachigkeit:

    //making silverstripe multilinugal
    Object::add_extension('SiteTree', 'Translatable');
    //set default language
    Translatable::set_default_locale('de_AT');

    und in der Init()-Funktion von der Page_Controller Klasse:

    if($this->dataRecord->hasExtension('Translatable')) {
             i18n::set_locale($this->dataRecord->Locale);
          }


    bezüglich dem Löschen der Seiten über Batch-Aktionen musst du eventuell diesen Patch einspielen: http://open.silverstripe.com/ticket/4442


    die Alternative "http://doc.silverstripe.com/doku.php?id=recipes:multilingual_content" würde ich eigentlich bei Verwendung der Version 2.3.3 nicht mehr verwenden da diese Alternative sich eher auf vorige Versionen bezieht wo die Mehrsprachigkeit noch mehr Bugs hatte;

    lg
    Alex

  • Newbie2009
    Community Member
    14 Beiträge

    Re: Silverstripe Englisch / Deutsch

    Vielen Dank Alex! Hat alles funktioniert! Hatte meine SS neu aufgesetzt und alles so gemacht wie Du beschrieben hast. Danke!!!!

    Man kann jetzt die Kategorien übersetzen lassen und Sie erscheinen im englischen Bakcend. Aber ich kann leider keine Kategorien löschen. Das mit dem Patch habe ich auch auspropiert d.h. den Code wie im Beispiel geändert. Danach lief leider nichts mehr.

    Ich würde auch gern meiner englischen Seite andere Seitentypen zuweisen. Leider lässt sich da nichts mehr auswählen. Hast Du dafür eine Lösung.




    Danke für Deine hilfe!

  • alexbeka
    Community Member
    11 Beiträge

    Re: Silverstripe Englisch / Deutsch

    Hallo,

    1.) Löschen der Seiten: also bei mir funktioniert das Löschen von übersetzten Seiten nach dem Einspielen dieses Patches (Änderung in cms/code/CMSBatchActionHandler.php und sapphire/core/model/Hierarchy.php) mit den Batch-aktionen; Bzgl. Benennung der Batch-Aktionen solltest du auch noch diesen Patch einspielen http://open.silverstripe.org/ticket/4420 ;
    Als Workaround wenn du mit dem Löschen über die Batch-Aktionen Probleme hast kannst du auch die beiden Buttons "Veröffentlichung zurücknehmen" und "Von Entwurf-Seite löschen" heranziehen; natürlich könntest du die Seiten auch manuell in der Datenbank löschen in den Tabellen sitetree, sitetree_live, sitetree_versions sofern die Seiten vom Seitentyp "Page" sind;

    2.) eigener Seitentyp für übersetzte Seite: ist per default nicht möglich, wüsste auch nicht wie man das implementieren könnte auf die schnelle; macht meiner Meinung nach auch wenig Sinn für die Übersetzung einen anderen Seitentyp zu nehmen; im "englischen" Seitenbaum kannst du natürlich neue Seiten erstellen mit eigenen Seitentypen, aber das sind halt dann keine "Übesetzungen" mehr;
  • Newbie2009
    Community Member
    14 Beiträge

    Re: Silverstripe Englisch / Deutsch

    Nochmals vielen Dank Alex für Deine Hilfe! Ich habe im Moment sehr viel Druck meine Internetprojekt fertig zu bekommen und du hast mir echt entscheident weitergeholfen.

    Muss trotzdem noch mal eine dumme Frage stellen. Ich versteh das mit _t-Funktionen im Template nicht. Wo soll ich die denn hin kopieren? Ich habe das nämlich nicht benutzt, weil ich nicht weiß wie ich das anwenden soll. hmm

    Ohne die Änderungen der _t Funktion kann ich den Code nicht so wie im Batch beschrieben abändern. -t Funktion parse Error sagt mir das System nach den Änderungen.

    Das mit den Seitentypen ist echt verdammt schade. Muss jetzt leider die gedachte Idea von einer Übersetzung aufgeben. Da meine Seitentypen alle Bildinhalte im Head mit Text auf English sein müssen. auch die Sidebar muss English sein. Finde das alles ein wenig umständlich in Silverstripe. Bei anderen System kann man die Mandanten komplett duplizieren und danach übersetzen.

    lg
    Clemens



  • alexbeka
    Community Member
    11 Beiträge

    Re: Silverstripe Englisch / Deutsch

    1.)i18n: bzgl. der _t()-Funktion ist als Einstieg folgender Artikel hilfreich, http://doc.silverstripe.org/doku.php?id=i18n; ich verwende die _t()-Funtion z.b. im page_results.ss template einfach so: <p><% _t('SorryNoResultsFound','Sorry, your search query did not return any results.') %></p> und schreibe dann in /mysite/lang/en_US.php: global $lang;
    $lang['en_US']['Page_results.ss']['SorryNoResultsFound'] = 'Sorry, your search query did not return any results.';
    und in /mysite/lang/de_AT.php: global $lang;
    $lang['de_AT']['Page_results.ss']['SorryNoResultsFound'] = 'Leider wurden keine passenden Inhalte zu Ihrem Such-Text gefunden.';

    die Übersetzungsfiles, also en_US.php und de_AT.php, erzeuge ich manuell und nicht über $link/dev/tasks/i18nTextCollectorTask, da der Textcollector bei mir die _t()-Funtionen in den templates nicht gefunden hat, trotz Installation von phpunit, siehe auch http://www.silverstripe.org/general-questions/show/266124#post266124; als Alternative zum i18nTextCollectorTask wäre auch der Langbuilder, http://bummzack.ch/langbuilder/, interessant, jedoch habe ich ihn nicht ausprobiert, da ich die paar Übersetzungen auch schnell manuell einfügen kann und ich auch nicht ausprobiert habe ob der Langbuilder auch auf WAMP Server korrekt läuft;

    2.) Seitentypen: verstehe nicht genau was du versuchst zu implementieren; beschreib mal textuell u. bildlich was du implementierst dann kann ich dir event. weiterhelfen;
  • andre
    andre Community Member
    8 Beiträge

    Re: Silverstripe Englisch / Deutsch

    Hallo, ich versuche ebenfalls eine einfache Zweisprachige Seite zu realisieren und komme leider irgendwie so garnicht mit den Konzepten klar.

    Meiner _config.php habe ich nun folgende Zeilen hinzugefügt

    // add multilanguage Support
    i18n::set_locale('de_DE');
    Object::add_extension('SiteTree', 'Translatable');
    Translatable::set_default_locale('de_DE');


    Ich habe bisher nur Seiten, die auch wirklich von Page erben. Also habe ich auch dem Page_Controller in der init() Funktion folgende Zeilen hinzugefügt

          if($this->dataRecord->hasExtension('Translatable')){
              i18n::set_locale($this->dataRecord->Locale);
          }


    Was da jetzt aber genau passieren soll, ist mir zur Zeit noch Schleierhaft und auch aus dem multilingualcontent werde ich nicht wirklich schlau.

    Ich habe jetzt im Backend das Sprachdropdown, das per default auf deutscher Sprache steht. Wenn ich eine Seite Übersetze, bekomme ich im Backend einen zweiten Seitenbaum in der gewahlten Sprache. Allerdings bekommt jede dieser Seiten auch gleich wieder eine neue URL (/home wird zu /home-2 in derzweiten Sprache). Wenn ich nun /home anwähle und dort ?locale=de_DE oder ?locale=en_UK hinterschreibe, hat das keine Auswirkung, ebenso für /home-2 ich bekomme immer die angewählte Seite. Wie genau wird denn jetzt so eine Übersetzung gehandhabt, am besten mit einem Kleinen Languageselector (Flaggen) der mich immer auf die entsprechende Seite in der anderen Landessprache weiterleitet und das ganze möglichst Automatisch, damit es auch von einem standartdummi gepflegt werden kann und man keinen Zugriff auf die PHP Klassen und oder die Templates benötigt. Nächster Punkt auf der Wunschliste wäre noch das verbleiben auf der Fallbacksprache, falls es zu einer Seite keine Übersetzung gibt.

Zur Zeit online: Zur Zeit ist leider niemand online.

Wir begrüßen unsere neuen Mitglieder: saerdna