Kode saya di laravel untuk menangani banyak bahasa adalah:
$languages = array('it-IT','en-GB','fr-FR');
$lingua = Request::segment(1);
if(in_array($lingua, $languages)){
\App::setLocale($lingua);
}else{
$lingua = 'it-IT';
}
Route::group(array('prefix' => $lingua), function()
{
Route::get('/', array('as' => 'home', 'uses' => 'ItemController@menu'));
Route::get('/{idcampo}','ItemController@show');
});
Bagaimana bisa saya:
1) Jadikan halaman selalu dimulai dengan itu-IT sebagai default. (saya memerlukannya karena saya menggunakan $lingua untuk mengambil dari database) jadi saya tidak dapat memiliki null itu. Haruskah saya menggunakan pengalihan::ke/ke/it-IT?
2) ubah url dan bahasa (aplikasi: lokal) dengan cepat dengan tautan di bagian atas setiap halaman. tanpa kembali ke rumah.
3) untuk menautkan halaman saya belajar menggunakan: URL::route('home')
tetapi bagaimana melakukannya ketika tautan berubah dengan masuknya database (misalnya tautan saya adalah {{ URL::to($lingua. '/'. $campo[1].'/') }}
) saya perlu menggunakan URL::action('ItemController@show', ($lingua. '/'. $campo[1].'/'))
Sunting:
Oke di bagian atas halaman saya ada link untuk mengubah bahasa dengan cepat.
<a href="/id{{URL::action('LanguageController@select', 'it-IT')}}"> Italian </a> //
<a href="/id{{URL::action('LanguageController@select', 'en-GB')}}"> English </a> //
<a href="/id{{URL::action('LanguageController@select', 'fr-FR')}}"> French </a>
Saya membuat pengontrol bernama LanguageController
<?php
class LanguageController extends BaseController {
public function select($lingua)
{
// Store the current language in the session
Session::put('lingua', $lingua);
return Redirect::back(); // redirect to the same page, nothing changes, just the language
}
}
Saya membuat rute:
Route::get('lingua/{lingua}', 'LanguageController@select');
Route::get('/', array('as' => 'home', 'uses' => 'ItemController@menu'));
Route::get('/mondo/','ItemController@mondo');
Route::get('/{idcampo}','ItemController@show');
Saya memiliki ItemController@menu saya
public function menu()
{ $linguadefault='it-IT';
$lingua = Session::get('lingua',$linguadefault);
$data = DB::table('campo')->lists('id');
return View::make('index')->with('campo',$data)->with('lingua',$lingua);
}
1) Saya tidak mengerti mengapa saya perlu merutekan di lingua/{lingua} jika saya tidak pernah merutekan ke sana tetapi saya menggunakan url:action ke pengontrol secara langsung.
2) sekarang saya perlu menambahkan
$linguadefault='it-IT';
$lingua = Session::get('lingua',$linguadefault);
di awal setiap fungsi memiliki variabel lingua di halaman saya kan?
3) sekarang bahasa saya sepertinya terjebak ke bahasa Prancis dan saya tidak bisa mengubahnya lagi.