Ca n'est peut-être pas tout à fait "iso-fonctionnel", mais tu peux
essayer de remplacer tous tes appels à gsub par :

trans = Iconv.new('US-ASCII//TRANSLIT', 'utf-8')
trans.iconv str


++

yk

Le 29/07/07, [EMAIL PROTECTED]<[EMAIL PROTECTED]> a écrit :
> Bonjour à tous pour mon premier message sur cette liste, étant un
> nouvel utilisation (et déjà fan) de RoR.
>
> Je voudrais partager une méthode qui permet de convertir les accents
> en caractères correspondants non accentués.
> Je l'utilise pour générer des url propres en redéfinissant la méthode
> to_param
>
> Dois-je placer ce code pour l'utiliser partout dans Rails ?
>
> def self.normalize(str)
>      n = str.chars.downcase.strip.to_s
>      n.gsub!(/[àáâãäåāă]/,    'a')
>      n.gsub!(/æ/,            'ae')
>      n.gsub!(/[ďđ]/,          'd')
>      n.gsub!(/[çćčĉċ]/,       'c')
>      n.gsub!(/[èéêëēęěĕė]/,   'e')
>      n.gsub!(/ƒ/,             'f')
>      n.gsub!(/[ĝğġģ]/,        'g')
>      n.gsub!(/[ĥħ]/,           'h')
>      n.gsub!(/[ììíîïīĩĭ]/,    'i')
>      n.gsub!(/[įıijĵ]/,        'j')
>      n.gsub!(/[ķĸ]/,          'k')
>      n.gsub!(/[łľĺļŀ]/,       'l')
>      n.gsub!(/[ñńňņʼnŋ]/,      'n')
>      n.gsub!(/[òóôõöøōőŏŏ]/,  'o')
>      n.gsub!(/OE/,            'oe')
>      n.gsub!(/ą/,             'q')
>      n.gsub!(/[ŕřŗ]/,         'r')
>      n.gsub!(/[śšşŝș]/,       's')
>      n.gsub!(/[ťţŧț]/,        't')
>      n.gsub!(/[ùúûüūůűŭũų]/,  'u')
>      n.gsub!(/ŵ/,             'w')
>      n.gsub!(/[ýÿŷ]/,         'y')
>      n.gsub!(/[žżź]/,         'z')
>      n.gsub!(/\s+/,            ' ')
>      n.gsub!(/[^\sa-z0-9_-]/,   '')
>      n
>    end
>
> Ensuite, je voudrais faire :
> class XX < ActiveRecord::Base
>   def to_param
>     "#{id}-#{nom.gsub(/[^a-z1-9]+/i, '-')}"
>   end
> end
>
> Merci par avance,
>
> Cordialement,
>
> Pierre.
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse [EMAIL PROTECTED]
-~----------~----~----~----~------~----~------~--~---

Répondre à