Błąd „jest tutaj przetłumaczony, ale nie odnaleziono go w domyślnych ustawieniach regionalnych” w strings.xml z translatable = „false”

99

Oto moje wartości \ strings.xml (plik domyślny) i wszystko jest oczywiste: wprowadź opis obrazu tutaj

Moje pytania):

  1. Jak można „nie znaleźć w domyślnych ustawieniach regionalnych”, jeśli edytuję domyślne ustawienia regionalne (wartości \ strings.xml)?
  2. Jak to może być błąd tłumaczenia kłaczków, jeśli ustawię translatable="false"? W values-pl \ strings.xml (i values-ru, values-iw folderach) ciągi nie istnieją nawet? i tak nie powinno.
  3. Wydaje się, że nie rozumiem, dlaczego nie pojawia się błąd dotyczący rosyjskiego ciągu.

(Pokazałbym tutaj values-ru \ string.xml lub values-pl \ string.xml, ale nie ma tam nic interesującego, ponieważ i tak brakuje ciągów ...)

PIXP
źródło
2
Jeśli jest to coś, co zdarza się od czasu do czasu, po prostu wykonaj zwykłe czyszczenie (wyczyść / odbuduj lub unieważnij pamięć podręczną / uruchom ponownie w ASTUDIO itp.) Chyba że, oczywiście, błąd jest „prawdziwy”. ;) Chodzi mi o to, że w Android Studio 3.2 (beta atm) dzieje się to trochę przypadkowo, dobre ciągi znaków są podkreślone, dotykasz czegoś i błąd znika. To jest buggy. ¯_ (ツ) _ / ¯
Martin Marconcini
1
Wypróbuj tę metodę: stackoverflow.com/a/53780805/7831470
Sagar Giri
Obecnie działa Android Studio 3.3.2. Zdarza mi się to czasami, gdy powielę nazwę ciągu w pliku strings.xml (na przykład podczas kopiowania i wklejania). To trochę frustrujące, ale wydaje się, że czyszczenie i ponowne uruchamianie rozwiązuje problem.
John Riggs
Dzieje się tak bardzo często, jeśli przenosisz zasób z jednego pliku do innego pliku w innym module. Muszę za każdym razem unieważniać pamięć podręczną, czyszczenie / kompilacja nie ma żadnego efektu. Wydaje się, że problem z indeksowaniem.
3c71
Uruchomienie aplikacji zadziałało dla mnie
kreker

Odpowiedzi:

85

to też mi się przydarzyło

Robię 2 rzeczy:

  • Sprawdź cały plik, aby zobaczyć, że inne tłumaczenie nie zostało ukończone (mam je w pliku en, ale w pt-br)
  • Wyczyść, zaktualizuj Gradle oraz zamknij i uruchom ponownie Android Studio
JoaoLopesF
źródło
8
Po prostu wyczyść projekt i uruchom ponownie Android Studio. I zadziałało;)
Ektos974
19
W przypadku, gdy czyszczenie projektu i ponowne uruchomienie Android Studio nie działa, spróbuj uruchomić Invalidate Caches / Restart.
makuno
2
Wyczyść i unieważnij pamięci podręczne / uruchom ponownie. U mnie też zadziałało! :)
Reeshabh Ranjan
2
❗ Spróbuj usunąć linię i dodać ją ponownie, zanim to zrobisz. Życie jest krótkie.
Nolan Amy
Myślę, że u należy dodać dodatek do odpowiedzi, a mianowicie polecenia: Invalidate Caches / Restart. Żeby nie szukać w komentarzach, tak jak np.
Morozov
69

Odbudowa może zająć dużo czasu. YMMV, ale ...

Po prostu usuń obraźliwą linię i dodaj ją ponownie.

Pracował dla mnie. Bardzo szybki.

Nolan Amy
źródło
3
Musiałem zrobić jeszcze mniej. Zmieniłem nazwę ciągu, a następnie zmieniłem go z powrotem.
Matt
1
Łał! to jest super szybkie.
użytkownikAbhi
3
Wybierz nieprawidłową linię, ctrl-X, ctrl-V. Gotowe. Pracował dla mnie!
ONE
1
Wybierz nieprawidłową linię, usuń, cofnij (polecenie / kontrola z). Gotowe. Pracował dla mnie!
HendraWD
1
Szybsze rozwiązania
mochadwi
22

