programing

translatable="false"가 있는 strings.xml의 "여기서 번역되지만 기본 로케일에서는 찾을 수 없습니다" 오류

javamemo 2023. 11. 1. 21:55
반응형

translatable="false"가 있는 strings.xml의 "여기서 번역되지만 기본 로케일에서는 찾을 수 없습니다" 오류

여기 내 values\strings.xml(기본 파일)이 있고 모든 것이 자체 설명입니다.

질문:

  1. 기본 로케일(values\strings.xml)을 편집하는 경우 "기본 로케일에서 찾을 수 없음"을 확인하려면 어떻게 해야 합니까?
  2. 설정하면 보풀 번역 오류가 어떻게 되나요?translatable="false"? values-pl\strings.xml(및 values-ru, values-iw 폴더에도 문자열이 존재하지 않습니까?어쨌든 그럴 리가 없습니다.
  3. 러시아 문자열 오류가 왜 안나오는지 이해가 안 되는 것 같습니다.

(여기에 values-ru\string.xml 또는 values-pl\string.xml을 표시하지만 문자열이 누락되어 관심있는 것은 없습니다..)

이것은 나에게도 일어났습니다.

저는 두가지 일을 합니다.

  • 전체 파일을 확인하여 다른 번역이 수행되지 않았는지 확인합니다(파일 en에는 있지만 pt-br에는 있습니다).
  • Android Studio를 정리하고, 그라들을 업데이트한 후 종료하고 다시 시작합니다.

리빌딩은 시간이 오래 걸릴 수 있습니다.YMMV, 하지만...

불쾌감을 주는 선을 제거하고 다시 추가하기만 하면 됩니다.

나를 위해 일했습니다.엄청 빠릅니다.

제 경우에는 다음과 같은 도움이 되었습니다.

  1. 오류를 발생시키는 문자열을 선택합니다.
  2. 잘라버려요.
  3. 다시 붙여넣기

만약 당신에게 효과가 없다면, 같은 문자열을 추가해보세요.strings.xml(v21)파일.

Invalidate Caches / Restart ...을 눌러 Android 스튜디오를 다시 시작합니다.그것은 나에게 효과가 있었다.사실 이런 일은 제가 다른 컴퓨터에서 파일을 복사해서 파일 탐색기를 통해 붙여 넣었을 때 일어났습니다.

저는 다음과 같은 단계를 통해 이 문제를 해결했습니다.

  1. 프로젝트 정리하기

  2. 리빌딩

  3. 파일 메뉴에서 유효하지 않은 캐시/Restart(다시 시작)를 누릅니다.

당신이 그냥Clean Project아마 효과가 있을 겁니다.그것은 나에게 효과가 있었다.

Android Studio를 그만두고 다시 시작하는 것이 저를 위해 해결해 주었습니다.

기본 로케일 자체와 모든 번역에 이상한 문제로 같은 오류 메시지가 있었습니다.내부적으로 "bla_blub"으로 변환된 후 "bla.blub"과 일치할 수 없으므로 오류가 발생하므로 사용자 이름에 점을 사용해서는 안 되는 것으로 나타났습니다(예: name="bla.blub").기본 로케일에서 점을 밑줄로 바꾸기만 하면 다른 번역(이름의 점 포함)에서 다른 오류도 모두 사라졌습니다.

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

그냥 불쾌감을 주는 행(또는 여러 개의 불쾌감을 주는 행 중 하나)을 복사하고 제거한 다음 다시 붙여넣기만 하면 됩니다.그래서 문제가 없어졌습니다.

동일한 대문자를 포함하여 모든 문자열 파일에 동일한 이름 지정 규칙이 있는지 확인하십시오.strings.xml에 "sign_in"이 있고 fr/string.xml에 "sign_In"이 있으면 "is translated but not in default local"과 같이 fr/strings.xml에서 오류가 발생합니다.그래서 sign_in으로 편집할 때.오류가 제거됩니다.

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

문제는, 당신의 디폴트가strings.xml하지 말았어야 하는tools:locale다른 번역 파일이 가지고 있는 속성입니다.그렇다면 릴리스 모드에서 앱을 컴파일할 때마다 다른 번역 파일로 처리합니다.

안드로이드 앱의 번역 상태를 관리하는 도구를 만들었습니다.다른 언어에서 누락된 문자열을 알려줄 뿐만 아니라 기본 변환 파일에서 삭제한 문자열을 보고하고 지울 수도 있습니다.

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

다른 언어의 모든 남은 부분을 지우려면 다음과 같이 호출합니다.

./ams --cleanleftovers -o all.txt

이렇게 하면 왼쪽 문자열이 지워지고 모든 언어에 대한 누락된 문자열 보고서가 모두 출력됩니다.txt 파일

복사해서 붙여넣기는 저한테 안 통했어요.

Clean and restart도 해봤는데, 이전 오류는 사라졌지만 새로운 입력 문자열은 여전히 새로운 오류가 발생합니다.

열린 strings.xml 파일과 Translations Editor를 닫고 다시 시작해 보았습니다.

strings.xml 파일 및 Translations Editor

저는 그것이 좋습니다.

음, 제 경우에는 보고되는 문자열의 이전 문자열에 형식 오류가 있을 때 발생했습니다.안타깝게도 그 형식 오류는 보고되지 않았습니다.형식 오류를 수정하면 문제가 해결됩니다.

이것을 추가하면 됩니다.

   <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="ExtraTranslation">

빌드 메뉴로 이동하여 클린 프로젝트를 선택하기만 하면 됩니다.

위에서 제안한 다른 것은 모두 실패했습니다. 파일 -> IDE Android Studio 복구 메뉴 옵션을 사용하는 것이 효과적이었습니다.복구가 완료되고 메시지가 표시된 후 IDE를 다시 시작하려면 선택합니다.

더블 시프트를 열어 누름Translations Error체크 인 후 체크 인 합니다.Untranslatable항목에 오류가 있는 열을 올립니다.

언급URL : https://stackoverflow.com/questions/50027691/is-translated-here-but-not-found-in-default-locale-error-in-strings-xml-with-t

반응형