Traduire une application

Rédigé par spheris Aucun commentaire
Classé dans : gambas 3, Tutoriels, traduction Mots clés : aucun

translation.png
Voici une méthode pour traduire une application en instantanné sans avoir recours au locales de votre distribution préférée.
Il vous suffit de créer des fichiers textes contenant respectivement les traductions de vos chaines de caractères dans le meme ordre.
Dans cet exemple , j'ai donc créé 3 fichiers texte : fr, en, et es. (on se passe de l'extention txt bien entendu)

Voici le contenu du fichier texte traduction francaise avec les commentaires :

Exemple de traduction : le titre de la fenetre
Comment aimez-vous le chocolat? : une question dans un label
Salé : le texte du bouton reponse 1
Sucré : le texte du bouton reponse 2
Bravo à vous, c'est très bien : la reponse 1
Non ce n'est pas bon : la reponse 2
Quitter : texte du bouton quitter


Maintenant, il ne vous reste plus qu'à éditer les autres fichiers texte de la même manière.
ensuite, vous pouvez mettre ce code ci dans votre application.

Private mylanguage As String = "fr"
Private answer1 As String
Private answer2 As String

Public Sub _new()
End

Public Sub Form_Open()
Me.Center
updatetranslation()
End

Public Sub bquit_Click()
Me.Close
End

Public Sub bfrench_Click()
mylanguage = "fr"
updatetranslation()
End

Public Sub benglish_Click()
mylanguage = "en"
updatetranslation()
End

Public Sub bspain_Click()
mylanguage = "es"

updatetranslation()
End

Private Sub updatetranslation()
Dim myfile As File
Label1.Text = Null
myfile = Open Application.Path & "/" & mylanguage For Read 
Line Input #myfile, Me.Text
Line Input #myfile, lquestion.Text
Line Input #myfile, b1.Text
Line Input #myfile, b2.Text
Line Input #myfile, answer1
Line Input #myfile, answer2
Line Input #myfile, bquit.Text
Close #myfile
End

Public Sub b1_Click()
Label1.Text = answer1
End

Public Sub b2_Click()
Label1.Text = answer2
End


Et voilà, vous avez maintenant le choix de trois langues en instantanné.
Merci de votre attention.
TELECHARGER LE LOGICIEL EXEMPLE ICI

Traduire un projet Gambas

Rédigé par spheris Aucun commentaire
Classé dans : gambas 3, Tutoriels, traduction Mots clés : aucun

traduction.jpg
Vous souhaitez traduire un projet gambas?
Sélectionnez tout d'abord dans les propriétés de votre projet l'option  : Ce projet est traduisible :

Ensuite, sélectionnez la langue de traduction.
Puis remplissez une à une les chaines de texte.

Une fois tout traduit, il ne vous reste plus qu'a enregistrer.

Attention : Si dans le code vous avez des chaines de caractere à traduire, encadrez les de parenthèses comme ceci :

Public Sub Button2_Click()
Label2.Text = ("You click on this button")
End


Votre chaine apparaitra dans la traduction.

Enfin pour connaitre les traductions disponibles j'ai fait un petit logiciel avec une routine très simple.
 en voici le code :

                                   
Public Sub _new()
            End
           
            Public Sub Form_Open()
            End
           
            Sub AfficheRepertoire(Repertoire As String)
            Dim Fichier As String
            For Each Fichier In Dir(Repertoire, "*.po").Sort()
            TextArea1.Insert(Fichier & Chr$(10))
            Next
            End
           
            Public Sub Button2_Click()
            Label2.Text = ("You click on this button")
            End
           
            Public Sub Button1_Click()
            AfficheRepertoire(Application.Path & "/.lang/")
            End



Merci de votre attention.
TELECHARGER LE PROJET GAMBAS 3

Utiliser REPARENT

Rédigé par spheris Aucun commentaire
Classé dans : gambas 3, picturebox, Tutoriels Mots clés : aucun

reparent.jpg
Bonjour,
aujourd'hui nous allons tenterde déplacer une picturebox (contenant un Smiley comme image) dans plusieurs conteneurs.
Il nous suffit d'utiliser la commande REPARENT.
voici le code de l'application, celui ci tellement simple se passe de commentaire.

Public Sub Button1_Click()
PictureBox1.Reparent(Frame1, 15, 15)
End

