Besoin d'aide ?

Traduction arabe

Avatar de DalyMHY
DalyMHY

Je suis entrain de réaliser un site multi-langues, j'ai ajouter la langue anglaise je veux ajouter la langue arabe. J'ai installé : php artisan language:make ar Puis j'ai creé une fichier ar.json Dans le fichier Config/app.php j'ai ajouté 'locales' => ['fr','en','ar',], Mon prbléme lors de l'ajout de la langue dans la view comment je vais l'insérer Mon view contient ce code :

<ul class="navbar-nav mr-auto">
    <li class="nav-item dropdown">
        <a class="nav-link" href="#" id="navbarDropdownFlag" role="button" data-toggle="dropdown"
            aria-haspopup="true" aria-expanded="false" title="Français">
            <img width="20" height="20" alt="{{ session('locale') }}"
                    src="{!! asset('images/flags/' . session('locale') . '-flag.png') !!}"/>
        </a>
        <div id="flags" class="dropdown-menu" aria-labelledby="navbarDropdownFlag">
            @foreach(config('app.locales') as $locale)
                @if($locale != session('locale'))
                    <a class="dropdown-item" href="{{ route('language', $locale) }}" title="Anglais">
                        <img width="20" height="20" alt="{{ session('locale') }}"
                                src="{!! asset('images/flags/' . $locale . '-flag.png') !!}"/>
                    </a>
                @endif
            @endforeach
        </div>
    </li>
                    </ul>
Posté il y a 9 mois
Avatar de bestmomo
bestmomo

Salut,

Du code extrait d'un de mes projets :

<li class="dropdown">
  <a data-toggle="dropdown" class="dropdown-toggle" href="#"><img width="32" height="32" alt="{{ session('locale') }}"  src="{!! asset('img/' . session('locale') . '-flag.png') !!}" />&nbsp; <b class="caret"></b></a>
  <ul class="dropdown-menu">
  @foreach ( config('app.languages') as $user)
    @if($user !== config('app.locale'))
      <li><a href="{!! url('language') !!}/{{ $user }}"><img width="32" height="32" alt="{{ $user }}" src="{!! asset('img/' . $user . '-flag.png') !!}"></a></li>
    @endif
  @endforeach
  </ul>
</li>
Posté il y a 9 mois
Avatar de DalyMHY
DalyMHY

Salut; Je le modifie et je l'ajoute ou je le modifie et je le remplace dans la fonction foreach ? et merci d'avance

Posté il y a 9 mois
Avatar de DalyMHY
DalyMHY

J'ai tester le code mais j'ai pas réussi à avoir la langue arabe. HomeController function language

public function language(String $locale)
{ $locale = in_array($locale, config('app.locales')) ? $locale : config('app.fallback_locale');
    session(['locale' => $locale]);
    return back();

}

config/app.php

 'locales' => ['ar','fr','en'],

locale.php

'languages' => [
        'ar' => ['ar', 'ar_AR', true],
        'en' => ['en', 'en_US', false],
        'fr' => ['fr', 'fr_FR', false],
    ],

la route utilisée

Route::name('language')->get('language/{lang}', 'HomeController@language');

le middleware Locale.php

 public function handle($request, Closure $next)
{
    if (!session ()->has ('locale')) {
        session (['locale' => $request->getPreferredLanguage (config ('app.locales'))]);
    }
    $locale = session ('locale');
    app ()->setLocale ($locale);
    setlocale (LC_TIME, app()->environment('local') ? $locale : config('locale.languages')[$locale][1]);
    return $next ($request);
}
Posté il y a 9 mois
Avatar de DalyMHY
DalyMHY

@bestmomo j'ai testé votre code et j'ai eu ce probléme

Invalid argument supplied for foreach() (View: C:\laragon\www\AnnocesPFE\resources\views\layouts\app.blade.php)
Posté il y a 9 mois
Avatar de bestmomo
bestmomo

Salut

Dans mon code j'utilise :

config('app.languages')

Dans le vôtre apparemment c'est plutôt :

config('app.locale.languages')
Posté il y a 9 mois

Vous ne pouvez pas répondre à ce sujet.