valibuk.net

A place for opinions and notes of a valibuk.

Podpora slovenčiny i s triedením v PostgreSQL a Ruby on Rails

Tagged with: — ondrej at 5:33 pm on Friday, October 13, 2006

Ruby on RailsAk používate PostgreSQL databázu a radi by ste slovenké písmenká i triedenie mali, nasledujúci návod vám k tomu pomôže.

Keďže používam Gentoo distribúciu, uvediem aj kroky potrebné pre úspešné používanie slovenčiny na tejto distribúcii.

A ako posledné si ukážeme, ako to všetko použiť v Ruby on Rails.

Inštalácia

Inštalácia je pod Gentoo veľmi jednoduchá:

  1. emerge postgresql rails

Moje use flags pre postgresql sú:

  1. libg++ nls pam python readline ssl zlib -doc -kerberos -perl -pg-intdatetime (-selinux) -tcl -threads -tk -xml

a pre rails:

  1. postgres -doc -examples -fastcgi -mysql -sqlite -sqlite3

Nastavenie locale

V súbore /etc/locale.gen je potrebné pridať definíciu pre slovenčinu, t.j. hodnotou sk_SK.UTF-8 UTF-8. Moje nastavenie tohto súboru vyzerá nasledovne:

  1. en_US.UTF-8 UTF-8
  2. sk_SK.UTF-8 UTF-8

Pre vygenerovanie zadefinovaných (a pridaných) locales je potrebné zavolať nasledovný príkaz:

  1.  

Inicializácia PostgreSQL

Pre správne slovenské triedenie je potrebné inicializovať PostgreSQL s parametrom --lc-collate sk_SK.UTF-8, t.j.

  1.  

Takže nastavenie sa robí pre všetky databázy.

Žiaľ podľa mojich doterajších znalostí, nie je možné zmeniť spôsob triedenia pre existujúcu databázu. Jediný spôsob je exportovanie existujúcej databázy, zmazanie dátového adresára, inicializácia PostgreSQL s novým triedením a importovanie databázy.

Vytvorenie novej databázy

Novú databázu vytvoríme s UTF-8 kódovaním:

  1. createdb -E utf-8 meno_databázy

Napríklad vytvorenie troch databáz pre Ruby on Rails aplikáciu s nezameniteľným menom app :)

  1.  

Nastavenie v RoR aplikácii

Aplikácia má podporovať UTF-8 kódovanie; nastavenie je popísané na stránke HowToUseUnicodeStrings.

Nastavenie pre databázu musí obsahovať riadok encoding: unicode:

  1. adapter: postgresql
  2. database: app_development
  3. username: ondrej
  4. host: 127.0.0.1
  5. encoding: unicode

Ukážka konfiguračného súboru:

  1. development:
  2.   adapter: postgresql
  3.   database: app_development
  4.   username: ondrej
  5.   host: 127.0.0.1
  6.   encoding: unicode
  7.  
  8. test:
  9.   adapter: postgresql
  10.   database: app_test
  11.   username: ondrej
  12.   host: localhost
  13.   encoding: unicode
  14.  
  15. production:
  16.   adapter: postgresql
  17.   database: app_production
  18.   username: ondrej
  19.   host: localhost
  20.   encoding: unicode

Záver

S týmito nastaveniami bude aplikácia ukladať i načítavať dáta v UTF-8 kódovaní a prípadné triedenie podľa textových stĺpcov je pekne po našom. :)

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • DZone
  • Digg
  • Reddit
  • Technorati
  • Furl
  • NewsVine
  • Slashdot
  • Ma.gnolia
  • StumbleUpon

2 Comments »

64

Trackback by Firefox

October 14, 2006 @ 7:15 pm

Podpora Slovenčiny I S Triedením V PostgreSQL A Ruby On Rails…

A look at PostgreSQL and Ruby on Rails…….

Pingback by personal weblog » Blog Archive » RoR internationalization

November 27, 2007 @ 11:46 am

[…] Valibuk (Ondrej Jaura) – The author is concerned about Slovak (it is a blog in Slovak). The blog is about encoding issues, how to set up UTF8 support. Simple and understandable text. […]

RSS feed for comments on this post. TrackBack URI

Leave a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Comment Preview


commercial break :)

Make an account on slicehost.com -- a really good hosting where you have your own virtual machine. I installed Gentoo there = I like it very much ;)