2015-07-25 2 views

ответ

2

Сначала вы редактируете файл setting.yaml пакета сайта (Если имя сайта является «примером», тогда пакет \ Sites \ TYPO3.ExampleDemoTypo3Org \ Configuration \ Settings.yaml).

TYPO3: 
    TYPO3CR: 
    contentDimensions: 
     'language': 
     label: 'TYPO3.ExampleDemoTypo3Org:Main:contentDimensions.language' 
     icon: 'icon-language' 
     default: 'de' 
     defaultPreset: 'de' 
     presets: 
      'all': ~ 
      'de': 
      label: 'German' 
      values: ['de', 'en', 'it'] 
      uriSegment: 'de' 
      'en': 
      label: 'English' 
      values: ['en', 'de', 'it'] 
      uriSegment: 'en' 
      'it': 
      label: 'Italiano' 
      values: ['it', 'fr','de'] 
      uriSegment: 'it' 

Вышеупомянутый код является обычным языком typo3 Neos. Содержимое в меню выбора языка появится на основе указанного выше селектора. Если вы хотите получить выбранный (использованный) идентификатор языка (locale), то вы можете получить его в жидком шаблоне, используя приведенный ниже код.

{node.context.targetDimensions.language} 

Если вы выберите немецкий язык, используя языковой селектор, приведенный выше код дает ответ «de». Мое скромное предложение, пожалуйста, избегайте значения языкового стандарта, такого как tabelle_EN и table_DE и т. Д. Этот идентификатор локали в основном используется для целей перевода на многоязычных сайтах.

+0

'{node.context.dimensions.language.0}' на самом деле «более правильно», поскольку значение целевого измерения (по одному для каждого измерения) предназначено только для редактирования/обновления. В 'dimension.language' у вас будет массив значений измерения (см. Settings.yaml за пресет). В более сложных сценариях вы можете использовать' \ TYPO3 \ TYPO3CR \ Domain \ Service \ ConfigurationContentDimensionPresetSource :: findPresetByDimensionValues', чтобы получить фактический заданный идентификатор из значений измерения. – Christopher

Смежные вопросы