Páginas

20 de abril de 2010

I18N Extract para além das path's predefinidas

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

Como já devem saber, esta task pesquisa por strings "i18n ready" nos nossos ficheiros .php.

Por strings "i18n ready" entenda-se chamadas à função __() do I18N Helper.

Por default, esta task pesquisa apenas nos templates e nos lib's da aplicação escolhida. Deixando por extrair as strings que estão, por exemplo, nos nossos plugins.

Para forçar a pesquisa de "i18n ready strings" noutras localizações podemos fazer uma coisa feia e desaconselhável mas que resulta...

Basta editar um ficheiro do core do symfony:
symfony/lib/i18n/extract/sfI18nApplicationExtract.class.php

public function extract()
  {
    foreach ($this->extractObjects as $extractObject)
    {
      $extractObject->extract();
    }

    // Add global templates
    $this->extractFromPhpFiles(sfConfig::get('sf_app_template_dir'));

    // Add global librairies
    $this->extractFromPhpFiles(sfConfig::get('sf_app_lib_dir'));

    // Hack: Pesquisar tambem no directorio dos plugins
    $this->extractFromPhpFiles(sfConfig::get('sf_plugins_dir'));
  }

No exemplo acima forçei a pesquisa no sf_plugins_dir.

Nenhum comentário:

Postar um comentário