Weirdness

Докато тествах новия модул за разработка на Ruby приложения с Netbeans се натъкнах на много глупав проблем, който касае по-скоро Swing toolkit-a отколкото самото IDE. При някои Linux системи, на които превключването на клавиатураната подредба е зададено в xorg.conf, Swing-a изглежда си няма идея кога точно потребителя е превключил от латиница на кирилица и дори при включена кирилица вписва в контролите само латински букви.

Понеже не се кефя на индикатори за клавиатурната подредба в taskbar-а съм изключил тези на KDE и съм дефинирал какво искам да използвам направо в конфигурационния файл на X.org. По принцип Java приложенията (тези които не използват Swing) засичат без проблем кога съм щракнал клавишната комбинация за смяна и писането на кирилица в тях не е проблем, затова останах леко изненадан от проблема с Netbeans. Още по-изненадан бях, когато установих, че като включа поддръжката на keyboard layout от KDE проблема с кирилицата изчезва. Станното е това, че и двата варианта (този на KDE и този на X.org) ползват една и съща програма за смяна на layout-ите – setxkbmap. Пускайки setxkbmap от конзола пак не успях да постигна успех, затова се зачудих какво е по-различното при работата на KDE със setxkbmap. Единственото което ми дойде наум е, че KDE указва LC_ променливите по различен начин от този, зададен в /etc/environment, затова точно преди да пусна отново Netbeans бутнах едно

export LC_ALL=bg_BG

и Swing-контролите захапаха кирилицата от раз, без никакви проблеми.

Ако имате подобен проблем – LC_ALL е решение, но не препоръчвам да го дефинирате в профилните файлове от сорта на .bashrc, освен ако не искате някои програми да се стартират на кирилица. На мен лично ми е досадно да чета български менюта, чувствам се по-комфортно с тези на английски, и поради тази причина сложих реда в стартиращия файл на Netbeans. А ако имате проблем с писането на кирилица в Swing и вместо родните букви се появяват йероглифи – вижте този сайт.


Маркери: , , ,

За тази статия



Категории