Home > How to, Софтуер > Eclipse и .properties файловете

Eclipse и .properties файловете

March 22nd, 2009 Leave a comment Go to comments

Пиша си аз разни .properties файлове и в един момент идва времето за i18n. Интернационализираните фрази се пазят в .properties файлове и съответно ще има символи, различни от ISO-8859-1. Супер, уж съм си сетнал Eclipse да ми създава файловете в UTF-8, дори го прави!

Отварям пропъртис файла, в който ще се намира българска транслация на системата, пиша 2 пропътита и ctrl + s. Наплю ме, във файла имам символи, различни от ISO-8859-1. Нормално, но защо ме плюеш, сфиньо?!

Оказа се, че в Eclispe по подразбиране има default encoding на някои content types. Можем да го сменим от Preferences -> General -> Content Types. В моят случай, продължавам малко по-надълбоко в йерархията – Text -> Java Properties File и долу в Default Encoding променям записа на UTF-8. Цъкам Update и на всички child node-ове енкодинга е ъпдейтнат.

  1. Bo
    March 25th, 2009 at 11:53 | #1

    Dude,
    Да смениш encoding-a на properties файловете няма да ти свърши работа за i18n.
    За затъмнението има някакви plugins, които по време на редактиране на properties файл автоматично ти escape-ват символите, които не са в стандартната ascii кодова таблисе (code > 127) с unicode escape символи. Те вършат перфектна работа. В момента не се сещам за име на някакъв plugin, но ако ти трябва обадими се и ще ти намеря някакъв (едни колеги ми споменаха за някакъв китайски plugin ;) ).

  2. March 25th, 2009 at 13:36 | #2

    Принципно си прав – ResourceBundle-ите разбират от Latin-1 файлове. Иначе за i18n направих друга шмекерия – транзлейшъните са ми в таблиза с 3 колони – Locale, name и text и initialization сървлета (рънва се само при старт на application-a) взима преведения мат’рял. В тоя случай мога дори да си управлявам ресурсите през през админ панела и да викам ъпдейт на текущите заредени преводи, дори само на locale. Фън :)

    Едит: Първата ми идея (дори я реализирах!!! :D) беше с ант таск, който минава през .lang файловете с native2ascii и ги escape-ва. Базата ми хареса повече, по-гъвкаво е. :)

  1. No trackbacks yet.