问题标签 [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.
python - QTranslator 如何处理语言环境修饰符 PyQT?
我在加载翻译文件时遇到问题,QTranslator
因为它有一个语言环境修饰符。我正在使用的代码是,
这段代码几乎适用于所有语言环境,除了包含修饰符 (EG sr_RS@latin.UTF-8
) 的语言环境。在这种情况下,无论其名称如何,它都不会加载翻译文件。
我似乎无法弄清楚该翻译文件的名称,或者我需要实现哪些新代码才能使此代码正常运行。
在此先感谢,乔希
c++ - 如何区分翻译不存在或翻译与来源相同?
我QCoreApplication::translate()
用来翻译文本。
我试图了解一个字符串是否有翻译。
Qt 文档指出:
如果没有翻译文件包含
sourceText
上下文中的翻译,则此函数返回QString
等效的sourceText
.
我面临的问题是我得到的结果类似于:
来源和翻译相同的地方。
在许多语言中,翻译确实与来源相同。但如果translate("Side")
返回"Side"
,我无法判断翻译是否准确"Side"
或翻译是否为空。
如何区分这两种情况?
c++ - 为什么我的 C++ Qt UI 被翻译了,但我的程序中的 QStrings 没有被翻译?
我需要用法语翻译我的英文 UI,所以我使用 .ts 和 .qm 文件完成了所有必要的工作,将其加载到 QTranslator 类中,并将其安装到 QApplication:
稍后,我创建并附加到 InterfaceWidget 另一个名为 ConfigurationTabUI 的小部件(在选项卡中):
相应的 UI 也正确翻译为法语。
这是我的问题:在 ConfigurationTabUI 的方法中,当我尝试翻译一个简单的 QString 时它不起作用:
我真的不知道为什么...感谢您的帮助。
注意:我使用 Qt5.2 并仔细检查了 .ts 文件是否包含正确的翻译字符串。
c++ - 在 translations.qrc 文件中读取翻译器文件 .ts/.qm
我正在尝试在我的 Qt 项目(Linux 系统上的 Qt 5.6)上导入翻译文件,但我无法上传翻译文件,因为该QTranslator::load
方法总是返回false
。
我有以下“testTrl”项目结构:
在项目根目录上,我有“resources”文件夹,其中包括“qml.qrc”、“translations.qrc”和“translations”文件夹:
我已经使用“lrelease”和“lupdate”命令获得了“.ts”和“.qm”文件。
项目文件:
testTrl.pro 文件:
translations.qrc 文件:
main.cpp 文件:
“isFileTranslatorLoaded”始终为“假”。我该如何解决这个问题?
c++ - Qt - 使用内置翻译
我正在使用 Qt 并希望翻译 Qt 小部件显示的“本机”文本。例如,通过“本机显示的文本”,我指的是上下文菜单中显示的文本编辑(复制,粘贴,...)。
这是我已经完成的:
对于Qt5.6.2 和 MinGW 用户, qt_fr.qm文件位于path_to_qt/Qt5.6.2/5.6/mingw49_32/translations 。我将上述文件复制到正在运行的软件目录,但翻译器总是无法加载它。但是当我使用自己的 qm 文件(使用 Qt lupdate 和 lrelease 工具从 .ts 文件构建)时,qm 文件已正确加载和安装。
我有什么遗漏或做错了吗?
c++ - 为什么我需要一个 QTranslator 来在 Windows 上的 QMessageBox 中本地化按钮文本?
我正在开发一个在 Linux 和 Windows 上运行的 Qt 应用程序。我在德国地区。
在 Linux 上构建它时,我得到了标准按钮的正确翻译,例如QMessageBox::question
带有QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel
按钮集的标准按钮(在我的例子中是“Ja”、“Nein”和“Abbrechen”)。
但是,如果我在 Windows 上构建代码,我只会获得这些按钮(“是”、“否”和“取消”)的 C 语言环境(英语)文本。
经过一番搜索,我通过添加找到了一个全球可行的解决方案
和
到我的main.cpp
.
使用它,我还可以在 Windows 上获得翻译后的字符串。然而,在 Linux 上,qtTranslator.load
调用失败,因此我之前的状态没有任何变化,所以我最终将该代码放在一个#ifdef Q_OS_WIN
块中。
这可行,但对我来说似乎有点hacky。另外,我不明白为什么我默认在 Linux 上而不是在 Windows 上得到翻译后的字符串。
我这样做的方式是正确的解决方案吗?如果是这样,为什么我需要在 Windows 上添加额外的代码?
qt - 如何基于 QTranslator 更改 QPushButton 的图标字符串
我有一个带有按钮的应用程序,这些按钮为各种点击状态设置了图标,没有设置或显示实际的 QPushButton 文本;它都包含在图标中。
这些图标文件包括需要翻译的文本,并且已经为每种语言和状态生成。我正在寻找一种方法来使用 QTranslator 或 QAction 类来根据所选的主要语言自动选择要使用的按钮的本地化版本。
例如:
我已按照QT Wiki: Multi Language Application上的说明进行操作,但按钮未显示在生成的翻译 (.ts) 文件中。根据语言为其使用的每个实例都设置一个 switch case 并不理想。
qt - 如何从应用程序中删除所有 QTranslator?
我想为每种语言使用QCoreApplication::installTranslator
几个不同的.qm
文件来更改语言(项目的不同部分导致不同的 .qm 文件)。
可以使用多个 .qm 文件:
QCoreApplication::installTranslator(QTranslator *translationFile)
可以安装多个翻译文件。翻译按安装时的相反顺序搜索,因此首先搜索最近安装的翻译文件,最后搜索安装的第一个翻译文件。
但是,如果我不删除年长的翻译人员,他们仍然是翻译的候选者。即使他们是最近安装较少的翻译器。
如何在加载所需文件之前清除之前加载的任何文件?
我看到的唯一方法是保留我安装的指针,并在我想更改时将它们一一删除,但是还有更直接的方法吗?
python - 使用带有 pyqt 的组合框动态更改应用程序的翻译
我正在创建一个带有组合框的简单窗口,让用户选择要在整个应用程序中显示的文本语言
我已经创建了必要的 .qm 文件,并且在我启动应用程序时正在更新文本。但是如何将它链接到组合框上的选项,并从主窗口中动态更改语言?
我的代码:
基本上我想让组合框做这样的事情:
我假设我必须以某种方式将参数从 mainWindow 传递给 main() 函数并重新加载所有内容。
这甚至可能吗?
OSX 10.11.6 上的 Python 2.7、QT 5.9.1、PyQt4 4.12.1
编辑:
我在 QT wiki 页面上发现了这篇文章,可以满足我的要求,不幸的是我根本不精通 C。如果有人能帮我把它翻译成python,我将不胜感激。
qt - How can I include C:\Qt\5.9.1\msvc2015\translations .qm files (Qt framework qm files) in Visual Studio Qt project?
How can I include C:\Qt\5.9.1\msvc2015\translations .qm files (Qt framework qm files) in final release, Visual Studio Qt project?
I am loading the files using:
in release and debug the translations work, but in the final build they don't and it is most probable that it's because they are not added.
I noticed that if i move them in my project they are not loaded.