codecamp

GoFrame I18N国际化-配置管理

作为框架的核心组件之一,传承​goframe​一贯的便捷化设计思想,​I18N​国际化组件的配置管理非常简便。

文件格式

gi18n​国际化组件支持框架通用的五种配置文件格式:​xml​/​ini​/​yaml​/​toml​/​json​。同样的,和配置管理模块一样,框架推荐使用​toml​文件格式。

读取路径

默认情况下​gi18n​会自动读取当前项目源码根目录(或者当前​PWD​运行目录下)下的​i18n​目录,默认将该目录作为国际化转译文件存储目录。开发者也可以通过​SetPath​方法自定义​i18n​文件的存储目录路径。

文件存储

在​i18n​目录下可以直接按照国际化名称命名的文件如:​en.toml​/​ja.toml​/​zh-CN.toml​;也可以给定国际化名称目录,目录下随意自定义配置文件,如:​en/editor.toml/en/user.toml​、​zh-CN/editor.toml/zh-CN/user.toml​。您使用纯文件管理或者增加一级目录管理都是可以的,​gi18n​可以智能识别加载。

国际化的文件/目录名称都是开发者可自行定义和维护的,该名称主要用于程序中设置和使用。建议按照标准化的国际化地区语言码进行命名,具体请参考​WIKI​:https://zh.wikipedia.org/wiki/ISO_639-1

例如,以下的​i18n​目录结构以及文件格式都是支持的。

  • 通过单独的​i18n​文件区分不同的语言

└── i18n
    ├── en.toml
    ├── ja.toml
    ├── ru.toml
    ├── zh-CN.toml
    └── zh-TW.toml

  • 通过不同的目录名称区分不同的语言

└── i18n
    ├── en
    │   ├── hello.toml
    │   └── world.toml
    ├── ja
    │   ├── hello.yaml
    │   └── world.yaml
    ├── ru
    │   ├── hello.ini
    │   └── world.ini
    ├── zh-CN
    │   ├── hello.json
    │   └── world.json
    └── zh-TW
        ├── hello.xml
        └── world.xml

  • 不同语言可以存在不同文件格式

└── i18n
    ├── en.toml
    ├── ja.yaml
    ├── ru.ini
    ├── zh-CN.json
    └── zh-TW.xml

资源管理器

gi18n​默认支持资源管理器,默认情况下会从​gres​配置管理器中检索​i18n​目录,或者开发者设置的​i18n​目录路径。


GoFrame I18N国际化-基本介绍
GoFrame I18N国际化-使用介绍
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

GoFrame 核心组件

GoFrame 核心组件-数据库ORM

GoFrame 模块列表

GoFrame 模块列表-单元测试

GoFrame 模块列表-功能调试

GoFrame WEB服务开发

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }