Skocz do zawartości

Pomocna odpowiedź

  • 2 miesiące później...

Mały dodatek: swojego bloga można bardzo łatwo prowadzić w dwóch językach (np. po polsku i angielsku) za pomocą i18n. Wystarczą zmiany w dwóch plikach (i ewentualnie nazwy już napisanych postów), proponuję poniższą strukturę:

content/blog/
├── secondpost
│   └── index.en.md
│   └── index.pl.md
├── firstpost
│   ├── image.jpg
│   └── index.en.md
│   └── index.pl.md

Zaczynamy od hugo.yaml:

languageCode: en-us
defaultContentLanguage: en
defaultContentLanguageInSubdir: false
disableDefaultLanguageRedirect: false

languages:
  pl:
    weight: 2
    languageName: Polski
    title: Nazwa blogu po polsku
  en:
    weight: 1
    languageName: English

Nazwy "English" i "Polski" są wykorzystywane w menu wyboru języka na stronie, o ile nasz motyw wspiera wiele języków. Dodatkowo nazwa bloga (tak jak i inne nazwy) mogą zostać przetłumaczone.

Kolejnym krokiem jest zmiana w configu CMSa (static/admin/config.yml):

i18n:
    structure: multiple_files
    locales: [en, pl]
    default_locale: en
slug:
    encoding: ascii
#    clean_accents: true # zapisze np. umlauty jako dwuznaki

...

collections:
  - name: 'blog'
    ...
    slug: '{{title | localize}}'
    path: '{{slug}}/index'
    i18n: true
    # do kazdego fielda trzeba dodac linijke "i18n: true" jezeli ma byc zmieniona tresc
    fields:
      - { label: 'Title', name: 'title', widget: 'string', i18n: true }
      - { label: 'Draft', name: 'draft', widget: 'boolean', i18n: true }
      - itd...

I to wszystko! Tak wygląda efekt dla Sveltii:

obraz.thumb.png.2899d6a251b852d3ce2a7e61660941a5.png

Dodatkowo powyższy config zapewni tłumaczenie linków (co można wyłączyć poprzez usunięcie " | localize" z configu CMSa).

  • Lubię! 1

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...