gpt4 book ai didi

ios - 在应用程序内更改语言后更新所有 UIViewController

转载 作者:行者123 更新时间:2023-12-01 16:45:50 24 4
gpt4 key购买 nike

我想知道如何更新具有 nib 文件和 UITableview 作为 subview 的 View Controller ,而我在我的应用程序的设置页面中更改语言而不是设备语言。我可以考虑在这种情况下使用 NSNotificationCenter,但同时我还需要考虑更新表格单元格的标签。我不能或不愿意重新加载表格,因为我在 cellForRowAtIndexPath 方法中做了很多事情,因为表格有很多数据。再次使用委托(delegate)方法也是一个问题。任何人都可以建议/帮助我如何在不重新加载表格 View 的情况下解决这个问题。

最佳答案

对于自定义本地化,请执行此操作(此答案特定于此问题,不能替代本地化)

在您的定义文件中创建一个宏。如果你还没有的话

添加新文件->将其命名为Defines.h->删除其.m->删除其.h中的所有内容->将其导入.pch。

现在在其中定义一个宏LOCALISEDSTRING(m) [[[NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Language" ofType:@"plist"]] objectAtIndex:globalIntIndex]objectForKey:m]
你的“globalIntIndex”也在defines.h中声明,为每种语言设置适当的索引值。

现在添加一个 plist 文件并将其命名为“Language”,在其中添加您的语言作为数组元素,并在每种语言中添加带有字符串值的 KEY 作为字典。每种语言的 key 都相同

enter image description here

Plist 看起来像上图,将所有英文文本放在第 0 项中,将俄语文本放在第 1 项中。

现在你可以像 NSLog(@"%@",LOCALISEDSTRING(@"KEY")); 一样使用它了
如果 globalIntIndex=0 那么它将以英语打印字符串,否则它将以俄语打印字符串。

关于ios - 在应用程序内更改语言后更新所有 UIViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19994401/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com