Pārlūkot izejas kodu

Merge pull request #426 from ttgb/master

Add localization
M了个J 9 gadi atpakaļ
vecāks
revīzija
a0c76cc6f7

+ 3 - 0
MJRefresh/Base/MJRefreshComponent.h

@@ -43,6 +43,9 @@ typedef void (^MJRefreshComponentRefreshingBlock)();
 @property (copy, nonatomic) MJRefreshComponentRefreshingBlock refreshingBlock;
 /** 设置回调对象和回调方法 */
 - (void)setRefreshingTarget:(id)target refreshingAction:(SEL)action;
+
+- (NSString *)localizedStringForKey:(NSString *)key;
+
 /** 回调对象 */
 @property (weak, nonatomic) id refreshingTarget;
 /** 回调方法 */

+ 28 - 0
MJRefresh/Base/MJRefreshComponent.m

@@ -133,6 +133,34 @@ - (void)setRefreshingTarget:(id)target refreshingAction:(SEL)action
     self.refreshingAction = action;
 }
 
+- (NSString *)localizedStringForKey:(NSString *)key{
+    return [self localizedStringForKey:key withDefault:nil];
+}
+
+- (NSString *)localizedStringForKey:(NSString *)key withDefault:(NSString *)defaultString
+{
+    static NSBundle *bundle = nil;
+    if (bundle == nil)
+    {
+        NSString *bundlePath = [[NSBundle mainBundle] pathForResource:@"MJRefresh" ofType:@"bundle"];
+        
+        bundle = [NSBundle bundleWithPath:bundlePath];
+        NSString *language = [[NSLocale preferredLanguages] count]? [NSLocale preferredLanguages][0]: @"en";
+        if (![[bundle localizations] containsObject:language])
+        {
+            language = [language componentsSeparatedByString:@"-"][0];
+        }
+        if ([[bundle localizations] containsObject:language])
+        {
+            bundlePath = [bundle pathForResource:language ofType:@"lproj"];
+        }
+
+        bundle = [NSBundle bundleWithPath:bundlePath] ?: [NSBundle mainBundle];
+    }
+    defaultString = [bundle localizedStringForKey:key value:defaultString table:nil];
+    return [[NSBundle mainBundle] localizedStringForKey:key value:defaultString table:nil];
+}
+
 #pragma mark 进入刷新状态
 - (void)beginRefreshing
 {

+ 3 - 3
MJRefresh/Custom/Footer/Auto/MJRefreshAutoStateFooter.m

@@ -57,9 +57,9 @@ - (void)prepare
     [super prepare];
     
     // 初始化文字
-    [self setTitle:MJRefreshAutoFooterIdleText forState:MJRefreshStateIdle];
-    [self setTitle:MJRefreshAutoFooterRefreshingText forState:MJRefreshStateRefreshing];
-    [self setTitle:MJRefreshAutoFooterNoMoreDataText forState:MJRefreshStateNoMoreData];
+    [self setTitle:[self localizedStringForKey:MJRefreshAutoFooterIdleText] forState:MJRefreshStateIdle];
+    [self setTitle:[self localizedStringForKey:MJRefreshAutoFooterRefreshingText] forState:MJRefreshStateRefreshing];
+    [self setTitle:[self localizedStringForKey:MJRefreshAutoFooterNoMoreDataText] forState:MJRefreshStateNoMoreData];
     
     // 监听label
     self.stateLabel.userInteractionEnabled = YES;

+ 4 - 4
MJRefresh/Custom/Footer/Back/MJRefreshBackStateFooter.m

@@ -53,10 +53,10 @@ - (void)prepare
     [super prepare];
     
     // 初始化文字
-    [self setTitle:MJRefreshBackFooterIdleText forState:MJRefreshStateIdle];
-    [self setTitle:MJRefreshBackFooterPullingText forState:MJRefreshStatePulling];
-    [self setTitle:MJRefreshBackFooterRefreshingText forState:MJRefreshStateRefreshing];
-    [self setTitle:MJRefreshBackFooterNoMoreDataText forState:MJRefreshStateNoMoreData];
+    [self setTitle:[self localizedStringForKey:MJRefreshBackFooterIdleText] forState:MJRefreshStateIdle];
+    [self setTitle:[self localizedStringForKey:MJRefreshBackFooterPullingText] forState:MJRefreshStatePulling];
+    [self setTitle:[self localizedStringForKey:MJRefreshBackFooterRefreshingText] forState:MJRefreshStateRefreshing];
+    [self setTitle:[self localizedStringForKey:MJRefreshBackFooterNoMoreDataText] forState:MJRefreshStateNoMoreData];
 }
 
 - (void)placeSubviews

+ 13 - 6
MJRefresh/Custom/Header/MJRefreshStateHeader.m

@@ -86,8 +86,10 @@ - (void)setLastUpdatedTimeKey:(NSString *)lastUpdatedTimeKey
         
         // 2.格式化日期
         NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
