Localizable.strings-为什么我需要在键中放置占位符



在Localizable.strings文件中,为什么需要在键中放置占位符。

假设你使用一个像;

"welcome-back.label" = "welcome back, %@"

我见过一些例子,它们混合了占位符和点符号,类似于这样;

"welcome-back %@.label" = "welcome back, %@"

^以上内容可能不正确

但我不明白的是,当它只是指向value的指针时,为什么你甚至需要key中的占位符。

有人能阐明这一点吗?

非常感谢

您不需要在键中使用它,它可以让将来阅读代码的人的生活更轻松,这样他们就可以很容易地判断是否应该传递参数、它的用途以及应该使用哪个变量。如果你想使用其他规范来表明这一点,那没关系。如果你想让它变得超级简洁和难以使用,那也没关系,只是不鼓励。。。

NSLocalizedString将用右侧的字符串替换左侧的字符串。右手边的绳子显然必须是适合这种情况的绳子,左手边的绳子可以是你想要的任何东西。你可以使用"1"、"2"、"3"等键,它会起作用(尽管你会发疯)。

作为一个开发人员,你可以通过正确的策略来改善你的生活。我倾向于从不使用纯英文文本作为关键字,因为同一个英文单词可能有许多不同的翻译(例如,德语中的"关键字"可以是Taste、Schlüssel、Tonart和许多其他东西)。相反,我会写一些文字来描述文字的用途。

为了避免编译器找不到的错误键入键的问题,我倾向于为键使用#define语句。只需同步一个#defines和localizable.strings的列表,编译器就会告诉你是否拼错了#defined常量。

我倾向于用"格式"这个词来表示那些不直接使用的格式化字符串。所以我可能在一个头文件

#define kWelcomeBackLabelTitleFormat @"WelcomeBackLabelTitleFormat"

和在localizable.strings文件中

"WelcomeBackLabelTitleFormat" = "welcome back, %@";

(如果您错误地使用了小写b的"WelcomebackLabelTitleFormat",#define将保存您)。

最新更新