网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

使用gettext技术为ASP.NET网站实现国际化支持

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/01/06
所有要翻译的句子找出来,保存到指定的po文件里。可以在http://gnuwin32.sourceforge.net/packages/gettext.htm这个网页下载gettext。

但是悲剧的是,gettext好像要求主语言是英文,对中文字符串支持的不是很好。所以我就用C#自己写了一个gettext,你可以在本文的附件里下载它,命令的格式是:

Zgettext -k T -i 源代码路径名 -o 输出的po文件名

Zgettext -k T -f 源代码路径列表文件 -o 输出的po文件名

比如:

Zgettext -k T -i AccountController.cs -o test.po

4. 生成的po文件格式其实非常简单易懂:

  1. #: C:\workspace\Views\Role\Edit.cshtml:9  
  2. msgid "管理用户组" 
  3. msgstr "" 
  4. #: C:\workspace\Views\Role\Edit.cshtml:23  
  5. msgid "用户组[{0}]的权限" 
  6. msgstr "" 

Msgid就是要翻译的句子,msgstr就是翻译好的句子。

5. 完成翻译后,使用一个辅助程序msgfmt将翻译好的po文件转换成ASP.NET支持的格式。因为原始的gettext程序包里的msgfmt.exe好像不能生成ASP.NET识别的.resources文件,所以 我也写了一个msgfmt程序完成这个工作——在本文的附件里可以下载到,命令格式是:

Msgfmt -o 输出的resource文件路径 -i 输入的po文件路径

例如:

Msgfmt -o website.en-US.resources -i website.po

注意:输出的resource文件名,必须与你在第一步里,使用HttpContext.GetGlobalResourceObject函数的第一个参数相同。

6. 我写了一个小的批处理,将3、4、5步结合在一起执行:

  1. pushd src  
  2. del /F source.lst  
  3. dir /s /b src\*.cs >> source.lst  
  4. dir /s /b src\*.cshtml >> source.lst  
  5. tools\zgettext\zgettext\bin\Debug\zgettext.exe -k T -f source.lst -o glob\website.po  
  6. tools\zgettext\msgfmt\bin\Debug\msgfmt.exe -o src\App_GlobalResources\website.resources -i glob\ website.po  
  7. popd  

希望对你有点帮助。

  • 上一篇资讯: 浅入浅出 Server Push
  • 网学推荐

    免费论文

    原创论文

    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号