Craft CMS: strony wielojęzyczne

26 lutego 2019

hostowanie wielu stron w jednej instalacji

Craft CMS umożliwia hostowanie wielu stron w jednej instalacji. Dzięki temu rozwiązaniu istnieje możliwość zdefiniowania wielu witryn w różnych domenach, używając różnych zestawów szablonów, oraz osobnych treści wpisów. Powyższe rozwiązanie wykorzystywane jest np. w celu tworzenia stron wielojęzycznych.

Treści statyczne i dynamiczne

Podstawowy podział treści na stronie, to treści statyczne - których zmiana nie jest możliwa bez ingerencji w kod (zazwyczaj jest to tekst na buttonach i podobnych elementach, wpisany bezpośrednio w kod HTML), oraz treści dynamiczne, które wpisywane są w odpowiednich polach w Craft'cie.

Treści statyczne

  • W pierwszym kroku należy użyć filtra translacji dla wszystkich statycznych treści w strukturze HTML.
{{ ‘’ |t }}

Co w praktyce wygląda następująco

<a href="/contact">{{ 'Contact us'|t }}</a>
  • Następnie wymagane jest utworzenie folderów i plików translacji w strukturze plików strony.

W folderze projektu tworzymy folder translations, a w nim podfoldery dla każdego języka, na który chcemy przetłumaczyć naszą stronę. W podfolderze każdego języka tworzymy plik site.php

Przykładowa struktura plików:

moj_projekt/
├── config/
├── ...
└── translations/
 └── fr/
 └── site.php
  • W pliku site.php umieszczamy tablicę, która ma na celu powiązanie treści oryginalnej z jej tłumaczeniem.

Treści dynamiczne

Aby przetłumaczyć treści dynamiczne, należy zalogować się do panelu administratora Crafta, a następnie wykonać kolejne kroki.

1. Definiowanie stron i języków

W ustawieniach strony, w zakładce witryny tworzymy nową witrynę, uzupełniając kolejne pola.

  • Group - wybierz grupę do której należeć będzie strona (może pozostać domyślne)
  • Name - nazwa strony (np. Craft-en)
  • Handle - tworzony automatycznie na podstawie nazwy
  • Language - wybierz język i jego ID
  • Is Primary Site? - zaznacz, jeśli ma to być strona domyślna
  • Base URL - wybierz bazowy adres URL tworzonej strony

2. Zaktualizowanie sekcji

W ustawieniach strony, w zakładce sekcje, należy dla każdej z sekcji włączyć obsługę strony danego języka, oraz uzupełnić pola Szablon dla sekcji typu Channel i Structure, a także URL dla wszystkich sekcji.

3. Zaktualizuj pola

W ustawieniach strony, w zakładce pola, należy dla każdego pola, które chcemy poddać tłumaczeniu, wybrać metodę tłumaczenia.

4. Wprowadzanie tekstu

We wpisach utworzona została możliwość wyboru wersji strony. Wybierając stworzoną poprzednio wersję językową, jesteśmy w stanie redagować na niej wpisy w wybranym języku i publikować je na stronach powstałych pod adresami zdefiniowanymi w punkcie drugim.