Eclipse и .properties файловете
Пиша си аз разни .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-ове енкодинга е ъпдейтнат.
Dude,
Да смениш encoding-a на properties файловете няма да ти свърши работа за i18n.
За затъмнението има някакви plugins, които по време на редактиране на properties файл автоматично ти escape-ват символите, които не са в стандартната ascii кодова таблисе (code > 127) с unicode escape символи. Те вършат перфектна работа. В момента не се сещам за име на някакъв plugin, но ако ти трябва обадими се и ще ти намеря някакъв (едни колеги ми споменаха за някакъв китайски plugin ;) ).
Принципно си прав – ResourceBundle-ите разбират от Latin-1 файлове. Иначе за i18n направих друга шмекерия – транзлейшъните са ми в таблиза с 3 колони – Locale, name и text и initialization сървлета (рънва се само при старт на application-a) взима преведения мат’рял. В тоя случай мога дори да си управлявам ресурсите през през админ панела и да викам ъпдейт на текущите заредени преводи, дори само на locale. Фън :)
Едит: Първата ми идея (дори я реализирах!!! :D) беше с ант таск, който минава през .lang файловете с native2ascii и ги escape-ва. Базата ми хареса повече, по-гъвкаво е. :)