Public Sub Button2_Click()
PictureBox1.Reparent(Panel1, 15, 15)
End

Public Sub Button3_Click()
TabStrip1.index = 0
PictureBox1.Reparent(TabStrip1, 15, 15)
End

Public Sub Button4_Click()
TabStrip1.index = 1
PictureBox1.Reparent(TabStrip1, 15, 15)
End

Public Sub Button5_Click()
PictureBox1.Reparent(VBox1, 15, 15)
End

Public Sub Button6_Click()
PictureBox1.Reparent(HSplit1, 15, 15)
End




L'astuce réside dans le Tabstrip. vous devez d'abord dire dans quel index vous passerez la picturebox.

Voila pour aujourd'hui.
A bientôt
wink
TELECHARGER LE CODE SOURCE EXEMPLE

Le composant gb.xml

Rédigé par spheris Aucun commentaire
Classé dans : Composants, gambas 3, Tutoriels Mots clés : aucun

bmenuxml.jpg



Bonjour,

Gb.xml, ce composant fabuleux vous permet de manipuler les fichiers XML avec facilité. vous pouvez l'activer dans les propriétés de votre projet en cochant gb.xml

Aujourd'hui je vais tenter de vous en expliquer son fonctionnement.

ECRITURE :

L'ecriture est très simple. A ceci près que je ne trouve pas le moyen de modifier une item du fichier mais je dois réécrire tout le fichier. Si vous avez l'astuce, je suis preneur.

Pour la creation d'un fichier XML, il vous suffit d'ajouter ce code ci :

Dim writer As XmlWriter
writer = New XmlWriter
writer.Open(System.User.Home & "/toto.xml", True)


nous voila fin pret pour remplir notre fichier.
Ajoutons tout d'abord un commentaire :

writer.Comment("Hello from France")

creons maintenant une categorie nommée characters avec 2 propriétés  serie et Heroes comme ceci :

writer.StartElement("characters")
writer.Attribute("serie", "Heroes")


maintenant donnons des propriétés à la catégorie heroes :

writer.StartElement("heroe")
writer.Attribute("id", "1")
writer.Attribute("name", "Francois hollande")


Regardez bien comment est rédigé ce code.

Maintenant, creons des balises standart :

writer.StartElement("bobi")
writer.Text("ewing")
writer.EndElement

writer.StartElement("played_by")
writer.Text("Hayden Panettiere")
writer.EndElement

writer.StartElement("ability")
writer.Text("Rapid cellular regeneration")
writer.EndElement


Le fichier est maintenant terminé, mais attention, nous ne devons pas nous arreter la. nous devons absoluement FERMER le document par la ligne :

writer.EndDocument()

Notez que ce composant est extremement sensible aux erreurs XML et que vous aurez l'erreur : xml parser error si votre fichier n'est pas conforme.

Pour la petite histoire, le composant n'accpte pas l'UTF-16 et me demande de l'ajuster à l'editeur UTF-8.

En bas a gauche se trouve le bouton pour creer ce fichier de facon automatique. vous le trouverez dans le repertoire /home/user/toto.xml.

cliquez sur le bouton ouvrir le fichier pour le lire. vous le voyez maintenant dans la textarea mis en forme.

LECTURE


Maintenant, nous allons lire dans ce fichier. La lecture est assez compliquée.

tout d'abord, voici le code pour ouvrir le fichier :

Dim reader As XmlReader
reader = New XmlReader
Try reader.Open(System.User.home & "/toto.xml")
If Error Then
Message.Error("Error when trying to open the toto.xml file!")
Return
Endif


Le fichier maintenant ouvert, nous faison une boucle do while pour parcourir le fichier comme ceci :

Do While True
Try reader.Read()
If reader.Eof Then Break


maintenant voici le listing des commandes que nous pouvons saisir  sous cette forme :

reader.node.xxxxxxx (xxxxxxx correspond à toutes les commandes possibles)

notez que value, Name, et type sont les plus interessantes.
D'ailleurs, cliquez sur le bouton type+value+name et vous verrez dans quel ordre sont disposées ces valeurs...

n'oubliez pas de fermer la lecture par ce code :

Loop
reader.Close()


Voila. J'espere que ce tuto vous aura eclairé sur l'utilisation de ce composant.
A bientot.
 
TELECHARGER L'EXEMPLE DES SOURCES EN GB3 ICI