c# - 是否可以将大的本地化字符串换成他们自己的文件?

标签 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);

最佳答案

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

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

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

关于c# - 是否可以将大的本地化字符串换成他们自己的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7454026/

相关文章:

ios - 在 iOS 文档目录中保留数据

ios - 如何从以前的应用程序版本中删除 Settings.bundle?

c# - DirectoryNotFoundException C# 将 XML 文件加载到控制台应用程序时出错

c# - 为 .NET Core 类库项目选择框架版本 - Visual Studio 2019

iphone - 如何在与操作相同的线程中取消 NSOperation?

android - 我们是否需要下载移动应用程序的 SSL 证书才能访问安全的网络服务

c# - CS0034 C# 运算符 '-' 在类型为 'long' 和 'ulong' 的操作数上不明确

c# - 使用 Bazel 将二进制文件编译为多个版本的 .NET Framework

iphone - 从 ViewController 返回 View

objective-c - Cocoa iOS 通过碰撞将矩形变成圆形