Re: [問題] 語系強制設定

看板MacDev作者 (atst2)時間11年前 (2014/01/28 18:08), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《Teferi (太費力)》之銘言: : 小弟接到個APP的維護,本來有分中英文語系 : 但業主要求要把中英文分開成中文跟英文兩個版本上架(語系切換時不可變) : 爲了以後維護方便,一直在網上找是否有強制設定成某語系的方法 : 只找到跟NSUserDefaults的"AppleLanguages" Key有關 : 但是試了很多方法都沒能達到上述效果 : 不知道有沒有前輩知道方向,可以指點小弟一下 : p.s之前也有想試過取消多語系設定, : 但是取消多語系後 : 又變成英文版本的編譯時會找不到很多XIB檔(當初有多語系的部分) 雖然有段時間了...不過還是提供一下作法: // NSUserDefaults+SetupLanguages.h @interface NSUserDefaults (SetupLanguages) - (void)setAppLanguage:(NSString *)lan; @end // NSUserDefaults+SetupLanguages.m #import "NSUserDefaults+SetupLanguages.h" NSString * const keyLanguages = @"AppleLanguages"; @implementation NSUserDefaults (SetupLanguages) - (void)setAppLanguage:(NSString *)lan { NSMutableArray* langs = [NSMutableArray arrayWithArray: [self valueForKey:keyLanguages]]; NSUInteger index = [langs indexOfObject:lan]; if(NSNotFound != index) { [langs removeObjectAtIndex:index]; [langs insertObject:lan atIndex:0]; [self setValue:[langs copy] forKey:keyLanguages]; [self synchronize]; } } @end 直接改寫main.m如下: #import <UIKit/UIKit.h> #import "LocalizationNibAppDelegate.h" #import "NSUserDefaults+SetupLanguages.h" int main(int argc, char *argv[]) { int retVal = 0; @autoreleasepool { [[NSUserDefaults standardUserDefaults] setAppLanguage:@"指定的語系"]; retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([LocalizationNibAppDelegate class])); } return retVal; } 你不成功的原因,可能在於改寫AppleLanguages的時間太晚了, Resource都已經載入了 以上程式已在ios 7模擬器上測試過. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.169.197.144 ※ 編輯: atst2 來自: 118.169.197.144 (01/28 18:11)

01/29 09:11, , 1F
實用推
01/29 09:11, 1F

02/05 04:54, , 2F
感謝解答 雖然最後是直接硬拆了 有時間再來試試
02/05 04:54, 2F
文章代碼(AID): #1Ivu6HLq (MacDev)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1Ivu6HLq (MacDev)