현지화를 위해 Android 문자열 리소스를 Excel로 가져오거나 내보내는 방법은 무엇입니까?
저는 안드로이드 스튜디오를 앱 개발에 사용합니다.안드로이드 언어 리소스(strings.xml)를 Excel 파일(xlsx)로 내보내기/가져오기하여 문자열을 변환하고 싶습니다.그것을 하는 가장 좋은 방법은 무엇입니까?
다른 사람이 답을 필요로 한다면,
res
->strings
-> -> -> 우클릭 ->Open Translations Editor
한 데이터한 후 를 통해 .Translations Editor
excel
다 했어요.
지금 안드로이드 스튜디오에서 CTRL+A가 작동하지 않기 때문입니다.안드로이드 문자열 파일을 CSV로 변환한 다음 구글 번역기의 도움을 받아 번역한 다음 다시 XML로 변환하는 방법이 하나 있습니다.
https://www.skydevelopers.net/blog/2-best-ways-to-translate-the-android-strings-file/
여기에 자세한 블로그가 있습니다.
- 문자열 리소스 파일을 csv로 내보내기
- 내용을 번역합니다(아마 구글 번역에서).
- 변환된 파일을 Strings.xml(안드로이드 문자열 리소스 파일)로 다시 변환합니다.
나는 csv 파일을 문자열 리소스 파일로 변환하기 위해 http://convertcsv.com/csv-to-xml.htm 을 사용했습니다.
문자열 리소스 파일로 변환하려면 사용자 지정 출력 템플릿을 언급해야 합니다.
<string name="{f1}">{f2}</string>
제공된 템플릿 섹션에 입력합니다.
웹 사이트에서도 원하는 변환된 출력 파일을 표시합니다.
다른 많은 사람들이 지적했듯이,A 번역 편집기에서 +를 누르는 것은 Android Studio 3.2 이후로 작동하지 않습니다.
저는 지속적으로 번역을 아웃소싱하는 회사에서 일하고 있기 때문에 안드로이드 문자열을 xls 파일로 변환해야 합니다.안정적으로 작동한 유일한 솔루션은 구형 안드로이드-랑-툴의 포크입니다.그냥 메이븐으로 만들고 항아리를 돌립니다.
문자열, 문자열 배열, 복수 및 키 값을 xls 파일로 내보냅니다.댓글도 내보냅니다.
안드로이드 앱 문자열 현지화를 위한 최고의 도구는 안드로이드 스튜디오에 내장된 번역 편집기를 제안합니다.
이것이 훌륭한 접근 방식인 이유는 번역자들이 쉽게 처리할 수 있고 오류가 발생하기 쉽기 때문입니다.Android Studio의 XML 문자열 파일은 문자열 현지화를 지원하는 표준화된 방법인 XLIFF 표기법을 지원합니다.
XML 문자열 파일에 XLIFF 표기법을 사용하면 다음 작업을 수행하여 번역자를 도울 수 있습니다.
- 선언된 문자열에 대한 추가 컨텍스트 제공
- 번역해서는 안 되는 메시지 부분 표시
Android 문자열 XML 파일에서 XLIFF를 사용하려면 XLIFF 1.2 네임스페이스를 포함해야 합니다.
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
다음은 Android 현지화 설명서의 몇 가지 문자열 예입니다.
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Example placeholder for a special unicode symbol -->
<string name="star_rating">Check out our 5
<xliff:g id="star">\u2605</xliff:g>
</string>
<!-- Example placeholder for a for a URL -->
<string name="app_homeurl">
Visit us at <xliff:g id="application_homepage">http://my/app/home.html</xliff:g>
</string>
<!-- Example placeholder for a name -->
<string name="prod_name">
Learn more at <xliff:g id="prod_gamegroup">Game Group</xliff:g>
</string>
<!-- Example placeholder for a literal -->
<string name="promo_message">
Please use the "<xliff:g id="promotion_code">ABCDEFG</xliff:g>” to get a discount.
</string>
</resources>
Android Studio에서 번역 편집기에 액세스하려면 프로젝트 트리에 있는 XML 문자열 파일(즉, strings.xml)의 상황에 맞는 메뉴에서 번역 편집기 열기를 선택합니다(아래 참조).
- string.xml을 csv xml-to-csv로 변환합니다.
- Google 시트로 가져오기
- 공식을 사용하여 번역합니다.
=GOOGLETRANSLATE(B2, "auto", "de")
- 다음을 사용하여 다른 열에 출력 생성
=CONCATENATE("<string name=",char(34),A2,char(34),">",C2,"</string>")
여기서 A2는 리소스_입니다.ID와 C2는 변환된 문자열입니다. - 전체 출력 열을 복사하여 내부에 붙여넣습니다.
<resource>...</resource>
꼬리표를 달다
Sad Mahmud가 대답했듯이 번역 편집기(ctrl+a ctrl+c)에서 복사한 다음 스프레드시트에 붙여넣을 수 있습니다.
기본값 열과 다른 언어 열만 복사하고 맨 위의 기본값을 클릭한 다음 붙여넣기(ctrl+v)하면 스프레드시트에서 번역 편집기로 다시 복사할 수 있습니다.
또한 행과 열의 부분 집합(행과 열의 부분 집합 모두)이 서로 인접한 경우에도 작동합니다.
스프레드시트의 빈 셀은 편집기의 변환을 비워두지 않고 현재 상태를 그대로 유지합니다.
또한 스프레드시트를 만든 후 변환 키를 추가하거나 제거하지 않도록 주의하십시오.
Excel로 내보내기 또는 복사는 Windows PC에서만 지원됩니다.아직 MAC에 없음
다른 많은 사람들이 지적했듯이 Android Studio 3.2 이후 번역을 단순히 복사하여 Translations Editor에 붙여넣을 수 없습니다.
제가 찾은 가장 간단한 해결책은 번역된 Excel 파일을 CSV 파일로 저장한 다음 정규식을 사용하여 XML로 변환하거나 그 반대로 변환하는 것이었습니다.
번역 "가져오기" 단계:
- 첫 번째 열에 키가 있고 두 번째 열에 번역이 있는 xls/xlsx 파일을 CSV 파일로 저장(ANSI가 아닌 문자가 있는 파일이 있는 경우, Excel은 utf-8을 사용한 CSV 저장을 지원하지 않기 때문에 Google 시트를 사용)
- 정규식으로 "찾기 및 바꾸기"를 지원하는 텍스트 편집기에서 csv 파일을 엽니다(예:메모장++)
- 찾기 및 바꾸기를 열고 정규식 검색을 설정합니다.
- »
^([^,]*),(.*)$
그리고 그것을 대체합니다.<string name="$1">$2</string>
- 태그 사이의 문자열 리소스 파일에 파일 복사
- 발생할 수 있는 실수 수정
비슷한 방법을 "내보내기"에 역으로 사용할 수 있습니다.사용하다<string.+name="(.*)".*>(.*)</string>
위해 및 기찾위그리고해▁finding.$1,$2
문자열 가 한줄로 합니다.그러나 모든 문자열 태그가 한 줄로 연결된 경우에만 작동합니다.
참고: res 폴더에 다음이 포함되지 않는 경우strings.xml
그러면 Android Studio가 strings.xml 파일의 오른쪽 상단 모서리에 "Open Editor"를 표시하지 않습니다(파일 열기).내 경우 모든 문자열 재파일의 이름은 다음과 같습니다.strings_feature.xml
Translations Editor에서 복사/붙여넣기를 하려면 Android Studio 3.2 버전 이하를 사용합니다.전체 열을 복사/붙여넣을 수 있습니다.
언급URL : https://stackoverflow.com/questions/30684496/how-to-import-export-android-string-resource-to-excel-for-localization
'programing' 카테고리의 다른 글
아이폰: 현재 밀리초를 얻는 방법은? (0) | 2023.05.10 |
---|---|
__dirname이(가) 노드 REPL에 정의되지 않은 이유는 무엇입니까? (0) | 2023.05.10 |
<%, <%@, <%=, <%#... 무슨 일입니까? (0) | 2023.05.05 |
Bash 어레이에 값이 포함되어 있는지 확인합니다. (0) | 2023.05.05 |
mongoose를 사용하여 컬렉션에 ID가 있는지 확인합니다. (0) | 2023.05.05 |