1

C'est pas vraiment de l'algo, mais je sais pas où poster.

Je code une fonction de recherche à la main, les données sont en UTF-8. Et je voudrais savoir s'il est possible d'avoir un truc qui regroupe tous les accents avec les caractères classiques les plus proches. Je m'explique:

Désir --> deviendrait Desir, car "é" est proche de "e"
mais aussi dans d'autres langues
ñaño --> nano, car "ñ" est proche de "n"
Doğuş --> Dogus, car "ğ" est proche de "g" et "ş" de s.

En gros il me faut un fichier texte qui regroupe les similitudes de ce genre avec toutes les lettres du monde entier.
Tout ce qui passe pas par le port 80, c'est de la triche.

2

Il y a une table de translitération dans GNU iconv. Elle est sous LGPL ou GPL (à vérifier).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

3

C'est pour faire quoi ? est-ce que tu veux aussi transformer œ en oe ? est-ce que tu transformes ö en o ou en oe ?
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

4

Je veux qu'en tapant "horen" on puisse tomber sur "hören" par exemple, comme le fait google quoi.
Tout ce qui passe pas par le port 80, c'est de la triche.

5

En PHP, j'utilise une fonction assez simple (je ne sais pas si elle est exhaustive) qu'on retrouve assez souvent :
function noacc($text)
{
	return strtr($text, "ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ","AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy");
}
avatar

6

ben non c'est pas exhaustif du tout cheeky (en plus tu as oublié le y tréma majuscule)
il manque plein de trucs genre ẫ ^^
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

7

(y a ni Y tréma ni ẫ en latin1, et je pense pas qu'il ait la prétention d'énumérer tout unicode triso)
par contre il en manque même en latin1, genre Ð ou surtout Ñ ^^

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

8

Ah oui, tiens, bizarre que le ñ ait été oublié...
avatar

9

Ah oui c'est pas mal ca.. C'est un bon début disons..
En fait pour que la recherche soit insensible à la casse, je fais un mb_strtolower à l'insertion et à la recherche, donc je m'en fous des majuscules.. à moins que je perde de l'information ainsi?

PS & Edit: il manque aussi les lettres turques du genre de l'exemple que j'ai mis
Tout ce qui passe pas par le port 80, c'est de la triche.

10

Voilà les tables de la glibc: http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/localedata/locales/?cvsroot=glibc (les fichiers commençant par translit_*). La glibc est sous LGPL (2.1 ou supérieure). Tu peux utiliser la fonction iconv de la GNU libiconv ou de la glibc, ou l'exécutable iconv, pour les utiliser sans bidouiller (-f UTF-8 -t ASCII//TRANSLIT).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

11

ok merci wink
Tout ce qui passe pas par le port 80, c'est de la triche.

12

La j'crois que tu as la meilleure solution. smile
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

13

./7 > ben je pensais qu'il voulait tous les diacritiques possibles sur les caractères latins ^^
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

14

On a eu exactement la même problématique, et on m'a conseillé d'utiliser ca :
http://www.icu-project.org/userguide/Transform.html

C'est un soft généric, pas de liste en interne, ca a l'air puisssant. Perso j'y comprend pas grand chose, tout ce que je sais c'est que ca marche en utilisant ca en java :
    private static Transliterator transliterator = Transliterator.getInstance("NFD; [:Nonspacing Mark:] Remove; NFC");


et ca existe aussi en C : http://www.icu-project.org/download/

15

hibou (./14) :
C'est un soft généric, pas de liste en interne, ca a l'air puisssant.

Sachant que ça dépend quand même d'une DLL de 8 Mo, je dirais plutôt qu'y a pas mal de données "en interne" hehe (mais bon, c'est sûrement pas une énumération bourrine comme ./5, évidemment)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

16

ca a l'air pas mal aussi, mais je vais pas chercher à comprendre toutes les fonctionnalités de ce truc, c'est clair... quoique.. quand il faut le faire, faut le faire
Tout ce qui passe pas par le port 80, c'est de la triche.

17

ba ICU c'est la creme de la creme, mais bon sang que c'est lourd !
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

18

Pour ceux que ça interresse, i lexiste une vraie extension pear pour PHP de transliteration qui est assez puissante et plus propre que le strtr de ./5 :
http://derickrethans.nl/translit.php

19

C'est EXACTEMENT ca. love
Tout ce qui passe pas par le port 80, c'est de la triche.