Page 1 sur 1

[WeiDU] Besoin d'un coup de main pour une expression régulière

Posté : mar. 13 nov. 2018, 16:29
par Freddy_Gwendo
J'ai besoin d'une expression régulière testant l’existence des termes suivants :

Code : Tout sélectionner

~Могут использовать только:
~Используется:~
~Используют:~
~Может Использоваться:~
~Применимо:~
Idem pour :

Code : Tout sélectionner

~Не могут использовать:~
~Не используют:~
~Не используется:~
~Не может использоваться:~
~Не применимо:~



Les codes suivants sont-ils corrects ?

Code : Tout sélectionner

~\([M]Могут[ %tab%]+[И]использовать[ %tab%]+только\|[И]используется\|[И]используют\|[М]может[ %tab%]+[И]использоваться\|[П]применимо\)[ %TAB%]*:.*~

~[Нh]e[ %tab%]+\([M]могут[ %tab%]+[И]использовать\|[И]используют\|[И]используется\|[М]может[ %tab%]+[И]использоваться\|[П]применимо\)[ %TAB%]*:.*~

Posté : mar. 13 nov. 2018, 22:51
par Isaya
Cela a l'air correct, à une exception près : pour les lettres autres que le H, tu n'as pas mis les variantes majuscule et minuscule de la lettre qui débute le mod entre crochets mais uniquement une des deux. Par ailleurs le troisième mot de la première expression ne prévoit pas l'usage d'une majuscule, je ne sais pas si c'est intentionnel.

Tu aurais peut-être intérêt à homogénéiser l'écriture de TAB/tab à la définition officielle ou à la définition incluse dans ton mod. Il y a des chances que WeiDU soit sensible à la casse mais j'ai oublié, à vrai dire.

Je me pose aussi une question sur ce que tu as mis à la fin après les deux points. Si les variantes correspondent à "Utilisable / Inutilisable par", où la suite est à la ligne, alors l'indication de .* tout à la fin va bien permettre de couvrir tous les caractères après les deux points sans chercher à le réinjecter. Autrement il te faudrait mettre entre parenthèses pour pouvoir récupérer le contenu.

Pour vérifier tes expressions, n'hésite pas à utiliser notepad++. La différence avec les expressions régulières de WeiDU est qu'il n'y a pas besoin du \ avant les parenthèses et |. C'est WeiDU qui diffère de la norme sur ce point.

Posté : mer. 14 nov. 2018, 08:08
par Freddy_Gwendo
Bien vu pour les tab. Je n'avais pas fait attention. Et effectivement, je veux tout supprimer après ":"

Entre temps, j'ai eu confirmation par Creepin, l'un des administrateurs de SHS, que la traduction de Usable by/Not usable by est un vrai foutoir en russe car on peut les traduire d'une dizaine de manières. Il s'est renseigné auprès de arcanecoast.ru et ils ont opté pour ~Используется:~ ~Не используется:~. Il ne me reste plus qu'à corriger les fichiers tra russes et à lui demander de me confirmer que les séries [majuscule]minuscule sont bien exactes, car je suis à peu près certain que le h de [Нh]e n'est pas du cyrillique. ;)

Je ferai un test sur notepad ce soir. ^^

Edit : dernière question.

Il me semble que tu avais identifié un problème avec l'encodage des fichiers tra polonais sur un mod. L'un des mods publiés par Derat comporte une traduction polonaise et son fichier tra est codé en caractères européens normaux (latins). Est-ce que ça va poser problème si on le passe à la moulinette HANDLE_CHARSETS ?

Posté : ven. 08 nov. 2019, 22:43
par Freddy_Gwendo
Pour info, ton astuce de test avec Notepad est vraiment nickel : je viens de rationaliser ma fonction pour plusieurs langues et elle m'a fait gagner un temps fou dans l'écriture des expressions régulières. Dorénavant, elle fonctionne pour le français, l'anglais, l'allemand, l'italien, le russe et l'espagnol.
Quant à la version polonaise, on verra bien à l'usage. ;)