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.

Las vistas de texto de Laravel no funcionan con ucwords.

Soy nuevo en Laravel.

Cuando abro un proyecto de internet, parte del texto muestra la palabra adicional.

Ejemplo: en el menú lateral, el texto (menú) que se muestra es ‘sidebar.job_vacancy’.
El texto debería mostrarse como ‘Job Vacancy’.

Mi archivo blade es:

....
<li class="nav-item {{ menu_active('job.vacancy.*') }}">
    <a href="{{route('job.vacancy.list', ['role' => user_role()])}}">
        <i class="far fa-newspaper"></i>
        <p>{{ ucwords(__('sidebar.job_vacancy')) }}</p>
    </a>
</li>
....

Y hace referencia al archivo en …(mi_proyecto)\resources\lang\en\sidebar.php.

return [
....
'job_vacancy' => 'job vacancy',
....
]

Tiene 2 idiomas compatibles, ID e ING.
Después de recibir algunas pistas, he cambiado mi ENV.

APP_LOCALE=id
APP_LOCALES=en,id
APP_FALLBACK_LOCALE=id,en
APP_TIMEZONE='Asia/Jakarta'
MULTI_LANGUAGE=true
CDN_BASE_URL="http://localhost/iccn/public/"

Pero esto aún no funciona.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema que estás enfrentando está relacionado con la traducción de idioma en Laravel. El código que proporcionaste sugiere que el texto “sidebar.job_vacancy” está siendo traducido a “job vacancy” basándose en el archivo “sidebar.php” ubicado en el directorio “resources/lang/en”. Sin embargo, el texto no se está mostrando en mayúsculas como se esperaba.

    Para resolver esto, puedes modificar el archivo “sidebar.php” para incluir el texto en mayúsculas:

    return [
        ...
        'job_vacancy' => 'VACANTE DE TRABAJO',
        ...
    ]
    

    Alternativamente, puedes modificar el archivo blade para convertir el texto a mayúsculas utilizando la función PHP “strtoupper()”:

    ....
    <li class="nav-item {{ menu_active('job.vacancy.*') }}">
        <a href="{{route('job.vacancy.list', ['role' => user_role()])}}">
            <i class="far fa-newspaper"></i>
            {{ strtoupper(__('sidebar.job_vacancy')) }}
        </a>
    </li>
    ....
    

    Ten en cuenta que esto convertirá el texto a mayúsculas en todos los idiomas. Si deseas mantener el texto original en idiomas que no sean inglés, puedes utilizar la función “trans_choice()” de Laravel con un contador de 1 para obtener la traducción singular:

    ....
    <li class="nav-item {{ menu_active('job.vacancy.*') }}">
        <a href="{{route('job.vacancy.list', ['role' => user_role()])}}">
            <i class="far fa-newspaper"></i>
            {{ app()->getLocale() == 'en' ? strtoupper(__('sidebar.job_vacancy')) : trans_choice('sidebar.job_vacancy', 1) }}
        </a>
    </li>
    ....
    

    Espero que esto te ayude a solucionar el problema de mostrar texto en mayúsculas en Laravel. ¡Buena suerte!

Comments are closed.