2016-05-11 7 views
1

Ich möchte einen Blog mit mehrsprachigen Inhalten in Kraken.JS erstellen. Wie soll ich die Controller/Modell/Routen bauen diese URLs erhalten:Krakenjs Routen mit i18n URLs

/en-US/article/hello-world 
/de-DE/article/hello-world 
/it-IT/article/hello-world 

Die Schnecke (hallo-Welt) nicht internationalisiert werden. Ich möchte nicht den Controller in Dateien wie kopieren:

controllers/en-US/article/index.js 
controllers/de-DE/article/index.js 
controllers/it-IT/article/index.js 

Gibt es eine schönere Art und Weise diese Datei mit nur einem Controller zu tun?

Antwort

0

Ja, es kann mit einem einzigen Controller erfolgen:

Kasse dieses Beispiel für Anweisungen, wie diese https://github.com/krakenjs/kraken-example-with-i18n#adding-a-hook-to-set-the-locale-on-the-fly

Eine Möglichkeit, dies zu erreichen, um folgende Aktionen könnte sein:

router.get('/:locale/article/:article_name', function (req, res) { 
    res.cookie('locale', req.params.locale); 
    res.redirect('/article/:article_name'); 
}); 

Es würde nur einen Controller geben: controller/article/index.js

+0

Sorry, aber ist das nicht eine ziemlich schlechte Lösung? Jede Anfrage würde zu einer URL ohne das Gebietsschema führen und sich immer noch auf einen Cookie verlassen. – Nick

+0

@Nick Es ist eine schlechte Lösung. –