Si tenemos urls amigables definidas en una tabla de la base de datos y queremos que sean accesibles mediante el menú de idiomas tenemos la siguiente solución:
//Controller
public function getUrlTranslate($amigable_actual){
o$url_actual = LaravelLocalization::getLocalizedURL(Config::get('app.locale'));
o$arrayUrlActual = explode('/', $url_actual);
o$urls = array();
oforeach(LaravelLocalization::getSupportedLocales() as $localeCode => $properties){
o$amigable = Projecte::where('amigable_' . Config::get('app.locale'), $amigable_actual)->select('amigable_' . $localeCode . ' as amigable')->first();
o$arrayUrlActual[count($arrayUrlActual) - 1] = $amigable->amigable;
o$arrayUrlActual[count($arrayUrlActual) - 2] = Lang::get('routes.proyectos', array(), $localeCode);
o$arrayUrlActual[count($arrayUrlActual) - 3] = $localeCode;
o$urls[$localeCode] = implode("/", $arrayUrlActual);
o}
oreturn $urls;
o}
public function showProject($amigable){
o$allProjects = Projecte::select('picto', 'short_' . Config::get('app.locale') . ' as short', 'amigable_' . Config::get('app.locale') . ' as amigable')->orderBy('order', 'desc')->get();;
o$dades = Projecte::where('amigable_' . Config::get('app.locale'), $amigable)->select('link', 'titol_' . Config::get('app.locale') . ' as titol', 'short_' . Config::get('app.locale') . ' as short', 'text_' . Config::get('app.locale') . ' as text')->first();
o$clients = Client::select('empresa', 'sector_' . Config::get('app.locale') . ' as sector', 'web')->get();
oreturn View::make('frontoffice.projectes')->with(array('allProjects' => $allProjects, 'dades' => $dades, 'clients' => $clients, 'url_translate' => static::getUrlTranslate($amigable)));
o}
//View
@foreach(LaravelLocalization::getSupportedLocales() as $localeCode => $properties)
o@if(Config::get('app.locale') != $localeCode && isset($url_translate))
o<li><a rel="alternate" hreflang="{{$localeCode}}" href="{{$url_translate[$localeCode]}}" class="trans">{{ $localeCode }}</a></li>
o@else
o<li><a rel="alternate" hreflang="{{$localeCode}}" href="{{LaravelLocalization::getLocalizedURL($localeCode) }}"{{ (Config::get('app.locale') == $localeCode) ? ' class="active trans"' : ' class="trans"' }}>{{ $localeCode }}</a></li>
o@endif
o@endforeach
