[v4] Corrections & Améliorations de la doc FR

Archive.
RegisLG
Messages : 154
Inscription : mer. 22/juin/2005 2:32

Message par RegisLG »

C'est bien de traduire le manuel de l'utilisateur, ça donne l'occasion de relire les pages du manuel de référence et de trouver une p'tite erreur ;)

Dans la partie "Variables, Types et Opérateurs" (Reference\variables.txt) concernant le OU logique.
Dans la table de vérité, la première ligne est :
LHS | RHS |Résultat
-----------------------
vrai | faux | faux
et devrait être :
LHS | RHS |Résultat
-----------------------
faux | faux | faux
Avatar de l’utilisateur
Ulix
Messages : 315
Inscription : ven. 04/juin/2004 14:27
Localisation : Frontignan

Une coquille sur CopyDirectory()

Message par Ulix »

Salut a tous !

en passant j'ai vu une coquille, dans l'aide sur la commande : CopyDirectory()
CopyDirectory()

Syntaxe

Resultat = CopyDirectory(RepertoireSource$, RpertoireDestination$, Masque$ [, Mode])
Description
Manque un "e" a RepertoireDestinations. Merci d'avance ! :lol:
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Ulix, c'est corrigé.

Je viens de voir ça dans l'aide anglaise, je suis crevé, je vais me coucher, mais faudra comparer avec l'aide française, il me semble que c'est pas tout à fait ça ?
@Function EventType = EventType()

@Description

After a @Link "WindowEvent" "WindowEvent()" or @Link "WaitWindowEvent" "WaitWindowEvent()" function, use this function to determine of which
type the event is. EventType() is now linked to the @LibraryLink "Gadget" "Gadget" and @LibraryLink "Systray" "Systray"
libraries and can returns the following values when an event occurs:
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
RegisLG
Messages : 154
Inscription : mer. 22/juin/2005 2:32

Message par RegisLG »

Merci pour les corrections comtois.
comtois a écrit :Je viens de voir ça dans l'aide anglaise, je suis crevé, je vais me coucher, mais faudra comparer avec l'aide française, il me semble que c'est pas tout à fait ça ?
En fait ce n'est pas la traduction exacte mais je pense que ça revient au même, le texte en anglais étant plus générique (lien vers les librairies gadget et systray) alors que le texte en français indique le nom des évènements dans ces bibliothèques.

J'ai 2 minutes devant moi, la traduction exacte (permettant d'inclure les liens hypertextes) est donc :
@Function EventType = EventType()

@Description

Après une fonction @Link "WindowEvent" "WindowEvent()" ou @Link "WaitWindowEvent" "WaitWindowEvent()", utilisez cette fonction pour déterminer de quel type est l'évènement. EventType() est maintenant lié aux bibliothèques @LibraryLink "Gadget" "Gadget" et @LibraryLink "Systray" "Systray" et peut renvoyer les valeurs suivantes quand un évènement survient :
PS : dans l'aide anglaise, il faut aussi corriger l'erreur de typo sur "can returns" (can return)

Au chapitre "pinaillage du jour", je n'aime pas trop la phrase "Les gadgets suivants sont supportés par EventType()" qui est une mauvaise traduction de l'anglais "The following gadgets supports EventType()".
Ce serait plutôt "les gadgets suivants acceptent la fonction EventType" ou carrément plus clair "EventType peut être utilisé avec les gadgets suivants :"

