translatable =“false”인 strings.xml의 "여기에서 번역되었지만 기본 로케일에서 찾을 수 없음"오류


98

다음은 내 values ​​\ strings.xml (기본 파일)이며 모든 것이 자명합니다. 여기에 이미지 설명 입력

내 질문 :

  1. 기본 로케일 (values ​​\ strings.xml)을 편집하는 경우 어떻게 "기본 로케일에서 찾을 수 없음"이 될 수 있습니까?
  2. 설정하면 어떻게 Lint 번역 오류가 발생할 수 translatable="false"있습니까? values-pl \ strings.xml (및 values-ru, values-iw 폴더도)에서 문자열이 존재하지 않습니까? 어쨌든 안됩니다.
  3. 러시아어 문자열에 대한 오류가 발생하지 않는 이유를 이해할 수없는 것 같습니다.

(여기에 values-ru \ string.xml 또는 values-pl \ string.xml이 표시되지만 문자열이 누락 되었기 때문에 관심있는 항목이 없습니다 ...)


2
이것이 가끔씩 발생하는 경우에는 일반적인 정리를 수행하십시오 (ASTUDIO에서 캐시 정리 / 재 구축 또는 무효화 / 다시 시작 등). 물론 오류가 "실제"가 아니라면. ;) 내 요점은 Android Studio 3.2 (베타 atm)에서는 약간 무작위로 발생하고 좋은 문자열에 밑줄이 표시되고 무언가를 터치하면 오류가 사라집니다. 버그가 있습니다. ¯_ (ツ) _ / ¯
Martin Marconcini 2018 년

1
이 방법을 시도해보십시오. stackoverflow.com/a/53780805/7831470
Sagar Giri

현재 Android Studio 3.3.2를 실행 중입니다. strings.xml 파일에 문자열 이름을 복제하는 경우 (예 : 복사-붙여 넣기) 가끔 이런 일이 발생합니다. 다소 실망 스럽지만 청소하고 다시 시작하면 해결되는 것 같습니다.
John Riggs

리소스를 한 파일에서 다른 모듈의 다른 파일로 이동하면 매우 자주 발생합니다. 매번 캐시를 무효화해야하는데 정리 / 빌드는 효과가 없습니다. 인덱싱에 문제가있는 것 같습니다.
3c71

앱 실행이 저에게
효과적

답변:


84

나에게도 일어난 일

나는 2 가지 일을한다 :

  • 완료되지 않은 다른 번역을 보려면 전체 파일을 확인하십시오 (파일 en에 있지만 pt-br에 있습니다)
  • Gradle을 정리하고 업데이트하고 Android Studio를 종료하고 다시 시작하십시오.

8
프로젝트를 정리하고 Android Studio를 다시 시작하십시오. 그리고 그것은 작동했습니다;)
Ektos974

19
프로젝트를 정리하고 Android Studio를 다시 시작해도 작동하지 않는 경우 Invalidate Caches / Restart를 실행하십시오.
makuno

2
캐시를 정리하고 무효화 / 다시 시작합니다. 나를 위해 일 했어! :)
Reeshabh 란잔

2
❗이 작업을 수행하기 전에 줄을 제거하고 다시 추가하십시오. 인생은 짧다.
놀란 에이미

나는 당신이 대답에 보충, 즉 명령을 추가해야한다고 생각합니다 : Invalidate Caches / Restart. 예를 들어 내가 한 것처럼 댓글을 검색하지 않으려면.
Morozov

68

재 구축에는 시간이 오래 걸릴 수 있습니다. YMMV,하지만 ...

문제가되는 줄을 제거하고 다시 추가하기 만하면됩니다.

나를 위해 일했습니다. 매우 빠릅니다.


3
나는 더 적게해야했다. 문자열의 이름을 바꾼 다음 다시 변경했습니다.
Matt

1
와! 이것은 매우 빠릅니다.
userAbhi

