2009-10-22 51 views
5

Tôi muốn chạy tập lệnh cho từng ngôn ngữ. Tôi cần một cách để tìm ngôn ngữ os đang được sử dụng, sử dụng các tập tin batch. Cả trên Windows XP, và trên Windows 7.Làm cách nào để tìm ngôn ngữ cửa sổ hiện tại từ cmd?

Cảm ơn

+0

Câu hỏi về máy chủ biên giới đường biên. – gn22

+1

Bạn muốn ngôn ngữ giao diện người dùng, phải không? Không phải là ngôn ngữ? – Joey

Trả lời

11

Không biết nếu điều này vẫn còn hoạt động trên Windows 7 nhưng nó trong Windows XP

reg query "hklm\system\controlset001\control\nls\language" /v Installlanguage 

Sau đó, bạn có thể phân tích các ouput . ví dụ.

0409 --> English 
0407 --> German 
+0

Cảm ơn, jitter. điều này cũng hoạt động trên Windows 7. bạn đã giải quyết được vấn đề của tôi. BTW: 040D -> Hebrew Cảm ơn Tốc độ –

+0

'040C ->' French; '0C0A ->' Tiếng Tây Ban Nha. – Alicia

3

Mã dưới đây khắc phục được sự cố của tôi. Nó hoạt động trên Windows Server 2003 và Windows 7

FOR /F "tokens=3 delims= " %%G in ('reg query "hklm\system\controlset001\control\nls\language" /v Installlanguage') DO (
IF [%%G] EQU [0409] (
    ECHO English install language detected 
) ELSE (
    ECHO Some other language detected 
) 

Hy vọng điều đó sẽ hữu ích!

+2

Có một) thiếu ở cuối – remyremy

3

Sử dụng lệnh "dism/online/get-intl".

1

Trong giao diện điều khiển CMD ghi lệnh:

intl.cpl

2

Bạn không thể sử dụng InstallLanguage dưới HKLM \ SYSTEM \ CurrentControlSet \ Control \ nls \ ngôn ngữ
vì đó chỉ là những gì nó nói rằng đó là: Cài đặt Ngôn ngữ
Mặc dù bạn có thể trực tiếp cài đặt phiên bản Windows được bản địa hoá, nhưng điều này không phải lúc nào cũng được thực hiện vì nó không có trên PC của tôi. Thay vào đó một gói ngôn ngữ được áp dụng, điều đó là tốt, nhưng sau đó ngôn ngữ hiển thị không giống như ngôn ngữ cài đặt.
Ngoài ra nếu người dùng thay đổi ngôn ngữ hiển thị của mình, InstallLanguage sẽ không phản ánh thay đổi. Và có thể có nhiều người dùng hơn với các ngôn ngữ hiển thị khác nhau.

  • Current User Display Language

HKCU \ Control Panel \ Desktop
PreferredUILanguages ​​

FOR /F "tokens=3" %%a IN ('reg query "HKCU\Control Panel\Desktop" /v PreferredUILanguages ^| find "PreferredUILanguages"') DO set UILanguage=%%a 
echo User Display Language: %UILanguage% 


Có sự khác biệt giữa ngôn ngữ Máy địa phương, Ngôn ngữ hệ thống và Ngôn ngữ người dùng. Ngoài ra còn có các thiết lập riêng cho ngôn ngữ BCD, được sử dụng cho việc phục hồi và khởi động quản lý

  • Machine Local

Cài đặt ngôn ngữ được thiết lập khi cài đặt và không bao giờ thay đổi
cũng là một giá trị mặc định cho khóa "HKLM \ SYSTEM \ CurrentControlSet \ Control \ nls \ language" được đặt thành cùng một giá trị. Giá trị này được đọc sai bởi một số chương trình cài đặt InstallShield, dẫn đến giao diện tiếng Anh trên Windows được bản địa hóa.
Nếu bạn thay đổi ngôn ngữ hiển thị, giá trị mới được lưu trữ trong

HKLM \ SYSTEM \ CurrentControlSet \ Control \ MŨI \ Cài đặt
PreferredUiLanguages ​​

này sẽ ghi đè giá trị InstallLanguage dưới HKLM \ SYSTEM \ CurrentControlSet \ Control \ nls \ language
Có một loại hỗn hợp có giá trị, trong khi InstallLanguage là LCID, PreferredUiLanguages ​​là chuỗi LCID. Ngôn ngữ này sau đó được báo cáo là Ngôn ngữ máy địa phương. Nó không phải là tài khoản hiển thị ngôn ngữ

  • hệ thống ngôn ngữ

Đây là ngôn ngữ cho hệ thống người dùng.
Trước khi người dùng đăng nhập, ngôn ngữ này được sử dụng.
Điều đó có nghĩa là ngôn ngữ cho màn hình Chào mừng và cho OOBE.

HKEY_USERS \ S-1-5-18 \ Control Panel \ Desktop \ MuiCached
MachinePreferredUILanguages ​​



Ngoài ra còn có một cách WMI để có được ngôn ngữ hệ điều hành, nhưng Tôi không kiểm tra ngôn ngữ nào trong số những ngôn ngữ này bạn sẽ nhận được

wmic o s get locale, oslanguage, codeset

FOR /F "tokens=2 delims==" %%a IN ('wmic os get OSLanguage /Value') DO set OSLanguage=%%a 
echo OS Language: %OSLanguage% 
Các vấn đề liên quan