gpt4 book ai didi

iphone - 无法使用 pathForResource 自动加载本地化资源

转载 作者:太空狗 更新时间:2023-10-29 15:25:31 24 4
gpt4 key购买 nike

我有一个 iPhone 应用程序需要本地化。字符串没有问题,但是,我在资源方面遇到了问题:我需要加载本地化的 HTML 页面。这些文件类似于:presentation.htm这些文件被添加到项目中,并带有它们所在的文件夹 (html/),并添加名为文件夹的组。

我用这段代码加载 html 页面:

NSString *pathPresentation = [[NSBundle mainBundle] pathForResource:@"presentation" ofType:@"htm"];

if(!pathPresentation) {
NSLog(@"Could not find presentation.htm");
}
NSURL *url = [NSURL fileURLWithPath:pathPresentation];
NSLog(@"-> path presentation.htm : %@", pathPresentation);
UIWebView *webViewPresentation = [[UIWebView alloc] init];
NSData *htmlData = [NSData dataWithContentsOfFile:pathPresentation];
if (htmlData) {
[webViewPresentation loadData:htmlData MIMEType:@"text/html" textEncodingName:@"Latin-1" baseURL:url];
}

第一次尝试:

我已按照本网站的指示进行操作 I Can Localize ,因为应用程序中还没有本地化资源。文件夹命名为:en.lprojfr.lproj

我在模拟器上试了一下,没成功:

  • 日志表明路径是:(...)/myapp.app/presentation.htm
  • 模拟器中加载的文件是法语的,而模拟器是英文的。

第二次尝试:

然后,我删除资源并将它们重新添加到它们的组文件夹 (Resource/html/) 中。我按下信息按钮,并选择“使文件可本地化”。该文件已添加到 English.lproj 文件夹中。然后我选择“添加本地化”和“法语”。

我在模拟器上试了一下,但没有成功(我在测试前清理了构建):

  • 日志表明路径是:(...)/myapp.app/presentation.htm
  • 模拟器加载的文件是法语的,而模拟器是英语的。

第三次尝试:

看完this page关于在 iPhone OS 4.0 上加载本地化资源,我更改了本地化文件夹中的资源(删除资源,并重命名 en_UK.lprojfr_FR.lproj 中的文件夹

我在模拟器上试了一下,但没有成功(我在测试前清理了构建):

  • 日志表明路径是:(...)/myapp.app/presentation.htm
  • 模拟器中加载的文件是法语的,而模拟器是英文的。

帮助?

有什么想法吗?我知道有这个功能:- (NSString *)pathForResource:(NSString *)Name ofType:(NSString *)extension inDirectory:(NSString *)subpath forLocalization:(NSString *)localizationName

但我希望它尽可能自动,修复 Directory 或 localizationName 等内容可能会阻止我的应用程序自动运行。

最佳答案

解决方案是:

  1. 从模拟器(或设备)中删除应用程序
  2. 使用简单的本地化文件夹,如:en.lproj
  3. 清理构建

关于iphone - 无法使用 pathForResource 自动加载本地化资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3512213/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com