2013-03-19 1 views
5

OK,이 질문의 목표는 엄격하게 프로그래밍과 관련이 없지만 프로그래밍 도구를 사용하여 프로그래머가 대답 할 수있는 질문이며 프로그래머가 유용한 답변을 찾을 수 있습니다. 나를 참아주십시오.자연어 학습을 위해 Mac OS X 언어 현지화 파일을 리버스 엔지니어링하려면 어떻게해야합니까?

Mac OS X에서 시스템 언어를 변경하면 자연어 (예 : 프랑스어)를 배우는 데 도움이됩니다. 그러나 때로는 내가 이해할 수없는 프랑스어로 된 메뉴 항목이나 대화 상자를 찾았습니다. Google 번역이나 시스템 언어를 영어로 다시 변경하는 것은 힘든 일입니다. 그러나 영어 번역은 현지화 파일의 어딘가에 숨겨져 있으며 프랑스 어구에 매핑됩니다. 그래서 내가하고 싶은 것은 모든 현지화 파일의 모든 텍스트를 추출하여이 구문을 영어로 매핑하는 것을 개발하는 것입니다. 프랑스어로 그 구문을 쉽게 찾을 수 있습니다.

현지화 파일은 Localizable.strings, lproj 파일 및 nib 파일과 같은 형식으로 저장되지만 파일이 저장되는 방법이나 파일을 저장하는 방법에 대한 머리말이나 꼬리말을 만들 수는 없습니다. 프로그래밍 할 수는 있지만 Xcode에는 아무 것도 쓰지 않았습니다. 내가 찾을 수있는 모든 정보는 Mac OS/iOS 프로그래머가 해커가 이미 현지화 된 정보를 추출하는 것이 아니라 소프트웨어를 현지화하는 것입니다.

Mac OS X 시스템 및 타사 소프트웨어 현지화 파일에서 외국어 정보를 일반 텍스트로 추출하려면 어떻게해야합니까? 감사!

답변

1

문자열 파일은 쉽습니다. 그것들은 단순히 속성 목록으로 직렬화 된 사전입니다. 사전 키는 특정 지역화를 위해 주어진 문자열을 찾기 위해 프로그램에서 사용됩니다. 사전을로드하고 키를 반복하고 영어 사전의 값을 출력의 키로 사용하고 다른 언어 사전의 값을 출력의 값으로 사용하여 영어에서 다른 언어로 매핑을 작성할 수 있습니다.

NIB는 더 단단합니다. 빌드 프로세스는 NIB 파일을 편집 또는 구문 분석에 도움이되지 않는 형식으로 "컴파일"합니다. 컴파일되지 않은 NIB 파일에 액세스 할 수있는 경우 ibtool --export-strings-file을 사용하여 문자열 파일을 덤프 할 수 있습니다. 그러면 위와 같이 처리 할 수 ​​있습니다. 네가 그렇게하지 않으면 나는 네가 힘든 시간을 보내고 있다고 생각한다.

+0

도움을 주셔서 감사합니다. 속성 목록에 물건을 저장하는 것에 대해 말씀 드리고자 합니다만 다양한 문자열 파일이 어떻게 관련되어 있고 연결되어 있는지, 일반적으로 저장되는 위치는 여전히 문제가 있습니다. – arandomlypickedname

+0

정확히 무슨 문제가 있는지 명확히 할 수 있습니까? – bdash