Tekrar Selamlar,
problemi basitçe çözdüm, belki karşılaşan arkadaşlar olur. Unutmadan belirteyim, debian8 ve ubuntuda(14) denedim, nginx php5fpm ve pdo-pgsql ortamım.
laravel gettext için kullandığım paket ->
https://github.com/xinax/laravel-gettext/
Ama bu paketi kullanabilmek için sistemde "sudo dpkg-reconfigure locales" konutu ile tr_TR.utf8 i işletim sistemime eklemem gerekti, aksi taktirde gettext bir türlü yorumlanmadı. kısaca dil aktif olmadı.
Sorun;
paket ve dil gereksinimlerini karşıladıktan sonra dil aktif fakat eloquent ve orm pdo ile konuşurken türkçe i -> ı dönüşümlerini veritabanındaki tablo isimlerine ve field isimlerine yansıttı. şöyle ki iptables tablomu eloquent Iptables olarak aramaya başladı. aynısı tablodaki alan isimlerinde de oldu, haliye birçok sorgu türkçe diline geçince patlamaya başladı.
Çözüm;
Normalde bu xinax/laravel-gettext paketini kurarken L5.1 için Middleware eklemek gerekiyor. Bu olayın hemen ardından ben kendi middlewareimi yazarak laravel ile pdo_pgsql arasındaki anlaşamazlığı çözebildim.
<?php
namespace App\Http\Middleware;
use Closure;
class GettexLangFix
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
setlocale(LC_CTYPE, 'C'); //EE
return $next($request);
}
}
İçinde olduğum projede gettext kullanmakta iyi mi kötü mü ettim bilmiyorum ama kodlamayı baya kolaylaştırdığını söyleyebilirim. diğer taraftan bu tarz uyum problemleri de baya can sıktı. ileriye dönük olarak laravele native gettext gelse ne katar bilemedim.
Deneyimli arkadaşlardan varsa daha güzel çözümleri dinlemek isterim.
Hepinize iyi günler.