est-il possible de spécifier que les chaînes d'un fichier dans le value-*
Les répertoires ne sont volontairement pas traduits 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 répertoire values
.. en cours d'exécution Android Lint pour vérifier les problèmes, il ne cesse de signaler que certaines traductions sont manquantes .. Je ne souhaite pas désactiver cette vérification dans son ensemble. 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 non localisée chaînes?
Je ne sais pas comment ignorer tout le fichier, mais vous pouvez le faire chaîne par chaîne en utilisant:
<string name="hello" translatable="false">hello</string>
C'est l'attribut ignore
de l'espace de noms tools
dans votre fichier de chaînes, comme suit:
<?xml version="1.0" encoding="utf-8"?>
<resources
xmlns:tools="http://schemas.Android.com/tools"
tools:ignore="MissingTranslation" >
<!-- your strings here; no need now for the translatable attribute -->
</resources>
Ajouter à build.gradle
:
Android {
lintOptions {
disable 'MissingTranslation'
}
}
Il y a 3 façons que je connaisse:
Pour appliquer la valeur de modification par valeur: Définissez l'attribut translatable="false"
sur le <string>
définition:
<string name="account_setup_imap" translatable="false">IMAP</string>
Si vous avez beaucoup de ressources qui ne devraient pas être traduites, vous pouvez les placer dans un fichier nommé donottranslate.xml
et lint considéreront toutes les ressources non traduisibles.
Une autre façon que j'ai découverte en naviguant sources du projet Hackers Keyboard :
Vous pouvez ajouter le préfixe donottranslate-
à votre fichier de ressources. Comme dans l'exemple précédent, Lint considère toutes les ressources non traduisibles.
Dans votre cas, vous pouvez remplacer unlocalized-strings.xml
par donottranslate-strings.xml
. Cela semble fonctionner, mais je n'ai trouvé aucune documentation pour ce conseil.
Voir: Site Outils du projet Android: Chaînes non traduisibles
Et voici une solution Android Studio pour désactiver cette erreur fatale Lint:
Créez un fichier de ressources dont le nom commence par "donottranslate" (par exemple, donottranslate.xml, donottranslate_urls.xml, etc.), et lint ignorer complètement ses chaînes lors de la recherche de traductions manquantes.
Je pense que ce dont vous avez besoin au lieu de désactiver la charpie est de les marquer avec un attribut
translatable="false"
Une autre façon de faire est d'ajouter votre chaîne au fichier de dégradé, en utilisant resValue
ou buildConfigField
. Quelque chose comme ca:
buildTypes {
debug {
buildConfigField "string", "app_name1", "App Name"
resValue "string", "app_name2", "App Name"
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
buildConfigField "string", "app_name1", "App Name"
resValue "string", "app_name2", "App Name"
}
}
Coutumes:
// buildConfigField
BuildConfig.APP_NAME1
// resValue
getString(R.string.app_name2)
Si vous voulez désactiver la vérification de la charpie, vous pouvez aller
"Propriétés du projet -> Android Préférences de peluche -> Sélectionnez ManquantTranslation -> Basculer pour ignorer la gravité"),
espère que cela aide les autres parce que je viens de rencontrer ce problème :)
Il existe également un "Editeur de traduction" (clic droit sur string.xml "Ouvrir un éditeur de traduction").
Cochez ensuite la case "Non traduisible" sur une chaîne.
https://developer.Android.com/studio/write/translations-editor
Pour éviter les avertissements dans Android Studio, ouvrez Préférences ==> Inspections, décochez la case "Traductions incomplètes". Cela n'affectera pas la construction de Gradle.