3
문제가되는 줄 ctrl-X, ctrl-V를 선택합니다. 끝난. 나를 위해 일했습니다!
ONE 19

1
문제가되는 줄을 선택하고, 삭제하고, 실행 취소합니다 (command / control z). 끝난. 나를 위해 일했습니다!
HendraWD

1
더 빠른 솔루션
mochadwi

22

제 경우에는 이것이 도움이되었습니다.

  1. 오류를 일으키는 문자열을 선택하십시오.
  2. 잘라.
  3. 다시 붙여 넣기

작동하지 않는 경우 strings.xml(v21)파일에 동일한 문자열을 추가해보십시오 .


10

Invalidate Caches / Restart ... 를 눌러 android studio를 다시 시작하십시오 . 그것은 나를 위해 일했습니다. 실제로 이것은 다른 컴퓨터에서 파일을 복사하고 파일 탐색기를 통해 붙여 넣었을 때 발생했습니다.


5

기본 로케일 자체와 모든 번역에서 발생한 이상한 문제와 함께 동일한 오류 메시지가 나타납니다. 내부적으로 "bla_blub"로 변환되고 "bla.blub"과 일치 할 수 없기 때문에 이름에 점을 사용해서는 안됩니다 (예 : name = "bla.blub"). 따라서 오류가 발생합니다. 기본 로케일에서 밑줄로 점을 변경하기 만하면 다른 번역 (이름의 점 포함)의 다른 모든 오류도 사라졌습니다.

그러나 다른 빌드 도구는 여전히 문제를 일으킬 수 있으므로 모든 점을 대신 밑줄로 바꾸십시오!


4

Android Studio를 종료하고 다시 시작하면 문제가 해결되었습니다.


나에게도 효과적이며 캐시를 무효화하고 다시 시작하는 것보다 훨씬 덜 고통 스럽습니다.
3c71

4

아래 단계에 따라이 문제를 해결했습니다.

  1. 내 프로젝트 청소

  2. 재건

  3. 마지막으로 잘못된 캐시를 누르거나 파일 메뉴에서 다시 시작


2

Android 앱의 번역 상태를 관리하는 도구를 만들었습니다. 다른 언어에서 누락 된 문자열을 알려줄뿐만 아니라 기본 번역 파일에서 삭제했을 수있는 남은 문자열을보고하고 정리할 수도 있습니다.

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

다른 언어로 남은 모든 것을 청소하려면 다음과 같이 호출하십시오.

./ams --cleanleftovers -o all.txt

이렇게하면 남은 문자열이 정리되고 모든 언어에 대한 누락 된 문자열 보고서가 all.txt 파일로 출력됩니다.



1

동일한 대소 문자를 포함하여 모든 문자열 파일에 동일한 명명 규칙이 있는지 확인하십시오. strings.xml에 "sign_in"이 있고 fr / string.xml에 "sign_In"이있는 경우 "is translate here but not found in default locale"과 같은 fr / strings.xml에 오류가 발생합니다. 따라서 "sign_in"으로 편집 할 때. 오류가 제거됩니다.


0

복사 및 붙여 넣기가 작동하지 않았습니다.

나는 또한 청소하고 다시 시작하려고 시도했지만 이전 오류는 사라졌지 만 새로 입력 한 문자열에는 여전히 새로운 오류가 발생합니다.

열린 strings.xml 파일과 Translations Editor 를 닫은 다음 다시 시작했습니다.

strings.xml 파일 및 번역 편집기

그것은 나를 위해 작동합니다.


0

내 xml 파일의 모든 문자열에 대해이 문제가 발생했습니다.

문제는 다른 번역 된 파일이 strings.xml가진 tools:locale속성 이 기본값에 없어야한다는 것입니다 . 그렇다면 릴리스 모드에서 앱을 컴파일 할 때마다 다른 번역 된 파일로 취급됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.