最近在为Star Order做中文本地化,其中涉及到对含参字符串做本地化的需求,参考写法如下:

原句: Are you sure to rename XXX

翻译句: 是否确定重命名 XXX

XXX是一个字符串参数,用于接收传入的名称

代码如下:


NSString *localizedString = NSLocalizedString(@"Rename", nil);

NSString *title = [NSString stringWithFormat:@"{304f6ed0b3d59a494ff3bafd10e3c2eb0fd01a1c7bd37925658f43c0521dfc40}@ '{304f6ed0b3d59a494ff3bafd10e3c2eb0fd01a1c7bd37925658f43c0521dfc40}@'",localizedString, 入参];

简而言之,即将需要翻译的部分和参数部分分离即可.

在编辑Localizable.strings文件的时候,需要注意格式问题,例如"Enter new tag name" = "输入新标签名";结尾的那个;漏掉的话会导致整个Localizable.strings文件失效,进而导致APP中引用了NSLocalizedString的地方统统失效,需要特别小心