今天在使用NSLocalizedString的時候碰到一個小問題:
中文版:我是來自“xxx”的xxx
英文版:I am xxx from 'xxx'
這里有兩個問題:
- 中文版被兩個參數分成了4部分,英文版被兩個參數分成了5部分
- 參數的順序不同
第1個很好辦,只要在NSLocalizedString中使用%@這樣的參數就可以了,這樣在使用的時候按照這樣的格式就可以了:
Localizable.strings中有如下定義:
"FORMAT" = "我是來自“%@”的%@";
str = [NSString stringWithFormat:NSLocalizedString(@"FORMAT", nil), xxx, xxx];
第2個不太常見,原來參數是可以指定順序的:
Localizable.strings中有如下定義:
"FORMAT" = "我是來自“%1$@”的%2$@";
"FORMAT" = "I am %2$@ from '%1$@'";
str = [NSString stringWithFormat:NSLocalizedString(@"FORMAT", nil), xxx, xxx];
只需要在%和@中間加上1$,2$等等就可以啦,數字就代表參數的順序。