est-il possible de spécifier que les chaînes d'un fichier dans les value-*
répertoires ne sont volontairement pas traduites dans d'autres langues? J'ai un tas de chaînes qui sont communes à toutes les langues et n'ont pas besoin de traduction, j'ai donc créé un unlocalized-strings.xml
fichier dans le values
répertoire. Exécuter Android Lint pour vérifier les problèmes ne cesse de dire que certaines traductions manquent .. Je ne veux pas pour désactiver cette vérification sur l'ensemble du projet, je voudrais le désactiver uniquement dans certains fichiers XML .. est-ce possible?
"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.
Comment définir cette région de chaînes non localisées ?
android
android-resources
android-lint
Gianni Costanzi
la source
la source
Réponses:
Je ne sais pas comment ignorer tout le fichier, mais vous pouvez le faire chaîne par chaîne en utilisant:
la source
C'est l'
ignore
attribut de l'tools
espace de noms dans votre fichier de chaînes, comme suit:la source
Project->Clean
supprimer définitivement les erreurs.Ajouter à
build.gradle
:la source
Il y a 3 façons dont je connais:
Pour appliquer la valeur de modification par valeur: Définissez l'attribut
translatable="false"
sur la<string>
définition:Si vous avez beaucoup de ressources qui ne devraient pas être traduites, vous pouvez les placer dans un fichier nommé
donottranslate.xml
et lint les considérera toutes comme des ressources non traduisibles.Une autre façon que j'ai découverte en parcourant les sources du projet Hackers Keyboard :
vous pouvez ajouter le préfixe
donottranslate-
à votre fichier de ressources. Comme dans l'exemple précédent, lint les considérera toutes comme des ressources non traduisibles.Dans votre cas, vous pouvez remplacer
unlocalized-strings.xml
pardonottranslate-strings.xml
. Cela semble fonctionner, mais je n'ai trouvé aucune documentation pour cette astuce.Voir: Site du projet Android Tools: Chaînes non traduisibles
la source
donottranlate.xml
, nous n'avons plus besoin d'ajouter latranslatable="false"
balise?Et voici une solution Android Studio pour désactiver cette erreur fatale Lint:
la source
Je pense que ce dont vous avez besoin au lieu de désactiver les peluches, c'est de les marquer avec un attribut
la source
Créez un fichier de ressources avec un nom de fichier commençant par " donottranslate " (par exemple donottranslate.xml , donottranslate_urls.xml , etc.), et lint ignorera complètement ses chaînes lors de la vérification des traductions manquantes.
la source
Si vous souhaitez désactiver la vérification des peluches en cas de traduction manquante, vous pouvez aller
"Propriétés du projet -> Préférences Android Lint -> Sélectionnez MissingTranslation -> Swtich To Ignore In Severity",
espère que cela aide les autres parce que je viens de rencontrer ce problème :)
la source
Une autre façon de faire est d'ajouter votre chaîne au fichier gradle, en utilisant
resValue
oubuildConfigField
. Quelque chose comme ca:Coutumes:
la source
Pour éviter les avertissements dans Android Studio, ouvrez Préférences ==> Inspections, décochez "Traductions incomplètes". Mais cela n'affectera pas la construction de Gradle.
la source
Il y a aussi «l'éditeur de traduction» (clic droit sur string.xml «Ouvrir l'éditeur de traduction»).
Cochez ensuite la case "Intraduisible" sur une chaîne.
https://developer.android.com/studio/write/translations-editor
la source