0

我正在尝试在 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

4 回答 4

3

尝试添加

messageSource: '%SF_APP_DIR%/i18n'

i18n 出厂配置的选项。

并寻找你的messages.xmlin app_dir/i18n/your_culture。老messages.xmlvendor/symfony/lib/plugins/sfdoctrineplugin/i18n我的情况下

于 2013-01-15T14:39:08.147 回答
0

尝试在 factory.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

在这里您可以找到更多信息。

于 2012-08-17T13:27:28.797 回答
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 更改)

于 2016-05-09T19:08:16.207 回答
-1

您的默认语言是fr并且您正在尝试将翻译翻译成fr?

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

尝试./symfony i18n:extract frontend en --auto-save(或您想要的任何语言,除了法语),让我们知道您是否会得到您需要的东西。

于 2012-06-26T14:00:18.400 回答