Hummi CMS • Multilang • hreflang • JSON per język • lang.php

Wielojęzyczność,
która jest częścią routingu i modelu danych.

W wielu systemach tłumaczenia są warstwą doinstalowaną po wdrożeniu. W Hummi moduł multilang działa natywnie: na poziomie routingu, źródeł danych, tłumaczeń interfejsu i warstwy SEO.

Osobne URL-e per język, osobne pliki danych JSON, centralnie generowane canonical i hreflang, tłumaczenia UI przez `lang.php` oraz fallbacki do języka domyślnego tworzą model, który jest prosty do utrzymania i przewidywalny w rozwoju.

Zobacz model multilang Wróć do dokumentacji Hummi CMS
Routing Dedykowane URL-e typu /en/ /de/
Dane Osobne JSON per język
SEO Canonical, hreflang i x-default
Założenie modułu

Wielojęzyczność ma sens tylko wtedy, gdy obejmuje dane, adresy URL i warstwę SEO.

Samo tłumaczenie tekstów w interfejsie nie tworzy jeszcze systemu wielojęzycznego. Żeby wdrożenie było technicznie poprawne, każdy język musi mieć własny adres, poprawne oznaczenie hreflang, własny canonical i odseparowane źródło treści.

Hummi realizuje to natywnie. Gdy moduł multilang jest aktywny, język wpływa jednocześnie na routing, na wybór pliku danych, na tłumaczenia UI oraz na metadane SEO generowane w ``.

Architektura wielojęzyczności
Routing + źródła danych

Każdy język ma własną ścieżkę URL i własne źródło prawdy danych.

Hummi buduje adresy URL per język na poziomie routingu. Dla języka domyślnego adres pozostaje czysty (`/`, `/blog`, `/hummi-cms`), a dla języków dodatkowych system generuje prefiksy typu `/en/`, `/de/` zachowując pełną strukturę ścieżek.

Jednocześnie język wpływa na wybór pliku danych. Dla każdej wersji językowej istnieje osobne źródło prawdy w postaci dedykowanego pliku JSON, np. `dane.en.json`. Oznacza to pełną separację treści, backupów, importów i eksportów per język.

Front renderuje treść na podstawie aktualnej stałej językowej, więc wybór języka nie jest kosmetycznym przełącznikiem, lecz częścią modelu danych i całego procesu renderowania.

Routing /en/ /de/ dane.en.json Separate source of truth Language-aware render
Model multilang
URL
→ /         → język domyślny
→ /en/      → English
→ /de/      → Deutsch

ROUTING
→ wykrycie języka z adresu
→ ustawienie HUMMI_LANG
→ wybór właściwego pliku danych

DANE
→ dane.pl.json
→ dane.en.json
→ dane.de.json

RENDER
→ treść dynamiczna z pliku językowego
→ UI z lang.php
→ fallback do języka domyślnego
Tłumaczenia UI i statyczne treści
Warstwa i18n

Tłumaczenia systemowe są ładowane z natywnej tablicy językowej.

Statyczne treści interfejsu i elementów szablonu nie są tłumaczone ręcznie przez kopiowanie całych widoków. Hummi wykorzystuje prostą tablicę językową w pliku `lang.php`, z której frontend pobiera odpowiednią wersję tekstu zależnie od aktywnego języka.

Dzięki temu ten sam szablon może renderować różne warianty treści UI, np. hero, nagłówki sekcji czy komunikaty formularzy, bez duplikowania plików widoków i bez rozjeżdżania logiki między wersjami językowymi.

lang.php UI translations Single template Form messages Static content
Zakres i18n
  • treści statyczne w szablonie,
  • nagłówki i etykiety UI,
  • komunikaty formularzy,
  • teksty systemowe i mikrocopy.
Efekt
  • jeden widok dla wielu języków,
  • brak duplikacji szablonów,
  • spójność treści UI,
  • łatwiejsze utrzymanie i aktualizacja.
SEO międzynarodowe
Canonical + hreflang + locale

Wielojęzyczność bez poprawnego SEO jest tylko duplikacją treści pod innym adresem.

Hummi generuje centralnie canonical, hreflang oraz `x-default` dla wszystkich aktywnych wersji językowych. Dodatkowo warstwa Open Graph korzysta z prawidłowego `og:locale` i `og:locale:alternate`, co porządkuje komunikację zarówno dla wyszukiwarek, jak i dla social sharingu.

Oznacza to, że wersje językowe nie funkcjonują jako przypadkowe duplikaty. Każda ma własny adres, poprawne oznaczenie relacji między wariantami i spójny sygnał dla robotów indeksujących.

Canonical hreflang x-default og:locale International SEO
Generowane centralnie
  • canonical per język,
  • hreflang dla wszystkich wersji,
  • x-default,
  • locale i alternate locale dla Open Graph.
Efekt SEO
  • mniej ryzyka duplikacji,
  • czytelny sygnał dla Google,
  • spójność wersji językowych,
  • poprawna indeksacja wariantów.
Fallbacki i opcjonalność modułu

Fallback do języka domyślnego

Jeśli dana treść nie istnieje w aktywnym języku, frontend może automatycznie użyć wartości z języka domyślnego. Ogranicza to ryzyko pustych sekcji i błędów przy częściowo przetłumaczonym wdrożeniu.

Przełącznik języków w panelu

Po aktywacji modułu panel udostępnia przełącznik języków zgodny z konfiguracją. Administrator pracuje na właściwym źródle danych dla wybranego języka.

Osobne backupy i import/export

Ponieważ każdy język ma własny plik danych, backupy i operacje importu lub eksportu można wykonywać niezależnie dla każdej wersji językowej.

Moduł opcjonalny

Gdy multilang jest wyłączony, system działa w modelu jednokierunkowym z jednym źródłem prawdy. Adresy typu `/en/` czy `/de/` nie mają żadnego specjalnego znaczenia.

Bez duplikacji widoków

Jeden szablon może obsługiwać wszystkie języki, ponieważ treści UI są pobierane z tablic tłumaczeń, a treści dynamiczne z właściwego pliku danych językowych.

SEO-ready od początku

Wersje językowe nie wymagają ręcznego dopinania canonical i hreflang. Moduł multilang współpracuje z routingiem i warstwą head od razu po aktywacji.

Wniosek

Wielojęzyczność w Hummi jest częścią architektury, nie dodatkiem po wdrożeniu.

Routing, dane, tłumaczenia UI i SEO międzynarodowe działają jako jeden spójny moduł. Dzięki temu wdrożenie wielojęzyczne pozostaje czytelne, skalowalne i przewidywalne zarówno dla administratora, jak i dla wyszukiwarek.

Najważniejsza różnica

Hummi nie tłumaczy „widoku po widoku”. Hummi przełącza język na poziomie routingu i źródła danych, a warstwa prezentacji korzysta z tego mechanizmu w sposób natywny.

Powiązane materiały
Kontakt
Wdrożenie Hummi CMS

Jeśli wielojęzyczność ma być częścią systemu, a nie dodatkiem

Pokażę, jak moduł multilang działa w praktyce i jak wygląda zarządzanie treścią, SEO i routingiem dla wielu języków w jednym wdrożeniu.

Szybki kontakt

Opisz projekt

Wysyłając formularz, zgadzasz się na kontakt w sprawie zapytania.
Szczegóły znajdziesz w Polityce prywatności.