golang字符串国际化

gostrings

这是一个go字符串国际化库,根据xml资源文件自动生成go文件,便于字符串统一管理。

背景

  • 代码中对字符串硬编码不方便管理。
  • 有多语言的需求。

功能特点

  • 字符串资源统一放在strings文件夹中,便于管理。
  • xml配置字符串,便于复用、管理、多语言对比。
  • 编译前用户调用命令,自动生成go文件,运行时效率更好

安装

执行go get github.com/xingliuhua/gostrings

使用

  1. 在项目根目录创建strings文件夹。
  2. 在strings文件夹中创建.xml文件(必须是sting[语言].xml格式,语言简称不限制);比如string.xml、string-en.xml、string-en-us.xml、string-zh.xml、string-unknown.xml等。
  3. .xml文件中可以放普通字符串和字符串数组。具体格式可以参考:
    string.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="confirm">confirm</string>
    <string name="cancel">cancel</string>
    <string_array name="city">
        <item>beijing</item>
        <item>new York</item>
        <item>Hong Kong</item>
    </string_array>
</resources>

string-zh.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="confirm">确定</string>
    <string name="cancel">取消</string>
    <string_array name="city">
        <item>北京</item>
        <item>纽约</item>
        <item>香港</item>
    </string_array>
</resources>
  1. 切换到项目根目录下执行"gostrings"命令(记得把gopath/bin加入到path环境变量中),会自动生成r文件夹和里面的go文件,不要动里面的文件。
  2. 代码中查询
	str, err := r.GetString("", r.Cancel) // 获取string.xml下的cancel对应的字符串
	str, err := r.GetString("unknown", r.Cancel) // 获取string-unknown.xml下的cancel对应的字符串
	str, err := r.GetString("zh", r.Cancel) // 获取string-zh.xml下的cancel对应的字符串
	strArray, err := r.GetStringArray("en-us", r.City) // 获取string-en-us.xml下的city对应的字符串切片

在实际的开发中,可以根据http参数或Accept-Language头字段选择语言。

最后附上github地址:https://github.com/xingliuhua/gostrings

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值