Iphone 在XCode中本地化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

我有一个本地化的iOS应用程序,我希望在其中包含一些本地化的HTML文件。我想不出怎么做

当前,我的文件夹结构如下所示:

/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]]