如何从Symfony2/Silex项目生成翻译文件(.po、.xliff、.yml…)?

如何从Symfony2/Silex项目生成翻译文件(.po、.xliff、.yml…)?,symfony,translation,silex,xliff,Symfony,Translation,Silex,Xliff,我将建立一个Silex/Symfony2项目,我一直在寻找一种方法,根据项目内部要翻译的文本生成XLIFF/PO/YAML翻译文件,但没有找到任何说明或文档 我的问题是:是否有一种自动方式为Symfony2/Silex项目生成特定格式的翻译文件? 如果是,请告诉我如何生成文件,然后更新翻译 如果没有,请告诉我如何创建翻译文件,然后为我的项目添加更多文本?我正在寻找基于桌面或基于web的编辑器,而不是使用Transifex、GetLocalization等普通编辑器(但他们没有创建新文件或添加更多

我将建立一个Silex/Symfony2项目,我一直在寻找一种方法,根据项目内部要翻译的文本生成XLIFF/PO/YAML翻译文件,但没有找到任何说明或文档

我的问题是:是否有一种自动方式为Symfony2/Silex项目生成特定格式的翻译文件?

如果是,请告诉我如何生成文件,然后更新翻译


如果没有,请告诉我如何创建翻译文件,然后为我的项目添加更多文本?我正在寻找基于桌面或基于web的编辑器,而不是使用Transifex、GetLocalization等普通编辑器(但他们没有创建新文件或添加更多文本的选项)

在互联网上搜索了很长时间后,我找到了一个不错的编辑器:


我知道您找到了一个转换器,但要回答您关于生成初始翻译文件的第一个问题-

如果你已经在你的系统上安装了,你可以从你的“要在项目内部翻译的文本”中生成一个PO文件。命令行程序将扫描源文件,查找您正在使用的任何函数

示例:
要在PHP文件中扫描
trans
方法调用的实例,可以使用以下命令-

find . -name "*.php" | xargs xgettext --language=PHP --keyword=trans --output=messages.pot
有关编辑的问题:
您可以使用任何PO编辑器(例如)来管理您的翻译,但正如您所说,最终需要将PO文件转换为Symfony的XLIFF或YAML语言包


我看你已经找到了一个转换工具。你也可以试试我为Loco写的。它支持和

忙碌人群的变通方法(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
选项

  • grep-R,-R,--recursive
    :递归读取每个目录下的所有文件,这相当于
    -d
    递归选项
  • grep-E,--extended regexp
    :将模式解释为扩展正则表达式
  • grep-o,--only matching
    :仅显示匹配行中与模式匹配的部分
  • grep-h,--no filename
    :在搜索多个文件时,禁止在输出时使用文件名前缀

()

我有一个.xlxs文件需要改成.xliff-你知道如何实现吗?谢谢。在
jms1.3.1
之前,这不适用于
twig2.0
,我认为用xgettext处理symfonys的多元化语法是不可能的。这是真的。Gettext有限的复数语法与Symfony更具表现力的语法不兼容。您必须在实际字符串中嵌入特殊语法。尽管这适用于与Symfony一起使用的任何格式,包括推荐的XLIFF格式