2009年个人总结
日期:2010-01-02 | 作者: Allen每年都会有一个总结,不回顾就没有办法进步,所以先看一下2009年的Wish list。
- 现场听一场爵士演唱会。 没有完成,倒是去听了2场钢琴的音乐会,爵士的,还没有,如果有机会的话,2010年到杭州黄楼去听听吧。
- 新的个人终端方案。 没有完成,遭遇一次洗劫,唯一没丢的就是手机了。从这个事情上,我看到我自己对待杯具事情上还是看的挺开的。
- 去一个从未去过的城市。武汉,神农架地区(1,2,3)。然后去了一次很久不去的杭州,和记忆里的杭州有了很大的不同,感觉西湖变小了。
除了Wish list以外,我还做了些什么呢?
- 简越。如果说08年是简越诞生的一年,那么09年则是耕作的一年。有朋友加入,也有朋友离开,特别感谢鱼老师支持,在我沮丧的时候,她默默支持我,让我觉得所作的一切是有意义的;要感谢家人,感谢他们能包容我;感谢同事,没有你们,没有简越。
- 用摄影记录生活。拍了几张自己认为还比较满意的照片,并且找到自己喜欢的摄影内容:事件,人物,记录。
- 对中国社会生活的一种新认识。相比2年前的认识,现在的观念,更加现实,更加趋于调侃,同时也更加理性一些。感谢twitter让我有机会知道原本应该知道的东西,感谢那些在twitter上发布信息的人,感谢那些默默无闻,素未谋面,但非常熟悉的博客们。
- 对前端的重识。重视交互,就是重视客户,交互设计不能停留在嘴上,不能停留在文本上,这是一门需要用心和实践去体会的学问。
一年下来140篇博客,我自认为还是挺多的,有些东西留下来,过个几年再看,兴许有别样的风味。
2010年的愿望,
你所未见的2009
日期:2009-12-29 | 作者: AllenASP.NET 本地化相关的技巧
日期:2009-12-17 | 作者: Allen通常的ASP.NET本地化的做法是利用Visual Studio中生成本地资源工具,在文件夹中生成一个App_LocalResources文件夹,其下再生成一个和aspx对应的resx文件,然后我们将这个resx文件进行复制,重命名,再对其进行翻译。这种做法上手很快,但随着页面的增多,项目结构越来越复杂,这个方案有其缺点:
- 翻译文件在物理上过于分散。每个层级的文件都有resx文件,对资源文件管理不方便。
- 翻译内容的重复。10个页面都有“保存”功能,按照传统的做法,生成10个resx文件,里面都有“保存”需要翻译,重复劳动。
- 翻译内容对应的主键无自描述,或者很少有自描述。
- 没有GUN gettext使用方便。
所以要对其进行一番改进,目标是:
- 只使用一个全局的资源文件。
- 使用简单的命令对资源文件进行利用(如 GetText)。
目标说明之后,代码就很简单了。
代码
可以放在Page, UserControl和MasterPage的基类中,也可以改动一下做成静态方法调用。
public string GetText(string key)
{
var result = HttpContext.GetGlobalResourceObject("Web", key);
return result == null ? string.Empty : result.ToString();
}
public string GetText(string key, CultureInfo cultureInfo)
{
var result = HttpContext.GetGlobalResourceObject("Web", key, cultureInfo);
return result == null ? string.Empty : result.ToString();
}
应用
- 在HTML中显示本地化
<div><%=GetText(“English”)%></div>
- 在Server控件中使用本地化
<asp:Label ID=”Label1″ runat=”server” Text=”<%$Resources:Web,English%>”><asp:Label>
- 关于Javascript中的本地化
可以将多语言的Javascript文件路径作为一个“翻译内容”,使用方法类似于第一种方法。
最后
默认的ASP.NET本地化解决方案,上手方便,但在使用上有些呆板,产生很多重复工作。所以在原来的基础上进行了改进,力图达到方便使用,方便维护的目的。
题外话,尽量少使用服务器控件,比如ASP.NET的RadioButton控件,最后生成的HTML会包含一个SPAN,写Javascript进行DOM操作的时候,有些不习惯。在前端技术得到飞速发展的今天,HTML代码越少,越有语义性,维护起来就更加方便。



