我正在尝试将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的纯副本),则会显示它。
我如何使用本地化文件?
答案 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];