¿Es posible especificar que las cadenas de un archivo dentro de los value-*
directorios no se traducen intencionalmente a otros idiomas? Tengo un montón de cadenas que son comunes para todos los idiomas y no necesitan traducción, así que he creado un unlocalized-strings.xml
archivo dentro del values
directorio. Ejecutando Android Lint para buscar problemas, sigue diciendo que faltan algunas traducciones ... No quiero para deshabilitar esta verificación en todo el proyecto, me gustaría deshabilitarla solo en algunos archivos XML ... ¿es posible?
"title_widget_updater_service" is not translated in de, en, en-rUS, it
Issue: Checks for incomplete translations where not all strings are translated
Id: MissingTranslation
If an application has more than one locale, then all the strings declared in one language
should also be translated in all other languages.
By default this detector allows regions of a language to just provide a subset of the
strings and fall back to the standard language strings. You can require all regions to
provide a full translation by setting the environment variable
ANDROID_LINT_COMPLETE_REGIONS.
¿Cómo se puede definir esta región de cadenas no localizadas ?
android
android-resources
android-lint
Gianni Costanzi
fuente
fuente
Respuestas:
No sé cómo ignorar todo el archivo, pero puede hacerlo cadena por cadena usando:
fuente
Es el
ignore
atributo deltools
espacio de nombres en su archivo de cadenas, de la siguiente manera:fuente
Project->Clean
a eliminar los errores definitivamente.Agregar a
build.gradle
:fuente
Hay 3 formas que conozco:
Para aplicar el valor de modificación por valor: Establezca el atributo
translatable="false"
en la<string>
definición:Si tiene muchos recursos que no deben traducirse, puede colocarlos en un archivo con nombre
donottranslate.xml
y lint los considerará todos recursos no traducibles.Otra forma que descubrí mientras navegaba por las fuentes del proyecto de Hackers Keyboard :
puede agregar el prefijo
donottranslate-
a su archivo de recursos. Como en el ejemplo anterior, lint los considerará todos recursos no traducibles.En su caso, puede reemplazarlo
unlocalized-strings.xml
pordonottranslate-strings.xml
. Parece funcionar, pero no he encontrado ninguna documentación para este consejo.Consulte: Sitio del proyecto de herramientas de Android: cadenas no traducibles
fuente
donottranlate.xml
, ya no necesitamos agregar latranslatable="false"
etiqueta?Y aquí hay una solución de Android Studio para deshabilitar este error fatal de Lint:
fuente
Creo que lo que necesitas en lugar de deshabilitar lint es marcarlos con atributo
fuente
Crear un archivo de recursos con un nombre que empieza con " donottranslate " (por ejemplo donottranslate.xml , donottranslate_urls.xml , etc), y la pelusa ignorará sus cadenas por completo en la comprobación de traducciones que faltan.
fuente
Si desea desactivar la verificación de pelusa en la traducción que falta, puede ir
"Propiedades del proyecto -> Preferencias de Android Lint -> Seleccione MissingTranslation -> Swtich para ignorar en gravedad",
Espero que esto ayude a otros porque acabo de encontrar este problema :)
fuente
Otra forma de hacerlo es agregar su cadena al archivo gradle, usando
resValue
obuildConfigField
. Algo como eso:Usos:
fuente
Para evitar advertencias en Android Studio, abra Preferencias ==> Inspecciones, desmarque "Traducciones incompletas". Pero no afectará la construcción de Gradle.
fuente
También está el "Editor de traducción" (haga clic con el botón derecho en string.xml "Abrir editor de traducción").
Luego, marque la casilla 'Intraducible' en una cadena.
https://developer.android.com/studio/write/translations-editor
fuente