我正在尝试在Symfony 1.4.18上设置i18n行为。我的前端布局中有一些i18n友好的字符串(使用两个下划线)。我试着运行以下命令:
$ ./symfony i18n:extract frontend fr --auto-save
起初,symfony发现了17个字符串,但没有构建路径apps / frontend / i18n / fr /也没有构建文件内部:messages.xml。
我重新运行上面的命令,但这次Symfony没有找到任何字符串。我想,如果Symfony没有找到新的字符串,它可能会将它保存在某个地方,所以我在我的Linux上运行了另一个命令,以查找我的一个i18n字符串上的任何事件(通常我有这个字符串:):
$ grep "Freelance" $(find ./)
此命令是在我的项目的根目录下启动的,但不幸的是,除了布局中的那个外,它没有发现任何事件。
我不知道该怎么做才能解决我的问题。
PS:我希望我的英语不是太糟糕,这不是我的母语,但我尽力做到最好。答案 0 :(得分:3)
尝试添加
messageSource: '%SF_APP_DIR%/i18n'
您的i18n工厂配置选项。
在messages.xml
中查找app_dir/i18n/your_culture
。旧版messages.xml
在我的情况下vendor/symfony/lib/plugins/sfdoctrineplugin/i18n
答案 1 :(得分:0)
尝试在factories.yml中设置i18n源代码
这样的事情:
i18n:
class: sfI18N
param:
source: XLIFF
debug: false
untranslated_prefix: "[T]"
untranslated_suffix: "[/T]"
cache:
class: sfFileCache
param:
automatic_cleaning_factor: 0
cache_dir: %SF_I18N_CACHE_DIR%
lifetime: 31556926
prefix: %SF_APP_DIR%/i18n
here您可以找到更多信息。
答案 2 :(得分:0)
在项目根目录中执行此操作:
sudo find . -print | grep -i 'messages.xml'
然后删除您找到的文件(可能在symfony供应商文件中的sfDoctrinePlugin / i18n内)
使用上面的工具为factory.yml和settings.yml
重启任务:
php symfony i18n:extract frontend fr --auto-save
这就是全部。现在生成了messages.xml。缺少文件夹已创建。
(恢复之前所做的chmod更改)
答案 3 :(得分:-1)
您的默认语言是 fr
,而您正试图将翻译件转换为 fr
?
xml文件应该包含源字符串(法语 - 您的默认语言)和目标字符串(英语或其他)。
尝试./symfony i18n:extract frontend en --auto-save
(或您想要的任何语言,除了法语)并告诉我们您是否能得到您需要的语言。