GTK 文件选择器对话框是否带有按钮和标题的本地化字符串?

问题描述 投票:0回答:1

在 Windows 和 macOS 上,文件选择器对话框内置于操作系统中,并且应用程序有一种方法可以告诉对话框将按钮和标题上的文本本地化为系统语言(通常通过不显式设置按钮和标题来实现)文本)。

在 Linux 上,虽然没有系统文件选择器对话框,但绝大多数应用程序都使用 GTK。但是,GTK 的文件选择器对话框要求用户提供按钮和标题文本的字符串:

dialog = gtk_file_chooser_dialog_new ("Open File",
                                      parent_window,
                                      action,
                                      "_Cancel",
                                      GTK_RESPONSE_CANCEL,
                                      "_Open",
                                      GTK_RESPONSE_ACCEPT,
                                      NULL);

将这些字符串留空或为 null 会导致按钮和标题根本没有文本,而不是有一些默认文本。

GTK 是否有自己的一套本地化默认按钮和标题文本供应用程序开发人员使用?

请注意,许多 Linux 应用程序使用 gettext 国际化库,但这取决于应用程序是否为它们希望支持的每种语言提供翻译数据库,这不是我想要的。我正在寻找一种方法,让我的应用程序能够以 GTK 知道的每种语言显示正确的对话框文本,即使我的应用程序没有翻译后的字符串。

另请注意,假设用户已安装正确的语言包,使用

gtk_message_dialog_new
创建的 GTK 消息对话框可以具有正确翻译的按钮文本,因为没有明确指定文本(您只需将
GTK_BUTTONS_OK_CANCEL
传递给它即可获得正确翻译) “确定”和“取消”按钮),但似乎没有等效的文件选择器对话框。

c dialog internationalization gtk
1个回答
0
投票

简短回答:不。

gtk_message_dialog
gtk_file_chooser_dialog
的行为有本质区别。由于 gnome 专注于 flatpak 开发,虽然
gtk_message_dialog
将始终使用 GTK 对话框,但从应用程序到
gtk_file_chooser_dialog
的调用并不总是使用 GTK 选择器对话框。如果应用程序在 QT 环境中运行,则此调用将打开标准 QT 环境选择器对话框。对于任何其他环境也是如此。

发生这种情况时,按钮内容的翻译可能与 GTK 的方式不同,因此应用程序负责执行此翻译,因为我们不知道其他环境是否会执行此操作,或者如何执行此操作它会做到的。要做的事。

© www.soinside.com 2019 - 2024. All rights reserved.