diff --git a/docs/API/knut/rcdocument.md b/docs/API/knut/rcdocument.md
index 02747946..3daf0d20 100644
--- a/docs/API/knut/rcdocument.md
+++ b/docs/API/knut/rcdocument.md
@@ -32,6 +32,7 @@ import Knut
|[ToolBar](../knut/toolbar.md) |**[action](#action)**(string id)|
|array<[Action](../knut/action.md)> |**[actionsFromMenu](#actionsFromMenu)**(string menuId)|
|array<[Action](../knut/action.md)> |**[actionsFromToolbar](#actionsFromToolbar)**(string toolBarId)|
+|string |**[captionDialogForLanguage](#captionDialogForLanguage)**(string language, string dialogId)|
|void |**[convertActions](#convertActions)**(int flags)|
||**[convertAssets](#convertAssets)**(int flags)|
|string |**[convertLanguageToCode](#convertLanguageToCode)**(string language)|
@@ -126,6 +127,10 @@ Returns all actions used in the menu `menuId`.
Returns all actions used in the toolbar `toolBarId`.
+#### string **captionDialogForLanguage**(string language, string dialogId)
+
+Returns the string with `id` for the given `language`.
+
#### void **convertActions**(int flags)
diff --git a/src/core/rcdocument.cpp b/src/core/rcdocument.cpp
index e8b10f15..5896271e 100644
--- a/src/core/rcdocument.cpp
+++ b/src/core/rcdocument.cpp
@@ -486,6 +486,24 @@ QString RcDocument::stringForDialogAndLanguage(const QString &language, const QS
}
}
+/*!
+ * \qmlmethod string RcDocument::captionDialogForLanguage(string language, string dialogId)
+ * Returns the string with `id` for the given `language`.
+ */
+QString RcDocument::captionDialogForLanguage(const QString &language, const QString &dialogId) const
+{
+ LOG(language, dialogId);
+
+ if (m_rcFile.isValid && m_rcFile.data.contains(language)) {
+ const RcCore::Data data = const_cast(&m_rcFile)->data[language];
+ const auto dialog = data.dialog(dialogId);
+ return dialog->caption;
+ } else {
+ spdlog::warn("{}: language {} does not exist in the rc file.", FUNCTION_NAME, language);
+ return {};
+ }
+}
+
/*!
* \qmlmethod string RcDocument::stringForDialog(string dialogId, string id)
* Returns the string with `id` for the given `dialogid`.
diff --git a/src/core/rcdocument.h b/src/core/rcdocument.h
index 67a2ee8d..a361414a 100644
--- a/src/core/rcdocument.h
+++ b/src/core/rcdocument.h
@@ -104,6 +104,8 @@ class RcDocument : public Document
const RcCore::RcFile &file() const;
+ Q_INVOKABLE QString captionDialogForLanguage(const QString &language, const QString &dialogId) const;
+
public slots:
void convertAssets(int flags = DEFAULT_VALUE(ConversionFlag, RcAssetFlags));
void convertActions(int flags = DEFAULT_VALUE(ConversionFlags, RcAssetFlags));