czy można określić, że ciągi znaków w pliku w value-*
katalogach celowo nie są tłumaczone na inne języki? Mam kilka ciągów znaków, które są wspólne dla wszystkich języków i nie wymagają tłumaczenia, więc utworzyłem unlocalized-strings.xml
plik w values
katalogu. Uruchamiam Android Lint w celu sprawdzenia problemów. Ciągle mówi, że brakuje niektórych tłumaczeń. Nie chcę aby wyłączyć to sprawdzanie w całym projekcie, chciałbym to wyłączyć tylko w niektórych plikach XML .. czy to możliwe?
"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.
W jaki sposób można to zdefiniowany obszar z unlocalized strun?
android
android-resources
android-lint
Gianni Costanzi
źródło
źródło
Odpowiedzi:
Nie wiem, jak zignorować cały plik, ale możesz to zrobić ciąg po łańcuchu, używając:
źródło
Jest to
ignore
atrybuttools
przestrzeni nazw w pliku ciągów znaków, jak poniżej:źródło
Project->Clean
ostatecznie, aby usunąć błędy.Dodaj do
build.gradle
:źródło
Znam 3 sposoby:
Aby zastosować wartość modyfikacji według wartości: Ustaw atrybut
translatable="false"
w<string>
definicji:Jeśli masz dużo zasobów, które nie powinny być tłumaczone, możesz umieścić je w pliku o nazwie,
donottranslate.xml
a lint uzna je wszystkie za nieprzekładalne.Inny sposób, który odkryłem podczas przeglądania źródeł projektów Hackers Keyboard :
Możesz dodać prefiks
donottranslate-
do swojego pliku zasobów. Podobnie jak w poprzednim przykładzie, lint weźmie pod uwagę wszystkie z nich zasoby nieprzekładalne.W twoim przypadku można zastąpić
unlocalized-strings.xml
przezdonottranslate-strings.xml
. Wygląda na to, że działa, ale nie znalazłem żadnej dokumentacji do tej wskazówki.Zobacz: Witryna projektu Android Tools: ciągi nieprzekładalne
źródło
donottranlate.xml
, nie musimy już dodawaćtranslatable="false"
tagu?A oto rozwiązanie Android Studio do wyłączania tego krytycznego błędu Lint:
źródło
Myślę, że zamiast wyłączania kłaczków potrzebujesz oznaczyć je atrybutem
źródło
Utwórz plik zasobów z nazwą pliku zaczynającą się od „ donottranslate ” (np. Donottranslate.xml , donottranslate_urls.xml itp.), A lint całkowicie zignoruje jego ciągi znaków podczas sprawdzania brakujących tłumaczeń.
źródło
Jeśli chcesz wyłączyć sprawdzanie kłaczków w brakującym tłumaczeniu, możesz iść
"Project Properties -> Android Lint Preferences -> Select MissingTranslation -> Swtich To Ignore In Severity",
ma nadzieję, że pomoże to innym, ponieważ właśnie napotykam ten problem :)
źródło
Innym sposobem na to jest dodanie swojego ciągu znaków do pliku gradle za pomocą
resValue
lubbuildConfigField
. Coś w tym stylu:Zastosowania:
źródło
Aby uniknąć ostrzeżeń w Android Studio, otwórz Preferencje ==> Inspekcje, odznacz „Niekompletne tłumaczenia”. Ale nie wpłynie to na kompilację Gradle.
źródło
Jest też „Edytor tłumaczeń” (kliknij prawym przyciskiem myszy string.xml „Otwórz edytor tłumaczeń”).
Następnie zaznacz pole „Nie można przetłumaczyć” na sznurku.
https://developer.android.com/studio/write/translations-editor
źródło