+        BOOL isToday = NO;
         if ([cmp1 day] == [cmp2 day]) { // 今天
-            formatter.dateFormat = @"今天 HH:mm";
+            formatter.dateFormat = @" HH:mm";
+            isToday = YES;
         } else if ([cmp1 year] == [cmp2 year]) { // 今年
             formatter.dateFormat = @"MM-dd HH:mm";
         } else {
@@ -96,9 +98,14 @@ - (void)setLastUpdatedTimeKey:(NSString *)lastUpdatedTimeKey
         NSString *time = [formatter stringFromDate:lastUpdatedTime];
         
         // 3.显示日期
-        self.lastUpdatedTimeLabel.text = [NSString stringWithFormat:@"最后更新:%@", time];
+        self.lastUpdatedTimeLabel.text = [NSString stringWithFormat:@"%@%@%@",
+                                          [self localizedStringForKey:MJRefreshHeaderLastTimeText],
+                                          isToday ? [self localizedStringForKey:MJRefreshHeaderDateTodayText] : @"",
+                                          time];
     } else {
-        self.lastUpdatedTimeLabel.text = @"最后更新:无记录";
+        self.lastUpdatedTimeLabel.text = [NSString stringWithFormat:@"%@%@",
+                                          [self localizedStringForKey:MJRefreshHeaderLastTimeText],
+                                          [self localizedStringForKey:MJRefreshHeaderNoneLastDateText]];
     }
 }
 
@@ -108,9 +115,9 @@ - (void)prepare
     [super prepare];
     
     // 初始化文字
-    [self setTitle:MJRefreshHeaderIdleText forState:MJRefreshStateIdle];
-    [self setTitle:MJRefreshHeaderPullingText forState:MJRefreshStatePulling];
-    [self setTitle:MJRefreshHeaderRefreshingText forState:MJRefreshStateRefreshing];
+    [self setTitle:[self localizedStringForKey:MJRefreshHeaderIdleText] forState:MJRefreshStateIdle];
+    [self setTitle:[self localizedStringForKey:MJRefreshHeaderPullingText] forState:MJRefreshStatePulling];
+    [self setTitle:[self localizedStringForKey:MJRefreshHeaderRefreshingText] forState:MJRefreshStateRefreshing];
 }
 
 - (void)placeSubviews

BIN
MJRefresh/MJRefresh.bundle/en.lproj/Localizable.strings


BIN
MJRefresh/MJRefresh.bundle/zh-Hans.lproj/Localizable.strings


BIN
MJRefresh/MJRefresh.bundle/zh-Hant.lproj/Localizable.strings


+ 4 - 0
MJRefresh/MJRefreshConst.h

@@ -59,6 +59,10 @@ UIKIT_EXTERN NSString *const MJRefreshBackFooterPullingText;
 UIKIT_EXTERN NSString *const MJRefreshBackFooterRefreshingText;
 UIKIT_EXTERN NSString *const MJRefreshBackFooterNoMoreDataText;
 
+UIKIT_EXTERN NSString *const MJRefreshHeaderLastTimeText;
+UIKIT_EXTERN NSString *const MJRefreshHeaderDateTodayText;
+UIKIT_EXTERN NSString *const MJRefreshHeaderNoneLastDateText;
+
 // 状态检查
 #define MJRefreshCheckState \
 MJRefreshState oldState = self.state; \

+ 14 - 10
MJRefresh/MJRefreshConst.m

@@ -14,15 +14,19 @@
 
 NSString *const MJRefreshHeaderLastUpdatedTimeKey = @"MJRefreshHeaderLastUpdatedTimeKey";
 
-NSString *const MJRefreshHeaderIdleText = @"下拉可以刷新";
-NSString *const MJRefreshHeaderPullingText = @"松开立即刷新";
-NSString *const MJRefreshHeaderRefreshingText = @"正在刷新数据中...";
+NSString *const MJRefreshHeaderIdleText = @"MJRefreshHeaderIdleText";
+NSString *const MJRefreshHeaderPullingText = @"MJRefreshHeaderPullingText";
+NSString *const MJRefreshHeaderRefreshingText = @"MJRefreshHeaderRefreshingText";
 
-NSString *const MJRefreshAutoFooterIdleText = @"点击或上拉加载更多";
-NSString *const MJRefreshAutoFooterRefreshingText = @"正在加载更多的数据...";
-NSString *const MJRefreshAutoFooterNoMoreDataText = @"已经全部加载完毕";
+NSString *const MJRefreshAutoFooterIdleText = @"MJRefreshAutoFooterIdleText";
+NSString *const MJRefreshAutoFooterRefreshingText = @"MJRefreshAutoFooterRefreshingText";
+NSString *const MJRefreshAutoFooterNoMoreDataText = @"MJRefreshAutoFooterNoMoreDataText";
 
-NSString *const MJRefreshBackFooterIdleText = @"上拉可以加载更多";
-NSString *const MJRefreshBackFooterPullingText = @"松开立即加载更多";
-NSString *const MJRefreshBackFooterRefreshingText = @"正在加载更多的数据...";
-NSString *const MJRefreshBackFooterNoMoreDataText = @"已经全部加载完毕";
+NSString *const MJRefreshBackFooterIdleText = @"MJRefreshBackFooterIdleText";
+NSString *const MJRefreshBackFooterPullingText = @"MJRefreshBackFooterPullingText";
+NSString *const MJRefreshBackFooterRefreshingText = @"MJRefreshBackFooterRefreshingText";
+NSString *const MJRefreshBackFooterNoMoreDataText = @"MJRefreshBackFooterNoMoreDataText";
+
+NSString *const MJRefreshHeaderLastTimeText = @"MJRefreshHeaderLastTimeText";
+NSString *const MJRefreshHeaderDateTodayText = @"MJRefreshHeaderDateTodayText";
+NSString *const MJRefreshHeaderNoneLastDateText = @"MJRefreshHeaderNoneLastDateText";