choix de la langue des ressources

Le
Sylvain SF
Bjr,

[VS 2005, C API]

mon appli. contient des ressources string pour plusieurs langues,
tournant sur un OS français l'appli. affiche (sans surprise) la
version française de ces chaînes, celles définies sous

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA)
LANGUAGE LANG_FRENCH, SUBLANG_FRENCH
#pragma code_page(1252)

// les string affichées par un OS fr-xx

#endif

les chaînes étant chargés depuis l'exec par un basic

::LoadString(instance, resID, buffer, 1024);


si je vire ce block et garde des ressources
- anglaises (américaines) LANG_ENGLISH, SUBLANG_ENGLISH_US
- espagnoles (guatemala) LANG_SPANISH, SUBLANG_SPANISH_GUATEMALA
- et neutres LANG_NEUTRAL, SUBLANG_DEFAULT

LoadString me retourne toujours la chaîne anglaise.

comment forcer la langue par défaut, ou comment utiliser les
ressources neutres quand aucune ressource matchant exactement
la langue de l'OS n'est présente ??

(sous propriétés du projet / Ressources / Culture, j'ai sélectionné
"Espagnol (Guatemala)(0x100a)" sans que cela ne change quoique ce soit
les string es-gu ne sont pas utilisées par défaut.

Merci pour votre aide.
Sylvain.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
robert
Le #19725291
Sylvain SF a écrit :
Bjr,

[VS 2005, C API]

mon appli. contient des ressources string pour plusieurs langues,
tournant sur un OS français l'appli. affiche (sans surprise) la
version française de ces chaînes, celles définies sous

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA)
LANGUAGE LANG_FRENCH, SUBLANG_FRENCH
#pragma code_page(1252)

// les string affichées par un OS fr-xx

#endif

les chaînes étant chargés depuis l'exec par un basic

::LoadString(instance, resID, buffer, 1024);


si je vire ce block et garde des ressources
- anglaises (américaines) LANG_ENGLISH, SUBLANG_ENGLISH_US
- espagnoles (guatemala) LANG_SPANISH, SUBLANG_SPANISH_GUATEMALA
- et neutres LANG_NEUTRAL, SUBLANG_DEFAULT

LoadString me retourne toujours la chaîne anglaise.

comment forcer la langue par défaut, ou comment utiliser les
ressources neutres quand aucune ressource matchant exactement
la langue de l'OS n'est présente ??

(sous propriétés du projet / Ressources / Culture, j'ai sélectionné
"Espagnol (Guatemala)(0x100a)" sans que cela ne change quoique ce soit
les string es-gu ne sont pas utilisées par défaut.

Merci pour votre aide.
Sylvain.


As-tu essayé en appelant SetThreadLocale? (j'ai vu ca a plusieurs
endroit, j'ai aussi vu qu'il était déconseillé de l'appeler, mais ca ne
coute rien d'essayer).
En cherchant des infos sur ton pb, j'ai vu pas mal de gens qui ont
carrément réécrit leur propre fonction LoadString (a partir de
FindResource, etc...). J'ai déja eu l'occasion de faire ca, c'est pas
trop compliqué.
Sylvain SF
Le #19725801
robert a écrit :



As-tu essayé en appelant SetThreadLocale?



non.

En cherchant des infos sur ton pb, j'ai vu pas mal de gens qui ont
réécrit leur propre fonction LoadString.



c'est une option, mais faut savoir faire une division par 16 avec
reste, un vrai challenge ...

ça n'expliquera pas pourquoi, l'appli. refuse de gérer un "langage
par défaut".

Sylvain.
Christian ASTOR
Le #19727471
On 8 juil, 22:54, robert
As-tu essayé en appelant SetThreadLocale? (j'ai vu ca a plusieurs
endroit, j'ai aussi vu qu'il était déconseillé de l'appeler, mais c a ne
coute rien d'essayer).



Oui, ce n'est pas forcément déconseillé mais on utilise en généra l des
DLL pour chaque langue :
http://msdn.microsoft.com/en-us/library/cc194811.aspx
et l'exemple SatDLL de MSDN :
http://msdn.microsoft.com/fr-fr/library/fe5w38bb(VS.80).aspx
robert
Le #19730811
Sylvain SF a écrit :
robert a écrit :



As-tu essayé en appelant SetThreadLocale?



non.

En cherchant des infos sur ton pb, j'ai vu pas mal de gens qui ont
réécrit leur propre fonction LoadString.



c'est une option, mais faut savoir faire une division par 16 avec
reste, un vrai challenge ...

ça n'expliquera pas pourquoi, l'appli. refuse de gérer un "langage
par défaut".

Sylvain.


Pourquoi tourner mes réponses en dérision de la sorte? Je tentais de
t'aider de bon coeur...
Publicité
Poster une réponse
Anonyme