문제

최초로 현지화 된 애플리케이션을 구축하려고합니다.NSLocalizedString (genstrings 도구와 함께 사용)을 사용하여 번역 된 코드의 모든 문자열이 있습니다.이제 저는 ibtool에 부딪 치고 있습니다.증분 현지화는 어떻게 작동합니까?매뉴얼 페이지에 관해서는 다음과 같이 작성해야합니다. 라코 디스

증분 파일은 어디서 구합니까?내가 버전 제어 (git / svn)를 사용하고 있다면 "이전"파일은 몇 번의 커밋 전에, 증분 파일은 diff이고 경로 /to/new.xib는 새로 생성 된 xib 파일입니다.mod.nib은 나에게 미스테리입니다.누구든지 이것이 어떻게 작동하는지 설명 할 수 있습니까?또한-이전 버전을 사용할 수없는 경우 xib의 현지화를 시작하려면 어떻게해야합니까 (예 : 증분 형이 아닌 초기 현지화)?

도움이 되었습니까?

해결책

특히 --incremental-file에 대한 용어 선택이 혼란을 야기하고 있다고 생각합니다. 아이디어는 두 가지 언어 (소스 및 대상)로 된 xib의 이전 버전을 가지고 있으며 이후 소스 언어로 변경했으며 일치하도록 대상 언어 버전을 업데이트하려는 것입니다.

예를 들어 보겠습니다. 이전에 영어 (원문 언어)로 home.xib가 있었고 프랑스어 (대상 언어)로 번역 할 사람이있었습니다. 그 이후로 새로운 기능을 개발했으며 이제 UILabel과 UITextField를 추가하고 항목을 이동 한 영어로 된 home.xib의 업데이트 된 버전을 갖게되었습니다. 여러분이 보여준 명령은 새로운 UILabel과 UITextField가 있고 영어처럼 움직일 수 있도록 업데이트 된 home.xib 버전을 프랑스어로 가져 오는 데 도움이 될 수 있습니다. 새 UILabel 및 UITextField에서 설정 한 모든 텍스트 콘텐츠는 영어로 추가되고 프랑스어 xib로 번역되어야합니다 (하지만 --import-strings-file를 추가하고 하나 이상의 파일에 번역을 제공하여이를 자동화 할 수 있음).

그러므로 보여준 명령을이 예제에 매핑하면 :

  • --previous-file path/to/prev.xib는 이전 영어 xib를 지정합니다.
  • --incremental-file path/to/inc.xib는 이전 프랑스어 xib를 지정합니다.
  • --write path/to/new.xib는 생성 될 새로운 프랑스어 xib를 지정합니다.
  • mod.xib는 새로운 영어 xib를 지정합니다.

    프로세스를 시작하는 방법에 대한 다른 질문은 xib를 현지화하는 방법에 따라 다릅니다. 분명히 xib의 새 언어 버전을 생성 할 것입니다 (XCode에서는 xib의 언어 목록에 언어를 추가하기 만하면 현지화 된 xib가 자동으로 생성됩니다). 그런 다음 Interface Builder에서 직접 현지화하면 현지화 된 xib에서 관련 변경 (텍스트 번역 및 필요한 크기 조정)을 수행하기 만하면됩니다. 또는 xib의 텍스트를 .strings 파일로 추출하고 번역 한 다음 이러한 xib의 관련 언어 버전에 삽입 할 수 있습니다. 이를 위해 다시 ibtool을 사용하지만 추출 단계에는 --generate-strings-file를 사용하고 주입 단계에는 --import-strings-file를 사용합니다.

다른 팁

위의 에 설명 된대로 마이그레이션에 필요한 단계를 자동화하는 git 프로젝트 용 스크립트를 작성했습니다.다른 언어로 변경하십시오.

사용법 : 라코 디스

예 :

영어 xib 파일에 변경 사항을 커밋 한 후 리소스 폴더의 루트에서 스크립트를 실행합니다. 라코 디스

출처 : 라코 디스

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top