Bonjour Thomas,

>   Maintenant, j'essaye de créer un petit programme qui lit les
> traductions pour les mettres dans la base, or je n'arrive déséperement
> pas à ouvrir un fichier en UTF-8.

Quand tu parles de petit programme, tu veux dire que tu as créé un
script .rb que tu fais tourner en dehors de Rails, c'est ça ?
Si c'est bien ça et à moins que tu charges l'environment.rb de Rails,
ruby ne travaillera pas en UTF-8 par défaut:

Stitch:~/Work thbar$ irb
irb(main):001:0> $KCODE
=> "NONE"

Par contre si tu ouvres ruby script/console dans ton application
Rails, tu auras:

Stitch:~/Work thbar$ ruby script/console
Loading development environment.
>> $KCODE
=> "UTF8"

car Rails initialise KCODE à 'UTF8' lui même (enfin depuis quelques
temps). Tu devrais obtenir ce que tu attends dans un puts result.

J'ai plusieurs suggestions à te faire:
- utiliser FasterCSV (http://fastercsv.rubyforge.org/) pour parser le
CSV
- te placer dans une tache Rake pour tout ce qui concerne les taches
périphériques, afin de bénéficier des réglages de Rails (ex: UTF-8)
mais aussi de tous tes modèles ActiveRecord

Voici un début d'exemple (que tu peux placer sous lib/tasks/
monfichier.rake pour le rendre disponible sous rake directement)

require 'fastercsv'

namespace :mycompany do
  desc "Pick up all translations from xxx.csv and load them in the
database"
  task :fill_all_translations do
    FasterCSV.open('test.txt') ...
      MyRecord.create!(:title => row...)
    end
  end
end

Tu pourras alors t'en servir en invoquant rake
mycompany:fill_all_translations.
Je réalise une grande partie de mes tâches de maintenance de cette
façon, c'est très pratique.

a+!

Thibaut Barrère
--
LoGeek
http://www.dotnetguru2.org/tbarrere/


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