.Text的Blog程序调试汉化心得(http://webuc.net/dotey/) 转

来源:互联网 发布:数据库游标 编辑:程序博客网 时间:2024/04/29 05:58

我下载的是最新的95.2004.102带源码版,有几种方式配置,基本都差不多,我简单将我自己的安装过程说一下:

1、解压源程序到硬盘某个目录,然后将IIS默认站点指向Code/DottextWeb目录
2、创建一个新的数据库DotTextDB,打开sql查询分析器,运行data/Dottext_095_FullDB.sql,创建数据

库和存储过程。
3、根据你的需要在Configs目录下选择一个配置文件,我选择的是第一个Multiple1_Web.config,将里面

的内容替换Code/DottextWeb下面的web.congfig里面的内容,同时作以下改动:
<DbProvider type = "Dottext.Framework.Data.SqlDataProvider, Dottext.Framework"

connectionString = "Edit" />
改成
<DbProvider type = "Dottext.Framework.Data.SqlDataProvider, Dottext.Framework"

connectionString = "server=localhost;database=DotTextDB;uid=sa;pwd=;App=Blog" />
<ServerTimeZone>-5</ServerTimeZone>
改成
<ServerTimeZone>8</ServerTimeZone>

  <!-- Aggregate Blog Stuff -->
  <add key="AggregateTitle" value = "A .Text Community" />
  <add key="AggregateUrl" value = "http://localhost/dottextweb" />
  <add key="AggregateDescription" value = ".NET by .Text" />
  <add key="AggregateHost" value = "localhost" />


这个上面的如果是在本地则改成
  <!-- Aggregate Blog Stuff -->
  <add key="AggregateTitle" value = "我们自己的Blog" />
  <add key="AggregateUrl" value = "http://localhost/" />
  <add key="AggregateDescription" value = "我们自己搭建自己的Blog" />
  <add key="AggregateHost" value = "localhost" />

如果是传到服务器,比如我的是www.webuc.net
  <!-- Aggregate Blog Stuff -->
  <add key="AggregateTitle" value = "我们自己的Blog" />
  <add key="AggregateUrl" value = "http://www.webuc.net/" />
  <add key="AggregateDescription" value = "我们自己搭建自己的Blog" />
  <add key="AggregateHost" value = "webuc.net" />

  <!--UI Text -->  
  <add key="PostCollection" value = "Post Categories" />
  <add key="ArticleCollection" value = "Article Categories" />
  <add key="ImageCollection" value = "Image Galleries" />
  <add key="Archives" value = "Archives" />
上面的内容是显示在个人Blog首页上的,所以需要汉化一下
  <!--UI Text -->  
  <add key="PostCollection" value = "随笔分类" />
  <add key="ArticleCollection" value = "文章分类" />
  <add key="ImageCollection" value = "相册分类" />
  <add key="Archives" value = "档案" />
基本就是这样

4、新建Blog,开始我是用的DottextHelper.exe(在DottextHelper目录下,记得使用前先修改

DottextHelper.exe.config里面连接数据库的字符串)来添加,后来发现其实只要自己手动在

[blog_Config]表里面添加。在数据库里面添加完了,然后根据Application字段的名字,比如我的是

dotey,然后在Code/DottextWeb目录下新建一个dotey的目录,在里面新建一个空白的default.aspx文件

5、不出意外的话你的Blog就算是建好了,你就可以通过http://localhost/dotey,或者如果你是放在服

务器上,比如我的就可以通过http://www.webuc.net/dotey来访问我的Blog了,登陆后就可以管理自己的

Blog了。

6、以上步骤是按照说明一步一步来的,不过这样很快就会发现问题:Blog明明加上了,为什么首页不能

显示?为什么Blog不能打开?为什么博客列表会出现xml错误?还是就是英文界面太不爽了!至少这就是

我刚装上时候的困惑。

7、首先是首页不能正常显示Blog的问题,这个主要原因是[blog_Config]表中通过DottextHelper.exe增

加的纪录中BlogGroup项的值是null,而首页访问[blog_Config]默认只读取BlogGroup=1的纪录,所以需

要将数据库中BlogGroup默认值改为1,并且将所有BlogGroup项的值是null的改为1就好了。建议将

[Language]字段默认值改为zh-CHS。[TimeZone]字段默认值改成8。

8、根据Blog的链接地址,不能打开Blog,链接地址一般格式为:

http://www.webuc.net/dotey/archive/2004-04-04/156.aspx,打开就出错,在源码里面,在

default.aspx.cn里面我找到了对应的代码:
protected string GetEntryUrl(string host, string app, string entryName, DateTime dt)
{  
 return string.Format("{0}archive/{1}/{2}.aspx",GetFullUrl(host,app),dt.ToString

("yyyy/MM/dd"),entryName);
}
明明是dt.ToString("yyyy/MM/dd"),为什么日期格式还是会变成yyyy-MM-dd的样子呢?原来是是服务器

的中文日期格式惹的祸,把代码作如下改动就好了:
dt.ToString("yyyy/MM/dd",new CultureInfo("en-US"))
并且把所有类似于dt.ToString("yyyy/MM/dd")和dt.ToString("yyyy/MM")的代码全部像上面加上new

CultureInfo("en-US")就好了。

9、xml的错误主要是因为默认编码是utf-16的缘故,在上一个随笔里
我已经说明了如何解决。

10、.Text的汉化是个很麻烦的事情,需要汉化的内容分布在各个目录的各个.aspx,.aspx.cs,.config文

件下,在这点上,aspnetforums2.0就处理得非常好,将所有界面上显示的文字都放在.xml里面,这样汉

化起来就非常方便了,最近就在帮aspnetforums2.0汉化,也着实让我头大,还有很多没有翻译完,内容

实在太多了,而我英语又不是很好,呵呵,希望到时候不要有人骂我就好,这次汉化.Text,博客堂的源

码(在.Text 0.94基础上汉化的)帮了我的大忙,基本都是参照他的翻译的,谢谢开心提供的博客堂源码

下载。

这是我在调试过程中的一点心得体会,拿出来和大家一起分享分享,明天再把源码打包一份放到网上提供

下载(家里小猫拨号,网速实在太慢了),供大家学习研究用,说来.Text的源码还一直没好好研究呢,

不过我更喜欢AspnetForums2.0的架构一些,过些时间一定好好整理一下,拿出来给大家一起分享一下。

发表于 2004年4月4日 22:38

原创粉丝点击