2012-04-16 5 views
0

영어와 덴마크어의 두 언어로 현지화 된 앱이 있습니다. 기기를 다른 언어 (예 : 프랑스어)로 설정하면 앱이 다운됩니다. 마치 실제로 XIB 파일을로드하지 않거나 올바르게 초기화되지 않은 일반 버전을 가져 오는 것 같습니다.내 앱이 다른 언어로 중단됩니다. Xibs가로드되지 않는 것 같습니다. 왜?

영어 또는 덴마크어 이외의 언어로 설정 한 경우 앱이 영어 버전을로드한다고 가정 한 것 같습니다.

어떻게해야합니까? 그 행동을 보장 할 방법이 있습니까?

+0

흠. 그것은 특정 XIB의 경우 en.lproj 및 da.lproj 디렉토리에만 존재하고 프로젝트 루트에 존재하지 않기 때문일 수 있습니까? 그렇다면 올바른 방법은 무엇입니까? –

+0

또 다른 이상한 점은 : 프로젝트가 어떻게 든 .lproj 폴더가 여러 개있는 것으로 끝났습니다. 그것은 /English.lproj/da.lproj/Classes/en.lproj와 /Classes/da.lproj를 가지고 있습니다. 따라서 : 영어에 대한 두 개의 폴더, 다른 이름으로, 그리고 다른 위치에. 나는 Xcode가 나에게 이것을 어떻게했는지는 모르지만 나는 상관하지 않지만 그 근본 원인이 무엇인가? –

답변

1

원인 : 어쨌든 XCode는 두 세트의 en.lproj 및 da.lproj 디렉토리를 생성했습니다. 하나의 세트가 프로젝트 루트에있었습니다 (오, en.lproj는 여기에 English.lproj라고 불렀습니다). 그리고 다른 세트는 Classes에있었습니다. "누락 된"XIB 파일은 클래스의 디렉터리에 있습니다.

솔루션 : XIB 파일을 루트의 적절한 폴더에 복사하십시오. 프로젝트에서 원래의 것들을 제거하십시오 (당신은 방금 복사했습니다 ...). 하나의 드래그 작업으로 모든 프로젝트에 적절한 위치에 사본을 추가하고 프로젝트에 복사하지 마십시오 (이미 적절한 위치에 있음).

0

기기 언어를 예를 들어 french로 설정하면 앱이 영어 버전을로드해야합니다.

XIB를로드하는 방법에 대한 세부 정보를 제공해야합니다. 특정 구현에 대한 지식이 없으면이 질문에 대한 답을 제공하는 것이 다소 어렵습니다.

+0

뷰 컨트롤러 중 하나가 다른 XIB를 통해로드됩니다. 다른 하나는 self.embeddedPredictionsViewController = [[EmbeddedPredictions alloc] initWithNibName : @ "EmbeddedPredictions"번들 : Nil]을 통해 명시 적으로로드됩니다. "NSBundle (로드 됨) '이름 포함'EmbeddedPredictions '' " –

관련 문제