OVH Cloud OVH Cloud

Un petit au secours sur l'utilisation des Assembly satellites

2 réponses
Avatar
fabrice
Bonjour à tous,

Je viens vers vous pour un coup de pouce sur la mise en place d'assembly
satellite dans une le cadre d'un application Web Form sous le framework 1.1
et VB.NET
Je n'utilise pas Visual Studio.
Je tente juste pour l'instant de tester la possibilité d'internationaliser
une page. Une sorte de modèle. J'ai lu je ne sais combien de documents mais
quelque chose doit encore m'échapper.

J'arrive aujourd'hui sans souci à utliser des fichiers .resource pour
obtenier par exemple le texte de control label.

Ce que je voudrais c'est passer à l'étape supérieure et compiler en DLL.
J'ai suivi 10 méthodes mais le changement de langue ne s'opère pas. Voici ma
méthode :
j'ai une simple page index.aspx et son fichier code behind index.aspx.vb


1- je construit de fichiers .TXT
---------------------------------
strings.txt -> langue par défaut
strings.en-NZ.txt > version en-NZ


2- je crée le fichier .resource suivant (fichier de langue par défaut):
------------------------------------------
resgen strings.txt strings.resources


3- je compile le fichier index.aspx.vb en liant mon fichier de ressources et
j'obtiens la DLL.
-----------------------------------------------------------------------------------------------

vbc /t:library /r:system.web.dll /r:system.dll /r:System.Data.dll
/res:strings.resources index.aspx.vb

=> A ce stade si je lance l'application la page est chargé et les controles
prennent la valeur des textes du fichier ressources strings.resources.


4- Je veux prévoir la langue en-NZ
------------------------------------------
Je compile l'assembly satellite ainsi.
al /t:lib /culture:en-NZ /embed:strings.en-NZ.resources
/out:index.aspx.resources.dll

puis je vais dans le répertoire \bin de mon application web, je crée un
répretoire en-NZ et je copie la dll index.aspx.resources.dll.


pour tester la langue j'utilise ponctuellement le global.asax avec la Sub
Application_BeginRequest contenant le code suivant :

Dim ci As New CultureInfo("en-NZ")
Thread.CurrentThread.CurrentCulture = ci
ci=CultureInfo.CurrentCulture

La culture dans la page index.aspx est bien prise en compte. Mais concernant
le changement de langue NADA:! on a l'impression qu'il s'en fout.
Je me dis que j'ai oublié quelque chose. Quoi je ne sais pas.
Pour récupérer les textes voici mon code dans la page :


Dim rm As ResourceManager = New ResourceManager("strings",
System.Reflection.Assembly.GetExecutingAssembly())
usernameLabel.Text = rm.GetString("Username")
passwordLabel.Text = rm.GetString("Password")
login.Text = rm.GetString("Login")


Voila, c'est un peu long mais si quelqu un pouvait m'aider ou me dire
comment il a fait dans une procédure type.... merci par avance.

fabrice

2 réponses

Avatar
Patrice
J'avoue ne pas avoir lu en détail mais les ressources sont contrôlées par
UICulture. Si tu ajoutes également le changement de UICulture dans le
global.asax cela donne quoi ?

--
Patrice

"fabrice" a écrit dans le message de
news:
Bonjour à tous,

Je viens vers vous pour un coup de pouce sur la mise en place d'assembly
satellite dans une le cadre d'un application Web Form sous le framework


1.1
et VB.NET
Je n'utilise pas Visual Studio.
Je tente juste pour l'instant de tester la possibilité d'internationaliser
une page. Une sorte de modèle. J'ai lu je ne sais combien de documents


mais
quelque chose doit encore m'échapper.

J'arrive aujourd'hui sans souci à utliser des fichiers .resource pour
obtenier par exemple le texte de control label.

Ce que je voudrais c'est passer à l'étape supérieure et compiler en DLL.
J'ai suivi 10 méthodes mais le changement de langue ne s'opère pas. Voici


ma
méthode :
j'ai une simple page index.aspx et son fichier code behind index.aspx.vb


1- je construit de fichiers .TXT
---------------------------------
strings.txt -> langue par défaut
strings.en-NZ.txt > version en-NZ


2- je crée le fichier .resource suivant (fichier de langue par défaut):
------------------------------------------
resgen strings.txt strings.resources


3- je compile le fichier index.aspx.vb en liant mon fichier de ressources


et
j'obtiens la DLL.
--------------------------------------------------------------------------


---------------------

vbc /t:library /r:system.web.dll /r:system.dll /r:System.Data.dll
/res:strings.resources index.aspx.vb

=> A ce stade si je lance l'application la page est chargé et les


controles
prennent la valeur des textes du fichier ressources strings.resources.


