JMSTranslationbundle Формат & quot; yml & quot; не существует

Я использовал JMSTranslationBundle раньше в разных проектах без каких-либо проблем.

Однако это мой первый проект Symfony3.4, использующий jms / translation-bundle: dev-master.

Конфигурация выглядит следующим образом:

jms_translation:
configs:
app:
dirs: ["%kernel.root_dir%", "%kernel.root_dir%/../src"]
output_dir: "%kernel.root_dir%/Resources/translations"excluded_names: ["*TestCase.php", "*Test.php"]
excluded_dirs: [cache, data, logs, translations]
output-format: yml

Бег php bin/console translation:extract --config=app en
отлично работает и создает правильные файлы перевода.
Когда я снова запускаю команду, я получаю следующую ошибку:

The format "yml" does not exist.

Чтобы не ошибиться с «.yml ~», не существует ошибки, которую я видел здесь раньше.

У меня нет проблем, когда я использую формат xliff, я могу извлечь файлы несколько раз, и это будет работать так, как должно.

Любая помощь будет принята с благодарностью. Я просматривал все файлы конфигурации из предыдущих проектов в течение нескольких часов, и я не могу точно определить причину проблемы.

1

Решение

Хорошо, я наконец-то нашел это.

Когда я устанавливаю выходной формат ‘yaml’ вместо ‘yml’, не возникает проблем с многократным извлечением переводов. Однако форматирование все испортилось (без группировки).
Это не лучшее решение, когда файлы начинают увеличиваться.

Таким образом, проблема не в извлечении перевода или создании файлов yml. Это происходит, когда мы пытаемся разобрать старые файлы.

Добавив строку

$format = ($format=='yml') ? 'yaml' : $format;

в файле LoaderManager.php из JMSTranslationBundle в строке 84:

  protected function getLoader($format)
{
$format = ($format=='yml') ? 'yaml' : $format;
if (!isset($this->loaders[$format])) {
throw new InvalidArgumentException(sprintf('The format "%s" does not exist.', $format));
}

return $this->loaders[$format];
}

Все работает как положено. Файл .yml генерируется и форматируется правильно. Любые последующие извлечения сохраняют форматирование без ошибок.

Конечно, добавление строк в комплект поставщика не является реальным решением, поэтому я буду больше разбираться в нем и отправлю запрос на извлечение, когда найду элегантный способ обойти это.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]