[Inform7] Retirer les accents d'une chaîne de caractères

Salut à tous !

A cause du problème de Vorple qui ne gère pas encore les accents, sitôt qu’il s’agit de Javascript, je me demande s’il est possible de facilement retirer les accents d’une chaînes de caractères.
Je sais déjà mettre une chaîne de caractères en majuscule ou en minuscule et je pensais procéder de la même manière, mais ça ne semble pas être possible.

Existe-t-il une commande pour ça ou faut-il la coder soi-même ?

Merci d’avance !

Il faut le faire soit même.

To decide what text is (T - a text) sans accents: replace the text "é" in T with "e"; replace the text "è" in T with "e" [et ainsi de suite] decide on T.
On peut aussi utiliser du regex pour faire chaque lettre en une fois, mais je ne sais pas si c’est plus lent ou pas.

To decide what text is (T - a text) sans accents: replace the regular expression "é|è|ê|ë" in T with "e" [et ainsi de suite] decide on T
(Je n’ai pas testé celui-ci.)

Et puis tant qu’à faire, plutôt que d’enlever les accents, tu peux remplacer les lettres par le code Unicode comme mentionné dans l’autre fil.

Très bien, merci.

Je posais la question par curiosité mais je vais en rester au plus simple qui sera, du coup, le plus économe pour la machine. Cette histoire d’accents s’est rappelée à mois sous la forme des liens hypertexte. Pour les insérer à la volée, je me suis fait une petite phrase ultra courte avec un seul paramètre. Le texte du lien est du coup le même que la commande qu’il envoie au prompt. C’est la commande accentuée qui bloque, il suffit de la redéfinir manuellement et puisque le joueur ne la vois pas, peu importe à quoi ressemble cette commande.

Du coup, en écrivant ces lignes, une autre question me vient.

Je trouve que la manière dont était insérés les liens dans l’extension Unline Hyperlinks de Érik Temple était plus agréable que dans celle de Vorple.

say "Blabla [link]le lien[comme]la commande[end link] blabla";

Au lieu de :

say "Blabla ";
place a link to command "commande" reading "texte du lien", l'option pour cacher la commande et dont je ne me souviens plus de la formule anglaise au moment ou j'écris ceci;
say " blabla.";

J’ai raccourci la phrase, mais est-il possible de la mettre en balise à la sauce Érik Temple ? J’imagine que non. L’extension nécessitait une autre extension, Text capture. A moins que cette autre extension soit compatible Vorple, ça paraît mal parti.

Ce que tu peux faire, c’est redéfinir la phrase de Vorple qui échappe le texte pour y ajouter le code qui remplace les accents. Tu copies ça au début de ton jeu :

To decide which text is escaped (string - text) using (lb - text) as line breaks: [Ce qui suit est repris de Vorple.] let safe-string be text; repeat with X running from 1 to number of characters in string: let char be character number X in string; if char is "'" or char is "[apostrophe]" or char is "\": now safe-string is "[safe-string]\"; if char is "[line break]": now safe-string is "[safe-string][lb]"; otherwise: now safe-string is "[safe-string][char]"; [Ce qui suit est la solution pour les accents.] replace the text "é" in safe-string with "e"; [Et ainsi de suite] decide on safe-string.
Si le bug est résolu dans Vorple, tu enlèves ce code. Au moins, tu n’as plus de problèmes d’accents en attendant.

Pour ce qui est des liens, je ne vois pas pourquoi Text Capture ne fonctionnerait pas, mais on peut aussi utiliser du JavaScript à la place. On afficherait le lien sous forme de texte à l’écran, puis on utilise du JavaScript pour le récupérer, le supprimer de l’écran et créer le lien cliquable en tant que tel. Ça ne devrait pas être trop difficile. Encore une fois, ce genre de manipulation devrait ralentir le jeu, mais ça doit vraiment être négligeable.

Ok, merci pour tout ça. Je vais avoir quelques petits tests à faire, moi.
Entre autres, vérifier si Text capture fonctionne.

Marrant parce que j’ai fait exactement la même chose sur mon projet vorple (I6) aujourd’hui. Ça m’embête encore plus parce que j’utilise les hyperliens et les tooltips de façon fréquente :frowning:

Si ça peut aider, j’ai des fonctions IsAnA, IsAnE, IsAnI, IsAnO, IsAnU (que Natrium connaît bien) dans les biblothèques francophones Inform 6… Ces fonctions m’ont facilité la tâche en tout cas.

Salut Mule hollandaise,

Si je suis dans le besoin, je n’hésiterai pas ! 
C’est sympa de proposer.

Mais dans l’absolu, compte tenu de la structure de mon projet, cette histoire d’accent ne me dérange pas tant que ça. En effet, les commandes que j’envoie au programme sont souvent des codes invisibles pour l’utilisateur, utilisateur qui se contente de cliquer sur des liens.

Après, je pose quand même les questions car plus on en sait, mieux c’est.

EDITE :
Text capture marche bien sur Vorple. Du coup, se faire des balises de liens pratiques à utiliser a été super simple. Je pourrais combiner ça avec un petit code pour retirer les accents, mais je crois que je préfère entrer manuellement la commande du lien. C’est moins automatisé, mais plus pratique dans tout un tas de situations.

Ah oui, tu caches la commande / le prompt à l’utilisateur ? (Un peu comme un Twine?)
Moi j’ai des liens de type « examiner » (clic sur le mot = commande « examiner mot »), d’autres de type « parler » et d’autres « consulter ». Ça affiche des kanji et ça comprend pas la commande, alors ca sera « examiner television » plutôt que « télévision », tant pis…

Sauf que les textes I7 ne correspondent pas aux chaînes I6. Du coup, il faut faire de la conversion puis tout un tas de manipulations pour tranformer le texte en array, utiliser ces routines et les retransformer en texte I7… J’ai laissé tombé et préféré utiliser les fonctions d’I7 pour manipuler des textes.

Tu as essayé d’écrire « \u00E9 » à la place des « é » ? Normalement ça devrait marcher.

Oooh ! Un nouveau projet ?

@Mule hollandaise :
En effet, je cache le prompt. Vorple 3 permet de faire ça très proprement. En parallèle, je cache aussi les commandes envoyées par les liens, histoire que ce soit bien invisible. J’ai également codé une surcouche par-dessus Inform et c’est avec elle que je communique.
Ça me permet de mettre de côté les trois quarts, pour ne pas dire les neufs dixièmes, du comportement classique d’Inform7. C’est préférable car mon projet n’a plus grand-chose à voir avec de la FI par prompt.
C’était la philosophie que j’avais appliqué pour la Tour d’Orastre. Je l’ai juste mis à jour pour Vorple. Et ça marche du feu de dieu ! J’ai vraiment hâte de pouvoir vous montrer ça ! :slight_smile: