Localization ( การทำหลายภาษา )
<a name="introduction"></a> ## แนะนำ
คลาส Lang จะทำหน้าที่แปลภาษาในเบื้องต้นให้กับเมนูหรือป้ายกำหับต่างๆ ในเว็บของเรา
<a name="language-files"></a> ## ไฟล์ที่เก็บข้อมูลภาษา
ถูกเก็บไว้ที่โฟลเดอร์ app/lang โดยโครงสร้างจะเป็นแบบนี้
1 /app
2 /lang
3 /en
4 messages.php
5 /es
6 messages.php
ไฟล์ที่เก็บภาษาจะเก็บในรูปแบบอาเรย์:
ตัวอย่างของไฟล์ภาษา
1 <?php
2
3 return array(
4 'welcome' => 'Welcome to our application'
5 );
โดยค่าเริ่มต้นเเล้ว ค่าภาษาจะถูกกำหนดไว้ที่ app/config/app.php แต่ถ้าจะตั้งเราจะตั้งแบบไม่ให้คลุมไปทั้งเว็บก็ใช้เมทอด App::setLocale
ตัวอย่าง
1 App::setLocale('es');
<br /><br /><br /><br /> <a name="basic-usage"></a> ## การใช้งานเบื้องต้น
การดึงค่าจากไฟล์ภาษา
1 echo Lang::get('messages.welcome');
ฟังก์ชัน get ใช้ดึงค่าโดยมีพารามิเตอร์คือชื่อภาษาและแถวที่ต้องการดึง
การส่งพารามิเตอร์ไป
พารามิเตอร์ที่สองจะใช้รับค่าที่จะส่งมา
1 'welcome' => 'Welcome, :name',
ตัวอย่างการใช้งาน
1 echo Lang::get('messages.welcome', array('name' => 'Dayle'));
ตรวจว่าในไฟล์ภาษามีคอลัมน์นี้อยู่
1 if (Lang::has('messages.welcome'))
2 {
3 //
4 }
<a name="pluralization"></a> ## Pluralization
Pluralization คือโครงสร้างไวยากรณ์ของแต่ละภาษาที่มีความแตกต่างกัน แต่เราใช้เครื่องหมาย ในการสร้างตัวเลือกระหว่างเอกพจน์กับพหูพจน์:
1 'apples' => 'There is one apple|There are many apples',
เเล้วเราก็ใช้ฟังก์ชัน Lang::choice ในการเลือก
1 echo Lang::choice('messages.apples', 10);
เนื่องจากการแปลภาษาของ laravel สืบทอดมาจากของ Symfony เราจึงสามารถสร้างเงื่อนไขที่ซับซ้อนดังตัวอย่างได้
1 'apples' => '{0} There are none|[1,19] There are some|[20,Inf] There are many',