Brevet FR2838842A1 — publié le 20031024

moyen du processus de jugement. La presente invention concerne le traitement de libelles et plus particulierement la modification, le changement eVou la traduction desdits libelles. Wile trouve une application generale dans le traitement de libelles, notamment les libelles figurant dans des logiciels et destines a etre affiches eVou diffuses. On entend ici par libelle tout element generalement textuel appartenant au g roupe forme par des elements de d ialogue d' interface graph ique, des messages d'information eVou d'erreur, des menus, des entrees/sorties, et o analogues. Generalement, lors de la conception d'un logiciel, le code source est ecrit en un langage evolue non directement comprehensible par la machine. Pour etre execute, le code source doit etre convert) en langage machine. Cette conversion est generalement appelee compilation. Par exemple, dans le cas d'une bo'^te de dialogue d'interface graphique, le concepteur definit generalement autant de jeux de ressources graphiques que de langues de dialogue requises par les utilisateurs. Ainsi, une modification dans le libelle d'une bo^'te de dialogue dans une langue choisie conduit a modifier les memes ressources graphiques de la bo^'te de dialogue dans toutes les autres langues. 11 en resulte une perte de temps considerable. De plus, apres modification du libelle, il convient de compiler a nouveau le logiciel, ce qui alou rd it d 'a uta nt le tra iteme nt. Le Demandeur s'est pose le probleme de traiter (modifier, changer eVou traduire) des libelles d'un logiciel sans engendrer de traitement (modification, changement eVou traduction) au niveau du code source associe, ni avoir a compiler a nouveau le code source. La presente invention apporte justement une solution a ce probleme. Wile a ainsi pour objet un procede de traitement de libelles. Selon une definition generale de ['invention, le procede comprend les etapes suivantes: i) prevoir au moins un dictionnaire apte a comprendre une pluralite de libelles associes chacun a une cle formant contexte, ii) recevoir une requete comprenant un libelle par defaut et une cle concernant le libelle, iii) en reponse a la requete, verifier si la cle existe dans le dictionnaire, en cas de verification positive, traiter le libelle correspondent du dictionnaire, o tandis qu'en cas de verification negative, prendre le libelle par defaut de la req uete et enrich ir le dictionnaire par un nouveau libelle associe a ladite cle. Grace au dictionnaire ainsi constitue et enrich) selon ['invention, il est possible de changer de langue eVou de modifier les libelles du code source d'un logiciel sans devoir modifier ledit code source, ni avoir a compiler ledit code source a nouveau apres modification desdits libelles. Un tel dictionnaire est particulierement avantageux lors de la conception d'un o logiciel, en particulier au niveau des interfaces utilisateur ou il faut intervenir sur des ressources graphiques generees par des environnements de developpement integres (IDE) tels que Visual C++ ou Jbuilder (Marques deposees). Ainsi, grace a ['invention, apres la definition de libelles dans une langue par defaut, et apres compilation du code source correspondent auxdits libelles, il suffit de creer autant de ressources linguistiques (ou dictionnaires) que de langues requises par les utilisateurs qui vent avantageusement susceptibles d'etre modifiees eVou enrichies de fa,con dynamique (par exemple traduction o manuelle eVou par ordinateur) sans modification du code source eVou compilation. La presente invention a egalement pour objet un dispositif de traitement de libelles comprenant: - des moyens de memorisation propres a loger un dictionnaire apte a comprendre une pluralite de libelles associes chacun a une cle formant contexte; - une interface d'entree apte a recevoir une requete comprenant un libelle par defaut, et une cle concernant le libelle; - des moyens de traitement propres, en reponse a la requete, a verifier si la o cle existe dans le dictionnaire, et, en cas de verification positive, a traiter le libelle correspondent du dictionnaire, tandis qu'en cas de verification negative, a prendre le libelle par defaut de la requete et a enrichir le dictionnaire par un nouveau libelle associe a ladite cle. s L'invention a egalement pour objet un produit programme d'ordinateur comprenant des codes d'instruction apses a etre executes sur un ordinateur afin d'assurer les fonctions techniques suivantes: i) en reponse a une requete comprenant un libelle par defaut et une cle concernant le libelle, verifier si la cle existe dans un dictionnaire; ii) en cas de verification positive, traiter le libelle correspondent du dictionnaire, tandis qu'en cas de verification negative, prendre le libelle par defaut de la req uete et en rich i r le d iction nai re pa r u n no uvea u li bei le associe a lad ite cle. D'autres caracteristiques et avantages de ['invention appara^rtront a la lumiere de la description detaillee et des dessins dans lesquels: - la figure 1 represente schematiquement un organigramme illustrant le procede de traitement selon ['invention; so - la figure 2 represente schematiquement une bo^'te de dialogue ecrite en une langue par defaut; la figure 3 represente 1'interface graphique d'une bo^'te de dialogue partiellement traduite selon le procede selon ['invention; et À Ia figure 4 represente la traduction complete des libelles de la bo^'te de dialogue conformement au procede selon ['invention. La presente invention est decrite ci-apres sur la base d'un exemple d'un logiciel comprenant une bo^'te de dialogue graphique. Bien evidemment, I'invention s'applique a tout autre type de logiciel. En reference a la figure 1, I'organigramme du procede de traitement de libelles selon ['invention comprend les etapes suivantes. Suivant l'etape E1, des ressources linguistiques RL vent initialisees dans un dictionnaire multilingue DIC. Les ressources linguistiques RL comprennent n (ici n = 4 a titre d'exemple) s groupes respectivement associes a une langue. Le choix de la langue s'effectue a ['aide d'une variable "m_languageCode". Par exemple, la ressource linguistique fran,caise est ici designee en RLFR, la ressource linguistique anglaise en RL-EN, la ressource linguistique allemande o en RL-DE et la ressource linguistique italienne en RL-IT. En correspondence a ces ressources, la variable "m_languageCode" est par exemple respectivement FR, EN, DE, IT. Chacune des ressources RL-FR, RL-EN, RL-DE et RL-IT est chargee dans ie dictionnaire multilingue DIC. Chaque libelle est identifie par une cle formant contexte. Par exemple la cle relative au titre "CString title" de la boite de dialogue comprend la chane de caractere par defaut "Default dialog title". Ainsi, le dictionnaire multiiingue DIC comprend une pluralite de libelles chacun associe a une langue et a une cle formant contexte. En pratique les libelles vent contenus dans des fichiers nommes "LABELS" accompagnes du code relatif a la langue. En reference a la figure 2, la bo^te de dialogue graphique constituent le logiciel s a traiter SO comprend quatre libelles references respectivement par Tl, CH, VA1 et VA2 et dont les valeurs par defaut vent "Default dialog title" "edit field", "OK" et "cancel". Ces libelles a traiter vent identifies respectivement par les chaines de caracteres "CString-title", "CString editField", "CString Okbtn", et "CString cancelbtn". Selon l'etape E2, lorsqu'un utilisateur souhaite traduire ou modifier un libelle, il realise une requete qui contient le nom de la cle "CString" et le libelle par defaut associe a la cle. Selon ['invention, en reponse a la requete, le procede consiste a verifier si la cle correspondante de nom "CString..." existe dans le dictionnaire DIC (etape E3), et en cas de verification positive, le procede traite le libelle correspondent du dictionnaire (etape E4), tandis qu'en cas de verification negative, le procede prend le libelle par defaut de la requete et enrichit le dictionnaire par un nouveau libelle associe a la cle (etape E5). 11 est a remarquer que l'enrichissement du dictionnaire selon ['invention peut etre realise a partir d'un dictionnaire initialement vice, I'enrichissement s'effectuant en cas de requete infructueuse. Dans l'exemple d'une bofte de dialogue redigee en environnement Microsoft Visual C++, I'exemple se limite a l'apparence d'une interface graphique telle que celle representee en figure 2. so Bien evidemment, le procede selon ['invention ne se limite pas a une telle interface graphique mais peut s'appliquer a tout type de libelles (message, fichier produit, menu, entree/sortie, etc...). Les valeurs par dbfaut des libelies vent donnees dans cet exemple en anglais et les ressources linguistiques associees vent stockees dans des fichiers nommes label.fr pour le fran,cais, label.en pour l'anglais et label.de pour l'allemand, etc.. En reference a la figure 3, la requete de traduction des libelles en franpais de la bo^'te de dialogue SO a pour resultat la traduction des libelles Tl et CH en fran,cais tandis que les libelles VA1 et VA2 vent maintenus dans la langue par defaut car, dans l'exemple de la figure 3, ces libelles VA1 et VA2 identifies par o leur cle respective ne vent pas contenus dans le dictionnaire DIC. Le resultat du programme de traitement du libelle selon ['invention est avantageusement ecrit dans un fichier, traitable par un humain afin d'etre traduit correctement. A la fermeture du programme de traitement selon ['invention, un fichier de ressources linguistiques est construit, par exemple ici un fichier label. fr. Apres revision du dictionnaire, c'est-a-dire traduction des libelles VA1 et VA2 o par exemple par un operateur humain, le programme de traitement selon ['invention a pour resultat une traduction complete des libelles comme decrit en reference a la figure 4. Pour rajouter une autre langue, il convient d'indiquer un code langue associe et s de constituer des ressources linguistiques (dictionnaires) comme decrit ci- avant. Le procede comporte plusieurs avantages. o Un des avantages consiste notamment lors du developpement du logiciel. En effet, dans ie cas d'un logiciel de taille importante, par exemple plusieurs dizaines ou centaines de milkers de lignes de code, le nombre de libelles s'accro'^t tres rapidement. II depend aussi du nombre de programmeurs ou du nombre de versions simultanees du logiciel ou encore d'autres facteurs plus subjectifs. On arrive ainsi rapidement a des milkers de libelles plus ou moins controles ou identifies. s Face a ce probleme le procede selon ['invention permet d'imposer une discipline d'utilisation du libelle et garantit aux utilisateurs de conna^tre tous les libelles, ce qui permet de centraliser tous les libelles par le dictionnaire. On obtient ainsi une harmonisation du logiciel, ce qui permet notamment de traduire les libelles du logiciel dans une langue donnee sans en oublier o un seul. 11 en resulte un gain de productivite et une homogeneite accrue du logiciel. Un autre avantage du procede selon ['invention reside dans le fait de permettre aux utilisateurs ou aux integrateurs d'adapter le logiciel a leurs besoins sans devoir recompiler le logiciel. 11 n'est done pas necessaire de disposer des codes source du logiciel pour proceder a de telles adaptions. Ainsi, grace a ['invention, il est possible d'ajouter en outre de nouvelles langues qui ntont pas ete prevues lors du developpement initial ou de modifier toute ou o partie des libelles d'une langue donnee. Sur le plan materiel, le procede de traitement selon ['invention peut etre execute sur tout ordinateur UT equipe de moyen de memorisation apte a stocker le dictionnaire. Le traitement peut etre realise le cas echeant dans une machine s de traitement embarquee. REVENDICATIONS 1. ProcAdA de haitement de libenAs apte comprendre les Atapes suivantes: 0 prAvoir au moins un dlionnaire (DIC) comprenant une pluraNtA de MbeNds assocs chacun une dA rmant contee, r u u mpna l6 r d- e nma le libell6, ) en ponse la quAte, vAdOer la 6 exte dans dilonnaim (DIC), o 1 en css de vAd[lon posTi, tmr le NbeMA cospondant du nnaim, tandis qu'en cas de vArification nAgative, pndre le libelld par dAfaut de la requAte et enrichlr le dichonnaire par un nouveau UbeMA associd ladite. 2. ProcAdA selon la revendicadon 1, caradsA en ce qu]1 est prAvu d'associer au mos une ngue au onnaim (DIC) dmn de ngue du leMA par d6ut, ce qui permet de traduire ledit libelld par dAfaut dans la langue du dictionnaire. 3. ProcAdA selon la revendicadon 1, caract6dsA en ce que [Atape o d'enrichissement du dicdonnaire comprend une Atape d'apprendssage. 4. ProcAdA selon la mvendicadon 1, cara6hsA en ce que dicdonnaire (DIC) est inidalement vide et en ce que ledk dlctionnaire est susceptible d'6tre endchi en cas de hOcadon nAgadve selon l'6tape i8. de -e de l mpna: - des moyens de mAmodsadon (DIC) propres loger un dicdonnaire apte comprendre une pluraMtA de NbeU6s assoclAs chacun une clA formant contexte, - une inteace d'entrde apte recevoir une requdte comprenant un bbeMA par dAfaut, et une cld concernant le libell6, - des moyens de traitement (UT) propres, en reponse a la requete, a verifier si la cle existe dans le dictionnaire, et en cas de verification positive, a traiter le libelle correspondent du dictionnaire, tandis qu'en cas de verification negative, a prendre le libelle par defaut de la requete et a enrichir le dictionnaire par un nouveau libelle associe a ladite cle. 6. Dispositif selon la revendication 5 caracterise en ce qu'il est embarque. 7. Produit programme d'ordinateur comprenant des codes d'instructions apses a o etre executes sur un ordinateur afin d'assurer les fonctionnalites techniques suivantes: a) en reponse a une requete comprenant un libelle par defaut et une cle concernant ledit libelle, verifier si la cle existe dans un dictionnaire (DIC), et b) en cas de verification positive, traiter le libelle correspondent du dictionnaire, tandis qu'en cas de verification negative, prendre le libelle par defaut de la requete et enrichir le dictionnaire par un nouveau libelle associe a ladite cle.