【问题标题】:Sets of English Strings combined with Localization that supports UIStoryboard英语字符串集与支持 UIStoryboard 的本地化相结合
【发布时间】:2020-09-15 21:12:02
【问题描述】:

我有一个用于跟踪/管理牲畜的应用。它目前支持一种物种,绵羊。我们希望开始支持多种不同的物种,例如山羊和牛。我的第一个想法是创建类似于NSLocalizedString(text, comment) 的东西,例如SpeciesString(text, species, comment),它将采用英文字符串和物种名称并将绵羊术语Ram 翻译成牛术语Bull。在内部,我可以使用NSLocalizedString() 将其进一步翻译成正确的语言,以便将来我也可以支持多种语言。

我发现我可以将tableName 传递给NSLocalizedString(),以便它使用除Localizeable.strings 之外的其他文件,这将允许我以编程方式从专注于牛的西班牙语文件中提取值绵羊(类似于Localizeable-sheep.stringsLocalizeable-cattle.strings),但这对故事板中的所有文本没有帮助。

我知道情节提要内置了对本地化的支持,但我遇到的问题是,当文本出现在我的代码中时,例如在viewDidLoad 中,它已经被翻译成其他语言,例如西班牙语。我希望找到一种方法,使我的视图中的文本在到达我的代码时已经具有正确的语言+物种组合。但即使我确实依靠以编程方式换出字符串以使用正确的物种,英语也已经改为西班牙语,我会得到Carnero而不是Ram,如果我尝试将它传递给我的@ 987654335@ 它与我的基础数据不匹配,因为我的基础数据是英文版文本的键控。

有没有办法创建自定义语言?我见过这个code that is used to change the localization language on the fly,它可以在enes 之间进行交换,但是我不能创建自己的假语言,比如en-sheepes-sheep

有没有:

a) 一种创建我自己的自定义语言的方法,以便本地化系统只选择我正确的语言+物种组合?

b) 一种告诉情节提要从哪个表名/文件名中提取字符串的方法?因此,我的Main.storyboard 不仅仅是一个字符串文件,而是被称为es.lproj/Main.strings,但我可以改为 es.lproj/Main-sheep.stringses.lproj/Main-cattle.strings?

【问题讨论】:

    标签: ios localization internationalization nslocalizedstring


    【解决方案1】:

    我认为我无法让我的“自定义语言”发挥作用只是一个意外疏忽。我创建了一个es-sheep.lproj/Main.strings 并使用the other SO post 以编程方式将我的语言设置为es-sheep,但它似乎不起作用......

    ...但事实证明我已经创建了这些目录和文件,但忘记将它们添加到项目中。一旦我将它们手动添加到项目中,它就会开始工作,并且我可以使用我的自定义本地化。

    【讨论】:

      猜你喜欢
      • 2015-08-18
      • 1970-01-01
      • 2010-12-24
      • 2011-07-22
      • 1970-01-01
      • 2010-12-13
      • 1970-01-01
      • 2016-07-09
      • 2018-12-27
      相关资源
      最近更新 更多