Cette page est dédiée à l’utilisation de l’Arabe dans les applications développées avec WinDev 11.
Cet article résumé les différentes manipulations qui ont permis d’afficher du texte en arabe dans mon blog écrit avec WinDev.
Partie MySQL
Tous les champs ont été passé en UTF-8 (interclassement utf__general_ci). Cette opération a été réalisée avec PHPMyAdmin.
Partie HTML
Le charset de la page est passé en UTF-8.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Partie PHP
La requête suivante est exécutée une fois dans la page avant de lire les tables MySQL
mysql_query("SET NAMES 'UTF8'");
Partie WinDev
Pour chaque champ de saisie, l’alphabet de la police a été changé. voici un exemple de code réalisant cette opération.
SAI_TitreBillet..PoliceAlphabet = alphabetUTF8
Edition
Les pages PHP ont été éditées avec BabelPad.exe, un éditeur UTF-8 afin de corriger le texte en dur dans la page. En effet, tous les caractères accentués étaient mal affichés. BabelPad signale les erreurs dès l’ouverture du fichier et les caractères mal codés sont représentés par un petit carré vide.
On se place ici dans le contexte d’une application dans laquelle tout le texte n’est pas affiché en arabe, ce qui me semble d’ailleurs être le cas général.
La fenêtre contient donc des champs qui afficheront du français, et d’autres qui afficheront de l’arabe.
Voici comment initialiser le champ par du code.
Il est important de noter que l‘éditeur de code de WinDev ne sait pas afficher l’arabe directement comme on le voit sur l’image. Pour saisir la valeur, j’ai du entrer le texte en passant Windows en arabe depuis la barre des langues.
Le résultat s’affiche comme ça “ ÈÇÊÑíß”. En passant car c’est bon à savoir, la combinaison de touches SHIFT + ALT permet de changer la langue en cours. C’est pratique.
En exécution, le champ affichera “Patrick” écrit en arabe
p(arabic). باتريك
Il est possible de stocker une information en arabe dans un fichier Hyper-File quelconque. Il suffit de décrire une rubrique texte, c’est tout. C’est seulement à l’utilisation que cette zone sera affectée avec un texte ANSI en arabe.
Si c’est si facile, pourquoi faire ce billet ? Mémoriser une valeur est une chose, l’afficher correctement en est une autre. On va donc voir ici comme afficher correctement une rubrique en arabe dans une table fichier.
Préliminaire
J’ai adopté la convention de nommer toutes mes rubriques en arabe en les préfixant par “arabic_”. Par exemple, le fichier MIXTE décrit dans mon analyse contient deux rubriques :
Saurez-vous deviner laquelle contient de l’arabe ? moi aussi, mais plus important mon programme aussi.
Une table fichier contruite automatiquement
Il suffit d’une instruction pour envoyer un fichier Hyper-File dans une table. C’est la commande ConstruitTableFichier.
ConstruitTableFichier(Table1, Mixte, taRemplirTable)
Avec cette commande, la table est remplie mais la colonne arabe affiche n’importe quoi.
C’est maintenant qu’il faut exploiter le fait que le nom des rubriques en arabe débute par “arabic_”. Le code suivant va examiner toutes les colonnes de la table. Chaque colonne liée à une rubrique dont le nom commence par “arabic_” sera modifiée pour utiliser l’alphabet arabe et s’afficher de droite à gauche avec les propriétés
POUR i=1 A TableOccurrence(Table1,toColonne)
sNomColonne = TableEnumèreColonne(Table1,i)
sNomRubrique = {sNomColonne, indChamp}..LiaisonFichier
SI Position(sNomRubrique,"arabic_") = 1 ALORS
{sNomColonne, indChamp}..PoliceAlphabet = alphabetArabe
{sNomColonne, indChamp}..PoliceTaille = 36
{sNomColonne, indChamp}..SensEcriture = seDroiteAGauche
FIN
FIN