나는 base.lproj 스토리 보드와 3 개의 문자열 파일을 작성하여 응용 프로그램의 일부를 현지화했습니다. 한 달 전과 후에 앱에 새보기 컨트롤러를 추가했지만이 컨트롤러의 버튼과 레이블이 문자열 파일에 나타나지 않습니다.
이 3 개의 스토리 보드 첨부 문자열 파일을 업데이트 할 수 있습니까? 아니면 NSLocalizableString 및 Localizable.strings를 사용하여 프로그래밍 방식으로 새 문자열 번역을 추가해야합니까?
나는 base.lproj 스토리 보드와 3 개의 문자열 파일을 작성하여 응용 프로그램의 일부를 현지화했습니다. 한 달 전과 후에 앱에 새보기 컨트롤러를 추가했지만이 컨트롤러의 버튼과 레이블이 문자열 파일에 나타나지 않습니다.
이 3 개의 스토리 보드 첨부 문자열 파일을 업데이트 할 수 있습니까? 아니면 NSLocalizableString 및 Localizable.strings를 사용하여 프로그래밍 방식으로 새 문자열 번역을 추가해야합니까?
답변:
두 가지 옵션이 있습니다.
Xcode는 파일을 [Interface Builder Cocoa Touch Storyboard] 파일 형식 또는 [Localizable Strings] 파일 형식 으로 변환하여 파일을 "재로드"할 수 있습니다 .
스토리 보드에서 문자열을 추출하려면 ibtool을 사용하십시오.
터미널 응용 프로그램을 엽니 다
Base.lproj 디렉토리를 찾으십시오
이 줄을 사용하여 문자열을 추출하십시오.
ibtool MainStoryboard.storyboard --generate-strings-file file_name.strings
ibtool이 문자열을 file_name.strings로 추출한 후이를 복사하여 원래 .strings 파일에 붙여 넣을 수 있습니다
자세한 정보를 보려면 다음 사이트를 방문하십시오 : https://conyac.cc/business/columns/localization_guide_ios
BartyCrouch를 확인하면 문제가 완벽하게 해결됩니다. 또한 오픈 소스 이며 적극적으로 유지 관리 되며 프로젝트 내에 쉽게 설치 및 통합 할 수 있습니다 .
Homebrew 를 통해 BartyCrouch를 설치 하십시오 .
brew install bartycrouch
또는 Mint 를 통해 설치하십시오 .
mint install Flinesoft/BartyCrouch
Storyboards / XIBs Strings 파일을 점차적으로 업데이트 하십시오.
$ bartycrouch update
이것은 당신이 찾고 있던 것을 정확하게 할 것입니다.
하기 위해 계속 하여 스토리 보드를 / XIBs 문자열은 파일 시간이 지남에 따라 업데이트 내가보기 엔 빌드 스크립트를 (빌드 스크립트를 추가하는 방법에 대한 지침을 추가하는 것이 좋습니다 여기를 )
if which bartycrouch > /dev/null; then
bartycrouch update -x
bartycrouch lint -x
else
echo "warning: BartyCrouch not installed, download it from https://github.com/Flinesoft/BartyCrouch"
fi
점차적으로 당신의 스토리 보드를 업데이트 외에도 / XIBs 문자열이는 것 파일을 확인하십시오 할 Localizable.strings
파일이 업데이트 유지 새로 추가하여 코드에서 키 NSLocalizedString
중복 키 또는 빈 값 및 경고보기.
현지화 파일에 키를 수동으로 추가 할 수 있습니다. 스토리 보드 편집기에서 키 오브젝트를 선택하여 찾을 수 있습니다. Object-ID
아이덴티티 인스펙터를 봅시다 . 마치"nwc-b2-19c"
현지화 업데이트 또는 번역 추가 예를 들면 다음과 같습니다.
"nwc-b2-19c.title" = "Translated title";
이것은 모두를위한 것은 아니지만 터미널에 추가 도구가 필요하지 않으며 수동으로 작은 변경을하기가 쉽습니다. 프로세스를 자동화하려는 경우이를 고려하지 마십시오.
0 단계 : 스토리 보드 언어 설정
이 단계는 한 번만 수행됩니다.
스토리 보드에 무언가를 추가하면 다음을 수행합니다.
1 단계 : 영어 지역화 가능 문자열 파일 추가
영어 광고 항목 만 표시하면됩니다.
이것은 모든 줄을 가진 완전히 새로운 영어 지역화 문자열 파일을 만듭니다.
2 단계 : 새 광고 항목을 다른 언어 파일로 복사
번역 해
3 단계 : 영어 표시를 해제하고 해당 지역화 가능 문자열 파일 제거
파일은 새 광고 항목을 가져 오는 데만 필요했습니다.
이것은 쉽고 빠른 프로세스이며 스토리 보드 편집기에서 모든 작업이 완료됩니다.
편집하다:
이 프로세스는 작은 스토리 보드에서 매우 잘 작동합니다. 예를 들어, 탭 기반 프로젝트가 있고 각 탭에 대한 스토리 보드가 있습니다.
"스토리 보드 참조"를 검색하여 학습서를 찾으십시오.
좋은 예 : Xcode의 스토리 보드 참조, 어디에서 사용해야합니까?
따라서 작은 스토리 보드마다 현지화 할 문자열이 몇 개 밖에 없습니다.
마지막으로, 내 솔루션은 (초보적이지만 효과적인) 이전 번역을 복사하여 현지화 언어 상자를 선택 취소하고 확인하여 만든 새 파일에 붙여 넣었습니다.
하나 또는 두 개의 텍스트 만 변경해야하는 경우와 같은 일부 경우에 유용합니다.
가장 좋은 방법은 내장 내보내기 / 가져 오기 현지화를 사용하는 것입니다.
PS XLIFF 편집기에서 편집하지 않고 3 단계를 건너 뛰면 XCode가 새 문자열을 저장할 수 없습니다. 이 경우 XLIFF 편집기에서 .xliff를 열고 변경없이 다시 저장하고 새 파일을 가져옵니다.
/* Class = "UILabel"; text = "a basic text"; ObjectID = "HFW-aN-MTb"; */
되었지만 Main.strings 파일에 새 레이블이 작성되지 않습니다. 그런 다음 .xliff 파일을 편집하여 새 레이블에 대한 번역을 추가했습니다. 다시 가져 왔습니다. 이제 새 레이블이 Main.strings 파일에 삽입되었습니다.
스토리 보드 (예 : Main.storyboard)를 클릭하면 오른쪽에 현지화 메뉴가 표시됩니다 (첨부 된 이미지 참조). 언어를 선택 취소했다가 다시 확인하면 파일이 다시 생성됩니다. 그래서 나는 보통 내용을 복사하고 파일을 다시 생성 한 다음 복사하고 이미 번역 한 내용을 붙여 넣습니다.
이것이 사전을 업데이트하는 데 사용되는 방법입니다.
나는 거기에 많은 줄이있는 거대한 스토리 보드를 얻었습니다. 두 언어는 영어와 다른 아랍어를 기본으로합니다. 작업은 스토리 보드에 일부 필드와 레이블을 추가하고 스크립트와 NSLocalizableStrings없이 현지화를 추가하는 것이 었습니다.
나를 위해 다음에 도움이되었습니다.
첫째 : 예기치 않은 변경을 방지하기 위해 자식이 있는지 확인하십시오.
Editor
->를 누르십시오 Export For Localization...
. ar.xliff를 저장하십시오 파일을 어딘가에 .이 응용 프로그램 애플에서 명령 줄 도구라는 AppleGlot을 그 지원 증분 현지화. 아직 시도하지는 않았지만 검색 한 도구와 똑같습니다 (몇 시간 전).
appleglot
도구는 최종 애플리케이션 번들로 작업 중입니다. 번역 응용 프로그램과는 완전히 다른 접근 방식입니다.
스토리 보드와 xib에서 문자열을 추출하여 기존 번역과 병합 하는 스크립트 는 다음과 같습니다 .
프로젝트를 빌드 할 때 스크립트를 자동으로 실행하려면 스크립트를 프로젝트 루트 디렉토리 에 넣고 프로젝트 설정의 대상 빌드 단계에 다음 줄과 함께 스크립트 실행 단계를 추가 하십시오 .
./mergegenstrings.py PathToSourceDir
또는 원할 때 터미널에서 수동으로 스크립트를 실행할 수 있습니다.
ibtool
Tha Leang이 대답 한대로 스크립트가 실행 됩니다. 또한 소스 코드에 genstrings
표시된 문자열을 추출하고 병합하기 위해 실행 됩니다 NSLocalizedString
. 스크립트는 이 게시물 의 스크립트를 기반으로 하며 , 실행 후 문자열을 병합합니다 genstrings
.
가장 쉽고 덜 위험한 방법은 스토리 보드에서 객체 ID를 복사하고 아래 예제와 같이 현지화 된 파일에 키의 새 키를 추가하는 것입니다.
1 : 구성 요소의 스토리 보드에서 아래와 같이 오브젝트 ID를 복사하십시오.
2 : 아래와 같이 현지화 된 파일에 새 키를 추가하십시오.
"DjF-dn-0ay.text" = "Borrar datos y restablecer";
참고 : 적은 수의 구성 요소 만 업데이트하려는 경우 스토리 보드에 대해 현지화 된 파일을 다시 만들 수 있으므로 위험성이 매우 낮은 방법입니다.
Xlifftool은 Mac 앱으로 제공되며 잘 작동합니다. info.plist, 현지화 가능한 문자열 및 스토리 보드의 모든 번역 가능한 문자열과 개체를 보여줍니다.
맥을 위해 여기에서 얻으십시오 : https://itunes.apple.com/lv/app/xlifftool/id1074282695?mt=12
1 단계 : Xcode의 프로젝트 탐색기에서 프로젝트 폴더를 선택하십시오. 그런 다음 현지화를위한 편집기 / 내보내기 ...를 선택하십시오.
번역 가능한 문자열은 Xcode에서 현지화하기 위해 선택한 언어로 xliff 파일에 포함됩니다.
2 단계 : xlifftool로 파일을 열고 이전에 수행 한 번역을 번역하거나 업데이트하십시오.
3 단계 : 그런 다음 편집기 / 가져 오기 현지화를 사용하여 프로젝트에 다시 업로드합니다.
스토리 보드 또는 xib에서 현지화 문자열로 새 텍스트를 업데이트하는 쉬운 방법입니다.
1-이 스크립트를 사용하십시오 http://tredje.se/dev/trouble/?x=entry:entry150917-204052
2- 현지화 문자열을 선택하십시오 업데이트 할 을 하고 언어 스트링을 "Localization string"에서 "interface builder storyboard"로 전환하십시오.
3- 다시 스위치 :)
끝난.
옵션 1
Xcode는 파일을 [Interface Builder Cocoa Touch Storyboard]
파일 형식 또는 파일 형식 으로 변환하여 파일을“다시로드”할 수 있습니다 [Localizable Strings]
.
Project Navigator 에서 기본 스토리 보드 파일을 선택하십시오 . File Inspector 에서 현지화 섹션을
찾으십시오 . 파일이 현재 파일 인 경우로 변경 하거나 그 반대로 변경하십시오 .[Localizable Strings]
[Interface Builder Cocoa Touch Storyboard]
Xcode는 스토리 보드를 현재 버전으로 변환하면서 이전 현지화 노력을 유지해야합니다. 원하는 경우 여기에서 파일을 원래 파일 형식으로 다시 변경할 수 있습니다.
옵션 2
사용ibtool
스토리 보드에서 문자열을 추출하는 데 합니다.
터미널 응용 프로그램을 엽니 다. 디렉토리를
찾습니다.
다음 줄을 사용하여 문자열을 추출하십시오.Base.lproj
ibtool MainStoryboard.storyboard --generate-strings-file file_name.strings
ibtool이에 문자열을 추출한 후이를 file_name.strings
복사하여 원본 .strings
파일에 붙여 넣을 수 있습니다.