Gambas France BETA


Pas de compte ? Incription

Internationaliser un programme

1
AuteurMessages
PapyBasic#1 Posté le 7/12/2010 à 21:37:00
"Parfois l'obstination est une voie !"Bonsoir à toutes et à tous.
Plus têtu que jamais Papy retourne à l'école.
Si vous parcourez le forum, vous trouverez un sujet qui a pour titre "route orthodromique".

Le programme tourne.
Il calcul la distances entre deux points à la surface du globe, en partant d'une latitude et longitude d'origine pour aller au plus court " à vol d'oiseau" à une latitude et longitude d’atterrissage.

Voici le code :
1
Gambas class filePUBLIC SUB _new()ENDPUBLIC SUB Form_Open()ENDPUBLIC SUB Label2_MouseDown() ENDPUBLIC SUB Label5_MouseDown() ENDPUBLIC SUB Button1_Click()DIM LongitudeDeA AS StringDIM LatitudeDeA AS StringDIM LongitudeDeB AS StringDIM LatitudeDeB AS StringDIM LatA AS FloatDIM LatB AS FloatDIM LongA AS FloatDIM LongB AS FloatDIM un AS FloatDIM AnglPlat AS FloatDIM Radian AS FloatDIM RayonTerre AS FLOAT 'IF LongB = "" THEN LongB = Val(TextBox4.text)'LongB = Val(LongB)DIM AvantArCosinus AS FloatDIM LongiB AS FloatDIM LatitudeA AS FloatDIM LongitudeA AS FloatDIM LatitudeB AS FloatDIM Longitude AS FloatDIM CosLongBLongA AS FloatDIM SinusLata AS FloatDIM SinusLatB AS FloatDIM SiLataFoixSilabe AS FloatDIM CosLata AS FloatDIM CosLatB AS FloatDIM coslatfoixlatbe AS FloatDIM LcoslatfoixlatLongB AS FloatDIM LarcCosinus AS Float'LarcCosinus = Atn((- AvantArCosinus) / Sqr((- AvantArCosinus) * AvantArCosinus + Un)) + 2 * Atn(Un)DIM DistanceOrtho AS FloatDIM Affichage AS FloatDIM LePi AS Float'SinLataFoixSilabeDIM LongiB AS Float LePi = 3.141592653LatitudeDeA = (TextBox1.text)'IF LatA = "" THEN LatA = Val(TextBox1.text)'LatA = Val(LatA)LongitudeDeA = (TextBox2.Text)'IF LongA = "" THEN LongA = Val(TextBox2.text)'LongA = Val(LongA)LatitudeDeB = (TextBox3.Text)'IF LatB = "" THEN LaSinLataFoixSilabetB = Val(TextBox3.text)'LatB = Val(LatB)DIM LongiB AS FloatLongitudeDeB = (TextBox4.Text)'IF LongB = "" THEN LongB = Val(TextBox4.text)'LongB = Val(LongB), "Km."LongA = Val(LongitudeDeA) LatA = Val(LatitudeDeA)LongB = Val(LongitudeDeB)LatB = Val(LatitudeDeB)Un = 1 AnglPlat = 180 Radian = LePi / AnglPlat RayonTerre = 6378LatA = LatA * Radian LongA = LongA * RadianLatB = LatB * Radian LongB = LongB * Radian 'LongiB = LongB Longitude = Abs(LongB) - Abs(LongA) 'IF LongB = "" THEN LongB = Val(TextBox4.text)CosLongBLongA = Cos(Longitude)SinusLata = Sin(LatA) SinusLatB = Sin(LatB)SiLataFoixSilabe = SinusLata * SinusLatBCosLata = Cos(LatA)CosLatB = Cos(LatB) oucoslatfoixlatbe = CosLata * CosLatB AvantArCosinus = (coslatfoixlatbe * CosLongBLongA) + SiLataFoixSilabe LarcCosinus = ACos(AvantArCosinus)'LarcCosinus = Atn((- AvantArCosinus) / Sqr((- AvantArCosinus) * AvantArCosinus + Un)) + 2 * Atn(Un)DistanceOrtho = RayonTerre * LarcCosinus Affichage = Fix(DistanceOrtho)Label6.caption = AffichageENDPUBLIC SUB Label1_MouseDown() ENDPUBLIC SUB TextBox1_KeyPress() ENDPUBLIC SUB Label6_MouseDown() END



