Iphone 在XCode中本地化HTML文件
我有一个本地化的iOS应用程序,我希望在其中包含一些本地化的HTML文件。我想不出怎么做 当前,我的文件夹结构如下所示:Iphone 在XCode中本地化HTML文件,iphone,ios,ipad,localization,uiwebview,Iphone,Ios,Ipad,Localization,Uiwebview,我有一个本地化的iOS应用程序,我希望在其中包含一些本地化的HTML文件。我想不出怎么做 当前,我的文件夹结构如下所示: /myapp /en.lrproj /Localizable.strings /fr.lrproj /Localizable.strings /webviews /view1 /index.html /pic1.png /view2 /index.htm
/myapp
/en.lrproj
/Localizable.strings
/fr.lrproj
/Localizable.strings
/webviews
/view1
/index.html
/pic1.png
/view2
/index.html
/pic2.png
如您所见,我目前已将视图组织到它们自己的文件夹中,其中包含相关的图像
在XCode中,当我选择Localizable.strings文件时,我可以添加新的本地化。当搜索这个问题的解决方案时,我看到其他人也对HTML文件做了同样的操作,但是当我选择HTML文件时,没有显示本地化选项,所以我想知道文件夹结构是否是问题所在
另一方面,我不知道如何将HTML组织到语言代码文件夹中,同时不复制必须在旁边显示的图形
很明显,我不明白什么-我需要做什么才能让它工作
谢谢
Tim将index.html放在本地化的.strings旁边,将图片保存在web视图目录中:
/myapp
/en.lrproj
/Localizable.strings
/view1/index.html
/view2/index.html
/fr.lrproj
/Localizable.strings
/view1/index.html
/view2/index.html
/webviews
/view1
/pic1.png
/view2
/index.html
/pic2.png
生成文件路径:
NSArray* availableLocalizations = [[NSBundle mainBundle] localizations];
NSArray* userPrefered = [NSBundle preferredLocalizationsFromArray:availableLocalizations forPreferences:[NSLocale preferredLanguages]];
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" inDirectory:@"view" forLocalization:[userPrefered objectAtIndex:0]];
html树中的图片现在类似于
/myapp/en.lrproj/view1/index.html
/myapp/webviews/view1/pic1.png
在index.html中,使
标记指向。/../../../webview/pic1.png
(不确定您需要的。/
的数量。您可能需要打开一个终端,导航到/myapp/en.lrproj/view1/,然后使用ls../../../webview/pic1.png
)我假设“webviews/view1/index.html”是英语,“webviews/view2/index.html”是法语
NSString *dir = NSLocalizedString("webviews/view1", @"webdir");
NSString *path = [[NSBundle mainBundle]pathForResource:@"index" ofType:@"html" inDirectory:dir];
法语的可本地化字符串
/* webdir */
"webviews/view1" = "webviews/view2";
我在ViewController中使用下面的代码测试了上述代码
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:path]]];
“webviews”目录应该是Xcode中的“文件夹引用”,而不是组。
(蓝色目录图标,非黄色)
另外,注意不要在目录名后添加斜杠,如“webviews/view2/”。
当我在iOS5.x上运行它时,我发现这可能是一个问题(我在5.0.1和5.1.1上进行了测试)。但在iOS 6.1.2上没有问题。您好。我设置这个有问题。在Xcode中,如何将目录结构添加到语言资源目录中?如果我添加一个XCode“组”,那么在部署它时,我将丢失该结构。如果我添加了一个文件夹引用,那么我就不能通过Xcode添加新的本地化,并且我的翻译工具(Linguan)也不会提取文件。使用Finder放置文件,然后返回Xcode,将文件添加到项目中。如果文件已经是项目的一部分,请使用“实用程序”视图更新路径。对不起,我不能帮你学语言。我必须将xx.lproj文件作为文件夹引用直接添加到项目中,以便在复制时保持其内部文件夹结构完整。Xcode解决了这个问题。然后我可以按照你的建议去做(通过一个bug修复,因为你不能将数组传递给forLocalization:参数)。我已将其改为
for本地化:[userpreferred objectAtIndex:0]]代码>