我打算允许用户通过PHP用户界面生成.POT文件/.PO文件作为CMS解决方案的一部分。一旦生成这些文件(容易部分),我希望我的系统能够自动将这些文件转换为.MO文件以响应用户(POST)请求。
我在SO上看到了以下问题: .po to .mo convertor in php? 我知道我可以使用PHP的exec()函数运行msgfmt,但那似乎只是Linux的解决方案,如果我没记错的话?在其他操作系统上该怎么做呢?如果有人能友好地演示如何实现这一点的示例代码,那将非常有用。这与我通常所做的工作非常不同!
目前这只是一个概念,但我希望我正在沿着正确的方向前进。如果您对这种方法有任何其他想法/建议,我会很乐意听取它们。附加背景信息如下。
我在SO上看到了以下问题: .po to .mo convertor in php? 我知道我可以使用PHP的exec()函数运行msgfmt,但那似乎只是Linux的解决方案,如果我没记错的话?在其他操作系统上该怎么做呢?如果有人能友好地演示如何实现这一点的示例代码,那将非常有用。这与我通常所做的工作非常不同!
目前这只是一个概念,但我希望我正在沿着正确的方向前进。如果您对这种方法有任何其他想法/建议,我会很乐意听取它们。附加背景信息如下。
我通过解析简单的模板文件(只包含基本的HTML和调用<?php _('the gettext method'); ?>
)来检索原始的英文文本。这些模板在编辑/保存时进行解析,并检索语言条目。然后将生成.POT文件。用户现在需要手动编辑翻译(通过简单的界面,而不是直接编辑)以更新/准备所有的.PO文件。完成后,我需要能够将它们转换为.MO文件,这就是我的问题标题。
__()
gettext 包装函数的 PHP 应用程序都有一个。如果我没记错的话,你可能会在 PhpWiki 中找到一个。(惊人地难以谷歌到另一个..) - marioglob()
和preg_match_all()
(正如你所建议的),尽管如果应用程序足够大,执行时间可能会相当恶劣...无论如何,再次感谢。 - pb149