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

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

很多php程序都有自己格式的语言文件,一般就是普通的php文件,比如SugarCRM就是以php数组存放语言文件。Linux里的应用程序通常使用gettext来实现国际化。StatusNet就是采取这种方式。
mobl是主要使用web前台技术,内容一般通过javascript动态产生,国际化也是通过javascript调用json格式的文件来实现的。
这是一个简单的不能再简单的mobl的json语言文件:

{
	"Tip calculator":"小小计算器",
	"Click me":"点我",
	"You clicked me!":"被你点了"
}

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

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

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!"));
		})
	}
}

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

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

相关文章

    共享到: