Çoklu Dil Desteği

Merhabalar hocam.
Çoklu dil desteğine sahip bir blog scripti oluşturmak istiyorum. Takıldığım mevzular var.

site.com/tr
site.com/en

şeklinde url yapısı düşünüyorum.

blog ise;
site.com/tr/blog
site.com/en/blog

Nasıl yapılır isimli makale;
site.com/tr/nasil-yapilir/
site.com/en/how-is-made/

şeklinde düşünüyorum.

wordpress'teki gibi p=1234 yapısında olan linkleri otomatik dönüştürüyor. Şimdi üç sorum var:

1) WP deki gibi bu tarz link yapısını nasıl yapabilirim?
2) en, tr şeklinde dil desteğini Route ta nasıl oluşturabilirim?
3) Önerebileceğiniz başka bir fikir var mı?

Cevaplar (2)


Turan Karatuğ
Software Developer - Creator of TitanMVC
5 ay önce

1- Eklediğiniz içerikler için slug olusturup db'ye kaydetmeniz gerek. Titan'da bulunan slug() fonksiyonu işinizi görecektir.
http://v2.titanphp.com/doc/helpers#url-slug-olusturma

2- Rotaları oluştururken aşağıdaki gibi bir yapı kurabilirsiniz;
Route::get('/{lang}/{slug}', 'Posts@detail');
Controller içerisinde parametreleri yakalayıp dile göre içeriği db'den alırsınız.
MEHMET ŞABAN BEDEN
PHP Developer
4 ay önce

Merhabalar hocam yeniden. Route işlemim aşağıdaki gibi.

[0] => Array
(
[uri] => /en
[method] => GET
[pattern] => /^/en$/
[callback] => Closure Object
(
)

[name] => en
)

[1] => Array
(
[uri] => /tr
[method] => GET
[pattern] => /^/tr$/
[callback] => Closure Object
(
)

[name] => tr
)



Route::get('/en', function(){
set_lang('en');
redirect(base_url());
})->name('en');

Route::get('/tr', function(){
set_lang('tr');
redirect(base_url());
})->name('tr');


Ancak /tr veya /en yazarsam 404 e düşüyor. eng veya try yapınca düzeliyor. en ve tr şeklinde nasıl yapabilirim?

Cevap Yazın


[code=php,css,sql]kod[/code] , [url=http:...com] , [img=imaj linki] , [color=renk_kodu]metin[/color]