Locales

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I have the following code that is supposed to print the name of the native locale:

#include <locale>
#include <iostream>

int main(int argc, char **argv)
{
    std::locale test("");    
    std::cout << "Native Locale is: " << test.name() << std::endl;
    return 0;
}

The above code on Windows with Visual Studio 7 shows:

Native Locale is: English_United_Kingdom

or something very close to that. Using gcc on Windows (MinGW's g++) it shows:

Native Locale is: C

which is relatively sensible, but using gcc (g++) on Linux I get:

Native Locale is: LC_TYPE=en_GB.UTF-8;LC_NUMERIC=C;LC_TIME=C;LC_COLLATE=C; LC_MONETARY=C;LC_MESSAGES=C;LC_PAPER=C;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C; LC_MEASUREMENT=C;LC_IDENTIFICATION=C

when what I expected was:

Native Locale is: en_GB.UTF-8

or something similar. Now, I could extract the native locale from the LC_TYPE variable, but I wondered:

1) Was the list of locale LC_ variables something you would have expected?
2) Is there something else I should be constructing the locale with to give the native locale on Linux?
3) Is it possible to get the correct native locale on Windows with gcc (rather than C - the same results if I build and run the program in MSYS or the Windows Command Prompt)? Any answer to question 2 may answer this, I guess.

Thanks for any help you can give.

Chris



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux