多人开发情况下的字符串本地化

  • 项目开发中,独立开发的还是少数。经常会有多人开发的情况,这种情况,如果多人同时操作本地化文件,极有可能会存在冲突。
  • 另一方面,我们又不希望自己的本地化文件受到对方的污染,也就是说,我们不希望对方操作我们的本地化文件。
  • 但是上面介绍的代码中字符串的本地化是使用的是默认的文件名"Localizable",因为启动程序时,系统将根据语言加载相应的文件得到其对应的字符串文件,这个字符串可以通过系统将NSLocalizedString中的宏生成名为“Localizable.strings”的文件。
  • 那么如何让系统加载我们自己命名的本地化文件而非系统默认的Localizable.strings呢?
  • 这就是 NSLocalizedStringFromTable(<#key#>, <#tbl#>, <#comment#>)的用处。
  • 也就是说,如果你的strings文件名字不是Localizable而是自定义的话,如VVS.strings,那么你就得使用NSLocalizedStringFromTable这个宏来读取本地化字符串。
// key:系统根据key取字符串
// tbl:自定义strings文件的名字
// comment:可以不传
NSLocalizedStringFromTable(, , )
#import "ViewController.h"
 
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIButton *btn;
 
@end
 
@implementation ViewController
 
- (void)viewDidLoad {
    [super viewDidLoad];
 
    NSString *title = NSLocalizedStringFromTable(@"click", @"VVS", nil);
    [self.btn setTitle:title forState:UIControlStateNormal];
}
 
@end
  • 运行效果,如下图:
  • 如此一来,我们就可以挣脱别人的strings文件和系统默认的Localizable.strings文件,自己另起炉灶。
原文地址:https://www.cnblogs.com/CH520/p/9388078.html