Re: Résolution des rapports pology check_rules

Johnny Jazeix jazeix at gmail.com
Dim 30 Aou 19:39:30 BST 2026


Bonsoir,
pour la première règle, je pense qu'elle est risquée avec la
traduction des sites internet et l'utilisation de `` pour les liens si
je ne me trompe pas.
comme dit dans l'autre mail, je serai plus partant pour corriger la
règle et avoir "boite" partout (j'ai mis à jour la MR).

Cordialement,
Johnny


Le dim. 30 août 2026 à 19:52, Côme Allart <come.allart at netc.fr> a écrit :
>
> Bonjour,
>
> TL;DR : J'aimerais résoudre les rapports de pology règle par règle, par nombre d'occurrences décroissant.
> La première règle (remplacer les accents graves / guillemets arrières ` par des guillemets «») ne me semble pas pertinente car elle me semble n'avoir que des faux positifs (1728 rapports dans 203 fichiers).
> La seconde remplace « boite » par « boîte », j'aimerais savoir si ça vous irait que j'effectue le remplacement dans tous les fichiers (1261 rapports dans 271 fichiers).
>
> --- Version longue ---
>
> J'ai commencé à regarder les règles pology sur l'ensemble des fichiers (commande nushell ci-dessous)
>
> let checks = glob **/*.po | path relative-to ('.' | path expand) | par-each {
>   { path: $in, result: (python3 ../pology/scripts/posieve.py -b check_rules $in | complete) }
> }
>
> J'ai un fichier qui a une erreur, je vais donc l'ignorer pour la suite
>
> $checks | where result.exit_code != 0 or result.stderr != ""
> ╭──────────────────path──────────────────┬───────────────────────────────────────result───────────────────────────────────────╮
> │ websites-hugo-kde/hugo-kde._static_.po │ ╭───────────┬────────────────────────────────────────────────────────────────────╮ │
> │                                        │ │ stdout    │                                                                    │ │
> │                                        │ │ stderr    │ posieve.py: [error] There are no internal rules for language 'en'. │ │
> │                                        │ │           │                                                                    │ │
> │                                        │ │ exit_code │ 1                                                                  │ │
> │                                        │ ╰───────────┴────────────────────────────────────────────────────────────────────╯ │
> ╰──────────────────path──────────────────┴───────────────────────────────────────result───────────────────────────────────────╯
>
>
> Je me suis dit qu'il serait intéressant de :
>
> regrouper les résultats par règle (group-by rule ci-dessous)
> regarder en priorité les règles qui produisent le plus de rapports (sort-by { $in.items | length })
> nous mettre d'accord sur l'action à effectuer
> faire la modification sur l'ensemble des fichiers
> relire les résultats
> recommencer avec la règle suivante
>
> Donc j'ai bricolé une commande pour parser la sortie des "checks", regrouper par règle et prioriser
>
> $checks | where result.exit_code == 0 and result.stderr == "" | get result.stdout
> | par-each {
>   lines | split list "----------------------------------------" | skip | drop
>   | each {
>     {
>       raw: ($in | str join "\n")
>       ...($in.0 | parse "{file}:{line}(#{nr})" | get 0 | into int line nr)
>       sources: ($in | where $it starts-with "#:" | each {
>         split row " " | skip
>         | each {
>           if $in =~ ':\d+$' {
>             let split = $in | split row :
>             { file: ($split | drop | str join :), line: ($split | last | into int) }
>           } else {
>             { file: $in }
>           }
>         }
>       } | flatten)
>       rule: ($in | last)
>     }
>   }
> } | flatten
> | reject raw
> | group-by rule --to-table --prune | sort-by { $in.items | length }
> | save ../pology.yaml
>
> (Je peux envoyer les résultats au format que vous voulez si vous voulez vous plonger un peu dans les données. Je ne les mets pas ici, c'est un peu gros.)
>
> La règle qui produit le plus de rapports est :
>
> open ../pology.yaml | last | { rule: $in.rule, reports: ($in.items | length), files: ($in.items.file | uniq | length) }
> ╭─────────┬──────────────────────────────────────────────────────────────────────────────────────────────────╮
> │ rule    │ [note] rule [pattern=`] ==> Utiliser de vrais guillemets, au lieu d'une apostrophe (homogénéité) │
> │ reports │ 1728                                                                                             │
> │ files   │ 203                                                                                              │
> ╰─────────┴──────────────────────────────────────────────────────────────────────────────────────────────────╯
>
> Cependant, en parcourant les fichiers, je vois beaucoup de faux-positifs, parce que les fichiers sources sont en Markdown ou en ReStructuredText.
> Si je les enlève, il ne reste plus grand chose
>
> open ../pology.yaml | last | get items | where { get sources.0?.file | path parse | get extension | $in not-in [rst md] }
> ╭────────────────────file─────────────────────┬─line──┬──nr──┬───────────────────sources───────────────────╮
> │ klevernotes/org.kde.klevernotes.metainfo.po │   334 │   53 │ ╭───────────────file───────────────┬─line─╮ │
> │                                             │       │      │ │ org.kde.klevernotes.metainfo.xml │  164 │ │
> │                                             │       │      │ ╰───────────────file───────────────┴─line─╯ │
> │ klevernotes/org.kde.klevernotes.metainfo.po │   352 │   56 │ ╭───────────────file───────────────┬─line─╮ │
> │                                             │       │      │ │ org.kde.klevernotes.metainfo.xml │  173 │ │
> │                                             │       │      │ ╰───────────────file───────────────┴─line─╯ │
> │ kile/kile.po                                │  6412 │  948 │ ╭────────file─────────┬─line─╮              │
> │                                             │       │      │ │ editorextension.cpp │   60 │              │
> │                                             │       │      │ ╰────────file─────────┴─line─╯              │
> │ kile/kile.po                                │  6424 │  950 │ ╭────────file─────────┬─line─╮              │
> │                                             │       │      │ │ editorextension.cpp │   62 │              │
> │                                             │       │      │ ╰────────file─────────┴─line─╯              │
> │ ghostwriter/ghostwriter_qt.po               │  1158 │  177 │ ╭────────file────────┬─line─╮               │
> │                                             │       │      │ │ src/mainwindow.cpp │ 1285 │               │
> │                                             │       │      │ ╰────────file────────┴─line─╯               │
> │ ghostwriter/ghostwriter_qt.po               │  1164 │  178 │ ╭────────file────────┬─line─╮               │
> │                                             │       │      │ │ src/mainwindow.cpp │ 1286 │               │
> │                                             │       │      │ ╰────────file────────┴─line─╯               │
> │ kstars/kstars.po                            │ 55353 │ 6693 │ ╭────file─────┬─line─╮                      │
> │                                             │       │      │ │ kstars.kcfg │ 4043 │                      │
> │                                             │       │      │ ╰────file─────┴─line─╯                      │
> ╰────────────────────file─────────────────────┴─line──┴──nr──┴───────────────────sources───────────────────╯
>
> En regardant les fichiers en question, il me semble qu'encore une fois il n'y a que des faux positifs pour cette règle. Devrions-nous la supprimer ?
>
> La règle suivante me semble plus pertinente :
>
> open ../pology.yaml | drop | last | { rule: $in.rule, reports: ($in.items | length), files: ($in.items.file | uniq | length) }
> ╭─────────┬───────────────────────────────────────────────────────────────────────────────────╮
> │ rule    │ [note] rule [pattern=\bboites?\b] ==> boite => boîte (avec un accent circonflexe) │
> │ reports │ 1261                                                                              │
> │ files   │ 271                                                                               │
> ╰─────────┴───────────────────────────────────────────────────────────────────────────────────╯
>
> Est-ce que ça vous va si je l'applique dans tous les fichiers ?


Plus d'informations sur la liste de diffusion kde-francophone