在mobl里显示中文

昨天的blog里说mobl的IDE不支持中文输入,Zef回复说现在可以通过使用语言文件的方式显示中文,IDE的下一个版本里将解决这个问题。

首先看看mobl的语言文件是什么?

很多php程序都有自己格式的语言文件,一般就是普通的php文件,比如SugarCRM就是以php数组存放语言文件。Linux里的应用程序通常使用gettext来实现国际化。StatusNet就是采取这种方式。
mobl是主要使用web前台技术,内容一般通过javascript动态产生,国际化也是通过javascript调用json格式的文件来实现的。
这是一个简单的不能再简单的mobl的json语言文件:
[source lang=”js”]
{
"Tip calculator":"小小计算器",
"Click me":"点我",
"You clicked me!":"被你点了"
}
[/source]

再看看怎么使用这个语言文件

以小小计算器程序为例,打开TipCalculator.mobl文件。
首先在开头引用“import mobl”,i18n用到的方式在这个包里。
然后通过“fetchLanguageBundle(“zh.json”);”把json语言文件导入。
最后把原来使用字符串的地方,应“_()”函数包起来就得了。(“_()”好像Drupal呀。)
修改后的TipCalculator.mobl文件如下:
[source lang=”js”]
application TipCalculator

import mobl
import mobl::ui::generic

screen root() {
script {
fetchLanguageBundle("zh.json");
}

var amount = 20
var percentage = 10

header(_("Tip calculator"))
group {
item { numField(amount, label="amount") }
item { numField(percentage, label="percentage") }
item { "$" label(amount * (1 + percentage/100)) }
}
group{
button(_("Click me"), onclick={
alert(_("You clicked me!"));
})
}
}
[/source]

完成后的程序,可以在这里测试。

好了虽然能支持中文了,但是还是希望早日用上支持中文的mobl IDE。

leon

每天进步一点点
Close Menu