我正在开发一个本地化的应用程序,并且一切正常。 问题是我要允许用户在应用程序设置文件夹中专门为特定应用程序选择语言。 用户应该将其手机设置为一种语言(例如法语),以将应用程序设置为以英语运行。

我目前正在使用NSLocalizedString来获取本地化的字符串,但是通过宏的所有变体,我找不到一个可以让我指定语言的字符串。

关于如何做的任何想法?

#1楼 票数:15

这里有三个问题:

  • 弦乐
  • 其他资源(包括NIB)
  • 系统讯息

最后一个几乎可以肯定是不可修复的,因此我们将保留它。 它们将以设备语言显示。

其他两个可以解决,但是您将需要手工做更多的事情。 对于字符串,而不是创建单个Localizable.strings然后对其进行本地化,而是创建完全独立的表(English.strings,French.strings等)。然后,使用NSLocalizedStringFromTable() ,将语言作为表进行传递。

对于NIB,有两种方法。 您可以将每组本地化NIB放入其自己的Bundle中,然后将该Bundle而不是nil传递给-initWithNibName:bundle: 或者,您可以在[NSBundle -pathForResource:ofType:inDirectory:forLocalization:]找到[NSBundle -pathForResource:ofType:inDirectory:forLocalization:]之后手动加载它们。

#2楼 票数:12 已采纳

有一个更好的方法可以做到这一点。 您可以像这样强制使用该语言:

[[NSUserDefaults standardUserDefaults] setObject: [NSArray arrayWithObjects:@"en", nil] forKey:@"AppleLanguages"];

并通过以下方式撤消此设置:

[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"AppleLanguages"];

注意 您通常必须重新启动应用程序才能生效。

考虑是否需要调用[[NSUserDefaults standardUserDefaults] synchronize];

我同意几乎没有必要允许用户指定语言。 但是,唯一的例外是能够覆盖该语言并将其设置为开发人员的母语。 如果用户会说开发人员的语言(例如,对我来说是英语),那么如果翻译不正确,则他们可能希望以该语言使用该应用程序。

我引用以下答案: 如何强制NSLocalizedString使用特定语言 (答案实际上对我而言不起作用,但是遵循注释中的想法起作用了。我做了一些撤销操作。

#3楼 票数:3

通过从应用程序中选择特定语言的技巧是强制NSLocalizedString根据所选语言使用特定捆绑软件,

这是我为此http://learning-ios.blogspot.com/2011/04/advance-localization-in-ios-apps.html写的帖子

这是一个示例应用程序的代码https://github.com/object2dot0/Advance-Localization-in-ios-apps

#4楼 票数:1

正确的“用户体验”是供用户通过系统偏好设置面板选择其语言的; 不是您的应用程序(或应用程序的设置面板等)。 无法覆盖每个应用程序,我们也不想让任何应用程序更改系统范围的设置。

  ask by Ron Srebro translate from so

未解决问题?本站智能推荐:

1回复

如何本地化不同语言的iPhone应用程序?

任何人都可以解释我如何本地化iPhone应用程序? 我对XCode本地化概念感到困惑。
1回复

本地化iPhone应用程序

我开发了一个名为Eortes的命名日和生日提醒应用程序。 它还有一个免费版本,称为Eorteslite。 语言和命名日都是希腊语。 此处提供更多信息: http : //sites.google.com/site/eortesapp/我也想将这些应用程序本地化为其他语言。 1)在哪里可以
2回复

您如何本地化iPhone应用程序?

我想将我的iPhone应用程序本地化为英语以外的其他语言,但是我不认识会说意大利语或法语的人。 您如何将应用程序名称,描述和应用程序内容翻译成其他语言? 谁可以帮助解决这个问题? 有面向iPhone的翻译公司吗? 先感谢您。
3回复

如果我对iPhone应用程序进行了本地化,(描述语言)但是不更改我的应用程序,它将被拒绝吗?

我想为应用程序的描述添加本地语言,因此我制作了一个新版本,以便可以本地化描述。 但是,我并没有将任何应用程序更改为与位置相关的(这只是英文,这是一个相当简单的抵抗颜色代码计算器应用程序,没有太多文本,并且基于颜色编码运行。)因未能真正地“本地化”而被拒绝吗? 这是严格的指导原则还是可以更改应
1回复

使用应用程序定义的语言本地化iphone应用程序

嘿, 我可以通过本地化nib文件并向我的项目添加Localizable.strings文件来将iPhone应用程序本地化。 有没有一种方法可以将语言设置为特定于应用程序的语言,然后加载正确的字符串/文件? (这个想法来自加拿大人,他想要英语的设备,但有些法语的应用程序)
1回复

iPhone / iOS:如何在我的应用程序本地化的所有语言中获取本地化字符串列表?

我需要向服务器发送特定字符串的本地化列表。 这意味着,如果我的应用程序有一个字符串Foo,其本地化为英语为@“Foo”,俄语为@“Фу”,我想向服务器发送如下列表: String Foo: 英语:“Foo” 俄语:“Фу” 我认为我需要
1回复

iPhone应用程序根据每个国家/地区应用商店本地化并更改应用名称

我已经找到了如何本地化我的应用程序以及如何为用户拥有的每个区域设置更改应用程序的名称,但有人可以告诉我是否可以在应用程序商店中更改应用程序的名称? 我的意思是以下内容。 我的应用在英文应用商店中被称为“helo”。 如果用户来自意大利并试图在意大利应用程序商店中找到我的应用程序,我
1回复

本地化的iPhone应用程序中的系统按钮为随机语言

出于某种原因,UIBarButtonSystemItemDone(表示“完成”的按钮)在我的应用中以随机语言(大多是俄语,有时是中文)出现。 我已确保设备的语言为英语。 如果有人知道为什么会发生,那将很棒。 这是该按钮的屏幕截图。