es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Lista desplegable de todos los idiomas del mundo en diferentes lenguas.

Tengo la tarea de crear una lista desplegable de idiomas en diferentes idiomas. La selección desplegable no es un problema. Pero no sé cómo recolectar todos los idiomas (encontré esta respuesta en StackOverflow https://stackoverflow.com/questions/38909766/list-of-all-country-languages-for-dropdown-select-menu-html-form), pero necesito traducir estos idiomas al francés, alemán, sueco, danés y holandés.

Tal vez alguien conozca bibliotecas o algo más.

Pila del proyecto: Laravel y Vue.js.

Gracias por ayudar.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Solución para crear una lista desplegable de idiomas en diferentes lenguajes

    Si estás utilizando Laravel y Vue.js para tu proyecto, puedes aprovechar las funciones de localización de Laravel para traducir el nombre de los idiomas en diferentes idiomas. Así es como puedes lograrlo:

    1. Primero, necesitas crear archivos de idioma para cada idioma que quieras admitir. Por ejemplo, puedes crear un archivo resources/lang/fr/lang.php para francés, resources/lang/de/lang.php para alemán, y así sucesivamente.
    2. En cada archivo de idioma, define un array de nombres de idiomas en ese idioma. Por ejemplo, en resources/lang/fr/lang.php, puedes definir un array como este:
    return [
        'english' => 'Anglais',
        'french' => 'Français',
        'german' => 'Allemand',
        // ... add more languages here
    ];
    
    1. Luego, en tu componente Vue.js o plantilla blade donde quieras crear la lista desplegable, puedes usar la función auxiliar trans de Laravel para obtener los nombres de idiomas traducidos. Por ejemplo:
    <select>
        @foreach (config('languages') as $code => $language)
            <option value="{{ $code }}">{{ trans("lang.$code.$language") }}</option>
        @endforeach
    </select>
    

    Aquí, config('languages') es un array de pares de código de idioma y nombre. Puedes obtener este array de la respuesta de StackOverflow que mencionaste en tu pregunta. $code es el código de idioma (por ejemplo, en, fr, de, etc.) y $language es el nombre en inglés del idioma (por ejemplo, English, French, German, etc.).

    1. Asegúrate de haber establecido la localización en el idioma deseado antes de renderizar la lista desplegable. Puedes hacer esto en Laravel utilizando el método App::setLocale().
    public function index()
    {
        App::setLocale('fr'); // establecer la localización actual en francés
        return view('your.view');
    }
    

    ¡Eso es todo! Ahora tu lista desplegable mostrará los nombres de idiomas en el idioma seleccionado en función de la localización del usuario.

Comments are closed.