Principe de la traduction

De Wiki1000

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.

Ass Obj Dic.jpg

Ensuite, ces dictionnaires sont fusionnés pour donner les dictionnaires applications.

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.





Whos here now:   Members 0   Guests 1   Bots & Crawlers 0
 
Outils personnels