如果您是英语程序员,请编写代码,如......
NSLocalizedString(@"Hello", ...)
...你创建一个en.lproj/Localizable.strings
虽然在那里有与NSLocalizedString宏中相同的字符串吗?
答案 0 :(得分:2)
通常,不,如果您使用字符串作为NSLocalizedString
的键,则不需要。但是,您可以使用Localizable.strings
文件替换UI中的字符串,而无需更改代码文件。
此外,您不必使用实际字符串作为NSLocalizedString
的键,您可以使用一组通用标识符(如注释参数旨在帮助)。然后,您需要Localizable.strings
文件来填充真实的UI值。
答案 1 :(得分:0)
我发现的最佳本地化教程是Ray Wenderlich:How to localize an iphone app
答案 2 :(得分:0)
首先,Apple文档在Foundations Functions Reference for NSLocalizedString读取&#34时回答您的问题;字符串文件中key
的初始值为key
。"
其次,这个问题在我的搜索中排名很高,所以我想添加一种情况,其中我做以我的母语/语言环境创建一个字符串文件。
我的母语/语言环境是英语。我为程序生成的单数名词创建了一个字符串文件,我有时需要复数。例如:
@interface XYZFeline : NSObject
...
@interface XYZCanine : NSObject
...
@implementation XYZAnimalController
NSDictionary *classToWord = @{ @"XYZFeline": @"cat", @"XYZCanine" : @"dog" };
- (NSString *)describeQuantityOfAnimal:(id)animal
{
NSString *typeWord = classToWord[NSStringFromClass(animal)];
NSString *sentence = [NSString stringWithFormat:@"%@ %lu %@.",
NSLocalizedStringFromTable(@"You have", @"phrases.strings", nil),
animal.count,
[animal.count == 1
? NSLocalizedStringFromTable(typeWord, @"nouns.strings", nil)
: NSLocalizedStringFromTable(typeWord, @"nouns-plural.strings", nil),
];
return sentence;
}
英语nouns.strings
不存在,但英文nouns-plural.strings
文件如下所示:
"dog" = "dogs";
"cat" = "cats";
示例输出:
You have 3 dogs.
You have 1 cat.
这样您就可以在输出中输入正确的单数或复数名词,而无需在代码中添加语言规则。
注意:我知道我的主语,谓语,宾语和形容词之前的编码句结构仅限于某些印欧语系,但这是一个需要解决的问题。另一个问题。