iPhone - 使用本地化资源

时间:2011-05-04 11:47:37

标签: iphone resources localization

我正在尝试将html文件显示到UIWebView中:

NSString *htmlPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"error.htm"];

NSError* error;
NSStringEncoding encoding;
NSString *htmlContent = [NSString stringWithContentsOfFile:htmlPath usedEncoding:&encoding error:&error];

NSString* bundlePath = [[NSBundle mainBundle] bundlePath];
[self.webView loadHTMLString:htmlContent baseURL:[NSURL fileURLWithPath:bundlePath]];

error.htm已本地化。使用此方法时,不加载任何页面。 htmlContent引用myApp.app/error.htm。但是我的所有error.htm文件都在本地化文件夹中 如果我使用另一个非本地化的HTML文件(error2.htm,error.htm的纯副本),则会显示它。

我如何使用本地化文件?

3 个答案:

答案 0 :(得分:4)

您正在使用根资源路径和字符串自己创建html文件的路径 - iPhone不是通灵的,它如何知道您已对本文件进行了本地化?

尝试使用

NSString *htmlPath = [[NSBundle mainBundle] pathForResource:@"error" ofType:@"html"];

相反 - 这应该为您处理本地化资源。

答案 1 :(得分:0)

本地化应该不是问题 - 我正在使用以下内容完全加载本地化的HTML文件:

NSString *path = [[NSBundle mainBundle] pathForResource:@"error" ofType:@"htm"];

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:path isDirectory:NO]];

// ...

[self.webView loadRequest:request];

答案 2 :(得分:0)

答案不正确(也不适用于我) - 这是用于加载本地化资源的函数:

- (NSString *)pathForResource:(NSString *)name ofType:(NSString *)ext inDirectory:(NSString *)subpath forLocalization:(NSString *)localizationName;

localizationName是两个字符的本地化语言代码。 顺便说一句 - 您可以使用以下方式获取默认/当前版本:

return [[[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"] objectAtIndex:0];