iOS 默认语言国际化

设置默认语言国际化:

#define CURR_LANG                        ([[NSLocale preferredLanguages] objectAtIndex:0])   

+(NSString *)JFLocalizedString:(NSString *)translation_key {   
    
    NSString * s = NSLocalizedString(translation_key, nil);   
    
    // 除英文及法文以外,其他默认显示德文
    if (![CURR_LANG hasPrefix:@"en"] && ![CURR_LANG hasPrefix:@"fr"]) {
        NSString * path = [[NSBundle mainBundle] pathForResource:@"de" ofType:@"lproj"];
        NSBundle * languageBundle = [NSBundle bundleWithPath:path];
        s = [languageBundle localizedStringForKey:translation_key value:@"" table:nil];
    }
    return s;
}

注意:由于iOS9之后增加了区号,所以不适合用isEqual方法来判断本机语言,如:本机语言为英文时,iOS9之前获得的本机语言为en,而iOS9之后获得的本机语言为en-CN ,故此时使用 [CURR_LANG isEqual:@”en-CN”] 方法会出现适配不正确问题。
所以建议采用获取本机语言前缀的方式 [CURR_LANG hasPrefix:@”en”] 来确定本机语言国际化。

模板设计模式

##模板设计模式

模版模式设计步骤

	1. 写出解决某一类问题的固有的模版代码
	2. 抽取模版代码中可变的部分,形成独立的函数
	3. 可变部分抽取的函数定义为抽象函数,类定义为抽象类
	4. 创建实现类继承并实现父类的未实现的函数
	5. 为了避免子类重写父类的模版代码,需要将模版代码修饰为final

单例设计模式

##单例设计模式

意图

保证一个类仅有一个实例,并提供一个访问它的全局访问点。

适用性

当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。
当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。

Git 常用命令整理

##初始化配置

#配置使用git仓库的人员姓名  
git config --global user.name "Your Name Comes Here"  
  
#配置使用git仓库的人员email  
git config --global user.email you@yourdomain.example.com  
  
#配置到缓存 默认15分钟  
git config --global credential.helper cache   
  
#修改缓存时间  
git config --global credential.helper 'cache --timeout=3600'    
  
git config --global color.ui true  
git config --global alias.co checkout  
git config --global alias.ci commit  
git config --global alias.st status  
git config --global alias.br branch  
git config --global core.editor "mate -w"    # 设置Editor使用textmate  
git config -1 #列举所有配置  
  
#用户的git配置文件~/.gitconfig  

Jekyll目录结构与变量

Jekyll 目录及一些说明

Jekyll 标准目录树

_config.yml   Jekyll的配置文件
_includes     include 文件所在的文件夹
_layouts      模版文件夹
_posts        自己要发布的内容
_sites        预览时产生的文件都放在该文件夹中