Page 1 sur 1

C'est tellement amusant...

Posté : ven. 12 janv. 2024, 11:03
par jazira
... d'avoir à "traduire" comme ça :

@504="Ce sort tue instantan[^m]+ment toutes les cr[^a]+atures convoqu[^e]+es, quels que soient leurs d[^s]+s de vie ou leurs immunit[^s]+s.\|De plus, ce sort tue instantan[^m]+ment toutes les cr[^a]+atures convoqu[^e]+es pr[^s]+sentes dans la zone d'effet, quels que soient leurs d[^s]+s de vie ou leurs [^v]+ventuelles immunit[^s]+s." // must be verbatim from BG2 description of Death Fog - correctfrbg2ee - bg2ee @7622 / correctfrbg1ee - bg1ee @26576 / obg2 @7622

@505="Les cr[^a]+atures disposant de plus de 8[^d]+d[^s]+s de vie sont immunis[^e]+es contre ce sort, [^ ]+ l'exception de celles ayant [^t]+t[^ ]+ invoqu[^e]+es qui sont, elles, imm[^d]+diatement tu[^e]+es.\|Les cr[^a]+atures disposant de plus de 8[^d]+d[^s]+s de vie sont immunis[^e]+es contre ce sort, [^ ]+ l'exception des cr[^a]+atures ayant [^t]+t[^ ]+ invoqu[^e]+es qui sont, elles, imm[^d]+diatement tu[^e]+es \(hormis les d[^m]+mons, d[^v]+vas, plan[^t]+taires et quelques autres cr[^a]+atures invoqu[^e]+es de haut niveau\)." // must be verbatim from BG2 description of Death Spell - correctfrbg2ee - bg2ee @7918 / correctfrbg1ee - bg1ee @26563 / obg2 @7918 (space instead of nbsp)

Je suis au bout du rouleau. :crazy:

Re: C'est tellement amusant...

Posté : ven. 12 janv. 2024, 17:16
par vv221
Argl, tout ça parce que les outils disponibles ne peuvent pas prendre en charge correctement les caractères accentués ?

Re: C'est tellement amusant...

Posté : ven. 12 janv. 2024, 17:44
par Selphira
C'est une tâche qui peut facilement être automatisée.

@jazira, je t'ai créé un petit script pour te faciliter la tâche : https://onlinephp.io/c/9077d

Il te suffit de copier ton texte pour remplacer les lignes 4, 5 et 6, et ensuite cliquer sur Execute code juste en dessous.

Re: C'est tellement amusant...

Posté : ven. 12 janv. 2024, 22:13
par jazira
Grosso modo, SCS a intégré lors des dernières mises à jour de nombreuses entrées qui, au lieu de remplacer l'intégralité d'une entrée dans le jeu (par ex un sort, d'un tilde à un autre), n'en remplacent qu'un petit bout (au milieu d'une phrase). Voilà le problème.

Du coup, les entrées de SCS à "traduire", doivent correspondre à l'exactitude aux entrées présentes dans le jeu, jusque-là tout va bien. Sauf que... la recherche se fait via des expressions régulières, qui ne supportent pas les caractères spéciaux, ni les espaces insécables. Le français en est plein, et les EE ont des espaces insécables un peu partout. De plus, le regex, c'est rarement un domaine où les traducteurs sont compétents. Heureusement que certaines personnes me filent un coup de main.

Cerise sur le tas de merde, les jeux Infinity Engine ont chacun d'éventuelles traductions différentes, ajoutez à ça les mods Correctfrs, et on peut obtenir potentiellement jusqu'à 5, voire 6 ou même plus, tournures différentes (BG1, BG2, IWD, BGEE, BG2EE, IWDEE, Correctfrs, etc.).

Là, on bloque sur ce dernier point. J'arrive pas à faire fonctionner les tournures alternatives en regex.

