Bonsoir,

>    def to_ascii
>       Iconv.new('ASCII//TRANSLIT', 'UTF-8').iconv(self)
>    end
>    if "é".to_ascii != "e"
>       def to_ascii
>          # ... remplacements avec gsub
>       end
>     end
>

A toutes fins utiles et vu que Iconv ne marche pas partout, j'ai de
mon côté ceci (dont je ne suis pas tout à fait satisfait, mais qui
marche raisonnablement bien dans mes cas):

====================
module DiacriticsFu
   def self.escape(str)
 
ActiveSupport::Multibyte::Handlers::UTF8Handler.normalize(str,:d).split(//
u).reject { |e| e.length > 1 }.join
  end
end
====================

Les tests:

====================
require File.dirname(__FILE__) + '/../spec_helper'
require 'diacritics_fu'

describe "DiacriticsFu.escape" do

  it "should remove the accents with grace" do
    DiacriticsFu::escape("éphémère").should eql("ephemere")
    DiacriticsFu::escape("éêèïîù").should eql("eeeiiu")
  end

  KNOWN_DIACRITICS = { "a" => "àäâ", "e" => "éèêë", "i" => "îï", "o"
=> "ôö", "u" => "üû", "c" => "ç",
                       "I" => "ÏÎ",  "E" => "ÊË", "n" => "ñ", "O" =>
"ÔÖ", "Y" => "Ÿ", "y" => "ÿ", "N" => "Ñ"  }

  KNOWN_DIACRITICS.each do |expected_replacement,originals|
    it "should transform any of '#{originals}' into
'#{expected_replacement}'" do
      originals.split(//).each do |original|
        DiacriticsFu.escape(original).should eql(expected_replacement)
      end
    end
  end
end
====================

C'est un besoin quand même assez répandu, est-ce que quelqu'un connaît
une petite gem simple qui ferait ce genre de chose directement ?

-- Thibaut


--~--~---------~--~----~------------~-------~--~----~
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 à