在开发Office相关插件的时候,不可避免要做中英文的处理,因为界面语言需要跟随Office的语言。

判断Office的语言也很简单,通过读取注册表即可实现:

注册表路径如下:

HKEY_CURRENT_USER\Software\Microsoft\Office\15.0

通过在该注册表项下面找到你需要判断office组件。

这里通过判断Lync 2013的语言进行示例:

LANGUAGE_TYPE GetCurLanguage()
{
 LANGUAGE_TYPE language=CH;
 HKEY hRootKey=HKEY_CURRENT_USER;
 HKEY hKey = NULL;
 LONG lRet;
 CString strKeyPath=_T("Software\\Microsoft\\Office\\15.0\\Lync");
 lRet = RegOpenKey(hRootKey, strKeyPath, &hKey);
 if (lRet != ERROR_SUCCESS)
 {
  return language;
 }
 TCHAR szPath[MAX_PATH] = {0};
 DWORD dwData = 256;
 DWORD dwType = REG_DWORD; 
 DWORD dwValue=0;
 lRet = RegQueryValueEx(hKey, _T("CurrentUILanguage"), NULL, &dwType, NULL, &dwData);
 lRet = RegQueryValueEx(hKey, _T("CurrentUILanguage"), NULL, &dwType, (LPBYTE)&dwValue, &dwData);
 if (lRet != ERROR_SUCCESS)
 {
  return language;
 }
 RegCloseKey(hKey);
 if (1033 == dwValue)
 {
  language=EN;
 }
 else if (2052==dwValue)
 {
  language=CH;
 }
 return language;
}

通过获取到的dwValue值进行判断,1033是英文,2052是中文。

可以在Office语言首选项中对语言进行切换进行测试。

wKiom1RgG82y-FjXAAOPG8IP-fc563.jpg