summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTarja Sundqvist <tarja.sundqvist@qt.io>2024-01-22 23:08:02 +0200
committerTarja Sundqvist <tarja.sundqvist@qt.io>2024-02-20 15:35:25 +0000
commit925864c123ba736618af49f4ee0d2ebb25aa403b (patch)
tree4269d316bd7f0490832a01fb703b7549f857fac6
parent0f75d2b2e6c4a049682c2cc520cfc9184ef52454 (diff)
parentebfc89aa0b6a62a4fe17ed4a97c70518b8332dc1 (diff)
Merge remote-tracking branch 'origin/tqtc/lts-6.2.8' into tqtc/lts-6.2-opensource
Conflicts solved in a file: dependencies.yaml Change-Id: I95e4a36dccc0859554760e135e57533ed2225e73
-rw-r--r--.cmake.conf2
-rw-r--r--.gitignore145
-rw-r--r--.qmake.conf2
-rw-r--r--dependencies.yaml6
-rw-r--r--examples/uitools/textfinder/forms/textfinder.ui6
-rw-r--r--examples/uitools/textfinder/main.cpp1
-rw-r--r--examples/uitools/textfinder/textfinder.cpp12
-rw-r--r--src/assistant/assistant/helpenginewrapper.cpp5
-rw-r--r--src/assistant/assistant/helpenginewrapper.h3
-rw-r--r--src/assistant/assistant/mainwindow.cpp6
-rw-r--r--src/designer/src/components/formeditor/qmainwindow_container.cpp9
-rw-r--r--src/designer/src/components/propertyeditor/designerpropertymanager.cpp3
-rw-r--r--src/designer/src/components/propertyeditor/designerpropertymanager.h1
-rw-r--r--src/designer/src/components/propertyeditor/paletteeditor.cpp32
-rw-r--r--src/designer/src/designer/doc/snippets/CMakeLists.txt10
-rw-r--r--src/designer/src/designer/doc/snippets/autoconnection/CMakeLists.txt24
-rw-r--r--src/designer/src/designer/doc/snippets/autoconnection/autoconnection.pro1
-rw-r--r--src/designer/src/designer/doc/snippets/autoconnection/imagedialog.cpp11
-rw-r--r--src/designer/src/designer/doc/snippets/autoconnection/imagedialog.h2
-rw-r--r--src/designer/src/designer/doc/snippets/imagedialog/CMakeLists.txt24
-rw-r--r--src/designer/src/designer/doc/snippets/imagedialog/imagedialog.pro1
-rw-r--r--src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_extension_default_extensionfactory.cpp19
-rw-r--r--src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_extension_extension.cpp5
-rw-r--r--src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_extension_qextensionmanager.cpp4
-rw-r--r--src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractformeditor.cpp61
-rw-r--r--src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractformwindow.cpp12
-rw-r--r--src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractformwindowcursor.cpp3
-rw-r--r--src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractformwindowmanager.cpp7
-rw-r--r--src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractobjectinspector.cpp7
-rw-r--r--src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractpropertyeditor.cpp17
-rw-r--r--src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractwidgetbox.cpp3
-rw-r--r--src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_uilib_abstractformbuilder.cpp67
-rw-r--r--src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_uilib_formbuilder.cpp3
-rw-r--r--src/designer/src/designer/doc/snippets/multipleinheritance/CMakeLists.txt24
-rw-r--r--src/designer/src/designer/doc/snippets/multipleinheritance/imagedialog.cpp6
-rw-r--r--src/designer/src/designer/doc/snippets/multipleinheritance/imagedialog.h2
-rw-r--r--src/designer/src/designer/doc/snippets/multipleinheritance/multipleinheritance.pro1
-rw-r--r--src/designer/src/designer/doc/snippets/noautoconnection/CMakeLists.txt24
-rw-r--r--src/designer/src/designer/doc/snippets/noautoconnection/imagedialog.cpp13
-rw-r--r--src/designer/src/designer/doc/snippets/noautoconnection/imagedialog.h2
-rw-r--r--src/designer/src/designer/doc/snippets/noautoconnection/noautoconnection.pro1
-rw-r--r--src/designer/src/designer/doc/snippets/singleinheritance/CMakeLists.txt24
-rw-r--r--src/designer/src/designer/doc/snippets/singleinheritance/imagedialog.cpp6
-rw-r--r--src/designer/src/designer/doc/snippets/singleinheritance/imagedialog.h2
-rw-r--r--src/designer/src/designer/doc/snippets/singleinheritance/singleinheritance.pro1
-rw-r--r--src/designer/src/designer/doc/snippets/uitools/calculatorform/CMakeLists.txt26
-rw-r--r--src/designer/src/designer/doc/src/designer-manual.qdoc4
-rw-r--r--src/designer/src/lib/sdk/abstractformeditor.cpp2
-rw-r--r--src/designer/src/lib/shared/qlayout_widget_p.h1
-rw-r--r--src/designer/src/lib/uilib/abstractformbuilder.cpp2
-rw-r--r--src/designer/src/lib/uilib/formbuilderextra.cpp9
-rw-r--r--src/linguist/Qt6LinguistToolsMacros.cmake3
-rw-r--r--src/linguist/lupdate/CMakeLists.txt7
-rw-r--r--src/linguist/lupdate/clangtoolastreader.cpp55
-rw-r--r--src/linguist/lupdate/clangtoolastreader.h5
-rw-r--r--src/linguist/lupdate/cpp_clang.cpp204
-rw-r--r--src/linguist/lupdate/cpp_clang.h6
-rw-r--r--src/linguist/lupdate/filesignificancecheck.cpp95
-rw-r--r--src/linguist/lupdate/filesignificancecheck.h88
-rw-r--r--src/linguist/lupdate/lupdate.h1
-rw-r--r--src/linguist/lupdate/lupdatepreprocessoraction.cpp51
-rw-r--r--src/linguist/lupdate/lupdatepreprocessoraction.h11
-rw-r--r--src/linguist/lupdate/main.cpp27
-rw-r--r--src/linguist/shared/translator.h1
-rw-r--r--src/qdoc/CMakeLists.txt6
-rw-r--r--src/qdoc/clangcodeparser.cpp50
-rw-r--r--src/qdoc/doc/qdoc-manual-markupcmds.qdoc59
-rw-r--r--src/qdoc/docbookgenerator.cpp37
-rw-r--r--src/qdoc/docbookgenerator.h1
-rw-r--r--src/qdoc/docparser.cpp19
-rw-r--r--src/qdoc/generator.cpp20
-rw-r--r--src/qdoc/generator.h5
-rw-r--r--src/qdoc/htmlgenerator.cpp91
-rw-r--r--src/windeployqt/main.cpp5
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/project.ts.result5
-rw-r--r--tests/auto/linguist/lupdate/tst_lupdate.cpp2
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/autolinking.html8
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/crossmodule/all-namespaces.html4
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/crossmodule/crossmoduleref-sub-crossmodule.html10
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/crossmodule/testtype-members.html28
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/crossmodule/testtype.html26
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/crossmoduleref.html12
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/docbook/qdoctests-qdocfileoutput-exhaustive.xml14
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/dontdocument/classes.html6
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/dontdocument/seenclass.html4
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/first.html8
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/globals.html18
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/headerfile/headers.html2
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/headerfile/testheader.html28
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/html/qdoctests-qdocfileoutput-exhaustive.webxml6
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/ignoresince/testqdoc-test.html78
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/ignoresince/testqdoc.html16
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/includefromexampledirs/index.html10
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/includefromexampledirs/qml-qdoc-test-abstractparent-members.html6
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/includefromexampledirs/qml-qdoc-test-abstractparent.html20
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/index-linking.html4
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/index.html8
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/nestedmacro/testcpp-module.html24
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/noautolist/qdoc-test-qmlmodule.html2
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/noautolist/test-componentset-example.html12
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/noautolist/testcpp-module.html16
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/obsolete-classes.html2
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/properties/testqdoc-testderived-members.html54
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/properties/testqdoc-testderived.html100
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/qdoc-test-qmlmodule.html14
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/qdoctests-qdocfileoutput-exhaustive.html14
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/qdoctests-qdocfileoutput-linking.html2
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/qdoctests-qdocfileoutput.html32
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/qml-int.html8
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/qml-linkmodule-grandchild-members.html12
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-abstractparent.html36
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-child.html36
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-doctest.html54
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-type-members.html34
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-type-obsolete.html6
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-type.html86
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-yetanotherchild.html10
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/qml-test-nover-typenoversion-members.html2
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/qml-test-nover-typenoversion.html6
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/qml-uicomponents-progressbar.html48
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/qml-uicomponents-switch.html22
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/qml-uicomponents-tabwidget.html28
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/qmlmodules.html8
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/qmlpropertygroups/qml-qdoc-test-anotherchild-members.html12
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/qmlpropertygroups/qml-qdoc-test-parent.html22
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/scopedenum/scoped-enum-linking.html4
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/scopedenum/testqdoc-test.html100
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/second.html4
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/space.html12
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/template/bar.html6
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/template/baz.html6
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/template/foo.html6
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/template/testqdoc-test-struct.html4
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/template/testqdoc-test.html94
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/template/testqdoc-vec.html6
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/test-cmaketest-example.html4
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/test-componentset-example.html22
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/test-nover-qmlmodule.html4
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/testcpp-module.html24
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test-members.html22
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test-obsolete.html30
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test.html78
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/testqdoc-testderived-members.html26
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/testqdoc-testderived-obsolete.html10
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/testqdoc-testderived.html26
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/testqdoc.html16
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/third.html4
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/toc.html6
-rw-r--r--tests/auto/qdoc/generatedoutput/expected_output/uicomponents-qmlmodule.html10
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/images/01.pngbin0 -> 1142 bytes
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/includefromexampledirs/excludes/parentinclude.qdoc5
-rw-r--r--tests/auto/qdoc/generatedoutput/testdata/outputfromqdocfiles/qdoctests-outputfromqdocfiles.qdoc17
152 files changed, 1688 insertions, 1394 deletions
diff --git a/.cmake.conf b/.cmake.conf
index 07d90b8ad..e62fae5ef 100644
--- a/.cmake.conf
+++ b/.cmake.conf
@@ -1,2 +1,2 @@
-set(QT_REPO_MODULE_VERSION "6.2.7")
+set(QT_REPO_MODULE_VERSION "6.2.8")
set(QT_REPO_MODULE_PRERELEASE_VERSION_SEGMENT "")
diff --git a/.gitignore b/.gitignore
index d0d79c51d..4be464fe2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,20 +1,9 @@
# This file is used to ignore files which are generated in the Qt build system
# ----------------------------------------------------------------------------
-examples/*/*/*
-!examples/*/*/*[.]*
-!examples/*/*/README
+.qtc_clangd
+CMakeLists.txt.user
examples/*/*/*[.]app
-!examples/declarative/*
-!examples/tutorials/*
-!examples/tutorials/*/*
-!examples/ja_JP/*/*
-demos/*/*
-!demos/spectrum/*
-demos/spectrum/bin
-!demos/*/*[.]*
-demos/*/*[.]app
-!demos/declarative/*
config.tests/*/*/*
!config.tests/*/*/*[.]*
config.tests/*/*/*[.]app
@@ -54,62 +43,11 @@ Makefile*
*.pro.user
*.qmlproject.user
*.gcov
-bin/Qt*.dll
-bin/assistant*
-bin/designer*
-bin/dumpcpp*
-bin/idc*
-bin/linguist*
-bin/lrelease*
-bin/lupdate*
-bin/lconvert*
-bin/moc*
-bin/pixeltool*
-bin/qmake*
-bin/qdoc3*
-bin/qt3to4*
-bin/qttracereplay*
-bin/rcc*
-bin/uic*
-bin/patternist*
-bin/phonon*
-bin/qcollectiongenerator*
-bin/qdbus*
-bin/qhelpgenerator*
-bin/xmlpatterns*
-bin/cetest*
-bin/helpconverter
-bin/helpgenerator
-bin/kmap2qmap*
-bin/qlalr*
-bin/qmlconv*
-bin/qmldebugger*
-bin/qml*
-bin/qttracereplay*
configure.cache
config.status
-mkspecs/default
-mkspecs/qconfig.pri
moc_*.cpp
-qmake/qmake.exe
-qmake/Makefile.bak
-src/corelib/global/qconfig.cpp
-src/corelib/global/qconfig.h
-src/corelib/global/qconfig.h.qmake
ui_*.h
-tests/auto/qprocess/test*/*.exe
-tests/auto/qtcpsocket/stressTest/*.exe
-tests/auto/qprocess/fileWriterProcess/*.exe
-tests/auto/qmake/testdata/quotedfilenames/*.exe
-tests/auto/compilerwarnings/*.exe
-tests/auto/qmake/testdata/quotedfilenames/test.cpp
-tests/auto/qprocess/fileWriterProcess.txt
.com.apple.timemachine.supported
-tests/auto/qlibrary/libmylib.so*
-tests/auto/qresourceengine/runtime_resource.rcc
-tools/activeqt/testcon/testcon.tlb
-translations/*.qm
-translations/*_untranslated.ts
qrc_*.cpp
# Test generated files
@@ -145,102 +83,23 @@ tests/auto/cmake/build
*.Debug
*.Release
-# WebKit temp files
-src/3rdparty/webkit/WebCore/mocinclude.tmp
-src/3rdparty/webkit/includes.txt
-src/3rdparty/webkit/includes2.txt
-
# Symlinks generated by configure
-tools/qvfb/qvfbhdr.h
-tools/qvfb/qlock_p.h
-tools/qvfb/qlock.cpp
-tools/qvfb/qwssignalhandler.cpp
-tools/qvfb/qwssignalhandler_p.h
.DS_Store
.pch
.rcc
*.app
config.status
-config.tests/unix/cups/cups
-config.tests/unix/getaddrinfo/getaddrinfo
-config.tests/unix/getifaddrs/getifaddrs
-config.tests/unix/iconv/iconv
-config.tests/unix/ipv6/ipv6
-config.tests/unix/ipv6ifname/ipv6ifname
-config.tests/unix/largefile/largefile
-config.tests/unix/nis/nis
-config.tests/unix/odbc/odbc
-config.tests/unix/openssl/openssl
-config.tests/unix/stl/stl
-config.tests/unix/zlib/zlib
-config.tests/unix/3dnow/3dnow
-config.tests/unix/mmx/mmx
-config.tests/unix/sse/sse
-config.tests/unix/sse2/sse2
-
-
# Directories to ignore
# ---------------------
debug
-examples/tools/plugandpaint/plugins
-include/*
-include/*/*
-lib/*
-!lib/fonts
-!lib/README
-plugins/*/*
release
tmp
-doc-build
-doc/html/*
-doc/qch
-doc-build
.rcc
.pch
.metadata
-# Symbian build system generated files
-# ---------------------
-
-ABLD.BAT
-bld.inf*
-*.mmp
-*.mk
-*.rss
-*.loc
-!s60main.rss
-*.pkg
-plugin_commonu.def
-*.qtplugin
-*.sis
-*.sisx
-*.lst
-*.exe
-*.mif
-*.rsc
-*.sym
-*.lib
-
-# runonphone crash dumps
-d_exc_*.txt
-d_exc_*.stk
-
-# Generated by abldfast.bat from devtools.
-.abldsteps.*
-
-# Carbide project files
-# ---------------------
-.project
-.cproject
-.make.cache
-*.d
-
-qtc-debugging-helper
-src/corelib/lib
-src/network/lib
-src/xml/lib/
.pc/
diff --git a/.qmake.conf b/.qmake.conf
index 71f407e66..3a8fd9661 100644
--- a/.qmake.conf
+++ b/.qmake.conf
@@ -2,4 +2,4 @@ load(qt_build_config)
DEFINES += QT_NO_JAVA_STYLE_ITERATORS
-MODULE_VERSION = 6.2.7
+MODULE_VERSION = 6.2.8
diff --git a/dependencies.yaml b/dependencies.yaml
index eabbaa592..ffa75bd1b 100644
--- a/dependencies.yaml
+++ b/dependencies.yaml
@@ -1,10 +1,10 @@
dependencies:
../tqtc-qtactiveqt:
- ref: 1214994fd0a4cd3af2707e5ae3bf1b80514fcd9d
+ ref: 3ed43db7a11af183b9e56c576fc05bb2c21a1da7
required: false
../tqtc-qtbase:
- ref: 694575a59b5370afc494fbf700eee8db1d1ec091
+ ref: 67934c103800bae50c2ec1977758d40fa8e4e507
required: true
../tqtc-qtdeclarative:
- ref: 02277e3753613d9e19bbb36367c7d2b1d13d7545
+ ref: 302ab20d46280e11042f3896460c55d8b8146e41
required: false
diff --git a/examples/uitools/textfinder/forms/textfinder.ui b/examples/uitools/textfinder/forms/textfinder.ui
index 9ea3011e8..f8cec91d1 100644
--- a/examples/uitools/textfinder/forms/textfinder.ui
+++ b/examples/uitools/textfinder/forms/textfinder.ui
@@ -47,7 +47,11 @@
<number>6</number>
</property>
<item row="0" column="1">
- <widget class="QLineEdit" name="lineEdit"/>
+ <widget class="QLineEdit" name="lineEdit">
+ <property name="clearButtonEnabled">
+ <bool>true</bool>
+ </property>
+ </widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="searchLabel">
diff --git a/examples/uitools/textfinder/main.cpp b/examples/uitools/textfinder/main.cpp
index 3db26ebe7..8b53f7f20 100644
--- a/examples/uitools/textfinder/main.cpp
+++ b/examples/uitools/textfinder/main.cpp
@@ -49,6 +49,7 @@
****************************************************************************/
#include "textfinder.h"
+
#include <QApplication>
//! [0]
diff --git a/examples/uitools/textfinder/textfinder.cpp b/examples/uitools/textfinder/textfinder.cpp
index d6c11906b..e735fde3d 100644
--- a/examples/uitools/textfinder/textfinder.cpp
+++ b/examples/uitools/textfinder/textfinder.cpp
@@ -49,15 +49,18 @@
****************************************************************************/
#include "textfinder.h"
-#include <QFile>
+
+#include <QUiLoader>
+
#include <QLineEdit>
#include <QMessageBox>
#include <QPushButton>
#include <QTextEdit>
-#include <QTextStream>
-#include <QUiLoader>
#include <QVBoxLayout>
+#include <QFile>
+#include <QTextStream>
+
//! [4]
static QWidget *loadUiFile(QWidget *parent)
{
@@ -100,9 +103,8 @@ TextFinder::TextFinder(QWidget *parent)
//! [3a]
//! [3b]
- QVBoxLayout *layout = new QVBoxLayout;
+ auto *layout = new QVBoxLayout(this);
layout->addWidget(formWidget);
- setLayout(layout);
//! [3b]
//! [3c]
diff --git a/src/assistant/assistant/helpenginewrapper.cpp b/src/assistant/assistant/helpenginewrapper.cpp
index 9cc9df5f9..411b1cb7e 100644
--- a/src/assistant/assistant/helpenginewrapper.cpp
+++ b/src/assistant/assistant/helpenginewrapper.cpp
@@ -107,6 +107,11 @@ private:
HelpEngineWrapper *HelpEngineWrapper::helpEngineWrapper = nullptr;
+HelpEngineWrapper &HelpEngineWrapper::instance()
+{
+ return instance({});
+}
+
HelpEngineWrapper &HelpEngineWrapper::instance(const QString &collectionFile)
{
TRACE_OBJ
diff --git a/src/assistant/assistant/helpenginewrapper.h b/src/assistant/assistant/helpenginewrapper.h
index e43abec92..fb2c91f89 100644
--- a/src/assistant/assistant/helpenginewrapper.h
+++ b/src/assistant/assistant/helpenginewrapper.h
@@ -65,7 +65,8 @@ class HelpEngineWrapper : public QObject
Q_DISABLE_COPY(HelpEngineWrapper)
friend class TimeoutForwarder;
public:
- static HelpEngineWrapper &instance(const QString &collectionFile = QString());
+ static HelpEngineWrapper &instance();
+ static HelpEngineWrapper &instance(const QString &collectionFile);
static void removeInstance();
// Forwarded help engine member functions, possibly enriched.
diff --git a/src/assistant/assistant/mainwindow.cpp b/src/assistant/assistant/mainwindow.cpp
index b36aaed68..1ec59756a 100644
--- a/src/assistant/assistant/mainwindow.cpp
+++ b/src/assistant/assistant/mainwindow.cpp
@@ -869,10 +869,12 @@ void MainWindow::showAboutDialog()
} else {
QByteArray resources;
#if defined(BROWSER_QTWEBKIT)
- const QString browser = QStringLiteral("Qt WebKit");
+ QString browser = QStringLiteral("Qt WebKit");
#else
- const QString browser = QStringLiteral("QTextBrowser");
+ QString browser = QStringLiteral("QTextBrowser");
#endif
+ if (m_centralWidget->currentHelpViewer())
+ browser = QStringLiteral("QLiteHtmlWidget");
aboutDia.setText(tr("<center>"
"<h3>%1</h3>"
"<p>Version %2</p>"
diff --git a/src/designer/src/components/formeditor/qmainwindow_container.cpp b/src/designer/src/components/formeditor/qmainwindow_container.cpp
index 8bed2911b..4bf117bcf 100644
--- a/src/designer/src/components/formeditor/qmainwindow_container.cpp
+++ b/src/designer/src/components/formeditor/qmainwindow_container.cpp
@@ -55,15 +55,14 @@ int QMainWindowContainer::count() const
QWidget *QMainWindowContainer::widget(int index) const
{
- if (index == -1)
- return nullptr;
-
- return m_widgets.at(index);
+ return m_widgets.value(index, nullptr);
}
int QMainWindowContainer::currentIndex() const
{
- return m_mainWindow->centralWidget() ? 0 : -1;
+ // QTBUG-111603, handle plugins with unmanaged central widgets
+ auto *cw = m_mainWindow->centralWidget();
+ return cw != nullptr && m_widgets.contains(cw) ? 0 : -1;
}
void QMainWindowContainer::setCurrentIndex(int index)
diff --git a/src/designer/src/components/propertyeditor/designerpropertymanager.cpp b/src/designer/src/components/propertyeditor/designerpropertymanager.cpp
index d65d5deeb..aa00b4772 100644
--- a/src/designer/src/components/propertyeditor/designerpropertymanager.cpp
+++ b/src/designer/src/components/propertyeditor/designerpropertymanager.cpp
@@ -913,7 +913,8 @@ DesignerPropertyManager::~DesignerPropertyManager()
bool DesignerPropertyManager::m_IdBasedTranslations = false;
-int DesignerPropertyManager::bitCount(int mask) const
+template <class IntT>
+static int bitCount(IntT mask)
{
int count = 0;
for (; mask; count++)
diff --git a/src/designer/src/components/propertyeditor/designerpropertymanager.h b/src/designer/src/components/propertyeditor/designerpropertymanager.h
index c3f55942a..d046ba79a 100644
--- a/src/designer/src/components/propertyeditor/designerpropertymanager.h
+++ b/src/designer/src/components/propertyeditor/designerpropertymanager.h
@@ -180,7 +180,6 @@ private:
typedef QMap<QtProperty *, bool> PropertyBoolMap;
PropertyBoolMap m_resetMap;
- int bitCount(int mask) const;
struct FlagData
{
uint val{0};
diff --git a/src/designer/src/components/propertyeditor/paletteeditor.cpp b/src/designer/src/components/propertyeditor/paletteeditor.cpp
index 228213ee6..5633107a6 100644
--- a/src/designer/src/components/propertyeditor/paletteeditor.cpp
+++ b/src/designer/src/components/propertyeditor/paletteeditor.cpp
@@ -110,18 +110,15 @@ QPalette PaletteEditor::palette() const
void PaletteEditor::setPalette(const QPalette &palette)
{
m_editPalette = palette;
- const uint mask = palette.resolveMask();
- for (int i = 0; i < static_cast<int>(QPalette::NColorRoles); ++i) {
- if (!(mask & (1 << i))) {
- m_editPalette.setBrush(QPalette::Active, static_cast<QPalette::ColorRole>(i),
- m_parentPalette.brush(QPalette::Active, static_cast<QPalette::ColorRole>(i)));
- m_editPalette.setBrush(QPalette::Inactive, static_cast<QPalette::ColorRole>(i),
- m_parentPalette.brush(QPalette::Inactive, static_cast<QPalette::ColorRole>(i)));
- m_editPalette.setBrush(QPalette::Disabled, static_cast<QPalette::ColorRole>(i),
- m_parentPalette.brush(QPalette::Disabled, static_cast<QPalette::ColorRole>(i)));
+ for (int r = 0; r < static_cast<int>(QPalette::NColorRoles); ++r) {
+ for (int g = 0; g < static_cast<int>(QPalette::NColorGroups); ++g) {
+ const auto role = static_cast<QPalette::ColorRole>(r);
+ const auto group = static_cast<QPalette::ColorGroup>(g);
+ if (!palette.isBrushSet(group, role))
+ m_editPalette.setBrush(group, role, m_parentPalette.brush(group, role));
}
}
- m_editPalette.setResolveMask(mask);
+ m_editPalette.setResolveMask(palette.resolveMask());
updatePreviewPalette();
updateStyledButton();
m_paletteUpdated = true;
@@ -229,15 +226,12 @@ QPalette PaletteEditor::getPalette(QDesignerFormEditorInterface *core, QWidget*
{
PaletteEditor dlg(core, parent);
QPalette parentPalette(parentPal);
- uint mask = init.resolveMask();
- for (int i = 0; i < static_cast<int>(QPalette::NColorRoles); ++i) {
- if (!(mask & (1 << i))) {
- parentPalette.setBrush(QPalette::Active, static_cast<QPalette::ColorRole>(i),
- init.brush(QPalette::Active, static_cast<QPalette::ColorRole>(i)));
- parentPalette.setBrush(QPalette::Inactive, static_cast<QPalette::ColorRole>(i),
- init.brush(QPalette::Inactive, static_cast<QPalette::ColorRole>(i)));
- parentPalette.setBrush(QPalette::Disabled, static_cast<QPalette::ColorRole>(i),
- init.brush(QPalette::Disabled, static_cast<QPalette::ColorRole>(i)));
+ for (int r = 0; r < static_cast<int>(QPalette::NColorRoles); ++r) {
+ for (int g = 0; g < static_cast<int>(QPalette::NColorGroups); ++g) {
+ const auto role = static_cast<QPalette::ColorRole>(r);
+ const auto group = static_cast<QPalette::ColorGroup>(g);
+ if (!init.isBrushSet(group, role))
+ parentPalette.setBrush(group, role, init.brush(group, role));
}
}
dlg.setPalette(init, parentPalette);
diff --git a/src/designer/src/designer/doc/snippets/CMakeLists.txt b/src/designer/src/designer/doc/snippets/CMakeLists.txt
new file mode 100644
index 000000000..974b43ffd
--- /dev/null
+++ b/src/designer/src/designer/doc/snippets/CMakeLists.txt
@@ -0,0 +1,10 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+add_subdirectory(autoconnection)
+add_subdirectory(imagedialog)
+add_subdirectory(multipleinheritance)
+add_subdirectory(noautoconnection)
+
+add_subdirectory(singleinheritance)
+add_subdirectory(uitools/calculatorform)
diff --git a/src/designer/src/designer/doc/snippets/autoconnection/CMakeLists.txt b/src/designer/src/designer/doc/snippets/autoconnection/CMakeLists.txt
new file mode 100644
index 000000000..ba19d4501
--- /dev/null
+++ b/src/designer/src/designer/doc/snippets/autoconnection/CMakeLists.txt
@@ -0,0 +1,24 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+cmake_minimum_required(VERSION 3.16)
+project(autoconnection LANGUAGES CXX)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTOUIC ON)
+
+find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets)
+
+qt_add_executable(autoconnection
+ imagedialog.cpp imagedialog.h imagedialog.ui main.cpp)
+
+set_target_properties(autoconnection PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+
+target_link_libraries(autoconnection PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Widgets
+)
diff --git a/src/designer/src/designer/doc/snippets/autoconnection/autoconnection.pro b/src/designer/src/designer/doc/snippets/autoconnection/autoconnection.pro
index fba94debf..6937e8e54 100644
--- a/src/designer/src/designer/doc/snippets/autoconnection/autoconnection.pro
+++ b/src/designer/src/designer/doc/snippets/autoconnection/autoconnection.pro
@@ -1,4 +1,5 @@
TEMPLATE = app
+QT += widgets
FORMS = imagedialog.ui
HEADERS = imagedialog.h
SOURCES = imagedialog.cpp \
diff --git a/src/designer/src/designer/doc/snippets/autoconnection/imagedialog.cpp b/src/designer/src/designer/doc/snippets/autoconnection/imagedialog.cpp
index f561eaeda..367fbd710 100644
--- a/src/designer/src/designer/doc/snippets/autoconnection/imagedialog.cpp
+++ b/src/designer/src/designer/doc/snippets/autoconnection/imagedialog.cpp
@@ -48,7 +48,7 @@
**
****************************************************************************/
-#include <QtGui>
+#include <QMessageBox>
#include "imagedialog.h"
@@ -66,14 +66,15 @@ ImageDialog::ImageDialog(QWidget *parent)
colorDepthCombo->addItem(tr("65536 colors (16 bits per pixel)"));
colorDepthCombo->addItem(tr("16 million colors (24 bits per pixel)"));
- connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject()));
+ connect(cancelButton, &QAbstractButton::clicked, this, &QDialog::reject);
}
void ImageDialog::on_okButton_clicked()
{
- if (nameLineEdit->text().isEmpty())
- (void) QMessageBox::information(this, tr("No Image Name"),
+ if (nameLineEdit->text().isEmpty()) {
+ QMessageBox::information(this, tr("No Image Name"),
tr("Please supply a name for the image."), QMessageBox::Cancel);
- else
+ } else {
accept();
+ }
}
diff --git a/src/designer/src/designer/doc/snippets/autoconnection/imagedialog.h b/src/designer/src/designer/doc/snippets/autoconnection/imagedialog.h
index 665824921..41d67aac4 100644
--- a/src/designer/src/designer/doc/snippets/autoconnection/imagedialog.h
+++ b/src/designer/src/designer/doc/snippets/autoconnection/imagedialog.h
@@ -59,7 +59,7 @@ class ImageDialog : public QDialog, private Ui::ImageDialog
Q_OBJECT
public:
- ImageDialog(QWidget *parent = 0);
+ explicit ImageDialog(QWidget *parent = nullptr);
private slots:
void on_okButton_clicked();
diff --git a/src/designer/src/designer/doc/snippets/imagedialog/CMakeLists.txt b/src/designer/src/designer/doc/snippets/imagedialog/CMakeLists.txt
new file mode 100644
index 000000000..3ba729065
--- /dev/null
+++ b/src/designer/src/designer/doc/snippets/imagedialog/CMakeLists.txt
@@ -0,0 +1,24 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+cmake_minimum_required(VERSION 3.16)
+project(imagedialog LANGUAGES CXX)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTOUIC ON)
+
+find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets)
+
+qt_add_executable(imagedialog
+ imagedialog.ui main.cpp)
+
+set_target_properties(imagedialog PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+
+target_link_libraries(imagedialog PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Widgets
+)
diff --git a/src/designer/src/designer/doc/snippets/imagedialog/imagedialog.pro b/src/designer/src/designer/doc/snippets/imagedialog/imagedialog.pro
index 164a7b2cb..c0afe036d 100644
--- a/src/designer/src/designer/doc/snippets/imagedialog/imagedialog.pro
+++ b/src/designer/src/designer/doc/snippets/imagedialog/imagedialog.pro
@@ -1,3 +1,4 @@
TEMPLATE = app
+QT += widgets
FORMS = imagedialog.ui
SOURCES = main.cpp
diff --git a/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_extension_default_extensionfactory.cpp b/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_extension_default_extensionfactory.cpp
index 697f2a537..f07706f41 100644
--- a/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_extension_default_extensionfactory.cpp
+++ b/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_extension_default_extensionfactory.cpp
@@ -53,13 +53,12 @@
const QString &iid, QObject *parent) const
{
if (iid != Q_TYPEID(QDesignerContainerExtension))
- return 0;
+ return nullptr;
- if (MyCustomWidget *widget = qobject_cast<MyCustomWidget*>
- (object))
+ if (auto *widget = qobject_cast<MyCustomWidget*>(object))
return new MyContainerExtension(widget, parent);
- return 0;
+ return nullptr;
}
//! [0]
@@ -68,17 +67,17 @@
QObject *AGeneralExtensionFactory::createExtension(QObject *object,
const QString &iid, QObject *parent) const
{
- MyCustomWidget *widget = qobject_cast<MyCustomWidget*>(object);
+ auto *widget = qobject_cast<MyCustomWidget*>(object);
+ if (!widget)
+ return nullptr;
- if (widget && (iid == Q_TYPEID(QDesignerTaskMenuExtension))) {
+ if (iid == Q_TYPEID(QDesignerTaskMenuExtension))
return new MyTaskMenuExtension(widget, parent);
- } else if (widget && (iid == Q_TYPEID(QDesignerContainerExtension))) {
+ if (iid == Q_TYPEID(QDesignerContainerExtension))
return new MyContainerExtension(widget, parent);
- } else {
- return 0;
- }
+ return nullptr;
}
//! [1]
diff --git a/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_extension_extension.cpp b/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_extension_extension.cpp
index afe14ee52..ba6324012 100644
--- a/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_extension_extension.cpp
+++ b/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_extension_extension.cpp
@@ -49,10 +49,9 @@
****************************************************************************/
//! [0]
- QDesignerPropertySheetExtension *propertySheet;
- QExtensionManager manager = formEditor->extensionManager();
+ auto *manager = formEditor->extensionManager();
- propertySheet = qt_extension<QDesignerPropertySheetExtension*>(manager, widget);
+ auto *propertySheet = qt_extension<QDesignerPropertySheetExtension*>(manager, widget);
if(propertySheet) {...}
//! [0]
diff --git a/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_extension_qextensionmanager.cpp b/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_extension_qextensionmanager.cpp
index f8059e9f0..84cd73de6 100644
--- a/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_extension_qextensionmanager.cpp
+++ b/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_extension_qextensionmanager.cpp
@@ -54,8 +54,8 @@
if (initialized)
return;
- QExtensionManager *manager = formEditor->extensionManager();
- Q_ASSERT(manager != 0);
+ auto *manager = formEditor->extensionManager();
+ Q_ASSERT(manager != nullptr);
manager->registerExtensions(new MyExtensionFactory(manager),
Q_TYPEID(QDesignerTaskMenuExtension));
diff --git a/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractformeditor.cpp b/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractformeditor.cpp
deleted file mode 100644
index fd8968a55..000000000
--- a/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractformeditor.cpp
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
- QDesignerObjectInspectorInterface *objectInspector = 0;
- objectInspector = formEditor->objectInspector();
-
- QDesignerFormWindowManagerInterface *manager = 0;
- manager = formEditor->formWindowManager();
-
- objectInspector->setFormWindow(manager->formWindow(0));
-//! [0]
-
-
diff --git a/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractformwindow.cpp b/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractformwindow.cpp
index 259eb4668..5ed7ec15b 100644
--- a/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractformwindow.cpp
+++ b/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractformwindow.cpp
@@ -49,21 +49,17 @@
****************************************************************************/
//! [0]
- QDesignerFormWindowInterface *formWindow;
- formWindow = QDesignerFormWindowInterface::findFormWindow(myWidget);
+ auto *formWindow = QDesignerFormWindowInterface::findFormWindow(myWidget);
//! [0]
//! [1]
QList<QDesignerFormWindowInterface *> forms;
- QDesignerFormWindowInterface *formWindow;
- QDesignerFormWindowManagerInterface *manager = formEditor->formWindowManager();
+ auto *manager = formEditor->formWindowManager();
- for (int i = 0; i < manager->formWindowCount(); i++) {
- formWindow = manager->formWindow(i);
- forms.append(formWindow);
- }
+ for (int i = 0; i < manager->formWindowCount(); ++i)
+ forms.append(manager->formWindow(i));
//! [1]
diff --git a/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractformwindowcursor.cpp b/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractformwindowcursor.cpp
index af4c5f39e..a9766b6eb 100644
--- a/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractformwindowcursor.cpp
+++ b/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractformwindowcursor.cpp
@@ -49,8 +49,7 @@
****************************************************************************/
//! [0]
- QDesignerFormWindowInterface *formWindow = 0;
- formWindow = QDesignerFormWindowInterface::findFormWindow(myWidget);
+ auto *formWindow = QDesignerFormWindowInterface::findFormWindow(myWidget);
formWindow->cursor()->setProperty(myWidget, myProperty, newValue);
//! [0]
diff --git a/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractformwindowmanager.cpp b/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractformwindowmanager.cpp
index 94694f669..73fce5dea 100644
--- a/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractformwindowmanager.cpp
+++ b/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractformwindowmanager.cpp
@@ -49,11 +49,8 @@
****************************************************************************/
//! [0]
- QDesignerFormWindowManagerInterface *manager = 0;
- QDesignerFormWindowInterface *formWindow = 0;
-
- manager = formEditor->formWindowManager();
- formWindow = manager->formWindow(0);
+ auto *manager = formEditor->formWindowManager();
+ auto *formWindow = manager->formWindow(0);
manager->setActiveFormWindow(formWindow);
//! [0]
diff --git a/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractobjectinspector.cpp b/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractobjectinspector.cpp
index fd8968a55..26ffc1973 100644
--- a/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractobjectinspector.cpp
+++ b/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractobjectinspector.cpp
@@ -49,11 +49,8 @@
****************************************************************************/
//! [0]
- QDesignerObjectInspectorInterface *objectInspector = 0;
- objectInspector = formEditor->objectInspector();
-
- QDesignerFormWindowManagerInterface *manager = 0;
- manager = formEditor->formWindowManager();
+ auto *objectInspector = formEditor->objectInspector();
+ auto *manager = formEditor->formWindowManager();
objectInspector->setFormWindow(manager->formWindow(0));
//! [0]
diff --git a/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractpropertyeditor.cpp b/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractpropertyeditor.cpp
index 571796031..236bd106e 100644
--- a/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractpropertyeditor.cpp
+++ b/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractpropertyeditor.cpp
@@ -49,21 +49,20 @@
****************************************************************************/
//! [0]
- QDesignerPropertyEditorInterface *propertyEditor = 0;
- propertyEditor = formEditor->propertyEditor();
+ auto *propertyEditor = formEditor->propertyEditor();
- connect(propertyEditor, SIGNAL(propertyChanged(QString,QVariant)),
- this, SLOT(checkProperty(QString,QVariant)));
+ connect(propertyEditor, &QDesignerPropertyEditorInterface::propertyChanged,
+ this, &MyClass::checkProperty);
//! [0]
//! [1]
- void checkProperty(QString property, QVariant value) {
- QDesignerPropertyEditorInterface *propertyEditor = 0;
- propertyEditor = formEditor->propertyEditor();
+ void checkProperty(const QString &property, const QVariant &value)
+ {
+ auto *propertyEditor = formEditor->propertyEditor();
- QObject *object = propertyeditor->object();
- MyCustomWidget *widget = qobject_cast<MyCustomWidget>(object);
+ auto *object = propertyeditor->object();
+ auto *widget = qobject_cast<MyCustomWidget *>(object);
if (widget && property == aProperty && value != expectedValue)
{...}
diff --git a/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractwidgetbox.cpp b/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractwidgetbox.cpp
index 850542211..cfeb95957 100644
--- a/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractwidgetbox.cpp
+++ b/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_sdk_abstractwidgetbox.cpp
@@ -49,8 +49,7 @@
****************************************************************************/
//! [0]
- QDesignerWidgetBoxInterface *widgetBox = 0:
- widgetBox = formEditor->widgetBox();
+ auto *widgetBox = formEditor->widgetBox();
widgetBox->load();
//! [0]
diff --git a/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_uilib_abstractformbuilder.cpp b/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_uilib_abstractformbuilder.cpp
deleted file mode 100644
index b7b9f5ec1..000000000
--- a/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_uilib_abstractformbuilder.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-//! [0]
- MyForm::MyForm(QWidget *parent)
- : QWidget(parent)
- {
- QFormBuilder builder;
- QFile file(":/forms/myWidget.ui");
- file.open(QFile::ReadOnly);
- QWidget *myWidget = builder.load(&file, this);
- file.close();
-
- QVBoxLayout *layout = new QVBoxLayout;
- layout->addWidget(myWidget);
- setLayout(layout);
- }
-//! [0]
-
-
diff --git a/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_uilib_formbuilder.cpp b/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_uilib_formbuilder.cpp
index c7fd41416..3e0b4f4b3 100644
--- a/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_uilib_formbuilder.cpp
+++ b/src/designer/src/designer/doc/snippets/lib/tools_designer_src_lib_uilib_formbuilder.cpp
@@ -58,9 +58,8 @@
QWidget *myWidget = builder.load(&file, this);
file.close();
- QVBoxLayout *layout = new QVBoxLayout;
+ auto *layout = new QVBoxLayout(this);
layout->addWidget(myWidget);
- setLayout(layout);
}
//! [0]
diff --git a/src/designer/src/designer/doc/snippets/multipleinheritance/CMakeLists.txt b/src/designer/src/designer/doc/snippets/multipleinheritance/CMakeLists.txt
new file mode 100644
index 000000000..c7e3d8aae
--- /dev/null
+++ b/src/designer/src/designer/doc/snippets/multipleinheritance/CMakeLists.txt
@@ -0,0 +1,24 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+cmake_minimum_required(VERSION 3.16)
+project(multipleinheritance LANGUAGES CXX)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTOUIC ON)
+
+find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets)
+
+qt_add_executable(multipleinheritance
+ imagedialog.cpp imagedialog.h imagedialog.ui main.cpp)
+
+set_target_properties(multipleinheritance PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+
+target_link_libraries(multipleinheritance PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Widgets
+)
diff --git a/src/designer/src/designer/doc/snippets/multipleinheritance/imagedialog.cpp b/src/designer/src/designer/doc/snippets/multipleinheritance/imagedialog.cpp
index 147c1cdf8..89c2976d6 100644
--- a/src/designer/src/designer/doc/snippets/multipleinheritance/imagedialog.cpp
+++ b/src/designer/src/designer/doc/snippets/multipleinheritance/imagedialog.cpp
@@ -48,8 +48,6 @@
**
****************************************************************************/
-#include <QtGui>
-
#include "imagedialog.h"
ImageDialog::ImageDialog(QWidget *parent)
@@ -64,6 +62,6 @@ ImageDialog::ImageDialog(QWidget *parent)
colorDepthCombo->addItem(tr("65536 colors (16 bits per pixel)"));
colorDepthCombo->addItem(tr("16 million colors (24 bits per pixel)"));
- connect(okButton, SIGNAL(clicked()), this, SLOT(accept()));
- connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject()));
+ connect(okButton, &QAbstractButton::clicked, this, &QDialog::accept);
+ connect(cancelButton, &QAbstractButton::clicked, this, &QDialog::reject);
}
diff --git a/src/designer/src/designer/doc/snippets/multipleinheritance/imagedialog.h b/src/designer/src/designer/doc/snippets/multipleinheritance/imagedialog.h
index 9a4513b96..b852e420b 100644
--- a/src/designer/src/designer/doc/snippets/multipleinheritance/imagedialog.h
+++ b/src/designer/src/designer/doc/snippets/multipleinheritance/imagedialog.h
@@ -58,7 +58,7 @@ class ImageDialog : public QDialog, private Ui::ImageDialog
Q_OBJECT
public:
- ImageDialog(QWidget *parent = 0);
+ explicit ImageDialog(QWidget *parent = nullptr);
};
#endif
diff --git a/src/designer/src/designer/doc/snippets/multipleinheritance/multipleinheritance.pro b/src/designer/src/designer/doc/snippets/multipleinheritance/multipleinheritance.pro
index fba94debf..6937e8e54 100644
--- a/src/designer/src/designer/doc/snippets/multipleinheritance/multipleinheritance.pro
+++ b/src/designer/src/designer/doc/snippets/multipleinheritance/multipleinheritance.pro
@@ -1,4 +1,5 @@
TEMPLATE = app
+QT += widgets
FORMS = imagedialog.ui
HEADERS = imagedialog.h
SOURCES = imagedialog.cpp \
diff --git a/src/designer/src/designer/doc/snippets/noautoconnection/CMakeLists.txt b/src/designer/src/designer/doc/snippets/noautoconnection/CMakeLists.txt
new file mode 100644
index 000000000..967bc640c
--- /dev/null
+++ b/src/designer/src/designer/doc/snippets/noautoconnection/CMakeLists.txt
@@ -0,0 +1,24 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+cmake_minimum_required(VERSION 3.16)
+project(noautoconnection LANGUAGES CXX)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTOUIC ON)
+
+find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets)
+
+qt_add_executable(noautoconnection
+ imagedialog.cpp imagedialog.h imagedialog.ui main.cpp)
+
+set_target_properties(noautoconnection PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+
+target_link_libraries(noautoconnection PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Widgets
+)
diff --git a/src/designer/src/designer/doc/snippets/noautoconnection/imagedialog.cpp b/src/designer/src/designer/doc/snippets/noautoconnection/imagedialog.cpp
index 4e7569af6..7e3327460 100644
--- a/src/designer/src/designer/doc/snippets/noautoconnection/imagedialog.cpp
+++ b/src/designer/src/designer/doc/snippets/noautoconnection/imagedialog.cpp
@@ -48,7 +48,7 @@
**
****************************************************************************/
-#include <QtGui>
+#include <QMessageBox>
#include "imagedialog.h"
@@ -68,19 +68,20 @@ ImageDialog::ImageDialog(QWidget *parent)
colorDepthCombo->addItem(tr("65536 colors (16 bits per pixel)"));
colorDepthCombo->addItem(tr("16 million colors (24 bits per pixel)"));
- connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject()));
+ connect(cancelButton, &QAbstractButton::clicked, this, &QDialog::reject);
//! [1]
- connect(okButton, SIGNAL(clicked()), this, SLOT(checkValues()));
+ connect(okButton, &QAbstractButton::clicked, this, &ImageDialog::checkValues);
}
//! [1]
//! [2]
void ImageDialog::checkValues()
{
- if (nameLineEdit->text().isEmpty())
- (void) QMessageBox::information(this, tr("No Image Name"),
+ if (nameLineEdit->text().isEmpty()) {
+ QMessageBox::information(this, tr("No Image Name"),
tr("Please supply a name for the image."), QMessageBox::Cancel);
- else
+ } else {
accept();
+ }
}
//! [2]
diff --git a/src/designer/src/designer/doc/snippets/noautoconnection/imagedialog.h b/src/designer/src/designer/doc/snippets/noautoconnection/imagedialog.h
index d279be94e..f7700294a 100644
--- a/src/designer/src/designer/doc/snippets/noautoconnection/imagedialog.h
+++ b/src/designer/src/designer/doc/snippets/noautoconnection/imagedialog.h
@@ -59,7 +59,7 @@ class ImageDialog : public QDialog, private Ui::ImageDialog
Q_OBJECT
public:
- ImageDialog(QWidget *parent = 0);
+ explicit ImageDialog(QWidget *parent = nullptr);
private slots:
void checkValues();
diff --git a/src/designer/src/designer/doc/snippets/noautoconnection/noautoconnection.pro b/src/designer/src/designer/doc/snippets/noautoconnection/noautoconnection.pro
index fba94debf..6937e8e54 100644
--- a/src/designer/src/designer/doc/snippets/noautoconnection/noautoconnection.pro
+++ b/src/designer/src/designer/doc/snippets/noautoconnection/noautoconnection.pro
@@ -1,4 +1,5 @@
TEMPLATE = app
+QT += widgets
FORMS = imagedialog.ui
HEADERS = imagedialog.h
SOURCES = imagedialog.cpp \
diff --git a/src/designer/src/designer/doc/snippets/singleinheritance/CMakeLists.txt b/src/designer/src/designer/doc/snippets/singleinheritance/CMakeLists.txt
new file mode 100644
index 000000000..ac5c2be1a
--- /dev/null
+++ b/src/designer/src/designer/doc/snippets/singleinheritance/CMakeLists.txt
@@ -0,0 +1,24 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+cmake_minimum_required(VERSION 3.16)
+project(singleinheritanceinheritance LANGUAGES CXX)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTOUIC ON)
+
+find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets)
+
+qt_add_executable(singleinheritanceinheritance
+ imagedialog.cpp imagedialog.h imagedialog.ui main.cpp)
+
+set_target_properties(singleinheritanceinheritance PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+
+target_link_libraries(singleinheritanceinheritance PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Widgets
+)
diff --git a/src/designer/src/designer/doc/snippets/singleinheritance/imagedialog.cpp b/src/designer/src/designer/doc/snippets/singleinheritance/imagedialog.cpp
index d6912dc7f..f75086fca 100644
--- a/src/designer/src/designer/doc/snippets/singleinheritance/imagedialog.cpp
+++ b/src/designer/src/designer/doc/snippets/singleinheritance/imagedialog.cpp
@@ -48,8 +48,6 @@
**
****************************************************************************/
-#include <QtGui>
-
#include "imagedialog.h"
ImageDialog::ImageDialog(QWidget *parent)
@@ -64,6 +62,6 @@ ImageDialog::ImageDialog(QWidget *parent)
ui.colorDepthCombo->addItem(tr("65536 colors (16 bits per pixel)"));
ui.colorDepthCombo->addItem(tr("16 million colors (24 bits per pixel)"));
- connect(ui.okButton, SIGNAL(clicked()), this, SLOT(accept()));
- connect(ui.cancelButton, SIGNAL(clicked()), this, SLOT(reject()));
+ connect(ui.okButton, &QAbstractButton::clicked, this, &QDialog::accept);
+ connect(ui.cancelButton, &QAbstractButton::clicked, this, &QDialog::reject);
}
diff --git a/src/designer/src/designer/doc/snippets/singleinheritance/imagedialog.h b/src/designer/src/designer/doc/snippets/singleinheritance/imagedialog.h
index 53657df1a..32e8308c8 100644
--- a/src/designer/src/designer/doc/snippets/singleinheritance/imagedialog.h
+++ b/src/designer/src/designer/doc/snippets/singleinheritance/imagedialog.h
@@ -58,7 +58,7 @@ class ImageDialog : public QDialog
Q_OBJECT
public:
- ImageDialog(QWidget *parent = 0);
+ explicit ImageDialog(QWidget *parent = nullptr);
private:
Ui::ImageDialog ui;
diff --git a/src/designer/src/designer/doc/snippets/singleinheritance/singleinheritance.pro b/src/designer/src/designer/doc/snippets/singleinheritance/singleinheritance.pro
index fba94debf..6937e8e54 100644
--- a/src/designer/src/designer/doc/snippets/singleinheritance/singleinheritance.pro
+++ b/src/designer/src/designer/doc/snippets/singleinheritance/singleinheritance.pro
@@ -1,4 +1,5 @@
TEMPLATE = app
+QT += widgets
FORMS = imagedialog.ui
HEADERS = imagedialog.h
SOURCES = imagedialog.cpp \
diff --git a/src/designer/src/designer/doc/snippets/uitools/calculatorform/CMakeLists.txt b/src/designer/src/designer/doc/snippets/uitools/calculatorform/CMakeLists.txt
new file mode 100644
index 000000000..ace6f3d1d
--- /dev/null
+++ b/src/designer/src/designer/doc/snippets/uitools/calculatorform/CMakeLists.txt
@@ -0,0 +1,26 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+#! [0]
+cmake_minimum_required(VERSION 3.16)
+project(calculatorform LANGUAGES CXX)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTOUIC ON)
+
+find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets)
+
+qt_add_executable(calculatorform
+ calculatorform.ui main.cpp)
+
+set_target_properties(calculatorform PROPERTIES
+ WIN32_EXECUTABLE TRUE
+ MACOSX_BUNDLE TRUE
+)
+
+target_link_libraries(calculatorform PUBLIC
+ Qt::Core
+ Qt::Gui
+ Qt::Widgets
+)
+#! [0]
diff --git a/src/designer/src/designer/doc/src/designer-manual.qdoc b/src/designer/src/designer/doc/src/designer-manual.qdoc
index 82f81d98b..9b60a3238 100644
--- a/src/designer/src/designer/doc/src/designer-manual.qdoc
+++ b/src/designer/src/designer/doc/src/designer-manual.qdoc
@@ -2085,6 +2085,10 @@ pixmap property in the property editor.
\snippet manual/doc_src_designer-manual.cpp 2
+ \note When renaming widgets in the form, the slot names need to be
+ adapted accordingly, which can become a maintenance problem.
+ For this reason, we recommend against using this in new code.
+
Using this convention, we can define and implement a slot that responds to
mouse clicks on the \gui OK button:
diff --git a/src/designer/src/lib/sdk/abstractformeditor.cpp b/src/designer/src/lib/sdk/abstractformeditor.cpp
index 2d4b20812..1f6d55d75 100644
--- a/src/designer/src/lib/sdk/abstractformeditor.cpp
+++ b/src/designer/src/lib/sdk/abstractformeditor.cpp
@@ -128,7 +128,7 @@ QDesignerFormEditorInterfacePrivate::~QDesignerFormEditorInterfacePrivate()
these components. They are typically used to query (and
manipulate) the respective component. For example:
- \snippet lib/tools_designer_src_lib_sdk_abstractformeditor.cpp 0
+ \snippet lib/tools_designer_src_lib_sdk_abstractobjectinspector.cpp 0
QDesignerFormEditorInterface is not intended to be instantiated
directly. A pointer to \QD's current QDesignerFormEditorInterface
diff --git a/src/designer/src/lib/shared/qlayout_widget_p.h b/src/designer/src/lib/shared/qlayout_widget_p.h
index 1efe3a905..af6f1c9c6 100644
--- a/src/designer/src/lib/shared/qlayout_widget_p.h
+++ b/src/designer/src/lib/shared/qlayout_widget_p.h
@@ -201,6 +201,7 @@ public:
// grid helpers: find item index
static int findItemAt(QGridLayout *, int row, int column);
+ using QDesignerLayoutDecorationExtension::findItemAt;
// grid helpers: Quick check whether simplify should be enabled for grids. May return false positives.
static bool canSimplifyQuickCheck(const QGridLayout *);
static bool canSimplifyQuickCheck(const QFormLayout *fl);
diff --git a/src/designer/src/lib/uilib/abstractformbuilder.cpp b/src/designer/src/lib/uilib/abstractformbuilder.cpp
index a4b3f229b..32b82b98e 100644
--- a/src/designer/src/lib/uilib/abstractformbuilder.cpp
+++ b/src/designer/src/lib/uilib/abstractformbuilder.cpp
@@ -127,7 +127,7 @@ public:
QFormBuilder class to create user interfaces from UI files at
run-time. For example:
- \snippet lib/tools_designer_src_lib_uilib_abstractformbuilder.cpp 0
+ \snippet lib/tools_designer_src_lib_uilib_formbuilder.cpp 0
To override certain aspects of the form builder's behavior,
subclass QAbstractFormBuilder and reimplement the relevant virtual
diff --git a/src/designer/src/lib/uilib/formbuilderextra.cpp b/src/designer/src/lib/uilib/formbuilderextra.cpp
index 1dbed5348..f54e1f4d6 100644
--- a/src/designer/src/lib/uilib/formbuilderextra.cpp
+++ b/src/designer/src/lib/uilib/formbuilderextra.cpp
@@ -548,11 +548,10 @@ DomColorGroup *QFormBuilderExtra::saveColorGroup(const QPalette &palette,
DomColorGroup *group = new DomColorGroup();
QList<DomColorRole *> colorRoles;
- const uint mask = palette.resolveMask();
- for (int role = QPalette::WindowText; role < QPalette::NColorRoles; ++role) {
- if (mask & (1 << role)) {
- const QBrush &br = palette.brush(colorGroup, QPalette::ColorRole(role));
-
+ for (int r = QPalette::WindowText; r < QPalette::NColorRoles; ++r) {
+ const auto role = static_cast<QPalette::ColorRole>(r);
+ if (palette.isBrushSet(colorGroup, role)) {
+ const QBrush &br = palette.brush(colorGroup, role);
DomColorRole *colorRole = new DomColorRole();
colorRole->setElementBrush(saveBrush(br));
colorRole->setAttributeRole(QLatin1String(colorRole_enum.valueToKey(role)));
diff --git a/src/linguist/Qt6LinguistToolsMacros.cmake b/src/linguist/Qt6LinguistToolsMacros.cmake
index 7f5550851..241af723a 100644
--- a/src/linguist/Qt6LinguistToolsMacros.cmake
+++ b/src/linguist/Qt6LinguistToolsMacros.cmake
@@ -176,7 +176,8 @@ function(qt6_add_lupdate target)
if(arg_SOURCES)
qt_internal_make_paths_absolute(sources "${arg_SOURCES}")
else()
- set(sources "$<TARGET_PROPERTY:${target},SOURCES>")
+ set(exclude_regex "\\.ts$")
+ set(sources "$<FILTER:$<TARGET_PROPERTY:${target},SOURCES>,EXCLUDE,${exclude_regex}>")
endif()
qt_internal_make_paths_absolute(ts_files "${arg_TS_FILES}")
diff --git a/src/linguist/lupdate/CMakeLists.txt b/src/linguist/lupdate/CMakeLists.txt
index f6b225f56..89696fd70 100644
--- a/src/linguist/lupdate/CMakeLists.txt
+++ b/src/linguist/lupdate/CMakeLists.txt
@@ -77,6 +77,7 @@ qt_internal_extend_target(${target_name} CONDITION QT_FEATURE_clangcpp
SOURCES
clangtoolastreader.cpp clangtoolastreader.h
cpp_clang.cpp cpp_clang.h
+ filesignificancecheck.cpp filesignificancecheck.h
lupdatepreprocessoraction.cpp lupdatepreprocessoraction.h
synchronized.h
DEFINES
@@ -97,6 +98,12 @@ qt_internal_extend_target(${target_name} CONDITION QT_FEATURE_clangcpp
WrapLibClang::WrapLibClang # special case
)
+if(QT_FEATURE_clangcpp AND TARGET ${target_name})
+ # If libclangTooling.a is not built with -fPIE enabled we cannot link it to lupdate.
+ # TODO: Re-enable PIE once clang is built with PIE in provisioning.
+ set_target_properties(${target_name} PROPERTIES POSITION_INDEPENDENT_CODE FALSE)
+endif()
+
qt_internal_extend_target(${target_name} CONDITION MSVC
DEFINES _SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING)
diff --git a/src/linguist/lupdate/clangtoolastreader.cpp b/src/linguist/lupdate/clangtoolastreader.cpp
index 8aac00ddf..8511eb4e4 100644
--- a/src/linguist/lupdate/clangtoolastreader.cpp
+++ b/src/linguist/lupdate/clangtoolastreader.cpp
@@ -27,6 +27,7 @@
****************************************************************************/
#include "clangtoolastreader.h"
+#include "filesignificancecheck.h"
#include "translator.h"
#include <QLibraryInfo>
@@ -347,7 +348,8 @@ bool LupdateVisitor::VisitCallExpr(clang::CallExpr *callExpression)
const auto fileLoc = sm.getFileLoc(callExpression->getBeginLoc());
if (fileLoc.isInvalid() || !fileLoc.isFileID())
return true;
- auto presumedLoc = sm.getPresumedLoc(fileLoc);
+ // not using line directive (# line)
+ auto presumedLoc = sm.getPresumedLoc(fileLoc, false);
if (presumedLoc.isInvalid())
return true;
info = { presumedLoc.getLine(), presumedLoc.getFilename() };
@@ -357,7 +359,7 @@ bool LupdateVisitor::VisitCallExpr(clang::CallExpr *callExpression)
}
// Checking that the CallExpression is from the input file we're interested in
- if (info.Filename != m_inputFile)
+ if (!LupdatePrivate::isFileSignificant(info.Filename))
return true;
qCDebug(lcClang) << "************************** VisitCallExpr ****************";
@@ -436,16 +438,21 @@ bool LupdateVisitor::VisitCallExpr(clang::CallExpr *callExpression)
return true;
}
+void LupdateVisitor::processIsolatedComments()
+{
+ auto &sourceMgr = m_context->getSourceManager();
+ processIsolatedComments(sourceMgr.getMainFileID()) ;
+}
+
/*
Retrieve the comments not associated with tr calls.
*/
-void LupdateVisitor::processIsolatedComments()
+void LupdateVisitor::processIsolatedComments(const clang::FileID file)
{
qCDebug(lcClang) << "==== processIsolatedComments ====";
auto &sourceMgr = m_context->getSourceManager();
#if (LUPDATE_CLANG_VERSION >= LUPDATE_CLANG_VERSION_CHECK(10,0,0))
- const clang::FileID file = sourceMgr.getMainFileID();
const auto commentsInThisFile = m_context->Comments.getCommentsInFile(file);
if (!commentsInThisFile)
return;
@@ -455,6 +462,7 @@ void LupdateVisitor::processIsolatedComments()
tmp.emplace_back(commentInFile.second);
clang::ArrayRef<clang::RawComment *> rawComments = tmp;
#else
+ Q_UNUSED(file);
clang::ArrayRef<clang::RawComment *> rawComments = m_context->getRawCommentList().getComments();
#endif
@@ -468,13 +476,15 @@ void LupdateVisitor::processIsolatedComments()
// They are not associated to any tr calls
// Each one needs its own entry in the m_stores->AST translation store
for (const auto &rawComment : rawComments) {
- if (sourceMgr.getFilename(rawComment->getBeginLoc()).str() != m_inputFile)
+ if (!LupdatePrivate::isFileSignificant(sourceMgr.getFilename(rawComment->getBeginLoc()).str()))
continue;
// Comments not separated by an empty line will be part of the same Raw comments
// Each one needs to be saved with its line number.
// The store is used here only to pass this information.
TranslationRelatedStore store;
- store.lupdateLocationLine = sourceMgr.getPresumedLoc(rawComment->getBeginLoc()).getLine();
+ store.lupdateLocationLine = sourceMgr.getPresumedLoc(rawComment->getBeginLoc(), false).getLine();
+ store.lupdateLocationFile = QString::fromStdString(
+ sourceMgr.getPresumedLoc(rawComment->getBeginLoc(), false).getFilename());
QString comment = toQt(rawComment->getRawText(sourceMgr));
qCDebug(lcClang) << " raw Comment : \n" << comment;
setInfoFromRawComment(comment, &store);
@@ -718,7 +728,7 @@ void LupdateVisitor::setInfoFromRawComment(const QString &commentString,
newStore.contextArg = comment.left(index).trimmed();
newStore.lupdateComment = comment.mid(index).trimmed();
}
- newStore.lupdateLocationFile = QString::fromStdString(m_inputFile);
+ newStore.lupdateLocationFile = store->lupdateLocationFile;
newStore.lupdateLocationLine = storeLine;
newStore.locationCol = 0;
newStore.printStore();
@@ -733,18 +743,33 @@ void LupdateVisitor::setInfoFromRawComment(const QString &commentString,
void LupdateVisitor::processPreprocessorCalls()
{
- m_macro = (m_stores->Preprocessor.size() > 0);
- for (const auto &store : m_stores->Preprocessor)
- processPreprocessorCall(store);
+ QString inputFile = toQt(m_inputFile);
+ for (const auto &store : m_stores->Preprocessor) {
+ if (store.lupdateInputFile == inputFile)
+ processPreprocessorCall(store);
+ }
+
+ if (m_qDeclareTrMacroAll.size() > 0 || m_noopTranslationMacroAll.size() > 0)
+ m_macro = true;
}
void LupdateVisitor::processPreprocessorCall(TranslationRelatedStore store)
{
+ // To get the comments around the macros
const std::vector<QString> rawComments = rawCommentsFromSourceLocation(store
.callLocation(m_context->getSourceManager()));
+ // to pick up the raw comments in the files collected from the preprocessing.
for (const auto &rawComment : rawComments)
setInfoFromRawComment(rawComment, &store);
+ // Processing the isolated comments (TRANSLATOR) in the files included in the main input file.
+ if (store.callType.contains(QStringLiteral("InclusionDirective"))) {
+ auto &sourceMgr = m_context->getSourceManager();
+ const clang::FileID file = sourceMgr.getDecomposedLoc(store.callLocation(sourceMgr)).first;
+ processIsolatedComments(file);
+ return;
+ }
+
if (store.isValid()) {
if (store.funcName.contains(QStringLiteral("Q_DECLARE_TR_FUNCTIONS")))
m_qDeclareTrMacroAll.emplace_back(std::move(store));
@@ -762,7 +787,7 @@ bool LupdateVisitor::VisitNamedDecl(clang::NamedDecl *namedDeclaration)
if (!fullLocation.isValid() || !fullLocation.getFileEntry())
return true;
- if (fullLocation.getFileEntry()->getName() != m_inputFile)
+ if (!LupdatePrivate::isFileSignificant(fullLocation.getFileEntry()->getName().str()))
return true;
qCDebug(lcClang) << "NamedDecl Name: " << namedDeclaration->getQualifiedNameAsString();
@@ -836,16 +861,16 @@ void LupdateVisitor::findContextForTranslationStoresFromPP(clang::NamedDecl *nam
}
}
-void LupdateVisitor::generateOuput()
+void LupdateVisitor::generateOutput()
{
- qCDebug(lcClang) << "=================m_trCallserateOuput============================";
+ qCDebug(lcClang) << "=================generateOutput============================";
m_noopTranslationMacroAll.erase(std::remove_if(m_noopTranslationMacroAll.begin(),
- m_noopTranslationMacroAll.end(), [this](const TranslationRelatedStore &store) {
+ m_noopTranslationMacroAll.end(), [](const TranslationRelatedStore &store) {
// Macros not located in the currently visited file are missing context (and it's normal),
// so an output is only generated for macros present in the currently visited file.
// If context could not be found, it is warned against in ClangCppParser::collectMessages
// (where it is possible to order the warnings and print them consistantly)
- if ( m_inputFile != qPrintable(store.lupdateLocationFile))
+ if (!LupdatePrivate::isFileSignificant(store.lupdateLocationFile.toStdString()))
return true;
return false;
}), m_noopTranslationMacroAll.end());
diff --git a/src/linguist/lupdate/clangtoolastreader.h b/src/linguist/lupdate/clangtoolastreader.h
index bded8d46c..ee1dd9266 100644
--- a/src/linguist/lupdate/clangtoolastreader.h
+++ b/src/linguist/lupdate/clangtoolastreader.h
@@ -67,7 +67,7 @@ public:
void processPreprocessorCalls();
bool VisitNamedDecl(clang::NamedDecl *namedDeclaration);
void findContextForTranslationStoresFromPP(clang::NamedDecl *namedDeclaration);
- void generateOuput();
+ void generateOutput();
private:
std::vector<QString> rawCommentsForCallExpr(const clang::CallExpr *callExpr) const;
@@ -77,6 +77,7 @@ private:
void processPreprocessorCall(TranslationRelatedStore store);
void processIsolatedComments();
+ void processIsolatedComments(const clang::FileID file);
clang::ASTContext *m_context = nullptr;
std::string m_inputFile;
@@ -103,7 +104,7 @@ public:
m_visitor.processPreprocessorCalls();
bool traverse = m_visitor.TraverseAST(context);
qCDebug(lcClang) << "TraverseAST: " << traverse;
- m_visitor.generateOuput();
+ m_visitor.generateOutput();
}
private:
diff --git a/src/linguist/lupdate/cpp_clang.cpp b/src/linguist/lupdate/cpp_clang.cpp
index c0ce164fb..89376550c 100644
--- a/src/linguist/lupdate/cpp_clang.cpp
+++ b/src/linguist/lupdate/cpp_clang.cpp
@@ -1,4 +1,4 @@
-/****************************************************************************
+/****************************************************************************
**
** Copyright (C) 2019 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
@@ -28,6 +28,7 @@
#include "cpp_clang.h"
#include "clangtoolastreader.h"
+#include "filesignificancecheck.h"
#include "lupdatepreprocessoraction.h"
#include "synchronized.h"
#include "translator.h"
@@ -38,6 +39,7 @@
#include <QtCore/qjsonarray.h>
#include <QtCore/qjsondocument.h>
#include <QtCore/qjsonobject.h>
+#include <QtCore/qscopeguard.h>
#include <QtCore/QProcess>
#include <QStandardPaths>
#include <QtTools/private/qttools-config_p.h>
@@ -99,6 +101,21 @@ static QByteArrayList getMSVCIncludePathsFromEnvironment()
return pathList;
}
+static QStringList getProjectDirsFromEnvironment()
+{
+ QList<QByteArray> dirList;
+ QStringList rootdirs;
+ if (const char* includeEnv = std::getenv("LUPDATE_ROOT_DIRS")) {
+ QByteArray includeList = QByteArray::fromRawData(includeEnv, strlen(includeEnv));
+ dirList = includeList.split(';');
+
+ for (auto dir : dirList) {
+ rootdirs.append(QString::fromStdString(dir.toStdString()));
+ }
+ }
+ return rootdirs;
+}
+
static QByteArray frameworkSuffix()
{
@@ -168,50 +185,123 @@ QByteArrayList getIncludePathsFromCompiler()
return pathList;
}
-// Makes sure all the comments will be parsed and part of the AST
-// Clang will run with the flag -fparse-all-comments
-clang::tooling::ArgumentsAdjuster getClangArgumentAdjuster()
+std::vector<std::string> ClangCppParser::getAliasFunctionDefinition()
{
- return [](const clang::tooling::CommandLineArguments &args, llvm::StringRef /*unused*/) {
- clang::tooling::CommandLineArguments adjustedArgs;
- for (size_t i = 0, e = args.size(); i < e; ++i) {
- llvm::StringRef arg = args[i];
- // FIXME: Remove options that generate output.
- if (!arg.startswith("-fcolor-diagnostics") && !arg.startswith("-fdiagnostics-color"))
- adjustedArgs.push_back(args[i]);
+ QStringList aliases = trFunctionAliasManager.listAliases();
+ std::vector<std::string> results;
+ for (QString alias : aliases) {
+ std::string definition = "-D" + alias.toStdString();
+ switch (trFunctionAliasManager.trFunctionByName(alias)) {
+ case TrFunctionAliasManager::Function_QT_TR_N_NOOP:
+ definition += "(x)=QT_TR_N_NOOP(x)";
+ results.push_back(definition);
+ break;
+ case TrFunctionAliasManager::Function_trUtf8:
+ case TrFunctionAliasManager::Function_tr:
+ definition += "=tr";
+ results.push_back(definition);
+ break;
+ case TrFunctionAliasManager::Function_QT_TR_NOOP:
+ definition += "(x)=QT_TR_NOOP(x)";
+ results.push_back(definition);
+ break;
+ case TrFunctionAliasManager::Function_QT_TR_NOOP_UTF8:
+ definition += "(x)=QT_TR_NOOP_UTF8(x)";
+ results.push_back(definition);
+ break;
+ case TrFunctionAliasManager::Function_QT_TRANSLATE_N_NOOP:
+ definition += "(scope,x)=QT_TRANSLATE_N_NOOP(scope,x)";
+ results.push_back(definition);
+ break;
+ case TrFunctionAliasManager::Function_QT_TRANSLATE_N_NOOP3:
+ definition += "(scope, x, comment)=QT_TRANSLATE_N_NOOP3(scope, x, comment)";
+ results.push_back(definition);
+ break;
+ case TrFunctionAliasManager::Function_translate:
+ definition += "=QCoreApplication::translate";
+ results.push_back(definition);
+ break;
+ case TrFunctionAliasManager::Function_findMessage:
+ definition += "=findMessage";
+ results.push_back(definition);
+ break;
+ case TrFunctionAliasManager::Function_QT_TRANSLATE_NOOP:
+ definition += "(scope,x)=QT_TRANSLATE_NOOP(scope,x)";
+ results.push_back(definition);
+ break;
+ case TrFunctionAliasManager::Function_QT_TRANSLATE_NOOP_UTF8:
+ definition += "(scope,x)=QT_TRANSLATE_NOOP_UTF8(scope,x)";
+ results.push_back(definition);
+ break;
+ case TrFunctionAliasManager::Function_QT_TRANSLATE_NOOP3:
+ definition += "(scope, x, comment)=QT_TRANSLATE_NOOP3(scope, x, comment)";
+ results.push_back(definition);
+ break;
+ case TrFunctionAliasManager::Function_QT_TRANSLATE_NOOP3_UTF8:
+ definition += "(scope, x, comment)=QT_TRANSLATE_NOOP3_UTF8(scope, x, comment)";
+ results.push_back(definition);
+ break;
+ case TrFunctionAliasManager::Function_qtTrId:
+ definition += "=qtTrId";
+ results.push_back(definition);
+ break;
+ case TrFunctionAliasManager::Function_QT_TRID_N_NOOP:
+ case TrFunctionAliasManager::Function_QT_TRID_NOOP:
+ definition += "(id)=QT_TRID_NOOP(id)";
+ results.push_back(definition);
+ break;
+ case TrFunctionAliasManager::Function_Q_DECLARE_TR_FUNCTIONS:
+ definition += "(context)=Q_DECLARE_TR_FUNCTIONS(context)";
+ results.push_back(definition);
+ break;
+ default:
+ break;
}
- adjustedArgs.push_back("-fparse-all-comments");
- adjustedArgs.push_back("-nostdinc");
+ }
+ return results;
+}
+
+static std::vector<std::string> aliasDefinition;
+
+static clang::tooling::ArgumentsAdjuster getClangArgumentAdjuster()
+{
+ const QByteArrayList compilerIncludeFlags = getIncludePathsFromCompiler();
+ return [=](const clang::tooling::CommandLineArguments &args, llvm::StringRef /*unused*/) {
+ clang::tooling::CommandLineArguments adjustedArgs(args);
+ clang::tooling::CommandLineArguments adjustedArgsTemp;
+
+ adjustedArgsTemp.push_back("-fparse-all-comments");
+ adjustedArgsTemp.push_back("-nostdinc");
// Turn off SSE support to avoid usage of gcc builtins.
// TODO: Look into what Qt Creator does.
// Pointers: HeaderPathFilter::removeGccInternalIncludePaths()
// and gccInstallDir() in gcctoolchain.cpp
// Also needed for Mac, No need for CLANG_RESOURCE_DIR when this is part of the argument.
- adjustedArgs.push_back("-mno-sse");
+ adjustedArgsTemp.push_back("-mno-sse");
- adjustedArgs.push_back("-fsyntax-only");
#ifdef Q_OS_WIN
- adjustedArgs.push_back("-fms-compatibility-version=19");
- adjustedArgs.push_back("-DQ_COMPILER_UNIFORM_INIT"); // qtbase + clang-cl hack
+ adjustedArgsTemp.push_back("-fms-compatibility-version=19");
+ adjustedArgsTemp.push_back("-DQ_COMPILER_UNIFORM_INIT"); // qtbase + clang-cl hack
// avoid constexpr error connected with offsetof (QTBUG-97380)
- adjustedArgs.push_back("-D_CRT_USE_BUILTIN_OFFSETOF");
+ adjustedArgsTemp.push_back("-D_CRT_USE_BUILTIN_OFFSETOF");
#endif
- adjustedArgs.push_back("-Wno-everything");
- adjustedArgs.push_back("-std=gnu++17");
+ adjustedArgsTemp.push_back("-Wno-everything");
- for (QByteArray line : getIncludePathsFromCompiler()) {
- line = line.trimmed();
- if (line.isEmpty())
- continue;
- adjustedArgs.push_back(line.data());
+ for (const QByteArray &flag : compilerIncludeFlags)
+ adjustedArgsTemp.push_back(flag.data());
+
+ for (auto alias : aliasDefinition) {
+ adjustedArgsTemp.push_back(alias);
}
+ clang::tooling::CommandLineArguments::iterator it = llvm::find(adjustedArgs, "--");
+ adjustedArgs.insert(it, adjustedArgsTemp.begin(), adjustedArgsTemp.end());
return adjustedArgs;
};
}
-bool ClangCppParser::containsTranslationInformation(llvm::StringRef ba)
+bool ClangCppParser::stringContainsTranslationInformation(llvm::StringRef ba)
{
// pre-process the files by a simple text search if there is any occurrence
// of things we are interested in
@@ -248,6 +338,12 @@ bool ClangCppParser::containsTranslationInformation(llvm::StringRef ba)
|| ba.contains(trUtf8) || ba.contains(translate))
return true;
+ for (QString alias : trFunctionAliasManager.listAliases()) {
+ if (ba.contains(qPrintable(alias)))
+ return true;
+ }
+
+
return false;
}
@@ -261,6 +357,7 @@ static bool generateCompilationDatabase(const QString &outputFilePath, const Con
obj[QLatin1String("directory")] = buildDir;
QJsonArray args = {
QLatin1String("clang++"),
+ QLatin1String("-std=gnu++17"),
#ifndef Q_OS_WIN
QLatin1String("-fPIC"),
#endif
@@ -315,33 +412,35 @@ static void sortMessagesByFileOrder(ClangCppParser::TranslatorMessageVector &mes
});
}
+bool ClangCppParser::hasAliases()
+{
+ QStringList listAlias = trFunctionAliasManager.listAliases();
+ if (listAlias.size() > 0)
+ return true;
+ return false;
+}
+
void ClangCppParser::loadCPP(Translator &translator, const QStringList &files, ConversionData &cd,
bool *fail)
{
+ FileSignificanceCheck::create();
+ auto cleanup = qScopeGuard(FileSignificanceCheck::destroy);
+ FileSignificanceCheck::the()->setExclusionPatterns(cd.m_excludes);
+ if (cd.m_rootDirs.size() > 0)
+ FileSignificanceCheck::the()->setRootDirectories(cd.m_rootDirs);
+ else
+ FileSignificanceCheck::the()->setRootDirectories(getProjectDirsFromEnvironment());
+
+ if (hasAliases())
+ aliasDefinition = getAliasFunctionDefinition();
// pre-process the files by a simple text search if there is any occurrence
// of things we are interested in
qCDebug(lcClang) << "Load CPP \n";
- std::vector<std::string> sourcesAst, sourcesPP;
+ std::vector<std::string> sources;
for (const QString &filename : files) {
- QFile file(filename);
qCDebug(lcClang) << "File: " << filename << " \n";
- if (file.open(QIODevice::ReadOnly)) {
- if (const uchar *memory = file.map(0, file.size())) {
- const auto ba = llvm::StringRef((const char*) (memory), file.size());
- if (containsTranslationInformation(ba)) {
- sourcesPP.emplace_back(filename.toStdString());
- sourcesAst.emplace_back(sourcesPP.back());
- }
- } else {
- QByteArray mem = file.readAll();
- const auto ba = llvm::StringRef((const char*) (mem), file.size());
- if (containsTranslationInformation(ba)) {
- sourcesPP.emplace_back(filename.toStdString());
- sourcesAst.emplace_back(sourcesPP.back());
- }
- }
- }
+ sources.emplace_back(filename.toStdString());
}
std::string errorMessage;
@@ -379,16 +478,21 @@ void ClangCppParser::loadCPP(Translator &translator, const QStringList &files, C
Stores stores(ast, qdecl, qnoop);
std::vector<std::thread> producers;
- ReadSynchronizedRef<std::string> ppSources(sourcesPP);
+ ReadSynchronizedRef<std::string> ppSources(sources);
WriteSynchronizedRef<TranslationRelatedStore> ppStore(stores.Preprocessor);
size_t idealProducerCount = std::min(ppSources.size(), size_t(std::thread::hardware_concurrency()));
+ clang::tooling::ArgumentsAdjuster argumentsAdjusterSyntaxOnly =
+ clang::tooling::getClangSyntaxOnlyAdjuster();
+ clang::tooling::ArgumentsAdjuster argumentsAdjusterLocal = getClangArgumentAdjuster();
+ clang::tooling::ArgumentsAdjuster argumentsAdjuster =
+ clang::tooling::combineAdjusters(argumentsAdjusterLocal, argumentsAdjusterSyntaxOnly);
for (size_t i = 0; i < idealProducerCount; ++i) {
- std::thread producer([&ppSources, &db, &ppStore]() {
+ std::thread producer([&ppSources, &db, &ppStore, &argumentsAdjuster]() {
std::string file;
while (ppSources.next(&file)) {
clang::tooling::ClangTool tool(*db, file);
- tool.appendArgumentsAdjuster(getClangArgumentAdjuster());
+ tool.appendArgumentsAdjuster(argumentsAdjuster);
tool.run(new LupdatePreprocessorActionFactory(&ppStore));
}
});
@@ -398,14 +502,14 @@ void ClangCppParser::loadCPP(Translator &translator, const QStringList &files, C
producer.join();
producers.clear();
- ReadSynchronizedRef<std::string> astSources(sourcesAst);
+ ReadSynchronizedRef<std::string> astSources(sources);
idealProducerCount = std::min(astSources.size(), size_t(std::thread::hardware_concurrency()));
for (size_t i = 0; i < idealProducerCount; ++i) {
- std::thread producer([&astSources, &db, &stores]() {
+ std::thread producer([&astSources, &db, &stores, &argumentsAdjuster]() {
std::string file;
while (astSources.next(&file)) {
clang::tooling::ClangTool tool(*db, file);
- tool.appendArgumentsAdjuster(getClangArgumentAdjuster());
+ tool.appendArgumentsAdjuster(argumentsAdjuster);
tool.run(new LupdateToolActionFactory(&stores));
}
});
diff --git a/src/linguist/lupdate/cpp_clang.h b/src/linguist/lupdate/cpp_clang.h
index 38bca5784..b314bad99 100644
--- a/src/linguist/lupdate/cpp_clang.h
+++ b/src/linguist/lupdate/cpp_clang.h
@@ -84,6 +84,7 @@ struct TranslationRelatedStore
QString contextRetrieved;
QString lupdateSource;
QString lupdateLocationFile;
+ QString lupdateInputFile; // file associated to the running of the tool
qint64 lupdateLocationLine = -1;
QString lupdateId;
QString lupdateSourceWhenId;
@@ -335,7 +336,10 @@ namespace ClangCppParser
void finalize(ReadSynchronizedRef<TranslationRelatedStore> &ast,
WriteSynchronizedRef<TranslationRelatedStore> &newAst);
- bool containsTranslationInformation(llvm::StringRef ba);
+ bool stringContainsTranslationInformation(llvm::StringRef ba);
+ bool hasAliases();
+ std::vector<std::string> getAliasFunctionDefinition();
+
}
QT_END_NAMESPACE
diff --git a/src/linguist/lupdate/filesignificancecheck.cpp b/src/linguist/lupdate/filesignificancecheck.cpp
new file mode 100644
index 000000000..ff362c3e6
--- /dev/null
+++ b/src/linguist/lupdate/filesignificancecheck.cpp
@@ -0,0 +1,95 @@
+/****************************************************************************
+**
+** Copyright (C) 2022 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Linguist of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:COMM$
+**
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** $QT_END_LICENSE$
+**
+**
+**
+**
+**
+**
+**
+**
+******************************************************************************/
+
+#include "filesignificancecheck.h"
+
+#include <mutex>
+
+QT_BEGIN_NAMESPACE
+
+FileSignificanceCheck *FileSignificanceCheck::m_instance = nullptr;
+
+void FileSignificanceCheck::setRootDirectories(const QStringList &paths)
+{
+ const size_t pathsSize = static_cast<size_t>(paths.size());
+ m_rootDirs.resize(pathsSize);
+ for (size_t i = 0; i < pathsSize; ++i)
+ m_rootDirs[i].setPath(paths.at(i));
+}
+
+void FileSignificanceCheck::setExclusionPatterns(const QStringList &patterns)
+{
+ const size_t patternsSize = static_cast<size_t>(patterns.size());
+ m_exclusionRegExes.resize(patternsSize);
+ for (size_t i = 0; i < patternsSize; ++i)
+ m_exclusionRegExes[i] = QRegularExpression::fromWildcard(patterns.at(i));
+}
+
+/*
+ * Return true if the given source file is significant for lupdate.
+ * A file is considered insignificant if
+ * - it's not within any project root
+ * - it's excluded
+ *
+ * This method is called from multiple threads.
+ * Results are cached.
+ */
+bool FileSignificanceCheck::isFileSignificant(const std::string &filePath) const
+{
+ // cache lookup
+ std::shared_lock<std::shared_mutex> readLock(m_cacheMutex);
+ auto it = m_cache.find(filePath);
+ if (it != m_cache.end())
+ return it->second;
+
+ // cache miss
+ readLock.unlock();
+ std::unique_lock<std::shared_mutex> writeLock(m_cacheMutex);
+ QString file = QString::fromUtf8(filePath);
+ QString cleanFile = QDir::cleanPath(file);
+ for (const QRegularExpression &rx : m_exclusionRegExes) {
+ if (rx.match(cleanFile).hasMatch()) {
+ m_cache.insert({filePath, false});
+ return false;
+ }
+ }
+
+ for (const QDir &rootDir : m_rootDirs) {
+ QString relativeFilePath = rootDir.relativeFilePath(file);
+ if (!relativeFilePath.startsWith(QLatin1String("../"))
+ && QFileInfo(relativeFilePath).isRelative()) {
+ m_cache.insert({filePath, true});
+ return true;
+ }
+ }
+
+ m_cache.insert({filePath, false});
+ return false;
+}
+
+QT_END_NAMESPACE
diff --git a/src/linguist/lupdate/filesignificancecheck.h b/src/linguist/lupdate/filesignificancecheck.h
new file mode 100644
index 000000000..7607ce0d9
--- /dev/null
+++ b/src/linguist/lupdate/filesignificancecheck.h
@@ -0,0 +1,88 @@
+/****************************************************************************
+**
+** Copyright (C) 2022 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt Linguist of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:COMM$
+**
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** $QT_END_LICENSE$
+**
+**
+**
+**
+**
+**
+**
+**
+******************************************************************************/
+
+#ifndef FILESIGNIFICANCECHECK_H
+#define FILESIGNIFICANCECHECK_H
+
+#include <QtCore/qdir.h>
+#include <QtCore/qregularexpression.h>
+#include <QtCore/qstringlist.h>
+
+#include <shared_mutex>
+#include <string>
+#include <unordered_map>
+#include <vector>
+
+QT_BEGIN_NAMESPACE
+
+class FileSignificanceCheck
+{
+public:
+ FileSignificanceCheck() = default;
+
+ static void create()
+ {
+ m_instance = new FileSignificanceCheck;
+ }
+
+ static void destroy()
+ {
+ delete m_instance;
+ m_instance = nullptr;
+ }
+
+ static FileSignificanceCheck *the()
+ {
+ return m_instance;
+ }
+
+ void setRootDirectories(const QStringList &paths);
+ void setExclusionPatterns(const QStringList &patterns);
+
+ bool isFileSignificant(const std::string &filePath) const;
+
+private:
+ static FileSignificanceCheck *m_instance;
+ std::vector<QDir> m_rootDirs;
+ std::vector<QRegularExpression> m_exclusionRegExes;
+ mutable std::unordered_map<std::string, bool> m_cache;
+ mutable std::shared_mutex m_cacheMutex;
+};
+
+namespace LupdatePrivate {
+
+inline bool isFileSignificant(const std::string &filePath)
+{
+ return FileSignificanceCheck::the()->isFileSignificant(filePath);
+}
+
+} // namespace LupdatePrivate
+
+QT_END_NAMESPACE
+
+#endif // header guard
diff --git a/src/linguist/lupdate/lupdate.h b/src/linguist/lupdate/lupdate.h
index 3d5ed907c..4aaac1e78 100644
--- a/src/linguist/lupdate/lupdate.h
+++ b/src/linguist/lupdate/lupdate.h
@@ -133,6 +133,7 @@ public:
{ return m_trFunctionAliases[trFunction].contains(identifier); }
QStringList availableFunctionsWithAliases() const;
+ QStringList listAliases() const;
const NameToTrFunctionMap &nameToTrFunctionMap() const;
diff --git a/src/linguist/lupdate/lupdatepreprocessoraction.cpp b/src/linguist/lupdate/lupdatepreprocessoraction.cpp
index 24bb212c5..e0e0ceed4 100644
--- a/src/linguist/lupdate/lupdatepreprocessoraction.cpp
+++ b/src/linguist/lupdate/lupdatepreprocessoraction.cpp
@@ -27,6 +27,7 @@
****************************************************************************/
#include "lupdatepreprocessoraction.h"
+#include "filesignificancecheck.h"
#include <clang/Lex/MacroArgs.h>
#include <clang/Basic/TokenKinds.h>
@@ -41,7 +42,7 @@ void LupdatePPCallbacks::MacroExpands(const clang::Token &token,
const auto &sm = m_preprocessor.getSourceManager();
llvm::StringRef fileName = sm.getFilename(sourceRange.getBegin());
- if (fileName != m_inputFile)
+ if (!LupdatePrivate::isFileSignificant(fileName.str()))
return;
const QString funcName = QString::fromStdString(m_preprocessor.getSpelling(token));
@@ -57,6 +58,7 @@ void LupdatePPCallbacks::MacroExpands(const clang::Token &token,
case TrFunctionAliasManager::Function_QT_TRANSLATE_NOOP_UTF8:
case TrFunctionAliasManager::Function_QT_TRANSLATE_NOOP3_UTF8:
case TrFunctionAliasManager::Function_QT_TR_NOOP:
+ case TrFunctionAliasManager::Function_QT_TR_NOOP_UTF8:
case TrFunctionAliasManager::Function_QT_TR_N_NOOP:
qCDebug(lcClang) << "MacroExpands: Function name:" << funcName;
break;
@@ -66,6 +68,7 @@ void LupdatePPCallbacks::MacroExpands(const clang::Token &token,
store.callType = QStringLiteral("MacroExpands");
store.funcName = funcName;
store.lupdateLocationFile = toQt(fileName);
+ store.lupdateInputFile = toQt(m_inputFile);
store.lupdateLocationLine = sm.getExpansionLineNumber(sourceRange.getBegin());
store.locationCol = sm.getExpansionColumnNumber(sourceRange.getBegin());
@@ -88,6 +91,7 @@ void LupdatePPCallbacks::MacroExpands(const clang::Token &token,
case TrFunctionAliasManager::Function_QT_TRANSLATE_NOOP3:
case TrFunctionAliasManager::Function_QT_TRANSLATE_NOOP_UTF8:
case TrFunctionAliasManager::Function_QT_TRANSLATE_NOOP3_UTF8:
+ case TrFunctionAliasManager::Function_QT_TR_NOOP_UTF8:
case TrFunctionAliasManager::Function_QT_TR_NOOP:
case TrFunctionAliasManager::Function_QT_TR_N_NOOP:
if (!clang::tok::isStringLiteral(kind))
@@ -119,6 +123,7 @@ void LupdatePPCallbacks::storeMacroArguments(const std::vector<QString> &args,
if (args.size() == 1)
store->contextArg = args[0];
break;
+ case TrFunctionAliasManager::Function_QT_TR_NOOP_UTF8:
case TrFunctionAliasManager::Function_QT_TR_NOOP:
case TrFunctionAliasManager::Function_QT_TR_N_NOOP:
if (args.size() >= 1)
@@ -156,20 +161,58 @@ void LupdatePPCallbacks::SourceRangeSkipped(clang::SourceRange sourceRange,
const auto &sm = m_preprocessor.getSourceManager();
llvm::StringRef fileName = sm.getFilename(sourceRange.getBegin());
- if (fileName != m_inputFile)
+
+ if (!LupdatePrivate::isFileSignificant(fileName.str()))
return;
+
const char *begin = sm.getCharacterData(sourceRange.getBegin());
const char *end = sm.getCharacterData(sourceRange.getEnd());
llvm::StringRef skippedText = llvm::StringRef(begin, end - begin);
- if (ClangCppParser::containsTranslationInformation(skippedText)) {
+ if (ClangCppParser::stringContainsTranslationInformation(skippedText)) {
qCDebug(lcClang) << "SourceRangeSkipped: skipped text:" << skippedText.str();
unsigned int beginLine = sm.getExpansionLineNumber(sourceRange.getBegin());
unsigned int endLine = sm.getExpansionLineNumber(sourceRange.getEnd());
qWarning("%s Code with translation information has been skipped "
"between lines %d and %d",
- m_inputFile.c_str(), beginLine, endLine);
+ fileName.str().c_str(), beginLine, endLine);
}
+}
+
+// To list the included files
+void LupdatePPCallbacks::InclusionDirective(clang::SourceLocation /*hashLoc*/,
+ const clang::Token & /*includeTok*/, clang::StringRef /*fileName*/, bool /*isAngled*/,
+ clang::CharSourceRange /*filenameRange*/,
+#if (LUPDATE_CLANG_VERSION >= LUPDATE_CLANG_VERSION_CHECK(15,0,0))
+ const clang::Optional<clang::FileEntryRef> file,
+#else
+ const clang::FileEntry *file,
+#endif
+ clang::StringRef /*searchPath*/, clang::StringRef /*relativePath*/,
+ const clang::Module */*imported*/, clang::SrcMgr::CharacteristicKind /*fileType*/)
+{
+ if (!file)
+ return;
+ clang::StringRef fileNameRealPath = file->
+#if (LUPDATE_CLANG_VERSION >= LUPDATE_CLANG_VERSION_CHECK(15,0,0))
+ getFileEntry().
+#endif
+ tryGetRealPathName();
+ if (!LupdatePrivate::isFileSignificant(fileNameRealPath.str()))
+ return;
+
+ TranslationRelatedStore store;
+ store.callType = QStringLiteral("InclusionDirective");
+ store.lupdateLocationFile = toQt(fileNameRealPath);
+ store.lupdateLocationLine = 1;
+ store.locationCol = 1;
+ store.lupdateInputFile = toQt(m_inputFile);
+ // do not fill the store.funcName. There is no function at this point
+ // the information is retrieved here to look for TRANSLATOR comments in header files
+ // when traversing the AST
+
+ if (store.isValid())
+ m_ppStores.emplace_back(std::move(store));
}
QT_END_NAMESPACE
diff --git a/src/linguist/lupdate/lupdatepreprocessoraction.h b/src/linguist/lupdate/lupdatepreprocessoraction.h
index 22cd16216..13459be30 100644
--- a/src/linguist/lupdate/lupdatepreprocessoraction.h
+++ b/src/linguist/lupdate/lupdatepreprocessoraction.h
@@ -74,6 +74,17 @@ private:
void storeMacroArguments(const std::vector<QString> &args, TranslationRelatedStore *store);
void SourceRangeSkipped(clang::SourceRange sourceRange, clang::SourceLocation endifLoc) override;
+ void InclusionDirective(clang::SourceLocation /*hashLoc*/, const clang::Token &/*includeTok*/,
+ clang::StringRef /*fileName*/, bool /*isAngled*/,
+ clang::CharSourceRange /*filenameRange*/,
+#if (LUPDATE_CLANG_VERSION >= LUPDATE_CLANG_VERSION_CHECK(15,0,0))
+ const clang::Optional<clang::FileEntryRef> file,
+#else
+ const clang::FileEntry *file,
+#endif
+ clang::StringRef /*searchPath*/, clang::StringRef /*relativePath*/,
+ const clang::Module */*imported*/,
+ clang::SrcMgr::CharacteristicKind /*fileType*/) override;
std::string m_inputFile;
clang::Preprocessor &m_preprocessor;
diff --git a/src/linguist/lupdate/main.cpp b/src/linguist/lupdate/main.cpp
index 2747e0280..26bb21ac2 100644
--- a/src/linguist/lupdate/main.cpp
+++ b/src/linguist/lupdate/main.cpp
@@ -52,6 +52,7 @@
bool useClangToParseCpp = false;
QString commandLineCompilationDatabaseDir; // for the path to the json file passed as a command line argument.
// Has priority over what is in the .pro file and passed to the project.
+QStringList rootDirs;
// Can't have an array of QStaticStringData<N> for different N, so
// use QString, which requires constructor calls. Doesn't matter
@@ -143,6 +144,19 @@ QStringList TrFunctionAliasManager::availableFunctionsWithAliases() const
return result;
}
+QStringList TrFunctionAliasManager::listAliases() const
+{
+ QStringList result;
+ result.reserve(NumTrFunctions);
+ for (int i = 0; i < NumTrFunctions; ++i) {
+ for (int ii = 1; ii < m_trFunctionAliases[i].size() ; ii++) {
+ // ii = 0 is the default name. Not listed here
+ result.push_back(m_trFunctionAliases[i][ii]);
+ }
+ }
+ return result;
+}
+
TrFunctionAliasManager trFunctionAliasManager;
QString ParserTool::transcode(const QString &str)
@@ -609,6 +623,10 @@ private:
ConversionData cd;
cd.m_noUiLines = options & NoUiLines;
cd.m_projectRoots = projectRoots(projectFile, sources);
+ QStringList projectRootDirs;
+ for (auto dir : cd.m_projectRoots)
+ projectRootDirs.append(dir);
+ cd.m_rootDirs = projectRootDirs;
cd.m_includePath = prj.includePaths;
cd.m_excludes = prj.excluded;
cd.m_sourceIsUtf16 = options & SourceIsUtf16;
@@ -881,6 +899,14 @@ int main(int argc, char **argv)
}
continue;
}
+ else if (arg == QLatin1String("-project-roots")) {
+ while ((i + 1) != argc && !args[i + 1].startsWith(QLatin1String("-"))) {
+ i++;
+ rootDirs << args[i];
+ }
+ rootDirs.removeDuplicates();
+ continue;
+ }
#endif
else if (arg.startsWith(QLatin1String("-")) && arg != QLatin1String("-")) {
printErr(QStringLiteral("Unrecognized option '%1'.\n").arg(arg));
@@ -1045,6 +1071,7 @@ int main(int argc, char **argv)
cd.m_includePath = includePath;
cd.m_allCSources = allCSources;
cd.m_compilationDatabaseDir = commandLineCompilationDatabaseDir;
+ cd.m_rootDirs = rootDirs;
for (const QString &resource : qAsConst(resourceFiles))
sourceFiles << getResources(resource);
processSources(fetchedTor, sourceFiles, cd, &fail);
diff --git a/src/linguist/shared/translator.h b/src/linguist/shared/translator.h
index b8d187029..1d851dc21 100644
--- a/src/linguist/shared/translator.h
+++ b/src/linguist/shared/translator.h
@@ -95,6 +95,7 @@ public:
bool m_noUiLines;
bool m_idBased;
TranslatorSaveMode m_saveMode;
+ QStringList m_rootDirs;
};
class TMMKey {
diff --git a/src/qdoc/CMakeLists.txt b/src/qdoc/CMakeLists.txt
index ee2431e3c..a66331f8c 100644
--- a/src/qdoc/CMakeLists.txt
+++ b/src/qdoc/CMakeLists.txt
@@ -107,6 +107,12 @@ qt_internal_add_tool(${target_name}
#### Keys ignored in scope 2:.:.:qdoc.pro:NOT force_bootstrap:
# _REQUIREMENTS = "qtConfig(xmlstreamwriter)"
+if(TARGET ${target_name})
+ # If libclangTooling.a is not built with -fPIE enabled we cannot link it to qdoc.
+ # TODO: Re-enable PIE once clang is built with PIE in provisioning.
+ set_target_properties(${target_name} PROPERTIES POSITION_INDEPENDENT_CODE FALSE)
+endif()
+
qt_internal_extend_target(${target_name} CONDITION TARGET Qt::QmlDevToolsPrivate
PUBLIC_LIBRARIES
Qt::QmlDevToolsPrivate
diff --git a/src/qdoc/clangcodeparser.cpp b/src/qdoc/clangcodeparser.cpp
index 3886c4270..5145282aa 100644
--- a/src/qdoc/clangcodeparser.cpp
+++ b/src/qdoc/clangcodeparser.cpp
@@ -1005,32 +1005,44 @@ bool ClangVisitor::parseProperty(const QString &spelling, const Location &loc)
QString signature = spelling.mid(lpIdx + 1, rpIdx - lpIdx - 1);
signature = signature.simplified();
-
- QString type;
- QString name;
QStringList parts = signature.split(QChar(' '), Qt::SkipEmptyParts);
- if (parts.size() < 2)
- return false;
- if (parts.first() == QLatin1String("enum"))
- parts.removeFirst(); // QTBUG-80027
- type = parts.takeFirst();
- if (type == QLatin1String("const") && !parts.empty())
- type += " " + parts.takeFirst();
+ static const QStringList attrs =
+ QStringList() << "READ" << "MEMBER" << "WRITE"
+ << "NOTIFY" << "CONSTANT" << "FINAL"
+ << "REQUIRED" << "BINDABLE" << "DESIGNABLE"
+ << "RESET" << "REVISION" << "SCRIPTABLE"
+ << "STORED" << "USER";
+
+ // Find the location of the first attribute. All preceding parts
+ // represent the property type + name.
+ auto it = std::find_if(parts.cbegin(), parts.cend(),
+ [](const QString &attr) -> bool {
+ return attrs.contains(attr);
+ });
- if (!parts.empty())
- name = parts.takeFirst();
- else
+ if (it == parts.cend() || std::distance(parts.cbegin(), it) < 2)
return false;
- if (name.front() == QChar('*')) {
- type.append(QChar('*'));
+ QStringList typeParts;
+ std::copy(parts.cbegin(), it, std::back_inserter(typeParts));
+ parts.erase(parts.cbegin(), it);
+ QString name = typeParts.takeLast();
+
+ // Move the pointer operator(s) from name to type
+ while (!name.isEmpty() && name.front() == QChar('*')) {
+ typeParts.last().push_back(name.front());
name.remove(0, 1);
}
+
+ // Need at least READ or MEMBER + getter/member name
+ if (parts.size() < 2 || name.isEmpty())
+ return false;
+
auto *property = new PropertyNode(parent_, name);
property->setAccess(Access::Public);
property->setLocation(loc);
- property->setDataType(type);
+ property->setDataType(typeParts.join(QChar(' ')));
int i = 0;
while (i < parts.size()) {
@@ -1048,6 +1060,8 @@ bool ClangVisitor::parseProperty(const QString &spelling, const Location &loc)
} else if (key == "WRITE") {
qdb_->addPropertyFunction(property, value, PropertyNode::Setter);
property->setWritable(true);
+ } else if (key == "MEMBER") {
+ property->setWritable(true);
} else if (key == "STORED") {
property->setStored(value.toLower() == "true");
} else if (key == "DESIGNABLE") {
@@ -1374,8 +1388,7 @@ void ClangCodeParser::buildPCH()
m_args.push_back("-xc++");
CXTranslationUnit tu;
QString tmpHeader = m_pchFileDir->path() + "/" + module;
- QFile tmpHeaderFile(tmpHeader);
- if (tmpHeaderFile.open(QIODevice::Text | QIODevice::WriteOnly)) {
+ if (QFile tmpHeaderFile(tmpHeader); tmpHeaderFile.open(QIODevice::Text | QIODevice::WriteOnly)) {
QTextStream out(&tmpHeaderFile);
if (header.isEmpty()) {
for (auto it = m_allHeaders.constKeyValueBegin();
@@ -1395,7 +1408,6 @@ void ClangCodeParser::buildPCH()
}
out << QLatin1String("#include \"") + header + QLatin1String("\"");
}
- tmpHeaderFile.close();
}
CXErrorCode err =
diff --git a/src/qdoc/doc/qdoc-manual-markupcmds.qdoc b/src/qdoc/doc/qdoc-manual-markupcmds.qdoc
index 10f5132a2..0e5d320a9 100644
--- a/src/qdoc/doc/qdoc-manual-markupcmds.qdoc
+++ b/src/qdoc/doc/qdoc-manual-markupcmds.qdoc
@@ -2173,9 +2173,9 @@
The command takes two arguments. The first argument is the name of
the image file. The second argument is optional and is a simple
- description of the image, equivalent to the HTML alt="" in an image
- tag. The description is used for tooltips, and for when a browser
- doesn't support images, like the Lynx text browser.
+ description of the image within braces {}, equivalent to the HTML
+ alt="" in an image tag. The description is used for tooltips, and
+ for when a browser doesn't support images, like the Lynx text browser.
The most common use of the \\inlineimage command is in lists and
tables. Here is an example of including inline images in a list:
@@ -2183,9 +2183,8 @@
\code
/ *!
\list 1
- \li \inlineimage happy.gif Oh so happy!
- \li \inlineimage happy.gif Oh so happy!
- \li \inlineimage happy.gif Oh so happy!
+ \li \inlineimage happy.gif {Oh so happy, I am a caption!}
+ \li \inlineimage happy.gif Oh so happy, but I'm not a caption.
\endlist
* /
\endcode
@@ -2193,9 +2192,8 @@
QDoc renders this as:
\list 1
- \li \inlineimage happy.gif Oh so happy!
- \li \inlineimage happy.gif Oh so happy!
- \li \inlineimage happy.gif Oh so happy!
+ \li \inlineimage happy.gif {Oh so happy, I am a caption!}
+ \li \inlineimage happy.gif Oh so happy, but I'm not a caption.
\endlist
Here is an example of including inline images in a table:
@@ -2207,11 +2205,11 @@
\li Qt
\li Qt Creator
\row
- \li \inlineimage happy.gif Oh so happy!
+ \li \inlineimage happy.gif {Oh so happy!}
\li \inlineimage happy.gif Oh so happy!
\row
\li \inlineimage happy.gif Oh so happy!
- \li \inlineimage happy.gif Oh so happy!
+ \li \inlineimage happy.gif {Oh so happy!}
\endtable
* /
\endcode
@@ -2228,11 +2226,11 @@
<tr valign="top" bgcolor="#f0f0f0">
<td><img src="images/happy.gif" alt="Oh so happy!" />
</td>
- <td><img src="images/happy.gif" alt="Oh so happy!" />
+ <td><img src="images/happy.gif"/> Oh so happy!
</td>
</tr>
<tr valign="top" bgcolor="#f0f0f0">
- <td><img src="images/happy.gif" alt="Oh so happy!"/>
+ <td><img src="images/happy.gif"/> Oh so happy!
</td>
<td><img src="images/happy.gif" alt="Oh so happy!" />
</td>
@@ -2245,26 +2243,22 @@
\code
/ *!
- \inlineimage training.jpg Qt Training
- The Qt Programming course is offered as a
- five day Open Enrollment Course. The classes
- are open to the public. Although the course is open
- to anyone who wants to learn, attendees should
- have significant experience in C++ development
- to derive maximum benefit from the course.
+ \inlineimage training.jpg {Qt Training} The Qt Programming course is
+ offered as a five day Open Enrollment Course. The classes are open to
+ the public. Although the course is open to anyone who wants to learn,
+ attendees should have significant experience in C++ development to
+ derive maximum benefit from the course.
* /
\endcode
QDoc renders this as:
\quotation
- \inlineimage training.jpg Qt Training
- The Qt Programming course is offered as a
- five day Open Enrollment Course. The classes
- are open to the public. Although the course is open
- to anyone who wants to learn, attendees should
- have significant experience in C++ development
- to derive maximum benefit from the course.
+ \inlineimage training.jpg {Qt Training} The Qt Programming course is
+ offered as a five day Open Enrollment Course. The classes are open to
+ the public. Although the course is open to anyone who wants to learn,
+ attendees should have significant experience in C++ development to
+ derive maximum benefit from the course.
\endquotation
See also \l {image-command} {\\image} and \l {caption-command} {\\caption}.
@@ -3746,14 +3740,11 @@
\target meta-command
\section1 \\meta
- The \\meta command is used for adding metadata to example documentation,
- and when generating HTML output for specifying the \e maintainer(s) of a
- C++ class.
-
+ The \\meta command is used for adding metadata to example documentation.
The command has two arguments: the first argument is the name of the
- metadata attribute, and the second argument is the
- value for the attribute. Each argument should be enclosed in curly
- brackets, as shown in this example:
+ metadata attribute, and the second argument is the value for the attribute.
+ Each argument should be enclosed in curly brackets, as shown in this
+ example:
\code
/ *!
diff --git a/src/qdoc/docbookgenerator.cpp b/src/qdoc/docbookgenerator.cpp
index 6c7d1e81a..5f20ae7d9 100644
--- a/src/qdoc/docbookgenerator.cpp
+++ b/src/qdoc/docbookgenerator.cpp
@@ -473,9 +473,9 @@ qsizetype DocBookGenerator::generateAtom(const Atom *atom, const Node *relative)
m_writer->writeEndElement(); // textobject
newLine();
} else {
- if (atom->next() && !atom->next()->string().isEmpty())
+ if (atom->next() && !atom->next()->string().isEmpty()
+ && atom->next()->type() == Atom::ImageText)
m_writer->writeTextElement(dbNamespace, "alt", atom->next()->string());
-
m_writer->writeStartElement(dbNamespace, "imageobject");
newLine();
m_writer->writeEmptyElement(dbNamespace, "imagedata");
@@ -2381,37 +2381,6 @@ void DocBookGenerator::generateAlsoList(const Node *node)
}
/*!
- Generate a list of maintainers in the output
- */
-void DocBookGenerator::generateMaintainerList(const Aggregate *node)
-{
- // From Generator::generateMaintainerList.
- const QStringList sl = getMetadataElements(node, "maintainer");
-
- if (!sl.isEmpty()) {
- m_writer->writeStartElement(dbNamespace, "para");
- m_writer->writeStartElement(dbNamespace, "emphasis");
- m_writer->writeCharacters("Maintained by: ");
- m_writer->writeEndElement(); // emphasis
- newLine();
-
- m_writer->writeStartElement(dbNamespace, "simplelist");
- m_writer->writeAttribute("type", "vert");
- m_writer->writeAttribute("role", "maintainer");
- for (const QString &maintainer : sl) {
- m_writer->writeStartElement(dbNamespace, "member");
- m_writer->writeCharacters(maintainer);
- m_writer->writeEndElement(); // member
- newLine();
- }
- m_writer->writeEndElement(); // simplelist
- newLine();
-
- m_writer->writeEndElement(); // para
- }
-}
-
-/*!
Open a new file to write XML contents, including the DocBook
opening tag.
*/
@@ -2509,7 +2478,6 @@ void DocBookGenerator::generateCppReferencePage(Node *node)
generateBody(aggregate);
generateAlsoList(aggregate);
- generateMaintainerList(aggregate);
endSection();
}
@@ -4082,7 +4050,6 @@ void DocBookGenerator::generateProxyPage(Aggregate *aggregate)
generateBody(aggregate);
generateAlsoList(aggregate);
- generateMaintainerList(aggregate);
endSection();
}
diff --git a/src/qdoc/docbookgenerator.h b/src/qdoc/docbookgenerator.h
index 6f1dc0389..a8b57addc 100644
--- a/src/qdoc/docbookgenerator.h
+++ b/src/qdoc/docbookgenerator.h
@@ -124,7 +124,6 @@ private:
void generateBrief(const Node *node);
void generateAlsoList(const Node *node) override;
void generateSignatureList(const NodeList &nodes);
- void generateMaintainerList(const Aggregate *node) override;
void generateReimplementsClause(const FunctionNode *fn);
void generateClassHierarchy(const Node *relative, NodeMultiMap &classMap);
void generateFunctionIndex(const Node *relative);
diff --git a/src/qdoc/docparser.cpp b/src/qdoc/docparser.cpp
index 43e3a1d30..156e1784f 100644
--- a/src/qdoc/docparser.cpp
+++ b/src/qdoc/docparser.cpp
@@ -663,8 +663,12 @@ void DocParser::parse(const QString &source, DocPrivate *docPrivate,
case CMD_INLINEIMAGE:
enterPara();
append(Atom::InlineImage, getArgument());
- append(Atom::ImageText, getRestOfLine());
- append(Atom::String, " ");
+ //Append ImageText only if the following
+ //argument is enclosed in braces.
+ if (isLeftBraceAhead()) {
+ append(Atom::ImageText, getArgument());
+ append(Atom::String, " ");
+ }
break;
case CMD_INDEX:
if (m_paragraphState == OutsideParagraph) {
@@ -1380,9 +1384,11 @@ void DocParser::include(const QString &fileName, const QString &identifier)
QStringList lineBuffer = includedStuff.split(QLatin1Char('\n'));
int i = 0;
int startLine = -1;
+ QStringView trimmedLine;
while (i < lineBuffer.size()) {
- if (lineBuffer[i].startsWith("//!")) {
- if (lineBuffer[i].contains(identifier)) {
+ trimmedLine = QStringView{lineBuffer[i]}.trimmed();
+ if (trimmedLine.startsWith(QLatin1String("//!"))) {
+ if (trimmedLine.contains(identifier)) {
startLine = i + 1;
break;
}
@@ -1397,9 +1403,10 @@ void DocParser::include(const QString &fileName, const QString &identifier)
QString result;
i = startLine;
do {
- if (lineBuffer[i].startsWith("//!")) {
+ trimmedLine = QStringView{lineBuffer[i]}.trimmed();
+ if (trimmedLine.startsWith(QLatin1String("//!"))) {
if (i < lineBuffer.size()) {
- if (lineBuffer[i].contains(identifier)) {
+ if (trimmedLine.contains(identifier)) {
break;
}
}
diff --git a/src/qdoc/generator.cpp b/src/qdoc/generator.cpp
index ffcf7b98f..0333d438c 100644
--- a/src/qdoc/generator.cpp
+++ b/src/qdoc/generator.cpp
@@ -1114,26 +1114,6 @@ void Generator::generateDocumentation(Node *node)
}
/*!
- Generate a list of maintainers in the output
- */
-void Generator::generateMaintainerList(const Aggregate *node, CodeMarker *marker)
-{
- QStringList sl = getMetadataElements(node, "maintainer");
-
- if (!sl.isEmpty()) {
- Text text;
- text << Atom::ParaLeft << Atom(Atom::FormattingLeft, ATOM_FORMATTING_BOLD)
- << "Maintained by: " << Atom(Atom::FormattingRight, ATOM_FORMATTING_BOLD);
-
- for (int i = 0; i < sl.size(); ++i)
- text << sl.at(i) << Utilities::separator(i, sl.size());
-
- text << Atom::ParaRight;
- generateText(text, node, marker);
- }
-}
-
-/*!
Extract sections of markup text surrounded by \e qmltext
and \e endqmltext and output them.
*/
diff --git a/src/qdoc/generator.h b/src/qdoc/generator.h
index 77b894416..5a6e8ee3d 100644
--- a/src/qdoc/generator.h
+++ b/src/qdoc/generator.h
@@ -126,11 +126,6 @@ protected:
virtual void generateCollectionNode(CollectionNode *, CodeMarker *) {}
virtual void generateGenericCollectionPage(CollectionNode *, CodeMarker *) {}
virtual void generateDocumentation(Node *node);
- virtual void generateMaintainerList(const Aggregate *node, CodeMarker *marker);
- virtual void generateMaintainerList(const Aggregate *node)
- {
- generateMaintainerList(node, nullptr);
- };
virtual bool generateQmlText(const Text &text, const Node *relative, CodeMarker *marker,
const QString &qmlName);
virtual bool generateQmlText(const Text &text, const Node *relative)
diff --git a/src/qdoc/htmlgenerator.cpp b/src/qdoc/htmlgenerator.cpp
index cf00ae979..55024a7ce 100644
--- a/src/qdoc/htmlgenerator.cpp
+++ b/src/qdoc/htmlgenerator.cpp
@@ -65,7 +65,7 @@ static void addLink(const QString &linkTarget, QStringView nestedStuff, QString
if (!linkTarget.isEmpty()) {
*res += QLatin1String("<a href=\"");
*res += linkTarget;
- *res += QLatin1String("\">");
+ *res += QLatin1String("\" translate=\"no\">");
*res += nestedStuff;
*res += QLatin1String("</a>");
} else {
@@ -128,12 +128,12 @@ void HtmlGenerator::initializeGenerator()
} defaults[] = { { ATOM_FORMATTING_BOLD, "<b>", "</b>" },
{ ATOM_FORMATTING_INDEX, "<!--", "-->" },
{ ATOM_FORMATTING_ITALIC, "<i>", "</i>" },
- { ATOM_FORMATTING_PARAMETER, "<i>", "</i>" },
+ { ATOM_FORMATTING_PARAMETER, "<i translate=\"no\">", "</i>" },
{ ATOM_FORMATTING_SUBSCRIPT, "<sub>", "</sub>" },
{ ATOM_FORMATTING_SUPERSCRIPT, "<sup>", "</sup>" },
- { ATOM_FORMATTING_TELETYPE, "<code>",
+ { ATOM_FORMATTING_TELETYPE, "<code translate=\"no\">",
"</code>" }, // <tt> tag is not supported in HTML5
- { ATOM_FORMATTING_UICONTROL, "<b>", "</b>" },
+ { ATOM_FORMATTING_UICONTROL, "<b translate=\"no\">", "</b>" },
{ ATOM_FORMATTING_UNDERLINE, "<u>", "</u>" },
{ nullptr, nullptr, nullptr } };
@@ -378,7 +378,7 @@ qsizetype HtmlGenerator::generateAtom(const Atom *atom, const Node *relative, Co
}
break;
case Atom::Qml:
- out() << "<pre class=\"qml\">"
+ out() << "<pre class=\"qml\" translate=\"no\">"
<< trimmedTrailing(highlightedCode(indent(m_codeIndent, atom->string()), relative,
false, Node::QML),
m_codePrefix, m_codeSuffix)
@@ -395,7 +395,7 @@ qsizetype HtmlGenerator::generateAtom(const Atom *atom, const Node *relative, Co
out() << "<p>you can rewrite it as</p>\n";
Q_FALLTHROUGH();
case Atom::Code:
- out() << "<pre class=\"cpp\">"
+ out() << "<pre class=\"cpp\" translate=\"no\">"
<< trimmedTrailing(highlightedCode(indent(m_codeIndent, atom->string()), relative),
m_codePrefix, m_codeSuffix)
<< "</pre>\n";
@@ -404,7 +404,7 @@ qsizetype HtmlGenerator::generateAtom(const Atom *atom, const Node *relative, Co
out() << "<p>For example, if you have code like</p>\n";
Q_FALLTHROUGH();
case Atom::CodeBad:
- out() << "<pre class=\"cpp plain\">"
+ out() << "<pre class=\"cpp plain\" translate=\"no\">"
<< trimmedTrailing(protectEnc(plainCode(indent(m_codeIndent, atom->string()))),
m_codePrefix, m_codeSuffix)
<< "</pre>\n";
@@ -592,10 +592,11 @@ qsizetype HtmlGenerator::generateAtom(const Atom *atom, const Node *relative, Co
}
for (auto map = parentmaps.begin(); map != parentmaps.end(); ++map) {
NodeVector nv = map->values().toVector();
+ auto parent = nv.front()->parent();
out() << ((index == Sections::SinceMemberFunctions) ? "<p>Class " : "<p>QML Type ");
- out() << "<a href=\"" << linkForNode(map.key(), relative) << "\">";
- QStringList pieces = map.key()->fullName().split("::");
+ out() << "<a href=\"" << linkForNode(parent, relative) << "\" translate=\"no\">";
+ QStringList pieces = parent->fullName().split("::");
out() << protectEnc(pieces.last());
out() << "</a>"
<< ":</p>\n";
@@ -620,7 +621,7 @@ qsizetype HtmlGenerator::generateAtom(const Atom *atom, const Node *relative, Co
case Atom::InlineImage: {
QString fileName = imageFileName(relative, atom->string());
QString text;
- if (atom->next() != nullptr)
+ if (atom->next() && atom->next()->type() == Atom::ImageText)
text = atom->next()->string();
if (atom->type() == Atom::Image)
out() << "<p class=\"centerAlign\">";
@@ -766,7 +767,7 @@ qsizetype HtmlGenerator::generateAtom(const Atom *atom, const Node *relative, Co
QPair<QString, int> pair = getAtomListValue(atom);
skipAhead = pair.second;
QString t = protectEnc(plainCode(marker->markedUpEnumValue(pair.first, relative)));
- out() << "<tr><td class=\"topAlign\"><code>" << t << "</code>";
+ out() << "<tr><td class=\"topAlign\"><code translate=\"no\">" << t << "</code>";
if (relative->isEnumType()) {
out() << "</td><td class=\"topAlign tblval\">";
@@ -775,7 +776,7 @@ qsizetype HtmlGenerator::generateAtom(const Atom *atom, const Node *relative, Co
if (itemValue.isEmpty())
out() << '?';
else
- out() << "<code>" << protectEnc(itemValue) << "</code>";
+ out() << "<code translate=\"no\">" << protectEnc(itemValue) << "</code>";
}
}
break;
@@ -958,7 +959,7 @@ qsizetype HtmlGenerator::generateAtom(const Atom *atom, const Node *relative, Co
out() << "<b class=\"redFont\">&lt;Missing HTML&gt;</b>";
break;
case Atom::UnknownCommand:
- out() << R"(<b class="redFont"><code>\)" << protectEnc(atom->string()) << "</code></b>";
+ out() << R"(<b class="redFont"><code translate=\"no\">\)" << protectEnc(atom->string()) << "</code></b>";
break;
case Atom::QmlText:
case Atom::EndQmlText:
@@ -1129,7 +1130,6 @@ void HtmlGenerator::generateCppReferencePage(Aggregate *aggregate, CodeMarker *m
generateBody(aggregate, marker);
out() << "</div>\n";
generateAlsoList(aggregate, marker);
- generateMaintainerList(aggregate, marker);
generateExtractionMark(aggregate, EndMark);
}
@@ -1229,7 +1229,6 @@ void HtmlGenerator::generateProxyPage(Aggregate *aggregate, CodeMarker *marker)
generateBody(aggregate, marker);
out() << "</div>\n";
generateAlsoList(aggregate, marker);
- generateMaintainerList(aggregate, marker);
generateExtractionMark(aggregate, EndMark);
}
@@ -1778,14 +1777,18 @@ void HtmlGenerator::generateTitle(const QString &title, const Text &subtitle,
CodeMarker *marker)
{
out() << QString(m_prologue).replace("\\" + COMMAND_VERSION, m_qdb->version());
+ QString attribute;
+ if (relative->genus() & Node::API)
+ attribute = R"( translate="no")";
+
if (!title.isEmpty())
- out() << "<h1 class=\"title\">" << protectEnc(title) << "</h1>\n";
+ out() << "<h1 class=\"title\"" << attribute << ">" << protectEnc(title) << "</h1>\n";
if (!subtitle.isEmpty()) {
out() << "<span";
if (subTitleSize == SmallSubTitle)
- out() << " class=\"small-subtitle\">";
+ out() << " class=\"small-subtitle\"" << attribute << ">";
else
- out() << " class=\"subtitle\">";
+ out() << " class=\"subtitle\"" << attribute << ">";
generateText(subtitle, relative, marker);
out() << "</span>\n";
}
@@ -1855,7 +1858,7 @@ void HtmlGenerator::generateTheTable(const QStringList &requisiteOrder,
const QString &headerText, const Aggregate *aggregate,
CodeMarker *marker)
{
- out() << "<div class=\"table\"><table class=\"alignedsummary\">\n";
+ out() << "<div class=\"table\"><table class=\"alignedsummary\" translate=\"no\">\n";
for (auto it = requisiteOrder.constBegin(); it != requisiteOrder.constEnd(); ++it) {
@@ -2108,7 +2111,7 @@ void HtmlGenerator::generateQmlRequisites(QmlTypeNode *qcn, CodeMarker *marker)
if (!requisites.isEmpty()) {
// generate the table
- out() << "<div class=\"table\"><table class=\"alignedsummary\">\n";
+ out() << "<div class=\"table\"><table class=\"alignedsummary\" translate=\"no\">\n";
for (const auto &requisite : requisiteorder) {
if (requisites.contains(requisite)) {
@@ -2334,7 +2337,7 @@ QString HtmlGenerator::generateAllQmlMembersFile(const Sections &sections, CodeM
continue;
std::function<void(Node *)> generate = [&](Node *n) {
- out() << "<li class=\"fn\">";
+ out() << "<li class=\"fn\" translate=\"no\">";
generateQmlItem(n, aggregate, marker, true);
if (n->isDefault())
out() << " [default]";
@@ -2383,7 +2386,7 @@ QString HtmlGenerator::generateObsoleteMembersFile(const Sections &sections, Cod
generateTitle(title, Text(), SmallSubTitle, aggregate, marker);
out() << "<p><b>The following members of class "
- << "<a href=\"" << linkForNode(aggregate, nullptr) << "\">"
+ << "<a href=\"" << linkForNode(aggregate, nullptr) << "\" translate=\"no\">"
<< protectEnc(aggregate->name()) << "</a>"
<< " are deprecated.</b> "
<< "They are provided to keep old source code working. "
@@ -2536,7 +2539,7 @@ void HtmlGenerator::generateAnnotatedList(const Node *relative, CodeMarker *mark
out() << "<tr class=\"odd topAlign\">";
else
out() << "<tr class=\"even topAlign\">";
- out() << "<td class=\"tblName\"><p>";
+ out() << "<td class=\"tblName\" translate=\"no\"><p>";
generateFullName(node, relative);
out() << "</p></td>";
@@ -2649,7 +2652,7 @@ void HtmlGenerator::generateCompactList(ListType listType, const Node *relative,
Output the alphabet as a row of links.
*/
if (includeAlphabet) {
- out() << "<p class=\"centerAlign functionIndex\"><b>";
+ out() << "<p class=\"centerAlign functionIndex\" translate=\"no\"><b>";
for (int i = 0; i < 26; i++) {
QChar ch('a' + i);
if (usedParagraphNames.contains(char('a' + i)))
@@ -2661,7 +2664,7 @@ void HtmlGenerator::generateCompactList(ListType listType, const Node *relative,
/*
Output a <div> element to contain all the <dl> elements.
*/
- out() << "<div class=\"flowListDiv\">\n";
+ out() << "<div class=\"flowListDiv\" translate=\"no\">\n";
m_numTableRows = 0;
int curParNr = 0;
@@ -2753,7 +2756,7 @@ void HtmlGenerator::generateCompactList(ListType listType, const Node *relative,
void HtmlGenerator::generateFunctionIndex(const Node *relative)
{
- out() << "<p class=\"centerAlign functionIndex\"><b>";
+ out() << "<p class=\"centerAlign functionIndex\" translate=\"no\"><b>";
for (int i = 0; i < 26; i++) {
QChar ch('a' + i);
out() << QString("<a href=\"#%1\">%2</a>&nbsp;").arg(ch).arg(ch.toUpper());
@@ -2762,7 +2765,7 @@ void HtmlGenerator::generateFunctionIndex(const Node *relative)
char nextLetter = 'a';
- out() << "<ul>\n";
+ out() << "<ul translate=\"no\">\n";
NodeMapMap &funcIndex = m_qdb->getFunctionIndex();
for (auto fnMap = funcIndex.constBegin(); fnMap != funcIndex.constEnd(); ++fnMap) {
const QString &key = fnMap.key();
@@ -2911,10 +2914,10 @@ void HtmlGenerator::generateSection(const NodeVector &nv, const Node *relative,
alignNames = false;
}
if (alignNames) {
- out() << "<div class=\"table\"><table class=\"alignedsummary\">\n";
+ out() << "<div class=\"table\"><table class=\"alignedsummary\" translate=\"no\">\n";
} else {
if (twoColumn)
- out() << "<div class=\"table\"><table class=\"propsummary\">\n"
+ out() << "<div class=\"table\"><table class=\"propsummary\" translate=\"no\">\n"
<< "<tr><td class=\"topAlign\">";
out() << "<ul>\n";
}
@@ -2929,7 +2932,7 @@ void HtmlGenerator::generateSection(const NodeVector &nv, const Node *relative,
} else {
if (twoColumn && i == (nv.count() + 1) / 2)
out() << "</ul></td><td class=\"topAlign\"><ul>\n";
- out() << "<li class=\"fn\">";
+ out() << "<li class=\"fn\" translate=\"no\">";
}
generateSynopsis(member, relative, marker, Section::Summary, alignNames);
@@ -2967,10 +2970,10 @@ void HtmlGenerator::generateSectionList(const Section &section, const Node *rela
alignNames = false;
}
if (alignNames) {
- out() << "<div class=\"table\"><table class=\"alignedsummary\">\n";
+ out() << "<div class=\"table\"><table class=\"alignedsummary\" translate=\"no\">\n";
} else {
if (twoColumn)
- out() << "<div class=\"table\"><table class=\"propsummary\">\n"
+ out() << "<div class=\"table\"><table class=\"propsummary\" translate=\"no\">\n"
<< "<tr><td class=\"topAlign\">";
out() << "<ul>\n";
}
@@ -2985,7 +2988,7 @@ void HtmlGenerator::generateSectionList(const Section &section, const Node *rela
} else {
if (twoColumn && i == (members.count() + 1) / 2)
out() << "</ul></td><td class=\"topAlign\"><ul>\n";
- out() << "<li class=\"fn\">";
+ out() << "<li class=\"fn\" translate=\"no\">";
}
QString prefix;
@@ -3040,7 +3043,7 @@ void HtmlGenerator::generateSectionInheritedList(const Section &section, const N
{
const QList<QPair<Aggregate *, int>> &inheritedMembers = section.inheritedMembers();
for (const auto &member : inheritedMembers) {
- out() << "<li class=\"fn\">";
+ out() << "<li class=\"fn\" translate=\"no\">";
out() << member.second << ' ';
if (member.second == 1) {
out() << section.singular();
@@ -3080,7 +3083,7 @@ void HtmlGenerator::generateSynopsis(const Node *node, const Node *relative, Cod
QRegularExpression extraRegExp("<@extra>.*</@extra>", QRegularExpression::InvertedGreedinessOption);
marked.remove(extraRegExp);
} else {
- marked.replace("<@extra>", "<code>");
+ marked.replace("<@extra>", "<code translate=\"no\">");
marked.replace("</@extra>", "</code>");
}
@@ -3349,7 +3352,7 @@ void HtmlGenerator::generateDetailedMember(const Node *node, const PageNode *rel
out() << "<div class=\"fngroup\">\n";
for (const auto *sharedNode : collective) {
nodeRef = refForNode(sharedNode);
- out() << R"(<h3 class="fn fngroupitem" id=")" << nodeRef << "\">";
+ out() << R"(<h3 class="fn fngroupitem" translate="no" id=")" << nodeRef << "\">";
generateSynopsis(sharedNode, relative, marker, Section::Details);
out() << "</h3>";
}
@@ -3365,7 +3368,7 @@ void HtmlGenerator::generateDetailedMember(const Node *node, const PageNode *rel
generateSynopsis(etn->flagsType(), relative, marker, Section::Details);
out() << "</h3>\n";
} else {
- out() << R"(<h3 class="fn" id=")" << nodeRef << "\">";
+ out() << R"(<h3 class="fn" translate="no" id=")" << nodeRef << "\">";
generateSynopsis(node, relative, marker, Section::Details);
out() << "</h3>" << '\n';
}
@@ -3425,7 +3428,7 @@ void HtmlGenerator::beginLink(const QString &link)
m_linkNode = nullptr;
if (!m_link.isEmpty())
- out() << "<a href=\"" << m_link << "\">";
+ out() << "<a href=\"" << m_link << "\" translate=\"no\">";
}
void HtmlGenerator::beginLink(const QString &link, const Node *node, const Node *relative)
@@ -3437,11 +3440,11 @@ void HtmlGenerator::beginLink(const QString &link, const Node *node, const Node
return;
if (node == nullptr || (relative != nullptr && node->status() == relative->status()))
- out() << "<a href=\"" << m_link << "\">";
+ out() << "<a href=\"" << m_link << "\" translate=\"no\">";
else if (node->isDeprecated())
- out() << "<a href=\"" << m_link << "\" class=\"obsolete\">";
+ out() << "<a href=\"" << m_link << "\" class=\"obsolete\" translate=\"no\">";
else
- out() << "<a href=\"" << m_link << "\">";
+ out() << "<a href=\"" << m_link << "\" translate=\"no\">";
}
void HtmlGenerator::endLink()
@@ -3466,7 +3469,7 @@ void HtmlGenerator::generateQmlSummary(const NodeVector &members, const Node *re
if (!members.isEmpty()) {
out() << "<ul>\n";
for (const auto &member : members) {
- out() << "<li class=\"fn\">";
+ out() << "<li class=\"fn\" translate=\"no\">";
generateQmlItem(member, relative, marker, true);
if (member->isPropertyGroup()) {
const auto *scn = static_cast<const SharedCommentNode *>(member);
@@ -3475,7 +3478,7 @@ void HtmlGenerator::generateQmlSummary(const NodeVector &members, const Node *re
const QList<Node *> &sharedNodes = scn->collective();
for (const auto &node : sharedNodes) {
if (node->isQmlProperty() || node->isJsProperty()) {
- out() << "<li class=\"fn\">";
+ out() << "<li class=\"fn\" translate=\"no\">";
generateQmlItem(node, relative, marker, true);
out() << "</li>\n";
}
@@ -3498,7 +3501,7 @@ void HtmlGenerator::generateDetailedQmlMember(Node *node, const Aggregate *relat
{
generateExtractionMark(node, MemberMark);
- QString qmlItemHeader("<div class=\"qmlproto\">\n"
+ QString qmlItemHeader("<div class=\"qmlproto\" translate=\"no\">\n"
"<div class=\"table\"><table class=\"qmlname\">\n");
QString qmlItemStart("<tr valign=\"top\" class=\"odd\" id=\"%1\">\n"
diff --git a/src/windeployqt/main.cpp b/src/windeployqt/main.cpp
index 658205f9b..6e9efde06 100644
--- a/src/windeployqt/main.cpp
+++ b/src/windeployqt/main.cpp
@@ -862,7 +862,8 @@ static const PluginModuleMapping pluginModuleMappings[] =
{"renderers", Qt3DRendererModule | QtShaderToolsModule},
{"renderplugins", Qt3DRendererModule},
{"geometryloaders", Qt3DRendererModule},
- {"webview", QtWebViewModule}
+ {"webview", QtWebViewModule},
+ {"scxmldatamodel", QtScxmlModule}
};
static inline quint64 qtModuleForPlugin(const QString &subDirName)
@@ -931,6 +932,8 @@ QStringList findQtPlugins(quint64 *usedQtModules, quint64 disabledQtModules,
case WindowsDesktopMsvc:
case WindowsDesktopMinGW:
filter = QStringLiteral("qwindows");
+ if (!infix.isEmpty())
+ filter += infix;
break;
case Unix:
filter = QStringLiteral("libqxcb");
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/project.ts.result
index 9e823755f..ad871b20c 100644
--- a/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/project.ts.result
+++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp_clang_parser/project.ts.result
@@ -406,6 +406,11 @@ backslashed \ stuff.</source>
<source>message after local include without space</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="included.cpp" line="30"/>
+ <source>message from #included .cpp file</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>QTranslator</name>
diff --git a/tests/auto/linguist/lupdate/tst_lupdate.cpp b/tests/auto/linguist/lupdate/tst_lupdate.cpp
index 57d7c087f..2e0012857 100644
--- a/tests/auto/linguist/lupdate/tst_lupdate.cpp
+++ b/tests/auto/linguist/lupdate/tst_lupdate.cpp
@@ -255,8 +255,8 @@ void tst_lupdate::good_data()
"preprocess",
"proparsing2", // llvm8 cannot handle file name without extension
"respfile", //@lst not supported with the new parser yet (include not properly set in the compile_command.json)
- "tr_function_alias", //alias defined in command line not supported with the new parser yet. (and need project file)
"cmdline_deeppath", //no project file, new parser does not support (yet) this way of launching lupdate
+ "tr_function_alias", //alias defined in command line not supported with the new parser yet. (and need project file)
"cmdline_order", // no project, new parser do not pickup on macro defined but not used. Test not needed for new parser.
"cmdline_recurse", // recursive scan without project file not supported (yet) with the new parser
};
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/autolinking.html b/tests/auto/qdoc/generatedoutput/expected_output/autolinking.html
index b86a94d61..8fb1777a6 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/autolinking.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/autolinking.html
@@ -18,15 +18,15 @@
<!-- $$$autolinking.html-description -->
<div class="descr" id="details">
<h2 id="testqdoc">TestQDoc</h2>
-<p>The string <a href="testqdoc.html">TestQDoc</a> links to the C++ namespace unless linking explicitly, <a href="autolinking.html#testqdoc">like this</a>, or <a href="autolinking.html#testqdoc">this</a>. Also,</p>
+<p>The string <a href="testqdoc.html" translate="no">TestQDoc</a> links to the C++ namespace unless linking explicitly, <a href="autolinking.html#testqdoc" translate="no">like this</a>, or <a href="autolinking.html#testqdoc" translate="no">this</a>. Also,</p>
<p>Autolinks:</p>
<ul>
-<li><a href="testqdoc-testderived.html">TestQDoc::TestDerived</a></li>
+<li><a href="testqdoc-testderived.html" translate="no">TestQDoc::TestDerived</a></li>
</ul>
<p>Explicit links:</p>
<ul>
-<li><a href="testqdoc-testderived.html">TestQDoc::TestDerived</a></li>
-<li><a href="obsolete-classes.html#testqdoc">Obsolete Classes#TestQDoc</a></li>
+<li><a href="testqdoc-testderived.html" translate="no">TestQDoc::TestDerived</a></li>
+<li><a href="obsolete-classes.html#testqdoc" translate="no">Obsolete Classes#TestQDoc</a></li>
</ul>
</div>
<!-- @@@autolinking.html -->
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/crossmodule/all-namespaces.html b/tests/auto/qdoc/generatedoutput/expected_output/crossmodule/all-namespaces.html
index 8f665610e..8d23c2aef 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/crossmodule/all-namespaces.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/crossmodule/all-namespaces.html
@@ -11,8 +11,8 @@
<!-- $$$all-namespaces.html-description -->
<div class="descr" id="details">
<div class="table"><table class="annotated">
-<tr class="odd topAlign"><td class="tblName"><p><a href="crossmoduleref.html">CrossModuleRef</a></p></td><td class="tblDescr"><p>Namespace that has documented functions in multiple modules</p></td></tr>
-<tr class="even topAlign"><td class="tblName"><p><a href="testqdoc.html">TestQDoc</a></p></td><td class="tblDescr"><p>A namespace</p></td></tr>
+<tr class="odd topAlign"><td class="tblName" translate="no"><p><a href="crossmoduleref.html">CrossModuleRef</a></p></td><td class="tblDescr"><p>Namespace that has documented functions in multiple modules</p></td></tr>
+<tr class="even topAlign"><td class="tblName" translate="no"><p><a href="testqdoc.html">TestQDoc</a></p></td><td class="tblDescr"><p>A namespace</p></td></tr>
</table></div>
</div>
<!-- @@@all-namespaces.html -->
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/crossmodule/crossmoduleref-sub-crossmodule.html b/tests/auto/qdoc/generatedoutput/expected_output/crossmodule/crossmoduleref-sub-crossmodule.html
index 206a28dfe..7d40a92d6 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/crossmodule/crossmoduleref-sub-crossmodule.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/crossmodule/crossmoduleref-sub-crossmodule.html
@@ -13,16 +13,16 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">CrossModuleRef Namespace</h1>
-<p>The CrossModuleRef namespace includes the following elements from module CrossModule. The full namespace is documented in module TestCPP<a href="crossmoduleref.html"> here.</a></p>
+<h1 class="title" translate="no">CrossModuleRef Namespace</h1>
+<p>The CrossModuleRef namespace includes the following elements from module CrossModule. The full namespace is documented in module TestCPP<a href="crossmoduleref.html" translate="no"> here.</a></p>
<h2 id="functions">Functions</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="crossmoduleref-sub-crossmodule.html#documentMeToo">documentMeToo</a></b>()</td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="crossmoduleref-sub-crossmodule.html#documentMeToo" translate="no">documentMeToo</a></b>()</td></tr>
</table></div>
<div class="func">
<h2>Function Documentation</h2>
<!-- $$$documentMeToo[overload1]$$$documentMeToo -->
-<h3 class="fn" id="documentMeToo"><span class="type">void</span> CrossModuleRef::<span class="name">documentMeToo</span>()</h3>
+<h3 class="fn" translate="no" id="documentMeToo"><span class="type">void</span> CrossModuleRef::<span class="name">documentMeToo</span>()</h3>
<p>Function under a namespace that's documented elsewhere.</p>
<!-- @@@documentMeToo -->
</div>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/crossmodule/testtype-members.html b/tests/auto/qdoc/generatedoutput/expected_output/crossmodule/testtype-members.html
index 62c652118..bacf442df 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/crossmodule/testtype-members.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/crossmodule/testtype-members.html
@@ -8,22 +8,22 @@
<body>
<li>TestType</li>
<div class="sidebar"><div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">List of All Members for TestType</h1>
+<h1 class="title" translate="no">List of All Members for TestType</h1>
<p>This is the complete list of members for <a href="testtype.html">TestType</a>, including inherited members.</p>
<ul>
-<li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#DerivedType-typedef">DerivedType</a></b></span></li>
-<li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#NotTypedef-typedef">NotTypedef</a></b></span></li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#SomeType-typedef">SomeType</a></b></span></li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#operator-eq">operator=</a></b></span>(TestQDoc::Test &amp;&amp;) : TestQDoc::Test &amp;</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#funcPtr">funcPtr</a></b></span>(bool, const char *) : void (*)(bool)</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#inlineFunction">inlineFunction</a></b></span>()</li>
-<li class="fn"><span class="name"><b><a href="testtype.html#nothing">nothing</a></b></span>()</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#overload">overload</a></b></span>()</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#overload-1">overload</a></b></span>(bool)</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#someFunction">someFunction</a></b></span>(int, int) : int</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#someFunctionDefaultArg">someFunctionDefaultArg</a></b></span>(int, bool)</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#virtualFun">virtualFun</a></b></span>()</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#virtualFun">virtualFun</a></b></span>()</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-testderived.html#DerivedType-typedef" translate="no">DerivedType</a></b></span></li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-testderived.html#NotTypedef-typedef" translate="no">NotTypedef</a></b></span></li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#SomeType-typedef" translate="no">SomeType</a></b></span></li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#operator-eq" translate="no">operator=</a></b></span>(TestQDoc::Test &amp;&amp;) : TestQDoc::Test &amp;</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#funcPtr" translate="no">funcPtr</a></b></span>(bool, const char *) : void (*)(bool)</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#inlineFunction" translate="no">inlineFunction</a></b></span>()</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testtype.html#nothing" translate="no">nothing</a></b></span>()</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#overload" translate="no">overload</a></b></span>()</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#overload-1" translate="no">overload</a></b></span>(bool)</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#someFunction" translate="no">someFunction</a></b></span>(int, int) : int</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#someFunctionDefaultArg" translate="no">someFunctionDefaultArg</a></b></span>(int, bool)</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#virtualFun" translate="no">virtualFun</a></b></span>()</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-testderived.html#virtualFun" translate="no">virtualFun</a></b></span>()</li>
</ul>
</body>
</html>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/crossmodule/testtype.html b/tests/auto/qdoc/generatedoutput/expected_output/crossmodule/testtype.html
index 5db714b9b..71a5afe98 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/crossmodule/testtype.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/crossmodule/testtype.html
@@ -18,19 +18,19 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">TestType Class</h1>
+<h1 class="title" translate="no">TestType Class</h1>
<!-- $$$TestType-brief -->
<p>A class inheriting another class that lives in an external doc module. <a href="#details">More...</a></p>
<!-- @@@TestType -->
-<div class="table"><table class="alignedsummary">
+<div class="table"><table class="alignedsummary" translate="no">
<tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign"> <span class="preprocessor">#include &lt;TestType&gt;</span>
-</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Inherits:</td><td class="memItemRight bottomAlign"> <a href="testqdoc-testderived.html">TestQDoc::TestDerived</a></td></tr></table></div>
+</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Inherits:</td><td class="memItemRight bottomAlign"> <a href="testqdoc-testderived.html" translate="no">TestQDoc::TestDerived</a></td></tr></table></div>
<ul>
<li><a href="testtype-members.html">List of all members, including inherited members</a></li>
</ul>
<h2 id="public-functions">Public Functions</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testtype.html#nothing">nothing</a></b>()</td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testtype.html#nothing" translate="no">nothing</a></b>()</td></tr>
</table></div>
<!-- $$$TestType-description -->
<div class="descr">
@@ -38,25 +38,25 @@
<h3 id="linking">Linking</h3>
<p>These links go to the parent class:</p>
<ul>
-<li><a href="testqdoc-testderived.html">TestQDoc::TestDerived</a></li>
-<li><a href="testqdoc-test.html">Test</a> class <a href="testqdoc.html#usage">Usage</a>.</li>
-<li><a href="testqdoc.html#QDOCTEST_MACRO">QDOCTEST_MACRO</a></li>
+<li><a href="testqdoc-testderived.html" translate="no">TestQDoc::TestDerived</a></li>
+<li><a href="testqdoc-test.html" translate="no">Test</a> class <a href="testqdoc.html#usage" translate="no">Usage</a>.</li>
+<li><a href="testqdoc.html#QDOCTEST_MACRO" translate="no">QDOCTEST_MACRO</a></li>
<li>DontLinkToMe</li>
</ul>
<h3 id="generated-lists">Generated Lists</h3>
<p>This is an annotated list of entries in a group: <div class="table"><table class="annotated">
-<tr class="odd topAlign"><td class="tblName"><p><a href="testqdoc-test.html">TestQDoc::Test</a></p></td><td class="tblDescr"><p>A class in a namespace</p></td></tr>
-<tr class="even topAlign"><td class="tblName"><p><a href="testqdoc-test.html#QDOCTEST_MACRO2">TestQDoc::Test::QDOCTEST_MACRO2</a></p></td><td class="tblDescr"><p>A macro with argument x</p></td></tr>
-<tr class="odd topAlign"><td class="tblName"><p><a href="testqdoc-test.html#someFunctionDefaultArg">TestQDoc::Test::someFunctionDefaultArg()</a></p></td></tr>
+<tr class="odd topAlign"><td class="tblName" translate="no"><p><a href="testqdoc-test.html">TestQDoc::Test</a></p></td><td class="tblDescr"><p>A class in a namespace</p></td></tr>
+<tr class="even topAlign"><td class="tblName" translate="no"><p><a href="testqdoc-test.html#QDOCTEST_MACRO2">TestQDoc::Test::QDOCTEST_MACRO2</a></p></td><td class="tblDescr"><p>A macro with argument x</p></td></tr>
+<tr class="odd topAlign"><td class="tblName" translate="no"><p><a href="testqdoc-test.html#someFunctionDefaultArg">TestQDoc::Test::someFunctionDefaultArg()</a></p></td></tr>
</table></div>
</p>
</div>
-<p><b>See also </b><a href="testqdoc-test.html#someFunction">someFunction</a>().</p>
+<p><b>See also </b><a href="testqdoc-test.html#someFunction" translate="no">someFunction</a>().</p>
<!-- @@@TestType -->
<div class="func">
<h2>Member Function Documentation</h2>
<!-- $$$nothing[overload1]$$$nothing -->
-<h3 class="fn" id="nothing"><span class="type">void</span> TestType::<span class="name">nothing</span>()</h3>
+<h3 class="fn" translate="no" id="nothing"><span class="type">void</span> TestType::<span class="name">nothing</span>()</h3>
<p>Nothing to see here.</p>
<!-- @@@nothing -->
</div>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/crossmoduleref.html b/tests/auto/qdoc/generatedoutput/expected_output/crossmoduleref.html
index fc117c48f..412a7ba65 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/crossmoduleref.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/crossmoduleref.html
@@ -15,18 +15,18 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">CrossModuleRef Namespace</h1>
+<h1 class="title" translate="no">CrossModuleRef Namespace</h1>
<!-- $$$CrossModuleRef-brief -->
<p>Namespace that has documented functions in multiple modules. <a href="#details">More...</a></p>
<!-- @@@CrossModuleRef -->
-<div class="table"><table class="alignedsummary">
+<div class="table"><table class="alignedsummary" translate="no">
<tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign"> <span class="preprocessor">#include &lt;CrossModuleRef&gt;</span>
</td></tr><tr><td class="memItemLeft rightAlign topAlign"> CMake:</td><td class="memItemRight bottomAlign"> find_package(Qt6 COMPONENTS QDocTest REQUIRED) <br/>
target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="memItemLeft rightAlign topAlign"> qmake:</td><td class="memItemRight bottomAlign"> QT += testcpp</td></tr></table></div>
<h2 id="functions">Functions</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="crossmoduleref.html#documentMe">documentMe</a></b>()</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="crossmoduleref-sub-crossmodule.html#documentMeToo">documentMeToo</a></b>()</td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="crossmoduleref.html#documentMe" translate="no">documentMe</a></b>()</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="crossmoduleref-sub-crossmodule.html#documentMeToo" translate="no">documentMeToo</a></b>()</td></tr>
</table></div>
<!-- $$$CrossModuleRef-description -->
<div class="descr">
@@ -36,7 +36,7 @@ target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="me
<div class="func">
<h2>Function Documentation</h2>
<!-- $$$documentMe[overload1]$$$documentMe -->
-<h3 class="fn" id="documentMe"><span class="type">void</span> CrossModuleRef::<span class="name">documentMe</span>()</h3>
+<h3 class="fn" translate="no" id="documentMe"><span class="type">void</span> CrossModuleRef::<span class="name">documentMe</span>()</h3>
<p>Document me!</p>
<!-- @@@documentMe -->
</div>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/docbook/qdoctests-qdocfileoutput-exhaustive.xml b/tests/auto/qdoc/generatedoutput/expected_output/docbook/qdoctests-qdocfileoutput-exhaustive.xml
index 7d9ed16f0..eae744ca4 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/docbook/qdoctests-qdocfileoutput-exhaustive.xml
+++ b/tests/auto/qdoc/generatedoutput/expected_output/docbook/qdoctests-qdocfileoutput-exhaustive.xml
@@ -57,8 +57,20 @@
<db:note>
<db:para>The code above doesn't compile</db:para>
</db:note>
+<db:para>An inline image:</db:para>
+<db:para>The is a paragraph containing an <db:inlinemediaobject>
+<db:imageobject>
+<db:imagedata fileref="images/01.png"/>
+</db:imageobject>
+</db:inlinemediaobject> inline image to test if qdoc handles them properly, without considering rest of the line as alt text for the image.</db:para>
+<db:para>An inline image with alt text:</db:para>
+<db:para>Here is another example of <db:inlinemediaobject>
+<db:alt>No. 1</db:alt><db:imageobject>
+<db:imagedata fileref="images/01.png"/>
+</db:imageobject>
+</db:inlinemediaobject> inline image with alternative text, which should be added as an attribute to the inline image.</db:para>
<db:warning>
-<db:para>The following commands have yet to be tested: footnote link sincelist header index topicref // or just don’t care, remove it image inlineimage printline printto printuntil // what’s the difference between printto and printuntil??? quotefile quotefromfile quotefunction skipline skipto skipuntil span snippet codeline overload sub sup tableofcontents tt uicontrol endmapref endomit underline unicode</db:para>
+<db:para>The following commands have yet to be tested: footnote link sincelist header index topicref // or just don’t care, remove it image printline printto printuntil // what’s the difference between printto and printuntil??? quotefile quotefromfile quotefunction skipline skipto skipuntil span snippet codeline overload sub sup tableofcontents tt uicontrol endmapref endomit underline unicode</db:para>
</db:warning>
</db:section>
</db:section>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/dontdocument/classes.html b/tests/auto/qdoc/generatedoutput/expected_output/dontdocument/classes.html
index 423ef6b42..ea6b794c0 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/dontdocument/classes.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/dontdocument/classes.html
@@ -11,9 +11,9 @@
<!-- $$$classes.html-description -->
<div class="descr" id="details">
<div class="table"><table class="annotated">
-<tr class="odd topAlign"><td class="tblName"><p><a href="seenclass.html">SeenClass</a></p></td><td class="tblDescr"><p>A public but undocumented class</p></td></tr>
-<tr class="even topAlign"><td class="tblName"><p><a href="testqdoc-test.html">TestQDoc::Test</a></p></td><td class="tblDescr"><p>A class in a namespace</p></td></tr>
-<tr class="odd topAlign"><td class="tblName"><p><a href="testqdoc-testderived.html">TestQDoc::TestDerived</a></p></td><td class="tblDescr"><p>A derived class in a namespace</p></td></tr>
+<tr class="odd topAlign"><td class="tblName" translate="no"><p><a href="seenclass.html">SeenClass</a></p></td><td class="tblDescr"><p>A public but undocumented class</p></td></tr>
+<tr class="even topAlign"><td class="tblName" translate="no"><p><a href="testqdoc-test.html">TestQDoc::Test</a></p></td><td class="tblDescr"><p>A class in a namespace</p></td></tr>
+<tr class="odd topAlign"><td class="tblName" translate="no"><p><a href="testqdoc-testderived.html">TestQDoc::TestDerived</a></p></td><td class="tblDescr"><p>A derived class in a namespace</p></td></tr>
</table></div>
</div>
<!-- @@@classes.html -->
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/dontdocument/seenclass.html b/tests/auto/qdoc/generatedoutput/expected_output/dontdocument/seenclass.html
index 6346ec6d7..8ce2f6166 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/dontdocument/seenclass.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/dontdocument/seenclass.html
@@ -15,11 +15,11 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">SeenClass Class</h1>
+<h1 class="title" translate="no">SeenClass Class</h1>
<!-- $$$SeenClass-brief -->
<p>A public but undocumented class. <a href="#details">More...</a></p>
<!-- @@@SeenClass -->
-<div class="table"><table class="alignedsummary">
+<div class="table"><table class="alignedsummary" translate="no">
<tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign"> <span class="preprocessor">#include &lt;SeenClass&gt;</span>
</td></tr><tr><td class="memItemLeft rightAlign topAlign"> CMake:</td><td class="memItemRight bottomAlign"> find_package(Qt6 COMPONENTS QDocTest REQUIRED) <br/>
target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="memItemLeft rightAlign topAlign"> qmake:</td><td class="memItemRight bottomAlign"> QT += testcpp</td></tr></table></div>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/first.html b/tests/auto/qdoc/generatedoutput/expected_output/first.html
index f46004f6e..2c7c3a1da 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/first.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/first.html
@@ -16,16 +16,16 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">First Struct</h1>
-<div class="table"><table class="alignedsummary">
+<h1 class="title" translate="no">First Struct</h1>
+<div class="table"><table class="alignedsummary" translate="no">
<tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign"> <span class="preprocessor">#include &lt;First&gt;</span>
</td></tr></table></div>
<ul>
<li><a href="first-members.html">List of all members, including inherited members</a></li>
</ul>
<h2 id="public-types">Public Types</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> class </td><td class="memItemRight bottomAlign"><b><a href="first-nested.html">Nested</a></b></td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> class </td><td class="memItemRight bottomAlign"><b><a href="first-nested.html" translate="no">Nested</a></b></td></tr>
</table></div>
<!-- $$$First-description -->
<div class="descr">
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/globals.html b/tests/auto/qdoc/generatedoutput/expected_output/globals.html
index 943907b61..af6c189ee 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/globals.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/globals.html
@@ -16,14 +16,14 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">Globals Class</h1>
-<div class="table"><table class="alignedsummary">
+<h1 class="title" translate="no">Globals Class</h1>
+<div class="table"><table class="alignedsummary" translate="no">
<tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign"> <span class="preprocessor">#include &lt;Globals&gt;</span>
</td></tr></table></div>
<h2 id="related-non-members">Related Non-Members</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="globals.html#foo">foo</a></b>(int <i>a</i>)</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="globals.html#foo-1">foo</a></b>(int <i>a</i>, bool <i>b</i>)</td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="globals.html#foo" translate="no">foo</a></b>(int <i>a</i>)</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="globals.html#foo-1" translate="no">foo</a></b>(int <i>a</i>, bool <i>b</i>)</td></tr>
</table></div>
<!-- $$$Globals-description -->
<div class="descr">
@@ -33,12 +33,12 @@
<div class="relnonmem">
<h2>Related Non-Members</h2>
<!-- $$$foo[overload1]$$$fooint -->
-<h3 class="fn" id="foo"><span class="type">int</span> <span class="name">foo</span>(<span class="type">int</span> <i>a</i>)</h3>
-<p>Params: <i>a</i></p>
+<h3 class="fn" translate="no" id="foo"><span class="type">int</span> <span class="name">foo</span>(<span class="type">int</span> <i>a</i>)</h3>
+<p>Params: <i translate="no">a</i></p>
<!-- @@@foo -->
<!-- $$$foo$$$foointbool -->
-<h3 class="fn" id="foo-1"><span class="type">int</span> <span class="name">foo</span>(<span class="type">int</span> <i>a</i>, <span class="type">bool</span> <i>b</i>)</h3>
-<p>Params: <i>b</i>, <i>b</i></p>
+<h3 class="fn" translate="no" id="foo-1"><span class="type">int</span> <span class="name">foo</span>(<span class="type">int</span> <i>a</i>, <span class="type">bool</span> <i>b</i>)</h3>
+<p>Params: <i translate="no">b</i>, <i translate="no">b</i></p>
<!-- @@@foo -->
</div>
</body>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/headerfile/headers.html b/tests/auto/qdoc/generatedoutput/expected_output/headerfile/headers.html
index fd53f896e..1a60ec30b 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/headerfile/headers.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/headerfile/headers.html
@@ -13,7 +13,7 @@
</div>
<!-- @@@headers -->
<div class="table"><table class="annotated">
-<tr class="odd topAlign"><td class="tblName"><p><a href="testheader.html">&lt;TestHeader&gt;</a></p></td><td class="tblDescr"><p>A header file</p></td></tr>
+<tr class="odd topAlign"><td class="tblName" translate="no"><p><a href="testheader.html">&lt;TestHeader&gt;</a></p></td><td class="tblDescr"><p>A header file</p></td></tr>
</table></div>
</body>
</html>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/headerfile/testheader.html b/tests/auto/qdoc/generatedoutput/expected_output/headerfile/testheader.html
index e8abcc769..3a89a92f6 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/headerfile/testheader.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/headerfile/testheader.html
@@ -6,31 +6,31 @@
<title>&lt;TestHeader&gt; - Test Header | HeaderFile</title>
</head>
<body>
-<li><a href="headers.html">Headers</a></li>
+<li><a href="headers.html" translate="no">Headers</a></li>
<li>&lt;TestHeader&gt; - Test Header</li>
<div class="sidebar">
<div class="toc">
<h3 id="toc">Contents</h3>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">&lt;TestHeader&gt; - Test Header</h1>
+<h1 class="title" translate="no">&lt;TestHeader&gt; - Test Header</h1>
<!-- $$$<TestHeader>-brief -->
<p>A header file. <a href="#details">More...</a></p>
<!-- @@@<TestHeader> -->
-<div class="table"><table class="alignedsummary">
+<div class="table"><table class="alignedsummary" translate="no">
<tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign"> <span class="preprocessor">#include &lt;TestHeader&gt;</span>
</td></tr></table></div>
<h2 id="types">Types</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> enum </td><td class="memItemRight bottomAlign"><b><a href="testheader.html#Globals-enum">Globals</a></b> { Glo, Bal }</td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> enum </td><td class="memItemRight bottomAlign"><b><a href="testheader.html#Globals-enum" translate="no">Globals</a></b> { Glo, Bal }</td></tr>
</table></div>
<h2 id="variables">Variables</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> const int </td><td class="memItemRight bottomAlign"><b><a href="testheader.html#globalVar-var">globalVar</a></b></td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> const int </td><td class="memItemRight bottomAlign"><b><a href="testheader.html#globalVar-var" translate="no">globalVar</a></b></td></tr>
</table></div>
<h2 id="functions">Functions</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testheader.html#globalFunc">globalFunc</a></b>()</td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testheader.html#globalFunc" translate="no">globalFunc</a></b>()</td></tr>
</table></div>
<!-- $$$<TestHeader>-description -->
<div class="descr">
@@ -40,24 +40,24 @@
<div class="types">
<h2>Type Documentation</h2>
<!-- $$$Globals$$$Glo$$$Bal -->
-<h3 class="fn" id="Globals-enum">enum <span class="name">Globals</span></h3>
+<h3 class="fn" translate="no" id="Globals-enum">enum <span class="name">Globals</span></h3>
<div class="table"><table class="valuelist"><tr><th class="tblConst">Constant</th><th class="tblVal">Value</th></tr>
-<tr><td class="topAlign"><code>Glo</code></td><td class="topAlign tblval"><code>0</code></td></tr>
-<tr><td class="topAlign"><code>Bal</code></td><td class="topAlign tblval"><code>1</code></td></tr>
+<tr><td class="topAlign"><code translate="no">Glo</code></td><td class="topAlign tblval"><code translate="no">0</code></td></tr>
+<tr><td class="topAlign"><code translate="no">Bal</code></td><td class="topAlign tblval"><code translate="no">1</code></td></tr>
</table></div>
<!-- @@@Globals -->
</div>
<div class="vars">
<h2>Variable Documentation</h2>
<!-- $$$globalVar -->
-<h3 class="fn" id="globalVar-var">const <span class="type">int</span> <span class="name">globalVar</span></h3>
+<h3 class="fn" translate="no" id="globalVar-var">const <span class="type">int</span> <span class="name">globalVar</span></h3>
<p>Global variable.</p>
<!-- @@@globalVar -->
</div>
<div class="func">
<h2>Function Documentation</h2>
<!-- $$$globalFunc[overload1]$$$globalFunc -->
-<h3 class="fn" id="globalFunc"><span class="type">void</span> <span class="name">globalFunc</span>()</h3>
+<h3 class="fn" translate="no" id="globalFunc"><span class="type">void</span> <span class="name">globalFunc</span>()</h3>
<p>Global function.</p>
<!-- @@@globalFunc -->
</div>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/html/qdoctests-qdocfileoutput-exhaustive.webxml b/tests/auto/qdoc/generatedoutput/expected_output/html/qdoctests-qdocfileoutput-exhaustive.webxml
index 276d08372..149ad08f6 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/html/qdoctests-qdocfileoutput-exhaustive.webxml
+++ b/tests/auto/qdoc/generatedoutput/expected_output/html/qdoctests-qdocfileoutput-exhaustive.webxml
@@ -57,6 +57,10 @@
<newcode>This is new and shiny!</newcode>
<para>
<bold>Note:</bold> The code above doesn't compile</para>
+ <para>An inline image:</para>
+ <para>The is a paragraph containing an <inlineimage href="images/01.png"/> inline image to test if qdoc handles them properly, without considering rest of the line as alt text for the image.</para>
+ <para>An inline image with alt text:</para>
+ <para>Here is another example of <inlineimage href="images/01.png"/> inline image with alternative text, which should be added as an attribute to the inline image.</para>
<para>
- <bold>Warning:</bold> The following commands have yet to be tested: footnote link sincelist header index topicref // or just don’t care, remove it image inlineimage printline printto printuntil // what’s the difference between printto and printuntil??? quotefile quotefromfile quotefunction skipline skipto skipuntil span snippet codeline overload sub sup tableofcontents tt uicontrol endmapref endomit underline unicode</para>
+ <bold>Warning:</bold> The following commands have yet to be tested: footnote link sincelist header index topicref // or just don’t care, remove it image printline printto printuntil // what’s the difference between printto and printuntil??? quotefile quotefromfile quotefunction skipline skipto skipuntil span snippet codeline overload sub sup tableofcontents tt uicontrol endmapref endomit underline unicode</para>
</WebXML>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/ignoresince/testqdoc-test.html b/tests/auto/qdoc/generatedoutput/expected_output/ignoresince/testqdoc-test.html
index 57eb4cd57..0532b7adb 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/ignoresince/testqdoc-test.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/ignoresince/testqdoc-test.html
@@ -20,46 +20,46 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">Test Class</h1>
-<span class="small-subtitle">class <a href="testqdoc.html">TestQDoc</a>::Test</span>
+<h1 class="title" translate="no">Test Class</h1>
+<span class="small-subtitle" translate="no">class <a href="testqdoc.html" translate="no">TestQDoc</a>::Test</span>
<!-- $$$Test-brief -->
<p>A class in a namespace. <a href="#details">More...</a></p>
<!-- @@@Test -->
-<div class="table"><table class="alignedsummary">
+<div class="table"><table class="alignedsummary" translate="no">
<tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign"> <span class="preprocessor">#include &lt;Test&gt;</span>
</td></tr><tr><td class="memItemLeft rightAlign topAlign"> CMake:</td><td class="memItemRight bottomAlign"> find_package(Qt6 COMPONENTS QDocTest REQUIRED) <br/>
-target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="memItemLeft rightAlign topAlign"> qmake:</td><td class="memItemRight bottomAlign"> QT += testcpp</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Inherited By:</td><td class="memItemRight bottomAlign"> <p><a href="testqdoc-testderived.html">TestQDoc::TestDerived</a></p>
+target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="memItemLeft rightAlign topAlign"> qmake:</td><td class="memItemRight bottomAlign"> QT += testcpp</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Inherited By:</td><td class="memItemRight bottomAlign"> <p><a href="testqdoc-testderived.html" translate="no">TestQDoc::TestDerived</a></p>
</td></tr></table></div>
<ul>
<li><a href="testqdoc-test-members.html">List of all members, including inherited members</a></li>
<li><a href="testqdoc-test-obsolete.html">Deprecated members</a></li>
</ul>
<h2 id="public-types">Public Types</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#SomeType-typedef">SomeType</a></b></td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#SomeType-typedef" translate="no">SomeType</a></b></td></tr>
</table></div>
<h2 id="public-functions">Public Functions</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#Test">Test</a></b>()</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> TestQDoc::Test &amp;</td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#operator-eq">operator=</a></b>(TestQDoc::Test &amp;&amp;<i>other</i>)</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> void (*)(bool) </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#funcPtr">funcPtr</a></b>(bool <i>b</i>, const char *<i>s</i>)</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#inlineFunction">inlineFunction</a></b>()</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunction">someFunction</a></b>(int, int <i>v</i> = 0)</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunctionDefaultArg">someFunctionDefaultArg</a></b>(int <i>i</i>, bool <i>b</i> = false)</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#virtualFun">virtualFun</a></b>()</td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#Test" translate="no">Test</a></b>()</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> TestQDoc::Test &amp;</td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#operator-eq" translate="no">operator=</a></b>(TestQDoc::Test &amp;&amp;<i>other</i>)</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> void (*)(bool) </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#funcPtr" translate="no">funcPtr</a></b>(bool <i>b</i>, const char *<i>s</i>)</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#inlineFunction" translate="no">inlineFunction</a></b>()</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunction" translate="no">someFunction</a></b>(int, int <i>v</i> = 0)</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunctionDefaultArg" translate="no">someFunctionDefaultArg</a></b>(int <i>i</i>, bool <i>b</i> = false)</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#virtualFun" translate="no">virtualFun</a></b>()</td></tr>
</table></div>
<h2 id="protected-functions">Protected Functions</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#overload">overload</a></b>()</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#overload-1">overload</a></b>(bool <i>b</i>)</td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#overload" translate="no">overload</a></b>()</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#overload-1" translate="no">overload</a></b>(bool <i>b</i>)</td></tr>
</table></div>
<h2 id="related-non-members">Related Non-Members</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> bool </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#operator-eq-eq">operator==</a></b>(const TestQDoc::Test &amp;<i>lhs</i>, const TestQDoc::Test &amp;<i>rhs</i>)</td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> bool </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#operator-eq-eq" translate="no">operator==</a></b>(const TestQDoc::Test &amp;<i>lhs</i>, const TestQDoc::Test &amp;<i>rhs</i>)</td></tr>
</table></div>
<h2 id="macros">Macros</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#QDOCTEST_MACRO2">QDOCTEST_MACRO2</a></b>(int &amp;<i>x</i>)</td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#QDOCTEST_MACRO2" translate="no">QDOCTEST_MACRO2</a></b>(int &amp;<i>x</i>)</td></tr>
</table></div>
<!-- $$$Test-description -->
<div class="descr">
@@ -69,7 +69,7 @@ target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="me
<div class="types">
<h2>Member Type Documentation</h2>
<!-- $$$SomeType -->
-<h3 class="fn" id="SomeType-typedef">Test::<span class="name">SomeType</span></h3>
+<h3 class="fn" translate="no" id="SomeType-typedef">Test::<span class="name">SomeType</span></h3>
<p>A typedef.</p>
<!-- @@@SomeType -->
</div>
@@ -77,52 +77,52 @@ target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="me
<h2>Member Function Documentation</h2>
<!-- $$$ -->
<div class="fngroup">
-<h3 class="fn fngroupitem" id="overload"><code>[protected] </code><span class="type">void</span> Test::<span class="name">overload</span>()</h3><h3 class="fn fngroupitem" id="overload-1"><code>[protected, since Test 1.2] </code><span class="type">void</span> Test::<span class="name">overload</span>(<span class="type">bool</span> <i>b</i>)</h3></div>
-<p>Overloads that share a documentation comment, optionally taking a parameter <i>b</i>.</p>
+<h3 class="fn fngroupitem" translate="no" id="overload"><code translate="no">[protected] </code><span class="type">void</span> Test::<span class="name">overload</span>()</h3><h3 class="fn fngroupitem" translate="no" id="overload-1"><code translate="no">[protected, since Test 1.2] </code><span class="type">void</span> Test::<span class="name">overload</span>(<span class="type">bool</span> <i>b</i>)</h3></div>
+<p>Overloads that share a documentation comment, optionally taking a parameter <i translate="no">b</i>.</p>
<!-- @@@ -->
<!-- $$$Test[overload1]$$$Test -->
-<h3 class="fn" id="Test"><code>[default] </code>Test::<span class="name">Test</span>()</h3>
+<h3 class="fn" translate="no" id="Test"><code translate="no">[default] </code>Test::<span class="name">Test</span>()</h3>
<p>Default constructor.</p>
<!-- @@@Test -->
<!-- $$$operator=[overload1]$$$operator=TestQDoc::Test&& -->
-<h3 class="fn" id="operator-eq"><code>[default] </code><span class="type"><a href="testqdoc-test.html">TestQDoc::Test</a></span> &amp;Test::<span class="name">operator=</span>(<span class="type"><a href="testqdoc-test.html">TestQDoc::Test</a></span> &amp;&amp;<i>other</i>)</h3>
-<p>Move-assigns <i>other</i>.</p>
+<h3 class="fn" translate="no" id="operator-eq"><code translate="no">[default] </code><span class="type"><a href="testqdoc-test.html" translate="no">TestQDoc::Test</a></span> &amp;Test::<span class="name">operator=</span>(<span class="type"><a href="testqdoc-test.html" translate="no">TestQDoc::Test</a></span> &amp;&amp;<i>other</i>)</h3>
+<p>Move-assigns <i translate="no">other</i>.</p>
<!-- @@@operator= -->
<!-- $$$funcPtr[overload1]$$$funcPtrboolconstchar* -->
-<h3 class="fn" id="funcPtr"><span class="type">void</span> (*)(<span class="type">bool</span>) Test::<span class="name">funcPtr</span>(<span class="type">bool</span> <i>b</i>, const <span class="type">char</span> *<i>s</i>)</h3>
-<p>Returns a pointer to a function that takes a boolean. Uses <i>b</i> and <i>s</i>.</p>
+<h3 class="fn" translate="no" id="funcPtr"><span class="type">void</span> (*)(<span class="type">bool</span>) Test::<span class="name">funcPtr</span>(<span class="type">bool</span> <i>b</i>, const <span class="type">char</span> *<i>s</i>)</h3>
+<p>Returns a pointer to a function that takes a boolean. Uses <i translate="no">b</i> and <i translate="no">s</i>.</p>
<!-- @@@funcPtr -->
<!-- $$$inlineFunction[overload1]$$$inlineFunction -->
-<h3 class="fn" id="inlineFunction"><span class="type">void</span> Test::<span class="name">inlineFunction</span>()</h3>
+<h3 class="fn" translate="no" id="inlineFunction"><span class="type">void</span> Test::<span class="name">inlineFunction</span>()</h3>
<p>An inline function, documented using the \fn QDoc command.</p>
<!-- @@@inlineFunction -->
<!-- $$$someFunction[overload1]$$$someFunctionintint -->
-<h3 class="fn" id="someFunction"><code>[since Test 1.0] </code><span class="type">int</span> Test::<span class="name">someFunction</span>(<span class="type">int</span>, <span class="type">int</span> <i>v</i> = 0)</h3>
-<p>Function that takes a parameter <i>v</i>. Also returns the value of <i>v</i>.</p>
+<h3 class="fn" translate="no" id="someFunction"><code translate="no">[since Test 1.0] </code><span class="type">int</span> Test::<span class="name">someFunction</span>(<span class="type">int</span>, <span class="type">int</span> <i>v</i> = 0)</h3>
+<p>Function that takes a parameter <i translate="no">v</i>. Also returns the value of <i translate="no">v</i>.</p>
<p>This function was introduced in Test 1.0.</p>
<!-- @@@someFunction -->
<!-- $$$someFunctionDefaultArg[overload1]$$$someFunctionDefaultArgintbool -->
-<h3 class="fn" id="someFunctionDefaultArg"><code>[since 2.0] </code><span class="type">void</span> Test::<span class="name">someFunctionDefaultArg</span>(<span class="type">int</span> <i>i</i>, <span class="type">bool</span> <i>b</i> = false)</h3>
-<p>Function that takes a parameter <i>i</i> and <i>b</i>.</p>
+<h3 class="fn" translate="no" id="someFunctionDefaultArg"><code translate="no">[since 2.0] </code><span class="type">void</span> Test::<span class="name">someFunctionDefaultArg</span>(<span class="type">int</span> <i>i</i>, <span class="type">bool</span> <i>b</i> = false)</h3>
+<p>Function that takes a parameter <i translate="no">i</i> and <i translate="no">b</i>.</p>
<p>This function was introduced in Qt 2.0.</p>
<!-- @@@someFunctionDefaultArg -->
<!-- $$$virtualFun[overload1]$$$virtualFun -->
-<h3 class="fn" id="virtualFun"><code>[virtual] </code><span class="type">void</span> Test::<span class="name">virtualFun</span>()</h3>
+<h3 class="fn" translate="no" id="virtualFun"><code translate="no">[virtual] </code><span class="type">void</span> Test::<span class="name">virtualFun</span>()</h3>
<p>Function that must be reimplemented.</p>
<!-- @@@virtualFun -->
</div>
<div class="relnonmem">
<h2>Related Non-Members</h2>
<!-- $$$operator==[overload1]$$$operator==constTestQDoc::Test&constTestQDoc::Test& -->
-<h3 class="fn" id="operator-eq-eq"><span class="type">bool</span> <span class="name">operator==</span>(const <span class="type"><a href="testqdoc-test.html">TestQDoc::Test</a></span> &amp;<i>lhs</i>, const <span class="type"><a href="testqdoc-test.html">TestQDoc::Test</a></span> &amp;<i>rhs</i>)</h3>
-<p>Returns true if <i>lhs</i> and <i>rhs</i> are equal.</p>
+<h3 class="fn" translate="no" id="operator-eq-eq"><span class="type">bool</span> <span class="name">operator==</span>(const <span class="type"><a href="testqdoc-test.html" translate="no">TestQDoc::Test</a></span> &amp;<i>lhs</i>, const <span class="type"><a href="testqdoc-test.html" translate="no">TestQDoc::Test</a></span> &amp;<i>rhs</i>)</h3>
+<p>Returns true if <i translate="no">lhs</i> and <i translate="no">rhs</i> are equal.</p>
<!-- @@@operator== -->
</div>
<div class="macros">
<h2>Macro Documentation</h2>
<!-- $$$QDOCTEST_MACRO2[overload1]$$$QDOCTEST_MACRO2int& -->
-<h3 class="fn" id="QDOCTEST_MACRO2"><code>[since Test 1.1] </code><span class="name">QDOCTEST_MACRO2</span>(<span class="type">int</span> &amp;<i>x</i>)</h3>
-<p>A macro with argument <i>x</i>.</p>
+<h3 class="fn" translate="no" id="QDOCTEST_MACRO2"><code translate="no">[since Test 1.1] </code><span class="name">QDOCTEST_MACRO2</span>(<span class="type">int</span> &amp;<i>x</i>)</h3>
+<p>A macro with argument <i translate="no">x</i>.</p>
<p>This macro was introduced in Test 1.1.</p>
<!-- @@@QDOCTEST_MACRO2 -->
</div>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/ignoresince/testqdoc.html b/tests/auto/qdoc/generatedoutput/expected_output/ignoresince/testqdoc.html
index 289712177..b625ebf9b 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/ignoresince/testqdoc.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/ignoresince/testqdoc.html
@@ -17,22 +17,22 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">TestQDoc Namespace</h1>
+<h1 class="title" translate="no">TestQDoc Namespace</h1>
<!-- $$$TestQDoc-brief -->
<p>A namespace. <a href="#details">More...</a></p>
<!-- @@@TestQDoc -->
-<div class="table"><table class="alignedsummary">
+<div class="table"><table class="alignedsummary" translate="no">
<tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign"> <span class="preprocessor">#include &lt;TestCPP&gt;</span>
</td></tr><tr><td class="memItemLeft rightAlign topAlign"> CMake:</td><td class="memItemRight bottomAlign"> find_package(Qt6 COMPONENTS QDocTest REQUIRED) <br/>
target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="memItemLeft rightAlign topAlign"> qmake:</td><td class="memItemRight bottomAlign"> QT += testcpp</td></tr></table></div>
<h2 id="classes">Classes</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> class </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html">Test</a></b></td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> class </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html">TestDerived</a></b></td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> class </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html" translate="no">Test</a></b></td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> class </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html" translate="no">TestDerived</a></b></td></tr>
</table></div>
<h2 id="macros">Macros</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc.html#QDOCTEST_MACRO">QDOCTEST_MACRO</a></b></td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc.html#QDOCTEST_MACRO" translate="no">QDOCTEST_MACRO</a></b></td></tr>
</table></div>
<!-- $$$TestQDoc-description -->
<div class="descr">
@@ -53,7 +53,7 @@ target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="me
<div class="macros">
<h2>Macro Documentation</h2>
<!-- $$$QDOCTEST_MACRO[overload1]$$$QDOCTEST_MACRO -->
-<h3 class="fn" id="QDOCTEST_MACRO"><span class="name">QDOCTEST_MACRO</span></h3>
+<h3 class="fn" translate="no" id="QDOCTEST_MACRO"><span class="name">QDOCTEST_MACRO</span></h3>
<!-- @@@QDOCTEST_MACRO -->
</div>
</body>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/includefromexampledirs/index.html b/tests/auto/qdoc/generatedoutput/expected_output/includefromexampledirs/index.html
index 33e984136..027d13955 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/includefromexampledirs/index.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/includefromexampledirs/index.html
@@ -11,14 +11,14 @@
<div class="descr" id="details">
<h2 id="c-classes">C++ Classes</h2>
<div class="table"><table class="annotated">
-<tr class="odd topAlign"><td class="tblName"><p><a href="testqdoc-test.html">TestQDoc::Test</a></p></td><td class="tblDescr"><p>A class in a namespace</p></td></tr>
-<tr class="even topAlign"><td class="tblName"><p><a href="testqdoc-testderived.html">TestQDoc::TestDerived</a></p></td><td class="tblDescr"><p>A derived class in a namespace</p></td></tr>
+<tr class="odd topAlign"><td class="tblName" translate="no"><p><a href="testqdoc-test.html">TestQDoc::Test</a></p></td><td class="tblDescr"><p>A class in a namespace</p></td></tr>
+<tr class="even topAlign"><td class="tblName" translate="no"><p><a href="testqdoc-testderived.html">TestQDoc::TestDerived</a></p></td><td class="tblDescr"><p>A derived class in a namespace</p></td></tr>
</table></div>
<h2 id="qml-types">QML Types</h2>
<div class="table"><table class="annotated">
-<tr class="odd topAlign"><td class="tblName"><p><a href="qml-qdoc-test-abstractparent.html">AbstractParent</a></p></td><td class="tblDescr"><p>Abstract base QML type</p></td></tr>
-<tr class="even topAlign"><td class="tblName"><p><a href="qml-qdoc-test-child.html">Child</a></p></td><td class="tblDescr"><p>A Child inheriting its parent</p></td></tr>
-<tr class="odd topAlign"><td class="tblName"><p><a href="qml-int.html">int</a></p></td><td class="tblDescr"><p>An integer basic type</p></td></tr>
+<tr class="odd topAlign"><td class="tblName" translate="no"><p><a href="qml-qdoc-test-abstractparent.html">AbstractParent</a></p></td><td class="tblDescr"><p>Abstract base QML type</p></td></tr>
+<tr class="even topAlign"><td class="tblName" translate="no"><p><a href="qml-qdoc-test-child.html">Child</a></p></td><td class="tblDescr"><p>A Child inheriting its parent</p></td></tr>
+<tr class="odd topAlign"><td class="tblName" translate="no"><p><a href="qml-int.html">int</a></p></td><td class="tblDescr"><p>An integer basic type</p></td></tr>
</table></div>
<p>Test include file that is part of the sourcedirs.</p>
</div>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/includefromexampledirs/qml-qdoc-test-abstractparent-members.html b/tests/auto/qdoc/generatedoutput/expected_output/includefromexampledirs/qml-qdoc-test-abstractparent-members.html
index 1ca034caf..fb5b23ef9 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/includefromexampledirs/qml-qdoc-test-abstractparent-members.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/includefromexampledirs/qml-qdoc-test-abstractparent-members.html
@@ -7,11 +7,11 @@
</head>
<body>
<div class="sidebar"><div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">List of All Members for AbstractParent</h1>
+<h1 class="title" translate="no">List of All Members for AbstractParent</h1>
<p>This is the complete list of members for <a href="qml-qdoc-test-abstractparent.html">AbstractParent</a>, including inherited members.</p>
<ul>
-<li class="fn"><b><a href="qml-qdoc-test-abstractparent.html#children-prop">children</a></b> : list&lt;Child&gt; [default]</li>
-<li class="fn">void <b><a href="qml-qdoc-test-abstractparent.html#rear-method">rear</a></b>(Child <i>child</i>)</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-abstractparent.html#children-prop" translate="no">children</a></b> : list&lt;Child&gt; [default]</li>
+<li class="fn" translate="no">void <b><a href="qml-qdoc-test-abstractparent.html#rear-method" translate="no">rear</a></b>(Child <i>child</i>)</li>
</ul>
</body>
</html>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/includefromexampledirs/qml-qdoc-test-abstractparent.html b/tests/auto/qdoc/generatedoutput/expected_output/includefromexampledirs/qml-qdoc-test-abstractparent.html
index 0c11a6711..594256327 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/includefromexampledirs/qml-qdoc-test-abstractparent.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/includefromexampledirs/qml-qdoc-test-abstractparent.html
@@ -16,22 +16,22 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">AbstractParent QML Type</h1>
+<h1 class="title" translate="no">AbstractParent QML Type</h1>
<!-- $$$AbstractParent-brief -->
<p>Abstract base QML type. <a href="#details">More...</a></p>
<!-- @@@AbstractParent -->
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> Import Statement:</td><td class="memItemRight bottomAlign"> import QDoc.Test 1.1</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Inherited By:</td><td class="memItemRight bottomAlign"> <p><a href="qml-qdoc-test-child.html">Child</a></p>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> Import Statement:</td><td class="memItemRight bottomAlign"> import QDoc.Test 1.1</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Inherited By:</td><td class="memItemRight bottomAlign"> <p><a href="qml-qdoc-test-child.html" translate="no">Child</a></p>
</td></tr></table></div><ul>
<li><a href="qml-qdoc-test-abstractparent-members.html">List of all members, including inherited members</a></li>
</ul>
<h2 id="properties">Properties</h2>
<ul>
-<li class="fn"><b><a href="qml-qdoc-test-abstractparent.html#children-prop">children</a></b> : list&lt;Child&gt;</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-abstractparent.html#children-prop" translate="no">children</a></b> : list&lt;Child&gt;</li>
</ul>
<h2 id="methods">Methods</h2>
<ul>
-<li class="fn">void <b><a href="qml-qdoc-test-abstractparent.html#rear-method">rear</a></b>(Child <i>child</i>)</li>
+<li class="fn" translate="no">void <b><a href="qml-qdoc-test-abstractparent.html#rear-method" translate="no">rear</a></b>(Child <i>child</i>)</li>
</ul>
<!-- $$$AbstractParent-description -->
<h2 id="details">Detailed Description</h2>
@@ -39,11 +39,11 @@
<!-- @@@AbstractParent -->
<h2>Property Documentation</h2>
<!-- $$$children -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="children-prop">
<td class="tblQmlPropNode"><p>
-<span class="qmlextra">[default] </span><span class="name">children</span> : <span class="type">list</span>&lt;<span class="type"><a href="qml-qdoc-test-child.html">Child</a></span>&gt;</p></td></tr>
+<span class="qmlextra">[default] </span><span class="name">children</span> : <span class="type">list</span>&lt;<span class="type"><a href="qml-qdoc-test-child.html" translate="no">Child</a></span>&gt;</p></td></tr>
</table></div></div>
<div class="qmldoc"><p>Children of the type.</p>
<p>Test include file that is part of the sourcedirs.</p>
@@ -51,13 +51,13 @@
<br/>
<h2>Method Documentation</h2>
<!-- $$$rear[overload1]$$$rearChild -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="rear-method">
<td class="tblQmlFuncNode"><p>
-<span class="type">void</span> <span class="name">rear</span>(<span class="type"><a href="qml-qdoc-test-child.html">Child</a></span> <i>child</i>)</p></td></tr>
+<span class="type">void</span> <span class="name">rear</span>(<span class="type"><a href="qml-qdoc-test-child.html" translate="no">Child</a></span> <i>child</i>)</p></td></tr>
</table></div></div>
-<div class="qmldoc"><p>Do some abstract parenting on <i>child</i>.</p>
+<div class="qmldoc"><p>Do some abstract parenting on <i translate="no">child</i>.</p>
<p>Test include file that is part of the sourcedirs.</p>
</div></div><!-- @@@rear -->
<br/>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/index-linking.html b/tests/auto/qdoc/generatedoutput/expected_output/index-linking.html
index 89d59dfc9..09d3ef0fd 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/index-linking.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/index-linking.html
@@ -18,8 +18,8 @@
<!-- $$$index-linking.html-description -->
<div class="descr" id="details">
<h2 id="qml-properties">QML properties</h2>
-<ol class="A" type="A"><li>Property group: <a href="https://doc.qt.io/QmlPropertyGroups/qml-qdoc-test-parent.html#group-prop">Parent::group</a>.</li>
-<li>Property in a group: <a href="https://doc.qt.io/QmlPropertyGroups/qml-qdoc-test-parent.html#group.c-prop">QDoc.Test::Parent::group.c</a>.</li>
+<ol class="A" type="A"><li>Property group: <a href="https://doc.qt.io/QmlPropertyGroups/qml-qdoc-test-parent.html#group-prop" translate="no">Parent::group</a>.</li>
+<li>Property in a group: <a href="https://doc.qt.io/QmlPropertyGroups/qml-qdoc-test-parent.html#group.c-prop" translate="no">QDoc.Test::Parent::group.c</a>.</li>
</ol>
</div>
<!-- @@@index-linking.html -->
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/index.html b/tests/auto/qdoc/generatedoutput/expected_output/index.html
index 4593e3419..f934cfdca 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/index.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/index.html
@@ -10,10 +10,10 @@
<!-- $$$index.html-description -->
<div class="descr" id="details">
<div class="table"><table class="annotated">
-<tr class="odd topAlign"><td class="tblName"><p><a href="first.html">First</a></p></td></tr>
-<tr class="even topAlign"><td class="tblName"><p><a href="first-nested.html">First::Nested</a></p></td></tr>
-<tr class="odd topAlign"><td class="tblName"><p><a href="second.html">Second</a></p></td></tr>
-<tr class="even topAlign"><td class="tblName"><p><a href="third.html">Third</a></p></td></tr>
+<tr class="odd topAlign"><td class="tblName" translate="no"><p><a href="first.html">First</a></p></td></tr>
+<tr class="even topAlign"><td class="tblName" translate="no"><p><a href="first-nested.html">First::Nested</a></p></td></tr>
+<tr class="odd topAlign"><td class="tblName" translate="no"><p><a href="second.html">Second</a></p></td></tr>
+<tr class="even topAlign"><td class="tblName" translate="no"><p><a href="third.html">Third</a></p></td></tr>
</table></div>
</div>
<!-- @@@index.html -->
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/nestedmacro/testcpp-module.html b/tests/auto/qdoc/generatedoutput/expected_output/nestedmacro/testcpp-module.html
index 6b5049e06..5f0ac62bc 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/nestedmacro/testcpp-module.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/nestedmacro/testcpp-module.html
@@ -18,19 +18,19 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">QDoc Test C++ Classes</h1>
+<h1 class="title" translate="no">QDoc Test C++ Classes</h1>
<!-- $$$TestCPP-brief -->
<p>A test module page. <a href="#details">More...</a></p>
<!-- @@@TestCPP -->
<h2 id="namespaces">Namespaces</h2>
<div class="table"><table class="annotated">
-<tr class="odd topAlign"><td class="tblName"><p><a href="crossmoduleref.html">CrossModuleRef</a></p></td><td class="tblDescr"><p>Namespace that has documented functions in multiple modules</p></td></tr>
-<tr class="even topAlign"><td class="tblName"><p><a href="testqdoc.html">TestQDoc</a></p></td><td class="tblDescr"><p>A namespace</p></td></tr>
+<tr class="odd topAlign"><td class="tblName" translate="no"><p><a href="crossmoduleref.html">CrossModuleRef</a></p></td><td class="tblDescr"><p>Namespace that has documented functions in multiple modules</p></td></tr>
+<tr class="even topAlign"><td class="tblName" translate="no"><p><a href="testqdoc.html">TestQDoc</a></p></td><td class="tblDescr"><p>A namespace</p></td></tr>
</table></div>
<h2 id="classes">Classes</h2>
<div class="table"><table class="annotated">
-<tr class="odd topAlign"><td class="tblName"><p><a href="testqdoc-test.html">TestQDoc::Test</a></p></td><td class="tblDescr"><p>A class in a namespace</p></td></tr>
-<tr class="even topAlign"><td class="tblName"><p><a href="testqdoc-testderived.html">TestQDoc::TestDerived</a></p></td><td class="tblDescr"><p>A derived class in a namespace</p></td></tr>
+<tr class="odd topAlign"><td class="tblName" translate="no"><p><a href="testqdoc-test.html">TestQDoc::Test</a></p></td><td class="tblDescr"><p>A class in a namespace</p></td></tr>
+<tr class="even topAlign"><td class="tblName" translate="no"><p><a href="testqdoc-testderived.html">TestQDoc::TestDerived</a></p></td><td class="tblDescr"><p>A derived class in a namespace</p></td></tr>
</table></div>
<!-- $$$TestCPP-description -->
<div class="descr">
@@ -41,13 +41,13 @@
<p><b>This module was introduced in version 5.15.</b></p>
<h3 id="linking-to-function-like-things">Linking to function-like things</h3>
<ul>
-<li><a href="testqdoc-test.html#someFunctionDefaultArg">someFunctionDefaultArg</a>()</li>
-<li><a href="testqdoc-test.html#QDOCTEST_MACRO2">QDOCTEST_MACRO2</a>()</li>
-<li><a href="testqdoc-test.html#QDOCTEST_MACRO2">QDOCTEST_MACRO2</a>(int &amp;x)</li>
-<li><a href="testcpp-module.html#section">section()</a></li>
-<li><a href="testcpp-module.html#section">section() is a section title</a></li>
-<li><a href="testqdoc-test.html#Test">open( parenthesis</a></li>
-<li><a href="https://en.cppreference.com/w/cpp/utility/move">C++11 added std::move(T&amp;&amp; t)</a></li>
+<li><a href="testqdoc-test.html#someFunctionDefaultArg" translate="no">someFunctionDefaultArg</a>()</li>
+<li><a href="testqdoc-test.html#QDOCTEST_MACRO2" translate="no">QDOCTEST_MACRO2</a>()</li>
+<li><a href="testqdoc-test.html#QDOCTEST_MACRO2" translate="no">QDOCTEST_MACRO2</a>(int &amp;x)</li>
+<li><a href="testcpp-module.html#section" translate="no">section()</a></li>
+<li><a href="testcpp-module.html#section" translate="no">section() is a section title</a></li>
+<li><a href="testqdoc-test.html#Test" translate="no">open( parenthesis</a></li>
+<li><a href="https://en.cppreference.com/w/cpp/utility/move" translate="no">C++11 added std::move(T&amp;&amp; t)</a></li>
</ul>
<h4 id="section">section()</h4>
</div>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/noautolist/qdoc-test-qmlmodule.html b/tests/auto/qdoc/generatedoutput/expected_output/noautolist/qdoc-test-qmlmodule.html
index 8ae6022c0..d7ea47a56 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/noautolist/qdoc-test-qmlmodule.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/noautolist/qdoc-test-qmlmodule.html
@@ -7,7 +7,7 @@
</head>
<body>
<div class="sidebar"><div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">QDoc.Test QML Module</h1>
+<h1 class="title" translate="no">QDoc.Test QML Module</h1>
<p><b>This module is under development and is subject to change.</b></p>
<p>This module was introduced in Qt 1.1.</p>
<!-- $$$QDoc.Test-description -->
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/noautolist/test-componentset-example.html b/tests/auto/qdoc/generatedoutput/expected_output/noautolist/test-componentset-example.html
index 2d77b7bf1..03689a5e6 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/noautolist/test-componentset-example.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/noautolist/test-componentset-example.html
@@ -24,19 +24,19 @@
<!-- $$$componentset-description -->
<div class="descr" id="details">
<p>This example demonstrates one of the ways to document QML types. It also generates a warning about a missing example image, on purpose.</p>
-<p>In particular, there are sample types that are documented with QDoc commands comments. There are documentation comments for the QML types and their public interfaces. The types are grouped into a module, the <a href="uicomponents-qmlmodule.html">UI Components</a> module.</p>
-<p>The uicomponents.qdoc file generates the overview page for the <a href="uicomponents-qmlmodule.html">UI Components</a> module page.</p>
-<p>The generated documentation is available in the <a href="uicomponents-qmlmodule.html">UI Components</a> module.</p>
+<p>In particular, there are sample types that are documented with QDoc commands comments. There are documentation comments for the QML types and their public interfaces. The types are grouped into a module, the <a href="uicomponents-qmlmodule.html" translate="no">UI Components</a> module.</p>
+<p>The uicomponents.qdoc file generates the overview page for the <a href="uicomponents-qmlmodule.html" translate="no">UI Components</a> module page.</p>
+<p>The generated documentation is available in the <a href="uicomponents-qmlmodule.html" translate="no">UI Components</a> module.</p>
<h4 id="qml-class">QML Class</h4>
-<p>The QML types use the \qmltype to document the type. In addition, they have the \inmodule command in order for QDoc to associate them to the <code>UIComponents</code> module.</p>
+<p>The QML types use the \qmltype to document the type. In addition, they have the \inmodule command in order for QDoc to associate them to the <code translate="no">UIComponents</code> module.</p>
<p>QDoc uses the \brief command to place a basic description when listing the types.</p>
<h4 id="properties-signals-handlers-and-methods">Properties, Signals, Handlers, and Methods</h4>
<p>The types have their properties, signals, handlers, and methods defined in their respective QML files. QDoc associates the properties and methods to the types, therefore, you only need to place the documentation above the property, method, or signal.</p>
<p>To document the type of a <i>property alias</i>, you must use the \qmlproperty command to specify the data type.</p>
-<pre class="cpp">\qmlproperty <span class="type">int</span> anAliasedProperty
+<pre class="cpp" translate="no">\qmlproperty <span class="type">int</span> anAliasedProperty
An aliased property of type <span class="type">int</span><span class="operator">.</span></pre>
<h5 id="internal-documentation">Internal Documentation</h5>
-<p>You may declare that a documentation is for internal use by placing the \internal command after the beginning QDoc comment <code>/*</code>. QDoc will prevent the internal documentation from appearing in the public API.</p>
+<p>You may declare that a documentation is for internal use by placing the \internal command after the beginning QDoc comment <code translate="no">/*</code>. QDoc will prevent the internal documentation from appearing in the public API.</p>
<p>If you wish to omit certain parts of the documentation, you may use the \omit and \endomit command.</p>
<h4 id="qml-types-with-c-implementation">QML Types with C++ Implementation</h4>
<p>This example only demonstrates the documentation for types in QML files, but the regular QML commands may be placed inside C++ classes to define the public API of the QML type.</p>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/noautolist/testcpp-module.html b/tests/auto/qdoc/generatedoutput/expected_output/noautolist/testcpp-module.html
index e31353a94..b85ada21a 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/noautolist/testcpp-module.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/noautolist/testcpp-module.html
@@ -16,7 +16,7 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">QDoc Test C++ Classes</h1>
+<h1 class="title" translate="no">QDoc Test C++ Classes</h1>
<!-- $$$TestCPP-brief -->
<p>A test module page. <a href="#details">More...</a></p>
<!-- @@@TestCPP -->
@@ -28,13 +28,13 @@
</div>
<h3 id="linking-to-function-like-things">Linking to function-like things</h3>
<ul>
-<li><a href="testqdoc-test.html#someFunctionDefaultArg">someFunctionDefaultArg</a>()</li>
-<li><a href="testqdoc-test.html#QDOCTEST_MACRO2">QDOCTEST_MACRO2</a>()</li>
-<li><a href="testqdoc-test.html#QDOCTEST_MACRO2">QDOCTEST_MACRO2</a>(int &amp;x)</li>
-<li><a href="testcpp-module.html#section">section()</a></li>
-<li><a href="testcpp-module.html#section">section() is a section title</a></li>
-<li><a href="testqdoc-test.html#Test">open( parenthesis</a></li>
-<li><a href="https://en.cppreference.com/w/cpp/utility/move">C++11 added std::move(T&amp;&amp; t)</a></li>
+<li><a href="testqdoc-test.html#someFunctionDefaultArg" translate="no">someFunctionDefaultArg</a>()</li>
+<li><a href="testqdoc-test.html#QDOCTEST_MACRO2" translate="no">QDOCTEST_MACRO2</a>()</li>
+<li><a href="testqdoc-test.html#QDOCTEST_MACRO2" translate="no">QDOCTEST_MACRO2</a>(int &amp;x)</li>
+<li><a href="testcpp-module.html#section" translate="no">section()</a></li>
+<li><a href="testcpp-module.html#section" translate="no">section() is a section title</a></li>
+<li><a href="testqdoc-test.html#Test" translate="no">open( parenthesis</a></li>
+<li><a href="https://en.cppreference.com/w/cpp/utility/move" translate="no">C++11 added std::move(T&amp;&amp; t)</a></li>
</ul>
<h4 id="section">section()</h4>
</div>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/obsolete-classes.html b/tests/auto/qdoc/generatedoutput/expected_output/obsolete-classes.html
index 19edb918c..495d2340a 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/obsolete-classes.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/obsolete-classes.html
@@ -19,7 +19,7 @@
<!-- $$$obsolete-classes.html-description -->
<div class="descr" id="details">
<h2 id="classes-with-obsolete-members">Classes with obsolete members</h2>
-<div class="flowListDiv">
+<div class="flowListDiv" translate="no">
<dl class="flowList odd"><dt class="alphaChar"><b>T</b></dt>
<dd><a href="..//testqdoc-test-obsolete.html">Test</a> (<a href="testqdoc.html">TestQDoc</a>)</dd>
<dd><a href="..//testqdoc-testderived-obsolete.html">TestDerived</a> (<a href="testqdoc.html">TestQDoc</a>)</dd>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/properties/testqdoc-testderived-members.html b/tests/auto/qdoc/generatedoutput/expected_output/properties/testqdoc-testderived-members.html
index 8390ad123..6f3bbd25f 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/properties/testqdoc-testderived-members.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/properties/testqdoc-testderived-members.html
@@ -8,36 +8,36 @@
<body>
<li>TestDerived</li>
<div class="sidebar"><div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">List of All Members for TestDerived</h1>
+<h1 class="title" translate="no">List of All Members for TestDerived</h1>
<p>This is the complete list of members for <a href="testqdoc-testderived.html">TestQDoc::TestDerived</a>, including inherited members.</p>
-<div class="table"><table class="propsummary">
+<div class="table"><table class="propsummary" translate="no">
<tr><td class="topAlign"><ul>
-<li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#DerivedType-typedef">DerivedType</a></b></span></li>
-<li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#NotTypedef-typedef">NotTypedef</a></b></span></li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#SomeType-typedef">SomeType</a></b></span></li>
-<li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#bindableProp-prop">bindablePropChanged</a></b></span>()</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#boolProp-prop">boolPropChanged</a></b></span>()</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#emitSomething">emitSomething</a></b></span>()</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#operator-eq">operator=</a></b></span>(TestQDoc::Test &amp;&amp;) : TestQDoc::Test &amp;</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#boolProp-prop">resetBoolProp</a></b></span>()</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#bindableProp-prop">setBindableProp</a></b></span>(const QString &amp;)</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#boolProp-prop">setBoolProp</a></b></span>(bool)</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#bindableProp-prop">bindableProp</a></b></span>() : QBindable&lt;QString&gt;</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#boolProp-prop">boolProp</a></b></span>() : bool</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#funcPtr">funcPtr</a></b></span>(bool, const char *) : void (*)(bool)</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-testderived.html#DerivedType-typedef" translate="no">DerivedType</a></b></span></li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-testderived.html#NotTypedef-typedef" translate="no">NotTypedef</a></b></span></li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#SomeType-typedef" translate="no">SomeType</a></b></span></li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-testderived.html#bindableProp-prop" translate="no">bindablePropChanged</a></b></span>()</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-testderived.html#boolProp-prop" translate="no">boolPropChanged</a></b></span>()</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-testderived.html#emitSomething" translate="no">emitSomething</a></b></span>()</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#operator-eq" translate="no">operator=</a></b></span>(TestQDoc::Test &amp;&amp;) : TestQDoc::Test &amp;</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-testderived.html#boolProp-prop" translate="no">resetBoolProp</a></b></span>()</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-testderived.html#bindableProp-prop" translate="no">setBindableProp</a></b></span>(const QString &amp;)</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-testderived.html#boolProp-prop" translate="no">setBoolProp</a></b></span>(bool)</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-testderived.html#bindableProp-prop" translate="no">bindableProp</a></b></span>() : QBindable&lt;QString&gt;</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-testderived.html#boolProp-prop" translate="no">boolProp</a></b></span>() : bool</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#funcPtr" translate="no">funcPtr</a></b></span>(bool, const char *) : void (*)(bool)</li>
</ul></td><td class="topAlign"><ul>
-<li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#intProp-prop">getInt</a></b></span>() : int *</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#id">id</a></b></span>() : int</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#inlineFunction">inlineFunction</a></b></span>()</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#invokeMe">invokeMe</a></b></span>() const</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#name-prop">name</a></b></span>() const : const QString *</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#overload">overload</a></b></span>()</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#overload-1">overload</a></b></span>(bool)</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#someFunction">someFunction</a></b></span>(int, int) : int</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#someFunctionDefaultArg">someFunctionDefaultArg</a></b></span>(int, bool)</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#someProp-prop">someProp</a></b></span>() : const QString &amp;</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#virtualFun">virtualFun</a></b></span>()</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#virtualFun">virtualFun</a></b></span>()</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-testderived.html#intProp-prop" translate="no">getInt</a></b></span>() : int *</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-testderived.html#id" translate="no">id</a></b></span>() : int</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#inlineFunction" translate="no">inlineFunction</a></b></span>()</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-testderived.html#invokeMe" translate="no">invokeMe</a></b></span>() const</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-testderived.html#name-prop" translate="no">name</a></b></span>() const : const QString *</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#overload" translate="no">overload</a></b></span>()</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#overload-1" translate="no">overload</a></b></span>(bool)</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#someFunction" translate="no">someFunction</a></b></span>(int, int) : int</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#someFunctionDefaultArg" translate="no">someFunctionDefaultArg</a></b></span>(int, bool)</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-testderived.html#someProp-prop" translate="no">someProp</a></b></span>() : const QString &amp;</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#virtualFun" translate="no">virtualFun</a></b></span>()</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-testderived.html#virtualFun" translate="no">virtualFun</a></b></span>()</li>
</ul>
</td></tr>
</table></div>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/properties/testqdoc-testderived.html b/tests/auto/qdoc/generatedoutput/expected_output/properties/testqdoc-testderived.html
index f18860982..50dc36724 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/properties/testqdoc-testderived.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/properties/testqdoc-testderived.html
@@ -21,61 +21,61 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">TestDerived Class</h1>
-<span class="small-subtitle">class <a href="testqdoc.html">TestQDoc</a>::TestDerived</span>
+<h1 class="title" translate="no">TestDerived Class</h1>
+<span class="small-subtitle" translate="no">class <a href="testqdoc.html" translate="no">TestQDoc</a>::TestDerived</span>
<!-- $$$TestDerived-brief -->
<p>A derived class in a namespace. <a href="#details">More...</a></p>
<!-- @@@TestDerived -->
-<div class="table"><table class="alignedsummary">
+<div class="table"><table class="alignedsummary" translate="no">
<tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign"> <span class="preprocessor">#include &lt;TestDerived&gt;</span>
</td></tr><tr><td class="memItemLeft rightAlign topAlign"> CMake:</td><td class="memItemRight bottomAlign"> find_package(Qt6 COMPONENTS QDocTest REQUIRED) <br/>
-target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="memItemLeft rightAlign topAlign"> qmake:</td><td class="memItemRight bottomAlign"> QT += testcpp</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Inherits:</td><td class="memItemRight bottomAlign"> <a href="testqdoc-test.html">TestQDoc::Test</a></td></tr></table></div>
+target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="memItemLeft rightAlign topAlign"> qmake:</td><td class="memItemRight bottomAlign"> QT += testcpp</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Inherits:</td><td class="memItemRight bottomAlign"> <a href="testqdoc-test.html" translate="no">TestQDoc::Test</a></td></tr></table></div>
<ul>
<li><a href="testqdoc-testderived-members.html">List of all members, including inherited members</a></li>
<li><a href="testqdoc-testderived-obsolete.html">Deprecated members</a></li>
</ul>
<h2 id="public-types">Public Types</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#DerivedType-typedef">DerivedType</a></b></td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#NotTypedef-typedef">NotTypedef</a></b></td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#DerivedType-typedef" translate="no">DerivedType</a></b></td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#NotTypedef-typedef" translate="no">NotTypedef</a></b></td></tr>
</table></div>
<h2 id="properties">Properties</h2>
-<div class="table"><table class="propsummary">
+<div class="table"><table class="propsummary" translate="no">
<tr><td class="topAlign"><ul>
-<li class="fn"><b><a href="testqdoc-testderived.html#bindableProp-prop">bindableProp</a></b> : QString</li>
-<li class="fn"><b><a href="testqdoc-testderived.html#boolProp-prop">boolProp</a></b> : bool</li>
-<li class="fn"><b><a href="testqdoc-testderived.html#intProp-prop">intProp</a></b> : int* const</li>
+<li class="fn" translate="no"><b><a href="testqdoc-testderived.html#bindableProp-prop" translate="no">bindableProp</a></b> : QString</li>
+<li class="fn" translate="no"><b><a href="testqdoc-testderived.html#boolProp-prop" translate="no">boolProp</a></b> : bool</li>
+<li class="fn" translate="no"><b><a href="testqdoc-testderived.html#intProp-prop" translate="no">intProp</a></b> : int* const</li>
</ul></td><td class="topAlign"><ul>
-<li class="fn"><b><a href="testqdoc-testderived.html#name-prop">name</a></b> : const QString*</li>
-<li class="fn"><b><a href="testqdoc-testderived.html#someProp-prop">someProp</a></b> : QString</li>
+<li class="fn" translate="no"><b><a href="testqdoc-testderived.html#name-prop" translate="no">name</a></b> : const QString*</li>
+<li class="fn" translate="no"><b><a href="testqdoc-testderived.html#someProp-prop" translate="no">someProp</a></b> : QString</li>
</ul>
</td></tr>
</table></div>
<h2 id="public-functions">Public Functions</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> QBindable&lt;QString&gt; </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#bindableProp-prop">bindableProp</a></b>()</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> bool </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#boolProp-prop">boolProp</a></b>()</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> int *</td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#intProp-prop">getInt</a></b>()</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#invokeMe">invokeMe</a></b>() const</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> const QString *</td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#name-prop">name</a></b>() const</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> const QString &amp;</td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#someProp-prop">someProp</a></b>()</td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> QBindable&lt;QString&gt; </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#bindableProp-prop" translate="no">bindableProp</a></b>()</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> bool </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#boolProp-prop" translate="no">boolProp</a></b>()</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> int *</td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#intProp-prop" translate="no">getInt</a></b>()</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#invokeMe" translate="no">invokeMe</a></b>() const</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> const QString *</td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#name-prop" translate="no">name</a></b>() const</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> const QString &amp;</td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#someProp-prop" translate="no">someProp</a></b>()</td></tr>
</table></div>
<h2 id="reimplemented-public-functions">Reimplemented Public Functions</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> virtual int </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#id">id</a></b>() override</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#virtualFun">virtualFun</a></b>() override</td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> virtual int </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#id" translate="no">id</a></b>() override</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#virtualFun" translate="no">virtualFun</a></b>() override</td></tr>
</table></div>
<h2 id="public-slots">Public Slots</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#boolProp-prop">resetBoolProp</a></b>()</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#bindableProp-prop">setBindableProp</a></b>(const QString &amp;<i>s</i>)</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#boolProp-prop">setBoolProp</a></b>(bool <i>b</i>)</td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#boolProp-prop" translate="no">resetBoolProp</a></b>()</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#bindableProp-prop" translate="no">setBindableProp</a></b>(const QString &amp;<i>s</i>)</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#boolProp-prop" translate="no">setBoolProp</a></b>(bool <i>b</i>)</td></tr>
</table></div>
<h2 id="signals">Signals</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#bindableProp-prop">bindablePropChanged</a></b>()</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#boolProp-prop">boolPropChanged</a></b>()</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#emitSomething">emitSomething</a></b>()</td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#bindableProp-prop" translate="no">bindablePropChanged</a></b>()</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#boolProp-prop" translate="no">boolPropChanged</a></b>()</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#emitSomething" translate="no">emitSomething</a></b>()</td></tr>
</table></div>
<!-- $$$TestDerived-description -->
<div class="descr">
@@ -85,76 +85,76 @@ target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="me
<div class="types">
<h2>Member Type Documentation</h2>
<!-- $$$DerivedType -->
-<h3 class="fn" id="DerivedType-typedef"><code>[alias] </code>TestDerived::<span class="name">DerivedType</span></h3>
+<h3 class="fn" translate="no" id="DerivedType-typedef"><code translate="no">[alias] </code>TestDerived::<span class="name">DerivedType</span></h3>
<p>An aliased typedef.</p>
<!-- @@@DerivedType -->
<!-- $$$NotTypedef -->
-<h3 class="fn" id="NotTypedef-typedef"><code>[alias] </code>TestDerived::<span class="name">NotTypedef</span></h3>
+<h3 class="fn" translate="no" id="NotTypedef-typedef"><code translate="no">[alias] </code>TestDerived::<span class="name">NotTypedef</span></h3>
<p>I'm an alias, not a typedef.</p>
<!-- @@@NotTypedef -->
</div>
<div class="prop">
<h2>Property Documentation</h2>
<!-- $$$bindableProp-prop$$$bindableProp$$$setBindablePropconstQString&$$$bindablePropChanged -->
-<h3 class="fn" id="bindableProp-prop"><code>[bindable] </code><span class="name">bindableProp</span> : <span class="type">QString</span></h3>
-<p><b>Note: </b>This property supports <a href="https://wiki.qt.io/QProperty">QProperty</a> bindings.</p>
+<h3 class="fn" translate="no" id="bindableProp-prop"><code translate="no">[bindable] </code><span class="name">bindableProp</span> : <span class="type">QString</span></h3>
+<p><b>Note: </b>This property supports <a href="https://wiki.qt.io/QProperty" translate="no">QProperty</a> bindings.</p>
<p>Some property.</p>
<!-- @@@bindableProp -->
<!-- $$$boolProp-prop$$$boolProp$$$setBoolPropbool$$$resetBoolProp$$$boolPropChanged -->
-<h3 class="fn" id="boolProp-prop"><span class="name">boolProp</span> : <span class="type">bool</span></h3>
+<h3 class="fn" translate="no" id="boolProp-prop"><span class="name">boolProp</span> : <span class="type">bool</span></h3>
<p>A boolean property.</p>
<p><b>Access functions:</b></p>
-<div class="table"><table class="alignedsummary">
+<div class="table"><table class="alignedsummary" translate="no">
<tr><td class="memItemLeft topAlign rightAlign"> bool </td><td class="memItemRight bottomAlign"><span class="name"><b>boolProp</b></span>()</td></tr>
<tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>setBoolProp</b></span>(bool <i>b</i>)</td></tr>
<tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>resetBoolProp</b></span>()</td></tr>
</table></div>
<p><b>Notifier signal:</b></p>
-<div class="table"><table class="alignedsummary">
+<div class="table"><table class="alignedsummary" translate="no">
<tr><td class="memItemLeft topAlign rightAlign"> void </td><td class="memItemRight bottomAlign"><span class="name"><b>boolPropChanged</b></span>()</td></tr>
</table></div>
<!-- @@@boolProp -->
<!-- $$$intProp-prop$$$getInt -->
-<h3 class="fn" id="intProp-prop"><code>[read-only] </code><span class="name">intProp</span> : <span class="type">int</span>* const</h3>
+<h3 class="fn" translate="no" id="intProp-prop"><code translate="no">[read-only] </code><span class="name">intProp</span> : <span class="type">int</span>* const</h3>
<p>An integer property.</p>
<p><b>Access functions:</b></p>
-<div class="table"><table class="alignedsummary">
+<div class="table"><table class="alignedsummary" translate="no">
<tr><td class="memItemLeft topAlign rightAlign"> int *</td><td class="memItemRight bottomAlign"><span class="name"><b>getInt</b></span>()</td></tr>
</table></div>
<!-- @@@intProp -->
<!-- $$$name-prop$$$name -->
-<h3 class="fn" id="name-prop"><code>[read-only] </code><span class="name">name</span> : const <span class="type">QString</span>*</h3>
+<h3 class="fn" translate="no" id="name-prop"><code translate="no">[read-only] </code><span class="name">name</span> : const <span class="type">QString</span>*</h3>
<p>This property holds a name.</p>
<p><b>Access functions:</b></p>
-<div class="table"><table class="alignedsummary">
+<div class="table"><table class="alignedsummary" translate="no">
<tr><td class="memItemLeft topAlign rightAlign"> const QString *</td><td class="memItemRight bottomAlign"><span class="name"><b>name</b></span>() const</td></tr>
</table></div>
<!-- @@@name -->
<!-- $$$someProp-prop$$$someProp -->
-<h3 class="fn" id="someProp-prop"><code>[bindable read-only] </code><span class="name">someProp</span> : <span class="type">QString</span></h3>
-<p><b>Note: </b>This property supports <a href="https://wiki.qt.io/QProperty">QProperty</a> bindings.</p>
+<h3 class="fn" translate="no" id="someProp-prop"><code translate="no">[bindable read-only] </code><span class="name">someProp</span> : <span class="type">QString</span></h3>
+<p><b>Note: </b>This property supports <a href="https://wiki.qt.io/QProperty" translate="no">QProperty</a> bindings.</p>
<p>Another property.</p>
<!-- @@@someProp -->
</div>
<div class="func">
<h2>Member Function Documentation</h2>
<!-- $$$emitSomething[overload1]$$$emitSomething -->
-<h3 class="fn" id="emitSomething"><code>[private signal] </code><span class="type">void</span> TestDerived::<span class="name">emitSomething</span>()</h3>
+<h3 class="fn" translate="no" id="emitSomething"><code translate="no">[private signal] </code><span class="type">void</span> TestDerived::<span class="name">emitSomething</span>()</h3>
<p>Emitted when things happen.</p>
<p><b>Note: </b>This is a private signal. It can be used in signal connections but cannot be emitted by the user.</p>
<!-- @@@emitSomething -->
<!-- $$$id[overload1]$$$id -->
-<h3 class="fn" id="id"><code>[override virtual] </code><span class="type">int</span> TestDerived::<span class="name">id</span>()</h3>
-<p>Reimplements an access function for property: <a href="testqdoc-test.html#id-prop">Test::id</a>.</p>
+<h3 class="fn" translate="no" id="id"><code translate="no">[override virtual] </code><span class="type">int</span> TestDerived::<span class="name">id</span>()</h3>
+<p>Reimplements an access function for property: <a href="testqdoc-test.html#id-prop" translate="no">Test::id</a>.</p>
<!-- @@@id -->
<!-- $$$invokeMe[overload1]$$$invokeMe -->
-<h3 class="fn" id="invokeMe"><code>[invokable] </code><span class="type">void</span> TestDerived::<span class="name">invokeMe</span>() const</h3>
+<h3 class="fn" translate="no" id="invokeMe"><code translate="no">[invokable] </code><span class="type">void</span> TestDerived::<span class="name">invokeMe</span>() const</h3>
<p>Something invokable.</p>
<p><b>Note: </b>This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.</p>
<!-- @@@invokeMe -->
<!-- $$$virtualFun[overload1]$$$virtualFun -->
-<h3 class="fn" id="virtualFun"><code>[override virtual] </code><span class="type">void</span> TestDerived::<span class="name">virtualFun</span>()</h3>
-<p>Reimplements: <a href="testqdoc-test.html#virtualFun">Test::virtualFun</a>().</p>
+<h3 class="fn" translate="no" id="virtualFun"><code translate="no">[override virtual] </code><span class="type">void</span> TestDerived::<span class="name">virtualFun</span>()</h3>
+<p>Reimplements: <a href="testqdoc-test.html#virtualFun" translate="no">Test::virtualFun</a>().</p>
<!-- @@@virtualFun -->
</div>
</body>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/qdoc-test-qmlmodule.html b/tests/auto/qdoc/generatedoutput/expected_output/qdoc-test-qmlmodule.html
index 93f512497..121d24018 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/qdoc-test-qmlmodule.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/qdoc-test-qmlmodule.html
@@ -7,7 +7,7 @@
</head>
<body>
<div class="sidebar"><div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">QDoc.Test QML Module</h1>
+<h1 class="title" translate="no">QDoc.Test QML Module</h1>
<p><b>This module is under development and is subject to change.</b></p>
<p>This module was introduced in Qt 1.1.</p>
<!-- $$$QDoc.Test-description -->
@@ -15,12 +15,12 @@
</div>
<!-- @@@QDoc.Test -->
<div class="table"><table class="annotated">
-<tr class="odd topAlign"><td class="tblName"><p><a href="qml-qdoc-test-abstractparent.html">AbstractParent</a></p></td><td class="tblDescr"><p>Abstract base QML type</p></td></tr>
-<tr class="even topAlign"><td class="tblName"><p><a href="qml-qdoc-test-child.html">Child</a></p></td><td class="tblDescr"><p>A Child inheriting its parent</p></td></tr>
-<tr class="odd topAlign"><td class="tblName"><p><a href="qml-qdoc-test-doctest.html">DocTest</a></p></td><td class="tblDescr"><p>Represents a doc test case</p></td></tr>
-<tr class="even topAlign"><td class="tblName"><p><a href="qml-qdoc-test-type.html">Type</a></p></td><td class="tblDescr"><p>A QML type documented in a .cpp file</p></td></tr>
-<tr class="odd topAlign"><td class="tblName"><p><a href="qml-qdoc-test-yetanotherchild.html">YetAnotherChild</a></p></td><td class="tblDescr"><p>A type inheriting from internal abstract parent</p></td></tr>
-<tr class="even topAlign"><td class="tblName"><p><a href="qml-int.html">int</a></p></td><td class="tblDescr"><p>An integer basic type</p></td></tr>
+<tr class="odd topAlign"><td class="tblName" translate="no"><p><a href="qml-qdoc-test-abstractparent.html">AbstractParent</a></p></td><td class="tblDescr"><p>Abstract base QML type</p></td></tr>
+<tr class="even topAlign"><td class="tblName" translate="no"><p><a href="qml-qdoc-test-child.html">Child</a></p></td><td class="tblDescr"><p>A Child inheriting its parent</p></td></tr>
+<tr class="odd topAlign"><td class="tblName" translate="no"><p><a href="qml-qdoc-test-doctest.html">DocTest</a></p></td><td class="tblDescr"><p>Represents a doc test case</p></td></tr>
+<tr class="even topAlign"><td class="tblName" translate="no"><p><a href="qml-qdoc-test-type.html">Type</a></p></td><td class="tblDescr"><p>A QML type documented in a .cpp file</p></td></tr>
+<tr class="odd topAlign"><td class="tblName" translate="no"><p><a href="qml-qdoc-test-yetanotherchild.html">YetAnotherChild</a></p></td><td class="tblDescr"><p>A type inheriting from internal abstract parent</p></td></tr>
+<tr class="even topAlign"><td class="tblName" translate="no"><p><a href="qml-int.html">int</a></p></td><td class="tblDescr"><p>An integer basic type</p></td></tr>
</table></div>
</body>
</html>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/qdoctests-qdocfileoutput-exhaustive.html b/tests/auto/qdoc/generatedoutput/expected_output/qdoctests-qdocfileoutput-exhaustive.html
index cbf7d6894..ae345f554 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/qdoctests-qdocfileoutput-exhaustive.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/qdoctests-qdocfileoutput-exhaustive.html
@@ -25,11 +25,11 @@
<h3 id="this-is-a-section2">This is a section2</h3>
<h4 id="this-is-a-section3">This is a section3</h4>
<h5 id="this-is-a-section4">This is a section4</h5>
-<pre class="cpp plain">This is bad code</pre>
+<pre class="cpp plain" translate="no">This is bad code</pre>
<p>This text should have a line break riiiiight <br />
noooow.</p>
<p><b>All your text belong to bold</b> ..&#x2e;And this is an examble of only <b>bold</b> being, well, bold.</p>
-<pre class="cpp"> ...</pre>
+<pre class="cpp" translate="no"> ...</pre>
<pre class="js"><span class="comment">// If I knew JavaScript, this is where I would write it.</span></pre>
<p>And if I knew qmltext, I guess this is where that would go. </p>
<p class="figCaption">This a caption</p>
@@ -46,15 +46,19 @@
<p><b>Important: </b>This is really important.</p>
</div>
<p>For example, if you have code like</p>
-<pre class="cpp plain">This is old code.</pre>
+<pre class="cpp plain" translate="no">This is old code.</pre>
<p>you can rewrite it as</p>
-<pre class="cpp">This is <span class="keyword">new</span> and shiny<span class="operator">!</span></pre>
+<pre class="cpp" translate="no">This is <span class="keyword">new</span> and shiny<span class="operator">!</span></pre>
<div class="admonition note">
<p><b>Note: </b>The code above doesn't compile</p>
</div>
<hr />
+<p>An inline image:</p>
+<p>The is a paragraph containing an <img src="images/01.png" alt="" /> inline image to test if qdoc handles them properly, without considering rest of the line as alt text for the image.</p>
+<p>An inline image with alt text:</p>
+<p>Here is another example of <img src="images/01.png" alt="No. 1" /> inline image with alternative text, which should be added as an attribute to the inline image.</p>
<div class="admonition warning">
-<p><b>Warning: </b>The following commands have yet to be tested: footnote link sincelist header index topicref // or just don’t care, remove it image inlineimage printline printto printuntil // what’s the difference between printto and printuntil??? quotefile quotefromfile quotefunction skipline skipto skipuntil span snippet codeline overload sub sup tableofcontents tt uicontrol endmapref endomit underline unicode</p>
+<p><b>Warning: </b>The following commands have yet to be tested: footnote link sincelist header index topicref // or just don’t care, remove it image printline printto printuntil // what’s the difference between printto and printuntil??? quotefile quotefromfile quotefunction skipline skipto skipuntil span snippet codeline overload sub sup tableofcontents tt uicontrol endmapref endomit underline unicode</p>
</div>
</div>
<!-- @@@qdoctests-qdocfileoutput-exhaustive.html -->
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/qdoctests-qdocfileoutput-linking.html b/tests/auto/qdoc/generatedoutput/expected_output/qdoctests-qdocfileoutput-linking.html
index 3dca3f698..edeadb885 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/qdoctests-qdocfileoutput-linking.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/qdoctests-qdocfileoutput-linking.html
@@ -25,7 +25,7 @@
<!-- $$$qdoctests-qdocfileoutput-linking.html-description -->
<div class="descr" id="details">
<span id="link-test-target"></span><h2 id="link-targets">Link targets</h2>
-<p>Valid parameters for the link command (<code>\l</code>) are page and section titles, targets defined with \target or \keyword commands, and API reference keywords (types, methods, namespaces, and so on).</p>
+<p>Valid parameters for the link command (<code translate="no">\l</code>) are page and section titles, targets defined with \target or \keyword commands, and API reference keywords (types, methods, namespaces, and so on).</p>
</div>
<!-- @@@qdoctests-qdocfileoutput-linking.html -->
<p class="naviNextPrevious footerNavi">
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/qdoctests-qdocfileoutput.html b/tests/auto/qdoc/generatedoutput/expected_output/qdoctests-qdocfileoutput.html
index 325fbdec9..ea06cee43 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/qdoctests-qdocfileoutput.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/qdoctests-qdocfileoutput.html
@@ -24,29 +24,29 @@
<h1 class="title">Testing QDoc output from .qdoc files</h1>
<!-- $$$qdoctests-qdocfileoutput.html-description -->
<div class="descr" id="details">
-<p>QDoc generates documentation for software projects. It does this by extracting <i>QDoc comments</i> from project source files. QDoc comments are signified by a C-style-like comment tag followed by an exclamation point, like this: <code>/*!</code> <code>This text is contained within QDoc comment tags.</code> <code>*/</code>.</p>
+<p>QDoc generates documentation for software projects. It does this by extracting <i>QDoc comments</i> from project source files. QDoc comments are signified by a C-style-like comment tag followed by an exclamation point, like this: <code translate="no">/*!</code> <code translate="no">This text is contained within QDoc comment tags.</code> <code translate="no">*/</code>.</p>
<h2 id="supported-file-types">Supported file types</h2>
-<p>QDoc parses <code>.cpp</code> and <code>.qdoc</code> files. It does extract comments from header (<code>.h</code>) files.</p>
+<p>QDoc parses <code translate="no">.cpp</code> and <code translate="no">.qdoc</code> files. It does extract comments from header (<code translate="no">.h</code>) files.</p>
<h2 id="further-information">Further information</h2>
-<p>This test document is written with the purpose of testing the output QDoc generates when parsing <code>.qdoc</code> files. It is fairly simple and makes use of a limited subset of QDoc's command. Those commands are:</p>
+<p>This test document is written with the purpose of testing the output QDoc generates when parsing <code translate="no">.qdoc</code> files. It is fairly simple and makes use of a limited subset of QDoc's command. Those commands are:</p>
<ul>
-<li><code>\page</code></li>
-<li><code>\title</code></li>
-<li><code>\brief</code></li>
-<li><code>\e</code> (for emphasizing &quot;QDoc comments&quot;)</li>
-<li><code>\c</code> (for multiple monospace-formatted entries)</li>
-<li><code>\section1</code></li>
-<li><code>\list</code></li>
-<li><code>\li</code></li>
-<li><code>\endlist</code></li>
+<li><code translate="no">\page</code></li>
+<li><code translate="no">\title</code></li>
+<li><code translate="no">\brief</code></li>
+<li><code translate="no">\e</code> (for emphasizing &quot;QDoc comments&quot;)</li>
+<li><code translate="no">\c</code> (for multiple monospace-formatted entries)</li>
+<li><code translate="no">\section1</code></li>
+<li><code translate="no">\list</code></li>
+<li><code translate="no">\li</code></li>
+<li><code translate="no">\endlist</code></li>
</ul>
<h2 id="linking">Linking</h2>
<p>There are multiple ways to create hyperlinks to other topics:</p>
<ul>
-<li><a href="qdoctests-qdocfileoutput-linking.html">Linking to a page title</a></li>
-<li><a href="qdoctests-qdocfileoutput-linking.html#link-targets">Linking to a section title</a></li>
-<li><a href="qdoctests-qdocfileoutput-linking.html#link-test-target">Linking using a \target string</a></li>
-<li><a href="qdoctests-qdocfileoutput-linking.html">Linking using a \keyword string</a></li>
+<li><a href="qdoctests-qdocfileoutput-linking.html" translate="no">Linking to a page title</a></li>
+<li><a href="qdoctests-qdocfileoutput-linking.html#link-targets" translate="no">Linking to a section title</a></li>
+<li><a href="qdoctests-qdocfileoutput-linking.html#link-test-target" translate="no">Linking using a \target string</a></li>
+<li><a href="qdoctests-qdocfileoutput-linking.html" translate="no">Linking using a \keyword string</a></li>
</ul>
</div>
<!-- @@@qdoctests-qdocfileoutput.html -->
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/qml-int.html b/tests/auto/qdoc/generatedoutput/expected_output/qml-int.html
index d67e08bcd..daef97b10 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/qml-int.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/qml-int.html
@@ -15,13 +15,13 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">int QML Basic Type</h1>
+<h1 class="title" translate="no">int QML Basic Type</h1>
<!-- $$$int-brief -->
<p>An integer basic type. <a href="#details">More...</a></p>
<!-- @@@int -->
<h2 id="methods">Methods</h2>
<ul>
-<li class="fn">int <b><a href="qml-int.html#abs-method">abs</a></b>()</li>
+<li class="fn" translate="no">int <b><a href="qml-int.html#abs-method" translate="no">abs</a></b>()</li>
</ul>
<!-- $$$int-description -->
<div class="descr" id="details">
@@ -29,11 +29,11 @@
<!-- @@@int -->
<h2>Method Documentation</h2>
<!-- $$$abs[overload1]$$$abs -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="abs-method">
<td class="tblQmlFuncNode"><p>
-<span class="type"><a href="qml-int.html">int</a></span> <span class="name">abs</span>()</p></td></tr>
+<span class="type"><a href="qml-int.html" translate="no">int</a></span> <span class="name">abs</span>()</p></td></tr>
</table></div></div>
<div class="qmldoc"><p>Returns the absolute value of this integer.</p>
</div></div><!-- @@@abs -->
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/qml-linkmodule-grandchild-members.html b/tests/auto/qdoc/generatedoutput/expected_output/qml-linkmodule-grandchild-members.html
index c7bf1838a..d0cc8309d 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/qml-linkmodule-grandchild-members.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/qml-linkmodule-grandchild-members.html
@@ -7,18 +7,18 @@
</head>
<body>
<div class="sidebar"><div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">List of All Members for GrandChild</h1>
+<h1 class="title" translate="no">List of All Members for GrandChild</h1>
<p>This is the complete list of members for <a href="qml-linkmodule-grandchild.html">GrandChild</a>, including inherited members.</p>
<p>The following members are inherited from <a href="https://doc.qt.io/QmlPropertyGroups/qml-qdoc-test-anotherchild.html">AnotherChild</a>.</p>
<ul>
-<li class="fn"><b><a href="https://doc.qt.io/QmlPropertyGroups/qml-qdoc-test-anotherchild.html#name-prop">name</a></b> : string</li>
+<li class="fn" translate="no"><b><a href="https://doc.qt.io/QmlPropertyGroups/qml-qdoc-test-anotherchild.html#name-prop" translate="no">name</a></b> : string</li>
</ul>
<p>The following members are inherited from <a href="https://doc.qt.io/QmlPropertyGroups/qml-qdoc-test-parent.html">Parent</a>.</p>
<ul>
-<li class="fn"><b><a href="https://doc.qt.io/QmlPropertyGroups/qml-qdoc-test-parent.html#group-prop">group</a></b> : </li>
-<li class="fn"><b><a href="https://doc.qt.io/QmlPropertyGroups/qml-qdoc-test-parent.html#group.a-prop">group.a</a></b> : int</li>
-<li class="fn"><b><a href="https://doc.qt.io/QmlPropertyGroups/qml-qdoc-test-parent.html#group.b-prop">group.b</a></b> : int</li>
-<li class="fn"><b><a href="https://doc.qt.io/QmlPropertyGroups/qml-qdoc-test-parent.html#group.c-prop">group.c</a></b> : int</li>
+<li class="fn" translate="no"><b><a href="https://doc.qt.io/QmlPropertyGroups/qml-qdoc-test-parent.html#group-prop" translate="no">group</a></b> : </li>
+<li class="fn" translate="no"><b><a href="https://doc.qt.io/QmlPropertyGroups/qml-qdoc-test-parent.html#group.a-prop" translate="no">group.a</a></b> : int</li>
+<li class="fn" translate="no"><b><a href="https://doc.qt.io/QmlPropertyGroups/qml-qdoc-test-parent.html#group.b-prop" translate="no">group.b</a></b> : int</li>
+<li class="fn" translate="no"><b><a href="https://doc.qt.io/QmlPropertyGroups/qml-qdoc-test-parent.html#group.c-prop" translate="no">group.c</a></b> : int</li>
</ul>
</body>
</html>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-abstractparent.html b/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-abstractparent.html
index 32165b273..b1733f399 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-abstractparent.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-abstractparent.html
@@ -16,42 +16,42 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">AbstractParent QML Type</h1>
+<h1 class="title" translate="no">AbstractParent QML Type</h1>
<!-- $$$AbstractParent-brief -->
<p>Abstract base QML type. <a href="#details">More...</a></p>
<!-- @@@AbstractParent -->
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> Import Statement:</td><td class="memItemRight bottomAlign"> import QDoc.Test 1.1</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Inherited By:</td><td class="memItemRight bottomAlign"> <p><a href="qml-qdoc-test-child.html">Child</a></p>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> Import Statement:</td><td class="memItemRight bottomAlign"> import QDoc.Test 1.1</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Inherited By:</td><td class="memItemRight bottomAlign"> <p><a href="qml-qdoc-test-child.html" translate="no">Child</a></p>
</td></tr></table></div><ul>
<li><a href="qml-qdoc-test-abstractparent-members.html">List of all members, including inherited members</a></li>
</ul>
<h2 id="properties">Properties</h2>
<ul>
-<li class="fn"><b><a href="qml-qdoc-test-abstractparent.html#children-prop">children</a></b> : list&lt;Child&gt;</li>
-<li class="fn"><b><a href="qml-qdoc-test-abstractparent.html#name-prop">name</a></b> : string</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-abstractparent.html#children-prop" translate="no">children</a></b> : list&lt;Child&gt;</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-abstractparent.html#name-prop" translate="no">name</a></b> : string</li>
</ul>
<h2 id="methods">Methods</h2>
<ul>
-<li class="fn">void <b><a href="qml-qdoc-test-abstractparent.html#name-method-1">name</a></b>()</li>
-<li class="fn">void <b><a href="qml-qdoc-test-abstractparent.html#name-method">name</a></b>(Child <i>child</i>, <i>name</i>)</li>
-<li class="fn">void <b><a href="qml-qdoc-test-abstractparent.html#rear-method">rear</a></b>(Child <i>child</i>, var <i>method</i>)</li>
+<li class="fn" translate="no">void <b><a href="qml-qdoc-test-abstractparent.html#name-method-1" translate="no">name</a></b>()</li>
+<li class="fn" translate="no">void <b><a href="qml-qdoc-test-abstractparent.html#name-method" translate="no">name</a></b>(Child <i>child</i>, <i>name</i>)</li>
+<li class="fn" translate="no">void <b><a href="qml-qdoc-test-abstractparent.html#rear-method" translate="no">rear</a></b>(Child <i>child</i>, var <i>method</i>)</li>
</ul>
<!-- $$$AbstractParent-description -->
<h2 id="details">Detailed Description</h2>
<!-- @@@AbstractParent -->
<h2>Property Documentation</h2>
<!-- $$$children -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="children-prop">
<td class="tblQmlPropNode"><p>
-<span class="qmlextra">[default] </span><span class="name">children</span> : <span class="type">list</span>&lt;<span class="type"><a href="qml-qdoc-test-child.html">Child</a></span>&gt;</p></td></tr>
+<span class="qmlextra">[default] </span><span class="name">children</span> : <span class="type">list</span>&lt;<span class="type"><a href="qml-qdoc-test-child.html" translate="no">Child</a></span>&gt;</p></td></tr>
</table></div></div>
<div class="qmldoc"><p>Children of the type.</p>
</div></div><!-- @@@children -->
<br/>
<!-- $$$name -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="name-prop">
<td class="tblQmlPropNode"><p>
@@ -62,7 +62,7 @@
<br/>
<h2>Method Documentation</h2>
<!-- $$$name$$$name -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="name-method-1">
<td class="tblQmlFuncNode"><p>
@@ -72,23 +72,23 @@
</div></div><!-- @@@name -->
<br/>
<!-- $$$name[overload1]$$$nameChild -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="name-method">
<td class="tblQmlFuncNode"><p>
-<span class="type">void</span> <span class="name">name</span>(<span class="type"><a href="qml-qdoc-test-child.html">Child</a></span> <i>child</i>, <i>name</i>)</p></td></tr>
+<span class="type">void</span> <span class="name">name</span>(<span class="type"><a href="qml-qdoc-test-child.html" translate="no">Child</a></span> <i>child</i>, <i>name</i>)</p></td></tr>
</table></div></div>
-<div class="qmldoc"><p>Name a <i>child</i> using <i>name</i>.</p>
+<div class="qmldoc"><p>Name a <i translate="no">child</i> using <i translate="no">name</i>.</p>
</div></div><!-- @@@name -->
<br/>
<!-- $$$rear[overload1]$$$rearChildvar -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="rear-method">
<td class="tblQmlFuncNode"><p>
-<span class="type">void</span> <span class="name">rear</span>(<span class="type"><a href="qml-qdoc-test-child.html">Child</a></span> <i>child</i>, <span class="type">var</span> <i>method</i> = Strict)</p></td></tr>
+<span class="type">void</span> <span class="name">rear</span>(<span class="type"><a href="qml-qdoc-test-child.html" translate="no">Child</a></span> <i>child</i>, <span class="type">var</span> <i>method</i> = Strict)</p></td></tr>
</table></div></div>
-<div class="qmldoc"><p>Do some abstract parenting on <i>child</i> using a specific <i>method</i>.</p>
+<div class="qmldoc"><p>Do some abstract parenting on <i translate="no">child</i> using a specific <i translate="no">method</i>.</p>
</div></div><!-- @@@rear -->
<br/>
</body>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-child.html b/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-child.html
index 5cf37e732..1d0908cc7 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-child.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-child.html
@@ -16,42 +16,42 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">Child QML Type</h1>
+<h1 class="title" translate="no">Child QML Type</h1>
<!-- $$$Child-brief -->
<p>A Child inheriting its parent. <a href="#details">More...</a></p>
<!-- @@@Child -->
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> Import Statement:</td><td class="memItemRight bottomAlign"> import QDoc.Test 1.1</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Inherits:</td><td class="memItemRight bottomAlign"> <p><a href="qml-qdoc-test-abstractparent.html">AbstractParent</a></p>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> Import Statement:</td><td class="memItemRight bottomAlign"> import QDoc.Test 1.1</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Inherits:</td><td class="memItemRight bottomAlign"> <p><a href="qml-qdoc-test-abstractparent.html" translate="no">AbstractParent</a></p>
</td></tr></table></div><ul>
<li><a href="qml-qdoc-test-child-members.html">List of all members, including inherited members</a></li>
</ul>
<h2 id="properties">Properties</h2>
<ul>
-<li class="fn"><b><a href="qml-qdoc-test-child.html#children-prop">children</a></b> : list&lt;Child&gt;</li>
-<li class="fn"><b><a href="qml-qdoc-test-child.html#name-prop">name</a></b> : string</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-child.html#children-prop" translate="no">children</a></b> : list&lt;Child&gt;</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-child.html#name-prop" translate="no">name</a></b> : string</li>
</ul>
<h2 id="methods">Methods</h2>
<ul>
-<li class="fn">void <b><a href="qml-qdoc-test-child.html#name-method-1">name</a></b>()</li>
-<li class="fn">void <b><a href="qml-qdoc-test-child.html#name-method">name</a></b>(Child <i>child</i>, <i>name</i>)</li>
-<li class="fn">void <b><a href="qml-qdoc-test-child.html#rear-method">rear</a></b>(Child <i>child</i>, var <i>method</i>)</li>
+<li class="fn" translate="no">void <b><a href="qml-qdoc-test-child.html#name-method-1" translate="no">name</a></b>()</li>
+<li class="fn" translate="no">void <b><a href="qml-qdoc-test-child.html#name-method" translate="no">name</a></b>(Child <i>child</i>, <i>name</i>)</li>
+<li class="fn" translate="no">void <b><a href="qml-qdoc-test-child.html#rear-method" translate="no">rear</a></b>(Child <i>child</i>, var <i>method</i>)</li>
</ul>
<!-- $$$Child-description -->
<h2 id="details">Detailed Description</h2>
<!-- @@@Child -->
<h2>Property Documentation</h2>
<!-- $$$children -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="children-prop">
<td class="tblQmlPropNode"><p>
-<span class="qmlextra">[default] </span><span class="name">children</span> : <span class="type">list</span>&lt;<span class="type"><a href="qml-qdoc-test-child.html">Child</a></span>&gt;</p></td></tr>
+<span class="qmlextra">[default] </span><span class="name">children</span> : <span class="type">list</span>&lt;<span class="type"><a href="qml-qdoc-test-child.html" translate="no">Child</a></span>&gt;</p></td></tr>
</table></div></div>
<div class="qmldoc"><p>Children of the type.</p>
</div></div><!-- @@@children -->
<br/>
<!-- $$$name -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="name-prop">
<td class="tblQmlPropNode"><p>
@@ -62,7 +62,7 @@
<br/>
<h2>Method Documentation</h2>
<!-- $$$name$$$name -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="name-method-1">
<td class="tblQmlFuncNode"><p>
@@ -72,23 +72,23 @@
</div></div><!-- @@@name -->
<br/>
<!-- $$$name[overload1]$$$nameChild -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="name-method">
<td class="tblQmlFuncNode"><p>
-<span class="type">void</span> <span class="name">name</span>(<span class="type"><a href="qml-qdoc-test-child.html">Child</a></span> <i>child</i>, <i>name</i>)</p></td></tr>
+<span class="type">void</span> <span class="name">name</span>(<span class="type"><a href="qml-qdoc-test-child.html" translate="no">Child</a></span> <i>child</i>, <i>name</i>)</p></td></tr>
</table></div></div>
-<div class="qmldoc"><p>Name a <i>child</i> of this child using <i>name</i>.</p>
+<div class="qmldoc"><p>Name a <i translate="no">child</i> of this child using <i translate="no">name</i>.</p>
</div></div><!-- @@@name -->
<br/>
<!-- $$$rear[overload1]$$$rearChildvar -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="rear-method">
<td class="tblQmlFuncNode"><p>
-<span class="type">void</span> <span class="name">rear</span>(<span class="type"><a href="qml-qdoc-test-child.html">Child</a></span> <i>child</i>, <span class="type">var</span> <i>method</i> = Strict)</p></td></tr>
+<span class="type">void</span> <span class="name">rear</span>(<span class="type"><a href="qml-qdoc-test-child.html" translate="no">Child</a></span> <i>child</i>, <span class="type">var</span> <i>method</i> = Strict)</p></td></tr>
</table></div></div>
-<div class="qmldoc"><p>Do some abstract parenting on <i>child</i> using a specific <i>method</i>.</p>
+<div class="qmldoc"><p>Do some abstract parenting on <i translate="no">child</i> using a specific <i translate="no">method</i>.</p>
</div></div><!-- @@@rear -->
<br/>
</body>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-doctest.html b/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-doctest.html
index e16ba8519..173275c05 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-doctest.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-doctest.html
@@ -18,29 +18,29 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">DocTest QML Type</h1>
+<h1 class="title" translate="no">DocTest QML Type</h1>
<!-- $$$DocTest-brief -->
<p>Represents a doc test case. <a href="#details">More...</a></p>
<!-- @@@DocTest -->
-<div class="table"><table class="alignedsummary">
+<div class="table"><table class="alignedsummary" translate="no">
<tr><td class="memItemLeft rightAlign topAlign"> Import Statement:</td><td class="memItemRight bottomAlign"> import QDoc.Test 1.1</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Since:</td><td class="memItemRight bottomAlign"> QDoc.Test 0.9</td></tr></table></div><ul>
<li><a href="qml-qdoc-test-doctest-members.html">List of all members, including inherited members</a></li>
</ul>
<h2 id="properties">Properties</h2>
<ul>
-<li class="fn"><b><a href="qml-qdoc-test-doctest.html#active-prop">active</a></b> : bool</li>
-<li class="fn"><b><a href="qml-qdoc-test-doctest.html#name-prop">name</a></b> : string</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-doctest.html#active-prop" translate="no">active</a></b> : bool</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-doctest.html#name-prop" translate="no">name</a></b> : string</li>
</ul>
<h2 id="signals">Signals</h2>
<ul>
-<li class="fn"><b><a href="qml-qdoc-test-doctest.html#completed-signal">completed</a></b>()</li>
-<li class="fn"><b><a href="qml-qdoc-test-doctest.html#foo-signal">foo</a></b>(var <i>bar</i>)</li>
-<li class="fn"><b><a href="qml-qdoc-test-doctest.html#itsHappening-signal">itsHappening</a></b>(bool <i>really</i>)</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-doctest.html#completed-signal" translate="no">completed</a></b>()</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-doctest.html#foo-signal" translate="no">foo</a></b>(var <i>bar</i>)</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-doctest.html#itsHappening-signal" translate="no">itsHappening</a></b>(bool <i>really</i>)</li>
</ul>
<h2 id="methods">Methods</h2>
<ul>
-<li class="fn"><b><a href="qml-qdoc-test-doctest.html#fail-method">fail</a></b>(<i>message</i>)</li>
-<li class="fn"><b><a href="qml-qdoc-test-doctest.html#fail_hard-method">fail_hard</a></b>(<i>msg</i>, <i>option</i>)</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-doctest.html#fail-method" translate="no">fail</a></b>(<i>message</i>)</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-doctest.html#fail_hard-method" translate="no">fail_hard</a></b>(<i>msg</i>, <i>option</i>)</li>
</ul>
<!-- $$$DocTest-description -->
<h2 id="details">Detailed Description</h2>
@@ -49,25 +49,25 @@
<!-- @@@DocTest -->
<h2>Property Documentation</h2>
<!-- $$$active -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="active-prop">
<td class="tblQmlPropNode"><p>
<span class="qmlextra">[default: true] </span><span class="name">active</span> : <span class="type">bool</span></p></td></tr>
</table></div></div>
<div class="qmldoc"><p>Whether the test is active.</p>
-<p><b>See also </b><a href="qml-qdoc-test-doctest.html#name-prop">name</a>.</p>
+<p><b>See also </b><a href="qml-qdoc-test-doctest.html#name-prop" translate="no">name</a>.</p>
</div></div><!-- @@@active -->
<br/>
<!-- $$$name -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="name-prop">
<td class="tblQmlPropNode"><p>
<span class="qmlextra">[required] </span><span class="name">name</span> : <span class="type">string</span></p></td></tr>
</table></div></div>
<div class="qmldoc"><p>Name of the test.</p>
-<pre class="qml"><span class="type"><a href="qml-qdoc-test-doctest.html">DocTest</a></span> {
+<pre class="qml" translate="no"><span class="type"><a href="qml-qdoc-test-doctest.html" translate="no">DocTest</a></span> {
<span class="name">name</span>: <span class="string">&quot;test&quot;</span>
<span class="comment">// ...</span>
}</pre>
@@ -75,51 +75,51 @@
<br/>
<h2>Signal Documentation</h2>
<!-- $$$completed[overload1]$$$completed -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="completed-signal">
<td class="tblQmlFuncNode"><p>
<span class="name">completed</span>()</p></td></tr>
</table></div></div>
-<div class="qmldoc"><p><b>Note: </b>The corresponding handler is <code>onCompleted</code>.</p>
+<div class="qmldoc"><p><b>Note: </b>The corresponding handler is <code translate="no">onCompleted</code>.</p>
</div></div><!-- @@@completed -->
<br/>
<!-- $$$foo[overload1]$$$foovar -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="foo-signal">
<td class="tblQmlFuncNode"><p>
<span class="name">foo</span>(<span class="type">var</span> <i>bar</i>)</p></td></tr>
</table></div></div>
-<div class="qmldoc"><p>Signal with parameter <i>bar</i>.</p>
-<p><b>Note: </b>The corresponding handler is <code>onFoo</code>.</p>
+<div class="qmldoc"><p>Signal with parameter <i translate="no">bar</i>.</p>
+<p><b>Note: </b>The corresponding handler is <code translate="no">onFoo</code>.</p>
</div></div><!-- @@@foo -->
<br/>
<!-- $$$itsHappening[overload1]$$$itsHappeningbool -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="itsHappening-signal">
<td class="tblQmlFuncNode"><p>
<span class="name">itsHappening</span>(<span class="type">bool</span> <i>really</i>)</p></td></tr>
</table></div></div>
-<div class="qmldoc"><p>Signals that something is <i>really</i> happening.</p>
-<p><b>Note: </b>The corresponding handler is <code>onItsHappening</code>.</p>
+<div class="qmldoc"><p>Signals that something is <i translate="no">really</i> happening.</p>
+<p><b>Note: </b>The corresponding handler is <code translate="no">onItsHappening</code>.</p>
</div></div><!-- @@@itsHappening -->
<br/>
<h2>Method Documentation</h2>
<!-- $$$fail[overload1]$$$fail -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="fail-method">
<td class="tblQmlFuncNode"><p>
-<code>[since QDoc.Test 1.0] </code><span class="name">fail</span>(<i>message</i> = &quot;oops&quot;)</p></td></tr>
+<code translate="no">[since QDoc.Test 1.0] </code><span class="name">fail</span>(<i>message</i> = &quot;oops&quot;)</p></td></tr>
</table></div></div>
-<div class="qmldoc"><p>Fails the current test case, with the optional <i>message</i>.</p>
+<div class="qmldoc"><p>Fails the current test case, with the optional <i translate="no">message</i>.</p>
<p>This method was introduced in QDoc.Test 1.0.</p>
</div></div><!-- @@@fail -->
<br/>
<!-- $$$fail_hard[overload1]$$$fail_hard -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="fail_hard-method">
<td class="tblQmlFuncNode"><p>
@@ -127,8 +127,8 @@
</table></div></div>
<div class="qmldoc"><p>Fails the current test case, hard.</p>
<ul>
-<li>Prints out <i>msg</i>.</li>
-<li>Accepts a random <i>option</i>.</li>
+<li>Prints out <i translate="no">msg</i>.</li>
+<li>Accepts a random <i translate="no">option</i>.</li>
</ul>
</div></div><!-- @@@fail_hard -->
<br/>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-type-members.html b/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-type-members.html
index bfbbb204d..a68157d08 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-type-members.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-type-members.html
@@ -7,27 +7,27 @@
</head>
<body>
<div class="sidebar"><div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">List of All Members for Type</h1>
+<h1 class="title" translate="no">List of All Members for Type</h1>
<p>This is the complete list of members for <a href="qml-qdoc-test-type.html">Type</a>, including inherited members.</p>
<ul>
-<li class="fn"><b><a href="qml-qdoc-test-type.html#fifth-prop">fifth</a></b> : int</li>
-<li class="fn"><b><a href="qml-qdoc-test-type.html#fourth-prop">fourth</a></b> : int</li>
-<li class="fn"><b><a href="qml-qdoc-test-type.html#group-prop">group</a></b><ul>
-<li class="fn"><b><a href="qml-qdoc-test-type.html#group.first-prop">group.first</a></b> : int</li>
-<li class="fn"><b><a href="qml-qdoc-test-type.html#group.second-prop">group.second</a></b> : int</li>
-<li class="fn"><b><a href="qml-qdoc-test-type.html#group.third-prop">group.third</a></b> : int</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-type.html#fifth-prop" translate="no">fifth</a></b> : int</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-type.html#fourth-prop" translate="no">fourth</a></b> : int</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-type.html#group-prop" translate="no">group</a></b><ul>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-type.html#group.first-prop" translate="no">group.first</a></b> : int</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-type.html#group.second-prop" translate="no">group.second</a></b> : int</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-type.html#group.third-prop" translate="no">group.third</a></b> : int</li>
</ul>
</li>
-<li class="fn"><b><a href="qml-qdoc-test-type.html#id-prop">id</a></b> : int</li>
-<li class="fn"><b><a href="qml-qdoc-test-type.html#name-prop">name</a></b> : string</li>
-<li class="fn"><b><a href="qml-qdoc-test-type.html#type-attached-prop">type</a></b> : enumeration [attached]</li>
-<li class="fn"><b><a href="qml-qdoc-test-type.html#completed-signal">completed</a></b>(int <i>status</i>)</li>
-<li class="fn"><b><a href="qml-qdoc-test-type.html#configured-signal">configured</a></b>() [attached]</li>
-<li class="fn">Type <b><a href="qml-qdoc-test-type.html#copy-method">copy</a></b>(<i>a</i>)</li>
-<li class="fn"><b><a href="qml-qdoc-test-type-obsolete.html#deprecatedMethod-method">deprecatedMethod</a></b>()<code> (deprecated since 6.2)</code></li>
-<li class="fn"><b><a href="qml-qdoc-test-type.html#disable-method">disable</a></b>()</li>
-<li class="fn"><b><a href="qml-qdoc-test-type.html#enable-method">enable</a></b>()</li>
-<li class="fn"><b><a href="qml-qdoc-test-type.html#group.created-signal">group.created</a></b>()</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-type.html#id-prop" translate="no">id</a></b> : int</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-type.html#name-prop" translate="no">name</a></b> : string</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-type.html#type-attached-prop" translate="no">type</a></b> : enumeration [attached]</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-type.html#completed-signal" translate="no">completed</a></b>(int <i>status</i>)</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-type.html#configured-signal" translate="no">configured</a></b>() [attached]</li>
+<li class="fn" translate="no">Type <b><a href="qml-qdoc-test-type.html#copy-method" translate="no">copy</a></b>(<i>a</i>)</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-type-obsolete.html#deprecatedMethod-method" translate="no">deprecatedMethod</a></b>()<code> (deprecated since 6.2)</code></li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-type.html#disable-method" translate="no">disable</a></b>()</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-type.html#enable-method" translate="no">enable</a></b>()</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-type.html#group.created-signal" translate="no">group.created</a></b>()</li>
</ul>
</body>
</html>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-type-obsolete.html b/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-type-obsolete.html
index 2c2e00b29..4ecc7678b 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-type-obsolete.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-type-obsolete.html
@@ -7,15 +7,15 @@
</head>
<body>
<div class="sidebar"><div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">Obsolete Members for Type</h1>
+<h1 class="title" translate="no">Obsolete Members for Type</h1>
<p><b>The following members of QML type <a href="qml-qdoc-test-type.html">Type</a> are deprecated.</b> They are provided to keep old source code working. We strongly advise against using them in new code.</p>
<h2 id="methods">Methods</h2>
<ul>
-<li class="fn"><b><a href="qml-qdoc-test-type-obsolete.html#deprecatedMethod-method">deprecatedMethod</a></b>()<code> (deprecated since 6.2)</code></li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-type-obsolete.html#deprecatedMethod-method" translate="no">deprecatedMethod</a></b>()<code> (deprecated since 6.2)</code></li>
</ul>
<h2>Method Documentation</h2>
<!-- $$$deprecatedMethod[overload1]$$$deprecatedMethod -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="deprecatedMethod-method">
<td class="tblQmlFuncNode"><p>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-type.html b/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-type.html
index ecb295135..bcad96a0a 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-type.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-type.html
@@ -19,46 +19,46 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">Type QML Type</h1>
+<h1 class="title" translate="no">Type QML Type</h1>
<!-- $$$Type-brief -->
<p>A QML type documented in a .cpp file. <a href="#details">More...</a></p>
<!-- @@@Type -->
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> Import Statement:</td><td class="memItemRight bottomAlign"> import QDoc.Test 1.1</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Instantiates:</td><td class="memItemRight bottomAlign"> <a href="testqdoc-test.html">Test</a></td></tr></table></div><ul>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> Import Statement:</td><td class="memItemRight bottomAlign"> import QDoc.Test 1.1</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Instantiates:</td><td class="memItemRight bottomAlign"> <a href="testqdoc-test.html" translate="no">Test</a></td></tr></table></div><ul>
<li><a href="qml-qdoc-test-type-members.html">List of all members, including inherited members</a></li>
<li><a href="qml-qdoc-test-type-obsolete.html">Deprecated members</a></li>
</ul>
<h2 id="properties">Properties</h2>
<ul>
-<li class="fn"><b><a href="qml-qdoc-test-type.html#fifth-prop">fifth</a></b> : int</li>
-<li class="fn"><b><a href="qml-qdoc-test-type.html#fourth-prop">fourth</a></b> : int</li>
-<li class="fn"><b><a href="qml-qdoc-test-type.html#group-prop">group</a></b><ul>
-<li class="fn"><b><a href="qml-qdoc-test-type.html#group.first-prop">group.first</a></b> : int</li>
-<li class="fn"><b><a href="qml-qdoc-test-type.html#group.second-prop">group.second</a></b> : int</li>
-<li class="fn"><b><a href="qml-qdoc-test-type.html#group.third-prop">group.third</a></b> : int</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-type.html#fifth-prop" translate="no">fifth</a></b> : int</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-type.html#fourth-prop" translate="no">fourth</a></b> : int</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-type.html#group-prop" translate="no">group</a></b><ul>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-type.html#group.first-prop" translate="no">group.first</a></b> : int</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-type.html#group.second-prop" translate="no">group.second</a></b> : int</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-type.html#group.third-prop" translate="no">group.third</a></b> : int</li>
</ul>
</li>
-<li class="fn"><b><a href="qml-qdoc-test-type.html#id-prop">id</a></b> : int</li>
-<li class="fn"><b><a href="qml-qdoc-test-type.html#name-prop">name</a></b> : string</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-type.html#id-prop" translate="no">id</a></b> : int</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-type.html#name-prop" translate="no">name</a></b> : string</li>
</ul>
<h2 id="attached-properties">Attached Properties</h2>
<ul>
-<li class="fn"><b><a href="qml-qdoc-test-type.html#type-attached-prop">type</a></b> : enumeration</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-type.html#type-attached-prop" translate="no">type</a></b> : enumeration</li>
</ul>
<h2 id="signals">Signals</h2>
<ul>
-<li class="fn"><b><a href="qml-qdoc-test-type.html#completed-signal">completed</a></b>(int <i>status</i>)</li>
-<li class="fn"><b><a href="qml-qdoc-test-type.html#group.created-signal">group.created</a></b>()</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-type.html#completed-signal" translate="no">completed</a></b>(int <i>status</i>)</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-type.html#group.created-signal" translate="no">group.created</a></b>()</li>
</ul>
<h2 id="attached-signals">Attached Signals</h2>
<ul>
-<li class="fn"><b><a href="qml-qdoc-test-type.html#configured-signal">configured</a></b>()</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-type.html#configured-signal" translate="no">configured</a></b>()</li>
</ul>
<h2 id="methods">Methods</h2>
<ul>
-<li class="fn">Type <b><a href="qml-qdoc-test-type.html#copy-method">copy</a></b>(<i>a</i>)</li>
-<li class="fn"><b><a href="qml-qdoc-test-type.html#disable-method">disable</a></b>()</li>
-<li class="fn"><b><a href="qml-qdoc-test-type.html#enable-method">enable</a></b>()</li>
+<li class="fn" translate="no">Type <b><a href="qml-qdoc-test-type.html#copy-method" translate="no">copy</a></b>(<i>a</i>)</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-type.html#disable-method" translate="no">disable</a></b>()</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-type.html#enable-method" translate="no">enable</a></b>()</li>
</ul>
<!-- $$$Type-description -->
<h2 id="details">Detailed Description</h2>
@@ -66,47 +66,47 @@
<h2>Property Documentation</h2>
<!-- $$$ -->
<div class="qmlitem"><div class="fngroup">
-<div class="qmlproto">
+<div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="fifth-prop">
<td class="tblQmlPropNode"><p>
-<span class="name">fifth</span> : <span class="type"><a href="qml-int.html">int</a></span></p></td></tr>
+<span class="name">fifth</span> : <span class="type"><a href="qml-int.html" translate="no">int</a></span></p></td></tr>
<tr valign="top" class="odd" id="fourth-prop">
<td class="tblQmlPropNode"><p>
-<span class="name">fourth</span> : <span class="type"><a href="qml-int.html">int</a></span></p></td></tr>
+<span class="name">fourth</span> : <span class="type"><a href="qml-int.html" translate="no">int</a></span></p></td></tr>
</table></div></div>
</div><div class="qmldoc"><p>A group of properties sharing a documentation comment.</p>
</div></div><!-- @@@ -->
<br/>
<!-- $$$group -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="even" id="group-prop"><th class="centerAlign"><p><b>group group</b></p></th></tr>
<tr valign="top" class="odd" id="group.first-prop">
<td class="tblQmlPropNode"><p>
-<span class="name">group.first</span> : <span class="type"><a href="qml-int.html">int</a></span></p></td></tr>
+<span class="name">group.first</span> : <span class="type"><a href="qml-int.html" translate="no">int</a></span></p></td></tr>
<tr valign="top" class="odd" id="group.second-prop">
<td class="tblQmlPropNode"><p>
-<span class="name">group.second</span> : <span class="type"><a href="qml-int.html">int</a></span></p></td></tr>
+<span class="name">group.second</span> : <span class="type"><a href="qml-int.html" translate="no">int</a></span></p></td></tr>
<tr valign="top" class="odd" id="group.third-prop">
<td class="tblQmlPropNode"><p>
-<span class="name">group.third</span> : <span class="type"><a href="qml-int.html">int</a></span></p></td></tr>
+<span class="name">group.third</span> : <span class="type"><a href="qml-int.html" translate="no">int</a></span></p></td></tr>
</table></div></div>
<div class="qmldoc"><p>A property group.</p>
</div></div><!-- @@@group -->
<br/>
<!-- $$$id -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="id-prop">
<td class="tblQmlPropNode"><p>
-<span class="qmlextra">[read-only] </span><span class="name">id</span> : <span class="type"><a href="qml-int.html">int</a></span></p></td></tr>
+<span class="qmlextra">[read-only] </span><span class="name">id</span> : <span class="type"><a href="qml-int.html" translate="no">int</a></span></p></td></tr>
</table></div></div>
<div class="qmldoc"><p>A read-only property.</p>
</div></div><!-- @@@id -->
<br/>
<!-- $$$name -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="name-prop">
<td class="tblQmlPropNode"><p>
@@ -117,57 +117,57 @@
<br/>
<h2>Attached Property Documentation</h2>
<!-- $$$type -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="type-attached-prop">
<td class="tblQmlPropNode"><p>
<span class="qmlextra">[default: Type.NoType] </span><span class="name">Type.type</span> : <span class="type">enumeration</span></p></td></tr>
</table></div></div>
<div class="qmldoc"><div class="table"><table class="valuelist"><tr valign="top" class="odd"><th class="tblConst">Constant</th><th class="tbldscr">Description</th></tr>
-<tr><td class="topAlign"><code>Type.NoType</code></td><td class="topAlign">Nothing</td></tr>
-<tr><td class="topAlign"><code>Type.SomeType</code></td><td class="topAlign">Something</td></tr>
+<tr><td class="topAlign"><code translate="no">Type.NoType</code></td><td class="topAlign">Nothing</td></tr>
+<tr><td class="topAlign"><code translate="no">Type.SomeType</code></td><td class="topAlign">Something</td></tr>
</table></div>
</div></div><!-- @@@type -->
<br/>
<h2>Signal Documentation</h2>
<!-- $$$completed[overload1]$$$completedint -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="completed-signal">
<td class="tblQmlFuncNode"><p>
-<span class="name">completed</span>(<span class="type"><a href="qml-int.html">int</a></span> <i>status</i>)</p></td></tr>
+<span class="name">completed</span>(<span class="type"><a href="qml-int.html" translate="no">int</a></span> <i>status</i>)</p></td></tr>
</table></div></div>
-<div class="qmldoc"><p>This signal is emitted when the operation completed with <i>status</i>.</p>
-<p><b>Note: </b>The corresponding handler is <code>onCompleted</code>.</p>
+<div class="qmldoc"><p>This signal is emitted when the operation completed with <i translate="no">status</i>.</p>
+<p><b>Note: </b>The corresponding handler is <code translate="no">onCompleted</code>.</p>
</div></div><!-- @@@completed -->
<br/>
<!-- $$$group.created[overload1]$$$group.created -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="group.created-signal">
<td class="tblQmlFuncNode"><p>
<span class="name">group.created</span>()</p></td></tr>
</table></div></div>
<div class="qmldoc"><p>This signal is prefixed with <i>group</i>.</p>
-<p><b>Note: </b>The corresponding handler is <code>group.onCreated</code>.</p>
+<p><b>Note: </b>The corresponding handler is <code translate="no">group.onCreated</code>.</p>
</div></div><!-- @@@group.created -->
<br/>
<h2>Attached Signal Documentation</h2>
<!-- $$$configured[overload1]$$$configured -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="configured-signal">
<td class="tblQmlFuncNode"><p>
<span class="name">configured</span>()</p></td></tr>
</table></div></div>
<div class="qmldoc"><p>This attached signal is emitted when the type was configured.</p>
-<p><b>Note: </b>The corresponding handler is <code>onConfigured</code>.</p>
+<p><b>Note: </b>The corresponding handler is <code translate="no">onConfigured</code>.</p>
</div></div><!-- @@@configured -->
<br/>
<h2>Method Documentation</h2>
<!-- $$$ -->
<div class="qmlitem"><div class="fngroup">
-<div class="qmlproto">
+<div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="disable-method">
<td class="tblQmlFuncNode"><p>
@@ -180,13 +180,13 @@
</div></div><!-- @@@ -->
<br/>
<!-- $$$copy[overload1]$$$copy -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="copy-method">
<td class="tblQmlFuncNode"><p>
-<span class="type"><a href="qml-qdoc-test-type.html">Type</a></span> <span class="name">copy</span>(<i>a</i>)</p></td></tr>
+<span class="type"><a href="qml-qdoc-test-type.html" translate="no">Type</a></span> <span class="name">copy</span>(<i>a</i>)</p></td></tr>
</table></div></div>
-<div class="qmldoc"><p>Returns another Type based on <i>a</i>.</p>
+<div class="qmldoc"><p>Returns another Type based on <i translate="no">a</i>.</p>
</div></div><!-- @@@copy -->
<br/>
</body>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-yetanotherchild.html b/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-yetanotherchild.html
index 074fb30d9..ea10a7b53 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-yetanotherchild.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/qml-qdoc-test-yetanotherchild.html
@@ -15,28 +15,28 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">YetAnotherChild QML Type</h1>
+<h1 class="title" translate="no">YetAnotherChild QML Type</h1>
<!-- $$$YetAnotherChild-brief -->
<p>A type inheriting from internal abstract parent. <a href="#details">More...</a></p>
<!-- @@@YetAnotherChild -->
-<div class="table"><table class="alignedsummary">
+<div class="table"><table class="alignedsummary" translate="no">
<tr><td class="memItemLeft rightAlign topAlign"> Import Statement:</td><td class="memItemRight bottomAlign"> import QDoc.Test 1.1</td></tr></table></div><ul>
<li><a href="qml-qdoc-test-yetanotherchild-members.html">List of all members, including inherited members</a></li>
</ul>
<h2 id="properties">Properties</h2>
<ul>
-<li class="fn"><b><a href="qml-qdoc-test-yetanotherchild.html#prop-prop">prop</a></b> : int</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-yetanotherchild.html#prop-prop" translate="no">prop</a></b> : int</li>
</ul>
<!-- $$$YetAnotherChild-description -->
<h2 id="details">Detailed Description</h2>
<!-- @@@YetAnotherChild -->
<h2>Property Documentation</h2>
<!-- $$$prop -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="prop-prop">
<td class="tblQmlPropNode"><p>
-<span class="name">prop</span> : <span class="type"><a href="qml-int.html">int</a></span></p></td></tr>
+<span class="name">prop</span> : <span class="type"><a href="qml-int.html" translate="no">int</a></span></p></td></tr>
</table></div></div>
<div class="qmldoc"><p>Propagated to inheriting type docs.</p>
</div></div><!-- @@@prop -->
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/qml-test-nover-typenoversion-members.html b/tests/auto/qdoc/generatedoutput/expected_output/qml-test-nover-typenoversion-members.html
index a9bf9cf1d..a6f10b68e 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/qml-test-nover-typenoversion-members.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/qml-test-nover-typenoversion-members.html
@@ -7,7 +7,7 @@
</head>
<body>
<div class="sidebar"><div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">List of All Members for TypeNoVersion</h1>
+<h1 class="title" translate="no">List of All Members for TypeNoVersion</h1>
<p>This is the complete list of members for <a href="qml-test-nover-typenoversion.html">TypeNoVersion</a>, including inherited members.</p>
</body>
</html>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/qml-test-nover-typenoversion.html b/tests/auto/qdoc/generatedoutput/expected_output/qml-test-nover-typenoversion.html
index 92cf4a514..e1e7bf530 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/qml-test-nover-typenoversion.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/qml-test-nover-typenoversion.html
@@ -14,12 +14,12 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">TypeNoVersion QML Type</h1>
+<h1 class="title" translate="no">TypeNoVersion QML Type</h1>
<!-- $$$TypeNoVersion-brief -->
<p>Another QML type documented in a .cpp file. <a href="#details">More...</a></p>
<!-- @@@TypeNoVersion -->
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> Import Statement:</td><td class="memItemRight bottomAlign"> import Test.NoVer</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Instantiates:</td><td class="memItemRight bottomAlign"> <a href="testqdoc-testderived.html">TestDerived</a></td></tr></table></div><ul>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> Import Statement:</td><td class="memItemRight bottomAlign"> import Test.NoVer</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Instantiates:</td><td class="memItemRight bottomAlign"> <a href="testqdoc-testderived.html" translate="no">TestDerived</a></td></tr></table></div><ul>
<li><a href="qml-test-nover-typenoversion-members.html">List of all members, including inherited members</a></li>
</ul>
<!-- $$$TypeNoVersion-description -->
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/qml-uicomponents-progressbar.html b/tests/auto/qdoc/generatedoutput/expected_output/qml-uicomponents-progressbar.html
index af59ed21d..3e1c68df5 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/qml-uicomponents-progressbar.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/qml-uicomponents-progressbar.html
@@ -15,77 +15,77 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">ProgressBar QML Type</h1>
+<h1 class="title" translate="no">ProgressBar QML Type</h1>
<!-- $$$ProgressBar-brief -->
<p>A component that shows the progress of an event. <a href="#details">More...</a></p>
<!-- @@@ProgressBar -->
-<div class="table"><table class="alignedsummary">
+<div class="table"><table class="alignedsummary" translate="no">
<tr><td class="memItemLeft rightAlign topAlign"> Import Statement:</td><td class="memItemRight bottomAlign"> import UIComponents 1.0</td></tr></table></div><ul>
<li><a href="qml-uicomponents-progressbar-members.html">List of all members, including inherited members</a></li>
</ul>
<h2 id="properties">Properties</h2>
<ul>
-<li class="fn"><b><a href="qml-uicomponents-progressbar.html#color-prop">color</a></b> : color</li>
-<li class="fn"><b><a href="qml-uicomponents-progressbar.html#maximum-prop">maximum</a></b> : int</li>
-<li class="fn"><b><a href="qml-uicomponents-progressbar.html#minimum-prop">minimum</a></b> : int</li>
-<li class="fn"><b><a href="qml-uicomponents-progressbar.html#secondColor-prop">secondColor</a></b> : color</li>
-<li class="fn"><b><a href="qml-uicomponents-progressbar.html#value-prop">value</a></b> : int</li>
+<li class="fn" translate="no"><b><a href="qml-uicomponents-progressbar.html#color-prop" translate="no">color</a></b> : color</li>
+<li class="fn" translate="no"><b><a href="qml-uicomponents-progressbar.html#maximum-prop" translate="no">maximum</a></b> : int</li>
+<li class="fn" translate="no"><b><a href="qml-uicomponents-progressbar.html#minimum-prop" translate="no">minimum</a></b> : int</li>
+<li class="fn" translate="no"><b><a href="qml-uicomponents-progressbar.html#secondColor-prop" translate="no">secondColor</a></b> : color</li>
+<li class="fn" translate="no"><b><a href="qml-uicomponents-progressbar.html#value-prop" translate="no">value</a></b> : int</li>
</ul>
<!-- $$$ProgressBar-description -->
<h2 id="details">Detailed Description</h2>
-<p>A ProgressBar shows the linear progress of an event as its <a href="qml-uicomponents-progressbar.html#value-prop">value</a>. The range is specified using the <a href="qml-uicomponents-progressbar.html#minimum-prop">minimum</a> and the <a href="qml-uicomponents-progressbar.html#maximum-prop">maximum</a> values.</p>
-<p>The ProgressBar component is part of the <a href="uicomponents-qmlmodule.html">UI Components</a> module.</p>
-<p>This documentation is part of the <a href="test-componentset-example.html">UIComponents</a> example.</p>
+<p>A ProgressBar shows the linear progress of an event as its <a href="qml-uicomponents-progressbar.html#value-prop" translate="no">value</a>. The range is specified using the <a href="qml-uicomponents-progressbar.html#minimum-prop" translate="no">minimum</a> and the <a href="qml-uicomponents-progressbar.html#maximum-prop" translate="no">maximum</a> values.</p>
+<p>The ProgressBar component is part of the <a href="uicomponents-qmlmodule.html" translate="no">UI Components</a> module.</p>
+<p>This documentation is part of the <a href="test-componentset-example.html" translate="no">UIComponents</a> example.</p>
<!-- @@@ProgressBar -->
<h2>Property Documentation</h2>
<!-- $$$color -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="color-prop">
<td class="tblQmlPropNode"><p>
<span class="name">color</span> : <span class="type">color</span></p></td></tr>
</table></div></div>
-<div class="qmldoc"><p>The color of the <a href="qml-uicomponents-progressbar.html">ProgressBar</a>'s gradient. Must bind to a color type.</p>
-<p><b>See also </b><a href="qml-uicomponents-progressbar.html#secondColor-prop">secondColor</a>.</p>
+<div class="qmldoc"><p>The color of the <a href="qml-uicomponents-progressbar.html" translate="no">ProgressBar</a>'s gradient. Must bind to a color type.</p>
+<p><b>See also </b><a href="qml-uicomponents-progressbar.html#secondColor-prop" translate="no">secondColor</a>.</p>
</div></div><!-- @@@color -->
<br/>
<!-- $$$maximum -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="maximum-prop">
<td class="tblQmlPropNode"><p>
-<span class="name">maximum</span> : <span class="type"><a href="qml-int.html">int</a></span></p></td></tr>
+<span class="name">maximum</span> : <span class="type"><a href="qml-int.html" translate="no">int</a></span></p></td></tr>
</table></div></div>
-<div class="qmldoc"><p>The maximum value of the <a href="qml-uicomponents-progressbar.html">ProgressBar</a> range. The <a href="qml-uicomponents-progressbar.html#value-prop">value</a> must not be more than this value.</p>
+<div class="qmldoc"><p>The maximum value of the <a href="qml-uicomponents-progressbar.html" translate="no">ProgressBar</a> range. The <a href="qml-uicomponents-progressbar.html#value-prop" translate="no">value</a> must not be more than this value.</p>
</div></div><!-- @@@maximum -->
<br/>
<!-- $$$minimum -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="minimum-prop">
<td class="tblQmlPropNode"><p>
-<span class="name">minimum</span> : <span class="type"><a href="qml-int.html">int</a></span></p></td></tr>
+<span class="name">minimum</span> : <span class="type"><a href="qml-int.html" translate="no">int</a></span></p></td></tr>
</table></div></div>
-<div class="qmldoc"><p>The minimum value of the <a href="qml-uicomponents-progressbar.html">ProgressBar</a> range. The <a href="qml-uicomponents-progressbar.html#value-prop">value</a> must not be less than this value.</p>
+<div class="qmldoc"><p>The minimum value of the <a href="qml-uicomponents-progressbar.html" translate="no">ProgressBar</a> range. The <a href="qml-uicomponents-progressbar.html#value-prop" translate="no">value</a> must not be less than this value.</p>
</div></div><!-- @@@minimum -->
<br/>
<!-- $$$secondColor -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="secondColor-prop">
<td class="tblQmlPropNode"><p>
<span class="name">secondColor</span> : <span class="type">color</span></p></td></tr>
</table></div></div>
-<div class="qmldoc"><p>The second color of the <a href="qml-uicomponents-progressbar.html">ProgressBar</a>'s gradient. Must bind to a color type.</p>
-<p><b>See also </b><a href="qml-uicomponents-progressbar.html#color-prop">color</a>.</p>
+<div class="qmldoc"><p>The second color of the <a href="qml-uicomponents-progressbar.html" translate="no">ProgressBar</a>'s gradient. Must bind to a color type.</p>
+<p><b>See also </b><a href="qml-uicomponents-progressbar.html#color-prop" translate="no">color</a>.</p>
</div></div><!-- @@@secondColor -->
<br/>
<!-- $$$value -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="value-prop">
<td class="tblQmlPropNode"><p>
-<span class="name">value</span> : <span class="type"><a href="qml-int.html">int</a></span></p></td></tr>
+<span class="name">value</span> : <span class="type"><a href="qml-int.html" translate="no">int</a></span></p></td></tr>
</table></div></div>
<div class="qmldoc"><p>The value of the progress.</p>
</div></div><!-- @@@value -->
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/qml-uicomponents-switch.html b/tests/auto/qdoc/generatedoutput/expected_output/qml-uicomponents-switch.html
index b80835b63..652d0e9ba 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/qml-uicomponents-switch.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/qml-uicomponents-switch.html
@@ -16,48 +16,48 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">Switch QML Type</h1>
+<h1 class="title" translate="no">Switch QML Type</h1>
<!-- $$$Switch-brief -->
<p>A component that can be turned on or off. <a href="#details">More...</a></p>
<!-- @@@Switch -->
-<div class="table"><table class="alignedsummary">
+<div class="table"><table class="alignedsummary" translate="no">
<tr><td class="memItemLeft rightAlign topAlign"> Import Statement:</td><td class="memItemRight bottomAlign"> import UIComponents 1.0</td></tr></table></div><ul>
<li><a href="qml-uicomponents-switch-members.html">List of all members, including inherited members</a></li>
</ul>
<h2 id="properties">Properties</h2>
<ul>
-<li class="fn"><b><a href="qml-uicomponents-switch.html#on-prop">on</a></b> : bool</li>
+<li class="fn" translate="no"><b><a href="qml-uicomponents-switch.html#on-prop" translate="no">on</a></b> : bool</li>
</ul>
<h2 id="methods">Methods</h2>
<ul>
-<li class="fn"><b><a href="qml-uicomponents-switch.html#toggle-method">toggle</a></b>()</li>
+<li class="fn" translate="no"><b><a href="qml-uicomponents-switch.html#toggle-method" translate="no">toggle</a></b>()</li>
</ul>
<!-- $$$Switch-description -->
<h2 id="details">Detailed Description</h2>
-<p>A toggle switch has two states: an <code>on</code> and an <code>off</code> state. The <code>off</code> state is when the <a href="qml-uicomponents-switch.html#on-prop">on</a> property is set to <code>false</code>.</p>
-<p>The ToggleSwitch component is part of the <a href="uicomponents-qmlmodule.html">UI Components</a> module.</p>
-<p>This documentation is part of the <a href="test-componentset-example.html">UIComponents</a> example.</p>
+<p>A toggle switch has two states: an <code translate="no">on</code> and an <code translate="no">off</code> state. The <code translate="no">off</code> state is when the <a href="qml-uicomponents-switch.html#on-prop" translate="no">on</a> property is set to <code translate="no">false</code>.</p>
+<p>The ToggleSwitch component is part of the <a href="uicomponents-qmlmodule.html" translate="no">UI Components</a> module.</p>
+<p>This documentation is part of the <a href="test-componentset-example.html" translate="no">UIComponents</a> example.</p>
<!-- @@@Switch -->
<h2>Property Documentation</h2>
<!-- $$$on -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="on-prop">
<td class="tblQmlPropNode"><p>
<span class="name">on</span> : <span class="type">bool</span></p></td></tr>
</table></div></div>
-<div class="qmldoc"><p>Indicates the state of the switch. If <code>false</code>, then the switch is in the <code>off</code> state.</p>
+<div class="qmldoc"><p>Indicates the state of the switch. If <code translate="no">false</code>, then the switch is in the <code translate="no">off</code> state.</p>
</div></div><!-- @@@on -->
<br/>
<h2>Method Documentation</h2>
<!-- $$$toggle[overload1]$$$toggle -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="toggle-method">
<td class="tblQmlFuncNode"><p>
<span class="name">toggle</span>()</p></td></tr>
</table></div></div>
-<div class="qmldoc"><p>A method to toggle the switch. If the switch is <code>on</code>, the toggling it will turn it <code>off</code>. Toggling a switch in the <code>off</code> position will turn it <code>on</code>.</p>
+<div class="qmldoc"><p>A method to toggle the switch. If the switch is <code translate="no">on</code>, the toggling it will turn it <code translate="no">off</code>. Toggling a switch in the <code translate="no">off</code> position will turn it <code translate="no">on</code>.</p>
</div></div><!-- @@@toggle -->
<br/>
</body>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/qml-uicomponents-tabwidget.html b/tests/auto/qdoc/generatedoutput/expected_output/qml-uicomponents-tabwidget.html
index 1b0f37f84..bc4a871cf 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/qml-uicomponents-tabwidget.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/qml-uicomponents-tabwidget.html
@@ -16,27 +16,27 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">TabWidget QML Type</h1>
+<h1 class="title" translate="no">TabWidget QML Type</h1>
<!-- $$$TabWidget-brief -->
<p>A widget that places its children as tabs. <a href="#details">More...</a></p>
<!-- @@@TabWidget -->
-<div class="table"><table class="alignedsummary">
+<div class="table"><table class="alignedsummary" translate="no">
<tr><td class="memItemLeft rightAlign topAlign"> Import Statement:</td><td class="memItemRight bottomAlign"> import UIComponents 1.0</td></tr></table></div><ul>
<li><a href="qml-uicomponents-tabwidget-members.html">List of all members, including inherited members</a></li>
</ul>
<h2 id="properties">Properties</h2>
<ul>
-<li class="fn"><b><a href="qml-uicomponents-tabwidget.html#current-prop">current</a></b> : int</li>
-<li class="fn"><b><a href="qml-uicomponents-tabwidget.html#sampleReadOnlyProperty-prop">sampleReadOnlyProperty</a></b> : int</li>
+<li class="fn" translate="no"><b><a href="qml-uicomponents-tabwidget.html#current-prop" translate="no">current</a></b> : int</li>
+<li class="fn" translate="no"><b><a href="qml-uicomponents-tabwidget.html#sampleReadOnlyProperty-prop" translate="no">sampleReadOnlyProperty</a></b> : int</li>
</ul>
<!-- $$$TabWidget-description -->
<h2 id="details">Detailed Description</h2>
<p>A TabWidget places its children as tabs in a view. Selecting a tab involves selecting the tab at the top.</p>
-<p>The TabWidget component is part of the <a href="uicomponents-qmlmodule.html">UI Components</a> module.</p>
-<p>This documentation is part of the <a href="test-componentset-example.html">UIComponents</a> example.</p>
+<p>The TabWidget component is part of the <a href="uicomponents-qmlmodule.html" translate="no">UI Components</a> module.</p>
+<p>This documentation is part of the <a href="test-componentset-example.html" translate="no">UIComponents</a> example.</p>
<h2 id="adding-tabs">Adding Tabs</h2>
<p>To add a tab, declare the tab as a child of the TabWidget.</p>
-<pre class="cpp">TabWidget {
+<pre class="cpp" translate="no">TabWidget {
id: tabwidget
Rectangle {
@@ -54,25 +54,25 @@
<!-- @@@TabWidget -->
<h2>Property Documentation</h2>
<!-- $$$current -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="current-prop">
<td class="tblQmlPropNode"><p>
-<span class="name">current</span> : <span class="type"><a href="qml-int.html">int</a></span></p></td></tr>
+<span class="name">current</span> : <span class="type"><a href="qml-int.html" translate="no">int</a></span></p></td></tr>
</table></div></div>
-<div class="qmldoc"><p>The currently active tab in the <a href="qml-uicomponents-tabwidget.html">TabWidget</a>.</p>
+<div class="qmldoc"><p>The currently active tab in the <a href="qml-uicomponents-tabwidget.html" translate="no">TabWidget</a>.</p>
</div></div><!-- @@@current -->
<br/>
<!-- $$$sampleReadOnlyProperty -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="sampleReadOnlyProperty-prop">
<td class="tblQmlPropNode"><p>
-<span class="qmlextra">[read-only] </span><span class="name">sampleReadOnlyProperty</span> : <span class="type"><a href="qml-int.html">int</a></span></p></td></tr>
+<span class="qmlextra">[read-only] </span><span class="name">sampleReadOnlyProperty</span> : <span class="type"><a href="qml-int.html" translate="no">int</a></span></p></td></tr>
</table></div></div>
-<div class="qmldoc"><p>A sample <code>read-only</code> property. A contrived property to demonstrate QDoc's ability to detect read-only properties.</p>
+<div class="qmldoc"><p>A sample <code translate="no">read-only</code> property. A contrived property to demonstrate QDoc's ability to detect read-only properties.</p>
<p>The signature is:</p>
-<pre class="cpp">readonly property <span class="type"><a href="qml-int.html">int</a></span> sampleReadOnlyProperty: <span class="number">0</span></pre>
+<pre class="cpp" translate="no">readonly property <span class="type"><a href="qml-int.html" translate="no">int</a></span> sampleReadOnlyProperty: <span class="number">0</span></pre>
<p>Note that the property must be initialized to a value.</p>
</div></div><!-- @@@sampleReadOnlyProperty -->
<br/>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/qmlmodules.html b/tests/auto/qdoc/generatedoutput/expected_output/qmlmodules.html
index c45ae07e9..3f1a3e78c 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/qmlmodules.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/qmlmodules.html
@@ -11,10 +11,10 @@
<!-- $$$qmlmodules.html-description -->
<div class="descr" id="details">
<div class="table"><table class="annotated">
-<tr class="odd topAlign"><td class="tblName"><p><a href="test-empty-qmlmodule.html">No QML Types Here</a></p></td><td class="tblDescr"><p>A QML module with no member types.</p></td></tr>
-<tr class="even topAlign"><td class="tblName"><p><a href="qdoc-test-qmlmodule.html">QDoc.Test QML Module</a></p></td><td class="tblDescr"><p>QML Types for the Test module.</p></td></tr>
-<tr class="odd topAlign"><td class="tblName"><p><a href="uicomponents-qmlmodule.html">UI Components</a></p></td><td class="tblDescr"><p>Basic set of UI components.</p></td></tr>
-<tr class="even topAlign"><td class="tblName"><p><a href="test-nover-qmlmodule.html">Versionless QML Module</a></p></td><td class="tblDescr"><p>QML Types for the Test module without version.</p></td></tr>
+<tr class="odd topAlign"><td class="tblName" translate="no"><p><a href="test-empty-qmlmodule.html">No QML Types Here</a></p></td><td class="tblDescr"><p>A QML module with no member types.</p></td></tr>
+<tr class="even topAlign"><td class="tblName" translate="no"><p><a href="qdoc-test-qmlmodule.html">QDoc.Test QML Module</a></p></td><td class="tblDescr"><p>QML Types for the Test module.</p></td></tr>
+<tr class="odd topAlign"><td class="tblName" translate="no"><p><a href="uicomponents-qmlmodule.html">UI Components</a></p></td><td class="tblDescr"><p>Basic set of UI components.</p></td></tr>
+<tr class="even topAlign"><td class="tblName" translate="no"><p><a href="test-nover-qmlmodule.html">Versionless QML Module</a></p></td><td class="tblDescr"><p>QML Types for the Test module without version.</p></td></tr>
</table></div>
</div>
<!-- @@@qmlmodules.html -->
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/qmlpropertygroups/qml-qdoc-test-anotherchild-members.html b/tests/auto/qdoc/generatedoutput/expected_output/qmlpropertygroups/qml-qdoc-test-anotherchild-members.html
index 108db2ea7..2915df58d 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/qmlpropertygroups/qml-qdoc-test-anotherchild-members.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/qmlpropertygroups/qml-qdoc-test-anotherchild-members.html
@@ -7,17 +7,17 @@
</head>
<body>
<div class="sidebar"><div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">List of All Members for AnotherChild</h1>
+<h1 class="title" translate="no">List of All Members for AnotherChild</h1>
<p>This is the complete list of members for <a href="qml-qdoc-test-anotherchild.html">AnotherChild</a>, including inherited members.</p>
<ul>
-<li class="fn"><b><a href="qml-qdoc-test-anotherchild.html#name-prop">name</a></b> : string</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-anotherchild.html#name-prop" translate="no">name</a></b> : string</li>
</ul>
<p>The following members are inherited from <a href="qml-qdoc-test-parent.html">Parent</a>.</p>
<ul>
-<li class="fn"><b><a href="qml-qdoc-test-parent.html#group-prop">group</a></b><ul>
-<li class="fn"><b><a href="qml-qdoc-test-parent.html#group.a-prop">group.a</a></b> : int</li>
-<li class="fn"><b><a href="qml-qdoc-test-parent.html#group.b-prop">group.b</a></b> : int</li>
-<li class="fn"><b><a href="qml-qdoc-test-parent.html#group.c-prop">group.c</a></b> : int</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-parent.html#group-prop" translate="no">group</a></b><ul>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-parent.html#group.a-prop" translate="no">group.a</a></b> : int</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-parent.html#group.b-prop" translate="no">group.b</a></b> : int</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-parent.html#group.c-prop" translate="no">group.c</a></b> : int</li>
</ul>
</li>
</ul>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/qmlpropertygroups/qml-qdoc-test-parent.html b/tests/auto/qdoc/generatedoutput/expected_output/qmlpropertygroups/qml-qdoc-test-parent.html
index 479ac12b0..3339ad784 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/qmlpropertygroups/qml-qdoc-test-parent.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/qmlpropertygroups/qml-qdoc-test-parent.html
@@ -15,21 +15,21 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">Parent QML Type</h1>
+<h1 class="title" translate="no">Parent QML Type</h1>
<!-- $$$Parent-brief -->
<p>Base QML type. <a href="#details">More...</a></p>
<!-- @@@Parent -->
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> Import Statement:</td><td class="memItemRight bottomAlign"> import QDoc.Test 1.1</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Inherited By:</td><td class="memItemRight bottomAlign"> <p><a href="qml-qdoc-test-anotherchild.html">AnotherChild</a></p>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> Import Statement:</td><td class="memItemRight bottomAlign"> import QDoc.Test 1.1</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Inherited By:</td><td class="memItemRight bottomAlign"> <p><a href="qml-qdoc-test-anotherchild.html" translate="no">AnotherChild</a></p>
</td></tr></table></div><ul>
<li><a href="qml-qdoc-test-parent-members.html">List of all members, including inherited members</a></li>
</ul>
<h2 id="properties">Properties</h2>
<ul>
-<li class="fn"><b><a href="qml-qdoc-test-parent.html#group-prop">group</a></b><ul>
-<li class="fn"><b><a href="qml-qdoc-test-parent.html#group.a-prop">group.a</a></b> : int</li>
-<li class="fn"><b><a href="qml-qdoc-test-parent.html#group.b-prop">group.b</a></b> : int</li>
-<li class="fn"><b><a href="qml-qdoc-test-parent.html#group.c-prop">group.c</a></b> : int</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-parent.html#group-prop" translate="no">group</a></b><ul>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-parent.html#group.a-prop" translate="no">group.a</a></b> : int</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-parent.html#group.b-prop" translate="no">group.b</a></b> : int</li>
+<li class="fn" translate="no"><b><a href="qml-qdoc-test-parent.html#group.c-prop" translate="no">group.c</a></b> : int</li>
</ul>
</li>
</ul>
@@ -38,18 +38,18 @@
<!-- @@@Parent -->
<h2>Property Documentation</h2>
<!-- $$$group -->
-<div class="qmlitem"><div class="qmlproto">
+<div class="qmlitem"><div class="qmlproto" translate="no">
<div class="table"><table class="qmlname">
<tr valign="top" class="even" id="group-prop"><th class="centerAlign"><p><b>group group</b></p></th></tr>
<tr valign="top" class="odd" id="group.a-prop">
<td class="tblQmlPropNode"><p>
-<span class="name">group.a</span> : <span class="type"><a href="qml-int.html">int</a></span></p></td></tr>
+<span class="name">group.a</span> : <span class="type"><a href="qml-int.html" translate="no">int</a></span></p></td></tr>
<tr valign="top" class="odd" id="group.b-prop">
<td class="tblQmlPropNode"><p>
-<span class="qmlextra">[read-only] </span><span class="name">group.b</span> : <span class="type"><a href="qml-int.html">int</a></span></p></td></tr>
+<span class="qmlextra">[read-only] </span><span class="name">group.b</span> : <span class="type"><a href="qml-int.html" translate="no">int</a></span></p></td></tr>
<tr valign="top" class="odd" id="group.c-prop">
<td class="tblQmlPropNode"><p>
-<span class="qmlextra">[since 2.0] </span><span class="name">group.c</span> : <span class="type"><a href="qml-int.html">int</a></span></p></td></tr>
+<span class="qmlextra">[since 2.0] </span><span class="name">group.c</span> : <span class="type"><a href="qml-int.html" translate="no">int</a></span></p></td></tr>
</table></div></div>
<div class="qmldoc"><p>Property group.</p>
</div></div><!-- @@@group -->
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/scopedenum/scoped-enum-linking.html b/tests/auto/qdoc/generatedoutput/expected_output/scopedenum/scoped-enum-linking.html
index a663df7ab..c6229dac2 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/scopedenum/scoped-enum-linking.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/scopedenum/scoped-enum-linking.html
@@ -10,8 +10,8 @@
<h1 class="title">Enum Linking</h1>
<!-- $$$scoped-enum-linking.html-description -->
<div class="descr" id="details">
-<p>Linking to <a href="testqdoc-test.html#ScopedEnum-enum">All</a>.</p>
-<p>TestQDoc::Test::ClassicEnum::Howdy does not link, but <a href="testqdoc-test.html#ClassicEnum-enum">TestQDoc::Test::Howdy</a> might.</p>
+<p>Linking to <a href="testqdoc-test.html#ScopedEnum-enum" translate="no">All</a>.</p>
+<p>TestQDoc::Test::ClassicEnum::Howdy does not link, but <a href="testqdoc-test.html#ClassicEnum-enum" translate="no">TestQDoc::Test::Howdy</a> might.</p>
</div>
<!-- @@@scoped-enum-linking.html -->
</body>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/scopedenum/testqdoc-test.html b/tests/auto/qdoc/generatedoutput/expected_output/scopedenum/testqdoc-test.html
index c5b0477db..957686648 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/scopedenum/testqdoc-test.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/scopedenum/testqdoc-test.html
@@ -20,48 +20,48 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">Test Class</h1>
-<span class="small-subtitle">class <a href="testqdoc.html">TestQDoc</a>::Test</span>
+<h1 class="title" translate="no">Test Class</h1>
+<span class="small-subtitle" translate="no">class <a href="testqdoc.html" translate="no">TestQDoc</a>::Test</span>
<!-- $$$Test-brief -->
<p>A class in a namespace. <a href="#details">More...</a></p>
<!-- @@@Test -->
-<div class="table"><table class="alignedsummary">
+<div class="table"><table class="alignedsummary" translate="no">
<tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign"> <span class="preprocessor">#include &lt;Test&gt;</span>
</td></tr><tr><td class="memItemLeft rightAlign topAlign"> CMake:</td><td class="memItemRight bottomAlign"> find_package(Qt6 COMPONENTS QDocTest REQUIRED) <br/>
-target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="memItemLeft rightAlign topAlign"> qmake:</td><td class="memItemRight bottomAlign"> QT += testcpp</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Inherited By:</td><td class="memItemRight bottomAlign"> <p><a href="testqdoc-testderived.html">TestQDoc::TestDerived</a></p>
+target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="memItemLeft rightAlign topAlign"> qmake:</td><td class="memItemRight bottomAlign"> QT += testcpp</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Inherited By:</td><td class="memItemRight bottomAlign"> <p><a href="testqdoc-testderived.html" translate="no">TestQDoc::TestDerived</a></p>
</td></tr></table></div>
<ul>
<li><a href="testqdoc-test-members.html">List of all members, including inherited members</a></li>
<li><a href="testqdoc-test-obsolete.html">Deprecated members</a></li>
</ul>
<h2 id="public-types">Public Types</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> enum </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#ClassicEnum-enum">ClassicEnum</a></b> { Yee, Haw, Howdy, Partner }</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> enum class </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#ScopedEnum-enum">ScopedEnum</a></b> { This, That, All }</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#SomeType-typedef">SomeType</a></b></td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> enum </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#ClassicEnum-enum" translate="no">ClassicEnum</a></b> { Yee, Haw, Howdy, Partner }</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> enum class </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#ScopedEnum-enum" translate="no">ScopedEnum</a></b> { This, That, All }</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#SomeType-typedef" translate="no">SomeType</a></b></td></tr>
</table></div>
<h2 id="public-functions">Public Functions</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#Test">Test</a></b>()</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> TestQDoc::Test &amp;</td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#operator-eq">operator=</a></b>(TestQDoc::Test &amp;&amp;<i>other</i>)</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> void (*)(bool) </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#funcPtr">funcPtr</a></b>(bool <i>b</i>, const char *<i>s</i>)</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#inlineFunction">inlineFunction</a></b>()</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunction">someFunction</a></b>(int, int <i>v</i> = 0)</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunctionDefaultArg">someFunctionDefaultArg</a></b>(int <i>i</i>, bool <i>b</i> = false)</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#virtualFun">virtualFun</a></b>()</td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#Test" translate="no">Test</a></b>()</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> TestQDoc::Test &amp;</td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#operator-eq" translate="no">operator=</a></b>(TestQDoc::Test &amp;&amp;<i>other</i>)</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> void (*)(bool) </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#funcPtr" translate="no">funcPtr</a></b>(bool <i>b</i>, const char *<i>s</i>)</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#inlineFunction" translate="no">inlineFunction</a></b>()</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunction" translate="no">someFunction</a></b>(int, int <i>v</i> = 0)</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunctionDefaultArg" translate="no">someFunctionDefaultArg</a></b>(int <i>i</i>, bool <i>b</i> = false)</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#virtualFun" translate="no">virtualFun</a></b>()</td></tr>
</table></div>
<h2 id="protected-functions">Protected Functions</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#overload">overload</a></b>()</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#overload-1">overload</a></b>(bool <i>b</i>)</td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#overload" translate="no">overload</a></b>()</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#overload-1" translate="no">overload</a></b>(bool <i>b</i>)</td></tr>
</table></div>
<h2 id="related-non-members">Related Non-Members</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> bool </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#operator-eq-eq">operator==</a></b>(const TestQDoc::Test &amp;<i>lhs</i>, const TestQDoc::Test &amp;<i>rhs</i>)</td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> bool </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#operator-eq-eq" translate="no">operator==</a></b>(const TestQDoc::Test &amp;<i>lhs</i>, const TestQDoc::Test &amp;<i>rhs</i>)</td></tr>
</table></div>
<h2 id="macros">Macros</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#QDOCTEST_MACRO2">QDOCTEST_MACRO2</a></b>(int &amp;<i>x</i>)</td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#QDOCTEST_MACRO2" translate="no">QDOCTEST_MACRO2</a></b>(int &amp;<i>x</i>)</td></tr>
</table></div>
<!-- $$$Test-description -->
<div class="descr">
@@ -71,25 +71,25 @@ target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="me
<div class="types">
<h2>Member Type Documentation</h2>
<!-- $$$ClassicEnum$$$Yee$$$Haw$$$Howdy$$$Partner -->
-<h3 class="fn" id="ClassicEnum-enum">enum Test::<span class="name">ClassicEnum</span></h3>
+<h3 class="fn" translate="no" id="ClassicEnum-enum">enum Test::<span class="name">ClassicEnum</span></h3>
<div class="table"><table class="valuelist"><tr><th class="tblConst">Constant</th><th class="tblVal">Value</th></tr>
-<tr><td class="topAlign"><code>TestQDoc::Test::Yee</code></td><td class="topAlign tblval"><code>0</code></td></tr>
-<tr><td class="topAlign"><code>TestQDoc::Test::Haw</code></td><td class="topAlign tblval"><code>1</code></td></tr>
-<tr><td class="topAlign"><code>TestQDoc::Test::Howdy</code></td><td class="topAlign tblval"><code>2</code></td></tr>
-<tr><td class="topAlign"><code>TestQDoc::Test::Partner</code></td><td class="topAlign tblval"><code>3</code></td></tr>
+<tr><td class="topAlign"><code translate="no">TestQDoc::Test::Yee</code></td><td class="topAlign tblval"><code translate="no">0</code></td></tr>
+<tr><td class="topAlign"><code translate="no">TestQDoc::Test::Haw</code></td><td class="topAlign tblval"><code translate="no">1</code></td></tr>
+<tr><td class="topAlign"><code translate="no">TestQDoc::Test::Howdy</code></td><td class="topAlign tblval"><code translate="no">2</code></td></tr>
+<tr><td class="topAlign"><code translate="no">TestQDoc::Test::Partner</code></td><td class="topAlign tblval"><code translate="no">3</code></td></tr>
</table></div>
<!-- @@@ClassicEnum -->
<!-- $$$ScopedEnum$$$This$$$That$$$All$$$OmittedValue$$$UselessValue$$$VeryLastValue -->
-<h3 class="fn" id="ScopedEnum-enum">enum class Test::<span class="name">ScopedEnum</span></h3>
+<h3 class="fn" translate="no" id="ScopedEnum-enum">enum class Test::<span class="name">ScopedEnum</span></h3>
<div class="table"><table class="valuelist"><tr valign="top" class="odd"><th class="tblConst">Constant</th><th class="tblval">Value</th><th class="tbldscr">Description</th></tr>
-<tr><td class="topAlign"><code>TestQDoc::Test::ScopedEnum::This</code></td><td class="topAlign tblval"><code>0x01</code></td><td class="topAlign">Something</td></tr>
-<tr><td class="topAlign"><code>TestQDoc::Test::ScopedEnum::That</code></td><td class="topAlign tblval"><code>0x02</code></td><td class="topAlign">Something else</td></tr>
-<tr><td class="topAlign"><code>TestQDoc::Test::ScopedEnum::All</code></td><td class="topAlign tblval"><code>This | That</code></td><td class="topAlign">Everything</td></tr>
+<tr><td class="topAlign"><code translate="no">TestQDoc::Test::ScopedEnum::This</code></td><td class="topAlign tblval"><code translate="no">0x01</code></td><td class="topAlign">Something</td></tr>
+<tr><td class="topAlign"><code translate="no">TestQDoc::Test::ScopedEnum::That</code></td><td class="topAlign tblval"><code translate="no">0x02</code></td><td class="topAlign">Something else</td></tr>
+<tr><td class="topAlign"><code translate="no">TestQDoc::Test::ScopedEnum::All</code></td><td class="topAlign tblval"><code translate="no">This | That</code></td><td class="topAlign">Everything</td></tr>
</table></div>
<p>A scoped enum.</p>
<!-- @@@ScopedEnum -->
<!-- $$$SomeType -->
-<h3 class="fn" id="SomeType-typedef">Test::<span class="name">SomeType</span></h3>
+<h3 class="fn" translate="no" id="SomeType-typedef">Test::<span class="name">SomeType</span></h3>
<p>A typedef.</p>
<!-- @@@SomeType -->
</div>
@@ -97,50 +97,50 @@ target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="me
<h2>Member Function Documentation</h2>
<!-- $$$ -->
<div class="fngroup">
-<h3 class="fn fngroupitem" id="overload"><code>[protected] </code><span class="type">void</span> Test::<span class="name">overload</span>()</h3><h3 class="fn fngroupitem" id="overload-1"><code>[protected, since Test 1.2] </code><span class="type">void</span> Test::<span class="name">overload</span>(<span class="type">bool</span> <i>b</i>)</h3></div>
-<p>Overloads that share a documentation comment, optionally taking a parameter <i>b</i>.</p>
+<h3 class="fn fngroupitem" translate="no" id="overload"><code translate="no">[protected] </code><span class="type">void</span> Test::<span class="name">overload</span>()</h3><h3 class="fn fngroupitem" translate="no" id="overload-1"><code translate="no">[protected, since Test 1.2] </code><span class="type">void</span> Test::<span class="name">overload</span>(<span class="type">bool</span> <i>b</i>)</h3></div>
+<p>Overloads that share a documentation comment, optionally taking a parameter <i translate="no">b</i>.</p>
<!-- @@@ -->
<!-- $$$Test[overload1]$$$Test -->
-<h3 class="fn" id="Test"><code>[default] </code>Test::<span class="name">Test</span>()</h3>
+<h3 class="fn" translate="no" id="Test"><code translate="no">[default] </code>Test::<span class="name">Test</span>()</h3>
<p>Default constructor.</p>
<!-- @@@Test -->
<!-- $$$operator=[overload1]$$$operator=TestQDoc::Test&& -->
-<h3 class="fn" id="operator-eq"><code>[default] </code><span class="type"><a href="testqdoc-test.html">TestQDoc::Test</a></span> &amp;Test::<span class="name">operator=</span>(<span class="type"><a href="testqdoc-test.html">TestQDoc::Test</a></span> &amp;&amp;<i>other</i>)</h3>
-<p>Move-assigns <i>other</i>.</p>
+<h3 class="fn" translate="no" id="operator-eq"><code translate="no">[default] </code><span class="type"><a href="testqdoc-test.html" translate="no">TestQDoc::Test</a></span> &amp;Test::<span class="name">operator=</span>(<span class="type"><a href="testqdoc-test.html" translate="no">TestQDoc::Test</a></span> &amp;&amp;<i>other</i>)</h3>
+<p>Move-assigns <i translate="no">other</i>.</p>
<!-- @@@operator= -->
<!-- $$$funcPtr[overload1]$$$funcPtrboolconstchar* -->
-<h3 class="fn" id="funcPtr"><span class="type">void</span> (*)(<span class="type">bool</span>) Test::<span class="name">funcPtr</span>(<span class="type">bool</span> <i>b</i>, const <span class="type">char</span> *<i>s</i>)</h3>
-<p>Returns a pointer to a function that takes a boolean. Uses <i>b</i> and <i>s</i>.</p>
+<h3 class="fn" translate="no" id="funcPtr"><span class="type">void</span> (*)(<span class="type">bool</span>) Test::<span class="name">funcPtr</span>(<span class="type">bool</span> <i>b</i>, const <span class="type">char</span> *<i>s</i>)</h3>
+<p>Returns a pointer to a function that takes a boolean. Uses <i translate="no">b</i> and <i translate="no">s</i>.</p>
<!-- @@@funcPtr -->
<!-- $$$inlineFunction[overload1]$$$inlineFunction -->
-<h3 class="fn" id="inlineFunction"><span class="type">void</span> Test::<span class="name">inlineFunction</span>()</h3>
+<h3 class="fn" translate="no" id="inlineFunction"><span class="type">void</span> Test::<span class="name">inlineFunction</span>()</h3>
<p>An inline function, documented using the \fn QDoc command.</p>
<!-- @@@inlineFunction -->
<!-- $$$someFunction[overload1]$$$someFunctionintint -->
-<h3 class="fn" id="someFunction"><span class="type">int</span> Test::<span class="name">someFunction</span>(<span class="type">int</span>, <span class="type">int</span> <i>v</i> = 0)</h3>
-<p>Function that takes a parameter <i>v</i>. Also returns the value of <i>v</i>.</p>
+<h3 class="fn" translate="no" id="someFunction"><span class="type">int</span> Test::<span class="name">someFunction</span>(<span class="type">int</span>, <span class="type">int</span> <i>v</i> = 0)</h3>
+<p>Function that takes a parameter <i translate="no">v</i>. Also returns the value of <i translate="no">v</i>.</p>
<!-- @@@someFunction -->
<!-- $$$someFunctionDefaultArg[overload1]$$$someFunctionDefaultArgintbool -->
-<h3 class="fn" id="someFunctionDefaultArg"><span class="type">void</span> Test::<span class="name">someFunctionDefaultArg</span>(<span class="type">int</span> <i>i</i>, <span class="type">bool</span> <i>b</i> = false)</h3>
-<p>Function that takes a parameter <i>i</i> and <i>b</i>.</p>
+<h3 class="fn" translate="no" id="someFunctionDefaultArg"><span class="type">void</span> Test::<span class="name">someFunctionDefaultArg</span>(<span class="type">int</span> <i>i</i>, <span class="type">bool</span> <i>b</i> = false)</h3>
+<p>Function that takes a parameter <i translate="no">i</i> and <i translate="no">b</i>.</p>
<!-- @@@someFunctionDefaultArg -->
<!-- $$$virtualFun[overload1]$$$virtualFun -->
-<h3 class="fn" id="virtualFun"><code>[virtual] </code><span class="type">void</span> Test::<span class="name">virtualFun</span>()</h3>
+<h3 class="fn" translate="no" id="virtualFun"><code translate="no">[virtual] </code><span class="type">void</span> Test::<span class="name">virtualFun</span>()</h3>
<p>Function that must be reimplemented.</p>
<!-- @@@virtualFun -->
</div>
<div class="relnonmem">
<h2>Related Non-Members</h2>
<!-- $$$operator==[overload1]$$$operator==constTestQDoc::Test&constTestQDoc::Test& -->
-<h3 class="fn" id="operator-eq-eq"><span class="type">bool</span> <span class="name">operator==</span>(const <span class="type"><a href="testqdoc-test.html">TestQDoc::Test</a></span> &amp;<i>lhs</i>, const <span class="type"><a href="testqdoc-test.html">TestQDoc::Test</a></span> &amp;<i>rhs</i>)</h3>
-<p>Returns true if <i>lhs</i> and <i>rhs</i> are equal.</p>
+<h3 class="fn" translate="no" id="operator-eq-eq"><span class="type">bool</span> <span class="name">operator==</span>(const <span class="type"><a href="testqdoc-test.html" translate="no">TestQDoc::Test</a></span> &amp;<i>lhs</i>, const <span class="type"><a href="testqdoc-test.html" translate="no">TestQDoc::Test</a></span> &amp;<i>rhs</i>)</h3>
+<p>Returns true if <i translate="no">lhs</i> and <i translate="no">rhs</i> are equal.</p>
<!-- @@@operator== -->
</div>
<div class="macros">
<h2>Macro Documentation</h2>
<!-- $$$QDOCTEST_MACRO2[overload1]$$$QDOCTEST_MACRO2int& -->
-<h3 class="fn" id="QDOCTEST_MACRO2"><code>[since Test 1.1] </code><span class="name">QDOCTEST_MACRO2</span>(<span class="type">int</span> &amp;<i>x</i>)</h3>
-<p>A macro with argument <i>x</i>.</p>
+<h3 class="fn" translate="no" id="QDOCTEST_MACRO2"><code translate="no">[since Test 1.1] </code><span class="name">QDOCTEST_MACRO2</span>(<span class="type">int</span> &amp;<i>x</i>)</h3>
+<p>A macro with argument <i translate="no">x</i>.</p>
<p>This macro was introduced in Test 1.1.</p>
<!-- @@@QDOCTEST_MACRO2 -->
</div>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/second.html b/tests/auto/qdoc/generatedoutput/expected_output/second.html
index b932dc7fa..093197d40 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/second.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/second.html
@@ -15,8 +15,8 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">Second Class</h1>
-<div class="table"><table class="alignedsummary">
+<h1 class="title" translate="no">Second Class</h1>
+<div class="table"><table class="alignedsummary" translate="no">
<tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign"> <span class="preprocessor">#include &lt;Second&gt;</span>
</td></tr></table></div>
<!-- $$$Second-description -->
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/space.html b/tests/auto/qdoc/generatedoutput/expected_output/space.html
index c84aae428..0015dd398 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/space.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/space.html
@@ -15,16 +15,16 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">Space Namespace</h1>
+<h1 class="title" translate="no">Space Namespace</h1>
<!-- $$$Space-brief -->
<p>A namespace..&#x2e;in space. <a href="#details">More...</a></p>
<!-- @@@Space -->
-<div class="table"><table class="alignedsummary">
+<div class="table"><table class="alignedsummary" translate="no">
<tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign"> <span class="preprocessor">#include &lt;Space&gt;</span>
</td></tr></table></div>
<h2 id="functions">Functions</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="space.html#spaceFun">spaceFun</a></b>(Space::spacename <i>space</i>)</td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="space.html#spaceFun" translate="no">spaceFun</a></b>(Space::spacename <i>space</i>)</td></tr>
</table></div>
<!-- $$$Space-description -->
<div class="descr">
@@ -34,8 +34,8 @@
<div class="func">
<h2>Function Documentation</h2>
<!-- $$$spaceFun[overload1]$$$spaceFunSpace::spacename -->
-<h3 class="fn" id="spaceFun"><span class="type">void</span> <span class="name">spaceFun</span>(<span class="type">Space::spacename</span> <i>space</i>)</h3>
-<p>A <i>space</i> function.</p>
+<h3 class="fn" translate="no" id="spaceFun"><span class="type">void</span> <span class="name">spaceFun</span>(<span class="type">Space::spacename</span> <i>space</i>)</h3>
+<p>A <i translate="no">space</i> function.</p>
<!-- @@@spaceFun -->
</div>
</body>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/template/bar.html b/tests/auto/qdoc/generatedoutput/expected_output/template/bar.html
index 88185435c..a3d46be83 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/template/bar.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/template/bar.html
@@ -15,12 +15,12 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">Bar Class</h1>
-<span class="small-subtitle">template &lt;typename T, typename D&gt; class Bar</span>
+<h1 class="title" translate="no">Bar Class</h1>
+<span class="small-subtitle" translate="no">template &lt;typename T, typename D&gt; class Bar</span>
<!-- $$$Bar-brief -->
<p>Another class template. <a href="#details">More...</a></p>
<!-- @@@Bar -->
-<div class="table"><table class="alignedsummary">
+<div class="table"><table class="alignedsummary" translate="no">
<tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign"> <span class="preprocessor">#include &lt;Bar&gt;</span>
</td></tr><tr><td class="memItemLeft rightAlign topAlign"> CMake:</td><td class="memItemRight bottomAlign"> find_package(Qt6 COMPONENTS QDocTest REQUIRED) <br/>
target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="memItemLeft rightAlign topAlign"> qmake:</td><td class="memItemRight bottomAlign"> QT += testcpp</td></tr></table></div>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/template/baz.html b/tests/auto/qdoc/generatedoutput/expected_output/template/baz.html
index 482c5b02d..e8fd08dbf 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/template/baz.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/template/baz.html
@@ -15,12 +15,12 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">Baz Struct</h1>
-<span class="small-subtitle">template &lt;template &lt;typename&gt; class X, typename Y&gt; struct Baz</span>
+<h1 class="title" translate="no">Baz Struct</h1>
+<span class="small-subtitle" translate="no">template &lt;template &lt;typename&gt; class X, typename Y&gt; struct Baz</span>
<!-- $$$Baz-brief -->
<p>Class template template. <a href="#details">More...</a></p>
<!-- @@@Baz -->
-<div class="table"><table class="alignedsummary">
+<div class="table"><table class="alignedsummary" translate="no">
<tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign"> <span class="preprocessor">#include &lt;Baz&gt;</span>
</td></tr><tr><td class="memItemLeft rightAlign topAlign"> CMake:</td><td class="memItemRight bottomAlign"> find_package(Qt6 COMPONENTS QDocTest REQUIRED) <br/>
target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="memItemLeft rightAlign topAlign"> qmake:</td><td class="memItemRight bottomAlign"> QT += testcpp</td></tr></table></div>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/template/foo.html b/tests/auto/qdoc/generatedoutput/expected_output/template/foo.html
index 84a7be7dd..297102cc2 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/template/foo.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/template/foo.html
@@ -15,12 +15,12 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">Foo Class</h1>
-<span class="small-subtitle">template &lt;typename T&gt; class Foo</span>
+<h1 class="title" translate="no">Foo Class</h1>
+<span class="small-subtitle" translate="no">template &lt;typename T&gt; class Foo</span>
<!-- $$$Foo-brief -->
<p>Class template. <a href="#details">More...</a></p>
<!-- @@@Foo -->
-<div class="table"><table class="alignedsummary">
+<div class="table"><table class="alignedsummary" translate="no">
<tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign"> <span class="preprocessor">#include &lt;Foo&gt;</span>
</td></tr><tr><td class="memItemLeft rightAlign topAlign"> CMake:</td><td class="memItemRight bottomAlign"> find_package(Qt6 COMPONENTS QDocTest REQUIRED) <br/>
target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="memItemLeft rightAlign topAlign"> qmake:</td><td class="memItemRight bottomAlign"> QT += testcpp</td></tr></table></div>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/template/testqdoc-test-struct.html b/tests/auto/qdoc/generatedoutput/expected_output/template/testqdoc-test-struct.html
index 1e4a40e2a..3e93eadd9 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/template/testqdoc-test-struct.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/template/testqdoc-test-struct.html
@@ -15,8 +15,8 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">Struct Struct</h1>
-<span class="small-subtitle">template &lt;typename D, typename T&gt; struct <a href="testqdoc.html">TestQDoc</a>::<a href="testqdoc-test.html">Test</a>::Struct</span>
+<h1 class="title" translate="no">Struct Struct</h1>
+<span class="small-subtitle" translate="no">template &lt;typename D, typename T&gt; struct <a href="testqdoc.html" translate="no">TestQDoc</a>::<a href="testqdoc-test.html" translate="no">Test</a>::Struct</span>
<!-- $$$Struct-brief -->
<p>Templated struct. <a href="#details">More...</a></p>
<!-- @@@Struct -->
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/template/testqdoc-test.html b/tests/auto/qdoc/generatedoutput/expected_output/template/testqdoc-test.html
index 171eb5c89..f48d12a97 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/template/testqdoc-test.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/template/testqdoc-test.html
@@ -20,50 +20,50 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">Test Class</h1>
-<span class="small-subtitle">class <a href="testqdoc.html">TestQDoc</a>::Test</span>
+<h1 class="title" translate="no">Test Class</h1>
+<span class="small-subtitle" translate="no">class <a href="testqdoc.html" translate="no">TestQDoc</a>::Test</span>
<!-- $$$Test-brief -->
<p>A class in a namespace. <a href="#details">More...</a></p>
<!-- @@@Test -->
-<div class="table"><table class="alignedsummary">
+<div class="table"><table class="alignedsummary" translate="no">
<tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign"> <span class="preprocessor">#include &lt;Test&gt;</span>
</td></tr><tr><td class="memItemLeft rightAlign topAlign"> CMake:</td><td class="memItemRight bottomAlign"> find_package(Qt6 COMPONENTS QDocTest REQUIRED) <br/>
-target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="memItemLeft rightAlign topAlign"> qmake:</td><td class="memItemRight bottomAlign"> QT += testcpp</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Inherited By:</td><td class="memItemRight bottomAlign"> <p><a href="testqdoc-testderived.html">TestQDoc::TestDerived</a></p>
+target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="memItemLeft rightAlign topAlign"> qmake:</td><td class="memItemRight bottomAlign"> QT += testcpp</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Inherited By:</td><td class="memItemRight bottomAlign"> <p><a href="testqdoc-testderived.html" translate="no">TestQDoc::TestDerived</a></p>
</td></tr></table></div>
<ul>
<li><a href="testqdoc-test-members.html">List of all members, including inherited members</a></li>
<li><a href="testqdoc-test-obsolete.html">Deprecated members</a></li>
</ul>
<h2 id="public-types">Public Types</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> struct </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test-struct.html">Struct</a></b></td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#SomeType-typedef">SomeType</a></b></td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#Specialized-typedef">Specialized</a></b></td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> struct </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test-struct.html" translate="no">Struct</a></b></td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#SomeType-typedef" translate="no">SomeType</a></b></td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#Specialized-typedef" translate="no">Specialized</a></b></td></tr>
</table></div>
<h2 id="public-functions">Public Functions</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#Test">Test</a></b>()</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> TestQDoc::Test &amp;</td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#operator-eq">operator=</a></b>(TestQDoc::Test &amp;&amp;<i>other</i>)</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> void (*)(bool) </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#funcPtr">funcPtr</a></b>(bool <i>b</i>, const char *<i>s</i>)</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#inlineFunction">inlineFunction</a></b>()</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunction">someFunction</a></b>(int, int <i>v</i> = 0)</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunctionDefaultArg">someFunctionDefaultArg</a></b>(int <i>i</i>, bool <i>b</i> = false)</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#virtualFun">virtualFun</a></b>()</td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#Test" translate="no">Test</a></b>()</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> TestQDoc::Test &amp;</td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#operator-eq" translate="no">operator=</a></b>(TestQDoc::Test &amp;&amp;<i>other</i>)</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> void (*)(bool) </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#funcPtr" translate="no">funcPtr</a></b>(bool <i>b</i>, const char *<i>s</i>)</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#inlineFunction" translate="no">inlineFunction</a></b>()</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunction" translate="no">someFunction</a></b>(int, int <i>v</i> = 0)</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunctionDefaultArg" translate="no">someFunctionDefaultArg</a></b>(int <i>i</i>, bool <i>b</i> = false)</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#virtualFun" translate="no">virtualFun</a></b>()</td></tr>
</table></div>
<h2 id="protected-functions">Protected Functions</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#funcTemplate">funcTemplate</a></b>(T1 <i>a</i>, T2 <i>b</i>)</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#overload">overload</a></b>()</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#overload-1">overload</a></b>(bool <i>b</i>)</td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#funcTemplate" translate="no">funcTemplate</a></b>(T1 <i>a</i>, T2 <i>b</i>)</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#overload" translate="no">overload</a></b>()</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#overload-1" translate="no">overload</a></b>(bool <i>b</i>)</td></tr>
</table></div>
<h2 id="related-non-members">Related Non-Members</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> bool </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#operator-eq-eq">operator==</a></b>(const TestQDoc::Test &amp;<i>lhs</i>, const TestQDoc::Test &amp;<i>rhs</i>)</td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> bool </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#operator-eq-eq" translate="no">operator==</a></b>(const TestQDoc::Test &amp;<i>lhs</i>, const TestQDoc::Test &amp;<i>rhs</i>)</td></tr>
</table></div>
<h2 id="macros">Macros</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#QDOCTEST_MACRO2">QDOCTEST_MACRO2</a></b>(int &amp;<i>x</i>)</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#Q_INVOKABLE">Q_INVOKABLE</a></b></td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#QDOCTEST_MACRO2" translate="no">QDOCTEST_MACRO2</a></b>(int &amp;<i>x</i>)</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#Q_INVOKABLE" translate="no">Q_INVOKABLE</a></b></td></tr>
</table></div>
<!-- $$$Test-description -->
<div class="descr">
@@ -73,69 +73,69 @@ target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="me
<div class="types">
<h2>Member Type Documentation</h2>
<!-- $$$SomeType -->
-<h3 class="fn" id="SomeType-typedef">Test::<span class="name">SomeType</span></h3>
+<h3 class="fn" translate="no" id="SomeType-typedef">Test::<span class="name">SomeType</span></h3>
<p>A typedef.</p>
<!-- @@@SomeType -->
<!-- $$$Specialized -->
-<h3 class="fn" id="Specialized-typedef"><code>[alias] </code>template&lt;typename T&gt; Test::<span class="name">Specialized</span></h3>
+<h3 class="fn" translate="no" id="Specialized-typedef"><code translate="no">[alias] </code>template&lt;typename T&gt; Test::<span class="name">Specialized</span></h3>
<!-- @@@Specialized -->
</div>
<div class="func">
<h2>Member Function Documentation</h2>
<!-- $$$ -->
<div class="fngroup">
-<h3 class="fn fngroupitem" id="overload"><code>[protected] </code><span class="type">void</span> Test::<span class="name">overload</span>()</h3><h3 class="fn fngroupitem" id="overload-1"><code>[protected, since Test 1.2] </code><span class="type">void</span> Test::<span class="name">overload</span>(<span class="type">bool</span> <i>b</i>)</h3></div>
-<p>Overloads that share a documentation comment, optionally taking a parameter <i>b</i>.</p>
+<h3 class="fn fngroupitem" translate="no" id="overload"><code translate="no">[protected] </code><span class="type">void</span> Test::<span class="name">overload</span>()</h3><h3 class="fn fngroupitem" translate="no" id="overload-1"><code translate="no">[protected, since Test 1.2] </code><span class="type">void</span> Test::<span class="name">overload</span>(<span class="type">bool</span> <i>b</i>)</h3></div>
+<p>Overloads that share a documentation comment, optionally taking a parameter <i translate="no">b</i>.</p>
<!-- @@@ -->
<!-- $$$Test[overload1]$$$Test -->
-<h3 class="fn" id="Test"><code>[default] </code>Test::<span class="name">Test</span>()</h3>
+<h3 class="fn" translate="no" id="Test"><code translate="no">[default] </code>Test::<span class="name">Test</span>()</h3>
<p>Default constructor.</p>
<!-- @@@Test -->
<!-- $$$operator=[overload1]$$$operator=TestQDoc::Test&& -->
-<h3 class="fn" id="operator-eq"><code>[default] </code><span class="type"><a href="testqdoc-test.html">TestQDoc::Test</a></span> &amp;Test::<span class="name">operator=</span>(<span class="type"><a href="testqdoc-test.html">TestQDoc::Test</a></span> &amp;&amp;<i>other</i>)</h3>
-<p>Move-assigns <i>other</i>.</p>
+<h3 class="fn" translate="no" id="operator-eq"><code translate="no">[default] </code><span class="type"><a href="testqdoc-test.html" translate="no">TestQDoc::Test</a></span> &amp;Test::<span class="name">operator=</span>(<span class="type"><a href="testqdoc-test.html" translate="no">TestQDoc::Test</a></span> &amp;&amp;<i>other</i>)</h3>
+<p>Move-assigns <i translate="no">other</i>.</p>
<!-- @@@operator= -->
<!-- $$$funcPtr[overload1]$$$funcPtrboolconstchar* -->
-<h3 class="fn" id="funcPtr"><span class="type">void</span> (*)(<span class="type">bool</span>) Test::<span class="name">funcPtr</span>(<span class="type">bool</span> <i>b</i>, const <span class="type">char</span> *<i>s</i>)</h3>
-<p>Returns a pointer to a function that takes a boolean. Uses <i>b</i> and <i>s</i>.</p>
+<h3 class="fn" translate="no" id="funcPtr"><span class="type">void</span> (*)(<span class="type">bool</span>) Test::<span class="name">funcPtr</span>(<span class="type">bool</span> <i>b</i>, const <span class="type">char</span> *<i>s</i>)</h3>
+<p>Returns a pointer to a function that takes a boolean. Uses <i translate="no">b</i> and <i translate="no">s</i>.</p>
<!-- @@@funcPtr -->
<!-- $$$funcTemplate[overload1]$$$funcTemplateT1T2 -->
-<h3 class="fn" id="funcTemplate"><code>[protected] </code>template &lt;typename T1, typename T2&gt; <span class="type">void</span> Test::<span class="name">funcTemplate</span>(<span class="type">T1</span> <i>a</i>, <span class="type">T2</span> <i>b</i>)</h3>
-<p>Function template with two parameters, <i>a</i> and <i>b</i>.</p>
+<h3 class="fn" translate="no" id="funcTemplate"><code translate="no">[protected] </code>template &lt;typename T1, typename T2&gt; <span class="type">void</span> Test::<span class="name">funcTemplate</span>(<span class="type">T1</span> <i>a</i>, <span class="type">T2</span> <i>b</i>)</h3>
+<p>Function template with two parameters, <i translate="no">a</i> and <i translate="no">b</i>.</p>
<!-- @@@funcTemplate -->
<!-- $$$inlineFunction[overload1]$$$inlineFunction -->
-<h3 class="fn" id="inlineFunction"><span class="type">void</span> Test::<span class="name">inlineFunction</span>()</h3>
+<h3 class="fn" translate="no" id="inlineFunction"><span class="type">void</span> Test::<span class="name">inlineFunction</span>()</h3>
<p>An inline function, documented using the \fn QDoc command.</p>
<!-- @@@inlineFunction -->
<!-- $$$someFunction[overload1]$$$someFunctionintint -->
-<h3 class="fn" id="someFunction"><span class="type">int</span> Test::<span class="name">someFunction</span>(<span class="type">int</span>, <span class="type">int</span> <i>v</i> = 0)</h3>
-<p>Function that takes a parameter <i>v</i>. Also returns the value of <i>v</i>.</p>
+<h3 class="fn" translate="no" id="someFunction"><span class="type">int</span> Test::<span class="name">someFunction</span>(<span class="type">int</span>, <span class="type">int</span> <i>v</i> = 0)</h3>
+<p>Function that takes a parameter <i translate="no">v</i>. Also returns the value of <i translate="no">v</i>.</p>
<!-- @@@someFunction -->
<!-- $$$someFunctionDefaultArg[overload1]$$$someFunctionDefaultArgintbool -->
-<h3 class="fn" id="someFunctionDefaultArg"><span class="type">void</span> Test::<span class="name">someFunctionDefaultArg</span>(<span class="type">int</span> <i>i</i>, <span class="type">bool</span> <i>b</i> = false)</h3>
-<p>Function that takes a parameter <i>i</i> and <i>b</i>.</p>
+<h3 class="fn" translate="no" id="someFunctionDefaultArg"><span class="type">void</span> Test::<span class="name">someFunctionDefaultArg</span>(<span class="type">int</span> <i>i</i>, <span class="type">bool</span> <i>b</i> = false)</h3>
+<p>Function that takes a parameter <i translate="no">i</i> and <i translate="no">b</i>.</p>
<!-- @@@someFunctionDefaultArg -->
<!-- $$$virtualFun[overload1]$$$virtualFun -->
-<h3 class="fn" id="virtualFun"><code>[virtual] </code><span class="type">void</span> Test::<span class="name">virtualFun</span>()</h3>
+<h3 class="fn" translate="no" id="virtualFun"><code translate="no">[virtual] </code><span class="type">void</span> Test::<span class="name">virtualFun</span>()</h3>
<p>Function that must be reimplemented.</p>
<!-- @@@virtualFun -->
</div>
<div class="relnonmem">
<h2>Related Non-Members</h2>
<!-- $$$operator==[overload1]$$$operator==constTestQDoc::Test&constTestQDoc::Test& -->
-<h3 class="fn" id="operator-eq-eq"><span class="type">bool</span> <span class="name">operator==</span>(const <span class="type"><a href="testqdoc-test.html">TestQDoc::Test</a></span> &amp;<i>lhs</i>, const <span class="type"><a href="testqdoc-test.html">TestQDoc::Test</a></span> &amp;<i>rhs</i>)</h3>
-<p>Returns true if <i>lhs</i> and <i>rhs</i> are equal.</p>
+<h3 class="fn" translate="no" id="operator-eq-eq"><span class="type">bool</span> <span class="name">operator==</span>(const <span class="type"><a href="testqdoc-test.html" translate="no">TestQDoc::Test</a></span> &amp;<i>lhs</i>, const <span class="type"><a href="testqdoc-test.html" translate="no">TestQDoc::Test</a></span> &amp;<i>rhs</i>)</h3>
+<p>Returns true if <i translate="no">lhs</i> and <i translate="no">rhs</i> are equal.</p>
<!-- @@@operator== -->
</div>
<div class="macros">
<h2>Macro Documentation</h2>
<!-- $$$QDOCTEST_MACRO2[overload1]$$$QDOCTEST_MACRO2int& -->
-<h3 class="fn" id="QDOCTEST_MACRO2"><code>[since Test 1.1] </code><span class="name">QDOCTEST_MACRO2</span>(<span class="type">int</span> &amp;<i>x</i>)</h3>
-<p>A macro with argument <i>x</i>.</p>
+<h3 class="fn" translate="no" id="QDOCTEST_MACRO2"><code translate="no">[since Test 1.1] </code><span class="name">QDOCTEST_MACRO2</span>(<span class="type">int</span> &amp;<i>x</i>)</h3>
+<p>A macro with argument <i translate="no">x</i>.</p>
<p>This macro was introduced in Test 1.1.</p>
<!-- @@@QDOCTEST_MACRO2 -->
<!-- $$$Q_INVOKABLE[overload1]$$$Q_INVOKABLE -->
-<h3 class="fn" id="Q_INVOKABLE"><span class="name">Q_INVOKABLE</span></h3>
+<h3 class="fn" translate="no" id="Q_INVOKABLE"><span class="name">Q_INVOKABLE</span></h3>
<p>This is a mock Q_INVOKABLE for the purpose of ensuring QDoc autolink to it as expected.</p>
<!-- @@@Q_INVOKABLE -->
</div>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/template/testqdoc-vec.html b/tests/auto/qdoc/generatedoutput/expected_output/template/testqdoc-vec.html
index fc0003335..fba7d5870 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/template/testqdoc-vec.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/template/testqdoc-vec.html
@@ -15,12 +15,12 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">Vec Class</h1>
-<span class="small-subtitle">template &lt;typename T&gt; class <a href="testqdoc.html">TestQDoc</a>::Vec</span>
+<h1 class="title" translate="no">Vec Class</h1>
+<span class="small-subtitle" translate="no">template &lt;typename T&gt; class <a href="testqdoc.html" translate="no">TestQDoc</a>::Vec</span>
<!-- $$$Vec-brief -->
<p>Type alias that has its own reference. <a href="#details">More...</a></p>
<!-- @@@Vec -->
-<div class="table"><table class="alignedsummary">
+<div class="table"><table class="alignedsummary" translate="no">
<tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign"> <span class="preprocessor">#include &lt;Vec&gt;</span>
</td></tr><tr><td class="memItemLeft rightAlign topAlign"> CMake:</td><td class="memItemRight bottomAlign"> find_package(Qt6 COMPONENTS QDocTest REQUIRED) <br/>
target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="memItemLeft rightAlign topAlign"> qmake:</td><td class="memItemRight bottomAlign"> QT += testcpp</td></tr></table></div>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/test-cmaketest-example.html b/tests/auto/qdoc/generatedoutput/expected_output/test-cmaketest-example.html
index e46acb6e5..9beaf4d34 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/test-cmaketest-example.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/test-cmaketest-example.html
@@ -12,8 +12,8 @@
<div class="descr" id="details">
<p class="centerAlign"><img src="images/leonardo-da-vinci.png" alt="" /></p><p>Files:</p>
<ul>
-<li><a href="test-cmaketest-cmakelists-txt.html">cmaketest/CMakeLists.txt</a></li>
-<li><a href="test-cmaketest-main-cpp.html">cmaketest/main.cpp</a></li>
+<li><a href="test-cmaketest-cmakelists-txt.html" translate="no">cmaketest/CMakeLists.txt</a></li>
+<li><a href="test-cmaketest-main-cpp.html" translate="no">cmaketest/main.cpp</a></li>
</ul>
</div>
<!-- @@@cmaketest -->
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/test-componentset-example.html b/tests/auto/qdoc/generatedoutput/expected_output/test-componentset-example.html
index b89ce8ccb..b83694b25 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/test-componentset-example.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/test-componentset-example.html
@@ -24,29 +24,29 @@
<!-- $$$componentset-description -->
<div class="descr" id="details">
<p>This example demonstrates one of the ways to document QML types. It also generates a warning about a missing example image, on purpose.</p>
-<p>In particular, there are sample types that are documented with QDoc commands comments. There are documentation comments for the QML types and their public interfaces. The types are grouped into a module, the <a href="uicomponents-qmlmodule.html">UI Components</a> module.</p>
-<p>The uicomponents.qdoc file generates the overview page for the <a href="uicomponents-qmlmodule.html">UI Components</a> module page.</p>
-<p>The generated documentation is available in the <a href="uicomponents-qmlmodule.html">UI Components</a> module.</p>
+<p>In particular, there are sample types that are documented with QDoc commands comments. There are documentation comments for the QML types and their public interfaces. The types are grouped into a module, the <a href="uicomponents-qmlmodule.html" translate="no">UI Components</a> module.</p>
+<p>The uicomponents.qdoc file generates the overview page for the <a href="uicomponents-qmlmodule.html" translate="no">UI Components</a> module page.</p>
+<p>The generated documentation is available in the <a href="uicomponents-qmlmodule.html" translate="no">UI Components</a> module.</p>
<h4 id="qml-class">QML Class</h4>
-<p>The QML types use the \qmltype to document the type. In addition, they have the \inmodule command in order for QDoc to associate them to the <code>UIComponents</code> module.</p>
+<p>The QML types use the \qmltype to document the type. In addition, they have the \inmodule command in order for QDoc to associate them to the <code translate="no">UIComponents</code> module.</p>
<p>QDoc uses the \brief command to place a basic description when listing the types.</p>
<h4 id="properties-signals-handlers-and-methods">Properties, Signals, Handlers, and Methods</h4>
<p>The types have their properties, signals, handlers, and methods defined in their respective QML files. QDoc associates the properties and methods to the types, therefore, you only need to place the documentation above the property, method, or signal.</p>
<p>To document the type of a <i>property alias</i>, you must use the \qmlproperty command to specify the data type.</p>
-<pre class="cpp">\qmlproperty <span class="type">int</span> anAliasedProperty
+<pre class="cpp" translate="no">\qmlproperty <span class="type">int</span> anAliasedProperty
An aliased property of type <span class="type">int</span><span class="operator">.</span></pre>
<h5 id="internal-documentation">Internal Documentation</h5>
-<p>You may declare that a documentation is for internal use by placing the \internal command after the beginning QDoc comment <code>/*</code>. QDoc will prevent the internal documentation from appearing in the public API.</p>
+<p>You may declare that a documentation is for internal use by placing the \internal command after the beginning QDoc comment <code translate="no">/*</code>. QDoc will prevent the internal documentation from appearing in the public API.</p>
<p>If you wish to omit certain parts of the documentation, you may use the \omit and \endomit command.</p>
<h4 id="qml-types-with-c-implementation">QML Types with C++ Implementation</h4>
<p>This example only demonstrates the documentation for types in QML files, but the regular QML commands may be placed inside C++ classes to define the public API of the QML type.</p>
<p>Files:</p>
<ul>
-<li><a href="test-componentset-progressbar-qml.html">componentset/ProgressBar.qml</a></li>
-<li><a href="test-componentset-switch-qml.html">componentset/Switch.qml</a></li>
-<li><a href="test-componentset-tabwidget-qml.html">componentset/TabWidget.qml</a></li>
-<li><a href="test-componentset-componentset-pro.html">componentset/componentset.pro</a></li>
-<li><a href="test-componentset-componentset-qml.html">componentset/componentset.qml</a></li>
+<li><a href="test-componentset-progressbar-qml.html" translate="no">componentset/ProgressBar.qml</a></li>
+<li><a href="test-componentset-switch-qml.html" translate="no">componentset/Switch.qml</a></li>
+<li><a href="test-componentset-tabwidget-qml.html" translate="no">componentset/TabWidget.qml</a></li>
+<li><a href="test-componentset-componentset-pro.html" translate="no">componentset/componentset.pro</a></li>
+<li><a href="test-componentset-componentset-qml.html" translate="no">componentset/componentset.qml</a></li>
</ul>
</div>
<!-- @@@componentset -->
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/test-nover-qmlmodule.html b/tests/auto/qdoc/generatedoutput/expected_output/test-nover-qmlmodule.html
index 0bb01efdf..3878416a0 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/test-nover-qmlmodule.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/test-nover-qmlmodule.html
@@ -7,14 +7,14 @@
</head>
<body>
<div class="sidebar"><div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">Versionless QML Module</h1>
+<h1 class="title" translate="no">Versionless QML Module</h1>
<p>This module was introduced in Qt 1.1.</p>
<!-- $$$Test.NoVer-description -->
<div class="descr" id="details">
</div>
<!-- @@@Test.NoVer -->
<div class="table"><table class="annotated">
-<tr class="odd topAlign"><td class="tblName"><p><a href="qml-test-nover-typenoversion.html">TypeNoVersion</a></p></td><td class="tblDescr"><p>Another QML type documented in a .cpp file</p></td></tr>
+<tr class="odd topAlign"><td class="tblName" translate="no"><p><a href="qml-test-nover-typenoversion.html">TypeNoVersion</a></p></td><td class="tblDescr"><p>Another QML type documented in a .cpp file</p></td></tr>
</table></div>
</body>
</html>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/testcpp-module.html b/tests/auto/qdoc/generatedoutput/expected_output/testcpp-module.html
index 1ad20920d..65d3dec6f 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/testcpp-module.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/testcpp-module.html
@@ -18,19 +18,19 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">QDoc Test C++ Classes</h1>
+<h1 class="title" translate="no">QDoc Test C++ Classes</h1>
<!-- $$$TestCPP-brief -->
<p>A test module page. <a href="#details">More...</a></p>
<!-- @@@TestCPP -->
<h2 id="namespaces">Namespaces</h2>
<div class="table"><table class="annotated">
-<tr class="odd topAlign"><td class="tblName"><p><a href="crossmoduleref.html">CrossModuleRef</a></p></td><td class="tblDescr"><p>Namespace that has documented functions in multiple modules</p></td></tr>
-<tr class="even topAlign"><td class="tblName"><p><a href="testqdoc.html">TestQDoc</a></p></td><td class="tblDescr"><p>A namespace</p></td></tr>
+<tr class="odd topAlign"><td class="tblName" translate="no"><p><a href="crossmoduleref.html">CrossModuleRef</a></p></td><td class="tblDescr"><p>Namespace that has documented functions in multiple modules</p></td></tr>
+<tr class="even topAlign"><td class="tblName" translate="no"><p><a href="testqdoc.html">TestQDoc</a></p></td><td class="tblDescr"><p>A namespace</p></td></tr>
</table></div>
<h2 id="classes">Classes</h2>
<div class="table"><table class="annotated">
-<tr class="odd topAlign"><td class="tblName"><p><a href="testqdoc-test.html">TestQDoc::Test</a></p></td><td class="tblDescr"><p>A class in a namespace</p></td></tr>
-<tr class="even topAlign"><td class="tblName"><p><a href="testqdoc-testderived.html">TestQDoc::TestDerived</a></p></td><td class="tblDescr"><p>A derived class in a namespace</p></td></tr>
+<tr class="odd topAlign"><td class="tblName" translate="no"><p><a href="testqdoc-test.html">TestQDoc::Test</a></p></td><td class="tblDescr"><p>A class in a namespace</p></td></tr>
+<tr class="even topAlign"><td class="tblName" translate="no"><p><a href="testqdoc-testderived.html">TestQDoc::TestDerived</a></p></td><td class="tblDescr"><p>A derived class in a namespace</p></td></tr>
</table></div>
<!-- $$$TestCPP-description -->
<div class="descr">
@@ -40,13 +40,13 @@
</div>
<h3 id="linking-to-function-like-things">Linking to function-like things</h3>
<ul>
-<li><a href="testqdoc-test.html#someFunctionDefaultArg">someFunctionDefaultArg</a>()</li>
-<li><a href="testqdoc-test.html#QDOCTEST_MACRO2">QDOCTEST_MACRO2</a>()</li>
-<li><a href="testqdoc-test.html#QDOCTEST_MACRO2">QDOCTEST_MACRO2</a>(int &amp;x)</li>
-<li><a href="testcpp-module.html#section">section()</a></li>
-<li><a href="testcpp-module.html#section">section() is a section title</a></li>
-<li><a href="testqdoc-test.html#Test">open( parenthesis</a></li>
-<li><a href="https://en.cppreference.com/w/cpp/utility/move">C++11 added std::move(T&amp;&amp; t)</a></li>
+<li><a href="testqdoc-test.html#someFunctionDefaultArg" translate="no">someFunctionDefaultArg</a>()</li>
+<li><a href="testqdoc-test.html#QDOCTEST_MACRO2" translate="no">QDOCTEST_MACRO2</a>()</li>
+<li><a href="testqdoc-test.html#QDOCTEST_MACRO2" translate="no">QDOCTEST_MACRO2</a>(int &amp;x)</li>
+<li><a href="testcpp-module.html#section" translate="no">section()</a></li>
+<li><a href="testcpp-module.html#section" translate="no">section() is a section title</a></li>
+<li><a href="testqdoc-test.html#Test" translate="no">open( parenthesis</a></li>
+<li><a href="https://en.cppreference.com/w/cpp/utility/move" translate="no">C++11 added std::move(T&amp;&amp; t)</a></li>
</ul>
<h4 id="section">section()</h4>
</div>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test-members.html b/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test-members.html
index df0da4386..042e06df1 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test-members.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test-members.html
@@ -8,19 +8,19 @@
<body>
<li>Test</li>
<div class="sidebar"><div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">List of All Members for Test</h1>
+<h1 class="title" translate="no">List of All Members for Test</h1>
<p>This is the complete list of members for <a href="testqdoc-test.html">TestQDoc::Test</a>, including inherited members.</p>
<ul>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#SomeType-typedef">SomeType</a></b></span></li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#Test">Test</a></b></span>()</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#operator-eq">operator=</a></b></span>(TestQDoc::Test &amp;&amp;) : TestQDoc::Test &amp;</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#funcPtr">funcPtr</a></b></span>(bool, const char *) : void (*)(bool)</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#inlineFunction">inlineFunction</a></b></span>()</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#overload">overload</a></b></span>()</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#overload-1">overload</a></b></span>(bool)</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#someFunction">someFunction</a></b></span>(int, int) : int</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#someFunctionDefaultArg">someFunctionDefaultArg</a></b></span>(int, bool)</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#virtualFun">virtualFun</a></b></span>()</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#SomeType-typedef" translate="no">SomeType</a></b></span></li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#Test" translate="no">Test</a></b></span>()</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#operator-eq" translate="no">operator=</a></b></span>(TestQDoc::Test &amp;&amp;) : TestQDoc::Test &amp;</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#funcPtr" translate="no">funcPtr</a></b></span>(bool, const char *) : void (*)(bool)</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#inlineFunction" translate="no">inlineFunction</a></b></span>()</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#overload" translate="no">overload</a></b></span>()</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#overload-1" translate="no">overload</a></b></span>(bool)</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#someFunction" translate="no">someFunction</a></b></span>(int, int) : int</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#someFunctionDefaultArg" translate="no">someFunctionDefaultArg</a></b></span>(int, bool)</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#virtualFun" translate="no">virtualFun</a></b></span>()</li>
</ul>
</body>
</html>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test-obsolete.html b/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test-obsolete.html
index f2745c488..a58896ebe 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test-obsolete.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test-obsolete.html
@@ -8,36 +8,36 @@
<body>
<li>Test</li>
<div class="sidebar"><div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">Obsolete Members for Test</h1>
-<p><b>The following members of class <a href="testqdoc-test.html">Test</a> are deprecated.</b> They are provided to keep old source code working. We strongly advise against using them in new code.</p>
+<h1 class="title" translate="no">Obsolete Members for Test</h1>
+<p><b>The following members of class <a href="testqdoc-test.html" translate="no">Test</a> are deprecated.</b> They are provided to keep old source code working. We strongly advise against using them in new code.</p>
<h2>Public Functions</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft topAlign rightAlign"> <code>(deprecated) </code>void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test-obsolete.html#anotherObsoleteMember">anotherObsoleteMember</a></b>()</td></tr>
-<tr><td class="memItemLeft topAlign rightAlign"> <code>(deprecated (6.0)) </code>void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test-obsolete.html#deprecatedMember">deprecatedMember</a></b>()</td></tr>
-<tr><td class="memItemLeft topAlign rightAlign"> <code>(deprecated) </code>void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test-obsolete.html#obsoleteMember">obsoleteMember</a></b>()</td></tr>
-<tr><td class="memItemLeft topAlign rightAlign"> <code>(deprecated) </code>TestQDoc::Test &amp;</td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test-obsolete.html#operator-2b-2b">operator++</a></b>()</td></tr>
-<tr><td class="memItemLeft topAlign rightAlign"> <code>(deprecated) </code>TestQDoc::Test &amp;</td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test-obsolete.html#operator--">operator--</a></b>()</td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft topAlign rightAlign"> <code translate="no">(deprecated) </code>void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test-obsolete.html#anotherObsoleteMember" translate="no">anotherObsoleteMember</a></b>()</td></tr>
+<tr><td class="memItemLeft topAlign rightAlign"> <code translate="no">(deprecated (6.0)) </code>void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test-obsolete.html#deprecatedMember" translate="no">deprecatedMember</a></b>()</td></tr>
+<tr><td class="memItemLeft topAlign rightAlign"> <code translate="no">(deprecated) </code>void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test-obsolete.html#obsoleteMember" translate="no">obsoleteMember</a></b>()</td></tr>
+<tr><td class="memItemLeft topAlign rightAlign"> <code translate="no">(deprecated) </code>TestQDoc::Test &amp;</td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test-obsolete.html#operator-2b-2b" translate="no">operator++</a></b>()</td></tr>
+<tr><td class="memItemLeft topAlign rightAlign"> <code translate="no">(deprecated) </code>TestQDoc::Test &amp;</td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test-obsolete.html#operator--" translate="no">operator--</a></b>()</td></tr>
</table></div>
<h2>Member Function Documentation</h2>
<!-- $$$ -->
<div class="fngroup">
-<h3 class="fn fngroupitem" id="operator-2b-2b"><span class="type"><a href="testqdoc-test.html">TestQDoc::Test</a></span> &amp;Test::<span class="name">operator++</span>()</h3><h3 class="fn fngroupitem" id="operator--"><span class="type"><a href="testqdoc-test.html">TestQDoc::Test</a></span> &amp;Test::<span class="name">operator--</span>()</h3></div>
+<h3 class="fn fngroupitem" translate="no" id="operator-2b-2b"><span class="type"><a href="testqdoc-test.html" translate="no">TestQDoc::Test</a></span> &amp;Test::<span class="name">operator++</span>()</h3><h3 class="fn fngroupitem" translate="no" id="operator--"><span class="type"><a href="testqdoc-test.html" translate="no">TestQDoc::Test</a></span> &amp;Test::<span class="name">operator--</span>()</h3></div>
<p>This function is deprecated. We strongly advise against using it in new code.</p>
<!-- @@@ -->
<!-- $$$anotherObsoleteMember[overload1]$$$anotherObsoleteMember -->
-<h3 class="fn" id="anotherObsoleteMember"><span class="type">void</span> Test::<span class="name">anotherObsoleteMember</span>()</h3>
+<h3 class="fn" translate="no" id="anotherObsoleteMember"><span class="type">void</span> Test::<span class="name">anotherObsoleteMember</span>()</h3>
<p>This function is deprecated. We strongly advise against using it in new code.</p>
-<p>Use <a href="testqdoc-test-obsolete.html#obsoleteMember">obsoleteMember</a>() instead.</p>
+<p>Use <a href="testqdoc-test-obsolete.html#obsoleteMember" translate="no">obsoleteMember</a>() instead.</p>
<!-- @@@anotherObsoleteMember -->
<!-- $$$deprecatedMember[overload1]$$$deprecatedMember -->
-<h3 class="fn" id="deprecatedMember"><span class="type">void</span> Test::<span class="name">deprecatedMember</span>()</h3>
+<h3 class="fn" translate="no" id="deprecatedMember"><span class="type">void</span> Test::<span class="name">deprecatedMember</span>()</h3>
<p>This function is deprecated since 6.0. We strongly advise against using it in new code.</p>
-<p>Use <a href="testqdoc-test.html#someFunction">someFunction</a>() instead.</p>
+<p>Use <a href="testqdoc-test.html#someFunction" translate="no">someFunction</a>() instead.</p>
<!-- @@@deprecatedMember -->
<!-- $$$obsoleteMember[overload1]$$$obsoleteMember -->
-<h3 class="fn" id="obsoleteMember"><span class="type">void</span> Test::<span class="name">obsoleteMember</span>()</h3>
+<h3 class="fn" translate="no" id="obsoleteMember"><span class="type">void</span> Test::<span class="name">obsoleteMember</span>()</h3>
<p>This function is deprecated. We strongly advise against using it in new code.</p>
-<p>Use <a href="testqdoc-test.html#someFunction">someFunction</a>() instead.</p>
+<p>Use <a href="testqdoc-test.html#someFunction" translate="no">someFunction</a>() instead.</p>
<!-- @@@obsoleteMember -->
</body>
</html>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test.html b/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test.html
index ae92c0285..3efeed111 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-test.html
@@ -20,46 +20,46 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">Test Class</h1>
-<span class="small-subtitle">class <a href="testqdoc.html">TestQDoc</a>::Test</span>
+<h1 class="title" translate="no">Test Class</h1>
+<span class="small-subtitle" translate="no">class <a href="testqdoc.html" translate="no">TestQDoc</a>::Test</span>
<!-- $$$Test-brief -->
<p>A class in a namespace. <a href="#details">More...</a></p>
<!-- @@@Test -->
-<div class="table"><table class="alignedsummary">
+<div class="table"><table class="alignedsummary" translate="no">
<tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign"> <span class="preprocessor">#include &lt;Test&gt;</span>
</td></tr><tr><td class="memItemLeft rightAlign topAlign"> CMake:</td><td class="memItemRight bottomAlign"> find_package(Qt6 COMPONENTS QDocTest REQUIRED) <br/>
-target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="memItemLeft rightAlign topAlign"> qmake:</td><td class="memItemRight bottomAlign"> QT += testcpp</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Inherited By:</td><td class="memItemRight bottomAlign"> <p><a href="testqdoc-testderived.html">TestQDoc::TestDerived</a></p>
+target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="memItemLeft rightAlign topAlign"> qmake:</td><td class="memItemRight bottomAlign"> QT += testcpp</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Inherited By:</td><td class="memItemRight bottomAlign"> <p><a href="testqdoc-testderived.html" translate="no">TestQDoc::TestDerived</a></p>
</td></tr></table></div>
<ul>
<li><a href="testqdoc-test-members.html">List of all members, including inherited members</a></li>
<li><a href="testqdoc-test-obsolete.html">Deprecated members</a></li>
</ul>
<h2 id="public-types">Public Types</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#SomeType-typedef">SomeType</a></b></td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#SomeType-typedef" translate="no">SomeType</a></b></td></tr>
</table></div>
<h2 id="public-functions">Public Functions</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#Test">Test</a></b>()</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> TestQDoc::Test &amp;</td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#operator-eq">operator=</a></b>(TestQDoc::Test &amp;&amp;<i>other</i>)</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> void (*)(bool) </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#funcPtr">funcPtr</a></b>(bool <i>b</i>, const char *<i>s</i>)</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#inlineFunction">inlineFunction</a></b>()</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunction">someFunction</a></b>(int, int <i>v</i> = 0)</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunctionDefaultArg">someFunctionDefaultArg</a></b>(int <i>i</i>, bool <i>b</i> = false)</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#virtualFun">virtualFun</a></b>()</td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#Test" translate="no">Test</a></b>()</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> TestQDoc::Test &amp;</td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#operator-eq" translate="no">operator=</a></b>(TestQDoc::Test &amp;&amp;<i>other</i>)</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> void (*)(bool) </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#funcPtr" translate="no">funcPtr</a></b>(bool <i>b</i>, const char *<i>s</i>)</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#inlineFunction" translate="no">inlineFunction</a></b>()</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> int </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunction" translate="no">someFunction</a></b>(int, int <i>v</i> = 0)</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#someFunctionDefaultArg" translate="no">someFunctionDefaultArg</a></b>(int <i>i</i>, bool <i>b</i> = false)</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#virtualFun" translate="no">virtualFun</a></b>()</td></tr>
</table></div>
<h2 id="protected-functions">Protected Functions</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#overload">overload</a></b>()</td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#overload-1">overload</a></b>(bool <i>b</i>)</td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#overload" translate="no">overload</a></b>()</td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#overload-1" translate="no">overload</a></b>(bool <i>b</i>)</td></tr>
</table></div>
<h2 id="related-non-members">Related Non-Members</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> bool </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#operator-eq-eq">operator==</a></b>(const TestQDoc::Test &amp;<i>lhs</i>, const TestQDoc::Test &amp;<i>rhs</i>)</td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> bool </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#operator-eq-eq" translate="no">operator==</a></b>(const TestQDoc::Test &amp;<i>lhs</i>, const TestQDoc::Test &amp;<i>rhs</i>)</td></tr>
</table></div>
<h2 id="macros">Macros</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#QDOCTEST_MACRO2">QDOCTEST_MACRO2</a></b>(int &amp;<i>x</i>)</td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html#QDOCTEST_MACRO2" translate="no">QDOCTEST_MACRO2</a></b>(int &amp;<i>x</i>)</td></tr>
</table></div>
<!-- $$$Test-description -->
<div class="descr">
@@ -69,7 +69,7 @@ target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="me
<div class="types">
<h2>Member Type Documentation</h2>
<!-- $$$SomeType -->
-<h3 class="fn" id="SomeType-typedef">Test::<span class="name">SomeType</span></h3>
+<h3 class="fn" translate="no" id="SomeType-typedef">Test::<span class="name">SomeType</span></h3>
<p>A typedef.</p>
<!-- @@@SomeType -->
</div>
@@ -77,50 +77,50 @@ target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="me
<h2>Member Function Documentation</h2>
<!-- $$$ -->
<div class="fngroup">
-<h3 class="fn fngroupitem" id="overload"><code>[protected] </code><span class="type">void</span> Test::<span class="name">overload</span>()</h3><h3 class="fn fngroupitem" id="overload-1"><code>[protected, since Test 1.2] </code><span class="type">void</span> Test::<span class="name">overload</span>(<span class="type">bool</span> <i>b</i>)</h3></div>
-<p>Overloads that share a documentation comment, optionally taking a parameter <i>b</i>.</p>
+<h3 class="fn fngroupitem" translate="no" id="overload"><code translate="no">[protected] </code><span class="type">void</span> Test::<span class="name">overload</span>()</h3><h3 class="fn fngroupitem" translate="no" id="overload-1"><code translate="no">[protected, since Test 1.2] </code><span class="type">void</span> Test::<span class="name">overload</span>(<span class="type">bool</span> <i>b</i>)</h3></div>
+<p>Overloads that share a documentation comment, optionally taking a parameter <i translate="no">b</i>.</p>
<!-- @@@ -->
<!-- $$$Test[overload1]$$$Test -->
-<h3 class="fn" id="Test"><code>[default] </code>Test::<span class="name">Test</span>()</h3>
+<h3 class="fn" translate="no" id="Test"><code translate="no">[default] </code>Test::<span class="name">Test</span>()</h3>
<p>Default constructor.</p>
<!-- @@@Test -->
<!-- $$$operator=[overload1]$$$operator=TestQDoc::Test&& -->
-<h3 class="fn" id="operator-eq"><code>[default] </code><span class="type"><a href="testqdoc-test.html">TestQDoc::Test</a></span> &amp;Test::<span class="name">operator=</span>(<span class="type"><a href="testqdoc-test.html">TestQDoc::Test</a></span> &amp;&amp;<i>other</i>)</h3>
-<p>Move-assigns <i>other</i>.</p>
+<h3 class="fn" translate="no" id="operator-eq"><code translate="no">[default] </code><span class="type"><a href="testqdoc-test.html" translate="no">TestQDoc::Test</a></span> &amp;Test::<span class="name">operator=</span>(<span class="type"><a href="testqdoc-test.html" translate="no">TestQDoc::Test</a></span> &amp;&amp;<i>other</i>)</h3>
+<p>Move-assigns <i translate="no">other</i>.</p>
<!-- @@@operator= -->
<!-- $$$funcPtr[overload1]$$$funcPtrboolconstchar* -->
-<h3 class="fn" id="funcPtr"><span class="type">void</span> (*)(<span class="type">bool</span>) Test::<span class="name">funcPtr</span>(<span class="type">bool</span> <i>b</i>, const <span class="type">char</span> *<i>s</i>)</h3>
-<p>Returns a pointer to a function that takes a boolean. Uses <i>b</i> and <i>s</i>.</p>
+<h3 class="fn" translate="no" id="funcPtr"><span class="type">void</span> (*)(<span class="type">bool</span>) Test::<span class="name">funcPtr</span>(<span class="type">bool</span> <i>b</i>, const <span class="type">char</span> *<i>s</i>)</h3>
+<p>Returns a pointer to a function that takes a boolean. Uses <i translate="no">b</i> and <i translate="no">s</i>.</p>
<!-- @@@funcPtr -->
<!-- $$$inlineFunction[overload1]$$$inlineFunction -->
-<h3 class="fn" id="inlineFunction"><span class="type">void</span> Test::<span class="name">inlineFunction</span>()</h3>
+<h3 class="fn" translate="no" id="inlineFunction"><span class="type">void</span> Test::<span class="name">inlineFunction</span>()</h3>
<p>An inline function, documented using the \fn QDoc command.</p>
<!-- @@@inlineFunction -->
<!-- $$$someFunction[overload1]$$$someFunctionintint -->
-<h3 class="fn" id="someFunction"><span class="type">int</span> Test::<span class="name">someFunction</span>(<span class="type">int</span>, <span class="type">int</span> <i>v</i> = 0)</h3>
-<p>Function that takes a parameter <i>v</i>. Also returns the value of <i>v</i>.</p>
+<h3 class="fn" translate="no" id="someFunction"><span class="type">int</span> Test::<span class="name">someFunction</span>(<span class="type">int</span>, <span class="type">int</span> <i>v</i> = 0)</h3>
+<p>Function that takes a parameter <i translate="no">v</i>. Also returns the value of <i translate="no">v</i>.</p>
<!-- @@@someFunction -->
<!-- $$$someFunctionDefaultArg[overload1]$$$someFunctionDefaultArgintbool -->
-<h3 class="fn" id="someFunctionDefaultArg"><span class="type">void</span> Test::<span class="name">someFunctionDefaultArg</span>(<span class="type">int</span> <i>i</i>, <span class="type">bool</span> <i>b</i> = false)</h3>
-<p>Function that takes a parameter <i>i</i> and <i>b</i>.</p>
+<h3 class="fn" translate="no" id="someFunctionDefaultArg"><span class="type">void</span> Test::<span class="name">someFunctionDefaultArg</span>(<span class="type">int</span> <i>i</i>, <span class="type">bool</span> <i>b</i> = false)</h3>
+<p>Function that takes a parameter <i translate="no">i</i> and <i translate="no">b</i>.</p>
<!-- @@@someFunctionDefaultArg -->
<!-- $$$virtualFun[overload1]$$$virtualFun -->
-<h3 class="fn" id="virtualFun"><code>[virtual] </code><span class="type">void</span> Test::<span class="name">virtualFun</span>()</h3>
+<h3 class="fn" translate="no" id="virtualFun"><code translate="no">[virtual] </code><span class="type">void</span> Test::<span class="name">virtualFun</span>()</h3>
<p>Function that must be reimplemented.</p>
<!-- @@@virtualFun -->
</div>
<div class="relnonmem">
<h2>Related Non-Members</h2>
<!-- $$$operator==[overload1]$$$operator==constTestQDoc::Test&constTestQDoc::Test& -->
-<h3 class="fn" id="operator-eq-eq"><span class="type">bool</span> <span class="name">operator==</span>(const <span class="type"><a href="testqdoc-test.html">TestQDoc::Test</a></span> &amp;<i>lhs</i>, const <span class="type"><a href="testqdoc-test.html">TestQDoc::Test</a></span> &amp;<i>rhs</i>)</h3>
-<p>Returns true if <i>lhs</i> and <i>rhs</i> are equal.</p>
+<h3 class="fn" translate="no" id="operator-eq-eq"><span class="type">bool</span> <span class="name">operator==</span>(const <span class="type"><a href="testqdoc-test.html" translate="no">TestQDoc::Test</a></span> &amp;<i>lhs</i>, const <span class="type"><a href="testqdoc-test.html" translate="no">TestQDoc::Test</a></span> &amp;<i>rhs</i>)</h3>
+<p>Returns true if <i translate="no">lhs</i> and <i translate="no">rhs</i> are equal.</p>
<!-- @@@operator== -->
</div>
<div class="macros">
<h2>Macro Documentation</h2>
<!-- $$$QDOCTEST_MACRO2[overload1]$$$QDOCTEST_MACRO2int& -->
-<h3 class="fn" id="QDOCTEST_MACRO2"><code>[since Test 1.1] </code><span class="name">QDOCTEST_MACRO2</span>(<span class="type">int</span> &amp;<i>x</i>)</h3>
-<p>A macro with argument <i>x</i>.</p>
+<h3 class="fn" translate="no" id="QDOCTEST_MACRO2"><code translate="no">[since Test 1.1] </code><span class="name">QDOCTEST_MACRO2</span>(<span class="type">int</span> &amp;<i>x</i>)</h3>
+<p>A macro with argument <i translate="no">x</i>.</p>
<p>This macro was introduced in Test 1.1.</p>
<!-- @@@QDOCTEST_MACRO2 -->
</div>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-testderived-members.html b/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-testderived-members.html
index c17683bc9..a9e01e700 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-testderived-members.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-testderived-members.html
@@ -8,21 +8,21 @@
<body>
<li>TestDerived</li>
<div class="sidebar"><div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">List of All Members for TestDerived</h1>
+<h1 class="title" translate="no">List of All Members for TestDerived</h1>
<p>This is the complete list of members for <a href="testqdoc-testderived.html">TestQDoc::TestDerived</a>, including inherited members.</p>
<ul>
-<li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#DerivedType-typedef">DerivedType</a></b></span></li>
-<li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#NotTypedef-typedef">NotTypedef</a></b></span></li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#SomeType-typedef">SomeType</a></b></span></li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#operator-eq">operator=</a></b></span>(TestQDoc::Test &amp;&amp;) : TestQDoc::Test &amp;</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#funcPtr">funcPtr</a></b></span>(bool, const char *) : void (*)(bool)</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#inlineFunction">inlineFunction</a></b></span>()</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#overload">overload</a></b></span>()</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#overload-1">overload</a></b></span>(bool)</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#someFunction">someFunction</a></b></span>(int, int) : int</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#someFunctionDefaultArg">someFunctionDefaultArg</a></b></span>(int, bool)</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-test.html#virtualFun">virtualFun</a></b></span>()</li>
-<li class="fn"><span class="name"><b><a href="testqdoc-testderived.html#virtualFun">virtualFun</a></b></span>()</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-testderived.html#DerivedType-typedef" translate="no">DerivedType</a></b></span></li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-testderived.html#NotTypedef-typedef" translate="no">NotTypedef</a></b></span></li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#SomeType-typedef" translate="no">SomeType</a></b></span></li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#operator-eq" translate="no">operator=</a></b></span>(TestQDoc::Test &amp;&amp;) : TestQDoc::Test &amp;</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#funcPtr" translate="no">funcPtr</a></b></span>(bool, const char *) : void (*)(bool)</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#inlineFunction" translate="no">inlineFunction</a></b></span>()</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#overload" translate="no">overload</a></b></span>()</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#overload-1" translate="no">overload</a></b></span>(bool)</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#someFunction" translate="no">someFunction</a></b></span>(int, int) : int</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#someFunctionDefaultArg" translate="no">someFunctionDefaultArg</a></b></span>(int, bool)</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-test.html#virtualFun" translate="no">virtualFun</a></b></span>()</li>
+<li class="fn" translate="no"><span class="name"><b><a href="testqdoc-testderived.html#virtualFun" translate="no">virtualFun</a></b></span>()</li>
</ul>
</body>
</html>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-testderived-obsolete.html b/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-testderived-obsolete.html
index ace00a295..8cf4ddd68 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-testderived-obsolete.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-testderived-obsolete.html
@@ -8,15 +8,15 @@
<body>
<li>TestDerived</li>
<div class="sidebar"><div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">Obsolete Members for TestDerived</h1>
-<p><b>The following members of class <a href="testqdoc-testderived.html">TestDerived</a> are deprecated.</b> They are provided to keep old source code working. We strongly advise against using them in new code.</p>
+<h1 class="title" translate="no">Obsolete Members for TestDerived</h1>
+<p><b>The following members of class <a href="testqdoc-testderived.html" translate="no">TestDerived</a> are deprecated.</b> They are provided to keep old source code working. We strongly advise against using them in new code.</p>
<h2>Static Public Members</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft topAlign rightAlign"> <code>(deprecated) </code>void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived-obsolete.html#staticObsoleteMember">staticObsoleteMember</a></b>()</td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft topAlign rightAlign"> <code translate="no">(deprecated) </code>void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived-obsolete.html#staticObsoleteMember" translate="no">staticObsoleteMember</a></b>()</td></tr>
</table></div>
<h2>Member Function Documentation</h2>
<!-- $$$staticObsoleteMember[overload1]$$$staticObsoleteMember -->
-<h3 class="fn" id="staticObsoleteMember"><code>[static] </code><span class="type">void</span> TestDerived::<span class="name">staticObsoleteMember</span>()</h3>
+<h3 class="fn" translate="no" id="staticObsoleteMember"><code translate="no">[static] </code><span class="type">void</span> TestDerived::<span class="name">staticObsoleteMember</span>()</h3>
<p>This function is deprecated. We strongly advise against using it in new code.</p>
<p>Static obsolete method.</p>
<!-- @@@staticObsoleteMember -->
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-testderived.html b/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-testderived.html
index 813e00f55..3eb6670a2 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-testderived.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/testqdoc-testderived.html
@@ -17,27 +17,27 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">TestDerived Class</h1>
-<span class="small-subtitle">class <a href="testqdoc.html">TestQDoc</a>::TestDerived</span>
+<h1 class="title" translate="no">TestDerived Class</h1>
+<span class="small-subtitle" translate="no">class <a href="testqdoc.html" translate="no">TestQDoc</a>::TestDerived</span>
<!-- $$$TestDerived-brief -->
<p>A derived class in a namespace. <a href="#details">More...</a></p>
<!-- @@@TestDerived -->
-<div class="table"><table class="alignedsummary">
+<div class="table"><table class="alignedsummary" translate="no">
<tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign"> <span class="preprocessor">#include &lt;TestDerived&gt;</span>
</td></tr><tr><td class="memItemLeft rightAlign topAlign"> CMake:</td><td class="memItemRight bottomAlign"> find_package(Qt6 COMPONENTS QDocTest REQUIRED) <br/>
-target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="memItemLeft rightAlign topAlign"> qmake:</td><td class="memItemRight bottomAlign"> QT += testcpp</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Inherits:</td><td class="memItemRight bottomAlign"> <a href="testqdoc-test.html">TestQDoc::Test</a></td></tr></table></div>
+target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="memItemLeft rightAlign topAlign"> qmake:</td><td class="memItemRight bottomAlign"> QT += testcpp</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Inherits:</td><td class="memItemRight bottomAlign"> <a href="testqdoc-test.html" translate="no">TestQDoc::Test</a></td></tr></table></div>
<ul>
<li><a href="testqdoc-testderived-members.html">List of all members, including inherited members</a></li>
<li><a href="testqdoc-testderived-obsolete.html">Deprecated members</a></li>
</ul>
<h2 id="public-types">Public Types</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#DerivedType-typedef">DerivedType</a></b></td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#NotTypedef-typedef">NotTypedef</a></b></td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#DerivedType-typedef" translate="no">DerivedType</a></b></td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#NotTypedef-typedef" translate="no">NotTypedef</a></b></td></tr>
</table></div>
<h2 id="reimplemented-public-functions">Reimplemented Public Functions</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#virtualFun">virtualFun</a></b>() override</td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> virtual void </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html#virtualFun" translate="no">virtualFun</a></b>() override</td></tr>
</table></div>
<!-- $$$TestDerived-description -->
<div class="descr">
@@ -47,19 +47,19 @@ target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="me
<div class="types">
<h2>Member Type Documentation</h2>
<!-- $$$DerivedType -->
-<h3 class="fn" id="DerivedType-typedef"><code>[alias] </code>TestDerived::<span class="name">DerivedType</span></h3>
+<h3 class="fn" translate="no" id="DerivedType-typedef"><code translate="no">[alias] </code>TestDerived::<span class="name">DerivedType</span></h3>
<p>An aliased typedef.</p>
<!-- @@@DerivedType -->
<!-- $$$NotTypedef -->
-<h3 class="fn" id="NotTypedef-typedef"><code>[alias] </code>TestDerived::<span class="name">NotTypedef</span></h3>
+<h3 class="fn" translate="no" id="NotTypedef-typedef"><code translate="no">[alias] </code>TestDerived::<span class="name">NotTypedef</span></h3>
<p>I'm an alias, not a typedef.</p>
<!-- @@@NotTypedef -->
</div>
<div class="func">
<h2>Member Function Documentation</h2>
<!-- $$$virtualFun[overload1]$$$virtualFun -->
-<h3 class="fn" id="virtualFun"><code>[override virtual] </code><span class="type">void</span> TestDerived::<span class="name">virtualFun</span>()</h3>
-<p>Reimplements: <a href="testqdoc-test.html#virtualFun">Test::virtualFun</a>().</p>
+<h3 class="fn" translate="no" id="virtualFun"><code translate="no">[override virtual] </code><span class="type">void</span> TestDerived::<span class="name">virtualFun</span>()</h3>
+<p>Reimplements: <a href="testqdoc-test.html#virtualFun" translate="no">Test::virtualFun</a>().</p>
<!-- @@@virtualFun -->
</div>
</body>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/testqdoc.html b/tests/auto/qdoc/generatedoutput/expected_output/testqdoc.html
index 289712177..b625ebf9b 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/testqdoc.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/testqdoc.html
@@ -17,22 +17,22 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">TestQDoc Namespace</h1>
+<h1 class="title" translate="no">TestQDoc Namespace</h1>
<!-- $$$TestQDoc-brief -->
<p>A namespace. <a href="#details">More...</a></p>
<!-- @@@TestQDoc -->
-<div class="table"><table class="alignedsummary">
+<div class="table"><table class="alignedsummary" translate="no">
<tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign"> <span class="preprocessor">#include &lt;TestCPP&gt;</span>
</td></tr><tr><td class="memItemLeft rightAlign topAlign"> CMake:</td><td class="memItemRight bottomAlign"> find_package(Qt6 COMPONENTS QDocTest REQUIRED) <br/>
target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="memItemLeft rightAlign topAlign"> qmake:</td><td class="memItemRight bottomAlign"> QT += testcpp</td></tr></table></div>
<h2 id="classes">Classes</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> class </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html">Test</a></b></td></tr>
-<tr><td class="memItemLeft rightAlign topAlign"> class </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html">TestDerived</a></b></td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> class </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-test.html" translate="no">Test</a></b></td></tr>
+<tr><td class="memItemLeft rightAlign topAlign"> class </td><td class="memItemRight bottomAlign"><b><a href="testqdoc-testderived.html" translate="no">TestDerived</a></b></td></tr>
</table></div>
<h2 id="macros">Macros</h2>
-<div class="table"><table class="alignedsummary">
-<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc.html#QDOCTEST_MACRO">QDOCTEST_MACRO</a></b></td></tr>
+<div class="table"><table class="alignedsummary" translate="no">
+<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="testqdoc.html#QDOCTEST_MACRO" translate="no">QDOCTEST_MACRO</a></b></td></tr>
</table></div>
<!-- $$$TestQDoc-description -->
<div class="descr">
@@ -53,7 +53,7 @@ target_link_libraries(mytarget PRIVATE Qt6::QDocTest)</td></tr><tr><td class="me
<div class="macros">
<h2>Macro Documentation</h2>
<!-- $$$QDOCTEST_MACRO[overload1]$$$QDOCTEST_MACRO -->
-<h3 class="fn" id="QDOCTEST_MACRO"><span class="name">QDOCTEST_MACRO</span></h3>
+<h3 class="fn" translate="no" id="QDOCTEST_MACRO"><span class="name">QDOCTEST_MACRO</span></h3>
<!-- @@@QDOCTEST_MACRO -->
</div>
</body>
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/third.html b/tests/auto/qdoc/generatedoutput/expected_output/third.html
index 3ca46d463..8fb76172e 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/third.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/third.html
@@ -15,8 +15,8 @@
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">Third Class</h1>
-<div class="table"><table class="alignedsummary">
+<h1 class="title" translate="no">Third Class</h1>
+<div class="table"><table class="alignedsummary" translate="no">
<tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign"> <span class="preprocessor">#include &lt;Third&gt;</span>
</td></tr></table></div>
<!-- $$$Third-description -->
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/toc.html b/tests/auto/qdoc/generatedoutput/expected_output/toc.html
index f34ce0db6..5901538d0 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/toc.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/toc.html
@@ -16,9 +16,9 @@
<!-- $$$toc.html-description -->
<div class="descr" id="details">
<ul>
-<li><a href="qdoctests-qdocfileoutput.html">QDoc Testing</a></li>
-<li><a href="qdoctests-qdocfileoutput-linking.html">QDoc Linking Test</a></li>
-<li><a href="toc.html">Table of Contents</a></li>
+<li><a href="qdoctests-qdocfileoutput.html" translate="no">QDoc Testing</a></li>
+<li><a href="qdoctests-qdocfileoutput-linking.html" translate="no">QDoc Linking Test</a></li>
+<li><a href="toc.html" translate="no">Table of Contents</a></li>
</ul>
</div>
<!-- @@@toc.html -->
diff --git a/tests/auto/qdoc/generatedoutput/expected_output/uicomponents-qmlmodule.html b/tests/auto/qdoc/generatedoutput/expected_output/uicomponents-qmlmodule.html
index 537bfab91..3e75ad12d 100644
--- a/tests/auto/qdoc/generatedoutput/expected_output/uicomponents-qmlmodule.html
+++ b/tests/auto/qdoc/generatedoutput/expected_output/uicomponents-qmlmodule.html
@@ -7,17 +7,17 @@
</head>
<body>
<div class="sidebar"><div class="sidebar-content" id="sidebar-content"></div></div>
-<h1 class="title">UI Components</h1>
+<h1 class="title" translate="no">UI Components</h1>
<!-- $$$UIComponents-description -->
<div class="descr" id="details">
<p>This is a listing of a list of UI components implemented by QML types. These files are available for general import and they are based on the Qt Quick Code Samples.</p>
-<p>This module is part of the <a href="test-componentset-example.html">UIComponents</a> example.</p>
+<p>This module is part of the <a href="test-componentset-example.html" translate="no">UIComponents</a> example.</p>
</div>
<!-- @@@UIComponents -->
<div class="table"><table class="annotated">
-<tr class="odd topAlign"><td class="tblName"><p><a href="qml-uicomponents-progressbar.html">ProgressBar</a></p></td><td class="tblDescr"><p>A component that shows the progress of an event</p></td></tr>
-<tr class="even topAlign"><td class="tblName"><p><a href="qml-uicomponents-switch.html">Switch</a></p></td><td class="tblDescr"><p>A component that can be turned on or off</p></td></tr>
-<tr class="odd topAlign"><td class="tblName"><p><a href="qml-uicomponents-tabwidget.html">TabWidget</a></p></td><td class="tblDescr"><p>A widget that places its children as tabs</p></td></tr>
+<tr class="odd topAlign"><td class="tblName" translate="no"><p><a href="qml-uicomponents-progressbar.html">ProgressBar</a></p></td><td class="tblDescr"><p>A component that shows the progress of an event</p></td></tr>
+<tr class="even topAlign"><td class="tblName" translate="no"><p><a href="qml-uicomponents-switch.html">Switch</a></p></td><td class="tblDescr"><p>A component that can be turned on or off</p></td></tr>
+<tr class="odd topAlign"><td class="tblName" translate="no"><p><a href="qml-uicomponents-tabwidget.html">TabWidget</a></p></td><td class="tblDescr"><p>A widget that places its children as tabs</p></td></tr>
</table></div>
</body>
</html>
diff --git a/tests/auto/qdoc/generatedoutput/testdata/images/01.png b/tests/auto/qdoc/generatedoutput/testdata/images/01.png
new file mode 100644
index 000000000..d73ab969b
--- /dev/null
+++ b/tests/auto/qdoc/generatedoutput/testdata/images/01.png
Binary files differ
diff --git a/tests/auto/qdoc/generatedoutput/testdata/includefromexampledirs/excludes/parentinclude.qdoc b/tests/auto/qdoc/generatedoutput/testdata/includefromexampledirs/excludes/parentinclude.qdoc
index b99b2f622..6e31f179f 100644
--- a/tests/auto/qdoc/generatedoutput/testdata/includefromexampledirs/excludes/parentinclude.qdoc
+++ b/tests/auto/qdoc/generatedoutput/testdata/includefromexampledirs/excludes/parentinclude.qdoc
@@ -37,11 +37,12 @@
*/
/*!
-//! children-qmlproperty
+ //! --- Observe the indented snippet tag:
+ //! children-qmlproperty
\qmlproperty list<Child> AbstractParent::children
\qmldefault
\brief Children of the type.
-//! children-qmlproperty
+ //! children-qmlproperty
*/
/*!
diff --git a/tests/auto/qdoc/generatedoutput/testdata/outputfromqdocfiles/qdoctests-outputfromqdocfiles.qdoc b/tests/auto/qdoc/generatedoutput/testdata/outputfromqdocfiles/qdoctests-outputfromqdocfiles.qdoc
index 963619afe..41f3aa80e 100644
--- a/tests/auto/qdoc/generatedoutput/testdata/outputfromqdocfiles/qdoctests-outputfromqdocfiles.qdoc
+++ b/tests/auto/qdoc/generatedoutput/testdata/outputfromqdocfiles/qdoctests-outputfromqdocfiles.qdoc
@@ -107,7 +107,7 @@
*/
/*!
- \page qdoctests-qdocfileoutput-exhaustive.html
+ \page qdoctests-qdocfileoutput-exhaustive.html
\title Exhaustive testing of QDoc commands
\brief This page is a dumping ground for QDoc commands under test.
@@ -123,7 +123,7 @@
\badcode
This is bad code
\endcode
-
+
This text should have a line break riiiiight \br noooow.
\b{All your text belong to bold}
@@ -174,6 +174,18 @@
\hr
+ An inline image:
+
+ The is a paragraph containing an \inlineimage 01.png inline image to test
+ if qdoc handles them properly, without considering rest of the line as
+ alt text for the image.
+
+ An inline image with alt text:
+
+ Here is another example of \inlineimage 01.png {No. 1} inline image with
+ alternative text, which should be added as an attribute to the inline
+ image.
+
\warning The following commands have yet to be tested:
footnote
link
@@ -183,7 +195,6 @@
index
topicref // or just don’t care, remove it
image
- inlineimage
printline
printto
printuntil // what’s the difference between printto and printuntil???