iPhone:本地化/国际化默认字符串文件

问题描述:

我目前有两种支持的语言:英语和西班牙语。因此,我为每种语言都有两个main.strings文件。一个在en.lproj,另一个在es.lprojiPhone:本地化/国际化默认字符串文件

我现在想要的是,如果用户使用的区域设置不是enes,则用户将会使用英文main.strings作为默认文件。 defr

我知道我可以用defaultString参数手动设置每串代码:

NSLocalizedStringWithDefaultValue(key, @"main",[NSBundle mainBundle], defaultString, comment); 

但我宁愿不存在再次输入(并有两处修改),而是将enmain.strings文件作为任何其他“不支持”区域设置的默认值。

我现在想的是,英语 main.strings是默认的文件,如果用户 比EN或ES 以外的环境中到达应用,例如de或 fr。

你试过吗?我几乎可以确定,如果没有你做任何事情,应用程序将回退到英文语言环境。除非您的应用程序明确支持当前的语言环境,否则即使系统对话框也会以英语显示。

+1

哎呀公布。你是完全正确的。愚蠢的我没有彻底测试。我没有使用完全不同的语言,而是使用“es”进行测试,为此我已经创建了一个空字符串文件。 – znq 2010-06-23 15:27:16

+6

回退取决于[NSLocale preferredLanguages]的顺序而不是默认英语。例如,如果你从中文切换到德语,第一个是德语,第二个是中文,所以如果应用程序支持中文,那么它显示中文而不是英文 – chings228 2014-04-02 07:33:22

+0

这一个上面应该是接受的答案 – 2015-11-08 19:55:05

如果你想避免这种长语法,我另一种解决方案在这里

Localizing strings in iOS: default (fallback) language?