如何本地化初学者的ios标签string
你好,我很困扰在ios本地化的进程。
inheritance人我明白,如何去项目探索和设置不同国家的基地本地化,
如何创build一个string文件并将其设置为本地化到基本本地化中select的特定国家之一
如简体中文
键值对以及如何对应“HELLO WORLD”一词=“某种其他语言”; 在本地化的string文件中
如何编写一个简单的标签与编写你好的世界编写的应用程序不会在中文模拟器中更改为中文。
inheritance人,我认为我会出错。
我想我需要将屏幕上的string连接到我的本地化string文件中包含的string。
和我做每个语言的单独的string文件?
即时通讯寻找一个非常简单的应用程序存根,其中不包含任何东西,只有几个标签被翻译成不同的语言,所以我可以学习如何使它连接和工作,所以我可以用它在别的地方。
有一个中文的故事板,我必须做任何工作到那个? 还是留空了?
在阅读文档几小时之后,我似乎正在围绕着这个问题进行讨论,即使没有在这个问题上的苹果文档印象深刻,
对于本地化,你需要做的是:
- 为每种语言添加不同的.strings文件
- 为每个语言文件添加Key值
- 使用:
NSLocalizedString(yourKey, nil);
要么
[[NSBundle mainBundle] localizedStringForKey:(yourKey) value:@"" table:nil]
获取传递键的本地化string。
教程:
- iOS应用程序的本地化变得简单
- iPhone应用程序本地化指南
- 准备iOS应用程序在Xcode本地化
做得漂亮
对于Swift来说,有更好的解决scheme可以让你的本地化变得更好 – 不是那么混乱。 您可以使用以下扩展名:
extension String { var localized: String { return NSLocalizedString(self, tableName: nil, bundle: NSBundle.mainBundle(), value: "", comment: "") } func localizedWithComment(comment:String) -> String { return NSLocalizedString(self, tableName: nil, bundle: NSBundle.mainBundle(), value: "", comment: comment) } }
现在,只要你想要一些本地化的东西,你可以只要求它作为string属性:
let text = "my-localization-key".localized
它会根据您当前的系统语言/语言环境获取本地化string。
几点提示
如果你有更大的项目,那么值得去找经理人员,他们会为你处理本地化出口/增加新的语言。 我例如使用Crowdin – 但你可能会发现一些服务更具吸引力。 好事是你不必手工做所有事情,你只需要插入键/翻译,并为你所有的语言输出完成。
另外,请按照您的密钥命名。 基于我所见过的人们的经验,我认为按逻辑组件/模块命名键是明智的,例如:
"Profile.NavigationBar.Title" = "Profile"; "Profile.NavigationBar.Button.Edit" = "Edit;
这样,你可以立即看到什么和在哪里可以find它。
最后,由于你可以做的错误的数量,一般的本地化是巨大的痛苦。 有一个发生器可以创build你的本地化的实际代码,所以编译器会检查你的。 你可以在GitHub上得到它 。
祝你好运!