Voglio creare un file di risorse per Singaporean English (en-sg) denominato "shopping.en-sg.resx" nella cartella App_GlobalResources.Creare cultura personalizzata in ASP.NET
Errore durante la compilazione.
Error 1 Lo spazio dei nomi 'Risorse' contiene già una definizione per 'di shopping' C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files \ web \ 2cd6afe9 \ 737b0a13 \ App_GlobalResources.vomuzavz.1.cs 26
dopo la ricerca di Google, scopro che "en-sg" non è una cultura di default e devo fare cultura personalizzato per esso. Non conosco i passaggi dettagliati di questo.
Cosa devo fare per creare la cultura e rimuovere l'errore di compilazione?
seguo l'esempio di MSDN, creare un file chiamato "shopping.x-en-US-sample.resx" e inserire il seguente codice nella funzione di BasePage (InitializeCulture protected override void()):
CultureAndRegionInfoBuilder cib = null;
cib = new CultureAndRegionInfoBuilder(
"x-en-US-sample", CultureAndRegionModifiers.None);
CultureInfo ci = new CultureInfo("en-US");
cib.LoadDataFromCultureInfo(ci);
RegionInfo ri = new RegionInfo("US");
cib.LoadDataFromRegionInfo(ri);
cib.Register();
ci = new CultureInfo("x-en-US-sample");
Tuttavia, l'errore di compilazione è ancora presente.
aggiornamento:
Si può facilmente riprodurre il problema con la creazione di un sito web vuota e due file "shopping.en-sg.resx" e "shopping.resx" nella cartella App_GlobalResources.
Dove dovrei inserire questo codice per evitare l'errore? – Billy
Questo codice deve essere eseguito solo una volta sulla macchina in cui è necessaria la cultura aggiuntiva. Forse stai ricevendo l'errore perché esiste già? –
Inserisci il codice in global.asax? Se cambio "en-sg" in "en-us", allora va bene. Voglio solo un pezzo di codice che posso semplicemente mettere da qualche parte e dopo posso usare lo shopping.en-sg.resx – Billy