Sinon, est-ce que quelqu'un aurait une idée pour rétablir la notification par e-mail quand on a une réponse sur le forum, parce que dans mon tableau de bord c'est indiqué "activé" mais je ne reçois rien... (j'ai déjà essayé de décocher/re-cocher)
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Merci RegisLG

Plus je compare les deux versions, plus je préfère la version française.
Utilisez cette fonction après WindowEvent() ou WaitWindowEvent() pour savoir quel est le type du dernier évènement survenu. Les valeurs suivantes sont possibles lorsqu'un évènement du type #PB_Event_Gadget ou #PB_Event_SysTray survient:
Il n'y a pas de lien mais elle précise clairement sur quel type d'évènement EventType() peut être utilisé. Est-ce que les liens sont nécessaires ?
Je peux les ajouter entre parenthèses ?
Utilisez cette fonction après WindowEvent() ou WaitWindowEvent() pour savoir quel est le type du dernier évènement survenu. Les valeurs suivantes sont possibles lorsqu'un évènement du type #PB_Event_Gadget (voir la bibliothèque Gadget) ou #PB_Event_SysTray (voir la bibliothèque SysTray) survient:
J'ajouterai aussi la coloration pour les constantes et je pourrai remettre à jour la liste des références croisées des constantes.

Qu'en pensent les autres ?

Pour ton "pinaillage du jour", je vais le reprendre
"EventType() peut être utilisé avec les gadgets suivants :"
C'est mieux dit comme ça :)

J'en profiterai pour corriger la remarque entre parenthèses de cette façon :
(La définition du gadget indique quels sont les évènements valides)
Ou
(Voir la définition du gadget pour connaitre les évènements valides)


J'ai vu aussi qu'il manquait #PB_Event_SysTray dans la liste des évènements possible pour WindowEvent(), c'est bien ça ? il faut l'ajouter ?
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
RegisLG
Messages : 154
Inscription : mer. 22/juin/2005 2:32

Message par RegisLG »

comtois a écrit :J'ai vu aussi qu'il manquait #PB_Event_SysTray dans la liste des évènements possible pour WindowEvent(), c'est bien ça ? il faut l'ajouter ?
Je pense qu'on peut l'ajouter, je viens de faire un p'tit test et ça à l'air de fonctionner :

Code : Tout sélectionner

MaFenetre=OpenWindow(0,0,0,320,240,"Test d'evenements sur trayicon")
IconeTray=LoadImage(0,"C:\Program Files\PureBasic\Examples\Sources - Advanced\Waponez II\Waponez.ico")
CreateGadgetList(MaFenetre)
EditorGadget(0, 5, 5, 310, 230)
AddSysTrayIcon(1, MaFenetre,IconeTray)
SysTrayIconToolTip(1, "Test d'évènement sur SysTrayIcon")

Repeat 
    Event = WindowEvent() 
    Select Event
      Case #PB_Event_SysTray
         Select EventType()
           Case #PB_EventType_LeftClick : AddGadgetItem(0,-1, "Clic gauche")
           Case #PB_EventType_RightClick : AddGadgetItem(0,-1, "Clic droit")
           Case #PB_EventType_LeftDoubleClick : AddGadgetItem(0,-1, "Double-clic gauche")
           Case #PB_EventType_RightDoubleClick : AddGadgetItem(0,-1, "Double-clic droit")
           
           Case #PB_EventType_Focus : AddGadgetItem(0,-1, "Focus")
           Case #PB_EventType_LostFocus : AddGadgetItem(0,-1, "Perte de focus")
           Case #PB_EventType_Change: AddGadgetItem(0,-1, "Contenu changé")
          EndSelect
      Default
         Delay(1)  ; Plus d'evenements dans la file d'attente, laissons du temps processeur aux autres applications !
     EndSelect
  Until Event = #PB_Event_CloseWindow
Par contre je présume que certains types d'évènements ne s'appliquent pas à une systray (Focus/Perte de focus doivent sans doute être interceptés pour afficher la tooltip, et pour ce qui est du contenu changé c'est peut-être quand on actualise l'icône ??)

J'ai du oublier de mettre un p'tit quelque chose dans mon exemple car parfois je récupère des évènements non réalisés (par exemple en cliquant une fois, je récupère "clic" puis "double clic")
RegisLG
Messages : 154
Inscription : mer. 22/juin/2005 2:32

Message par RegisLG »

Sur la page "pointeur et accès mémoire", serait-il possible de reformuler ce passage :
"Il en découle qu’affecter un type à un pointeur (*Pointeur.l, *Pointeur.b…) n’a aucun sens puisque l’encombrement mémoire d’un pointeur est imposé par celui d’une adresse et non par celui d’un type."
Car en fait affecter un type à un pointeur a un sens, cela permet de définir sur quel type de variable il pointe, et donc ça permet de faire du contrôle d'intégrité.
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Voir ce que disait Fred à ce sujet ici
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

@RegisLG

si tu veux pointer efficacement sur variable.l, tu utiliseras *pointeur.Long et pas *pointeur.l
c'est ce que ca signifie... seul les pointeurs structurés sont utiles

Dri ;)
RegisLG
Messages : 154
Inscription : mer. 22/juin/2005 2:32

Message par RegisLG »

Merci comtois pour le lien, cette discussion me permet de mieux comprendre la doc mais je vais devoir relire ça attentivement car à présent je me demande pourquoi PureBasic autorise l'écriture *ptr.l, *ptr.d, *ptr.w si tout cela revient au même (*ptr), et d'où sort cette notation *ptr.LONG (quelle est la structure LONG).
Enfin en attendant, ça m'a permis de comprendre le fond du problème dans ce code (c'est corrigé depuis, voir le forum anglais)

Code : Tout sélectionner

*Adresse=AllocateMemory(1)
*Debut=*Adresse
*Adresse+1
;difference.f=*adresse-*debut ; ok
difference.l=*adresse-*debut ; ok
;difference.q=*adresse-*debut ; ok
Debug difference

*Adresse=?Etiquette
*Adresse+1
;difference2.f=*adresse-?Etiquette ; plante
difference2.l=*adresse-?Etiquette ; ok
;difference2.q=*adresse-?Etiquette ; plante
Debug difference2

DataSection
 Etiquette: Data.l 1
EndDataSection
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

La structure Long, tu peux la trouver dans le structure viewer

Code : Tout sélectionner

Structure Long
  l.l
EndStructure
En fait c'est un simple ".l" déclaré d'une manière détournée, et au moins on peut pointer dessus. Il en existe pour chaque type de base (Byte Word double etc)

Dri
RegisLG
Messages : 154
Inscription : mer. 22/juin/2005 2:32

Message par RegisLG »

