<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <META NAME="GENERATOR" CONTENT="lfparser_2.52"> <META NAME="LFCATEGORY" CONTENT="SoftwareDevelopment"> <link rel="icon" href="../../common/images/lf-16.png" type="image/png"> <TITLE>lf329, SoftwareDevelopment: Gambas: le Basic pour Linux</TITLE> <style type="text/css"> <!-- td.top {font-family: Arial,Geneva,Verdana,Helvetica,sans-serif; font-size:12 } pre { font-family:monospace,Courier } pre.code { font-family:monospace,Courier;background-color:#aedbe8; } p.cl { color:#EE9500 } table.left { margin-right:0.3cm } a.nodec { text-decoration:none } p.trans { font-size:8pt; text-align:right } p.clbox { width:50%; alignment:center; background-color:#FFD700; border-style:none; border-width:medium; border-color:#FFD700; padding:0.5cm; text-align:center } p.code { width:80%; alignment:center; background-color:#aedbe8; border-style:none; border-width:medium; border-color:#aedbe8; padding:0.1cm; text-align:left } p.foot { background-color:#AAAAAA; color:#FFFFFF; border-style:none; border-width:medium; border-color:#AAAAAA; padding:0.5cm ; margin-top:0.1cm; margin-right:1cm; margin-left:1cm; text-align:center } div.tbbutton { background: #ddd; border-right: 1px solid #aaa; border-bottom: 1px solid #aaa; margin: 2px 5px 2px 5px; text-align: center; width: 20em; line-height: 1.2em; padding: 2px; font-size: 12px; white-space: nowrap; color: #555; } div.bbutton { background: #ddd; border-right: 1px solid #aaa; border-bottom: 1px solid #aaa; float: left; margin: 2px 5px 2px 5px; text-align: center; line-height: 1.2em; padding: 2px; font-size: 12px; white-space: nowrap; color: #555; } --> </style> </HEAD> <BODY bgcolor="#ffffff" text="#000000"> <!-- this is generated html code. NEVER use this file for your translation work. Instead get the file with the same article number and .meta.shtml in its name. Translate this meta file and then use lfparser program to generate the final article --> <!-- lfparser can be obtained from http://main.linuxfocus.org/~guido/dev/lfparser.html --> <!-- this is used by a number of tools: =LF=AUTHOR: Jonás Alvarez =LF=CAT___: SoftwareDevelopment =LF=TITLE_: Gambas: le Basic pour Linux =LF=NUMBER: 329 =LF=ANAME_: article329.shtml =LF=PARSER: 2.52 --> <!-- 2pdaIgnoreStart --> <!-- start navegation bar, current, style=2 --> <!-- top navegation bar --> <TABLE summary="topbar_1" cellspacing="0" cellpadding="0" border="0" align="center" width="90%"> <TR bgcolor="#2e2292"> <TD class="top"><TABLE summary="topbar_1_logo" cellspacing="0" cellpadding="0" border="0" width= "100%"> <TR><TD width="319"><a href="../../index.shtml"><IMG src="../../common/images/logolftop_319x45.gif" alt="[LinuxFocus-icon]" width="319" height="45" align="left" border="0"></a></TD> <TD class="top"> <TABLE summary="topbar_1_links" width="100%"> <TR align="right"> <TD class="top"> <A class="nodec" href="../../index.shtml"><FONT color= "#DDDDDD" size="2"><--</FONT></A> | <A class="nodec" href="../index.shtml"><FONT color= "#DDDDDD" size="2">Sommaire</FONT></A> | <A class="nodec" href="../map.html"><FONT color= "#DDDDDD" size="2">Carte</FONT></A> | <A class="nodec" href="../indice.html"><FONT color= "#DDDDDD" size="2">Index</FONT></A> | <A class="nodec" href="../Search/index.html"><FONT color= "#DDDDDD" size="2">Recherche</FONT></A> </TD> </TR> <TR align="right"> <TD class="top"> <HR width="100%" noshade size="1"> </TD> </TR> </TABLE> </TD> </TR> </TABLE> </TD> </TR> </TABLE> <!-- end top navegation bar --> <!-- blue bar --> <TABLE summary="topbar_2" cellspacing="0" cellpadding="0" border="0" align="center" width="90%"> <TR bgcolor="#00ffff"> <TD><IMG src="../../common/images/transpix.gif" width="1" height= "2" alt=""></TD> </TR> </TABLE> <!-- end blue bar --> <!-- bottom navegation bar --> <TABLE summary="topbar_3" cellspacing="0" cellpadding="0" border="0" align="center" width="94%"> <TR bgcolor="#000000"> <TD> <TABLE summary="topbar_3_links" cellspacing="0" cellpadding="1" border="0" width= "100%"> <TR align="center"> <TD WIDTH="20%"><A class="nodec" href="../News/index.shtml"><FONT color= "#FFFFFF">Nouvelles</FONT></A> </TD> <TD WIDTH="5%"><FONT color="#FFFFFF">|</FONT> </TD> <TD WIDTH="20%"><A class="nodec" href="../Archives/index.html"><FONT color= "#FFFFFF">Archives</FONT></A> </TD> <TD WIDTH="5%"><FONT color="#FFFFFF">|</FONT> </TD> <TD WIDTH="20%"><A class="nodec" href="../Links/index.html"><FONT color= "#FFFFFF">Liens</FONT></A> </TD> <TD WIDTH="5%"><FONT color="#FFFFFF">|</FONT> </TD> <TD WIDTH="20%"><A class="nodec" href="../aboutus.html"><FONT color= "#FFFFFF">A propos</FONT></A> </TD> </TR> </TABLE> </TD> </TR> </TABLE> <!-- end bottom navegation bar --> <!-- stop navegation bar --> <!-- SSI_INFO --> <!-- tr_staticssi include virtual --> <!-- tr_staticssi exec cmd --> <!-- addedByLfdynahead ver 1.5 --><TABLE ALIGN="right" border=0><TR><TD ALIGN="right"><FONT SIZE="-1" FACE="Arial,Helvetica">Ce document est disponible en: <A href="../../English/March2004/article329.shtml">English</a> <A href="../../Castellano/March2004/article329.shtml">Castellano</a> <A href="../../ChineseGB/March2004/article329.shtml">ChineseGB</a> <A href="../../Deutsch/March2004/article329.shtml">Deutsch</a> <A href="../../Francais/March2004/article329.shtml">Francais</a> <A href="../../Russian/March2004/article329.shtml">Russian</a> <A href="../../Turkce/March2004/article329.shtml">Turkce</a> </FONT></TD></TR></TABLE><br> <!-- SSI_INFO STOP --> <!-- 2pdaIgnoreStop --> <!-- SHORT_BIO_ABOUT_THE_AUTHOR_AND_INDEX_START --> <TABLE ALIGN="LEFT" BORDER="0" WIDTH="195" summary="about the author" class="left"> <TR> <TD> <img src="../../common/images2/JonasAlvarez.jpg" alt= "Jonas Alvarez" width="170" height="128"> <BR>par Jonás Alvarez <br> <small><jalvarez(at)eitb.com></small> <BR><BR> <I>L´auteur:</I><BR> <!-- aboutauthor_start --> <p>Jonás Alvarez a travaillé comme développeur d'application pour les environnements UNIX et Windows pendant de nombreuses années. Il donne, en autres, différents cours sur les systèmes d'exploitation, les réseaux et le développement. </p> <!-- aboutauthor_stop --> <!-- TRANSLATED_TO fr --> <BR><BR><I>Traduit en Français par:</I><BR> Laurent RICHARD. <small><kouran(at)linuxmail.org></small> <br> <!-- =LF=TRANSTO=fr: Laurent RICHARD. --> <!-- TRANSLATED_TO_STOP --> <!-- INDEX_START --> <BR><i>Sommaire</i>: <UL> <LI><A HREF="#329lfindex0">Introduction</A></LI> <LI><A HREF="#329lfindex1">Qui est intéressé par Gambas?</A></LI> <LI><A HREF="#329lfindex2">L'exemple</A></LI> <LI><A HREF="#329lfindex3">Et la touche finale : Gambas est multilingue comme il se doit</A></LI> <LI><A HREF="#329lfindex4">Conclusion</A></LI> <LI><A HREF="http://cgi.linuxfocus.org/cgi-bin/lftalkback?anum=329">Talkback form for this article</A></LI> </UL> </TD></TR></TABLE> <!-- INDEX_STOP --> <!-- SHORT_BIO_ABOUT_THE_AUTHOR_AND_INDEX_STOP --> <!-- HEAD_OF_THE_ARTICLE_START --> <br> <table border="0"><tr><td> <!-- tr_staticssi include virtual --> <!-- tr_staticssi exec cmd --> <!-- addedByLfPdf ver 0.1 --> <TABLE style="border-style:outset; border-width:1px" align="right" bgcolor="#ff9616" cellspacing="1"><TR><TD bgcolor="#ff9616"> <a href="../Archives/lf-2004_03-0329.pdf"><small>PDF</small></a> </TD></TR></TABLE> <H2>Gambas: le Basic pour Linux</H2> <img src="../../common/images2/article329/gamba.png" alt= "Dessin d'un gamba" width="187" height="103"> <!-- ABSTRACT OF THE ARTICLE --> <P><i>Résumé</i>: <P> <!-- articleabstract_start --> <p>Gambas est l'un des programmes de Basic, disponibles actuellement pour Linux. Dans cet article, nous allons développer un exemple dans lequel nous constaterons que Gambas est simple et puissant pour les tâches quotidiennes.</p> <!-- articleabstract_stop --> <br><!-- HR divider --><center><font color="#8282e0"><b>_________________ _________________ _________________</b></font></center><br> </td></tr></table> <!-- HEAD_OF_THE_ARTICLE_STOP --> <!-- BODY_OF_THE_ARTICLE_START --> <A NAME="329lfindex0"> </A> <H2>Introduction</H2> <p>Un des langages de programmation le plus simple et le plus complet, destiné principalement aux débutants, est sans conteste le Basic. Jusqu'à présent, l'environnement le plus courant pour le développement d'application en Basic est l'IDE Visual Basic de Microsoft. Actuellement, Linux se propage de plus en plus sur le bureau de l'utilisateur. Avant limité aux seuls serveurs et utilisé par des gourous, il est devenu un système d'exploitation pour les ordinateurs clients donnant une réponse aux besoins tels la consultation des courriers électroniques, la navigation sur Internet ainsi que l'édition de texte. En suivant cette tendance, de nombreux environnements de développement en Basic sont actuellement accessibles. Gambas, que nous allons étudier dans cette article, est un des ces environnements graphique pour le BASIC. Avec un style de programmation similaire à celui du Visual Basic, que nous verrons plus tard, il possède également ces propres <a href= "http://www.binara.com/gambas-wiki/bin/view/Gambas/DifferencesFromVB"> différences</a>. La version que je vais utiliser est la 0.64a, incluse dans ma distribution SuSE 9.0. En lisant ces lignes, vous pourrez voir sur <a href="http://gambas.sourceforge.net/">la page du projet de Gambas</a> que la dernière version est la 0.81. Mais cela ne devrait pas affecter notre article.</p> <A NAME="329lfindex1"> </A> <H2>Qui est intéressé par Gambas?</H2> <p>En tant que développeur d'applications en Visual Basic pendant un moment, je n'ai eu besoin que de lancer l'application pour m'y retrouver et développer l'exemple de cet article. De plus, c'est la première fois que j'utilise Gambas. Cela prouve que quiconque ayant déjà travaillé avec Visual Basic peut l'utiliser. Pour le reste, il est un exemple de la simplicité avec laquelle le Basic peut être simple et utile pour pas mal de choses.</p> <A NAME="329lfindex2"> </A> <H2>L'exemple</H2> <p>Vu que j'aime apprendre en pratiquant, nous allons débuter avec un exemple. C'est une application très simple qui affiche un chronomètre avec un décompte à l'écran. Nous pouvons modifier le temps, l'arrêter et le lancer quand nous le désirons.</p> <p>Juste après avoir lancé Gambas, nous faisons la connaissance de son assistant:</p> <center> <img src= "../../common/images2/article329/WelcomeToGambas.png" border= "0" alt="démarrage" width="412" height="361"> </center> <br> <br> <p>Nous choisissons <b>New Project</b>. Dans la fenêtre suivante, on nous demande le <b>nom du projet</b>. Notre projet s'appellera <i>CountDown</i>. Sur la <b>deuxième boîte de dialogue</b>, nous devons choisir le <b>répertoire du projet</b>. Nous sélectionnons notre répertoire de travail et nous écrivons le nom du répertoire dans lequel nous allons travailler dans la zone de texte du bas.</p> <center> <img src="../../common/images2/article329/NewProject.png" border="0" alt="nouveau projet" width="589" height="541"> </center> <br> <br> <p>Si c'est la première fois que nous démarrons Gambas ou si nous n'avons pas désactivé l'option, nous verrons l'astuce du jour. Nous lisons ce qui nous intéresse et nous fermons la fenêtre. Nous sommes déjà dans l'environnement, prêt à travailler. Nous pouvons voir plusieurs fenêtres sur notre bureau. Si nous sommes dans un environnement comme KDE avec plusieurs fenêtres, nous pourrions être intéressés à en allouer une à Gambas et donc avoir toutes ses fenêtres sous contrôle. Personnellement, une des premières options que j'active dans KDE est celle permettant à chaque bureau de n'afficher que ces propres icônes.</p> <p>Nous allons créer le formulaire principal de l'application. Pour cela, nous allons faire un clic-droit sur n'importe quelle partie de la fenêtre du projet et créons un nouveau formulaire.</p> <center> <img src="../../common/images2/article329/NewForm.png" border="0" alt="nouveau formulaire" width="374" height="295"> </center> <br> <br> <p>Dans la boîte de dialogue, nous indiquons le nom du formulaire (dans notre cas <i>FCountDown</i>) avec toutes les valeurs qui sont laissées par défaut.</p> <p></p> <center> <img src="../../common/images2/article329/NewFormDialog.png" border="0" alt="nouveau formulaire de dialogue" width="514" height="495"> </center> <br> <br> <p>Nous avons déjà notre premier formulaire qui est vide jusqu'à présent. </p> <center> <img src="../../common/images2/article329/FCuentaAtras0.png" border="0" alt="form" width="376" height="247"> </center> <br> <br> <p>Nous allons inclure ici les contrôles pour notre chronomètre. Nous allons cliquer sur les éléments de la barre d'outils que nous allons inclure dans notre formulaire. Nous pouvons voir leur nom si nous déplaçons la souris au dessus de chaque contrôle. Au moyen d'un double clic, le contrôle sera positionné à l'extrémité gauche de notre formulaire. Avec un simple clic, nous allons changer sa taille et le positionner dans la partie du formulaire vers laquelle nous le destinons. Pour notre programme, nous allons avoir besoin d'une étiquette, une zone de texte, une minuterie, trois boutons dont un bouton à bascule. </p> <p></p> <center> <img src= "../../common/images2/article329/BarraDeControles.png" border="0" alt="contrôles" width="129" height="378"> </center> <br> <br> <p>Une fois que tous les contrôles sont en place, nous devrions avoir quelque chose qui ressemble à ceci (plus ou moins, chacun des contrôles pouvant être positionné n'importe où) :</p> <center> <img src="../../common/images2/article329/FCuentaAtras1.png" border="0" alt="contrôles en place" width="292" height="255"> </center> <br> <br> <p>Une fois que nous avons les contrôles dans notre formulaire, nous allons changer les noms de ceux-ci pour avoir quelque chose qui a du sens pour nous. Pour cela, nous éditons la propriété <b>Name</b> sur la <b>feuille des propriétés</b>. Si nous ne voyons pas la <b>feuille des propriétés</b> sur l'écran, nous pouvons l'activer depuis la fenêtre du projet avec le bouton de propriétés. Pour le trouver nous pouvons bouger la souris au dessus des boutons afin de localiser celui qui nous intéresse.</p> <p>Je nomme le contrôle <i>Label1</i> en <i>lblContador:</i>. Je clique sur le contrôle et ensuite, je change son nom dans la <b>feuille des propriétés</b>. Pour cela, j'édite la proporiété <b>Nom</b> et je lui donne <i>lblContador</i> comme valeur. Après cela, je change son type de police pour en avoir une plus grande. Pour cela, dans le bouton ... dans sa propriété <b>police</b>, je choisis le type de police <i>Courier Bold 72</i> et j'accepte (<b>OK</b>). De la même façon, je change le nom <i>ToggleButton1</i> en <i>tglFuncionando</i>. Le contrôle <i>TextBox1</i> devient <i>txtSegundos</i>, le contrôle <i>Timer1</i> devient <i>clkMiReloj</i>, <i>Button1</i> devient <i>cmdPonerSegundos</i> et pour finir, je renomme <i>Button2</i> en <i>cmdSalir</i>. A coté, je change l'<b>Alignement</b> de <i>txtSegundos</i> en <i>Droit</i>.</p> <p>Et nous commençons avec le code Basic. C'est très simple et pas très strict du point de vue syntaxique. Ce que nous ferons d'abord, c'est changer les textes que nous voyons dans le formulaire en des valeurs plus réelles. Même si beaucoup des options sont changées en Basic, nous pourrions faire cela dans chacune des feuilles de propriétés des contrôles. L'une ou l'autre des options donnera le même résultat.</p> <p>Dès que le formulaire s'ouvre, nous remplissons les titres que nous désirons pour chaque contrôles que nous avons. Lorsque nous disons <i>dès que le formulaire s'ouvre</i>, nous parlons de la gestion d'un évènement : l'ouverture du formulaire. Pour cela, nous faisons un double-clic dans une partie du formulaire qui n'a pas de contrôle. Une fenêtre d'édition s'ouvre et le curseur est situé dans une nouvelle procédure : <b>Public Sub Form_Open()</b> (si vous avez déjà programmé auparavant dans Visual Basic, nous devrions utiliser l'évènement Form_Load). Nous allons faire que le contrôle <i>lblContador</i> nous montre les secondes restantes du décompte. Les première lignes de code de la classe formulaire ressemble à cela :</p> <pre class="code"> ' Gambas class file CONST fSegundosPorDefecto AS Float=120.0 fSegundos AS Float PRIVATE SUB VerValores() DIM nMinutos AS Integer nMinutos = Int(Int(fSegundos) / 60) lblContador.Caption = nMinutos & ":" & Format (fSegundos - nMinutos * 60, "00.0") END PRIVATE SUB VerActivarDesactivar() IF tglFuncionando.Value THEN tglFuncionando.Text = ("&Detener") ELSE tglFuncionando.Text = ("&Arrancar") ENDIF END PUBLIC SUB Form_Open() fSegundos = fSegundosPorDefecto VerValores tglFuncionando.Value = FALSE VerActivarDesactivar txtSegundos.Text = fSegundos cmdPonerSegundos.Text = ("&Reiniciar") cmdSalir.Text = ("&Salir") END </pre> <p>Nous avons ajouté juste à la suite du commentaire que Gambas a généré <i>Gambas class file</i> qui est une constante qui retient le nombre de secondes par défaut du chronomètre, <i>fSegundosPorDefecto</i>, avec une valeur de 120 secondes (deux minutes), et une variable, <i>fSegundos</i> laquelle va gérer le décompte. Nous avons créé également deux procédures : <i>VerValores</i>, qui affiche la valeur du décompte et <i>VerActivarDesactivar</i>, qui change le texte du bouton Start/Stop.</p> <p>En ce moment, nous avons déjà une formulaire qui fonctionne. Il ne fait rien d'utile à part de nous faire comprendre ce que nous avons déjà fait jusque là. Cela en vaut déjà la peine. Sauvegardons les modifications depuis la fenêtre principale du projet <i>Project CountDown</i>, et lançon l'application avec <b>F5</b> ou avec le bouton <b><i>Exécuter</i></b> ou le bouton de la barre de la même fenêtre. Voici ce que vous devriez avoir :</p> <center> <img src="../../common/images2/article329/FCountDown2.png" border="0" alt="Projet CountDown" width="292" height="255"> </center> <br> <br> <p>Si cela n'apparaît pas ou que vous recevez une erreur, vous devez revoir ce que nous avons fait jusqu'alors. Même si vous appuyez sur <b>Start</b>, <b>Reset</b> ou <b>Exit</b> et que rien ne se passe. Cela sera notre prochaine tâche : assigner les évènements à ces boutons dans la mesure où lorsque l'utilisateur appuie sur l'un d'eux, cela bouge. Avant d'aller plus loin, jouons un peu avec notre application et découvrons tout ce qu'elle contient. Pour la fermer, nous pouvons appuyer sur le X en haut à droite. Je suis sous KDE avec le thème Suse comme vous pouvez le remarquer dans les formulaires et il est possible que vous puissiez fermer votre fenêtre d'une autre manière.</p> <p>En avant pour les boutons les plus simples : Que se passe-t-il lorsque l'utilisateur appuie sur <b>Exit</b>? Nous devons fermer l'application. Pour saisir le code Basic qui sera exécuté quand l'utilisateur appuye sur le bouton, nous allons double-cliquer sur le bouton avec le texte <b>Exit</b> (<i>cmbExit</i>). Nous voyons que Gambas gère quelques lignes de code et que le curseur est situé entre elles. C'est ici que le code doit être saisi. Cette procédure sera exécutée lorsque l'utilisateur clique sur ce bouton. Pour fermer l'application, nous devons exécuter Me.Close ainsi le code de cet évènement sera :</p> <pre class="code"> PUBLIC SUB cmdSalir_Click()<br> ME.Close<br> END<br> </pre> <p>La bouton suivant que nous allons contrôler est le <b>Reset</b>. De la même manière, nous double-cliquons sur le bouton et dans la fenêtre de code que Gambas nous présente, nous insérons : </p> <pre class="code"> PUBLIC SUB cmdPonerSegundos_Click()<br> fSegundos = txtSegundos.Text<br> VerValores<br> END<br> </pre> <p>Jusqu'ici, on dirait toujours que rien ne se passe. Notre application doit être plus vivante. Nous allons activer l'objet <i>Timer</i> situé dans le formulaire depuis le début. Pour le faire, nous devons paramétrer l'intervalle pour recevoir les évènements de l'horloge. Soit nous le faisons à partir du code, dans notre évènement précédent <i>Form_Open</i>, soit nous le mettons dans le formulaire. Nous le ferons de cette manière. Dans le formulaire, nous cliquons sur l'objet <i>Timer</i> et sa <b>fuille de propriétés</b>. Nous changeons la valeur de son <b>Delay</b> de 1000ms à 100 pour recevoir un évènement chaque dixième de seconde ce qui sera la précision de notre chronomètre.</p> <p>Nous n'avons toujours pas de code qui sera exécuté chaque fois que l'horloge sonne et la manière de l'activer. Pour générer le code de l'horloge, rien n'est plus simple que, comme toujours, double-cliquer sur le formulaire de l'horloge. Cela nous amènera à la fenêtre de code à l'endroit adéquat. Après l'insertion de notre code, il devrait ressembler à ceci :</p> <pre class="code"> PUBLIC SUB clkMiReloj_Timer() IF fSegundos < 0.1 THEN tglFuncionando.Value = FALSE tglFuncionando_Click ELSE fSegundos = fSegundos - 0.1 VerValores END IF END </pre> <p>Et finalement, nous activons le chronomètre à la demande de l'utilisateur via le bouton à bascule qui est celui que nous n'avons pas encore géré. Avec un double-clic sur le bouton, nous pouvons insérer le code pour cet évènement : </p> <pre class="code"> PUBLIC SUB tglFuncionando_Click() clkMiReloj.Enabled = tglFuncionando.Value VerActivarDesactivar END </pre> <p>Et maintenant, nous pouvons enfin tester le résultat de notre travail. </p> <A NAME="329lfindex3"> </A> <H2>Et la touche finale : Gambas est multilingue comme il se doit</H2> <p>Une autre des caractéristique de Gambas est son support de différentes langues. Si vous regarder bien le code, nous remarquerez que les chaînes sont entourées de parenthèses. C'est pour montrer que Gambas va être traduit. Le texte des contrôles du formulaire n'ont pas besoin de parenthèses. Notre projet va devenir quelque chose de très utile et les utilisateurs vont demander à ce que les boîtes de dialogue apparaissent dans leur langue. Rien de plus simple. Nous allons dans le menu <b>Project / Properties</b> de la fenêtre du projet.</p> <center> <img src= "../../common/images2/article329/PropiedadesDeProyecto.png" border="0" alt="Propriétés du projet" width="493" height="513"> </center> <p>Nous mettons un <b>titre</b> à notre projet et activons l'option <b>Project is translatable</b> qui permettra de traduire les dialogues. Nous avons maintenant une nouvelle option active dans les menus : Project / Translate. Si nous ouvrons le dialogue, nous pouvons voir que la traduction est maintenant très intuitive : </p> <center> <img src= "../../common/images2/article329/TraducirProyecto.png" border="0" alt="traduction du projet" width="550" height= "449"> </center> <p>D'abord, nous sélectionnons la langue cible dans la partie supérieure. Lorsque nous voulons traduire une chaîne, nous la sélectionnons et remplissons la partie inférieure. Une fois toutes les chaînes traduites, nous pouvons la tester en lançant l'application depuis un terminal si nous avons réglé la variable LANG avec la langue de la traduction. Si vous voulez voir ce que donne la traduction en anglais, je ferme Gambas et j'exécute</p> <pre class="code"> $ LANG=en_US; gambas<br> </pre> <p>Pour revenir à la situation précédente, je lance Gambas et je le lance depuis le menu KDE juste parce que la variable d'environnement n'est pas définie. Elle n'est active que dans sa console.</p> <A NAME="329lfindex4"> </A> <H2>Conclusion</H2> <p>Même si c'est un langage interprété et que nous avons besoin que tout Gambas soit installé, c'est une bonne option de se lancer dans le développement d'applications pour le bureau Linux. Comme nous l'avons vu, c'est très simple et le développement se fait très rapidement. C'est suffisant pour la plupart des aplications quotidiennes..</p> <p>L'aide à l'écran est assez complète avec les exemples disponibles dans le menu <b>File/Open example</b>. Nous pouvons nous rendre également sur la <a href="http://gambas.sourceforge.net">page d'accueil du projet</a>. Dans la section liens, il y a pas mal de projets en Basic qui peuvent être intéressant. Ce n'est que le commencement d'un projet pour lequel je prévois un futur prometteur.</p> <!-- BODY_OF_THE_ARTICLE_STOP --> <!-- 2pdaIgnoreStart --> <A NAME="talkback"> </a> <h2>Talkback form for this article</h2> Every article has its own talkback page. On this page you can submit a comment or look at comments from other readers: <center> <table width="250" border=0><tr><td> <div class="tbbutton"><A class="nodec" href="http://cgi.linuxfocus.org/cgi-bin/lftalkback?anum=329"> talkback page </a></div> </td></tr></table> </center> <br clear="all"> <HR size="2" noshade> <table width="250" border=0><tr><td> <div class="bbutton"><a class="nodec" href="../../index.shtml"><--, LF Sommaire</a></div> </td><td> <div class="bbutton"><a class="nodec" href="index.shtml">Sommaire de ce numéro</a></div> </td></tr></table> <br clear="all"> <HR size="2" noshade> <!-- ARTICLE FOOT --> <CENTER><TABLE WIDTH="98%" summary="footer"> <TR><TD ALIGN=CENTER BGCOLOR="#bdc6d5" WIDTH="50%"> <A HREF="../../common/lfteam.html">Site Web maintenu par l´équipe d´édition LinuxFocus</A> <BR><FONT COLOR="#1111aa"><a href="../../common/copy.html">© Jonás Alvarez</a><br>"some rights reserved" see <a href="../../license/index.shtml">linuxfocus.org/license/</a><br><a href="http://www.linuxfocus.org">http://www.LinuxFocus.org</a></FONT> </TD> <TD BGCOLOR="#bdc6d5"> <!-- TRANSLATION INFO --> <font size=2>Translation information:</font> <TABLE summary="translators"> <tr><td><font size="2">es --> -- : Jonás Alvarez <small><jalvarez(at)eitb.com></small></font></td></tr> <tr><td><font size="2">es --> en: Miguel Alfageme Sánchez, Samuel Landete Benavente. <mas20(at)tid.es></font></td></tr> <tr><td><font size="2">en --> fr: Laurent RICHARD. <kouran(at)linuxmail.org></font></td></tr> </TABLE> </TD> </TR></TABLE></CENTER> <p><font size=1>2005-06-02, generated by lfparser version 2.52</font></p> <!-- 2pdaIgnoreStop --> </BODY> </HTML>