Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Améliorer la souplesse des outils de vérification #1222

Open
christopheNan opened this issue Apr 2, 2020 · 7 comments
Open

Améliorer la souplesse des outils de vérification #1222

christopheNan opened this issue Apr 2, 2020 · 7 comments
Labels

Comments

@christopheNan
Copy link
Collaborator

@christopheNan christopheNan commented Apr 2, 2020

La rigidité de notre configuration vis-à-vis de pospell et padpo nous impose parfois des contorsions ou à ajouter dans dict des mots qui n'y ont pas leur place (les nombres en hexadécimal par exemple).
Sur le modèle de la directive noqa de flake8, je pense qu'il pourrait être intéressant de définir des directives, à placer dans les commentaires facultatifs avant chaque entrée de fichier .po, afin de désactiver temporairement (sur l'entrée actuelle) certaines vérifications.
Par exemple, dans library/zimport.po, on pourrait rajouter une directive dict dans le commentaire pour éviter de mettre un nom propre dans le dictionnaire global :

  #: ../Doc/library/zipimport.rst:43
  # dict:Ahlstrom 
  msgid ""
  "Written by James C. Ahlstrom, who also provided an implementation. Python "
  "2.3 follows the specification in :pep:`273`, but uses an implementation "
  "written by Just van Rossum that uses the import hooks described in :pep:"
  "`302`."
  msgstr ""
  "Écrit par James C. Ahlstrom, qui a également fourni une mise en œuvre. "
  "Python 2.3 suit les spécifications de :pep:`273`, mais utilise une "
  "implémentation écrite par Just van Rossum qui utilise les crochets "
  "d'importation décrits dans :pep:`302`."

Il faut dans un premier temps définir les directives que l'on veut. L'avis des développeurs de *padpo* et *pospell* est évidemment recherché.
@christopheNan christopheNan added the meta label Apr 2, 2020
@deronnax
Copy link
Collaborator

@deronnax deronnax commented Apr 2, 2020

Hmmm si je dis pas de bêtise, pospell ne vérifie pas un mot qui commence par une majuscule (parce que c'est un nom propre, évidemment), saaaauf si ce mot est au début d'une phrase, parce que dans ce cas il n'a pas moyen de savoir si c'est un nom propre. Voili voilou

@vpoulailleau
Copy link
Contributor

@vpoulailleau vpoulailleau commented Apr 2, 2020

Par contre, padpo se base sur Grammalecte combiné aux glossaires de la doc et de contributing.rst.

Mais c'est une chose qui pourrait être assouplie pour les mots qui commencent par une majuscule (ou autre idée)…

Je suis en rush jusqu'à fin mai, n'hésitez pas à ouvrir une issue sur padpo si le besoin est confirmé (voire une PR 😉).

@christopheNan
Copy link
Collaborator Author

@christopheNan christopheNan commented Apr 2, 2020

Il se trouve que nous avons traduit « James C. Ahlstrom », donc oui, pour pospell il est en début de phrase, ce qui génère une erreur donc une entrée dans le dictionnaire. On aurait peut-être pu traduire « James Ahlstrom », ce qui résoud le problème pour cet exemple.
Mais qu'en est-il des mots suivants dans dict (y ont-ils leur place ou une simple indication sur l'entrée correspondante ne serait pas mieux) : 017f, 212a, farrugia, fredrik, kuchling, ….

@christopheNan
Copy link
Collaborator Author

@christopheNan christopheNan commented Apr 2, 2020

Ensuite, je propose la balise # kinapadpo:majuscule pour ne pas vérifier les majuscules :

    #: ../Doc/reference/datamodel.rst:2197
    # kinapadpo:majuscule
    msgid "and so forth.  Missing slice items are always filled in with ``None``."
    msgstr "et ainsi de suite. Les éléments manquants sont remplacés par ``None``."
@christopheNan
Copy link
Collaborator Author

@christopheNan christopheNan commented Apr 2, 2020

Un but pourrait aussi de supprimer le fichier padpo.ignore qui me semble être plus une rustine qu'une vraie réflexion d'architecture (je ne critique pas, ça fait le job aujourd'hui et j'❤️ padpo).

@vpoulailleau
Copy link
Contributor

@vpoulailleau vpoulailleau commented Apr 2, 2020

Un but pourrait aussi de supprimer le fichier padpo.ignore qui me semble être plus une rustine qu'une vraie réflexion d'architecture (je ne critique pas, ça fait le job aujourd'hui et j'heart padpo).

Le but du padpo.ignore est juste de vérifier qu'on ajoute pas de nouvelle erreurs par rapport à un existant qui avait été sauvegardé dans ce fichier. Il ne contient pas de liste de mots à ignorer.

Là j'ai vu passer le mail, mais je risque de zapper la suite, donc je compte sur vous pour une issue dans padpo si nécessaire (une balise comme proposée par @christopheNan est tout à fait jouable, mais ça risque de ne pas être très précis dans la localisation de ce qui doit être réellement ignoré, en particulier pour les longs msgstr)

@christopheNan
Copy link
Collaborator Author

@christopheNan christopheNan commented Apr 2, 2020

Je suis d'accord, mais quand je vois la longueur de padpo.ignore, j'ai peur ! Cela veut aussi dire que tout ce qui est dedans aujourd'hui, on ne le voit plus. Donc on ne se pose pas la question de savoir si c'est toujours bien de l'ignorer.
Le but est de mettre toutes les lignes de padpo.ignore au plus près des traductions pour que nos successeurs aient plus d'éléments pour apprécier la qualité de la traduction.
Je prends par exemple les majuscules en début de msgstr. Je me suis fait c***r à vérifier la bonne typographie dans reference et tutorial. Et aujourd'hui, dès que quelqu'un reprend un fichier, il me colle des majuscules partout au prétexte que « c'est pas moi, c'est POEdit qui me l'a dit ». Ce type de balise permettrait d'ignorer le message d'erreur de Grammalecte (repris par padpo) et de prévenir le traducteur ultérieur.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
3 participants
You can’t perform that action at this time.