只允许针对不同scheme/目标的特定翻译

我的问题是,我有几种语言Localizable.strings的基本集合,但我不想 他们在我所有的构build目标/scheme (我们的一些客户只需要这些,其他人只允许语言) 。

因为这个集合对于所有人来说都是一样的,并且每次更新都会被扩展,所以我想避免在文件夹中更深层次地复制文件并维护每个目标。

我使用NSLocalizedStringWithDefaultValueNSLocalizedString ,但没有find任何选项给他们允许的本地化。

先谢谢你。

我最终改变了从使用NSLocalizedString到语言特定的命名文件(德语Localizable_de.strings ,英语Localizable_en.strings等)的方式。

之后

https://stackoverflow.com/a/12004482/883799

我用在我的翻译课上

 NSString *tbl = [@"Localizable_" stringByAppendingString:[MyLibrary currentLocalization]]; NSString *fname = [[NSBundle mainBundle] pathForResource:tbl ofType:@"strings"]; if(!localStrings) localStrings = [[NSDictionary dictionaryWithContentsOfFile:fname] retain]; NSString *value = [localStrings objectForKey:key]; 

其中[MyLibrary currentLocalization];

 +(NSString *)currentLocalization { NSString *currentLocCode = [[NSLocale preferredLanguages] objectAtIndex:0]; if([[AppSettings supportedLocales] containsObject:currentLocCode]) return [currentLocCode substringToIndex:2]; return [AppSettings defaultLocalization]; } 

AppSettings是目标,取决于[AppSettings supportedLocales];

 +(NSArray *)supportedLocales { return [NSArray arrayWithObjects: @"de", @"de_AT", @"de_BE", @"de_CH", @"de_DE", @"de_LI", @"de_LU", // @"en", @"en_AS", @"en_AU", @"en_BB", @"en_BE", @"en_BM", @"en_BS", @"en_BW", @"en_BZ", @"en_CA", @"en_FJ", @"en_FM", @"en_GB", @"en_GM", @"en_GU", @"en_GY", @"en_HK", @"en_IE", @"en_IN", @"en_JM", @"en_MH", @"en_MP", @"en_MT", @"en_MU", @"en_MW", @"en_NA", @"en_NZ", @"en_PG", @"en_PH", @"en_PK", @"en_PW", @"en_SB", @"en_SC", @"en_SG", @"en_SL", @"en_SZ", @"en_TT", @"en_UM", @"en_US", @"en_US_POSIX", @"en_VI", @"en_ZA", @"en_ZW", // @"es", @"es_419", @"es_AR", @"es_BO", @"es_CL", @"es_CO", @"es_CR", @"es_DO", @"es_EC", @"es_ES", @"es_GQ", @"es_GT", @"es_HN", @"es_MX", @"es_NI", @"es_PA", @"es_PE", @"es_PR", @"es_PY", @"es_SV", @"es_US", @"es_UY", @"es_VE", // @"fr", @"fr_BE", @"fr_BF", @"fr_BI", @"fr_BJ", @"fr_BL", @"fr_CA", @"fr_CD", @"fr_CF", @"fr_CG", @"fr_CH", @"fr_CI", @"fr_CM", @"fr_DJ", @"fr_FR", @"fr_GA", @"fr_GF", @"fr_GN", @"fr_GP", @"fr_GQ", @"fr_KM", @"fr_LU", @"fr_MC", @"fr_MF", @"fr_MG", @"fr_ML", @"fr_MQ", @"fr_MR", @"fr_NE", @"fr_RE", @"fr_RW", @"fr_SC", @"fr_SN", @"fr_TD", @"fr_TG", @"fr_YT", // @"it", @"it_CH", @"it_IT", nil]; } 

但仍然接受修改,如果有人有更好的解决scheme:)

Interesting Posts