Sunday, 27 August 2006

Backend Localisation in Typo3 4.0

Typo3官方提供的源码包,后台缺省使用的语言是英文。尽管英文的字面意思更为准确(没有歧义),使用本地化语言却总是很受欢迎的。Typo3和其它CMS一样,也提供了对多语言的支持。只是在发行包中,由于各个语言的翻译工作相对滞后,无法和Typo3发行版本同步,不可能也没有必要包含所有各种语言包。因此在安装Typo3之后,需要再单独安装本地化支持。

在Typo3 4.0版本之前,本地化语言是作为单独的扩展包进行安装的,需要在Host Server上进行操作。最新的Typo3 4.0版本,进一步增强了对本地化语言的支持。在扩展管理器(Extension Manager)中,单独列出一项以支持本地化语言,这就是Translation Handing。它可以使用户和最新的本地化翻译成果保持同步。

这里以安装中文语言包进行说明:

1. 以管理员身份,进入Typo3后台,并切换当前的Workspace到LIVE workspace;
2. 点击Tools::Ext Manager,进入Extension Manager;
3. 选择菜单项, Translation handing;
4. 在语言列表中,选择Chinese (Simpl) - [Chines (Simpl)],并点击保存选择(Save selection);
5. “Check status against repository”,可以在线检查当前本地化语言翻译的进展情况;
6. “Update from repository”,安装、同步本地化语言包。

经过以上步骤,完成本地化语言的安装。

本地化语言的使用。Typo3中,支持不同的后台用户,使用各自不同的语言包。在完成本地化语言的安装之后,用户需自行设置后台操作所使用的语言。

1. 点击User::Setup,进入User Settings;
2. 在LANGUAGE下拉框中,列出了所有的本地化语言,正体字显示的为可用的本地化语言,斜体显示的为不可用(未安装);
3. 保存配置之后,后台界面即切换到指定的本地化语言。

目前,简体中文的语言包,并未全部完成,仍有部分处于N/A的状态。喜欢Typo3的,不妨为此作些贡献。

本地化的另一个重要的问题是,后台所使用的字符集。缺省配置下的Typo3,用的是ISO-8859-1。在后台本地化的时候,需设置相应的字符集。一般来讲,可以将后台的字符集设置成utf-8,也可以直接设置成本地字符集,如gb2312(中文)。这项设置在Tools::Install::All Configuration的[BE]:[forceCharset]下进行。

修改以后的设置保存在typo3conf/localconf.php里。在该文件中,可以找到如下一行,

$TYPO3_CONF_VARS['BE']['forceCharset'] = 'utf-8'

注:这里,后台字符集设置为utf-8

Thursday, 24 August 2006

Ubuntu's X: "no screens found"

前天晚上,习惯性地Update了一下Ubuntu,升级了一个xserver-xorg-core包,一切都是那么正常。待到数小时后Restart,光标闪了几下,看到了久违的X-window错误,X: "no screens found" 。立刻反思了一下,除了升了一下级,自己没干什么坏事。现有的xorg.conf久经考验,用了一年多了都没有问题的。查看文件时间戳,也没有被改动的痕迹,郁闷。

既然问题是升级引起的,那解决的办法估计也只有靠升级自己来解决了。在控制台下,打入

man apt-get
sudo apt-get update
sudo apt-get upgrade

呵呵,为啥要man apt-get?很不好意思,被Update Manager惯坏了,忘记apt-get怎么用,就只好临时抱佛脚了。运气还不错,xserver-xorg-core再一次得到更新。重启之后,一切恢复了正常,结束了短暂的惊魂之旅。

昨天,一直到今天,有许多与此有关的报道,当时的解决办法是向后升级,回到xserver-xorg-core-1:1.0.2-0ubuntu10.2。如果是现在的话,直接升级到更正过的xserver-xorg-core-1:1.0.2-0ubuntu10.4,不会有任何问题。

在我的印象里,这次的事情算是Ubuntu最大的一次失误。不过,从xserver-xorg-core-1:1.0.2-0ubuntu10.3发布,到发现问题、报告、跟踪调试、改正,最后重新发布xserver-xorg-core-1:1.0.2-0ubuntu10.4,整个流程总共花了17:01:02的时间,还是很有效率的。

Sunday, 13 August 2006

URL for SQLite in SQLAlchemy

SQLAlchemy在线文档上,连接SQLite数据库的URL写法,有三种:

# sqlite (note the four slashes for an absolute path)
sqlite_db = create_engine('sqlite:////absolute/path/to/database.txt')
sqlite_db = create_engine('sqlite:///relative/path/to/database.txt')
sqlite_db = create_engine('sqlite://') # in-memory database

这三种写法涵盖了Unix系统下的所有情况。

在Windows系统下,使用相对路径和内存数据库时的URL,和前面是一致的。Windows和Unix的区别之一,就是Windows有盘符。在使用绝对路径时,如果Python程序和SQLite文件在同一个分区里,这时省略盘符(C: or D:),前面的写法依然有效。

如果一定要在URL中包含盘符,需写成这样:

db = create_engine('sqlite:///C:\\absolute\\path\\to\\database.txt')

或者

db = create_engine('sqlite:///C:/absolute/path/to/database.txt')

Python程序中,必须用'\\';如果是配置文件,单个'\'就行了。相对路径的URL,也是使用'\\'和'/'都能正常工作。

SQLite内存数据库的另外一种有效形式是:

db = create_engine('sqlite:///:memory:')

Wednesday, 9 August 2006

TurboMan is back!

如我这般年纪的Programmer,差不多都用过Turbo C 2.0。Turbo C可以说是Software Develop IDE在DOS那个时代的代表。

现在它又要回来了,TurboExplorer

Clever Harold - New Python Web Development Framework

又一个新的Python Web框架出来了,Clever Harold。不知道会有什么新鲜玩意,看看。