V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Livid
V2EX  ›  Project Babel

关于多语言版本

  •  
  •   Livid · 2010-09-24 02:15:39 +08:00 · 5785 次点击
    这是一个创建于 5178 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目前 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
       2010-09-24 23:54:10 +08:00
    zh-Hans / zh-Hant 是 ISO 639 标准。

    iOS 上也是使用这样的编码来标识语言。
    Livid
        8
    Livid  
    MOD
    OP
       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
       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
       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
       2010-09-25 02:06:40 +08:00
    @lianghai 从概念和广度来说,书写系统是一个比措辞习惯更大的集合,所以我想,目前项目优先实现对不同书写系统的支持吧。

    如果用 OOP 的概念的话,zh-CN 和 zh-SG 都可以继承自 zh-Hans,只是需要对部分方法做重载。
    Livid
        19
    Livid  
    MOD
    OP
       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
       2010-11-01 03:57:10 +08:00
    @lianghai 这个网站非常好,感谢。
    Livid
        23
    Livid  
    MOD
    OP
       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   ·   实用小工具   ·   1034 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 21:01 · PVG 05:01 · LAX 13:01 · JFK 16:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.