Tue, 03 Sep 2024 17:06:05 +0200
Added some menu entries to access various 'ollama' URLs.
--- a/OllamaInterface/ConfigurationPage/OllamaPage.py Tue Sep 03 15:51:28 2024 +0200 +++ b/OllamaInterface/ConfigurationPage/OllamaPage.py Tue Sep 03 17:06:05 2024 +0200 @@ -46,6 +46,8 @@ self.modelLibraryUrlEdit.setText( self.__plugin.getPreferences("OllamaModelLibraryUrl") ) + self.downloadUrlEdit.setText(self.__plugin.getPreferences("OllamaDownloadUrl")) + self.blogUrlEdit.setText(self.__plugin.getPreferences("OllamaBlogUrl")) self.heartbeatSpinBox.setValue( self.__plugin.getPreferences("OllamaHeartbeatInterval") @@ -71,6 +73,8 @@ self.__plugin.setPreferences( "OllamaModelLibraryUrl", self.modelLibraryUrlEdit.text() ) + self.__plugin.setPreferences("OllamaDownloadUrl", self.downloadUrlEdit.text()) + self.__plugin.setPreferences("OllamaBlogUrl", self.blogUrlEdit.text()) self.__plugin.setPreferences( "OllamaHeartbeatInterval", self.heartbeatSpinBox.value()
--- a/OllamaInterface/ConfigurationPage/OllamaPage.ui Tue Sep 03 15:51:28 2024 +0200 +++ b/OllamaInterface/ConfigurationPage/OllamaPage.ui Tue Sep 03 17:06:05 2024 +0200 @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>557</width> - <height>464</height> + <height>523</height> </rect> </property> <layout class="QVBoxLayout" name="verticalLayout"> @@ -178,20 +178,54 @@ <item> <widget class="QGroupBox" name="groupBox_3"> <property name="title"> - <string>Model Library</string> + <string>URLs</string> </property> - <layout class="QHBoxLayout" name="horizontalLayout_3"> - <item> + <layout class="QGridLayout" name="gridLayout_2"> + <item row="0" column="0"> <widget class="QLabel" name="label_5"> <property name="text"> - <string>URL:</string> + <string>Model Library:</string> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QLineEdit" name="modelLibraryUrlEdit"> + <property name="toolTip"> + <string>Enter the URL of the 'ollama' model library. Leave empty to use the default URL.</string> + </property> + <property name="clearButtonEnabled"> + <bool>true</bool> </property> </widget> </item> - <item> - <widget class="QLineEdit" name="modelLibraryUrlEdit"> + <item row="1" column="0"> + <widget class="QLabel" name="label_7"> + <property name="text"> + <string>Download:</string> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QLineEdit" name="downloadUrlEdit"> <property name="toolTip"> - <string>Enter the URL of the 'ollama' model library.</string> + <string>Enter the URL of the 'ollama' download page. Leave empty to use the default URL.</string> + </property> + <property name="clearButtonEnabled"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="label_8"> + <property name="text"> + <string>Blog:</string> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="QLineEdit" name="blogUrlEdit"> + <property name="toolTip"> + <string>Enter the URL of the 'ollama' blog. Leave empty to use the default URL.</string> </property> <property name="clearButtonEnabled"> <bool>true</bool> @@ -272,6 +306,8 @@ <tabstop>serverPortSpinBox</tabstop> <tabstop>localServerPortSpinBox</tabstop> <tabstop>modelLibraryUrlEdit</tabstop> + <tabstop>downloadUrlEdit</tabstop> + <tabstop>blogUrlEdit</tabstop> <tabstop>heartbeatSpinBox</tabstop> <tabstop>streamingChatCheckBox</tabstop> </tabstops>
--- a/OllamaInterface/ConfigurationPage/Ui_OllamaPage.py Tue Sep 03 15:51:28 2024 +0200 +++ b/OllamaInterface/ConfigurationPage/Ui_OllamaPage.py Tue Sep 03 17:06:05 2024 +0200 @@ -12,7 +12,7 @@ class Ui_OllamaPage(object): def setupUi(self, OllamaPage): OllamaPage.setObjectName("OllamaPage") - OllamaPage.resize(557, 464) + OllamaPage.resize(557, 523) self.verticalLayout = QtWidgets.QVBoxLayout(OllamaPage) self.verticalLayout.setObjectName("verticalLayout") self.headerLabel = QtWidgets.QLabel(parent=OllamaPage) @@ -77,15 +77,29 @@ self.verticalLayout.addWidget(self.groupBox_2) self.groupBox_3 = QtWidgets.QGroupBox(parent=OllamaPage) self.groupBox_3.setObjectName("groupBox_3") - self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.groupBox_3) - self.horizontalLayout_3.setObjectName("horizontalLayout_3") + self.gridLayout_2 = QtWidgets.QGridLayout(self.groupBox_3) + self.gridLayout_2.setObjectName("gridLayout_2") self.label_5 = QtWidgets.QLabel(parent=self.groupBox_3) self.label_5.setObjectName("label_5") - self.horizontalLayout_3.addWidget(self.label_5) + self.gridLayout_2.addWidget(self.label_5, 0, 0, 1, 1) self.modelLibraryUrlEdit = QtWidgets.QLineEdit(parent=self.groupBox_3) self.modelLibraryUrlEdit.setClearButtonEnabled(True) self.modelLibraryUrlEdit.setObjectName("modelLibraryUrlEdit") - self.horizontalLayout_3.addWidget(self.modelLibraryUrlEdit) + self.gridLayout_2.addWidget(self.modelLibraryUrlEdit, 0, 1, 1, 1) + self.label_7 = QtWidgets.QLabel(parent=self.groupBox_3) + self.label_7.setObjectName("label_7") + self.gridLayout_2.addWidget(self.label_7, 1, 0, 1, 1) + self.downloadUrlEdit = QtWidgets.QLineEdit(parent=self.groupBox_3) + self.downloadUrlEdit.setClearButtonEnabled(True) + self.downloadUrlEdit.setObjectName("downloadUrlEdit") + self.gridLayout_2.addWidget(self.downloadUrlEdit, 1, 1, 1, 1) + self.label_8 = QtWidgets.QLabel(parent=self.groupBox_3) + self.label_8.setObjectName("label_8") + self.gridLayout_2.addWidget(self.label_8, 2, 0, 1, 1) + self.blogUrlEdit = QtWidgets.QLineEdit(parent=self.groupBox_3) + self.blogUrlEdit.setClearButtonEnabled(True) + self.blogUrlEdit.setObjectName("blogUrlEdit") + self.gridLayout_2.addWidget(self.blogUrlEdit, 2, 1, 1, 1) self.verticalLayout.addWidget(self.groupBox_3) self.horizontalLayout = QtWidgets.QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") @@ -112,7 +126,9 @@ OllamaPage.setTabOrder(self.serverHostEdit, self.serverPortSpinBox) OllamaPage.setTabOrder(self.serverPortSpinBox, self.localServerPortSpinBox) OllamaPage.setTabOrder(self.localServerPortSpinBox, self.modelLibraryUrlEdit) - OllamaPage.setTabOrder(self.modelLibraryUrlEdit, self.heartbeatSpinBox) + OllamaPage.setTabOrder(self.modelLibraryUrlEdit, self.downloadUrlEdit) + OllamaPage.setTabOrder(self.downloadUrlEdit, self.blogUrlEdit) + OllamaPage.setTabOrder(self.blogUrlEdit, self.heartbeatSpinBox) OllamaPage.setTabOrder(self.heartbeatSpinBox, self.streamingChatCheckBox) def retranslateUi(self, OllamaPage): @@ -128,9 +144,13 @@ self.groupBox_2.setTitle(_translate("OllamaPage", "Local Server")) self.label_4.setText(_translate("OllamaPage", "Port:")) self.localServerPortSpinBox.setToolTip(_translate("OllamaPage", "Enter the port of the local \'ollama\' server.")) - self.groupBox_3.setTitle(_translate("OllamaPage", "Model Library")) - self.label_5.setText(_translate("OllamaPage", "URL:")) - self.modelLibraryUrlEdit.setToolTip(_translate("OllamaPage", "Enter the URL of the \'ollama\' model library.")) + self.groupBox_3.setTitle(_translate("OllamaPage", "URLs")) + self.label_5.setText(_translate("OllamaPage", "Model Library:")) + self.modelLibraryUrlEdit.setToolTip(_translate("OllamaPage", "Enter the URL of the \'ollama\' model library. Leave empty to use the default URL.")) + self.label_7.setText(_translate("OllamaPage", "Download:")) + self.downloadUrlEdit.setToolTip(_translate("OllamaPage", "Enter the URL of the \'ollama\' download page. Leave empty to use the default URL.")) + self.label_8.setText(_translate("OllamaPage", "Blog:")) + self.blogUrlEdit.setToolTip(_translate("OllamaPage", "Enter the URL of the \'ollama\' blog. Leave empty to use the default URL.")) self.label_6.setText(_translate("OllamaPage", "Heartbeat Timer:")) self.heartbeatSpinBox.setToolTip(_translate("OllamaPage", "Enter the heartbeat timeout value (0 = disable).")) self.heartbeatSpinBox.setSpecialValueText(_translate("OllamaPage", "Disabled"))
--- a/OllamaInterface/OllamaWidget.py Tue Sep 03 15:51:28 2024 +0200 +++ b/OllamaInterface/OllamaWidget.py Tue Sep 03 17:06:05 2024 +0200 @@ -693,7 +693,8 @@ ) self.__modelMenu.addSeparator() self.__modelMenu.addAction( - self.tr("Show Model Library"), self.__showModelLibrary + self.tr("Show Model Library"), + lambda: self.__showOllamaUrl("OllamaModelLibraryUrl"), ) self.__modelMenu.addSeparator() self.__pullModelAct = self.__modelMenu.addAction( @@ -720,6 +721,24 @@ ) ################################################################### + ## Menu with 'ollama' URL related actions + ################################################################### + + self.__urlsMenu = QMenu(self.tr("ollama URLs")) + self.__urlsMenu.addAction( + self.tr("Model Library"), + lambda: self.__showOllamaUrl("OllamaModelLibraryUrl"), + ) + self.__urlsMenu.addAction( + self.tr("Download"), + lambda: self.__showOllamaUrl("OllamaDownloadUrl"), + ) + self.__urlsMenu.addAction( + self.tr("Blog"), + lambda: self.__showOllamaUrl("OllamaBlogUrl"), + ) + + ################################################################### ## Main menu ################################################################### @@ -730,6 +749,8 @@ self.__ollamaMenu.addSeparator() self.__ollamaMenu.addMenu(self.__localServerMenu) self.__ollamaMenu.addSeparator() + self.__ollamaMenu.addMenu(self.__urlsMenu) + self.__ollamaMenu.addSeparator() self.__ollamaMenu.addAction(self.tr("Configure..."), self.__ollamaConfigure) self.__ollamaMenu.aboutToShow.connect(self.__aboutToShowOllamaMenu) @@ -978,15 +999,6 @@ ) @pyqtSlot() - def __showModelLibrary(self): - """ - Private slot to open the 'ollama' model librayr web site. - """ - urlStr = self.__plugin.getPreferences("OllamaModelLibraryUrl") - url = QUrl.fromUserInput(urlStr) - QDesktopServices.openUrl(url) - - @pyqtSlot() def __pullModel(self): """ Private slot to download a model from the 'ollama' model library. @@ -1079,6 +1091,17 @@ ).format(modelName), ) + def __showOllamaUrl(self, urlKey): + """ + Private method to open an 'ollama' URL given by its configuration key. + + @param urlKey URL configuration key + @type str + """ + urlStr = self.__plugin.getPreferences(urlKey) + url = QUrl.fromUserInput(urlStr) + QDesktopServices.openUrl(url) + @pyqtSlot(str) def __handleClientError(self, errMsg): """
--- a/OllamaInterface/i18n/ollama_de.ts Tue Sep 03 15:51:28 2024 +0200 +++ b/OllamaInterface/i18n/ollama_de.ts Tue Sep 03 17:06:05 2024 +0200 @@ -43,7 +43,7 @@ <translation><p>Fehler: Der lokale Server auf <b>{0}</b> antwortet nicht.</p></translation> </message> <message> - <location filename="../OllamaClient.py" line="591" /> + <location filename="../OllamaClient.py" line="589" /> <source><p>Error: The configured server at <b>{0}</b> is not responding.</p></source> <translation><p>Fehler: Der konfigurierte Server auf <b>{0}</b> antwortet nicht.</p></translation> </message> @@ -164,18 +164,38 @@ </message> <message> <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> - <source>Model Library</source> - <translation>Modellbibliothek</translation> + <source>URLs</source> + <translation>URLs</translation> + </message> + <message> + <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> + <source>Model Library:</source> + <translation>Modellbibliothek:</translation> + </message> + <message> + <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> + <source>Enter the URL of the 'ollama' model library. Leave empty to use the default URL.</source> + <translation>Gib die URL der 'ollama' Modellbibliothek ein. Leer lassen zur Verwendung der Standard-URL.</translation> </message> <message> <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> - <source>URL:</source> - <translation>URL:</translation> + <source>Download:</source> + <translation>Download:</translation> </message> <message> <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> - <source>Enter the URL of the 'ollama' model library.</source> - <translation>Gib die URL der 'ollama' Modellbibliothek ein.</translation> + <source>Enter the URL of the 'ollama' download page. Leave empty to use the default URL.</source> + <translation>Gib die URL der 'ollama' Downloadseite ein. Leer lassen zur Verwendung der Standard-URL.</translation> + </message> + <message> + <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> + <source>Blog:</source> + <translation>Blog:</translation> + </message> + <message> + <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> + <source>Enter the URL of the 'ollama' blog. Leave empty to use the default URL.</source> + <translation>Gib die URL des 'ollama' Blogs ein. Leer lassen zur Verwendung der Standard-URL.</translation> </message> <message> <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> @@ -340,13 +360,13 @@ <translation>Modellverwaltung</translation> </message> <message> - <location filename="../OllamaWidget.py" line="958" /> + <location filename="../OllamaWidget.py" line="979" /> <location filename="../OllamaWidget.py" line="690" /> <source>List Models</source> <translation>Modelle auflisten</translation> </message> <message> - <location filename="../OllamaWidget.py" line="976" /> + <location filename="../OllamaWidget.py" line="997" /> <location filename="../OllamaWidget.py" line="692" /> <source>List Running Models</source> <translation>Laufende Modelle auflisten</translation> @@ -357,123 +377,143 @@ <translation>Modell Bibliothek anzeigen</translation> </message> <message> - <location filename="../OllamaWidget.py" line="1002" /> - <location filename="../OllamaWidget.py" line="700" /> + <location filename="../OllamaWidget.py" line="1014" /> + <location filename="../OllamaWidget.py" line="701" /> <source>Install Model</source> <translation>Modell installieren</translation> </message> <message> - <location filename="../OllamaWidget.py" line="1075" /> - <location filename="../OllamaWidget.py" line="1066" /> - <location filename="../OllamaWidget.py" line="1055" /> - <location filename="../OllamaWidget.py" line="703" /> + <location filename="../OllamaWidget.py" line="1087" /> + <location filename="../OllamaWidget.py" line="1078" /> + <location filename="../OllamaWidget.py" line="1067" /> + <location filename="../OllamaWidget.py" line="704" /> <source>Remove Model</source> <translation>Modell löschen</translation> </message> <message> - <location filename="../OllamaWidget.py" line="710" /> + <location filename="../OllamaWidget.py" line="711" /> <source>Local Server</source> <translation>Lokaler Server</translation> </message> <message> - <location filename="../OllamaWidget.py" line="712" /> + <location filename="../OllamaWidget.py" line="713" /> <source>Start with Monitoring</source> <translation>Mit Monitoring starten</translation> </message> <message> - <location filename="../OllamaWidget.py" line="716" /> + <location filename="../OllamaWidget.py" line="717" /> <source>Start</source> <translation>Starten</translation> </message> <message> - <location filename="../OllamaWidget.py" line="719" /> + <location filename="../OllamaWidget.py" line="720" /> <source>Stop</source> <translation>Stoppen</translation> </message> <message> + <location filename="../OllamaWidget.py" line="727" /> + <source>ollama URLs</source> + <translation>ollama URLs</translation> + </message> + <message> + <location filename="../OllamaWidget.py" line="729" /> + <source>Model Library</source> + <translation>Modellbibliothek</translation> + </message> + <message> <location filename="../OllamaWidget.py" line="733" /> + <source>Download</source> + <translation>Download</translation> + </message> + <message> + <location filename="../OllamaWidget.py" line="737" /> + <source>Blog</source> + <translation>Blog</translation> + </message> + <message> + <location filename="../OllamaWidget.py" line="754" /> <source>Configure...</source> <translation>Einstellungen...</translation> </message> <message> - <location filename="../OllamaWidget.py" line="773" /> + <location filename="../OllamaWidget.py" line="794" /> <source>Clear All Chat Histories</source> <translation>Alle Chat Verläufe löschen</translation> </message> <message> - <location filename="../OllamaWidget.py" line="774" /> + <location filename="../OllamaWidget.py" line="795" /> <source><p>Do you really want to delete all chat histories? This is <b>irreversible</b>.</p></source> <translation><p>Sollen wirklich alle Chat Verläufe gelöscht werden? Dies ist <b>unumkehrbar</b>.</p></translation> </message> <message> - <location filename="../OllamaWidget.py" line="789" /> + <location filename="../OllamaWidget.py" line="810" /> <source>Import Chat History</source> <translation>Chat Verlauf importieren</translation> </message> <message> - <location filename="../OllamaWidget.py" line="791" /> + <location filename="../OllamaWidget.py" line="812" /> <source>Chat History Files (*.json);;All Files (*)</source> <translation>Chat Verlauf Dateien (*.json);;Alle Dateien (*)</translation> </message> <message> - <location filename="../OllamaWidget.py" line="824" /> - <location filename="../OllamaWidget.py" line="792" /> + <location filename="../OllamaWidget.py" line="845" /> + <location filename="../OllamaWidget.py" line="813" /> <source>Chat History Files (*.json)</source> <translation>Chat Verlauf Dateien (*.json)</translation> </message> <message> - <location filename="../OllamaWidget.py" line="822" /> - <location filename="../OllamaWidget.py" line="812" /> + <location filename="../OllamaWidget.py" line="843" /> + <location filename="../OllamaWidget.py" line="833" /> <source>Export Chat History</source> <translation>Chat Verlauf exportieren</translation> </message> <message> - <location filename="../OllamaWidget.py" line="813" /> + <location filename="../OllamaWidget.py" line="834" /> <source>Select the chats to be exported:</source> <translation>Wähle die zu exportierenden Chats:</translation> </message> <message> - <location filename="../OllamaWidget.py" line="911" /> + <location filename="../OllamaWidget.py" line="932" /> <source>Run Local 'ollama' Server</source> <translation>Lokalen 'ollama' Server ausführen</translation> </message> <message> - <location filename="../OllamaWidget.py" line="912" /> + <location filename="../OllamaWidget.py" line="933" /> <source>The loacl 'ollama' server process could not be started.</source> <translation>Der lokale 'ollama' Serverprozess konnte nicht gestartet werden.</translation> </message> <message> - <location filename="../OllamaWidget.py" line="959" /> + <location filename="../OllamaWidget.py" line="980" /> <source>There are no models available.</source> <translation>Es sind keine Modelle verfügbar.</translation> </message> <message> - <location filename="../OllamaWidget.py" line="977" /> + <location filename="../OllamaWidget.py" line="998" /> <source>There are no models running.</source> <translation>Es werden keine Modelle ausgeführt.</translation> </message> <message> - <location filename="../OllamaWidget.py" line="1003" /> + <location filename="../OllamaWidget.py" line="1015" /> <source>Enter the name of the model to be installed:</source> <translation>Gib den Namen des zu installierenden Modells ein:</translation> </message> <message> - <location filename="../OllamaWidget.py" line="1056" /> + <location filename="../OllamaWidget.py" line="1068" /> <source>Select the model to be removed by the 'ollama' server:</source> <translation>Wähle das vom 'ollama' Server zu entfernende Modell aus:</translation> </message> <message> - <location filename="../OllamaWidget.py" line="1067" /> + <location filename="../OllamaWidget.py" line="1079" /> <source><p>The model <b>{0}</b> was deleted successfully.</p></source> <translation><p>Das Modell <b>{0}</b> wurde erfolgreich entfernt.</p></translation> </message> <message> - <location filename="../OllamaWidget.py" line="1076" /> + <location filename="../OllamaWidget.py" line="1088" /> <source><p>The model <b>{0}</b> could not be removed from the 'ollama' server.</p></source> <translation><p>Das Modell <b>{0}</b> konnte nicht vom 'ollama' Server entfernt werden.</p></translation> </message> <message> - <location filename="../OllamaWidget.py" line="1092" /> + <location filename="../OllamaWidget.py" line="1115" /> <source>Network Error</source> <translation>Netzwerkfehler</translation> </message> @@ -511,25 +551,25 @@ <context> <name>PluginOllamaInterface</name> <message> - <location filename="../../PluginAiOllama.py" line="181" /> - <location filename="../../PluginAiOllama.py" line="180" /> - <location filename="../../PluginAiOllama.py" line="176" /> - <location filename="../../PluginAiOllama.py" line="82" /> + <location filename="../../PluginAiOllama.py" line="184" /> + <location filename="../../PluginAiOllama.py" line="183" /> + <location filename="../../PluginAiOllama.py" line="179" /> + <location filename="../../PluginAiOllama.py" line="83" /> <source>ollama AI Interface</source> <translation>ollama KI Schnittstelle</translation> </message> <message> - <location filename="../../PluginAiOllama.py" line="182" /> + <location filename="../../PluginAiOllama.py" line="185" /> <source>Ctrl+Alt+Shift+O</source> <translation>Ctrl+Alt+Shift+O</translation> </message> <message> - <location filename="../../PluginAiOllama.py" line="188" /> + <location filename="../../PluginAiOllama.py" line="191" /> <source>Switch the input focus to the ollama AI window.</source> <translation>Schaltet den Eingabefokus auf das ollama KI Fenster um.</translation> </message> <message> - <location filename="../../PluginAiOllama.py" line="191" /> + <location filename="../../PluginAiOllama.py" line="194" /> <source><b>Activate ollama AI Interface</b><p>This switches the input focus to the ollama AI window.</p></source> <translation><b>Aktiviere ollama KI Schnittstelle</b><p>Dies schaltet den Eingabefokus auf das ollama KI Fenster um.</p></translation> </message>
--- a/OllamaInterface/i18n/ollama_empty.ts Tue Sep 03 15:51:28 2024 +0200 +++ b/OllamaInterface/i18n/ollama_empty.ts Tue Sep 03 17:06:05 2024 +0200 @@ -43,7 +43,7 @@ <translation type="unfinished" /> </message> <message> - <location filename="../OllamaClient.py" line="591" /> + <location filename="../OllamaClient.py" line="589" /> <source><p>Error: The configured server at <b>{0}</b> is not responding.</p></source> <translation type="unfinished" /> </message> @@ -164,17 +164,37 @@ </message> <message> <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> - <source>Model Library</source> + <source>URLs</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> + <source>Model Library:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> + <source>Enter the URL of the 'ollama' model library. Leave empty to use the default URL.</source> <translation type="unfinished" /> </message> <message> <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> - <source>URL:</source> + <source>Download:</source> <translation type="unfinished" /> </message> <message> <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> - <source>Enter the URL of the 'ollama' model library.</source> + <source>Enter the URL of the 'ollama' download page. Leave empty to use the default URL.</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> + <source>Blog:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> + <source>Enter the URL of the 'ollama' blog. Leave empty to use the default URL.</source> <translation type="unfinished" /> </message> <message> @@ -340,13 +360,13 @@ <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="958" /> + <location filename="../OllamaWidget.py" line="979" /> <location filename="../OllamaWidget.py" line="690" /> <source>List Models</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="976" /> + <location filename="../OllamaWidget.py" line="997" /> <location filename="../OllamaWidget.py" line="692" /> <source>List Running Models</source> <translation type="unfinished" /> @@ -357,123 +377,143 @@ <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="1002" /> - <location filename="../OllamaWidget.py" line="700" /> + <location filename="../OllamaWidget.py" line="1014" /> + <location filename="../OllamaWidget.py" line="701" /> <source>Install Model</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="1075" /> - <location filename="../OllamaWidget.py" line="1066" /> - <location filename="../OllamaWidget.py" line="1055" /> - <location filename="../OllamaWidget.py" line="703" /> + <location filename="../OllamaWidget.py" line="1087" /> + <location filename="../OllamaWidget.py" line="1078" /> + <location filename="../OllamaWidget.py" line="1067" /> + <location filename="../OllamaWidget.py" line="704" /> <source>Remove Model</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="710" /> + <location filename="../OllamaWidget.py" line="711" /> <source>Local Server</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="712" /> + <location filename="../OllamaWidget.py" line="713" /> <source>Start with Monitoring</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="716" /> + <location filename="../OllamaWidget.py" line="717" /> <source>Start</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="719" /> + <location filename="../OllamaWidget.py" line="720" /> <source>Stop</source> <translation type="unfinished" /> </message> <message> + <location filename="../OllamaWidget.py" line="727" /> + <source>ollama URLs</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../OllamaWidget.py" line="729" /> + <source>Model Library</source> + <translation type="unfinished" /> + </message> + <message> <location filename="../OllamaWidget.py" line="733" /> + <source>Download</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../OllamaWidget.py" line="737" /> + <source>Blog</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../OllamaWidget.py" line="754" /> <source>Configure...</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="773" /> + <location filename="../OllamaWidget.py" line="794" /> <source>Clear All Chat Histories</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="774" /> + <location filename="../OllamaWidget.py" line="795" /> <source><p>Do you really want to delete all chat histories? This is <b>irreversible</b>.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="789" /> + <location filename="../OllamaWidget.py" line="810" /> <source>Import Chat History</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="791" /> + <location filename="../OllamaWidget.py" line="812" /> <source>Chat History Files (*.json);;All Files (*)</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="824" /> - <location filename="../OllamaWidget.py" line="792" /> + <location filename="../OllamaWidget.py" line="845" /> + <location filename="../OllamaWidget.py" line="813" /> <source>Chat History Files (*.json)</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="822" /> - <location filename="../OllamaWidget.py" line="812" /> + <location filename="../OllamaWidget.py" line="843" /> + <location filename="../OllamaWidget.py" line="833" /> <source>Export Chat History</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="813" /> + <location filename="../OllamaWidget.py" line="834" /> <source>Select the chats to be exported:</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="911" /> + <location filename="../OllamaWidget.py" line="932" /> <source>Run Local 'ollama' Server</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="912" /> + <location filename="../OllamaWidget.py" line="933" /> <source>The loacl 'ollama' server process could not be started.</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="959" /> + <location filename="../OllamaWidget.py" line="980" /> <source>There are no models available.</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="977" /> + <location filename="../OllamaWidget.py" line="998" /> <source>There are no models running.</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="1003" /> + <location filename="../OllamaWidget.py" line="1015" /> <source>Enter the name of the model to be installed:</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="1056" /> + <location filename="../OllamaWidget.py" line="1068" /> <source>Select the model to be removed by the 'ollama' server:</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="1067" /> + <location filename="../OllamaWidget.py" line="1079" /> <source><p>The model <b>{0}</b> was deleted successfully.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="1076" /> + <location filename="../OllamaWidget.py" line="1088" /> <source><p>The model <b>{0}</b> could not be removed from the 'ollama' server.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="1092" /> + <location filename="../OllamaWidget.py" line="1115" /> <source>Network Error</source> <translation type="unfinished" /> </message> @@ -511,25 +551,25 @@ <context> <name>PluginOllamaInterface</name> <message> - <location filename="../../PluginAiOllama.py" line="181" /> - <location filename="../../PluginAiOllama.py" line="180" /> - <location filename="../../PluginAiOllama.py" line="176" /> - <location filename="../../PluginAiOllama.py" line="82" /> + <location filename="../../PluginAiOllama.py" line="184" /> + <location filename="../../PluginAiOllama.py" line="183" /> + <location filename="../../PluginAiOllama.py" line="179" /> + <location filename="../../PluginAiOllama.py" line="83" /> <source>ollama AI Interface</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginAiOllama.py" line="182" /> + <location filename="../../PluginAiOllama.py" line="185" /> <source>Ctrl+Alt+Shift+O</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginAiOllama.py" line="188" /> + <location filename="../../PluginAiOllama.py" line="191" /> <source>Switch the input focus to the ollama AI window.</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginAiOllama.py" line="191" /> + <location filename="../../PluginAiOllama.py" line="194" /> <source><b>Activate ollama AI Interface</b><p>This switches the input focus to the ollama AI window.</p></source> <translation type="unfinished" /> </message>
--- a/OllamaInterface/i18n/ollama_en.ts Tue Sep 03 15:51:28 2024 +0200 +++ b/OllamaInterface/i18n/ollama_en.ts Tue Sep 03 17:06:05 2024 +0200 @@ -43,7 +43,7 @@ <translation type="unfinished" /> </message> <message> - <location filename="../OllamaClient.py" line="591" /> + <location filename="../OllamaClient.py" line="589" /> <source><p>Error: The configured server at <b>{0}</b> is not responding.</p></source> <translation type="unfinished" /> </message> @@ -164,17 +164,37 @@ </message> <message> <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> - <source>Model Library</source> + <source>URLs</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> + <source>Model Library:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> + <source>Enter the URL of the 'ollama' model library. Leave empty to use the default URL.</source> <translation type="unfinished" /> </message> <message> <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> - <source>URL:</source> + <source>Download:</source> <translation type="unfinished" /> </message> <message> <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> - <source>Enter the URL of the 'ollama' model library.</source> + <source>Enter the URL of the 'ollama' download page. Leave empty to use the default URL.</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> + <source>Blog:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> + <source>Enter the URL of the 'ollama' blog. Leave empty to use the default URL.</source> <translation type="unfinished" /> </message> <message> @@ -340,13 +360,13 @@ <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="958" /> + <location filename="../OllamaWidget.py" line="979" /> <location filename="../OllamaWidget.py" line="690" /> <source>List Models</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="976" /> + <location filename="../OllamaWidget.py" line="997" /> <location filename="../OllamaWidget.py" line="692" /> <source>List Running Models</source> <translation type="unfinished" /> @@ -357,123 +377,143 @@ <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="1002" /> - <location filename="../OllamaWidget.py" line="700" /> + <location filename="../OllamaWidget.py" line="1014" /> + <location filename="../OllamaWidget.py" line="701" /> <source>Install Model</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="1075" /> - <location filename="../OllamaWidget.py" line="1066" /> - <location filename="../OllamaWidget.py" line="1055" /> - <location filename="../OllamaWidget.py" line="703" /> + <location filename="../OllamaWidget.py" line="1087" /> + <location filename="../OllamaWidget.py" line="1078" /> + <location filename="../OllamaWidget.py" line="1067" /> + <location filename="../OllamaWidget.py" line="704" /> <source>Remove Model</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="710" /> + <location filename="../OllamaWidget.py" line="711" /> <source>Local Server</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="712" /> + <location filename="../OllamaWidget.py" line="713" /> <source>Start with Monitoring</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="716" /> + <location filename="../OllamaWidget.py" line="717" /> <source>Start</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="719" /> + <location filename="../OllamaWidget.py" line="720" /> <source>Stop</source> <translation type="unfinished" /> </message> <message> + <location filename="../OllamaWidget.py" line="727" /> + <source>ollama URLs</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../OllamaWidget.py" line="729" /> + <source>Model Library</source> + <translation type="unfinished" /> + </message> + <message> <location filename="../OllamaWidget.py" line="733" /> + <source>Download</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../OllamaWidget.py" line="737" /> + <source>Blog</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../OllamaWidget.py" line="754" /> <source>Configure...</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="773" /> + <location filename="../OllamaWidget.py" line="794" /> <source>Clear All Chat Histories</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="774" /> + <location filename="../OllamaWidget.py" line="795" /> <source><p>Do you really want to delete all chat histories? This is <b>irreversible</b>.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="789" /> + <location filename="../OllamaWidget.py" line="810" /> <source>Import Chat History</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="791" /> + <location filename="../OllamaWidget.py" line="812" /> <source>Chat History Files (*.json);;All Files (*)</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="824" /> - <location filename="../OllamaWidget.py" line="792" /> + <location filename="../OllamaWidget.py" line="845" /> + <location filename="../OllamaWidget.py" line="813" /> <source>Chat History Files (*.json)</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="822" /> - <location filename="../OllamaWidget.py" line="812" /> + <location filename="../OllamaWidget.py" line="843" /> + <location filename="../OllamaWidget.py" line="833" /> <source>Export Chat History</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="813" /> + <location filename="../OllamaWidget.py" line="834" /> <source>Select the chats to be exported:</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="911" /> + <location filename="../OllamaWidget.py" line="932" /> <source>Run Local 'ollama' Server</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="912" /> + <location filename="../OllamaWidget.py" line="933" /> <source>The loacl 'ollama' server process could not be started.</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="959" /> + <location filename="../OllamaWidget.py" line="980" /> <source>There are no models available.</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="977" /> + <location filename="../OllamaWidget.py" line="998" /> <source>There are no models running.</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="1003" /> + <location filename="../OllamaWidget.py" line="1015" /> <source>Enter the name of the model to be installed:</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="1056" /> + <location filename="../OllamaWidget.py" line="1068" /> <source>Select the model to be removed by the 'ollama' server:</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="1067" /> + <location filename="../OllamaWidget.py" line="1079" /> <source><p>The model <b>{0}</b> was deleted successfully.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="1076" /> + <location filename="../OllamaWidget.py" line="1088" /> <source><p>The model <b>{0}</b> could not be removed from the 'ollama' server.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="1092" /> + <location filename="../OllamaWidget.py" line="1115" /> <source>Network Error</source> <translation type="unfinished" /> </message> @@ -511,25 +551,25 @@ <context> <name>PluginOllamaInterface</name> <message> - <location filename="../../PluginAiOllama.py" line="181" /> - <location filename="../../PluginAiOllama.py" line="180" /> - <location filename="../../PluginAiOllama.py" line="176" /> - <location filename="../../PluginAiOllama.py" line="82" /> + <location filename="../../PluginAiOllama.py" line="184" /> + <location filename="../../PluginAiOllama.py" line="183" /> + <location filename="../../PluginAiOllama.py" line="179" /> + <location filename="../../PluginAiOllama.py" line="83" /> <source>ollama AI Interface</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginAiOllama.py" line="182" /> + <location filename="../../PluginAiOllama.py" line="185" /> <source>Ctrl+Alt+Shift+O</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginAiOllama.py" line="188" /> + <location filename="../../PluginAiOllama.py" line="191" /> <source>Switch the input focus to the ollama AI window.</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginAiOllama.py" line="191" /> + <location filename="../../PluginAiOllama.py" line="194" /> <source><b>Activate ollama AI Interface</b><p>This switches the input focus to the ollama AI window.</p></source> <translation type="unfinished" /> </message>
--- a/OllamaInterface/i18n/ollama_es.ts Tue Sep 03 15:51:28 2024 +0200 +++ b/OllamaInterface/i18n/ollama_es.ts Tue Sep 03 17:06:05 2024 +0200 @@ -43,7 +43,7 @@ <translation type="unfinished" /> </message> <message> - <location filename="../OllamaClient.py" line="591" /> + <location filename="../OllamaClient.py" line="589" /> <source><p>Error: The configured server at <b>{0}</b> is not responding.</p></source> <translation type="unfinished" /> </message> @@ -164,17 +164,37 @@ </message> <message> <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> - <source>Model Library</source> + <source>URLs</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> + <source>Model Library:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> + <source>Enter the URL of the 'ollama' model library. Leave empty to use the default URL.</source> <translation type="unfinished" /> </message> <message> <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> - <source>URL:</source> + <source>Download:</source> <translation type="unfinished" /> </message> <message> <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> - <source>Enter the URL of the 'ollama' model library.</source> + <source>Enter the URL of the 'ollama' download page. Leave empty to use the default URL.</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> + <source>Blog:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> + <source>Enter the URL of the 'ollama' blog. Leave empty to use the default URL.</source> <translation type="unfinished" /> </message> <message> @@ -340,13 +360,13 @@ <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="958" /> + <location filename="../OllamaWidget.py" line="979" /> <location filename="../OllamaWidget.py" line="690" /> <source>List Models</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="976" /> + <location filename="../OllamaWidget.py" line="997" /> <location filename="../OllamaWidget.py" line="692" /> <source>List Running Models</source> <translation type="unfinished" /> @@ -357,123 +377,143 @@ <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="1002" /> - <location filename="../OllamaWidget.py" line="700" /> + <location filename="../OllamaWidget.py" line="1014" /> + <location filename="../OllamaWidget.py" line="701" /> <source>Install Model</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="1075" /> - <location filename="../OllamaWidget.py" line="1066" /> - <location filename="../OllamaWidget.py" line="1055" /> - <location filename="../OllamaWidget.py" line="703" /> + <location filename="../OllamaWidget.py" line="1087" /> + <location filename="../OllamaWidget.py" line="1078" /> + <location filename="../OllamaWidget.py" line="1067" /> + <location filename="../OllamaWidget.py" line="704" /> <source>Remove Model</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="710" /> + <location filename="../OllamaWidget.py" line="711" /> <source>Local Server</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="712" /> + <location filename="../OllamaWidget.py" line="713" /> <source>Start with Monitoring</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="716" /> + <location filename="../OllamaWidget.py" line="717" /> <source>Start</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="719" /> + <location filename="../OllamaWidget.py" line="720" /> <source>Stop</source> <translation type="unfinished" /> </message> <message> + <location filename="../OllamaWidget.py" line="727" /> + <source>ollama URLs</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../OllamaWidget.py" line="729" /> + <source>Model Library</source> + <translation type="unfinished" /> + </message> + <message> <location filename="../OllamaWidget.py" line="733" /> + <source>Download</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../OllamaWidget.py" line="737" /> + <source>Blog</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../OllamaWidget.py" line="754" /> <source>Configure...</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="773" /> + <location filename="../OllamaWidget.py" line="794" /> <source>Clear All Chat Histories</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="774" /> + <location filename="../OllamaWidget.py" line="795" /> <source><p>Do you really want to delete all chat histories? This is <b>irreversible</b>.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="789" /> + <location filename="../OllamaWidget.py" line="810" /> <source>Import Chat History</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="791" /> + <location filename="../OllamaWidget.py" line="812" /> <source>Chat History Files (*.json);;All Files (*)</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="824" /> - <location filename="../OllamaWidget.py" line="792" /> + <location filename="../OllamaWidget.py" line="845" /> + <location filename="../OllamaWidget.py" line="813" /> <source>Chat History Files (*.json)</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="822" /> - <location filename="../OllamaWidget.py" line="812" /> + <location filename="../OllamaWidget.py" line="843" /> + <location filename="../OllamaWidget.py" line="833" /> <source>Export Chat History</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="813" /> + <location filename="../OllamaWidget.py" line="834" /> <source>Select the chats to be exported:</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="911" /> + <location filename="../OllamaWidget.py" line="932" /> <source>Run Local 'ollama' Server</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="912" /> + <location filename="../OllamaWidget.py" line="933" /> <source>The loacl 'ollama' server process could not be started.</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="959" /> + <location filename="../OllamaWidget.py" line="980" /> <source>There are no models available.</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="977" /> + <location filename="../OllamaWidget.py" line="998" /> <source>There are no models running.</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="1003" /> + <location filename="../OllamaWidget.py" line="1015" /> <source>Enter the name of the model to be installed:</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="1056" /> + <location filename="../OllamaWidget.py" line="1068" /> <source>Select the model to be removed by the 'ollama' server:</source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="1067" /> + <location filename="../OllamaWidget.py" line="1079" /> <source><p>The model <b>{0}</b> was deleted successfully.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="1076" /> + <location filename="../OllamaWidget.py" line="1088" /> <source><p>The model <b>{0}</b> could not be removed from the 'ollama' server.</p></source> <translation type="unfinished" /> </message> <message> - <location filename="../OllamaWidget.py" line="1092" /> + <location filename="../OllamaWidget.py" line="1115" /> <source>Network Error</source> <translation type="unfinished" /> </message> @@ -511,25 +551,25 @@ <context> <name>PluginOllamaInterface</name> <message> - <location filename="../../PluginAiOllama.py" line="181" /> - <location filename="../../PluginAiOllama.py" line="180" /> - <location filename="../../PluginAiOllama.py" line="176" /> - <location filename="../../PluginAiOllama.py" line="82" /> + <location filename="../../PluginAiOllama.py" line="184" /> + <location filename="../../PluginAiOllama.py" line="183" /> + <location filename="../../PluginAiOllama.py" line="179" /> + <location filename="../../PluginAiOllama.py" line="83" /> <source>ollama AI Interface</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginAiOllama.py" line="182" /> + <location filename="../../PluginAiOllama.py" line="185" /> <source>Ctrl+Alt+Shift+O</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginAiOllama.py" line="188" /> + <location filename="../../PluginAiOllama.py" line="191" /> <source>Switch the input focus to the ollama AI window.</source> <translation type="unfinished" /> </message> <message> - <location filename="../../PluginAiOllama.py" line="191" /> + <location filename="../../PluginAiOllama.py" line="194" /> <source><b>Activate ollama AI Interface</b><p>This switches the input focus to the ollama AI window.</p></source> <translation type="unfinished" /> </message>
--- a/OllamaInterface/i18n/ollama_ru.ts Tue Sep 03 15:51:28 2024 +0200 +++ b/OllamaInterface/i18n/ollama_ru.ts Tue Sep 03 17:06:05 2024 +0200 @@ -164,18 +164,38 @@ </message> <message> <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> - <source>Model Library</source> - <translation>Библиотека моделей</translation> + <source>URLs</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> + <source>Model Library:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> + <source>Enter the URL of the 'ollama' model library. Leave empty to use the default URL.</source> + <translation type="unfinished" /> </message> <message> <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> - <source>URL:</source> - <translation>URL-адрес:</translation> + <source>Download:</source> + <translation type="unfinished" /> </message> <message> <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> - <source>Enter the URL of the 'ollama' model library.</source> - <translation>Введите URL-адрес библиотеки моделей 'ollama'.</translation> + <source>Enter the URL of the 'ollama' download page. Leave empty to use the default URL.</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> + <source>Blog:</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> + <source>Enter the URL of the 'ollama' blog. Leave empty to use the default URL.</source> + <translation type="unfinished" /> </message> <message> <location filename="../ConfigurationPage/OllamaPage.ui" line="0" /> @@ -202,6 +222,18 @@ <source>Use streaming chat response</source> <translation>Использовать ответ потокового чата</translation> </message> + <message> + <source>Model Library</source> + <translation type="vanished">Библиотека моделей</translation> + </message> + <message> + <source>URL:</source> + <translation type="vanished">URL-адрес:</translation> + </message> + <message> + <source>Enter the URL of the 'ollama' model library.</source> + <translation type="vanished">Введите URL-адрес библиотеки моделей 'ollama'.</translation> + </message> </context> <context> <name>OllamaPullProgressDialog</name> @@ -340,13 +372,13 @@ <translation>Управление моделью</translation> </message> <message> - <location filename="../OllamaWidget.py" line="958" /> + <location filename="../OllamaWidget.py" line="979" /> <location filename="../OllamaWidget.py" line="690" /> <source>List Models</source> <translation>Список моделей</translation> </message> <message> - <location filename="../OllamaWidget.py" line="976" /> + <location filename="../OllamaWidget.py" line="997" /> <location filename="../OllamaWidget.py" line="692" /> <source>List Running Models</source> <translation>Список работающих моделей</translation> @@ -357,123 +389,143 @@ <translation>Показать библиотеку моделей</translation> </message> <message> - <location filename="../OllamaWidget.py" line="1002" /> - <location filename="../OllamaWidget.py" line="700" /> + <location filename="../OllamaWidget.py" line="1014" /> + <location filename="../OllamaWidget.py" line="701" /> <source>Install Model</source> <translation>Установить модель</translation> </message> <message> - <location filename="../OllamaWidget.py" line="1075" /> - <location filename="../OllamaWidget.py" line="1066" /> - <location filename="../OllamaWidget.py" line="1055" /> - <location filename="../OllamaWidget.py" line="703" /> + <location filename="../OllamaWidget.py" line="1087" /> + <location filename="../OllamaWidget.py" line="1078" /> + <location filename="../OllamaWidget.py" line="1067" /> + <location filename="../OllamaWidget.py" line="704" /> <source>Remove Model</source> <translation>Удалить модель</translation> </message> <message> - <location filename="../OllamaWidget.py" line="710" /> + <location filename="../OllamaWidget.py" line="711" /> <source>Local Server</source> <translation>Локальный сервер</translation> </message> <message> - <location filename="../OllamaWidget.py" line="712" /> + <location filename="../OllamaWidget.py" line="713" /> <source>Start with Monitoring</source> <translation>Старт с мониторингом</translation> </message> <message> - <location filename="../OllamaWidget.py" line="716" /> + <location filename="../OllamaWidget.py" line="717" /> <source>Start</source> <translation>Пуск</translation> </message> <message> - <location filename="../OllamaWidget.py" line="719" /> + <location filename="../OllamaWidget.py" line="720" /> <source>Stop</source> <translation>Стоп</translation> </message> <message> + <location filename="../OllamaWidget.py" line="727" /> + <source>ollama URLs</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../OllamaWidget.py" line="729" /> + <source>Model Library</source> + <translation type="unfinished">Библиотека моделей</translation> + </message> + <message> <location filename="../OllamaWidget.py" line="733" /> + <source>Download</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../OllamaWidget.py" line="737" /> + <source>Blog</source> + <translation type="unfinished" /> + </message> + <message> + <location filename="../OllamaWidget.py" line="754" /> <source>Configure...</source> <translation>Конфигурировать...</translation> </message> <message> - <location filename="../OllamaWidget.py" line="773" /> + <location filename="../OllamaWidget.py" line="794" /> <source>Clear All Chat Histories</source> <translation>Очистить все истории чатов</translation> </message> <message> - <location filename="../OllamaWidget.py" line="774" /> + <location filename="../OllamaWidget.py" line="795" /> <source><p>Do you really want to delete all chat histories? This is <b>irreversible</b>.</p></source> <translation><p>Вы действительно хотите удалить все истории чата? Это действие <b>необратимо</b>.</p></translation> </message> <message> - <location filename="../OllamaWidget.py" line="789" /> + <location filename="../OllamaWidget.py" line="810" /> <source>Import Chat History</source> <translation>Импорт истории чата</translation> </message> <message> - <location filename="../OllamaWidget.py" line="791" /> + <location filename="../OllamaWidget.py" line="812" /> <source>Chat History Files (*.json);;All Files (*)</source> <translation>Файлы истории чата (*.json);;Все файлы (*)</translation> </message> <message> - <location filename="../OllamaWidget.py" line="824" /> - <location filename="../OllamaWidget.py" line="792" /> + <location filename="../OllamaWidget.py" line="845" /> + <location filename="../OllamaWidget.py" line="813" /> <source>Chat History Files (*.json)</source> <translation>Файлы истории чата (*.json)</translation> </message> <message> - <location filename="../OllamaWidget.py" line="822" /> - <location filename="../OllamaWidget.py" line="812" /> + <location filename="../OllamaWidget.py" line="843" /> + <location filename="../OllamaWidget.py" line="833" /> <source>Export Chat History</source> <translation>Экспорт истории чата</translation> </message> <message> - <location filename="../OllamaWidget.py" line="813" /> + <location filename="../OllamaWidget.py" line="834" /> <source>Select the chats to be exported:</source> <translation>Выберите чаты для экспорта:</translation> </message> <message> - <location filename="../OllamaWidget.py" line="911" /> + <location filename="../OllamaWidget.py" line="932" /> <source>Run Local 'ollama' Server</source> <translation>Запустить локальный сервер 'ollama'</translation> </message> <message> - <location filename="../OllamaWidget.py" line="912" /> + <location filename="../OllamaWidget.py" line="933" /> <source>The loacl 'ollama' server process could not be started.</source> <translation>Не удалось запустить локальный процесс сервера 'ollama'.</translation> </message> <message> - <location filename="../OllamaWidget.py" line="959" /> + <location filename="../OllamaWidget.py" line="980" /> <source>There are no models available.</source> <translation>Нет доступных моделей.</translation> </message> <message> - <location filename="../OllamaWidget.py" line="977" /> + <location filename="../OllamaWidget.py" line="998" /> <source>There are no models running.</source> <translation>Нет запущенных моделей.</translation> </message> <message> - <location filename="../OllamaWidget.py" line="1003" /> + <location filename="../OllamaWidget.py" line="1015" /> <source>Enter the name of the model to be installed:</source> <translation>Введите имя модели, которую нужно установить:</translation> </message> <message> - <location filename="../OllamaWidget.py" line="1056" /> + <location filename="../OllamaWidget.py" line="1068" /> <source>Select the model to be removed by the 'ollama' server:</source> <translation>Выберите модель, которая будет удалена сервером 'ollama':</translation> </message> <message> - <location filename="../OllamaWidget.py" line="1067" /> + <location filename="../OllamaWidget.py" line="1079" /> <source><p>The model <b>{0}</b> was deleted successfully.</p></source> <translation><p>Модель <b>{0}</b> была успешно удалена.</p></translation> </message> <message> - <location filename="../OllamaWidget.py" line="1076" /> + <location filename="../OllamaWidget.py" line="1088" /> <source><p>The model <b>{0}</b> could not be removed from the 'ollama' server.</p></source> <translation><p>Модель <b>{0}</b> не удалось удалить с сервера 'ollama'.</p></translation> </message> <message> - <location filename="../OllamaWidget.py" line="1092" /> + <location filename="../OllamaWidget.py" line="1115" /> <source>Network Error</source> <translation>Ошибка сети</translation> </message> @@ -511,25 +563,25 @@ <context> <name>PluginOllamaInterface</name> <message> - <location filename="../../PluginAiOllama.py" line="181" /> - <location filename="../../PluginAiOllama.py" line="180" /> - <location filename="../../PluginAiOllama.py" line="176" /> - <location filename="../../PluginAiOllama.py" line="82" /> + <location filename="../../PluginAiOllama.py" line="184" /> + <location filename="../../PluginAiOllama.py" line="183" /> + <location filename="../../PluginAiOllama.py" line="179" /> + <location filename="../../PluginAiOllama.py" line="83" /> <source>ollama AI Interface</source> <translation>Интерфейс ollama AI</translation> </message> <message> - <location filename="../../PluginAiOllama.py" line="182" /> + <location filename="../../PluginAiOllama.py" line="185" /> <source>Ctrl+Alt+Shift+O</source> <translation>Ctrl+Alt+Shift+O</translation> </message> <message> - <location filename="../../PluginAiOllama.py" line="188" /> + <location filename="../../PluginAiOllama.py" line="191" /> <source>Switch the input focus to the ollama AI window.</source> <translation>Переключите фокус ввода на окно ollama AI.</translation> </message> <message> - <location filename="../../PluginAiOllama.py" line="191" /> + <location filename="../../PluginAiOllama.py" line="194" /> <source><b>Activate ollama AI Interface</b><p>This switches the input focus to the ollama AI window.</p></source> <translation><b>Активируйте интерфейс allama AI</b><p> Это переключит фокус ввода на окно ollama AI.</p></translation> </message>
--- a/PluginAiOllama.py Tue Sep 03 15:51:28 2024 +0200 +++ b/PluginAiOllama.py Tue Sep 03 17:06:05 2024 +0200 @@ -41,6 +41,7 @@ "Plug-in implementing an 'ollama' client and interface widgets." ), "needsRestart": False, + "hasCompiledForms": True, "pyqtApi": 2, } # End-Of-Header @@ -136,6 +137,8 @@ "OllamaHeartbeatInterval": 5, # 5 seconds heartbeat time; 0 = disabled "StreamingChatResponse": True, "OllamaModelLibraryUrl": "https://ollama.com/library", + "OllamaDownloadUrl": "https://ollama.com/download", + "OllamaBlogUrl": "https://ollama.com/blog", } self.__translator = None @@ -287,7 +290,12 @@ self.PreferencesKey + "/" + key, self.__defaults[key] ) ) - elif key in ("OllamaHost", "OllamaModelLibraryUrl"): + elif key in ( + "OllamaHost", + "OllamaModelLibraryUrl", + "OllamaDownloadUrl", + "OllamaBlogUrl", + ): value = Preferences.Prefs.settings.value( self.PreferencesKey + "/" + key, self.__defaults[key] )