【问题标题】:How to enumerate all string keys in locale domain?如何枚举语言环境域中的所有字符串键?
【发布时间】:2011-12-23 18:26:59
【问题描述】:

我们程序的翻译字符串存储在服务器上的 .po/.mo 文件中。 我们需要将翻译导出为 XML。 似乎很自然的方法是编写一个小的 PHP 脚本,在这样的标签中打印字符串

<s key="apple" value="яблоко"/>
<s key="orange" value="апельсин"/>

当您知道 .po/.mo 文件中的所有键时,这很容易。 设置域,设置语言环境并使用 gettext()。

但我还没有找到枚举域中所有字符串的函数。 我能想到的唯一选择是手动列出所有翻译键以完成工作。 我懒得做这份工作了。

有没有办法枚举域中的所有翻译键?

【问题讨论】:

  • 我会搜索“解析 po 文件”之类的东西。我敢打赌存在大量脚本。
  • 请不要标记您的标题。我们已经不是 1990 年代了。

标签: php localization locale gettext


【解决方案1】:

.mo 文件是二进制文件,据我所知,它们实际上并不存储msgid,而是一个易于访问的版本,在索引中。

.po 文件是列出所有msgids 的简单文本文件,易于使用#msgid "([^"]+)# 等正则表达式进行解析

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-24
    • 1970-01-01
    • 1970-01-01
    • 2011-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    相关资源
    最近更新 更多