Sugester V2

Strony wielojęzyczne w CMS

Aktualizacja: Wyświetleń: 5

Jak tworzyć strony w wielu językach z przełącznikiem i poprawnymi znacznikami SEO.

Struktura

Każda wersja językowa to osobna strona z własnymi polami:

Site: MojaFirma-marketing
├── Page: main (path: "")        → mojafirma.pl/
├── Page: main-en (path: "en")   → mojafirma.pl/en
├── Page: Dashboard (path: "Dashboard")  → mojafirma.pl/dashboard
└── Page: Dashboard-en (path: "Dashboard-en") → mojafirma.pl/dashboard-en

Pola wymagane dla każdej strony

Strona PL:

{
  "lang": "pl",
  "current_lang": "pl",
  "page_path_pl": "/dashboard",
  "page_path_en": "/dashboard-en",
  "hreflang_pl": "https://mojafirma.pl/dashboard",
  "hreflang_en": "https://mojafirma.pl/dashboard-en",
  "canonical_url": "https://mojafirma.pl/dashboard"
}

Strona EN:

{
  "lang": "en",
  "current_lang": "en",
  "page_path_pl": "/dashboard",
  "page_path_en": "/dashboard-en",
  "hreflang_pl": "https://mojafirma.pl/dashboard",
  "hreflang_en": "https://mojafirma.pl/dashboard-en",
  "canonical_url": "https://mojafirma.pl/dashboard-en"
}

Przełącznik języka w layoucie

Prosty (linki):

<a href="{{ page_path_pl }}" 
   class="{% if current_lang == 'pl' %}active{% endif %}">PL</a>
<a href="{{ page_path_en }}" 
   class="{% if current_lang == 'en' %}active{% endif %}">EN</a>
<div class="lang-dropdown">
  <button>{{ current_lang | upcase }}</button>
  <div class="lang-menu">
    <a href="{{ page_path_pl }}">PL - Polski</a>
    <a href="{{ page_path_en }}">EN - English</a>
  </div>
</div>

Linki do innych stron muszą uwzględniać aktualny język:

<a href="https://mojafirma.pl{% if current_lang == 'en' %}/en{% endif %}">
  MojaFirma
</a>

<a href="https://mojafirma.pl{% if current_lang == 'en' %}/dashboard-en{% else %}/dashboard{% endif %}">
  Dashboard
</a>

Znaczniki hreflang

Informują Google o wersjach językowych:

<link rel="alternate" hreflang="pl" href="{{ hreflang_pl }}">
<link rel="alternate" hreflang="en" href="{{ hreflang_en }}">
<link rel="alternate" hreflang="x-default" href="{{ hreflang_pl }}">

x-default wskazuje domyślną wersję (zazwyczaj główny język).

Treści wielojęzyczne

Dla treści w paragrafach masz dwie opcje:

Opcja 1: Osobne paragrafy

  • Hero PL (priorytet 100) przypisany do strony PL
  • Hero EN (priorytet 100) przypisany do strony EN

Opcja 2: Zmienne w jednym paragrafie

{% if lang == 'pl' %}
  <h1>Witaj w MojaFirma</h1>
{% else %}
  <h1>Welcome to MojaFirma</h1>
{% endif %}

Zalecana: Opcja 1 - łatwiejsza w utrzymaniu.

API - tworzenie stron

# Strona PL
curl -X POST "https://domena.com/cms/pages.json?api_token=TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "page": {
      "name": "Dashboard PL",
      "path": "Dashboard",
      "site_id": 1018,
      "layout_id": 1018,
      "fields": {
        "lang": "pl",
        "current_lang": "pl",
        "page_path_pl": "/dashboard",
        "page_path_en": "/dashboard-en"
      }
    }
  }'

Checklist

  • Każda wersja językowa ma osobną stronę
  • lang i current_lang ustawione
  • page_path_pl i page_path_en na obu stronach
  • hreflang znaczniki w layoucie
  • canonical_url unikalny dla każdej strony
  • Przełącznik języka działa poprawnie

Czy ten wpis był pomocny?

Customer Reviews

Brak komentarzy

Dodaj komentarz