On 7/29/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> 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.
J'ai une fonction similaire dans mes plugins. Attention toutefois, ta
fonction ne prend pas en compte les majuscules accentuées (le downcase ne
fonctionne que pour l'ascii de base donc ta majuscule accentuée restera
telle quelle). Il te faudrait ajouter ça.
Si tu te contentes du français je te propose aussi d'épurer tes expressions.
Plus tu en ajoutes plus ça prendra de temps. Si tu veux faire du dynamique
avec to_param comme je le lis dans le fil de discussion, ta normalisation
prendra effet plusieurs fois par page. Il vaudrait mieux ne faire que
l'utile.
Attention aussi à la méthode iconv. Elle est beaucoup plus rapide, beaucoup
plus efficace, mais suivant les systèmes, le é peut donner soit e soit e'
(avec l'apostrophe juste après). Perso dans ma fonction similaire j'ai
d'abord utilisé iconv, puis j'ai mis ce qui suit (ma méthode s'appelle
"to_ascii") :
def to_ascii
Iconv.new('ASCII//TRANSLIT', 'UTF-8').iconv(self)
end
if "é".to_ascii != "e"
def to_ascii
# ... remplacements avec gsub
end
end
Perso j'ai ajouté ça directement à String vu que je l'utilise à plusieurs
endroits.
>
> Dois-je placer ce code pour l'utiliser partout dans Rails ?
Logiquement tu fais un plugin. Dans ton répertoire /vendor/plugins tu fais
un nouveau répertoire avec un init.rb pour charger tout ça.
Après au choix, où tu fais un module qui étendra ton modèle, ou tu étend ta
classe String (suivant que tu veux utiliser ça juste pour les urls de rails
ou de manière plus générique)
--
Éric Daspet
http://eric.daspet.name/
--~--~---------~--~----~------------~-------~--~----~
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]
-~----------~----~----~----~------~----~------~--~---