W moim przypadku pomogło mi to:

  1. Wybierz ciągi, które powodują błąd.
  2. Pociąć je.
  3. Wklej je ponownie

Jeśli to nie zadziała, spróbuj dodać te same ciągi do strings.xml(v21)pliku.

Gourav
źródło
10

Naciśnij Unieważnij pamięć podręczną / Uruchom ponownie ..., aby ponownie uruchomić Android Studio. U mnie to zadziałało. W rzeczywistości stało się to, gdy skopiowałem pliki z innego komputera i wkleiłem je za pomocą eksploratora plików.

abir-cse
źródło
5

Miałem ten sam komunikat o błędzie, tylko z dziwnym problemem, że został wyrzucony w domyślnym ustawieniu lokalnym i we wszystkich tłumaczeniach. Okazuje się, że nie powinieneś używać kropek w swoim imieniu (np. Name = "bla.blub"), ponieważ zostanie ono wewnętrznie przekonwertowane na "bla_blub", a następnie nie będzie pasować do "bla.blub", stąd błąd. Musiałem tylko zmienić kropki na podkreślenia w domyślnym języku, a następnie wszystkie inne błędy w innych tłumaczeniach (w tym kropki w nazwie) również zniknęły.

Pamiętaj jednak, że inne narzędzia do kompilacji mogą nadal powodować problemy, więc zamiast tego zastąp wszystkie kropki podkreśleniami!

CytrusO2
źródło
4

Zamknięcie Android Studio i ponowne uruchomienie go naprawiło.

lekanbaruwa
źródło
U mnie też działa, jest znacznie mniej bolesne niż unieważnianie pamięci podręcznej i ponowne uruchamianie.
3c71
4

Rozwiązałem ten problem, wykonując poniższe czynności:

  1. sprzątanie mojego projektu

  2. odbudować go

  3. i wreszcie naciskając nieprawidłowe pamięci podręczne / Uruchom ponownie w menu plików

Hezbollah Watandost
źródło
2

Stworzyłem narzędzie do zarządzania stanem tłumaczenia aplikacji na Androida. Nie tylko informuje, jakich ciągów brakuje w innych językach, ale może również zgłaszać i czyścić pozostawione ciągi, które mogły zostać usunięte z domyślnego pliku tłumaczenia.

https://github.com/gubatron/android-missing-strings

Aby wyczyścić wszystkie pozostałości w innych językach, wywołaj w ten sposób

./ams --cleanleftovers -o all.txt

Spowoduje to wyczyszczenie pozostawionych ciągów i wyprowadzi raport o brakujących ciągach dla wszystkich języków do pliku all.txt

Gubatron
źródło
1

Po prostu upewnij się, że masz te same konwencje nazewnictwa we wszystkich plikach ciągów, w tym te same wielkie litery. powiedzmy, że masz „sign_in” w strings.xml i „sign_In” w pliku fr / string.xml, więc wyświetli się błąd na fr / strings.xml, np. „jest tutaj przetłumaczone, ale nie znajduje się w domyślnym języku”. Tak więc, kiedy edytujesz do „sign_in”. Błąd zostanie usunięty.

Babar Shamsi
źródło
0

Kopiowanie i wklejanie nie działa dla mnie.

Próbowałem też wyczyścić i ponownie uruchomić, poprzedni błąd zniknął, ale nowe wprowadzone ciągi nadal mają nowe błędy.

Próbowałem zamknąć otwarty plik strings.xml i Edytor tłumaczeń , a następnie ponownie uruchomić.

plik strings.xml i edytor tłumaczeń

To działa dla mnie.

Roy Wan
źródło
0

Miałem ten problem dla wszystkich ciągów w moim pliku xml.

Chodzi o to, że twój domyślny strings.xmlnie powinien mieć tools:localeatrybutu, tak jak inne przetłumaczone pliki. Jeśli tak, za każdym razem, gdy kompiluję aplikację w trybie wydania, traktuje ją jako inny przetłumaczony plik.

Dielson Sales
źródło