mirror of
https://github.com/nomic-ai/gpt4all.git
synced 2024-10-01 01:06:10 -04:00
Fix up concat strings in favor of args, remove some translations that are not meant to be translated and add chinese.
Signed-off-by: Adam Treat <treat.adam@gmail.com>
This commit is contained in:
parent
8723508d6c
commit
9283e09981
@ -239,8 +239,8 @@ void Chat::newPromptResponsePair(const QString &prompt)
|
|||||||
{
|
{
|
||||||
resetResponseState();
|
resetResponseState();
|
||||||
m_chatModel->updateCurrentResponse(m_chatModel->count() - 1, false);
|
m_chatModel->updateCurrentResponse(m_chatModel->count() - 1, false);
|
||||||
m_chatModel->appendPrompt(tr("Prompt: "), prompt);
|
m_chatModel->appendPrompt("Prompt: ", prompt);
|
||||||
m_chatModel->appendResponse(tr("Response: "), prompt);
|
m_chatModel->appendResponse("Response: ", prompt);
|
||||||
emit resetResponseRequested();
|
emit resetResponseRequested();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -248,8 +248,8 @@ void Chat::serverNewPromptResponsePair(const QString &prompt)
|
|||||||
{
|
{
|
||||||
resetResponseState();
|
resetResponseState();
|
||||||
m_chatModel->updateCurrentResponse(m_chatModel->count() - 1, false);
|
m_chatModel->updateCurrentResponse(m_chatModel->count() - 1, false);
|
||||||
m_chatModel->appendPrompt(tr("Prompt: "), prompt);
|
m_chatModel->appendPrompt("Prompt: ", prompt);
|
||||||
m_chatModel->appendResponse(tr("Response: "), prompt);
|
m_chatModel->appendResponse("Response: ", prompt);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Chat::isRecalc() const
|
bool Chat::isRecalc() const
|
||||||
|
@ -20,7 +20,7 @@ Window {
|
|||||||
minimumWidth: 1280
|
minimumWidth: 1280
|
||||||
minimumHeight: 720
|
minimumHeight: 720
|
||||||
visible: true
|
visible: true
|
||||||
title: qsTr("GPT4All v") + Qt.application.version
|
title: qsTr("GPT4All v%1").arg(Qt.application.version)
|
||||||
|
|
||||||
Settings {
|
Settings {
|
||||||
property alias x: window.x
|
property alias x: window.x
|
||||||
@ -108,14 +108,14 @@ Window {
|
|||||||
shouldShowBusy: false
|
shouldShowBusy: false
|
||||||
closePolicy: Popup.NoAutoClose
|
closePolicy: Popup.NoAutoClose
|
||||||
modal: true
|
modal: true
|
||||||
text: qsTr("<h3>Encountered an error starting up:</h3><br>")
|
text: qsTr("<h3>Encountered an error starting up:</h3><br>"
|
||||||
+ qsTr("<i>\"Incompatible hardware detected.\"</i>")
|
+ "<i>\"Incompatible hardware detected.\"</i>"
|
||||||
+ qsTr("<br><br>Unfortunately, your CPU does not meet the minimal requirements to run ")
|
+ "<br><br>Unfortunately, your CPU does not meet the minimal requirements to run "
|
||||||
+ qsTr("this program. In particular, it does not support AVX intrinsics which this ")
|
+ "this program. In particular, it does not support AVX intrinsics which this "
|
||||||
+ qsTr("program requires to successfully run a modern large language model. ")
|
+ "program requires to successfully run a modern large language model. "
|
||||||
+ qsTr("The only solution at this time is to upgrade your hardware to a more modern CPU.")
|
+ "The only solution at this time is to upgrade your hardware to a more modern CPU."
|
||||||
+ qsTr("<br><br>See here for more information: <a href=\"https://en.wikipedia.org/wiki/Advanced_Vector_Extensions\">")
|
+ "<br><br>See here for more information: <a href=\"https://en.wikipedia.org/wiki/Advanced_Vector_Extensions\">"
|
||||||
+ qsTr("https://en.wikipedia.org/wiki/Advanced_Vector_Extensions</a>")
|
+ "https://en.wikipedia.org/wiki/Advanced_Vector_Extensions</a>");
|
||||||
}
|
}
|
||||||
|
|
||||||
PopupDialog {
|
PopupDialog {
|
||||||
@ -124,12 +124,12 @@ Window {
|
|||||||
shouldTimeOut: false
|
shouldTimeOut: false
|
||||||
shouldShowBusy: false
|
shouldShowBusy: false
|
||||||
modal: true
|
modal: true
|
||||||
text: qsTr("<h3>Encountered an error starting up:</h3><br>")
|
text: qsTr("<h3>Encountered an error starting up:</h3><br>"
|
||||||
+ qsTr("<i>\"Inability to access settings file.\"</i>")
|
+ "<i>\"Inability to access settings file.\"</i>"
|
||||||
+ qsTr("<br><br>Unfortunately, something is preventing the program from accessing ")
|
+ "<br><br>Unfortunately, something is preventing the program from accessing "
|
||||||
+ qsTr("the settings file. This could be caused by incorrect permissions in the local ")
|
+ "the settings file. This could be caused by incorrect permissions in the local "
|
||||||
+ qsTr("app config directory where the settings file is located. ")
|
+ "app config directory where the settings file is located. "
|
||||||
+ qsTr("Check out our <a href=\"https://discord.gg/4M2QFmTt2k\">discord channel</a> for help.")
|
+ "Check out our <a href=\"https://discord.gg/4M2QFmTt2k\">discord channel</a> for help.")
|
||||||
}
|
}
|
||||||
|
|
||||||
StartupDialog {
|
StartupDialog {
|
||||||
|
@ -1553,7 +1553,7 @@ void ModelList::parseModelsJsonFile(const QByteArray &jsonData, bool save)
|
|||||||
{ ModelList::FilesizeRole, "minimal" },
|
{ ModelList::FilesizeRole, "minimal" },
|
||||||
{ ModelList::OnlineRole, true },
|
{ ModelList::OnlineRole, true },
|
||||||
{ ModelList::DescriptionRole,
|
{ ModelList::DescriptionRole,
|
||||||
tr("<strong>OpenAI's ChatGPT model GPT-3.5 Turbo</strong><br>") + chatGPTDesc },
|
tr("<strong>OpenAI's ChatGPT model GPT-3.5 Turbo</strong><br> %1").arg(chatGPTDesc) },
|
||||||
{ ModelList::RequiresVersionRole, "2.7.4" },
|
{ ModelList::RequiresVersionRole, "2.7.4" },
|
||||||
{ ModelList::OrderRole, "ca" },
|
{ ModelList::OrderRole, "ca" },
|
||||||
{ ModelList::RamrequiredRole, 0 },
|
{ ModelList::RamrequiredRole, 0 },
|
||||||
@ -1581,7 +1581,7 @@ void ModelList::parseModelsJsonFile(const QByteArray &jsonData, bool save)
|
|||||||
{ ModelList::FilesizeRole, "minimal" },
|
{ ModelList::FilesizeRole, "minimal" },
|
||||||
{ ModelList::OnlineRole, true },
|
{ ModelList::OnlineRole, true },
|
||||||
{ ModelList::DescriptionRole,
|
{ ModelList::DescriptionRole,
|
||||||
tr("<strong>OpenAI's ChatGPT model GPT-4</strong><br>") + chatGPTDesc + chatGPT4Warn },
|
tr("<strong>OpenAI's ChatGPT model GPT-4</strong><br> %1 %2").arg(chatGPTDesc).arg(chatGPT4Warn) },
|
||||||
{ ModelList::RequiresVersionRole, "2.7.4" },
|
{ ModelList::RequiresVersionRole, "2.7.4" },
|
||||||
{ ModelList::OrderRole, "cb" },
|
{ ModelList::OrderRole, "cb" },
|
||||||
{ ModelList::RamrequiredRole, 0 },
|
{ ModelList::RamrequiredRole, 0 },
|
||||||
@ -1612,7 +1612,7 @@ void ModelList::parseModelsJsonFile(const QByteArray &jsonData, bool save)
|
|||||||
{ ModelList::FilesizeRole, "minimal" },
|
{ ModelList::FilesizeRole, "minimal" },
|
||||||
{ ModelList::OnlineRole, true },
|
{ ModelList::OnlineRole, true },
|
||||||
{ ModelList::DescriptionRole,
|
{ ModelList::DescriptionRole,
|
||||||
tr("<strong>Mistral Tiny model</strong><br>") + mistralDesc },
|
tr("<strong>Mistral Tiny model</strong><br> %1").arg(mistralDesc) },
|
||||||
{ ModelList::RequiresVersionRole, "2.7.4" },
|
{ ModelList::RequiresVersionRole, "2.7.4" },
|
||||||
{ ModelList::OrderRole, "cc" },
|
{ ModelList::OrderRole, "cc" },
|
||||||
{ ModelList::RamrequiredRole, 0 },
|
{ ModelList::RamrequiredRole, 0 },
|
||||||
@ -1637,7 +1637,7 @@ void ModelList::parseModelsJsonFile(const QByteArray &jsonData, bool save)
|
|||||||
{ ModelList::FilesizeRole, "minimal" },
|
{ ModelList::FilesizeRole, "minimal" },
|
||||||
{ ModelList::OnlineRole, true },
|
{ ModelList::OnlineRole, true },
|
||||||
{ ModelList::DescriptionRole,
|
{ ModelList::DescriptionRole,
|
||||||
tr("<strong>Mistral Small model</strong><br>") + mistralDesc },
|
tr("<strong>Mistral Small model</strong><br> %1").arg(mistralDesc) },
|
||||||
{ ModelList::RequiresVersionRole, "2.7.4" },
|
{ ModelList::RequiresVersionRole, "2.7.4" },
|
||||||
{ ModelList::OrderRole, "cd" },
|
{ ModelList::OrderRole, "cd" },
|
||||||
{ ModelList::RamrequiredRole, 0 },
|
{ ModelList::RamrequiredRole, 0 },
|
||||||
@ -1663,7 +1663,7 @@ void ModelList::parseModelsJsonFile(const QByteArray &jsonData, bool save)
|
|||||||
{ ModelList::FilesizeRole, "minimal" },
|
{ ModelList::FilesizeRole, "minimal" },
|
||||||
{ ModelList::OnlineRole, true },
|
{ ModelList::OnlineRole, true },
|
||||||
{ ModelList::DescriptionRole,
|
{ ModelList::DescriptionRole,
|
||||||
tr("<strong>Mistral Medium model</strong><br>") + mistralDesc },
|
tr("<strong>Mistral Medium model</strong><br> %1").arg(mistralDesc) },
|
||||||
{ ModelList::RequiresVersionRole, "2.7.4" },
|
{ ModelList::RequiresVersionRole, "2.7.4" },
|
||||||
{ ModelList::OrderRole, "ce" },
|
{ ModelList::OrderRole, "ce" },
|
||||||
{ ModelList::RamrequiredRole, 0 },
|
{ ModelList::RamrequiredRole, 0 },
|
||||||
|
@ -94,7 +94,7 @@ Rectangle {
|
|||||||
function onDiscoverInProgressChanged() {
|
function onDiscoverInProgressChanged() {
|
||||||
if (ModelList.discoverInProgress) {
|
if (ModelList.discoverInProgress) {
|
||||||
discoverField.textBeingSearched = discoverField.text;
|
discoverField.textBeingSearched = discoverField.text;
|
||||||
discoverField.text = qsTr("Searching \u00B7 ") + discoverField.textBeingSearched;
|
discoverField.text = qsTr("Searching \u00B7 %1").arg(discoverField.textBeingSearched);
|
||||||
} else {
|
} else {
|
||||||
discoverField.text = discoverField.textBeingSearched;
|
discoverField.text = discoverField.textBeingSearched;
|
||||||
discoverField.textBeingSearched = "";
|
discoverField.textBeingSearched = "";
|
||||||
@ -190,7 +190,7 @@ Rectangle {
|
|||||||
rightPadding: 30
|
rightPadding: 30
|
||||||
color: theme.textColor
|
color: theme.textColor
|
||||||
text: {
|
text: {
|
||||||
return qsTr("Sort by: ") + comboSort.displayText
|
return qsTr("Sort by: %1").arg(comboSort.displayText)
|
||||||
}
|
}
|
||||||
font.pixelSize: theme.fontSizeLarger
|
font.pixelSize: theme.fontSizeLarger
|
||||||
verticalAlignment: Text.AlignVCenter
|
verticalAlignment: Text.AlignVCenter
|
||||||
@ -215,7 +215,7 @@ Rectangle {
|
|||||||
rightPadding: 30
|
rightPadding: 30
|
||||||
color: theme.textColor
|
color: theme.textColor
|
||||||
text: {
|
text: {
|
||||||
return qsTr("Sort dir: ") + comboSortDirection.displayText
|
return qsTr("Sort dir: %1").arg(comboSortDirection.displayText)
|
||||||
}
|
}
|
||||||
font.pixelSize: theme.fontSizeLarger
|
font.pixelSize: theme.fontSizeLarger
|
||||||
verticalAlignment: Text.AlignVCenter
|
verticalAlignment: Text.AlignVCenter
|
||||||
@ -251,7 +251,7 @@ Rectangle {
|
|||||||
rightPadding: 30
|
rightPadding: 30
|
||||||
color: theme.textColor
|
color: theme.textColor
|
||||||
text: {
|
text: {
|
||||||
return qsTr("Limit: ") + comboLimit.displayText
|
return qsTr("Limit: %1").arg(comboLimit.displayText)
|
||||||
}
|
}
|
||||||
font.pixelSize: theme.fontSizeLarger
|
font.pixelSize: theme.fontSizeLarger
|
||||||
verticalAlignment: Text.AlignVCenter
|
verticalAlignment: Text.AlignVCenter
|
||||||
@ -284,7 +284,7 @@ Rectangle {
|
|||||||
Layout.fillHeight: true
|
Layout.fillHeight: true
|
||||||
horizontalAlignment: Qt.AlignHCenter
|
horizontalAlignment: Qt.AlignHCenter
|
||||||
verticalAlignment: Qt.AlignVCenter
|
verticalAlignment: Qt.AlignVCenter
|
||||||
text: qsTr("Network error: could not retrieve http://gpt4all.io/models/models3.json")
|
text: qsTr("Network error: could not retrieve %1").arg("http://gpt4all.io/models/models3.json")
|
||||||
font.pixelSize: theme.fontSizeLarge
|
font.pixelSize: theme.fontSizeLarge
|
||||||
color: theme.mutedTextColor
|
color: theme.mutedTextColor
|
||||||
}
|
}
|
||||||
@ -454,9 +454,7 @@ Rectangle {
|
|||||||
Layout.leftMargin: 20
|
Layout.leftMargin: 20
|
||||||
visible: downloadError !== ""
|
visible: downloadError !== ""
|
||||||
textFormat: Text.StyledText
|
textFormat: Text.StyledText
|
||||||
text: "<strong><font size=\"1\">"
|
text: qsTr("<strong><font size=\"1\"><a href=\"#error\">Error</a></strong></font>")
|
||||||
+ qsTr("<a href=\"#error\">Error</a>")
|
|
||||||
+ "</strong></font>"
|
|
||||||
color: theme.textColor
|
color: theme.textColor
|
||||||
font.pixelSize: theme.fontSizeLarge
|
font.pixelSize: theme.fontSizeLarge
|
||||||
linkColor: theme.textErrorColor
|
linkColor: theme.textErrorColor
|
||||||
@ -475,10 +473,7 @@ Rectangle {
|
|||||||
Layout.leftMargin: 20
|
Layout.leftMargin: 20
|
||||||
Layout.maximumWidth: 300
|
Layout.maximumWidth: 300
|
||||||
textFormat: Text.StyledText
|
textFormat: Text.StyledText
|
||||||
text: qsTr("<strong><font size=\"2\">WARNING: Not recommended for your hardware.")
|
text: qsTr("<strong><font size=\"2\">WARNING: Not recommended for your hardware. Model requires more memory (%1 GB) than your system has available (%2).</strong></font>").arg(ramrequired).arg(LLM.systemTotalRAMInGBString())
|
||||||
+ qsTr(" Model requires more memory (") + ramrequired
|
|
||||||
+ qsTr(" GB) than your system has available (")
|
|
||||||
+ LLM.systemTotalRAMInGBString() + ").</strong></font>"
|
|
||||||
color: theme.textErrorColor
|
color: theme.textErrorColor
|
||||||
font.pixelSize: theme.fontSizeLarge
|
font.pixelSize: theme.fontSizeLarge
|
||||||
wrapMode: Text.WordWrap
|
wrapMode: Text.WordWrap
|
||||||
@ -630,7 +625,7 @@ Rectangle {
|
|||||||
color: theme.mutedDarkTextColor
|
color: theme.mutedDarkTextColor
|
||||||
}
|
}
|
||||||
Text {
|
Text {
|
||||||
text: ramrequired >= 0 ? ramrequired + qsTr(" GB") : "?"
|
text: ramrequired >= 0 ? qsTr("%1 GB").arg(ramrequired) : qsTr("?")
|
||||||
color: theme.textColor
|
color: theme.textColor
|
||||||
font.pixelSize: theme.fontSizeSmall
|
font.pixelSize: theme.fontSizeSmall
|
||||||
font.bold: true
|
font.bold: true
|
||||||
@ -652,7 +647,7 @@ Rectangle {
|
|||||||
color: theme.mutedDarkTextColor
|
color: theme.mutedDarkTextColor
|
||||||
}
|
}
|
||||||
Text {
|
Text {
|
||||||
text: parameters !== "" ? parameters : "?"
|
text: parameters !== "" ? parameters : qsTr("?")
|
||||||
color: theme.textColor
|
color: theme.textColor
|
||||||
font.pixelSize: theme.fontSizeSmall
|
font.pixelSize: theme.fontSizeSmall
|
||||||
font.bold: true
|
font.bold: true
|
||||||
|
@ -55,18 +55,18 @@ Rectangle {
|
|||||||
id: modelLoadingErrorPopup
|
id: modelLoadingErrorPopup
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
shouldTimeOut: false
|
shouldTimeOut: false
|
||||||
text: qsTr("<h3>Encountered an error loading model:</h3><br>")
|
text: qsTr("<h3>Encountered an error loading model:</h3><br>"
|
||||||
+ "<i>\"" + currentChat.modelLoadingError + "\"</i>"
|
+ "<i>\"%1\"</i>"
|
||||||
+ qsTr("<br><br>Model loading failures can happen for a variety of reasons, but the most common "
|
+ "<br><br>Model loading failures can happen for a variety of reasons, but the most common "
|
||||||
+ "causes include a bad file format, an incomplete or corrupted download, the wrong file "
|
+ "causes include a bad file format, an incomplete or corrupted download, the wrong file "
|
||||||
+ "type, not enough system RAM or an incompatible model type. Here are some suggestions for resolving the problem:"
|
+ "type, not enough system RAM or an incompatible model type. Here are some suggestions for resolving the problem:"
|
||||||
+ "<br><ul>"
|
+ "<br><ul>"
|
||||||
+ "<li>Ensure the model file has a compatible format and type"
|
+ "<li>Ensure the model file has a compatible format and type"
|
||||||
+ "<li>Check the model file is complete in the download folder"
|
+ "<li>Check the model file is complete in the download folder"
|
||||||
+ "<li>You can find the download folder in the settings dialog"
|
+ "<li>You can find the download folder in the settings dialog"
|
||||||
+ "<li>If you've sideloaded the model ensure the file is not corrupt by checking md5sum"
|
+ "<li>If you've sideloaded the model ensure the file is not corrupt by checking md5sum"
|
||||||
+ "<li>Read more about what models are supported in our <a href=\"https://docs.gpt4all.io/\">documentation</a> for the gui"
|
+ "<li>Read more about what models are supported in our <a href=\"https://docs.gpt4all.io/\">documentation</a> for the gui"
|
||||||
+ "<li>Check out our <a href=\"https://discord.gg/4M2QFmTt2k\">discord channel</a> for help")
|
+ "<li>Check out our <a href=\"https://discord.gg/4M2QFmTt2k\">discord channel</a> for help").arg(currentChat.modelLoadingError);
|
||||||
}
|
}
|
||||||
|
|
||||||
PopupDialog {
|
PopupDialog {
|
||||||
@ -107,7 +107,7 @@ Rectangle {
|
|||||||
for (var i = 0; i < chatModel.count; i++) {
|
for (var i = 0; i < chatModel.count; i++) {
|
||||||
var item = chatModel.get(i)
|
var item = chatModel.get(i)
|
||||||
var string = item.name;
|
var string = item.name;
|
||||||
var isResponse = item.name === qsTr("Response: ")
|
var isResponse = item.name === "Response: "
|
||||||
string += chatModel.get(i).value
|
string += chatModel.get(i).value
|
||||||
if (isResponse && item.stopped)
|
if (isResponse && item.stopped)
|
||||||
string += " <stopped>"
|
string += " <stopped>"
|
||||||
@ -121,7 +121,7 @@ Rectangle {
|
|||||||
var str = "{\"conversation\": [";
|
var str = "{\"conversation\": [";
|
||||||
for (var i = 0; i < chatModel.count; i++) {
|
for (var i = 0; i < chatModel.count; i++) {
|
||||||
var item = chatModel.get(i)
|
var item = chatModel.get(i)
|
||||||
var isResponse = item.name === qsTr("Response: ")
|
var isResponse = item.name === "Response: "
|
||||||
str += "{\"content\": ";
|
str += "{\"content\": ";
|
||||||
str += JSON.stringify(item.value)
|
str += JSON.stringify(item.value)
|
||||||
str += ", \"role\": \"" + (isResponse ? "assistant" : "user") + "\"";
|
str += ", \"role\": \"" + (isResponse ? "assistant" : "user") + "\"";
|
||||||
@ -374,9 +374,9 @@ Rectangle {
|
|||||||
if (!currentModelInstalled())
|
if (!currentModelInstalled())
|
||||||
return qsTr("Not found: %1").arg(currentModelName())
|
return qsTr("Not found: %1").arg(currentModelName())
|
||||||
if (currentChat.modelLoadingPercentage === 0.0)
|
if (currentChat.modelLoadingPercentage === 0.0)
|
||||||
return qsTr("Reload \u00B7 ") + currentModelName()
|
return qsTr("Reload \u00B7 %1").arg(currentModelName())
|
||||||
if (currentChat.isCurrentlyLoading)
|
if (currentChat.isCurrentlyLoading)
|
||||||
return qsTr("Loading \u00B7 ") + currentModelName()
|
return qsTr("Loading \u00B7 %1").arg(currentModelName())
|
||||||
return currentModelName()
|
return currentModelName()
|
||||||
}
|
}
|
||||||
font.pixelSize: theme.fontSizeLarger
|
font.pixelSize: theme.fontSizeLarger
|
||||||
@ -705,7 +705,7 @@ Rectangle {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
text: qsTr("Load \u00B7 ") + defaultModel + qsTr(" (default) \u2192");
|
text: qsTr("Load \u00B7 %1 (default) \u2192").arg(defaultModel);
|
||||||
onClicked: {
|
onClicked: {
|
||||||
var i = comboBox.find(MySettings.userDefaultModel)
|
var i = comboBox.find(MySettings.userDefaultModel)
|
||||||
if (i !== -1) {
|
if (i !== -1) {
|
||||||
@ -812,7 +812,7 @@ Rectangle {
|
|||||||
fillMode: Image.PreserveAspectFit
|
fillMode: Image.PreserveAspectFit
|
||||||
mipmap: true
|
mipmap: true
|
||||||
visible: false
|
visible: false
|
||||||
source: name !== qsTr("Response: ") ? "qrc:/gpt4all/icons/you.svg" : "qrc:/gpt4all/icons/gpt4all_transparent.svg"
|
source: name !== "Response: " ? "qrc:/gpt4all/icons/you.svg" : "qrc:/gpt4all/icons/gpt4all_transparent.svg"
|
||||||
}
|
}
|
||||||
|
|
||||||
ColorOverlay {
|
ColorOverlay {
|
||||||
@ -845,7 +845,7 @@ Rectangle {
|
|||||||
anchors.bottom: parent.bottom
|
anchors.bottom: parent.bottom
|
||||||
|
|
||||||
TextArea {
|
TextArea {
|
||||||
text: name === qsTr("Response: ") ? qsTr("GPT4All") : qsTr("You")
|
text: name === "Response: " ? qsTr("GPT4All") : qsTr("You")
|
||||||
padding: 0
|
padding: 0
|
||||||
font.pixelSize: theme.fontSizeLarger
|
font.pixelSize: theme.fontSizeLarger
|
||||||
font.bold: true
|
font.bold: true
|
||||||
@ -855,7 +855,7 @@ Rectangle {
|
|||||||
readOnly: true
|
readOnly: true
|
||||||
}
|
}
|
||||||
Text {
|
Text {
|
||||||
visible: name === qsTr("Response: ")
|
visible: name === "Response: "
|
||||||
font.pixelSize: theme.fontSizeLarger
|
font.pixelSize: theme.fontSizeLarger
|
||||||
text: currentModelName()
|
text: currentModelName()
|
||||||
color: theme.mutedTextColor
|
color: theme.mutedTextColor
|
||||||
@ -870,8 +870,8 @@ Rectangle {
|
|||||||
return qsTr("recalculating context ...");
|
return qsTr("recalculating context ...");
|
||||||
switch (currentChat.responseState) {
|
switch (currentChat.responseState) {
|
||||||
case Chat.ResponseStopped: return qsTr("response stopped ...");
|
case Chat.ResponseStopped: return qsTr("response stopped ...");
|
||||||
case Chat.LocalDocsRetrieval: return qsTr("retrieving localdocs: ") + currentChat.collectionList.join(", ") + " ...";
|
case Chat.LocalDocsRetrieval: return qsTr("retrieving localdocs: %1 ...").arg(currentChat.collectionList.join(", "));
|
||||||
case Chat.LocalDocsProcessing: return qsTr("searching localdocs: ") + currentChat.collectionList.join(", ") + " ...";
|
case Chat.LocalDocsProcessing: return qsTr("searching localdocs: %1 ...").arg(currentChat.collectionList.join(", "));
|
||||||
case Chat.PromptProcessing: return qsTr("processing ...")
|
case Chat.PromptProcessing: return qsTr("processing ...")
|
||||||
case Chat.ResponseGeneration: return qsTr("generating response ...");
|
case Chat.ResponseGeneration: return qsTr("generating response ...");
|
||||||
case Chat.GeneratingQuestions: return qsTr("generating questions ...");
|
case Chat.GeneratingQuestions: return qsTr("generating questions ...");
|
||||||
@ -1005,7 +1005,7 @@ Rectangle {
|
|||||||
|
|
||||||
Accessible.role: Accessible.Paragraph
|
Accessible.role: Accessible.Paragraph
|
||||||
Accessible.name: text
|
Accessible.name: text
|
||||||
Accessible.description: name === qsTr("Response: ") ? "The response by the model" : "The prompt by the user"
|
Accessible.description: name === "Response: " ? "The response by the model" : "The prompt by the user"
|
||||||
}
|
}
|
||||||
|
|
||||||
ThumbsDownDialog {
|
ThumbsDownDialog {
|
||||||
@ -1031,7 +1031,7 @@ Rectangle {
|
|||||||
Column {
|
Column {
|
||||||
Layout.alignment: Qt.AlignRight
|
Layout.alignment: Qt.AlignRight
|
||||||
Layout.rightMargin: 15
|
Layout.rightMargin: 15
|
||||||
visible: name === qsTr("Response: ") &&
|
visible: name === "Response: " &&
|
||||||
(!currentResponse || !currentChat.responseInProgress) && MySettings.networkIsActive
|
(!currentResponse || !currentChat.responseInProgress) && MySettings.networkIsActive
|
||||||
spacing: 10
|
spacing: 10
|
||||||
|
|
||||||
@ -1692,7 +1692,7 @@ Rectangle {
|
|||||||
var listElement = chatModel.get(index);
|
var listElement = chatModel.get(index);
|
||||||
currentChat.regenerateResponse()
|
currentChat.regenerateResponse()
|
||||||
if (chatModel.count) {
|
if (chatModel.count) {
|
||||||
if (listElement.name === qsTr("Response: ")) {
|
if (listElement.name === "Response: ") {
|
||||||
chatModel.updateCurrentResponse(index, true);
|
chatModel.updateCurrentResponse(index, true);
|
||||||
chatModel.updateStopped(index, false);
|
chatModel.updateStopped(index, false);
|
||||||
chatModel.updateThumbsUpState(index, false);
|
chatModel.updateThumbsUpState(index, false);
|
||||||
@ -1766,7 +1766,7 @@ Rectangle {
|
|||||||
padding: 15
|
padding: 15
|
||||||
topPadding: 8
|
topPadding: 8
|
||||||
bottomPadding: 8
|
bottomPadding: 8
|
||||||
text: qsTr("Reload \u00B7 ") + currentChat.modelInfo.name
|
text: qsTr("Reload \u00B7 %1").arg(currentChat.modelInfo.name)
|
||||||
fontPixelSize: theme.fontSizeSmall
|
fontPixelSize: theme.fontSizeSmall
|
||||||
Accessible.description: qsTr("Reloads the model")
|
Accessible.description: qsTr("Reloads the model")
|
||||||
}
|
}
|
||||||
|
@ -250,9 +250,7 @@ Rectangle {
|
|||||||
Layout.leftMargin: 20
|
Layout.leftMargin: 20
|
||||||
visible: downloadError !== ""
|
visible: downloadError !== ""
|
||||||
textFormat: Text.StyledText
|
textFormat: Text.StyledText
|
||||||
text: "<strong><font size=\"1\">"
|
text: qsTr("<strong><font size=\"1\"><a href=\"#error\">Error</a></strong></font>")
|
||||||
+ qsTr("<a href=\"#error\">Error</a>")
|
|
||||||
+ "</strong></font>"
|
|
||||||
color: theme.textColor
|
color: theme.textColor
|
||||||
font.pixelSize: theme.fontSizeLarge
|
font.pixelSize: theme.fontSizeLarge
|
||||||
linkColor: theme.textErrorColor
|
linkColor: theme.textErrorColor
|
||||||
@ -271,10 +269,7 @@ Rectangle {
|
|||||||
Layout.leftMargin: 20
|
Layout.leftMargin: 20
|
||||||
Layout.maximumWidth: 300
|
Layout.maximumWidth: 300
|
||||||
textFormat: Text.StyledText
|
textFormat: Text.StyledText
|
||||||
text: qsTr("<strong><font size=\"2\">WARNING: Not recommended for your hardware.")
|
text: qsTr("<strong><font size=\"2\">WARNING: Not recommended for your hardware. Model requires more memory (%1 GB) than your system has available (%2).</strong></font>").arg(ramrequired).arg(LLM.systemTotalRAMInGBString())
|
||||||
+ qsTr(" Model requires more memory (") + ramrequired
|
|
||||||
+ qsTr(" GB) than your system has available (")
|
|
||||||
+ LLM.systemTotalRAMInGBString() + ").</strong></font>"
|
|
||||||
color: theme.textErrorColor
|
color: theme.textErrorColor
|
||||||
font.pixelSize: theme.fontSizeLarge
|
font.pixelSize: theme.fontSizeLarge
|
||||||
wrapMode: Text.WordWrap
|
wrapMode: Text.WordWrap
|
||||||
@ -426,7 +421,7 @@ Rectangle {
|
|||||||
color: theme.mutedDarkTextColor
|
color: theme.mutedDarkTextColor
|
||||||
}
|
}
|
||||||
Text {
|
Text {
|
||||||
text: ramrequired >= 0 ? ramrequired + qsTr(" GB") : "?"
|
text: ramrequired >= 0 ? qsTr("%1 GB").arg(ramrequired) : qsTr("?")
|
||||||
color: theme.textColor
|
color: theme.textColor
|
||||||
font.pixelSize: theme.fontSizeSmall
|
font.pixelSize: theme.fontSizeSmall
|
||||||
font.bold: true
|
font.bold: true
|
||||||
|
@ -64,10 +64,7 @@ MyDialog {
|
|||||||
id: welcome
|
id: welcome
|
||||||
width: 1024 - 40
|
width: 1024 - 40
|
||||||
textFormat: TextEdit.MarkdownText
|
textFormat: TextEdit.MarkdownText
|
||||||
text: qsTr("### Release notes\n")
|
text: qsTr("### Release notes\n%1### Contributors\n%2").arg(Download.releaseInfo.notes).arg(Download.releaseInfo.contributors)
|
||||||
+ Download.releaseInfo.notes
|
|
||||||
+ qsTr("### Contributors\n")
|
|
||||||
+ Download.releaseInfo.contributors
|
|
||||||
focus: false
|
focus: false
|
||||||
readOnly: true
|
readOnly: true
|
||||||
Accessible.role: Accessible.Paragraph
|
Accessible.role: Accessible.Paragraph
|
||||||
|
File diff suppressed because it is too large
Load Diff
2799
gpt4all-chat/translations/gpt4all_zh.ts
Normal file
2799
gpt4all-chat/translations/gpt4all_zh.ts
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user