Assembly satellite

martedì 24 febbraio 2004 - 15.39

anakin Profilo | Newbie

ciao a tutti,
utilizzo gli assembly satellite per localizzare le mie pagine; mi è stato di molto aiuto il seguente l'articolo http://www.aspitalia.com/articoli/aspplus/resources.aspx.
Praticamente come viene spiegato nell'articolo mi sono realizzato due assemblies, uno inglese di default che sta nella bin ed uno italiano che sta nella sottodirectory it; a differenza dell'articolo però mi sono gestito due eventi nel global.asax che qui riporto in maniera semplificata:

Public Sub Application_OnStart(ByVal sender As Object, ByVal e As EventArgs)
Dim DllDescriptions As [Assembly] = [Assembly].Load("Descriptions")
Application("RM") = New ResourceManager("resources", DllDescriptions)
End Sub


Public Sub Application_PreRequestHandlerExecute(ByVal sender As Object, ByVal e As EventArgs)
If Request.IsAuthenticated Then
'Thread.CurrentThread.CurrentCulture = New CultureInfo("it")
Thread.CurrentThread.CurrentUICulture = New CultureInfo("it")
End If
End Sub

Se tolgo il commento dalla prima riga:
Thread.CurrentThread.CurrentCulture = New CultureInfo("it")
ottengo questo messaggio di errore:
"Culture is a neutral culture. It can not be used in formatting and parsing and therefore cannot be set as the thread's current culture."

Dove viene stabiliti che it è la cultura neutrale ?

Grazie

Brainkiller Profilo | Guru

Dal Framework viene stabilito,
it è neutral, mentre it-IT è specifica.
Prova a sostituire con:
Thread.CurrentThread.CurrentCulture = New CultureInfo("it-IT")

Leggiti i capitoletti del Framework intitolati:

Using the CurrentCulture Property
Using the CurrentUICulture Property

ciao
david

anakin Profilo | Newbie

grazie brainkiller,
ho provato a mettere it-IT e non da più errore.
Di conseguenza a questo avrei altre domande:

come mai l'errore me lo dava nella CurrentCulture mentre nella CurrentUICulture il valore it veniva accettato ?

mi conviene passare it-IT anche nella CurrentUICulture ? Ma in questo caso dovrei anche rinominare la sottodirectory it ? oppure creare una sottodirectory di it ?

Esiste una cultura anche per il polacco ?

Grazie 1000, anakin

Brainkiller Profilo | Guru

C'è scritto tutto nei due capitoletti che ti ho indicato nel messaggio precedente.
Si tratta appena di avere un po' di pazienda e leggerli. Ti riporto delle frasi dal Framework:

"Throughout this topic, the terms "neutral culture" and "specific culture" are used. A neutral culture is specified by only the two-digit lowercase culture code. For example, "fr" specifies the neutral culture for French, and "de" specifies the neutral culture for German. A specific culture is identified by the culture code followed by the two-digit uppercase subculture code. For example, "fr-FR" specifies French in France and "fr-CA specifies French in Canada."

In pratica la neutrale culture è formata semplicemente da due letterine per esempio "it", ma non è l'unica poi ci sono quelle specifiche appunto per esempio "it-IT" per l'italia ma ci può essere anche "it-CH" per la Svizzera. Semplicemente ti dava errore perchè non potevi assegnare una netruale ma dovevi usarne una specifica in quel caso, è il framework che è fatto così.

Qui trovi tutte le Cultures, c'è anche quella polacca: (polish)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemGlobalizationCultureInfoClassTopic.asp

Leggi tutti i paragrafi precedenti e seguenti in modo che ti chiarisci le idee.

ciao
david
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5