gpt4 book ai didi

internationalization - sencha touch i18n 基础知识

转载 作者:行者123 更新时间:2023-12-04 11:29:21 24 4
gpt4 key购买 nike

Sencha touch 中如何处理 i18n? (我说的是对字符串的本地化支持,还有本地化组件)

一个更具体的问题:我有一个包含日期选择器的表单,当我使用法国安卓手机访问应用程序时,如何确保日期将以欧洲格式显示和选择?

干杯

最佳答案

SenchaTouch 中还没有 i18n 的官方 API。尽管在 Ext 4 中,/locale 文件夹中的所有组件都有本地化文件。

有一个旧的tutorial这表明了一种方法,通过根据语言环境动态设置脚本标记的 src 属性。

<script type="text/javascript" id="extlocale"></script>
<script type="text/javascript">

var browserLang = window.navigator.language; // get the browsers language
var locales = [ 'fr', 'es', 'pt', 'pt-BR', 'pt-PT' ]; // available locale files
var locale = 'fr'; // default locale

// check browser language against available locale files
for (var i = locales.length - 1; i >= 0; i--) {
if (browserLang === locales[i]) {
locale = browserLang;
break;
}
};

// Insert src attribute to extlocale
if(locale) {
Ext.fly('extlocale').set({src:'ext/locale/ext-lang-' + locale + '.js'});
}

</script>

使用 window.navigator.language 检查浏览器的语言。

语言环境文件必须在/ext/locale/ext-lang-fr.js 中设置
您可以在其中覆盖组件属性。
Ext.onReady(function() {

if(Date){
Date.shortMonthNames = [
"Janv",
"Févr",
"Mars",
"Avr",
"Mai",
"Juin",
"Juil",
"Août",
"Sept",
"Oct",
"Nov",
"Déc"
];

Date.getShortMonthName = function(month) {
return Date.shortMonthNames[month];
};

Date.monthNames = [
"Janvier",
"Février",
"Mars",
"Avril",
"Mai",
"Juin",
"Juillet",
"Août",
"Septembre",
"Octobre",
"Novembre",
"Décembre"
];

Date.monthNumbers = {
"Janvier" : 0,
"Février" : 1,
"Mars" : 2,
"Avril" : 3,
"Mai" : 4,
"Juin" : 5,
"Juillet" : 6,
"Août" : 7,
"Septembre" : 8,
"Octobre" : 9,
"Novembre" : 10,
"Décembre" : 11
};

Date.getMonthNumber = function(name) {
return Date.monthNumbers[Ext.util.Format.capitalize(name)];
};

Date.dayNames = [
"Dimanche",
"Lundi",
"Mardi",
"Mercredi",
"Jeudi",
"Vendredi",
"Samedi"
];

Date.getShortDayName = function(day) {
return Date.dayNames[day].substring(0, 3);
};

Date.parseCodes.S.s = "(?:er)";

Ext.override(Date, {
getSuffix : function() {
return (this.getDate() == 1) ? "er" : "";
}
});
}

});

我制作了一个工作原型(prototype),你可以在这里查看:
http://lab.herkulano.com/sencha-touch/date-picker-i18n/

关于internationalization - sencha touch i18n 基础知识,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7318396/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com