1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- //
- // NSBundle+BRPickerView.m
- // BRPickerViewDemo
- //
- // Created by renbo on 2019/10/30.
- // Copyright © 2019 irenb. All rights reserved.
- //
- // 最新代码下载地址:https://github.com/91renb/BRPickerView
- #import "NSBundle+BRPickerView.h"
- #import "BRBaseView.h"
- BRSYNTH_DUMMY_CLASS(NSBundle_BRPickerView)
- @implementation NSBundle (BRPickerView)
- #pragma mark - 获取 BRPickerView.bundle
- + (instancetype)br_pickerBundle {
- static NSBundle *pickerBundle = nil;
- if (pickerBundle == nil) {
- /*
- 先拿到最外面的 bundle。
- 对 framework 链接方式来说就是 framework 的 bundle 根目录,
- 对静态库链接方式来说就是 target client 的 main bundle,
- 然后再去找下面名为 BRPickerView 的 bundle 对象。
- */
- NSBundle *bundle = [NSBundle bundleForClass:[BRBaseView class]];
- NSURL *url = [bundle URLForResource:@"BRPickerView" withExtension:@"bundle"];
- pickerBundle = [NSBundle bundleWithURL:url];
- }
- return pickerBundle;
- }
- #pragma mark - 获取城市JSON数据
- + (NSArray *)br_addressJsonArray {
- static NSArray *cityArray = nil;
- if (cityArray == nil) {
- // 获取本地JSON文件
- NSString *filePath = [[self br_pickerBundle] pathForResource:@"BRCity" ofType:@"json"];
- NSData *data = [NSData dataWithContentsOfFile:filePath];
- cityArray = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
- }
- return cityArray;
- }
- #pragma mark - 获取国际化后的文本
- + (NSString *)br_localizedStringForKey:(NSString *)key language:(NSString *)language {
- return [self br_localizedStringForKey:key value:nil language:language];
- }
- + (NSString *)br_localizedStringForKey:(NSString *)key value:(NSString *)value language:(NSString *)language {
- static NSBundle *bundle = nil;
- if (bundle == nil) {
- // 如果没有手动设置语言,将随系统的语言自动改变
- if (!language) {
- // 系统首选语言
- language = [NSLocale preferredLanguages].firstObject;
- }
-
- if ([language hasPrefix:@"en"]) {
- language = @"en";
- } else if ([language hasPrefix:@"zh"]) {
- if ([language rangeOfString:@"Hans"].location != NSNotFound) {
- language = @"zh-Hans"; // 简体中文
- } else { // zh-Hant、zh-HK、zh-TW
- language = @"zh-Hant"; // 繁體中文
- }
- } else {
- language = @"en";
- }
-
- // 从 BRPickerView.bundle 中查找资源
- bundle = [NSBundle bundleWithPath:[[self br_pickerBundle] pathForResource:language ofType:@"lproj"]];
- }
- value = [bundle localizedStringForKey:key value:value table:nil];
-
- return [[NSBundle mainBundle] localizedStringForKey:key value:value table:nil];
- }
- @end
|