在iPhone上显示编译时不可用的本地化文本

时间:2010-09-10 15:15:33

标签: iphone internationalization multilingual

要在问卷调查应用程序中使用,Web服务将以用户在运行时选择的多种语言之一提供问题列表。问题将以所选语言从Web服务下载并显示给用户。

问题:我不知道该怎么做。

作为示例,我尝试在包含所述语言的文本样本的资源中加载UTF-8文本文件(例如arabic.txt)。文件在TextMate和TextEdit中打开并正确呈现,但在Xcode中难以辨认。它们已成功读入,但其内容不会显示。

实施例: 我创建了一个UITextView,在初始化时:

...
NSString *path = [[NSBundle mainBundle] pathForResource:@"arabic" ofType:@"txt"];
NSString *arabicString = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringENcoding error:&error];
myTextView.text = arabicString;
...

NSError返回NULL,因此文本文件中没有读取错误,但未设置UITextView的内容。什么都没发生。没有错误(编译或运行时),没有。

任何针对不同方法的想法?还是一种让这项工作的方法?

非常感谢。

1 个答案:

答案 0 :(得分:0)

您目前所做的事情听起来很合理,但对于我使用的不同方法(对我有用),请尝试使用UIWebView。有点像:

NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];
NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/arabic.html",path]];

NSData *data = [NSData dataWithContentsOfURL:url];
[self.helpWebView loadData:data MIMEType:@"text/html" textEncodingName:@"utf-8" baseURL:baseURL];

(有趣的是,在web视图中使用arabic.txt和mime-type of text / plain加载是否有任何不同。)