Bon maintenant ma question est vraiment alambiquée , si l'utilisateur lit le Bantou, le Wolof, le Cantonnais, l'Egyptien , le Grison l'Indi ou tout autre langues, comment permettre la conversion dans les label(s) "label1, label2 ect ..........???????????????????????????
Dans le(s) bouton(s)
button1 ....................................????????????????????????????????????????????? :affraid:

la fonction " text " dans "Fmain Form" ???????????????????????????????????????:geek:

Voilà je retourne sous l'éditeur, j'ai une pèche moi ce soir :lol:
Cordialement Papy :santa:
Prokopy#2 Posté le 7/12/2010 à 23:00:00
Kinder PinguiSalut Papy,

Si tu te sens de traduire tout ça (et ça n'engage que toi ;) ), tu as une option "Le projet est traduisible". Ensuite, tu vas dans le menu Projet > Traduire, et ensuite tu ajoutes les langues que tu veux, et tu traduis toutes les chaînes. Les textes des boutons, labels et autres sont automatiquement ajoutés dans la liste.

Plus d'infos ici : http://gambaslinux.eg2.fr/articles.php?lng=fr&pg=391
:)
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi.
PapyBasic#3 Posté le 8/12/2010 à 08:01:00
"Parfois l'obstination est une voie !"Merci ProKopy,
je pensais qu'il était question d'une option ouverte à tous.
Genre si un espagnol ouvre ma source, il a la possibilité de le "re-compiler" dans sa langue, plus vite et plus facilement.
Ou mieux, qu'un "super traducteur" un paquet spécialisé dans la translation de langage, offre cette fonctionnalité.
L'utilisateur télécharge , installe et quand il ouvre, youpi ! il lit dans sa langue.
A revoir calmement.
Je fais école sous gambas2.
Je regarde ce soir.
Cordialement Papy :santa:
manu#4 Posté le 8/12/2010 à 08:17:00
Avec Gambas ca roule ![hr]gambas

[table] sq qss qssqqsqsq qsqsqss sqqs sqs s[/table]


titi a écrit:
dddddddd
Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
PapyBasic#5 Posté le 8/12/2010 à 15:58:00
"Parfois l'obstination est une voie !"Salut Manu,
pour faire simple, le code que je donne n'est pas tout à fait la source !
La source comprend le code et l'implantation de Form avec la disposition des boutons label et autres ?
Je suppose donc qu'il faut que je fournisse un "paquet" avec l'ensemble, le code et l'interface graphique (ce que vois l'utilisateur ?

Comme Papy il est lent du neurone, il comprend qu'il appartient au futur utilisateur de "remodeler" les titres de commandes à sa langue, à condition de bien cocher la case spécifique.

je regarde calmement ce soir.
Merci, cordialement Papy :santa:
PapyBasic#6 Posté le 9/12/2010 à 20:31:00
"Parfois l'obstination est une voie !"Je suis sous gambas2 et j'ouvre traduction "Ctrl + c"
Et je trouve l'ensemble des mots employés dans l'interface.
Il semble bien que celà soit d'une facilité déconcertante.
Je vais essayer de "pomper" un programme dans une autre langue et de faire la translation de langue.

Gambas, c'est mieux que bien !
Cordialement papy:santa:
Gamuti#7 Posté le 24/3/2011 à 19:43:00
Et moi je pensais simplement utiliser l'outil de traduction de google.
En ce sens, lorsqu'on veut traduire une phrase dans n'importe quelle langue, le soft récupère la traduction sur google.
spheris#8 Posté le 25/3/2011 à 21:26:00
Gamuti,
ton idée est fort intéressante pour peu que ton pc ait une connexion à internet au moment du lancement de l'application.
Evolution de GB3? pourquoi pas...
;) ;)


