是否可以将大型本地化字符串换成自己的文件?

时间:2011-09-17 10:17:06

标签: c# iphone ios xamarin.ios localizable.strings

目前我正在使用MonoTouch完成我的第一个iPhone应用程序。通过“* .lproj”文件夹进行本地化按预期工作。

如果UIWebView显示了一些用户指南,我会用LoadHtmlString()方法填充这个指南。 (即不需要互联网连接)。

由于文本有点长,我不希望它被放在“Localizable.strings”文件中,而是被换成一个完全独立的文件(因为我也是为Windows .NET应用程序做的) ):

Project structure in MonoTouch

在上面的屏幕截图中,我会在每个语言文件夹中都有一个“help.html”文件,并调用LoadHtmlString方法以与NSBundle.MainBundle.LocalizedString类似的方式从相应的文件中读取

我的问题:

是否可以使用每种语言文件并在MonoTouch应用程序中访问它们?

Dimitris解决方案的后续行动

基于Dimitris' solution,我通过以下代码解决了这个问题:

var localizedHtmlFile = NSBundle.MainBundle.PathForResource("help", "html");
var text = File.ReadAllText(localizedHtmlFile);

helpTextView.LoadHtmlString (text, null);

1 个答案:

答案 0 :(得分:6)

是的,当然有可能。您可以像这样获取本地化文件的路径:

string localizedHtmlFile = NSBundle.MainBundle.PathForResource("help", "html");

您可以将PathForResource方法用于各种不同类型的资源(PDF,图像等)。第一个参数是文件名,第二个参数是其扩展名。检查PathForResource方法的其他重载以获取更多选项。