View previous topic :: View next topic |
Author |
Message |
SAngeli l33t
Joined: 16 Apr 2004 Posts: 904 Location: Italy
|
Posted: Fri Jun 03, 2005 4:58 pm Post subject: 02locales question |
|
|
Hi,
I know that localization could become an issue because might not be so clear. Therefore, I decided to learn it for as much as I can but still have some doubts. So, I wish to ask for help with the goal to finalize all my questions. And, at the end I will write a summary (few lines) of how to properly do it.
Here is my scenario:
Gentoo PC with:
- Italian keyboard;
- English_US interface;
- Italian custom localizations, like: (NUMERIC, TIME, MONETARY, PAPER, ADDRESS, TELEPHONE and MEASUREMENT)
- I am implementing UTF-8
In order to succesfully apply localization you have to work on these files: /etc/locales.build, /etc/env.d/02locale, /etc/package.use, /etc/X11/xorg.config, /etc/make.conf and kernel settings.
1. /etc/locales.build
This is where you put all your preferred locales among those offered by your system.
2. /etc/env.d/02locale
This is where you make global locales declarations, with specific settings.
3. /etc/portage/package.use
This allows gibc to lean and compile those locales
4. /etc/X11/xorg.config
This allows for keyboard, video card settings for locales related entries
5. /etc/make.conf
This has two main entries: USE flags and LINGUAS
6. Kernel
Code: | File Systems -->
Native Language Support -->
(utf8) Default NLS Option
<*> NLS UTF8 |
Keep in mind that glibc must be compiled after all these settings are applied. This is usually done when at fresh install. Then you can just run "locale" to verify if you are happy with the settings. Once all the above is done, you can run emerge kde-i18n
Now, here are my questions:
1) Is all the above correct?
2) If I am at any stage where I make changes to /etc/locales.build, obviously I have to re-compile glibc. Correct? Is it only this file or also emerge -e system and then emerge -euD world?
3) I am unable to get a mixing environment exactely like the one below:
Code wrote: | LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="it_IT.UTF-8"
LC_TIME="it_IT.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="it_IT.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="it_IT.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="it_IT.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8 |
Either I get all en_EN or all it_IT. Is it possible (through 02local) to make it so?
4) Am I safe going all the say UTF-8? If not, is it possible to set my system to both UTF-8 and ISO-8859-1 with default UTF-8?
5) Are these settings below correct?
Here is how my PC is currently set:
Code: | /etc/env.d/02locale
LANG="en_US.UTF-8"
LC_NUMERIC="it_IT.UTF-8"
LC_TIME="it_IT.UTF-8"
LC_MONETARY="it_IT.UTF-8"
LC_PAPER="it_IT.UTF-8"
LC_MEASUREMENT="it_IT.UTF-8"
LC_ALL="en_US.UTF-8" |
Code: | /etc/locales.build
en_US/ISO-8859-1
en_US.UTF-8/UTF-8
it_IT/ISO-8859-1
it_IT.UTF-8/UTF-8
it_IT@euro/ISO-8859-15 |
Code: | /etc/package.use
sys-libs/glibc userlocales |
Code: | /etc/make.conf
LINGUAS="en it"
|
Code: | root # locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8 |
I thank you for all your effort because I wish to end this task, learn it well and move on.
Thank you,
Spiro |
|
Back to top |
|
|
Leo Lausren Apprentice
Joined: 24 Feb 2004 Posts: 198 Location: Denmark
|
Posted: Fri Jun 03, 2005 5:56 pm Post subject: |
|
|
LC_ALL overrules all LC_* so you need to unset it.
Code: | LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="it_IT.UTF-8"
LC_TIME="it_IT.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="it_IT.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="it_IT.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="it_IT.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL="" |
Edit quotes is needed for empty variable LC_ALL="" _________________ Blog: common sense – nonsense
Last edited by Leo Lausren on Fri Jun 03, 2005 7:15 pm; edited 1 time in total |
|
Back to top |
|
|
asimon l33t
Joined: 27 Jun 2002 Posts: 979 Location: Germany, Old Europe
|
Posted: Fri Jun 03, 2005 6:47 pm Post subject: |
|
|
The complete precedence is:
1. LC_ALL
2. The categories, i.e. LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, LC_TIME
3. LANG
The first variable which is set gets used. |
|
Back to top |
|
|
SAngeli l33t
Joined: 16 Apr 2004 Posts: 904 Location: Italy
|
Posted: Sat Jun 04, 2005 9:04 pm Post subject: |
|
|
Hi and and thanks for your reply.
How about these few questions, I did not get any answer:
2) If I am at any stage where I make changes to /etc/locales.build, obviously I have to re-compile glibc. Correct? Is it only this file or also emerge -e system and then emerge -euD world?
4) Am I safe going all the say UTF-8? If not, is it possible to set my system to both UTF-8 and ISO-8859-1 with default UTF-8?
5) Besides 02local are my settings correct?
Thank you,
Spiro
Last edited by SAngeli on Sun Jun 05, 2005 11:13 am; edited 2 times in total |
|
Back to top |
|
|
Leo Lausren Apprentice
Joined: 24 Feb 2004 Posts: 198 Location: Denmark
|
Posted: Sat Jun 04, 2005 10:29 pm Post subject: |
|
|
SAngeli wrote: | 2) If I am at any stage where I make changes to /etc/locales.build, obviously I have to re-compile glibc. Correct? Is it only this file or also emerge -e system and then emerge -euD world? | Well, you probably dont need to re-compile glibc. Chances are that you already have the locales that you need. Userlocales just skip most of them to save compile time.
If all you change is some skipped locales, there is no need to rebuild anything.
SAngeli wrote: | 4) Am I safe going all the say UTF-8? If not, is it possible to set my system to both UTF-8 and ISO-8859-1 with default UTF-8? | Not sure what you mean here. You do have the ISO-8859-1 locale. I say go for UTF-8.
SAngeli wrote: | 5) Besides 02local are my settings correct? | Looks good to me. _________________ Blog: common sense – nonsense |
|
Back to top |
|
|
asimon l33t
Joined: 27 Jun 2002 Posts: 979 Location: Germany, Old Europe
|
Posted: Sat Jun 04, 2005 10:50 pm Post subject: |
|
|
SAngeli wrote: | 2) If I am at any stage where I make changes to /etc/locales.build, obviously I have to re-compile glibc. Correct? Is it only this file or also emerge -e system and then emerge -euD world? |
/etc/locales.build only affects the what locales glibc generates and installs. Thus re-emerging glibc is enough. But if you only want to install new locales, then you don't have to reemerge the whole glibc. New locales can be generated with the localedef command.
SAngeli wrote: |
4) Am I safe going all the say UTF-8? If not, is it possible to set my system to both UTF-8 and ISO-8859-1 with default UTF-8?
|
I think there are still some applications which could be problematic with UTF-8, but overall it should be okay. I use UTF-8 without problems.
You can install utf-8 and iso locales alltogether (the default for glibc if you don't use USE=userlocales is to install all locales) and setup your system to use UTF-8. If some app misbehaves you could try to start it with "LC_ALL=it_IT.ISO-8859-1 <application>" (then you should have 'it_IT.ISO-8859-1/ISO-8859-1' in your locales.build) to have it use your ISO locale. My /etc/locales.build for example looks like
Code: | en_US/ISO-8859-1
en_US.UTF-8/UTF-8
de_DE.UTF-8/UTF-8
de_DE/ISO-8859-1
de_DE@euro/ISO-8859-15 |
Although I have some ISO locales installed I haven't used them in a long time.
Quote: |
5) Besides 02local are my settings correct?
|
If you use some UTF-8 encoding it is not wrong to have utf8 in your USE variable, i.e. /etc/make.conf, otherwise some apps may be missing utf-8 support. ('emerge --newuse world' can reemerge all packages for which the use flags have changed.)
EDIT: I would put 'unicode' too in your USE flag. |
|
Back to top |
|
|
SAngeli l33t
Joined: 16 Apr 2004 Posts: 904 Location: Italy
|
Posted: Sun Jun 05, 2005 8:18 am Post subject: |
|
|
Lastly, as I forgot:
6. Kernel
Code: | File Systems -->
Native Language Support -->
(utf8) Default NLS Option
<*> NLS UTF8 |
I replaced ISO-8859-1 as default NLS Option to UTF8 as adviced. Do you confirm me this in Kernel File Systems? Also, is there any correlation between the locales I can select in File Systems and one of the configuration files (/etc/locales.build, /etc/env.d/02locale, /etc/package.use, /etc/X11/xorg.config, /etc/make.conf) or the kernel File Systems selection apply only to file sysmtes as a concept and therefore has no relation with the above files?
How do I base my decision for proper keyboard layout when looking at /usr/share/keymaps/i386/include/ ?
I know I have an Italian keyboard which should be KEYMAP="it" but, can I make it better or more appropriate or just waste of time?
As for console fonts, how do I understand what I need, considering the Euro symbol?
Double check: If I make changes to /etc/locales.build it only affects what locales glibc generates and installs. Is it safe to say: then it is good idea to re-compile glibc. But if there are applications that were compiled with glibc before changes, it would also make sense to recompile system to be safe. Is this correct or a paranoic thinking? After all, once I re-compiled everything I am more safe. Obviously, this all thinking applies during first install of Gentoo if for any reason I change locales on the way. Please let me know.
I Thank you because you gave me a lot of good info for better understanding localization.
Spiro |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|