Principe de la traduction
(Nouvelle page : =Principe de la traduction= ==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 dicti...) |
(→Le mode delta) |
||
(24 révisions intermédiaires par 2 utilisateurs sont masquées) | |||
Ligne 1 : | Ligne 1 : | ||
− | + | =Introduction= | |
− | + | ||
− | + | ||
Le besoin d'utiliser la Ligne 1000 dans différentes langues a été exprimé. | 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. | La réponse apportée consiste en l'utilisation de dictionnaires. | ||
− | + | =Les dictionnaires= | |
− | == | + | ==Définitions== |
− | 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 '''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. | 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. | 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 | + | ===Types de dictionnaires=== |
− | + | ||
− | + | '''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) | ||
+ | |||
+ | ===Modes de dictionnaires=== | ||
+ | |||
+ | Les dictionnaires fournis peuvent être modifiés par le client. | ||
+ | |||
+ | On distingue ainsi : | ||
+ | ====Le mode original==== | ||
+ | |||
+ | Il s'agit d'un dictionnaire construit par SAGE (AdminLevel=99) | ||
+ | |||
+ | ====Le mode delta==== | ||
+ | |||
+ | Il s'agit d'un dictionnaire qui n'est pas construit par SAGE (AdminLevel<>99) | ||
+ | |||
+ | Voir ([[La personnalisation des dictionnaires (traduction)|La personnalisation des dictionnaires]]) pour le détail du fonctionnement. | ||
+ | |||
+ | ===Natures de dictionnaires=== | ||
+ | |||
+ | Un dictionnaire peut être lié à une application ou à un paquet(objet). | ||
+ | |||
+ | ====Dictionnaire objet==== | ||
+ | |||
+ | Il s'agit des dictionnaire obtenus par extraction (ou par recopie d'un dictionnaire objet). | ||
+ | On pourrait qualifier ces dictionnaires d'''élémentaires'', ils ne sont pas exploités directement pour traduire les messages à destination de l'utilisateur. | ||
+ | |||
+ | ====Dictionnaire application==== | ||
+ | |||
+ | Ce sont eux qui sont utilisés pour traduire les messages à destination de l'utilisateur. | ||
+ | |||
+ | Il sont crées par fusion des dictionnaires objets (ou par recopie d'un dictionnaire application). | ||
+ | Une application est composée de modules, eux mêmes composés de paquets. | ||
+ | Le dictionnaire application rassemble les dictionnaires des paquets qui le compose. | ||
+ | |||
+ | Il s'agit d'un dictionnaire de travail | ||
+ | |||
+ | '''Attention, si on effectue des traductions sur le dictionnaire application,''' | ||
+ | '''puis qu'on le reconstruit sans avoir actualisé les traductions''' | ||
+ | '''on perd les traductions effectuées''' | ||
+ | |||
+ | ''Remarque : il n'y a pas de doublons de messages dans un dictionnaire, ainsi, si un même message est présent dans plusieurs paquets et que les traductions diffèrent, une seule traduction (la première rencontrée lors de la fusion) sera retenue pour le dictionnaire application.'' | ||
+ | |||
+ | ==Modèle== | ||
+ | L'extraction des messages crée des dictionnaires pour chaque paquet du référentiel. | ||
+ | |||
+ | [[Image:Ass_Obj_Dic.jpg]] | ||
+ | |||
+ | Ensuite, ces dictionnaires sont fusionnés pour donner les dictionnaires applications. | ||
+ | |||
+ | [[Image:Ass_App_Dic.jpg]] | ||
+ | |||
+ | ==Les paquets sans dictionnaires== | ||
+ | |||
+ | Certains paquets n'ont pas de dictionnaires associés | ||
+ | |||
+ | ===Paquets d'interface WebService=== | ||
+ | Ces paquets ne contiennent rien d’intéressant.(ccbsdataservices.xml par exemple), ses messages ne sont pas extraits | ||
+ | |||
+ | ===Paquets delphi=== | ||
+ | On ne dispose pas des sources de ces paquets.(vclx100.bpl par exemple) | ||
+ | |||
+ | ===Paquets sans classe=== | ||
+ | paquetmonosociete.xml par exemple | ||
+ | |||
+ | ===Paquets sans message=== | ||
+ | dborasql.bpl par exemple | ||
+ | |||
+ | =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 | ||
+ | |||
+ | ==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. | ||
− | + | [[Category:Traduction]] |
Version actuelle en date du 15 mars 2013 à 10:14
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.
Types de dictionnaires
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)
Modes de dictionnaires
Les dictionnaires fournis peuvent être modifiés par le client.
On distingue ainsi :
Le mode original
Il s'agit d'un dictionnaire construit par SAGE (AdminLevel=99)
Le mode delta
Il s'agit d'un dictionnaire qui n'est pas construit par SAGE (AdminLevel<>99)
Voir (La personnalisation des dictionnaires) pour le détail du fonctionnement.
Natures de dictionnaires
Un dictionnaire peut être lié à une application ou à un paquet(objet).
Dictionnaire objet
Il s'agit des dictionnaire obtenus par extraction (ou par recopie d'un dictionnaire objet). On pourrait qualifier ces dictionnaires d'élémentaires, ils ne sont pas exploités directement pour traduire les messages à destination de l'utilisateur.
Dictionnaire application
Ce sont eux qui sont utilisés pour traduire les messages à destination de l'utilisateur.
Il sont crées par fusion des dictionnaires objets (ou par recopie d'un dictionnaire application). Une application est composée de modules, eux mêmes composés de paquets. Le dictionnaire application rassemble les dictionnaires des paquets qui le compose.
Il s'agit d'un dictionnaire de travail
Attention, si on effectue des traductions sur le dictionnaire application, puis qu'on le reconstruit sans avoir actualisé les traductions on perd les traductions effectuées
Remarque : il n'y a pas de doublons de messages dans un dictionnaire, ainsi, si un même message est présent dans plusieurs paquets et que les traductions diffèrent, une seule traduction (la première rencontrée lors de la fusion) sera retenue pour le dictionnaire application.
Modèle
L'extraction des messages crée des dictionnaires pour chaque paquet du référentiel.
Ensuite, ces dictionnaires sont fusionnés pour donner les dictionnaires applications.
Les paquets sans dictionnaires
Certains paquets n'ont pas de dictionnaires associés
Paquets d'interface WebService
Ces paquets ne contiennent rien d’intéressant.(ccbsdataservices.xml par exemple), ses messages ne sont pas extraits
Paquets delphi
On ne dispose pas des sources de ces paquets.(vclx100.bpl par exemple)
Paquets sans classe
paquetmonosociete.xml par exemple
Paquets sans message
dborasql.bpl par exemple
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
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.