我将构建一个Silex/Symfony2 2项目,我一直在寻找一种方法来生成XLIFF/PO/YAML翻译文件,它是基于项目中要翻译的文本,但是没有找到任何关于它的指令或文档。
我的问题是:是否有一种为Symfony2 2/Silex项目生成特定格式的翻译文件的自动化方法?
如果是,请告诉我如何生成文件,然后更新翻译。
如果没有,请告诉我如何创建翻译文件,然后为我的项目添加更多的文本?我正在寻找一个基于桌面的编辑器或基于web的编辑器,而不是使用普通的编辑器,如Transifex、GetLocalization (但他们没有创建新文件或添加更多文本的选项)。
发布于 2013-04-22 06:40:58
在网上搜索了很长一段时间之后,我找到了一个好的:
发布于 2013-05-09 10:22:22
我看你找到了一个转换器,但要回答你关于生成初始翻译文件的第一个问题-
如果您在系统上安装了盖特文,您可以从“项目内部要翻译的文本”生成PO文件。命令行程序xgettext将扫描源文件,查找所使用的任何函数。
示例:
若要扫描trans方法调用如图所示的实例,可以使用以下命令-
find . -name "*.php" | xargs xgettext --language=PHP --keyword=trans --output=messages.pot关于编辑的问题:
您可以使用任何PO编辑器(如POEdit )来管理您的翻译,但正如您所说的,您最终需要将PO文件转换为用于Symfony的XLIFF或YAML语言包。
我看你已经找到了转换器工具。你也可以试试我为Loco写的那个。它支持宝至YAML和蒲至XLIFF
发布于 2015-06-08 14:11:06
用于繁忙人员(UNIX)的解决方案
您可以在终端中运行以下命令:
$ grep -rEo --no-filename "'.+'\|\btrans\b" templates/ > output.txt这将输出要翻译的消息列表:
'Please provide your email'|trans
'Phone'|trans
'Please provide your phone number'|trans
...我是说几乎..。但你通常可以在这里做些工作..。
显然,您必须根据自己的喜好调整命令(transchoice,双引号而不是单引号)。
不理想,但能帮上忙!
grep options
grep -R, -r, --recursive:读取每个目录下的所有文件,递归地这相当于-d recurse选项。grep -E, --extended-regexp:将模式解释为扩展的正则表达式。grep -o, --only-matching:只显示匹配行中匹配模式的部分。grep -h, --no-filename:搜索多个文件时,禁止在输出上设置文件名的前缀。(来源)
https://stackoverflow.com/questions/16139894
复制相似问题