Grav - Multi Bahasa

Multi-Bahasa didefinisikan sebagai penggunaan berbagai bahasa di situs web Anda. Kami akan mempelajari prosedur berbeda yang akan membantu Anda menggunakan multi-bahasa di situs Grav Anda.

Multi - Dasar Bahasa

Pada dasarnya Grav membutuhkan file .md untuk representasi halaman manapun. Ketika Anda mengaktifkan dukungan multi-bahasa, itu akan mencari file sepertidefault.en.md atau default.fr.md..

Konfigurasi Bahasa

Anda harus terlebih dahulu mengatur beberapa konfigurasi bahasa dasar di user/config/system.yamlmengajukan. mengajukan.

Language:
   Supported:
      - en
      - Fr

Dengan melakukan ini, Anda telah mengaktifkan dukungan multibahasa di Grav. Pada kode di atas,en berarti bahasa Inggris dan frberarti bahasa Prancis. Artinya, situs Anda akan mendukung dua bahasa ini. Di sini bahasa default adalah en (Inggris) . Jika Anda menulis Fr (Prancis) terlebih dahulu, maka itu menjadi bahasa default Anda.

Halaman Banyak Bahasa

Jika bahasa default Anda disetel sebagai English, maka Grav akan mencari default.en.mdmengajukan. Jika file tersebut tidak ditemukan, maka Grav mencari bahasa lain yang telah Anda atur. Jika kedua bahasa tidak ditemukan, maka akan mencaridefault.md mengajukan.

Example

default.en.md file

---
title: Home
---

# Grav is Running!
## You have installed **Grav** successfully

Kode di atas akan menghasilkan output berikut -

Untuk bahasa Prancis sebagai bahasa default, file default.fr.md akan menjadi -

---
titre: Accueil
---

# Grav est en marche!
## Vous avez installé ** ** Grav succès

Kode di atas akan menghasilkan output berikut -

Bahasa Aktif melalui URL

Jika Anda ingin memperbarui URL ke situs web Anda dengan kode bahasa, ikuti langkah-langkah berikut -

Example

Jika Anda ingin situs Anda dalam bahasa Inggris, ketikkan baris di bawah ini di browser Anda -

http://www.mysite.com/en

Jika Anda ingin situs Anda dalam bahasa Prancis, ketikkan baris di bawah ini di browser Anda -

http://www.mysite.com/fr

Bahasa Aktif melalui Browser

Grav memiliki kemampuan untuk mendapatkan file http_accept_languagemenghargai dan membandingkannya untuk menyajikan bahasa yang didukung. Jika Anda ingin ini berfungsi, aktifkan fileuser/system.yaml file di bagian bahasa sebagai -

language :
   http_accept_language : true

Beranda Berbasis Bahasa

Untuk memiliki beranda berbasis bahasa, Anda harus mengaktifkan kode berikut di site.yaml file -

home:
   aliases:
      en: /homepage
      fr: /page-d-accueil

Dengan cara ini, Grav akan mengetahui bahasa mana yang digunakan dari bahasa aktif.

Kode berikut akan memaksa Grav untuk mengarahkan Anda ke rute bahasa default Anda. Dan opsi include_route memaksa untuk menambahkan kode bahasa di url Anda sepertihttp://www.mysite.com/en/home

languages:
   home_redirect:
      include_lang: true
      include_route: false

Templat Ranting Berbasis Bahasa

Jika file Anda adalah default.en.md , maka Grav akan mencari file ranting sebagai default.html.twig . Jika Anda membutuhkan file ranting khusus bahasa, maka Anda harus mengunggahnya di tingkat akar folder bahasa. Jika tema Anda saat ini adalahtemplates/default.html.twig Anda harus membuat file templates/en/ folder dan tempatkan folder khusus bahasa Inggris Anda di dalamnya sebagai: templates/en/default.html.twig

Pengalih Bahasa

Plugin pengalih bahasa tersedia di Grav Package Manager (GPM) .

Terjemahan melalui Twig

Gunakan filter ranting dan fungsi t () . Keduanya berfungsi serupa. Jika Anda memiliki file ranting lain, maka ini memungkinkan Anda untuk menerjemahkan dari sebuah array.

Terjemahan Bahasa Tema dan Plugin

