Wskazówka: Jak zignorować błędy „<klucz> nie jest przetłumaczony na błędy <język>”?


189

Nie mogę skompilować / debugować naszej aplikacji na Androida, ponieważ pliki lokalizacyjne nie są jeszcze idealne.

Narzędzie do sprawdzania poprawności mojego IDE Lint tworzy błędy mówiąc:

newCardsOrderVals nie jest tłumaczony na ar, bg, ca, cs

Kompilowanie / instalowanie / uruchamianie z Antem działa dobrze, ale chciałbym użyć mojego IDE, aby ułatwić debugowanie.

Czy istnieje sposób na wyłączenie tej konkretnej kontroli, czy idealnie byłoby, aby była to ostrzeżenie, a nie błąd?

Rozumiem, że przed wydaniem naprawdę będziemy musieli poprawnie przygotować pliki lokalizacyjne, ale na razie nie jest to priorytet, ponieważ same ekrany są bardzo często modyfikowane.


1
Czy istnieje sposób skonfigurowania, które wszystkie języki są oznaczone jako „nie przetłumaczone”? Dostaję błędy takie jak „es, on i iw”. Dlaczego dostaję te języki? Jak skonfigurować aplikację na Androida, aby ograniczyć zestaw tylko do „en”?
dniu

@inder: Może dlatego, że masz katalogi takie jak „values-he” itp. w swoim folderze res /?
Nicolas Raoul,

1
Nie, nie mam takich katalogów. Tylko wartości, układ i możliwość rysowania.
inder

7
es, on i iw pochodzą z biblioteki SDK na Facebooku.
madej

2
To jest błąd w Androidzie Lint: code.google.com/p/android/issues/detail?id=50525
altumano

Odpowiedzi:


348

Android Studio:

  • „Plik”> „Ustawienia” i wpisz „MissingTranslation” w polu wyszukiwania

Zaćmienie:

  • Windows / Linux: w „Window”> „Preferences”> „Android”> „Lint Error Check”
  • Mac: „Eclipse”> „Preferencje”> „Android”> „Sprawdzanie błędów sznurka”

Znajdź MissingTranslationlinię i ustaw ją Warningtak, jak pokazano poniżej:

Brakujące tłumaczenia, nie są przetłumaczone na


2
... To jest w „Window”> „Preferencje”> „Android”> „Lint Error Checking”
Ollie Bennett

2
Jest to pomocne, ale nie miałem tego problemu przez bardzo długi czas, aż nagle się pojawił. I nie wiem dlaczego.
pktangyue

Dzięki za cenny post
Pawan asati,

Do Twojej wiadomości w Android Studio to „Plik”> „Ustawienia” i „MissingTranslation” w polu wyszukiwania.
peer

86

Możesz ustawić atrybut translatable = "false" w definicji w następujący sposób:

<string name="account_setup_imap" translatable="false">IMAP</string>

Aby uzyskać więcej informacji: http://tools.android.com/recent/non-translatablestrings


1
Powiedziałem „pliki lokalizacyjne nie są jeszcze idealne ”. Są wypełniane stopniowo. translatable = "false" uniemożliwiłby każdemu tłumaczenie.
Nicolas Raoul,

3
Chociaż odpowiedź nie jest bezpośrednio związana z pytaniem, wydaje mi się, że stanowi doskonałe rozwiązanie dla osób takich jak ja, którzy znaleźli ten temat, gdy Google „jak sprawić, by nie było kłopotów z moimi stałymi / parametrami mojej aplikacji”. Dziękuję, efor18!
aka_sh

83

Aby zignorować to w kompilacji stopniowej, dodaj to do sekcji Androida pliku kompilacji:

lintOptions {
   disable 'MissingTranslation'
}

2
Dziękuję bardzo, dosłownie zaoszczędziłem mi dni na znalezienie wszystkich odpowiednich ciągów do produkcji.
D-Kent,

Fajnie, to się udało
Mirko

Dodałem to do mojego modułu aplikacji.
Merkury

23

Spowoduje to, że Lint zignoruje brakujący błąd tłumaczenia WSZYSTKICH ciągów w pliku, ale w razie potrzeby można zweryfikować inne pliki zasobów ciągów.

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" 
    tools:ignore="MissingTranslation">

Jest to prawdopodobnie najbardziej poprawny sposób postępowania, bez wyłączania kłaczków dla całego projektu
MatPag

11

Jeśli chcesz wyłączyć ostrzeżenia o określonych ciągach, możesz użyć następujących opcji:

strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>    

    <!--suppress MissingTranslation -->
    <string name="some_string">ignore my translation</string>
    ...

</resources>

Jeśli chcesz ostrzec o określonych ciągach zamiast błędu, musisz zbudować niestandardową regułę Lint, aby dostosować stan ważności dla określonej rzeczy.

http://tools.android.com/tips/lint-custom-rules


1
+1 Dobry sposób na zrobienie tego raz na zawsze, aby wszyscy programiści zespołu nie musieli modyfikować ustawień IDE. Jest jakiś sposób, aby uczynić to ostrzeżeniem, a nie całkowicie tłumić?
Nicolas Raoul

Możesz zbudować niestandardową regułę Lint, aby dostosować stan ważności dla konkretnej rzeczy. Oto przykład: tools.android.com/tips/lint-custom-rules
Eduko


8

dodaj linie w pliku /res/values.xml w zakładce root zasobu w następujący sposób:

<resources
xmlns:tools="http://schemas.android.com/tools" 
    tools:locale="en" tools:ignore="MissingTranslation">

tools: ustawienia regionalne ustaw język lokalny na angielski, później nie ma potrzeby tłumaczenia języka dla wszystkich ciągów zasobów i narzędzi: zignoruj, aby Lint zapominał o brakujących tłumaczeniach wartości łańcucha zasobów.


6

Dodaj następujące elementy do pliku oceny w sekcji Androida

    lintOptions {
       disable 'MissingTranslation'
    }

5

Dodatkowo,

Właściwości niezależne od projektu, Preferencje Eclipse.
W Macu Eclipse> Preferencje

wprowadź opis zdjęcia tutaj


3

Innym podejściem jest wskazanie języków, które zamierzasz obsługiwać, i odfiltrowanie pozostałych za pomocą opcji „resConfigs” z Gradle.

Sprawdź tę inną odpowiedź aby uzyskać szczegółowe informacje

Myślę, że tak jest lepiej, ponieważ nie musisz całkowicie ignorować uzasadnionych błędów w tłumaczeniu dla języków, które faktycznie chcesz obsługiwać



1

Wiele z nich ma inne, działające odpowiedzi, i ja również dostałem te same błędy kłaczków, które ignoruję, wykonując poniższe czynności zaćmieniem.

  1. kliknij Windows
  2. kliknij preferencje
  3. wybierz android> Lint Error Checking.
  4. kliknij zignoruj ​​Wszystkie> Zastosuj> Ok.

Otóż ​​to.


2
to zignoruje wszystkie preferencje dotyczące włókien. Nie tylko brakujące tłumaczenie
Luciano Rodríguez

1

Poniższe działało dla mnie.

  • Kliknij na Windows
  • Kliknij preferencje
  • Wybierz Android> Lint Error Checking.
  • Znajdź i wybierz odpowiednie sprawdzenie Lint i
  • Ustaw istotność na „Ignoruj” (w prawym dolnym rogu)
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.