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 ...)


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


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

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.


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.


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.


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!


4

Zamknięcie Android Studio i ponowne uruchomienie go naprawił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


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



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.


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.


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.

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.