Laravel - změna jazyka JSON

Laravel - změna jazyka JSON
« kdy: 19. 06. 2019, 16:03:23 »
Dobry den.

Hram sa trochu s laravelom a prekladmy. V app\services\localeservice.php mam toto

Kód: [Vybrat]
<?php

namespace App\Services;

class 
LocaleService
{
    private 
$flags = [
        
'en' => 'us',
        
'da' => 'dk',
        
'el' => 'gr',
        
'cs' => 'cz',
        
'sv' => 'se',
        
'sl' => 'si',
        
'et' => 'ee'
    
];

    private 
$names = [
        
'en' => 'English',
        
'de' => 'Deutsch',
        
'es' => 'Español',
        
'fr' => 'Français',
        
'pt' => 'Português',
        
'nl' => 'Nederlands',
        
'ru' => 'Русский',
        
'cs' => 'Česky',
        
'it' => 'Italiano',
        
'fi' => 'Suomi',
        
'sv' => 'Svenska',
        
'hu' => 'Magyar',
        
'el' => 'Ελληνικά',
        
'da' => 'Dansk',
        
'lv' => 'Latviešu',
        
'lt' => 'Lietuvių',
        
'et' => 'Eesti',
        
'sk' => 'Slovenčina',
        
'sl' => 'Slovenščina',
    ];

    private 
$locales;
    private 
$locale// current user locale

    
public function __construct()
    {
        
$this->locale app()->getLocale();

        
// English locale is available by default
        
$this->locales = new \stdClass();
        
$this->locales->en = new \stdClass();
        
$this->locales->en->flag $this->flags['en'];
        
$this->locales->en->name $this->names['en'];

        
// loop through language files
        
foreach (glob(resource_path('lang/*.json')) as $filePath) {
            
$languageCode substr($filePathstrrpos($filePath'/') + 12);
            
$this->locales->$languageCode = new \stdClass();
            
$this->locales->$languageCode->flag array_key_exists($languageCode$this->flags) ? $this->flags[$languageCode] : $languageCode;
            
$this->locales->$languageCode->name = isset($this->names[$languageCode]) ? $this->names[$languageCode] : $languageCode;
        }
    }


    
/**
     * Get currenct language code
     * @return \Illuminate\Session\SessionManager|\Illuminate\Session\Store|mixed
     */
    
public function locale() {
        return 
$this->locales->{$this->locale};
    }

    
/**
     * Get all locales
     *
     * @return \stdClass
     */
    
public function locales()
    {
        return 
$this->locales;
    }

    
/**
     * Get all locales codes, i.e. en, de, fr etc
     * @return array
     */
    
public function codes() {
        return 
array_keys(get_object_vars($this->locales));
    }

    
/**
     * Get current locale code
     * @return \Illuminate\Session\SessionManager|\Illuminate\Session\Store|mixed
     */
    
public function code() {
        return 
$this->locale;
    }

}

na front ende potom
Kód: [Vybrat]
<select name="LOCALE" class="custom-select">
                                @foreach($locales as $code => $locale)
                                    <option value="{{ $code }}" {{ $code==config('app.locale') ? 'selected' : '' }}>{{ $locale->name }}</option>
                                @endforeach
                            </select>

problem je ze to mi vracia len dropdown select a ja by som to chcel "horizontalne" - teda vypis do riadku vedla seba.
« Poslední změna: 19. 06. 2019, 16:21:57 od Petr Krčmář »


hechj

Re:Laravel - změna jazyka JSON
« Odpověď #1 kdy: 19. 06. 2019, 19:58:47 »
Tak ten dropdown v šabloně vyhoď a nahraď ho divem, spanem nebo něčím jiným. Foreach ponechej, hodnoty {{code}} a {{locale->name}} též a obal to nějakým tagem. Že tys to ani nezkusil? Napiš ještě, čeho chceš dosáhnout, protože problém bude nejspíš někde jinde.

robin martinez

  • *****
  • 1 138
  • Have you hugged your toilet today?
    • Zobrazit profil
    • Null Storage
    • E-mail
Re:Laravel - změna jazyka JSON
« Odpověď #2 kdy: 19. 06. 2019, 21:44:06 »
jn. takovyhle otazky jsou snad uz vysmech proboha
One machine can do the work of fifty ordinary men. No machine can do the work of one extraordinary man.

I do Linux, Hardware and spaghetti code in PHP, Python and JavaScript

ZAJDAN

  • *****
  • 2 078
    • Zobrazit profil
    • E-mail
Re:Laravel - změna jazyka JSON
« Odpověď #3 kdy: 19. 06. 2019, 22:56:42 »
toto vyvoří to dropdown menu
Kód: [Vybrat]
<select>
<option></option>
<option></option>
</select>

a to právě potřebuješ nahradit nějakým jiným HTML tagem/elementem
jak zde bylo zmíněno tak třeba <span>, <div>
Kód: [Vybrat]
<div  class="custom-select">
                                @foreach($locales as $code => $locale)
                                    <span>{{ $locale->name }}</span>
                                @endforeach
</div>
v tom spanu to bude potřeba ještě upravit...dal jsem tam jen pointu
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.