Перевести расширение Extbase с locallang.xlf, но ничего не происходит?

Я использую TYPO3 CMS 6.2.6 и новое фантастическое расширение Extbase под названием «jobfair». Я добавил свой новый templateRootPaths следующим образом:

plugin.tx_jobfair {

  view {
        templateRootPaths {
          100 = EXT:jobfair/Resources/Private/Templates/
          101 = fileadmin/templates/ext/jobfair/Resources/Private/Templates/
        }

        partialRootPaths {
          100 = EXT:jobfair/Resources/Private/Partials/
          101 = fileadmin/templates/ext/jobfair/Resources/Private/Partials/
       }

       layoutRootPaths {
          100 = EXT:jobfair/Resources/Private/Layouts/
          101 = fileadmin/templates/ext/jobfair/Resources/Private/Layouts/
       }
  }

}
...

Так что я могу редактировать шаблоны и части для моего конкретного дизайна. Все остальные шаблоны будут загружаться из / typo3conf / ext / jobfair / Resources / ...

Все нормально работает. Я также скопировал языковую папку из расширения (typo3conf) в свою папку fileadmn (fileadmin /.../ jobfair / Resources / Private / Language /).

Я редактирую "locallang.xlf" и "de.locallang.xlf", например:

частичное: ContractType.html

<f:if condition="{job.contractType} == 0">
 <f:translate key="tx_jobfair_domain_model_job.contract_type.0" />
</f:if>

Я изменю цель на de.locallang.xlf

<trans-unit id="tx_jobfair_domain_model_job.contract_type">
<source>Contract Type</source>
<target>Here's my german translation!!!</target>
</trans-unit>

Но это не работает !?

Как я могу перевести или переименовать метки backend (flexform) для моего расширения? Разве файл de.locallang.xlf не подходит?

Спасибо за вашу помощь. p.s. Я очистил кеш в TYPO3 .. ничего не произошло.

Вот моя файловая система

ext-папка скопирована в fileadmin

Я использую его так же для своего FLUIDTEMPLATE

текучая и языковая опечатка3


person user2310852    schedule 12.11.2014    source источник


Ответы (2)


Шаблон и обработка языка являются независимыми компонентами TYPO3. Поэтому файлы шаблонов, которыми вы перезаписываете оригинал, не могут «знать», что вы скопировали языковые файлы в другое место. У вас есть несколько вариантов.

Просто для записи, переопределение меток для внешнего интерфейса может быть удобно выполнено с помощью TypoScript:

plugin.tx_yourext._LOCAL_LANG.[languageKey] {
    labelKey = New label text
}

(Язык по умолчанию имеет "default", как и languageKey.)

В бэкэнде вы можете переопределить метки TCA и FlexForm с помощью Page TSConfig:

# TCA
TCEFORM.tt_content.layout.label = New label

# FlexForm field
TCEFORM.tt_content.pi_flexform.[ext_key].[sheet_key].[field_key].label = New label

# Example for Powermail
TCEFORM.tt_content.pi_flexform.powermail_pi1 {
    main {
        settings\.flexform\.main\.optin.label = Require opt-in for mails
    }
}

Обратите внимание на обратную косую черту в примере Powermail. Соответствующее поле называется settings.flexform.main.optin. Поскольку точки обычно являются «разделителями путей», их необходимо экранировать, чтобы это работало.

Помимо этого способа настройки, есть совершенно другой подход. Вы можете переопределить целые файлы перевода:

# Override XLF for default language
$GLOBALS['TYPO3_CONF_VARS']['SYS']['locallangXMLOverride']['path/to/originalTranslationFile.xlf'][]
    = 'path/to/otherTranslationFile.xlf';
# Override XLF for French language
$GLOBALS['TYPO3_CONF_VARS']['SYS']['locallangXMLOverride']['fr']
    ['path/to/originalTranslationFile.xlf'][] = 'other/path/to/fr.otherTranslationFile.xlf';

Дополнительную информацию по этой теме можно найти здесь .

person lorenz    schedule 13.11.2014

Идеально. Лоренц, большое спасибо за подробное объяснение. Теперь я это понимаю и «увижу картину шире» ...

Мне просто нужен Backend-Translation в этом проекте, например:

TCEFORM.tx_jobfair_domain_model_job {
   ## disable flexform/tca fields
   salary.disabled = 1
   discipline.disabled = 1
   education.disabled = 1


   # rename or translate
   job_title.label = Stelle
   employer.label = Arbeitgeber
   employer_description.label = Arbeitgeberbeschreibung

}

Но я также тестирую его для внешнего вида:

plugin.tx_jobfair._LOCAL_LANG.de {
    tx_jobfair_domain_model_job.contract_type = Vertragsart
}

Отлично работает! Большое спасибо!

person user2310852    schedule 13.11.2014