当前位置 : 主页 > 手机开发 > ios >

ios – 故事板中UITextView的本地化

来源:互联网 收集:自由互联 发布时间:2021-06-11
所以我在故事板中有一个带有不同按钮,标签和一些文本视图的应用程序,我直接在故事板中输入文本.我启用了基本本地化并添加了几种语言. 这为Base(英语)和其他语言生成了故事板,其中
所以我在故事板中有一个带有不同按钮,标签和一些文本视图的应用程序,我直接在故事板中输入文本.我启用了基本本地化并添加了几种语言.

这为Base(英语)和其他语言生成了故事板,其中包含项目对象ID列表.
我翻译了所有内容,标签和按钮(ALL OF THEM)工作并以我设置的语言显示.

然而,无论我设置哪种语言,文本字段都会显示初始英文文本…
Text View是否还有其他步骤?

所以,我做了一些研究,似乎为了使其正常工作,需要以编程方式设置UITextView的文本.

资料来源:Devforums.apple

引用:

as I understand it, strings such as the text property of a text view/field have to be set in code using NSLocalizedString. The first 1/2 hour of WWDC 2013 video session #219 Making Your App World Ready covers this if you have the time to watch it

因此,似乎解决方法(如果您不想以编程方式设置文本)是在发布应用程序之前将字符串文件转换为故事板.这似乎按预期工作,并显示UITextView正确本地化.

编辑:找到另一种允许保留.strings文件的解决方法.

在 – (void)viewDidLoad:

for(UIView* v in self.view.subviews)
{
    if([v isKindOfClass:[UITextView class]])
    {
        UITextView* txv = (UITextView*)v;
        NSString *loctxt = [txv.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
        txv.text = NSLocalizedString(loctxt, @"");
    }
}

这会从故事板中的任何内容生成Percent Escapes编码的字符串,如下所示:

Hello%20World

在Localizable.strings文件中,使用上面的键作为键,这将在运行时为应用的语言环境在应用程序中生成本地化文本,如下所示:

"Hello%20World" = "Hallo Welt";

Percent转义会处理基本字符串中的所有转义字符.

网友评论