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

2019-08-31 18:07发布

我要去建立一个捷希凯/ Symfony2的项目,我一直在四处寻找到基于文本将要翻译的项目中,但没有发现它的任何指令或文档XLIFF / PO / YAML翻译文件的方法。

我的问题是: 有没有产生一个Symfony2中/ Silex的项目特定格式转换的文件(S)以自动化的方式?

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

如果没有,请告诉我如何创建翻译文件(S),然后为我的项目增加了更多的文字? 我要寻找一个基于编辑桌面或Web为基础的,而不是使用正常的编辑器如Transifex,GetLocalization(但他们没有选择创建一个新文件或添加更多的文字)

Answer 1:

经过很长一段时间搜索互联网,我发现了一个很好的一个:

https://github.com/schmittjoh/JMSTranslationBundle



Answer 2:

我看你已经找到了一个转换器,但可以回答有关生成您最初的翻译文件的第一个问题 -

如果你的Gettext您的系统上安装,你可以通过您的“文本将要翻译的项目中” PO文件。 该命令行程序xgettext将扫描的源文件找你使用任何功能。

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

find . -name "*.php" | xargs xgettext --language=PHP --keyword=trans --output=messages.pot

要你对编辑的问题:
你可以使用任何PO编辑器如poEdit的 ,来管理你的翻译,但你说你最终需要的PO文件转换到任何一个XLIFF或YAML语言包Symfony的。

我看你已经找到了一个转换工具。 你可能也想尝试一个我写的疯子。 它支持PO到YAML ,并PO到XLIFF



Answer 3:

解决方法忙碌的人(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 :当多个文件中搜索禁止输出文件名的前缀。

( 源 )



文章来源: How to generate translation file (.po, .xliff, .yml,…) from a Symfony2/Silex project?