SCS EN
@505="Creatures with more than 8 Hit Dice are immune to this spell with the exception of summoned creatures, which are automatically slain." // must be verbatim from BG2 description of Death Spell
@7918 obg2/bg2ee - @26563 bgee EN
Creatures with more than 8 Hit Dice are immune to this spell with the exception of summoned creatures, which are automatically slain.
SCS FR (WIP, ne fonctionne pas encore...)
@505="\(Les cr[^a]+atures disposant de plus de 8[^d]+d[^s]+s de vie sont immunis[^e]+es contre ce sort, [^ ]+ l'exception de celles ayant [^t]+t[^ ]+ invoqu[^e]+es qui sont, elles, imm[^d]+diatement tu[^e]+es\.\)\|\(Les cr[^a]+atures disposant de plus de 8[^d]+d[^s]+s de vie sont immunis[^e]+es contre ce sort, [^ ]+ l'exception des cr[^a]+atures ayant [^t]+t[^ ]+ invoqu[^e]+es qui sont, elles, imm[^d]+diatement tu[^e]+es (hormis les d[^m]+mons, d[^v]+vas, plan[^t]+taires et quelques autres cr[^a]+atures invoqu[^e]+es de haut niveau)\.\)" // must be verbatim from BG2 description of Death Spell - correctfrbg2ee - bg2ee - obg2 (space instead of nbsp) @7918 / correctfrbg1ee - bg1ee @26563
@7918 obg2 FR - @26563 bgee FR
Les créatures disposant de plus de 8 dés de vie sont immunisées contre ce sort, à l'exception de celles ayant étés invoquées qui sont, elles, immédiatement tuées.
@7918 bg2ee FR
Les créatures disposant de plus de 8 (<- là il y a un espace insécable :crazy:)dés de vie sont immunisées contre ce sort, à l'exception de celles ayant été invoquées qui sont, elles, immédiatement tuées.
@7918 CorrectfrBG2EE - @26563 CorrectfrBG1EE
Les créatures disposant de plus de 8 dés de vie sont immunisées contre ce sort, à l'exception des créatures ayant été invoquées qui sont, elles, immédiatement tuées (hormis les démons, dévas, planétaires et quelques autres créatures invoquées de haut niveau).
Quant à IWD, IWDEE, Correctfrobg2, Spell Revision et d'autres peut-être... je ne sais même pas.

Bref, je me fais casser la gueule par SCS. :crazy:

Re: C'est tellement amusant...

Posté : ven. 12 janv. 2024, 22:16
par jazira
Et des trucs comme ça, il y en a des dizaines et des dizaines...

Merci Selphira pour le script, ça pourrait m'être pratique.

Re: C'est tellement amusant...

Posté : ven. 12 janv. 2024, 23:42
par vv221
Petite astuce si tu bosses avec des regex : plutôt que de d’utiliser des formes un poil complexes du style "[^e]+" pour indiquer "un caractère qui ne soit pas un "e" tu peux utiliser un simple "." (point), ce qui correspond à "un caractère, quel qu’il soit".

Ça permettrait par exemple de remplacer ça :
@505="\(Les cr[^a]+atures disposant de plus de 8[^d]+d[^s]+s de vie sont immunis[^e]+es contre ce sort, [^ ]+ l'exception de celles ayant [^t]+t[^ ]+ invoqu[^e]+es qui sont, elles, imm[^d]+diatement tu[^e]+es\.\)\|\(Les cr[^a]+atures disposant de plus de 8[^d]+d[^s]+s de vie sont immunis[^e]+es contre ce sort, [^ ]+ l'exception des cr[^a]+atures ayant [^t]+t[^ ]+ invoqu[^e]+es qui sont, elles, imm[^d]+diatement tu[^e]+es (hormis les d[^m]+mons, d[^v]+vas, plan[^t]+taires et quelques autres cr[^a]+atures invoqu[^e]+es de haut niveau)\.\)" // must be verbatim from BG2 description of Death Spell - correctfrbg2ee - bg2ee - obg2 (space instead of nbsp) @7918 / correctfrbg1ee - bg1ee @26563
par ça :
@505="\(Les cr.atures disposant de plus de 8.d.s de vie sont immunis.es contre ce sort, . l'exception de celles ayant .t. invoqu.es qui sont, elles, imm.diatement tu.es\.\)\|\(Les cr.atures disposant de plus de 8.d.s de vie sont immunis.es contre ce sort, . l'exception des cr.atures ayant .t. invoqu.es qui sont, elles, imm.diatement tu.es (hormis les d.mons, d.vas, plan.taires et quelques autres cr.atures invoqu.es de haut niveau)\.\)" // must be verbatim from BG2 description of Death Spell - correctfrbg2ee - bg2ee - obg2 (space instead of nbsp) @7918 / correctfrbg1ee - bg1ee @26563

Re: C'est tellement amusant...

Posté : dim. 14 janv. 2024, 15:17
par jazira
Merci, oui c'est également une option. J'ignore ce qui est le mieux, en toute honnêteté.

