You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用GetGeoInfo API多语言获取对应Windows GeoId国家名称的问题

关于GetGeoInfo获取多语言国家名称的问题

我需要获取多语言版本的国家名称列表,同时要将这些名称与Windows的GeoId进行匹配。

我基于一段现有代码修改,期望通过指定语言代码来获取对应语言的国家名称,当前使用Windows API的GetGeoInfo通过GeoId获取国家详情。

用于概念验证的C#代码如下:

using System.Runtime.InteropServices;
using System.Text;

public class Program
{
    private enum SYSGEOTYPE
    {
        GEO_NATION = 0x0001,
        GEO_LATITUDE = 0x0002,
        GEO_LONGITUDE = 0x0003,
        GEO_ISO2 = 0x0004,
        GEO_ISO3 = 0x0005,
        GEO_RFC1766 = 0x0006,
        GEO_LCID = 0x0007,
        GEO_FRIENDLYNAME = 0x0008,
        GEO_OFFICIALNAME = 0x0009,
        GEO_TIMEZONES = 0x000A,
        GEO_OFFICIALLANGUAGES = 0x000B,
        GEO_ISO_UN_NUMBER = 0x000C,
        GEO_PARENT = 0x000D,
        GEO_DIALINGCODE = 0x000E,
        GEO_CURRENCYCODE = 0x000F,
        GEO_CURRENCYSYMBOL = 0x0010,
        GEO_NAME = 0x0011,
        GEO_ID = 0x0012
    };

    [DllImport("kernel32.dll")]
    private static extern int GetUserDefaultLCID();

    [DllImport("kernel32.dll")]
    private static extern int GetGeoInfo(int geoid, int geoType, StringBuilder lpGeoData, int cchData, int lcid);

    /// <summary>
    /// Returns machine current location as specified in Region and Language settings.
    /// </summary>
    public static string GetLocationName()
    {
        var geoId = 94;
        var lcid = 94;
        var locationBuffer = new StringBuilder(100);
        GetGeoInfo(geoId, (int)SYSGEOTYPE.GEO_FRIENDLYNAME, locationBuffer, locationBuffer.Capacity, lcid);

        return locationBuffer.ToString().Trim();
    }

    private static void Main(string[] args)
    {
        Console.WriteLine(GetLocationName());
    }
}

测试发现,修改geoId可以正常切换对应国家,但修改lcid无法切换语言(当前系统为英文),只有在虚拟机安装德语语言包并切换系统语言后,GetGeoInfo才会返回德语的国家名称。

我想了解以下内容:

  • GetGeoInfo最后一个参数的具体作用,是否可以通过该参数直接切换获取语言(即使需要下载安装大量语言包)
  • 其他可以获取关联Windows GeoId的多语言国家名称的方案(我已经了解Unicode CLDR,但需要先理清数据获取方式并移除当前GeoId依赖才能使用,因此优先考虑基于GetGeoInfo的解决方案)

内容的提问来源于stack exchange,提问作者Steve Norwood

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 13:16:28