Principe de la traduction
(→Les messages outils) |
|||
Ligne 69 : | Ligne 69 : | ||
Dans un paquet, on trouve toutes les informations relatives au modèle objet. | Dans un paquet, on trouve toutes les informations relatives au modèle objet. | ||
... | ... | ||
+ | |||
+ | =Mécanisme de la traduction= | ||
+ | |||
+ | ==Dans une application== | ||
+ | |||
+ | Lorsqu'un utilisateur se connecte à une application, si sa langue (paramétrée dans l'administration) n'est pas le Français, on cherche les quatre types dictionnaires applications de cette langue. | ||
+ | |||
+ | Par la suite, dès un message doit être présenté à cet utilisateur, '''il est traduit à la volée''' grâce au dictionnaire adéquat. | ||
+ | |||
+ | Concrètement, l'application n'est pas traduite, elle est toujours en Français, la traduction s'opère juste avant la restitution visuelle du message. | ||
+ | |||
+ | C'est pourquoi, si un message est absent du dictionnaire, il apparait en Français. | ||
+ | |||
+ | Remarque : Certains messages systèmes ne sont pas de notre ressort, il s'agit des fenêtres 'oui/non' par exemple, | ||
+ | qui dépendent de la langue du système d'opération, mais aussi de la première Fenêtre (fichier/ouvrir...) | ||
+ | |||
+ | |||
+ | ==Hors d'une application== | ||
+ | |||
+ | Il s'agit d'un problème car on ne connait pas à priori la langue de l'utilisateur et surtout, on est pas connecté à la base de données pour charger les dictionnaires. | ||
+ | |||
+ | La réponse apportée consiste à copier des dictionnaires en local. | ||
+ | |||
+ | Lorsque l'utilisateur se connecte à l'application, on regarde la langue du poste paramétrée dans la base de registre. | ||
+ | Si celle-ci n'est pas le Français, alors on copie les dictionnaires de l'application administration en local. | ||
+ | En effet, tous les messages hors applications sont des messages outils, l'application administration est l'application ''minimale'' | ||
+ | pour avoir ces messages (on doit donc construire le dictionnaire de l'application administration si on veut avoir les messages traduits) | ||
+ | |||
+ | Lors du prochain chargement, les dictionnaires sont chargés dès le lancement de l'exécutable : les messages sont traduits. |
Version du 28 octobre 2008 à 18:07
Sommaire |
Introduction
Le besoin d'utiliser la Ligne 1000 dans différentes langues a été exprimé. La réponse apportée consiste en l'utilisation de dictionnaires.
Les dictionnaires
Définitions
Un message est une chaine de caractère applicative susceptible d'être présentée à l'utilisateur. Par applicative on entend relatif à l'application, c'est à dire que les données métier ne sont pas concernées (table des pays...)
Un dictionnaire est un ensemble de couples de messages =l'entrée en langue de développement(le Français) et sa correspondance traduite dans la langue désirée. Un dictionnaire est propre à une langue.
Les dictionnaires sont chargés lors de l'exécution : plusieurs utilisateurs de langues différentes peuvent utiliser le produit simultanément.
On distingue 4 types de dictionnaires
Source
Ils contiennent :
- Le code source des Outils
- Les écrans des outils
- Le code source du projet
Interface
Ils contiennent :
- Les écrans projet
- Les états projet
Menu
Ils contiennent :
- Les menus de l'application
Documentation
Ils contiennent :
- La documentation du modèle projet (au format Rtf)
Modèle
L'extraction des messages crée des dictionnaires pour chaque paquet du référentiel. On pourrait qualifier ces dictionnaires d'élémentaires, ils ne sont pas exploités directement pour traduire les messages à detination de l'utilisateur.
Ensuite, ces dictionnaires sont fusionnés pour donner les dictionnaires applications. Ce sont eux qui sont utilisés pour traduire les messages à destination de l'utilisateur.
Origine des messages
Les messages outils
Les messages outils proviennent des fichiers sources (*.pas) des écrans (*.dfm). Dans les fichiers sources, on rerpère les messages à extraire par la fonction _TP
Les messages outils nécessitent un paramétrage pour être extraits
- Paramétrage base de registre qui indique les chemins vers le dossier de compilation
- Dossier de compilation en paquet
- Accès aux sources
Les messages projets
Les messages projets sont extraits des paquets du référentiel. Dans un paquet, on trouve toutes les informations relatives au modèle objet. ...
Mécanisme de la traduction
Dans une application
Lorsqu'un utilisateur se connecte à une application, si sa langue (paramétrée dans l'administration) n'est pas le Français, on cherche les quatre types dictionnaires applications de cette langue.
Par la suite, dès un message doit être présenté à cet utilisateur, il est traduit à la volée grâce au dictionnaire adéquat.
Concrètement, l'application n'est pas traduite, elle est toujours en Français, la traduction s'opère juste avant la restitution visuelle du message.
C'est pourquoi, si un message est absent du dictionnaire, il apparait en Français.
Remarque : Certains messages systèmes ne sont pas de notre ressort, il s'agit des fenêtres 'oui/non' par exemple, qui dépendent de la langue du système d'opération, mais aussi de la première Fenêtre (fichier/ouvrir...)
Hors d'une application
Il s'agit d'un problème car on ne connait pas à priori la langue de l'utilisateur et surtout, on est pas connecté à la base de données pour charger les dictionnaires.
La réponse apportée consiste à copier des dictionnaires en local.
Lorsque l'utilisateur se connecte à l'application, on regarde la langue du poste paramétrée dans la base de registre. Si celle-ci n'est pas le Français, alors on copie les dictionnaires de l'application administration en local.
En effet, tous les messages hors applications sont des messages outils, l'application administration est l'application minimale pour avoir ces messages (on doit donc construire le dictionnaire de l'application administration si on veut avoir les messages traduits)
Lors du prochain chargement, les dictionnaires sont chargés dès le lancement de l'exécutable : les messages sont traduits.