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.

¿Cómo cambiar el atributo fontFamily de acuerdo al idioma del dispositivo?

Tengo 9 fuentes dentro de mi aplicación porque mi aplicación admite 3 idiomas, 3 fuentes para cada idioma de la siguiente manera:

Árabe -> ar_light_font, ar_medium_font, ar_bold_font
Inglés -> en_light_font, en_medium_font, en_bold_font
Español -> es_light_font, es_medium_font, es_bold_font

Hay algunos text views que usan una fuente ligera y hay algunos text views que usan una fuente media y hay algunos text views que usan una fuente en negrita.

Por ejemplo, tengo estos text views:

Si se ha dado cuenta de que si el idioma del dispositivo era español, seguirá leyendo desde la fuente árabe, ¿hay alguna manera de cambiar el nombre de la fuente de ar a es según el idioma del dispositivo?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, existen formas de cambiar el nombre de la fuente según el idioma del dispositivo. Una forma es utilizar recursos de fuente con diferentes nombres de fuente para cada idioma. Por ejemplo, se puede crear un archivo de recurso de fuente para cada idioma y denominar las fuentes en consecuencia, como ar_bold_font.xml, en_bold_font.xml y es_bold_font.xml. Luego, se pueden hacer referencia a estos recursos de fuente en las vistas de texto utilizando el nombre de fuente apropiado según el idioma del dispositivo.

    Para lograr esto, se puede utilizar el calificador de recurso de Android para códigos de idioma. Por ejemplo, se puede crear una carpeta llamada “font-ar” para almacenar los recursos de fuente en árabe y una carpeta llamada “font-en” para almacenar los recursos de fuente en inglés. Dentro de cada carpeta, se pueden crear archivos de recurso de fuente con el mismo nombre que las fuentes originales, pero con el código de idioma agregado al nombre de archivo, como “light_font_ar.xml”, “medium_font_ar.xml” y “bold_font_ar.xml” para las fuentes en árabe.

    Luego, en las vistas de texto, se pueden hacer referencia a las fuentes utilizando el tipo de recurso “@font” y el nombre de la familia de fuentes sin agregar el código de idioma. Android automáticamente seleccionará el recurso de fuente de la carpeta de idioma correspondiente según el idioma del dispositivo. Por ejemplo:

    <textview android:id="@+id/txt1" android:fontfamily="@font/bold_font" android:text="Hola"></textview>
    

    En este ejemplo, si el idioma del dispositivo está establecido en árabe, Android automáticamente seleccionará el recurso de fuente “bold_font_ar.xml” de la carpeta “font-ar”. Si el idioma del dispositivo está establecido en inglés, seleccionará el recurso de fuente “bold_font_en.xml” de la carpeta “font-en”, y así sucesivamente.

    Tenga en cuenta que deberá crear recursos de fuente separados para cada combinación de idioma y estilo de fuente que admita en su aplicación.

Comments are closed.