`
lymanrb
  • 浏览: 19071 次
文章分类
社区版块
存档分类
最新评论

[苦水潭] i18n 折腾感受

阅读更多
这个年注定不好过。也好,可以有更多的时间写“无用”的代码和博客了。

去年 9 月接 手 giplet,初衷只是想自己用 的更方便一点。没想到竟得到些许反馈。或许是因为这辈子为了糊口写了扔了太多无用的代码,只是零星几条反馈就让我很感动,觉得自己应该再做点什么。想来想 去,决定加上 i18n 支持,没想到就这么一点点想法也折腾了好几天。

主要问题还是对工具链不熟。

之前为了上手 autoconf/automake,就花了不少精力。好在这方面中文入门资料质量尚可(比如 IBM 的这一篇就 不错),遇到更多问题时摘 gnu 官方文档的相关章节细细咀嚼即可。只剩最后一个疑难杂症时,所幸及时读到了 m4 文档中的这一段,便悬崖勒马,很 dirty 很 ugly 地应付了事,至今未知其所以然。

Some people find m4 to be fairly addictive. They first use m4 for simple problems, then take bigger and bigger challenges, learning how to write complex sets of m4 macros along the way. Once really addicted, users pursue writing of sophisticated m4 applications even to solve simple problems, devoting more time debugging their m4 scripts than doing real work. Beware that m4 may be dangerous for the health of compulsive programmers.

如今引入 i18n,实际上也就是要熟悉另外一条开源工具链,具而言之就是 gettext 和 intltool。却未料这类资料如此之少。在代码中应用 gettext 尚有几篇中文,但如何使用 intltool 在一个 autoconf/automake 的项目中加入 i18n 支持竟连英文都鲜可搜到。这里推 荐一篇,以期节省大家时间。其实这 I18N-HOWTO 本是 intltool 自己的文档,理应已在灯火阑珊处,只是不知为何 archlinux 打包时竟未收录此文件,此刻给我造成了麻烦——最权威的第一手资料,当然应该在本机文档里,这样的第一反应是没有错的。

提醒一下,这篇 howto 略显过时——如第 7 步,现在的标准做法已经不是在 configure.in 中使用 ALL_LINGUAS 变量,而是单独维护一个 po/LINGUAS 文件——但并不妨碍掌握 intltool 的基本使用方法,所以关于 intltool 这里就不再赘述了。

下面说说工具以外的地方。

给 gnome applet 添加 i18n 支持,需要做到四点:
  1. 代码中的字符串。
    最好办,都是 gettext 解决方案,资料最多,略。
  2. server 文件中的字符串。
    这个文件相当于 applet 的描述文件,“右键 -> 添加到面板”里的文本就来自这里。这里也好办,最终生成的 .server 文件(xml)应该包含所有语言,编译完了看一眼就知道有没有问题。相应的 Makefile.am 里不要忘了“@INTLTOOL_SERVER_RULE@”。

  3. 如果有的话,glade 界面中的字符串。
    glade 的界面描述文件也是 xml,但不会在编译之后就把所有翻译都塞进来。有没有问题只有在运行时才知道。这里需要注意的是,在 python 里,用 gtk.glade.XML() 来创建窗口的时候,如果不指定第三个参数(即文本域),默认会使用当前的 python 文件名。如果这个文件名跟 GETTEXT_PACKAGE 不一样的话,会因为找不到文本域而匹配失败,所以最好还是手动加上。
  4. 如果有的话,其他 xml 文件中的字符串。
    这个是最麻烦的(到现在也没完美解决)。除去 glade 之外,还有一些用于描述界面的 xml 文件也只能在运行时调试。但是它比 glade 的要简单的多——比如在 giplet 里,它只是个右键菜单——所以不是通过 gtk.glade.XML() 而是 applet.setup_menu_from_file() 创建出来的。所以出现了其他所有地方都 i18n 了,就剩一个右键菜单的情况。做了很久的排除试验也没能定位问题。这几天实在没辙了,用中文翻译当“糖衣炮弹”写信向 paul(music applet,也是个 python,i18n 的 gnome applet 项目的作者)求助了一下,但是还没有结论。

上述第 4 条搞定之后,giplet 0.2.0 就可以发布了。如果实在找不出问题就准备很 dirty 很 ugly 地把那个小 xml 文件塞回 python 代码里,拼字符串谁不会……

--
lyman 于 1/22/2009 06:36:00 下午 张贴在 苦水潭
分享到:
评论

相关推荐

    小学语文四年级(下册)看拼音写词语-(1-8).doc

    例如"dònɡ tínɡ"对应的是"洞庭","shui tan"是"水潭","wán shǎnɡ"为"傍晚","wú xiá"指"无暇","kuò sàn"是"扩散"等。这些词语的拼音训练有助于学生掌握汉字的基本发音和拼读规则。 2. 地名与名胜:如...

    杭州黄龙洞导游词讲解5篇精选.doc

    【杭州黄龙洞导游词讲解】\n\n杭州黄龙洞是浙江著名的风景名胜,以其独特的自然景观和丰富的历史文化吸引着众多游客。黄龙洞并非只有一个洞穴,而是一处集旱洞、水洞于一体的大型溶洞系统,总面积约为10万平方米,...

    山东省菏泽市东明县 八年级语文上学期期中试题(扫描版) 新人教版.doc

    试题从汉字拼音的考查开始,通过对“刹(chà)、拗(niù)、纤纤(xiān xiān)”等词语的读音测试,提醒学生们在学习过程中不能忽视对汉字基础的掌握,尤其是多音字和轻声字的正确读音。汉字作为汉语学习的基石,...

    河北省唐山十八年级语文 第六单元 二六 三峡学案(无答案) 人教新课标版 学案.doc

    - "素湍绿潭":白色的激流,绿色的水潭,湍(tuān)指急流。 - "绝巘怪柏":极高山峰上的奇特松柏,巘(yǎn)指高山。 - "高猿长啸":高山上的猿猴发出长长的叫声,啸(xiào)指长啸。 - "属引凄异":连续...

    游统一嘉园作文.doc

    草地上的绿黄相间,如同一幅精心编织的大地绿黄地毯,脚踩其上,仿佛能感受到大自然的柔软与温暖。作者用细腻的笔触描绘出了一幅生动的画卷,使人仿佛置身于其中,感受着自然的脉动与生机。通过这种生动的比喻,作者...

    垂云通天河导游词.doc

    景区内的地下河水质清澈,空气新鲜,四季恒温,流水声潺潺,河道深邃曲折,沿途形成各种独特的水体景观,如静谧的水潭、平静的湖泊、湍急的瀑布和错落的浅滩,每一步都带给游客不同的视觉和感官体验。此外,垂云通天...

    浙江双峰森林公园导游词.doc

    【浙江双峰森林公园导游词】 ...这里的原始森林、清澈水潭、瀑布群以及独特的生态环境,都为游客提供了亲近自然、放松身心的机会。无论是欣赏美景,还是感受文化,双峰森林公园都是一个理想的旅行选择。

    初中语文文摘文苑雨的记忆

    雨滴落在水潭上的声音,不仅是大自然的乐章,更是人们内心世界中的回响。这声音唤起的是人们对过去美好时刻的回忆,无论是欢笑还是痛苦,都是成长的烙印,值得珍惜。雨声的“叮咚”不仅是物理上的响声,它更是时间...

    秦皇岛祖山导游词5篇精选.doc

    望海寺景区,以十里画廊谷最为人称道,这里有三十六景,诸如五潭映月,月光下的五个水潭映出月亮的影子,美得如同梦境。峡谷两侧象形山岩构成了生动的山水画卷,让人不禁赞叹大自然的鬼斧神工。 望海寺景区不仅有...

    七年级科学下学期第二次月考试题(无答案) 浙教版 试题.doc

    1. 痛觉形成位置:痛觉是由神经末梢感受到刺激后,通过神经传导到大脑皮层进行解析和感知的,因此痛觉的形成部位是大脑皮层(B)。 2. 五感区分:“闻韶音”涉及到的是听觉,由耳朵接收声音信号;“知肉味”则是...

    光的折射拓展性专项练习.doc

    1. **折射定律**:也称为斯涅尔定律,它指出入射光、折射光以及法线三者在同一平面内,且入射角的正弦与折射角的正弦之比等于两种介质的折射率之比,即 n₁sinθ₁ = n₂sinθ₂,其中n₁和n₂分别是第一介质和第二...

    初中语文知识点《基础知识及语言表达》《词语》同步精选课时练习【68】(含答案考点及解析).docx

    题目中的"zhòu然"应为"骤然","hóng水潭"应为"泓水潭","xùn情"应为"殉情","镶qiàn"应为"镶嵌"。通过此类练习,可以增强学生的汉字记忆和拼写能力。 6. 成语运用:成语是汉语中富有特色的固定短语,正确运用...

    四年级语文下册全册生字表(人教版).doc

    在与“潭”字搭配成“螺潭”时,学生可以理解为山中的小水潭,其形状如同螺壳一般。而“谙”字读作“ān”,与“庭”字搭配成“谙庭”,则意指对庭院的熟悉或了解。至于“澜”字,读音为“lán”,常用来形容...

    孤山寨导游词作文孤山寨作文.pdf

    此外,孤山寨还有其他诸多景点,如“山门迎客”、“仙女浴潭”、“九龙抱石”、“五老峰”、“千古河床”、“洗心潭”、“石中石”、“银川冰谷”、“惜水潭”和“哥泉涌流”等。这些景观各具特色,既有奇石怪岩,又...

    初中语文知识点《基础知识及语言表达》《词语》同步精选课时练习【68】(含答案考点及解析)决战中考2021系列.docx

    学生需要根据拼音写出对应的汉字,如"zhòu然一亮"对应"骤然","hóng水潭"对应"泓水潭","xùn情"对应"殉情","镶qiàn"对应"镶嵌"。 6. **词语运用**:这道题目考察的是成语或词语的正确使用。A选项中"里程碑...

    江苏省灌云县陡沟2013-2014学年八年级物理上学期第二次月考试题(无答案) 新人教版.doc

    13. 月光与水潭:当迎着月光走时,水潭表面会反射月光,显得较亮,所以发亮处是水潭;背着月光走时,水潭表面的反射光无法到达眼睛,显得较暗,所以暗处是水潭。选项A和D正确。 14. 汽车挡风玻璃倾斜安装:主要目的...

    家乡的高圪垯山

    兰清古寨和龙水潭等古迹的存在,也让人们有机会近距离感受历史的沧桑和文化的韵味,成为探古访今的绝佳之地。 综上所述,高圪高地带不仅是一处自然景观秀丽的地方,更是一个文化和历史资源丰富的地方。这里的自然之...

    中文导游词:幽谷神潭经典导游词.docx

    旅程的最后一站是“神潭”,这是一个深达8米的天然水潭,连接着飞瀑和清流。站在潭边,可以感受到瀑布的威力与静水的宁静,形成鲜明对比。如果体力允许,还可以攀登天梯,站在山巅远眺,将整个山谷的壮丽景色...

    孤山寨导游词范文.doc

    此外,还有"小孤山"、"观音庙"、"山门迎客"、"仙女浴潭"、"九龙抱石"、"五老峰"、"千古河床"、"洗心潭"、"石中石"、"银川冰谷"、"惜水潭"和"哥泉涌流"等多个景观,每处都充满了故事和传说,为游客提供了丰富的文化...

    河南许昌高级中学高考语文专题复习 文言文阅读(附答案) - 副本.doc

    乙文中,苏轼与儿子游览白水佛迹院,通过对水潭、瀑布的描写,展现了文言文的描绘技巧,如“雪溅雷怒,可喜可畏”形象地刻画了水流的壮观景象。同时,通过“顾影颓然,不复能寐”的描写,反映出苏轼的情感变化,使...

Global site tag (gtag.js) - Google Analytics