Laravel'de Türkçe uzun tarih yazdırma

Yazı muhtevasında uygulanan yöntem sadece Türkçe değil, başka diller için de geçerlidir.



2 dakikalık okuma
August 16, 2017

Buradaki yazımda PHP’de diğer dillerde uzun tarih yazdırma yönteminden bahsetmiştim. Bu yazımda da Laravel’de Türkçe ya da başka dilde uzun tarih yazdırmayı anlatacağım. Aslında bu yazı da yukarıda bahsettiğim bir önceki yazıdaki içerik ile hemen hemen aynı. Sadece Laravel Carbon‘da nasıl kullanacağımızı anlatacağım.

Laravel bildiğiniz gibi Carbon kütüphanesini kullanıyor. Bu yüzden kullanacağımız yerde:

use Carbon\Carbon;

Carbon kütüphanesini tanımlamayı unutmayın. Sonra

$datetime = Carbon::now('Europe/Istanbul');

setlocale(LC_TIME, 'Turkish');  // ya da tr_TR.utf8
echo $datetime ->formatLocalized('%A %d %B %Y');          // Salı 21 Mayıs 2015
setlocale(LC_TIME, 'German');
echo $datetime ->formatLocalized('%A %d %B %Y');          // Mittwoch 21 Mai 2015

Halen olmadıysa sunucuda Türkçe dil paketi kurulu değildir. Bunu öğrenmek için terminal ile sunucunuza bağlanın ve:

locale -a

Eğer orada tr_TR.utf8 yada turkish vs. gibi şeyler göremezseniz, sunucuya Türkçe dil paketini bizim yüklememiz gerek. Bunun için:

sudo apt-get install language-pack-tr

yazarak Türkçe dil paketini yükleyelim. Sonra sunucuya restart atmayı unutmayın ki aktif hale geçsin. Bunun için -ben php 7.1 kullanıyorum. fpm aktif- Bu yüzden şöyle restart atıyorum:

sudo service php7.1-fpm restart

Eğer VPS üzerinde WHM CPANEL varsa, oradan da restart atabilirsiniz. Ya da başka yollarla…

Carbon diffForHumans ile çıkan sonucu Türkçeleştirme nasıl yapabiliriz ?

diffForHumans ile çıkan 1 yıl önce , 1 saat önce vs. gibi sonuçları farklı ülkelere göre otomatik çıktı almak için bu sefer Carbon’dan yardım alacağız. Yukarıdaki yöntem diffForHumans için çalışmaz. Şöyle yapmamız gerek:

Carbon::setLocale('tr');
Carbon::yesterday()-> diffForHumans();  // 1 gün önce

Dikkat edelim, Carbon::setLocale(‘tr’); sadece diffForHumans için geçerlidir. Maalesef yukarıdaki yaptığımız 21 Mayıs 2015 Salı gibi ifadeyi Carbon::setLocale(‘tr’); yaparak Türkçe’ye çeviremeyiz.


Etiketler: