4D 2004.2/3 et le fichier KeyBoardMapping.XML
Date de publication : Septembre 2005
Par
Djompolo DIABIRA (Ingénieur Contrôle Qualité)
I. Introduction
II.
Forcer le dialecte
III.
Désactiver la « Font Matching »
I. Introduction
Cette note est en complément de la note technique 4D-200507-20-fr "4D sur des systèmes étrangers".
Bien que la version 4D 2004.2 permette la saisie, ainsi que l'affichage multilingues, si vous désirez travailler avec une langue bien précise, il est recommandé que la langue de votre système corresponde à la langue dans laquelle vous allez saisir vos données.
Mais il arrive parfois qu'on soit amené à travailler sur un système donné et avoir à faire des saisies multilingues avec un mélange de caractères Unicode et de caractères non-Unicode (voir paragraphe II).
Il peut arriver aussi que la table des caractères utilisée contienne des caractères qui n'appartiennent pas à la police de caractère courante, et qui fausse l'affichage des caractères (voir paragraphe III).
Dans ces deux cas, il vous faudra modifier le fichier KeyboardMapping.XML.
La technique décrite dans cette note est spécifique à ces versions de 4D (2004.2 et 2004.3) et pourra être amenée à évoluer dans les versions ultérieures.
II.
Forcer le dialecte
 |
Rappel : le BIT ( Binary digiT) est la plus petite unité de mesure de stockage informatique ne pouvant avoir d'autre valeur (état) que 0 ou 1. Un octet (ou Byte en anglais) est lui-même composé d'une séquence de 8 bits.
|
Ce procédé est important quand on veut saisir de caractères "double byte" sur un système qui utilise des caractères double byte (caractères à deux octets, ou 16 bits, tels que le japonais, le chinois ou le coréen).
Donc, si la langue de votre système diffère de celle de la version de votre application 4D, pour que la saisie en structure dans votre langue fonctionne correctement, il faut procéder à la manipulation qui consiste à forcer le dialecte dans votre langue d'application dans le fichier KeyboardMapping.XML, qui se trouve dans le dossier 4D Extensions.
Mais avec cette solution les résultats des tris et des recherches pourraient être faussés aussi car certaines routines internes de 4D comme les routines de tri et de recherche interrogent directement le système sans passer par Script Manager.
Donc si le système n'utilise pas les caractères « double byte » 4D s'initialise en « single byte » (8 octets) même si c'est un 4D localisé dans une langue qui utilise les caractères double byte.
Exemple:
Sur un système US si vous voulez développer votre application multilingue en utilisant des caractères japonais en mode structure, il faudrait écrire la ligne de code suivante (<ForceDialect>1041</ForceDialect>) dans le fichier KeyboardMapping.XML.
Avec un 4D localisé en japonais sur un système US, voici les résultats obtenus :
Sans forcer le dialecte :
Dans le dialogue de connexion, les caractères japonais apparaissent sous forme de garbage.
Dans l'éditeur de structure les caractères saisis en japonais (exemple nom de table) apparaissent aussi sous forme de "garbage".
Après modification du fichier KeyboardMapping.XML, avec le même 4D sur le même système, on obtient :
Les caractères japonais apparaissent correctement dans le dialogue de connexion ainsi que dans les autres parties de la structure.
Le contenu de votre KeyboardMapping.XML sera donc le suivant :
<?xml Version="1.0" Encoding="UTF-8" standalone="no" ?>
<KeyboardMapping>
<Version>2</Version>
<Enable_Keyboard_Switching>1</Enable_Keyboard_Switching>
<ForceDialect>1041</ForceDialect>
<KeyBoardSync>-1</KeyBoardSync>
</KeyboardMapping> |
III.
Désactiver la « Font Matching »
Ce procédé intervient dans le cas où la police d'affichage caractère diffère de la police courante :
Dans le cas où vous voudriez saisir des données en mode Utilisation dans une langue différente de celle de votre système, il est nécessaire de forcer le clavier en utilisant l'option dans la liste des propriétés de l'objet (Configuration du clavier).
Pour certaines langues la police utilisée pour l'affichage des caractères ne contient pas certains caractères, ce qui risque de donner à l'affichage une représentation du caractère différente de celle qu'on devrait avoir, car le système utilise une police de substitution pour afficher le caractère qui ne peut pas être affichée dans la police courante. Pour contourner ce problème, il est nécessaire de désactiver la "font matching" dans le fichier KeyboardMapping.xml en mettant :
<KeyBoardSync>0</ KeyBoardSync>.
Exemple :
Prenons l'exemple du caractère «?» polonais qui ne pourra s'afficher correctement qu'en désactivant la "font matching" sur un système WinXP polonais avec une version US 4D.
Voici ci-dessous les 2 résultats obtenus :
-
En laissant la valeur par défaut (-1) de keyBoardSync :
 Le caractère «ñ» polonais n'est pas correctement affiché
