问题标签 [qtranslator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
221 浏览

c++ - 具有真实 QLocale 的 Canonical QTranslator 示例

似乎大多数关于QTranslator和安装它们的文档QApplication都是针对.QLocale

在现实世界中,用户的区域设置必须考虑语言和国家/地区,这通常通过首先获得一种语言的翻译文件 ( en),然后为使用该语言的每个国家/地区的附加翻译文件 ( en_US) 来实现。

使用默认值QLocale(),加载适当翻译文件(一个、两个或无,取决于存在的文件)的最优雅方式是什么?

这里有一些正确的代码,但有点太麻烦了。

0 投票
1 回答
562 浏览

c++ - 如何记录 QObject::tr 的原始字符串并仍向 GUI 显示翻译?

在我的项目中,我们希望翻译用户界面,但保留英文的技术日志。我同意这两种消息应该保持分开,但有时我们会同时显示和记录一些错误消息。
使用QObject::tr你会得到翻译后的字符串,并且无法检索源字符串。

如何在不复制/粘贴的情况下管理原始版本的日志+翻译版本的显示?
我愿意接受任何建议,包括设计限制。

0 投票
1 回答
176 浏览

c++ - Qt Translator 在 Lambda Slot 中不起作用

我试图说服我的 Qt 应用程序翻译虚拟对话框中的按钮。由于未知原因,第一个对话框翻译为德语,但在 lambda 槽中执行的对话框没有翻译。我已经尝试使用较旧的信号语法来查看 lambda 表达式是否是问题所在,但它并没有改变结果。RTWindow 构造函数完成后,应用程序构造函数完成并main()调用app.exec(). 我无法控制任何可能取代翻译器的代码。

在此代码中,通过单击菜单项调用的回调会创建未翻译的对话框。在构造函数中创建的对话框被翻译。

我没看到

翻译与这些行一起安装:(QApplication 派生构造函数)

我得到“加载了基本翻译器”的输出。有谁知道,翻译有什么问题吗?

0 投票
1 回答
163 浏览

c++ - 为什么在 Qt 中创建主窗口之前必须加载语言包?

我刚刚学会了如何在 Qt 中为我的应用程序设置语言包,我目前有两个问题。我写了一个最小的应用程序来显示让我感到困惑的地方。
我创建了一个主窗口,其中仅包含一个QLabel显示文本和一个QPushButton将标签文本从中文更改为英文。
这是我的代码:

问题一:
在构造函数中可以看到,我是先加载语言包的,不然QLabel就是不显示中文。我可以在构造函数中创建其他所有内容之前加载中文语言包,也可以main.cpp在创建MainWindow对象之前加载。我是不是弄错了,还是只需要在创建类对象之前加载那些语言包?

问题二:
正如你在代码中看到的那样,我点击了按钮并删除了中文语言包并安装了新的翻译器以加载英文语言包。但没有任何效果。那么如何在应用程序中动态更改语言?我知道这个问题可能很简单,但我在网上找不到任何有用的例子来告诉我如何做到这一点?那么有人可以告诉我一种方法来做到这一点或给我一个提示吗?

希望我能清楚地解释自己,并提前感谢。

0 投票
1 回答
141 浏览

c++ - QTranslator:为什么app的某些部分没有翻译?

有一个工作应用程序,我正在为 GUI 添加一种新语言。一切正常,但应用程序的某些部分根本没有翻译。QLinguist 检测到所有这些,我添加了新的翻译,但仍然没有结果。

这是未翻译的代码片段:

“imagecropwindow_p.h”

“imagecropwindow_p.cpp”

“imagecropperwindow.h”

“imagecropperwindow.cpp”

“main.cpp”

你可以在这里找到整个项目。

PS:举个例子,我加了星号(*)作为新的翻译,比如

0 投票
1 回答
18 浏览

tr - QTranslator tr() - 初始空格有问题吗?

我有以下代码片段:

如果我用法语运行,那么我可以看到以下 QString:“Selectionner Version et Configuration”(正确)

但是,英文原版给了我以下内容:“请选择ReleaseandConfig(不正确)”

如果我修改代码以删除第一个 tr() 调用然后 - 用英语 - 我得到:“请选择 ReleaseandConfig”(这对于第一部分和我想要的都是正确的)

tr() 是否会从任何原始(英文)文本中去除初始空格?

0 投票
1 回答
136 浏览

c++ - QTranslator 在 if 语句中使用时不起作用

我使用 Qt Linguist 添加了一个翻译文件。然后我在加载我的应用程序时继续使用QTranslator

这工作正常。现在我只想在系统语言还不是默认语言时才使用翻译,所以我做了以下操作:

但是,这不起作用。例如,如果一个英语系统,翻译器不工作,并使用应用程序的默认语言(在本例中为意大利语)。

的输出qDebug()是:

LANGUAGE QLocale::English true

添加翻译 true true

0 投票
0 回答
121 浏览

python - 获取给定语言的 pyqt5 qlabel 小部件翻译(不显示)

我使用 PyQt5 制作了一个程序/应用程序。我在 QtDesigner 中制作了 gui 并使用此处的信息(如何在 PyQt5 上动态更改语言(翻译)?),我能够将其设置为将语言从英语切换为日语。谢谢你的stackoverflow。

我目前的问题是相关的。我希望能够获得小部件标签的未翻译文本,而不管它显示的语言是什么。

例如,我有一个 QTreeWidget。我做了一个函数来查找树中所有被检查的部分。像这样:filters.get(tree.topLevelItem(1).text(0), 'selected]) 输出是顶级项目中选定项目的字符串列表。例如:[categoryA, categoryB, categoryF] 然后我使用这些选定的值作为键来过滤包含这些条目的字典。因此,如果我有一个 categoryA 到 Z 的字典,则仅选择树选择的三个条目。

但是,如果树中显示的文本语言不是用于字典条目的语言,则此方法不起作用。而且我不想为每种语言制作单独的字典。

那么,如何获取 QLabel 文本的未翻译版本?或者,我如何使用 ts 文件字典在代码中动态翻译?

0 投票
1 回答
136 浏览

qt - 如何在 QObject 中捕获 QEvent::LanguageChange

我的目标是QObject即时重新翻译一个子类。

捕获QWidget起来非常简单QEvent::LanguageChange:我们只需覆盖changeEvent. 但是,没有这种方法,QObject这就是我卡住的地方。

如何QEvent::LanguageChange赶上QObject

0 投票
1 回答
574 浏览

python - PyQt5 QTranslator 翻译不适用于常量文件

我正在尝试学习 pyqt 和一些 mvc 模式的东西。我还想为我的应用程序进行一些翻译。基本实验效果很好,所以我尝试在我的应用程序中实现它,但我现在在这里挣扎。

这是我初始化 QTranslator 的地方:

我的控制器初始化视图,从模型中收集数据:

在我看来,我有一个函数,它从字典创建菜单,字典本身是文件 constants.py 中的常量

常量.py:

但是,有问题的部分不会被翻译。(我创建了 ts 文件,在 QT linguist 中对其进行了编辑并构建了 qm 文件)

如果我放置一些单个代码,例如:

在我的代码中的任何地方,该字符串都被正确翻译此外,如果将 MENU 常量直接放入我的模型中,一切都很好。但是,我更喜欢使用单独的常量方法(因为会有更多)

所以问题是,为什么我的代码没有按原样翻译?

根据要求,一个简单的工作示例(minimal.py):

(其他.py):

constants.py 如上