iOS - 本地化的最佳实践

3
我已经开发了一个iOS应用,并将其翻译成了英语和瑞典语。我面临的问题是,英语中的一个单词在瑞典语中可能有两种不同的意思(翻译)。因此,现在我将英语单词作为键和值。我想能够拥有一个键,我可以随便称呼它并设置英文值以及瑞典语值,这样我就可以使用两个不同的单词将其翻译成瑞典语并保持英语的相同单词。大家觉得我该如何实现这一点?谢谢。
编辑:
// this can be "Kommentar" or "Kommentera" in Swedish (2 different words)
NSLocalizedString(@"Comment", @"Comment") 

What I would like to have is:

NSLocalizedString(@"Comment_adj", @"Comment_adj") // En: Comment, Swe: Kommentar
NSLocalizedString(@"Comment_verb", @"Comment_verb") // En: Comment, Swe: Kommentera

现在是否更加清晰明了?


1
很难理解你想要什么。你能否添加一些代码来示范你想要实现的功能? - joerick
这正是为什么你不应该逐字翻译的原因。 - borrrden
好的,我会进行编辑。 - Carnal
2
这是一个有效的问题——它不是关于逐字翻译,而是相同的“本地化字符串”(可以是单个单词)在不同的上下文中有多个翻译,因此需要一个不同的“键”——iOS使用默认语言作为“键”,这限制了本地化字符串的数量,因为例如“Post”(发布某事)和“Post”(如栅栏柱)成为一个单一的“本地化字符串”,当实际上应该是两个不同的字符串。 - jhabbott
+1 很好的有效问题。我猜一个有点太笼统的标题(“本地化的最佳实践”)对于不太熟悉iOS的人来说是误导性的,因此会有很多负评。 - Ilya Kurnosov
1个回答

3
解决这个问题的方法是使用NSLocalizedStringFromTable(<#key#>, <#tbl#>, <#comment#>)为您的本地化字符串提供一些上下文信息。
例如:
NSLocalizedStringFromTable(@"Post", @"SubmitScreen", @"The button text for the post button on the submit screen");
NSLocalizedStringFromTable(@"Post", @"FenceDiagram", @"The label for the fence-post on the diagram of the fence"); 

我正在使用本地化管理器应用程序来翻译我的单词。我使用genstrings生成了新的本地化文件,但它没有更新。我需要做些什么特别的吗? - Carnal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接