en fait il suffit d'ecrire cette adresse là :

http://translate.google.fr/translate_t?hl=&ie=UTF-8&text=song&sl=en&tl=fr# et de remplacer song par le mot que tu souhaites traduire.
ensuite récupère les traductions entre les balises LI et LIbarre dans la page html.
Après.... quelle traduction choisir parmi les 5 ?
:tongue: :tongue:
;) ;)
Gamuti#9 Posté le 25/3/2011 à 22:41:00
Oui, très exactement !!

De plus en plus, mes programmes sont orientés web html. Ainsi, je récupère pleins d'infos ce qui me permet des mises à jours en local. Comme par exemple, la lecture des prix de différents produits chez mes fournisseurs et l'intégrer dans un programme en gambas puis réaffecter le prix et l'injecter sur un autre serveur (à moi) pour vendre certaines pièces.

Pour en revenir à l'internationalisation, avec google, on peut avoir bien plus de 5 traductions (il y a quelques année, google limitait à 5 traductions différentes à partir du français - mais aujourd'hui, on peut compter une vingtaine de langues et bien plus encore à partir de l'anglais).
manu#10 Posté le 26/3/2011 à 08:23:00
Avec Gambas ca roule !Gambix a implémenté cette possibilité dans Gambas forge. Google traduction traduit la description de votre projet automatiquement.

http://gambasforge.org/cgi-bin/index.gambas?section=code&sub=detail&id=13&lang=en

Si vous voulez decouvrir le code il est ici :

http://sourceforge.net/projects/gambasforge/


Mais je crois que l'on s'eloigne de la question de départ :)
Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
Gamuti#11 Posté le 26/3/2011 à 09:17:00
Mais je crois que l'on s'éloigne de la question de départ :)

euh, oui, c'est que que j'allais dire. Parce que ton lien renvoie à une utilisation des tag mais rien concernant la traduction . . .

Ceci-dit, avec google translation, il suffit juste de récupérer les traductions indiquées dans la page web - via les balises à récupérer - et de les rebalancer dans le formulaire gambas.

Tiens, je vais immédiatement essayer cela.
Gamuti#12 Posté le 26/3/2011 à 09:29:00
Bon bin, ça ne marche pas.

Google renvoie le code d'erreur 403. Ce qui correspond à un accès interdit.
En d'autres termes, on a le droit d'utiliser le navigateur internet que l'on veut pour la traduction, mais google interdit l'utilisation du téléchargement de ses pages.
Donc, wget devient inutile dans ce cas précis.
manu#13 Posté le 26/3/2011 à 14:04:00
Avec Gambas ca roule !Non Gamutti, mon lien renvois sur gambasforge.org, qui est écris en gambas et qui utilise l'api de Google pour la traduction.
La page sur les tags, c'est juste pour visualiser le résultat. Si tu veux voir comment Gambix à fait ça, le deuxième lien te permettra de télécharger le code de gambasforge.... c'est tout :)
Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
gambix#14 Posté le 4/7/2011 à 10:23:00
Faire simple !Pas vrai manu ... j'ai utilisé google trad pour traduire... mais je n'ai pas eu le temps de faire l'API :)


En gambasforge2... ben c'est la balade :)
1
sword=mot à chercherdim https as new httpsocketDim hPage as new httpDocumenthttps.url = googletradurl...https.Get()hPage.Root.GetFromText(https.peek())Mon mot = hPage.root.GetByTagValue("title",sword)[0]



en gros hein ...

C'est pas plus dur que ça :)

mais bon à n'utiliser qu'une fois et mettre le résultat en cache dans la bdd !



Moins de texte dans une signature c'est agrandir son espace.
1