Ustawa o języku w e-commerce: jak skonfigurować wielojęzyczność sklepu internetowego według zasad Ukrainy
Pełny przewodnik po konfiguracji wielojęzycznego sklepu internetowego z uwzględnieniem wymagań ukraińskiej ustawy o języku. Analizujemy wymagania prawne, uczymy się tworzyć przyjazne URL dla każdej wersji językowej, konfigurować hreflang dla SEO, automatycznie określać język użytkownika i poprawnie tłumaczyć produkty, kategorie i filtry na platformie BooStore.
📄 Spis treści
- Ustawa Ukrainy o języku: co musi wiedzieć właściciel sklepu internetowego
- Porównanie wymagań językowych: Ukraina, Polska, UE
- hreflang i SEO: jak wyszukiwarki rozumieją wersje językowe
- Przyjazne URL dla każdej wersji językowej: prawidłowa struktura URL
- Automatyczne wykrywanie i przełączanie języka według przeglądarki i regionu
- Tłumaczenie produktów, kategorii i filtrów między językami
- Konfiguracja krok po kroku wielojęzyczności na BooStore
- BooStore vs WordPress/OpenCart: porównanie podejść
- Często zadawane pytania
Ustawa Ukrainy o języku: co musi wiedzieć właściciel sklepu internetowego
16 stycznia 2021 roku na Ukrainie weszły w życie przepisy Ustawy «O zapewnieniu funkcjonowania języka ukraińskiego jako państwowego», które bezpośrednio regulują sferę sklepów internetowych i handlu elektronicznego. Zgodnie z artykułem 30 Ustawy, językiem interfejsów i użytkowniczych zasobów internetowych towarów i usług, w tym sklepów internetowych, jest język państwowy — ukraiński.
Oznacza to, że właściciele sklepów internetowych są zobowiązani do udostępniania informacji w języku ukraińskim: opis produktów, charakterystyki, ceny, warunki dostawy i płatności, dane kontaktowe. Jednocześnie ustawa nie zabrania posiadania innych wersji językowych — rosyjskiej, angielskiej, polskiej. Główne wymaganie: wersja ukraińska musi być pełna i nie ustępować objętością informacji innym wersjom językowym.
Za naruszenie ustawy przewidziana jest odpowiedzialność: grzywna od 200 do 400 nieopodatkowanych minimów (od 3 400 do 6 800 UAH) dla osób urzędowych, a ponowne naruszenie — do 8 500 UAH. Dlatego prawidłowa konfiguracja wielojęzyczności to nie tylko kwestia wygody, ale wymóg prawny dla działania na rynku ukraińskim.
O tym, jak otworzyć sklep internetowy na Ukrainie z uwzględnieniem wszystkich wymogów prawnych, przeczytasz w artykule: Jak otworzyć sklep internetowy na Ukrainie: pełny poradnik 2026.
Porównanie wymagań językowych: Ukraina, Polska, UE
Regulacje językowe e-commerce w różnych krajach znacznie się różnią. Zrozumienie tych różnic jest ważne, jeśli Twój sklep działa na kilku rynkach. Rozważmy wymagania trzech kluczowych dla ukraińskiego przedsiębiorcy regionów.
| Parametr | Ukraina | Polska | Unia Europejska |
|---|---|---|---|
| Obowiązkowy język interfejsu | Ukraiński (państwowy) | Polski (prawa konsumenta) | Język kraju członkowskiego UE |
| Obecność innych języków | Dozwolone, ale wersja ukr. nie może być okrojona | Dozwolone, umowy po polsku obowiązkowe | Dowolnie, zalecany angielski |
| Podstawa prawna | Ustawa nr 2704-VIII art. 30 | Ustawa o prawach konsumenta | Dyrektywa 2011/83/UE |
| Grzywny za naruszenie | do 8 500 UAH | do 100 000 PLN | zależy od kraju |
| Wymagania dla URL | Zalecane /ua/, /ru/, /en/ | /pl/, /en/ | Zalecane /en/, /de/, /fr/ |
| hreflang obowiązkowy | Zalecany dla SEO | Zalecany dla SEO | Zalecany dla SEO |
| Automatyczne wykrywanie języka | Dozwolone, z możliwością wyboru | Dozwolone | Dozwolone |
Specyfika ukraińskiego ustawodawstwa — rygorystyczny wymóg języka państwowego jako podstawowego. W Polsce wystarczy przetłumaczyć na polski umowy i kluczowe informacje o prawach konsumenta. W UE wymagania różnią się w zależności od kraju, ale ogólna tendencja to obowiązkowe używanie języka urzędowego kraju członkowskiego dla informacji prawnie istotnych.
Więcej o specyfice ukraińskiego rynku e-commerce i wyborze platformy: Ukraińskie alternatywy Shopify: porównanie platform e-commerce.
hreflang i SEO: jak wyszukiwarki rozumieją wersje językowe
Gdy sklep internetowy ma kilka wersji językowych, wyszukiwarki muszą wiedzieć, którą wersję pokazać użytkownikowi w zależności od jego języka i regionu. Służy do tego atrybut hreflang — znacznik HTML, który wskazuje Google i innym wyszukiwarkom powiązania między stronami w różnych językach.
Prawidłowa implementacja hreflang obejmuje:
- Wzajemne linki — każda wersja językowa musi linkować do wszystkich innych wersji tej samej strony
- Atrybut rel="alternate" z kodem języka (np. hreflang="uk", hreflang="ru", hreflang="en")
- x-default — wersja domyślna dla języków nieobecnych na liście
- Unikalne URL — różne adresy dla różnych języków (nie fragmenty ani parametry)
Na platformie BooStore tagi hreflang są generowane automatycznie. W tym celu wystarczy w karcie produktu, strony lub artykułu w polu «Strona w innych językach / Produkt w innych językach» podać ten sam identyfikator (np. ID pierwszego utworzonego produktu). System sam doda poprawne tagi hreflang na wszystkich powiązanych stronach, w tym x-default dla głównego języka strony.
Przykład poprawnego oznaczenia hreflang dla trzech wersji językowych:
<link rel="alternate" hreflang="uk" href="https://site.com.ua/ua/product/kedy" />
<link rel="alternate" hreflang="ru" href="https://site.com.ua/ru/product/kedy" />
<link rel="alternate" hreflang="en" href="https://site.com.ua/en/product/kedy" />
<link rel="alternate" hreflang="x-default" href="https://site.com.ua/ua/product/kedy" />
Więcej o optymalizacji SEO sklepu internetowego: Jak poprawić SEO sklepu internetowego: pełny poradnik.
Przyjazne URL dla każdej wersji językowej: prawidłowa struktura URL
Dla skutecznego pozycjonowania wielojęzycznego sklepu internetowego krytycznie ważne jest używanie unikalnych URL dla każdej wersji językowej. Google zaleca trzy podejścia, a platforma BooStore obsługuje najbardziej poprawne — prefiks języka w URL.
Zalecana struktura URL:
/ua/category/tovar— wersja ukraińska/ru/category/tovar— wersja rosyjska/en/category/tovar— wersja angielska/pl/category/tovar— wersja polska
✅ Prefiks języka (zalecany)
/ua/product, /ru/product
Obsługiwany przez BooStore. Prosta konfiguracja, przejrzysta struktura, prawidłowo indeksowany przez wyszukiwarki.
❌ Subdomeny
ua.site.com, ru.site.com
Wymaga osobnych domen/subdomen. Trudniejszy w konfiguracji, waga linków rozdzielana między subdomeny.
❌ Parametry GET
/product?lang=ua
Niewskazany przez Google. Ryzyko duplikacji treści, problemy z indeksacją.
✅ Osobne domeny
site.com.ua, site.ru
Maksymalna izolacja SEO, ale wymaga zakupu i konfiguracji wielu domen.
Na BooStore prefiks języka jest dodawany automatycznie. Na przykład, jeśli tworzysz stronę lub produkt po ukraińsku, URL będzie /ua/..., po rosyjsku — /ru/.... Dla kategorii sklepu zaleca się używanie przyrostków językowych w nazwie kategorii, np.: category_ua, category_ru, category_en. Pozwala to platformie poprawnie określać język kategorii i unikać błędów przy imporcie produktów.
Automatyczne wykrywanie i przełączanie języka według przeglądarki i regionu
Nowoczesny wielojęzyczny sklep internetowy powinien automatycznie wykrywać preferowany język użytkownika i oferować odpowiednią wersję strony. Zwiększa to konwersję i poprawia doświadczenia użytkownika.
Mechanizmy wykrywania języka:
- Nagłówek HTTP Accept-Language — przeglądarka użytkownika przekazuje informacje o preferowanych językach. Serwer może przekierować na odpowiednią wersję.
- Geolokalizacja IP — określenie kraju na podstawie adresu IP. Na przykład użytkownik z Polski automatycznie widzi wersję polską.
- Cookie/sesja — po pierwszym wyborze języka zapamiętujemy preferencje użytkownika.
- Zapis w localStorage — język jest przechowywany w przeglądarce i stosowany przy kolejnych wizytach.
Na BooStore automatyczne wykrywanie i przełączanie języka realizowane jest przez wbudowany mechanizm menu językowego. Możesz umieścić na stronie kod przełącznika języków, który używa hotengine-script-language.js do podstawiania prawidłowych URL z tagów link[rel="alternate"]. Obsługiwane są wszystkie główne języki: ukraiński, rosyjski, angielski, polski, niemiecki, francuski i inne.
Przykład kodu przełącznika języków dla BooStore:
<nav class="hotengine-shop-select-language-box">
<span class="hotengine-shop-select-language" data-lang="ua"></span>
<span class="hotengine-shop-select-language-values">
<li><a class="hotengine-shop-select-language-val" data-lang="ua" href="/ua/"></a></li>
<li><a class="hotengine-shop-select-language-val" data-lang="ru" href="/ru/"></a></li>
<li><a class="hotengine-shop-select-language-val" data-lang="en" href="/en/"></a></li>
<li><a class="hotengine-shop-select-language-val" data-lang="pl" href="/pl/"></a></li>
</span>
</nav>
Style CSS do wyświetlania flag przez pseudoelementy i skrypt do podstawiania ścieżek podłącza się raz i działają dla wszystkich języków automatycznie.
Tłumaczenie produktów, kategorii i filtrów między językami
Najbardziej czasochłonny etap tworzenia wielojęzycznego sklepu — tłumaczenie treści. Na platformie BooStore przewidziano kilka podejść przyspieszających ten proces.
Tłumaczenie produktów przez import/eksport CSV/XLSX
Najszybszy sposób dla sklepów z dużym asortymentem:
- Eksportuj produkty w sekcji «Sklep» — «Eksport produktów» (wyeksportuj wszystkie pola, w tym kategorie).
- Przetłumacz plik przez Google Translate dla dokumentów (zapisz w XLSX).
- Dodaj przyrostki językowe do kategorii (np.
dress_ua→dress_en). - Skopiuj ID produktów do kolumny «Produkty w innych językach», usuń ID z kolumny ID, zmień «Kod produktu» (dodaj sufiks
_en). - Zaimportuj plik — nowe produkty zostaną utworzone w innym języku.
Tłumaczenie kategorii
Kategorie również można eksportować, tłumaczyć i importować z powrotem. Dla każdej kategorii określa się język. Zaleca się używanie unikalnych nazw kategorii z przyrostkami językowymi: category_ua, category_ru, category_en. Eliminuje to błędy przy późniejszym imporcie produktów.
Tłumaczenie filtra wyszukiwania
Filtry (cechy produktów) można tłumaczyć na dwa sposoby:
- Przez narzędzie «Tłumaczenie wartości cech» — w panelu administracyjnym, w sekcji zarządzania cechami.
- Przez JavaScript — umieszczając skrypt na stronach z filtrem, możesz zastąpić tekst wartości na wybrany język. Jest to wygodne, jeśli używasz jednego filtra dla wszystkich wersji językowych.
Synchronizacja cen i stanów magazynowych
Ważna cecha BooStore: jeśli produkty mają powiązanie przez pole «Produkt w innych językach», to przy zmianie ceny, dostępności, statusu «nowość» lub «hit sprzedaży» w jednym produkcie — wszystkie powiązane produkty w innych językach aktualizują się automatycznie. Eliminuje to rozbieżności danych między wersjami językowymi.
Konfiguracja krok po kroku wielojęzyczności na BooStore
W tej sekcji — konkretny plan krok po kroku konfiguracji wielojęzycznego sklepu internetowego na platformie BooStore od początku do końca.
Określ główny język strony
W panelu administracyjnym przejdź do «Ustawienia» → «Języki i strona startowa». Ustaw główny język — ukraiński (uk). Zapewni to poprawną pracę hreflang z atrybutem x-default, a także określi język dla wszystkich elementów domyślnie. Więcej w dokumentacji.
Utwórz kategorie z przyrostkami językowymi
W sekcji «Sklep» — «Kategorie sklepu» utwórz kategorie dla każdego języka, używając przyrostków: odezhda_ua, odezhda_ru, odezhda_en. Dla każdej kategorii określ odpowiedni język. W polu «Kategoria w innych językach» podaj ID powiązanych kategorii. To automatycznie połączy kategorie w różnych językach.
Skonfiguruj bloki językowe (nagłówek, menu, stopka)
Utwórz «Bloki/Menu» dla każdego języka. Np.: «Nagłówek-UA», «Nagłówek-RU», «Nagłówek-EN». Dla każdego bloku określ język, w którym ma się wyświetlać. Jeśli element jest taki sam dla wszystkich języków (np. kod analityki), określ język «All (Wszystkie)».
Dodaj przełącznik języków
W odpowiednie miejsce strony (nagłówek lub stopkę) dodaj kod rozwijanej listy języków. Podłącz hotengine-script-language.js do automatycznego podstawiania URL z tagów hreflang. Skonfiguruj style CSS do wyświetlania nazw języków: UA, RU, EN, PL.
Utwórz strony w różnych językach
Utwórz stronę po ukraińsku, następnie taką samą stronę po rosyjsku i angielsku. W polu «Strona w innych językach» podaj tę samą wartość (ID pierwszej strony). Platforma automatycznie wygeneruje tagi hreflang na wszystkich powiązanych stronach. Strona główna będzie odpowiadać głównemu językowi strony.
Zaimportuj produkty w innych językach
Eksportuj produkty, przetłumacz przez Google Translate, skopiuj ID do «Produkty w innych językach», zamień kody produktów i zaimportuj. Sprawdź, czy dla wszystkich produktów głównego języka wypełniono pole «Produkt w innych językach» — zapewni to poprawne linkowanie i hreflang.
Sprawdź hreflang i indeksację
Otwórz stronę w każdym języku i sprawdź kod źródłowy — tagi link rel="alternate" z hreflang powinny być obecne dla wszystkich wersji. Użyj Google Search Console → «Sprawdź URL» dla każdej wersji językowej. Upewnij się, że Google widzi i indeksuje wszystkie wersje.
Skonfiguruj XML-feedy dla każdego języka
Jeśli używasz Google Merchant Center lub Facebook Catalog, utwórz osobne feedy dla każdej wersji językowej. BooStore generuje XML-wyciągi automatycznie, użyj odpowiednich URL z prefiksem językowym dla każdego feeda.
Więcej o danych strukturalnych i mikrodanych dla sklepu internetowego: Poradnik Schema.org dla produktów e-commerce.
BooStore vs WordPress/OpenCart: porównanie podejść do wielojęzyczności
Na rynku istnieje kilka popularnych rozwiązań do tworzenia wielojęzycznego sklepu internetowego. Porównajmy podejście BooStore (platforma SaaS) z klasycznymi CMS — WordPress + WooCommerce i OpenCart.
| Parametr | BooStore | WordPress + WooCommerce | OpenCart |
|---|---|---|---|
| Typ platformy | SaaS (wszystko w cenie) | CMS + wtyczki | CMS + rozszerzenia |
| Wielojęzyczność z pudełka | Tak | Wymaga wtyczki (WPML, Polylang) | Wymaga rozszerzenia |
| Trudność konfiguracji | Niska — edytor wizualny | Wysoka — wtyczki, konflikty | Średnia — mody językowe |
| hreflang automatycznie | Tak | Tylko w płatnych wtyczkach | Tylko w rozszerzeniach |
| Przyjazne URL z prefiksem języka | Tak | Przez wtyczkę | Przez rozszerzenie |
| Tłumaczenie produktów | Przez import CSV/XLSX | Ręcznie lub wtyczką | Przez CSV lub moduł |
| Tłumaczenie filtrów | JS-tłumaczenie lub narzędzie | Trudne, zależy od wtyczki | Trudne |
| Synchronizacja cen | Automatycznie | Ręcznie | Ręcznie |
| Aktualizacje i bezpieczeństwo | Automatycznie (SaaS) | Ręcznie, ryzyko zgodności | Ręcznie |
| Koszt wielojęzyczności | Wliczone w taryfę | $100–300/rok za WPML | Od $30 za rozszerzenie |
❓ Często zadawane pytania o wielojęzyczność sklepu internetowego
Odpowiedzi na pytania najczęściej pojawiające się przy konfiguracji wielojęzycznego sklepu internetowego z uwzględnieniem ustawy Ukrainy o języku.
Czy na BooStore można dodać więcej niż trzy języki?
Tak, platforma obsługuje wiele języków: ukraiński, rosyjski, angielski, polski, niemiecki, francuski, hiszpański, włoski, kazachski, białoruski, rumuński, turecki, słowacki, duński, chiński, hindi, arabski, portugalski, bengalski i inne. Dla każdego języka tworzone są osobne strony, produkty, kategorie i bloki.
Jak sprawdzić, czy hreflang są poprawnie skonfigurowane?
Użyj narzędzi Google: «Sprawdź URL» w Google Search Console pokazuje, jakie tagi hreflang zostały wykryte. Można też użyć rozszerzenia Chrome «Hreflang Tag Checker» lub serwisu Merkle Hreflang Tester. Otwórz stronę, sprawdź kod źródłowy — powinny być obecne tagi <link rel="alternate" hreflang="..." href="..." /> dla każdej wersji językowej.
Czy trzeba dodatkowo płacić za wielojęzyczność na BooStore?
Nie, funkcja wielojęzyczności jest wliczona we wszystkie taryfy BooStore. Możesz utworzyć nieograniczoną liczbę wersji językowych bez dodatkowych opłat. Jedyne koszty to czas na tłumaczenie treści. W przeciwieństwie do WordPress, gdzie WPML kosztuje od $100/rok, na BooStore wielojęzyczność jest dostępna od razu.
Co zrobić, gdy brakuje ukraińskiej wersji produktu, a rosyjska jest?
Z punktu widzenia ustawy o języku jest to naruszenie — wersja ukraińska musi być pełna. Zaleca się najpierw utworzyć ukraińskie wersje wszystkich produktów (przynajmniej z podstawowym opisem i cechami), a następnie dodawać inne języki. Jeśli produkt jest tymczasowo niedostępny po ukraińsku, lepiej ukryć go w innych językach lub użyć automatycznego tłumaczenia jako rozwiązania tymczasowego.
Jak przetłumaczyć istniejący sklep na BooStore na inny język?
Użyj masowego eksportu/importu przez CSV/XLSX. Eksportuj produkty i kategorie, przetłumacz przez Google Translate dla dokumentów, zamień kody produktów (dodając sufiks języka), skopiuj ID produktów do pola «Produkty w innych językach» i zaimportuj. Dla stron utwórz nowe wersje ręcznie, podając ID oryginalnej strony w polu «Strona w innych językach».
Czy wielojęzyczność wpływa na szybkość ładowania strony?
Na BooStore wielojęzyczność nie wpływa na szybkość ładowania, ponieważ ładowana jest tylko treść bieżącego języka. Filtry wyszukiwania i bloki skonfigurowane dla wszystkich języków działają bez utraty wydajności. To przewaga nad wtyczkami WPML, które mogą spowalniać stronę przez dodatkowe zapytania SQL. BooStore używa buforowania dla wszystkich wersji językowych.