Faire une interface en langue arabe avec WinDev

Emmanuel Lecoester

- Titre : Faire une interface en langue arabe avec WinDev

- Auteur : Emmanuel Lecoester

- Parution : 25 avril 2009

- Mise à jour : 11 juillet 2020

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2008 Emmanuel Lecoester. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Vérifier et installer la langue arabe pour Windows

- II. Première fenêtre dans WinDev

- III. Gérer l'arabe dans WinDev

- III-A. Afficher en arabe

- III-B. Afficher en droite à gauche

- III-B-1. Méthode disponible depuis WinDev 14

- III-B-2. Pour les anciennes versions de WinDev

- III-C. Un test d'affectation ?

- III-D. Le stockage dans HyperFile

- IV. Les ressources PC-Soft

- IV-A. Exemple de la LST n° 66 : WD International

- IV-B. Exemple de la LST n° 70 : WD Alphabet arabe

- IV-C. Exemple de la LST n° 73 : WD Clavier virtuel arabe

I - Vérifier et installer la langue arabe pour Windows

Si comme moi vous n'aviez jamais eu besoin d'installer la langue arabe sur votre poste, ce chapitre vous aidera à installer la langue arabe (Tunisie) avant de poursuivre le tutoriel. Pour les autres, vous pouvez passer au chapitre II.

- Dans le menu « Démarrer », cliquer sur « Panneau de configuration ».

- Choisir « Options régionales et linguistiques ».

- Cliquer sur « Langues ».

- Cocher la case « Installer les fichiers pour les scripts complexes et s'écrivant de droite à gauche ».

- Insérer le CD Windows et attendre.

- Windows propose de redémarrer. Ôter le CD et accepter le redémarrage.

- Après le redémarrage, retourner dans le menu « Démarrer » et choisir à nouveau « Panneau de configuration ».

- Dans « Options régionales et linguistiques » : « Langues » « Détails » choisir langue ARABE (Tunisie).

- Redémarrer.

En bas à droite, sur la barre des tâches, l'icône langue est maintenant disponible et il est possible de passer de l'arabe () au français () et vice-versa.

Petite astuce pour la suite : affichez le clavier virtuel pour taper votre lettre arabe sur votre clavier standard. Pour ce faire, Démarrer/accessoires/accessibilité/Clavier visuel.

Vous devriez avoir sur votre écran :

en langue française et

en langue arabe.

II - Première fenêtre dans WinDev

Créer une simple fenêtre avec deux champs de saisie et un bouton de ce type :

Afin de tous avoir le même code, je vous donne ci-dessous les différents noms des champs de la fenêtre :

Faites un GO du projet

Remarque : vous remarquerez que dans la barre de langue la langue française (FR) reste sélectionnée et le clavier virtuel reste en français.

III - Gérer l'arabe dans WinDev

III-A - Afficher en arabe

Insérer le code suivant dans le code d'initialisation du projet :

// Passer la langue d'affichage de
// l'application en arabe
Nation(19)
// Passer les polices en arabe
ChangeAlphabet( alphabetArabe )
// Change le clavier
ChangeClavier ( langueArabe )

Faites un GO du projet.

Plusieurs choses changent : la langue passe en et le clavier virtuel passe en arabe.

Il nous reste maintenant à écrire de droite à gauche !

III-B - Afficher en droite à gauche

III-B-1 - Méthode disponible depuis WinDev 14

Une seule ligne suffit !

SAI_Saisie1..SensEcriture = seDroiteAGauche

III-B-2 - Pour les anciennes versions de WinDev

Créer la procédure globale suivante :

PROCEDURE InverseObjet(pObjet)
Var1,Var2 est entier
SI Nation()=19 ALORS
Var1=API("User32","GetWindowLongA",Handle(pObjet),-20)
Var2=OUBinaire(Var1,4194304)
Var1=API("User32","SetWindowLongA",Handle(pObjet),-20,Var2)
SINON
Var1=API("User32","GetWindowLongA",Handle(pObjet),-20)
Var2=ETBinaire(Var1,4194304)
Var1=API("User32","SetWindowLongA",Handle(pObjet),-20,Var2)
FIN

Dans le code d'initialisation du champ de saisie ajouter tout simplement le code :

InverseObjet(MoiMême)

III-C - Un test d'affectation ?

Dans le code du bouton ajouter le code suivant :

SAI_Résultat=SAI_Saisie1

En tapant « Bonjour » dans le champ de Saisie et en appuyant sur le bouton nous obtenons

L'affectation fonctionne donc !

III-D - Le stockage dans HyperFile

Nous avons créé un simple fichier HF Classic dans une simple analyse.

Nous allons maintenant l'exploiter.

Revenons au code du bouton de notre fenêtre :

SAI_Résultat=SAI_Saisie1

Modifions-le en :

HRAZ(Arabe)
Arabe.libelle=SAI_Saisie1
HAjoute(Arabe)

HRAZ(Arabe)

HLitPremier(Arabe)
SAI_Résultat=Arabe.libelle

Nous allons faire le test avec les mots suivants :

Au second test nous obtenons après appui sur le bouton :

Hyperfile sait donc bien gérer l'arabe !

Bémol : les données ne sont pas modifiables sous WDMAP en langue arabe, mais en code ANSI.

IV - Les ressources PC-Soft

Sur la page de recherche de ressources PC-Soft (http://www.webdev.info/publicationSt_WEB/FR/recherche.awp?RECH=arabe), nous pouvons retrouver trois ressources très intéressantes. Prenez contact avec l'éditeur pour commander une de ces LST sur cette page http://www.pcsoft.fr/lst/bdc-old-lst.htm.

IV-A - Exemple de la LST n° 66 : WD International

Cet exemple montre comment développer une application multilingue avec une langue orientale.

Cette application peut être exécutée en français et en arabe.

La procédure « InverseSensFenêtre » de la collection de procédures « CollectionLangue » permet de changer le sens d'écriture de l'application.

Les champs sont ainsi inversés, les ancrages sont modifiés.

Pour visualiser correctement l'application en langue arabe, il est nécessaire d'installer la langue arabe dans Windows.

IV-B - Exemple de la LST n° 70 : WD Alphabet arabe

WD AlphabetArabe est un projet exemple WinDev 11 qui montre comment manipuler du texte en arabe dans un projet dont la langue d'affichage n'est pas exclusivement l'arabe.

L'exemple permet de se familiariser avec l'alphabet arabe : il prend un mot ou une courte phrase qu'il découpe en lettres isolées. Quel intérêt ? L'arabe combine étroitement les lettres les unes avec les autres. Il est difficile quand on débute de déchiffrer un mot si on ne parvient pas à dissocier les lettres.

Le bouton [Son] permet d'écouter le son de chacune des lettres.

Le bouton [ANSI] permet d'obtenir la valeur ANSI du texte pour l'éditeur de code.

IV-C - Exemple de la LST n° 73 : WD Clavier virtuel arabe

Il n'est pas toujours possible de disposer d'un vrai clavier en arabe. Dans un tel cas, un clavier virtuel peut permettre d'entrer des textes en arabe avec un relatif confort. Un tel clavier virtuel est facile à programmer avec WinDev. Celui que nous proposons dans cet exemple est constitué d'une fenêtre Popup. Une seule ligne de code suffit pour le brancher sur un champ de saisie. La fenêtre Popup est autonome, facilement personnalisable, et elle dialogue automatiquement avec le champ de la fenêtre principale qui l'a appelée.