iOS 개발-진급:언어 국제 화 및 코드 전환 언어
필요:
1.시스템 에 따라 이름 바 꾸 기
2.응용 내용 은 시스템 에 따라 전환
3.코드 를 사용 하여 응용 내용 을 전환 하 는 언어(백 엔 드 반환 데이터 전환 언어 포함)
실현:
1.시스템 에 따라 이름 바 꾸 기
먼저 Project 에서 Info 를 선택 한 다음 Localizations 에 프로그램 이 사용 할 언어,중국 어 를 추가 합 니 다.
그리고 InfoPlist.strings 파일 을 만 듭 니 다.Xcode 왼쪽 에서 이 파일 을 선택 하고 Xcode 에서 Localize 를 클릭 한 다음 중국어 와 영 어 를 추가 하면 InfoPlist.string 파일 이 두 개의 파일 을 아래로 펼 칩 니 다. InfoPlist.strings(English), InfoPlist.strings(Chinese (Simplified));
...에 있다 InfoPlist.strings(영어)파일 에 코드 입력: CFBundleDisplayName="English"; InfoPlist.strings(Chinese)에 입력: CFBundleDisplayName="중국어";
완 료 된 후에 프로그램 을 실행 하 십시오.언어 를 바 꾸 면 데스크 톱 의 응용 이름 이 달라 집 니 다.
2.응용 내용 은 시스템 에 따라 전환
주:수요 3 즉 코드 즉 코드 전환 응용 내용 의 언어 를 실현 하면 시스템 전환 방법 을 따라 덮어 씁 니 다.
새 Localizable.strings 파일 을 만 들 고 위 에서 Localize 를 클릭 하여 영어 와 중국어 두 개의 strings 파일 을 생 성 합 니 다.
영어 로 입력:
"Hello World" = "Hello World!";
중국어 로 입력:
마지막 으로 테스트 함 수 를 쓰 고 view DidLoad 에서 호출 합 니 다.
"Hello World" = " ~ !";
프로그램 을 실행 하면 이 라벨 의 내용 이 시스템 언어 에 따라 전환 되 는 것 을 발견 할 수 있 습 니 다.
3.코드 를 사용 하여 응용 내용 을 전환 하 는 언어(백 엔 드 반환 데이터 전환 언어 포함)
2 를 바탕 으로 언어 파일 과 되 돌아 오 는 value 값 을 읽 기 위해 매크로 정 의 를 작성 합 니 다.
- (void)languageWithSystem
{
UILabel *testLabel = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
testLabel.text = NSLocalizedString(@"Hello World", @"this String will change with system language!");
[self.view addSubview:testLabel];
}
언어 전환 후 페이지 를 새로 고 쳐 야 하기 때문에 AppDelegate.h 에서 toMian 방법 을 설명 하여 화면 을 새로 고 치 는 데 사용 합 니 다.ViewController 에 테스트 함 수 를 작성 합 니 다.
UIButton 을 하나 더 만 들 고 클릭 하면 언어 를 바 꿀 수 있 습 니 다.
#define Localized(key) [[NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%@",[[NSUserDefaults standardUserDefaults] objectForKey:@"appLanguage"]] ofType:@"lproj"]] localizedStringForKey:(key) value:nil table:@"Localizable"]
4.567913.그리고 프로그램 을 실행 하 세 요.버튼 을 클릭 하면 언어 가 코드 를 통 해 전환 되 었 습 니 다.
마지막 으로 백 엔 드 에서 데 이 터 를 되 돌려 주 는 이중 언어 는 비교적 어 리 석 은 방법 으로 실현 하기 가 비교적 간단 하 다.즉,네트워크 요청 을 할 때 현재 앱 의 언어 를 백 엔 드 에 보 내 고 백 엔 드 는 이 매개 변수 에 따라 대응 하 는 언어의 데 이 터 를 되 돌려 주 는 것 이다.
데모 주소: https://github.com/Nikolilol/LXLocalizationsLanguage/tree/master
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Swift의 패스트 패스Objective-C를 대체하기 위해 만들어졌지만 Xcode는 Objective-C 런타임 라이브러리를 사용하기 때문에 Swift와 함께 C, C++ 및 Objective-C를 컴파일할 수 있습니다. Xcode는 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.