On approche du but, car je pense avoir trouvé comment prendre en compte les versions alternatives :
(Les cr[^a]+atures disposant de plus de 8 d[^s]+s de vie sont immunis[^e]+es contre ce sort, [^ ]+ l'exception de celles ayant [^t]+t[^ ]+s invoqu[^e]+es qui sont, elles, imm[^d]+diatement tu[^e]+es\.)|(Les cr[^a]+atures disposant de plus de 8[^d]+d[^s]+s de vie sont immunis[^e]+es contre ce sort, [^ ]+ l'exception de celles ayant [^t]+t[^ ]+ invoqu[^e]+es qui sont, elles, imm[^d]+diatement tu[^e]+es\.)|(Les cr[^a]+atures disposant de plus de 8[^d]+d[^s]+s de vie sont immunis[^e]+es contre ce sort, [^ ]+ l'exception des cr[^a]+atures ayant [^t]+t[^ ]+ invoqu[^e]+es qui sont, elles, imm[^d]+diatement tu[^e]+es \(hormis les d[^m]+mons, d[^v]+vas, plan[^t]+taires et quelques autres cr[^a]+atures invoqu[^e]+es de haut niveau\)\.)
@7918 obg2 FR - @26563 bgee FR
Les créatures disposant de plus de 8 dés de vie sont immunisées contre ce sort, à l'exception de celles ayant étés invoquées qui sont, elles, immédiatement tuées.
@7918 bg2ee FR
Les créatures disposant de plus de 8 (<- là il y a un espace insécable :crazy:)dés de vie sont immunisées contre ce sort, à l'exception de celles ayant été invoquées qui sont, elles, immédiatement tuées.
@7918 CorrectfrBG2EE - @26563 CorrectfrBG1EE
Les créatures disposant de plus de 8 dés de vie sont immunisées contre ce sort, à l'exception des créatures ayant été invoquées qui sont, elles, immédiatement tuées (hormis les démons, dévas, planétaires et quelques autres créatures invoquées de haut niveau).
Ce que je ne cromprends pas, par contre, c'est pourquoi et comment la regex rouge prend en comptre la version bleu (étés), car même sans la regex bleu, cela fonctionne sur toutes les versions...

Re: C'est tellement amusant...

Posté : dim. 14 janv. 2024, 15:26
par Selphira
jazira a écrit : dim. 14 janv. 2024, 15:17 Ce que je ne cromprends pas, par contre, c'est comment la regex rouge prend en comptre la version bleue (étés)...
Pour l'explication, cette regex [^ ]+ veut dire "1 ou plusieurs caractères différents de " " (espace).
Ce qu'il fait, que la regex trouvera si la chaîne est été, étés, ététralala, étrange, etc...

Re: C'est tellement amusant...

Posté : dim. 14 janv. 2024, 15:29
par jazira
Selphira a écrit : dim. 14 janv. 2024, 15:26
jazira a écrit : dim. 14 janv. 2024, 15:17 Ce que je ne cromprends pas, par contre, c'est comment la regex rouge prend en comptre la version bleue (étés)...
Pour l'explication, cette regex [^ ]+ veut dire "1 ou plusieurs caractères différents de " " (espace).
Ce qu'il fait, que la regex trouvera si la chaîne est été, étés, ététralala, étrange, etc...
Comment je pourrais faire pour que la regex rouge ne fonctionne qu'avec la version rouge, du coup ? Pas la version rouge ET bleu ?

Re: C'est tellement amusant...

Posté : dim. 14 janv. 2024, 15:40
par Selphira
Weidu ne possède pas toutes les possibilités qu'offrent les expressions régulières.
Tu peux utiliser le "." qui veut dire n'importe quel caractère, mais ça veut dire qu'il pourra aussi matcher avec "ét " (double espace). Bon c'est tiré par les cheveux, mais c'est une possibilité. Tu peux aussi essayer [^ ] sans le "+". Je ne vois pas comment faire d'autre en Weidu pour le cas des caractères accentués.

Avec des regex complètes, tu pourrais utiliser [^ ]{1} qui veut dire 1 caractère différent d'espace

Re: C'est tellement amusant...

Posté : dim. 14 janv. 2024, 15:49
par jazira
Selphira a écrit : dim. 14 janv. 2024, 15:40 Weidu ne possède pas toutes les possibilités qu'offrent les expressions régulières.
Ah ouais mais... c'est d'un compliqué. :crazy:
Selphira a écrit : dim. 14 janv. 2024, 15:40 Tu peux aussi essayer [^ ] sans le "+".
Sans le "+" ça fonctionne ! Merci beaucoup. ;)

Re: C'est tellement amusant...

Posté : dim. 14 janv. 2024, 15:50
par jazira
(Les cr[^a]+atures disposant de plus de 8 d[^s]+s de vie sont immunis[^e]+es contre ce sort, [^ ]+ l'exception de celles ayant [^t]+t[^ ]+s invoqu[^e]+es qui sont, elles, imm[^d]+diatement tu[^e]+es\.)|(Les cr[^a]+atures disposant de plus de 8[^d]+d[^s]+s de vie sont immunis[^e]+es contre ce sort, [^ ]+ l'exception de celles ayant [^t]+t[^ ] invoqu[^e]+es qui sont, elles, imm[^d]+diatement tu[^e]+es\.)|(Les cr[^a]+atures disposant de plus de 8[^d]+d[^s]+s de vie sont immunis[^e]+es contre ce sort, [^ ]+ l'exception des cr[^a]+atures ayant [^t]+t[^ ]+ invoqu[^e]+es qui sont, elles, imm[^d]+diatement tu[^e]+es \(hormis les d[^m]+mons, d[^v]+vas, plan[^t]+taires et quelques autres cr[^a]+atures invoqu[^e]+es de haut niveau\)\.)
Voilà la forme finale, trop FACILE !