Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
asp.net mvc2: lokalisierte Routen
[email protected]
myCSharp.de - Member



Dabei seit:
Beiträge: 407

Themenstarter:

asp.net mvc2: lokalisierte Routen

beantworten | zitieren | melden

Hi,

ich würd gerne urls mit der Form

{lang}/{controller}/
{lang}/{controller}/{id}/

lokalisieren...

Beispiel:

http://www.domain.de/aktuelles/
http://www.domain.de/en/news/

http://www.domain.de/aktuelles/titel-des-eintrags/
http://www.domain.de/en/news/title-of-entry/


Und "aktuelles" bzw. "news" soll hier dann auf den Controller => news geroutet werden.
Und wenn eine 3. Sprache dazukommt soll der übersetzte "wert" ebenfalls
auf news geroutet werden...

Der Wert für die Language ist kein Problem, aber wie könnte das mit dem Controller bzw. auch Actions funktionieren?
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15967

beantworten | zitieren | melden

Hallo,

da gibt's verschiedene Möglichkeiten.

Ich nutze ausschließlich diese Variante:
Localization in ASP.NET MVC – 3 Days Investigation, 1 Day Job, da hier das Abfragen innerhalb der Controllers weg fällt und man einiges an Arbeit spar.

Wenn Du ein wenig googlest wirst Du aber wie gesagt verschiedene Ansätze sehen.
Such Dir den aus, der zu Deiner Anwendung passt.
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
[email protected]
myCSharp.de - Member



Dabei seit:
Beiträge: 407

Themenstarter:

beantworten | zitieren | melden

Hi,

danke für den Link...

Ich hab auch schon mehrere "Varianten" durchgelesen.

Es ist aber keine zu finden wo der Controller bzw. Action-"Name" lokalisiert wird.

Der Language-Code vorne weg alleine reicht mir nicht...

In deinem Beispiel ist das auch nicht so...

http://www.foobar.com/fr/account.....

es müsste aber
http://www.foobar.com/fr/compte
oder
http://www.foobar.com/Konto....
oder
http://www.foobar.com/en/account
heissen..
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15967

beantworten | zitieren | melden

Das geht dann nur über die RouteCollection.


routes.MapRoute("ACCOUNT_EN", "en/Account/{action}", new { controller="Account", action="Index"} );

routes.MapRoute("ACCOUNT_FR", "fr/Compte/{action}", new { controller="Account", action="Index"} );

routes.MapRoute("ACCOUNT_DE", "de/Konto/{action}", new { controller="Account", action="Index"} );

Die RouteCollection im Global.asax.cs File möchte meines Wissens keine Konstante, sodass Du hier ein Mapping vornehmen kannst, sprich eine Übersetzung.
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers