Re: Sprachen switchen
22.07.2009 um 11:44
Zuletzt bearbeitet: 22.07.2009 um 11:51
class Page extends SiteTree {
static $extensions = array(
"Translatable"
);
}
gehört in mysite/page.php
im config.php
Object::add_extension('SiteTree', 'Translatable');
und, wenn die standardsprache de_DE sein soll:
Translatable::set_default_locale(<locale>);
danach ein /dev/build/?flush=1
dann sollte man im Admin, Seiten in mehreren Sprachen gestalten können.
Zum umswitchen der Sprache auf einer Seite, z.b. im template ein Link zur homeseite zu den anderen Sprachen herstellen.
Damit die Seite dann auch die dazugehörige Locale kennt, im page.php den Controller um
public function init() {
parent::init();
if($this->dataRecord->hasExtension('Translatable')) {
i18n::set_locale($this->dataRecord->Locale);}
erweitern/abändern. (Für die richtige Sprache bei <% _t() %> in den templates)
Re: Sprachen switchen
22.07.2009 um 12:26
Zuletzt bearbeitet: 22.07.2009 um 12:40
@Chuckgyver
vielen Dank, ... werde ich gleich erst mal umsetzen - ist doch irgendwie gleich viel weniger kompliziert?! Super!
Sooo, ...
bei
Translatable::set_default_locale(<locale>);
bekomme ich einen Parse Error
und bei den Links zu den anderen Sprachen häng ich noch ein wenig, ... wie muss das href denn da Beispielsweise aussehen?
alles ist gut, so lange es gut ist.
Re: Sprachen switchen
22.07.2009 um 15:27
Zuletzt bearbeitet: 22.07.2009 um 15:32
grml .. copy&paste ....
Statt locale, den langen Ländercode z.b. 'de_DE' , 'en_US' usw.
Nachdem dann eine Seite in einer Anderen Seite angelegt wurde, sieht man dann unter Metadaten dann die url. Im Normalfall wird die URL in anderen Sprachen um -$Zahl erweitert. Also wenn die URL händisch nicht umbenannt wurde, dann müsst für die zweite Sprache die URL der homeseite ..../home-2 sein.
im template dann, nen platz suchen und z.b. mit einem Bildchen verlinken <a href="/home-2"><img src="..../Britische Flagge.jpg" alt="British Flag" title="English"></a>
oder mit
<a href="$get_homepage_urlsegment_by_locale(de_DE)"> <img ... ></a>