mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-27 19:01:02 +00:00
Code refactoring for better maintainability
This commit is contained in:
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-09-11 12:33+0800\n"
|
||||
"POT-Creation-Date: 2026-09-11 17:15+0800\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -5035,16 +5035,13 @@ msgstr ""
|
||||
msgid "System agents"
|
||||
msgstr ""
|
||||
|
||||
msgid "No plugin selected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Add plugin"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select plugin"
|
||||
msgid "Remove plugin"
|
||||
msgstr ""
|
||||
|
||||
msgid "Remove plugin"
|
||||
msgid "No plugin selected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Configure"
|
||||
@@ -7197,6 +7194,12 @@ msgctxt "Layers"
|
||||
msgid "Bottom"
|
||||
msgstr ""
|
||||
|
||||
msgid "This setting does not specify a plugin capability type."
|
||||
msgstr ""
|
||||
|
||||
msgid "This setting specifies an unrecognized plugin capability type: "
|
||||
msgstr ""
|
||||
|
||||
msgid "Plugin Selection"
|
||||
msgstr ""
|
||||
|
||||
@@ -8591,6 +8594,15 @@ msgstr ""
|
||||
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
|
||||
msgstr ""
|
||||
|
||||
msgid "Recent actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
|
||||
msgstr ""
|
||||
|
||||
msgid "Pop up to select filament grouping mode"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-09-11 12:33+0800\n"
|
||||
"POT-Creation-Date: 2026-09-11 17:15+0800\n"
|
||||
"PO-Revision-Date: 2025-03-15 10:55+0100\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
@@ -5473,22 +5473,18 @@ msgstr "Format no vàlid. Format vectorial esperat: \"%1%\""
|
||||
msgid "System agents"
|
||||
msgstr "Agents del sistema"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "Cap connector seleccionat"
|
||||
|
||||
# AI Translated
|
||||
msgid "Add plugin"
|
||||
msgstr "Afegir connector"
|
||||
|
||||
# AI Translated
|
||||
msgid "Select plugin"
|
||||
msgstr "Seleccionar connector"
|
||||
|
||||
# AI Translated
|
||||
msgid "Remove plugin"
|
||||
msgstr "Eliminar connector"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "Cap connector seleccionat"
|
||||
|
||||
# AI Translated
|
||||
msgid "Configure"
|
||||
msgstr "Configurar"
|
||||
@@ -7723,6 +7719,12 @@ msgctxt "Layers"
|
||||
msgid "Bottom"
|
||||
msgstr "Inferior"
|
||||
|
||||
msgid "This setting does not specify a plugin capability type."
|
||||
msgstr ""
|
||||
|
||||
msgid "This setting specifies an unrecognized plugin capability type: "
|
||||
msgstr ""
|
||||
|
||||
# AI Translated
|
||||
msgid "Plugin Selection"
|
||||
msgstr "Selecció de connectors"
|
||||
@@ -9259,6 +9261,15 @@ msgstr ""
|
||||
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
|
||||
msgstr ""
|
||||
|
||||
msgid "Recent actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
|
||||
msgstr ""
|
||||
|
||||
msgid "Pop up to select filament grouping mode"
|
||||
msgstr "Finestra emergent per seleccionar el mode d'agrupació de filaments"
|
||||
|
||||
@@ -22233,6 +22244,10 @@ msgstr ""
|
||||
"Evitar la deformació( warping )\n"
|
||||
"Sabíeu que quan imprimiu materials propensos a deformar-se, com ara l'ABS, augmentar adequadament la temperatura del llit pot reduir la probabilitat de deformació?"
|
||||
|
||||
# AI Translated
|
||||
#~ msgid "Select plugin"
|
||||
#~ msgstr "Seleccionar connector"
|
||||
|
||||
#~ msgid "Select the language"
|
||||
#~ msgstr "Seleccioneu l'idioma"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-09-11 12:33+0800\n"
|
||||
"POT-Creation-Date: 2026-09-11 17:15+0800\n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: Jakub Hencl\n"
|
||||
"Language-Team: \n"
|
||||
@@ -5430,22 +5430,18 @@ msgstr "Neplatný formát. Očekávaný vektorový formát: \"%1%\""
|
||||
msgid "System agents"
|
||||
msgstr "Systémoví agenti"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "Není vybrán žádný plugin"
|
||||
|
||||
# AI Translated
|
||||
msgid "Add plugin"
|
||||
msgstr "Přidat plugin"
|
||||
|
||||
# AI Translated
|
||||
msgid "Select plugin"
|
||||
msgstr "Vybrat plugin"
|
||||
|
||||
# AI Translated
|
||||
msgid "Remove plugin"
|
||||
msgstr "Odebrat plugin"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "Není vybrán žádný plugin"
|
||||
|
||||
# AI Translated
|
||||
msgid "Configure"
|
||||
msgstr "Konfigurovat"
|
||||
@@ -7690,6 +7686,12 @@ msgctxt "Layers"
|
||||
msgid "Bottom"
|
||||
msgstr "Spodní"
|
||||
|
||||
msgid "This setting does not specify a plugin capability type."
|
||||
msgstr ""
|
||||
|
||||
msgid "This setting specifies an unrecognized plugin capability type: "
|
||||
msgstr ""
|
||||
|
||||
# AI Translated
|
||||
msgid "Plugin Selection"
|
||||
msgstr "Výběr pluginů"
|
||||
@@ -9213,6 +9215,15 @@ msgstr ""
|
||||
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
|
||||
msgstr ""
|
||||
|
||||
msgid "Recent actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
|
||||
msgstr ""
|
||||
|
||||
msgid "Pop up to select filament grouping mode"
|
||||
msgstr "Zobrazit dialog pro výběr režimu seskupení filamentů"
|
||||
|
||||
@@ -22214,6 +22225,10 @@ msgstr ""
|
||||
"Zamezte kroucení\n"
|
||||
"Víte, že při tisku materiálů náchylných ke kroucení, jako je ABS, může vhodné zvýšení teploty vyhřívané desky snížit pravděpodobnost kroucení?"
|
||||
|
||||
# AI Translated
|
||||
#~ msgid "Select plugin"
|
||||
#~ msgstr "Vybrat plugin"
|
||||
|
||||
#~ msgid "Select the language"
|
||||
#~ msgstr "Zvolte jazyk"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-09-11 12:33+0800\n"
|
||||
"POT-Creation-Date: 2026-09-11 17:15+0800\n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: Heiko Liebscher <hliebschergmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
@@ -5335,22 +5335,18 @@ msgstr "Ungültiges Format. Erwartetes Vektorformat: \"%1%\""
|
||||
msgid "System agents"
|
||||
msgstr "Systemagenten"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "Kein Plugin ausgewählt"
|
||||
|
||||
# AI Translated
|
||||
msgid "Add plugin"
|
||||
msgstr "Plugin hinzufügen"
|
||||
|
||||
# AI Translated
|
||||
msgid "Select plugin"
|
||||
msgstr "Plugin auswählen"
|
||||
|
||||
# AI Translated
|
||||
msgid "Remove plugin"
|
||||
msgstr "Plugin entfernen"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "Kein Plugin ausgewählt"
|
||||
|
||||
# AI Translated
|
||||
msgid "Configure"
|
||||
msgstr "Konfigurieren"
|
||||
@@ -7560,6 +7556,12 @@ msgctxt "Layers"
|
||||
msgid "Bottom"
|
||||
msgstr "Untere"
|
||||
|
||||
msgid "This setting does not specify a plugin capability type."
|
||||
msgstr ""
|
||||
|
||||
msgid "This setting specifies an unrecognized plugin capability type: "
|
||||
msgstr ""
|
||||
|
||||
# AI Translated
|
||||
msgid "Plugin Selection"
|
||||
msgstr "Plugin-Auswahl"
|
||||
@@ -9084,6 +9086,15 @@ msgstr ""
|
||||
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
|
||||
msgstr ""
|
||||
|
||||
msgid "Recent actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
|
||||
msgstr ""
|
||||
|
||||
msgid "Pop up to select filament grouping mode"
|
||||
msgstr "Popup zum Auswählen des Filament-Gruppierungsmodus"
|
||||
|
||||
@@ -21634,6 +21645,10 @@ msgstr ""
|
||||
"Verwerfungen vermeiden\n"
|
||||
"Wussten Sie, dass beim Drucken von Materialien, die zu Verwerfungen neigen, wie z.B. ABS, durch eine entsprechende Erhöhung der Heizbetttemperatur die Wahrscheinlichkeit von Verwerfungen verringert werden kann?"
|
||||
|
||||
# AI Translated
|
||||
#~ msgid "Select plugin"
|
||||
#~ msgstr "Plugin auswählen"
|
||||
|
||||
#~ msgid "Select the language"
|
||||
#~ msgstr "Sprache wählen"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-09-11 12:33+0800\n"
|
||||
"POT-Creation-Date: 2026-09-11 17:15+0800\n"
|
||||
"PO-Revision-Date: 2026-06-17 15:44-0300\n"
|
||||
"Last-Translator: Alexandre Folle de Menezes\n"
|
||||
"Language-Team: \n"
|
||||
@@ -5031,16 +5031,13 @@ msgstr ""
|
||||
msgid "System agents"
|
||||
msgstr ""
|
||||
|
||||
msgid "No plugin selected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Add plugin"
|
||||
msgstr ""
|
||||
|
||||
msgid "Select plugin"
|
||||
msgid "Remove plugin"
|
||||
msgstr ""
|
||||
|
||||
msgid "Remove plugin"
|
||||
msgid "No plugin selected"
|
||||
msgstr ""
|
||||
|
||||
msgid "Configure"
|
||||
@@ -7193,6 +7190,12 @@ msgctxt "Layers"
|
||||
msgid "Bottom"
|
||||
msgstr ""
|
||||
|
||||
msgid "This setting does not specify a plugin capability type."
|
||||
msgstr ""
|
||||
|
||||
msgid "This setting specifies an unrecognized plugin capability type: "
|
||||
msgstr ""
|
||||
|
||||
msgid "Plugin Selection"
|
||||
msgstr ""
|
||||
|
||||
@@ -8587,6 +8590,15 @@ msgstr ""
|
||||
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
|
||||
msgstr ""
|
||||
|
||||
msgid "Recent actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
|
||||
msgstr ""
|
||||
|
||||
msgid "Pop up to select filament grouping mode"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-09-11 12:33+0800\n"
|
||||
"POT-Creation-Date: 2026-09-11 17:15+0800\n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: Ian A. Bassi <>\n"
|
||||
"Language-Team: \n"
|
||||
@@ -5198,18 +5198,15 @@ msgstr "Formato inválido. Formato de vector esperado: \"%1%\""
|
||||
msgid "System agents"
|
||||
msgstr "Agentes del sistema"
|
||||
|
||||
msgid "No plugin selected"
|
||||
msgstr "Ningún plugin seleccionado"
|
||||
|
||||
msgid "Add plugin"
|
||||
msgstr "Añadir plugin"
|
||||
|
||||
msgid "Select plugin"
|
||||
msgstr "Seleccionar plugin"
|
||||
|
||||
msgid "Remove plugin"
|
||||
msgstr "Eliminar plugin"
|
||||
|
||||
msgid "No plugin selected"
|
||||
msgstr "Ningún plugin seleccionado"
|
||||
|
||||
msgid "Configure"
|
||||
msgstr "Configurar"
|
||||
|
||||
@@ -7405,6 +7402,12 @@ msgctxt "Layers"
|
||||
msgid "Bottom"
|
||||
msgstr "Inferior"
|
||||
|
||||
msgid "This setting does not specify a plugin capability type."
|
||||
msgstr ""
|
||||
|
||||
msgid "This setting specifies an unrecognized plugin capability type: "
|
||||
msgstr ""
|
||||
|
||||
msgid "Plugin Selection"
|
||||
msgstr "Selección de plugins"
|
||||
|
||||
@@ -8851,6 +8854,15 @@ msgstr ""
|
||||
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
|
||||
msgstr ""
|
||||
|
||||
msgid "Recent actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
|
||||
msgstr ""
|
||||
|
||||
msgid "Pop up to select filament grouping mode"
|
||||
msgstr "Ventana emergente para seleccionar el modo de agrupación de filamentos"
|
||||
|
||||
@@ -21180,6 +21192,9 @@ msgstr ""
|
||||
"Evita la deformación\n"
|
||||
"¿Sabías que al imprimir materiales propensos a la deformación como el ABS, aumentar adecuadamente la temperatura de la cama térmica puede reducir la probabilidad de deformaciones?"
|
||||
|
||||
#~ msgid "Select plugin"
|
||||
#~ msgstr "Seleccionar plugin"
|
||||
|
||||
#~ msgid "Select the language"
|
||||
#~ msgstr "Seleccionar el idioma"
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-09-11 12:33+0800\n"
|
||||
"POT-Creation-Date: 2026-09-11 17:15+0800\n"
|
||||
"PO-Revision-Date: 2026-07-20 13:33+0200\n"
|
||||
"Last-Translator: Manu Goiogana <mgoiogana@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
@@ -5247,18 +5247,15 @@ msgstr "Formatuak ez du balio. Espero den formatu bektoriala: \"%1%\""
|
||||
msgid "System agents"
|
||||
msgstr "Sistema-agenteak"
|
||||
|
||||
msgid "No plugin selected"
|
||||
msgstr "Ez da pluginik hautatu"
|
||||
|
||||
msgid "Add plugin"
|
||||
msgstr "Gehitu plugina"
|
||||
|
||||
msgid "Select plugin"
|
||||
msgstr "Hautatu plugina"
|
||||
|
||||
msgid "Remove plugin"
|
||||
msgstr "Kendu plugina"
|
||||
|
||||
msgid "No plugin selected"
|
||||
msgstr "Ez da pluginik hautatu"
|
||||
|
||||
msgid "Configure"
|
||||
msgstr "Konfiguratu"
|
||||
|
||||
@@ -7452,6 +7449,12 @@ msgctxt "Layers"
|
||||
msgid "Bottom"
|
||||
msgstr "Behea"
|
||||
|
||||
msgid "This setting does not specify a plugin capability type."
|
||||
msgstr ""
|
||||
|
||||
msgid "This setting specifies an unrecognized plugin capability type: "
|
||||
msgstr ""
|
||||
|
||||
msgid "Plugin Selection"
|
||||
msgstr "Plugin-hautaketa"
|
||||
|
||||
@@ -8932,6 +8935,15 @@ msgstr ""
|
||||
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
|
||||
msgstr ""
|
||||
|
||||
msgid "Recent actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
|
||||
msgstr ""
|
||||
|
||||
msgid "Pop up to select filament grouping mode"
|
||||
msgstr "Erakutsi filamentuak taldekatzeko modua hautatzeko leihoa"
|
||||
|
||||
@@ -21367,6 +21379,9 @@ msgstr ""
|
||||
"Saihestu okertzea\n"
|
||||
"Ba al zenekien ABS bezalako okertzeko joera duten materialak inprimatzean ohe beroaren tenperatura egoki igotzeak okertzeko probabilitatea murriztu dezakeela?"
|
||||
|
||||
#~ msgid "Select plugin"
|
||||
#~ msgstr "Hautatu plugina"
|
||||
|
||||
#~ msgid "Select the language"
|
||||
#~ msgstr "Hautatu hizkuntza"
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-09-11 12:33+0800\n"
|
||||
"POT-Creation-Date: 2026-09-11 17:15+0800\n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: Guislain Cyril, Thomas Lété\n"
|
||||
@@ -5285,22 +5285,18 @@ msgstr "Format invalide. Format vectoriel attendu : \"%1%\""
|
||||
msgid "System agents"
|
||||
msgstr "Agents système"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "Aucun plugin sélectionné"
|
||||
|
||||
# AI Translated
|
||||
msgid "Add plugin"
|
||||
msgstr "Ajouter un plugin"
|
||||
|
||||
# AI Translated
|
||||
msgid "Select plugin"
|
||||
msgstr "Sélectionner un plugin"
|
||||
|
||||
# AI Translated
|
||||
msgid "Remove plugin"
|
||||
msgstr "Supprimer le plugin"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "Aucun plugin sélectionné"
|
||||
|
||||
# AI Translated
|
||||
msgid "Configure"
|
||||
msgstr "Configurer"
|
||||
@@ -7503,6 +7499,12 @@ msgctxt "Layers"
|
||||
msgid "Bottom"
|
||||
msgstr "Inférieur"
|
||||
|
||||
msgid "This setting does not specify a plugin capability type."
|
||||
msgstr ""
|
||||
|
||||
msgid "This setting specifies an unrecognized plugin capability type: "
|
||||
msgstr ""
|
||||
|
||||
# AI Translated
|
||||
msgid "Plugin Selection"
|
||||
msgstr "Sélection des plugins"
|
||||
@@ -9000,6 +9002,15 @@ msgstr ""
|
||||
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
|
||||
msgstr ""
|
||||
|
||||
msgid "Recent actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
|
||||
msgstr ""
|
||||
|
||||
msgid "Pop up to select filament grouping mode"
|
||||
msgstr "Fenêtre contextuelle pour sélectionner le mode de regroupement des filaments"
|
||||
|
||||
@@ -21524,6 +21535,10 @@ msgstr ""
|
||||
"Éviter la déformation\n"
|
||||
"Saviez-vous que lors de l’impression de matériaux susceptibles de se déformer, tels que l’ABS, une augmentation appropriée de la température du plateau chauffant peut réduire la probabilité de déformation?"
|
||||
|
||||
# AI Translated
|
||||
#~ msgid "Select plugin"
|
||||
#~ msgstr "Sélectionner un plugin"
|
||||
|
||||
#~ msgid "Select the language"
|
||||
#~ msgstr "Sélectionner la langue"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-09-11 12:33+0800\n"
|
||||
"POT-Creation-Date: 2026-09-11 17:15+0800\n"
|
||||
"Language: hu\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -5382,22 +5382,18 @@ msgstr "Érvénytelen formátum. Elvárt vektor formátum: \"%1%\""
|
||||
msgid "System agents"
|
||||
msgstr "Rendszerügynökök"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "Nincs kiválasztott bővítmény"
|
||||
|
||||
# AI Translated
|
||||
msgid "Add plugin"
|
||||
msgstr "Bővítmény hozzáadása"
|
||||
|
||||
# AI Translated
|
||||
msgid "Select plugin"
|
||||
msgstr "Bővítmény kiválasztása"
|
||||
|
||||
# AI Translated
|
||||
msgid "Remove plugin"
|
||||
msgstr "Bővítmény eltávolítása"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "Nincs kiválasztott bővítmény"
|
||||
|
||||
# AI Translated
|
||||
msgid "Configure"
|
||||
msgstr "Konfigurálás"
|
||||
@@ -7617,6 +7613,12 @@ msgctxt "Layers"
|
||||
msgid "Bottom"
|
||||
msgstr "Alsó"
|
||||
|
||||
msgid "This setting does not specify a plugin capability type."
|
||||
msgstr ""
|
||||
|
||||
msgid "This setting specifies an unrecognized plugin capability type: "
|
||||
msgstr ""
|
||||
|
||||
# AI Translated
|
||||
msgid "Plugin Selection"
|
||||
msgstr "Bővítmény kiválasztása"
|
||||
@@ -9136,6 +9138,15 @@ msgstr ""
|
||||
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
|
||||
msgstr ""
|
||||
|
||||
msgid "Recent actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
|
||||
msgstr ""
|
||||
|
||||
msgid "Pop up to select filament grouping mode"
|
||||
msgstr "Felugró ablak a filamentcsoportosítási mód kiválasztásához"
|
||||
|
||||
@@ -21955,6 +21966,10 @@ msgstr ""
|
||||
"Kunkorodás elkerülése\n"
|
||||
"Tudtad, hogy a kunkorodásra hajlamos anyagok (például ABS) nyomtatásakor az asztal hőmérsékletének növelése csökkentheti a kunkorodás valószínűségét?"
|
||||
|
||||
# AI Translated
|
||||
#~ msgid "Select plugin"
|
||||
#~ msgstr "Bővítmény kiválasztása"
|
||||
|
||||
#~ msgid "Select the language"
|
||||
#~ msgstr "Válaszd ki a nyelvet"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-09-11 12:33+0800\n"
|
||||
"POT-Creation-Date: 2026-09-11 17:15+0800\n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
@@ -5383,22 +5383,18 @@ msgstr "Formato non valido. Formato vettoriale previsto: \"%1%\""
|
||||
msgid "System agents"
|
||||
msgstr "Agenti di sistema"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "Nessun plugin selezionato"
|
||||
|
||||
# AI Translated
|
||||
msgid "Add plugin"
|
||||
msgstr "Aggiungi plugin"
|
||||
|
||||
# AI Translated
|
||||
msgid "Select plugin"
|
||||
msgstr "Seleziona plugin"
|
||||
|
||||
# AI Translated
|
||||
msgid "Remove plugin"
|
||||
msgstr "Rimuovi plugin"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "Nessun plugin selezionato"
|
||||
|
||||
# AI Translated
|
||||
msgid "Configure"
|
||||
msgstr "Configura"
|
||||
@@ -7621,6 +7617,12 @@ msgctxt "Layers"
|
||||
msgid "Bottom"
|
||||
msgstr "Inferiore"
|
||||
|
||||
msgid "This setting does not specify a plugin capability type."
|
||||
msgstr ""
|
||||
|
||||
msgid "This setting specifies an unrecognized plugin capability type: "
|
||||
msgstr ""
|
||||
|
||||
# AI Translated
|
||||
msgid "Plugin Selection"
|
||||
msgstr "Selezione plugin"
|
||||
@@ -9138,6 +9140,15 @@ msgstr ""
|
||||
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
|
||||
msgstr ""
|
||||
|
||||
msgid "Recent actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
|
||||
msgstr ""
|
||||
|
||||
msgid "Pop up to select filament grouping mode"
|
||||
msgstr "Popup per selezionare la modalità di raggruppamento filamenti"
|
||||
|
||||
@@ -21979,6 +21990,10 @@ msgstr ""
|
||||
"Evita le deformazioni\n"
|
||||
"Sapevi che quando si stampano materiali soggetti a deformazioni come l'ABS, aumentare in modo appropriato la temperatura del piano riscaldato può ridurre la probabilità di deformazione?"
|
||||
|
||||
# AI Translated
|
||||
#~ msgid "Select plugin"
|
||||
#~ msgstr "Seleziona plugin"
|
||||
|
||||
#~ msgid "Select the language"
|
||||
#~ msgstr "Seleziona la lingua"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-09-11 12:33+0800\n"
|
||||
"POT-Creation-Date: 2026-09-11 17:15+0800\n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
@@ -5396,22 +5396,18 @@ msgstr "無効なフォーマット、%1%であるはずです。"
|
||||
msgid "System agents"
|
||||
msgstr "システムエージェント"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "プラグインが選択されていません"
|
||||
|
||||
# AI Translated
|
||||
msgid "Add plugin"
|
||||
msgstr "プラグインを追加"
|
||||
|
||||
# AI Translated
|
||||
msgid "Select plugin"
|
||||
msgstr "プラグインを選択"
|
||||
|
||||
# AI Translated
|
||||
msgid "Remove plugin"
|
||||
msgstr "プラグインを削除"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "プラグインが選択されていません"
|
||||
|
||||
# AI Translated
|
||||
msgid "Configure"
|
||||
msgstr "設定"
|
||||
@@ -7627,6 +7623,12 @@ msgctxt "Layers"
|
||||
msgid "Bottom"
|
||||
msgstr "底面"
|
||||
|
||||
msgid "This setting does not specify a plugin capability type."
|
||||
msgstr ""
|
||||
|
||||
msgid "This setting specifies an unrecognized plugin capability type: "
|
||||
msgstr ""
|
||||
|
||||
# AI Translated
|
||||
msgid "Plugin Selection"
|
||||
msgstr "プラグインの選択"
|
||||
@@ -9158,6 +9160,15 @@ msgstr ""
|
||||
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
|
||||
msgstr ""
|
||||
|
||||
msgid "Recent actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
|
||||
msgstr ""
|
||||
|
||||
msgid "Pop up to select filament grouping mode"
|
||||
msgstr "フィラメントグルーピングモード選択のポップアップ"
|
||||
|
||||
@@ -22534,6 +22545,10 @@ msgstr ""
|
||||
"反りを避ける\n"
|
||||
"ABSのような反りやすい素材を印刷する場合、ヒートベッドの温度を適切に上げることで、反りが発生する確率を下げることができることをご存知ですか?"
|
||||
|
||||
# AI Translated
|
||||
#~ msgid "Select plugin"
|
||||
#~ msgstr "プラグインを選択"
|
||||
|
||||
#~ msgid "Select the language"
|
||||
#~ msgstr "言語を選択"
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-09-11 12:33+0800\n"
|
||||
"POT-Creation-Date: 2026-09-11 17:15+0800\n"
|
||||
"PO-Revision-Date: 2025-06-02 17:12+0900\n"
|
||||
"Last-Translator: crwusiz <crwusiz@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
@@ -5408,22 +5408,18 @@ msgstr "잘못된 형식입니다. 필요한 벡터 형식: \"%1%\""
|
||||
msgid "System agents"
|
||||
msgstr "시스템 에이전트"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "선택된 플러그인 없음"
|
||||
|
||||
# AI Translated
|
||||
msgid "Add plugin"
|
||||
msgstr "플러그인 추가"
|
||||
|
||||
# AI Translated
|
||||
msgid "Select plugin"
|
||||
msgstr "플러그인 선택"
|
||||
|
||||
# AI Translated
|
||||
msgid "Remove plugin"
|
||||
msgstr "플러그인 제거"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "선택된 플러그인 없음"
|
||||
|
||||
# AI Translated
|
||||
msgid "Configure"
|
||||
msgstr "구성"
|
||||
@@ -7640,6 +7636,12 @@ msgctxt "Layers"
|
||||
msgid "Bottom"
|
||||
msgstr "하부"
|
||||
|
||||
msgid "This setting does not specify a plugin capability type."
|
||||
msgstr ""
|
||||
|
||||
msgid "This setting specifies an unrecognized plugin capability type: "
|
||||
msgstr ""
|
||||
|
||||
# AI Translated
|
||||
msgid "Plugin Selection"
|
||||
msgstr "플러그인 선택"
|
||||
@@ -9220,6 +9222,15 @@ msgstr ""
|
||||
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
|
||||
msgstr ""
|
||||
|
||||
msgid "Recent actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
|
||||
msgstr ""
|
||||
|
||||
msgid "Pop up to select filament grouping mode"
|
||||
msgstr "필라멘트 그룹화 모드를 선택하기 위한 팝업"
|
||||
|
||||
@@ -22401,6 +22412,10 @@ msgstr ""
|
||||
"뒤틀림 방지\n"
|
||||
"ABS와 같이 뒤틀림이 발생하기 쉬운 소재를 출력할 때, 히트베드 온도를 적절하게 높이면 뒤틀림 가능성을 줄일 수 있다는 사실을 알고 계셨나요?"
|
||||
|
||||
# AI Translated
|
||||
#~ msgid "Select plugin"
|
||||
#~ msgstr "플러그인 선택"
|
||||
|
||||
#~ msgid "Select the language"
|
||||
#~ msgstr "언어 선택"
|
||||
|
||||
|
||||
@@ -179,6 +179,7 @@ src/slic3r/GUI/PublishDialog.cpp
|
||||
src/slic3r/GUI/PublishSettingsDialog.cpp
|
||||
src/slic3r/GUI/SavePresetDialog.cpp
|
||||
src/slic3r/GUI/Search.cpp
|
||||
src/slic3r/GUI/SettingsIndex.cpp
|
||||
src/slic3r/GUI/Selection.cpp
|
||||
src/slic3r/GUI/SelectMachine.cpp
|
||||
src/slic3r/GUI/PrePrintChecker.cpp
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-09-11 12:33+0800\n"
|
||||
"POT-Creation-Date: 2026-09-11 17:15+0800\n"
|
||||
"PO-Revision-Date: 2026-07-02 14:13+0300\n"
|
||||
"Last-Translator: Gintaras Kučinskas <sharanchius@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
@@ -5369,22 +5369,18 @@ msgstr "Netinkamas formatas. Tinkamas vektorinis formatas: \"%1%\""
|
||||
msgid "System agents"
|
||||
msgstr "Sisteminiai agentai"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "Nepasirinktas joks papildinys"
|
||||
|
||||
# AI Translated
|
||||
msgid "Add plugin"
|
||||
msgstr "Pridėti papildinį"
|
||||
|
||||
# AI Translated
|
||||
msgid "Select plugin"
|
||||
msgstr "Pasirinkti papildinį"
|
||||
|
||||
# AI Translated
|
||||
msgid "Remove plugin"
|
||||
msgstr "Pašalinti papildinį"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "Nepasirinktas joks papildinys"
|
||||
|
||||
# AI Translated
|
||||
msgid "Configure"
|
||||
msgstr "Konfigūruoti"
|
||||
@@ -7604,6 +7600,12 @@ msgctxt "Layers"
|
||||
msgid "Bottom"
|
||||
msgstr "Apatinis"
|
||||
|
||||
msgid "This setting does not specify a plugin capability type."
|
||||
msgstr ""
|
||||
|
||||
msgid "This setting specifies an unrecognized plugin capability type: "
|
||||
msgstr ""
|
||||
|
||||
# AI Translated
|
||||
msgid "Plugin Selection"
|
||||
msgstr "Papildinio pasirinkimas"
|
||||
@@ -9119,6 +9121,15 @@ msgstr ""
|
||||
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
|
||||
msgstr ""
|
||||
|
||||
msgid "Recent actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
|
||||
msgstr ""
|
||||
|
||||
msgid "Pop up to select filament grouping mode"
|
||||
msgstr "Iššokantis langas gijų grupavimo režimui pasirinkti"
|
||||
|
||||
@@ -21681,6 +21692,10 @@ msgstr ""
|
||||
"Venkite deformacijų (warping)\n"
|
||||
"Ar žinojote, kad spausdinant medžiagas, kurios yra linkusios trauktis ir riestis (pvz., ABS), tinkamas kaitinamojo pagrindo temperatūros padidinimas gali sumažinti deformacijų (warping) tikimybę?"
|
||||
|
||||
# AI Translated
|
||||
#~ msgid "Select plugin"
|
||||
#~ msgstr "Pasirinkti papildinį"
|
||||
|
||||
#~ msgid "Select the language"
|
||||
#~ msgstr "Pasirinkite kalbą"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-09-11 12:33+0800\n"
|
||||
"POT-Creation-Date: 2026-09-11 17:15+0800\n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
@@ -5878,22 +5878,18 @@ msgstr "Onjuist formaat. Het Vector formaat wordt verwacht: \"%1%\""
|
||||
msgid "System agents"
|
||||
msgstr "Systeemagenten"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "Geen plug-in geselecteerd"
|
||||
|
||||
# AI Translated
|
||||
msgid "Add plugin"
|
||||
msgstr "Plug-in toevoegen"
|
||||
|
||||
# AI Translated
|
||||
msgid "Select plugin"
|
||||
msgstr "Plug-in selecteren"
|
||||
|
||||
# AI Translated
|
||||
msgid "Remove plugin"
|
||||
msgstr "Plug-in verwijderen"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "Geen plug-in geselecteerd"
|
||||
|
||||
# AI Translated
|
||||
msgid "Configure"
|
||||
msgstr "Configureren"
|
||||
@@ -8292,6 +8288,12 @@ msgctxt "Layers"
|
||||
msgid "Bottom"
|
||||
msgstr "Onderste"
|
||||
|
||||
msgid "This setting does not specify a plugin capability type."
|
||||
msgstr ""
|
||||
|
||||
msgid "This setting specifies an unrecognized plugin capability type: "
|
||||
msgstr ""
|
||||
|
||||
# AI Translated
|
||||
msgid "Plugin Selection"
|
||||
msgstr "Plug-inselectie"
|
||||
@@ -9969,6 +9971,15 @@ msgstr ""
|
||||
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
|
||||
msgstr ""
|
||||
|
||||
msgid "Recent actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
|
||||
msgstr ""
|
||||
|
||||
# AI Translated
|
||||
msgid "Pop up to select filament grouping mode"
|
||||
msgstr "Pop-up om de filamentgroeperingsmodus te kiezen"
|
||||
@@ -24121,6 +24132,10 @@ msgstr ""
|
||||
"Kromtrekken voorkomen\n"
|
||||
"Wist je dat bij het printen van materialen die gevoelig zijn voor kromtrekken, zoals ABS, een juiste verhoging van de temperatuur van het warmtebed de kans op kromtrekken kan verkleinen?"
|
||||
|
||||
# AI Translated
|
||||
#~ msgid "Select plugin"
|
||||
#~ msgstr "Plug-in selecteren"
|
||||
|
||||
#~ msgid "Select the language"
|
||||
#~ msgstr "Kies de taal"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OrcaSlicer 2.3.0-rc\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-09-11 12:33+0800\n"
|
||||
"POT-Creation-Date: 2026-09-11 17:15+0800\n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: Krzysztof Morga <<tlumaczeniebs@gmail.com>>\n"
|
||||
"Language-Team: \n"
|
||||
@@ -5498,22 +5498,18 @@ msgstr "Nieprawidłowy format. Oczekiwano formatu wektorowego: „%1%”"
|
||||
msgid "System agents"
|
||||
msgstr "Agenci systemowi"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "Nie wybrano wtyczki"
|
||||
|
||||
# AI Translated
|
||||
msgid "Add plugin"
|
||||
msgstr "Dodaj wtyczkę"
|
||||
|
||||
# AI Translated
|
||||
msgid "Select plugin"
|
||||
msgstr "Wybierz wtyczkę"
|
||||
|
||||
# AI Translated
|
||||
msgid "Remove plugin"
|
||||
msgstr "Usuń wtyczkę"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "Nie wybrano wtyczki"
|
||||
|
||||
# AI Translated
|
||||
msgid "Configure"
|
||||
msgstr "Konfiguruj"
|
||||
@@ -7798,6 +7794,12 @@ msgctxt "Layers"
|
||||
msgid "Bottom"
|
||||
msgstr "Dół"
|
||||
|
||||
msgid "This setting does not specify a plugin capability type."
|
||||
msgstr ""
|
||||
|
||||
msgid "This setting specifies an unrecognized plugin capability type: "
|
||||
msgstr ""
|
||||
|
||||
# AI Translated
|
||||
msgid "Plugin Selection"
|
||||
msgstr "Wybór wtyczek"
|
||||
@@ -9375,6 +9377,15 @@ msgstr ""
|
||||
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
|
||||
msgstr ""
|
||||
|
||||
msgid "Recent actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
|
||||
msgstr ""
|
||||
|
||||
msgid "Pop up to select filament grouping mode"
|
||||
msgstr "Okno dialogowe do wyboru trybu grupowania filamentów"
|
||||
|
||||
@@ -22578,6 +22589,10 @@ msgstr ""
|
||||
"Unikaj odkształceń\n"
|
||||
"Czy wiesz, że podczas drukowania filamentami podatnymi na odkształcenia, takimi jak ABS, odpowiednie zwiększenie temperatury podgrzewanej płyty może zmniejszyć prawdopodobieństwo odkształceń?"
|
||||
|
||||
# AI Translated
|
||||
#~ msgid "Select plugin"
|
||||
#~ msgstr "Wybierz wtyczkę"
|
||||
|
||||
#~ msgid "Select the language"
|
||||
#~ msgstr "Wybierz język"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-09-11 12:33+0800\n"
|
||||
"POT-Creation-Date: 2026-09-11 17:15+0800\n"
|
||||
"PO-Revision-Date: 2026-07-26 11:14-0300\n"
|
||||
"Last-Translator: Alexandre Folle de Menezes\n"
|
||||
"Language-Team: Portuguese, Brazilian\n"
|
||||
@@ -5212,18 +5212,15 @@ msgstr "Formato inválido. Formato de vetor esperado: \"%1%\""
|
||||
msgid "System agents"
|
||||
msgstr "Agentes do sistema"
|
||||
|
||||
msgid "No plugin selected"
|
||||
msgstr "Nenhum plugin selecionado"
|
||||
|
||||
msgid "Add plugin"
|
||||
msgstr "Adicionar plugin"
|
||||
|
||||
msgid "Select plugin"
|
||||
msgstr "Selecionar plugin"
|
||||
|
||||
msgid "Remove plugin"
|
||||
msgstr "Remover plugin"
|
||||
|
||||
msgid "No plugin selected"
|
||||
msgstr "Nenhum plugin selecionado"
|
||||
|
||||
msgid "Configure"
|
||||
msgstr "Configurar"
|
||||
|
||||
@@ -7423,6 +7420,12 @@ msgctxt "Layers"
|
||||
msgid "Bottom"
|
||||
msgstr "Inferior"
|
||||
|
||||
msgid "This setting does not specify a plugin capability type."
|
||||
msgstr ""
|
||||
|
||||
msgid "This setting specifies an unrecognized plugin capability type: "
|
||||
msgstr ""
|
||||
|
||||
msgid "Plugin Selection"
|
||||
msgstr "Seleção de plugins"
|
||||
|
||||
@@ -8902,6 +8905,15 @@ msgstr ""
|
||||
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
|
||||
msgstr ""
|
||||
|
||||
msgid "Recent actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
|
||||
msgstr ""
|
||||
|
||||
msgid "Pop up to select filament grouping mode"
|
||||
msgstr "Abrir seleção do modo de agrupamento de filamento"
|
||||
|
||||
@@ -21292,6 +21304,9 @@ msgstr ""
|
||||
"Evitar empenamento\n"
|
||||
"Você sabia que ao imprimir materiais propensos ao empenamento como ABS, aumentar adequadamente a temperatura da mesa aquecida pode reduzir a probabilidade de empenamento?"
|
||||
|
||||
#~ msgid "Select plugin"
|
||||
#~ msgstr "Selecionar plugin"
|
||||
|
||||
#~ msgid "Select the language"
|
||||
#~ msgstr "Selecione o idioma"
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OrcaSlicer V2.5.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-09-11 12:33+0800\n"
|
||||
"POT-Creation-Date: 2026-09-11 17:15+0800\n"
|
||||
"PO-Revision-Date: 2026-02-25 13:38+0300\n"
|
||||
"Last-Translator: Felix14_v2\n"
|
||||
"Language-Team: Felix14_v2 (ДС/ТГ: @felix14_v2, почта: aleks111001@list.ru), Andylg <andylg@yandex.ru>\n"
|
||||
@@ -5378,18 +5378,15 @@ msgstr "Недопустимый формат. Ожидаемый векторн
|
||||
msgid "System agents"
|
||||
msgstr "Системные агенты"
|
||||
|
||||
msgid "No plugin selected"
|
||||
msgstr "Плагины не выбраны"
|
||||
|
||||
msgid "Add plugin"
|
||||
msgstr "Добавить плагин"
|
||||
|
||||
msgid "Select plugin"
|
||||
msgstr "Выбрать плагин"
|
||||
|
||||
msgid "Remove plugin"
|
||||
msgstr "Удалить плагин"
|
||||
|
||||
msgid "No plugin selected"
|
||||
msgstr "Плагины не выбраны"
|
||||
|
||||
msgid "Configure"
|
||||
msgstr "Настроить"
|
||||
|
||||
@@ -7681,6 +7678,12 @@ msgctxt "Layers"
|
||||
msgid "Bottom"
|
||||
msgstr "Снизу"
|
||||
|
||||
msgid "This setting does not specify a plugin capability type."
|
||||
msgstr ""
|
||||
|
||||
msgid "This setting specifies an unrecognized plugin capability type: "
|
||||
msgstr ""
|
||||
|
||||
msgid "Plugin Selection"
|
||||
msgstr "Выбор плагинов"
|
||||
|
||||
@@ -9182,6 +9185,15 @@ msgstr ""
|
||||
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
|
||||
msgstr ""
|
||||
|
||||
msgid "Recent actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
|
||||
msgstr ""
|
||||
|
||||
# Запрашивать выбор режима группировки?
|
||||
msgid "Pop up to select filament grouping mode"
|
||||
msgstr "Всплывающее окно для выбора режима группировки материалов"
|
||||
@@ -22331,6 +22343,9 @@ msgstr ""
|
||||
"Предотвращение коробления материала\n"
|
||||
"Знаете ли вы, что при печати материалами, склонными к короблению, таких как ABS, повышение температуры подогреваемого стола может снизить эту вероятность?"
|
||||
|
||||
#~ msgid "Select plugin"
|
||||
#~ msgstr "Выбрать плагин"
|
||||
|
||||
#~ msgid "Select the language"
|
||||
#~ msgstr "Выбор языка"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-09-11 12:33+0800\n"
|
||||
"POT-Creation-Date: 2026-09-11 17:15+0800\n"
|
||||
"Language: sv\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -5954,22 +5954,18 @@ msgstr "Ogiltligt format. Förväntat vector format: \"%1%\""
|
||||
msgid "System agents"
|
||||
msgstr "Systemagenter"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "Ingen insticksmodul vald"
|
||||
|
||||
# AI Translated
|
||||
msgid "Add plugin"
|
||||
msgstr "Lägg till insticksmodul"
|
||||
|
||||
# AI Translated
|
||||
msgid "Select plugin"
|
||||
msgstr "Välj insticksmodul"
|
||||
|
||||
# AI Translated
|
||||
msgid "Remove plugin"
|
||||
msgstr "Ta bort insticksmodul"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "Ingen insticksmodul vald"
|
||||
|
||||
# AI Translated
|
||||
msgid "Configure"
|
||||
msgstr "Konfigurera"
|
||||
@@ -8379,6 +8375,12 @@ msgctxt "Layers"
|
||||
msgid "Bottom"
|
||||
msgstr "Bottenlager"
|
||||
|
||||
msgid "This setting does not specify a plugin capability type."
|
||||
msgstr ""
|
||||
|
||||
msgid "This setting specifies an unrecognized plugin capability type: "
|
||||
msgstr ""
|
||||
|
||||
# AI Translated
|
||||
msgid "Plugin Selection"
|
||||
msgstr "Val av insticksmodul"
|
||||
@@ -10075,6 +10077,15 @@ msgstr ""
|
||||
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
|
||||
msgstr ""
|
||||
|
||||
msgid "Recent actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
|
||||
msgstr ""
|
||||
|
||||
# AI Translated
|
||||
msgid "Pop up to select filament grouping mode"
|
||||
msgstr "Visa dialogruta för val av filamentgrupperingsläge"
|
||||
@@ -24409,6 +24420,10 @@ msgstr ""
|
||||
"Undvik vridning\n"
|
||||
"Visste du att när du skriver ut material som är benägna att vrida, såsom ABS, kan en lämplig ökning av värmebäddens temperatur minska sannolikheten för vridning?"
|
||||
|
||||
# AI Translated
|
||||
#~ msgid "Select plugin"
|
||||
#~ msgstr "Välj insticksmodul"
|
||||
|
||||
#~ msgid "Select the language"
|
||||
#~ msgstr "Välj språk"
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-09-11 12:33+0800\n"
|
||||
"POT-Creation-Date: 2026-09-11 17:15+0800\n"
|
||||
"PO-Revision-Date: 2026-06-19 13:40+0700\n"
|
||||
"Last-Translator: Icezaza\n"
|
||||
"Language-Team: Thai\n"
|
||||
@@ -5363,22 +5363,18 @@ msgstr "รูปแบบไม่ถูกต้อง รูปแบบเ
|
||||
msgid "System agents"
|
||||
msgstr "เอเจนต์ระบบ"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "ไม่ได้เลือกปลั๊กอิน"
|
||||
|
||||
# AI Translated
|
||||
msgid "Add plugin"
|
||||
msgstr "เพิ่มปลั๊กอิน"
|
||||
|
||||
# AI Translated
|
||||
msgid "Select plugin"
|
||||
msgstr "เลือกปลั๊กอิน"
|
||||
|
||||
# AI Translated
|
||||
msgid "Remove plugin"
|
||||
msgstr "ลบปลั๊กอิน"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "ไม่ได้เลือกปลั๊กอิน"
|
||||
|
||||
# AI Translated
|
||||
msgid "Configure"
|
||||
msgstr "กำหนดค่า"
|
||||
@@ -7577,6 +7573,12 @@ msgctxt "Layers"
|
||||
msgid "Bottom"
|
||||
msgstr "ล่าง"
|
||||
|
||||
msgid "This setting does not specify a plugin capability type."
|
||||
msgstr ""
|
||||
|
||||
msgid "This setting specifies an unrecognized plugin capability type: "
|
||||
msgstr ""
|
||||
|
||||
# AI Translated
|
||||
msgid "Plugin Selection"
|
||||
msgstr "การเลือกปลั๊กอิน"
|
||||
@@ -9088,6 +9090,15 @@ msgstr ""
|
||||
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
|
||||
msgstr ""
|
||||
|
||||
msgid "Recent actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
|
||||
msgstr ""
|
||||
|
||||
msgid "Pop up to select filament grouping mode"
|
||||
msgstr "ปรากฏขึ้นเพื่อเลือกโหมดการจัดกลุ่มเส้นพลาสติก"
|
||||
|
||||
@@ -21709,6 +21720,10 @@ msgstr ""
|
||||
"หลีกเลี่ยงการบิดเบี้ยว\n"
|
||||
"คุณรู้หรือไม่ว่าเมื่อพิมพ์วัสดุที่มีแนวโน้มที่จะเกิดการบิดเบี้ยว เช่น ABS การเพิ่มอุณหภูมิฐานพิมพ์อย่างเหมาะสมสามารถลดความน่าจะเป็นของการบิดเบี้ยวได้"
|
||||
|
||||
# AI Translated
|
||||
#~ msgid "Select plugin"
|
||||
#~ msgstr "เลือกปลั๊กอิน"
|
||||
|
||||
#~ msgid "Select the language"
|
||||
#~ msgstr "เลือกภาษา"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-09-11 12:33+0800\n"
|
||||
"POT-Creation-Date: 2026-09-11 17:15+0800\n"
|
||||
"PO-Revision-Date: 2026-08-21 23:18+0300\n"
|
||||
"Last-Translator: GlauTech\n"
|
||||
"Language-Team: \n"
|
||||
@@ -5426,22 +5426,18 @@ msgstr "Geçersiz format. Beklenen vektör formatı: \"%1%\""
|
||||
msgid "System agents"
|
||||
msgstr "Sistem aracıları"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "Eklenti seçilmedi"
|
||||
|
||||
# AI Translated
|
||||
msgid "Add plugin"
|
||||
msgstr "Eklenti ekle"
|
||||
|
||||
# AI Translated
|
||||
msgid "Select plugin"
|
||||
msgstr "Eklenti seç"
|
||||
|
||||
# AI Translated
|
||||
msgid "Remove plugin"
|
||||
msgstr "Eklentiyi kaldır"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "Eklenti seçilmedi"
|
||||
|
||||
# AI Translated
|
||||
msgid "Configure"
|
||||
msgstr "Yapılandır"
|
||||
@@ -7666,6 +7662,12 @@ msgctxt "Layers"
|
||||
msgid "Bottom"
|
||||
msgstr "Alt"
|
||||
|
||||
msgid "This setting does not specify a plugin capability type."
|
||||
msgstr ""
|
||||
|
||||
msgid "This setting specifies an unrecognized plugin capability type: "
|
||||
msgstr ""
|
||||
|
||||
# AI Translated
|
||||
msgid "Plugin Selection"
|
||||
msgstr "Eklenti Seçimi"
|
||||
@@ -9193,6 +9195,15 @@ msgstr ""
|
||||
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
|
||||
msgstr ""
|
||||
|
||||
msgid "Recent actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
|
||||
msgstr ""
|
||||
|
||||
msgid "Pop up to select filament grouping mode"
|
||||
msgstr "Filament gruplama modunu seçmek için açılır pencere"
|
||||
|
||||
@@ -22164,6 +22175,10 @@ msgstr ""
|
||||
"Eğilmeyi önleyin\n"
|
||||
"ABS gibi bükülmeye yatkın malzemelere baskı yaparken, ısıtma yatağı sıcaklığının uygun şekilde arttırılmasının bükülme olasılığını azaltabileceğini biliyor muydunuz?"
|
||||
|
||||
# AI Translated
|
||||
#~ msgid "Select plugin"
|
||||
#~ msgstr "Eklenti seç"
|
||||
|
||||
#~ msgid "Select the language"
|
||||
#~ msgstr "Dili seçin"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: orcaslicerua\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-09-11 12:33+0800\n"
|
||||
"POT-Creation-Date: 2026-09-11 17:15+0800\n"
|
||||
"PO-Revision-Date: 2026-07-17 16:25+0300\n"
|
||||
"Last-Translator: Andrij Mizyk <andm1zyk@proton.me>\n"
|
||||
"Language-Team: Ukrainian\n"
|
||||
@@ -5375,22 +5375,18 @@ msgstr "Невірний формат. Очікуваний векторний
|
||||
msgid "System agents"
|
||||
msgstr "Системні агенти"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "Плагін не вибрано"
|
||||
|
||||
# AI Translated
|
||||
msgid "Add plugin"
|
||||
msgstr "Додати плагін"
|
||||
|
||||
# AI Translated
|
||||
msgid "Select plugin"
|
||||
msgstr "Вибрати плагін"
|
||||
|
||||
# AI Translated
|
||||
msgid "Remove plugin"
|
||||
msgstr "Вилучити плагін"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "Плагін не вибрано"
|
||||
|
||||
# AI Translated
|
||||
msgid "Configure"
|
||||
msgstr "Налаштувати"
|
||||
@@ -7650,6 +7646,12 @@ msgctxt "Layers"
|
||||
msgid "Bottom"
|
||||
msgstr "Низ"
|
||||
|
||||
msgid "This setting does not specify a plugin capability type."
|
||||
msgstr ""
|
||||
|
||||
msgid "This setting specifies an unrecognized plugin capability type: "
|
||||
msgstr ""
|
||||
|
||||
# AI Translated
|
||||
msgid "Plugin Selection"
|
||||
msgstr "Вибір плагіна"
|
||||
@@ -9211,6 +9213,15 @@ msgstr ""
|
||||
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
|
||||
msgstr ""
|
||||
|
||||
msgid "Recent actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
|
||||
msgstr ""
|
||||
|
||||
# AI Translated
|
||||
msgid "Pop up to select filament grouping mode"
|
||||
msgstr "Показувати вікно вибору режиму групування філаментів"
|
||||
@@ -22325,6 +22336,10 @@ msgstr ""
|
||||
"Уникнення деформації\n"
|
||||
"Чи знаєте ви, що при друку матеріалами, схильними до деформації, такими як ABS, відповідне підвищення температури столу може зменшити ймовірність деформації?"
|
||||
|
||||
# AI Translated
|
||||
#~ msgid "Select plugin"
|
||||
#~ msgstr "Вибрати плагін"
|
||||
|
||||
#~ msgid "Select the language"
|
||||
#~ msgstr "Вибрати мову"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-09-11 12:33+0800\n"
|
||||
"POT-Creation-Date: 2026-09-11 17:15+0800\n"
|
||||
"PO-Revision-Date: 2025-10-02 17:43+0700\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: hainguyen.ts13@gmail.com\n"
|
||||
@@ -5679,22 +5679,18 @@ msgstr "Định dạng không hợp lệ. Mong đợi định dạng vector: \"%
|
||||
msgid "System agents"
|
||||
msgstr "Tác nhân hệ thống"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "Chưa chọn plugin"
|
||||
|
||||
# AI Translated
|
||||
msgid "Add plugin"
|
||||
msgstr "Thêm plugin"
|
||||
|
||||
# AI Translated
|
||||
msgid "Select plugin"
|
||||
msgstr "Chọn plugin"
|
||||
|
||||
# AI Translated
|
||||
msgid "Remove plugin"
|
||||
msgstr "Xóa plugin"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "Chưa chọn plugin"
|
||||
|
||||
# AI Translated
|
||||
msgid "Configure"
|
||||
msgstr "Cấu hình"
|
||||
@@ -8035,6 +8031,12 @@ msgctxt "Layers"
|
||||
msgid "Bottom"
|
||||
msgstr "Dưới"
|
||||
|
||||
msgid "This setting does not specify a plugin capability type."
|
||||
msgstr ""
|
||||
|
||||
msgid "This setting specifies an unrecognized plugin capability type: "
|
||||
msgstr ""
|
||||
|
||||
# AI Translated
|
||||
msgid "Plugin Selection"
|
||||
msgstr "Chọn plugin"
|
||||
@@ -9674,6 +9676,15 @@ msgstr ""
|
||||
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
|
||||
msgstr ""
|
||||
|
||||
msgid "Recent actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
|
||||
msgstr ""
|
||||
|
||||
# AI Translated
|
||||
msgid "Pop up to select filament grouping mode"
|
||||
msgstr "Hiện cửa sổ để chọn chế độ nhóm filament"
|
||||
@@ -23048,6 +23059,10 @@ msgstr ""
|
||||
"Tránh cong vênh\n"
|
||||
"Bạn có biết rằng khi in vật liệu dễ cong vênh như ABS, tăng nhiệt độ bàn nóng một cách thích hợp có thể giảm xác suất cong vênh không?"
|
||||
|
||||
# AI Translated
|
||||
#~ msgid "Select plugin"
|
||||
#~ msgstr "Chọn plugin"
|
||||
|
||||
#~ msgid "Select the language"
|
||||
#~ msgstr "Chọn ngôn ngữ"
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Slic3rPE\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-09-11 12:33+0800\n"
|
||||
"POT-Creation-Date: 2026-09-11 17:15+0800\n"
|
||||
"PO-Revision-Date: 2026-06-11 12:37-0300\n"
|
||||
"Last-Translator: Handle <mail@bysb.net>\n"
|
||||
"Language-Team: \n"
|
||||
@@ -5219,22 +5219,18 @@ msgstr "无效格式,应该是\"%1%\"这种数组格式"
|
||||
msgid "System agents"
|
||||
msgstr "系统代理"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "未选择插件"
|
||||
|
||||
# AI Translated
|
||||
msgid "Add plugin"
|
||||
msgstr "添加插件"
|
||||
|
||||
# AI Translated
|
||||
msgid "Select plugin"
|
||||
msgstr "选择插件"
|
||||
|
||||
# AI Translated
|
||||
msgid "Remove plugin"
|
||||
msgstr "移除插件"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "未选择插件"
|
||||
|
||||
# AI Translated
|
||||
msgid "Configure"
|
||||
msgstr "配置"
|
||||
@@ -7430,6 +7426,12 @@ msgctxt "Layers"
|
||||
msgid "Bottom"
|
||||
msgstr "底部"
|
||||
|
||||
msgid "This setting does not specify a plugin capability type."
|
||||
msgstr ""
|
||||
|
||||
msgid "This setting specifies an unrecognized plugin capability type: "
|
||||
msgstr ""
|
||||
|
||||
msgid "Plugin Selection"
|
||||
msgstr "插件选择"
|
||||
|
||||
@@ -8910,6 +8912,15 @@ msgstr ""
|
||||
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
|
||||
msgstr ""
|
||||
|
||||
msgid "Recent actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
|
||||
msgstr ""
|
||||
|
||||
msgid "Pop up to select filament grouping mode"
|
||||
msgstr "弹出选择耗材丝分组模式"
|
||||
|
||||
@@ -21457,6 +21468,10 @@ msgstr ""
|
||||
"避免翘曲\n"
|
||||
"您知道吗?打印ABS这类易翘曲材料时,适当提高热床温度可以降低翘曲的概率。"
|
||||
|
||||
# AI Translated
|
||||
#~ msgid "Select plugin"
|
||||
#~ msgstr "选择插件"
|
||||
|
||||
#~ msgid "Select the language"
|
||||
#~ msgstr "选择语言"
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Orca Slicer\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-09-11 12:33+0800\n"
|
||||
"POT-Creation-Date: 2026-09-11 17:15+0800\n"
|
||||
"PO-Revision-Date: 2025-11-28 13:48-0600\n"
|
||||
"Last-Translator: tntchn <15895303+tntchn@users.noreply.github.com>\n"
|
||||
"Language-Team: \n"
|
||||
@@ -5348,22 +5348,18 @@ msgstr "無效格式,應該是「%1%」這種格式"
|
||||
msgid "System agents"
|
||||
msgstr "系統代理程式"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "未選擇外掛"
|
||||
|
||||
# AI Translated
|
||||
msgid "Add plugin"
|
||||
msgstr "新增外掛"
|
||||
|
||||
# AI Translated
|
||||
msgid "Select plugin"
|
||||
msgstr "選擇外掛"
|
||||
|
||||
# AI Translated
|
||||
msgid "Remove plugin"
|
||||
msgstr "移除外掛"
|
||||
|
||||
# AI Translated
|
||||
msgid "No plugin selected"
|
||||
msgstr "未選擇外掛"
|
||||
|
||||
# AI Translated
|
||||
msgid "Configure"
|
||||
msgstr "設定"
|
||||
@@ -7569,6 +7565,12 @@ msgctxt "Layers"
|
||||
msgid "Bottom"
|
||||
msgstr "底部"
|
||||
|
||||
msgid "This setting does not specify a plugin capability type."
|
||||
msgstr ""
|
||||
|
||||
msgid "This setting specifies an unrecognized plugin capability type: "
|
||||
msgstr ""
|
||||
|
||||
# AI Translated
|
||||
msgid "Plugin Selection"
|
||||
msgstr "外掛選擇"
|
||||
@@ -9083,6 +9085,15 @@ msgstr ""
|
||||
msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."
|
||||
msgstr ""
|
||||
|
||||
msgid "Recent actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "actions"
|
||||
msgstr ""
|
||||
|
||||
msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."
|
||||
msgstr ""
|
||||
|
||||
msgid "Pop up to select filament grouping mode"
|
||||
msgstr "彈出視窗選擇線材分組模式"
|
||||
|
||||
@@ -21671,6 +21682,10 @@ msgstr ""
|
||||
"避免翹曲\n"
|
||||
"您知道嗎?當列印容易翹曲的材料(如 ABS)時,適當提高熱床溫度可以降低翹曲的機率。"
|
||||
|
||||
# AI Translated
|
||||
#~ msgid "Select plugin"
|
||||
#~ msgstr "選擇外掛"
|
||||
|
||||
#~ msgid "Select the language"
|
||||
#~ msgstr "選擇語言"
|
||||
|
||||
|
||||
@@ -478,6 +478,8 @@ set(SLIC3R_GUI_SOURCES
|
||||
GUI/SkipPartCanvas.hpp
|
||||
GUI/Search.cpp
|
||||
GUI/Search.hpp
|
||||
GUI/SettingsIndex.cpp
|
||||
GUI/SettingsIndex.hpp
|
||||
GUI/Selection.cpp
|
||||
GUI/Selection.hpp
|
||||
GUI/SelectMachine.cpp
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
#include "Notebook.hpp"
|
||||
#include "OptionsGroup.hpp"
|
||||
#include "Plater.hpp"
|
||||
#include "Search.hpp"
|
||||
#include "SettingsIndex.hpp"
|
||||
#include "Tab.hpp"
|
||||
#include "slic3r/plugin/PluginManager.hpp"
|
||||
|
||||
@@ -526,11 +526,11 @@ void ActionRegistry::materialize_setting_actions()
|
||||
{
|
||||
assert(wxThread::IsMain());
|
||||
|
||||
// Reuse the Sidebar's live searcher: it's the only OptionsSearcher whose groups_and_categories
|
||||
// map is populated (Tab::add_key feeds it at build time), and it already mirrors the current
|
||||
// Reuse the Sidebar's live settings index: it's the only catalog whose group/category map is
|
||||
// populated (Tab::add_key feeds it at build time), and it already mirrors the current
|
||||
// configs/printer-technology. Use the all-modes view so the Speed Dial lists every setting,
|
||||
// including those above the user's current mode, and can prompt to switch before jumping.
|
||||
const std::vector<Search::Option>& options = wxGetApp().sidebar().get_searcher().all_modes_options();
|
||||
const std::vector<Search::Option>& options = wxGetApp().sidebar().settings_index().all_options();
|
||||
|
||||
// Load the persisted per-action state ONCE (not per-option) so a re-materialised setting keeps
|
||||
// its recency/favourite; mirroring seed_state but amortised over the whole option set.
|
||||
|
||||
@@ -248,7 +248,7 @@ void OptionsGroup::append_line(const Line& line)
|
||||
// affordance for it. Settings tabs only; the searcher already exists by the time tabs are built.
|
||||
if (m_use_custom_ctrl && !line.label_path.empty())
|
||||
for (const auto& opt : line.get_options())
|
||||
wxGetApp().sidebar().get_searcher().set_path(opt.opt_id, static_cast<Preset::Type>(config_type()), line.label_path);
|
||||
wxGetApp().sidebar().settings_index().set_path(opt.opt_id, static_cast<Preset::Type>(config_type()), line.label_path);
|
||||
|
||||
if (line.full_width && (line.widget != nullptr || !line.get_extra_widgets().empty()))
|
||||
return;
|
||||
@@ -656,7 +656,7 @@ Option ConfigOptionsGroup::get_option(const std::string& opt_key, int opt_index
|
||||
m_opt_map.emplace(opt_id, pair);
|
||||
|
||||
if (m_use_custom_ctrl) // fill group and category values just for options from Settings Tab
|
||||
wxGetApp().sidebar().get_searcher().add_key(opt_id, static_cast<Preset::Type>(this->config_type()), title, this->config_category(), this->icon);
|
||||
wxGetApp().sidebar().settings_index().add_key(opt_id, static_cast<Preset::Type>(this->config_type()), title, this->config_category(), this->icon);
|
||||
|
||||
return Option(*m_config->def()->get(opt_key), opt_id);
|
||||
}
|
||||
|
||||
@@ -6419,6 +6419,11 @@ Search::OptionsSearcher& Sidebar::get_searcher()
|
||||
return p->searcher;
|
||||
}
|
||||
|
||||
Search::SettingsIndex& Sidebar::settings_index()
|
||||
{
|
||||
return p->searcher.index();
|
||||
}
|
||||
|
||||
std::string& Sidebar::get_search_line()
|
||||
{
|
||||
return p->searcher.search_string();
|
||||
|
||||
@@ -282,6 +282,7 @@ public:
|
||||
std::vector<std::string>& types,
|
||||
std::vector<size_t>* config_indices = nullptr);
|
||||
Search::OptionsSearcher& get_searcher();
|
||||
Search::SettingsIndex& settings_index();
|
||||
std::string& get_search_line();
|
||||
void update_printer_thumbnail();
|
||||
|
||||
|
||||
+6
-213
@@ -62,107 +62,12 @@ static char marker_by_type(Preset::Type type, PrinterTechnology pt)
|
||||
}
|
||||
}
|
||||
|
||||
std::string Option::opt_key() const { return into_u8(key).substr(2); }
|
||||
|
||||
void FoundOption::get_marked_label_and_tooltip(const char **label_, const char **tooltip_) const
|
||||
{
|
||||
*label_ = marked_label.c_str();
|
||||
*tooltip_ = tooltip.c_str();
|
||||
}
|
||||
|
||||
template<class T>
|
||||
// void change_opt_key(std::string& opt_key, DynamicPrintConfig* config)
|
||||
void change_opt_key(std::string &opt_key, DynamicPrintConfig *config, int &cnt)
|
||||
{
|
||||
T *opt_cur = static_cast<T *>(config->option(opt_key));
|
||||
cnt = opt_cur->values.size();
|
||||
return;
|
||||
|
||||
if (opt_cur->values.size() > 0) opt_key += "#" + std::to_string(0);
|
||||
}
|
||||
|
||||
static std::string get_key(const std::string &opt_key, Preset::Type type) { return std::to_string(int(type)) + ";" + opt_key; }
|
||||
|
||||
void OptionsSearcher::append_options(DynamicPrintConfig *config, Preset::Type type, ConfigOptionMode mode)
|
||||
{
|
||||
auto emplace = [this, type](std::vector<Option> &dst, const std::string &key, const wxString &label, ConfigOptionMode opt_mode, std::string tooltip) {
|
||||
const GroupAndCategory &gc = groups_and_categories[key];
|
||||
if (gc.group.IsEmpty() || gc.category.IsEmpty()) return;
|
||||
|
||||
wxString suffix;
|
||||
wxString suffix_local;
|
||||
if (gc.category == "Machine limits") {
|
||||
//suffix = key.back() == '1' ? L("Stealth") : L("Normal");
|
||||
suffix = key.back() == '1' ? wxEmptyString : wxEmptyString;
|
||||
suffix_local = " " + _(suffix);
|
||||
suffix = " " + suffix;
|
||||
}
|
||||
|
||||
if (!label.IsEmpty())
|
||||
dst.emplace_back(Option{boost::nowide::widen(key), type, (label + suffix).ToStdWstring(), (_(label) + suffix_local).ToStdWstring(), gc.group.ToStdWstring(),
|
||||
_(gc.group).ToStdWstring(), into_u8(gc.icon), gc.category.ToStdWstring(), GUI::Tab::translate_category(gc.category, type).ToStdWstring(),
|
||||
false, opt_mode, std::move(tooltip), gc.path});
|
||||
};
|
||||
|
||||
for (std::string opt_key : config->keys()) {
|
||||
const ConfigOptionDef &opt = config->def()->options.at(opt_key);
|
||||
const bool in_filtered = opt.mode <= mode;
|
||||
|
||||
int cnt = 0;
|
||||
|
||||
if ((type == Preset::TYPE_SLA_MATERIAL || type == Preset::TYPE_PRINTER || type == Preset::TYPE_PRINT) && opt_key != "printable_area")
|
||||
switch (config->option(opt_key)->type()) {
|
||||
case coInts: change_opt_key<ConfigOptionInts>(opt_key, config, cnt); break;
|
||||
case coBools: change_opt_key<ConfigOptionBools>(opt_key, config, cnt); break;
|
||||
case coFloats: change_opt_key<ConfigOptionFloats>(opt_key, config, cnt); break;
|
||||
case coStrings: change_opt_key<ConfigOptionStrings>(opt_key, config, cnt); break;
|
||||
case coPercents: change_opt_key<ConfigOptionPercents>(opt_key, config, cnt); break;
|
||||
case coPoints: change_opt_key<ConfigOptionPoints>(opt_key, config, cnt); break;
|
||||
// BBS
|
||||
case coEnums: change_opt_key<ConfigOptionInts>(opt_key, config, cnt); break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
if (type == Preset::TYPE_FILAMENT && filament_options_with_variant.find(opt_key) != filament_options_with_variant.end())
|
||||
opt_key += "#0";
|
||||
|
||||
wxString label = opt.full_label.empty() ? opt.label : opt.full_label;
|
||||
|
||||
std::string key = get_key(opt_key, type);
|
||||
auto add = [&](const std::string &k) {
|
||||
if (in_filtered)
|
||||
emplace(options, k, label, opt.mode, into_u8(_(opt.tooltip)));
|
||||
emplace(options_all_modes, k, label, opt.mode, into_u8(_(opt.tooltip)));
|
||||
};
|
||||
if (cnt == 0)
|
||||
add(key);
|
||||
else
|
||||
for (int i = 0; i < cnt; ++i)
|
||||
// ! It's very important to use "#". opt_key#n is a real option key used in GroupAndCategory
|
||||
add(key + "#" + std::to_string(i));
|
||||
}
|
||||
}
|
||||
|
||||
void OptionsSearcher::sort_options()
|
||||
{
|
||||
// Both views are label-sorted and multi_category-marked. They are separate consumers (the sidebar
|
||||
// search and the Speed Dial); keeping them in sync here prevents the all-modes view from silently
|
||||
// diverging in order or flags.
|
||||
auto sort_and_mark = [](std::vector<Option> &v) {
|
||||
std::sort(v.begin(), v.end(), [](const Option &o1, const Option &o2) { return o1.label < o2.label; });
|
||||
Option *last = nullptr;
|
||||
for (auto &opt : v) {
|
||||
if (last && last->label == opt.label && last->group == opt.group && last->type == opt.type && last->category != opt.category) {
|
||||
last->multi_category = true;
|
||||
opt.multi_category = true;
|
||||
}
|
||||
last = &opt;
|
||||
}
|
||||
};
|
||||
sort_and_mark(options);
|
||||
sort_and_mark(options_all_modes);
|
||||
}
|
||||
|
||||
// Mark a string using ColorMarkerStart and ColorMarkerEnd symbols
|
||||
static std::wstring mark_string(const std::wstring &str, const std::vector<uint16_t> &matches, Preset::Type type, PrinterTechnology pt)
|
||||
{
|
||||
@@ -247,7 +152,8 @@ bool OptionsSearcher::search(const std::string &search, bool force /* = false*/,
|
||||
return wxString(marker_by_type(opt.type, printer_technology)) + opt.category_local + sep + opt.group_local + sep + opt.label_local;
|
||||
};
|
||||
|
||||
std::vector<uint16_t> matches, matches2;
|
||||
std::vector<uint16_t> matches, matches2;
|
||||
const std::vector<Option> &options = m_index.options();
|
||||
for (size_t i = 0; i < options.size(); i++) {
|
||||
const Option &opt = options[i];
|
||||
if (full_list) {
|
||||
@@ -319,117 +225,21 @@ OptionsSearcher::~OptionsSearcher() {}
|
||||
|
||||
void OptionsSearcher::init(std::vector<InputInfo> input_values)
|
||||
{
|
||||
options.clear();
|
||||
options_all_modes.clear();
|
||||
for (auto i : input_values) append_options(i.config, i.type, i.mode);
|
||||
sort_options();
|
||||
m_index.init(std::move(input_values));
|
||||
|
||||
search(search_line, true, search_type);
|
||||
}
|
||||
|
||||
void OptionsSearcher::apply(DynamicPrintConfig *config, Preset::Type type, ConfigOptionMode mode)
|
||||
{
|
||||
// options_all_modes is a separate consumer (the Speed Dial), so "nothing initialised yet" means
|
||||
// both views are empty - the mode-filtered options can be empty while the all-modes view is not.
|
||||
if (options.empty() && options_all_modes.empty()) return;
|
||||
|
||||
options.erase(std::remove_if(options.begin(), options.end(), [type](Option opt) { return opt.type == type; }), options.end());
|
||||
options_all_modes.erase(std::remove_if(options_all_modes.begin(), options_all_modes.end(), [type](Option opt) { return opt.type == type; }),
|
||||
options_all_modes.end());
|
||||
|
||||
append_options(config, type, mode);
|
||||
|
||||
sort_options();
|
||||
|
||||
search(search_line, true, search_type);
|
||||
if (m_index.apply(config, type, mode))
|
||||
search(search_line, true, search_type);
|
||||
}
|
||||
|
||||
const Option &OptionsSearcher::get_option(size_t pos_in_filter) const
|
||||
{
|
||||
assert(pos_in_filter != size_t(-1) && found[pos_in_filter].option_idx != size_t(-1));
|
||||
return options[found[pos_in_filter].option_idx];
|
||||
}
|
||||
|
||||
const Option &OptionsSearcher::get_option(const std::string &opt_key, Preset::Type type, int &variant_index) const
|
||||
{
|
||||
std::string opt_key2 = opt_key;
|
||||
if (auto n = opt_key.find('#'); n != std::string::npos) {
|
||||
variant_index = std::atoi(opt_key.c_str() + n + 1);
|
||||
opt_key2 = opt_key.substr(0, n);
|
||||
}
|
||||
auto it = std::lower_bound(options.begin(), options.end(), Option({boost::nowide::widen(get_key(opt_key2, type))}));
|
||||
// BBS: return the 0th option when not found in searcher caused by mode difference
|
||||
// assert(it != options.end());
|
||||
if (it == options.end()) { variant_index = -2 ; return options[0]; }
|
||||
if (it->opt_key() == opt_key2) {
|
||||
variant_index = -1;
|
||||
} else {
|
||||
const std::string opt_key3 = opt_key2 + "#";
|
||||
it = std::lower_bound(it, options.end(), Option({boost::nowide::widen(get_key(opt_key3, type))}));
|
||||
if (it == options.end() || it->opt_key().compare(0, opt_key3.length(), opt_key3) != 0) {
|
||||
variant_index = -2; // Not found
|
||||
return options[0];
|
||||
}
|
||||
auto it2 = it;
|
||||
++it2;
|
||||
if (it2 != options.end() && it2->opt_key().compare(0, opt_key3.length(), opt_key3) == 0
|
||||
&& printer_options_with_variant_1.find(opt_key2) == printer_options_with_variant_1.end())
|
||||
variant_index = -2;
|
||||
}
|
||||
|
||||
return options[it - options.begin()];
|
||||
}
|
||||
|
||||
static Option create_option(const std::string &opt_key, const wxString &label, Preset::Type type, const GroupAndCategory &gc)
|
||||
{
|
||||
wxString suffix;
|
||||
wxString suffix_local;
|
||||
if (gc.category == "Machine limits") {
|
||||
//suffix = opt_key.back() == '1' ? L("Stealth") : L("Normal");
|
||||
suffix = opt_key.back() == '1' ? wxEmptyString : wxEmptyString;
|
||||
suffix_local = " " + _(suffix);
|
||||
suffix = " " + suffix;
|
||||
}
|
||||
|
||||
wxString category = gc.category;
|
||||
if (type == Preset::TYPE_PRINTER && category.Contains("Extruder ")) {
|
||||
std::string opt_idx = opt_key.substr(opt_key.find("#") + 1);
|
||||
category = wxString::Format("%s %d", "Extruder", atoi(opt_idx.c_str()) + 1);
|
||||
}
|
||||
|
||||
return Option{boost::nowide::widen(get_key(opt_key, type)),
|
||||
type,
|
||||
(label + suffix).ToStdWstring(),
|
||||
(_(label) + suffix_local).ToStdWstring(),
|
||||
gc.group.ToStdWstring(),
|
||||
_(gc.group).ToStdWstring(),
|
||||
into_u8(gc.icon),
|
||||
gc.category.ToStdWstring(),
|
||||
GUI::Tab::translate_category(category, type).ToStdWstring()};
|
||||
}
|
||||
|
||||
Option OptionsSearcher::get_option(const std::string &opt_key, const wxString &label, Preset::Type type) const
|
||||
{
|
||||
std::string key = get_key(opt_key, type);
|
||||
auto it = std::lower_bound(options.begin(), options.end(), Option({boost::nowide::widen(key)}));
|
||||
// BBS: return the 0th option when not found in searcher caused by mode difference
|
||||
if (it == options.end()) return options[0];
|
||||
if (it->key == boost::nowide::widen(key)) return options[it - options.begin()];
|
||||
if (groups_and_categories.find(key) == groups_and_categories.end()) {
|
||||
size_t pos = key.find('#');
|
||||
if (pos == std::string::npos) return options[it - options.begin()];
|
||||
|
||||
std::string zero_opt_key = key.substr(0, pos + 1) + "0";
|
||||
|
||||
if (groups_and_categories.find(zero_opt_key) == groups_and_categories.end()) return options[it - options.begin()];
|
||||
|
||||
return create_option(opt_key, label, type, groups_and_categories.at(zero_opt_key));
|
||||
}
|
||||
|
||||
const GroupAndCategory &gc = groups_and_categories.at(key);
|
||||
if (gc.group.IsEmpty() || gc.category.IsEmpty()) return options[it - options.begin()];
|
||||
|
||||
return create_option(opt_key, label, type, gc);
|
||||
return m_index.option_at(found[pos_in_filter].option_idx);
|
||||
}
|
||||
|
||||
void OptionsSearcher::show_dialog(Preset::Type type, wxWindow *parent, TextInput *input, wxWindow* ssearch_btn)
|
||||
@@ -456,23 +266,6 @@ void OptionsSearcher::dlg_msw_rescale()
|
||||
{
|
||||
if (search_dialog) search_dialog->msw_rescale();
|
||||
}
|
||||
|
||||
void OptionsSearcher::add_key(const std::string &opt_key, Preset::Type type, const wxString &group, const wxString &category, const wxString &icon)
|
||||
{
|
||||
// Update fields in place so a page rebuild (get_option after set_path) doesn't drop the
|
||||
// previously recorded wiki path.
|
||||
GroupAndCategory &gc = groups_and_categories[get_key(opt_key, type)];
|
||||
gc.group = group;
|
||||
gc.category = category;
|
||||
gc.icon = icon;
|
||||
}
|
||||
|
||||
void OptionsSearcher::set_path(const std::string &opt_key, Preset::Type type, const std::string &path)
|
||||
{
|
||||
if (path.empty())
|
||||
return;
|
||||
groups_and_categories[get_key(opt_key, type)].path = path;
|
||||
}
|
||||
//------------------------------------------
|
||||
// SearchItem
|
||||
//------------------------------------------
|
||||
|
||||
+10
-72
@@ -19,6 +19,7 @@
|
||||
#include "wxExtensions.hpp"
|
||||
#include "GUI_Utils.hpp"
|
||||
#include "libslic3r/Preset.hpp"
|
||||
#include "SettingsIndex.hpp"
|
||||
#include "Widgets/ScrolledWindow.hpp"
|
||||
#include "Widgets/TextInput.hpp"
|
||||
#include "Widgets/PopupWindow.hpp"
|
||||
@@ -34,45 +35,6 @@ namespace Search {
|
||||
|
||||
class SearchDialog;
|
||||
|
||||
struct InputInfo
|
||||
{
|
||||
DynamicPrintConfig *config{nullptr};
|
||||
Preset::Type type{Preset::TYPE_INVALID};
|
||||
ConfigOptionMode mode{comSimple};
|
||||
};
|
||||
|
||||
struct GroupAndCategory
|
||||
{
|
||||
wxString group;
|
||||
wxString category;
|
||||
wxString icon; // icon of the group's own header, or empty
|
||||
std::string path; // wiki path (Line::label_path) of the option's line, or empty
|
||||
};
|
||||
|
||||
struct Option
|
||||
{
|
||||
// bool operator<(const Option& other) const { return other.label > this->label; }
|
||||
bool operator<(const Option &other) const { return other.key > this->key; }
|
||||
|
||||
// Fuzzy matching works at a character level. Thus matching with wide characters is a safer bet than with short characters,
|
||||
// though for some languages (Chinese?) it may not work correctly.
|
||||
std::wstring key;
|
||||
Preset::Type type{Preset::TYPE_INVALID};
|
||||
std::wstring label;
|
||||
std::wstring label_local;
|
||||
std::wstring group;
|
||||
std::wstring group_local;
|
||||
std::string group_icon; // SVG base name of the group's own header icon, or empty
|
||||
std::wstring category;
|
||||
std::wstring category_local;
|
||||
bool multi_category { false };
|
||||
ConfigOptionMode mode{comSimple}; // option's visibility threshold; drives the Speed Dial's mode prompt
|
||||
std::string tooltip; // localized ConfigOptionDef::tooltip, or empty
|
||||
std::string wiki_path; // Line::label_path for the option's row, or empty
|
||||
|
||||
std::string opt_key() const;
|
||||
};
|
||||
|
||||
struct FoundOption
|
||||
{
|
||||
// UTF8 encoding, to be consumed by ImGUI by reference.
|
||||
@@ -96,28 +58,19 @@ struct OptionViewParameters
|
||||
|
||||
class OptionsSearcher
|
||||
{
|
||||
std::string search_line;
|
||||
Preset::Type search_type = Preset::TYPE_INVALID;
|
||||
SettingsIndex m_index;
|
||||
|
||||
std::map<std::string, GroupAndCategory> groups_and_categories;
|
||||
PrinterTechnology printer_technology;
|
||||
|
||||
std::vector<Option> options{};
|
||||
// Every option regardless of the current UI mode (Simple/Advanced/Expert/Developer), for the
|
||||
// Speed Dial. The sidebar search keeps using the mode-filtered `options`.
|
||||
std::vector<Option> options_all_modes{};
|
||||
std::string search_line;
|
||||
Preset::Type search_type = Preset::TYPE_INVALID;
|
||||
PrinterTechnology printer_technology;
|
||||
std::vector<FoundOption> found{};
|
||||
|
||||
void append_options(DynamicPrintConfig *config, Preset::Type type, ConfigOptionMode mode);
|
||||
|
||||
void sort_options();
|
||||
void sort_found()
|
||||
{
|
||||
std::sort(found.begin(), found.end(),
|
||||
[](const FoundOption &f1, const FoundOption &f2) { return f1.outScore > f2.outScore || (f1.outScore == f2.outScore && f1.label < f2.label); });
|
||||
};
|
||||
|
||||
size_t options_size() const { return options.size(); }
|
||||
size_t found_size() const { return found.size(); }
|
||||
|
||||
public:
|
||||
@@ -128,44 +81,29 @@ public:
|
||||
OptionsSearcher();
|
||||
~OptionsSearcher();
|
||||
|
||||
SettingsIndex & index() { return m_index; }
|
||||
const SettingsIndex &index() const { return m_index; }
|
||||
|
||||
// Rebuild the catalog and re-run the current query so the cached results track it.
|
||||
void init(std::vector<InputInfo> input_values);
|
||||
void apply(DynamicPrintConfig *config, Preset::Type type, ConfigOptionMode mode);
|
||||
|
||||
bool search();
|
||||
bool search(const std::string &search, bool force = false, Preset::Type type = Preset::TYPE_INVALID);
|
||||
|
||||
void add_key(const std::string &opt_key, Preset::Type type, const wxString &group, const wxString &category,
|
||||
const wxString &icon = wxEmptyString);
|
||||
|
||||
// Records the wiki path of an option's row (Line::label_path) so the Speed Dial can offer a
|
||||
// "open wiki" affordance. Empty paths are ignored.
|
||||
void set_path(const std::string &opt_key, Preset::Type type, const std::string &path);
|
||||
|
||||
size_t size() const { return found_size(); }
|
||||
|
||||
const FoundOption &operator[](const size_t pos) const noexcept { return found[pos]; }
|
||||
const Option & get_option(size_t pos_in_filter) const;
|
||||
const Option & get_option(const std::string &opt_key, Preset::Type type, int &variant_index) const;
|
||||
Option get_option(const std::string &opt_key, const wxString &label, Preset::Type type) const;
|
||||
|
||||
const std::vector<FoundOption> &found_options() { return found; }
|
||||
const GroupAndCategory & get_group_and_category(const std::string &opt_key) { return groups_and_categories[opt_key]; }
|
||||
std::string & search_string() { return search_line; }
|
||||
|
||||
void set_printer_technology(PrinterTechnology pt) { printer_technology = pt; }
|
||||
|
||||
void sort_options_by_key()
|
||||
{
|
||||
std::sort(options.begin(), options.end(), [](const Option &o1, const Option &o2) { return o1.key < o2.key; });
|
||||
}
|
||||
void sort_options_by_label() { sort_options(); }
|
||||
|
||||
void show_dialog(Preset::Type type, wxWindow *parent, TextInput *input, wxWindow *ssearch_btn);
|
||||
void dlg_sys_color_changed();
|
||||
void dlg_msw_rescale();
|
||||
|
||||
// Every option across all UI modes (Developer included), regardless of the current mode.
|
||||
// Used by the Speed Dial so it can list settings the user would have to switch mode to edit.
|
||||
const std::vector<Option>& all_modes_options() const { return options_all_modes; }
|
||||
};
|
||||
|
||||
//------------------------------------------
|
||||
|
||||
@@ -0,0 +1,229 @@
|
||||
#include "SettingsIndex.hpp"
|
||||
|
||||
#include <algorithm>
|
||||
#include <cstddef>
|
||||
#include <cstdlib>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include <boost/nowide/convert.hpp>
|
||||
|
||||
#include "GUI.hpp"
|
||||
#include "I18N.hpp"
|
||||
#include "Tab.hpp"
|
||||
|
||||
#include "libslic3r/PrintConfig.hpp"
|
||||
|
||||
namespace Slic3r {
|
||||
|
||||
using GUI::into_u8;
|
||||
|
||||
namespace Search {
|
||||
|
||||
static std::string get_key(const std::string &opt_key, Preset::Type type) { return std::to_string(int(type)) + ";" + opt_key; }
|
||||
|
||||
std::string Option::opt_key() const { return into_u8(key).substr(2); }
|
||||
|
||||
template<class T>
|
||||
// void change_opt_key(std::string& opt_key, DynamicPrintConfig* config)
|
||||
void change_opt_key(std::string &opt_key, DynamicPrintConfig *config, int &cnt)
|
||||
{
|
||||
T *opt_cur = static_cast<T *>(config->option(opt_key));
|
||||
cnt = opt_cur->values.size();
|
||||
return;
|
||||
|
||||
if (opt_cur->values.size() > 0) opt_key += "#" + std::to_string(0);
|
||||
}
|
||||
|
||||
// Single assembler for an indexed Option, shared by append_options() and create_option(), so a new
|
||||
// Option field is only wired up in one place.
|
||||
static Option make_option(const std::string &key, Preset::Type type, const wxString &label, const GroupAndCategory &gc,
|
||||
ConfigOptionMode mode, const std::string &tooltip, bool rewrite_extruder_category)
|
||||
{
|
||||
wxString suffix;
|
||||
wxString suffix_local;
|
||||
if (gc.category == "Machine limits") {
|
||||
//suffix = key.back() == '1' ? L("Stealth") : L("Normal");
|
||||
suffix = key.back() == '1' ? wxEmptyString : wxEmptyString;
|
||||
suffix_local = " " + _(suffix);
|
||||
suffix = " " + suffix;
|
||||
}
|
||||
|
||||
wxString category = gc.category;
|
||||
if (rewrite_extruder_category && type == Preset::TYPE_PRINTER && category.Contains("Extruder ")) {
|
||||
std::string opt_idx = key.substr(key.find("#") + 1);
|
||||
category = wxString::Format("%s %d", "Extruder", atoi(opt_idx.c_str()) + 1);
|
||||
}
|
||||
|
||||
return Option{boost::nowide::widen(key), type, (label + suffix).ToStdWstring(), (_(label) + suffix_local).ToStdWstring(),
|
||||
gc.group.ToStdWstring(), _(gc.group).ToStdWstring(), into_u8(gc.icon), gc.category.ToStdWstring(),
|
||||
GUI::Tab::translate_category(category, type).ToStdWstring(), false, mode, tooltip, gc.path};
|
||||
}
|
||||
|
||||
void SettingsIndex::append_options(DynamicPrintConfig *config, Preset::Type type, ConfigOptionMode mode)
|
||||
{
|
||||
for (std::string opt_key : config->keys()) {
|
||||
const ConfigOptionDef &opt = config->def()->options.at(opt_key);
|
||||
const bool in_filtered = opt.mode <= mode;
|
||||
|
||||
int cnt = 0;
|
||||
|
||||
if ((type == Preset::TYPE_SLA_MATERIAL || type == Preset::TYPE_PRINTER || type == Preset::TYPE_PRINT) && opt_key != "printable_area")
|
||||
switch (config->option(opt_key)->type()) {
|
||||
case coInts: change_opt_key<ConfigOptionInts>(opt_key, config, cnt); break;
|
||||
case coBools: change_opt_key<ConfigOptionBools>(opt_key, config, cnt); break;
|
||||
case coFloats: change_opt_key<ConfigOptionFloats>(opt_key, config, cnt); break;
|
||||
case coStrings: change_opt_key<ConfigOptionStrings>(opt_key, config, cnt); break;
|
||||
case coPercents: change_opt_key<ConfigOptionPercents>(opt_key, config, cnt); break;
|
||||
case coPoints: change_opt_key<ConfigOptionPoints>(opt_key, config, cnt); break;
|
||||
// BBS
|
||||
case coEnums: change_opt_key<ConfigOptionInts>(opt_key, config, cnt); break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
if (type == Preset::TYPE_FILAMENT && filament_options_with_variant.find(opt_key) != filament_options_with_variant.end())
|
||||
opt_key += "#0";
|
||||
|
||||
wxString label = opt.full_label.empty() ? opt.label : opt.full_label;
|
||||
|
||||
std::string key = get_key(opt_key, type);
|
||||
auto add = [&](const std::string &k) {
|
||||
const GroupAndCategory &gc = m_groups_and_categories[k];
|
||||
if (gc.group.IsEmpty() || gc.category.IsEmpty() || label.IsEmpty()) return;
|
||||
|
||||
const std::string tooltip = into_u8(_(opt.tooltip));
|
||||
if (in_filtered)
|
||||
m_options.emplace_back(make_option(k, type, label, gc, opt.mode, tooltip, false));
|
||||
m_all_modes.emplace_back(make_option(k, type, label, gc, opt.mode, tooltip, false));
|
||||
};
|
||||
if (cnt == 0)
|
||||
add(key);
|
||||
else
|
||||
for (int i = 0; i < cnt; ++i)
|
||||
// ! It's very important to use "#". opt_key#n is a real option key used in GroupAndCategory
|
||||
add(key + "#" + std::to_string(i));
|
||||
}
|
||||
}
|
||||
|
||||
void SettingsIndex::sort_options()
|
||||
{
|
||||
// Both views are label-sorted and multi_category-marked. They are separate consumers (the sidebar
|
||||
// search and the Speed Dial); keeping them in sync here prevents the all-modes view from silently
|
||||
// diverging in order or flags.
|
||||
auto sort_and_mark = [](std::vector<Option> &v) {
|
||||
std::sort(v.begin(), v.end(), [](const Option &o1, const Option &o2) { return o1.label < o2.label; });
|
||||
Option *last = nullptr;
|
||||
for (auto &opt : v) {
|
||||
if (last && last->label == opt.label && last->group == opt.group && last->type == opt.type && last->category != opt.category) {
|
||||
last->multi_category = true;
|
||||
opt.multi_category = true;
|
||||
}
|
||||
last = &opt;
|
||||
}
|
||||
};
|
||||
sort_and_mark(m_options);
|
||||
sort_and_mark(m_all_modes);
|
||||
}
|
||||
|
||||
void SettingsIndex::init(std::vector<InputInfo> input_values)
|
||||
{
|
||||
m_options.clear();
|
||||
m_all_modes.clear();
|
||||
for (auto i : input_values) append_options(i.config, i.type, i.mode);
|
||||
sort_options();
|
||||
}
|
||||
|
||||
bool SettingsIndex::apply(DynamicPrintConfig *config, Preset::Type type, ConfigOptionMode mode)
|
||||
{
|
||||
// m_all_modes is a separate consumer (the Speed Dial), so "nothing initialised yet" means both
|
||||
// views are empty - the mode-filtered m_options can be empty while m_all_modes is not.
|
||||
if (m_options.empty() && m_all_modes.empty()) return false;
|
||||
|
||||
m_options.erase(std::remove_if(m_options.begin(), m_options.end(), [type](Option opt) { return opt.type == type; }), m_options.end());
|
||||
m_all_modes.erase(std::remove_if(m_all_modes.begin(), m_all_modes.end(), [type](Option opt) { return opt.type == type; }), m_all_modes.end());
|
||||
|
||||
append_options(config, type, mode);
|
||||
|
||||
sort_options();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
const Option &SettingsIndex::get_option(const std::string &opt_key, Preset::Type type, int &variant_index) const
|
||||
{
|
||||
std::string opt_key2 = opt_key;
|
||||
if (auto n = opt_key.find('#'); n != std::string::npos) {
|
||||
variant_index = std::atoi(opt_key.c_str() + n + 1);
|
||||
opt_key2 = opt_key.substr(0, n);
|
||||
}
|
||||
auto it = std::lower_bound(m_options.begin(), m_options.end(), Option({boost::nowide::widen(get_key(opt_key2, type))}));
|
||||
// BBS: return the 0th option when not found in searcher caused by mode difference
|
||||
// assert(it != options.end());
|
||||
if (it == m_options.end()) { variant_index = -2 ; return m_options[0]; }
|
||||
if (it->opt_key() == opt_key2) {
|
||||
variant_index = -1;
|
||||
} else {
|
||||
const std::string opt_key3 = opt_key2 + "#";
|
||||
it = std::lower_bound(it, m_options.end(), Option({boost::nowide::widen(get_key(opt_key3, type))}));
|
||||
if (it == m_options.end() || it->opt_key().compare(0, opt_key3.length(), opt_key3) != 0) {
|
||||
variant_index = -2; // Not found
|
||||
return m_options[0];
|
||||
}
|
||||
auto it2 = it;
|
||||
++it2;
|
||||
if (it2 != m_options.end() && it2->opt_key().compare(0, opt_key3.length(), opt_key3) == 0
|
||||
&& printer_options_with_variant_1.find(opt_key2) == printer_options_with_variant_1.end())
|
||||
variant_index = -2;
|
||||
}
|
||||
|
||||
return m_options[it - m_options.begin()];
|
||||
}
|
||||
|
||||
static Option create_option(const std::string &opt_key, const wxString &label, Preset::Type type, const GroupAndCategory &gc)
|
||||
{
|
||||
return make_option(get_key(opt_key, type), type, label, gc, comSimple, std::string(), true);
|
||||
}
|
||||
|
||||
Option SettingsIndex::get_option(const std::string &opt_key, const wxString &label, Preset::Type type) const
|
||||
{
|
||||
std::string key = get_key(opt_key, type);
|
||||
auto it = std::lower_bound(m_options.begin(), m_options.end(), Option({boost::nowide::widen(key)}));
|
||||
// BBS: return the 0th option when not found in searcher caused by mode difference
|
||||
if (it == m_options.end()) return m_options[0];
|
||||
if (it->key == boost::nowide::widen(key)) return m_options[it - m_options.begin()];
|
||||
if (m_groups_and_categories.find(key) == m_groups_and_categories.end()) {
|
||||
size_t pos = key.find('#');
|
||||
if (pos == std::string::npos) return m_options[it - m_options.begin()];
|
||||
|
||||
std::string zero_opt_key = key.substr(0, pos + 1) + "0";
|
||||
|
||||
if (m_groups_and_categories.find(zero_opt_key) == m_groups_and_categories.end()) return m_options[it - m_options.begin()];
|
||||
|
||||
return create_option(opt_key, label, type, m_groups_and_categories.at(zero_opt_key));
|
||||
}
|
||||
|
||||
const GroupAndCategory &gc = m_groups_and_categories.at(key);
|
||||
if (gc.group.IsEmpty() || gc.category.IsEmpty()) return m_options[it - m_options.begin()];
|
||||
|
||||
return create_option(opt_key, label, type, gc);
|
||||
}
|
||||
|
||||
void SettingsIndex::add_key(const std::string &opt_key, Preset::Type type, const wxString &group, const wxString &category, const wxString &icon)
|
||||
{
|
||||
// Update fields in place so a page rebuild (get_option after set_path) doesn't drop the
|
||||
// previously recorded wiki path.
|
||||
GroupAndCategory &gc = m_groups_and_categories[get_key(opt_key, type)];
|
||||
gc.group = group;
|
||||
gc.category = category;
|
||||
gc.icon = icon;
|
||||
}
|
||||
|
||||
void SettingsIndex::set_path(const std::string &opt_key, Preset::Type type, const std::string &path)
|
||||
{
|
||||
if (path.empty())
|
||||
return;
|
||||
m_groups_and_categories[get_key(opt_key, type)].path = path;
|
||||
}
|
||||
|
||||
} // namespace Search
|
||||
} // namespace Slic3r
|
||||
@@ -0,0 +1,98 @@
|
||||
#ifndef slic3r_SettingsIndex_hpp_
|
||||
#define slic3r_SettingsIndex_hpp_
|
||||
|
||||
#include <algorithm>
|
||||
#include <cstddef>
|
||||
#include <map>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include <wx/string.h>
|
||||
|
||||
#include <libslic3r/Config.hpp>
|
||||
#include <libslic3r/Preset.hpp>
|
||||
|
||||
namespace Slic3r {
|
||||
namespace Search {
|
||||
|
||||
struct InputInfo
|
||||
{
|
||||
DynamicPrintConfig *config{nullptr};
|
||||
Preset::Type type{Preset::TYPE_INVALID};
|
||||
ConfigOptionMode mode{comSimple};
|
||||
};
|
||||
|
||||
struct GroupAndCategory
|
||||
{
|
||||
wxString group;
|
||||
wxString category;
|
||||
wxString icon; // icon of the group's own header, or empty
|
||||
std::string path; // wiki path (Line::label_path) of the option's line, or empty
|
||||
};
|
||||
|
||||
struct Option
|
||||
{
|
||||
// bool operator<(const Option& other) const { return other.label > this->label; }
|
||||
bool operator<(const Option &other) const { return other.key > this->key; }
|
||||
|
||||
// Fuzzy matching works at a character level. Thus matching with wide characters is a safer bet than with short characters,
|
||||
// though for some languages (Chinese?) it may not work correctly.
|
||||
std::wstring key;
|
||||
Preset::Type type{Preset::TYPE_INVALID};
|
||||
std::wstring label;
|
||||
std::wstring label_local;
|
||||
std::wstring group;
|
||||
std::wstring group_local;
|
||||
std::string group_icon; // SVG base name of the group's own header icon, or empty
|
||||
std::wstring category;
|
||||
std::wstring category_local;
|
||||
bool multi_category { false };
|
||||
ConfigOptionMode mode{comSimple}; // option's visibility threshold; drives the Speed Dial's mode prompt
|
||||
std::string tooltip; // localized ConfigOptionDef::tooltip, or empty
|
||||
std::string wiki_path; // Line::label_path for the option's row, or empty
|
||||
|
||||
std::string opt_key() const;
|
||||
};
|
||||
|
||||
// Catalog of settings and their metadata. Owns the group/category registry populated by the
|
||||
// settings pages, plus two views of the options: the mode-filtered view the sidebar search
|
||||
// queries, and every option regardless of mode for the Speed Dial.
|
||||
class SettingsIndex
|
||||
{
|
||||
std::map<std::string, GroupAndCategory> m_groups_and_categories;
|
||||
|
||||
std::vector<Option> m_options; // mode-filtered view used by the sidebar search
|
||||
std::vector<Option> m_all_modes; // every option regardless of mode, for the Speed Dial
|
||||
|
||||
void append_options(DynamicPrintConfig *config, Preset::Type type, ConfigOptionMode mode);
|
||||
void sort_options();
|
||||
|
||||
public:
|
||||
void init(std::vector<InputInfo> input_values);
|
||||
// Rebuild the given type's options; returns false when the index was never initialised.
|
||||
bool apply(DynamicPrintConfig *config, Preset::Type type, ConfigOptionMode mode);
|
||||
|
||||
void add_key(const std::string &opt_key, Preset::Type type, const wxString &group, const wxString &category,
|
||||
const wxString &icon = wxEmptyString);
|
||||
void set_path(const std::string &opt_key, Preset::Type type, const std::string &path);
|
||||
|
||||
const std::vector<Option> &options() const { return m_options; }
|
||||
const std::vector<Option> &all_options() const { return m_all_modes; }
|
||||
const Option & option_at(size_t pos) const { return m_options[pos]; }
|
||||
|
||||
const Option &get_option(const std::string &opt_key, Preset::Type type, int &variant_index) const;
|
||||
Option get_option(const std::string &opt_key, const wxString &label, Preset::Type type) const;
|
||||
|
||||
const GroupAndCategory &get_group_and_category(const std::string &opt_key) { return m_groups_and_categories[opt_key]; }
|
||||
|
||||
void sort_options_by_key()
|
||||
{
|
||||
std::sort(m_options.begin(), m_options.end(), [](const Option &o1, const Option &o2) { return o1.key < o2.key; });
|
||||
}
|
||||
void sort_options_by_label() { sort_options(); }
|
||||
};
|
||||
|
||||
} // namespace Search
|
||||
} // namespace Slic3r
|
||||
|
||||
#endif // slic3r_SettingsIndex_hpp_
|
||||
@@ -5049,8 +5049,8 @@ void TabPrinter::build_fff()
|
||||
}
|
||||
|
||||
// Register by hand so the UnsavedChanges dialog can render a row for it.
|
||||
wxGetApp().sidebar().get_searcher().add_key("printer_agent", m_type, optgroup->title,
|
||||
optgroup->config_category(), optgroup->icon);
|
||||
wxGetApp().sidebar().settings_index().add_key("printer_agent", m_type, optgroup->title,
|
||||
optgroup->config_category(), optgroup->icon);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5761,11 +5761,11 @@ if (is_marlin_flavor)
|
||||
} else if (m_extruders_count_old == 1) {
|
||||
first_extruder_title = wxString::Format("Extruder %d", 1);
|
||||
}
|
||||
auto & searcher = wxGetApp().sidebar().get_searcher();
|
||||
auto & index = wxGetApp().sidebar().settings_index();
|
||||
for (auto &group : m_pages[n_before_extruders]->m_optgroups) {
|
||||
group->set_config_category_and_type(first_extruder_title, m_type);
|
||||
for (auto &opt : group->opt_map())
|
||||
searcher.add_key(opt.first + "#0", m_type, group->title, first_extruder_title, group->icon);
|
||||
index.add_key(opt.first + "#0", m_type, group->title, first_extruder_title, group->icon);
|
||||
}
|
||||
|
||||
Thaw();
|
||||
@@ -7867,10 +7867,10 @@ wxSizer* TabPrinter::create_bed_shape_widget(wxWindow* parent)
|
||||
}));
|
||||
|
||||
{
|
||||
Search::OptionsSearcher& searcher = wxGetApp().sidebar().get_searcher();
|
||||
const Search::GroupAndCategory& gc = searcher.get_group_and_category("printable_area");
|
||||
searcher.add_key("bed_custom_texture", m_type, gc.group, gc.category, gc.icon);
|
||||
searcher.add_key("bed_custom_model", m_type, gc.group, gc.category, gc.icon);
|
||||
Search::SettingsIndex& index = wxGetApp().sidebar().settings_index();
|
||||
const Search::GroupAndCategory& gc = index.get_group_and_category("printable_area");
|
||||
index.add_key("bed_custom_texture", m_type, gc.group, gc.category, gc.icon);
|
||||
index.add_key("bed_custom_model", m_type, gc.group, gc.category, gc.icon);
|
||||
}
|
||||
|
||||
return sizer;
|
||||
|
||||
@@ -1485,12 +1485,12 @@ std::string UnsavedChangesDialog::subreplace(std::string resource_str, std::stri
|
||||
|
||||
void UnsavedChangesDialog::update_tree(Preset::Type type, DynamicConfig * config, int from, int to)
|
||||
{
|
||||
Search::OptionsSearcher &searcher = wxGetApp().sidebar().get_searcher();
|
||||
searcher.sort_options_by_key();
|
||||
Search::SettingsIndex &index = wxGetApp().sidebar().settings_index();
|
||||
index.sort_options_by_key();
|
||||
|
||||
for (const std::string &opt_key : config->keys()) {
|
||||
int variant_index = -2;
|
||||
const Search::Option &option = searcher.get_option(opt_key, type, variant_index);
|
||||
const Search::Option &option = index.get_option(opt_key, type, variant_index);
|
||||
auto category = option.category_local;
|
||||
auto opt = dynamic_cast<ConfigOptionVectorBase*>(config->option(opt_key));
|
||||
std::string value_from = opt->vserialize()[from];
|
||||
@@ -1502,8 +1502,8 @@ void UnsavedChangesDialog::update_tree(Preset::Type type, DynamicConfig * config
|
||||
|
||||
void UnsavedChangesDialog::update_tree(Preset::Type type, PresetCollection* presets_)
|
||||
{
|
||||
Search::OptionsSearcher& searcher = wxGetApp().sidebar().get_searcher();
|
||||
searcher.sort_options_by_key();
|
||||
Search::SettingsIndex& index = wxGetApp().sidebar().settings_index();
|
||||
index.sort_options_by_key();
|
||||
|
||||
// list of the presets with unsaved changes
|
||||
std::vector<PresetCollection*> presets_list;
|
||||
@@ -1558,11 +1558,11 @@ void UnsavedChangesDialog::update_tree(Preset::Type type, PresetCollection* pres
|
||||
|
||||
for (const std::string& opt_key : dirty_options) {
|
||||
int variant_index = -2;
|
||||
const Search::Option &option = searcher.get_option(opt_key, type, variant_index);
|
||||
const Search::Option &option = index.get_option(opt_key, type, variant_index);
|
||||
if (option.opt_key() != opt_key && variant_index < -1) {
|
||||
// When founded option isn't the correct one.
|
||||
// It can be for dirty_options: "default_print_profile", "printer_model", "printer_settings_id",
|
||||
// because of they don't exist in searcher
|
||||
// because of they don't exist in the index
|
||||
continue;
|
||||
}
|
||||
auto category = option.category_local;
|
||||
@@ -1590,8 +1590,8 @@ void UnsavedChangesDialog::update_tree(Preset::Type type, PresetCollection* pres
|
||||
}
|
||||
}
|
||||
|
||||
// Revert sort of searcher back
|
||||
searcher.sort_options_by_label();
|
||||
// Revert sort of index back
|
||||
index.sort_options_by_label();
|
||||
}
|
||||
|
||||
void UnsavedChangesDialog::on_dpi_changed(const wxRect& suggested_rect)
|
||||
@@ -2043,8 +2043,8 @@ void DiffPresetDialog::update_bottom_info(wxString bottom_info)
|
||||
|
||||
void DiffPresetDialog::update_tree()
|
||||
{
|
||||
Search::OptionsSearcher& searcher = wxGetApp().sidebar().get_searcher();
|
||||
searcher.sort_options_by_key();
|
||||
Search::SettingsIndex& index = wxGetApp().sidebar().settings_index();
|
||||
index.sort_options_by_key();
|
||||
|
||||
m_tree->Clear();
|
||||
wxString bottom_info = "";
|
||||
@@ -2124,14 +2124,14 @@ void DiffPresetDialog::update_tree()
|
||||
wxString right_val = get_string_value(opt_key, right_congig);
|
||||
|
||||
const std::string lookup_key = get_pure_opt_key(opt_key);
|
||||
Search::Option option = searcher.get_option(lookup_key, get_full_label(lookup_key, left_config), type);
|
||||
Search::Option option = index.get_option(lookup_key, get_full_label(lookup_key, left_config), type);
|
||||
if (get_pure_opt_key(option.opt_key()) != lookup_key)
|
||||
option = searcher.get_option(opt_key, get_full_label(opt_key, left_config), type);
|
||||
option = index.get_option(opt_key, get_full_label(opt_key, left_config), type);
|
||||
if (get_pure_opt_key(option.opt_key()) != lookup_key) {
|
||||
// When the found option is not the requested one.
|
||||
// This can happen for dirty_options such as:
|
||||
// "default_print_profile", "printer_model", "printer_settings_id",
|
||||
// because they do not exist in the searcher.
|
||||
// because they do not exist in the index.
|
||||
continue;
|
||||
}
|
||||
m_tree->Append(opt_key, type, option.category_local, option.group_local, option.label_local,
|
||||
@@ -2155,8 +2155,8 @@ void DiffPresetDialog::update_tree()
|
||||
Refresh();
|
||||
}
|
||||
|
||||
// Revert sort of searcher back
|
||||
searcher.sort_options_by_label();
|
||||
// Revert sort of index back
|
||||
index.sort_options_by_label();
|
||||
}
|
||||
|
||||
void DiffPresetDialog::on_dpi_changed(const wxRect&)
|
||||
|
||||
Reference in New Issue
Block a user