Traduction d'applications avec GetText et Poedit

Programmation d'applications complexes
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Re: Traduction d'applications avec GetText et Poedit

Message par Thyphoon »

dans le système de djes, le texte et la clef sont les mêmes ce qui est beaucoup plus simple !
j'avais fais un système comme le tient blendman, et au final j'ai adopté le système de Djes ! c'est vraiment très bien fait !
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: Traduction d'applications avec GetText et Poedit

Message par blendman »

Mais je peux mettre la clef que je veux puisque c'est une map mon dico() ;)
C'est juste que je mets des clefs assez simple c'est plus court, mais je pourrais mettre le message en français si je le voulais :D.

Cela dit, son système a l'air très bien effectivement.
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Traduction d'applications avec GetText et Poedit

Message par djes »

Oui, c'est pareil, grâce aux maps :)
Tu peux quand même récupérer l'idée (si tu ne l'as pas déjà fait) de traiter les sources pour récupérer les chaînes à traduire, et générer automatiquement tes fichiers langues :)
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: Traduction d'applications avec GetText et Poedit

Message par blendman »

bon, j'ai testé et je crois que je vais adopter ton système :mrgreen: .

Par contre, comment faire pour générer automatiquement les fichiers langues :D ?
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Re: Traduction d'applications avec GetText et Poedit

Message par Progi1984 »

Générer automatiquement ?
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Traduction d'applications avec GetText et Poedit

Message par Backup »

Progi1984 a écrit :Générer automatiquement ?
ben je suppose que si tu fais une moulinette qui extrait les chaines de ton source
et que cette moulinette se connecte a internet a un moteur de traduction
qu'elle soumette une a une les phrases a traduire
qu'elle récupère (en lisant la page html renvoyé par le moteur de traduction)
les phrases traduites , alors ... tu peux generer un fichier des phrases traduites

ça dois pas etre sorcier a faire :)
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Re: Traduction d'applications avec GetText et Poedit

Message par Thyphoon »

Dobro a écrit : ben je suppose que si tu fais une moulinette qui extrait les chaines de ton source
et que cette moulinette se connecte a internet a un moteur de traduction
qu'elle soumette une a une les phrases a traduire
qu'elle récupère (en lisant la page html renvoyé par le moteur de traduction)
les phrases traduites , alors ... tu peux generer un fichier des phrases traduites
ça dois pas etre sorcier a faire :)
ça doit même être amusant a faire, a partir de google traduction ! :P
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Re: Traduction d'applications avec GetText et Poedit

Message par Thyphoon »

trop épuisé pour aller plus loin, si certain cherche voilà de quoi commencer
il faut envoyer l'url suivante

Code : Tout sélectionner

text.s="bonjour"
langSource.s="fr"
langTarget.s="en"
url.s="http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q="+text+"&langpair="+langSource+"|"+langTarget
et pour les codes des langues c'est ici => http://sites.google.com/site/tomihasa/g ... uage-codes
bref cette url marche dans un navigateur ... on doit pouvoir récupérer le résultat avec PB

j'y arrive avec ma lib http, mais elle est trop lourde pour poster ici, et pas encore finit ... :wink:
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Traduction d'applications avec GetText et Poedit

Message par Ar-S »

Le problème c'est que google translator donne des résultats plutôt débiles un peu trop souvent.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Re: Traduction d'applications avec GetText et Poedit

Message par Thyphoon »

Ar-S a écrit :Le problème c'est que google translator donne des résultats plutôt débiles un peu trop souvent.
effectivement ! mais pour des mots simple
open,close,file,network,cancel,ok,select, etc... ça devrait pas trop pauser de problème et ça peut aider a la traduction d'une application ... même si une relecture s'impose !
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Traduction d'applications avec GetText et Poedit

Message par djes »

Rien à voir avec une traduction automatique, mais effectivement, gettext (ou poedit) récupérent automatiquement les chaînes à traduire à partir des codes sources.
blendman a écrit :bon, j'ai testé et je crois que je vais adopter ton système :mrgreen: .

Par contre, comment faire pour générer automatiquement les fichiers langues :D ?
Voici la traduction du readme de mon archive ;)
1 - Dans tous les sources entourez les chaînes avec t("") ou gettext("")

2 - Passez vos fichiers à la moulinette poedit ou gettext pour générer un catalogue
http://www.poedit.net/
http://www.gnu.org/s/gettext/

Poedit :
Ajoutez le language purebasic dans fichier>préférences>analyseurs (copiez celui pour le php et changez les extensions de listes de fichiers avec *.pb;*.pbi)
Créez un nouveau catalogue pour la langue souhaitée, ajoutez le chemin vers le dossier de votre projet, ajoutez t comme mot-clé
Cliquez sur "Mettre à jour à partir des fichiers sources"
Sauvez le catalogue avec un nom correspondant à la langue à traduire (comme fr_FR). Fichier original (texte) : .po , compilé pour le déploiement : .mo)
Sauvez autant de catalogue que de langues.

3 - Ajoutez les lignes suivantes à votre code (comme dans sample.pb)
XIncludeFile "translator.pbi"
Translator_init("locale\", "fr_FR") ;laissez la 2ème vide pour autodétection
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Re: Traduction d'applications avec GetText et Poedit

Message par Thyphoon »

Bon voilà si quelqu'un veut se faire un traducteur automatique voici un code
il faut mon (c'est un peu prétentieux vu le nombre de personne a qui j'ai piqué des codes) code pour le http a télécharger ici
dite moi si ça marche chez vous car je n'ai testé que derrière un proxy ... et j'ai quand même un doute !

Code : Tout sélectionner

XIncludeFile "http.pbi"
  Procedure.s translate(text.s,langSource.s,langTarget.s)
    Protected test.HTTP_Query,url.s
    text.s="bonjour"
    langSource.s="fr"
    langTarget.s="en"
    url.s="http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q="+text+"&langpair="+langSource+"|"+langTarget
    ;HTTP_proxy(@test,"spxy.bpi.fr",3128) ;<<<<<<<<<<<<<<<if you have a proxy change it
    HTTP_query(@test, #HTTP_METHOD_GET, url)
    ;HTTP_addQueryHeader(@test, "X-Requested-With", "XMLHttpRequest")
    HTTP_sendQuery(@test)
    HTTP_receiveRawData(@test)
    Protected s.l,e.l,result.s
    result.s=PeekS(test\data,MemorySize(test\data),#PB_Ascii)
    s=FindString(result,"translatedText",0)+Len("translatedText")+3
    If s>0
      e=FindString(result,Chr(34)+"}, "+Chr(34),s)
      ProcedureReturn Mid(result,s,e-s)
    Else
      ProcedureReturn ""
    EndIf
  EndProcedure
debug translate("Bonjour","fr","en")

Répondre