Livid
270.9D
571.87D

关于多语言版本

  •  
  •   Livid ·
    PRO
    · Sep 24, 2010 · 6441 views
    This topic created in 5704 days ago, the information mentioned may be changed or developed.
    目前 Project Babel 2 的多语言架构已经基本完成,接下来的工作就主要是两部分:

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

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

    语言包位于源代码的:

    v2ex.babel.l10n.messages

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

    en -> English
    zh-Hans -> 简体中文
    ja -> 日本語
    de -> Deutsch
    27 replies    1970-01-01 08:00:00 +08:00
    lianghai
        1
    lianghai  
       Sep 24, 2010
    嗯我会试着去完成 hi -> हिन्दी ~
    玩玩。
    gonbo
        2
    gonbo  
       Sep 24, 2010
    zh-CN 吧, zh-TW ,就好。

    Linux 下的标准
    s
        3
    s  
       Sep 24, 2010
    en.py 稳定了吗?
    我准备翻译了。

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

    iOS 上也是使用这样的编码来标识语言。
    Livid
        8
    Livid  
    MOD
    OP
    PRO
       Sep 24, 2010
    目前 en.py 肯定还不够完整,大家之后可以用 diff 看到新增的 message。
    fanzeyi
        9
    fanzeyi  
       Sep 25, 2010
    @lianghai 膜拜印地语帝
    lianghai
        10
    lianghai  
       Sep 25, 2010
    @fanzeyi V2EX 是个大神成海的地方……我一个初学者实在不敢称帝……
    dimlau
        11
    dimlau  
       Sep 25, 2010
    @lianghai 大神成海……你本身就是海
    Livid
        12
    Livid  
    MOD
    OP
    PRO
       Sep 25, 2010
    Leo
        13
    Leo  
       Sep 25, 2010
    @s 我认领zh_CN
    lianghai
        14
    lianghai  
       Sep 25, 2010
    @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  
       Sep 25, 2010
    @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
       Sep 25, 2010
    @lianghai 那个 s 是 typo。

    en 中的不妥之处欢迎大家修改为自己觉得最舒服的。
    lianghai
        17
    lianghai  
       Sep 25, 2010
    @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
       Sep 25, 2010
    @lianghai 从概念和广度来说,书写系统是一个比措辞习惯更大的集合,所以我想,目前项目优先实现对不同书写系统的支持吧。

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

    py文件不支持,但是可以导出转换吧
    iwinux
        25
    iwinux  
       Nov 1, 2010
    我目前正在学的第二外语是……呃……拉丁文……
    lianghai
        26
    lianghai  
       Nov 1, 2010
    @iwinux 做个通俗拉丁语版本应该也很好玩吧 XD
    keakon
        27
    keakon  
       Nov 1, 2010
    习惯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]
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5816 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 64ms · UTC 03:43 · PVG 11:43 · LAX 20:43 · JFK 23:43
    ♥ Do have faith in what you're doing.