Merci beaucoup Dri, ça me parait plus clair à présent !
Donc je retiens que la notation *pointeur.l, *pointeur.w etc.. ne sert à rien.
Il faut plutôt utiliser les notations *pointeur.Long, *pointeur.Word etc.. qui pointent vers des structures. J'ai pondu ça pour vérifer :

Code : Tout sélectionner

variable_octet.b=127
variable_mot.w=32767
variable_long.l=2147483647
variable_quad.q=9223372036854775807

variable_caractere.c='Z'
variable_chaine.s="toto"

*pointeur_octet.Byte=@variable_octet
Debug "Valeur de variable_long = "+Str(*pointeur_octet\b)

*pointeur_mot.Word=@variable_mot
Debug "Valeur de variable_mot = "+Str(*pointeur_mot\w)

*pointeur_long.Long=@variable_long
Debug "Valeur de variable_long = "+Str(*pointeur_long\l)

*pointeur_quad.Quad=@variable_quad
Debug "Valeur de variable_quad = "+StrQ(*pointeur_quad\q)

*pointeur_caractere.Character=@variable_caractere
Debug "" :Debug "Valeur de variable_caractere : "+Chr(*pointeur_caractere\c)

*pointeur_adresse_chaine=@variable_chaine
Debug "La chaine variable_chaine débute à l'adresse mémoire :"+ Str(*pointeur_adresse_chaine)
*pointeur_chaine.String=@*pointeur_adresse_chaine
Debug "La valeur contenue a cette adresse est : "+*pointeur_chaine\s
@comtois, j'en profite pour signaler que dans la doc fr la page StrQ() est identique à la page Str(). En anglais la description pour StrQ est "Convert a signed quad number into a string."

Et j'ai encore une question : quand en langage C on rencontre ce genre de code :

Code : Tout sélectionner

int valeur; 
valeur = 7; 

int *pointeur; 
pointeur = &valeur;
Est-ce que la transcription en PureBasic suivante est correcte ?

Code : Tout sélectionner

valeur.l
valeur = 7
*pointeur.Long
*pointeur=@valeur
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Si j'ai bien tout compris
Comtois traduit la Doc "Chm" du Purebasic
et RegisLG fait une traduction "on line"

ici c'était le Topic de Comtois et compagnie sur le CHM

j'aimerai assé que RegisLG crée un Autre Topic
car la moi, simple utilisateur, lors d'un Post je ne sais plus de quoi vous parlez !! :?
tout se mélange, et perso je n'aime pas trop la tournure que ça prends !

si RegisLG pouvais creer un topic special pour son travaille se serai mieux plus clair :D

c'est l'avis d'un Observateur Bienveillant :lol:
RegisLG
Messages : 154
Inscription : mer. 22/juin/2005 2:32

Message par RegisLG »

Dobro a écrit :Si j'ai bien tout compris
Comtois traduit la Doc "Chm" du Purebasic
et RegisLG fait une traduction "on line"

ici c'était le Topic de Comtois et compagnie sur le CHM
Ce n'est pas exactement ça.
La documentation PureBasic est disponible via l'outil CVS. Tu as deux parties qui constituent cette documentation : le manuel de référence et le guide de l'utilisateur.
J'ai participé à la traduction de plusieurs pages du manuel de référence et comme le guide de l'utilisateur n'était pas encore traduit en français, j'ai proposé de le faire.
Jusqu'à présent le chm ne contient que le manuel de référence, car comme le guide de l'utilisateur n'est pas achevé, aucun lien n'existe vers cette partie de la documentation. Donc à moins d'aller fouiller dans le CVS on ne peut pas y accéder ;) (pour être tout à fait précis, on peut le consulter en anglais sur ce site).
Comme je traduis cette partie "guide de l'utilisateur" au fur et à mesure, je mets le résultat en ligne pour que tout le monde puisse y accéder facilement et réagir dans ce forum, car cela fait partie de la documentation.
Une fois les chapitres au point j'enverrai tout ça à comtois qui les intégrera dans les CVS.
Dobro a écrit :j'aimerai assé que RegisLG crée un Autre Topic
car la moi, simple utilisateur, lors d'un Post je ne sais plus de quoi vous parlez !! :?
tout se mélange, et perso je n'aime pas trop la tournure que ça prends !
si RegisLG pouvais creer un topic special pour son travaille se serai mieux plus clair :D
c'est l'avis d'un Observateur Bienveillant :lol:
Comme le guide de l'utilisateur fait partie de la documentation, je n'ai pas vu la nécessité de créer un nouveau topic. Concernant le guide, j'ai du poster ici un message à chaque fois qu'un chapitre était terminé ou qu'une remarque était signalée, je ne pensais pas que ça encombrait tant que ça...
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

RegisLG a écrit : Concernant le guide, j'ai du poster ici un message à chaque fois qu'un chapitre était terminé ou qu'une remarque était signalée, je ne pensais pas que ça encombrait tant que ça...
non pas de problem, mais en fait je n'arrive plus a comprendre ce qui se passe , en temps que lecteur Lambda , mais si vous , vous vous y retrouvez
tant mieux :lol:

et tant pis pour moi :lol:
Répondre