Sediakan terjemahan Anda dalam plugin dan tema dengan membuat languages.yaml file di root tema atau plugin Anda (/user/plugins/error/languages.yaml) dan harus berisi semua bahasa yang didukung.

Penimpaan Terjemahan

Jika Anda ingin mengganti terjemahan, maka Anda harus meletakkan pasangan nilai di file bahasa di folder pengguna / bahasa / .

Maju

Environment – Based Language Handling

Dimungkinkan untuk mengarahkan pengguna ke versi yang benar dari situs Anda sesuai dengan URL. Jika url situs Anda adalahhttp://english.yoursite.com, alias untuk standar Anda http://www.yoursite.com, lalu Anda dapat membuat konfigurasi sebagai /user/english.yoursite.com/config/system.yaml..

languages:
   supported:
      - fr
      - en

Ini menggunakan urutan bahasa terbalik. Pada kode di atas, fr adalah bahasa default. Jika Anda mengubah urutan dengan membiarkan en di atas dan fr di bawah, maka en menjadi bahasa default.

Rute Alias ​​Bahasa

Sangat sulit untuk beralih di antara versi bahasa yang berbeda pada halaman yang sama, Anda dapat menggunakan Page.rawRoute()metode pada objek halaman Anda. Itu mendapat rute mentah yang sama untuk terjemahan bahasa yang berbeda dari satu halaman. Letakkan kode bahasa di depan untuk mendapatkan rute yang tepat.

Jika Anda berada di halaman dalam bahasa Prancis dengan rute kustom -

/ma-page-francaise-personnalisee

Halaman bahasa Inggris memiliki rute khusus -

/my-custom-french-page

Anda mendapatkan halaman mentah dari halaman Prancis dan itu mungkin -

/blog/custom/my-page

Kemudian tambahkan saja bahasa yang Anda inginkan yang akan menjadi URL baru Anda.

/en/blog/custom/my-page

Dukungan Terjemahan

Grav menyediakan mekanisme sederhana untuk menyediakan terjemahan di Twig melalui PHP untuk digunakan dalam tema dan plugin. Ini diaktifkan secara default dan menggunakanenbahasa jika tidak ada bahasa tertentu yang ditentukan. Untuk mengaktifkan atau menonaktifkan, buka file system.yaml dan lakukan perubahan.

languages:
   translations: true

Anda dapat memberikan terjemahan dengan berbagai cara dan tempat yang berbeda. Tempat pertama adalah folder sistem / bahasa. File harus dibuat dalamen.yaml, fr.yaml, format dll. Setiap file yaml harus terdiri dari larik atau larik pasangan kunci yang bertingkat.

SITE_NAME: My Blog Site
HEADER:
   MAIN_TEXT: Welcome to my new blog site
   SUB_TEXT: Check back daily for the latest news

Session Based Active Language

Anda dapat mengaktifkan penyimpanan berbasis sesi dari bahasa aktif. Untuk mengaktifkan Anda harus memilikisession : enables : true di system.yaml dan aktifkan pengaturan bahasa.

languages:
   session_store_active: true

Language Switcher

Instal plugin pengalih bahasa dari GPM.

Setup with language specific domains

Memiliki konfigurasi penanganan bahasa berbasis lingkungan untuk menetapkan bahasa default. Tambahkan opsi ini ke system.yaml Anda; itu harus disetel ke true.

pages.redirect_default_route: true

Tambahkan yang berikut ini ke .htaccess file dan pilih siput bahasa dan nama domain sesuai dengan kebutuhan Anda.

# http://www.cheat-sheets.org/saved-copy/mod_rewrite_cheat_sheet.pdf
# http://www.workingwith.me.uk/articles/scripting/mod_rewrite

# handle top level e.g. http://Grav-site.com/de
RewriteRule ^en/?$ "http://Grav-site.com" [R = 301, L]
RewriteRule ^de/?$ "http://Grav-site.de" [R = 301, L]

# handle sub pages, exclude admin path
RewriteCond %{REQUEST_URI} !(admin) [NC]
RewriteRule ^en/(.*)$ "http://Grav-site.com/$1" [R = 301, L]
RewriteCond %{REQUEST_URI} !(admin) [NC]
RewriteRule ^de/(.*)$ "http://Grav-site.de/$1" [R = 301, L]