1

我使用这些方法

[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObject:@"ar"] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize]; 

强制我的应用程序在运行时更改其本地化(当用户点击一个简单调用这些方法的按钮时)并且它运行良好,但是,这些方法不足以将整个 XIB 切换到新语言(在我的case,阿拉伯语),假设我有一个名为 XCode 的 XIBHomeViewController.xib作为 XCode 中的一个目录打开,一个包含两个文件的目录:HomeViewController.xib (English)并且 HomeViewController.xib (Arabic)每个文件根据语言都有自己的布局(例如,阿拉伯语 xib 具有从右到左的控件布局。 .),我尝试调用removeFromSuperView当前控制器上的每个控件,然后调用addSubView控件,但没有任何改变,应用程序仍显示英文 XIB。

当点击该语言按钮时,如何让我的应用程序在运行时将其 XIB 更改为正确的本地化版本。

ps 当我在系统设置中更改整个模拟器本地化时,应用程序按预期工作,即它显示正确的本地化 XIB。

4

2 回答 2

2

在运行时决定xib将加载哪个,正如您所说,当您更改模拟器设置时,您可以看到阿拉伯语屏幕。

因此,决定xib取决于您在用户默认值中给出的内容,然后它检查语言环境并对应于加载的语言环境 xib。

于 2011-12-25T11:23:41.963 回答
-1

一些开发人员几乎解决了这个问题,请看一下这个示例应用程序: https ://rapidshare.com/files/3434929956/LangSwitch.zip 它将整个 XIB 即时从阿拉伯语切换到英语,反之亦然,我是什么'我现在坚持的是:我需要这个示例应用程序被标记,即带有两个选项卡的选项卡栏控制器,每个选项卡包含一个视图控制器(你知道,通常的方式),任何人都可以解决这个问题非常感谢他/她......等待你的帮助......

于 2011-12-26T19:00:09.947 回答