NSBundle+MJRefresh.m 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. //
  2. // NSBundle+MJRefresh.m
  3. // MJRefreshExample
  4. //
  5. // Created by MJ Lee on 16/6/13.
  6. // Copyright © 2016年 小码哥. All rights reserved.
  7. //
  8. #import "NSBundle+MJRefresh.h"
  9. #import "MJRefreshComponent.h"
  10. #import "MJRefreshConfig.h"
  11. @implementation NSBundle (MJRefresh)
  12. + (instancetype)mj_refreshBundle
  13. {
  14. static NSBundle *refreshBundle = nil;
  15. if (refreshBundle == nil) {
  16. // 这里不使用mainBundle是为了适配pod 1.x和0.x
  17. refreshBundle = [NSBundle bundleWithPath:[[NSBundle bundleForClass:[MJRefreshComponent class]] pathForResource:@"MJRefresh" ofType:@"bundle"]];
  18. }
  19. return refreshBundle;
  20. }
  21. + (UIImage *)mj_arrowImage
  22. {
  23. static UIImage *arrowImage = nil;
  24. if (arrowImage == nil) {
  25. arrowImage = [[UIImage imageWithContentsOfFile:[[self mj_refreshBundle] pathForResource:@"arrow@2x" ofType:@"png"]] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
  26. }
  27. return arrowImage;
  28. }
  29. + (NSString *)mj_localizedStringForKey:(NSString *)key
  30. {
  31. return [self mj_localizedStringForKey:key value:nil];
  32. }
  33. + (NSString *)mj_localizedStringForKey:(NSString *)key value:(NSString *)value
  34. {
  35. static NSBundle *bundle = nil;
  36. if (bundle == nil) {
  37. NSString *language = MJRefreshConfig.defaultConfig.languageCode;
  38. // 如果配置中没有配置语言
  39. if (!language) {
  40. // (iOS获取的语言字符串比较不稳定)目前框架只处理en、zh-Hans、zh-Hant三种情况,其他按照系统默认处理
  41. language = [NSLocale preferredLanguages].firstObject;
  42. }
  43. if ([language hasPrefix:@"en"]) {
  44. language = @"en";
  45. } else if ([language hasPrefix:@"zh"]) {
  46. if ([language rangeOfString:@"Hans"].location != NSNotFound) {
  47. language = @"zh-Hans"; // 简体中文
  48. } else { // zh-Hant\zh-HK\zh-TW
  49. language = @"zh-Hant"; // 繁體中文
  50. }
  51. } else if ([language hasPrefix:@"ko"]) {
  52. language = @"ko";
  53. } else {
  54. language = @"en";
  55. }
  56. // 从MJRefresh.bundle中查找资源
  57. bundle = [NSBundle bundleWithPath:[[NSBundle mj_refreshBundle] pathForResource:language ofType:@"lproj"]];
  58. }
  59. value = [bundle localizedStringForKey:key value:value table:nil];
  60. return [[NSBundle mainBundle] localizedStringForKey:key value:value table:nil];
  61. }
  62. @end