Project Icon

countries

全面高效的Go语言国际标准代码库

countries库整合了ISO 639、ISO 3166和ISO 4217等多个国际标准,提供国家、语言和货币代码。它包含多语言名称、首都、电话区号等信息,支持多种数据格式。作为无外部依赖的高性能Go语言库,countries还提供表情符号国旗和货币符号,可有效简化国际化数据处理流程。

国家

国家 - ISO 639、ISO 3166(ISO3166-1、ISO3166、数字、两字母、三字母)国家代码及其分区和名称(英文和俄文)、ISO4217货币代码、ITU-T E.164国际直拨电话代码、国家首都、UN M.49地区代码、IANA ccTLD国家域名、FIPS、IOC/NOC和FIFA代码,速度极快,无maps[]、无slices[]、无init()函数、无外部链接/文件/数据、无interface{}、无特定依赖,兼容数据库/JSON/BSON/GOB/XML/CSV,支持国家旗帜和货币表情符号,UN M.49,FIFA代码,完全支持ISO 639-1、ISO 3166-1、ISO 3166-2、ISO 4217、ITU-T E.164、Unicode CLDR和IANA ccTLD标准。

支持的标准:

  • ISO 639-1
  • ISO 3166-1
  • ISO 3166-2
  • ISO 4217
  • ICANN
  • IANA ccTLD
  • ITU-T E.164
  • IOC
  • NOC
  • FIFA
  • FIPS
  • UN M.49
  • Unicode CLDR
  • Unicode表情符号国旗
  • Unicode表情符号货币
  • UN世界各国首都

[徽章略]

安装

go get github.com/biter777/countries

使用

countryJapan := countries.Japan
fmt.Printf("国家英文名称: %v\n", countryJapan)                   // Japan
fmt.Printf("国家俄文名称: %v\n", countryJapan.StringRus())       // Япония
fmt.Printf("国家ISO-3166数字代码: %d\n", countryJapan)               // 392
fmt.Printf("国家ISO-3166两字母代码: %v\n", countryJapan.Alpha2())    // JP
fmt.Printf("国家ISO-3166三字母代码: %v\n", countryJapan.Alpha3())    // JPN
fmt.Printf("国家IOC/NOC代码: %v\n", countryJapan.IOC())                // JPN
fmt.Printf("国家FIFA代码: %v\n", countryJapan.FIFA())                  // JPN
fmt.Printf("国家FIPS代码: %v\n", countryJapan.FIPS())                  // JA
fmt.Printf("国家首都: %v\n", countryJapan.Capital())                 // Tokyo
fmt.Printf("国家ITU-T E.164电话代码: %v\n", countryJapan.CallCodes()) // +81
fmt.Printf("国家ccTLD域名: %v\n", countryJapan.Domain())             // .jp
fmt.Printf("国家UN M.49地区名称: %v\n", countryJapan.Region())      // Asia
fmt.Printf("国家UN M.49地区代码: %d\n", countryJapan.Region())      // 142
fmt.Printf("国家表情符号/旗帜: %v\n", countryJapan.Emoji())                // 🇯🇵
fmt.Printf("国家行政区划: %v\n", countryJapan.Subdivisions())       // Hokkaido Aomori Iwate Miyagi Akita Yamagata Fukushima Ibaraki Tochigi Gunma Saitama Chiba Tokyo Kanagawa Niigata Toyama Ishikawa Fukui Yamanashi Nagano Gifu Shizuoka Aichi Mie Shiga Kyoto Osaka Hyogo Nara Wakayama Tottori Shimane Okayama Hiroshima Yamaguchi Tokushima Kagawa Ehime Kochi Fukuoka Saga Nagasaki Kumamoto Oita Miyazaki Kagoshima Okinawa

currencyJapan := countryJapan.Currency()
fmt.Printf("国家ISO-4217货币英文名称: %v\n", currencyJapan)           // Yen
fmt.Printf("国家ISO-4217货币数字代码: %d\n", currencyJapan)                // 392
fmt.Printf("国家ISO-4217货币字母代码: %v\n", currencyJapan.Alpha())        // JPY
fmt.Printf("国家货币表情符号: %v\n", currencyJapan.Emoji())                      // 💴
fmt.Printf("使用%v货币的国家: %v\n\n", currencyJapan, currencyJapan.Countries()) // Japan

