clbr / radeontop

GNU General Public License v3.0
808 stars 70 forks source link

Fix some of NLS bugs #4

Closed Nikoli closed 10 years ago

Nikoli commented 10 years ago

Translations did not work at all with current master, with these patches they work, but still not perfect.

clbr commented 10 years ago

Applied the file name patch, thanks!

On the ncurses change, I applied a slightly different change, does it work for you? The ncurses vs -w does not depend on whether the user wants translations, it's a system decision which is installed.

Nikoli commented 10 years ago

On the ncurses change, I applied a slightly different change, does it work for you?

Yes.

The ncurses vs -w does not depend on whether the user wants translations, it's a system decision which is installed.

Gentoo package installs both:

$ equery f ncurses |grep libncurses
/lib64/libncurses.so.5
/lib64/libncurses.so.5.9
/lib64/libncursesw.so.5
/lib64/libncursesw.so.5.9
/usr/lib64/libncurses.so
/usr/lib64/libncursesw.so

Other distros also provide ability to install both: http://packages.debian.org/wheezy/libncurses5 http://packages.debian.org/wheezy/libncursesw5

For me translation did not work when linking to libncurses.so.5, so i think it is required to use libncursesw.so.5 for NLS, but is pointless when not using.

The ncurses vs -w does not depend on whether the user wants translations, it's a system decision which is installed.

Seems you are wrong, from http://invisible-island.net/ncurses/ncurses.faq.html

The normal ncurses libraries support 8-bit characters. The ncurses library can also be configured (--enable-widec) to support wide-characters (for instance Unicode and the UTF-8 encoding). The corresponding wide-character ncursesw libraries are source-compatible with the normal applications. That is, applications must be compiled and linked against the ncursesw library. ... The ncurses and ncursesw libraries are reasonably source-compatible. That is, an application written for "ncurses" will build with "ncursesw". But it will behave differently in response to your locale settings. (Some distributors, who do not care about the differences, have chosen to merge the names together as "ncurses").

For translations we sure need version with unicode support. If your distro is installing it as ncurses, but not as ncursesw, it is most likely mistake.

clbr commented 10 years ago

The fact you can install both doesn't mean both are installed by default. I meant such a case than only one was installed by default - that's a distro decision, not one to be made by a ncurses-using app.

Anyway, this is solved, closing.

Nikoli commented 10 years ago

I mean translations will not work when linking to ncurses instead of ncursesw. Unicode support is required for NLS.

clbr commented 10 years ago

They will work as long as the language doesn't need UTF-8. For example many European languages work fine without utf-8, including gettext translations.