Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

If you open the Regional and Language Options (via Control Panel), and click on the Regional Options tab, then there is a drop down list of all the available locales.

Where is this list populated from?

(I want to compare the settings for each locale; I'm fine with how to do that, but I need a list of locale names to loop over.)


EDIT: After browsing through my windows directory (should probably mention I'm using XP), the file

C:\WINDOWS\system32\locale.nls

looks like a plausible candidate, but it's a binary file. Is this what I should be looking at, and if so, how do I read it?

share|improve this question
add comment

2 Answers

Microsoft don't make it easy for you. The NLS file mentioned in the question dose contain the locale information, but it's in HEX. Even with a hex editor, the contents are far from human readable. I decided to take an alternative strategy, inspired by r0ca's answer.

There is a more accurate list of available locales published by Microsoft. Unfortunately, even this list isn't quite right. (I installed all available locales, and I have Nothern Sotho, which isn't on Microsoft's list, but not Traditional Spanish, Modern Spanish or Macedonian. Ukranian is on the list twice.)

The names aren't quite right on the Microsoft list either.

In general, names should be of the form "Language" or "Language_Country Name", e.g. "English" or "English_United Kindom"

This means that underscores after the first must be replaced with spaces and that people names need to be replaced with country names, e.g. "Malay_Brunei_Darussalam" becomes "Malay_Brunei Darussalam" "Dutch_Belgian" becomes "Dutch_Belgium"

There are lots of other oddities. Latin, Cyrillic and some other words need to be bracketted, e.g. "Serbian_Cyrillic_Bosnia_Herzegovina" becomes "Serbian (Cyrillic)_Bosnia and Herzegovina"

Likewise "Sami_Inari" becomes "Sami (Inari)_Finland"

There are many more examples of having to guess proper country names "English_Philippines" becomes "English_Republic of the Philippines"

I figured most of these exceptions out by changing my Windows locale from the control panel, then loading up R and typing

Sys.getlocale()

Unfortunately, this method doesn't currently work with the Indian locales (plus a few others). See bug report here.

share|improve this answer
add comment

You have them all listed here. I hope this is what you are looking for

share|improve this answer
    
Thanks, although I really want the list of which languages are available on my system. For example, I don't have Chinese installed, but I do have Northern Sotho (which wasn't on the list). (Go figure about those options...) The point is that Windows must store a list of what is installed somewhere; I just can't find it. –  Richard Cotton Jul 21 '10 at 13:22
    
Still trying to get this .nls file reader working... Damn it! –  r0ca Jul 21 '10 at 20:42
    
Thanks for your persistence. It seems that the latest version of Gudu Software's NLS reader is corrupt. I've emailed them to tell them, so we'll have to wait and see. –  Richard Cotton Jul 22 '10 at 14:16
    
Yhea, I had the same but I didn't email. Also tried from several mirror but... no luck! –  r0ca Jul 23 '10 at 12:42
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.