Jea*_*ent 23 internationalization ios
我在xCode中使用基础国际化来管理我的应用程序中的多种语言.
在xib文件中我有这个对象:
Xrj-9E-2VK it's an UITextView
Run Code Online (Sandbox Code Playgroud)
在相应的字符串文件中:
"Xrj-9E-2VK.text" = "text translated in french"
Run Code Online (Sandbox Code Playgroud)
但我的文字仍然是英文.
有什么建议吗?
Ron*_*ers 12
我找到了以下解决方法,直到Apple修复了iOS 7中仍然存在的这个(严重)错误:
你实际上需要'混合''基本本地化方法'(= Xcode 5和iOS 7的首选方法)与使用'Localizable.strings'文件的'旧'方法
1)创建文件'Localizable.strings'(文件 - >新建 - > iOS - >资源 - > .strings文件)
2)使用Xcode为您使用的每种语言创建此文件的本地化版本(选择文件'Localizable.strings',在'Localization'下的File Inspector中单击您使用的每种语言旁边的选择按钮).
3)在viewController中为UITextField创建一个IBOutlet @property:
@property (weak, nonatomic) IBOutlet UITextView *localizedTextView;
Run Code Online (Sandbox Code Playgroud)
4)在'viewDidLoad'下添加以下代码:
self.localizedTextView.text = NSLocalizedString(@"textFieldKey", @"comment for the translator");
Run Code Online (Sandbox Code Playgroud)
5)在每个'Localizable.strings'文件中添加:
"textFieldKey"="您希望将其放入textField中的翻译文本";
应该这样做!
请记住,Apple可能会在不久的将来某处修复此错误,在这种情况下,翻译将取自"基本本地化故事板"(具有对象引用的那个,如"a8N-K9-eJb.text") ="一些翻译文本".在这种情况下,您可以删除"Localization.strings"文件,并再次使用基本本地化为UITextField
这仍然出现在Xcode 6和IOS 8下,之前的答案不满足我.
这是我简单快速的解决方法:

如果您愿意,可以返回"Localizable Strings"...在这种情况下,请注意您必须至少运行一次带有"Interface Builder Cocoa Touch XIB"的应用程序.选择的选项.
您可以使用NSLocalizedStringFromTable在viewDidLoad中检索由xcode的IB生成的文本,如下所示:
self.intro_text.text = NSLocalizedStringFromTable(@"2Vy-59-WN8.text", @"Main", @"");
Run Code Online (Sandbox Code Playgroud)
其中2Vy-59-WN8.text是生成的密钥,您可以在UITextView的Main.strings中找到它.
BTW:这是一个xcode/IB错误,而不是iOS错误.
| 归档时间: |
|
| 查看次数: |
7951 次 |
| 最近记录: |