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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
robert
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 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é.
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
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.
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".
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
On 8 juil, 22:54, robert wrote:
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
On 8 juil, 22:54, robert <rob...@free.fr> wrote:
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
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
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...
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...