// 或者你可以使用以下替代方式:
japanInfo := countries.Japan.Info()
fmt.Printf("国家英文名称: %v\n", japanInfo.Name)                          // Japan
fmt.Printf("国家ISO-3166数字代码: %d\n", japanInfo.Code)                      // 392
fmt.Printf("国家ISO-3166两字母代码: %v\n", japanInfo.Alpha2)                  // JP
fmt.Printf("国家ISO-3166三字母代码: %v\n", japanInfo.Alpha3)                  // JPN
fmt.Printf("国家IOC/NOC代码: %v\n", japanInfo.IOC)                              // JPN
fmt.Printf("国家FIFA代码: %v\n", japanInfo.FIFA)                                // JPN
fmt.Printf("国家FIPS代码: %v\n", japanInfo.FIPS)                                // JA
fmt.Printf("国家首都: %v\n", japanInfo.Capital)                               // Tokyo
fmt.Printf("国家ITU-T E.164电话代码: %v\n", japanInfo.CallCodes)               // +81
fmt.Printf("国家ccTLD域名: %v\n", japanInfo.Domain)                           // .jp
fmt.Printf("国家UN M.49地区名称: %v\n", japanInfo.Region)                    // Asia
fmt.Printf("国家联合国M.49地区代码:%d\n", japanInfo.Region)                    // 142
fmt.Printf("国家表情/旗帜:%v\n", japanInfo.Emoji)                              // 🇯🇵
fmt.Printf("国家ISO-4217货币英文名称:%v\n", japanInfo.Currency)    // 日元
fmt.Printf("国家ISO-4217货币数字代码:%d\n", japanInfo.Currency)         // 392
fmt.Printf("国家ISO-4217货币字母代码:%v\n", japanInfo.Currency.Alpha()) // JPY
fmt.Printf("国家行政区划:%v\n", japanInfo.Subdivisions)                     // 北海道 青森 岩手 宫城 秋田 山形 福岛 茨城 栃木 群马 埼玉 千叶 东京 神奈川 新潟 富山 石川 福井 山梨 长野 岐阜 静冈 爱知 三重 滋贺 京都 大阪 兵库 奈良 和歌山 鸟取 岛根 冈山 广岛 山口 德岛 香川 爱媛 高知 福冈 佐贺 长崎 熊本 大分 宫崎 鹿儿岛 冲绳

// 检测/查找用法
// 通过国家名称检测/查找
country := countries.ByName("angola")
fmt.Printf("国家英文名称:%v\n", country)                // 安哥拉
fmt.Printf("国家ISO-3166数字代码:%d\n", country)            // 24
fmt.Printf("国家ISO-3166 Alpha-2代码:%v\n", country.Alpha2()) // AO
fmt.Printf("国家ISO-3166 Alpha-3代码:%v\n", country.Alpha3()) // AGO
// 通过国家代码检测/查找
country = countries.ByName("AO")
fmt.Printf("国家英文名称:%v\n", country.String())       // 安哥拉
fmt.Printf("国家ISO-3166数字代码:%d\n", country)            // 24
fmt.Printf("国家ISO-3166 Alpha-2代码:%v\n", country.Alpha2()) // AO
fmt.Printf("国家ISO-3166 Alpha-3代码:%v\n", country.Alpha3()) // AGO
// 通过代码/数字检测/查找
country = countries.ByNumeric(24)
fmt.Printf("国家英文名称:%v\n", country)                // 安哥拉
fmt.Printf("国家ISO-3166数字代码:%d\n", country)            // 24
fmt.Printf("国家ISO-3166 Alpha-2代码:%v\n", country.Alpha2()) // AO
fmt.Printf("国家ISO-3166 Alpha-3代码:%v\n", country.Alpha3()) // AGO

// 比较用法
// 通过代码/数字比较
if countries.ByName("angola") == countries.AGO {
	fmt.Println("是的!这是安哥拉!") // 是的!这是安哥拉!
}
// 通过名称比较
if strings.EqualFold("angola", countries.AGO.String()) {
	fmt.Println("是的!这是安哥拉!") // 是的!这是安哥拉!
}

// 数据库用法
type User struct {
	gorm.Model
	Name     string
	Country  countries.CountryCode
	Currency countries.CurrencyCode
}
user := &User{Name: "Helen", Country: countries.Slovenia, Currency: countries.CurrencyEUR}
db, err := gorm.Open("postgres", 500, "host=127.0.0.2 port=5432 user=usr password=1234567 dbname=db")
if err != nil {
	panic(err)
}
defer db.Close()
db.Create(user)

选项

使用Emoji()来获取表情符号。尽情享用!

import "github.com/biter777/countries"

更多复杂选项,请参考文档

贡献

  1. 欢迎提交拉取请求、修复错误和问题报告

    贡献者列表

  2. 捐赠 - 捐赠不是必需的,但我们欢迎。

    ko-fi

  3. 给我们星标 - 如果不违反您的信仰,请给我们一个星标 :)

    Stars

更新ISO 3166

利用iso-codes项目的变更。

待办事项 创建go generate功能,以自动从iso-codes项目的data目录中的json文件生成。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号