OVH Cloud OVH Cloud

Traduction

10 réponses
Avatar
VinceVg
Salut,

Je cherche une aplication qui me permette de rendre traduisible une
aplication déjà terminée. Je souhaiterais que l'utilisateur puisse choisir
une langue et que les références soient dans un fichier texte ou ini. Est-ce
que ça existe ? Je dispose de VS6 et de VS2005 et j'aurais besoin de traduire
pour les 2?

10 réponses

Avatar
X
Bonjour,
Pour VB6 (vb > 6 n'est pas ici (DotNet ?)), et pour ce que je sais, tu peux
en effet permettre le choix d'une langue et mettre les traductions dans un
fichier txt, suffit ensuite d'appeler suivant les besoins, la bonne ligne du
fichier...

--
Site logiciels
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
------------------------------------------------------------------------------------
"VinceVg" a écrit dans le message de
news:
Salut,

Je cherche une aplication qui me permette de rendre traduisible une
aplication déjà terminée. Je souhaiterais que l'utilisateur puisse choisir
une langue et que les références soient dans un fichier texte ou ini.
Est-ce
que ça existe ? Je dispose de VS6 et de VS2005 et j'aurais besoin de
traduire
pour les 2?


Avatar
Fred
dans : news:,
VinceVg écrivait :

Salut,



Bonsoir,

Je cherche une aplication qui me permette de rendre traduisible une
aplication déjà terminée.



Je ne sais pas si une telle application existe.

Je souhaiterais que l'utilisateur puisse
choisir une langue et que les références soient dans un fichier texte
ou ini. Est-ce que ça existe ? Je dispose de VS6 et de VS2005 et
j'aurais besoin de traduire pour les 2?



Pour VS2005 tu as les groupes suivants :
microsoft.public.fr.dotnet.visualstudio (environnement de développement)
microsoft.public.fr.dotnet.vb (le langage vb)
microsoft.public.fr.dotnet (le framework)

Avec .NET, l'internationalisation d'une application est extrêmement
simplifiée.
Il suffit de créer des fichiers de ressources (pour chaque projet et
même pour chaque classe).
ex :
- un projet lib.vbp
- un fichier de ressources lib.resx (langue par défaut, je mets
l'anglais ici en général)
- un fichier de ressources lib.fr.resx pour la culture francophone
etc ...
On peut affiner avec par exemple : lib.fr-FR.resx : français de France

Ces fichiers sont au format XML. Ils peuvent être éventuellement créés
en dehors de l'environnement de développement. VS se chargeant de
générer le code d'accès aux ressources lorsque les fichiers sont
intégrés au projet.

Une fois compilé, le projet est constitué d'une dll principale et
d'autant de dll satellites dans des sous-répertoires correspondants aux
codes de langue/pays (pas de fichiers texte ou ini).

En vb, le namespace My (auto généré) donne facilement accès aux chaînes
(images, etc ...) présentes dans les ressources.

Pour basculer d'une langue à une autre, il suffit de changer la culture
du thread au démarrage de l'application.
Comme ceci par exemple :
Thread.CurrentThread.CurrentCulture = New
CultureInfo(My.Settings.UserCulture)

Dans cet exemple est utilisé un «settings» de portée Utilisateur (voir
les propriétés de projet pour le créer) qui contient par exemple :
"fr-FR".


Ceci étant. Si les chaînes de caractères de ton application sont dans le
code, il va falloir tout reprendre manuellement :-(
Sauf si quelqu'un te trouve un logiciel qui permet de le faire en
automatique.

Pour le vb6, je n'ai pas eu l'occasion de le faire mais j'en connais qui
l'ont utilisé ... (scraper tu es dans le coin ? ;-) )
Patience ...


--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
Avatar
Fred
dans : news:,
Fred écrivait :

Il suffit de créer des fichiers de ressources (pour chaque projet et
même pour chaque classe).



Il faut lire : *ou* même pour chaque classe.

J'en profite pour ajouter qu'une fois l'application installée, l'ajout
d'une langue se résume à une copie du sous-répertoire contenant les dll
localisées.

--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
Avatar
X
Mdr, tu as de curieuses références pour le vb6 :o)

--
Merci beaucoup, au revoir et à bientôt :o)
------
Site logiciels
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
------------------------------------------------------------------------------------
"Fred" a écrit dans le message de news:

dans : news:,
VinceVg écrivait :

Salut,



Bonsoir,

Je cherche une aplication qui me permette de rendre traduisible une
aplication déjà terminée.



Je ne sais pas si une telle application existe.

Je souhaiterais que l'utilisateur puisse
choisir une langue et que les références soient dans un fichier texte
ou ini. Est-ce que ça existe ? Je dispose de VS6 et de VS2005 et
j'aurais besoin de traduire pour les 2?



Pour VS2005 tu as les groupes suivants :
microsoft.public.fr.dotnet.visualstudio (environnement de développement)
microsoft.public.fr.dotnet.vb (le langage vb)
microsoft.public.fr.dotnet (le framework)

Avec .NET, l'internationalisation d'une application est extrêmement
simplifiée.
Il suffit de créer des fichiers de ressources (pour chaque projet et même
pour chaque classe).
ex :
- un projet lib.vbp
- un fichier de ressources lib.resx (langue par défaut, je mets l'anglais
ici en général)
- un fichier de ressources lib.fr.resx pour la culture francophone
etc ...
On peut affiner avec par exemple : lib.fr-FR.resx : français de France

Ces fichiers sont au format XML. Ils peuvent être éventuellement créés en
dehors de l'environnement de développement. VS se chargeant de générer le
code d'accès aux ressources lorsque les fichiers sont intégrés au projet.

Une fois compilé, le projet est constitué d'une dll principale et d'autant
de dll satellites dans des sous-répertoires correspondants aux codes de
langue/pays (pas de fichiers texte ou ini).

En vb, le namespace My (auto généré) donne facilement accès aux chaînes
(images, etc ...) présentes dans les ressources.

Pour basculer d'une langue à une autre, il suffit de changer la culture du
thread au démarrage de l'application.
Comme ceci par exemple :
Thread.CurrentThread.CurrentCulture = New
CultureInfo(My.Settings.UserCulture)

Dans cet exemple est utilisé un «settings» de portée Utilisateur (voir les
propriétés de projet pour le créer) qui contient par exemple : "fr-FR".


Ceci étant. Si les chaînes de caractères de ton application sont dans le
code, il va falloir tout reprendre manuellement :-(
Sauf si quelqu'un te trouve un logiciel qui permet de le faire en
automatique.

Pour le vb6, je n'ai pas eu l'occasion de le faire mais j'en connais qui
l'ont utilisé ... (scraper tu es dans le coin ? ;-) )
Patience ...


--
Fred
http://www.cerbermail.com/?3kA6ftaCvT


Avatar
Gloops
Salut,

Je dirais bien que si l'application est déjà terminée, c'est qu'il n'y a
rien à y ajouter ...

Je crois qu'il n'y a guère qu'une chose qu'on puisse programmer avant de
faire l'analyse de l'application, c'est les fonctions de traduction.

Mais si on développe l'application sans disposer des fonctions de
traduction ou sans avoir bien compris comment elles fonctionnent, je
crois qu'après on n'a plus besoin de la traduction.

A moins d'innover assez conséquemment ?

Après tout, bien avant de faire de la programmation, je suis bien allé
bidouiller sous Debug dans une routine de clavier pour modifier les
réactions des majuscules, on devrait pouvoir traduire les messages de la
même manière, mais quant à proposer ça comme manière propre de
travailler ...
______________________________________
Le 28/08/2006 14:26, VinceVg a écrit :
Salut,

Je cherche une aplication qui me permette de rendre traduisible une
aplication déjà terminée. Je souhaiterais que l'utilisateur puisse choisir
une langue et que les références soient dans un fichier texte ou ini. Est-ce
que ça existe ? Je dispose de VS6 et de VS2005 et j'aurais besoin de traduire
pour les 2?


Avatar
VinceVg
Merci fred pour ton explication pour le vbnet. Pour vb6 je suis en train de
faire un module de traduction. Mais si qqn en a un tout fait ça m'interesse.

"Fred" a écrit :

dans : news:,
Fred écrivait :

> Il suffit de créer des fichiers de ressources (pour chaque projet et
> même pour chaque classe).

Il faut lire : *ou* même pour chaque classe.

J'en profite pour ajouter qu'une fois l'application installée, l'ajout
d'une langue se résume à une copie du sous-répertoire contenant les dll
localisées.

--
Fred
http://www.cerbermail.com/?3kA6ftaCvT




Avatar
Gloops
Le 29/08/2006 11:44, VinceVg a écrit :
Merci fred pour ton explication pour le vbnet. Pour vb6 je suis en train de
faire un module de traduction. Mais si qqn en a un tout fait ça m'interesse.



Salut,

J'ai écrit une base internationale sous Access, qui affiche
systématiquement tous ses messages en fonction de la langue sélectionnée
dans la table adéquate.

Tu crois que ça peut aider ?

Si oui il faudra attendre Dimanche car je risque de venir moins souvent
les jours qui viennent.
Avatar
VinceVg
Je ne sais pas. Ce que je cherche à faire c'est parser mon code pour
retrouver rout ce qui est chaine affichée et les stocker dans un fichier type
ini. Ensuite il faudra les relire pour les remplacer. Si ton appli access
fait ça ça m'interresse bien sur.

Merci pour ta proposition

"Gloops" a écrit :

Le 29/08/2006 11:44, VinceVg a écrit :
> Merci fred pour ton explication pour le vbnet. Pour vb6 je suis en train de
> faire un module de traduction. Mais si qqn en a un tout fait ça m'interesse.

Salut,

J'ai écrit une base internationale sous Access, qui affiche
systématiquement tous ses messages en fonction de la langue sélectionnée
dans la table adéquate.

Tu crois que ça peut aider ?

Si oui il faudra attendre Dimanche car je risque de venir moins souvent
les jours qui viennent.



Avatar
X
Bonjour, bis,

Si tu as le code évidemment, en vb6, si tu n'as pas trop de messages, tu
peux également les embarquer avec ton code, c'est bien mieux de n'avoir
qu'un exe, notamment pour la distribution et les risque de modif des
fichiers, comme ça:

dim langue as string * 2
if langue = "fr" then commandbutton1.caption = "Bonjour"
if langue = "ru" then commandbutton1.caption = " Hello "

C'est simple...

Vois un de mes logiciels (version demo à charger), tu as un exemple avec
l'utilisation de 4 langues, à:

http://irolog.free.fr/irolog_vente/puzzle_v/index.htm

Et si tu aimes lire, tu as 12 romans chez mon éditeur :

http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm

--
Site logiciels
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
------------------------------------------------------------------------------------
"VinceVg" a écrit dans le message de
news:
Je ne sais pas. Ce que je cherche à faire c'est parser mon code pour
retrouver rout ce qui est chaine affichée et les stocker dans un fichier
type
ini. Ensuite il faudra les relire pour les remplacer. Si ton appli access
fait ça ça m'interresse bien sur.

Merci pour ta proposition

"Gloops" a écrit :

Le 29/08/2006 11:44, VinceVg a écrit :
> Merci fred pour ton explication pour le vbnet. Pour vb6 je suis en
> train de
> faire un module de traduction. Mais si qqn en a un tout fait ça
> m'interesse.

Salut,

J'ai écrit une base internationale sous Access, qui affiche
systématiquement tous ses messages en fonction de la langue sélectionnée
dans la table adéquate.

Tu crois que ça peut aider ?

Si oui il faudra attendre Dimanche car je risque de venir moins souvent
les jours qui viennent.





Avatar
Gloops
Chaque message fait l'objet d'un enregistrement avec quatre champs :
- clef
- intitulé langue d'origine
- intitulé langue 1
- intitulé langue 2

Et une table des langues comporte les noms des langues et le choix de la
langue sélectionnée.

Dans le code, les messages sont appelés par une fonction à laquelle on
fournit la clef et l'intitulé d'origine (en Anglais).

Si l'enregistrement n'existe pas, il est créé à ce moment-là, et le
message est affiché dans la langue d'origine. Le traducteur trouve alors
un enregistrement avec un intitulé en Anglais, et l'intitulé dans sa
langue n'est pas renseigné. En filtrant proprement on fait apparaître
seulement les intitulés pour le contexte dans lequel on se trouve, ce
qui permet de mieux comprendre de quoi on parle (primordial pour
traduire proprement).

Un formulaire est proposé avec un jeu de touches pour saisir la
traduction dans la langue sélectionnée. Ceci doit être effectué dans
chaque pays par une personne qui parle la langue d'origine. Un texte
d'aide est proposé qui détaille l'emploi de l'interface, et qui précise
de mettre le signe & devant la lettre qui doit apparaître soulignée pour
servir de raccourci clavier.

S'agissant d'une base Access, j'ai mis les enregistrements dans une
table Access. Pour un programme avec un autre support de données, les
intitulés peuvent être inscrits dans un fichier ini, il existe des
fonctions très commodes pour lire et écrire les valeurs dans un fichier
ini, en précisant la rubrique et la clef. Dans ce cas je pense qu'on
créerait une rubrique par langue et la clef de chaque message serait
reprise dans les différentes langues. Il reste bon de prévoir un
intitulé par défaut pour le cas où la clef n'est pas trouvée dans le
fichier -on peut alors l'afficher dans une couleur différente pour que
l'utilisateur sache que la traduction est manquante.

Il reste à prévoir l'interface pour la traduction.

Finalement, il s'agit de faire la même chose mais sur un autre support,
donc ma base risque de ne pas t'aider beaucoup.

D'ailleurs, ça serait intéressant, une fois que ça marche, que tu nous
dises ce que ça donne. La base Access est lente pour faire ça, car elle
doit lire les intitulés un par un et les remplacer dans le formulaire
pour l'affichage (ou dans l'état).

______________________________________
Le 30/08/2006 11:04, VinceVg a écrit :
Je ne sais pas. Ce que je cherche à faire c'est parser mon code pour
retrouver rout ce qui est chaine affichée et les stocker dans un fichier type
ini. Ensuite il faudra les relire pour les remplacer. Si ton appli access
fait ça ça m'interresse bien sur.

Merci pour ta proposition