?
Solved

Getting System Language

Posted on 2003-02-20
5
Medium Priority
?
845 Views
Last Modified: 2008-02-01
I need to extract the system language code. I can get the code for the regional option setting using
GetLocaleInfo (LOCALE_USER_DEFAULT,LOCALE_SABBREVLANGNAME,@Buffer[1],10);,
but is there a deeper level? Using LOCALE_SYSTEM_DEFAULT did not seem to work on a Spanish PC
0
Comment
Question by:NCAnnie
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
5 Comments
 
LVL 6

Expert Comment

by:DaFox
ID: 7987920
Hi NCAnnie!

If you are using VCL, try this:

procedure TForm1.Button1Click(Sender: TObject);
begin
  with TLanguages.Create do
    try
      Label1.Caption := NameFromLocaleID[GetSystemDefaultLCID];
      Label2.Caption := NameFromLocaleID[GetUserDefaultLCID];
    finally
      Free;
  end;
end;

Markus
0
 
LVL 6

Expert Comment

by:DaFox
ID: 7987959
Just tested this one (and it works! :o)):

procedure TForm1.Button2Click(Sender: TObject);
var
  Buffer: String;
begin
  SetLength(Buffer, 255);
  GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_SABBREVLANGNAME, PChar(Buffer), Length(Buffer));
  Label1.Caption := Buffer;
end;


Markus
0
 

Author Comment

by:NCAnnie
ID: 8120563
LOCALE_SYSTEM_DEFAULT gives the language set as default in Windows 2000, which needs a reboot, LOCALE_USER_DEFAULT gives the language set in Regional Options ( no reboot necessary) Both of these can be changed by the user, but what about the Operating System language - the one which sets the language on the start button for example? None of the changes I made through Regional Options affected this. Can I find a constant representing this? I would like my (multilingual) software to open in the language of the users operating system.
0
 
LVL 6

Accepted Solution

by:
DaFox earned 150 total points
ID: 8120638
Hi.

- http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intl/nls_8d0z.asp

- use VerQueryValue() and get language from user.exe (veeery sloppy!)

Markus
0
 

Expert Comment

by:CleanupPing
ID: 9317166
NCAnnie:
This old question needs to be finalized -- accept an answer, split points, or get a refund.  For information on your options, please click here-> http:/help/closing.jsp#1 
EXPERTS:
Post your closing recommendations!  No comment means you don't care.
0

Featured Post

New feature and membership benefit!

New feature! Upgrade and increase expert visibility of your issues with Priority Questions.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Have you ever had your Delphi form/application just hanging while waiting for data to load? This is the article to read if you want to learn some things about adding threads for data loading in the background. First, I'll setup a general applica…
Hello everybody This Article will show you how to validate number with TEdit control, What's the TEdit control? TEdit is a standard Windows edit control on a form, it allows to user to write, read and copy/paste single line of text. Usua…
In this video we outline the Physical Segments view of NetCrunch network monitor. By following this brief how-to video, you will be able to learn how NetCrunch visualizes your network, how granular is the information collected, as well as where to f…
In this brief tutorial Pawel from AdRem Software explains how you can quickly find out which services are running on your network, or what are the IP addresses of servers responsible for each service. Software used is freeware NetCrunch Tools (https…
Suggested Courses
Course of the Month12 days, 5 hours left to enroll

752 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question