+CMS COntent Management Homepage

/ Indeks dokumentacji / Wdrożenie / Szabon strony / Plik XML / Sekcja template / Rozszerzanie strony o nowe szablony językowe

Rozszerzanie strony o nowe szablony językowe

W przypadku, gdy konieczne jest dodanie kolejnego języka można skorzystać z możliwości rozbudowy strony przez dodanie nowego szablonu. W wersji systemu wcześniejszej niż 2.1.0 możliwa była jedynie rozbudowa głównego szablonu o nowe label’e językowe. Wymagało to zmian w szablonie z którego korzystał już system i dodanie do niego obsługi wielu języków. Jeżeli szablon nowej wersji językowej znacząco różnił się od obecnie wykorzystywanego szablonu trzeba było robić bardzo dużo zmian w pliku XHTML. Od wersji 2.1.0 nie ma już takiej konieczności. Można przygotować całkowicie nowy szablon przeznaczony dla nowej wersji językowej i podłączyć go do pliku XML.

Przykład:

Dotychczas szablon XHTML podłączany był w ten sposób. W pliku XML była sekcja <template…, w której w atrybucie src podawano ścieżkę dostępu do szablonu.

<template src="example/xhtml/example.xhtml">
   <label name="content">
      <![CDATA[ <cms:Html id="Content"></cms:Html> ]]>
   </label>
   <label name="HomeLabel" lang=”pl-pl”>Strona główna</label>
   <label name="HomeLabel" lang="uk-en">Home</label>
</template>

Jeden szablon był wykorzystywany do wszystkich wersji językowych. Jest to dobre rozwiązanie w przypadku,  gdy szablony nie różnią się znacznie pomiędzy wersjami językowymi.

Gdy różnice są duże lepiej skorzystać z nowych możliwości systemu.

Wystarczy w pliku XML dopisać nową sekcję <template… wraz z atrybutem src i dodać dodatkowo atrybut lang.

Przykład:

<template src="example/xhtml/example.xhtml">
   <label name="content">
      <![CDATA[ <cms:Html id="Content"></cms:Html> ]]>
   </label>
   <label name="HomeLabel" lang=”pl-pl”>Strona główna</label>
</template>

<template src="example/xhtml/example.xhtml" lang=”en-uk”>
   <label name="content">
      <![CDATA[ <cms:Html id="Content"></cms:Html> ]]>
   </label>
   <label name="HomeLabel" lang="uk-en">Home</label>
</template>

Jak widać kolejna sekcja <template… ma atrybut lang, który spowoduje, że będzie ona wybrana gdy tworzona strona będzie w wersji językowej angielskiej (en-uk). Definicja label’i może być różna od definicji użytej w pierwszej sekcji <template…

Należy zwrócić uwagę, że pierwsza sekcja nie ma atrybutu lang. Oznacza to, że będzie ona użyta niezależnie od wybranego języka, np. jeżeli strona ma być w języku polskim, angielskim i niemieckim to pierwszy szablon będzie użyty gdy wybierzemy język polski lub niemiecki, a drugi gdy wybierzemy język angielski. Wynika z tego, że dodanie atrybutu lang powoduje że system skorzysta z tego szablonu tylko i wyłącznie wtedy gdy język zdefiniowany w lang będzie taki sam jak wersja językowa strony.

Inny przykład:

<template src="example/xhtml/example.xhtml" lang=”pl-pl”>
   <label name="content">
      <![CDATA[ <cms:Html id="Content"></cms:Html> ]]>
   </label>
   <label name="HomeLabel" lang=”pl-pl”>Strona główna</label>
</template>

<template src="example/xhtml/example.xhtml" lang=”en-uk”>
   <label name="content">
      <![CDATA[ <cms:Html id="Content"></cms:Html> ]]>
   </label>
   <label name="HomeLabel" lang="uk-en">Home</label>
</template>

Zarówno pierwszy jak i drugi szablon mają zdefiniowany język (patrz atrybut lang). Oznacza to, że gdy będziemy tworzyć wersję niemiecką strony wyskoczy błąd mówiący o tym, że nie ma przypisanego szablonu do wersji niemieckiej.

Zobacz więcej...

Metryka dokumentu

Tytuł: Indeks dokumantacji
Opis: Spis stron dokumentacji
Źródło: +CMS Content Management
Prawa autorskie: +CMS Content Management Platform
Autor: root Zmodyfikowany przez: root
Data utworzenia: 2008-09-08 13:50:34 Data modyfikacji: 2009-01-27 22:43:46
Data publikacji: 2008-09-08 13:52:20
(c) +CMS Content Management Platform