Skip to content
fkei edited this page Dec 20, 2013 · 1 revision

Summary

beezには、国際化(i18n)に対応しています。

JSファイル、テンプレートファイル(Handlebars)で利用出来ます。

セットアップ

利用前に、setup関数を実行する必要があります。

====

var options = {
	lang:{
		base:'en' 
	},
	message:{
		en:{
			'hello':'hello'
		},
		ja:{
			'hello':'こんにちは'
		}
	}
};

var CustomI18n = beez.I18n.extend('custom.i18n', {
	// ....
})

beez.i18n.setup(options, CustomI18n);

説明

  • options(optional)
    • lang.base
    • UserAgentで言語取得出来ない場合に利用する、基本言語
    • lang.message
      • 言語別にメッセージを定義
      • 定義されていない言語の場合は、baseが使用されます。baseもない場合は、enを使用しようとします。
      • メッセージは、後入れ可能です。
  • CustomI18n(optional)
    • I18n自体を継承したい場合に定義

メッセージ追加

すでに言語が設定されている場合は、マージになります。

// 1言語追加
beez.i18n.addMessage('ja', {
	'hello': 'こんにちは',
	'test': 'テスト'
});


// 一括追加
beez.i18n.add({
	'ja': {
		'hello2': 'こんにちは2',
		'test2': 'テスト2'
	},
	'en': {
		'hello2': 'hello2',
		'test2': 'test2'
	}
});

メッセージ取得

// JS
beez.i18n.getMessage('hello');
beez.i18n.__('hello');


// Handlebars
{{__ 'hello'}} // エスケープなし
{{__e 'hello'}} // エスケープあり

メッセージ削除

設定されているメッセージを削除します。

beez.i18n.remove()

使用される言語取得

beez.i18n.getCurrentLang()

可変メッセージ

メッセージを取得する際に、登録したメッセージに変数を渡すことで可変メッセージとして使用することが出来ます。

var res = i18n.add({
	'ja': {
		'hello': 'こんにちは {#name} さん [ステータス] : {#status}',
	},
	'en': {
		'hello': 'Hello {#name} [Status] : {#status}',
	}
});

// JS
beez.i18n.getMessage('hello', 'fkei', 'fine').length).equal(0);
> Hello fkei [Status] : fine


// Handlebars
{{__ 'hello', 'fkei', 'fine'}}
> Hello fkei [Status] : fine

Clone this wiki locally