【问题标题】:Can someone break down how localization file ( .mo, .po ) generation works?有人可以分解本地化文件( .mo , .po )生成的工作原理吗?
【发布时间】:2010-12-20 01:33:55
【问题描述】:

我正在尝试摸索gettext

这是我认为它的工作原理 -

首先,您使用某种 po 编辑器并告诉它扫描您的应用程序的目录,创建这些“.po”文件,应用程序为每个扫描的文件创建一个 po 文件,其中包含编程语言中的字符串,然后将它们编译为二进制 mo 文件,gettext 解析到该文件,然后使用高级 API(例如 Zend_Translate)调用方法并指定您要使用 gettext,它可以设置为缓存翻译并返回那些。

我真正不清楚的部分是 po 文件的编辑是如何完成的,它是手动的 - 对吗?然后当编译完成时,应用程序当然依赖二进制 mo 文件。

如果有人可以提供有用的 linux 应用程序来编辑 .po 文件,我将不胜感激。

【问题讨论】:

    标签: zend-framework internationalization gettext mo


    【解决方案1】:

    NLS using GNU gettext 上的教程应该可以帮助你理解这个过程。

    至于编辑 .po 文件,至少有两个应用程序(除了 vi :-):gtranslatorpoedit

    【讨论】:

    • 您是否使用任何特定于 vim 的插件,还是真的不需要?
    • 我从未使用过 vim 插件,但vim.sourceforge.net/scripts/script.php?script_id=695 有一些东西
    • 我读了一遍,可能遗漏了一些信息,但是: 1. 假设我们正在处理一个 python/php 网络应用程序,存储 po/mo 文件的典型本地是什么?有我可以使用的标准目录吗? 2.你是用xgettext从源代码中提取字符串吗?我想我得到了大部分信息,但如果有人能提供一个冗长的愚蠢和较少技术性的解释,并提供实用的现实世界的技巧,那就太好了。
    • 通常您将 LOCALEDIR 设置为 $PREFIX/share/locale(前缀可以是 /usr、/usr/local、...),然后对于 ecah 语言,文件将使用 fr/LC_MESSAGES /yourappname.mo。提取字符串时,我使用 xgettext。当 xgettext 满足我的需要时,就不用费心寻找其他东西了。
    • 好吧,最后一件事 - 假设您有大约 100 个左右的文件,其中 50 个具有需要 i18n 的字符串。它不会将它们全部连接到一个 .mo 文件中,是吗?我很好奇,因为你输入了yourappname.mo
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-14
    • 2021-04-11
    • 2016-09-11
    • 1970-01-01
    • 1970-01-01
    • 2021-08-02
    相关资源
    最近更新 更多