【发布时间】:2015-07-08 13:16:52
【问题描述】:
我有一个使用 Gtk# 和 .NET(没有 Mono)的 C# 应用程序。我尝试翻译此应用程序中的 Gtk.Label,但没有成功。
mo 文件位于:
C:\locale\de\LC_MESSAGES\aboutbox.mo
我可以通过以下方式访问文件和字符串:
// Does not work and results 'Product'
Mono.Posix.Catalog.Init("aboutbox", @"c:\locale");
var proPosix = Mono.Unix.Catalog.GetString("Product");
// Works and shows translated string
Mono.Unix.Catalog.Init("aboutbox", @"c:\locale");
var proUnix = Mono.Unix.Catalog.GetString("Product");
作为一个结论,我认为 mo 文件是正确的。 主要问题是,在 Gtk# 中这也不起作用:
GtkBuilder 已初始化:
_aboutBuilder = new Gtk.Builder();
_aboutBuilder.TranslationDomain = "aboutbox";
//_aboutBuilder.AddFromString(System.IO.File.ReadAllText(deviceGladePath));
var result = _aboutBuilder.AddFromFile(deviceGladePath);
Thread、UiThread、LANG、LANGUAGE 上的语言设置为“de”。所以没想到会是这个问题。
问题: 1) 为什么 Gtk# 翻译不起作用? 2) 为什么 Posix.Catalog 不工作,但 Mono.Catalog? 3) 如何在 gtk# 中设置语言环境目录? (可能是问题)
我玩了几天,但找不到任何东西。
【问题讨论】:
标签: c# localization internationalization gtk gtk#