i18n extract不会在Symfony中创建目录或文件

时间:2012-06-25 23:40:27

标签: php symfony1 internationalization symfony-1.4

我正在尝试在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:我希望我的英语不是太糟糕,这不是我的母语,但我尽力做到最好。

4 个答案:

答案 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)

  1. 在项目根目录中执行此操作:

    sudo find . -print | grep -i 'messages.xml'
    
  2. 然后删除您找到的文件(可能在symfony供应商文件中的sfDoctrinePlugin / i18n内)

  3. 使用上面的工具为factory.yml和settings.yml

  4. 重启任务:

     php symfony i18n:extract frontend fr --auto-save
    

    这就是全部。现在生成了messages.xml。缺少文件夹已创建。

  5. (恢复之前所做的chmod更改)

答案 3 :(得分:-1)

您的默认语言是 fr ,而您正试图将翻译件转换为 fr

xml文件应该包含源字符串(法语 - 您的默认语言)和目标字符串(英语或其他)。

尝试./symfony i18n:extract frontend en --auto-save(或您想要的任何语言,除了法语)并告诉我们您是否能得到您需要的语言。