关于多语言版本 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Livid
179.91D
584.43D
V2EX    Project Babel

关于多语言版本

  •  
  •   Livid
    PRO
    2010-09-24 02:15:39 +08:00 6205 次点击
    这是一个创建于 5548 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目前 Project Babel 2 的多语言架构已经基本完成,接下来的工作就主要是两部分:

    - 将页面上的所有消息放入语言包
    - 翻译这些语言包

    我个人会完成中文和英文的语言包,但是更多的语言就需要借助大家的帮助了。

    语言包位于源代码的:

    v2ex.babel.l10n.messages

    文件名遵循 ISO 639-1 标准,在 2.4 时将会至少支持以下列表中的语言:

    en -> English
    zh-Hans -> 简体中文
    ja -> 日本
    de -> Deutsch
    27 条回复    1970-01-01 08:00:00 +08:00
    lianghai
        1
    lianghai  
       2010-09-24 17:40:55 +08:00
    嗯我会试着去完成 hi -> ~
    玩玩。
    gonbo
        2
    gonbo  
       2010-09-24 20:39:33 +08:00
    zh-CN 吧, zh-TW ,就好。

    Linux 下的标准
    s
        3
    s  
       2010-09-24 20:55:59 +08:00
    en.py 稳定了吗?
    我准备翻译了。

    认领ja和kr。
    daizhixin
        4
    daizhixin  
       2010-09-24 21:12:35 +08:00
    支持一下KR
    billychow
        5
    billychow  
       2010-09-24 21:22:40 +08:00
    en_US
    zh_CN
    zh_TW
    我觉得这样更好些...
    lianghai
        6
    lianghai  
       2010-09-24 23:39:03 +08:00
    正在试着翻译印地语版玩,于是发现一个很有意思的事……
    我们常用的“avatar”这个词正是来自南亚的宗教,但如果把这个词直接还原回去成“”就真成宗教措词了,于是得换个说法,根据 Google 的习惯,就用“”了。
    Livid
        7
    Livid  
    MOD
    OP
    PRO
       2010-09-24 23:54:10 +08:00
    zh-Hans / zh-Hant 是 ISO 639 标准。

    iOS 上也是使用这样的编码来标识语言。
    Livid
        8
    Livid  
    MOD
    OP
    PRO
       2010-09-24 23:55:05 +08:00
    目前 en.py 肯定还不够完整,大家之后可以用 diff 看到新增的 message。
    fanzeyi
        9
    fanzeyi  
       2010-09-25 00:02:52 +08:00
    @lianghai 膜拜印地语帝
    lianghai
        10
    lianghai  
       2010-09-25 00:16:41 +08:00
    @fanzeyi V2EX 是个大神成海的地方……我一个初学者实在不敢称帝……
    dimlau
        11
    dimlau  
       2010-09-25 00:17:33 +08:00
    @lianghai 大神成海……你本身就是海
    Livid
        12
    Livid  
    MOD
    OP
    PRO
       2010-09-25 00:28:06 +08:00
    Leo
        13
    Leo  
       2010-09-25 00:49:47 +08:00
    @s 我认领zh_CN
    lianghai
        14
    lianghai  
       2010-09-25 01:42:10 +08:00
    @dimlau 我是 fish 海……
    我正顶着我的 fish 脑袋试图把今天搞的本地化文件同步回 GitHub……

    试着理解 en 的过程中看到很好玩的一句话:It's better to block someone than to start a flame war.

    另外感觉这句“Cookie will be remembered for a year.”不妥,过于 geek 了,直接说“登录状态将保留一年”这样的话会不会更清楚些?有空大家慢慢修订吧。

    另外,这句话“If you don't want to change your passwords, please leave these fields blank.”似乎多了个“s”?还是说在某些功能区会有多个密码?
    lianghai
        15
    lianghai  
       2010-09-25 01:51:35 +08:00
    @Livid 其实像“zh-Hans”这样的代码似乎是由 ISO 639-1(Codes for the representation of names of languages Part 1: Alpha-2 code)和 ISO 15924(Codes for the representation of names of scripts)两部分组成的,前后两部分分别确定了语言和文字(书写系统)。像 en 和 de 都几乎是 en-Latn 和 de-Latn 所以没必要细写,ja 几乎也都是 ja-Jpan 所以也不用声明文字。
    Livid
        16
    Livid  
    MOD
    OP
    PRO
       2010-09-25 02:00:57 +08:00
    @lianghai 那个 s 是 typo。

    en 中的不妥之处欢迎大家修改为自己觉得最舒服的。
    lianghai
        17
    lianghai  
       2010-09-25 02:01:35 +08:00
    @lianghai 呃,我又没说完话就“发送”了……

    接着上面说,所以说“zh-Hans / zh-Hant 是 ISO 639 标准”是不确切而且没有说服力的。iOS 等地方选用 ISO 639-1 和 ISO 15924 应当是为了明确文本的语言和书写系统的连带关系。一些语言常常用好几种文字写出,这在 langtag.net 那说得挺清楚的了。

    只是,这样没法照顾不同地区之间的措词习惯了。比如,似乎 zh-cn 和 zh-sg 都用 zh-Hans……
    Livid
        18
    Livid  
    MOD
    OP
    PRO
       2010-09-25 02:06:40 +08:00
    @lianghai 从概念和广度来说,书写系统是一个比措辞习惯更大的集合,所以我想,目前项目优先实现对不同书写系统的支持吧。

    如果用 OOP 的概念的话,zh-CN 和 zh-SG 都可以继承自 zh-Hans,只是需要对部分方法做重载。
    Livid
        19
    Livid  
    MOD
    OP
    PRO
       2010-09-25 02:07:16 +08:00
    我想这应该就是我当时选择用 zh-Hans 而不是 zh-CN 的主要原因吧。
    lianghai
        20
    lianghai  
       2010-09-25 02:09:35 +08:00
    @Livid 嗯,那么这样的计划很好。先照顾最粗略的语言划分,这样至少用户能看懂。
    lianghai
        21
    lianghai  
       2010-11-01 03:46:31 +08:00
    有没有可能使用一个类似这样的服务来做多语言呢(不知道在管理上会不会很麻烦,因为毕竟还是聚集在 GitHub 一个地方比较简洁)?
    http://mygengo.com/string/about
    Livid
        22
    Livid  
    MOD
    OP
    PRO
       2010-11-01 03:57:10 +08:00
    @lianghai 这个网站非常好,感谢。
    Livid
        23
    Livid  
    MOD
    OP
    PRO
       2010-11-01 04:04:49 +08:00
    研究中,不过目前 Project Babel 所用的 .py 文件似乎并不支持……
    freefcw
        24
    freefcw  
       2010-11-01 10:24:26 +08:00
    这个网站看起来很不错啊

    py文件不支持,但是可以导出转换吧
    iwinux
        25
    iwinux  
       2010-11-01 11:43:52 +08:00
    我目前正在学的第二外语是……呃……拉丁文……
    lianghai
        26
    lianghai  
       2010-11-01 12:12:23 +08:00
    @iwinux 做个通俗拉丁语版本应该也很好玩吧 XD
    keakon
        27
    keakon  
       2010-11-01 16:51:43 +08:00
    习惯zh-cn的原因是浏览器认得,例如Firefox:Accept-Language: en-us,zh-cn;q=0.7,en;q=0.3

    这样我就无需处理转换问题了:
    for lang in langs:
    if request.accept_language.lower().find(lang)
    return lang

    否则还得维护一个langdict,再return langdict[lang]
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     906 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 20:39 PVG 04:39 LAX 12:39 JFK 15:39
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86