Vra

Wat is die beste manier om verskeie tale vir die koppelvlak ondersteun in 'n ASP.NET MVC aansoek? Ek het gesien hoe mense gebruik hulpbron lêers vir ander programme. Is dit nog steeds die beste manier?

Was dit nuttig?

Oplossing

As jy die standaard enjins, dan werk plaaslike hulpbronne in die uitsig. Maar, as jy nodig het om hulpbron stringe gryp binne 'n kontroleerder aksie, jy kan nie plaaslike hulpbronne kry, en het tot globale hulpbronne gebruik.

Dit maak sin as jy daaroor dink, want plaaslike hulpbronne is plaaslike tot 'n ASPX bladsy en in die kontroleerder, het jy nie eens gekies jou siening.

Ander wenke

Ek het gevind hierdie hulpbron baie behulpsaam te wees

Dit is 'n wrapper rondom die HttpContext.Current.GetGlobalResourceString en HttpContext.Current.GetLocalResourceString wat jou toelaat om die hulpbronne soos hierdie skakel ...

// default global resource
Html.Resource("GlobalResource, ResourceName")

// global resource with optional arguments for formatting
Html.Resource("GlobalResource, ResourceName", "foo", "bar")

// default local resource
Html.Resource("ResourceName")

// local resource with optional arguments for formatting
Html.Resource("ResourceName", "foo", "bar")

Die enigste probleem wat ek gevind is dat leiers nie toegang tot plaaslike resouce snare het.

Ja hulpbronne is nog steeds die beste manier om verskeie tale in die NET omgewing te ondersteun. Want dit is maklik om te verwys en selfs makliker om nuwe tale te voeg.

Site.resx
Site.en.resx
Site.en-US.resx
Site.fr.resx
etc...

So jy is reg nog steeds gebruik die hulpbron lêers.

Die Orchard projek maak gebruik van 'n kortpad metode met die naam "T" aan almal in-bladsy string vertalings doen. Sodat jy tags sien met 'n @T ( " 'n string in om te vertaal").

Ek is van plan om te kyk na hoe dit geïmplementeer agter die skerms en potensieel gebruik dit in toekomstige projekte. Die kort naam hou die kode skoner aangesien dit sal gebruik word 'n baie .

Wat ek graag oor hierdie benadering is die oorspronklike string (Engels, in hierdie geval) is nog maklik sigbaar in die kode, en nie die geval vereis 'n lookup in 'n hulpbron hulpmiddel of 'n ander plek om te ontsyfer wat die werklike string hier moet wees .

http://orchardproject.net vir meer inligting.

Van die ander oplossings genoem as antwoord nie werk vir die vrygestel weergawe van MVC (hulle het saam met vorige weergawes van alfa / beta).

Hier is 'n goeie artikel beskryf 'n manier om lokalisering wat sal sterk getik en sal nie breek die eenheid toets van beheerders en menings te implementeer: lokalisering gids vir MVC v1

Dit is 'n ander opsie, en jy sal toegang tot die CurrentUICulture in die beheerder het:

Gaan MVC3-multi-taal

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top