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

在Go语言中如何将语言代码转换为对应的标准语言名称?

Go语言语言代码转标准名称实现方案

你可以通过两种主流方式实现该需求:

方案1:使用官方维护的国际化工具包(推荐)

Go官方提供了golang.org/x/text系列包,其中的language和display子包原生支持BCP 47标准语言标签的解析和名称转换,适配所有通用语言代码格式。

  • 安装依赖
    执行命令:go get golang.org/x/text
  • 示例代码
package main

import (
	"fmt"
	"golang.org/x/text/language"
	"golang.org/x/text/language/display"
)

func getLanguageFullName(code string) (string, error) {
	tag, err := language.Parse(code)
	if err != nil {
		return "", fmt.Errorf("非法语言代码: %w", err)
	}
	// 若需要返回中文的语言名称,将display.English替换为display.SimplifiedChinese即可
	return display.English.Languages().Name(tag), nil
}

func main() {
	testCodes := []string{"en-US", "ja", "zh-CN", "fr"}
	for _, code := range testCodes {
		name, err := getLanguageFullName(code)
		if err != nil {
			fmt.Printf("代码%s解析失败: %v\n", code, err)
			continue
		}
		fmt.Printf("%s -> %s\n", code, name)
	}
}
  • 运行输出
en-US -> American English
ja -> Japanese
zh-CN -> Simplified Chinese
fr -> French

方案2:自定义映射表(适合固定少量语言场景)

如果你的业务只需要支持少量固定的语言代码,可以直接维护一个映射表实现,无需引入外部依赖:

// 按需扩展映射内容即可
var langCodeMap = map[string]string{
	"en-US": "American English",
	"ja":    "Japanese",
	"zh-CN": "Simplified Chinese",
	"fr":    "French",
}

func getLangNameByCode(code string) string {
	return langCodeMap[code]
}

内容的提问来源于stack exchange,提问作者Arun Nair

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 02:48:02