Sencha实现国际化,JS动态加载js、css文件

本文介绍如何在Sencha应用中实现多语言支持。主要步骤包括创建不同语言版本的消息文件、根据用户选择动态加载对应的文件以及在应用中使用这些消息文件进行国际化显示。

1. 新建文件messages_en.js和messages_zh_CN.js文件;

2. 文件中定义js全局变量 var Messages = {};

例:messages_zh_CN.js文件  Messages = {"title":“标题”};

message_en.js文件  Messages = {"title":“title”};


3. 在Sencha应用入口launch : function(){}中,先获取用户的语言,然后通过不同的语言去加载不同的JS文件;

/** 
	 * 动态加载文件
	 * @param fileName 文件名(包含后缀名)
	 * 		.js:放在js文件夹下;.css:放在css文件夹下
	 * @param 回调
	 */
	loadJSCSSFile : function(fileName, callback){
		var fileref = null;
		var arr = fileName.split('.');
		switch(arr[arr.length - 1]) {
		case 'js':
			fileref = document.createElement('script');
			fileref.setAttribute('type', 'text/javascript');
			fileref.setAttribute('src', 'js/' + fileName);
			break;
		case 'css':
			fileref = document.createElement('link');
			fileref.setAttribute('rel', 'stylesheet');
			fileref.setAttribute('type', 'text/css');
			fileref.setAttribute('herf', 'css/' + fileName);
			break;
		}
		if(fileref != null) {
			if (fileref.readyState) { // IE
				fileref.onreadystatechange = function() {
					if (fileref.readyState == 'loaded' || fileref.readyState == 'complete') {
						fileref.onreadystatechange = null;
						callback();
					}
				};
			} else { // Others: Firefox, Safari, Chrome, and Opera
				fileref.onload = function() {
					callback();
				};
			}
			document.getElementsByTagName('head')[0].appendChild(fileref);
		}
	},


4. 需要国际化的文字都在文件中以(key, value)的形式保存,用的时候,直接Messages.title







评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值