名称空间
voerkai18n 的名称空间是为了解决当源码文件非常多时,通过名称空间对翻译内容进行分类翻译的。
假设一个大型项目,其中源代码文件有上千个。默认情况下,voerkai18n extract会扫描所有源码文件将需要翻译的文本提取到languages/translates/messages/default.json文件中。由于文件太多会导致以下问题:
- 内容太多导致
default.json文件太大,不利于管理 - 有些翻译往往需要联系上下文才可以作出更准确的翻译,没有适当分类,不容易联系上下文。
因此,引入名称空间就是目的就是为了解决此问题。
配置名称空间,需要配置languages/settings.json文件。
javascript
// 工程目录:d:/code/myapp
// languages/settings.json
{
namespaces:{
//"名称":"相对路径",
"routes":"routes",
"auth":"core/auth",
"admin":"views/admin"
}
}以上例子代表:
- 将
d:\code\myapp\routes中扫描到的文本提取到routes.json中。 - 将
d:\code\myapp\auth中扫描到的文本提取到auth.json中。 - 将
d:\code\myapp\views/admin中扫描到的文本提取到admin.json中。
最终在 languages/translates中会包括:
- myapp
- languages
- translates
- messages
- default.json
- routes.json
- auth.json
- admin.json
- messages
- translates
- languages
然后,voerkai18n compile在编译时会自动合并这些文件,后续就不再需要名称空间的概念了。
名称空间仅仅是为了解决当翻译内容太多时的分类问题。