4- Je veux prévoir la langue en-NZ
------------------------------------------
Je compile l'assembly satellite ainsi.
al /t:lib /culture:en-NZ /embed:strings.en-NZ.resources
/out:index.aspx.resources.dll

puis je vais dans le répertoire bin de mon application web, je crée un
répretoire en-NZ et je copie la dll index.aspx.resources.dll.


pour tester la langue j'utilise ponctuellement le global.asax avec la Sub
Application_BeginRequest contenant le code suivant :

Dim ci As New CultureInfo("en-NZ")
Thread.CurrentThread.CurrentCulture = ci
ci=CultureInfo.CurrentCulture

La culture dans la page index.aspx est bien prise en compte. Mais


concernant
le changement de langue NADA:! on a l'impression qu'il s'en fout.
Je me dis que j'ai oublié quelque chose. Quoi je ne sais pas.
Pour récupérer les textes voici mon code dans la page :


Dim rm As ResourceManager = New ResourceManager("strings",
System.Reflection.Assembly.GetExecutingAssembly())
usernameLabel.Text = rm.GetString("Username")
passwordLabel.Text = rm.GetString("Password")
login.Text = rm.GetString("Login")


Voila, c'est un peu long mais si quelqu un pouvait m'aider ou me dire
comment il a fait dans une procédure type.... merci par avance.

fabrice




Avatar
fabrice
Salut Patrice.

J'ai essayé et ..... royal ! il me manquait juste cela !
tu es un dieu ;-)

merci encore, je vais pouvoir continuer.

bonne journée.

fabrice


"Patrice" a écrit dans le message de news:

J'avoue ne pas avoir lu en détail mais les ressources sont contrôlées par
UICulture. Si tu ajoutes également le changement de UICulture dans le
global.asax cela donne quoi ?

--
Patrice

"fabrice" a écrit dans le message de
news:
Bonjour à tous,

Je viens vers vous pour un coup de pouce sur la mise en place d'assembly
satellite dans une le cadre d'un application Web Form sous le framework


1.1
et VB.NET
Je n'utilise pas Visual Studio.
Je tente juste pour l'instant de tester la possibilité
d'internationaliser
une page. Une sorte de modèle. J'ai lu je ne sais combien de documents


mais
quelque chose doit encore m'échapper.

J'arrive aujourd'hui sans souci à utliser des fichiers .resource pour
obtenier par exemple le texte de control label.

Ce que je voudrais c'est passer à l'étape supérieure et compiler en DLL.
J'ai suivi 10 méthodes mais le changement de langue ne s'opère pas. Voici


ma
méthode :
j'ai une simple page index.aspx et son fichier code behind index.aspx.vb


1- je construit de fichiers .TXT
---------------------------------
strings.txt -> langue par défaut
strings.en-NZ.txt > version en-NZ


2- je crée le fichier .resource suivant (fichier de langue par défaut):
------------------------------------------
resgen strings.txt strings.resources


3- je compile le fichier index.aspx.vb en liant mon fichier de ressources


et
j'obtiens la DLL.
--------------------------------------------------------------------------


---------------------

vbc /t:library /r:system.web.dll /r:system.dll /r:System.Data.dll
/res:strings.resources index.aspx.vb

=> A ce stade si je lance l'application la page est chargé et les


controles
prennent la valeur des textes du fichier ressources strings.resources.


4- Je veux prévoir la langue en-NZ
------------------------------------------
Je compile l'assembly satellite ainsi.
al /t:lib /culture:en-NZ /embed:strings.en-NZ.resources
/out:index.aspx.resources.dll

puis je vais dans le répertoire bin de mon application web, je crée un
répretoire en-NZ et je copie la dll index.aspx.resources.dll.


pour tester la langue j'utilise ponctuellement le global.asax avec la Sub
Application_BeginRequest contenant le code suivant :

Dim ci As New CultureInfo("en-NZ")
Thread.CurrentThread.CurrentCulture = ci
ci=CultureInfo.CurrentCulture

La culture dans la page index.aspx est bien prise en compte. Mais


concernant
le changement de langue NADA:! on a l'impression qu'il s'en fout.
Je me dis que j'ai oublié quelque chose. Quoi je ne sais pas.
Pour récupérer les textes voici mon code dans la page :


Dim rm As ResourceManager = New ResourceManager("strings",
System.Reflection.Assembly.GetExecutingAssembly())
usernameLabel.Text = rm.GetString("Username")
passwordLabel.Text = rm.GetString("Password")
login.Text = rm.GetString("Login")


Voila, c'est un peu long mais si quelqu un pouvait m'aider ou me dire
comment il a fait dans une procédure type.... merci par avance.

fabrice