Break the explore models view into two. (#3269)

Signed-off-by: Adam Treat <treat.adam@gmail.com>
Signed-off-by: Jared Van Bortel <jared@nomic.ai>
Signed-off-by: Victor <158754254+SINAPSA-IC@users.noreply.github.com>
Co-authored-by: Jared Van Bortel <jared@nomic.ai>
Co-authored-by: Victor <158754254+SINAPSA-IC@users.noreply.github.com>
This commit is contained in:
AT 2024-12-13 17:33:05 -05:00 committed by GitHub
parent 03f7ca4409
commit 9b978f25e1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
18 changed files with 5111 additions and 1914 deletions

View File

@ -6,6 +6,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
## [Unreleased]
### Added
- Create separate download pages for built-in and HuggingFace models ([#3269](https://github.com/nomic-ai/gpt4all/pull/3269))
### Fixed
- Fix API server ignoring assistant messages in history after v3.5.0 ([#3256](https://github.com/nomic-ai/gpt4all/pull/3256))
- Fix API server replying with incorrect token counts and stop reason after v3.5.0 ([#3256](https://github.com/nomic-ai/gpt4all/pull/3256))

View File

@ -221,6 +221,8 @@ qt_add_qml_module(chat
main.qml
qml/AddCollectionView.qml
qml/AddModelView.qml
qml/AddGPT4AllModelView.qml
qml/AddHFModelView.qml
qml/ApplicationSettings.qml
qml/ChatDrawer.qml
qml/ChatItemView.qml
@ -244,6 +246,7 @@ qt_add_qml_module(chat
qml/ToastManager.qml
qml/MyBusyIndicator.qml
qml/MyButton.qml
qml/MyTabButton.qml
qml/MyCheckBox.qml
qml/MyComboBox.qml
qml/MyDialog.qml

View File

@ -674,9 +674,6 @@ Window {
function show() {
stackLayout.currentIndex = 2;
// FIXME This expanded code should be removed and we should be changing the names of
// the classes here in ModelList for the proxy/filter models
ModelList.downloadableModels.expanded = true
}
function isShown() {

View File

@ -0,0 +1,546 @@
import QtCore
import QtQuick
import QtQuick.Controls
import QtQuick.Controls.Basic
import QtQuick.Layouts
import QtQuick.Dialogs
import Qt.labs.folderlistmodel
import Qt5Compat.GraphicalEffects
import llm
import chatlistmodel
import download
import modellist
import network
import gpt4all
import mysettings
import localdocs
ColumnLayout {
Layout.fillWidth: true
Layout.alignment: Qt.AlignTop
spacing: 5
Label {
Layout.topMargin: 0
Layout.bottomMargin: 25
Layout.rightMargin: 150 * theme.fontScale
Layout.alignment: Qt.AlignTop
Layout.fillWidth: true
verticalAlignment: Text.AlignTop
text: qsTr("These models have been specifically configured for use in GPT4All. The first few models on the " +
"list are known to work the best, but you should only attempt to use models that will fit in your " +
"available memory.")
font.pixelSize: theme.fontSizeLarger
color: theme.textColor
wrapMode: Text.WordWrap
}
Label {
visible: !ModelList.gpt4AllDownloadableModels.count && !ModelList.asyncModelRequestOngoing
Layout.fillWidth: true
Layout.fillHeight: true
horizontalAlignment: Qt.AlignHCenter
verticalAlignment: Qt.AlignVCenter
text: qsTr("Network error: could not retrieve %1").arg("http://gpt4all.io/models/models3.json")
font.pixelSize: theme.fontSizeLarge
color: theme.mutedTextColor
}
MyBusyIndicator {
visible: !ModelList.gpt4AllDownloadableModels.count && ModelList.asyncModelRequestOngoing
running: ModelList.asyncModelRequestOngoing
Accessible.role: Accessible.Animation
Layout.alignment: Qt.AlignCenter
Accessible.name: qsTr("Busy indicator")
Accessible.description: qsTr("Displayed when the models request is ongoing")
}
ScrollView {
id: scrollView
ScrollBar.vertical.policy: ScrollBar.AsNeeded
Layout.fillWidth: true
Layout.fillHeight: true
clip: true
ListView {
id: modelListView
model: ModelList.gpt4AllDownloadableModels
boundsBehavior: Flickable.StopAtBounds
spacing: 30
delegate: Rectangle {
id: delegateItem
width: modelListView.width
height: childrenRect.height + 60
color: theme.conversationBackground
radius: 10
border.width: 1
border.color: theme.controlBorder
ColumnLayout {
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
anchors.margins: 30
Text {
Layout.fillWidth: true
Layout.alignment: Qt.AlignLeft
text: name
elide: Text.ElideRight
color: theme.titleTextColor
font.pixelSize: theme.fontSizeLargest
font.bold: true
Accessible.role: Accessible.Paragraph
Accessible.name: qsTr("Model file")
Accessible.description: qsTr("Model file to be downloaded")
}
Rectangle {
Layout.fillWidth: true
height: 1
color: theme.dividerColor
}
RowLayout {
Layout.topMargin: 10
Layout.fillWidth: true
Text {
id: descriptionText
text: description
font.pixelSize: theme.fontSizeLarge
Layout.fillWidth: true
wrapMode: Text.WordWrap
textFormat: Text.StyledText
color: theme.textColor
linkColor: theme.textColor
Accessible.role: Accessible.Paragraph
Accessible.name: qsTr("Description")
Accessible.description: qsTr("File description")
onLinkActivated: function(link) { Qt.openUrlExternally(link); }
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.NoButton // pass clicks to parent
cursorShape: parent.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor
}
}
// FIXME Need to overhaul design here which must take into account
// features not present in current figma including:
// * Ability to cancel a current download
// * Ability to resume a download
// * The presentation of an error if encountered
// * Whether to show already installed models
// * Install of remote models with API keys
// * The presentation of the progress bar
Rectangle {
id: actionBox
width: childrenRect.width + 20
color: "transparent"
border.width: 1
border.color: theme.dividerColor
radius: 10
Layout.rightMargin: 20
Layout.bottomMargin: 20
Layout.minimumHeight: childrenRect.height + 20
Layout.alignment: Qt.AlignRight | Qt.AlignTop
ColumnLayout {
spacing: 0
MySettingsButton {
id: downloadButton
text: isDownloading ? qsTr("Cancel") : isIncomplete ? qsTr("Resume") : qsTr("Download")
font.pixelSize: theme.fontSizeLarge
Layout.topMargin: 20
Layout.leftMargin: 20
Layout.minimumWidth: 200
Layout.fillWidth: true
Layout.alignment: Qt.AlignTop | Qt.AlignHCenter
visible: !isOnline && !installed && !calcHash && downloadError === ""
Accessible.description: qsTr("Stop/restart/start the download")
onClicked: {
if (!isDownloading) {
Download.downloadModel(filename);
} else {
Download.cancelDownload(filename);
}
}
}
MySettingsDestructiveButton {
id: removeButton
text: qsTr("Remove")
Layout.topMargin: 20
Layout.leftMargin: 20
Layout.minimumWidth: 200
Layout.fillWidth: true
Layout.alignment: Qt.AlignTop | Qt.AlignHCenter
visible: !isDownloading && (installed || isIncomplete)
Accessible.description: qsTr("Remove model from filesystem")
onClicked: {
Download.removeModel(filename);
}
}
MySettingsButton {
id: installButton
visible: !installed && isOnline
Layout.topMargin: 20
Layout.leftMargin: 20
Layout.minimumWidth: 200
Layout.fillWidth: true
Layout.alignment: Qt.AlignTop | Qt.AlignHCenter
text: qsTr("Install")
font.pixelSize: theme.fontSizeLarge
onClicked: {
var apiKeyText = apiKey.text.trim(),
baseUrlText = baseUrl.text.trim(),
modelNameText = modelName.text.trim();
var apiKeyOk = apiKeyText !== "",
baseUrlOk = !isCompatibleApi || baseUrlText !== "",
modelNameOk = !isCompatibleApi || modelNameText !== "";
if (!apiKeyOk)
apiKey.showError();
if (!baseUrlOk)
baseUrl.showError();
if (!modelNameOk)
modelName.showError();
if (!apiKeyOk || !baseUrlOk || !modelNameOk)
return;
if (!isCompatibleApi)
Download.installModel(
filename,
apiKeyText,
);
else
Download.installCompatibleModel(
modelNameText,
apiKeyText,
baseUrlText,
);
}
Accessible.role: Accessible.Button
Accessible.name: qsTr("Install")
Accessible.description: qsTr("Install online model")
}
ColumnLayout {
spacing: 0
Label {
Layout.topMargin: 20
Layout.leftMargin: 20
visible: downloadError !== ""
textFormat: Text.StyledText
text: qsTr("<strong><font size=\"1\"><a href=\"#error\">Error</a></strong></font>")
color: theme.textColor
font.pixelSize: theme.fontSizeLarge
linkColor: theme.textErrorColor
Accessible.role: Accessible.Paragraph
Accessible.name: text
Accessible.description: qsTr("Describes an error that occurred when downloading")
onLinkActivated: {
downloadingErrorPopup.text = downloadError;
downloadingErrorPopup.open();
}
}
Label {
visible: LLM.systemTotalRAMInGB() < ramrequired
Layout.topMargin: 20
Layout.leftMargin: 20
Layout.maximumWidth: 300
textFormat: Text.StyledText
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())
color: theme.textErrorColor
font.pixelSize: theme.fontSizeLarge
wrapMode: Text.WordWrap
Accessible.role: Accessible.Paragraph
Accessible.name: text
Accessible.description: qsTr("Error for incompatible hardware")
onLinkActivated: {
downloadingErrorPopup.text = downloadError;
downloadingErrorPopup.open();
}
}
}
ColumnLayout {
visible: isDownloading && !calcHash
Layout.topMargin: 20
Layout.leftMargin: 20
Layout.minimumWidth: 200
Layout.fillWidth: true
Layout.alignment: Qt.AlignTop | Qt.AlignHCenter
spacing: 20
ProgressBar {
id: itemProgressBar
Layout.fillWidth: true
width: 200
value: bytesReceived / bytesTotal
background: Rectangle {
implicitHeight: 45
color: theme.progressBackground
radius: 3
}
contentItem: Item {
implicitHeight: 40
Rectangle {
width: itemProgressBar.visualPosition * parent.width
height: parent.height
radius: 2
color: theme.progressForeground
}
}
Accessible.role: Accessible.ProgressBar
Accessible.name: qsTr("Download progressBar")
Accessible.description: qsTr("Shows the progress made in the download")
}
Label {
id: speedLabel
color: theme.textColor
Layout.alignment: Qt.AlignRight
text: speed
font.pixelSize: theme.fontSizeLarge
Accessible.role: Accessible.Paragraph
Accessible.name: qsTr("Download speed")
Accessible.description: qsTr("Download speed in bytes/kilobytes/megabytes per second")
}
}
RowLayout {
visible: calcHash
Layout.topMargin: 20
Layout.leftMargin: 20
Layout.minimumWidth: 200
Layout.maximumWidth: 200
Layout.fillWidth: true
Layout.alignment: Qt.AlignTop | Qt.AlignHCenter
clip: true
Label {
id: calcHashLabel
color: theme.textColor
text: qsTr("Calculating...")
font.pixelSize: theme.fontSizeLarge
Accessible.role: Accessible.Paragraph
Accessible.name: text
Accessible.description: qsTr("Whether the file hash is being calculated")
}
MyBusyIndicator {
id: busyCalcHash
running: calcHash
Accessible.role: Accessible.Animation
Accessible.name: qsTr("Busy indicator")
Accessible.description: qsTr("Displayed when the file hash is being calculated")
}
}
MyTextField {
id: apiKey
visible: !installed && isOnline
Layout.topMargin: 20
Layout.leftMargin: 20
Layout.minimumWidth: 200
Layout.alignment: Qt.AlignTop | Qt.AlignHCenter
wrapMode: Text.WrapAnywhere
function showError() {
messageToast.show(qsTr("ERROR: $API_KEY is empty."));
apiKey.placeholderTextColor = theme.textErrorColor;
}
onTextChanged: {
apiKey.placeholderTextColor = theme.mutedTextColor;
}
placeholderText: qsTr("enter $API_KEY")
Accessible.role: Accessible.EditableText
Accessible.name: placeholderText
Accessible.description: qsTr("Whether the file hash is being calculated")
}
MyTextField {
id: baseUrl
visible: !installed && isOnline && isCompatibleApi
Layout.topMargin: 20
Layout.leftMargin: 20
Layout.minimumWidth: 200
Layout.alignment: Qt.AlignTop | Qt.AlignHCenter
wrapMode: Text.WrapAnywhere
function showError() {
messageToast.show(qsTr("ERROR: $BASE_URL is empty."));
baseUrl.placeholderTextColor = theme.textErrorColor;
}
onTextChanged: {
baseUrl.placeholderTextColor = theme.mutedTextColor;
}
placeholderText: qsTr("enter $BASE_URL")
Accessible.role: Accessible.EditableText
Accessible.name: placeholderText
Accessible.description: qsTr("Whether the file hash is being calculated")
}
MyTextField {
id: modelName
visible: !installed && isOnline && isCompatibleApi
Layout.topMargin: 20
Layout.leftMargin: 20
Layout.minimumWidth: 200
Layout.alignment: Qt.AlignTop | Qt.AlignHCenter
wrapMode: Text.WrapAnywhere
function showError() {
messageToast.show(qsTr("ERROR: $MODEL_NAME is empty."))
modelName.placeholderTextColor = theme.textErrorColor;
}
onTextChanged: {
modelName.placeholderTextColor = theme.mutedTextColor;
}
placeholderText: qsTr("enter $MODEL_NAME")
Accessible.role: Accessible.EditableText
Accessible.name: placeholderText
Accessible.description: qsTr("Whether the file hash is being calculated")
}
}
}
}
Item {
Layout.minimumWidth: childrenRect.width
Layout.minimumHeight: childrenRect.height
Layout.bottomMargin: 10
RowLayout {
id: paramRow
anchors.centerIn: parent
ColumnLayout {
Layout.topMargin: 10
Layout.bottomMargin: 10
Layout.leftMargin: 20
Layout.rightMargin: 20
Text {
text: qsTr("File size")
font.pixelSize: theme.fontSizeSmall
color: theme.mutedDarkTextColor
}
Text {
text: filesize
color: theme.textColor
font.pixelSize: theme.fontSizeSmall
font.bold: true
}
}
Rectangle {
width: 1
Layout.fillHeight: true
color: theme.dividerColor
}
ColumnLayout {
Layout.topMargin: 10
Layout.bottomMargin: 10
Layout.leftMargin: 20
Layout.rightMargin: 20
Text {
text: qsTr("RAM required")
font.pixelSize: theme.fontSizeSmall
color: theme.mutedDarkTextColor
}
Text {
text: ramrequired >= 0 ? qsTr("%1 GB").arg(ramrequired) : qsTr("?")
color: theme.textColor
font.pixelSize: theme.fontSizeSmall
font.bold: true
}
}
Rectangle {
width: 1
Layout.fillHeight: true
color: theme.dividerColor
}
ColumnLayout {
Layout.topMargin: 10
Layout.bottomMargin: 10
Layout.leftMargin: 20
Layout.rightMargin: 20
Text {
text: qsTr("Parameters")
font.pixelSize: theme.fontSizeSmall
color: theme.mutedDarkTextColor
}
Text {
text: parameters !== "" ? parameters : qsTr("?")
color: theme.textColor
font.pixelSize: theme.fontSizeSmall
font.bold: true
}
}
Rectangle {
width: 1
Layout.fillHeight: true
color: theme.dividerColor
}
ColumnLayout {
Layout.topMargin: 10
Layout.bottomMargin: 10
Layout.leftMargin: 20
Layout.rightMargin: 20
Text {
text: qsTr("Quant")
font.pixelSize: theme.fontSizeSmall
color: theme.mutedDarkTextColor
}
Text {
text: quant
color: theme.textColor
font.pixelSize: theme.fontSizeSmall
font.bold: true
}
}
Rectangle {
width: 1
Layout.fillHeight: true
color: theme.dividerColor
}
ColumnLayout {
Layout.topMargin: 10
Layout.bottomMargin: 10
Layout.leftMargin: 20
Layout.rightMargin: 20
Text {
text: qsTr("Type")
font.pixelSize: theme.fontSizeSmall
color: theme.mutedDarkTextColor
}
Text {
text: type
color: theme.textColor
font.pixelSize: theme.fontSizeSmall
font.bold: true
}
}
}
Rectangle {
color: "transparent"
anchors.fill: paramRow
border.color: theme.dividerColor
border.width: 1
radius: 10
}
}
Rectangle {
Layout.fillWidth: true
height: 1
color: theme.dividerColor
}
}
}
}
}
}

View File

@ -0,0 +1,703 @@
import QtCore
import QtQuick
import QtQuick.Controls
import QtQuick.Controls.Basic
import QtQuick.Layouts
import QtQuick.Dialogs
import Qt.labs.folderlistmodel
import Qt5Compat.GraphicalEffects
import llm
import chatlistmodel
import download
import modellist
import network
import gpt4all
import mysettings
import localdocs
ColumnLayout {
Layout.fillWidth: true
Layout.fillHeight: true
Layout.alignment: Qt.AlignTop
spacing: 5
Label {
Layout.topMargin: 0
Layout.bottomMargin: 25
Layout.rightMargin: 150 * theme.fontScale
Layout.alignment: Qt.AlignTop
Layout.fillWidth: true
verticalAlignment: Text.AlignTop
text: qsTr("Use the search to find and download models from HuggingFace. There is NO GUARANTEE that these " +
"will work. Many will require additional configuration before they can be used.")
font.pixelSize: theme.fontSizeLarger
color: theme.textColor
wrapMode: Text.WordWrap
}
RowLayout {
Layout.fillWidth: true
Layout.fillHeight: true
Layout.alignment: Qt.AlignCenter
Layout.margins: 0
spacing: 10
MyTextField {
id: discoverField
property string textBeingSearched: ""
readOnly: ModelList.discoverInProgress
Layout.alignment: Qt.AlignCenter
Layout.fillWidth: true
font.pixelSize: theme.fontSizeLarger
placeholderText: qsTr("Discover and download models by keyword search...")
Accessible.role: Accessible.EditableText
Accessible.name: placeholderText
Accessible.description: qsTr("Text field for discovering and filtering downloadable models")
Connections {
target: ModelList
function onDiscoverInProgressChanged() {
if (ModelList.discoverInProgress) {
discoverField.textBeingSearched = discoverField.text;
discoverField.text = qsTr("Searching \u00B7 %1").arg(discoverField.textBeingSearched);
} else {
discoverField.text = discoverField.textBeingSearched;
discoverField.textBeingSearched = "";
}
}
}
background: ProgressBar {
id: discoverProgressBar
indeterminate: ModelList.discoverInProgress && ModelList.discoverProgress === 0.0
value: ModelList.discoverProgress
background: Rectangle {
color: theme.controlBackground
border.color: theme.controlBorder
radius: 10
}
contentItem: Item {
Rectangle {
visible: ModelList.discoverInProgress
anchors.bottom: parent.bottom
width: discoverProgressBar.visualPosition * parent.width
height: 10
radius: 2
color: theme.progressForeground
}
}
}
Keys.onReturnPressed: (event)=> {
if (event.modifiers & Qt.ControlModifier || event.modifiers & Qt.ShiftModifier)
event.accepted = false;
else {
editingFinished();
sendDiscovery()
}
}
function sendDiscovery() {
ModelList.huggingFaceDownloadableModels.discoverAndFilter(discoverField.text);
}
RowLayout {
spacing: 0
anchors.right: discoverField.right
anchors.verticalCenter: discoverField.verticalCenter
anchors.rightMargin: 15
visible: !ModelList.discoverInProgress
MyMiniButton {
id: clearDiscoverButton
backgroundColor: theme.textColor
backgroundColorHovered: theme.iconBackgroundDark
visible: discoverField.text !== ""
source: "qrc:/gpt4all/icons/close.svg"
onClicked: {
discoverField.text = ""
discoverField.sendDiscovery() // should clear results
}
}
MyMiniButton {
backgroundColor: theme.textColor
backgroundColorHovered: theme.iconBackgroundDark
source: "qrc:/gpt4all/icons/settings.svg"
onClicked: {
discoveryTools.visible = !discoveryTools.visible
}
}
MyMiniButton {
id: sendButton
enabled: !ModelList.discoverInProgress
backgroundColor: theme.textColor
backgroundColorHovered: theme.iconBackgroundDark
source: "qrc:/gpt4all/icons/send_message.svg"
Accessible.name: qsTr("Initiate model discovery and filtering")
Accessible.description: qsTr("Triggers discovery and filtering of models")
onClicked: {
discoverField.sendDiscovery()
}
}
}
}
}
RowLayout {
id: discoveryTools
Layout.fillWidth: true
Layout.alignment: Qt.AlignCenter
Layout.margins: 0
spacing: 20
visible: false
MyComboBox {
id: comboSort
model: ListModel {
ListElement { name: qsTr("Default") }
ListElement { name: qsTr("Likes") }
ListElement { name: qsTr("Downloads") }
ListElement { name: qsTr("Recent") }
}
currentIndex: ModelList.discoverSort
contentItem: Text {
anchors.horizontalCenter: parent.horizontalCenter
rightPadding: 30
color: theme.textColor
text: {
return qsTr("Sort by: %1").arg(comboSort.displayText)
}
font.pixelSize: theme.fontSizeLarger
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter
elide: Text.ElideRight
}
onActivated: function (index) {
ModelList.discoverSort = index;
}
}
MyComboBox {
id: comboSortDirection
model: ListModel {
ListElement { name: qsTr("Asc") }
ListElement { name: qsTr("Desc") }
}
currentIndex: {
if (ModelList.discoverSortDirection === 1)
return 0
else
return 1;
}
contentItem: Text {
anchors.horizontalCenter: parent.horizontalCenter
rightPadding: 30
color: theme.textColor
text: {
return qsTr("Sort dir: %1").arg(comboSortDirection.displayText)
}
font.pixelSize: theme.fontSizeLarger
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter
elide: Text.ElideRight
}
onActivated: function (index) {
if (index === 0)
ModelList.discoverSortDirection = 1;
else
ModelList.discoverSortDirection = -1;
}
}
MyComboBox {
id: comboLimit
model: ListModel {
ListElement { name: "5" }
ListElement { name: "10" }
ListElement { name: "20" }
ListElement { name: "50" }
ListElement { name: "100" }
ListElement { name: qsTr("None") }
}
currentIndex: {
if (ModelList.discoverLimit === 5)
return 0;
else if (ModelList.discoverLimit === 10)
return 1;
else if (ModelList.discoverLimit === 20)
return 2;
else if (ModelList.discoverLimit === 50)
return 3;
else if (ModelList.discoverLimit === 100)
return 4;
else if (ModelList.discoverLimit === -1)
return 5;
}
contentItem: Text {
anchors.horizontalCenter: parent.horizontalCenter
rightPadding: 30
color: theme.textColor
text: {
return qsTr("Limit: %1").arg(comboLimit.displayText)
}
font.pixelSize: theme.fontSizeLarger
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter
elide: Text.ElideRight
}
onActivated: function (index) {
switch (index) {
case 0:
ModelList.discoverLimit = 5; break;
case 1:
ModelList.discoverLimit = 10; break;
case 2:
ModelList.discoverLimit = 20; break;
case 3:
ModelList.discoverLimit = 50; break;
case 4:
ModelList.discoverLimit = 100; break;
case 5:
ModelList.discoverLimit = -1; break;
}
}
}
}
ScrollView {
id: scrollView
ScrollBar.vertical.policy: ScrollBar.AsNeeded
Layout.fillWidth: true
Layout.fillHeight: true
clip: true
ListView {
id: modelListView
model: ModelList.huggingFaceDownloadableModels
boundsBehavior: Flickable.StopAtBounds
spacing: 30
delegate: Rectangle {
id: delegateItem
width: modelListView.width
height: childrenRect.height + 60
color: theme.conversationBackground
radius: 10
border.width: 1
border.color: theme.controlBorder
ColumnLayout {
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
anchors.margins: 30
Text {
Layout.fillWidth: true
Layout.alignment: Qt.AlignLeft
text: name
elide: Text.ElideRight
color: theme.titleTextColor
font.pixelSize: theme.fontSizeLargest
font.bold: true
Accessible.role: Accessible.Paragraph
Accessible.name: qsTr("Model file")
Accessible.description: qsTr("Model file to be downloaded")
}
Rectangle {
Layout.fillWidth: true
height: 1
color: theme.dividerColor
}
RowLayout {
Layout.topMargin: 10
Layout.fillWidth: true
Text {
id: descriptionText
text: description
font.pixelSize: theme.fontSizeLarge
Layout.fillWidth: true
wrapMode: Text.WordWrap
textFormat: Text.StyledText
color: theme.textColor
linkColor: theme.textColor
Accessible.role: Accessible.Paragraph
Accessible.name: qsTr("Description")
Accessible.description: qsTr("File description")
onLinkActivated: function(link) { Qt.openUrlExternally(link); }
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.NoButton // pass clicks to parent
cursorShape: parent.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor
}
}
// FIXME Need to overhaul design here which must take into account
// features not present in current figma including:
// * Ability to cancel a current download
// * Ability to resume a download
// * The presentation of an error if encountered
// * Whether to show already installed models
// * Install of remote models with API keys
// * The presentation of the progress bar
Rectangle {
id: actionBox
width: childrenRect.width + 20
color: "transparent"
border.width: 1
border.color: theme.dividerColor
radius: 10
Layout.rightMargin: 20
Layout.bottomMargin: 20
Layout.minimumHeight: childrenRect.height + 20
Layout.alignment: Qt.AlignRight | Qt.AlignTop
ColumnLayout {
spacing: 0
MySettingsButton {
id: downloadButton
text: isDownloading ? qsTr("Cancel") : isIncomplete ? qsTr("Resume") : qsTr("Download")
font.pixelSize: theme.fontSizeLarge
Layout.topMargin: 20
Layout.leftMargin: 20
Layout.minimumWidth: 200
Layout.fillWidth: true
Layout.alignment: Qt.AlignTop | Qt.AlignHCenter
visible: !isOnline && !installed && !calcHash && downloadError === ""
Accessible.description: qsTr("Stop/restart/start the download")
onClicked: {
if (!isDownloading) {
Download.downloadModel(filename);
} else {
Download.cancelDownload(filename);
}
}
}
MySettingsDestructiveButton {
id: removeButton
text: qsTr("Remove")
Layout.topMargin: 20
Layout.leftMargin: 20
Layout.minimumWidth: 200
Layout.fillWidth: true
Layout.alignment: Qt.AlignTop | Qt.AlignHCenter
visible: !isDownloading && (installed || isIncomplete)
Accessible.description: qsTr("Remove model from filesystem")
onClicked: {
Download.removeModel(filename);
}
}
MySettingsButton {
id: installButton
visible: !installed && isOnline
Layout.topMargin: 20
Layout.leftMargin: 20
Layout.minimumWidth: 200
Layout.fillWidth: true
Layout.alignment: Qt.AlignTop | Qt.AlignHCenter
text: qsTr("Install")
font.pixelSize: theme.fontSizeLarge
onClicked: {
var apiKeyText = apiKey.text.trim(),
baseUrlText = baseUrl.text.trim(),
modelNameText = modelName.text.trim();
var apiKeyOk = apiKeyText !== "",
baseUrlOk = !isCompatibleApi || baseUrlText !== "",
modelNameOk = !isCompatibleApi || modelNameText !== "";
if (!apiKeyOk)
apiKey.showError();
if (!baseUrlOk)
baseUrl.showError();
if (!modelNameOk)
modelName.showError();
if (!apiKeyOk || !baseUrlOk || !modelNameOk)
return;
if (!isCompatibleApi)
Download.installModel(
filename,
apiKeyText,
);
else
Download.installCompatibleModel(
modelNameText,
apiKeyText,
baseUrlText,
);
}
Accessible.role: Accessible.Button
Accessible.name: qsTr("Install")
Accessible.description: qsTr("Install online model")
}
ColumnLayout {
spacing: 0
Label {
Layout.topMargin: 20
Layout.leftMargin: 20
visible: downloadError !== ""
textFormat: Text.StyledText
text: qsTr("<strong><font size=\"1\"><a href=\"#error\">Error</a></strong></font>")
color: theme.textColor
font.pixelSize: theme.fontSizeLarge
linkColor: theme.textErrorColor
Accessible.role: Accessible.Paragraph
Accessible.name: text
Accessible.description: qsTr("Describes an error that occurred when downloading")
onLinkActivated: {
downloadingErrorPopup.text = downloadError;
downloadingErrorPopup.open();
}
}
Label {
visible: LLM.systemTotalRAMInGB() < ramrequired
Layout.topMargin: 20
Layout.leftMargin: 20
Layout.maximumWidth: 300
textFormat: Text.StyledText
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())
color: theme.textErrorColor
font.pixelSize: theme.fontSizeLarge
wrapMode: Text.WordWrap
Accessible.role: Accessible.Paragraph
Accessible.name: text
Accessible.description: qsTr("Error for incompatible hardware")
onLinkActivated: {
downloadingErrorPopup.text = downloadError;
downloadingErrorPopup.open();
}
}
}
ColumnLayout {
visible: isDownloading && !calcHash
Layout.topMargin: 20
Layout.leftMargin: 20
Layout.minimumWidth: 200
Layout.fillWidth: true
Layout.alignment: Qt.AlignTop | Qt.AlignHCenter
spacing: 20
ProgressBar {
id: itemProgressBar
Layout.fillWidth: true
width: 200
value: bytesReceived / bytesTotal
background: Rectangle {
implicitHeight: 45
color: theme.progressBackground
radius: 3
}
contentItem: Item {
implicitHeight: 40
Rectangle {
width: itemProgressBar.visualPosition * parent.width
height: parent.height
radius: 2
color: theme.progressForeground
}
}
Accessible.role: Accessible.ProgressBar
Accessible.name: qsTr("Download progressBar")
Accessible.description: qsTr("Shows the progress made in the download")
}
Label {
id: speedLabel
color: theme.textColor
Layout.alignment: Qt.AlignRight
text: speed
font.pixelSize: theme.fontSizeLarge
Accessible.role: Accessible.Paragraph
Accessible.name: qsTr("Download speed")
Accessible.description: qsTr("Download speed in bytes/kilobytes/megabytes per second")
}
}
RowLayout {
visible: calcHash
Layout.topMargin: 20
Layout.leftMargin: 20
Layout.minimumWidth: 200
Layout.maximumWidth: 200
Layout.fillWidth: true
Layout.alignment: Qt.AlignTop | Qt.AlignHCenter
clip: true
Label {
id: calcHashLabel
color: theme.textColor
text: qsTr("Calculating...")
font.pixelSize: theme.fontSizeLarge
Accessible.role: Accessible.Paragraph
Accessible.name: text
Accessible.description: qsTr("Whether the file hash is being calculated")
}
MyBusyIndicator {
id: busyCalcHash
running: calcHash
Accessible.role: Accessible.Animation
Accessible.name: qsTr("Busy indicator")
Accessible.description: qsTr("Displayed when the file hash is being calculated")
}
}
MyTextField {
id: apiKey
visible: !installed && isOnline
Layout.topMargin: 20
Layout.leftMargin: 20
Layout.minimumWidth: 200
Layout.alignment: Qt.AlignTop | Qt.AlignHCenter
wrapMode: Text.WrapAnywhere
function showError() {
messageToast.show(qsTr("ERROR: $API_KEY is empty."));
apiKey.placeholderTextColor = theme.textErrorColor;
}
onTextChanged: {
apiKey.placeholderTextColor = theme.mutedTextColor;
}
placeholderText: qsTr("enter $API_KEY")
Accessible.role: Accessible.EditableText
Accessible.name: placeholderText
Accessible.description: qsTr("Whether the file hash is being calculated")
}
MyTextField {
id: baseUrl
visible: !installed && isOnline && isCompatibleApi
Layout.topMargin: 20
Layout.leftMargin: 20
Layout.minimumWidth: 200
Layout.alignment: Qt.AlignTop | Qt.AlignHCenter
wrapMode: Text.WrapAnywhere
function showError() {
messageToast.show(qsTr("ERROR: $BASE_URL is empty."));
baseUrl.placeholderTextColor = theme.textErrorColor;
}
onTextChanged: {
baseUrl.placeholderTextColor = theme.mutedTextColor;
}
placeholderText: qsTr("enter $BASE_URL")
Accessible.role: Accessible.EditableText
Accessible.name: placeholderText
Accessible.description: qsTr("Whether the file hash is being calculated")
}
MyTextField {
id: modelName
visible: !installed && isOnline && isCompatibleApi
Layout.topMargin: 20
Layout.leftMargin: 20
Layout.minimumWidth: 200
Layout.alignment: Qt.AlignTop | Qt.AlignHCenter
wrapMode: Text.WrapAnywhere
function showError() {
messageToast.show(qsTr("ERROR: $MODEL_NAME is empty."))
modelName.placeholderTextColor = theme.textErrorColor;
}
onTextChanged: {
modelName.placeholderTextColor = theme.mutedTextColor;
}
placeholderText: qsTr("enter $MODEL_NAME")
Accessible.role: Accessible.EditableText
Accessible.name: placeholderText
Accessible.description: qsTr("Whether the file hash is being calculated")
}
}
}
}
Item {
Layout.minimumWidth: childrenRect.width
Layout.minimumHeight: childrenRect.height
Layout.bottomMargin: 10
RowLayout {
id: paramRow
anchors.centerIn: parent
ColumnLayout {
Layout.topMargin: 10
Layout.bottomMargin: 10
Layout.leftMargin: 20
Layout.rightMargin: 20
Text {
text: qsTr("File size")
font.pixelSize: theme.fontSizeSmall
color: theme.mutedDarkTextColor
}
Text {
text: filesize
color: theme.textColor
font.pixelSize: theme.fontSizeSmall
font.bold: true
}
}
Rectangle {
width: 1
Layout.fillHeight: true
color: theme.dividerColor
}
ColumnLayout {
Layout.topMargin: 10
Layout.bottomMargin: 10
Layout.leftMargin: 20
Layout.rightMargin: 20
Text {
text: qsTr("Quant")
font.pixelSize: theme.fontSizeSmall
color: theme.mutedDarkTextColor
}
Text {
text: quant
color: theme.textColor
font.pixelSize: theme.fontSizeSmall
font.bold: true
}
}
Rectangle {
width: 1
Layout.fillHeight: true
color: theme.dividerColor
}
ColumnLayout {
Layout.topMargin: 10
Layout.bottomMargin: 10
Layout.leftMargin: 20
Layout.rightMargin: 20
Text {
text: qsTr("Type")
font.pixelSize: theme.fontSizeSmall
color: theme.mutedDarkTextColor
}
Text {
text: type
color: theme.textColor
font.pixelSize: theme.fontSizeSmall
font.bold: true
}
}
}
Rectangle {
color: "transparent"
anchors.fill: paramRow
border.color: theme.dividerColor
border.width: 1
radius: 10
}
}
Rectangle {
Layout.fillWidth: true
height: 1
color: theme.dividerColor
}
}
}
}
}
}

View File

@ -42,12 +42,12 @@ Rectangle {
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.margins: 30
spacing: 30
spacing: 10
ColumnLayout {
Layout.fillWidth: true
Layout.alignment: Qt.AlignTop
spacing: 30
spacing: 10
MyButton {
id: backButton
@ -76,732 +76,60 @@ Rectangle {
font.pixelSize: theme.fontSizeBanner
color: theme.titleTextColor
}
}
RowLayout {
Layout.fillWidth: true
Layout.alignment: Qt.AlignCenter
Layout.margins: 0
spacing: 10
MyTextField {
id: discoverField
property string textBeingSearched: ""
readOnly: ModelList.discoverInProgress
Layout.alignment: Qt.AlignCenter
Layout.fillWidth: true
font.pixelSize: theme.fontSizeLarger
placeholderText: qsTr("Discover and download models by keyword search...")
Accessible.role: Accessible.EditableText
Accessible.name: placeholderText
Accessible.description: qsTr("Text field for discovering and filtering downloadable models")
Connections {
target: ModelList
function onDiscoverInProgressChanged() {
if (ModelList.discoverInProgress) {
discoverField.textBeingSearched = discoverField.text;
discoverField.text = qsTr("Searching \u00B7 %1").arg(discoverField.textBeingSearched);
} else {
discoverField.text = discoverField.textBeingSearched;
discoverField.textBeingSearched = "";
}
}
}
background: ProgressBar {
id: discoverProgressBar
indeterminate: ModelList.discoverInProgress && ModelList.discoverProgress === 0.0
value: ModelList.discoverProgress
background: Rectangle {
color: theme.controlBackground
border.color: theme.controlBorder
radius: 10
}
contentItem: Item {
Rectangle {
visible: ModelList.discoverInProgress
anchors.bottom: parent.bottom
width: discoverProgressBar.visualPosition * parent.width
height: 10
radius: 2
color: theme.progressForeground
}
}
}
Keys.onReturnPressed: (event)=> {
if (event.modifiers & Qt.ControlModifier || event.modifiers & Qt.ShiftModifier)
event.accepted = false;
else {
editingFinished();
sendDiscovery()
}
}
function sendDiscovery() {
ModelList.downloadableModels.discoverAndFilter(discoverField.text);
}
RowLayout {
spacing: 0
anchors.right: discoverField.right
anchors.verticalCenter: discoverField.verticalCenter
anchors.rightMargin: 15
visible: !ModelList.discoverInProgress
MyMiniButton {
id: clearDiscoverButton
backgroundColor: theme.textColor
backgroundColorHovered: theme.iconBackgroundDark
visible: discoverField.text !== ""
source: "qrc:/gpt4all/icons/close.svg"
onClicked: {
discoverField.text = ""
discoverField.sendDiscovery() // should clear results
}
}
MyMiniButton {
backgroundColor: theme.textColor
backgroundColorHovered: theme.iconBackgroundDark
source: "qrc:/gpt4all/icons/settings.svg"
onClicked: {
discoveryTools.visible = !discoveryTools.visible
}
}
MyMiniButton {
id: sendButton
enabled: !ModelList.discoverInProgress
backgroundColor: theme.textColor
backgroundColorHovered: theme.iconBackgroundDark
source: "qrc:/gpt4all/icons/send_message.svg"
Accessible.name: qsTr("Initiate model discovery and filtering")
Accessible.description: qsTr("Triggers discovery and filtering of models")
onClicked: {
discoverField.sendDiscovery()
}
}
}
RowLayout {
id: bar
implicitWidth: 600
spacing: 10
MyTabButton {
text: qsTr("GPT4All")
isSelected: gpt4AllModelView.isShown()
onPressed: {
gpt4AllModelView.show();
}
}
RowLayout {
id: discoveryTools
Layout.fillWidth: true
Layout.alignment: Qt.AlignCenter
Layout.margins: 0
spacing: 20
visible: false
MyComboBox {
id: comboSort
model: ListModel {
ListElement { name: qsTr("Default") }
ListElement { name: qsTr("Likes") }
ListElement { name: qsTr("Downloads") }
ListElement { name: qsTr("Recent") }
}
currentIndex: ModelList.discoverSort
contentItem: Text {
anchors.horizontalCenter: parent.horizontalCenter
rightPadding: 30
color: theme.textColor
text: {
return qsTr("Sort by: %1").arg(comboSort.displayText)
}
font.pixelSize: theme.fontSizeLarger
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter
elide: Text.ElideRight
}
onActivated: function (index) {
ModelList.discoverSort = index;
}
}
MyComboBox {
id: comboSortDirection
model: ListModel {
ListElement { name: qsTr("Asc") }
ListElement { name: qsTr("Desc") }
}
currentIndex: {
if (ModelList.discoverSortDirection === 1)
return 0
else
return 1;
}
contentItem: Text {
anchors.horizontalCenter: parent.horizontalCenter
rightPadding: 30
color: theme.textColor
text: {
return qsTr("Sort dir: %1").arg(comboSortDirection.displayText)
}
font.pixelSize: theme.fontSizeLarger
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter
elide: Text.ElideRight
}
onActivated: function (index) {
if (index === 0)
ModelList.discoverSortDirection = 1;
else
ModelList.discoverSortDirection = -1;
}
}
MyComboBox {
id: comboLimit
model: ListModel {
ListElement { name: "5" }
ListElement { name: "10" }
ListElement { name: "20" }
ListElement { name: "50" }
ListElement { name: "100" }
ListElement { name: qsTr("None") }
}
currentIndex: {
if (ModelList.discoverLimit === 5)
return 0;
else if (ModelList.discoverLimit === 10)
return 1;
else if (ModelList.discoverLimit === 20)
return 2;
else if (ModelList.discoverLimit === 50)
return 3;
else if (ModelList.discoverLimit === 100)
return 4;
else if (ModelList.discoverLimit === -1)
return 5;
}
contentItem: Text {
anchors.horizontalCenter: parent.horizontalCenter
rightPadding: 30
color: theme.textColor
text: {
return qsTr("Limit: %1").arg(comboLimit.displayText)
}
font.pixelSize: theme.fontSizeLarger
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter
elide: Text.ElideRight
}
onActivated: function (index) {
switch (index) {
case 0:
ModelList.discoverLimit = 5; break;
case 1:
ModelList.discoverLimit = 10; break;
case 2:
ModelList.discoverLimit = 20; break;
case 3:
ModelList.discoverLimit = 50; break;
case 4:
ModelList.discoverLimit = 100; break;
case 5:
ModelList.discoverLimit = -1; break;
}
}
MyTabButton {
text: qsTr("HuggingFace")
isSelected: huggingfaceModelView.isShown()
onPressed: {
huggingfaceModelView.show();
}
}
}
Label {
visible: !ModelList.downloadableModels.count && !ModelList.asyncModelRequestOngoing
StackLayout {
id: stackLayout
Layout.fillWidth: true
Layout.fillHeight: true
horizontalAlignment: Qt.AlignHCenter
verticalAlignment: Qt.AlignVCenter
text: qsTr("Network error: could not retrieve %1").arg("http://gpt4all.io/models/models3.json")
font.pixelSize: theme.fontSizeLarge
color: theme.mutedTextColor
}
MyBusyIndicator {
visible: !ModelList.downloadableModels.count && ModelList.asyncModelRequestOngoing
running: ModelList.asyncModelRequestOngoing
Accessible.role: Accessible.Animation
Layout.alignment: Qt.AlignCenter
Accessible.name: qsTr("Busy indicator")
Accessible.description: qsTr("Displayed when the models request is ongoing")
}
AddGPT4AllModelView {
id: gpt4AllModelView
Layout.fillWidth: true
Layout.fillHeight: true
ScrollView {
id: scrollView
ScrollBar.vertical.policy: ScrollBar.AsNeeded
Layout.fillWidth: true
Layout.fillHeight: true
clip: true
function show() {
stackLayout.currentIndex = 0;
}
function isShown() {
return stackLayout.currentIndex === 0
}
}
ListView {
id: modelListView
model: ModelList.downloadableModels
boundsBehavior: Flickable.StopAtBounds
spacing: 30
AddHFModelView {
id: huggingfaceModelView
Layout.fillWidth: true
Layout.fillHeight: true
// FIXME: This generates a warning and should not be used inside a layout, but without
// it the text field inside this qml does not display at full width so it looks like
// a bug in stacklayout
anchors.fill: parent
delegate: Rectangle {
id: delegateItem
width: modelListView.width
height: childrenRect.height + 60
color: theme.conversationBackground
radius: 10
border.width: 1
border.color: theme.controlBorder
ColumnLayout {
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
anchors.margins: 30
Text {
Layout.fillWidth: true
Layout.alignment: Qt.AlignLeft
text: name
elide: Text.ElideRight
color: theme.titleTextColor
font.pixelSize: theme.fontSizeLargest
font.bold: true
Accessible.role: Accessible.Paragraph
Accessible.name: qsTr("Model file")
Accessible.description: qsTr("Model file to be downloaded")
}
Rectangle {
Layout.fillWidth: true
height: 1
color: theme.dividerColor
}
RowLayout {
Layout.topMargin: 10
Layout.fillWidth: true
Text {
id: descriptionText
text: description
font.pixelSize: theme.fontSizeLarge
Layout.fillWidth: true
wrapMode: Text.WordWrap
textFormat: Text.StyledText
color: theme.textColor
linkColor: theme.textColor
Accessible.role: Accessible.Paragraph
Accessible.name: qsTr("Description")
Accessible.description: qsTr("File description")
onLinkActivated: function(link) { Qt.openUrlExternally(link); }
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.NoButton // pass clicks to parent
cursorShape: parent.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor
}
}
// FIXME Need to overhaul design here which must take into account
// features not present in current figma including:
// * Ability to cancel a current download
// * Ability to resume a download
// * The presentation of an error if encountered
// * Whether to show already installed models
// * Install of remote models with API keys
// * The presentation of the progress bar
Rectangle {
id: actionBox
width: childrenRect.width + 20
color: "transparent"
border.width: 1
border.color: theme.dividerColor
radius: 10
Layout.rightMargin: 20
Layout.bottomMargin: 20
Layout.minimumHeight: childrenRect.height + 20
Layout.alignment: Qt.AlignRight | Qt.AlignTop
ColumnLayout {
spacing: 0
MySettingsButton {
id: downloadButton
text: isDownloading ? qsTr("Cancel") : isIncomplete ? qsTr("Resume") : qsTr("Download")
font.pixelSize: theme.fontSizeLarge
Layout.topMargin: 20
Layout.leftMargin: 20
Layout.minimumWidth: 200
Layout.fillWidth: true
Layout.alignment: Qt.AlignTop | Qt.AlignHCenter
visible: !isOnline && !installed && !calcHash && downloadError === ""
Accessible.description: qsTr("Stop/restart/start the download")
onClicked: {
if (!isDownloading) {
Download.downloadModel(filename);
} else {
Download.cancelDownload(filename);
}
}
}
MySettingsDestructiveButton {
id: removeButton
text: qsTr("Remove")
Layout.topMargin: 20
Layout.leftMargin: 20
Layout.minimumWidth: 200
Layout.fillWidth: true
Layout.alignment: Qt.AlignTop | Qt.AlignHCenter
visible: !isDownloading && (installed || isIncomplete)
Accessible.description: qsTr("Remove model from filesystem")
onClicked: {
Download.removeModel(filename);
}
}
MySettingsButton {
id: installButton
visible: !installed && isOnline
Layout.topMargin: 20
Layout.leftMargin: 20
Layout.minimumWidth: 200
Layout.fillWidth: true
Layout.alignment: Qt.AlignTop | Qt.AlignHCenter
text: qsTr("Install")
font.pixelSize: theme.fontSizeLarge
onClicked: {
var apiKeyText = apiKey.text.trim(),
baseUrlText = baseUrl.text.trim(),
modelNameText = modelName.text.trim();
var apiKeyOk = apiKeyText !== "",
baseUrlOk = !isCompatibleApi || baseUrlText !== "",
modelNameOk = !isCompatibleApi || modelNameText !== "";
if (!apiKeyOk)
apiKey.showError();
if (!baseUrlOk)
baseUrl.showError();
if (!modelNameOk)
modelName.showError();
if (!apiKeyOk || !baseUrlOk || !modelNameOk)
return;
if (!isCompatibleApi)
Download.installModel(
filename,
apiKeyText,
);
else
Download.installCompatibleModel(
modelNameText,
apiKeyText,
baseUrlText,
);
}
Accessible.role: Accessible.Button
Accessible.name: qsTr("Install")
Accessible.description: qsTr("Install online model")
}
ColumnLayout {
spacing: 0
Label {
Layout.topMargin: 20
Layout.leftMargin: 20
visible: downloadError !== ""
textFormat: Text.StyledText
text: qsTr("<strong><font size=\"1\"><a href=\"#error\">Error</a></strong></font>")
color: theme.textColor
font.pixelSize: theme.fontSizeLarge
linkColor: theme.textErrorColor
Accessible.role: Accessible.Paragraph
Accessible.name: text
Accessible.description: qsTr("Describes an error that occurred when downloading")
onLinkActivated: {
downloadingErrorPopup.text = downloadError;
downloadingErrorPopup.open();
}
}
Label {
visible: LLM.systemTotalRAMInGB() < ramrequired
Layout.topMargin: 20
Layout.leftMargin: 20
Layout.maximumWidth: 300
textFormat: Text.StyledText
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())
color: theme.textErrorColor
font.pixelSize: theme.fontSizeLarge
wrapMode: Text.WordWrap
Accessible.role: Accessible.Paragraph
Accessible.name: text
Accessible.description: qsTr("Error for incompatible hardware")
onLinkActivated: {
downloadingErrorPopup.text = downloadError;
downloadingErrorPopup.open();
}
}
}
ColumnLayout {
visible: isDownloading && !calcHash
Layout.topMargin: 20
Layout.leftMargin: 20
Layout.minimumWidth: 200
Layout.fillWidth: true
Layout.alignment: Qt.AlignTop | Qt.AlignHCenter
spacing: 20
ProgressBar {
id: itemProgressBar
Layout.fillWidth: true
width: 200
value: bytesReceived / bytesTotal
background: Rectangle {
implicitHeight: 45
color: theme.progressBackground
radius: 3
}
contentItem: Item {
implicitHeight: 40
Rectangle {
width: itemProgressBar.visualPosition * parent.width
height: parent.height
radius: 2
color: theme.progressForeground
}
}
Accessible.role: Accessible.ProgressBar
Accessible.name: qsTr("Download progressBar")
Accessible.description: qsTr("Shows the progress made in the download")
}
Label {
id: speedLabel
color: theme.textColor
Layout.alignment: Qt.AlignRight
text: speed
font.pixelSize: theme.fontSizeLarge
Accessible.role: Accessible.Paragraph
Accessible.name: qsTr("Download speed")
Accessible.description: qsTr("Download speed in bytes/kilobytes/megabytes per second")
}
}
RowLayout {
visible: calcHash
Layout.topMargin: 20
Layout.leftMargin: 20
Layout.minimumWidth: 200
Layout.maximumWidth: 200
Layout.fillWidth: true
Layout.alignment: Qt.AlignTop | Qt.AlignHCenter
clip: true
Label {
id: calcHashLabel
color: theme.textColor
text: qsTr("Calculating...")
font.pixelSize: theme.fontSizeLarge
Accessible.role: Accessible.Paragraph
Accessible.name: text
Accessible.description: qsTr("Whether the file hash is being calculated")
}
MyBusyIndicator {
id: busyCalcHash
running: calcHash
Accessible.role: Accessible.Animation
Accessible.name: qsTr("Busy indicator")
Accessible.description: qsTr("Displayed when the file hash is being calculated")
}
}
MyTextField {
id: apiKey
visible: !installed && isOnline
Layout.topMargin: 20
Layout.leftMargin: 20
Layout.minimumWidth: 200
Layout.alignment: Qt.AlignTop | Qt.AlignHCenter
wrapMode: Text.WrapAnywhere
function showError() {
messageToast.show(qsTr("ERROR: $API_KEY is empty."));
apiKey.placeholderTextColor = theme.textErrorColor;
}
onTextChanged: {
apiKey.placeholderTextColor = theme.mutedTextColor;
}
placeholderText: qsTr("enter $API_KEY")
Accessible.role: Accessible.EditableText
Accessible.name: placeholderText
Accessible.description: qsTr("Whether the file hash is being calculated")
}
MyTextField {
id: baseUrl
visible: !installed && isOnline && isCompatibleApi
Layout.topMargin: 20
Layout.leftMargin: 20
Layout.minimumWidth: 200
Layout.alignment: Qt.AlignTop | Qt.AlignHCenter
wrapMode: Text.WrapAnywhere
function showError() {
messageToast.show(qsTr("ERROR: $BASE_URL is empty."));
baseUrl.placeholderTextColor = theme.textErrorColor;
}
onTextChanged: {
baseUrl.placeholderTextColor = theme.mutedTextColor;
}
placeholderText: qsTr("enter $BASE_URL")
Accessible.role: Accessible.EditableText
Accessible.name: placeholderText
Accessible.description: qsTr("Whether the file hash is being calculated")
}
MyTextField {
id: modelName
visible: !installed && isOnline && isCompatibleApi
Layout.topMargin: 20
Layout.leftMargin: 20
Layout.minimumWidth: 200
Layout.alignment: Qt.AlignTop | Qt.AlignHCenter
wrapMode: Text.WrapAnywhere
function showError() {
messageToast.show(qsTr("ERROR: $MODEL_NAME is empty."))
modelName.placeholderTextColor = theme.textErrorColor;
}
onTextChanged: {
modelName.placeholderTextColor = theme.mutedTextColor;
}
placeholderText: qsTr("enter $MODEL_NAME")
Accessible.role: Accessible.EditableText
Accessible.name: placeholderText
Accessible.description: qsTr("Whether the file hash is being calculated")
}
}
}
}
Item {
Layout.minimumWidth: childrenRect.width
Layout.minimumHeight: childrenRect.height
Layout.bottomMargin: 10
RowLayout {
id: paramRow
anchors.centerIn: parent
ColumnLayout {
Layout.topMargin: 10
Layout.bottomMargin: 10
Layout.leftMargin: 20
Layout.rightMargin: 20
Text {
text: qsTr("File size")
font.pixelSize: theme.fontSizeSmall
color: theme.mutedDarkTextColor
}
Text {
text: filesize
color: theme.textColor
font.pixelSize: theme.fontSizeSmall
font.bold: true
}
}
Rectangle {
width: 1
Layout.fillHeight: true
color: theme.dividerColor
}
ColumnLayout {
Layout.topMargin: 10
Layout.bottomMargin: 10
Layout.leftMargin: 20
Layout.rightMargin: 20
Text {
text: qsTr("RAM required")
font.pixelSize: theme.fontSizeSmall
color: theme.mutedDarkTextColor
}
Text {
text: ramrequired >= 0 ? qsTr("%1 GB").arg(ramrequired) : qsTr("?")
color: theme.textColor
font.pixelSize: theme.fontSizeSmall
font.bold: true
}
}
Rectangle {
width: 1
Layout.fillHeight: true
color: theme.dividerColor
}
ColumnLayout {
Layout.topMargin: 10
Layout.bottomMargin: 10
Layout.leftMargin: 20
Layout.rightMargin: 20
Text {
text: qsTr("Parameters")
font.pixelSize: theme.fontSizeSmall
color: theme.mutedDarkTextColor
}
Text {
text: parameters !== "" ? parameters : qsTr("?")
color: theme.textColor
font.pixelSize: theme.fontSizeSmall
font.bold: true
}
}
Rectangle {
width: 1
Layout.fillHeight: true
color: theme.dividerColor
}
ColumnLayout {
Layout.topMargin: 10
Layout.bottomMargin: 10
Layout.leftMargin: 20
Layout.rightMargin: 20
Text {
text: qsTr("Quant")
font.pixelSize: theme.fontSizeSmall
color: theme.mutedDarkTextColor
}
Text {
text: quant
color: theme.textColor
font.pixelSize: theme.fontSizeSmall
font.bold: true
}
}
Rectangle {
width: 1
Layout.fillHeight: true
color: theme.dividerColor
}
ColumnLayout {
Layout.topMargin: 10
Layout.bottomMargin: 10
Layout.leftMargin: 20
Layout.rightMargin: 20
Text {
text: qsTr("Type")
font.pixelSize: theme.fontSizeSmall
color: theme.mutedDarkTextColor
}
Text {
text: type
color: theme.textColor
font.pixelSize: theme.fontSizeSmall
font.bold: true
}
}
}
Rectangle {
color: "transparent"
anchors.fill: paramRow
border.color: theme.dividerColor
border.width: 1
radius: 10
}
}
Rectangle {
Layout.fillWidth: true
height: 1
color: theme.dividerColor
}
}
function show() {
stackLayout.currentIndex = 1;
}
function isShown() {
return stackLayout.currentIndex === 1
}
}
}

View File

@ -47,7 +47,7 @@ Rectangle {
id: welcome
Layout.alignment: Qt.AlignHCenter
text: qsTr("Welcome to GPT4All")
font.pixelSize: theme.fontSizeBanner
font.pixelSize: theme.fontSizeBannerLarge
color: theme.titleTextColor
}

View File

@ -0,0 +1,26 @@
import QtCore
import QtQuick
import QtQuick.Controls
import QtQuick.Controls.Basic
import mysettings
import mysettingsenums
MySettingsButton {
property bool isSelected: false
contentItem: Text {
text: parent.text
horizontalAlignment: Qt.AlignCenter
color: isSelected ? theme.titleTextColor : theme.styledTextColor
font.pixelSize: theme.fontSizeLarger
}
background: Item {
visible: isSelected || hovered
Rectangle {
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.right: parent.right
height: 3
color: isSelected ? theme.titleTextColor : theme.styledTextColorLighter
}
}
}

View File

@ -1017,6 +1017,17 @@ QtObject {
}
}
property color styledTextColorLighter: {
switch (MySettings.chatTheme) {
case MySettingsEnums.ChatTheme.LegacyDark:
return purple50
case MySettingsEnums.ChatTheme.Dark:
return yellow0
default:
return grayRed400
}
}
property color styledTextColor2: {
switch (MySettings.chatTheme) {
case MySettingsEnums.ChatTheme.LegacyDark:
@ -1256,5 +1267,6 @@ QtObject {
property real fontSizeLarger: 14 * fontScale
property real fontSizeLargest: 18 * fontScale
property real fontSizeBannerSmall: 24 * fontScale**.8
property real fontSizeBanner: 48 * fontScale**.8
property real fontSizeBanner: 32 * fontScale**.8
property real fontSizeBannerLarge: 48 * fontScale**.8
}

View File

@ -465,47 +465,54 @@ bool InstalledModels::filterAcceptsRow(int sourceRow,
return (isInstalled || (!m_selectable && isDownloading)) && !isEmbeddingModel;
}
DownloadableModels::DownloadableModels(QObject *parent)
GPT4AllDownloadableModels::GPT4AllDownloadableModels(QObject *parent)
: QSortFilterProxyModel(parent)
, m_expanded(false)
, m_limit(5)
{
connect(this, &DownloadableModels::rowsInserted, this, &DownloadableModels::countChanged);
connect(this, &DownloadableModels::rowsRemoved, this, &DownloadableModels::countChanged);
connect(this, &DownloadableModels::modelReset, this, &DownloadableModels::countChanged);
connect(this, &GPT4AllDownloadableModels::rowsInserted, this, &GPT4AllDownloadableModels::countChanged);
connect(this, &GPT4AllDownloadableModels::rowsRemoved, this, &GPT4AllDownloadableModels::countChanged);
connect(this, &GPT4AllDownloadableModels::modelReset, this, &GPT4AllDownloadableModels::countChanged);
}
bool DownloadableModels::filterAcceptsRow(int sourceRow,
bool GPT4AllDownloadableModels::filterAcceptsRow(int sourceRow,
const QModelIndex &sourceParent) const
{
// FIXME We can eliminate the 'expanded' code as the UI no longer uses this
bool withinLimit = sourceRow < (m_expanded ? sourceModel()->rowCount() : m_limit);
QModelIndex index = sourceModel()->index(sourceRow, 0, sourceParent);
bool hasDescription = !sourceModel()->data(index, ModelList::DescriptionRole).toString().isEmpty();
bool isClone = sourceModel()->data(index, ModelList::IsCloneRole).toBool();
return withinLimit && hasDescription && !isClone;
bool isDiscovered = sourceModel()->data(index, ModelList::IsDiscoveredRole).toBool();
return !isDiscovered && hasDescription && !isClone;
}
int DownloadableModels::count() const
int GPT4AllDownloadableModels::count() const
{
return rowCount();
}
bool DownloadableModels::isExpanded() const
HuggingFaceDownloadableModels::HuggingFaceDownloadableModels(QObject *parent)
: QSortFilterProxyModel(parent)
, m_limit(5)
{
return m_expanded;
connect(this, &HuggingFaceDownloadableModels::rowsInserted, this, &HuggingFaceDownloadableModels::countChanged);
connect(this, &HuggingFaceDownloadableModels::rowsRemoved, this, &HuggingFaceDownloadableModels::countChanged);
connect(this, &HuggingFaceDownloadableModels::modelReset, this, &HuggingFaceDownloadableModels::countChanged);
}
void DownloadableModels::setExpanded(bool expanded)
bool HuggingFaceDownloadableModels::filterAcceptsRow(int sourceRow,
const QModelIndex &sourceParent) const
{
if (m_expanded != expanded) {
m_expanded = expanded;
invalidateFilter();
emit expandedChanged(m_expanded);
}
QModelIndex index = sourceModel()->index(sourceRow, 0, sourceParent);
bool hasDescription = !sourceModel()->data(index, ModelList::DescriptionRole).toString().isEmpty();
bool isClone = sourceModel()->data(index, ModelList::IsCloneRole).toBool();
bool isDiscovered = sourceModel()->data(index, ModelList::IsDiscoveredRole).toBool();
return isDiscovered && hasDescription && !isClone;
}
void DownloadableModels::discoverAndFilter(const QString &discover)
int HuggingFaceDownloadableModels::count() const
{
return rowCount();
}
void HuggingFaceDownloadableModels::discoverAndFilter(const QString &discover)
{
m_discoverFilter = discover;
ModelList *ml = qobject_cast<ModelList*>(parent());
@ -523,7 +530,8 @@ ModelList::ModelList()
: QAbstractListModel(nullptr)
, m_installedModels(new InstalledModels(this))
, m_selectableModels(new InstalledModels(this, /*selectable*/ true))
, m_downloadableModels(new DownloadableModels(this))
, m_gpt4AllDownloadableModels(new GPT4AllDownloadableModels(this))
, m_huggingFaceDownloadableModels(new HuggingFaceDownloadableModels(this))
, m_asyncModelRequestOngoing(false)
, m_discoverLimit(20)
, m_discoverSortDirection(-1)
@ -536,7 +544,8 @@ ModelList::ModelList()
m_installedModels->setSourceModel(this);
m_selectableModels->setSourceModel(this);
m_downloadableModels->setSourceModel(this);
m_gpt4AllDownloadableModels->setSourceModel(this);
m_huggingFaceDownloadableModels->setSourceModel(this);
auto *mySettings = MySettings::globalInstance();
connect(mySettings, &MySettings::nameChanged, this, &ModelList::updateDataForSettings );

View File

@ -294,17 +294,28 @@ private:
bool m_selectable;
};
class DownloadableModels : public QSortFilterProxyModel
class GPT4AllDownloadableModels : public QSortFilterProxyModel
{
Q_OBJECT
Q_PROPERTY(int count READ count NOTIFY countChanged)
Q_PROPERTY(bool expanded READ isExpanded WRITE setExpanded NOTIFY expandedChanged)
public:
explicit DownloadableModels(QObject *parent);
explicit GPT4AllDownloadableModels(QObject *parent);
int count() const;
bool isExpanded() const;
void setExpanded(bool expanded);
Q_SIGNALS:
void countChanged();
protected:
bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const override;
};
class HuggingFaceDownloadableModels : public QSortFilterProxyModel
{
Q_OBJECT
Q_PROPERTY(int count READ count NOTIFY countChanged)
public:
explicit HuggingFaceDownloadableModels(QObject *parent);
int count() const;
Q_INVOKABLE void discoverAndFilter(const QString &discover);
@ -314,11 +325,7 @@ Q_SIGNALS:
protected:
bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const override;
Q_SIGNALS:
void expandedChanged(bool expanded);
private:
bool m_expanded;
int m_limit;
QString m_discoverFilter;
};
@ -329,7 +336,8 @@ class ModelList : public QAbstractListModel
Q_PROPERTY(int count READ count NOTIFY countChanged)
Q_PROPERTY(InstalledModels* installedModels READ installedModels NOTIFY installedModelsChanged)
Q_PROPERTY(InstalledModels* selectableModels READ selectableModels NOTIFY selectableModelsChanged)
Q_PROPERTY(DownloadableModels* downloadableModels READ downloadableModels NOTIFY downloadableModelsChanged)
Q_PROPERTY(GPT4AllDownloadableModels* gpt4AllDownloadableModels READ gpt4AllDownloadableModels CONSTANT)
Q_PROPERTY(HuggingFaceDownloadableModels* huggingFaceDownloadableModels READ huggingFaceDownloadableModels CONSTANT)
Q_PROPERTY(QList<ModelInfo> selectableModelList READ selectableModelList NOTIFY selectableModelListChanged)
Q_PROPERTY(bool asyncModelRequestOngoing READ asyncModelRequestOngoing NOTIFY asyncModelRequestOngoingChanged)
Q_PROPERTY(int discoverLimit READ discoverLimit WRITE setDiscoverLimit NOTIFY discoverLimitChanged)
@ -482,7 +490,8 @@ public:
InstalledModels *installedModels() const { return m_installedModels; }
InstalledModels *selectableModels() const { return m_selectableModels; }
DownloadableModels *downloadableModels() const { return m_downloadableModels; }
GPT4AllDownloadableModels *gpt4AllDownloadableModels() const { return m_gpt4AllDownloadableModels; }
HuggingFaceDownloadableModels *huggingFaceDownloadableModels() const { return m_huggingFaceDownloadableModels; }
static inline QString toFileSize(quint64 sz) {
if (sz < 1024) {
@ -520,7 +529,6 @@ Q_SIGNALS:
void countChanged();
void installedModelsChanged();
void selectableModelsChanged();
void downloadableModelsChanged();
void selectableModelListChanged();
void asyncModelRequestOngoingChanged();
void discoverLimitChanged();
@ -570,7 +578,8 @@ private:
QNetworkAccessManager m_networkManager;
InstalledModels *m_installedModels;
InstalledModels *m_selectableModels;
DownloadableModels *m_downloadableModels;
GPT4AllDownloadableModels *m_gpt4AllDownloadableModels;
HuggingFaceDownloadableModels *m_huggingFaceDownloadableModels;
QList<ModelInfo*> m_models;
QHash<QString, ModelInfo*> m_modelMap;
bool m_asyncModelRequestOngoing;

View File

@ -59,6 +59,467 @@
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>AddGPT4AllModelView</name>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="31"/>
<source>These models have been specifically configured for use in GPT4All. The first few models on the list are known to work the best, but you should only attempt to use models that will fit in your available memory.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="45"/>
<source>Network error: could not retrieve %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="55"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="343"/>
<source>Busy indicator</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="56"/>
<source>Displayed when the models request is ongoing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="96"/>
<source>Model file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="97"/>
<source>Model file to be downloaded</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="120"/>
<source>Description</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="121"/>
<source>File description</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="154"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="154"/>
<source>Resume</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="154"/>
<source>Download</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="162"/>
<source>Stop/restart/start the download</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="174"/>
<source>Remove</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="181"/>
<source>Remove model from filesystem</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="195"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="229"/>
<source>Install</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="230"/>
<source>Install online model</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="240"/>
<source>&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Error&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="246"/>
<source>Describes an error that occurred when downloading</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="259"/>
<source>&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;WARNING: Not recommended for your hardware. Model requires more memory (%1 GB) than your system has available (%2).&lt;/strong&gt;&lt;/font&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="265"/>
<source>Error for incompatible hardware</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="303"/>
<source>Download progressBar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="304"/>
<source>Shows the progress made in the download</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="314"/>
<source>Download speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="315"/>
<source>Download speed in bytes/kilobytes/megabytes per second</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="332"/>
<source>Calculating...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="336"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="366"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="387"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="408"/>
<source>Whether the file hash is being calculated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="344"/>
<source>Displayed when the file hash is being calculated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="357"/>
<source>ERROR: $API_KEY is empty.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="363"/>
<source>enter $API_KEY</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="378"/>
<source>ERROR: $BASE_URL is empty.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="384"/>
<source>enter $BASE_URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="399"/>
<source>ERROR: $MODEL_NAME is empty.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="405"/>
<source>enter $MODEL_NAME</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="427"/>
<source>File size</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="449"/>
<source>RAM required</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="454"/>
<source>%1 GB</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="454"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="476"/>
<source>?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="471"/>
<source>Parameters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="493"/>
<source>Quant</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="515"/>
<source>Type</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>AddHFModelView</name>
<message>
<location filename="../qml/AddHFModelView.qml" line="32"/>
<source>Use the search to find and download models from HuggingFace. There is NO GUARANTEE that these will work. Many will require additional configuration before they can be used.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="52"/>
<source>Discover and download models by keyword search...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="55"/>
<source>Text field for discovering and filtering downloadable models</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="61"/>
<source>Searching · %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="131"/>
<source>Initiate model discovery and filtering</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="132"/>
<source>Triggers discovery and filtering of models</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="151"/>
<source>Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="152"/>
<source>Likes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="153"/>
<source>Downloads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="154"/>
<source>Recent</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="162"/>
<source>Sort by: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="176"/>
<source>Asc</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="177"/>
<source>Desc</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="190"/>
<source>Sort dir: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="212"/>
<source>None</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="234"/>
<source>Limit: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="297"/>
<source>Model file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="298"/>
<source>Model file to be downloaded</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="321"/>
<source>Description</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="322"/>
<source>File description</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="355"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="355"/>
<source>Resume</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="355"/>
<source>Download</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="363"/>
<source>Stop/restart/start the download</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="375"/>
<source>Remove</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="382"/>
<source>Remove model from filesystem</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="396"/>
<location filename="../qml/AddHFModelView.qml" line="430"/>
<source>Install</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="431"/>
<source>Install online model</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="441"/>
<source>&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Error&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="447"/>
<source>Describes an error that occurred when downloading</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="460"/>
<source>&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;WARNING: Not recommended for your hardware. Model requires more memory (%1 GB) than your system has available (%2).&lt;/strong&gt;&lt;/font&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="466"/>
<source>Error for incompatible hardware</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="504"/>
<source>Download progressBar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="505"/>
<source>Shows the progress made in the download</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="515"/>
<source>Download speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="516"/>
<source>Download speed in bytes/kilobytes/megabytes per second</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="533"/>
<source>Calculating...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="537"/>
<location filename="../qml/AddHFModelView.qml" line="567"/>
<location filename="../qml/AddHFModelView.qml" line="588"/>
<location filename="../qml/AddHFModelView.qml" line="609"/>
<source>Whether the file hash is being calculated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="544"/>
<source>Busy indicator</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="545"/>
<source>Displayed when the file hash is being calculated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="558"/>
<source>ERROR: $API_KEY is empty.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="564"/>
<source>enter $API_KEY</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="579"/>
<source>ERROR: $BASE_URL is empty.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="585"/>
<source>enter $BASE_URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="600"/>
<source>ERROR: $MODEL_NAME is empty.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="606"/>
<source>enter $MODEL_NAME</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="628"/>
<source>File size</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="650"/>
<source>Quant</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="672"/>
<source>Type</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>AddModelView</name>
<message>
@ -72,279 +533,13 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="92"/>
<source>Discover and download models by keyword search...</source>
<location filename="../qml/AddModelView.qml" line="86"/>
<source>GPT4All</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="95"/>
<source>Text field for discovering and filtering downloadable models</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="171"/>
<source>Initiate model discovery and filtering</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="172"/>
<source>Triggers discovery and filtering of models</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="191"/>
<source>Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="192"/>
<source>Likes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="193"/>
<source>Downloads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="194"/>
<source>Recent</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="216"/>
<source>Asc</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="217"/>
<source>Desc</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="252"/>
<source>None</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="101"/>
<source>Searching · %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="202"/>
<source>Sort by: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="230"/>
<source>Sort dir: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="274"/>
<source>Limit: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="307"/>
<source>Network error: could not retrieve %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="317"/>
<location filename="../qml/AddModelView.qml" line="605"/>
<source>Busy indicator</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="318"/>
<source>Displayed when the models request is ongoing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="358"/>
<source>Model file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="359"/>
<source>Model file to be downloaded</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="382"/>
<source>Description</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="383"/>
<source>File description</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="416"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="416"/>
<source>Resume</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="416"/>
<source>Download</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="424"/>
<source>Stop/restart/start the download</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="436"/>
<source>Remove</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="443"/>
<source>Remove model from filesystem</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="457"/>
<location filename="../qml/AddModelView.qml" line="491"/>
<source>Install</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="492"/>
<source>Install online model</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="521"/>
<source>&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;WARNING: Not recommended for your hardware. Model requires more memory (%1 GB) than your system has available (%2).&lt;/strong&gt;&lt;/font&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="619"/>
<source>ERROR: $API_KEY is empty.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="640"/>
<source>ERROR: $BASE_URL is empty.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="646"/>
<source>enter $BASE_URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="661"/>
<source>ERROR: $MODEL_NAME is empty.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="667"/>
<source>enter $MODEL_NAME</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="716"/>
<source>%1 GB</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="716"/>
<location filename="../qml/AddModelView.qml" line="738"/>
<source>?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="508"/>
<source>Describes an error that occurred when downloading</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="502"/>
<source>&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Error&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="527"/>
<source>Error for incompatible hardware</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="565"/>
<source>Download progressBar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="566"/>
<source>Shows the progress made in the download</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="576"/>
<source>Download speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="577"/>
<source>Download speed in bytes/kilobytes/megabytes per second</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="594"/>
<source>Calculating...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="598"/>
<location filename="../qml/AddModelView.qml" line="628"/>
<location filename="../qml/AddModelView.qml" line="649"/>
<location filename="../qml/AddModelView.qml" line="670"/>
<source>Whether the file hash is being calculated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="606"/>
<source>Displayed when the file hash is being calculated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="625"/>
<source>enter $API_KEY</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="689"/>
<source>File size</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="711"/>
<source>RAM required</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="733"/>
<source>Parameters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="755"/>
<source>Quant</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="777"/>
<source>Type</source>
<location filename="../qml/AddModelView.qml" line="93"/>
<source>HuggingFace</source>
<translation type="unfinished"></translation>
</message>
</context>
@ -1602,78 +1797,78 @@ model to get started</source>
<context>
<name>ModelList</name>
<message>
<location filename="../src/modellist.cpp" line="1672"/>
<location filename="../src/modellist.cpp" line="1681"/>
<source>&lt;ul&gt;&lt;li&gt;Requires personal OpenAI API key.&lt;/li&gt;&lt;li&gt;WARNING: Will send your chats to OpenAI!&lt;/li&gt;&lt;li&gt;Your API key will be stored on disk&lt;/li&gt;&lt;li&gt;Will only be used to communicate with OpenAI&lt;/li&gt;&lt;li&gt;You can apply for an API key &lt;a href=&quot;https://platform.openai.com/account/api-keys&quot;&gt;here.&lt;/a&gt;&lt;/li&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1691"/>
<location filename="../src/modellist.cpp" line="1700"/>
<source>&lt;strong&gt;OpenAI&apos;s ChatGPT model GPT-3.5 Turbo&lt;/strong&gt;&lt;br&gt; %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1720"/>
<location filename="../src/modellist.cpp" line="1729"/>
<source>&lt;strong&gt;OpenAI&apos;s ChatGPT model GPT-4&lt;/strong&gt;&lt;br&gt; %1 %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1752"/>
<location filename="../src/modellist.cpp" line="1761"/>
<source>&lt;strong&gt;Mistral Tiny model&lt;/strong&gt;&lt;br&gt; %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1778"/>
<location filename="../src/modellist.cpp" line="1787"/>
<source>&lt;strong&gt;Mistral Small model&lt;/strong&gt;&lt;br&gt; %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1805"/>
<location filename="../src/modellist.cpp" line="1814"/>
<source>&lt;strong&gt;Mistral Medium model&lt;/strong&gt;&lt;br&gt; %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1705"/>
<location filename="../src/modellist.cpp" line="1714"/>
<source>&lt;br&gt;&lt;br&gt;&lt;i&gt;* Even if you pay OpenAI for ChatGPT-4 this does not guarantee API key access. Contact OpenAI for more info.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1309"/>
<location filename="../src/modellist.cpp" line="1360"/>
<location filename="../src/modellist.cpp" line="1318"/>
<location filename="../src/modellist.cpp" line="1369"/>
<source>cannot open &quot;%1&quot;: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1321"/>
<location filename="../src/modellist.cpp" line="1330"/>
<source>cannot create &quot;%1&quot;: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1371"/>
<location filename="../src/modellist.cpp" line="1380"/>
<source>%1 (%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1372"/>
<location filename="../src/modellist.cpp" line="1381"/>
<source>&lt;strong&gt;OpenAI-Compatible API Model&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;API Key: %1&lt;/li&gt;&lt;li&gt;Base URL: %2&lt;/li&gt;&lt;li&gt;Model Name: %3&lt;/li&gt;&lt;/ul&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1733"/>
<location filename="../src/modellist.cpp" line="1742"/>
<source>&lt;ul&gt;&lt;li&gt;Requires personal Mistral API key.&lt;/li&gt;&lt;li&gt;WARNING: Will send your chats to Mistral!&lt;/li&gt;&lt;li&gt;Your API key will be stored on disk&lt;/li&gt;&lt;li&gt;Will only be used to communicate with Mistral&lt;/li&gt;&lt;li&gt;You can apply for an API key &lt;a href=&quot;https://console.mistral.ai/user/api-keys&quot;&gt;here&lt;/a&gt;.&lt;/li&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1818"/>
<location filename="../src/modellist.cpp" line="1827"/>
<source>&lt;ul&gt;&lt;li&gt;Requires personal API key and the API base URL.&lt;/li&gt;&lt;li&gt;WARNING: Will send your chats to the OpenAI-compatible API Server you specified!&lt;/li&gt;&lt;li&gt;Your API key will be stored on disk&lt;/li&gt;&lt;li&gt;Will only be used to communicate with the OpenAI-compatible API Server&lt;/li&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1835"/>
<location filename="../src/modellist.cpp" line="1844"/>
<source>&lt;strong&gt;Connect to OpenAI-compatible API server&lt;/strong&gt;&lt;br&gt; %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="2259"/>
<location filename="../src/modellist.cpp" line="2268"/>
<source>&lt;strong&gt;Created by %1.&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;Published on %2.&lt;li&gt;This model has %3 likes.&lt;li&gt;This model has %4 downloads.&lt;li&gt;More info can be found &lt;a href=&quot;https://huggingface.co/%5&quot;&gt;here.&lt;/a&gt;&lt;/ul&gt;</source>
<translation type="unfinished"></translation>
</message>
@ -2658,12 +2853,12 @@ model release that uses your data!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../main.qml" line="687"/>
<location filename="../main.qml" line="684"/>
<source>Installed models</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../main.qml" line="688"/>
<location filename="../main.qml" line="685"/>
<source>View of installed models</source>
<translation type="unfinished"></translation>
</message>

View File

@ -63,6 +63,467 @@
<translation>Crear colección</translation>
</message>
</context>
<context>
<name>AddGPT4AllModelView</name>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="31"/>
<source>These models have been specifically configured for use in GPT4All. The first few models on the list are known to work the best, but you should only attempt to use models that will fit in your available memory.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="45"/>
<source>Network error: could not retrieve %1</source>
<translation type="unfinished">Error de red: no se pudo recuperar %1</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="55"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="343"/>
<source>Busy indicator</source>
<translation type="unfinished">Indicador de ocupado</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="56"/>
<source>Displayed when the models request is ongoing</source>
<translation type="unfinished">Se muestra cuando la solicitud de modelos está en curso</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="96"/>
<source>Model file</source>
<translation type="unfinished">Archivo del modelo</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="97"/>
<source>Model file to be downloaded</source>
<translation type="unfinished">Archivo del modelo a descargar</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="120"/>
<source>Description</source>
<translation type="unfinished">Descripción</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="121"/>
<source>File description</source>
<translation type="unfinished">Descripción del archivo</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="154"/>
<source>Cancel</source>
<translation type="unfinished">Cancelar</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="154"/>
<source>Resume</source>
<translation type="unfinished">Reanudar</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="154"/>
<source>Download</source>
<translation type="unfinished">Descargar</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="162"/>
<source>Stop/restart/start the download</source>
<translation type="unfinished">Detener/reiniciar/iniciar la descarga</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="174"/>
<source>Remove</source>
<translation type="unfinished">Eliminar</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="181"/>
<source>Remove model from filesystem</source>
<translation type="unfinished">Eliminar modelo del sistema de archivos</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="195"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="229"/>
<source>Install</source>
<translation type="unfinished">Instalar</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="230"/>
<source>Install online model</source>
<translation type="unfinished">Instalar modelo en línea</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="240"/>
<source>&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Error&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</source>
<translation type="unfinished">&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Error&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="246"/>
<source>Describes an error that occurred when downloading</source>
<translation type="unfinished">Describe un error que ocurrió durante la descarga</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="259"/>
<source>&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;WARNING: Not recommended for your hardware. Model requires more memory (%1 GB) than your system has available (%2).&lt;/strong&gt;&lt;/font&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="265"/>
<source>Error for incompatible hardware</source>
<translation type="unfinished">Error por hardware incompatible</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="303"/>
<source>Download progressBar</source>
<translation type="unfinished">Barra de progreso de descarga</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="304"/>
<source>Shows the progress made in the download</source>
<translation type="unfinished">Muestra el progreso realizado en la descarga</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="314"/>
<source>Download speed</source>
<translation type="unfinished">Velocidad de descarga</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="315"/>
<source>Download speed in bytes/kilobytes/megabytes per second</source>
<translation type="unfinished">Velocidad de descarga en bytes/kilobytes/megabytes por segundo</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="332"/>
<source>Calculating...</source>
<translation type="unfinished">Calculando...</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="336"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="366"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="387"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="408"/>
<source>Whether the file hash is being calculated</source>
<translation type="unfinished">Si se está calculando el hash del archivo</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="344"/>
<source>Displayed when the file hash is being calculated</source>
<translation type="unfinished">Se muestra cuando se está calculando el hash del archivo</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="357"/>
<source>ERROR: $API_KEY is empty.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="363"/>
<source>enter $API_KEY</source>
<translation type="unfinished">ingrese $API_KEY</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="378"/>
<source>ERROR: $BASE_URL is empty.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="384"/>
<source>enter $BASE_URL</source>
<translation type="unfinished">ingrese $BASE_URL</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="399"/>
<source>ERROR: $MODEL_NAME is empty.</source>
<translation type="unfinished">ERROR: $MODEL_NAME está vacío.</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="405"/>
<source>enter $MODEL_NAME</source>
<translation type="unfinished">ingrese $MODEL_NAME</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="427"/>
<source>File size</source>
<translation type="unfinished">Tamaño del archivo</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="449"/>
<source>RAM required</source>
<translation type="unfinished">RAM requerida</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="454"/>
<source>%1 GB</source>
<translation type="unfinished">%1 GB</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="454"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="476"/>
<source>?</source>
<translation type="unfinished">?</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="471"/>
<source>Parameters</source>
<translation type="unfinished">Parámetros</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="493"/>
<source>Quant</source>
<translation type="unfinished">Cuantificación</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="515"/>
<source>Type</source>
<translation type="unfinished">Tipo</translation>
</message>
</context>
<context>
<name>AddHFModelView</name>
<message>
<location filename="../qml/AddHFModelView.qml" line="32"/>
<source>Use the search to find and download models from HuggingFace. There is NO GUARANTEE that these will work. Many will require additional configuration before they can be used.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="52"/>
<source>Discover and download models by keyword search...</source>
<translation type="unfinished">Descubre y descarga modelos mediante búsqueda por palabras clave...</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="55"/>
<source>Text field for discovering and filtering downloadable models</source>
<translation type="unfinished">Campo de texto para descubrir y filtrar modelos descargables</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="61"/>
<source>Searching · %1</source>
<translation type="unfinished">Buscando · %1</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="131"/>
<source>Initiate model discovery and filtering</source>
<translation type="unfinished">Iniciar descubrimiento y filtrado de modelos</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="132"/>
<source>Triggers discovery and filtering of models</source>
<translation type="unfinished">Activa el descubrimiento y filtrado de modelos</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="151"/>
<source>Default</source>
<translation type="unfinished">Predeterminado</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="152"/>
<source>Likes</source>
<translation type="unfinished">Me gusta</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="153"/>
<source>Downloads</source>
<translation type="unfinished">Descargas</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="154"/>
<source>Recent</source>
<translation type="unfinished">Reciente</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="162"/>
<source>Sort by: %1</source>
<translation type="unfinished">Ordenar por: %1</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="176"/>
<source>Asc</source>
<translation type="unfinished">Asc</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="177"/>
<source>Desc</source>
<translation type="unfinished">Desc</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="190"/>
<source>Sort dir: %1</source>
<translation type="unfinished">Dirección de ordenamiento: %1</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="212"/>
<source>None</source>
<translation type="unfinished">Ninguno</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="234"/>
<source>Limit: %1</source>
<translation type="unfinished">Límite: %1</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="297"/>
<source>Model file</source>
<translation type="unfinished">Archivo del modelo</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="298"/>
<source>Model file to be downloaded</source>
<translation type="unfinished">Archivo del modelo a descargar</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="321"/>
<source>Description</source>
<translation type="unfinished">Descripción</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="322"/>
<source>File description</source>
<translation type="unfinished">Descripción del archivo</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="355"/>
<source>Cancel</source>
<translation type="unfinished">Cancelar</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="355"/>
<source>Resume</source>
<translation type="unfinished">Reanudar</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="355"/>
<source>Download</source>
<translation type="unfinished">Descargar</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="363"/>
<source>Stop/restart/start the download</source>
<translation type="unfinished">Detener/reiniciar/iniciar la descarga</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="375"/>
<source>Remove</source>
<translation type="unfinished">Eliminar</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="382"/>
<source>Remove model from filesystem</source>
<translation type="unfinished">Eliminar modelo del sistema de archivos</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="396"/>
<location filename="../qml/AddHFModelView.qml" line="430"/>
<source>Install</source>
<translation type="unfinished">Instalar</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="431"/>
<source>Install online model</source>
<translation type="unfinished">Instalar modelo en línea</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="441"/>
<source>&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Error&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</source>
<translation type="unfinished">&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Error&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="447"/>
<source>Describes an error that occurred when downloading</source>
<translation type="unfinished">Describe un error que ocurrió durante la descarga</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="460"/>
<source>&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;WARNING: Not recommended for your hardware. Model requires more memory (%1 GB) than your system has available (%2).&lt;/strong&gt;&lt;/font&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="466"/>
<source>Error for incompatible hardware</source>
<translation type="unfinished">Error por hardware incompatible</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="504"/>
<source>Download progressBar</source>
<translation type="unfinished">Barra de progreso de descarga</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="505"/>
<source>Shows the progress made in the download</source>
<translation type="unfinished">Muestra el progreso realizado en la descarga</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="515"/>
<source>Download speed</source>
<translation type="unfinished">Velocidad de descarga</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="516"/>
<source>Download speed in bytes/kilobytes/megabytes per second</source>
<translation type="unfinished">Velocidad de descarga en bytes/kilobytes/megabytes por segundo</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="533"/>
<source>Calculating...</source>
<translation type="unfinished">Calculando...</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="537"/>
<location filename="../qml/AddHFModelView.qml" line="567"/>
<location filename="../qml/AddHFModelView.qml" line="588"/>
<location filename="../qml/AddHFModelView.qml" line="609"/>
<source>Whether the file hash is being calculated</source>
<translation type="unfinished">Si se está calculando el hash del archivo</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="544"/>
<source>Busy indicator</source>
<translation type="unfinished">Indicador de ocupado</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="545"/>
<source>Displayed when the file hash is being calculated</source>
<translation type="unfinished">Se muestra cuando se está calculando el hash del archivo</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="558"/>
<source>ERROR: $API_KEY is empty.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="564"/>
<source>enter $API_KEY</source>
<translation type="unfinished">ingrese $API_KEY</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="579"/>
<source>ERROR: $BASE_URL is empty.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="585"/>
<source>enter $BASE_URL</source>
<translation type="unfinished">ingrese $BASE_URL</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="600"/>
<source>ERROR: $MODEL_NAME is empty.</source>
<translation type="unfinished">ERROR: $MODEL_NAME está vacío.</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="606"/>
<source>enter $MODEL_NAME</source>
<translation type="unfinished">ingrese $MODEL_NAME</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="628"/>
<source>File size</source>
<translation type="unfinished">Tamaño del archivo</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="650"/>
<source>Quant</source>
<translation type="unfinished">Cuantificación</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="672"/>
<source>Type</source>
<translation type="unfinished">Tipo</translation>
</message>
</context>
<context>
<name>AddModelView</name>
<message>
@ -76,280 +537,230 @@
<translation>Explorar modelos</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="92"/>
<location filename="../qml/AddModelView.qml" line="86"/>
<source>GPT4All</source>
<translation type="unfinished">GPT4All</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="93"/>
<source>HuggingFace</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Discover and download models by keyword search...</source>
<translation>Descubre y descarga modelos mediante búsqueda por palabras clave...</translation>
<translation type="vanished">Descubre y descarga modelos mediante búsqueda por palabras clave...</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="95"/>
<source>Text field for discovering and filtering downloadable models</source>
<translation>Campo de texto para descubrir y filtrar modelos descargables</translation>
<translation type="vanished">Campo de texto para descubrir y filtrar modelos descargables</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="171"/>
<source>Initiate model discovery and filtering</source>
<translation>Iniciar descubrimiento y filtrado de modelos</translation>
<translation type="vanished">Iniciar descubrimiento y filtrado de modelos</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="172"/>
<source>Triggers discovery and filtering of models</source>
<translation>Activa el descubrimiento y filtrado de modelos</translation>
<translation type="vanished">Activa el descubrimiento y filtrado de modelos</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="191"/>
<source>Default</source>
<translation>Predeterminado</translation>
<translation type="vanished">Predeterminado</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="192"/>
<source>Likes</source>
<translation>Me gusta</translation>
<translation type="vanished">Me gusta</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="193"/>
<source>Downloads</source>
<translation>Descargas</translation>
<translation type="vanished">Descargas</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="194"/>
<source>Recent</source>
<translation>Reciente</translation>
<translation type="vanished">Reciente</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="216"/>
<source>Asc</source>
<translation>Asc</translation>
<translation type="vanished">Asc</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="217"/>
<source>Desc</source>
<translation>Desc</translation>
<translation type="vanished">Desc</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="252"/>
<source>None</source>
<translation>Ninguno</translation>
<translation type="vanished">Ninguno</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="101"/>
<source>Searching · %1</source>
<translation>Buscando · %1</translation>
<translation type="vanished">Buscando · %1</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="202"/>
<source>Sort by: %1</source>
<translation>Ordenar por: %1</translation>
<translation type="vanished">Ordenar por: %1</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="230"/>
<source>Sort dir: %1</source>
<translation>Dirección de ordenamiento: %1</translation>
<translation type="vanished">Dirección de ordenamiento: %1</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="274"/>
<source>Limit: %1</source>
<translation>Límite: %1</translation>
<translation type="vanished">Límite: %1</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="307"/>
<source>Network error: could not retrieve %1</source>
<translation>Error de red: no se pudo recuperar %1</translation>
<translation type="vanished">Error de red: no se pudo recuperar %1</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="317"/>
<location filename="../qml/AddModelView.qml" line="605"/>
<source>Busy indicator</source>
<translation>Indicador de ocupado</translation>
<translation type="vanished">Indicador de ocupado</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="318"/>
<source>Displayed when the models request is ongoing</source>
<translation>Se muestra cuando la solicitud de modelos está en curso</translation>
<translation type="vanished">Se muestra cuando la solicitud de modelos está en curso</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="358"/>
<source>Model file</source>
<translation>Archivo del modelo</translation>
<translation type="vanished">Archivo del modelo</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="359"/>
<source>Model file to be downloaded</source>
<translation>Archivo del modelo a descargar</translation>
<translation type="vanished">Archivo del modelo a descargar</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="382"/>
<source>Description</source>
<translation>Descripción</translation>
<translation type="vanished">Descripción</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="383"/>
<source>File description</source>
<translation>Descripción del archivo</translation>
<translation type="vanished">Descripción del archivo</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="416"/>
<source>Cancel</source>
<translation>Cancelar</translation>
<translation type="vanished">Cancelar</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="416"/>
<source>Resume</source>
<translation>Reanudar</translation>
<translation type="vanished">Reanudar</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="416"/>
<source>Download</source>
<translation>Descargar</translation>
<translation type="vanished">Descargar</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="424"/>
<source>Stop/restart/start the download</source>
<translation>Detener/reiniciar/iniciar la descarga</translation>
<translation type="vanished">Detener/reiniciar/iniciar la descarga</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="436"/>
<source>Remove</source>
<translation>Eliminar</translation>
<translation type="vanished">Eliminar</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="443"/>
<source>Remove model from filesystem</source>
<translation>Eliminar modelo del sistema de archivos</translation>
<translation type="vanished">Eliminar modelo del sistema de archivos</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="457"/>
<location filename="../qml/AddModelView.qml" line="491"/>
<source>Install</source>
<translation>Instalar</translation>
<translation type="vanished">Instalar</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="492"/>
<source>Install online model</source>
<translation>Instalar modelo en línea</translation>
<translation type="vanished">Instalar modelo en línea</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="502"/>
<source>&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Error&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</source>
<translation>&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Error&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</translation>
<translation type="vanished">&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Error&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="521"/>
<source>&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;WARNING: Not recommended for your hardware. Model requires more memory (%1 GB) than your system has available (%2).&lt;/strong&gt;&lt;/font&gt;</source>
<translation>&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;ADVERTENCIA: No recomendado para tu hardware. El modelo requiere más memoria (%1 GB) de la que tu sistema tiene disponible (%2).&lt;/strong&gt;&lt;/font&gt;</translation>
<translation type="vanished">&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;ADVERTENCIA: No recomendado para tu hardware. El modelo requiere más memoria (%1 GB) de la que tu sistema tiene disponible (%2).&lt;/strong&gt;&lt;/font&gt;</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="716"/>
<source>%1 GB</source>
<translation>%1 GB</translation>
<translation type="vanished">%1 GB</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="716"/>
<location filename="../qml/AddModelView.qml" line="738"/>
<source>?</source>
<translation>?</translation>
<translation type="vanished">?</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="508"/>
<source>Describes an error that occurred when downloading</source>
<translation>Describe un error que ocurrió durante la descarga</translation>
<translation type="vanished">Describe un error que ocurrió durante la descarga</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="527"/>
<source>Error for incompatible hardware</source>
<translation>Error por hardware incompatible</translation>
<translation type="vanished">Error por hardware incompatible</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="565"/>
<source>Download progressBar</source>
<translation>Barra de progreso de descarga</translation>
<translation type="vanished">Barra de progreso de descarga</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="566"/>
<source>Shows the progress made in the download</source>
<translation>Muestra el progreso realizado en la descarga</translation>
<translation type="vanished">Muestra el progreso realizado en la descarga</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="576"/>
<source>Download speed</source>
<translation>Velocidad de descarga</translation>
<translation type="vanished">Velocidad de descarga</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="577"/>
<source>Download speed in bytes/kilobytes/megabytes per second</source>
<translation>Velocidad de descarga en bytes/kilobytes/megabytes por segundo</translation>
<translation type="vanished">Velocidad de descarga en bytes/kilobytes/megabytes por segundo</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="594"/>
<source>Calculating...</source>
<translation>Calculando...</translation>
<translation type="vanished">Calculando...</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="598"/>
<location filename="../qml/AddModelView.qml" line="628"/>
<location filename="../qml/AddModelView.qml" line="649"/>
<location filename="../qml/AddModelView.qml" line="670"/>
<source>Whether the file hash is being calculated</source>
<translation>Si se está calculando el hash del archivo</translation>
<translation type="vanished">Si se está calculando el hash del archivo</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="606"/>
<source>Displayed when the file hash is being calculated</source>
<translation>Se muestra cuando se está calculando el hash del archivo</translation>
<translation type="vanished">Se muestra cuando se está calculando el hash del archivo</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="625"/>
<source>enter $API_KEY</source>
<translation>ingrese $API_KEY</translation>
<translation type="vanished">ingrese $API_KEY</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="689"/>
<source>File size</source>
<translation>Tamaño del archivo</translation>
<translation type="vanished">Tamaño del archivo</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="711"/>
<source>RAM required</source>
<translation>RAM requerida</translation>
<translation type="vanished">RAM requerida</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="733"/>
<source>Parameters</source>
<translation>Parámetros</translation>
<translation type="vanished">Parámetros</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="755"/>
<source>Quant</source>
<translation>Cuantificación</translation>
<translation type="vanished">Cuantificación</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="777"/>
<source>Type</source>
<translation>Tipo</translation>
<translation type="vanished">Tipo</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="619"/>
<source>ERROR: $API_KEY is empty.</source>
<translation>ERROR: $API_KEY está vacío.</translation>
<translation type="vanished">ERROR: $API_KEY está vacío.</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="640"/>
<source>ERROR: $BASE_URL is empty.</source>
<translation>ERROR: $BASE_URL está vacío.</translation>
<translation type="vanished">ERROR: $BASE_URL está vacío.</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="646"/>
<source>enter $BASE_URL</source>
<translation>ingrese $BASE_URL</translation>
<translation type="vanished">ingrese $BASE_URL</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="661"/>
<source>ERROR: $MODEL_NAME is empty.</source>
<translation>ERROR: $MODEL_NAME está vacío.</translation>
<translation type="vanished">ERROR: $MODEL_NAME está vacío.</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="667"/>
<source>enter $MODEL_NAME</source>
<translation>ingrese $MODEL_NAME</translation>
<translation type="vanished">ingrese $MODEL_NAME</translation>
</message>
</context>
<context>
@ -1696,78 +2107,78 @@ modelo para comenzar
<context>
<name>ModelList</name>
<message>
<location filename="../src/modellist.cpp" line="1672"/>
<location filename="../src/modellist.cpp" line="1681"/>
<source>&lt;ul&gt;&lt;li&gt;Requires personal OpenAI API key.&lt;/li&gt;&lt;li&gt;WARNING: Will send your chats to OpenAI!&lt;/li&gt;&lt;li&gt;Your API key will be stored on disk&lt;/li&gt;&lt;li&gt;Will only be used to communicate with OpenAI&lt;/li&gt;&lt;li&gt;You can apply for an API key &lt;a href=&quot;https://platform.openai.com/account/api-keys&quot;&gt;here.&lt;/a&gt;&lt;/li&gt;</source>
<translation>&lt;ul&gt;&lt;li&gt;Requiere clave API personal de OpenAI.&lt;/li&gt;&lt;li&gt;ADVERTENCIA: ¡Enviará sus chats a OpenAI!&lt;/li&gt;&lt;li&gt;Su clave API se almacenará en el disco&lt;/li&gt;&lt;li&gt;Solo se usará para comunicarse con OpenAI&lt;/li&gt;&lt;li&gt;Puede solicitar una clave API &lt;a href=&quot;https://platform.openai.com/account/api-keys&quot;&gt;aquí.&lt;/a&gt;&lt;/li&gt;</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1691"/>
<location filename="../src/modellist.cpp" line="1700"/>
<source>&lt;strong&gt;OpenAI&apos;s ChatGPT model GPT-3.5 Turbo&lt;/strong&gt;&lt;br&gt; %1</source>
<translation>&lt;strong&gt;Modelo ChatGPT GPT-3.5 Turbo de OpenAI&lt;/strong&gt;&lt;br&gt; %1</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1705"/>
<location filename="../src/modellist.cpp" line="1714"/>
<source>&lt;br&gt;&lt;br&gt;&lt;i&gt;* Even if you pay OpenAI for ChatGPT-4 this does not guarantee API key access. Contact OpenAI for more info.</source>
<translation>&lt;br&gt;&lt;br&gt;&lt;i&gt;* Aunque pagues a OpenAI por ChatGPT-4, esto no garantiza el acceso a la clave API. Contacta a OpenAI para más información.</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1720"/>
<location filename="../src/modellist.cpp" line="1729"/>
<source>&lt;strong&gt;OpenAI&apos;s ChatGPT model GPT-4&lt;/strong&gt;&lt;br&gt; %1 %2</source>
<translation>&lt;strong&gt;Modelo ChatGPT GPT-4 de OpenAI&lt;/strong&gt;&lt;br&gt; %1 %2</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1733"/>
<location filename="../src/modellist.cpp" line="1742"/>
<source>&lt;ul&gt;&lt;li&gt;Requires personal Mistral API key.&lt;/li&gt;&lt;li&gt;WARNING: Will send your chats to Mistral!&lt;/li&gt;&lt;li&gt;Your API key will be stored on disk&lt;/li&gt;&lt;li&gt;Will only be used to communicate with Mistral&lt;/li&gt;&lt;li&gt;You can apply for an API key &lt;a href=&quot;https://console.mistral.ai/user/api-keys&quot;&gt;here&lt;/a&gt;.&lt;/li&gt;</source>
<translation>&lt;ul&gt;&lt;li&gt;Requiere una clave API personal de Mistral.&lt;/li&gt;&lt;li&gt;ADVERTENCIA: ¡Enviará tus chats a Mistral!&lt;/li&gt;&lt;li&gt;Tu clave API se almacenará en el disco&lt;/li&gt;&lt;li&gt;Solo se usará para comunicarse con Mistral&lt;/li&gt;&lt;li&gt;Puedes solicitar una clave API &lt;a href=&quot;https://console.mistral.ai/user/api-keys&quot;&gt;aquí&lt;/a&gt;.&lt;/li&gt;</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1752"/>
<location filename="../src/modellist.cpp" line="1761"/>
<source>&lt;strong&gt;Mistral Tiny model&lt;/strong&gt;&lt;br&gt; %1</source>
<translation>&lt;strong&gt;Modelo Mistral Tiny&lt;/strong&gt;&lt;br&gt; %1</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1778"/>
<location filename="../src/modellist.cpp" line="1787"/>
<source>&lt;strong&gt;Mistral Small model&lt;/strong&gt;&lt;br&gt; %1</source>
<translation>&lt;strong&gt;Modelo Mistral Small&lt;/strong&gt;&lt;br&gt; %1</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1805"/>
<location filename="../src/modellist.cpp" line="1814"/>
<source>&lt;strong&gt;Mistral Medium model&lt;/strong&gt;&lt;br&gt; %1</source>
<translation>&lt;strong&gt;Modelo Mistral Medium&lt;/strong&gt;&lt;br&gt; %1</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="2259"/>
<location filename="../src/modellist.cpp" line="2268"/>
<source>&lt;strong&gt;Created by %1.&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;Published on %2.&lt;li&gt;This model has %3 likes.&lt;li&gt;This model has %4 downloads.&lt;li&gt;More info can be found &lt;a href=&quot;https://huggingface.co/%5&quot;&gt;here.&lt;/a&gt;&lt;/ul&gt;</source>
<translation>&lt;strong&gt;Creado por %1.&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;Publicado el %2.&lt;li&gt;Este modelo tiene %3 me gusta.&lt;li&gt;Este modelo tiene %4 descargas.&lt;li&gt;Más información puede encontrarse &lt;a href=&quot;https://huggingface.co/%5&quot;&gt;aquí.&lt;/a&gt;&lt;/ul&gt;</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1371"/>
<location filename="../src/modellist.cpp" line="1380"/>
<source>%1 (%2)</source>
<translation>%1 (%2)</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1309"/>
<location filename="../src/modellist.cpp" line="1360"/>
<location filename="../src/modellist.cpp" line="1318"/>
<location filename="../src/modellist.cpp" line="1369"/>
<source>cannot open &quot;%1&quot;: %2</source>
<translation>no se puede abrir &quot;%1&quot;: %2</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1321"/>
<location filename="../src/modellist.cpp" line="1330"/>
<source>cannot create &quot;%1&quot;: %2</source>
<translation>no se puede crear &quot;%1&quot;: %2</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1372"/>
<location filename="../src/modellist.cpp" line="1381"/>
<source>&lt;strong&gt;OpenAI-Compatible API Model&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;API Key: %1&lt;/li&gt;&lt;li&gt;Base URL: %2&lt;/li&gt;&lt;li&gt;Model Name: %3&lt;/li&gt;&lt;/ul&gt;</source>
<translation>&lt;strong&gt;Modelo de API compatible con OpenAI&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;Clave API: %1&lt;/li&gt;&lt;li&gt;URL base: %2&lt;/li&gt;&lt;li&gt;Nombre del modelo: %3&lt;/li&gt;&lt;/ul&gt;</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1818"/>
<location filename="../src/modellist.cpp" line="1827"/>
<source>&lt;ul&gt;&lt;li&gt;Requires personal API key and the API base URL.&lt;/li&gt;&lt;li&gt;WARNING: Will send your chats to the OpenAI-compatible API Server you specified!&lt;/li&gt;&lt;li&gt;Your API key will be stored on disk&lt;/li&gt;&lt;li&gt;Will only be used to communicate with the OpenAI-compatible API Server&lt;/li&gt;</source>
<translation>&lt;ul&gt;&lt;li&gt;Requiere una clave API personal y la URL base de la API.&lt;/li&gt;&lt;li&gt;ADVERTENCIA: ¡Enviará sus chats al servidor de API compatible con OpenAI que especificó!&lt;/li&gt;&lt;li&gt;Su clave API se almacenará en el disco&lt;/li&gt;&lt;li&gt;Solo se utilizará para comunicarse con el servidor de API compatible con OpenAI&lt;/li&gt;</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1835"/>
<location filename="../src/modellist.cpp" line="1844"/>
<source>&lt;strong&gt;Connect to OpenAI-compatible API server&lt;/strong&gt;&lt;br&gt; %1</source>
<translation>&lt;strong&gt;Conectar al servidor de API compatible con OpenAI&lt;/strong&gt;&lt;br&gt; %1</translation>
</message>
@ -2827,12 +3238,12 @@ Locales</translation>
<translation>El modo servidor está habilitado</translation>
</message>
<message>
<location filename="../main.qml" line="687"/>
<location filename="../main.qml" line="684"/>
<source>Installed models</source>
<translation>Modelos instalados</translation>
</message>
<message>
<location filename="../main.qml" line="688"/>
<location filename="../main.qml" line="685"/>
<source>View of installed models</source>
<translation>Vista de modelos instalados</translation>
</message>

View File

@ -59,6 +59,467 @@
<translation>Crea raccolta</translation>
</message>
</context>
<context>
<name>AddGPT4AllModelView</name>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="31"/>
<source>These models have been specifically configured for use in GPT4All. The first few models on the list are known to work the best, but you should only attempt to use models that will fit in your available memory.</source>
<translation>Questi modelli sono stati specificamente configurati per l'uso in GPT4All. I primi modelli dell'elenco sono noti per funzionare meglio, ma dovresti utilizzare solo modelli che possano rientrare nella memoria disponibile.</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="45"/>
<source>Network error: could not retrieve %1</source>
<translation type="unfinished">Errore di rete: impossibile recuperare %1</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="55"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="343"/>
<source>Busy indicator</source>
<translation type="unfinished">Indicatore di occupato</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="56"/>
<source>Displayed when the models request is ongoing</source>
<translation type="unfinished">Visualizzato quando la richiesta dei modelli è in corso</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="96"/>
<source>Model file</source>
<translation type="unfinished">File del modello</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="97"/>
<source>Model file to be downloaded</source>
<translation type="unfinished">File del modello da scaricare</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="120"/>
<source>Description</source>
<translation type="unfinished">Descrizione</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="121"/>
<source>File description</source>
<translation type="unfinished">Descrizione del file</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="154"/>
<source>Cancel</source>
<translation type="unfinished">Annulla</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="154"/>
<source>Resume</source>
<translation type="unfinished">Riprendi</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="154"/>
<source>Download</source>
<translation type="unfinished">Scarica</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="162"/>
<source>Stop/restart/start the download</source>
<translation type="unfinished">Arresta/riavvia/avvia il download</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="174"/>
<source>Remove</source>
<translation type="unfinished">Rimuovi</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="181"/>
<source>Remove model from filesystem</source>
<translation type="unfinished">Rimuovi il modello dal sistema dei file</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="195"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="229"/>
<source>Install</source>
<translation type="unfinished">Installa</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="230"/>
<source>Install online model</source>
<translation type="unfinished">Installa il modello online</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="240"/>
<source>&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Error&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</source>
<translation type="unfinished">&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Errore&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="246"/>
<source>Describes an error that occurred when downloading</source>
<translation type="unfinished">Descrive un errore che si è verificato durante lo scaricamento</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="259"/>
<source>&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;WARNING: Not recommended for your hardware. Model requires more memory (%1 GB) than your system has available (%2).&lt;/strong&gt;&lt;/font&gt;</source>
<translation>&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;AVVISO: non consigliato per il tuo hardware. Il modello richiede più memoria (%1 GB) di quella disponibile nel sistema (%2).&lt;/strong&gt;&lt;/font&gt;</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="265"/>
<source>Error for incompatible hardware</source>
<translation type="unfinished">Errore per hardware incompatibile</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="303"/>
<source>Download progressBar</source>
<translation type="unfinished">Barra di avanzamento dello scaricamento</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="304"/>
<source>Shows the progress made in the download</source>
<translation type="unfinished">Mostra lo stato di avanzamento dello scaricamento</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="314"/>
<source>Download speed</source>
<translation type="unfinished">Velocità di scaricamento</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="315"/>
<source>Download speed in bytes/kilobytes/megabytes per second</source>
<translation type="unfinished">Velocità di scaricamento in byte/kilobyte/megabyte al secondo</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="332"/>
<source>Calculating...</source>
<translation type="unfinished">Calcolo in corso...</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="336"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="366"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="387"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="408"/>
<source>Whether the file hash is being calculated</source>
<translation type="unfinished">Se viene calcolato l&apos;hash del file</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="344"/>
<source>Displayed when the file hash is being calculated</source>
<translation type="unfinished">Visualizzato durante il calcolo dell&apos;hash del file</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="357"/>
<source>ERROR: $API_KEY is empty.</source>
<translation type="unfinished">ERRORE: $API_KEY è vuoto.</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="363"/>
<source>enter $API_KEY</source>
<translation type="unfinished">Inserire $API_KEY</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="378"/>
<source>ERROR: $BASE_URL is empty.</source>
<translation type="unfinished">ERRORE: $BASE_URL non è valido.</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="384"/>
<source>enter $BASE_URL</source>
<translation type="unfinished">inserisci $BASE_URL</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="399"/>
<source>ERROR: $MODEL_NAME is empty.</source>
<translation type="unfinished">ERRORE: $MODEL_NAME è vuoto.</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="405"/>
<source>enter $MODEL_NAME</source>
<translation type="unfinished">inserisci $MODEL_NAME</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="427"/>
<source>File size</source>
<translation type="unfinished">Dimensione del file</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="449"/>
<source>RAM required</source>
<translation type="unfinished">RAM richiesta</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="454"/>
<source>%1 GB</source>
<translation>%1 GB</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="454"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="476"/>
<source>?</source>
<translation>?</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="471"/>
<source>Parameters</source>
<translation type="unfinished">Parametri</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="493"/>
<source>Quant</source>
<translation type="unfinished">Quant</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="515"/>
<source>Type</source>
<translation type="unfinished">Tipo</translation>
</message>
</context>
<context>
<name>AddHFModelView</name>
<message>
<location filename="../qml/AddHFModelView.qml" line="32"/>
<source>Use the search to find and download models from HuggingFace. There is NO GUARANTEE that these will work. Many will require additional configuration before they can be used.</source>
<translation>Usa la ricerca per trovare e scaricare modelli da HuggingFace. NON C'È ALCUNA GARANZIA che funzioneranno. Molti richiederanno configurazioni aggiuntive prima di poter essere utilizzati.</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="52"/>
<source>Discover and download models by keyword search...</source>
<translation type="unfinished">Scopri e scarica i modelli tramite ricerca per parole chiave...</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="55"/>
<source>Text field for discovering and filtering downloadable models</source>
<translation type="unfinished">Campo di testo per scoprire e filtrare i modelli scaricabili</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="61"/>
<source>Searching · %1</source>
<translation type="unfinished">Ricerca · %1</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="131"/>
<source>Initiate model discovery and filtering</source>
<translation type="unfinished">Avvia rilevamento e filtraggio dei modelli</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="132"/>
<source>Triggers discovery and filtering of models</source>
<translation type="unfinished">Attiva la scoperta e il filtraggio dei modelli</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="151"/>
<source>Default</source>
<translation type="unfinished">Predefinito</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="152"/>
<source>Likes</source>
<translation type="unfinished">Mi piace</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="153"/>
<source>Downloads</source>
<translation type="unfinished">Scaricamenti</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="154"/>
<source>Recent</source>
<translation type="unfinished">Recenti</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="162"/>
<source>Sort by: %1</source>
<translation type="unfinished">Ordina per: %1</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="176"/>
<source>Asc</source>
<translation type="unfinished">Asc</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="177"/>
<source>Desc</source>
<translation type="unfinished">Disc</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="190"/>
<source>Sort dir: %1</source>
<translation type="unfinished">Direzione ordinamento: %1</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="212"/>
<source>None</source>
<translation type="unfinished">Niente</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="234"/>
<source>Limit: %1</source>
<translation type="unfinished">Limite: %1</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="297"/>
<source>Model file</source>
<translation type="unfinished">File del modello</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="298"/>
<source>Model file to be downloaded</source>
<translation type="unfinished">File del modello da scaricare</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="321"/>
<source>Description</source>
<translation type="unfinished">Descrizione</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="322"/>
<source>File description</source>
<translation type="unfinished">Descrizione del file</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="355"/>
<source>Cancel</source>
<translation type="unfinished">Annulla</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="355"/>
<source>Resume</source>
<translation type="unfinished">Riprendi</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="355"/>
<source>Download</source>
<translation type="unfinished">Scarica</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="363"/>
<source>Stop/restart/start the download</source>
<translation type="unfinished">Arresta/riavvia/avvia il download</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="375"/>
<source>Remove</source>
<translation type="unfinished">Rimuovi</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="382"/>
<source>Remove model from filesystem</source>
<translation type="unfinished">Rimuovi il modello dal sistema dei file</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="396"/>
<location filename="../qml/AddHFModelView.qml" line="430"/>
<source>Install</source>
<translation type="unfinished">Installa</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="431"/>
<source>Install online model</source>
<translation type="unfinished">Installa il modello online</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="441"/>
<source>&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Error&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</source>
<translation type="unfinished">&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Errore&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="447"/>
<source>Describes an error that occurred when downloading</source>
<translation type="unfinished">Descrive un errore che si è verificato durante lo scaricamento</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="460"/>
<source>&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;WARNING: Not recommended for your hardware. Model requires more memory (%1 GB) than your system has available (%2).&lt;/strong&gt;&lt;/font&gt;</source>
<translation>&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;AVVISO: non consigliato per il tuo hardware. Il modello richiede più memoria (%1 GB) di quella disponibile nel sistema (%2).&lt;/strong&gt;&lt;/font&gt;</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="466"/>
<source>Error for incompatible hardware</source>
<translation type="unfinished">Errore per hardware incompatibile</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="504"/>
<source>Download progressBar</source>
<translation type="unfinished">Barra di avanzamento dello scaricamento</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="505"/>
<source>Shows the progress made in the download</source>
<translation type="unfinished">Mostra lo stato di avanzamento dello scaricamento</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="515"/>
<source>Download speed</source>
<translation type="unfinished">Velocità di scaricamento</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="516"/>
<source>Download speed in bytes/kilobytes/megabytes per second</source>
<translation type="unfinished">Velocità di scaricamento in byte/kilobyte/megabyte al secondo</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="533"/>
<source>Calculating...</source>
<translation type="unfinished">Calcolo in corso...</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="537"/>
<location filename="../qml/AddHFModelView.qml" line="567"/>
<location filename="../qml/AddHFModelView.qml" line="588"/>
<location filename="../qml/AddHFModelView.qml" line="609"/>
<source>Whether the file hash is being calculated</source>
<translation type="unfinished">Se viene calcolato l&apos;hash del file</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="544"/>
<source>Busy indicator</source>
<translation type="unfinished">Indicatore di occupato</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="545"/>
<source>Displayed when the file hash is being calculated</source>
<translation type="unfinished">Visualizzato durante il calcolo dell&apos;hash del file</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="558"/>
<source>ERROR: $API_KEY is empty.</source>
<translation type="unfinished">ERRORE: $API_KEY è vuoto.</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="564"/>
<source>enter $API_KEY</source>
<translation type="unfinished">Inserire $API_KEY</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="579"/>
<source>ERROR: $BASE_URL is empty.</source>
<translation type="unfinished">ERRORE: $BASE_URL non è valido.</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="585"/>
<source>enter $BASE_URL</source>
<translation type="unfinished">inserisci $BASE_URL</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="600"/>
<source>ERROR: $MODEL_NAME is empty.</source>
<translation type="unfinished">ERRORE: $MODEL_NAME è vuoto.</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="606"/>
<source>enter $MODEL_NAME</source>
<translation type="unfinished">inserisci $MODEL_NAME</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="628"/>
<source>File size</source>
<translation type="unfinished">Dimensione del file</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="650"/>
<source>Quant</source>
<translation type="unfinished">Quant</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="672"/>
<source>Type</source>
<translation type="unfinished">Tipo</translation>
</message>
</context>
<context>
<name>AddModelView</name>
<message>
@ -72,280 +533,218 @@
<translation>Esplora modelli</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="92"/>
<location filename="../qml/AddModelView.qml" line="86"/>
<source>GPT4All</source>
<translation>GPT4All</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="93"/>
<source>HuggingFace</source>
<translation>HuggingFace</translation>
</message>
<message>
<source>Discover and download models by keyword search...</source>
<translation>Scopri e scarica i modelli tramite ricerca per parole chiave...</translation>
<translation type="vanished">Scopri e scarica i modelli tramite ricerca per parole chiave...</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="95"/>
<source>Text field for discovering and filtering downloadable models</source>
<translation>Campo di testo per scoprire e filtrare i modelli scaricabili</translation>
<translation type="vanished">Campo di testo per scoprire e filtrare i modelli scaricabili</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="171"/>
<source>Initiate model discovery and filtering</source>
<translation>Avvia rilevamento e filtraggio dei modelli</translation>
<translation type="vanished">Avvia rilevamento e filtraggio dei modelli</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="172"/>
<source>Triggers discovery and filtering of models</source>
<translation>Attiva la scoperta e il filtraggio dei modelli</translation>
<translation type="vanished">Attiva la scoperta e il filtraggio dei modelli</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="191"/>
<source>Default</source>
<translation>Predefinito</translation>
<translation type="vanished">Predefinito</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="192"/>
<source>Likes</source>
<translation>Mi piace</translation>
<translation type="vanished">Mi piace</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="193"/>
<source>Downloads</source>
<translation>Scaricamenti</translation>
<translation type="vanished">Scaricamenti</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="194"/>
<source>Recent</source>
<translation>Recenti</translation>
<translation type="vanished">Recenti</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="216"/>
<source>Asc</source>
<translation>Asc</translation>
<translation type="vanished">Asc</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="217"/>
<source>Desc</source>
<translation>Disc</translation>
<translation type="vanished">Disc</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="252"/>
<source>None</source>
<translation>Niente</translation>
<translation type="vanished">Niente</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="101"/>
<source>Searching · %1</source>
<translation>Ricerca · %1</translation>
<translation type="vanished">Ricerca · %1</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="202"/>
<source>Sort by: %1</source>
<translation>Ordina per: %1</translation>
<translation type="vanished">Ordina per: %1</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="230"/>
<source>Sort dir: %1</source>
<translation>Direzione ordinamento: %1</translation>
<translation type="vanished">Direzione ordinamento: %1</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="274"/>
<source>Limit: %1</source>
<translation>Limite: %1</translation>
<translation type="vanished">Limite: %1</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="307"/>
<source>Network error: could not retrieve %1</source>
<translation>Errore di rete: impossibile recuperare %1</translation>
<translation type="vanished">Errore di rete: impossibile recuperare %1</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="317"/>
<location filename="../qml/AddModelView.qml" line="605"/>
<source>Busy indicator</source>
<translation>Indicatore di occupato</translation>
<translation type="vanished">Indicatore di occupato</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="318"/>
<source>Displayed when the models request is ongoing</source>
<translation>Visualizzato quando la richiesta dei modelli è in corso</translation>
<translation type="vanished">Visualizzato quando la richiesta dei modelli è in corso</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="358"/>
<source>Model file</source>
<translation>File del modello</translation>
<translation type="vanished">File del modello</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="359"/>
<source>Model file to be downloaded</source>
<translation>File del modello da scaricare</translation>
<translation type="vanished">File del modello da scaricare</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="382"/>
<source>Description</source>
<translation>Descrizione</translation>
<translation type="vanished">Descrizione</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="383"/>
<source>File description</source>
<translation>Descrizione del file</translation>
<translation type="vanished">Descrizione del file</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="416"/>
<source>Cancel</source>
<translation>Annulla</translation>
<translation type="vanished">Annulla</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="416"/>
<source>Resume</source>
<translation>Riprendi</translation>
<translation type="vanished">Riprendi</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="416"/>
<source>Download</source>
<translation>Scarica</translation>
<translation type="vanished">Scarica</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="424"/>
<source>Stop/restart/start the download</source>
<translation>Arresta/riavvia/avvia il download</translation>
<translation type="vanished">Arresta/riavvia/avvia il download</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="436"/>
<source>Remove</source>
<translation>Rimuovi</translation>
<translation type="vanished">Rimuovi</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="443"/>
<source>Remove model from filesystem</source>
<translation>Rimuovi il modello dal sistema dei file</translation>
<translation type="vanished">Rimuovi il modello dal sistema dei file</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="457"/>
<location filename="../qml/AddModelView.qml" line="491"/>
<source>Install</source>
<translation>Installa</translation>
<translation type="vanished">Installa</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="492"/>
<source>Install online model</source>
<translation>Installa il modello online</translation>
<translation type="vanished">Installa il modello online</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="521"/>
<source>&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;WARNING: Not recommended for your hardware. Model requires more memory (%1 GB) than your system has available (%2).&lt;/strong&gt;&lt;/font&gt;</source>
<translation>&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;AVVERTENZA: non consigliato per il tuo hardware. Il modello richiede più memoria (%1 GB) di quella disponibile nel sistema (%2).&lt;/strong&gt;&lt;/font&gt;</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="619"/>
<source>ERROR: $API_KEY is empty.</source>
<translation>ERRORE: $API_KEY è vuoto.</translation>
<translation type="vanished">ERRORE: $API_KEY è vuoto.</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="640"/>
<source>ERROR: $BASE_URL is empty.</source>
<translation>ERRORE: $BASE_URL non è valido.</translation>
<translation type="vanished">ERRORE: $BASE_URL non è valido.</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="646"/>
<source>enter $BASE_URL</source>
<translation>inserisci $BASE_URL</translation>
<translation type="vanished">inserisci $BASE_URL</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="661"/>
<source>ERROR: $MODEL_NAME is empty.</source>
<translation>ERRORE: $MODEL_NAME è vuoto.</translation>
<translation type="vanished">ERRORE: $MODEL_NAME è vuoto.</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="667"/>
<source>enter $MODEL_NAME</source>
<translation>inserisci $MODEL_NAME</translation>
<translation type="vanished">inserisci $MODEL_NAME</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="716"/>
<source>%1 GB</source>
<translation></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="716"/>
<location filename="../qml/AddModelView.qml" line="738"/>
<source>?</source>
<translation></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="508"/>
<source>Describes an error that occurred when downloading</source>
<translation>Descrive un errore che si è verificato durante lo scaricamento</translation>
<translation type="vanished">Descrive un errore che si è verificato durante lo scaricamento</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="502"/>
<source>&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Error&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</source>
<translation>&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Errore&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</translation>
<translation type="vanished">&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Errore&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="527"/>
<source>Error for incompatible hardware</source>
<translation>Errore per hardware incompatibile</translation>
<translation type="vanished">Errore per hardware incompatibile</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="565"/>
<source>Download progressBar</source>
<translation>Barra di avanzamento dello scaricamento</translation>
<translation type="vanished">Barra di avanzamento dello scaricamento</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="566"/>
<source>Shows the progress made in the download</source>
<translation>Mostra lo stato di avanzamento dello scaricamento</translation>
<translation type="vanished">Mostra lo stato di avanzamento dello scaricamento</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="576"/>
<source>Download speed</source>
<translation>Velocità di scaricamento</translation>
<translation type="vanished">Velocità di scaricamento</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="577"/>
<source>Download speed in bytes/kilobytes/megabytes per second</source>
<translation>Velocità di scaricamento in byte/kilobyte/megabyte al secondo</translation>
<translation type="vanished">Velocità di scaricamento in byte/kilobyte/megabyte al secondo</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="594"/>
<source>Calculating...</source>
<translation>Calcolo in corso...</translation>
<translation type="vanished">Calcolo in corso...</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="598"/>
<location filename="../qml/AddModelView.qml" line="628"/>
<location filename="../qml/AddModelView.qml" line="649"/>
<location filename="../qml/AddModelView.qml" line="670"/>
<source>Whether the file hash is being calculated</source>
<translation>Se viene calcolato l&apos;hash del file</translation>
<translation type="vanished">Se viene calcolato l&apos;hash del file</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="606"/>
<source>Displayed when the file hash is being calculated</source>
<translation>Visualizzato durante il calcolo dell&apos;hash del file</translation>
<translation type="vanished">Visualizzato durante il calcolo dell&apos;hash del file</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="625"/>
<source>enter $API_KEY</source>
<translation>Inserire $API_KEY</translation>
<translation type="vanished">Inserire $API_KEY</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="689"/>
<source>File size</source>
<translation>Dimensione del file</translation>
<translation type="vanished">Dimensione del file</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="711"/>
<source>RAM required</source>
<translation>RAM richiesta</translation>
<translation type="vanished">RAM richiesta</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="733"/>
<source>Parameters</source>
<translation>Parametri</translation>
<translation type="vanished">Parametri</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="755"/>
<source>Quant</source>
<translation>Quant</translation>
<translation type="vanished">Quant</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="777"/>
<source>Type</source>
<translation>Tipo</translation>
<translation type="vanished">Tipo</translation>
</message>
</context>
<context>
@ -1598,78 +1997,78 @@ modello per iniziare</translation>
<context>
<name>ModelList</name>
<message>
<location filename="../src/modellist.cpp" line="1672"/>
<location filename="../src/modellist.cpp" line="1681"/>
<source>&lt;ul&gt;&lt;li&gt;Requires personal OpenAI API key.&lt;/li&gt;&lt;li&gt;WARNING: Will send your chats to OpenAI!&lt;/li&gt;&lt;li&gt;Your API key will be stored on disk&lt;/li&gt;&lt;li&gt;Will only be used to communicate with OpenAI&lt;/li&gt;&lt;li&gt;You can apply for an API key &lt;a href=&quot;https://platform.openai.com/account/api-keys&quot;&gt;here.&lt;/a&gt;&lt;/li&gt;</source>
<translation>&lt;ul&gt;&lt;li&gt;Richiede una chiave API OpenAI personale.&lt;/li&gt;&lt;li&gt;ATTENZIONE: invierà le tue chat a OpenAI!&lt;/li&gt;&lt;li&gt;La tua chiave API verrà archiviata su disco&lt;/li&gt;&lt;li&gt; Verrà utilizzato solo per comunicare con OpenAI&lt;/li&gt;&lt;li&gt;Puoi richiedere una chiave API &lt;a href=&quot;https://platform.openai.com/account/api-keys&quot;&gt;qui.&lt;/a&gt; &lt;/li&gt;</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1691"/>
<location filename="../src/modellist.cpp" line="1700"/>
<source>&lt;strong&gt;OpenAI&apos;s ChatGPT model GPT-3.5 Turbo&lt;/strong&gt;&lt;br&gt; %1</source>
<translation></translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1720"/>
<location filename="../src/modellist.cpp" line="1729"/>
<source>&lt;strong&gt;OpenAI&apos;s ChatGPT model GPT-4&lt;/strong&gt;&lt;br&gt; %1 %2</source>
<translation></translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1752"/>
<location filename="../src/modellist.cpp" line="1761"/>
<source>&lt;strong&gt;Mistral Tiny model&lt;/strong&gt;&lt;br&gt; %1</source>
<translation></translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1778"/>
<location filename="../src/modellist.cpp" line="1787"/>
<source>&lt;strong&gt;Mistral Small model&lt;/strong&gt;&lt;br&gt; %1</source>
<translation></translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1805"/>
<location filename="../src/modellist.cpp" line="1814"/>
<source>&lt;strong&gt;Mistral Medium model&lt;/strong&gt;&lt;br&gt; %1</source>
<translation></translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1705"/>
<location filename="../src/modellist.cpp" line="1714"/>
<source>&lt;br&gt;&lt;br&gt;&lt;i&gt;* Even if you pay OpenAI for ChatGPT-4 this does not guarantee API key access. Contact OpenAI for more info.</source>
<translation>&lt;br&gt;&lt;br&gt;&lt;i&gt;* Anche se paghi OpenAI per ChatGPT-4 questo non garantisce l&apos;accesso alla chiave API. Contatta OpenAI per maggiori informazioni.</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1309"/>
<location filename="../src/modellist.cpp" line="1360"/>
<location filename="../src/modellist.cpp" line="1318"/>
<location filename="../src/modellist.cpp" line="1369"/>
<source>cannot open &quot;%1&quot;: %2</source>
<translation>impossibile aprire &quot;%1&quot;: %2</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1321"/>
<location filename="../src/modellist.cpp" line="1330"/>
<source>cannot create &quot;%1&quot;: %2</source>
<translation>impossibile creare &quot;%1&quot;: %2</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1371"/>
<location filename="../src/modellist.cpp" line="1380"/>
<source>%1 (%2)</source>
<translation>%1 (%2)</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1372"/>
<location filename="../src/modellist.cpp" line="1381"/>
<source>&lt;strong&gt;OpenAI-Compatible API Model&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;API Key: %1&lt;/li&gt;&lt;li&gt;Base URL: %2&lt;/li&gt;&lt;li&gt;Model Name: %3&lt;/li&gt;&lt;/ul&gt;</source>
<translation>&lt;strong&gt;Modello API compatibile con OpenAI&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;Chiave API: %1&lt;/li&gt;&lt;li&gt;URL di base: %2&lt;/li&gt;&lt;li&gt;Nome modello: %3&lt;/li&gt;&lt;/ul&gt;</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1733"/>
<location filename="../src/modellist.cpp" line="1742"/>
<source>&lt;ul&gt;&lt;li&gt;Requires personal Mistral API key.&lt;/li&gt;&lt;li&gt;WARNING: Will send your chats to Mistral!&lt;/li&gt;&lt;li&gt;Your API key will be stored on disk&lt;/li&gt;&lt;li&gt;Will only be used to communicate with Mistral&lt;/li&gt;&lt;li&gt;You can apply for an API key &lt;a href=&quot;https://console.mistral.ai/user/api-keys&quot;&gt;here&lt;/a&gt;.&lt;/li&gt;</source>
<translation>&lt;ul&gt;&lt;li&gt;Richiede una chiave API Mistral personale.&lt;/li&gt;&lt;li&gt;ATTENZIONE: invierà le tue chat a Mistral!&lt;/li&gt;&lt;li&gt;La tua chiave API verrà archiviata su disco&lt;/li&gt;&lt;li&gt; Verrà utilizzato solo per comunicare con Mistral&lt;/li&gt;&lt;li&gt;Puoi richiedere una chiave API &lt;a href=&quot;https://console.mistral.ai/user/api-keys&quot;&gt;qui&lt;/a&gt;. &lt;/li&gt;</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1818"/>
<location filename="../src/modellist.cpp" line="1827"/>
<source>&lt;ul&gt;&lt;li&gt;Requires personal API key and the API base URL.&lt;/li&gt;&lt;li&gt;WARNING: Will send your chats to the OpenAI-compatible API Server you specified!&lt;/li&gt;&lt;li&gt;Your API key will be stored on disk&lt;/li&gt;&lt;li&gt;Will only be used to communicate with the OpenAI-compatible API Server&lt;/li&gt;</source>
<translation>&lt;ul&gt;&lt;li&gt;Richiede una chiave API personale e l&apos;URL di base dell&apos;API.&lt;/li&gt;&lt;li&gt;ATTENZIONE: invierà le tue chat al server API compatibile con OpenAI che hai specificato!&lt;/li&gt;&lt;li&gt;La tua chiave API verrà archiviata su disco&lt;/li&gt;&lt;li&gt;Verrà utilizzata solo per comunicare con il server API compatibile con OpenAI&lt;/li&gt;</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1835"/>
<location filename="../src/modellist.cpp" line="1844"/>
<source>&lt;strong&gt;Connect to OpenAI-compatible API server&lt;/strong&gt;&lt;br&gt; %1</source>
<translation>&lt;strong&gt;Connetti al server API compatibile con OpenAI&lt;/strong&gt;&lt;br&gt; %1</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="2259"/>
<location filename="../src/modellist.cpp" line="2268"/>
<source>&lt;strong&gt;Created by %1.&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;Published on %2.&lt;li&gt;This model has %3 likes.&lt;li&gt;This model has %4 downloads.&lt;li&gt;More info can be found &lt;a href=&quot;https://huggingface.co/%5&quot;&gt;here.&lt;/a&gt;&lt;/ul&gt;</source>
<translation>&lt;strong&gt;Creato da %1.&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;Pubblicato il %2.&lt;li&gt;Questo modello ha %3 Mi piace.&lt;li&gt;Questo modello ha %4 download.&lt;li&gt;Altro informazioni possono essere trovate &lt;a href=&quot;https://huggingface.co/%5&quot;&gt;qui.&lt;/a&gt;&lt;/ul&gt;</translation>
</message>
@ -2447,7 +2846,7 @@ NOTA: attivando questa funzione, invierai i tuoi dati al Datalake Open Source di
<message>
<location filename="../qml/StartupDialog.qml" line="118"/>
<source>Opt-in to anonymous usage analytics used to improve GPT4All</source>
<translation type="unfinished"></translation>
<translation>Acconsenti all'analisi anonima dell'uso per migliorare GPT4All</translation>
</message>
<message>
<location filename="../qml/StartupDialog.qml" line="124"/>
@ -2485,7 +2884,7 @@ NOTA: attivando questa funzione, invierai i tuoi dati al Datalake Open Source di
<message>
<location filename="../qml/StartupDialog.qml" line="232"/>
<source>Opt-in to anonymous sharing of chats to the GPT4All Datalake</source>
<translation type="unfinished"></translation>
<translation>Acconsenti alla condivisione anonima delle chat con il GPT4All Datalake</translation>
</message>
<message>
<location filename="../qml/StartupDialog.qml" line="238"/>
@ -2673,12 +3072,12 @@ NOTA: attivando questa funzione, invierai i tuoi dati al Datalake Open Source di
<translation>La modalità server è abilitata</translation>
</message>
<message>
<location filename="../main.qml" line="687"/>
<location filename="../main.qml" line="684"/>
<source>Installed models</source>
<translation>Modelli installati</translation>
</message>
<message>
<location filename="../main.qml" line="688"/>
<location filename="../main.qml" line="685"/>
<source>View of installed models</source>
<translation>Vista dei modelli installati</translation>
</message>

View File

@ -63,6 +63,467 @@
<translation>Criar Coleção</translation>
</message>
</context>
<context>
<name>AddGPT4AllModelView</name>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="31"/>
<source>These models have been specifically configured for use in GPT4All. The first few models on the list are known to work the best, but you should only attempt to use models that will fit in your available memory.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="45"/>
<source>Network error: could not retrieve %1</source>
<translation type="unfinished">Erro de rede: não foi possível obter %1</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="55"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="343"/>
<source>Busy indicator</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="56"/>
<source>Displayed when the models request is ongoing</source>
<translation type="unfinished">xibido enquanto os modelos estão sendo carregados</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="96"/>
<source>Model file</source>
<translation type="unfinished">Arquivo do modelo</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="97"/>
<source>Model file to be downloaded</source>
<translation type="unfinished">Arquivo do modelo a ser baixado</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="120"/>
<source>Description</source>
<translation type="unfinished">Descrição</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="121"/>
<source>File description</source>
<translation type="unfinished">Descrição do arquivo</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="154"/>
<source>Cancel</source>
<translation type="unfinished">Cancelar</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="154"/>
<source>Resume</source>
<translation type="unfinished">Retomar</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="154"/>
<source>Download</source>
<translation type="unfinished">Baixar</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="162"/>
<source>Stop/restart/start the download</source>
<translation type="unfinished">Parar/reiniciar/iniciar o download</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="174"/>
<source>Remove</source>
<translation type="unfinished">Remover</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="181"/>
<source>Remove model from filesystem</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="195"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="229"/>
<source>Install</source>
<translation type="unfinished">Instalar</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="230"/>
<source>Install online model</source>
<translation type="unfinished">Instalar modelo online</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="240"/>
<source>&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Error&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</source>
<translation type="unfinished">&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Erro&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="246"/>
<source>Describes an error that occurred when downloading</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="259"/>
<source>&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;WARNING: Not recommended for your hardware. Model requires more memory (%1 GB) than your system has available (%2).&lt;/strong&gt;&lt;/font&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="265"/>
<source>Error for incompatible hardware</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="303"/>
<source>Download progressBar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="304"/>
<source>Shows the progress made in the download</source>
<translation type="unfinished">Mostra o progresso do download</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="314"/>
<source>Download speed</source>
<translation type="unfinished">Velocidade de download</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="315"/>
<source>Download speed in bytes/kilobytes/megabytes per second</source>
<translation type="unfinished">Velocidade de download em bytes/kilobytes/megabytes por segundo</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="332"/>
<source>Calculating...</source>
<translation type="unfinished">Calculando...</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="336"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="366"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="387"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="408"/>
<source>Whether the file hash is being calculated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="344"/>
<source>Displayed when the file hash is being calculated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="357"/>
<source>ERROR: $API_KEY is empty.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="363"/>
<source>enter $API_KEY</source>
<translation type="unfinished">inserir $API_KEY</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="378"/>
<source>ERROR: $BASE_URL is empty.</source>
<translation type="unfinished">ERRO: A $BASE_URL está vazia.</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="384"/>
<source>enter $BASE_URL</source>
<translation type="unfinished">inserir a $BASE_URL</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="399"/>
<source>ERROR: $MODEL_NAME is empty.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="405"/>
<source>enter $MODEL_NAME</source>
<translation type="unfinished">inserir o $MODEL_NAME</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="427"/>
<source>File size</source>
<translation type="unfinished">Tamanho do arquivo</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="449"/>
<source>RAM required</source>
<translation type="unfinished">RAM necessária</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="454"/>
<source>%1 GB</source>
<translation type="unfinished">%1 GB</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="454"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="476"/>
<source>?</source>
<translation type="unfinished">?</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="471"/>
<source>Parameters</source>
<translation type="unfinished">Parâmetros</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="493"/>
<source>Quant</source>
<translation type="unfinished">Quant</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="515"/>
<source>Type</source>
<translation type="unfinished">Tipo</translation>
</message>
</context>
<context>
<name>AddHFModelView</name>
<message>
<location filename="../qml/AddHFModelView.qml" line="32"/>
<source>Use the search to find and download models from HuggingFace. There is NO GUARANTEE that these will work. Many will require additional configuration before they can be used.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="52"/>
<source>Discover and download models by keyword search...</source>
<translation type="unfinished">Pesquisar modelos...</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="55"/>
<source>Text field for discovering and filtering downloadable models</source>
<translation type="unfinished">Campo de texto para descobrir e filtrar modelos para download</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="61"/>
<source>Searching · %1</source>
<translation type="unfinished">Pesquisando · %1</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="131"/>
<source>Initiate model discovery and filtering</source>
<translation type="unfinished">Pesquisar e filtrar modelos</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="132"/>
<source>Triggers discovery and filtering of models</source>
<translation type="unfinished">Aciona a descoberta e filtragem de modelos</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="151"/>
<source>Default</source>
<translation type="unfinished">Padrão</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="152"/>
<source>Likes</source>
<translation type="unfinished">Curtidas</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="153"/>
<source>Downloads</source>
<translation type="unfinished">Downloads</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="154"/>
<source>Recent</source>
<translation type="unfinished">Recentes</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="162"/>
<source>Sort by: %1</source>
<translation type="unfinished">Ordenar por: %1</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="176"/>
<source>Asc</source>
<translation type="unfinished">Asc</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="177"/>
<source>Desc</source>
<translation type="unfinished">Desc</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="190"/>
<source>Sort dir: %1</source>
<translation type="unfinished">Ordenar diretório: %1</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="212"/>
<source>None</source>
<translation type="unfinished">Nenhum</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="234"/>
<source>Limit: %1</source>
<translation type="unfinished">Limite: %1</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="297"/>
<source>Model file</source>
<translation type="unfinished">Arquivo do modelo</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="298"/>
<source>Model file to be downloaded</source>
<translation type="unfinished">Arquivo do modelo a ser baixado</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="321"/>
<source>Description</source>
<translation type="unfinished">Descrição</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="322"/>
<source>File description</source>
<translation type="unfinished">Descrição do arquivo</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="355"/>
<source>Cancel</source>
<translation type="unfinished">Cancelar</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="355"/>
<source>Resume</source>
<translation type="unfinished">Retomar</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="355"/>
<source>Download</source>
<translation type="unfinished">Baixar</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="363"/>
<source>Stop/restart/start the download</source>
<translation type="unfinished">Parar/reiniciar/iniciar o download</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="375"/>
<source>Remove</source>
<translation type="unfinished">Remover</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="382"/>
<source>Remove model from filesystem</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="396"/>
<location filename="../qml/AddHFModelView.qml" line="430"/>
<source>Install</source>
<translation type="unfinished">Instalar</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="431"/>
<source>Install online model</source>
<translation type="unfinished">Instalar modelo online</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="441"/>
<source>&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Error&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</source>
<translation type="unfinished">&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Erro&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="447"/>
<source>Describes an error that occurred when downloading</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="460"/>
<source>&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;WARNING: Not recommended for your hardware. Model requires more memory (%1 GB) than your system has available (%2).&lt;/strong&gt;&lt;/font&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="466"/>
<source>Error for incompatible hardware</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="504"/>
<source>Download progressBar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="505"/>
<source>Shows the progress made in the download</source>
<translation type="unfinished">Mostra o progresso do download</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="515"/>
<source>Download speed</source>
<translation type="unfinished">Velocidade de download</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="516"/>
<source>Download speed in bytes/kilobytes/megabytes per second</source>
<translation type="unfinished">Velocidade de download em bytes/kilobytes/megabytes por segundo</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="533"/>
<source>Calculating...</source>
<translation type="unfinished">Calculando...</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="537"/>
<location filename="../qml/AddHFModelView.qml" line="567"/>
<location filename="../qml/AddHFModelView.qml" line="588"/>
<location filename="../qml/AddHFModelView.qml" line="609"/>
<source>Whether the file hash is being calculated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="544"/>
<source>Busy indicator</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="545"/>
<source>Displayed when the file hash is being calculated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="558"/>
<source>ERROR: $API_KEY is empty.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="564"/>
<source>enter $API_KEY</source>
<translation type="unfinished">inserir $API_KEY</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="579"/>
<source>ERROR: $BASE_URL is empty.</source>
<translation type="unfinished">ERRO: A $BASE_URL está vazia.</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="585"/>
<source>enter $BASE_URL</source>
<translation type="unfinished">inserir a $BASE_URL</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="600"/>
<source>ERROR: $MODEL_NAME is empty.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="606"/>
<source>enter $MODEL_NAME</source>
<translation type="unfinished">inserir o $MODEL_NAME</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="628"/>
<source>File size</source>
<translation type="unfinished">Tamanho do arquivo</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="650"/>
<source>Quant</source>
<translation type="unfinished">Quant</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="672"/>
<source>Type</source>
<translation type="unfinished">Tipo</translation>
</message>
</context>
<context>
<name>AddModelView</name>
<message>
@ -76,280 +537,230 @@
<translation>Descobrir Modelos</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="92"/>
<location filename="../qml/AddModelView.qml" line="86"/>
<source>GPT4All</source>
<translation type="unfinished">GPT4All</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="93"/>
<source>HuggingFace</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Discover and download models by keyword search...</source>
<translation>Pesquisar modelos...</translation>
<translation type="vanished">Pesquisar modelos...</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="95"/>
<source>Text field for discovering and filtering downloadable models</source>
<translation>Campo de texto para descobrir e filtrar modelos para download</translation>
<translation type="vanished">Campo de texto para descobrir e filtrar modelos para download</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="171"/>
<source>Initiate model discovery and filtering</source>
<translation>Pesquisar e filtrar modelos</translation>
<translation type="vanished">Pesquisar e filtrar modelos</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="172"/>
<source>Triggers discovery and filtering of models</source>
<translation>Aciona a descoberta e filtragem de modelos</translation>
<translation type="vanished">Aciona a descoberta e filtragem de modelos</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="191"/>
<source>Default</source>
<translation>Padrão</translation>
<translation type="vanished">Padrão</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="192"/>
<source>Likes</source>
<translation>Curtidas</translation>
<translation type="vanished">Curtidas</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="193"/>
<source>Downloads</source>
<translation>Downloads</translation>
<translation type="vanished">Downloads</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="194"/>
<source>Recent</source>
<translation>Recentes</translation>
<translation type="vanished">Recentes</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="216"/>
<source>Asc</source>
<translation>Asc</translation>
<translation type="vanished">Asc</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="217"/>
<source>Desc</source>
<translation>Desc</translation>
<translation type="vanished">Desc</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="252"/>
<source>None</source>
<translation>Nenhum</translation>
<translation type="vanished">Nenhum</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="101"/>
<source>Searching · %1</source>
<translation>Pesquisando · %1</translation>
<translation type="vanished">Pesquisando · %1</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="202"/>
<source>Sort by: %1</source>
<translation>Ordenar por: %1</translation>
<translation type="vanished">Ordenar por: %1</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="230"/>
<source>Sort dir: %1</source>
<translation>Ordenar diretório: %1</translation>
<translation type="vanished">Ordenar diretório: %1</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="274"/>
<source>Limit: %1</source>
<translation>Limite: %1</translation>
<translation type="vanished">Limite: %1</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="307"/>
<source>Network error: could not retrieve %1</source>
<translation>Erro de rede: não foi possível obter %1</translation>
<translation type="vanished">Erro de rede: não foi possível obter %1</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="317"/>
<location filename="../qml/AddModelView.qml" line="605"/>
<source>Busy indicator</source>
<translation>Indicador de processamento</translation>
<translation type="vanished">Indicador de processamento</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="318"/>
<source>Displayed when the models request is ongoing</source>
<translation>xibido enquanto os modelos estão sendo carregados</translation>
<translation type="vanished">xibido enquanto os modelos estão sendo carregados</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="358"/>
<source>Model file</source>
<translation>Arquivo do modelo</translation>
<translation type="vanished">Arquivo do modelo</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="359"/>
<source>Model file to be downloaded</source>
<translation>Arquivo do modelo a ser baixado</translation>
<translation type="vanished">Arquivo do modelo a ser baixado</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="382"/>
<source>Description</source>
<translation>Descrição</translation>
<translation type="vanished">Descrição</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="383"/>
<source>File description</source>
<translation>Descrição do arquivo</translation>
<translation type="vanished">Descrição do arquivo</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="416"/>
<source>Cancel</source>
<translation>Cancelar</translation>
<translation type="vanished">Cancelar</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="416"/>
<source>Resume</source>
<translation>Retomar</translation>
<translation type="vanished">Retomar</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="416"/>
<source>Download</source>
<translation>Baixar</translation>
<translation type="vanished">Baixar</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="424"/>
<source>Stop/restart/start the download</source>
<translation>Parar/reiniciar/iniciar o download</translation>
<translation type="vanished">Parar/reiniciar/iniciar o download</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="436"/>
<source>Remove</source>
<translation>Remover</translation>
<translation type="vanished">Remover</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="443"/>
<source>Remove model from filesystem</source>
<translation>Remover modelo do sistema</translation>
<translation type="vanished">Remover modelo do sistema</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="457"/>
<location filename="../qml/AddModelView.qml" line="491"/>
<source>Install</source>
<translation>Instalar</translation>
<translation type="vanished">Instalar</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="492"/>
<source>Install online model</source>
<translation>Instalar modelo online</translation>
<translation type="vanished">Instalar modelo online</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="521"/>
<source>&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;WARNING: Not recommended for your hardware. Model requires more memory (%1 GB) than your system has available (%2).&lt;/strong&gt;&lt;/font&gt;</source>
<translation>&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;ATENÇÃO: Este modelo não é recomendado para seu hardware. Ele exige mais memória (%1 GB) do que seu sistema possui (%2).&lt;/strong&gt;&lt;/font&gt;</translation>
<translation type="vanished">&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;ATENÇÃO: Este modelo não é recomendado para seu hardware. Ele exige mais memória (%1 GB) do que seu sistema possui (%2).&lt;/strong&gt;&lt;/font&gt;</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="619"/>
<source>ERROR: $API_KEY is empty.</source>
<translation>ERRO: A $API_KEY está vazia.</translation>
<translation type="vanished">ERRO: A $API_KEY está vazia.</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="640"/>
<source>ERROR: $BASE_URL is empty.</source>
<translation>ERRO: A $BASE_URL está vazia.</translation>
<translation type="vanished">ERRO: A $BASE_URL está vazia.</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="646"/>
<source>enter $BASE_URL</source>
<translation>inserir a $BASE_URL</translation>
<translation type="vanished">inserir a $BASE_URL</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="661"/>
<source>ERROR: $MODEL_NAME is empty.</source>
<translation>ERRO: O $MODEL_NAME está vazio.</translation>
<translation type="vanished">ERRO: O $MODEL_NAME está vazio.</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="667"/>
<source>enter $MODEL_NAME</source>
<translation>inserir o $MODEL_NAME</translation>
<translation type="vanished">inserir o $MODEL_NAME</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="716"/>
<source>%1 GB</source>
<translation>%1 GB</translation>
<translation type="vanished">%1 GB</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="716"/>
<location filename="../qml/AddModelView.qml" line="738"/>
<source>?</source>
<translation>?</translation>
<translation type="vanished">?</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="508"/>
<source>Describes an error that occurred when downloading</source>
<translation>Mostra informações sobre o erro no download</translation>
<translation type="vanished">Mostra informações sobre o erro no download</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="502"/>
<source>&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Error&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</source>
<translation>&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Erro&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</translation>
<translation type="vanished">&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Erro&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="527"/>
<source>Error for incompatible hardware</source>
<translation>Aviso: Hardware não compatível</translation>
<translation type="vanished">Aviso: Hardware não compatível</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="565"/>
<source>Download progressBar</source>
<translation>Progresso do download</translation>
<translation type="vanished">Progresso do download</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="566"/>
<source>Shows the progress made in the download</source>
<translation>Mostra o progresso do download</translation>
<translation type="vanished">Mostra o progresso do download</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="576"/>
<source>Download speed</source>
<translation>Velocidade de download</translation>
<translation type="vanished">Velocidade de download</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="577"/>
<source>Download speed in bytes/kilobytes/megabytes per second</source>
<translation>Velocidade de download em bytes/kilobytes/megabytes por segundo</translation>
<translation type="vanished">Velocidade de download em bytes/kilobytes/megabytes por segundo</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="594"/>
<source>Calculating...</source>
<translation>Calculando...</translation>
<translation type="vanished">Calculando...</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="598"/>
<location filename="../qml/AddModelView.qml" line="628"/>
<location filename="../qml/AddModelView.qml" line="649"/>
<location filename="../qml/AddModelView.qml" line="670"/>
<source>Whether the file hash is being calculated</source>
<translation>Quando o hash do arquivo está sendo calculado</translation>
<translation type="vanished">Quando o hash do arquivo está sendo calculado</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="606"/>
<source>Displayed when the file hash is being calculated</source>
<translation>Exibido durante o cálculo do hash do arquivo</translation>
<translation type="vanished">Exibido durante o cálculo do hash do arquivo</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="625"/>
<source>enter $API_KEY</source>
<translation>inserir $API_KEY</translation>
<translation type="vanished">inserir $API_KEY</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="689"/>
<source>File size</source>
<translation>Tamanho do arquivo</translation>
<translation type="vanished">Tamanho do arquivo</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="711"/>
<source>RAM required</source>
<translation>RAM necessária</translation>
<translation type="vanished">RAM necessária</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="733"/>
<source>Parameters</source>
<translation>Parâmetros</translation>
<translation type="vanished">Parâmetros</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="755"/>
<source>Quant</source>
<translation>Quant</translation>
<translation type="vanished">Quant</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="777"/>
<source>Type</source>
<translation>Tipo</translation>
<translation type="vanished">Tipo</translation>
</message>
</context>
<context>
@ -1698,78 +2109,78 @@ modelo instalado para funcionar</translation>
<context>
<name>ModelList</name>
<message>
<location filename="../src/modellist.cpp" line="1672"/>
<location filename="../src/modellist.cpp" line="1681"/>
<source>&lt;ul&gt;&lt;li&gt;Requires personal OpenAI API key.&lt;/li&gt;&lt;li&gt;WARNING: Will send your chats to OpenAI!&lt;/li&gt;&lt;li&gt;Your API key will be stored on disk&lt;/li&gt;&lt;li&gt;Will only be used to communicate with OpenAI&lt;/li&gt;&lt;li&gt;You can apply for an API key &lt;a href=&quot;https://platform.openai.com/account/api-keys&quot;&gt;here.&lt;/a&gt;&lt;/li&gt;</source>
<translation>&lt;ul&gt;&lt;li&gt;É necessária uma chave de API da OpenAI.&lt;/li&gt;&lt;li&gt;AVISO: Seus chats serão enviados para a OpenAI!&lt;/li&gt;&lt;li&gt;Sua chave de API será armazenada localmente&lt;/li&gt;&lt;li&gt;Ela será usada apenas para comunicação com a OpenAI&lt;/li&gt;&lt;li&gt;Você pode solicitar uma chave de API &lt;a href=&quot;https://platform.openai.com/account/api-keys&quot;&gt;aqui.&lt;/a&gt;&lt;/li&gt;</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1691"/>
<location filename="../src/modellist.cpp" line="1700"/>
<source>&lt;strong&gt;OpenAI&apos;s ChatGPT model GPT-3.5 Turbo&lt;/strong&gt;&lt;br&gt; %1</source>
<translation>&lt;strong&gt;Modelo ChatGPT GPT-3.5 Turbo da OpenAI&lt;/strong&gt;&lt;br&gt; %1</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1720"/>
<location filename="../src/modellist.cpp" line="1729"/>
<source>&lt;strong&gt;OpenAI&apos;s ChatGPT model GPT-4&lt;/strong&gt;&lt;br&gt; %1 %2</source>
<translation>&lt;strong&gt;Modelo ChatGPT GPT-4 da OpenAI&lt;/strong&gt;&lt;br&gt; %1 %2</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1752"/>
<location filename="../src/modellist.cpp" line="1761"/>
<source>&lt;strong&gt;Mistral Tiny model&lt;/strong&gt;&lt;br&gt; %1</source>
<translation>&lt;strong&gt;Modelo Mistral Tiny&lt;/strong&gt;&lt;br&gt; %1</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1778"/>
<location filename="../src/modellist.cpp" line="1787"/>
<source>&lt;strong&gt;Mistral Small model&lt;/strong&gt;&lt;br&gt; %1</source>
<translation>&lt;strong&gt;Modelo Mistral Small&lt;/strong&gt;&lt;br&gt; %1</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1805"/>
<location filename="../src/modellist.cpp" line="1814"/>
<source>&lt;strong&gt;Mistral Medium model&lt;/strong&gt;&lt;br&gt; %1</source>
<translation>&lt;strong&gt;Modelo Mistral Medium&lt;/strong&gt;&lt;br&gt; %1</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1705"/>
<location filename="../src/modellist.cpp" line="1714"/>
<source>&lt;br&gt;&lt;br&gt;&lt;i&gt;* Even if you pay OpenAI for ChatGPT-4 this does not guarantee API key access. Contact OpenAI for more info.</source>
<translation>&lt;br&gt;&lt;br&gt;&lt;i&gt;* Mesmo que você pague pelo ChatGPT-4 da OpenAI, isso não garante acesso à chave de API. Contate a OpenAI para mais informações.</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1309"/>
<location filename="../src/modellist.cpp" line="1360"/>
<location filename="../src/modellist.cpp" line="1318"/>
<location filename="../src/modellist.cpp" line="1369"/>
<source>cannot open &quot;%1&quot;: %2</source>
<translation>não é possível abrir &quot;%1&quot;: %2</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1321"/>
<location filename="../src/modellist.cpp" line="1330"/>
<source>cannot create &quot;%1&quot;: %2</source>
<translation>não é possível criar &quot;%1&quot;: %2</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1371"/>
<location filename="../src/modellist.cpp" line="1380"/>
<source>%1 (%2)</source>
<translation>%1 (%2)</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1372"/>
<location filename="../src/modellist.cpp" line="1381"/>
<source>&lt;strong&gt;OpenAI-Compatible API Model&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;API Key: %1&lt;/li&gt;&lt;li&gt;Base URL: %2&lt;/li&gt;&lt;li&gt;Model Name: %3&lt;/li&gt;&lt;/ul&gt;</source>
<translation>&lt;strong&gt;Modelo de API Compatível com OpenAI&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;Chave da API: %1&lt;/li&gt;&lt;li&gt;URL Base: %2&lt;/li&gt;&lt;li&gt;Nome do Modelo: %3&lt;/li&gt;&lt;/ul&gt;</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1733"/>
<location filename="../src/modellist.cpp" line="1742"/>
<source>&lt;ul&gt;&lt;li&gt;Requires personal Mistral API key.&lt;/li&gt;&lt;li&gt;WARNING: Will send your chats to Mistral!&lt;/li&gt;&lt;li&gt;Your API key will be stored on disk&lt;/li&gt;&lt;li&gt;Will only be used to communicate with Mistral&lt;/li&gt;&lt;li&gt;You can apply for an API key &lt;a href=&quot;https://console.mistral.ai/user/api-keys&quot;&gt;here&lt;/a&gt;.&lt;/li&gt;</source>
<translation>&lt;ul&gt;&lt;li&gt;É necessária uma chave de API da Mistral.&lt;/li&gt;&lt;li&gt;AVISO: Seus chats serão enviados para a Mistral!&lt;/li&gt;&lt;li&gt;Sua chave de API será armazenada localmente&lt;/li&gt;&lt;li&gt;Ela será usada apenas para comunicação com a Mistral&lt;/li&gt;&lt;li&gt;Você pode solicitar uma chave de API &lt;a href=&quot;https://console.mistral.ai/user/api-keys&quot;&gt;aqui&lt;/a&gt;.&lt;/li&gt;</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1818"/>
<location filename="../src/modellist.cpp" line="1827"/>
<source>&lt;ul&gt;&lt;li&gt;Requires personal API key and the API base URL.&lt;/li&gt;&lt;li&gt;WARNING: Will send your chats to the OpenAI-compatible API Server you specified!&lt;/li&gt;&lt;li&gt;Your API key will be stored on disk&lt;/li&gt;&lt;li&gt;Will only be used to communicate with the OpenAI-compatible API Server&lt;/li&gt;</source>
<translation>&lt;ul&gt;&lt;li&gt;É necessária uma chave de API e a URL da API.&lt;/li&gt;&lt;li&gt;AVISO: Seus chats serão enviados para o servidor de API compatível com OpenAI que você especificou!&lt;/li&gt;&lt;li&gt;Sua chave de API será armazenada no disco&lt;/li&gt;&lt;li&gt;Será usada apenas para comunicação com o servidor de API compatível com OpenAI&lt;/li&gt;</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1835"/>
<location filename="../src/modellist.cpp" line="1844"/>
<source>&lt;strong&gt;Connect to OpenAI-compatible API server&lt;/strong&gt;&lt;br&gt; %1</source>
<translation>&lt;strong&gt;Conectar a um servidor de API compatível com OpenAI&lt;/strong&gt;&lt;br&gt; %1</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="2259"/>
<location filename="../src/modellist.cpp" line="2268"/>
<source>&lt;strong&gt;Created by %1.&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;Published on %2.&lt;li&gt;This model has %3 likes.&lt;li&gt;This model has %4 downloads.&lt;li&gt;More info can be found &lt;a href=&quot;https://huggingface.co/%5&quot;&gt;here.&lt;/a&gt;&lt;/ul&gt;</source>
<translation>&lt;strong&gt;Criado por %1.&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;Publicado em %2.&lt;li&gt;Este modelo tem %3 curtidas.&lt;li&gt;Este modelo tem %4 downloads.&lt;li&gt;Mais informações podem ser encontradas &lt;a href=&quot;https://huggingface.co/%5&quot;&gt;aqui.&lt;/a&gt;&lt;/ul&gt;</translation>
</message>
@ -2829,12 +3240,12 @@ versão do modelo GPT4All que utilize seus dados!</translation>
<translation>Modo servidor ativado</translation>
</message>
<message>
<location filename="../main.qml" line="687"/>
<location filename="../main.qml" line="684"/>
<source>Installed models</source>
<translation>Modelos instalados</translation>
</message>
<message>
<location filename="../main.qml" line="688"/>
<location filename="../main.qml" line="685"/>
<source>View of installed models</source>
<translation>Exibe os modelos instalados</translation>
</message>

View File

@ -63,6 +63,467 @@
<translation>Creează Colecţia</translation>
</message>
</context>
<context>
<name>AddGPT4AllModelView</name>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="31"/>
<source>These models have been specifically configured for use in GPT4All. The first few models on the list are known to work the best, but you should only attempt to use models that will fit in your available memory.</source>
<translation>Aceste modele au fost configurate special pentru utilizarea în GPT4All. Primele câteva modele din listă sunt cunoscute ca fiind cele mai bune, dar ar trebui încercați utilizați doar modele care se încadrează în RAM.</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="45"/>
<source>Network error: could not retrieve %1</source>
<translation>Eroare de reţea: nu se poate prelua %1</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="55"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="343"/>
<source>Busy indicator</source>
<translation>Indicator de activitate</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="56"/>
<source>Displayed when the models request is ongoing</source>
<translation>Afişat în timpul solicitării modelului</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="96"/>
<source>Model file</source>
<translation>Fişierul modelului</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="97"/>
<source>Model file to be downloaded</source>
<translation>Fişierul modelului ce va fi descărcat</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="120"/>
<source>Description</source>
<translation>Descriere</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="121"/>
<source>File description</source>
<translation>Descrierea fişierului</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="154"/>
<source>Cancel</source>
<translation>Anulare</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="154"/>
<source>Resume</source>
<translation>Continuare</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="154"/>
<source>Download</source>
<translation>Download</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="162"/>
<source>Stop/restart/start the download</source>
<translation>Oprirea/Repornirea/Iniţierea descărcării</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="174"/>
<source>Remove</source>
<translation>Şterg</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="181"/>
<source>Remove model from filesystem</source>
<translation>Şterg modelul din sistemul de fişiere</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="195"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="229"/>
<source>Install</source>
<translation type="vanished">Instalare</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="230"/>
<source>Install online model</source>
<translation>Instalez un model din online</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="240"/>
<source>&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Error&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</source>
<translation>&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Eroare&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="246"/>
<source>Describes an error that occurred when downloading</source>
<translation>Descrie eroarea apărută în timpul descărcării</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="259"/>
<source>&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;WARNING: Not recommended for your hardware. Model requires more memory (%1 GB) than your system has available (%2).&lt;/strong&gt;&lt;/font&gt;</source>
<translation>&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;ATENŢIE: Nerecomandat pentru acest hardware. Modelul necesită mai multă memorie (%1 GB) decât are acest sistem (%2).&lt;/strong&gt;&lt;/font&gt;</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="265"/>
<source>Error for incompatible hardware</source>
<translation>Eroare: hardware incompatibil</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="303"/>
<source>Download progressBar</source>
<translation>Progresia descărcării</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="304"/>
<source>Shows the progress made in the download</source>
<translation>Afişează progresia descărcării</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="314"/>
<source>Download speed</source>
<translation>Viteza de download</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="315"/>
<source>Download speed in bytes/kilobytes/megabytes per second</source>
<translation>Viteza de download în bytes/kilobytes/megabytes pe secundă</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="332"/>
<source>Calculating...</source>
<translation>Calculare...</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="336"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="366"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="387"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="408"/>
<source>Whether the file hash is being calculated</source>
<translation>Dacă se calculează hash-ul fişierului</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="344"/>
<source>Displayed when the file hash is being calculated</source>
<translation>Se afişează când se calculează hash-ul fişierului</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="357"/>
<source>ERROR: $API_KEY is empty.</source>
<translation>EROARE: $API_KEY absentă.</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="363"/>
<source>enter $API_KEY</source>
<translation>introdu cheia $API_KEY</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="378"/>
<source>ERROR: $BASE_URL is empty.</source>
<translation>EROARE: $BASE_URL absentă.</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="384"/>
<source>enter $BASE_URL</source>
<translation>introdu $BASE_URL</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="399"/>
<source>ERROR: $MODEL_NAME is empty.</source>
<translation>EROARE: $MODEL_NAME absent</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="405"/>
<source>enter $MODEL_NAME</source>
<translation>introdu $MODEL_NAME</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="427"/>
<source>File size</source>
<translation>Dimensiunea fişierului</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="449"/>
<source>RAM required</source>
<translation>RAM necesară</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="454"/>
<source>%1 GB</source>
<translation>%1 GB</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="454"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="476"/>
<source>?</source>
<translation>?</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="471"/>
<source>Parameters</source>
<translation>Parametri</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="493"/>
<source>Quant</source>
<translation>Quant(ificare)</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="515"/>
<source>Type</source>
<translation>Tip</translation>
</message>
</context>
<context>
<name>AddHFModelView</name>
<message>
<location filename="../qml/AddHFModelView.qml" line="32"/>
<source>Use the search to find and download models from HuggingFace. There is NO GUARANTEE that these will work. Many will require additional configuration before they can be used.</source>
<translation>Utilizați funcția de căutare pentru a găsi și descărca modele de pe HuggingFace. NU E GARANTAT acestea vor funcționa. Multe dintre ele vor necesita configurări suplimentare înainte de a putea fi utilizate.</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="52"/>
<source>Discover and download models by keyword search...</source>
<translation>Caută şi descarcă modele după un cuvânt-cheie...</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="55"/>
<source>Text field for discovering and filtering downloadable models</source>
<translation>Câmp pentru căutarea şi filtrarea modelelor ce pot fi descărcate</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="61"/>
<source>Searching · %1</source>
<translation>Căutare · %1</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="131"/>
<source>Initiate model discovery and filtering</source>
<translation>Iniţiază căutarea şi filtrarea modelelor</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="132"/>
<source>Triggers discovery and filtering of models</source>
<translation>Activează căutarea şi filtrarea modelelor</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="151"/>
<source>Default</source>
<translation>Implicit</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="152"/>
<source>Likes</source>
<translation>Likes</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="153"/>
<source>Downloads</source>
<translation>Download-uri</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="154"/>
<source>Recent</source>
<translation>Recent/e</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="162"/>
<source>Sort by: %1</source>
<translation>Ordonare după: %1</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="176"/>
<source>Asc</source>
<translation>Asc. (A-&gt;Z)</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="177"/>
<source>Desc</source>
<translation>Desc. (Z-&gt;A)</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="190"/>
<source>Sort dir: %1</source>
<translation>Sensul ordonării: %1</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="212"/>
<source>None</source>
<translation>Niciunul</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="234"/>
<source>Limit: %1</source>
<translation>Límită: %1</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="297"/>
<source>Model file</source>
<translation>Fişierul modelului</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="298"/>
<source>Model file to be downloaded</source>
<translation>Fişierul modelului ce va fi descărcat</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="321"/>
<source>Description</source>
<translation>Descriere</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="322"/>
<source>File description</source>
<translation>Descrierea fişierului</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="355"/>
<source>Cancel</source>
<translation>Anulare</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="355"/>
<source>Resume</source>
<translation>Continuare</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="355"/>
<source>Download</source>
<translation>Download</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="363"/>
<source>Stop/restart/start the download</source>
<translation>Oprirea/Repornirea/Iniţierea descărcării</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="375"/>
<source>Remove</source>
<translation>Şterg</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="382"/>
<source>Remove model from filesystem</source>
<translation>Şterg modelul din sistemul de fişiere</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="396"/>
<location filename="../qml/AddHFModelView.qml" line="430"/>
<source>Install</source>
<translation>Instalare</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="431"/>
<source>Install online model</source>
<translation>Instalez un model din online</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="441"/>
<source>&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Error&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</source>
<translation>&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Eroare&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="447"/>
<source>Describes an error that occurred when downloading</source>
<translation>Descrie o eroare aparută la download</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="460"/>
<source>&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;WARNING: Not recommended for your hardware. Model requires more memory (%1 GB) than your system has available (%2).&lt;/strong&gt;&lt;/font&gt;</source>
<translation>&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;ATENŢIE: Nerecomandat pentru acest hardware. Modelul necesită mai multă memorie (%1 GB) decât are acest sistem (%2).&lt;/strong&gt;&lt;/font&gt;</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="466"/>
<source>Error for incompatible hardware</source>
<translation>Eroare - hardware incompatibil</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="504"/>
<source>Download progressBar</source>
<translation>Bara de progresie a descărcării</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="505"/>
<source>Shows the progress made in the download</source>
<translation>Afişează progresia descărcării</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="515"/>
<source>Download speed</source>
<translation>Viteza de download</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="516"/>
<source>Download speed in bytes/kilobytes/megabytes per second</source>
<translation>Viteza de download în bytes/kilobytes/megabytes pe secundă</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="533"/>
<source>Calculating...</source>
<translation>Calculare...</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="537"/>
<location filename="../qml/AddHFModelView.qml" line="567"/>
<location filename="../qml/AddHFModelView.qml" line="588"/>
<location filename="../qml/AddHFModelView.qml" line="609"/>
<source>Whether the file hash is being calculated</source>
<translation>Dacă se calculează hash-ul fişierului</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="544"/>
<source>Busy indicator</source>
<translation>Indicator de activitate</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="545"/>
<source>Displayed when the file hash is being calculated</source>
<translation>Afişat la calcularea hash-ului fişierului</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="558"/>
<source>ERROR: $API_KEY is empty.</source>
<translation>EROARE: $API_KEY absentă</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="564"/>
<source>enter $API_KEY</source>
<translation>introdu cheia $API_KEY</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="579"/>
<source>ERROR: $BASE_URL is empty.</source>
<translation>EROARE: $BASE_URL absentă</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="585"/>
<source>enter $BASE_URL</source>
<translation>introdu $BASE_URL</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="600"/>
<source>ERROR: $API_KEY is empty.</source>
<translation>EROARE: $API_KEY absentă</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="606"/>
<source>enter $MODEL_NAME</source>
<translation>introdu $MODEL_NAME</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="628"/>
<source>File size</source>
<translation>Dimensiunea fişierului</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="650"/>
<source>Quant</source>
<translation>Quant(ificare)</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="672"/>
<source>Type</source>
<translation>Tip</translation>
</message>
</context>
<context>
<name>AddModelView</name>
<message>
@ -76,280 +537,142 @@
<translation>Caută modele</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="92"/>
<location filename="../qml/AddModelView.qml" line="86"/>
<source>GPT4All</source>
<translation>GPT4All</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="93"/>
<source>HuggingFace</source>
<translation>HuggingFace</translation>
</message>
<message>
<source>Discover and download models by keyword search...</source>
<translation>Caută şi descarcă modele după un cuvânt-cheie...</translation>
<translation type="vanished">Caută şi descarcă modele după un cuvânt-cheie...</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="95"/>
<source>Text field for discovering and filtering downloadable models</source>
<translation>Câmp pentru căutarea şi filtrarea modelelor ce pot fi descărcate</translation>
<translation type="vanished">Câmp pentru căutarea şi filtrarea modelelor ce pot fi descărcate</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="171"/>
<source>Initiate model discovery and filtering</source>
<translation>Iniţiază căutarea şi filtrarea modelelor</translation>
<translation type="vanished">Iniţiază căutarea şi filtrarea modelelor</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="172"/>
<source>Triggers discovery and filtering of models</source>
<translation>Activează căutarea şi filtrarea modelelor</translation>
<translation type="vanished">Activează căutarea şi filtrarea modelelor</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="191"/>
<source>Default</source>
<translation>Implicit</translation>
<translation type="vanished">Implicit</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="192"/>
<source>Likes</source>
<translation>Likes</translation>
<translation type="vanished">Likes</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="193"/>
<source>Downloads</source>
<translation>Download-uri</translation>
<translation type="vanished">Download-uri</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="194"/>
<source>Recent</source>
<translation>Recent/e</translation>
<translation type="vanished">Recent/e</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="216"/>
<source>Asc</source>
<translation>Asc. (A-&gt;Z)</translation>
<translation type="vanished">Asc. (A-&gt;Z)</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="217"/>
<source>Desc</source>
<translation>Desc. (Z-&gt;A)</translation>
<translation type="vanished">Desc. (Z-&gt;A)</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="252"/>
<source>None</source>
<translation>Niciunul</translation>
<translation type="vanished">Niciunul</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="101"/>
<source>Searching · %1</source>
<translation>Căutare · %1</translation>
<translation type="vanished">Căutare · %1</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="202"/>
<source>Sort by: %1</source>
<translation>Ordonare după: %1</translation>
<translation type="vanished">Ordonare după: %1</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="230"/>
<source>Sort dir: %1</source>
<translation>Sensul ordonării: %1</translation>
<translation type="vanished">Sensul ordonării: %1</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="274"/>
<source>Limit: %1</source>
<translation>Límită: %1</translation>
<translation type="vanished">Límită: %1</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="307"/>
<source>Network error: could not retrieve %1</source>
<translation>Eroare de reţea: nu se poate prelua %1</translation>
<translation type="vanished">Eroare de reţea: nu se poate prelua %1</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="317"/>
<location filename="../qml/AddModelView.qml" line="605"/>
<source>Busy indicator</source>
<translation>Indicator de activitate</translation>
<translation type="vanished">Indicator de activitate</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="318"/>
<source>Displayed when the models request is ongoing</source>
<translation>Afişat în timpul solicitării modelului</translation>
<translation type="vanished">Afişat în timpul solicitării modelului</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="358"/>
<source>Model file</source>
<translation>Fişierul modelului</translation>
<translation type="vanished">Fişierul modelului</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="359"/>
<source>Model file to be downloaded</source>
<translation>Fişierul modelului de descărcat</translation>
<translation type="vanished">Fişierul modelului de descărcat</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="382"/>
<source>Description</source>
<translation>Descriere</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="383"/>
<source>File description</source>
<translation>Descrierea fişierului</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="416"/>
<source>Cancel</source>
<translation>Anulare</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="416"/>
<source>Resume</source>
<translation>Continuare</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="416"/>
<source>Download</source>
<translation>Download</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="424"/>
<source>Stop/restart/start the download</source>
<translation>Opreşte/Reporneşte/Începe descărcarea</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="436"/>
<source>Remove</source>
<translation>Şterge</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="443"/>
<source>Remove model from filesystem</source>
<translation>Şterge modelul din sistemul de fişiere</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="457"/>
<location filename="../qml/AddModelView.qml" line="491"/>
<source>Install</source>
<translation>Instalare</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="492"/>
<source>Install online model</source>
<translation>Instalez un model din online</translation>
<translation type="vanished">Instalez un model din online</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="502"/>
<source>&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Error&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</source>
<translation>&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Eroare&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="521"/>
<source>&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;WARNING: Not recommended for your hardware. Model requires more memory (%1 GB) than your system has available (%2).&lt;/strong&gt;&lt;/font&gt;</source>
<translation>&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;ATENŢIE: Nerecomandat pentru acest hardware. Modelul necesită mai multă memorie (%1 GB) decât are acest sistem (%2).&lt;/strong&gt;&lt;/font&gt;</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="716"/>
<source>%1 GB</source>
<translation>%1 GB</translation>
<translation type="vanished">%1 GB</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="716"/>
<location filename="../qml/AddModelView.qml" line="738"/>
<source>?</source>
<translation>?</translation>
<translation type="vanished">?</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="508"/>
<source>Describes an error that occurred when downloading</source>
<translation>Descrie eroarea apărută în timpul descărcării</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="527"/>
<source>Error for incompatible hardware</source>
<translation>Eroare: hardware incompatibil</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="565"/>
<source>Download progressBar</source>
<translation>Progresia descărcării</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="566"/>
<source>Shows the progress made in the download</source>
<translation>Afişează progresia descărcării</translation>
<translation type="vanished">Afişează progresia descărcării</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="576"/>
<source>Download speed</source>
<translation>Viteza de download</translation>
<translation type="vanished">Viteza de download</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="577"/>
<source>Download speed in bytes/kilobytes/megabytes per second</source>
<translation>Viteza de download în bytes/kilobytes/megabytes pe secundă</translation>
<translation type="vanished">Viteza de download în bytes/kilobytes/megabytes pe secundă</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="594"/>
<source>Calculating...</source>
<translation>Calculare...</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="598"/>
<location filename="../qml/AddModelView.qml" line="628"/>
<location filename="../qml/AddModelView.qml" line="649"/>
<location filename="../qml/AddModelView.qml" line="670"/>
<source>Whether the file hash is being calculated</source>
<translation>Dacă se calculează hash-ul fişierului</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="606"/>
<source>Displayed when the file hash is being calculated</source>
<translation>Se afişează când se calculează hash-ul fişierului</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="619"/>
<source>ERROR: $API_KEY is empty.</source>
<translation>EROARE: $API_KEY absentă</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="625"/>
<source>enter $API_KEY</source>
<translation>introdu cheia $API_KEY</translation>
<translation type="vanished">introdu cheia $API_KEY</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="640"/>
<source>ERROR: $BASE_URL is empty.</source>
<translation>EROARE: $BASE_URL absentă</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="646"/>
<source>enter $BASE_URL</source>
<translation>introdu $BASE_URL</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="661"/>
<source>ERROR: $MODEL_NAME is empty.</source>
<translation>EROARE: $MODEL_NAME absent</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="667"/>
<source>enter $MODEL_NAME</source>
<translation>introdu $MODEL_NAME</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="689"/>
<source>File size</source>
<translation>Dimensiunea fişierului</translation>
<translation type="vanished">Dimensiunea fişierului</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="711"/>
<source>RAM required</source>
<translation>RAM necesară</translation>
<translation type="vanished">RAM necesară</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="733"/>
<source>Parameters</source>
<translation>Parametri</translation>
<translation type="vanished">Parametri</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="755"/>
<source>Quant</source>
<translation>Quant(ificare)</translation>
<translation type="vanished">Quant(ificare)</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="777"/>
<source>Type</source>
<translation>Tip</translation>
<translation type="vanished">Tip</translation>
</message>
</context>
<context>
@ -1749,78 +2072,78 @@ model to get started</source>
<context>
<name>ModelList</name>
<message>
<location filename="../src/modellist.cpp" line="1309"/>
<location filename="../src/modellist.cpp" line="1360"/>
<location filename="../src/modellist.cpp" line="1318"/>
<location filename="../src/modellist.cpp" line="1369"/>
<source>cannot open &quot;%1&quot;: %2</source>
<translation>nu se poate deschide %1: %2</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1321"/>
<location filename="../src/modellist.cpp" line="1330"/>
<source>cannot create &quot;%1&quot;: %2</source>
<translation>nu se poate crea %1: %2</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1371"/>
<location filename="../src/modellist.cpp" line="1380"/>
<source>%1 (%2)</source>
<translation>%1 (%2)</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1372"/>
<location filename="../src/modellist.cpp" line="1381"/>
<source>&lt;strong&gt;OpenAI-Compatible API Model&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;API Key: %1&lt;/li&gt;&lt;li&gt;Base URL: %2&lt;/li&gt;&lt;li&gt;Model Name: %3&lt;/li&gt;&lt;/ul&gt;</source>
<translation>&lt;strong&gt;Model API compatibil cu OpenAI&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;Cheia API: %1&lt;/li&gt;&lt;li&gt;Base URL: %2&lt;/li&gt;&lt;li&gt;Numele modelului: %3&lt;/li&gt;&lt;/ul&gt;</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1672"/>
<location filename="../src/modellist.cpp" line="1681"/>
<source>&lt;ul&gt;&lt;li&gt;Requires personal OpenAI API key.&lt;/li&gt;&lt;li&gt;WARNING: Will send your chats to OpenAI!&lt;/li&gt;&lt;li&gt;Your API key will be stored on disk&lt;/li&gt;&lt;li&gt;Will only be used to communicate with OpenAI&lt;/li&gt;&lt;li&gt;You can apply for an API key &lt;a href=&quot;https://platform.openai.com/account/api-keys&quot;&gt;here.&lt;/a&gt;&lt;/li&gt;</source>
<translation>&lt;ul&gt;&lt;li&gt;Necesită o cheie API OpenAI personală. &lt;/li&gt;&lt;li&gt;ATENŢIE: Conversaţiile tale vor fi trimise la OpenAI!&lt;/li&gt;&lt;li&gt;Cheia ta API va fi stocată pe disc (local) &lt;/li&gt;&lt;li&gt;Va fi utilizată numai pentru comunicarea cu OpenAI&lt;/li&gt;&lt;li&gt;Poţi solicita o cheie API aici: &lt;a href=&quot;https://platform.openai.com/account/api-keys&quot;&gt;aici.&lt;/a&gt;&lt;/li&gt;</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1691"/>
<location filename="../src/modellist.cpp" line="1700"/>
<source>&lt;strong&gt;OpenAI&apos;s ChatGPT model GPT-3.5 Turbo&lt;/strong&gt;&lt;br&gt; %1</source>
<translation>&lt;strong&gt;Modelul OpenAI&apos;s ChatGPT GPT-3.5 Turbo&lt;/strong&gt;&lt;br&gt; %1</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1705"/>
<location filename="../src/modellist.cpp" line="1714"/>
<source>&lt;br&gt;&lt;br&gt;&lt;i&gt;* Even if you pay OpenAI for ChatGPT-4 this does not guarantee API key access. Contact OpenAI for more info.</source>
<translation>&lt;br&gt;&lt;br&gt;&lt;i&gt;* Chiar dacă plăteşti la OpenAI pentru ChatGPT-4, aceasta nu garantează accesul la cheia API. Contactează OpenAI pentru mai multe informaţii.</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1720"/>
<location filename="../src/modellist.cpp" line="1729"/>
<source>&lt;strong&gt;OpenAI&apos;s ChatGPT model GPT-4&lt;/strong&gt;&lt;br&gt; %1 %2</source>
<translation>&lt;strong&gt;Modelul ChatGPT GPT-4 al OpenAI&lt;/strong&gt;&lt;br&gt; %1 %2</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1733"/>
<location filename="../src/modellist.cpp" line="1742"/>
<source>&lt;ul&gt;&lt;li&gt;Requires personal Mistral API key.&lt;/li&gt;&lt;li&gt;WARNING: Will send your chats to Mistral!&lt;/li&gt;&lt;li&gt;Your API key will be stored on disk&lt;/li&gt;&lt;li&gt;Will only be used to communicate with Mistral&lt;/li&gt;&lt;li&gt;You can apply for an API key &lt;a href=&quot;https://console.mistral.ai/user/api-keys&quot;&gt;here&lt;/a&gt;.&lt;/li&gt;</source>
<translation>&lt;ul&gt;&lt;li&gt;Necesită cheia personală Mistral API. &lt;/li&gt;&lt;li&gt;ATENŢIE: Conversaţiile tale vor fi trimise la Mistral!&lt;/li&gt;&lt;li&gt;Cheia ta API va fi stocată pe disc (local)&lt;/li&gt;&lt;li&gt;Va fi utilizată numai pentru comunicarea cu Mistral&lt;/li&gt;&lt;li&gt;Poţi solicita o cheie API aici: &lt;a href=&quot;https://console.mistral.ai/user/api-keys&quot;&gt;aici&lt;/a&gt;.&lt;/li&gt;</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1752"/>
<location filename="../src/modellist.cpp" line="1761"/>
<source>&lt;strong&gt;Mistral Tiny model&lt;/strong&gt;&lt;br&gt; %1</source>
<translation>&lt;strong&gt;Modelul Mistral Tiny&lt;/strong&gt;&lt;br&gt; %1</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1778"/>
<location filename="../src/modellist.cpp" line="1787"/>
<source>&lt;strong&gt;Mistral Small model&lt;/strong&gt;&lt;br&gt; %1</source>
<translation>&lt;strong&gt;Modelul Mistral Small&lt;/strong&gt;&lt;br&gt; %1</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1805"/>
<location filename="../src/modellist.cpp" line="1814"/>
<source>&lt;strong&gt;Mistral Medium model&lt;/strong&gt;&lt;br&gt; %1</source>
<translation>&lt;strong&gt;Modelul Mistral Medium&lt;/strong&gt;&lt;br&gt; %1</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1818"/>
<location filename="../src/modellist.cpp" line="1827"/>
<source>&lt;ul&gt;&lt;li&gt;Requires personal API key and the API base URL.&lt;/li&gt;&lt;li&gt;WARNING: Will send your chats to the OpenAI-compatible API Server you specified!&lt;/li&gt;&lt;li&gt;Your API key will be stored on disk&lt;/li&gt;&lt;li&gt;Will only be used to communicate with the OpenAI-compatible API Server&lt;/li&gt;</source>
<translation>&lt;ul&gt;&lt;li&gt;Necesită cheia personală API si base-URL a API.&lt;/li&gt;&lt;li&gt;ATENŢIE: Conversaţiile tale vor fi trimise la serverul API compatibil cu OpenAI specificat!&lt;/li&gt;&lt;li&gt;Cheia ta API va fi stocată pe disc (local)&lt;/li&gt;&lt;li&gt;Va fi utilizată numai pentru comunicarea cu serverul API compatibil cu OpenAI&lt;/li&gt;</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1835"/>
<location filename="../src/modellist.cpp" line="1844"/>
<source>&lt;strong&gt;Connect to OpenAI-compatible API server&lt;/strong&gt;&lt;br&gt; %1</source>
<translation>&lt;strong&gt;Conectare la un server API compatibil cu OpenAI&lt;/strong&gt;&lt;br&gt; %1</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="2259"/>
<location filename="../src/modellist.cpp" line="2268"/>
<source>&lt;strong&gt;Created by %1.&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;Published on %2.&lt;li&gt;This model has %3 likes.&lt;li&gt;This model has %4 downloads.&lt;li&gt;More info can be found &lt;a href=&quot;https://huggingface.co/%5&quot;&gt;here.&lt;/a&gt;&lt;/ul&gt;</source>
<translation>&lt;strong&gt;Creat de către %1.&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;Publicat in: %2.&lt;li&gt;Acest model are %3 Likes.&lt;li&gt;Acest model are %4 download-uri.&lt;li&gt;Mai multe informaţii pot fi găsite la: &lt;a href=&quot;https://huggingface.co/%5&quot;&gt;aici.&lt;/a&gt;&lt;/ul&gt;</translation>
</message>
@ -2678,7 +3001,7 @@ care foloseşte datele tale!</translation>
<message>
<location filename="../qml/StartupDialog.qml" line="118"/>
<source>Opt-in to anonymous usage analytics used to improve GPT4All</source>
<translation type="unfinished"></translation>
<translation>Optați pentru trimiterea anonimă a evidenței utilizării, folosite pentru a îmbunătăți GPT4All</translation>
</message>
<message>
<location filename="../qml/StartupDialog.qml" line="124"/>
@ -2716,7 +3039,7 @@ care foloseşte datele tale!</translation>
<message>
<location filename="../qml/StartupDialog.qml" line="232"/>
<source>Opt-in to anonymous sharing of chats to the GPT4All Datalake</source>
<translation type="unfinished"></translation>
<translation>Optați pentru partajarea anonimă a conversațiilor în GPT4All Datalake</translation>
</message>
<message>
<location filename="../qml/StartupDialog.qml" line="238"/>
@ -2923,12 +3246,12 @@ care foloseşte datele tale!</translation>
<translation>Modul Server: ACTIV</translation>
</message>
<message>
<location filename="../main.qml" line="687"/>
<location filename="../main.qml" line="684"/>
<source>Installed models</source>
<translation>Modele instalate</translation>
</message>
<message>
<location filename="../main.qml" line="688"/>
<location filename="../main.qml" line="685"/>
<source>View of installed models</source>
<translation>Secţiunea modelelor instalate</translation>
</message>

View File

@ -63,6 +63,467 @@
<translation></translation>
</message>
</context>
<context>
<name>AddGPT4AllModelView</name>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="31"/>
<source>These models have been specifically configured for use in GPT4All. The first few models on the list are known to work the best, but you should only attempt to use models that will fit in your available memory.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="45"/>
<source>Network error: could not retrieve %1</source>
<translation type="unfinished"> %1</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="55"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="343"/>
<source>Busy indicator</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="56"/>
<source>Displayed when the models request is ongoing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="96"/>
<source>Model file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="97"/>
<source>Model file to be downloaded</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="120"/>
<source>Description</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="121"/>
<source>File description</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="154"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="154"/>
<source>Resume</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="154"/>
<source>Download</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="162"/>
<source>Stop/restart/start the download</source>
<translation type="unfinished">//</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="174"/>
<source>Remove</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="181"/>
<source>Remove model from filesystem</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="195"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="229"/>
<source>Install</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="230"/>
<source>Install online model</source>
<translation type="unfinished">线</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="240"/>
<source>&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Error&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="246"/>
<source>Describes an error that occurred when downloading</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="259"/>
<source>&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;WARNING: Not recommended for your hardware. Model requires more memory (%1 GB) than your system has available (%2).&lt;/strong&gt;&lt;/font&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="265"/>
<source>Error for incompatible hardware</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="303"/>
<source>Download progressBar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="304"/>
<source>Shows the progress made in the download</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="314"/>
<source>Download speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="315"/>
<source>Download speed in bytes/kilobytes/megabytes per second</source>
<translation type="unfinished"> b/kb/mb /s</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="332"/>
<source>Calculating...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="336"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="366"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="387"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="408"/>
<source>Whether the file hash is being calculated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="344"/>
<source>Displayed when the file hash is being calculated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="357"/>
<source>ERROR: $API_KEY is empty.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="363"/>
<source>enter $API_KEY</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="378"/>
<source>ERROR: $BASE_URL is empty.</source>
<translation type="unfinished">$BASE_URL </translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="384"/>
<source>enter $BASE_URL</source>
<translation type="unfinished"> $BASE_URL</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="399"/>
<source>ERROR: $MODEL_NAME is empty.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="405"/>
<source>enter $MODEL_NAME</source>
<translation type="unfinished">$MODEL_NAME</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="427"/>
<source>File size</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="449"/>
<source>RAM required</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="454"/>
<source>%1 GB</source>
<translation type="unfinished">%1 GB</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="454"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="476"/>
<source>?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="471"/>
<source>Parameters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="493"/>
<source>Quant</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="515"/>
<source>Type</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>AddHFModelView</name>
<message>
<location filename="../qml/AddHFModelView.qml" line="32"/>
<source>Use the search to find and download models from HuggingFace. There is NO GUARANTEE that these will work. Many will require additional configuration before they can be used.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="52"/>
<source>Discover and download models by keyword search...</source>
<translation type="unfinished"> ...</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="55"/>
<source>Text field for discovering and filtering downloadable models</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="61"/>
<source>Searching · %1</source>
<translation type="unfinished"> · %1</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="131"/>
<source>Initiate model discovery and filtering</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="132"/>
<source>Triggers discovery and filtering of models</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="151"/>
<source>Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="152"/>
<source>Likes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="153"/>
<source>Downloads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="154"/>
<source>Recent</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="162"/>
<source>Sort by: %1</source>
<translation type="unfinished">: %1</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="176"/>
<source>Asc</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="177"/>
<source>Desc</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="190"/>
<source>Sort dir: %1</source>
<translation type="unfinished">: %1</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="212"/>
<source>None</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="234"/>
<source>Limit: %1</source>
<translation type="unfinished">: %1</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="297"/>
<source>Model file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="298"/>
<source>Model file to be downloaded</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="321"/>
<source>Description</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="322"/>
<source>File description</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="355"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="355"/>
<source>Resume</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="355"/>
<source>Download</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="363"/>
<source>Stop/restart/start the download</source>
<translation type="unfinished">//</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="375"/>
<source>Remove</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="382"/>
<source>Remove model from filesystem</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="396"/>
<location filename="../qml/AddHFModelView.qml" line="430"/>
<source>Install</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="431"/>
<source>Install online model</source>
<translation type="unfinished">线</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="441"/>
<source>&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Error&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="447"/>
<source>Describes an error that occurred when downloading</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="460"/>
<source>&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;WARNING: Not recommended for your hardware. Model requires more memory (%1 GB) than your system has available (%2).&lt;/strong&gt;&lt;/font&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="466"/>
<source>Error for incompatible hardware</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="504"/>
<source>Download progressBar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="505"/>
<source>Shows the progress made in the download</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="515"/>
<source>Download speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="516"/>
<source>Download speed in bytes/kilobytes/megabytes per second</source>
<translation type="unfinished"> b/kb/mb /s</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="533"/>
<source>Calculating...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="537"/>
<location filename="../qml/AddHFModelView.qml" line="567"/>
<location filename="../qml/AddHFModelView.qml" line="588"/>
<location filename="../qml/AddHFModelView.qml" line="609"/>
<source>Whether the file hash is being calculated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="544"/>
<source>Busy indicator</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="545"/>
<source>Displayed when the file hash is being calculated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="558"/>
<source>ERROR: $API_KEY is empty.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="564"/>
<source>enter $API_KEY</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="579"/>
<source>ERROR: $BASE_URL is empty.</source>
<translation type="unfinished">$BASE_URL </translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="585"/>
<source>enter $BASE_URL</source>
<translation type="unfinished"> $BASE_URL</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="600"/>
<source>ERROR: $MODEL_NAME is empty.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="606"/>
<source>enter $MODEL_NAME</source>
<translation type="unfinished">$MODEL_NAME</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="628"/>
<source>File size</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="650"/>
<source>Quant</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="672"/>
<source>Type</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>AddModelView</name>
<message>
@ -76,280 +537,230 @@
<translation></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="92"/>
<location filename="../qml/AddModelView.qml" line="86"/>
<source>GPT4All</source>
<translation type="unfinished">GPT4All</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="93"/>
<source>HuggingFace</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Discover and download models by keyword search...</source>
<translation> ...</translation>
<translation type="vanished"> ...</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="95"/>
<source>Text field for discovering and filtering downloadable models</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="171"/>
<source>Initiate model discovery and filtering</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="172"/>
<source>Triggers discovery and filtering of models</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="191"/>
<source>Default</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="192"/>
<source>Likes</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="193"/>
<source>Downloads</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="194"/>
<source>Recent</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="216"/>
<source>Asc</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="217"/>
<source>Desc</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="252"/>
<source>None</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="101"/>
<source>Searching · %1</source>
<translation> · %1</translation>
<translation type="vanished"> · %1</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="202"/>
<source>Sort by: %1</source>
<translation>: %1</translation>
<translation type="vanished">: %1</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="230"/>
<source>Sort dir: %1</source>
<translation>: %1</translation>
<translation type="vanished">: %1</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="274"/>
<source>Limit: %1</source>
<translation>: %1</translation>
<translation type="vanished">: %1</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="307"/>
<source>Network error: could not retrieve %1</source>
<translation> %1</translation>
<translation type="vanished"> %1</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="317"/>
<location filename="../qml/AddModelView.qml" line="605"/>
<source>Busy indicator</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="318"/>
<source>Displayed when the models request is ongoing</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="358"/>
<source>Model file</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="359"/>
<source>Model file to be downloaded</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="382"/>
<source>Description</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="383"/>
<source>File description</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="416"/>
<source>Cancel</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="416"/>
<source>Resume</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="416"/>
<source>Download</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="424"/>
<source>Stop/restart/start the download</source>
<translation>//</translation>
<translation type="vanished">//</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="436"/>
<source>Remove</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="443"/>
<source>Remove model from filesystem</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="457"/>
<location filename="../qml/AddModelView.qml" line="491"/>
<source>Install</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="492"/>
<source>Install online model</source>
<translation>线</translation>
<translation type="vanished">线</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="502"/>
<source>&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Error&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</source>
<translation>&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</translation>
<translation type="vanished">&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="521"/>
<source>&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;WARNING: Not recommended for your hardware. Model requires more memory (%1 GB) than your system has available (%2).&lt;/strong&gt;&lt;/font&gt;</source>
<translation>&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;警告: 你的设备硬件不推荐 (%1 GB) (%2).&lt;/strong&gt;&lt;/font&gt;</translation>
<translation type="vanished">&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;警告: 你的设备硬件不推荐 (%1 GB) (%2).&lt;/strong&gt;&lt;/font&gt;</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="619"/>
<source>ERROR: $API_KEY is empty.</source>
<translation>$API_KEY </translation>
<translation type="vanished">$API_KEY </translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="640"/>
<source>ERROR: $BASE_URL is empty.</source>
<translation>$BASE_URL </translation>
<translation type="vanished">$BASE_URL </translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="646"/>
<source>enter $BASE_URL</source>
<translation> $BASE_URL</translation>
<translation type="vanished"> $BASE_URL</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="661"/>
<source>ERROR: $MODEL_NAME is empty.</source>
<translation>$MODEL_NAME为空</translation>
<translation type="vanished">$MODEL_NAME为空</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="667"/>
<source>enter $MODEL_NAME</source>
<translation>$MODEL_NAME</translation>
<translation type="vanished">$MODEL_NAME</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="716"/>
<source>%1 GB</source>
<translation>%1 GB</translation>
<translation type="vanished">%1 GB</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="716"/>
<location filename="../qml/AddModelView.qml" line="738"/>
<source>?</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="508"/>
<source>Describes an error that occurred when downloading</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="527"/>
<source>Error for incompatible hardware</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="565"/>
<source>Download progressBar</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="566"/>
<source>Shows the progress made in the download</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="576"/>
<source>Download speed</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="577"/>
<source>Download speed in bytes/kilobytes/megabytes per second</source>
<translation> b/kb/mb /s</translation>
<translation type="vanished"> b/kb/mb /s</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="594"/>
<source>Calculating...</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="598"/>
<location filename="../qml/AddModelView.qml" line="628"/>
<location filename="../qml/AddModelView.qml" line="649"/>
<location filename="../qml/AddModelView.qml" line="670"/>
<source>Whether the file hash is being calculated</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="606"/>
<source>Displayed when the file hash is being calculated</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="625"/>
<source>enter $API_KEY</source>
<translation>$API_KEY</translation>
<translation type="vanished">$API_KEY</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="689"/>
<source>File size</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="711"/>
<source>RAM required</source>
<translation>RAM </translation>
<translation type="vanished">RAM </translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="733"/>
<source>Parameters</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="755"/>
<source>Quant</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="777"/>
<source>Type</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
</context>
<context>
@ -1698,78 +2109,78 @@ model to get started</source>
<context>
<name>ModelList</name>
<message>
<location filename="../src/modellist.cpp" line="1309"/>
<location filename="../src/modellist.cpp" line="1360"/>
<location filename="../src/modellist.cpp" line="1318"/>
<location filename="../src/modellist.cpp" line="1369"/>
<source>cannot open &quot;%1&quot;: %2</source>
<translation>%1%2</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1321"/>
<location filename="../src/modellist.cpp" line="1330"/>
<source>cannot create &quot;%1&quot;: %2</source>
<translation>%1%2</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1371"/>
<location filename="../src/modellist.cpp" line="1380"/>
<source>%1 (%2)</source>
<translation>%1 (%2)</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1372"/>
<location filename="../src/modellist.cpp" line="1381"/>
<source>&lt;strong&gt;OpenAI-Compatible API Model&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;API Key: %1&lt;/li&gt;&lt;li&gt;Base URL: %2&lt;/li&gt;&lt;li&gt;Model Name: %3&lt;/li&gt;&lt;/ul&gt;</source>
<translation>&lt;strong&gt; OpenAI API &lt;/strong&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;API %1&lt;/li&gt;&lt;li&gt; URL%2&lt;/li&gt;&lt;li&gt;%3&lt;/li&gt;&lt;/ul&gt;</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1672"/>
<location filename="../src/modellist.cpp" line="1681"/>
<source>&lt;ul&gt;&lt;li&gt;Requires personal OpenAI API key.&lt;/li&gt;&lt;li&gt;WARNING: Will send your chats to OpenAI!&lt;/li&gt;&lt;li&gt;Your API key will be stored on disk&lt;/li&gt;&lt;li&gt;Will only be used to communicate with OpenAI&lt;/li&gt;&lt;li&gt;You can apply for an API key &lt;a href=&quot;https://platform.openai.com/account/api-keys&quot;&gt;here.&lt;/a&gt;&lt;/li&gt;</source>
<translation>&lt;ul&gt;&lt;li&gt; OpenAI API &lt;/li&gt;&lt;li&gt; OpenAI&lt;/li&gt;&lt;li&gt; API &lt;/li&gt;&lt;li&gt; OpenAI &lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://platform.openai.com/account/api-keys&quot;&gt; API &lt;/a&gt;&lt;/li&gt;</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1691"/>
<location filename="../src/modellist.cpp" line="1700"/>
<source>&lt;strong&gt;OpenAI&apos;s ChatGPT model GPT-3.5 Turbo&lt;/strong&gt;&lt;br&gt; %1</source>
<translation>&lt;strong&gt;OpenAI&apos;s ChatGPT model GPT-3.5 Turbo&lt;/strong&gt;&lt;br&gt; %1</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1720"/>
<location filename="../src/modellist.cpp" line="1729"/>
<source>&lt;strong&gt;OpenAI&apos;s ChatGPT model GPT-4&lt;/strong&gt;&lt;br&gt; %1 %2</source>
<translation>&lt;strong&gt;OpenAI&apos;s ChatGPT model GPT-4&lt;/strong&gt;&lt;br&gt; %1 %2</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1752"/>
<location filename="../src/modellist.cpp" line="1761"/>
<source>&lt;strong&gt;Mistral Tiny model&lt;/strong&gt;&lt;br&gt; %1</source>
<translation>&lt;strong&gt;Mistral Tiny model&lt;/strong&gt;&lt;br&gt; %1</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1778"/>
<location filename="../src/modellist.cpp" line="1787"/>
<source>&lt;strong&gt;Mistral Small model&lt;/strong&gt;&lt;br&gt; %1</source>
<translation>&lt;strong&gt;Mistral Small model&lt;/strong&gt;&lt;br&gt; %1</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1805"/>
<location filename="../src/modellist.cpp" line="1814"/>
<source>&lt;strong&gt;Mistral Medium model&lt;/strong&gt;&lt;br&gt; %1</source>
<translation>&lt;strong&gt;Mistral Medium model&lt;/strong&gt;&lt;br&gt; %1</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1818"/>
<location filename="../src/modellist.cpp" line="1827"/>
<source>&lt;ul&gt;&lt;li&gt;Requires personal API key and the API base URL.&lt;/li&gt;&lt;li&gt;WARNING: Will send your chats to the OpenAI-compatible API Server you specified!&lt;/li&gt;&lt;li&gt;Your API key will be stored on disk&lt;/li&gt;&lt;li&gt;Will only be used to communicate with the OpenAI-compatible API Server&lt;/li&gt;</source>
<translation>&lt;ul&gt;&lt;li&gt; API API URL&lt;/li&gt;&lt;li&gt; OpenAI API &lt;/li&gt;&lt;li&gt; API &lt;/li&gt;&lt;li&gt; OpenAI API &lt;/li&gt;</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1835"/>
<location filename="../src/modellist.cpp" line="1844"/>
<source>&lt;strong&gt;Connect to OpenAI-compatible API server&lt;/strong&gt;&lt;br&gt; %1</source>
<translation>&lt;strong&gt; OpenAI API &lt;/strong&gt;&lt;br&gt; %1</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1705"/>
<location filename="../src/modellist.cpp" line="1714"/>
<source>&lt;br&gt;&lt;br&gt;&lt;i&gt;* Even if you pay OpenAI for ChatGPT-4 this does not guarantee API key access. Contact OpenAI for more info.</source>
<translation>&lt;br&gt;&lt;br&gt;&lt;i&gt;* 使ChatGPT-4OpenAI付款API密钥访问OpenAI获取更多信息</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1733"/>
<location filename="../src/modellist.cpp" line="1742"/>
<source>&lt;ul&gt;&lt;li&gt;Requires personal Mistral API key.&lt;/li&gt;&lt;li&gt;WARNING: Will send your chats to Mistral!&lt;/li&gt;&lt;li&gt;Your API key will be stored on disk&lt;/li&gt;&lt;li&gt;Will only be used to communicate with Mistral&lt;/li&gt;&lt;li&gt;You can apply for an API key &lt;a href=&quot;https://console.mistral.ai/user/api-keys&quot;&gt;here&lt;/a&gt;.&lt;/li&gt;</source>
<translation>&lt;ul&gt;&lt;li&gt;Requires personal Mistral API key.&lt;/li&gt;&lt;li&gt;WARNING: Will send your chats to Mistral!&lt;/li&gt;&lt;li&gt;Your API key will be stored on disk&lt;/li&gt;&lt;li&gt;Will only be used to communicate with Mistral&lt;/li&gt;&lt;li&gt;You can apply for an API key &lt;a href=&quot;https://console.mistral.ai/user/api-keys&quot;&gt;here&lt;/a&gt;.&lt;/li&gt;</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="2259"/>
<location filename="../src/modellist.cpp" line="2268"/>
<source>&lt;strong&gt;Created by %1.&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;Published on %2.&lt;li&gt;This model has %3 likes.&lt;li&gt;This model has %4 downloads.&lt;li&gt;More info can be found &lt;a href=&quot;https://huggingface.co/%5&quot;&gt;here.&lt;/a&gt;&lt;/ul&gt;</source>
<translation>&lt;strong&gt;Created by %1.&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;Published on %2.&lt;li&gt;This model has %3 likes.&lt;li&gt;This model has %4 downloads.&lt;li&gt;More info can be found &lt;a href=&quot;https://huggingface.co/%5&quot;&gt;here.&lt;/a&gt;&lt;/ul&gt;</translation>
</message>
@ -2821,12 +3232,12 @@ model release that uses your data!</source>
<translation></translation>
</message>
<message>
<location filename="../main.qml" line="687"/>
<location filename="../main.qml" line="684"/>
<source>Installed models</source>
<translation></translation>
</message>
<message>
<location filename="../main.qml" line="688"/>
<location filename="../main.qml" line="685"/>
<source>View of installed models</source>
<translation></translation>
</message>

View File

@ -59,6 +59,467 @@
<translation></translation>
</message>
</context>
<context>
<name>AddGPT4AllModelView</name>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="31"/>
<source>These models have been specifically configured for use in GPT4All. The first few models on the list are known to work the best, but you should only attempt to use models that will fit in your available memory.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="45"/>
<source>Network error: could not retrieve %1</source>
<translation type="unfinished"> %1</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="55"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="343"/>
<source>Busy indicator</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="56"/>
<source>Displayed when the models request is ongoing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="96"/>
<source>Model file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="97"/>
<source>Model file to be downloaded</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="120"/>
<source>Description</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="121"/>
<source>File description</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="154"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="154"/>
<source>Resume</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="154"/>
<source>Download</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="162"/>
<source>Stop/restart/start the download</source>
<translation type="unfinished">//</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="174"/>
<source>Remove</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="181"/>
<source>Remove model from filesystem</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="195"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="229"/>
<source>Install</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="230"/>
<source>Install online model</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="240"/>
<source>&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Error&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</source>
<translation type="unfinished">&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="246"/>
<source>Describes an error that occurred when downloading</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="259"/>
<source>&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;WARNING: Not recommended for your hardware. Model requires more memory (%1 GB) than your system has available (%2).&lt;/strong&gt;&lt;/font&gt;</source>
<translation type="unfinished">&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;%1 GB%2&lt;/strong&gt;&lt;/font&gt;</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="265"/>
<source>Error for incompatible hardware</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="303"/>
<source>Download progressBar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="304"/>
<source>Shows the progress made in the download</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="314"/>
<source>Download speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="315"/>
<source>Download speed in bytes/kilobytes/megabytes per second</source>
<translation type="unfinished"> bytes/kilobytes/megabytes</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="332"/>
<source>Calculating...</source>
<translation type="unfinished">......</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="336"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="366"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="387"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="408"/>
<source>Whether the file hash is being calculated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="344"/>
<source>Displayed when the file hash is being calculated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="357"/>
<source>ERROR: $API_KEY is empty.</source>
<translation type="unfinished">$API_KEY </translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="363"/>
<source>enter $API_KEY</source>
<translation type="unfinished"> $API_KEY</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="378"/>
<source>ERROR: $BASE_URL is empty.</source>
<translation type="unfinished">$BASE_URL </translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="384"/>
<source>enter $BASE_URL</source>
<translation type="unfinished"> $BASE_URL</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="399"/>
<source>ERROR: $MODEL_NAME is empty.</source>
<translation type="unfinished">$MODEL_NAME </translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="405"/>
<source>enter $MODEL_NAME</source>
<translation type="unfinished"> $MODEL_NAME</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="427"/>
<source>File size</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="449"/>
<source>RAM required</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="454"/>
<source>%1 GB</source>
<translation type="unfinished">%1 GB</translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="454"/>
<location filename="../qml/AddGPT4AllModelView.qml" line="476"/>
<source>?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="471"/>
<source>Parameters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="493"/>
<source>Quant</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddGPT4AllModelView.qml" line="515"/>
<source>Type</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>AddHFModelView</name>
<message>
<location filename="../qml/AddHFModelView.qml" line="32"/>
<source>Use the search to find and download models from HuggingFace. There is NO GUARANTEE that these will work. Many will require additional configuration before they can be used.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="52"/>
<source>Discover and download models by keyword search...</source>
<translation type="unfinished">......</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="55"/>
<source>Text field for discovering and filtering downloadable models</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="61"/>
<source>Searching · %1</source>
<translation type="unfinished"> · %1</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="131"/>
<source>Initiate model discovery and filtering</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="132"/>
<source>Triggers discovery and filtering of models</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="151"/>
<source>Default</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="152"/>
<source>Likes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="153"/>
<source>Downloads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="154"/>
<source>Recent</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="162"/>
<source>Sort by: %1</source>
<translation type="unfinished">%1</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="176"/>
<source>Asc</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="177"/>
<source>Desc</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="190"/>
<source>Sort dir: %1</source>
<translation type="unfinished">%1</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="212"/>
<source>None</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="234"/>
<source>Limit: %1</source>
<translation type="unfinished">%1</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="297"/>
<source>Model file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="298"/>
<source>Model file to be downloaded</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="321"/>
<source>Description</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="322"/>
<source>File description</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="355"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="355"/>
<source>Resume</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="355"/>
<source>Download</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="363"/>
<source>Stop/restart/start the download</source>
<translation type="unfinished">//</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="375"/>
<source>Remove</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="382"/>
<source>Remove model from filesystem</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="396"/>
<location filename="../qml/AddHFModelView.qml" line="430"/>
<source>Install</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="431"/>
<source>Install online model</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="441"/>
<source>&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Error&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</source>
<translation type="unfinished">&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="447"/>
<source>Describes an error that occurred when downloading</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="460"/>
<source>&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;WARNING: Not recommended for your hardware. Model requires more memory (%1 GB) than your system has available (%2).&lt;/strong&gt;&lt;/font&gt;</source>
<translation type="unfinished">&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;%1 GB%2&lt;/strong&gt;&lt;/font&gt;</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="466"/>
<source>Error for incompatible hardware</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="504"/>
<source>Download progressBar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="505"/>
<source>Shows the progress made in the download</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="515"/>
<source>Download speed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="516"/>
<source>Download speed in bytes/kilobytes/megabytes per second</source>
<translation type="unfinished"> bytes/kilobytes/megabytes</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="533"/>
<source>Calculating...</source>
<translation type="unfinished">......</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="537"/>
<location filename="../qml/AddHFModelView.qml" line="567"/>
<location filename="../qml/AddHFModelView.qml" line="588"/>
<location filename="../qml/AddHFModelView.qml" line="609"/>
<source>Whether the file hash is being calculated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="544"/>
<source>Busy indicator</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="545"/>
<source>Displayed when the file hash is being calculated</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="558"/>
<source>ERROR: $API_KEY is empty.</source>
<translation type="unfinished">$API_KEY </translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="564"/>
<source>enter $API_KEY</source>
<translation type="unfinished"> $API_KEY</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="579"/>
<source>ERROR: $BASE_URL is empty.</source>
<translation type="unfinished">$BASE_URL </translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="585"/>
<source>enter $BASE_URL</source>
<translation type="unfinished"> $BASE_URL</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="600"/>
<source>ERROR: $MODEL_NAME is empty.</source>
<translation type="unfinished">$MODEL_NAME </translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="606"/>
<source>enter $MODEL_NAME</source>
<translation type="unfinished"> $MODEL_NAME</translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="628"/>
<source>File size</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="650"/>
<source>Quant</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../qml/AddHFModelView.qml" line="672"/>
<source>Type</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>AddModelView</name>
<message>
@ -72,281 +533,231 @@
<translation></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="92"/>
<location filename="../qml/AddModelView.qml" line="86"/>
<source>GPT4All</source>
<translation type="unfinished">GPT4All</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="93"/>
<source>HuggingFace</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Discover and download models by keyword search...</source>
<translation>......</translation>
<translation type="vanished">......</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="95"/>
<source>Text field for discovering and filtering downloadable models</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="101"/>
<source>Searching · %1</source>
<translation> · %1</translation>
<translation type="vanished"> · %1</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="171"/>
<source>Initiate model discovery and filtering</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="172"/>
<source>Triggers discovery and filtering of models</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="191"/>
<source>Default</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="192"/>
<source>Likes</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="193"/>
<source>Downloads</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="194"/>
<source>Recent</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="202"/>
<source>Sort by: %1</source>
<translation>%1</translation>
<translation type="vanished">%1</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="216"/>
<source>Asc</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="217"/>
<source>Desc</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="230"/>
<source>Sort dir: %1</source>
<translation>%1</translation>
<translation type="vanished">%1</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="252"/>
<source>None</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="274"/>
<source>Limit: %1</source>
<translation>%1</translation>
<translation type="vanished">%1</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="307"/>
<source>Network error: could not retrieve %1</source>
<translation> %1</translation>
<translation type="vanished"> %1</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="502"/>
<source>&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;Error&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</source>
<translation>&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</translation>
<translation type="vanished">&lt;strong&gt;&lt;font size=&quot;1&quot;&gt;&lt;a href=&quot;#error&quot;&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="521"/>
<source>&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;WARNING: Not recommended for your hardware. Model requires more memory (%1 GB) than your system has available (%2).&lt;/strong&gt;&lt;/font&gt;</source>
<translation>&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;%1 GB%2&lt;/strong&gt;&lt;/font&gt;</translation>
<translation type="vanished">&lt;strong&gt;&lt;font size=&quot;2&quot;&gt;%1 GB%2&lt;/strong&gt;&lt;/font&gt;</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="716"/>
<source>%1 GB</source>
<translation>%1 GB</translation>
<translation type="vanished">%1 GB</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="716"/>
<location filename="../qml/AddModelView.qml" line="738"/>
<source>?</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="317"/>
<location filename="../qml/AddModelView.qml" line="605"/>
<source>Busy indicator</source>
<translatorcomment> https://terms.naer.edu.tw</translatorcomment>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="318"/>
<source>Displayed when the models request is ongoing</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="358"/>
<source>Model file</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="359"/>
<source>Model file to be downloaded</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="382"/>
<source>Description</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="383"/>
<source>File description</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="416"/>
<source>Cancel</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="416"/>
<source>Resume</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="416"/>
<source>Download</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="424"/>
<source>Stop/restart/start the download</source>
<translation>//</translation>
<translation type="vanished">//</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="436"/>
<source>Remove</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="443"/>
<source>Remove model from filesystem</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="457"/>
<location filename="../qml/AddModelView.qml" line="491"/>
<source>Install</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="492"/>
<source>Install online model</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="508"/>
<source>Describes an error that occurred when downloading</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="527"/>
<source>Error for incompatible hardware</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="565"/>
<source>Download progressBar</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="566"/>
<source>Shows the progress made in the download</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="576"/>
<source>Download speed</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="577"/>
<source>Download speed in bytes/kilobytes/megabytes per second</source>
<translation> bytes/kilobytes/megabytes</translation>
<translation type="vanished"> bytes/kilobytes/megabytes</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="594"/>
<source>Calculating...</source>
<translation>......</translation>
<translation type="vanished">......</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="598"/>
<location filename="../qml/AddModelView.qml" line="628"/>
<location filename="../qml/AddModelView.qml" line="649"/>
<location filename="../qml/AddModelView.qml" line="670"/>
<source>Whether the file hash is being calculated</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="606"/>
<source>Displayed when the file hash is being calculated</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="619"/>
<source>ERROR: $API_KEY is empty.</source>
<translation>$API_KEY </translation>
<translation type="vanished">$API_KEY </translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="625"/>
<source>enter $API_KEY</source>
<translation> $API_KEY</translation>
<translation type="vanished"> $API_KEY</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="640"/>
<source>ERROR: $BASE_URL is empty.</source>
<translation>$BASE_URL </translation>
<translation type="vanished">$BASE_URL </translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="646"/>
<source>enter $BASE_URL</source>
<translation> $BASE_URL</translation>
<translation type="vanished"> $BASE_URL</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="661"/>
<source>ERROR: $MODEL_NAME is empty.</source>
<translation>$MODEL_NAME </translation>
<translation type="vanished">$MODEL_NAME </translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="667"/>
<source>enter $MODEL_NAME</source>
<translation> $MODEL_NAME</translation>
<translation type="vanished"> $MODEL_NAME</translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="689"/>
<source>File size</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="711"/>
<source>RAM required</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="733"/>
<source>Parameters</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="755"/>
<source>Quant</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../qml/AddModelView.qml" line="777"/>
<source>Type</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
</context>
<context>
@ -1686,78 +2097,78 @@ model to get started</source>
<context>
<name>ModelList</name>
<message>
<location filename="../src/modellist.cpp" line="1309"/>
<location filename="../src/modellist.cpp" line="1360"/>
<location filename="../src/modellist.cpp" line="1318"/>
<location filename="../src/modellist.cpp" line="1369"/>
<source>cannot open &quot;%1&quot;: %2</source>
<translation>%1%2</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1321"/>
<location filename="../src/modellist.cpp" line="1330"/>
<source>cannot create &quot;%1&quot;: %2</source>
<translation>%1%2</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1371"/>
<location filename="../src/modellist.cpp" line="1380"/>
<source>%1 (%2)</source>
<translation>%1%2</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1372"/>
<location filename="../src/modellist.cpp" line="1381"/>
<source>&lt;strong&gt;OpenAI-Compatible API Model&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;API Key: %1&lt;/li&gt;&lt;li&gt;Base URL: %2&lt;/li&gt;&lt;li&gt;Model Name: %3&lt;/li&gt;&lt;/ul&gt;</source>
<translation>&lt;strong&gt;OpenAI API &lt;/strong&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;API %1&lt;/li&gt;&lt;li&gt; URL%2&lt;/li&gt;&lt;li&gt;%3&lt;/li&gt;&lt;/ul&gt;</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1672"/>
<location filename="../src/modellist.cpp" line="1681"/>
<source>&lt;ul&gt;&lt;li&gt;Requires personal OpenAI API key.&lt;/li&gt;&lt;li&gt;WARNING: Will send your chats to OpenAI!&lt;/li&gt;&lt;li&gt;Your API key will be stored on disk&lt;/li&gt;&lt;li&gt;Will only be used to communicate with OpenAI&lt;/li&gt;&lt;li&gt;You can apply for an API key &lt;a href=&quot;https://platform.openai.com/account/api-keys&quot;&gt;here.&lt;/a&gt;&lt;/li&gt;</source>
<translation>&lt;ul&gt;&lt;li&gt; OpenAI API &lt;/li&gt;&lt;li&gt; OpenAI&lt;/li&gt;&lt;li&gt; API &lt;/li&gt;&lt;li&gt; OpenAI &lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://platform.openai.com/account/api-keys&quot;&gt;&lt;/a&gt; API &lt;/li&gt;</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1691"/>
<location filename="../src/modellist.cpp" line="1700"/>
<source>&lt;strong&gt;OpenAI&apos;s ChatGPT model GPT-3.5 Turbo&lt;/strong&gt;&lt;br&gt; %1</source>
<translation>&lt;strong&gt;OpenAI ChatGPT GPT-3.5 Turbo&lt;/strong&gt;&lt;br&gt; %1</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1705"/>
<location filename="../src/modellist.cpp" line="1714"/>
<source>&lt;br&gt;&lt;br&gt;&lt;i&gt;* Even if you pay OpenAI for ChatGPT-4 this does not guarantee API key access. Contact OpenAI for more info.</source>
<translation>&lt;br&gt;&lt;br&gt;&lt;i&gt;* 使 OpenAI ChatGPT GPT-4 使 API 使 OpenAI </translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1720"/>
<location filename="../src/modellist.cpp" line="1729"/>
<source>&lt;strong&gt;OpenAI&apos;s ChatGPT model GPT-4&lt;/strong&gt;&lt;br&gt; %1 %2</source>
<translation>&lt;strong&gt;OpenAI ChatGPT GPT-4&lt;/strong&gt;&lt;br&gt; %1 %2</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1733"/>
<location filename="../src/modellist.cpp" line="1742"/>
<source>&lt;ul&gt;&lt;li&gt;Requires personal Mistral API key.&lt;/li&gt;&lt;li&gt;WARNING: Will send your chats to Mistral!&lt;/li&gt;&lt;li&gt;Your API key will be stored on disk&lt;/li&gt;&lt;li&gt;Will only be used to communicate with Mistral&lt;/li&gt;&lt;li&gt;You can apply for an API key &lt;a href=&quot;https://console.mistral.ai/user/api-keys&quot;&gt;here&lt;/a&gt;.&lt;/li&gt;</source>
<translation>&lt;ul&gt;&lt;li&gt; Mistral API &lt;/li&gt;&lt;li&gt; Mistral&lt;/li&gt;&lt;li&gt; API &lt;/li&gt;&lt;li&gt; Mistral &lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://console.mistral.ai/user/api-keys&quot;&gt;&lt;/a&gt; API &lt;/li&gt;</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1752"/>
<location filename="../src/modellist.cpp" line="1761"/>
<source>&lt;strong&gt;Mistral Tiny model&lt;/strong&gt;&lt;br&gt; %1</source>
<translation>&lt;strong&gt;Mistral &lt;/strong&gt;&lt;br&gt; %1</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1778"/>
<location filename="../src/modellist.cpp" line="1787"/>
<source>&lt;strong&gt;Mistral Small model&lt;/strong&gt;&lt;br&gt; %1</source>
<translation>&lt;strong&gt;Mistral &lt;/strong&gt;&lt;br&gt; %1</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1805"/>
<location filename="../src/modellist.cpp" line="1814"/>
<source>&lt;strong&gt;Mistral Medium model&lt;/strong&gt;&lt;br&gt; %1</source>
<translation>&lt;strong&gt;Mistral &lt;/strong&gt;&lt;br&gt; %1</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1818"/>
<location filename="../src/modellist.cpp" line="1827"/>
<source>&lt;ul&gt;&lt;li&gt;Requires personal API key and the API base URL.&lt;/li&gt;&lt;li&gt;WARNING: Will send your chats to the OpenAI-compatible API Server you specified!&lt;/li&gt;&lt;li&gt;Your API key will be stored on disk&lt;/li&gt;&lt;li&gt;Will only be used to communicate with the OpenAI-compatible API Server&lt;/li&gt;</source>
<translation>&lt;ul&gt;&lt;li&gt; API API URLBase URL&lt;/li&gt;&lt;li&gt; OpenAI API &lt;/li&gt;&lt;li&gt; API &lt;/li&gt;&lt;li&gt; OpenAI API &lt;/li&gt;</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="1835"/>
<location filename="../src/modellist.cpp" line="1844"/>
<source>&lt;strong&gt;Connect to OpenAI-compatible API server&lt;/strong&gt;&lt;br&gt; %1</source>
<translation>&lt;strong&gt; OpenAI API &lt;/strong&gt;&lt;br&gt; %1</translation>
</message>
<message>
<location filename="../src/modellist.cpp" line="2259"/>
<location filename="../src/modellist.cpp" line="2268"/>
<source>&lt;strong&gt;Created by %1.&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;Published on %2.&lt;li&gt;This model has %3 likes.&lt;li&gt;This model has %4 downloads.&lt;li&gt;More info can be found &lt;a href=&quot;https://huggingface.co/%5&quot;&gt;here.&lt;/a&gt;&lt;/ul&gt;</source>
<translation>&lt;strong&gt;%1&lt;/strong&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;發佈日期:%2&lt;li&gt;累積讚數:%3 個讚&lt;li&gt;下載次數:%4 次&lt;li&gt;更多資訊請查閱&lt;a href=&quot;https://huggingface.co/%5&quot;&gt;&lt;/a&gt;&lt;/ul&gt;</translation>
</message>
@ -2812,12 +3223,12 @@ Nomic AI 將保留附加在您的資料上的所有署名訊息,並且您將
<translation></translation>
</message>
<message>
<location filename="../main.qml" line="687"/>
<location filename="../main.qml" line="684"/>
<source>Installed models</source>
<translation></translation>
</message>
<message>
<location filename="../main.qml" line="688"/>
<location filename="../main.qml" line="685"/>
<source>View of installed models</source>
<translation></translation>
</message>