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]