-
En le forçant à "désactivé" (0) :
Dans ce cas on demande au système de ne pas utiliser une police de substitution.
 Le caractère «ñ» polonais est correctement affiché
Dans ce cas voici le contenu du fichier KeyboardMapping.XML :
<?xml Version="1.0" Encoding="UTF-8" standalone="no" ?>
<KeyboardMapping>
<Version>2</Version>
<Enable_Keyboard_Switching>1</Enable_Keyboard_Switching>
<KeyBoardSync>0</KeyBoardSync>
</KeyboardMapping> |
 |
NB : On peut très bien combiner le fait de forcer le dialecte et de désactiver la recherche de la police de substitution puisqu'il s'agit deux fonctions indépendantes.
|
__________________________________________________
Copyright © 1985-2008 4D SA - Tous droits réservés
Tous les efforts ont été faits pour que le contenu de cette note technique présente le maximum de fiabilité possible.
Néanmoins, les différents éléments composant cette note technique, et le cas échéant, le code, sont fournis sans garantie d'aucune sorte.
L'auteur et 4D S.A. déclinent donc toute responsabilité quant à l'utilisation qui pourrait être faite de ces éléments, tant à l'égard de leurs
utilisateurs que des tiers.
Les informations contenues dans ce document peuvent faire l'objet de modifications sans préavis et ne sauraient en aucune manière engager
4D SA. La fourniture du logiciel décrit dans ce document est régie par un octroi de licence dont les termes sont précisés par ailleurs dans la
licence électronique figurant sur le support du Logiciel et de la Documentation afférente. Le logiciel et sa documentation ne peuvent être
utilisés, copiés ou reproduits sur quelque support que ce soit et de quelque manière que ce soit, que conformément aux termes de cette
licence.
Aucune partie de ce document ne peut être reproduite ou recopiée de quelque manière que ce soit, électronique ou mécanique, y compris par
photocopie, enregistrement, archivage ou tout autre procédé de stockage, de traitement et de récupération d'informations, pour d'autres buts
que l'usage personnel de l'acheteur, et ce exclusivement aux conditions contractuelles, sans la permission explicite de 4D SA.
4D, 4D Calc, 4D Draw, 4D Write, 4D Insider, 4ème Dimension ®, 4D Server, 4D Compiler ainsi que les logos 4e Dimension, sont des marques
enregistrées de 4D SA.
Windows,Windows NT,Win 32s et Microsoft sont des marques enregistrées de Microsoft Corporation.
Apple, Macintosh, Power Macintosh, LaserWriter, ImageWriter, QuickTime sont des marques enregistrées ou des noms commerciaux de Apple Computer,Inc.
Mac2Win Software Copyright © 1990-2002 est un produit de Altura Software,Inc.
4D Write contient des éléments de "MacLink Plus file translation", un produit de DataViz, Inc,55 Corporate drive,Trumbull,CT,USA.
XTND Copyright 1992-2002 © 4D SA. Tous droits réservés.
XTND Technology Copyright 1989-2002 © Claris Corporation.. Tous droits réservés ACROBAT © Copyright 1987-2002, Secret
Commercial Adobe Systems Inc.Tous droits réservés. ACROBAT est une marque enregistrée d'Adobe Systems Inc.
Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires
respectifs.
__________________________________________________
 
Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur.
La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.
|