{{
$t('Machine.SystemPanel.Values.Distro', {
- name: hostStats.release_info.name,
+ name: releaseName,
version_id: hostStats.release_info.version_id,
})
}}
@@ -225,6 +219,15 @@ export default class SystemPanelHost extends Mixins(BaseMixin) {
return this.$store.state.server?.system_info ?? {}
}
+ get releaseName() {
+ let name = this.hostStats.release_info?.name ?? ''
+
+ if (name.startsWith('#')) return this.hostStats.release_info?.id ?? null
+ if (name.startsWith('0.')) return null
+
+ return name
+ }
+
get directory() {
return this.$store.getters['files/getDirectory']('gcodes')
}
diff --git a/src/components/panels/MachineSettings/FirmwareRetractionSettings.vue b/src/components/panels/MachineSettings/FirmwareRetractionSettings.vue
deleted file mode 100644
index 6977dc222..000000000
--- a/src/components/panels/MachineSettings/FirmwareRetractionSettings.vue
+++ /dev/null
@@ -1,136 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/components/panels/MachineSettings/MachineSettingsPanel.vue b/src/components/panels/MachineSettings/MachineSettingsPanel.vue
index a10fc9696..8b2bdb823 100644
--- a/src/components/panels/MachineSettings/MachineSettingsPanel.vue
+++ b/src/components/panels/MachineSettings/MachineSettingsPanel.vue
@@ -6,21 +6,7 @@
:collapsible="true"
card-class="machine-settings-panel">
-
-
-
-
-
-
-
-
-
+
@@ -31,8 +17,6 @@ import BaseMixin from '@/components/mixins/base'
import Panel from '@/components/ui/Panel.vue'
import SubPanel from '@/components/ui/SubPanel.vue'
import MotionSettings from '@/components/panels/MachineSettings/MotionSettings.vue'
-import PressureAdvanceSettings from '@/components/panels/MachineSettings/PressureAdvanceSettings.vue'
-import FirmwareRetractionSettings from '@/components/panels/MachineSettings/FirmwareRetractionSettings.vue'
import { mdiEngine } from '@mdi/js'
@Component({
@@ -40,18 +24,9 @@ import { mdiEngine } from '@mdi/js'
Panel,
SubPanel,
MotionSettings,
- PressureAdvanceSettings,
- FirmwareRetractionSettings,
},
})
export default class MachineSettingsPanel extends Mixins(BaseMixin) {
- /**
- * Icons
- */
mdiEngine = mdiEngine
-
- get existsFirmwareRetraction() {
- return this.$store.state.printer.configfile?.settings?.firmware_retraction ?? false
- }
}
diff --git a/src/components/panels/Status/Gcodefiles.vue b/src/components/panels/Status/Gcodefiles.vue
index 1c5c220e2..540c9f7db 100644
--- a/src/components/panels/Status/Gcodefiles.vue
+++ b/src/components/panels/Status/Gcodefiles.vue
@@ -19,37 +19,29 @@
@contextmenu="showContextMenu($event, item)"
@click="showDialog(item)">
-
-
+
+
-
- {{ mdiFile }}
+
+
+
+
+ {{ mdiFile }}
+
-
+
-
-
-
-
- {{ mdiFile }}
-
-
{{ mdiFile }}
@@ -92,14 +84,9 @@
{{ $t('Files.AddToQueue') }}
+ @click="doSend(contextMenu.item.preheat_gcode)">
{{ mdiFire }}
{{ $t('Files.Preheat') }}
@@ -127,7 +114,7 @@
@@ -157,7 +144,8 @@
import Component from 'vue-class-component'
import { Mixins } from 'vue-property-decorator'
import BaseMixin from '@/components/mixins/base'
-import { FileStateFile, FileStateGcodefile } from '@/store/files/types'
+import ControlMixin from '@/components/mixins/control'
+import { FileStateGcodefile } from '@/store/files/types'
import StartPrintDialog from '@/components/dialogs/StartPrintDialog.vue'
import {
mdiFile,
@@ -183,7 +171,7 @@ interface dialogRenameObject {
StartPrintDialog,
},
})
-export default class StatusPanelGcodefiles extends Mixins(BaseMixin) {
+export default class StatusPanelGcodefiles extends Mixins(BaseMixin, ControlMixin) {
mdiFile = mdiFile
mdiPlay = mdiPlay
mdiPlaylistPlus = mdiPlaylistPlus
@@ -225,32 +213,13 @@ export default class StatusPanelGcodefiles extends Mixins(BaseMixin) {
touchTimer: undefined,
x: 0,
y: 0,
- item: {
- filename: '',
- permissions: '',
- modified: new Date(),
- },
+ item: { ...this.dialogFile },
}
private dialogRenameFile: dialogRenameObject = {
show: false,
newName: '',
- item: {
- isDirectory: false,
- filename: '',
- permissions: '',
- modified: new Date(),
- small_thumbnail: null,
- big_thumbnail: null,
- big_thumbnail_width: null,
- count_printed: 0,
- last_filament_used: null,
- last_start_time: null,
- last_end_time: null,
- last_print_duration: null,
- last_status: null,
- last_total_duration: null,
- },
+ item: { ...this.dialogFile },
}
get gcodeFiles() {
@@ -278,7 +247,7 @@ export default class StatusPanelGcodefiles extends Mixins(BaseMixin) {
return `width: ${this.contentTdWidth}px;`
}
- showContextMenu(e: any, item: FileStateFile) {
+ showContextMenu(e: any, item: FileStateGcodefile) {
if (!this.contextMenu.shown) {
e?.preventDefault()
this.contextMenu.shown = true
@@ -348,10 +317,6 @@ export default class StatusPanelGcodefiles extends Mixins(BaseMixin) {
return '--'
}
- getJobStatus(item: FileStateGcodefile) {
- return item.last_status
- }
-
getStatusIcon(status: string) {
return this.$store.getters['server/history/getPrintStatusIcon'](status)
}
@@ -378,26 +343,6 @@ export default class StatusPanelGcodefiles extends Mixins(BaseMixin) {
this.$store.dispatch('server/jobQueue/addToQueue', [item.filename])
}
- preheat(item: FileStateGcodefile) {
- if (
- 'first_layer_extr_temp' in item &&
- 'first_layer_bed_temp' in item &&
- !['error', 'printing', 'paused'].includes(this.printer_state)
- ) {
- if (item.first_layer_extr_temp && item.first_layer_extr_temp > 0) {
- const gcode = 'M104 S' + item.first_layer_extr_temp
- this.$store.dispatch('server/addEvent', { message: gcode, type: 'command' })
- this.$socket.emit('printer.gcode.script', { script: gcode })
- }
-
- if (item.first_layer_bed_temp && item.first_layer_bed_temp > 0) {
- const gcode = 'M140 S' + item.first_layer_bed_temp
- this.$store.dispatch('server/addEvent', { message: gcode, type: 'command' })
- this.$socket.emit('printer.gcode.script', { script: gcode })
- }
- }
- }
-
view3D(item: FileStateGcodefile) {
this.$router.push({ path: '/viewer', query: { filename: 'gcodes/' + item.filename } })
}
@@ -457,7 +402,9 @@ export default class StatusPanelGcodefiles extends Mixins(BaseMixin) {
}
mounted() {
- this.calcContentTdWidth()
+ setTimeout(() => {
+ this.calcContentTdWidth()
+ }, 200)
}
calcContentTdWidth() {
diff --git a/src/components/panels/Status/Jobqueue.vue b/src/components/panels/Status/Jobqueue.vue
index c9b875258..4e8a76f91 100644
--- a/src/components/panels/Status/Jobqueue.vue
+++ b/src/components/panels/Status/Jobqueue.vue
@@ -254,7 +254,9 @@ export default class StatusPanelJobqueue extends Mixins(BaseMixin) {
}
mounted() {
- this.calcContentTdWidth()
+ setTimeout(() => {
+ this.calcContentTdWidth()
+ }, 200)
}
calcContentTdWidth() {
diff --git a/src/components/panels/TemperaturePanel.vue b/src/components/panels/TemperaturePanel.vue
index 09e832a80..14f47497c 100644
--- a/src/components/panels/TemperaturePanel.vue
+++ b/src/components/panels/TemperaturePanel.vue
@@ -31,7 +31,7 @@
-
+
@@ -420,4 +420,12 @@ export default class TemperaturePanel extends Mixins(BaseMixin, ControlMixin) {
.temperature-panel-table .target {
width: 140px;
}
+
+/*
+workaround for fixing a transparency issue
+which is assumingly a vuetify bug
+*/
+._fix_transparency {
+ background-color: #1e1e1e;
+}
diff --git a/src/components/panels/Timelapse/TimelapseFilesPanel.vue b/src/components/panels/Timelapse/TimelapseFilesPanel.vue
index 113a5bdd8..6edac0708 100644
--- a/src/components/panels/Timelapse/TimelapseFilesPanel.vue
+++ b/src/components/panels/Timelapse/TimelapseFilesPanel.vue
@@ -15,7 +15,7 @@
@@ -32,6 +32,14 @@
dense
style="max-width: 300px">
+
+ {{ mdiDelete }}
+
+ mobile-breakpoint="0"
+ show-select>
{{ header.text }}
@@ -111,19 +121,26 @@
-
+
-
+
+
+
+
- {{ mdiFolder }}
+ {{ mdiFolder }}
- {{ mdiFolderZipOutline }}
+ {{ mdiFolderZipOutline }}
-
- {{ mdiFile }}
+
+
+
+
+ {{ mdiFile }}
+
@@ -169,38 +190,40 @@
- {{ mdiCloudDownload }}
+ {{ mdiCloudDownload }}
{{ $t('Timelapse.Download') }}
- {{ mdiRenameBox }}
+ {{ mdiRenameBox }}
{{ $t('Timelapse.Rename') }}
- {{ mdiRenameBox }}
+ {{ mdiRenameBox }}
{{ $t('Timelapse.Rename') }}
- {{ mdiDelete }}
+ {{ mdiDelete }}
{{ $t('Timelapse.Delete') }}
- {{ mdiDelete }}
+ {{ mdiDelete }}
{{ $t('Timelapse.Delete') }}
@@ -225,7 +248,7 @@
@@ -253,7 +276,7 @@
@@ -280,7 +303,7 @@
@@ -304,7 +327,7 @@
@@ -337,13 +360,33 @@
+
+
+
+
+ {{ mdiCloseThick }}
+
+
+
+ {{ $t('Timelapse.DeleteSelectedQuestion', { count: selectedFiles.length }) }}
+
+
+
+ {{ $t('Timelapse.Cancel') }}
+ {{ $t('Timelapse.Delete') }}
+
+
+
diff --git a/src/components/panels/ToolheadControls/MoveToControl.vue b/src/components/panels/ToolheadControls/MoveToControl.vue
index 662a1ee1d..22cbb3588 100644
--- a/src/components/panels/ToolheadControls/MoveToControl.vue
+++ b/src/components/panels/ToolheadControls/MoveToControl.vue
@@ -1,56 +1,72 @@
-
-
-
+
+
+ −{{ offset }}
+
+ {{ mdiArrowCollapseDown }}
+
+
+
+
-
+
{{ mdiArrowCollapseDown }}
−{{ offset }}
@@ -295,3 +266,49 @@ export default class ZoffsetControl extends Mixins(BaseMixin) {
}
}
+
+
diff --git a/src/components/settings/SettingsGeneralTab.vue b/src/components/settings/SettingsGeneralTab.vue
index b3127da7d..a4206b75f 100644
--- a/src/components/settings/SettingsGeneralTab.vue
+++ b/src/components/settings/SettingsGeneralTab.vue
@@ -2,11 +2,11 @@
-
+
-
+
+ :title="$t('Settings.GeneralTab.CalcPrintProgress').toString()"
+ :sub-title="$t('Settings.GeneralTab.CalcPrintProgressDescription').toString()">
+
+
+
+
+ :title="$t('Settings.GeneralTab.CalcEtaTime').toString()"
+ :sub-title="$t('Settings.GeneralTab.CalcEtaTimeDescription').toString()">
-
+
-
+
{{ $t('Settings.GeneralTab.FactoryReset') }}
@@ -66,7 +78,7 @@
@@ -117,7 +129,7 @@
@@ -183,7 +195,7 @@
@@ -259,59 +271,63 @@ export default class SettingsGeneralTab extends Mixins(BaseMixin) {
return [
{
name: 'general',
- label: this.$t('Settings.GeneralTab.General') + '',
+ label: this.$t('Settings.GeneralTab.General').toString(),
},
{
name: 'console',
- label: this.$t('Settings.ConsoleTab.Console') + '',
+ label: this.$t('Settings.ConsoleTab.Console').toString(),
},
{
name: 'control',
- label: this.$t('Settings.ControlTab.Control') + '',
+ label: this.$t('Settings.ControlTab.Control').toString(),
},
{
name: 'dashboard',
- label: this.$t('Settings.DashboardTab.Dashboard') + '',
+ label: this.$t('Settings.DashboardTab.Dashboard').toString(),
},
{
name: 'editor',
- label: this.$t('Settings.EditorTab.Editor') + '',
+ label: this.$t('Settings.EditorTab.Editor').toString(),
},
{
- name: 'gcodeviewer',
- label: this.$t('Settings.GCodeViewerTab.GCodeViewer') + '',
+ name: 'gcodeViewer',
+ label: this.$t('Settings.GCodeViewerTab.GCodeViewer').toString(),
},
{
name: 'gcodehistory',
- label: this.$t('Settings.GeneralTab.DbConsoleHistory') + '',
+ label: this.$t('Settings.GeneralTab.DbConsoleHistory').toString(),
},
{
name: 'macros',
- label: this.$t('Settings.MacrosTab.Macros') + '',
+ label: this.$t('Settings.MacrosTab.Macros').toString(),
+ },
+ {
+ name: 'notifications',
+ label: this.$t('App.Notifications.Notifications').toString(),
},
{
name: 'presets',
- label: this.$t('Settings.PresetsTab.PreheatPresets') + '',
+ label: this.$t('Settings.PresetsTab.PreheatPresets').toString(),
},
{
name: 'remoteprinters',
- label: this.$t('Settings.RemotePrintersTab.RemotePrinters') + '',
+ label: this.$t('Settings.RemotePrintersTab.RemotePrinters').toString(),
},
{
name: 'timelapse',
- label: this.$t('Settings.TimelapseTab.Timelapse') + '',
+ label: this.$t('Settings.TimelapseTab.Timelapse').toString(),
},
{
name: 'uiSettings',
- label: this.$t('Settings.UiSettingsTab.UiSettings') + '',
+ label: this.$t('Settings.UiSettingsTab.UiSettings').toString(),
},
{
name: 'view',
- label: this.$t('Settings.GeneralTab.DbView') + '',
+ label: this.$t('Settings.GeneralTab.DbView').toString(),
},
{
name: 'webcams',
- label: this.$t('Settings.WebcamsTab.Webcams') + '',
+ label: this.$t('Settings.WebcamsTab.Webcams').toString(),
},
]
}
@@ -348,6 +364,23 @@ export default class SettingsGeneralTab extends Mixins(BaseMixin) {
return languages
}
+ get calcPrintProgressItems() {
+ return [
+ { value: 'file-relative', text: this.$t('Settings.GeneralTab.CalcPrintProgressItems.FileRelative') },
+ { value: 'file-absolute', text: this.$t('Settings.GeneralTab.CalcPrintProgressItems.FileAbsolute') },
+ { value: 'slicer', text: this.$t('Settings.GeneralTab.CalcPrintProgressItems.Slicer') },
+ { value: 'filament', text: this.$t('Settings.GeneralTab.CalcPrintProgressItems.Filament') },
+ ]
+ }
+
+ get calcPrintProgress() {
+ return this.$store.state.gui.general.calcPrintProgress ?? 'file-relative'
+ }
+
+ set calcPrintProgress(newVal) {
+ this.$store.dispatch('gui/saveSetting', { name: 'general.calcPrintProgress', value: newVal })
+ }
+
get calcEstimateItems() {
return [
{ value: 'file', text: this.$t('Settings.GeneralTab.EstimateValues.File') },
@@ -452,7 +485,7 @@ export default class SettingsGeneralTab extends Mixins(BaseMixin) {
}
async backupDb() {
- this.$store.dispatch('socket/addLoading', 'backupDbButton')
+ await this.$store.dispatch('socket/addLoading', 'backupDbButton')
await this.refreshNamespaces()
if (this.availableNamespaces.includes('mainsail')) await this.refreshMainsailKeys()
else this.mainsailKeys = []
@@ -469,7 +502,7 @@ export default class SettingsGeneralTab extends Mixins(BaseMixin) {
}
async restoreDb() {
- this.$store.dispatch('socket/addLoading', 'restoreUploadButton')
+ await this.$store.dispatch('socket/addLoading', 'restoreUploadButton')
this.$refs?.uploadBackupFile?.click()
}
diff --git a/src/components/settings/SettingsRemotePrintersTab.vue b/src/components/settings/SettingsRemotePrintersTab.vue
index 28c3e4e21..be8c806e6 100644
--- a/src/components/settings/SettingsRemotePrintersTab.vue
+++ b/src/components/settings/SettingsRemotePrintersTab.vue
@@ -3,6 +3,9 @@
{{ $t('Settings.RemotePrintersTab.RemotePrinters') }}
+
+ {{ $t('Settings.RemotePrintersTab.UseConfigJson') }}
+
-._transition i::before {
- transition: transform 500ms;
-}
-._rotate-180:before {
- transform: rotate(180deg);
-}
-
-.v-item-group {
- button:hover::before,
- button:focus::before {
- opacity: 0 !important;
- }
- ._menu-button {
- height: 40px;
- width: 62px;
- border: 1px solid rgba(255, 255, 255, 0.25) !important;
- }
- ._menu-button:hover {
- border-color: rgba(255, 255, 255, 1) !important;
- }
- ._menu-button:focus {
- border: 2px solid var(--color-primary) !important;
- }
-}
-
-
@@ -51,7 +24,11 @@
-
+
+
+ {{ $t('Settings.WebcamsTab.EditCrowsnestConf') }}
+
+
{{ $t('Settings.WebcamsTab.AddWebcam') }}
@@ -66,7 +43,7 @@
-
+
@@ -154,7 +131,7 @@
-
+
+
+
+
@@ -231,6 +217,7 @@ import Uv4lMjpeg from '@/components/webcams/Uv4lMjpeg.vue'
import Ipstreamer from '@/components/webcams/Ipstreamer.vue'
import { mdiMenuDown, mdiDelete, mdiPencil, mdiWebcam } from '@mdi/js'
import WebcamMixin from '@/components/mixins/webcam'
+import { FileStateFile } from '@/store/files/types'
interface webcamForm {
bool: boolean
@@ -242,6 +229,7 @@ interface webcamForm {
targetFps: number
urlStream: string
urlSnapshot: string
+ rotate: number
flipX: boolean
flipY: boolean
}
@@ -272,6 +260,7 @@ export default class SettingsWebcamsTab extends Mixins(BaseMixin, WebcamMixin) {
targetFps: 15,
urlStream: '',
urlSnapshot: '',
+ rotate: 0,
flipX: false,
flipY: false,
}
@@ -281,6 +270,13 @@ export default class SettingsWebcamsTab extends Mixins(BaseMixin, WebcamMixin) {
unique: (value: string) => !this.existsWebcamName(value) || this.$t('Settings.WebcamsTab.NameAlreadyExists'),
}
+ private rotateItems = [
+ { value: 0, text: '0°' },
+ { value: 90, text: '90°' },
+ { value: 180, text: '180°' },
+ { value: 270, text: '270°' },
+ ]
+
declare $refs: {
webcamForm: any
}
@@ -322,6 +318,18 @@ export default class SettingsWebcamsTab extends Mixins(BaseMixin, WebcamMixin) {
return ''
}
+ get configfiles() {
+ return this.$store.getters['files/getDirectory']('config')?.childrens ?? []
+ }
+
+ get crowsnestConf(): FileStateFile | null {
+ return this.configfiles.find((file: FileStateFile) => file.filename === 'crowsnest.conf')
+ }
+
+ get existCrowsnestConf(): boolean {
+ return this.configfiles.findIndex((file: FileStateFile) => file.filename === 'crowsnest.conf') !== -1
+ }
+
getSubtitle(webcam: GuiWebcamStateWebcam) {
return 'URL: ' + (webcam.service === 'mjpegstreamer-adaptive' ? webcam.urlSnapshot : webcam.urlStream)
}
@@ -348,6 +356,7 @@ export default class SettingsWebcamsTab extends Mixins(BaseMixin, WebcamMixin) {
this.form.targetFps = webcam.targetFps
this.form.urlStream = webcam.urlStream
this.form.urlSnapshot = webcam.urlSnapshot
+ this.form.rotate = webcam.rotate ?? 0
this.form.flipX = webcam.flipX
this.form.flipY = webcam.flipY
@@ -368,6 +377,7 @@ export default class SettingsWebcamsTab extends Mixins(BaseMixin, WebcamMixin) {
targetFps: this.form.targetFps,
urlStream: this.form.urlStream,
urlSnapshot: this.form.urlSnapshot,
+ rotate: this.form.rotate,
flipX: this.form.flipX,
flipY: this.form.flipY,
}
@@ -392,6 +402,7 @@ export default class SettingsWebcamsTab extends Mixins(BaseMixin, WebcamMixin) {
this.form.targetFps = 15
this.form.urlStream = '/webcam/?action=stream'
this.form.urlSnapshot = '/webcam/?action=snapshot'
+ this.form.rotate = 0
this.form.flipX = false
this.form.flipY = false
}
@@ -399,5 +410,42 @@ export default class SettingsWebcamsTab extends Mixins(BaseMixin, WebcamMixin) {
setFormIcon(icon: string) {
this.form.icon = icon
}
+
+ openCrowsnestConf() {
+ this.$store.dispatch('editor/openFile', {
+ root: 'config',
+ path: '/',
+ filename: this.crowsnestConf?.filename,
+ size: this.crowsnestConf?.size,
+ permissions: this.crowsnestConf?.permissions,
+ })
+ }
}
+
+
diff --git a/src/components/ui/PrinterSelector.vue b/src/components/ui/PrinterSelector.vue
index 3c09edb85..93b336388 100644
--- a/src/components/ui/PrinterSelector.vue
+++ b/src/components/ui/PrinterSelector.vue
@@ -38,7 +38,10 @@ export default class PrinterSelector extends Mixins(BaseMixin) {
mdiChevronDown = mdiChevronDown
get displayMenuPoint() {
- return (this.remoteMode && this.countPrinters > 1) || (!this.remoteMode && this.countPrinters)
+ return (
+ (this.instancesDB !== 'moonraker' && this.countPrinters > 1) ||
+ (this.instancesDB === 'moonraker' && this.countPrinters)
+ )
}
get printers() {
diff --git a/src/components/webcams/MjpegstreamerAdaptive.vue b/src/components/webcams/MjpegstreamerAdaptive.vue
index e89542baa..81d0d562f 100644
--- a/src/components/webcams/MjpegstreamerAdaptive.vue
+++ b/src/components/webcams/MjpegstreamerAdaptive.vue
@@ -34,7 +34,7 @@
diff --git a/src/locales/da.json b/src/locales/da.json
index 2632a76b0..f42337fbe 100644
--- a/src/locales/da.json
+++ b/src/locales/da.json
@@ -1,10 +1,28 @@
{
"App": {
"Notifications": {
+ "DependencyDescription": "Den nuværende version af {name} understøtter ikke alle funktioner i Mainsail. Opdatér {name} til minimum version: {neededVersion}.",
+ "DependencyName": "Afhængighed: {name}",
+ "DismissAll": "Fjern alle",
"KlipperWarnings": {
"DeprecatedOption": "Funktionen \"{option}\" i sektion \"{section}\" er forældet.",
- "DeprecatedValue": "Værdien \"{value}\" i muligheden \"{option}\" i sektion \"{section}\" er forældet."
- }
+ "DeprecatedOptionHeadline": "Forældet Klipper mulighed",
+ "DeprecatedValue": "Værdien \"{value}\" i muligheden \"{option}\" i sektion \"{section}\" er forældet.",
+ "DeprecatedValueHeadline": "Forældet Klipper værdi",
+ "KlipperWarning": "Klipper advarsel"
+ },
+ "MoonrakerWarnings": {
+ "MoonrakerComponent": "Moonraker: {component}",
+ "MoonrakerFailedComponentDescription": "Der blev fundet en fejl under indlæsning af Moonraker komponenten '{component}'. Tjek logfilen og løs problemet.",
+ "MoonrakerWarning": "Moonraker advarsel",
+ "UnparsedConfigOption": "Upareret mulighed '{option}: {value}' fundet i sektionen: [{section}]. Denne mulighed er måske ikke længere tilgængelig, eller der kan være et problem under indlæsning af et modul. Dette vil resultere i en opstartsfejl.",
+ "UnparsedConfigSection": "Upareret konfigurationssektion [{section}] fundet. Dette kan være på grund af en fejl under indlæsning af en komponent. Dette vil resultere i en opstartsfejl."
+ },
+ "Never": "aldrig",
+ "NextReboot": "næste genstart",
+ "NoNotification": "Ingen tilgængelig notifikationer",
+ "Notifications": "Notifikationer",
+ "Remind": "Påmind mig om:"
},
"NumberInput": {
"GreaterOrEqualError": "Skal være større eller lig med {min}!",
@@ -94,6 +112,7 @@
"CheckMoonrakerLog": "Hvis denne besked vises flere gange, kig da i logfilen her:",
"Connecting": "Forbinder med {host}",
"Failed": "Forbindelse fejlede",
+ "Initializing": "Initialiserer",
"TryAgain": "Prøv igen"
},
"Console": {
@@ -104,14 +123,21 @@
"SendCode": "Send kode...",
"SetupConsole": "Terminalindstillinger"
},
+ "Dialogs": {
+ "StartPrint": {
+ "Cancel": "Annuller",
+ "DoYouWantToStartFilename": "Vil du begynde at printe: {filename}?",
+ "Headline": "Start print",
+ "Print": "print",
+ "Timelapse": "Timelapse"
+ }
+ },
"Editor": {
- "Cancel": "Annuller",
"ConfigReference": "Konfigurationsreference",
"DontSave": "Gem ikke",
"Downloading": "Downloader",
"FailedSave": "{filename} blev IKKE gemt!",
"FileReadOnly": "Skrivebeskyttet",
- "Minimap": "Vis minikort",
"SaveClose": "Gem & luk",
"SaveRestart": "Gem & genstart",
"SuccessfullySaved": "{filename} blev gemt.",
@@ -129,17 +155,20 @@
"Files": {
"AddToQueue": "Tilføj til kø",
"AllFiles": "Alle",
+ "BedTemp": "Bed temperatur",
"Cancel": "Annuller",
+ "ChamberTemp": "Indelukke temperatur",
"Create": "Opret",
"CreateNewDirectory": "Ny mappe",
"CurrentPath": "Du er her",
"Delete": "Slet",
"DeleteDirectory": "Slet mappe",
"DeleteDirectoryQuestion": "Vil du slette mappen \"{name}\" og alt dens indhold?",
+ "DeleteSelectedQuestion": "Vil du slette alle {count} valgte filer?",
"Download": "Download",
- "Downloading": "Downloader",
"EditFile": "Rediger Fil",
"Empty": "Tom",
+ "ExtruderTemp": "Hotend temperatur",
"Filament": "Filament",
"FilamentName": "Filament navn",
"FilamentType": "Filament type",
@@ -151,7 +180,12 @@
"FreeDisk": "Ledig plads",
"GCodeFiles": "G-Code Filer",
"HiddenFiles": "Skjulte filer",
+ "LastEndTime": "Sidste slut tid",
+ "LastFilamentUsed": "Sidste filament forbrug",
"LastModified": "Sidst ændret",
+ "LastPrintDuration": "Sidste printtid",
+ "LastStartTime": "Sidste start tid",
+ "LastTotalDuration": "Sidste totale tid",
"LayerHeight": "Laghøjde",
"Name": "Navn",
"NewDirectory": "Ny mappe",
@@ -174,11 +208,14 @@
"SuccessfullyRenamed": "{filename} omdøbt.",
"SuccessfullyUploaded": "Upload af {filename} udført!",
"Total": "Total",
- "Uploading": "Uploader",
"UploadNewGcode": "Upload ny G-Code",
"Used": "Brugt",
"View3D": "Vis i 3D"
},
+ "FullscreenUpload": {
+ "CannotUploadFile": "Kan ikke uploade filen!",
+ "DropFilesToUploadFiles": "Drop filer her for at uploade"
+ },
"GCodeViewer": {
"ClearLoadedFile": "Fjern",
"ColorMode": "Farvevisning",
@@ -223,6 +260,9 @@
"ErrorKlipperNotReady": "Klipper er ikke klar. Kan ikke vise højdekort.",
"Flat": "Fladt",
"Heightmap": "Højdekort",
+ "InvalidNameAlreadyExists": "Profilnavnet bruges allerede, vælg venligst et andet profilnavn.",
+ "InvalidNameEmpty": "Feltet må ikke være tomt!",
+ "InvalidNameReserved": "Profilnavnet 'default' er reserveret af systemet, vælg venligst et andet profilnavn",
"Later": "Senere",
"Mesh": "Mesh",
"Name": "Navn",
@@ -244,12 +284,16 @@
"Wireframe": "Wireframe"
},
"History": {
+ "AddNote": "Tilføj note",
"AllJobs": "Alle job",
"AvgPrinttime": "Gns. printtid",
"Cancel": "Annuller",
+ "ChamberTemp": "Indelukke temperatur",
+ "CreateNote": "Gem note",
"Delete": "Slet",
"DeleteSelectedQuestion": "Er du sikker på du vil slette alle {count} valgte jobs?",
"Details": "Detaljer",
+ "EditNote": "Redigér note",
"Empty": "Tom",
"EndTime": "Sluttid",
"EstimatedFilament": "Estimeret filament",
@@ -270,12 +314,14 @@
"LastModified": "Sidst ændret",
"LayerHeight": "Laghøjde",
"LongestPrinttime": "Længste print",
+ "Note": "Note",
"ObjectHeight": "Objekt Højde",
"PrintDuration": "Print varighed",
"PrintHistory": "Print historik",
"PrintTime": "Print Tid",
"PrinttimeAvg": "Printtid gns.",
"Reprint": "Print igen",
+ "Save": "Gem",
"Search": "Søg",
"SelectedFilamentUsed": "Filament brugt på valgte",
"SelectedJobs": "Valgte jobs",
@@ -309,6 +355,7 @@
"JobQueue": "Jobkø",
"Jobs": "Jobs",
"Pause": "Pause",
+ "RemoveFromQueue": "Fjern fra køen",
"Start": "Start"
},
"Machine": {
@@ -323,6 +370,7 @@
"Delete": "Slet",
"DeleteDirectory": "Slet mappe",
"DeleteDirectoryQuestion": "Vil du slette mappen \"{name}\" og alt dens indhold?",
+ "DeleteSelectedQuestion": "Vil du slette alle {count} valgte filer?",
"Download": "Download",
"EditFile": "Rediger fil",
"Empty": "Tom",
@@ -357,14 +405,14 @@
"Logfiles": "Logfiler"
},
"SystemPanel": {
- "Constants": "Constants",
+ "Constants": "Konstanter",
"Cpu": "CPU",
- "HostDetails": "Host details",
- "LastStats": "Last stats",
- "Load": "Load",
- "Memory": "MEM",
- "NoMoreInfos": "No more Infos",
- "SystemLoad": "System Loads",
+ "HostDetails": "Værtsdetaljer",
+ "LastStats": "Sidste detaljer",
+ "Load": "Belastning",
+ "Memory": "RAM",
+ "NoMoreInfos": "Ikke mere info",
+ "SystemLoad": "Systembelastninger",
"Values": {
"Awake": "Vågen/Aktiv: {awake}",
"Bandwidth": "Båndbredde: {bandwidth}/s",
@@ -406,15 +454,31 @@
}
},
"Panels": {
- "DependenciesPanel": {
- "Dependency": "Afhængighed | Afhængigheder",
- "DependencyDescription": "Din nuværende version af {name} understøtter ikke alle funktioner i Mainsail. Opdater {name} til mindst version {neededVersion}."
- },
"ExtruderControlPanel": {
+ "Allowed": "Tilladt",
+ "EstimatedExtrusion": "Estimeret ekstrudering",
"Extrude": "Extrude",
"ExtruderTempTooLow": "Hotend temp. <",
- "Headline": "Extruder Kontrolpanel",
- "Retract": "Retract"
+ "ExtrusionFactor": "Ekstruderingsfaktor",
+ "ExtrusionFeedrate": "Ekstruderingsfødehastighed",
+ "FilamentLength": "Filamentlængde",
+ "FirmwareRetractionSettings": {
+ "RetractLength": "Retract længde",
+ "RetractSpeed": "Retract hastighed",
+ "UnretractExtraLength": "Unretract ekstra længde",
+ "UnretractSpeed": "Unretract hastighed"
+ },
+ "Headline": "Ekstruder Kontrolpanel",
+ "LoadFilament": "Fød filament",
+ "PressureAdvanceSettings": {
+ "Advance": "Advance",
+ "Extruder": "Ekstruder",
+ "SmoothTime": "Smooth Time"
+ },
+ "Requested": "Anmodet",
+ "Retract": "Retract",
+ "TooLargeExtrusion": "Ekstruderingen er for lang!",
+ "UnloadFilament": "Fjern filament"
},
"FarmPrinterPanel": {
"ReconnectToPrinter": "Genopret forbindelse",
@@ -429,26 +493,12 @@
"Restart": "Genstart"
},
"MachineSettingsPanel": {
- "FirmwareRetractionSettings": {
- "FirmwareRetraction": "Firmware Retraction",
- "RetractLength": "Retract længde",
- "RetractSpeed": "Retract hastighed",
- "UnretractExtraLength": "Unretract ekstra længde",
- "UnretractSpeed": "Unretract hastighed"
- },
"Headline": "Printer indstillinger",
"MotionSettings": {
"Acceleration": "Acceleration",
"MaxAccelToDecel": "Maks. accel. til decel.",
- "Motion": "Bevægelse",
"SquareCornerVelocity": "Hastighed for 90° hjørne",
"Velocity": "Hastighed (Feedrate)"
- },
- "PressureAdvanceSettings": {
- "Advance": "Advance",
- "Extruder": "Extruder",
- "PressureAdvance": "Pressure Advance",
- "SmoothTime": "Smooth Time"
}
},
"MacrosPanel": {
@@ -486,6 +536,8 @@
"CancelPrint": "Afbryd print",
"ClearPrintStats": "Slet printstatistik",
"Difference": "Opvarmning",
+ "EmptyGcodes": "Ingen G-kode tilgængelig.",
+ "EmptyJobqueue": "Der er ingen jobs i kø.",
"Estimate": "Estimeret",
"ETA": "ETA",
"ExcludeObject": {
@@ -497,25 +549,29 @@
},
"Filament": "Filament",
"File": "Fil",
+ "Files": "Filer",
"Flow": "Flow",
"Headline": "Status",
+ "Jobqueue": "Jobkø: ({count})",
+ "JobqueueMoreFiles": "Ikke flere jobs | Et job til | {count} jobs tilbage",
"Layer": "Lag",
"Max": "maks",
"ObjectHeight": "Objekt Højde",
"PausePrint": "Pause print",
"Print": "Reel printtid",
+ "PrintTime": "Print Tid",
"ReprintJob": "Print job igen",
"Requested": "Anmodet",
"ResumePrint": "Genoptag print",
"Slicer": "Slicer",
"Speed": "Hastighed",
+ "Status": "Status",
"Total": "Total",
"Unknown": "Ukendt"
},
"TemperaturePanel": {
"AutoscaleChart": "Autoskalér diagram",
"Avg": "Gns",
- "Color": "Farve",
"Cooldown": "Nedkøling",
"Current": "Nuværende",
"Dataset": {
@@ -543,15 +599,13 @@
"Absolute": "absolut",
"ALL": "Alle",
"Headline": "Kontrolpanel",
- "InvertX": "Invertér X",
- "InvertY": "Invertér Y",
- "InvertZ": "Invertér Z",
+ "Invalid": "Ugyldig",
+ "OutOfRange": "Uden for grænse!",
"PleaseConfigureSteps": "Konfigurer steps",
"Position": "Position",
"QGL": "QGL",
"Relative": "relativ",
"SettingsInterfaceControl": "Indstillinger > Interface > Control",
- "SetupControls": "Kontrolindstillinger",
"SpeedFactor": "Hastighed",
"ZTilt": "Z Tilt"
},
@@ -559,11 +613,11 @@
"All": "Alle",
"FPS": "FPS",
"Headline": "Webcam",
- "UnknownWebcamService": "Ukendt Webcam service",
- "UrlNotAvailable": "URL ikke tilgængelig"
+ "NoWebcam": "Intet webcam tilgængeligt. Tilføj et under \"Interfaceindstillinger\" -> \"Webcams\".",
+ "UnknownWebcamService": "Ukendt Webcam service"
},
"ZoffsetPanel": {
- "CurrentOffset": "Nuværende offset",
+ "Clear": "Nulstil",
"Headline": "Z-Offset",
"Later": "Senere",
"Ok": "OK",
@@ -597,6 +651,7 @@
},
"SelectPrinterDialog": {
"AddPrinter": "Tilføj Printer",
+ "AddPrintersToJson": "Tilføj venligst Printere til config.json.",
"CannotConnectTo": "Kan ikke forbinde med {host}.",
"ChangePrinter": "Skift Printer",
"Connecting": "Forbinder med {host}",
@@ -628,6 +683,7 @@
"EntryStyle": "Indtastnings-Design",
"EntryStyleCompact": "Kompakt",
"EntryStyleDefault": "Standard",
+ "Filters": "Filtre",
"Height": "Højde",
"HideTemperatures": "Skjul temperaturer",
"HideTimelapse": "Skjul Timelapse",
@@ -641,21 +697,29 @@
"Circle": "Cirkel",
"Control": "Kontrol",
"Cross": "Kryds",
+ "EnableXYHoming": "Aktivér kombineret X & Y homing",
+ "EstimatedExtrusionInfo": "Vis estimerede ekstruderingsinformationer",
+ "EstimatedExtrusionInfoDescription": "Vis/Skjul information om estimerede ekstruderinger baseret på eksrtuderingsmængde og hastighed",
"InvertXMovement": "Invertér X",
"InvertYMovement": "Invertér Y",
"InvertZMovement": "Invertér Z",
+ "IsDefault": "Standard",
"MaximumValues": "Maksimumværdier",
"MaximumValuesVisibility": "Vis maksimumværdier",
"MinimumValues": "Minimumsværdier",
+ "MotorsOff": "Slukkede motorer{isDefault}",
"MoveDistancesEInMm": "Distance E i mm",
"MoveDistancesInMm": "Distance i mm",
"MoveDistancesXYInMm": "Distance XY i mm",
"MoveDistancesZInMm": "Distance Z i mm",
+ "QuadGantryLevel": "Firarms nivellering {isDefault}",
"SpeedEInMms": "Hastighed E i mm/s",
"SpeedXY": "Hastighed XY",
"SpeedZ": "Hastighed Z",
"Style": "Stil",
- "ValueGreaterThan": "Værdi større end"
+ "ValueGreaterThan": "Værdi større end {value}",
+ "ZOffsetIncrements": "Z-offset trin (i mm)",
+ "ZTiltAdjust": "Z-Tilt justering{isDefault}"
},
"DashboardTab": {
"Dashboard": "Kontrolpanel",
@@ -679,11 +743,12 @@
},
"GCodeViewerTab": {
"BackgroundColor": "Baggrundsfarve",
- "ExtruderColor": "Extruder farve",
+ "ExtruderColor": "Ekstruder farve",
"GCodeViewer": "G-Code viser",
"GridColor": "Grid farve",
"MaxFeed": "Maksimum hastighed",
"MinFeed": "Minimum hastighed",
+ "ProgressColor": "Fremgangsfarve",
"ShowAxes": "Vis akser"
},
"GeneralTab": {
@@ -693,6 +758,14 @@
"CalcEstimateTimeDescription": "Hvis flere er valgt vil et gennemsnit blive brugt",
"CalcEtaTime": "Beregn sluttidspunkt for print",
"CalcEtaTimeDescription": "Hvis flere er valgt vil et gennemsnit blive brugt",
+ "CalcPrintProgress": "Fremgangsberegning",
+ "CalcPrintProgressDescription": "Metode til beregning af fremgang.",
+ "CalcPrintProgressItems": {
+ "Filament": "Filament",
+ "FileAbsolute": "Filposition (absolut)",
+ "FileRelative": "Filposition (relativ)",
+ "Slicer": "Slicer (M73)"
+ },
"CannotReadJson": "Kan ikke læse backup-fil",
"DbConsoleHistory": "Terminal Historik",
"DbHistoryJobs": "Jobhistorik",
@@ -759,9 +832,13 @@
"CustomGCode": "Brugerdefineret G-Code",
"EditCooldown": "Rediger nedkøling",
"EditHeadline": "Rediger forudindstilling",
+ "ErrorInvalidValue": "Ugyldig værdi",
+ "ErrorNameNotUnique": "Navnet er allerede i brug",
+ "ErrorNameRequired": "Navn skal udfyldes",
"Name": "Navn",
"PreheatPresets": "Forudindstillinger",
"PresetInfo": "Du skal indstille mindst én temperatur eller g-kode.",
+ "PresetNamePlaceholder": "Navn (skal udfyldes)",
"StoreButton": "Gem forudindstilling",
"UpdateButton": "Opdater forudindstilling",
"UpdateCooldown": "Opdater nedkøling"
@@ -772,7 +849,8 @@
"Hostname": "Værtsnavn",
"Port": "Port",
"RemotePrinters": "Printere",
- "UpdatePrinter": "Opdater printer"
+ "UpdatePrinter": "Opdater printer",
+ "UseConfigJson": "InstanceDB = JSON fundet. Brug venligst config.json til at ændre på printerlisten."
},
"TimelapseTab": {
"Autorender": "Autorendering",
@@ -784,12 +862,12 @@
"duplicatelastframe": "Kopier sidste frame",
"duplicatelastframeDescription": "Kopierer sidste frame i videoen",
"Enabled": "Aktiveret",
- "EnabledDescription": "Hvis inaktiv, bliver G-Code makroer ignoreret og AutoRendering bliver sprunget over.",
+ "EnabledDescription": "Hvis inaktiv, bliver G-Kode makroer ignoreret og AutoRendering bliver sprunget over.",
"Extraoutputparams": "Ekstra output parametre",
"ExtraoutputparamsDescription": "Definerer ekstra output parametre til FFMPEG. Bemærk: Udfyldning af dette felt vil deaktivere rotationsindstillinger",
"FwRetract": "Firmware Retract",
"FwRetractDescription": "Brug firmware retraction i timelapse makroen",
- "GcodeVerbose": "Beskrevet G-Code",
+ "GcodeVerbose": "Beskrevet G-Kode",
"GcodeVerboseDescription": "Hvis aktiv, vil G-Code skrive informationer i terminalen",
"General": "Generelt",
"HyperlapseCycle": "Hyperlapse cyklus tid",
@@ -837,9 +915,9 @@
"VariableFps": "Variabel FPS",
"VariableFpsDescription": "Hvis aktiv, vil framrate blive beregnet ud fra ønsket længde.",
"VariableFpsMax": "Variabel FPS maks",
- "VariableFpsMaxDescription": "",
+ "VariableFpsMaxDescription": "Største værdi for variabel FPS",
"VariableFpsMin": "Variabel FPS min",
- "VariableFpsMinDescription": ""
+ "VariableFpsMinDescription": "Mindste værdi for variabel FPS"
},
"UiSettingsTab": {
"BoolBigThumbnail": "Stor forhåndsvisning",
@@ -888,6 +966,7 @@
"Name": "Navn",
"NameAlreadyExists": "Navnet bruges allerede",
"Required": "Krævet",
+ "Rotate": "Rotér",
"SaveWebcam": "Gem Webcam",
"Service": "Service",
"TargetFPS": "Ønsket FPS",
diff --git a/src/locales/de.json b/src/locales/de.json
index ff8b5004d..12643a477 100644
--- a/src/locales/de.json
+++ b/src/locales/de.json
@@ -21,6 +21,7 @@
"Never": "nie",
"NextReboot": "nächsten Reboot",
"NoNotification": "Keine Benachrichtigung vorhanden",
+ "Notifications": "Benachrichtigungen",
"Remind": "Errinnere:"
},
"NumberInput": {
@@ -111,6 +112,7 @@
"CheckMoonrakerLog": "Wenn diese Meldung wiederholt erscheint, schaue bitte in die Logdatei unter:",
"Connecting": "Verbinde zu {host}",
"Failed": "Verbindung fehlgeschlagen",
+ "Initializing": "Initialisieren",
"TryAgain": "Erneut versuchen"
},
"Console": {
@@ -131,17 +133,11 @@
}
},
"Editor": {
- "Cancel": "Abbrechen",
"ConfigReference": "Konfig-Referenz",
"DontSave": "Nicht speichern",
"Downloading": "Herunterladen",
"FailedSave": "{filename} konnte nicht hochgeladen werden!",
"FileReadOnly": "schreibgeschützt",
- "KlipperRestartMethod": "Klipper Neustartmethode",
- "KlipperRestartMethodDescription": "Wählen der Neustartmethode die bei 'Speichern & Neustarten' verwendet wird, wenn Klipper-Konfigurationsdateien bearbeitet werden.",
- "Minimap": "Minimap anzeigen",
- "MoonrakerRestartInstance": "Moonraker Neustartinstanz",
- "MoonrakerRestartInstanceDescription": "Wählen der Moonraker-Instanz die bei 'Speichern & Neustarten' neu gestartet wird, wenn Moonraker-Konfigurationsdateien bearbeitet werden.",
"SaveClose": "Speichern & schließen",
"SaveRestart": "Speichern & Neustart",
"SuccessfullySaved": "{filename} erfolgreich gespeichert.",
@@ -159,7 +155,9 @@
"Files": {
"AddToQueue": "Zur Auftragswarteschlange hinzufügen",
"AllFiles": "Alle",
+ "BedTemp": "Bett Temp.",
"Cancel": "Abbrechen",
+ "ChamberTemp": "Kammer Temp.",
"Create": "Erstellen",
"CreateNewDirectory": "Ordner erstellen",
"CurrentPath": "Aktueller Pfad",
@@ -168,9 +166,9 @@
"DeleteDirectoryQuestion": "Willst du wirklich das Verzeichnis \"{name}\" mit seinem gesamten Inhalt löschen?",
"DeleteSelectedQuestion": "Sollen wirklich {count} ausgewählte Dateien gelöscht werden?",
"Download": "Herunterladen",
- "Downloading": "Herunterladen",
"EditFile": "Datei bearbeiten",
"Empty": "Leer",
+ "ExtruderTemp": "Extruder Temp.",
"Filament": "Filament",
"FilamentName": "Filament Name",
"FilamentType": "Filament Typ",
@@ -181,6 +179,7 @@
"Free": "Frei",
"FreeDisk": "Freier Speicherplatz",
"GCodeFiles": "G-Code Dateien",
+ "GcodesRootDirectoryDoesntExists": "Keinen G-Code Ordner gefunden. Bitte überprüfe die Option \"path\" im Abschnitt [virtual_sdcard] in der Klipper Konfiguration.",
"HiddenFiles": "Versteckte Dateien",
"LastEndTime": "Letzte Endzeit",
"LastFilamentUsed": "Letzter Filamentverbrauch",
@@ -210,7 +209,6 @@
"SuccessfullyRenamed": "{filename} erfolgreich umbenannt.",
"SuccessfullyUploaded": "Hochladen von {filename} erfolgreich!",
"Total": "Gesamt",
- "Uploading": "Hochladen",
"UploadNewGcode": "G-Code hochladen",
"Used": "Belegt",
"View3D": "3D Betrachtung"
@@ -263,6 +261,9 @@
"ErrorKlipperNotReady": "Klipper nicht bereit. Heightmap deaktiviert.",
"Flat": "Flach",
"Heightmap": "Heightmap",
+ "InvalidNameAlreadyExists": "Das Profil existiert bereits, bitte wähle einen anderen Profilnamen.",
+ "InvalidNameEmpty": "Feld darf nicht leer sein!",
+ "InvalidNameReserved": "Das Profil 'default' ist reserviert, bitte wähle einen anderen Profilnamen.",
"Later": "später",
"Mesh": "Mesh",
"Name": "Name",
@@ -288,6 +289,7 @@
"AllJobs": "Alle",
"AvgPrinttime": "Druckzeit - Ø",
"Cancel": "abbrechen",
+ "ChamberTemp": "Kammer Temp.",
"CreateNote": "Notiz anlegen",
"Delete": "Löschen",
"DeleteSelectedQuestion": "Sollen wirklich {count} ausgewählte Jobs gelöscht werden?",
@@ -337,6 +339,7 @@
"in_progress": "In Arbeit",
"klippy_disconnect": "Klippy getrennt",
"klippy_shutdown": "Klippy heruntergefahren",
+ "Others": "Sonstige",
"server_exit": "Server-Exit"
},
"TitleExportHistory": "Historie exportieren",
@@ -362,6 +365,7 @@
"AllFiles": "Alle",
"Cancel": "Abbruch",
"ConfigFiles": "Konfigurationsdateien",
+ "ConfigRootDirectoryDoesntExists": "Keinen Konfigurations-Ordner gefunden. Bitte überprüfe die Option \"config_path\" im Abschnitt [file_manager] in der Moonraker Konfiguration.",
"Create": "Erstellen",
"CreateDirectory": "Verzeichnis erstellen",
"CreateFile": "Datei erstellen",
@@ -455,14 +459,25 @@
"Panels": {
"ExtruderControlPanel": {
"Allowed": "Erlaubt",
- "EstimatedExtrusion": "Geschätzte Extrusion:",
+ "EstimatedExtrusion": "Extrusion:",
"Extrude": "Extrudieren",
"ExtruderTempTooLow": "Extruder Temp. <",
"ExtrusionFactor": "Extrusionsfaktor",
"ExtrusionFeedrate": "Extrusionsgeschwindigkeit",
"FilamentLength": "Filamentlänge",
+ "FirmwareRetractionSettings": {
+ "RetractLength": "Rückzugslänge",
+ "RetractSpeed": "Rückzuggeschwindigkeit",
+ "UnretractExtraLength": "Zusätzliche Ausfahrlänge",
+ "UnretractSpeed": "Ausfahrgeschwindigkeit"
+ },
"Headline": "Extruder",
"LoadFilament": "Filament laden",
+ "PressureAdvanceSettings": {
+ "Advance": "Pressure Advance",
+ "Extruder": "Extruder",
+ "SmoothTime": "Smooth Time"
+ },
"Requested": "Angefordert",
"Retract": "Rückzug",
"TooLargeExtrusion": "Extrusion zu groß!",
@@ -481,26 +496,12 @@
"Restart": "Neustart"
},
"MachineSettingsPanel": {
- "FirmwareRetractionSettings": {
- "FirmwareRetraction": "Firmware Rückzug",
- "RetractLength": "Rückzugslänge",
- "RetractSpeed": "Rückzuggeschwindigkeit",
- "UnretractExtraLength": "Zusätzliche Ausfahrlänge",
- "UnretractSpeed": "Ausfahrgeschwindigkeit"
- },
"Headline": "Maschine",
"MotionSettings": {
"Acceleration": "Beschleunigung",
"MaxAccelToDecel": "Max. Beschl. zu Verz.",
- "Motion": "Bewegung",
"SquareCornerVelocity": "Eck-Geschwindigkeit",
"Velocity": "Geschwindigkeit"
- },
- "PressureAdvanceSettings": {
- "Advance": "Pressure Advance",
- "Extruder": "Extruder",
- "PressureAdvance": "Pressure Advance",
- "SmoothTime": "Smooth Time"
}
},
"MacrosPanel": {
@@ -538,6 +539,8 @@
"CancelPrint": "Druck abbrechen",
"ClearPrintStats": "Druckstatistiken löschen",
"Difference": "Unterschied",
+ "EmptyGcodes": "Kein G-Code verfügbar.",
+ "EmptyJobqueue": "Aktuell keine Datei in der Warteschlange.",
"Estimate": "Schätzung",
"ETA": "ETA",
"ExcludeObject": {
@@ -550,18 +553,16 @@
"Filament": "Filament",
"File": "Datei",
"Files": "Dateien",
- "EmptyGcodes": "Kein G-Code verfügbar.",
- "EmptyJobqueue": "Aktuell keine Datei in der Warteschlange.",
"Flow": "Fluss",
"Headline": "Status",
"Jobqueue": "Warteschlange ({count})",
"JobqueueMoreFiles": "keine weiteren Aufträge | einen weiteren Auftrag | {count} weitere Aufträge",
- "PrintTime": "Druckzeit",
"Layer": "Schicht",
"Max": "max",
"ObjectHeight": "Objekthöhe",
"PausePrint": "Druck pausieren",
"Print": "Druck",
+ "PrintTime": "Druckzeit",
"ReprintJob": "Auftrag erneut drucken",
"Requested": "Angefordert",
"ResumePrint": "Druck fortführen",
@@ -574,7 +575,6 @@
"TemperaturePanel": {
"AutoscaleChart": "Autoskalierung",
"Avg": "Ø",
- "Color": "Farbe",
"Cooldown": "Abkühlen",
"Current": "Aktuell",
"Dataset": {
@@ -603,20 +603,13 @@
"ALL": "ALLE",
"Headline": "Werkzeugkopf",
"Invalid": "Ungültig",
- "InvertX": "X invertieren",
- "InvertY": "Y invertieren",
- "InvertZ": "Z invertieren",
"OutOfRange": "Außerhalb der Maschinengrenze!",
"PleaseConfigureSteps": "Bitte Schritte konfigurieren",
"Position": "Position",
"QGL": "QGL",
"Relative": "relativ",
"SettingsInterfaceControl": "Einstellungen > Interface > Steuerung",
- "SetupControls": "Setup-Steuerelemente",
"SpeedFactor": "Geschwindigkeitsfaktor",
- "XOffset": "X-Versatz",
- "YOffset": "Y-Versatz",
- "ZOffset": "Z-Versatz",
"ZTilt": "Z Tilt"
},
"WebcamPanel": {
@@ -624,12 +617,10 @@
"FPS": "FPS",
"Headline": "Webcam",
"NoWebcam": "Keine Webcam verfügbar. Füge eine Webcam unter \"Interface Einstellungen\" -> \"Webcams\".",
- "UnknownWebcamService": "Unbekannter Webcam Dienst",
- "UrlNotAvailable": "URL nicht verfügbar"
+ "UnknownWebcamService": "Unbekannter Webcam Dienst"
},
"ZoffsetPanel": {
"Clear": "Löschen",
- "CurrentOffset": "Aktueller Versatz",
"Headline": "Z-Versatz",
"Later": "Später",
"Ok": "OK",
@@ -663,6 +654,7 @@
},
"SelectPrinterDialog": {
"AddPrinter": "Drucker hinzufügen",
+ "AddPrintersToJson": "Bitte füge einen Drucker in der config.json hinzu.",
"CannotConnectTo": "Kann keine Verbindung zu {host} herstellen.",
"ChangePrinter": "Drucker ändern",
"Connecting": "Verbinde zu {host}",
@@ -769,6 +761,14 @@
"CalcEstimateTimeDescription": "Bei Mehrfachauswahl wird ein Durchschnitt berechnet",
"CalcEtaTime": "ETA Berechnung",
"CalcEtaTimeDescription": "Bei Mehrfachauswahl wird ein Durchschnitt berechnet",
+ "CalcPrintProgress": "Berechnung des Druckfortschritts",
+ "CalcPrintProgressDescription": "Methode zur Berechnung des Druckfortschritts.",
+ "CalcPrintProgressItems": {
+ "Filament": "Filament",
+ "FileAbsolute": "Dateiposition (absolut)",
+ "FileRelative": "Dateiposition (relativ)",
+ "Slicer": "Slicer (M73)"
+ },
"CannotReadJson": "Sicherungsdatei kann nicht gelesen/analysiert werden.",
"DbConsoleHistory": "Verlauf der Konsole",
"DbHistoryJobs": "Historie Druckvorgänge",
@@ -852,7 +852,8 @@
"Hostname": "Hostname",
"Port": "Port",
"RemotePrinters": "Remote Drucker",
- "UpdatePrinter": "Drucker aktualisieren"
+ "UpdatePrinter": "Drucker aktualisieren",
+ "UseConfigJson": "InstanceDB = JSON erkannt. Bitte bearbeite die config.json um die Druckerliste zu modifizieren."
},
"TimelapseTab": {
"Autorender": "Autorender",
@@ -951,6 +952,7 @@
"WebcamsTab": {
"AddWebcam": "Webcam hinzufügen",
"CreateWebcam": "Erstelle Webcam",
+ "EditCrowsnestConf": "crowsnest.conf bearbeiten",
"EditWebcam": "Webcam bearbeiten",
"FlipHorizontally": "Webcam waagerecht spiegeln",
"FlipVertically": "Webcam vertikal spiegeln",
@@ -968,6 +970,7 @@
"Name": "Name",
"NameAlreadyExists": "Name existiert bereits",
"Required": "benötigt",
+ "Rotate": "Drehen",
"SaveWebcam": "Webcam speichern",
"Service": "Dienst",
"TargetFPS": "Ziel FPS",
@@ -988,6 +991,7 @@
"Delete": "Löschen",
"DeleteDirectory": "Verzeichnis löschen",
"DeleteDirectoryQuestion": "Willst du wirklich das Verzeichnis \"{name}\" mit seinem gesamten Inhalt löschen?",
+ "DeleteSelectedQuestion": "Sollen wirklich {count} ausgewählte Dateien gelöscht werden?",
"Download": "Download",
"DuplicateLastframe": "Letztes Bild duplizieren",
"Empty": "Keine fertigen Zeitraffer gefunden.",
diff --git a/src/locales/en.json b/src/locales/en.json
index 83affe227..c243288f7 100644
--- a/src/locales/en.json
+++ b/src/locales/en.json
@@ -21,6 +21,7 @@
"Never": "never",
"NextReboot": "next reboot",
"NoNotification": "No Notification available",
+ "Notifications": "Notifications",
"Remind": "Remind:"
},
"NumberInput": {
@@ -111,6 +112,7 @@
"CheckMoonrakerLog": "If this message appears repeatedly, please have a look in the log file located at:",
"Connecting": "Connecting to {host}",
"Failed": "Connection failed",
+ "Initializing": "Initializing",
"TryAgain": "try again"
},
"Console": {
@@ -134,7 +136,6 @@
"ConfigReference": "Config Reference",
"DontSave": "Don't save",
"Downloading": "Downloading",
- "Uploading": "Uploading",
"FailedSave": "{filename} could not be uploaded!",
"FileReadOnly": "read-only",
"SaveClose": "Save & close",
@@ -142,7 +143,8 @@
"SuccessfullySaved": "{filename} successfully saved.",
"UnsavedChanges": "Unsaved Changes",
"UnsavedChangesMessage": "Do you want to save your changes made to {filename}?",
- "UnsavedChangesSubMessage": "Your changes will be lost if you don't save them. You can disable this message in the editor settings."
+ "UnsavedChangesSubMessage": "Your changes will be lost if you don't save them. You can disable this message in the editor settings.",
+ "Uploading": "Uploading"
},
"EmergencyStopDialog": {
"AreYouSure": "Are you sure?",
@@ -153,7 +155,9 @@
"Files": {
"AddToQueue": "Add to Queue",
"AllFiles": "All",
+ "BedTemp": "Bed Temp.",
"Cancel": "Cancel",
+ "ChamberTemp": "Chamber Temp.",
"Create": "Create",
"CreateNewDirectory": "Create new Directory",
"CurrentPath": "Current path",
@@ -164,6 +168,7 @@
"Download": "Download",
"EditFile": "Edit File",
"Empty": "Empty",
+ "ExtruderTemp": "Extruder Temp.",
"Filament": "Filament",
"FilamentName": "Filament Name",
"FilamentType": "Filament Type",
@@ -174,6 +179,7 @@
"Free": "Free",
"FreeDisk": "Free disk",
"GCodeFiles": "G-Code Files",
+ "GcodesRootDirectoryDoesntExists": "No G-Code directory found. Please check option \"path\" in the [virtual_sdcard] section of the Klipper configuration.",
"HiddenFiles": "Hidden files",
"LastEndTime": "Last End Time",
"LastFilamentUsed": "Last Filament Used",
@@ -255,6 +261,9 @@
"ErrorKlipperNotReady": "Klipper not ready. Heightmap disabled.",
"Flat": "Flat",
"Heightmap": "Heightmap",
+ "InvalidNameAlreadyExists": "Profile name already exists, please choose another profile name.",
+ "InvalidNameEmpty": "Input must not be empty!",
+ "InvalidNameReserved": "Profile 'default' is reserved, please choose another profile name.",
"Later": "Later",
"Mesh": "Mesh",
"Name": "Name",
@@ -280,6 +289,7 @@
"AllJobs": "All",
"AvgPrinttime": "Print Time - Ø",
"Cancel": "Cancel",
+ "ChamberTemp": "Chamber Temp.",
"CreateNote": "Create Note",
"Delete": "Delete",
"DeleteSelectedQuestion": "Do you really want to delete {count} selected jobs?",
@@ -329,6 +339,7 @@
"in_progress": "In progress",
"klippy_disconnect": "Klippy disconnect",
"klippy_shutdown": "Klippy shutdown",
+ "Others": "Others",
"server_exit": "Server exit"
},
"TitleExportHistory": "Export History",
@@ -354,6 +365,7 @@
"AllFiles": "All",
"Cancel": "Cancel",
"ConfigFiles": "Config Files",
+ "ConfigRootDirectoryDoesntExists": "No configuration directory found. Please check option \"config_path\" in the [file_manager] section of the Moonraker configuration.",
"Create": "Create",
"CreateDirectory": "Create Directory",
"CreateFile": "Create File",
@@ -447,14 +459,25 @@
"Panels": {
"ExtruderControlPanel": {
"Allowed": "Allowed",
- "EstimatedExtrusion": "Estimated Extrusion:",
+ "EstimatedExtrusion": "Extrusion:",
"Extrude": "Extrude",
"ExtruderTempTooLow": "Extruder temp. <",
"ExtrusionFactor": "Extrusion factor",
"ExtrusionFeedrate": "Extrusion Feedrate",
"FilamentLength": "Filament Length",
+ "FirmwareRetractionSettings": {
+ "RetractLength": "Retract Length",
+ "RetractSpeed": "Retract Speed",
+ "UnretractExtraLength": "Unretract Extra Length",
+ "UnretractSpeed": "Unretract Speed"
+ },
"Headline": "Extruder",
"LoadFilament": "Load Filament",
+ "PressureAdvanceSettings": {
+ "Advance": "Pressure Advance",
+ "Extruder": "Extruder",
+ "SmoothTime": "Smooth Time"
+ },
"Requested": "Requested",
"Retract": "Retract",
"TooLargeExtrusion": "Extrusion too large!",
@@ -473,25 +496,12 @@
"Restart": "Restart"
},
"MachineSettingsPanel": {
- "FirmwareRetractionSettings": {
- "FirmwareRetraction": "Firmware Retraction",
- "RetractLength": "Retract Length",
- "RetractSpeed": "Retract Speed",
- "UnretractExtraLength": "Unretract Extra Length",
- "UnretractSpeed": "Unretract Speed"
- },
"Headline": "Machine",
"MotionSettings": {
"Acceleration": "Acceleration",
"MaxAccelToDecel": "Max Accel. to Decel.",
- "Motion": "Motion",
"SquareCornerVelocity": "Square Corner Velocity",
"Velocity": "Velocity"
- },
- "PressureAdvanceSettings": {
- "Advance": "Pressure Advance",
- "Extruder": "Extruder",
- "SmoothTime": "Smooth Time"
}
},
"MacrosPanel": {
@@ -529,6 +539,8 @@
"CancelPrint": "Cancel print",
"ClearPrintStats": "Clear print stats",
"Difference": "Difference",
+ "EmptyGcodes": "No G-Code available.",
+ "EmptyJobqueue": "There is currently no file in the job queue.",
"Estimate": "Estimate",
"ETA": "ETA",
"ExcludeObject": {
@@ -541,18 +553,16 @@
"Filament": "Filament",
"File": "File",
"Files": "Files",
- "EmptyGcodes": "No G-Code available.",
- "EmptyJobqueue": "There is currently no file in the job queue.",
- "Jobqueue": "Job Queue ({count})",
- "JobqueueMoreFiles": "no more jobs | one more job | {count} more jobs",
- "PrintTime": "Print Time",
"Flow": "Flow",
"Headline": "Status",
+ "Jobqueue": "Job Queue ({count})",
+ "JobqueueMoreFiles": "no more jobs | one more job | {count} more jobs",
"Layer": "Layer",
"Max": "max",
"ObjectHeight": "Object Height",
"PausePrint": "Pause print",
"Print": "Print",
+ "PrintTime": "Print Time",
"ReprintJob": "Reprint job",
"Requested": "Requested",
"ResumePrint": "Resume print",
@@ -644,6 +654,7 @@
},
"SelectPrinterDialog": {
"AddPrinter": "Add Printer",
+ "AddPrintersToJson": "Please add the Printers to the config.json.",
"CannotConnectTo": "Cannot connect to {host}.",
"ChangePrinter": "Change Printer",
"Connecting": "Connecting to {host}",
@@ -750,6 +761,14 @@
"CalcEstimateTimeDescription": "If multiple are selected, an average will be calculated",
"CalcEtaTime": "ETA calculation",
"CalcEtaTimeDescription": "If multiple are selected, an average will be calculated",
+ "CalcPrintProgress": "Print progress calculation",
+ "CalcPrintProgressDescription": "Method for calculating the print progress.",
+ "CalcPrintProgressItems": {
+ "Filament": "Filament",
+ "FileAbsolute": "File position (absolute)",
+ "FileRelative": "File position (relative)",
+ "Slicer": "Slicer (M73)"
+ },
"CannotReadJson": "Cannot read/parse backup file.",
"DbConsoleHistory": "Console History",
"DbHistoryJobs": "History Jobs",
@@ -833,7 +852,8 @@
"Hostname": "Hostname",
"Port": "Port",
"RemotePrinters": "Printers",
- "UpdatePrinter": "Update Printer"
+ "UpdatePrinter": "Update Printer",
+ "UseConfigJson": "InstanceDB = JSON detected. Please use the config.json to modify the printers list."
},
"TimelapseTab": {
"Autorender": "Autorender",
@@ -932,6 +952,7 @@
"WebcamsTab": {
"AddWebcam": "add webcam",
"CreateWebcam": "Create Webcam",
+ "EditCrowsnestConf": "Edit crowsnest.conf",
"EditWebcam": "Edit Webcam",
"FlipHorizontally": "Flip webcam horizontally",
"FlipVertically": "Flip webcam vertically",
@@ -949,6 +970,7 @@
"Name": "Name",
"NameAlreadyExists": "Name already exists",
"Required": "required",
+ "Rotate": "Rotate",
"SaveWebcam": "Save Webcam",
"Service": "Service",
"TargetFPS": "Target FPS",
@@ -969,6 +991,7 @@
"Delete": "Delete",
"DeleteDirectory": "Delete Directory",
"DeleteDirectoryQuestion": "Do you really want to delete the \"{name}\" directory with all its contents?",
+ "DeleteSelectedQuestion": "Do you really want to delete {count} selected files?",
"Download": "Download",
"DuplicateLastframe": "Duplicate last frame",
"Empty": "No finished timelapse found.",
diff --git a/src/locales/es.json b/src/locales/es.json
index 395f5abd9..0a46fbc05 100644
--- a/src/locales/es.json
+++ b/src/locales/es.json
@@ -1,27 +1,27 @@
{
"App": {
"Notifications": {
+ "DependencyDescription": "La versión actual de {name} no es compatible con todas las funciones de Mainsail. Actualice {name} a al menos {neededVersion}.",
+ "DependencyName": "Dependencia: {name}",
+ "DismissAll": "Descartar todo",
"KlipperWarnings": {
"DeprecatedOption": "La opción '{option}' en la sección '{section}' está discontinuada y será removida en la próxima versión.",
- "DeprecatedValue": "El valor '{value}' en la opción '{option}' en la sección '{section}' está discontinuado y será removido en la próxima versión.",
"DeprecatedOptionHeadline": "Opción de Klipper en desuso",
+ "DeprecatedValue": "El valor '{value}' en la opción '{option}' en la sección '{section}' está discontinuado y será removido en la próxima versión.",
"DeprecatedValueHeadline": "Valor de Klipper en desuso",
"KlipperWarning": "Advertencia de Klipper"
},
- "DismissAll": "Descartar todo",
- "DependencyDescription": "La versión actual de {name} no es compatible con todas las funciones de Mainsail. Actualice {name} a al menos {neededVersion}.",
- "DependencyName": "Dependencia: {name}",
- "Never": "nunca",
- "NextReboot": "próximo reinicio",
- "NoNotification": "No hay notificación disponible",
- "Remind": "Recordar:",
"MoonrakerWarnings": {
"MoonrakerComponent": "Moonraker: {component}",
"MoonrakerFailedComponentDescription": "Se detectó un error al cargar el componente moonraker '{componente}'. Verifique el archivo de registro y solucione el problema.",
"MoonrakerWarning": "Advertencia de Moonraker",
"UnparsedConfigOption": "Opción de configuración no analizada '{option}: {value}' detectada en la sección [{section}]. Esta puede ser una opción que ya no está disponible o puede ser el resultado de un módulo que no se pudo cargar. En el futuro, esto dará un error de inicio.",
"UnparsedConfigSection": "Sección de configuración no analizada [{section}] detectada. Esto puede ser por un componente que no se pudo cargar. En el futuro, esto dará un error de inicio."
- }
+ },
+ "Never": "nunca",
+ "NextReboot": "próximo reinicio",
+ "NoNotification": "No hay notificación disponible",
+ "Remind": "Recordar:"
},
"NumberInput": {
"GreaterOrEqualError": "¡Debe ser mayor o igual a {min}!",
@@ -121,6 +121,15 @@
"SendCode": "Enviar código...",
"SetupConsole": "Configurar consola"
},
+ "Dialogs": {
+ "StartPrint": {
+ "Cancel": "Cancelar",
+ "DoYouWantToStartFilename": "¿Desea iniciar {filename}?",
+ "Headline": "Iniciar trabajo",
+ "Print": "imprimir",
+ "Timelapse": "Lapso de tiempo"
+ }
+ },
"Editor": {
"Cancel": "Cancelar",
"ConfigReference": "Configuración de referencia",
@@ -153,6 +162,7 @@
"Delete": "Borrar",
"DeleteDirectory": "Borrar directorio",
"DeleteDirectoryQuestion": "¿Realmente quiere borrar la carpeta \"{name}\" con todo su contenido?",
+ "DeleteSelectedQuestion": "¿Realmente desea eliminar {count} archivos seleccionados?",
"Download": "Descargar",
"Downloading": "Descargando",
"EditFile": "Editar archivo",
@@ -168,7 +178,12 @@
"FreeDisk": "Espacio libre en disco",
"GCodeFiles": "Archivos G-Code",
"HiddenFiles": "Archivos ocultos",
+ "LastEndTime": "Ultima hora de finalización",
+ "LastFilamentUsed": "Ultimo filamento usado",
"LastModified": "Ultima modificación",
+ "LastPrintDuration": "Duración de la ultima impresión",
+ "LastStartTime": "Ultima hora de inicio",
+ "LastTotalDuration": "Ultima duración total",
"LayerHeight": "Altura de capa",
"Name": "Nombre",
"NewDirectory": "Nuevo directorio",
@@ -194,13 +209,11 @@
"Uploading": "Cargando",
"UploadNewGcode": "Cargar nuevo G-Code",
"Used": "Usado",
- "View3D": "Vista 3D",
- "DeleteSelectedQuestion": "¿Realmente desea eliminar {count} archivos seleccionados?",
- "LastEndTime": "Ultima hora de finalización",
- "LastFilamentUsed": "Ultimo filamento usado",
- "LastPrintDuration": "Duración de la ultima impresión",
- "LastStartTime": "Ultima hora de inicio",
- "LastTotalDuration": "Ultima duración total"
+ "View3D": "Vista 3D"
+ },
+ "FullscreenUpload": {
+ "CannotUploadFile": "No se pudo cargar el erchivo!",
+ "DropFilesToUploadFiles": "Borrar archivos para subir"
},
"GCodeViewer": {
"ClearLoadedFile": "Borrar",
@@ -267,12 +280,15 @@
"Wireframe": "Estructura de hilos"
},
"History": {
+ "AddNote": "Agregar Nota",
"AllJobs": "Todos",
"AvgPrinttime": "Tiempo promedio de imp.",
"Cancel": "Cancelar",
+ "CreateNote": "Crear Nota",
"Delete": "Eliminar",
"DeleteSelectedQuestion": "¿Está seguro de que desea eliminar los {count} trabajos seleccionados?",
"Details": "Detalles",
+ "EditNote": "Editar Nota",
"Empty": "Vacío",
"EndTime": "Hora de finalización",
"EstimatedFilament": "Filamento estimado",
@@ -293,12 +309,14 @@
"LastModified": "Última modificación",
"LayerHeight": "Altura de capa",
"LongestPrinttime": "Impresión más larga",
+ "Note": "Nota",
"ObjectHeight": "Altura del objeto",
"PrintDuration": "Duración de la impresión",
"PrintHistory": "Historial de impresiones",
"PrintTime": "Tiempo de impresión",
"PrinttimeAvg": "Tiempo promedio de imp.",
"Reprint": "Reimprimir",
+ "Save": "guardar",
"Search": "Buscar",
"SelectedFilamentUsed": "Elija el filamento usado",
"SelectedJobs": "Tareas elegidas",
@@ -308,19 +326,6 @@
"StartTime": "Hora de inicio",
"Statistics": "Estadísticas",
"Status": "Estado",
- "TitleExportHistory": "Exportar historial",
- "TitleRefreshHistory": "Actualizar historial",
- "TitleSettings": "Configuración",
- "TotalDuration": "Duración total",
- "TotalFilamentUsed": "Filamento utilizado en total",
- "TotalJobs": "Trabajos totales",
- "TotalPrinttime": "Tiempo total de impresión",
- "TotalTime": "Tiempo total",
- "AddNote": "Agregar Nota",
- "CreateNote": "Crear Nota",
- "EditNote": "Editar Nota",
- "Note": "Nota",
- "Save": "guardar",
"StatusValues": {
"cancelled": "Cancelado",
"completed": "Completado",
@@ -329,7 +334,15 @@
"klippy_disconnect": "Klippy desconectado",
"klippy_shutdown": "Klippy apagado",
"server_exit": "salida del servidor"
- }
+ },
+ "TitleExportHistory": "Exportar historial",
+ "TitleRefreshHistory": "Actualizar historial",
+ "TitleSettings": "Configuración",
+ "TotalDuration": "Duración total",
+ "TotalFilamentUsed": "Filamento utilizado en total",
+ "TotalJobs": "Trabajos totales",
+ "TotalPrinttime": "Tiempo total de impresión",
+ "TotalTime": "Tiempo total"
},
"JobQueue": {
"AllJobs": "Todas las tareas",
@@ -337,8 +350,8 @@
"JobQueue": "Cola de tareas",
"Jobs": "Tareas",
"Pause": "Pausar",
- "Start": "Iniciar",
- "RemoveFromQueue": "Remover de la cola"
+ "RemoveFromQueue": "Remover de la cola",
+ "Start": "Iniciar"
},
"Machine": {
"ConfigFilesPanel": {
@@ -352,6 +365,7 @@
"Delete": "Eliminar",
"DeleteDirectory": "Eliminar carpeta",
"DeleteDirectoryQuestion": "¿Realmente quiere eliminar \"{name}\" con todo su contenido?",
+ "DeleteSelectedQuestion": "¿Eliminar {count} elementos seleccionados?",
"Download": "Descargar",
"EditFile": "Editar archivo",
"Empty": "Vacío",
@@ -367,14 +381,13 @@
"Rename": "Renombrar",
"RenameDirectory": "Renombrar directorio",
"RenameFile": "Renombrar archivo",
+ "Root": "Raiz",
"SetupCurrentList": "Configurar lista actual",
"ShowFile": "Mostrar archivo",
"Total": "Total",
"UploadFile": "Cargar archivo",
"Uploading": "Cargando",
- "Used": "Usado",
- "Root": "Raiz",
- "DeleteSelectedQuestion": "¿Eliminar {count} elementos seleccionados?"
+ "Used": "Usado"
},
"EndstopPanel": {
"Endstop": "Fin de carrera",
@@ -388,13 +401,13 @@
},
"SystemPanel": {
"Constants": "Constantes",
+ "Cpu": "Cpu",
"HostDetails": "Detalles del host",
"LastStats": "Últimas estadísticas",
"Load": "Carga",
"Memory": "Mem.",
- "SystemLoad": "Cargas del sistema",
- "Cpu": "Cpu",
"NoMoreInfos": "No hay mas Info",
+ "SystemLoad": "Cargas del sistema",
"Values": {
"Awake": "Despierto: {awake}",
"Bandwidth": "Ancho de banda: {bandwidth}/s",
@@ -436,18 +449,46 @@
}
},
"Panels": {
+ "ControlPanel": {
+ "ALL": "Todos",
+ "AlternateControls": "Alternar controles",
+ "Headline": "Controles",
+ "InvertX": "Invertir X",
+ "InvertY": "Invertir Y",
+ "InvertZ": "Invertir Z",
+ "PleaseConfigureSteps": "Por favor configure los pasos",
+ "QGL": "QGL",
+ "SettingsInterfaceControl": "Ajustes > Interfaz > Control",
+ "SetupControls": "Controles de configuración",
+ "X": "X",
+ "Y": "Y",
+ "Z": "Z",
+ "ZTilt": "Z Tilt"
+ },
"ExtruderControlPanel": {
- "Extrude": "Extruir",
- "ExtrusionFactor": "Factor de extrusión",
- "Retract": "Retraer",
"Allowed": "Permitida",
"EstimatedExtrusion": "Extrusion estimada",
+ "Extrude": "Extruir",
"ExtruderTempTooLow": "Temp del extrusor. <",
- "LoadFilament": "Cargar filamento",
- "Requested": "Solicitada",
+ "ExtrusionFactor": "Factor de extrusión",
"ExtrusionFeedrate": "Velocidad de avance de extrusión",
- "Headline": "Extrusor",
"FilamentLength": "Largo del filamento",
+ "FirmwareRetractionSettings": {
+ "RetractLength": "Distancia de retracción",
+ "RetractSpeed": "Velocidad de retracción",
+ "UnretractExtraLength": "Distancia adicional post-retracción",
+ "UnretractSpeed": "Velocidad de post-retracción"
+ },
+ "Headline": "Extrusor",
+ "Retract": "Retraer",
+ "LoadFilament": "Cargar filamento",
+ "PressureAdvanceSettings": {
+ "Advance": "Avance",
+ "Extruder": "Extrusor",
+ "PressureAdvance": "Avance de presión",
+ "SmoothTime": "Tiempo de suavizado"
+ },
+ "Requested": "Solicitada",
"TooLargeExtrusion": "¡Extrusión muy grande!",
"UnloadFilament": "Descargar Filamento"
},
@@ -464,26 +505,12 @@
"Restart": "Reiniciar"
},
"MachineSettingsPanel": {
- "FirmwareRetractionSettings": {
- "FirmwareRetraction": "Retracción por firmware",
- "RetractLength": "Distancia de retracción",
- "RetractSpeed": "Velocidad de retracción",
- "UnretractExtraLength": "Distancia adicional post-retracción",
- "UnretractSpeed": "Velocidad de post-retracción"
- },
"Headline": "Configuración de impresora",
"MotionSettings": {
"Acceleration": "Aceleración",
"MaxAccelToDecel": "Max. Acel. a Decel.",
- "Motion": "Movimiento",
"SquareCornerVelocity": "Velocidad esquinas rectas",
"Velocity": "Velocidad"
- },
- "PressureAdvanceSettings": {
- "Advance": "Avance",
- "Extruder": "Extrusor",
- "PressureAdvance": "Avance de presión",
- "SmoothTime": "Tiempo de suavizado"
}
},
"MacrosPanel": {
@@ -521,6 +548,8 @@
"CancelPrint": "Cancelar impresión",
"ClearPrintStats": "Limpiar estadísticas de impresión",
"Difference": "Diferencia",
+ "EmptyGcodes": "No hay código G disponible.",
+ "EmptyJobqueue": "No hay ningún archivo en la cola de trabajos.",
"Estimate": "Estimación",
"ETA": "ETA",
"ExcludeObject": {
@@ -532,27 +561,25 @@
},
"Filament": "Filamento",
"File": "Archivo",
+ "Files": "Archivos",
"Flow": "Flujo",
"Headline": "Estado",
+ "Jobqueue": "Cola de trabajo ({count})",
+ "JobqueueMoreFiles": "no mas trabajos | un trabajo mas | {count} trabajos mas",
"Layer": "Capa",
"Max": "max",
"ObjectHeight": "Altura del objeto",
"PausePrint": "Pausar impresión",
"Print": "Imprimir",
+ "PrintTime": "Tiempo de impresion",
"ReprintJob": "Reimprimir trabajo",
"Requested": "Solicitada",
"ResumePrint": "Reanudar impresión",
"Slicer": "Laminador",
"Speed": "Velocidad",
+ "Status": "Estado",
"Total": "Total",
- "Unknown": "Desconocido",
- "EmptyGcodes": "No hay código G disponible.",
- "Files": "Archivos",
- "EmptyJobqueue": "No hay ningún archivo en la cola de trabajos.",
- "Jobqueue": "Cola de trabajo ({count})",
- "JobqueueMoreFiles": "no mas trabajos | un trabajo mas | {count} trabajos mas",
- "PrintTime": "Tiempo de impresion",
- "Status": "Estado"
+ "Unknown": "Desconocido"
},
"TemperaturePanel": {
"AutoscaleChart": "Autoescalar gráfico",
@@ -584,9 +611,13 @@
"ToolheadControlPanel": {
"Absolute": "absoluta",
"ALL": "TODO",
+ "Headline": "Toolhead",
+ "Invalid": "Invalido",
"InvertX": "Invertir X",
"InvertY": "Invertir Y",
"InvertZ": "Invertir Z",
+ "MotorsOff": "Motores Apagados",
+ "OutOfRange": "Fuera de rango!",
"PleaseConfigureSteps": "Por favor configure los pasos",
"Position": "Posición",
"QGL": "QGL",
@@ -594,24 +625,21 @@
"SettingsInterfaceControl": "Configuración > Interfaz > Control",
"SetupControls": "Configurar controles",
"SpeedFactor": "Factor de velocidad",
- "ZTilt": "Z Tilt",
- "Invalid": "Invalido",
- "MotorsOff": "Motores Apagados",
- "OutOfRange": "Fuera de rango!",
"XOffset": "X-Offset",
"YOffset": "Y-Offset",
"ZOffset": "Z-Offset",
- "Headline": "Toolhead"
+ "ZTilt": "Z Tilt"
},
"WebcamPanel": {
"All": "Todos",
"FPS": "FPS",
"Headline": "Cámara web",
+ "NoWebcam": "No hay cámara web disponible. Agregue una cámara web en \"Configuración\" -> \"Cámaras web\".",
"UnknownWebcamService": "Servicio de cámara web desconocido",
- "UrlNotAvailable": "URL no disponible",
- "NoWebcam": "No hay cámara web disponible. Agregue una cámara web en \"Configuración\" -> \"Cámaras web\"."
+ "UrlNotAvailable": "URL no disponible"
},
"ZoffsetPanel": {
+ "Clear": "Limpiar",
"CurrentOffset": "Offset actual",
"Headline": "Z-Offset",
"Later": "Más tarde",
@@ -622,24 +650,7 @@
"SaveInfoDescriptionPrint": "El nuevo Z-Offset fue calculado y registrado. Después de imprimir, haga click en \"SAVE CONFIG\" en la barra superior para guardarlo en printer.cfg y reiniciar Klipper.",
"SaveInfoHeadline": "Información",
"ToEndstop": "al fin de carrera",
- "ToProbe": "a la sonda",
- "Clear": "Limpiar"
- },
- "ControlPanel": {
- "ALL": "Todos",
- "AlternateControls": "Alternar controles",
- "Headline": "Controles",
- "InvertX": "Invertir X",
- "InvertY": "Invertir Y",
- "InvertZ": "Invertir Z",
- "X": "X",
- "Y": "Y",
- "Z": "Z",
- "PleaseConfigureSteps": "Por favor configure los pasos",
- "QGL": "QGL",
- "SettingsInterfaceControl": "Ajustes > Interfaz > Control",
- "SetupControls": "Controles de configuración",
- "ZTilt": "Z Tilt"
+ "ToProbe": "a la sonda"
}
},
"PowerDeviceChangeDialog": {
@@ -670,15 +681,15 @@
"EditPrinter": "Editar impresora",
"Hello": "¡Hola y bienvenido al modo remoto de Mainsail!",
"HostnameInvalid": "Nombre de host o IP inválida",
+ "HostnameIp": "Nombre del host/IP",
"HostnameRequired": "El nombre del host es obligatorio",
+ "Port": "Puerto",
"PortRequired": "El puerto es obligatorio",
"RememberToAdd": "Por favor recuerde agregar {cors} en moonraker.conf dentro de 'cors_domains'.",
"SelectPrinter": "Elegir impresora",
"TryAgain": "Intentar nuevamente",
"UpdatePrinter": "Actualizar impresora",
- "YouCanFindMore": "Puede encontrar más detalles en",
- "Port": "Puerto",
- "HostnameIp": "Nombre del host/IP"
+ "YouCanFindMore": "Puede encontrar más detalles en"
},
"Settings": {
"Cancel": "Cancelar",
@@ -694,41 +705,41 @@
"EntryStyle": "Estilo",
"EntryStyleCompact": "Compacto",
"EntryStyleDefault": "Predeterminado",
+ "Filters": "Filtros",
"Height": "Altura",
"HideTemperatures": "Ocultar temperaturas",
"HideTimelapse": "Ocultar Timelapse",
"Name": "Nombre",
"Regex": "Regex",
"StoreButton": "Guardar filtro",
- "UpdateButton": "Actualizar filtro",
- "Filters": "Filtros"
+ "UpdateButton": "Actualizar filtro"
},
"ControlTab": {
"Bars": "Barras",
"Circle": "Círculo",
"Control": "Control",
"Cross": "Cruz",
+ "EnableXYHoming": "Habilitar homing X Y combinado ",
+ "EstimatedExtrusionInfo": "Mostrar info de extrusion estimada",
+ "EstimatedExtrusionInfoDescription": "Mostrar / Ocultar informacion de extrusion estimada basado en la candidad de extrusion y el avance",
"InvertXMovement": "Invertir movimiento X",
"InvertYMovement": "Invertir movimiento Y",
"InvertZMovement": "Invertir movimiento Z",
+ "IsDefault": " (default)",
"MaximumValues": "Valores máximos: {maximum}",
"MaximumValuesVisibility": "Máximo valor de {maximum} se recomienda para mejor visibilidad",
"MinimumValues": "Valores mínimos: {minimum}",
+ "MotorsOff": "Motores apagados{isDefault}",
"MoveDistancesEInMm": "Distancia recorrido E en mm",
"MoveDistancesInMm": "Distancia recorrido en mm",
"MoveDistancesXYInMm": "Distancia recorrido XY en mm",
"MoveDistancesZInMm": "Distancia recorrido Z en mm",
+ "QuadGantryLevel": "Quad Gantry Level{isDefault}",
"SpeedEInMms": "Velocidad E en mm/s",
"SpeedXY": "Velocidad XY",
"SpeedZ": "Velocidad Z",
"Style": "Estilo",
"ValueGreaterThan": "El valor debe ser mayor a {value}",
- "EnableXYHoming": "Habilitar homing X Y combinado ",
- "EstimatedExtrusionInfoDescription": "Mostrar / Ocultar informacion de extrusion estimada basado en la candidad de extrusion y el avance",
- "EstimatedExtrusionInfo": "Mostrar info de extrusion estimada",
- "IsDefault": " (default)",
- "MotorsOff": "Motores apagados{isDefault}",
- "QuadGantryLevel": "Quad Gantry Level{isDefault}",
"ZOffsetIncrements": "Incrementos de Z-Offset (en mm)",
"ZTiltAdjust": "Ajuste de Z-Tilt{isDefault}"
},
@@ -745,12 +756,12 @@
"ConfirmUnsavedChanges": "Preguntar si guardar o descartar cambios",
"ConfirmUnsavedChangesDescription": "Si está activa, el editor requerirá una confirmación para guardar o descartar los cambio realizados. Si está desactivada, los cambios serán descartados.",
"Editor": "Editor",
- "UseEscToClose": "Use ESC para cerrar",
- "UseEscToCloseDescription": "Permite que la tecla ESC cierre el editor",
"KlipperRestartMethod": "Metodo de reinicio de klipper",
"KlipperRestartMethodDescription": "Elija metodo de reinicio que sera usado cuando editamos configuracion de klipper y presionamos \"Guardar y Reiniciar\"",
+ "MoonrakerRestartInstance": "Instancia de Moonraker a reinicar",
"MoonrakerRestartInstanceDescription": "Elija que instacia de moonrker se reiniciara cuando editando configuracionde monnraker presionemos \"Guardar y reiniciar\" ",
- "MoonrakerRestartInstance": "Instancia de Moonraker a reinicar"
+ "UseEscToClose": "Use ESC para cerrar",
+ "UseEscToCloseDescription": "Permite que la tecla ESC cierre el editor"
},
"GCodeViewerTab": {
"BackgroundColor": "Color de fondo",
@@ -775,6 +786,11 @@
"DbTimelapseSettings": "Configuración de Timelapse",
"DbView": "Configuraciones de vista",
"DbWebcams": "Cámaras web",
+ "EstimateValues": {
+ "Filament": "Filamento",
+ "File": "Archivo",
+ "Slicer": "Slicer"
+ },
"FactoryDialog": "Elija las secciones que quiere reiniciar:",
"FactoryReset": "Restablecimiento de fábrica",
"General": "General",
@@ -783,12 +799,7 @@
"PrinterName": "Nombre de la impresora",
"Reset": "Reiniciar",
"Restore": "Restaurar",
- "RestoreDialog": "Elija las secciones que quiere restaurar:",
- "EstimateValues": {
- "Filament": "Filamento",
- "File": "Archivo",
- "Slicer": "Slicer"
- }
+ "RestoreDialog": "Elija las secciones que quiere restaurar:"
},
"InterfaceSettings": "Configuración de la interfaz",
"MacrosTab": {
@@ -834,16 +845,16 @@
"CustomGCode": "G-Code personalizado",
"EditCooldown": "Editar enfriamiento",
"EditHeadline": "Editar config. preestablecida",
+ "ErrorInvalidValue": "Valor invalido",
+ "ErrorNameNotUnique": "Nombre ya existente",
+ "ErrorNameRequired": "nombre requerido",
"Name": "Nombre",
"PreheatPresets": "Precalentamiento",
"PresetInfo": "Debe configurar como mínimo una temperatura objetivo o un G-code personalizado.",
+ "PresetNamePlaceholder": "Nombre preestablecido (requerido)",
"StoreButton": "Guardar config. preestablecida",
"UpdateButton": "Actualizar config. preestablecida",
- "UpdateCooldown": "Actualizar enfriamiento",
- "ErrorInvalidValue": "Valor invalido",
- "ErrorNameNotUnique": "Nombre ya existente",
- "PresetNamePlaceholder": "Nombre preestablecido (requerido)",
- "ErrorNameRequired": "nombre requerido"
+ "UpdateCooldown": "Actualizar enfriamiento"
},
"RemotePrintersTab": {
"AddPrinter": "Agregar impresora",
@@ -1027,18 +1038,5 @@
"Variable": "Variable",
"Video": "Video"
},
- "title": "Español",
- "FullscreenUpload": {
- "CannotUploadFile": "No se pudo cargar el erchivo!",
- "DropFilesToUploadFiles": "Borrar archivos para subir"
- },
- "Dialogs": {
- "StartPrint": {
- "Cancel": "Cancelar",
- "DoYouWantToStartFilename": "¿Desea iniciar {filename}?",
- "Headline": "Iniciar trabajo",
- "Print": "imprimir",
- "Timelapse": "Lapso de tiempo"
- }
- }
+ "title": "Español"
}
diff --git a/src/locales/fr.json b/src/locales/fr.json
index a0f6c72ce..24fdb0b97 100644
--- a/src/locales/fr.json
+++ b/src/locales/fr.json
@@ -2,27 +2,32 @@
"_last_update": "26.05.2022",
"App": {
"Notifications": {
+ "DependencyDescription": "La version actuelle de {name} ne supporte pas toutes les fonctionalités de Mainsail. Mettez {name} a jour vers la version {neededVersion}.",
+ "DependencyName": "Dépendance: {name}",
+ "DismissAll": "Annuler tout",
"KlipperWarnings": {
"DeprecatedOption": "L'option '{option}' dans la section '{section}' est obsolète.",
- "DeprecatedValue": "La valeur '{value}' dans l'option '{option}' dans la section '{section}' est obsolète.",
"DeprecatedOptionHeadline": "Option de Klipper obsolète",
+ "DeprecatedValue": "La valeur '{value}' dans l'option '{option}' dans la section '{section}' est obsolète.",
"DeprecatedValueHeadline": "Valeur d'une option Klipper obsolète",
"KlipperWarning": "Avertissement Klipper"
},
- "DependencyDescription": "La version actuelle de {name} ne supporte pas toutes les fonctionalités de Mainsail. Mettez {name} a jour vers la version {neededVersion}.",
- "DependencyName": "Dépendance: {name}",
- "DismissAll": "Annuler tout",
- "Never": "jamais",
- "NextReboot": "prochain redémarrage",
- "NoNotification": "Pas de notification(s) disponible(s)",
- "Remind": "Rappel:",
"MoonrakerWarnings": {
"MoonrakerComponent": "Moonraker: {component}",
"MoonrakerFailedComponentDescription": "Une erreur a été détectée lors du chargement de '{component}'. Contrôlez le fichier log et corrigez le problème.",
"MoonrakerWarning": "Avertissement Moonraker",
"UnparsedConfigOption": "L' option '{option}: {value}' de la section [{section}] n'a pas été analysée. Cela peut provenir du fait que cette option n'est plus disponible ou que le chargement d'un module a créé une erreur. Dans le futur, ceci créera une erreur de démarrage.",
"UnparsedConfigSection": "L'a section [{section}] n'a pas été analysée. Cela peut provenir du fait que cette option n'est plus disponible ou que le chargement d'un module a créé une erreur. Dans le futur, ceci créera une erreur de démarrage."
- }
+ },
+ "Never": "jamais",
+ "NextReboot": "prochain redémarrage",
+ "NoNotification": "Pas de notification(s) disponible(s)",
+ "Remind": "Rappel:"
+ },
+ "NumberInput": {
+ "GreaterOrEqualError": "Doit être plus grand ou égal à {min} !",
+ "MustBeBetweenError": "Doit être compris entre {min} et {max} !",
+ "NoEmptyAllowedError": "Une valeur est nécessaire !"
},
"Printers": "Imprimantes",
"ThrottledStates": {
@@ -100,11 +105,6 @@
"RecoveringDone": "Restauration {software} effectuée !",
"Updating": "Mise à jour {software}...",
"UpdatingDone": "Mise à jour {software} effectuée !"
- },
- "NumberInput": {
- "GreaterOrEqualError": "Doit être plus grand ou égal à {min} !",
- "MustBeBetweenError": "Doit être compris entre {min} et {max} !",
- "NoEmptyAllowedError": "Une valeur est nécessaire !"
}
},
"ConnectionDialog": {
@@ -122,6 +122,15 @@
"SendCode": "Envoyer la commande",
"SetupConsole": "Configuration console"
},
+ "Dialogs": {
+ "StartPrint": {
+ "Cancel": "Annuler",
+ "DoYouWantToStartFilename": "Désirez-vous imprimer {filename} ?",
+ "Headline": "Démarrage Impression",
+ "Print": "Impression",
+ "Timelapse": "Accéléré"
+ }
+ },
"Editor": {
"Cancel": "Annuler",
"ConfigReference": "Référence de configuration",
@@ -154,6 +163,7 @@
"Delete": "Effacer",
"DeleteDirectory": "Effacer le dossier",
"DeleteDirectoryQuestion": "Voulez vous vraiment effacer le dossier \"{name}\" et tout son contenu ?",
+ "DeleteSelectedQuestion": "Désirez-vous supprimer {count} fichiers ?",
"Download": "Téléchargement",
"Downloading": "Téléchargement en cours",
"EditFile": "Editer Fichier",
@@ -169,7 +179,12 @@
"FreeDisk": "Disque libre",
"GCodeFiles": "Fichiers G-Code",
"HiddenFiles": "Fichiers cachés",
+ "LastEndTime": "Dernière heure de fin d'impression",
+ "LastFilamentUsed": "Dernier filament utilisé",
"LastModified": "Dernière modification",
+ "LastPrintDuration": "Dernière durée d'impression",
+ "LastStartTime": "Dernière heure de départ d'impression",
+ "LastTotalDuration": "Dernière durée totale",
"LayerHeight": "Hauteur de couche",
"Name": "Nom",
"NewDirectory": "Nouveau dossier",
@@ -195,13 +210,11 @@
"Uploading": "Chargement",
"UploadNewGcode": "Charger nouveau G-Code",
"Used": "Utilisé",
- "View3D": "Vue 3D",
- "DeleteSelectedQuestion": "Désirez-vous supprimer {count} fichiers ?",
- "LastEndTime": "Dernière heure de fin d'impression",
- "LastFilamentUsed": "Dernier filament utilisé",
- "LastPrintDuration": "Dernière durée d'impression",
- "LastStartTime": "Dernière heure de départ d'impression",
- "LastTotalDuration": "Dernière durée totale"
+ "View3D": "Vue 3D"
+ },
+ "FullscreenUpload": {
+ "CannotUploadFile": "Impossible de télécharger le fichier !",
+ "DropFilesToUploadFiles": "Déposez les fichiers à télécharger"
},
"GCodeViewer": {
"ClearLoadedFile": "Effacer",
@@ -247,31 +260,36 @@
"ErrorKlipperNotReady": "Klipper pas prêt, maillage désactivé",
"Flat": "Plat",
"Heightmap": "Maillage de hauteur",
+ "Later": "Plus tard",
"Mesh": "Calculé",
"Name": "Nom",
"NoBedMeshHasBeenLoadedYet": "Aucun maillage chargé",
"NoProfile": "Aucun maillage disponible",
+ "Ok": "OK",
"Probed": "Mesuré",
"Profiles": "Profils",
"Remove": "supprimer",
+ "RemoveSaveDescription": "Le maillage a été enregistré comme supprimé. Cliquez sur SAVE_CONFIG pour le retirer du fichier printer.cfg et redémarrez Klipper.",
"Rename": "renommer",
"RenameBedMeshProfile": "Renommer maillage",
+ "SAVE_CONFIG": "SAVE_CONFIG",
+ "ScaleGradient": "Facteur d'échelle",
+ "ScaleZMax": "Maximum axe Z",
"TitleCalibrate": "Calibrer nouveau maillage",
"TitleClear": "Effacer maillage",
"TitleHomeAll": "Réf. tous",
- "Wireframe": "Maillage",
- "Later": "Plus tard",
- "Ok": "OK",
- "RemoveSaveDescription": "Le maillage a été enregistré comme supprimé. Cliquez sur SAVE_CONFIG pour le retirer du fichier printer.cfg et redémarrez Klipper.",
- "SAVE_CONFIG": "SAVE_CONFIG",
- "ScaleGradient": "Facteur d'échelle",
- "ScaleZMax": "Maximum axe Z"
+ "Wireframe": "Maillage"
},
"History": {
+ "AddNote": "Ajouter une note",
"AllJobs": "Tous",
"AvgPrinttime": "Temps moyen",
+ "Cancel": "Annuler",
+ "CreateNote": "Créer une note",
"Delete": "Effacer",
+ "DeleteSelectedQuestion": "Vulez-vous vraiment effacer {count} travaux ?",
"Details": "Details",
+ "EditNote": "Editer note",
"Empty": "vide",
"EndTime": "Heure de fin d'impression",
"EstimatedFilament": "Estimation longueur de filament",
@@ -292,13 +310,16 @@
"LastModified": "Dernière modification",
"LayerHeight": "Hauteur de couche",
"LongestPrinttime": "Plus longue impression",
+ "Note": "Note",
"ObjectHeight": "Hauteur de l'objet",
"PrintDuration": "Durée d'impression réelle",
"PrintHistory": "Historique",
"PrintTime": "Durée d'impression",
"PrinttimeAvg": "Temps moyen d'impression",
"Reprint": "Ré-impression",
+ "Save": "sauvegarder",
"Search": "Recherche",
+ "SelectedFilamentUsed": "Filament sélectionné utilisé",
"Slicer": "Trancheur",
"SlicerVersion": "Version trancheur",
"StartTime": "Heure de début d'impression",
@@ -311,14 +332,6 @@
"TotalJobs": "Nombre travaux",
"TotalPrinttime": "Total temps d'impression",
"TotalTime": "Durée totale",
- "AddNote": "Ajouter une note",
- "Cancel": "Annuler",
- "CreateNote": "Créer une note",
- "DeleteSelectedQuestion": "Vulez-vous vraiment effacer {count} travaux ?",
- "EditNote": "Editer note",
- "Note": "Note",
- "Save": "sauvegarder",
- "SelectedFilamentUsed": "Filament sélectionné utilisé",
"SelectedJobs": "Travaux sélectionnés",
"SelectedPrinttime": "Temps d'impression sélectionnés",
"StatusValues": {
@@ -338,8 +351,8 @@
"JobQueue": "Queue des travaux",
"Jobs": "Travaux",
"Pause": "Pause",
- "Start": "Impression",
- "RemoveFromQueue": "Enlever de la queue des travaux"
+ "RemoveFromQueue": "Enlever de la queue des travaux",
+ "Start": "Impression"
},
"Machine": {
"ConfigFilesPanel": {
@@ -353,6 +366,7 @@
"Delete": "Effacer",
"DeleteDirectory": "Effacer dossier",
"DeleteDirectoryQuestion": "Voulez-vous vraiment effacer le dossier \"{name}\" et tout son contenu ?",
+ "DeleteSelectedQuestion": "Effacer {count} éléments sélectionnés",
"Download": "Téléchargement",
"EditFile": "Editer fichier",
"Empty": "vide",
@@ -368,14 +382,13 @@
"Rename": "Renommer",
"RenameDirectory": "Renommer le dossier",
"RenameFile": "Renommer le fichier",
+ "Root": "Racine",
"SetupCurrentList": "Ajuster la liste",
"ShowFile": "Afficher le fichier",
"Total": "Total",
"UploadFile": "Chargement d'un fichier",
"Uploading": "Téléchargement",
- "Used": "Utilisé",
- "DeleteSelectedQuestion": "Effacer {count} éléments sélectionnés",
- "Root": "Racine"
+ "Used": "Utilisé"
},
"EndstopPanel": {
"Endstop": "Fin de course",
@@ -389,13 +402,13 @@
},
"SystemPanel": {
"Constants": "Constantes",
+ "Cpu": "CPU",
"HostDetails": "Détails hôte",
"LastStats": "Dern. Stats.",
"Load": "Charge",
"Memory": "Mémoire",
- "SystemLoad": "Charge Système",
- "Cpu": "CPU",
"NoMoreInfos": "Pas d'infos supplémentaires",
+ "SystemLoad": "Charge Système",
"Values": {
"Awake": "Eveillé: {awake}",
"Bandwidth": "Bande passante: {bandwidth}/s",
@@ -437,17 +450,45 @@
}
},
"Panels": {
+ "ControlPanel": {
+ "ALL": "Tous",
+ "AlternateControls": "Contrôles alternatifs",
+ "Headline": "Contrôles",
+ "InvertX": "Inversion X",
+ "InvertY": "Inversion Y",
+ "InvertZ": "Inversion Z",
+ "PleaseConfigureSteps": "Configurez les pas",
+ "QGL": "QGL",
+ "SettingsInterfaceControl": "Paramètres > Interface > Contrôles",
+ "SetupControls": "Configuration des contrôles",
+ "X": "X",
+ "Y": "Y",
+ "Z": "Z",
+ "ZTilt": "Z Tilt"
+ },
"ExtruderControlPanel": {
- "Extrude": "Extrusion",
- "ExtrusionFactor": "Facteur d'extrusion",
- "ExtrusionFeedrate": "Vitesse d'extrusion",
- "Headline": "Contrôles d'Extrudeur",
- "Retract": "Rétractation",
"Allowed": "Permis",
"EstimatedExtrusion": "Estimation d'extrusion:",
+ "Extrude": "Extrusion",
"ExtruderTempTooLow": "Température d'extrusion trop basse",
+ "ExtrusionFactor": "Facteur d'extrusion",
+ "ExtrusionFeedrate": "Vitesse d'extrusion",
"FilamentLength": "Longueur de filament",
+ "FirmwareRetractionSettings": {
+ "RetractLength": "Distance de rétractation",
+ "RetractSpeed": "Vitesse de rétractation",
+ "UnretractExtraLength": "Distance d'extrusion supplémentaire",
+ "UnretractSpeed": "Vitesse d'extrusion"
+ },
+ "Headline": "Contrôles d'Extrudeur",
"LoadFilament": "Chargement du filament",
+ "PressureAdvanceSettings": {
+ "Advance": "avance",
+ "Extruder": "extrudeur",
+ "PressureAdvance": "pression en avance",
+ "SmoothTime": "Temps de lissage"
+ },
+ "Retract": "Rétractation",
"Requested": "Demandé",
"TooLargeExtrusion": "Extrusion trop grande !",
"UnloadFilament": "Déchargement du filament"
@@ -465,26 +506,12 @@
"Restart": "Redémarrage"
},
"MachineSettingsPanel": {
- "FirmwareRetractionSettings": {
- "FirmwareRetraction": "Rétractation firmware",
- "RetractLength": "Distance de rétractation",
- "RetractSpeed": "Vitesse de rétractation",
- "UnretractExtraLength": "Distance d'extrusion supplémentaire",
- "UnretractSpeed": "Vitesse d'extrusion"
- },
"Headline": "Réglages machine",
"MotionSettings": {
"Acceleration": "Accélération",
"MaxAccelToDecel": "Décélération maximum",
- "Motion": "Déplacements",
"SquareCornerVelocity": "Vitesse des angles droits",
"Velocity": "Vitesse"
- },
- "PressureAdvanceSettings": {
- "Advance": "avance",
- "Extruder": "extrudeur",
- "PressureAdvance": "pression en avance",
- "SmoothTime": "Temps de lissage"
}
},
"MacrosPanel": {
@@ -522,6 +549,8 @@
"CancelPrint": "Annuler l'impression",
"ClearPrintStats": "Effacer les statistiques d'impression",
"Difference": "Différence",
+ "EmptyGcodes": "Pas de G-Codes disponibles",
+ "EmptyJobqueue": "Pas de fichier dans la queue d'impression",
"Estimate": "Estimation",
"ETA": "TEA",
"ExcludeObject": {
@@ -533,27 +562,25 @@
},
"Filament": "Filament",
"File": "Fichier",
+ "Files": "Fichiers",
"Flow": "Débit",
"Headline": "Status",
+ "Jobqueue": "Queue d'impression ({count})",
+ "JobqueueMoreFiles": "plus de travaux | un travail | {count} travaux",
"Layer": "Couche",
"Max": "max",
"ObjectHeight": "hauteur objet",
"PausePrint": "Pause impression",
"Print": "Impression",
+ "PrintTime": "Durée d'impression",
"ReprintJob": "Ré-impression",
"Requested": "Requis",
"ResumePrint": "Reprise impression",
"Slicer": "Trancheur",
"Speed": "Vitesse",
+ "Status": "Status",
"Total": "Total",
- "Unknown": "Inconnu",
- "EmptyGcodes": "Pas de G-Codes disponibles",
- "EmptyJobqueue": "Pas de fichier dans la queue d'impression",
- "Files": "Fichiers",
- "Jobqueue": "Queue d'impression ({count})",
- "JobqueueMoreFiles": "plus de travaux | un travail | {count} travaux",
- "PrintTime": "Durée d'impression",
- "Status": "Status"
+ "Unknown": "Inconnu"
},
"TemperaturePanel": {
"AutoscaleChart": "Echelle automatique",
@@ -585,9 +612,13 @@
"ToolheadControlPanel": {
"Absolute": "absolue",
"ALL": "Tous",
+ "Headline": "Tête d'impression",
+ "Invalid": "Invalide",
"InvertX": "Inversion X",
"InvertY": "Inversion Y",
"InvertZ": "Inversion Z",
+ "MotorsOff": "Arrêt des moteurs",
+ "OutOfRange": "Hors limites !",
"PleaseConfigureSteps": "Configurez Pas",
"Position": "Position",
"QGL": "QGL",
@@ -595,24 +626,21 @@
"SettingsInterfaceControl": "Réglages > Interface > Contrôle",
"SetupControls": "Réglages",
"SpeedFactor": "Facteur de vitesse",
- "ZTilt": "Z Tilt",
- "Headline": "Tête d'impression",
- "Invalid": "Invalide",
- "MotorsOff": "Arrêt des moteurs",
- "OutOfRange": "Hors limites !",
"XOffset": "Offset-X",
"YOffset": "Offset-Y",
- "ZOffset": "Offset-Z"
+ "ZOffset": "Offset-Z",
+ "ZTilt": "Z Tilt"
},
"WebcamPanel": {
"All": "Tous",
"FPS": "IPS",
"Headline": "Caméra",
+ "NoWebcam": "Pas de caméra disponible. Ajoutez une caméra dans \"Réglages interface\" > \"Caméras\"",
"UnknownWebcamService": "Service Caméra inconnu",
- "UrlNotAvailable": "URL non disponible",
- "NoWebcam": "Pas de caméra disponible. Ajoutez une caméra dans \"Réglages interface\" > \"Caméras\""
+ "UrlNotAvailable": "URL non disponible"
},
"ZoffsetPanel": {
+ "Clear": "Effacer",
"CurrentOffset": "Offset actuel",
"Headline": "Offset Z",
"Later": "Plus tard",
@@ -623,24 +651,7 @@
"SaveInfoDescriptionPrint": "Le nouvel offset Z a été calculé et enregistré. Après l'impression cliquez sur \"SAVE CONFIG\" dans la barre du haut afin de sauvegarder les valeurs dans \"printer.cfg\" et redémarrez Klipper.",
"SaveInfoHeadline": "Information",
"ToEndstop": "jusqu'au fin de course",
- "ToProbe": "jusqu'à la sonde",
- "Clear": "Effacer"
- },
- "ControlPanel": {
- "ALL": "Tous",
- "AlternateControls": "Contrôles alternatifs",
- "Headline": "Contrôles",
- "InvertX": "Inversion X",
- "InvertY": "Inversion Y",
- "InvertZ": "Inversion Z",
- "PleaseConfigureSteps": "Configurez les pas",
- "QGL": "QGL",
- "SettingsInterfaceControl": "Paramètres > Interface > Contrôles",
- "X": "X",
- "Y": "Y",
- "Z": "Z",
- "ZTilt": "Z Tilt",
- "SetupControls": "Configuration des contrôles"
+ "ToProbe": "jusqu'à la sonde"
}
},
"PowerDeviceChangeDialog": {
@@ -671,15 +682,15 @@
"EditPrinter": "Edition imprimante",
"Hello": "Bonjour et bienvenue dans le mode distance de Mainsail",
"HostnameInvalid": "Nom d'hôte/IP invalide",
+ "HostnameIp": "Nom d'hôte/IP",
"HostnameRequired": "Nom d'hôte/IP requis",
+ "Port": "Port",
"PortRequired": "Port requis",
"RememberToAdd": "Merci d'ajouter {cors} dans moonraker.conf rubrique 'cors_domains'.",
"SelectPrinter": "Choisir imprimante",
"TryAgain": "re-essayer",
"UpdatePrinter": "Mise à jour imprimante",
- "YouCanFindMore": "Vous pouvez trouver plus de détails ici:",
- "HostnameIp": "Nom d'hôte/IP",
- "Port": "Port"
+ "YouCanFindMore": "Vous pouvez trouver plus de détails ici:"
},
"Settings": {
"Cancel": "Annuler",
@@ -709,27 +720,27 @@
"Circle": "Cercle",
"Control": "Contrôle",
"Cross": "Croix",
+ "EnableXYHoming": "Activer les m.a.z. simultanées des axes X & Y",
+ "EstimatedExtrusionInfo": "Afficher les estimations d'extrusion",
+ "EstimatedExtrusionInfoDescription": "Afficher / Cacher les estimations d'extrusions basées sur la quantité et le débit.",
"InvertXMovement": "Inversion X",
"InvertYMovement": "Inversion Y",
"InvertZMovement": "Inversion Z",
+ "IsDefault": " (default)",
"MaximumValues": "Valeurs maximum: {maximum}",
"MaximumValuesVisibility": "Le maximum de {maximum} valeurs est recommandé pour la meilleure visibilité",
"MinimumValues": "Valeurs minimum: {minimum}",
+ "MotorsOff": "Arrêt moteur {isDefault}",
"MoveDistancesEInMm": "Déplacement E en mm",
"MoveDistancesInMm": "Déplacement en mm",
"MoveDistancesXYInMm": "Déplacement X & Y en mm",
"MoveDistancesZInMm": "Déplacement Z en mm",
+ "QuadGantryLevel": "Quad Gantry Level{isDefault}",
"SpeedEInMms": "Vitesse E en mm/s",
"SpeedXY": "Vitesse X & Y",
"SpeedZ": "Vitesse Z",
"Style": "Style",
"ValueGreaterThan": "La valeur doit être supérieure à {value}",
- "EnableXYHoming": "Activer les m.a.z. simultanées des axes X & Y",
- "EstimatedExtrusionInfo": "Afficher les estimations d'extrusion",
- "EstimatedExtrusionInfoDescription": "Afficher / Cacher les estimations d'extrusions basées sur la quantité et le débit.",
- "IsDefault": " (default)",
- "MotorsOff": "Arrêt moteur {isDefault}",
- "QuadGantryLevel": "Quad Gantry Level{isDefault}",
"ZOffsetIncrements": "Increments Offset-Z (in mm)",
"ZTiltAdjust": "Adjustement Z-Tilt{isDefault}"
},
@@ -746,12 +757,12 @@
"ConfirmUnsavedChanges": "Confirmation pour sauvegarder ou annuler des changements",
"ConfirmUnsavedChangesDescription": "Si actif, l'éditeur requiert une confirmation de sauvegarde ou d'annulation des changements effectués. Si inactif, les changements sont annulés sans confirmation.",
"Editor": "Editeur",
- "UseEscToClose": "Utiliser la touche \"esc\" pour fermer l'éditeur",
- "UseEscToCloseDescription": "Autoriser la touche \"esc\" de fermer l'éditeur.",
"KlipperRestartMethod": "Méthode de redémarrage de Klipper",
"KlipperRestartMethodDescription": "Choisissez la méthode utilisée pour redémarrer Klipper lors d'un appui sur 'Save & Restart' après édition des fichiers de configuration.",
"MoonrakerRestartInstance": "Redémarrage Moonraker",
- "MoonrakerRestartInstanceDescription": "Choisissez quel service Moonraker doit redémarrer lors d'un appui sur 'Save & Restart' après édition des fichiers de configuration."
+ "MoonrakerRestartInstanceDescription": "Choisissez quel service Moonraker doit redémarrer lors d'un appui sur 'Save & Restart' après édition des fichiers de configuration.",
+ "UseEscToClose": "Utiliser la touche \"esc\" pour fermer l'éditeur",
+ "UseEscToCloseDescription": "Autoriser la touche \"esc\" de fermer l'éditeur."
},
"GCodeViewerTab": {
"BackgroundColor": "Couleur de l'arrière-plan",
@@ -776,6 +787,11 @@
"DbTimelapseSettings": "Accéléré",
"DbView": "Réglages de visualisation",
"DbWebcams": "Caméras",
+ "EstimateValues": {
+ "Filament": "Filament",
+ "File": "Fichier",
+ "Slicer": "Trancheur"
+ },
"FactoryDialog": "Choisissez les sections à réinitialiser",
"FactoryReset": "Réglages d'usine",
"General": "Général",
@@ -784,12 +800,7 @@
"PrinterName": "Nom de l'imprimante",
"Reset": "réinitalisation",
"Restore": "Restauration",
- "RestoreDialog": "Choisissez les sections que vous désirez restaurer:",
- "EstimateValues": {
- "Filament": "Filament",
- "File": "Fichier",
- "Slicer": "Trancheur"
- }
+ "RestoreDialog": "Choisissez les sections que vous désirez restaurer:"
},
"InterfaceSettings": "Réglages interface",
"MacrosTab": {
@@ -835,16 +846,16 @@
"CustomGCode": "G-Code utilisateur",
"EditCooldown": "Editer refroidissement",
"EditHeadline": "Editer préréglage",
+ "ErrorInvalidValue": "Valeur invalide",
+ "ErrorNameNotUnique": "Nom existe déjà",
+ "ErrorNameRequired": "Nom nécessaire",
"Name": "Nom",
"PreheatPresets": "Préréglages °C",
"PresetInfo": "Vous devez définir une température cible ou un G-Code utilisateur",
+ "PresetNamePlaceholder": "Name par défaut (required)",
"StoreButton": "Ajouter préréglage",
"UpdateButton": "Mise à jour préréglage",
- "UpdateCooldown": "Mise à jour refroidissement",
- "ErrorInvalidValue": "Valeur invalide",
- "ErrorNameNotUnique": "Nom existe déjà",
- "ErrorNameRequired": "Nom nécessaire",
- "PresetNamePlaceholder": "Name par défaut (required)"
+ "UpdateCooldown": "Mise à jour refroidissement"
},
"RemotePrintersTab": {
"AddPrinter": "Ajouter imprimante",
@@ -1028,18 +1039,5 @@
"Variable": "Variable",
"Video": "Vidéo"
},
- "title": "Français",
- "Dialogs": {
- "StartPrint": {
- "Cancel": "Annuler",
- "DoYouWantToStartFilename": "Désirez-vous imprimer {filename} ?",
- "Headline": "Démarrage Impression",
- "Print": "Impression",
- "Timelapse": "Accéléré"
- }
- },
- "FullscreenUpload": {
- "CannotUploadFile": "Impossible de télécharger le fichier !",
- "DropFilesToUploadFiles": "Déposez les fichiers à télécharger"
- }
+ "title": "Français"
}
diff --git a/src/locales/hu.json b/src/locales/hu.json
index 90a31ec75..63a63ebdc 100644
--- a/src/locales/hu.json
+++ b/src/locales/hu.json
@@ -1,10 +1,32 @@
{
"App": {
"Notifications": {
+ "DependencyDescription": "Ez a verzió {name} nem támogat minden Mainsail funkciót. Frissítsd az újra {neededVersion} a jelenlegit {name}.",
+ "DependencyName": "Függőség: {name}",
+ "DismissAll": "Mind elvetése",
"KlipperWarnings": {
"DeprecatedOption": "'{section}' / '{option}' opcióját leírtuk, és a következő verzióban már nem lesz benne.",
- "DeprecatedValue": "'{section}' / '{option}' / Value '{value}' opcióját leírtuk, és a következő verzióban már nem lesz benne."
- }
+ "DeprecatedOptionHeadline": "Elavult Klipper Opció",
+ "DeprecatedValue": "'{section}' / '{option}' / Value '{value}' opcióját leírtuk, és a következő verzióban már nem lesz benne.",
+ "DeprecatedValueHeadline": "Elavult Klipper Érték",
+ "KlipperWarning": "Klipper figyelmeztetés"
+ },
+ "MoonrakerWarnings": {
+ "MoonrakerComponent": "Moonraker: {component}",
+ "MoonrakerFailedComponentDescription": "Hiba a betöltés során, Moonraker '{component}'. Kérlek ellenőrizd a logokat, és javítsd a hibát.",
+ "MoonrakerWarning": "Moonraker figyelmeztetés",
+ "UnparsedConfigOption": "A [{section}] szekcióban helytelen konfig opciót '{option}: {value}' detektáltam. Ez lehet egy már nem elérhető opció, vagy egy hibásan betöltődő modul is okozhatja. A jövőben ez egy indítási hibaként fog jelentkezni.",
+ "UnparsedConfigSection": "Helytelen konfig szekciót [{section}] detektáltam. Ezt egy egy hibásan betöltődő komponens okozhatja. A jövőben ez egy indítási hibaként fog jelentkezni."
+ },
+ "Never": "Soha",
+ "NextReboot": "Következő reboot",
+ "NoNotification": "Értesítés nem elérhető",
+ "Remind": "Emlékeztető:"
+ },
+ "NumberInput": {
+ "GreaterOrEqualError": "Nagyobbnak vagy egyenlőnek kell lennie mint {min}!",
+ "MustBeBetweenError": "A {min} és {max} között kell lennie!",
+ "NoEmptyAllowedError": "Nem lehet üres a bemenet!"
},
"Printers": "Nyomtatók",
"ThrottledStates": {
@@ -35,7 +57,7 @@
"TopBar": {
"CannotUploadTheFile": "A fájl nem feltölthető!",
"EmergencyStop": "Vészstop",
- "SAVE_CONFIG": "BÁLLÍTÁS MENTÉSE",
+ "SAVE_CONFIG": "BÁLLÍTÁS_MENTÉSE",
"Uploading": "Feltöltés",
"UploadOfFileSuccessful": " {file} feltöltése sikeres!",
"UploadPrint": "Feltöltés és nyomtatás"
@@ -89,7 +111,8 @@
"CheckMoonrakerLog": "Ha ez az üzenet többször is megjelenik, nézd meg a naplófájlt, itt:",
"Connecting": "Csatlakozás ehhez: {host}",
"Failed": "Kapcsolódás sikeretelen ",
- "TryAgain": "próbáld újra"
+ "Initializing": "Inicializálás",
+ "TryAgain": "Próbáld újra"
},
"Console": {
"CommandList": "Parancslista",
@@ -99,14 +122,21 @@
"SendCode": "Kód küldése...",
"SetupConsole": "Konzol beállítás"
},
+ "Dialogs": {
+ "StartPrint": {
+ "Cancel": "Mégsem",
+ "DoYouWantToStartFilename": "{filename} kezdése?",
+ "Headline": "Feladat kezdése",
+ "Print": "nyomtat",
+ "Timelapse": "Idővonal"
+ }
+ },
"Editor": {
- "Cancel": "Mégsem",
"ConfigReference": "Konfigurációs refencia",
"DontSave": "Ne mentsd",
"Downloading": "Letöltés",
"FailedSave": "Nem tölthető fel: {filename}!",
"FileReadOnly": "csak olvasható",
- "Minimap": "Mutasd a kistérképet",
"SaveClose": "Ment és bezár",
"SaveRestart": "Ment és újraindít",
"SuccessfullySaved": "Sikeresen mentve: {filename}",
@@ -130,9 +160,9 @@
"CurrentPath": "Jelenlegi útvonal",
"Delete": "Törlés",
"DeleteDirectory": "Mappa törlése",
- "DeleteDirectoryQuestion": "Tényleg szeretnéd törölni a(z) \"{name}\" mappát és minden tartalmát?",
+ "DeleteDirectoryQuestion": "Tényleg szeretnéd törölni a következő mappát és minden tartalmát? \"{name}\" ",
+ "DeleteSelectedQuestion": "Tényleg szeretnél törölni {count} darab fájlt?",
"Download": "Letöltés",
- "Downloading": "Letöltés...",
"EditFile": "Fájl szerkesztése",
"Empty": "Üres",
"Filament": "Filament",
@@ -146,7 +176,12 @@
"FreeDisk": "Szabad terület",
"GCodeFiles": "G-Code Fájlok",
"HiddenFiles": "Rejtett fájlok",
+ "LastEndTime": "Legutóbbi Elégzési Idő",
+ "LastFilamentUsed": "Legutóbb Használt Filament",
"LastModified": "Legutóbb módosítva",
+ "LastPrintDuration": "Legutóbbi Nyomtatási Idő",
+ "LastStartTime": "Legutóbbi Start Ideje",
+ "LastTotalDuration": "Legutóbbi Teljes Nyomtatási Idő",
"LayerHeight": "Rétegmagasság",
"Name": "Név",
"NewDirectory": "Új mappa",
@@ -169,11 +204,14 @@
"SuccessfullyRenamed": "Sikeresen átnevezve: {filename}",
"SuccessfullyUploaded": "Sikeres feltöltés: {filename}",
"Total": "Összesen",
- "Uploading": "Feltöltés",
"UploadNewGcode": "Új Gcode feltöltése",
"Used": "Felhasznált",
"View3D": "3D nézet"
},
+ "FullscreenUpload": {
+ "CannotUploadFile": "Nem tudom feltölteni a fájlt!",
+ "DropFilesToUploadFiles": "Húzd át a fájlokat feltöltéshez"
+ },
"GCodeViewer": {
"ClearLoadedFile": "Kitakarít",
"ColorMode": "Színes Mód",
@@ -218,25 +256,36 @@
"ErrorKlipperNotReady": "A Klipper nem áll készen. Magasságtérkép letiltva.",
"Flat": "Lapos",
"Heightmap": "Magasságtérkép",
+ "Later": "Később",
"Mesh": "Síkrács",
"Name": "Név",
"NoBedMeshHasBeenLoadedYet": "Még nincs betöltve a síkrács.",
"NoProfile": "Nincs elérhető profil",
+ "Ok": "OK",
"Probed": "Bemért",
"Profiles": "Profilok",
"Remove": "eltávolítás",
+ "RemoveSaveDescription": "A bed_mesh profil töröltként került megjegyzésre.Klikkelj a BÁLLÍTÁS_MENTÉS-ÉRE, hogy eltávolítsd a printer.cfg-ből és újraindítsd a Klippert.",
"Rename": "átnevez",
"RenameBedMeshProfile": "Síkrács profil átnevezése",
+ "SAVE_CONFIG": "BÁLLÍTÁS_MENTÉSE",
+ "ScaleGradient": "Gradiens skálázása",
+ "ScaleZMax": "Z-max. skálázása",
"TitleCalibrate": "Új síkrács kalibrálása",
"TitleClear": "Síkrács kinullázása",
"TitleHomeAll": "Kezdőpontba áll",
"Wireframe": "Drótháló"
},
"History": {
- "AllJobs": "Minden",
- "AvgPrinttime": "Átlag nyomtatási idő",
+ "AddNote": "Megjegyzés hozzáadása",
+ "AllJobs": "Mind",
+ "AvgPrinttime": "Átlag nyomtatási idő - Ø",
+ "Cancel": "Mégsem",
+ "CreateNote": "Megjegyzés létrehozása",
"Delete": "Törlés",
+ "DeleteSelectedQuestion": "Tényleg törölni akarsz {count} kiválasztott munkát?",
"Details": "Részletek",
+ "EditNote": "Megjegyzés módosítása",
"Empty": "üres",
"EndTime": "Befejezés",
"EstimatedFilament": "Becsült filament",
@@ -257,18 +306,33 @@
"LastModified": "Utolsó módosított",
"LayerHeight": "Rétegmagasság",
"LongestPrinttime": "Leghosszabb nyomtatási idő",
+ "Note": "Megjegyzés",
"ObjectHeight": "Tárgy magassága",
"PrintDuration": "Nyomtatás ideje",
"PrintHistory": "Nyomtatási előzmények",
"PrintTime": "Nyomtatási idő",
"PrinttimeAvg": "Nyomtatási átlag",
"Reprint": "Újranyomtat",
+ "Save": "ment",
"Search": "keresés",
+ "SelectedFilamentUsed": "Kiválasztott Filament Felhasználásra",
+ "SelectedJobs": "Kiválasztott Munkák",
+ "SelectedPrinttime": "Kiválasztott Nyomtatási Idő",
"Slicer": "Slicer",
"SlicerVersion": "Slicer verzió",
"StartTime": "Kezdés",
"Statistics": "Statisztikák",
"Status": "Státusz",
+ "StatusValues": {
+ "cancelled": "Megszakított",
+ "completed": "Elkészült",
+ "error": "Hiba",
+ "in_progress": "Folyamatban",
+ "klippy_disconnect": "Klippy lecsatlakotatás",
+ "klippy_shutdown": "Klippy leállítás",
+ "server_exit": "Szerverből kilépés"
+ },
+ "TitleExportHistory": "Export Előzmények",
"TitleRefreshHistory": "Előzmények frissítése",
"TitleSettings": "Beállítások",
"TotalDuration": "Teljes idő",
@@ -283,6 +347,7 @@
"JobQueue": "Feladatlista",
"Jobs": "Feladatok",
"Pause": "Szünet",
+ "RemoveFromQueue": "Eltávolítás a Listáról",
"Start": "Start"
},
"Machine": {
@@ -297,6 +362,7 @@
"Delete": "Törlés",
"DeleteDirectory": "Mappa törlése",
"DeleteDirectoryQuestion": "Tényleg szeretnéd törölni a(z) \"{name}\" mappát és minden tartalmát?",
+ "DeleteSelectedQuestion": "Töröljem a kiválasztott {count} elemeket?",
"Download": "Letöltés",
"EditFile": "Fájl szerkesztése",
"Empty": "Üres",
@@ -312,6 +378,7 @@
"Rename": "Átnevezés",
"RenameDirectory": "Mappa átnevezése",
"RenameFile": "Fájl átnevezése",
+ "Root": "Root",
"SetupCurrentList": "Jelenlegi lista beállítása",
"ShowFile": "Fájl megjelenítése",
"Total": "Összesen",
@@ -331,11 +398,28 @@
},
"SystemPanel": {
"Constants": "Állandók",
+ "Cpu": "CPU",
"HostDetails": "Gazdagép részletei",
"LastStats": "Utolsó statisztikák",
"Load": "Betöltés",
- "Memory": "Mem",
- "SystemLoad": "Rendszerterhelések"
+ "Memory": "MEM",
+ "NoMoreInfos": "Nincs több Info",
+ "SystemLoad": "Rendszerterhelések",
+ "Values": {
+ "Awake": "Ébredés: {awake}",
+ "Bandwidth": "Sávszélesség: {bandwidth}/s",
+ "Distro": "Distro: {name} {version_id}",
+ "Frequency": "Frek: {frequency}",
+ "Load": "Terh: {load}",
+ "Memory": "Mem: {memory}",
+ "Os": "OS: {os}",
+ "Received": "Kapott: {received}",
+ "Temp": "Hőm: {temp}°C",
+ "TempMax": "max: {temp}°C",
+ "TempMin": "min: {temp}°C",
+ "Transmitted": "Elküldött: {transmitted}",
+ "Version": "Verzió: {version}"
+ }
},
"UpdatePanel": {
"CheckForUpdates": "Frissítések keresése",
@@ -362,14 +446,31 @@
}
},
"Panels": {
- "DependenciesPanel": {
- "Dependency": "Függőség | Függőségek",
- "DependencyDescription": "A jelenlegi verzió {name} nem támogatja a Mainsail minden funkcióját. Frissítsd a {name} verziót legalább erre: {neededVersion}."
- },
"ExtruderControlPanel": {
+ "Allowed": "Megengedett",
+ "EstimatedExtrusion": "Becsült Extrudálás:",
"Extrude": "Extrudálás",
+ "ExtruderTempTooLow": "Extruder hőm. <",
"ExtrusionFactor": "Extrudálási szorzó",
- "Retract": "Visszahúzás"
+ "ExtrusionFeedrate": "Extruder Előtolása",
+ "FilamentLength": "Filament Hossz",
+ "FirmwareRetractionSettings": {
+ "RetractLength": "Visszahúzás hossza",
+ "RetractSpeed": "Visszahúzás sebessége",
+ "UnretractExtraLength": "Eresztés Extra Hossza",
+ "UnretractSpeed": "Eresztés Sebessége"
+ },
+ "Headline": "Extruder",
+ "LoadFilament": "Filament Behúzása",
+ "PressureAdvanceSettings": {
+ "Advance": "Fejlett mód",
+ "Extruder": "Extruder",
+ "SmoothTime": "Simítás ideje"
+ },
+ "Requested": "Kért",
+ "Retract": "Visszahúzás",
+ "TooLargeExtrusion": "A visszahúzás túl nagy!",
+ "UnloadFilament": "Filament kihúzása"
},
"FarmPrinterPanel": {
"ReconnectToPrinter": "Újracsatlakozás",
@@ -384,26 +485,12 @@
"Restart": "Újraindítás"
},
"MachineSettingsPanel": {
- "FirmwareRetractionSettings": {
- "FirmwareRetraction": "Firmware Visszahúzás",
- "RetractLength": "Visszahúzás hossza",
- "RetractSpeed": "Visszahúzás sebessége",
- "UnretractExtraLength": "Eresztés Extra Hossza",
- "UnretractSpeed": "Eresztés Sebessége"
- },
"Headline": "Gép beállításai",
"MotionSettings": {
"Acceleration": "Gyorsulás",
"MaxAccelToDecel": "Lassulás Max Gyorsulása",
- "Motion": "Mozgás",
"SquareCornerVelocity": "Sebesség a sarkokban",
"Velocity": "Gyorsaság"
- },
- "PressureAdvanceSettings": {
- "Advance": "Fejlett mód",
- "Extruder": "Extruder",
- "PressureAdvance": "Nyomás fejlett mód",
- "SmoothTime": "Simítás ideje"
}
},
"MacrosPanel": {
@@ -431,12 +518,6 @@
"Empty": "Üres"
}
},
- "MoonrakerStatePanel": {
- "DownloadLog": "Letöltési log",
- "FollowingPluginHasAnError": "A következő bővítmény hibás:",
- "MoonrakerErrorInfo": "A Moonrakerben hiba lépett fel. Kérlek, ellenőrizd a naplókat, frissítsd a konfigurációt és indítsd újra a Moonrakert.",
- "MoonrakerWarnings": "Moonraker figyelmeztetések"
- },
"PowerControlPanel": {
"Error": "Hiba",
"Off": "KI",
@@ -447,6 +528,8 @@
"CancelPrint": "Nyomtatás megszakítása",
"ClearPrintStats": "Nyomt. statisztikák törlése",
"Difference": "Különbség",
+ "EmptyGcodes": "Nincs elérhető G-Code.",
+ "EmptyJobqueue": "Jelenleg nincs munka a várólistán.",
"Estimate": "Becslés",
"ETA": "Becs.Idő",
"ExcludeObject": {
@@ -458,25 +541,29 @@
},
"Filament": "Filament",
"File": "Fájl",
+ "Files": "Fájlok",
"Flow": "Anyagáramlás",
"Headline": "Állapot",
+ "Jobqueue": "Várólista ({count})",
+ "JobqueueMoreFiles": "Nincs több munka | Még egy munka | {count} munka hátra",
"Layer": "Réteg",
"Max": "max",
"ObjectHeight": "Tárgy magassága",
"PausePrint": "Nyomtatás szüneteltetése",
"Print": "Nyomtatás",
+ "PrintTime": "Nyomtatási Idő",
"ReprintJob": "Munka újranyomtatása",
"Requested": "Kért",
"ResumePrint": "Nyomtatás folytatása",
"Slicer": "Slicer",
"Speed": "Sebesség",
+ "Status": "Státusz",
"Total": "Összesen",
"Unknown": "Ismeretlen"
},
"TemperaturePanel": {
"AutoscaleChart": "Grafikon automatikus méretezése",
"Avg": "Átl.",
- "Color": "Szín",
"Cooldown": "Lehűtés",
"Current": "Jelenlegi",
"Dataset": {
@@ -503,17 +590,16 @@
"ToolheadControlPanel": {
"Absolute": "abszolút",
"ALL": "MIND",
- "InvertX": "X invertálása",
- "InvertY": "Y invertálása",
- "InvertZ": "Z invertálása",
+ "Headline": "Fúvókafej",
+ "Invalid": "Érvénytelen",
+ "OutOfRange": "Hatértéken túl!",
"PleaseConfigureSteps": "Kérlek állítsd be a step értékét",
"Position": "Pozíció",
"QGL": "QGL",
"Relative": "relatív",
"SettingsInterfaceControl": "Beállítások > Kezelőfelület > Vezérlés",
- "SetupControls": "Beállítás vezérlései",
"SpeedFactor": "Sebességállítás",
- "ZTilt": "Z dőlésszög"
+ "ZTilt": "Z-dőlésszög"
},
"WebcamPanel": {
"All": "Mind",
@@ -528,9 +614,9 @@
"Later": "Később",
"Ok": "OK",
"Save": "Mentés",
- "SaveConfig": "BÁLLÍTÁS MENTÉSE",
- "SaveInfoDescription": "Új Z-eltolás kiszámítva és regisztrálva. Kattints a \"BÁLLÍTÁS MENTÉSE\" gombra az új Z-eltolás eltárolásához a printer.cfg-be és indítsd újra a Klippert.",
- "SaveInfoDescriptionPrint": "Új Z-eltolás kiszámítva és regisztrálva. Nyomtatás után kattints a \"BÁLLÍTÁS MENTÉSE\"-re a felső sávban, a printer.cfg-be eltárolásához és a Klipper újraindításához.",
+ "SaveConfig": "BÁLLÍTÁS_MENTÉSE",
+ "SaveInfoDescription": "Új Z-eltolás kiszámítva és regisztrálva. Kattints a \"BÁLLÍTÁS_MENTÉSE\" gombra az új Z-eltolás eltárolásához a printer.cfg-be és indítsd újra a Klippert.",
+ "SaveInfoDescriptionPrint": "Új Z-eltolás kiszámítva és regisztrálva. Nyomtatás után kattints a \"BÁLLÍTÁS_MENTÉSE\"-re a felső sávban, a printer.cfg-be eltárolásához és a Klipper újraindításához.",
"SaveInfoHeadline": "Információ",
"ToEndstop": "a végállásig",
"ToProbe": "szondáig"
@@ -564,7 +650,9 @@
"EditPrinter": "Nyomtató beállítása",
"Hello": "Szia, üdvözlünk a távoli hozzáférésű Mainsailben",
"HostnameInvalid": "Gazdanév/IP érvénytelen",
+ "HostnameIp": "Gazdanév/IP",
"HostnameRequired": "Gazdanév szükséges",
+ "Port": "Port",
"PortRequired": "Port szükséges",
"RememberToAdd": "Add hozzá a moonraker.conf-ban a 'cors_domains'-en belül ezt: {cors}",
"SelectPrinter": "Nyomtató választása",
@@ -586,6 +674,7 @@
"EntryStyle": "Alapstílus",
"EntryStyleCompact": "kompakt",
"EntryStyleDefault": "alapstílus",
+ "Filters": "Filterek",
"Height": "Magasság",
"HideTemperatures": "Hőmérsékletek elrejtése",
"HideTimelapse": "Idővonal elrejtése",
@@ -598,22 +687,30 @@
"Bars": "Sávok",
"Circle": "Kör",
"Control": "Vezérlés",
- "Cross": "kereszt",
+ "Cross": "Kereszt",
+ "EnableXYHoming": "Kombinált X és Y tengely alapállapot engedélyezése",
+ "EstimatedExtrusionInfo": "Mutatsd a becsült extrudálási időt",
+ "EstimatedExtrusionInfoDescription": "Mutasd / rejdtsd el az extrudálás mennyisége és előtolása alapján becsült extrudálási infókat",
"InvertXMovement": "X-mozgás invertálása",
"InvertYMovement": "Y-mozgás invertálása",
"InvertZMovement": "Z-mozgás invertálása",
+ "IsDefault": " (alapértelmezett)",
"MaximumValues": "Maximum értékek: {maximum}",
"MaximumValuesVisibility": "A legjobb láthatósághoz ajánlott Maximum érték: {maximum}",
"MinimumValues": "Minimum értékek: {minimum}",
+ "MotorsOff": "Motorok KI {isDefault}",
"MoveDistancesEInMm": "E-mozgás táv. mm-ben",
"MoveDistancesInMm": "Mozgás táv. mm-ben",
"MoveDistancesXYInMm": "XY mozgás táv. mm-ben",
"MoveDistancesZInMm": "Z mozdítás mm-ben",
+ "QuadGantryLevel": "4 tengelyes szintezés {isDefault}",
"SpeedEInMms": "E sebessége mm/s-ban",
"SpeedXY": "XY sebessége",
"SpeedZ": "Z sebessége",
"Style": "Stílus",
- "ValueGreaterThan": "Az értéknek nagyobbnak kell lennie mint: {value}"
+ "ValueGreaterThan": "Az értéknek nagyobbnak kell lennie mint {value}",
+ "ZOffsetIncrements": "Z-Eltolás mérései (in mm)",
+ "ZTiltAdjust": "Z-dőlésszög Beállítása{isDefault}"
},
"DashboardTab": {
"Dashboard": "Irányítópult",
@@ -628,6 +725,10 @@
"ConfirmUnsavedChanges": "Az új változások mentésének vagy elvetésének kijelzése",
"ConfirmUnsavedChangesDescription": "Ha engedélyezed, az új változások mentéséhez vagy elvetéséhez megerősítés szükséges. Ha kikapcsolod a változásokat némán eldobja.",
"Editor": "Szerkesztő",
+ "KlipperRestartMethod": "Klipper újraindítási mód",
+ "KlipperRestartMethodDescription": "Válaszd ki milyen újraindítási módot használjunk a 'Ment és Újraindít' esetén, amikor a klipper konfig fájlait szerkeszted.",
+ "MoonrakerRestartInstance": "Moonraker példány Újraindítása",
+ "MoonrakerRestartInstanceDescription": "Válaszd ki melyik Moonraker szolgáltatást indítsuk újra a 'Ment és Újraindít' esetén, amikor a Moonraker konfig fájlait szerkeszted.",
"UseEscToClose": "Kilépéshez nyomd meg az ESC gombot",
"UseEscToCloseDescription": "Az ESC gomb megnyomása bezárja a szerkesztőt"
},
@@ -638,7 +739,8 @@
"GridColor": "Rács Színe",
"MaxFeed": "Max Behúzási Ráta",
"MinFeed": "Min Behúzási Ráta",
- "ShowAxes": "Koordinátatengelyek mutatása"
+ "ProgressColor": "Haladás színei",
+ "ShowAxes": "Tengelyek mutatása"
},
"GeneralTab": {
"Backup": "Bizt. mentés",
@@ -654,6 +756,11 @@
"DbTimelapseSettings": "Idővonal beállítások",
"DbView": "Beállítások mutatása",
"DbWebcams": "Webkamerák",
+ "EstimateValues": {
+ "Filament": "Filament",
+ "File": "Fájl",
+ "Slicer": "Slicer"
+ },
"FactoryDialog": "Kérlek válaszd ki a visszaállítandó részeket:",
"FactoryReset": "Gyári visszaállítás",
"General": "Általános",
@@ -708,9 +815,13 @@
"CustomGCode": "Egyedi G-kód",
"EditCooldown": "Visszahűtés szerkesztése",
"EditHeadline": "Előzetes értékek szerkesztése",
+ "ErrorInvalidValue": "Helytelen érték",
+ "ErrorNameNotUnique": "A név már létezik",
+ "ErrorNameRequired": "A név kötelező",
"Name": "Név",
"PreheatPresets": "Előzetes érték",
"PresetInfo": "Választanod kell min hőmérsékletet, vagy egyedi Gcode-ot.",
+ "PresetNamePlaceholder": "Eredeti név(kötelező)",
"StoreButton": "Előzetes értékek tárolása",
"UpdateButton": "Előzetes értékek frissítése",
"UpdateCooldown": "Visszahűtés frissítése"
diff --git a/src/locales/it.json b/src/locales/it.json
index 6575336bb..861bcb847 100644
--- a/src/locales/it.json
+++ b/src/locales/it.json
@@ -365,6 +365,18 @@
"ExtruderControlPanel": {
"Extrude": "Estrudi",
"ExtrusionFactor": "Fattore di estrusione",
+ "FirmwareRetractionSettings": {
+ "RetractLength": "Lunghezza Retrazione",
+ "RetractSpeed": "Velocità Retrazione",
+ "UnretractExtraLength": "Lunghezza Extra Ri-estrusione",
+ "UnretractSpeed": "Velocità Ri-estrusione"
+ },
+ "PressureAdvanceSettings": {
+ "Advance": "Advance",
+ "Extruder": "Estrusore",
+ "PressureAdvance": "Pressure Advance",
+ "SmoothTime": "Smooth Time"
+ },
"Retract": "Retrazione"
},
"FarmPrinterPanel": {
@@ -380,27 +392,13 @@
"Restart": "Riavvia"
},
"MachineSettingsPanel": {
- "FirmwareRetractionSettings": {
- "FirmwareRetraction": "Retrazione Firmware",
- "RetractLength": "Lunghezza Retrazione",
- "RetractSpeed": "Velocità Retrazione",
- "UnretractExtraLength": "Lunghezza Extra Ri-estrusione",
- "UnretractSpeed": "Velocità Ri-estrusione"
- },
"Headline": "Impostazioni Macchina",
"MotionSettings": {
"Acceleration": "Accelerazione",
"Deceleration": "Decelerazione",
"MaxAccelToDecel": "Max Accel. a Decel.",
- "Motion": "Movimento",
"SquareCornerVelocity": "Velocità Angolo Retto",
"Velocity": "Velocità"
- },
- "PressureAdvanceSettings": {
- "Advance": "Advance",
- "Extruder": "Estrusore",
- "PressureAdvance": "Pressure Advance",
- "SmoothTime": "Smooth Time"
}
},
"MacrosPanel": {
diff --git a/src/locales/ja.json b/src/locales/ja.json
index 83aa49609..3ca83c85c 100644
--- a/src/locales/ja.json
+++ b/src/locales/ja.json
@@ -21,6 +21,7 @@
"Never": "何もしない",
"NextReboot": "次回再起動時",
"NoNotification": "非通知を有効",
+ "Notifications": "通知",
"Remind": "注意喚起:"
},
"NumberInput": {
@@ -58,9 +59,9 @@
"CannotUploadTheFile": "アップロードできませんでした!",
"EmergencyStop": "緊急停止",
"SAVE_CONFIG": "設定保存",
- "UploadPrint": "アップロード & 印刷",
+ "Uploading": "アップロード中",
"UploadOfFileSuccessful": "{file}のアップロードが完了しました!",
- "Uploading": "アップロード中"
+ "UploadPrint": "アップロード & 印刷"
},
"TopCornerMenu": {
"Cancel": "取り消し",
@@ -111,6 +112,7 @@
"CheckMoonrakerLog": "このメッセージが繰り返し表示される場合は、以下のログファイルを参照してください。:",
"Connecting": "{host}に接続中",
"Failed": "接続に失敗しました",
+ "Initializing": "初期化中",
"TryAgain": "再試行してください"
},
"Console": {
@@ -124,38 +126,38 @@
"Dialogs": {
"StartPrint": {
"Cancel": "取り消し",
- "DoYouWantToStartFilename": "{filename}の印刷を開始しますか?",
+ "DoYouWantToStartFilename": "{filename}の印刷を開始しますか?",
"Headline": "ジョブ開始",
"Print": "印刷",
"Timelapse": "タイムラプス"
}
},
"Editor": {
- "Cancel": "取り消し",
"ConfigReference": "設定の参考",
"DontSave": "保存しない",
"Downloading": "ダウンロード中",
"FailedSave": "{filename}をアップロードできませんでした!",
"FileReadOnly": "読み取り専用",
- "Minimap": "ミニマップの表示",
"SaveClose": "保存してクローズ",
"SaveRestart": "保存して再始動",
"SuccessfullySaved": "{filename}が保存されました",
"UnsavedChanges": "未保存の変更",
- "UnsavedChangesMessage": "変更を{filename}に保存しますか?",
+ "UnsavedChangesMessage": "変更を{filename}に保存しますか?",
"UnsavedChangesSubMessage": "この変更を保存しなければ、この変更は失われます。エディター設定にてこのメッセージを無効にすることができます。",
"Uploading": "アップロード中"
},
"EmergencyStopDialog": {
- "EmergencyStop": "緊急停止",
"AreYouSure": "よろしいですか?",
+ "EmergencyStop": "緊急停止",
"No": "いいえ",
"Yes": "はい"
},
"Files": {
"AddToQueue": "ジョブキューに追加",
"AllFiles": "すべてのファイル",
+ "BedTemp": "ベッド温度",
"Cancel": "取り消し",
+ "ChamberTemp": "チャンバー温度",
"Create": "作成",
"CreateNewDirectory": "新規ディレクトリの作成",
"CurrentPath": "現在のパス",
@@ -164,9 +166,9 @@
"DeleteDirectoryQuestion": "ディレクトリ\"{name}\"と中に含まれるすべてのファイルが削除されます。よろしいですか?",
"DeleteSelectedQuestion": "選択された {count}個のファイルを削除します。よろしいですか?",
"Download": "ダウンロード",
- "Downloading": "ダウンロード中",
"EditFile": "ファイル編集",
"Empty": "空",
+ "ExtruderTemp": "エクストルーダー温度",
"Filament": "フィラメント",
"FilamentName": "フィラメント名",
"FilamentType": "材質",
@@ -177,6 +179,7 @@
"Free": "空き",
"FreeDisk": "空きディスク",
"GCodeFiles": "Gコードファイル",
+ "GcodesRootDirectoryDoesntExists": "Gコードディレクトリが見つかりませんでした。Klipperの設定[virtual_sdcard]セクションの\"path\"オプションを確認してください。",
"HiddenFiles": "隠し属性ファイル",
"LastEndTime": "直近の終了時刻",
"LastFilamentUsed": "直近の使用量",
@@ -206,7 +209,6 @@
"SuccessfullyRenamed": "{filename}の名前が変更されました。",
"SuccessfullyUploaded": "{filename}がアップロードされました!",
"Total": "総計",
- "Uploading": "アップロード中",
"UploadNewGcode": "新しいGコードファイルをアップロード",
"Used": "使用済み",
"View3D": "3Dビュー"
@@ -230,9 +232,9 @@
"ReloadRequired": "リロードが必要",
"Rendering": "レンダリング",
"RenderQuality": "レンダークオリティー",
+ "ShowObjectSelection": "オブジェクト選択表示",
"ShowToolhead": "ツールヘッド表示",
"ShowTravelMoves": "トラベル表示",
- "ShowObjectSelection": "オブジェクト選択表示",
"SpecularLighting": "スペキュラーラインティング",
"Title": "Gコードビュアー",
"Tracking": "トラッキング",
@@ -255,10 +257,13 @@
"Variance": "変動"
},
"DeleteBedMeshProfile": "ベッドメッシュのプロファイルを削除",
- "DoYouReallyWantToDelete": "プロファイル \"{name}\"を削除します。よろしいですか?",
+ "DoYouReallyWantToDelete": "プロファイル \"{name}\"を削除します。よろしいですか?",
"ErrorKlipperNotReady": "Klipperは準備できていません。高低マップは無効になりました。",
"Flat": "平面",
"Heightmap": "高低マップ",
+ "InvalidNameAlreadyExists": "プロファイル名は既に存在しています。違う名前をつけてください。",
+ "InvalidNameEmpty": "名前の入力は空であってはなりません!",
+ "InvalidNameReserved": "プロファイル名 'default' は予約されています。違う名前をつけてください。",
"Later": "あとで",
"Mesh": "メッシュ",
"Name": "名前",
@@ -284,9 +289,10 @@
"AllJobs": "全ジョブ",
"AvgPrinttime": "平均印刷時間",
"Cancel": "取り消し",
+ "ChamberTemp": "チャンバー温度",
"CreateNote": "メモ作成",
"Delete": "削除",
- "DeleteSelectedQuestion": "選択された {count}個のジョブを削除します。よろしいですか?",
+ "DeleteSelectedQuestion": "選択された {count}個のジョブを削除します。よろしいですか?",
"Details": "詳細",
"EditNote": "ノート編集",
"Empty": "空",
@@ -333,6 +339,7 @@
"in_progress": "進行中",
"klippy_disconnect": "Klippy切断",
"klippy_shutdown": "Klippyシャットダウン",
+ "Others": "その他",
"server_exit": "サーバー終了"
},
"TitleExportHistory": "履歴をエクスポート",
@@ -358,6 +365,7 @@
"AllFiles": "すべてのファイル",
"Cancel": "取り消し",
"ConfigFiles": "設定ファイル",
+ "ConfigRootDirectoryDoesntExists": "設定ディレクトリが見つかりませんでした。Moonrakerの設定[file_manager]セクションの\"config_path\"オプションを確認してください。",
"Create": "作成",
"CreateDirectory": "ディレクトリ作成",
"CreateFile": "ファイル作成",
@@ -365,7 +373,7 @@
"Delete": "削除",
"DeleteDirectory": "ディレクトリ削除",
"DeleteDirectoryQuestion": "ディレクトリ\"{name}\"と中に含まれるすべてのファイルが削除されます。よろしいですか?",
- "DeleteSelectedQuestion": "選択した {count}個を削除しますか?",
+ "DeleteSelectedQuestion": "選択した {count}個を削除しますか?",
"Download": "ダウンロード",
"EditFile": "ファイル編集",
"Empty": "空",
@@ -391,7 +399,7 @@
},
"EndstopPanel": {
"Endstop": "エンドストップ",
- "EndstopInfo": "Press the sync-button on the right-bottom to load the current endstop status.",
+ "EndstopInfo": "右下の同期ボタンを押すと現在のエンドストップの状態を読み込みます。",
"Endstops": "エンドストップ",
"open": "オープン",
"TRIGGERED": "トリガー"
@@ -449,22 +457,6 @@
}
},
"Panels": {
- "ControlPanel": {
- "ALL": "すべて",
- "AlternateControls": "代替コントロール",
- "Headline": "コントロール",
- "InvertX": "X軸反転",
- "InvertY": "Y軸反転",
- "InvertZ": "Z軸反転",
- "PleaseConfigureSteps": "ステップを設定してください",
- "QGL": "QGL",
- "SettingsInterfaceControl": "設定 > インターフェース > コントロール",
- "SetupControls": "コントロール設定",
- "X": "X",
- "Y": "Y",
- "Z": "Z",
- "ZTilt": "Z軸チルト"
- },
"ExtruderControlPanel": {
"Allowed": "許可",
"EstimatedExtrusion": "推定押し出し量:",
@@ -473,8 +465,19 @@
"ExtrusionFactor": "押し出し係数",
"ExtrusionFeedrate": "押し出し速度",
"FilamentLength": "フィラメント長",
+ "FirmwareRetractionSettings": {
+ "RetractLength": "引き込み長",
+ "RetractSpeed": "引き込み速度",
+ "UnretractExtraLength": "追加の戻り長",
+ "UnretractSpeed": "戻り速度"
+ },
"Headline": "エクストルーダー",
"LoadFilament": "フィラメントのロード",
+ "PressureAdvanceSettings": {
+ "Advance": "Pressure Advance",
+ "Extruder": "エクストルーダー",
+ "SmoothTime": "スムーズ時間"
+ },
"Requested": "要求",
"Retract": "引き込み",
"TooLargeExtrusion": "押し出しが量が大きすぎます!",
@@ -493,26 +496,12 @@
"Restart": "再始動"
},
"MachineSettingsPanel": {
- "FirmwareRetractionSettings": {
- "FirmwareRetraction": "ファームウェア引き込み",
- "RetractLength": "引き込み長",
- "RetractSpeed": "引き込み速度",
- "UnretractExtraLength": "追加の戻り長",
- "UnretractSpeed": "戻り速度"
- },
"Headline": "機器設定",
"MotionSettings": {
"Acceleration": "最大加速度",
"MaxAccelToDecel": "最大加速から減速",
- "Motion": "運動特性",
"SquareCornerVelocity": "コーナー速度(SCV)",
"Velocity": "最高速度"
- },
- "PressureAdvanceSettings": {
- "Advance": "Pressure Advance",
- "Extruder": "エクストルーダー",
- "PressureAdvance": "Pressure Advance",
- "SmoothTime": "スムーズ時間"
}
},
"MacrosPanel": {
@@ -550,6 +539,8 @@
"CancelPrint": "印刷取り消し",
"ClearPrintStats": "印刷状態の表示クリア",
"Difference": "差分",
+ "EmptyGcodes": "Gコードがありません。",
+ "EmptyJobqueue": "現在、ジョブキューにファイルがありません。",
"Estimate": "推定",
"ETA": "推定完了時刻",
"ExcludeObject": {
@@ -557,23 +548,21 @@
"Excluded": "除外",
"ExcludeObject": "オブジェクト除外",
"ExcludeObjectHeadline": "オブジェクト除外",
- "ExcludeObjectText": "\"{name}\"を除外します。よろしいですか?"
+ "ExcludeObjectText": "\"{name}\"を除外します。よろしいですか?"
},
"Filament": "フィラメント",
"File": "ファイル",
"Files": "ファイル",
- "EmptyGcodes": "Gコードがありません。",
- "EmptyJobqueue": "現在、ジョブキューにファイルがありません。",
- "Jobqueue": "ジョブキュー ({count})",
- "JobqueueMoreFiles": "ジョブなし | あとひとつのジョブ | あと {count}個のジョブ",
- "PrintTime": "印刷時間",
"Flow": "フロー",
"Headline": "状態",
+ "Jobqueue": "ジョブキュー ({count})",
+ "JobqueueMoreFiles": "ジョブなし | あとひとつのジョブ | あと {count}個のジョブ",
"Layer": "層",
"Max": "最大",
"ObjectHeight": "印刷物の高さ",
"PausePrint": "印刷一時停止",
"Print": "印刷",
+ "PrintTime": "印刷時間",
"ReprintJob": "再印刷ジョブ",
"Requested": "要求",
"ResumePrint": "印刷再開",
@@ -586,7 +575,6 @@
"TemperaturePanel": {
"AutoscaleChart": "グラフの自動調整",
"Avg": "平均",
- "Color": "色",
"Cooldown": "クールダウン",
"Current": "温度",
"Dataset": {
@@ -615,21 +603,13 @@
"ALL": "すべて",
"Headline": "ツールヘッド",
"Invalid": "無効",
- "InvertX": "X反転",
- "InvertY": "Y反転",
- "InvertZ": "Z反転",
- "MotorsOff": "モーターオフ",
"OutOfRange": "範囲外です!",
"PleaseConfigureSteps": "ステップを設定をしてください",
"Position": "位置",
"QGL": "QGL",
"Relative": "相対",
"SettingsInterfaceControl": "設定 > インターフェース > コントロール",
- "SetupControls": "コントロール設定",
"SpeedFactor": "速度係数",
- "XOffset": "X軸オフセット",
- "YOffset": "Y軸オフセット",
- "ZOffset": "Z軸オフセット",
"ZTilt": "Z軸チルト"
},
"WebcamPanel": {
@@ -637,12 +617,10 @@
"FPS": "FPS",
"Headline": "カメラ",
"NoWebcam": "カメラがありません。\"インターフェース設定\" -> \"カメラ\"からカメラを追加してください。",
- "UnknownWebcamService": "不明なカメラサービス",
- "UrlNotAvailable": "URLがありません"
+ "UnknownWebcamService": "不明なカメラサービス"
},
"ZoffsetPanel": {
"Clear": "初期化",
- "CurrentOffset": "現在のオフセット",
"Headline": "Z軸オフセット",
"Later": "あとで",
"Ok": "OK",
@@ -656,7 +634,7 @@
}
},
"PowerDeviceChangeDialog": {
- "AreYouSure": "よろしいですか?",
+ "AreYouSure": "よろしいですか?",
"No": "いいえ",
"TurnDeviceOff": "{device}オフ",
"TurnDeviceOn": "{device}オン",
@@ -676,6 +654,7 @@
},
"SelectPrinterDialog": {
"AddPrinter": "プリンター追加",
+ "AddPrintersToJson": "config.jsonにプリンターを追加してください。",
"CannotConnectTo": "{host}に接続できません",
"ChangePrinter": "プリンター変更",
"Connecting": "{host}に接続中",
@@ -687,15 +666,15 @@
"HostnameRequired": "ホスト名が必要です",
"Port": "ポート",
"PortRequired": "ポート番号が必要です",
- "RememberToAdd": "Please remember to add {cors} in moonraker.conf within 'cors_domains'.",
+ "RememberToAdd": "moonraker.confの'cors_domains'に{cors}を忘れずに追加してください。",
"SelectPrinter": "プリンター選択",
"TryAgain": "再試行",
"UpdatePrinter": "プリンター更新",
"YouCanFindMore": "You can find more details at"
},
"Settings": {
- "Close": "クローズ",
"Cancel": "取り消し",
+ "Close": "クローズ",
"ConsoleTab": {
"AddFilter": "フィルター追加",
"Console": "コンソール",
@@ -782,6 +761,14 @@
"CalcEstimateTimeDescription": "複数選択した場合は、平均時間を算出します。",
"CalcEtaTime": "推定完了時刻の計算",
"CalcEtaTimeDescription": "複数選択した場合は、平均時間を算出します。",
+ "CalcPrintProgress": "印刷進捗の計算",
+ "CalcPrintProgressDescription": "印刷進捗の計算法",
+ "CalcPrintProgressItems": {
+ "Filament": "フィラメント",
+ "FileAbsolute": "ファイル位置(絶対)",
+ "FileRelative": "ファイル位置(相対)",
+ "Slicer": "スライサー(M73)"
+ },
"CannotReadJson": "バックアップファイルの読み込み/解析ができません。",
"DbConsoleHistory": "コンソール履歴",
"DbHistoryJobs": "ジョブ履歴",
@@ -865,7 +852,8 @@
"Hostname": "ホスト名",
"Port": "ポート",
"RemotePrinters": "プリンター",
- "UpdatePrinter": "プリンター更新"
+ "UpdatePrinter": "プリンター更新",
+ "UseConfigJson": "InstanceDB = JSONが検出されました。プリンターリストはconfig.jsonで変更してください。"
},
"TimelapseTab": {
"Autorender": "自動レンダリング",
@@ -964,6 +952,7 @@
"WebcamsTab": {
"AddWebcam": "カメラ追加",
"CreateWebcam": "カメラ作成",
+ "EditCrowsnestConf": "crowsnest.confを編集",
"EditWebcam": "カメラ編集",
"FlipHorizontally": "カメラ画像を水平反転",
"FlipVertically": "カメラ画像を垂直反転",
@@ -981,6 +970,7 @@
"Name": "名前",
"NameAlreadyExists": "その名前は既に存在しています",
"Required": "必須",
+ "Rotate": "回転",
"SaveWebcam": "カメラ保存",
"Service": "サービス",
"TargetFPS": "目標FPS",
@@ -1001,6 +991,7 @@
"Delete": "削除",
"DeleteDirectory": "ディレクトリの削除",
"DeleteDirectoryQuestion": "ディレクトリ\"{name}\"と中に含まれるすべてのファイルが削除されます。よろしいですか?",
+ "DeleteSelectedQuestion": "選択された{count}個のファイルが削除されます。よろしいですか?",
"Download": "ダウンロード",
"DuplicateLastframe": "最終フレームの複製",
"Empty": "完成したタイムラプスは見つかりませんでした。",
diff --git a/src/locales/ko-kr.json b/src/locales/ko-kr.json
index 96f9d9609..ac27aeaeb 100644
--- a/src/locales/ko-kr.json
+++ b/src/locales/ko-kr.json
@@ -29,7 +29,7 @@
"MustBeBetweenError": "최소치 {min}과 최대치 {max} 사이 값으로 설정해 주세요!",
"NoEmptyAllowedError": "공백을 사용할 수 없습니다!"
},
- "Printers": "프린터",
+ "Printers": "원격 프린터",
"ThrottledStates": {
"DescriptionCurrentlyThrottled": "RPi 코어가 성능 제한중입니다.",
"DescriptionFrequencyCapped": "RPi 코어 클럭은 1.2Ghz로 제한됩니다",
@@ -164,7 +164,7 @@
"DeleteSelectedQuestion": "선택된 {count}개의 파일을 삭제하시겠습니까?",
"Download": "다운로드",
"Downloading": "다운로드 중..",
- "EditFile": "파일 에디터",
+ "EditFile": "파일 내용 수정",
"Empty": "비어있음",
"Filament": "필라멘트",
"FilamentName": "필라 이름",
@@ -206,7 +206,7 @@
"SuccessfullyUploaded": "{filename} 업로드 완료",
"Total": "전체 용량",
"Uploading": "업로드 중..",
- "UploadNewGcode": "새로운 G-Code 업로드",
+ "UploadNewGcode": "G-Code 파일 업로드",
"Used": "사용량",
"View3D": "3D Gcode 뷰어"
},
@@ -273,7 +273,7 @@
"SAVE_CONFIG": "설정 저장",
"ScaleGradient": "배율 조정",
"ScaleZMax": "Z축 높이 확대/축소 배율",
- "TitleCalibrate": "새로운 베드 메시 교정",
+ "TitleCalibrate": "베드 메시 교정 시작",
"TitleClear": "베드 메시 초기화",
"TitleHomeAll": "전체 축 호밍",
"Wireframe": "와이어프레임"
@@ -304,7 +304,7 @@
"HistoryFilamentUsage": "필라 소비",
"HistoryPrinttimeAVG": "평균 출력 소요 시간",
"JobDetails": "작업 상세 내역",
- "Jobs": "작업",
+ "Jobs": "작업 목록",
"LastModified": "최종 수정",
"LayerHeight": "레이어 높이",
"LongestPrinttime": "최장 출력 시간",
@@ -358,7 +358,7 @@
"Cancel": "취소",
"ConfigFiles": "설정 파일",
"Create": "생성",
- "CreateDirectory": "새로운 디렉토리 생성",
+ "CreateDirectory": "신규 디렉토리 생성",
"CreateFile": "신규 파일 생성",
"CurrentPath": "현재 경로",
"Delete": "삭제",
@@ -366,7 +366,7 @@
"DeleteDirectoryQuestion": "\"{name}\" 디렉토리와 하위 모든 내용을 삭제하시겠습니까?",
"DeleteSelectedQuestion": "{count}개의 선택된 요소를 삭제하시겠습니까?",
"Download": "다운로드",
- "EditFile": "파일 에디터",
+ "EditFile": "파일 내용 수정",
"Empty": "비어있음",
"Files": "파일",
"Filesize": "파일 크기",
@@ -451,13 +451,24 @@
"ExtruderControlPanel": {
"Allowed": "허용 됨",
"EstimatedExtrusion": "예상 압출량 :",
- "Extrude": "익스트루더 제어",
+ "Extrude": "필라 압출",
"ExtruderTempTooLow": "핫 엔드 온도가 낮습니다",
"ExtrusionFactor": "압출 속도 비율",
"ExtrusionFeedrate": "압출 속도",
"FilamentLength": "필라멘트 길이",
+ "FirmwareRetractionSettings": {
+ "RetractLength": "필라 퇴출 길이",
+ "RetractSpeed": "필라 퇴출 속도",
+ "UnretractExtraLength": "필라 압출 추가 길이",
+ "UnretractSpeed": "필라 압출 속도"
+ },
"Headline": "압출 제어",
"LoadFilament": "필라멘트 압출",
+ "PressureAdvanceSettings": {
+ "Advance": "모서리 압출 제어 [Pressure Advance]",
+ "Extruder": "필라멘트 압출 제어",
+ "SmoothTime": "반응 시간 [Smooth time]"
+ },
"Requested": "요청됨",
"Retract": "필라 퇴출",
"TooLargeExtrusion": "압출 길이를 초과합니다!",
@@ -476,25 +487,12 @@
"Restart": "재시작"
},
"MachineSettingsPanel": {
- "FirmwareRetractionSettings": {
- "FirmwareRetraction": "필라 퇴출 (펌웨어)",
- "RetractLength": "필라 퇴출 길이",
- "RetractSpeed": "필라 퇴출 속도",
- "UnretractExtraLength": "필라 압출 추가 길이",
- "UnretractSpeed": "필라 압출 속도"
- },
"Headline": "프린터 속도 설정",
"MotionSettings": {
"Acceleration": "가속도",
"MaxAccelToDecel": "감속을 위한 최대 가속",
- "Motion": "툴 헤드 이송 속도",
- "SquareCornerVelocity": "모서리 통과 속도-SCV",
+ "SquareCornerVelocity": "모서리 통과 속도 [SCV]",
"Velocity": "출력 속도"
- },
- "PressureAdvanceSettings": {
- "Advance": "모서리 압출 제어 - Pressure Advance",
- "Extruder": "압출 제어",
- "SmoothTime": "반응 시간 - Smooth time"
}
},
"MacrosPanel": {
@@ -539,34 +537,34 @@
"ExcludeObject": {
"Cancel": "취소",
"Excluded": "본 출력에서 제외됨",
- "ExcludeObject": "출력 제외 대상",
- "ExcludeObjectHeadline": "출력 제외 대상",
+ "ExcludeObject": "출력에서 제외",
+ "ExcludeObjectHeadline": "출력 제외 대상 선택",
"ExcludeObjectText": "\"{name}\"을(를) 제외 하시겠습니까??"
},
- "Filament": "필라 예측 소비량",
+ "Filament": "사용 길이",
"File": "파일",
"Files": "파일",
"Flow": "유량",
"Headline": "출력 상태",
"Jobqueue": "작업 대기열({count})",
"JobqueueMoreFiles": "더 이상 작업 없음 | 1개 이상의 작업 | {count}개 이상의 작업",
- "Layer": "적층 레이어",
+ "Layer": "레이어",
"Max": "최대",
"ObjectHeight": "출력 높이",
- "PausePrint": "일시정지",
- "PrintTime": "출력 시간",
+ "PausePrint": "일시 정지",
"Print": "출력",
- "ReprintJob": "재출력",
+ "PrintTime": "소요 시간",
+ "ReprintJob": "다시 출력",
"Requested": "요청됨",
"ResumePrint": "작업 재개",
"Slicer": "예상시간(슬라이서)",
"Speed": "출력 속도",
"Status": "출력 상태",
- "Total": "출력 시간",
+ "Total": "전체",
"Unknown": "알 수 없음"
},
"TemperaturePanel": {
- "AutoscaleChart": "자동 스케일 차트",
+ "AutoscaleChart": "오토 스케일링 그래프",
"Avg": "평균",
"Cooldown": "작동 정지",
"Current": "현재 온도",
@@ -583,9 +581,9 @@
"Presets": "프리셋",
"SetupTemperatures": "온도 설정",
"ShowChart": "차트 보기",
- "ShowNameInChart": "{name}의 차트 보기",
- "ShowNameInList": "{name}의 목록 보기",
- "State": "사용량",
+ "ShowNameInChart": "{name}를 그래프에 표시",
+ "ShowNameInList": "목록에서 {name} 보기",
+ "State": "전력 사용량",
"Target": "설정 온도",
"TemperaturesInChart": "온도 [°C]",
"TempTooHigh": "{name}의 온도가 너무 높습니다! (최대: {max})",
@@ -619,8 +617,8 @@
"Ok": "네",
"Save": "저장",
"SaveConfig": "설정 저장",
- "SaveInfoDescription": "새로운 Z-옵셋을 계측 후 등록했습니다 저장하려면 우측 상단에서 \"설정 저장\"을 눌러 printer.cfg에 저장하고 클리퍼를 재시작 해주세요",
- "SaveInfoDescriptionPrint": "새로운 Z-옵셋을 계측 후 등록했습니다 우측 상단에서 \"설정 저장\"을 눌러 printer.cfg에 저장하고 클리퍼를 재시작 해주세요 ",
+ "SaveInfoDescription": "새 Z-옵셋을 측정 후 등록했습니다 저장하려면 우측 상단에서 \"설정 저장\"을 눌러 printer.cfg에 저장하고 클리퍼를 재시작 해주세요",
+ "SaveInfoDescriptionPrint": "새 Z-옵셋을 측정 후 등록했습니다 우측 상단에서 \"설정 저장\"을 눌러 printer.cfg에 저장하고 클리퍼를 재시작 해주세요 ",
"SaveInfoHeadline": "정보",
"ToEndstop": "Z 엔드스탑 높이 값으로 저장",
"ToProbe": "프로브 높이 값으로 저장"
@@ -641,7 +639,7 @@
"Heightmap": "하이트 맵",
"History": "작업 내역",
"Machine": "머신 설정",
- "Printers": "프린터 전환",
+ "Printers": "원격 프린터",
"Timelapse": "타임랩스",
"Webcam": "웹캠"
},
@@ -703,14 +701,14 @@
"MaximumValuesVisibility": "가시성을 극대화하기 위해 {maximum}의 값을 최대 값으로 사용해 주세요",
"MinimumValues": "최소 값: {minimum}",
"MotorsOff": "모터 전원 끄기 {isDefault}",
- "MoveDistancesEInMm": "압출 속도 단위 설정(mm)",
- "MoveDistancesInMm": "이동 단위 설정(mm)",
- "MoveDistancesXYInMm": " X & Y축 이동 단위 설정(mm)",
- "MoveDistancesZInMm": "Z축 이동 단위 설정(mm)",
+ "MoveDistancesEInMm": "압출 속도 단위(mm)",
+ "MoveDistancesInMm": "이동 단위(mm)",
+ "MoveDistancesXYInMm": " X & Y축 이동 단위(mm)",
+ "MoveDistancesZInMm": "Z축 이동 단위(mm)",
"QuadGantryLevel": "쿼드 갠트리 레벨 {isDefault}",
- "SpeedEInMms": "압출 거리 단위 설정(mm)",
- "SpeedXY": "X & Y축 이동 속도 설정",
- "SpeedZ": "Z축 이동 속도 설정",
+ "SpeedEInMms": "압출 거리 단위(mm)",
+ "SpeedXY": "X & Y축 이동 속도",
+ "SpeedZ": "Z축 이동 속도",
"Style": "화면 표시 스타일",
"ValueGreaterThan": "{value} 값보다 커야 합니다",
"ZOffsetIncrements": "Z-옵셋 이동 단위(mm)",
@@ -724,17 +722,17 @@
"Tablet": "태블릿",
"Widescreen": "와이드스크린"
},
- "Edit": "파일 에디터",
+ "Edit": "옵션 수정",
"EditorTab": {
"ConfirmUnsavedChanges": "저장 알림 표시",
- "ConfirmUnsavedChangesDescription": "활성화된 경우 파일 에디터는 변경 사항을 저장하거나 취소하기 위해 확인 창을 표시하며 비활성화시 확인 창이 표시되지 않고 수정 내용은 취소됩니다",
- "Editor": "파일 에디터",
+ "ConfirmUnsavedChangesDescription": "활성화된 경우 파일 편집기는 변경 사항을 저장하거나 취소하기 위해 확인 창을 표시하며 비활성화시 확인 창이 표시되지 않고 수정 내용은 취소됩니다",
+ "Editor": "파일 편집기",
"KlipperRestartMethod": "클리퍼 재시작 방법",
"KlipperRestartMethodDescription": "printer.cfg 파일을 수정 후, '저장 및 다시 시작'을 클릭할 때 사용할 다시 시작 방법을 선택합니다",
"MoonrakerRestartInstance": "문래커 재시작 방법",
"MoonrakerRestartInstanceDescription": "moonraker.conf 파일을 수정할 때 '저장 및 다시 시작'을 클릭할 때 사용할 문래커 서비스를 선택합니다",
"UseEscToClose": "ESC키를 눌러 종료",
- "UseEscToCloseDescription": "ESC 키를 눌렀을 때 파일 에디터를 종료하며 만약 비활성화 했을 경우 ESC 키를 누르는 즉시 기존 입력 값은 모두 취소됩니다"
+ "UseEscToCloseDescription": "ESC 키를 눌렀을 때 파일 편집기를 종료하며 만약 비활성화 했을 경우 ESC 키를 누르는 즉시 기존 입력 값은 모두 취소됩니다"
},
"GCodeViewerTab": {
"BackgroundColor": "배경 색",
@@ -789,7 +787,7 @@
"DeleteMacroFromGroup": "그룹에 속한 매크로 삭제",
"EditGroup": "그룹 수정",
"Error": "Error",
- "Expert": "사용자 정의 그룹화",
+ "Expert": "사용자 정의",
"General": "일반",
"Group": "그룹",
"GroupMacros": "그룹 매크로",
@@ -814,7 +812,7 @@
},
"PresetsTab": {
"AddPreset": "프리셋 추가",
- "Cooldown": "작동 정지",
+ "Cooldown": "가열 중단",
"CreateHeadline": "프리셋 추가",
"CustomGCode": "사용자 정의 G-Code 명령",
"EditCooldown": "프리셋 수정",
@@ -833,8 +831,8 @@
"RemotePrintersTab": {
"AddPrinter": "원격 관리 프린터 추가",
"EditPrinter": "등록된 원격 프린터 정보 수정",
- "Hostname": "호스트 이름 (공유기의 공인 IP 주소를 입력해 주세요)",
- "Port": "포트(공유기의 외부 포트를 입력해 주세요)",
+ "Hostname": "호스트 이름 [공인 IP 주소 입력]",
+ "Port": "접속 포트 [외부 접속 포트 입력]",
"RemotePrinters": "원격 프린터",
"UpdatePrinter": "적용"
},
@@ -917,7 +915,7 @@
"DisplayCANCEL_PRINT": "출력 취소 표시",
"DisplayCANCEL_PRINTDescription": "상태 창에서 출력 정지 아이콘을 표시하며 비활성화 시킬 경우, 일시 정지 후 출력 정지 아이콘이 표시됩니다",
"GcodeThumbnails": "G-Code 썸네일",
- "GcodeThumbnailsDescription": "Gcode 썸네일을 클릭하면 파일 에디터기로 곧바로 전환합니다",
+ "GcodeThumbnailsDescription": "Gcode 썸네일을 클릭하면 파일 편집기로 곧바로 전환합니다",
"Guide": "추가 설명",
"LockSliders": "터치스크린 장치의 슬라이더 기능 잠금",
"LockSlidersDelay": "슬라이더 잠금 지연",
@@ -936,8 +934,8 @@
"AddWebcam": "웹캠 추가",
"CreateWebcam": "웹캠 장치 정보 입력",
"EditWebcam": "웹캠 장치 정보 수정",
- "FlipHorizontally": "웹캠 화면 수평 반전",
- "FlipVertically": "웹캠 화면 수직 반전",
+ "FlipHorizontally": "화면 수평 반전",
+ "FlipVertically": "화면 수직 반전",
"IconBed": "베드",
"IconCam": "캠",
"IconDoor": "도어",
diff --git a/src/locales/nl.json b/src/locales/nl.json
index 60e1ba80f..5d2c62077 100644
--- a/src/locales/nl.json
+++ b/src/locales/nl.json
@@ -21,6 +21,7 @@
"Never": "nooit",
"NextReboot": "volgende reboot",
"NoNotification": "Geen notificaties beschikbaar",
+ "Notifications": "Notificaties",
"Remind": "Herinnering:"
},
"NumberInput": {
@@ -58,9 +59,9 @@
"CannotUploadTheFile": "Kan het bestand niet uploaden!",
"EmergencyStop": "Noodstop",
"SAVE_CONFIG": "CONFIG OPSLAAN",
- "Uploading": "Uploaden",
"UploadOfFileSuccessful": "Upload van {file} succesvol!",
- "UploadPrint": "Upload & Print"
+ "UploadPrint": "Upload & Print",
+ "Uploading": "Uploaden"
},
"TopCornerMenu": {
"Cancel": "Annuleer",
@@ -111,6 +112,7 @@
"CheckMoonrakerLog": "Als deze melding vaker getoond wordt, kijk in de logs op:",
"Connecting": "Verbinden met {host}",
"Failed": "Verbinding mislukt",
+ "Initializing": "Initialiseren",
"TryAgain": "probeer nogmaals"
},
"Console": {
@@ -131,13 +133,11 @@
}
},
"Editor": {
- "Cancel": "Annuleer",
"ConfigReference": "Config Referentie",
"DontSave": "Sla niet op",
"Downloading": "Downloaden",
"FailedSave": "{filename} kon niet worden geupload!",
"FileReadOnly": "alleen-lezen",
- "Minimap": "Toon minimap",
"SaveClose": "Bewaar & sluiten",
"SaveRestart": "Bewaar & herstart",
"SuccessfullySaved": "{filename} succesvol opgeslagen.",
@@ -155,7 +155,9 @@
"Files": {
"AddToQueue": "Voeg aan wachtrij toe",
"AllFiles": "Alle",
+ "BedTemp": "Bed Temp.",
"Cancel": "Annuleer",
+ "ChamberTemp": "Kamer Temp.",
"Create": "Creëer",
"CreateNewDirectory": "Creëer nieuwe Map",
"CurrentPath": "Huidige pad",
@@ -164,9 +166,9 @@
"DeleteDirectoryQuestion": "Weet je zeker dat je de \"{name}\" map wil verwijderen met alle inhoud?",
"DeleteSelectedQuestion": "Weet je zeker dat je {count} geselecteerde bestanden wil verwijderen?",
"Download": "Download",
- "Downloading": "Downloaden",
"EditFile": "Bewerk bestand",
"Empty": "Leeg",
+ "ExtruderTemp": "Extruder Temp.",
"Filament": "Filament",
"FilamentName": "Filamentnaam",
"FilamentType": "Filament Type",
@@ -177,6 +179,7 @@
"Free": "Vrij",
"FreeDisk": "Vrije schijfruimte",
"GCodeFiles": "G-Code Bestanden",
+ "GcodesRootDirectoryDoesntExists": "Geen G-Code directory gevonden. Controleer de optie \"path\" in de [virtual_sdcard] sectie van de Klipper configuratie.",
"HiddenFiles": "Verborgen bestanden",
"LastEndTime": "Laatste eindtijd",
"LastFilamentUsed": "Laatst gebruikte filament",
@@ -190,9 +193,9 @@
"NozzleDiameter": "Nozzle Diameter",
"ObjectHeight": "Objecthoogte",
"Preheat": "Voorverwarmen",
- "PrintedFiles": "Geprinte bestanden",
"PrintStart": "Start print",
"PrintTime": "Printtijd",
+ "PrintedFiles": "Geprinte bestanden",
"RefreshCurrentDirectory": "Ververs huidige map",
"Rename": "Hernoem",
"RenameDirectory": "Hernoem map",
@@ -206,7 +209,6 @@
"SuccessfullyRenamed": "{filename} succesvol hernoemd.",
"SuccessfullyUploaded": "Upload van {filename} succesvol!",
"Total": "Totaal",
- "Uploading": "Uploaden",
"UploadNewGcode": "Upload nieuwe G-Code",
"Used": "Gebruikt",
"View3D": "Bekijk in 3D"
@@ -228,8 +230,8 @@
"Max": "Max",
"Medium": "Medium",
"ReloadRequired": "Herladen nodig",
- "Rendering": "Renderen",
"RenderQuality": "Render kwaliteit",
+ "Rendering": "Renderen",
"ShowObjectSelection": "Toon object selectie",
"ShowToolhead": "Toon Toolhead",
"ShowTravelMoves": "Toon bewegingen",
@@ -259,6 +261,9 @@
"ErrorKlipperNotReady": "Klipper nog niet klaar . Hoogtekaart uitgeschakeld.",
"Flat": "Vlak",
"Heightmap": "Hoogtekaart",
+ "InvalidNameAlreadyExists": "Profielnaam bestaat al, kies een andere profielnaam.",
+ "InvalidNameEmpty": "Veld mag niet leeg zijn!",
+ "InvalidNameReserved": "Profiel 'default' is gereserveerd, kies een andere profielnaam.",
"Later": "Later",
"Mesh": "Mesh",
"Name": "Naam",
@@ -327,6 +332,7 @@
"Statistics": "Statistieken",
"Status": "Status",
"StatusValues": {
+ "Others": "Overige",
"cancelled": "Geannuleerd",
"completed": "Voltooid",
"error": "Fout",
@@ -358,6 +364,7 @@
"AllFiles": "Alle",
"Cancel": "Annuleer",
"ConfigFiles": "Config bestanden",
+ "ConfigRootDirectoryDoesntExists": "Geen configuratie directory gevonden. Controleer de optie \"config_path\" in de [file_manager] sectie van de Moonraker configuratie.",
"Create": "Maak",
"CreateDirectory": "Maak map",
"CreateFile": "Maak bestand",
@@ -393,8 +400,8 @@
"Endstop": "Endstop",
"EndstopInfo": "Druk op de sync-knop rechtsoner om de huidige endstop status te laden.",
"Endstops": "Endstops",
- "open": "OPEN",
- "TRIGGERED": "GETRIGGERED"
+ "TRIGGERED": "GETRIGGERED",
+ "open": "OPEN"
},
"LogfilesPanel": {
"Logfiles": "Logbestanden"
@@ -441,30 +448,14 @@
"PackagesCanBeUpgraded": "pakketten kunnen worden geüpgraded",
"System": "Systeem",
"Unknown": "onbekend",
+ "UpToDate": "up-to-date",
"Update": "update",
"UpdateAll": "Update alle componenten",
"UpdateManager": "Update Manager",
- "Upgrade": "upgrade",
- "UpToDate": "up-to-date"
+ "Upgrade": "upgrade"
}
},
"Panels": {
- "ControlPanel": {
- "ALL": "Alle",
- "AlternateControls": "Alternatieve bediening",
- "Headline": "Bediening",
- "InvertX": "Inverteer X",
- "InvertY": "Inverteer Y",
- "InvertZ": "Inverteer Z",
- "PleaseConfigureSteps": "Configureer steps aub",
- "QGL": "QGL",
- "SettingsInterfaceControl": "Instellingen > Interface > Bediening",
- "SetupControls": "Bewerk Bediening",
- "X": "X",
- "Y": "Y",
- "Z": "Z",
- "ZTilt": "Z Tilt"
- },
"ExtruderControlPanel": {
"Allowed": "Toegestaan",
"EstimatedExtrusion": "Geschatte extrusie:",
@@ -473,8 +464,19 @@
"ExtrusionFactor": "Extrusie factor",
"ExtrusionFeedrate": "Extrusion Feedrate",
"FilamentLength": "Filamentlengte",
+ "FirmwareRetractionSettings": {
+ "RetractLength": "Retractie lengte",
+ "RetractSpeed": "Retractie snelheid",
+ "UnretractExtraLength": "Extra lengte uitvoer",
+ "UnretractSpeed": "Uitvoer snelheid"
+ },
"Headline": "Extruder",
"LoadFilament": "Filament laden",
+ "PressureAdvanceSettings": {
+ "Advance": "Advance",
+ "Extruder": "Extruder",
+ "SmoothTime": "Smooth Time"
+ },
"Requested": "Aangevraagd",
"Retract": "Retract",
"TooLargeExtrusion": "Extrusie te lang!",
@@ -488,79 +490,43 @@
"KlippyStatePanel": {
"FirmwareRestart": "Firmware Herstart",
"KlipperCheck": "Controleer of de Klipper service draait en een UDS (Unix Domain Socket) geconfigureerd is.",
- "KlippyInfo": "Moonraker kan niet verbinden met Klippy!\nControleer of de Klipper Service draait en een UDS (Unix Domain Socket) is geconfigureerd.",
"KlippyState": "Klippy-Status",
"MoonrakerCannotConnect": "Moonraker kan niet met Klipper verbinden!",
"Restart": "Herstart"
},
"MachineSettingsPanel": {
- "FirmwareRetractionSettings": {
- "FirmwareRetraction": "Firmware Retracties",
- "RetractLength": "Retractie lengte",
- "RetractSpeed": "Retractie snelheid",
- "UnretractExtraLength": "Extra lengte uitvoer",
- "UnretractSpeed": "Uitvoer snelheid"
- },
"Headline": "Machine instellingen",
"MotionSettings": {
"Acceleration": "Acceleratie",
- "Deceleration": "Vertraging",
"MaxAccelToDecel": "Max Accel. naar Decel.",
- "Motion": "Beweging",
"SquareCornerVelocity": "Hoeksnelheid (SCV)",
"Velocity": "Snelheid"
- },
- "PressureAdvanceSettings": {
- "Advance": "Advance",
- "Extruder": "Extruder",
- "PressureAdvance": "Pressure Advance",
- "SmoothTime": "Smooth Time"
}
},
"MacrosPanel": {
"Headline": "Macros",
"Send": "verstuur"
},
+ "MinSettingsPanel": {
+ "IncludeMainsailCfg": "Zorg dat je mainsail.cfg in je printer.cfg geïnclude hebt.",
+ "IsNotDefinedInConfig": "is niet gedefinieerd in de config.",
+ "MissingConfiguration": "Ontbrekende configuratie",
+ "MoreInformation": "meer informatie"
+ },
"MiniconsolePanel": {
- "Console": "Console",
- "CustomFilters": "Eigen filters",
- "Empty": "Leeg",
"Headline": "Console",
"HideTemperatures": "Verberg temperaturen",
"HideTimelapse": "Verberg Timelapse",
- "Send": "Verzend",
"SendCode": "Verzend code...",
"SetupConsole": "Console Instellingen"
},
- "MinSettingsPanel": {
- "IncludeMainsailCfg": "Zorg dat je mainsail.cfg in je printer.cfg geïnclude hebt.",
- "IsNotDefinedInConfig": "is niet gedefinieerd in de config.",
- "MissingConfiguration": "Ontbrekende configuratie",
- "MoreInformation": "meer informatie"
- },
"MiscellaneousPanel": {
- "ExtrusionFactor": "Extrusie factor",
"Headline": "Overige",
- "Miscellaneous": "Overige",
- "PrintSettings": "Printinstellingen",
"RunoutSensor": {
"Detected": "gedetecteerd",
"Disabled": "uitgeschakeld",
"Empty": "Leeg"
- },
- "SpeedFactor": "Snelheid factor"
- },
- "MoonrakerFailedComponentsPanel": {
- "DownloadLog": "Download Log",
- "FollowingPluginHasAnError": "De volgende plugin heeft een fout:",
- "MoonrakerErrorInfo": "Er is een fout was gedetecteerd bij het laden van de moonraker componenten. Controleer de logfile los de fout op.",
- "MoonrakerFailedComponents": "Fouten in Moonraker Componenten"
- },
- "MoonrakerStatePanel": {
- "DownloadLog": "Download Log",
- "FollowingPluginHasAnError": "De volgende plugin heeft een fout:",
- "MoonrakerErrorInfo": "Een fout was ontdekt bij het laden van de Moonraker componenten. Controleer de logfile en fix het probleem.",
- "MoonrakerWarnings": "Moonraker Waarschuwingen"
+ }
},
"PowerControlPanel": {
"Error": "Fout",
@@ -572,16 +538,16 @@
"CancelPrint": "Annuleer print",
"ClearPrintStats": "Wis print statistieken",
"Difference": "Verschil",
+ "ETA": "ETA",
"EmptyGcodes": "Geen G-Code beschikbaar.",
"EmptyJobqueue": "Er zijn geen bestanden in de wachtrij.",
"Estimate": "Schatting",
- "ETA": "ETA",
"ExcludeObject": {
"Cancel": "annuleer",
- "Excluded": "Uitgesloten",
"ExcludeObject": "Object uitsluiten",
"ExcludeObjectHeadline": "Object uitsluiten",
- "ExcludeObjectText": "Weet je zeker dat je \"{name}\" wil uitsluiten?"
+ "ExcludeObjectText": "Weet je zeker dat je \"{name}\" wil uitsluiten?",
+ "Excluded": "Uitgesloten"
},
"Filament": "Filament",
"File": "Bestand",
@@ -608,7 +574,6 @@
"TemperaturePanel": {
"AutoscaleChart": "Schaal automatisch",
"Avg": "Gemiddeld",
- "Color": "Kleur",
"Cooldown": "Afkoelen",
"Current": "Huidige",
"Dataset": {
@@ -618,51 +583,30 @@
"Temperature": "huidige temperatuur"
},
"Headline": "Temperaturen",
- "InList": "in lijst",
"Max": "max",
"Min": "min",
"Name": "Naam",
"Presets": "Presets",
"SetupTemperatures": "Stel Temperaturen in",
- "Show": "Toon",
"ShowChart": "Toon Grafiek",
- "ShowCurrentTemperatureInChart": "Toon huidige temperatuur in de grafiek",
"ShowNameInChart": "Toon {name} in de grafiek",
"ShowNameInList": "Toon {name} in de lijst",
- "ShowPWMPowerInChart": "Toon PWM-kracht in de grafiek",
- "ShowTargetTemperatureInChart": "Toon doeltemperatuur in de grafiek",
"State": "Status",
"Target": "Doel",
- "Temperatures": "Temperaturen",
- "TemperaturesInChart": "Temperatuur [°C]",
"TempTooHigh": "Temperatuur te hoog voor {name}! (max: {max})",
"TempTooLow": "Temperatuur te laag voor {name}! (min: {min})",
- "UNKNOWN": "ONBEKEND"
+ "TemperaturesInChart": "Temperatuur [°C]"
},
"ToolheadControlPanel": {
- "Absolute": "absoluut",
"ALL": "ALLES",
- "Controls": "Bediening",
+ "Absolute": "absoluut",
"Headline": "Toolhead",
- "Home": "Home",
- "HotendTooCold": "Hotend temp. lager dan",
- "Invalid": "Ongeldig",
- "InvertX": "Inverteer X",
- "InvertY": "Inverteer Y",
- "InvertZ": "Inverteer Z",
- "Macros": "Macros",
- "MotorsOff": "Motoren uit",
- "OutOfRange": "Buiten bereik",
"PleaseConfigureSteps": "Configureer steps",
"Position": "Positie",
"QGL": "QGL",
"Relative": "relatief",
"SettingsInterfaceControl": "Instllingen > Interface > Bediening",
- "SetupControls": "Bewerk Bediening",
"SpeedFactor": "Snelheid factor",
- "XOffset": "X-Offset",
- "YOffset": "Y-Offset",
- "ZOffset": "Z-Offset",
"ZTilt": "Z Tilt"
},
"WebcamPanel": {
@@ -670,13 +614,10 @@
"FPS": "FPS",
"Headline": "Webcam",
"NoWebcam": "Geen webcam beschikbaar. Voeg een webcam toe onder \"Interface Settings\" -> \"Webcams\".",
- "UnknownWebcamService": "Onbekende Webcam Service",
- "UrlNotAvailable": "URL niet beschikbaar",
- "Webcam": "Webcam"
+ "UnknownWebcamService": "Onbekende Webcam Service"
},
"ZoffsetPanel": {
"Clear": "Wissen",
- "CurrentOffset": "Huidige offset",
"Headline": "Z offset",
"Later": "Later",
"Ok": "Ok",
@@ -686,8 +627,7 @@
"SaveInfoDescriptionPrint": "De nieuwe z-offset is berekend en geregistreerd. Klik na het printen op \"SAVE CONFIG\" om de nieuwe z-offset op te slaan in je printer.cf en Klipper te herstarten.",
"SaveInfoHeadline": "Informatie",
"ToEndstop": "naar Endstop",
- "ToProbe": "naar Probe",
- "ZBabyStepping": "Z Baby Stepping"
+ "ToProbe": "naar Probe"
}
},
"PowerDeviceChangeDialog": {
@@ -711,6 +651,7 @@
},
"SelectPrinterDialog": {
"AddPrinter": "Voeg printer toe",
+ "AddPrintersToJson": "Voeg de printers toe aan de config.json",
"CannotConnectTo": "Kan niet verbinden met {host}.",
"ChangePrinter": "Wijzig printer",
"Connecting": "Verbinden met {host}",
@@ -807,6 +748,7 @@
"GridColor": "Rasterkleur",
"MaxFeed": "Max Doorvoer",
"MinFeed": "Min Doorvoer",
+ "ProgressColor": "Voortgangskleur",
"ShowAxes": "Toon Assen"
},
"GeneralTab": {
@@ -816,6 +758,14 @@
"CalcEstimateTimeDescription": "Als meerdere geselecteerd zijn, wordt het gemiddelde berekend",
"CalcEtaTime": "ETA berekening",
"CalcEtaTimeDescription": "Als meerdere geselecteerd zijn, wordt het gemiddelde berekend",
+ "CalcPrintProgress": "Printvoortgang berekening",
+ "CalcPrintProgressDescription": "Methode om de voortgang van de print te berekenen.",
+ "CalcPrintProgressItems": {
+ "Filament": "Filament",
+ "FileAbsolute": "Bestandslocatie (absoluut)",
+ "FileRelative": "Bestandslocatie (relatief)",
+ "Slicer": "Slicer (M73)"
+ },
"CannotReadJson": "Kan het backup bestand niet lezen/verwerken. ",
"DbConsoleHistory": "Console Geschiedenis",
"DbHistoryJobs": "Geschiedenis Jobs",
@@ -848,8 +798,8 @@
"CountMacros": "geen Macros toegevoegd | {count} Macro | {count} Macros",
"Custom": "custom",
"CustomColor": "Custom Kleur",
- "DeletedMacro": "Verwijderde macro",
"DeleteMacroFromGroup": "Verwijder macro uit groep.",
+ "DeletedMacro": "Verwijderde macro",
"EditGroup": "Bewerk groep",
"Error": "fout",
"Expert": "Expert",
@@ -859,10 +809,10 @@
"Macrogroups": "Groepen",
"Macros": "Macros",
"Management": "Beheer",
+ "NOMacros": "geen macros gevonden...",
"Name": "Naam",
"NoAvailableMacros": "Geen macros beschikbaar.",
"NoGroups": "Geen groepen gevonden...",
- "NOMacros": "geen macros gevonden...",
"NoMacrosInGroup": "Geen macros in deze groep.",
"Primary": "primair",
"Secondary": "secundair",
@@ -899,7 +849,8 @@
"Hostname": "Hostname",
"Port": "Poort",
"RemotePrinters": "Printers op afstand",
- "UpdatePrinter": "Update Printer"
+ "UpdatePrinter": "Update Printer",
+ "UseConfigJson": "InstanceDB = JSON gedetecteerd. Gebruik de config.json om de printerlijst aan te passen."
},
"TimelapseTab": {
"Autorender": "Autorender",
@@ -908,8 +859,6 @@
"CameraDescription": "Selecteer welke camera gebruikt wordt",
"ConstantRateFactor": "Constant Rate Factor",
"ConstantRateFactorDescription": "Dit bepaalt de kwaliteit vs bestandsgrootte van de gerenderde video. De CRF schaal is van 0-51 waar 0 zonder verlies is, 23 de standaard en 51 de slechts mogelijke kwaliteit. Een lagere waarde geeft over het algemeen betere kwaliteit en een gangbare waarde is 17-28. Zie 17 of 18 als praktisch zonder kwaliteitsverlies.",
- "duplicatelastframe": "duplicatelastframe",
- "duplicatelastframeDescription": "Herhaal het laatste frame aan het eind van de video",
"Enabled": "Ingeschakeld",
"EnabledDescription": "Indien uitgeschakeld, worden gcode macros genegeerd en autorender overgeslagen.",
"Extraoutputparams": "Extraoutputparams",
@@ -925,12 +874,12 @@
"ModeDescription": "Kies tussen Layermacro en Hyperlapse (tijd gebaseerde) modus",
"OutputFramerate": "Uitvoer Framerate",
"OutputFramerateDescription": "Definieert de framerate van de video. Note: dit wordt genegeerd wanneer variable_fps is ingeschakeld",
+ "ParkTime": "Parkeerduur",
+ "ParkTimeDescription": "Voeg extra tijd toe bij het parkeren.",
"Parkhead": "Parkhead",
"ParkheadDescription": "Indien ingeschakeld, wordt de printkop geparkeerd voor een foto te nemen.",
"Parkpos": "Parkeer postitie",
"ParkposDescription": "Selecteer de parkeer positie",
- "ParkTime": "Parkeerduur",
- "ParkTimeDescription": "Voeg extra tijd toe bij het parkeren.",
"Pixelformat": "Pixelformat",
"PixelformatDescription": "Definieer het pixelformaat van de video",
"PosDZ": "Positie Z",
@@ -966,7 +915,9 @@
"VariableFpsMax": "Variabele FPS max",
"VariableFpsMaxDescription": "",
"VariableFpsMin": "Variabele FPS max",
- "VariableFpsMinDescription": ""
+ "VariableFpsMinDescription": "",
+ "duplicatelastframe": "duplicatelastframe",
+ "duplicatelastframeDescription": "Herhaal het laatste frame aan het eind van de video"
},
"UiSettingsTab": {
"BoolBigThumbnail": "Grote thumbnail",
@@ -998,6 +949,7 @@
"WebcamsTab": {
"AddWebcam": "voeg webcam toe",
"CreateWebcam": "Nieuwe Webcam",
+ "EditCrowsnestConf": "Bewerk crowsnest.conf",
"EditWebcam": "Bewerk Webcam",
"FlipHorizontally": "Flip webcam horizontaal",
"FlipVertically": "Flip webcam verticaal",
@@ -1015,6 +967,7 @@
"Name": "Naam",
"NameAlreadyExists": "Naam bestaat al",
"Required": "verplicht",
+ "Rotate": "Roteer",
"SaveWebcam": "Sla Webcam op",
"Service": "Dienst",
"TargetFPS": "Doel FPS",
@@ -1035,6 +988,7 @@
"Delete": "Verwijder",
"DeleteDirectory": "Verwijder map",
"DeleteDirectoryQuestion": "Weet je zeker dat je de \"{name}\" map wil verwijderen met alle inhoud?",
+ "DeleteSelectedQuestion": "Weet je zeker dat je {count} geselecteerde bestanden wil verwijderen?",
"Download": "Download",
"DuplicateLastframe": "Herhaal laatste frame",
"Empty": "Geen voltooide timelapse gevonden.",
diff --git a/src/locales/pl.json b/src/locales/pl.json
index 91c919f3f..94009292e 100644
--- a/src/locales/pl.json
+++ b/src/locales/pl.json
@@ -473,8 +473,20 @@
"ExtrusionFactor": "Parametr hotendu",
"ExtrusionFeedrate": "Prędkość wysuwania",
"FilamentLength": "Długość filamentu",
+ "FirmwareRetractionSettings": {
+ "RetractLength": "Długość retrakcji",
+ "RetractSpeed": "Prędkość retrakcji",
+ "UnretractExtraLength": "Dodatkowa długość wycofywania",
+ "UnretractSpeed": "Prędkość wycofywania"
+ },
"Headline": "Hotend",
"LoadFilament": "Załadowywanie filamentu",
+ "PressureAdvanceSettings": {
+ "Advance": "Wzrost nacisku",
+ "Extruder": "Ekstruder",
+ "PressureAdvance": "Ustawienia nacisku",
+ "SmoothTime": "Czas wygładzania"
+ },
"Requested": "Wymagane",
"Retract": "Retrakcja",
"TooLargeExtrusion": "Długość wysunięcia zbyt duża!",
@@ -493,26 +505,12 @@
"Restart": "Ponowne uruchomienie"
},
"MachineSettingsPanel": {
- "FirmwareRetractionSettings": {
- "FirmwareRetraction": "Retrakcja oprogramowania",
- "RetractLength": "Długość retrakcji",
- "RetractSpeed": "Prędkość retrakcji",
- "UnretractExtraLength": "Dodatkowa długość wycofywania",
- "UnretractSpeed": "Prędkość wycofywania"
- },
"Headline": "Ustawienia drukarki",
"MotionSettings": {
"Acceleration": "Przyspieszenie",
"MaxAccelToDecel": "Maks. przysp. do startu zmniejszania prędkości.",
- "Motion": "Ruch",
"SquareCornerVelocity": "Prędkość na rogu kwadratu",
"Velocity": "Prędkość"
- },
- "PressureAdvanceSettings": {
- "Advance": "Wzrost nacisku",
- "Extruder": "Ekstruder",
- "PressureAdvance": "Ustawienia nacisku",
- "SmoothTime": "Czas wygładzania"
}
},
"MacrosPanel": {
@@ -550,6 +548,8 @@
"CancelPrint": "Anuluj wydruk",
"ClearPrintStats": "Wyczyść statystyki drukarki",
"Difference": "Różnica",
+ "EmptyGcodes": "Brak dostępnego G-Code.",
+ "EmptyJobqueue": "Aktualnie nie ma żadnego pliku w kolejce wydruków.",
"Estimate": "Szacowana",
"ETA": "ETA",
"ExcludeObject": {
@@ -562,18 +562,16 @@
"Filament": "Filament",
"File": "Plik",
"Files": "Pliki",
- "EmptyGcodes": "Brak dostępnego G-Code.",
- "EmptyJobqueue": "Aktualnie nie ma żadnego pliku w kolejce wydruków.",
- "Jobqueue": "W kolejce ({count})",
- "JobqueueMoreFiles": "brak więcej wydruków | jeszcze jeden wydruk | {count} więcej wydruków",
- "PrintTime": "Czas wydruku",
"Flow": "Przepływ",
"Headline": "Status",
+ "Jobqueue": "W kolejce ({count})",
+ "JobqueueMoreFiles": "brak więcej wydruków | jeszcze jeden wydruk | {count} więcej wydruków",
"Layer": "Warstwa",
"Max": "Maks.",
"ObjectHeight": "Wysokość obiektu",
"PausePrint": "Pauza wydruku",
"Print": "Drukuj",
+ "PrintTime": "Czas wydruku",
"ReprintJob": "Ponownie wydrukuj",
"Requested": "Wymagane",
"ResumePrint": "Wznowienie wydruku",
diff --git a/src/locales/ru.json b/src/locales/ru.json
index a883bfb6b..f56390bc5 100644
--- a/src/locales/ru.json
+++ b/src/locales/ru.json
@@ -1,27 +1,32 @@
{
"App": {
"Notifications": {
+ "DependencyDescription": "Текущая версия {name} не поддерживает все возможности Mainsail. Обновите {name} по крайней мере до {neededVersion}.",
+ "DependencyName": "Зависимость: {name}",
+ "DismissAll": "Отказаться от всех",
"KlipperWarnings": {
"DeprecatedOption": "Опция '{option}' в разделе '{section}' устарела и будет удалена в будущем выпуске.",
+ "DeprecatedOptionHeadline": "Устаревшая опция клиппера",
"DeprecatedValue": "Значение '{value}' в опции '{option}' в секции '{section}' устарело и будет удалено в будущем релизе.",
- "KlipperWarning": "Предупреждение о клиппере",
"DeprecatedValueHeadline": "Устаревшее значение клиппера",
- "DeprecatedOptionHeadline": "Устаревшая опция клиппера"
+ "KlipperWarning": "Предупреждение о клиппере"
},
- "Remind": "Напомнить:",
- "NextReboot": "следующая перезагрузка",
- "Never": "никогда",
- "DismissAll": "Отказаться от всех",
- "NoNotification": "Уведомление отсутствует",
- "DependencyName": "Зависимость: {name}",
- "DependencyDescription": "Текущая версия {name} не поддерживает все возможности Mainsail. Обновите {name} по крайней мере до {neededVersion}.",
"MoonrakerWarnings": {
"MoonrakerComponent": "Moonraker: {component}",
+ "MoonrakerFailedComponentDescription": "Обнаружена ошибка при загрузке компонента moonraker '{component}'. Пожалуйста, проверьте лог-файл и устраните проблему.",
"MoonrakerWarning": "Предупреждение Moonraker",
"UnparsedConfigOption": "Обнаружена неразобранная опция конфигурации '{option}: {value}' обнаружена в секции [{section}]. Это может быть опция, которая больше недоступна, или результат неудачной загрузки модуля. В будущем это приведет к ошибке при запуске.",
- "UnparsedConfigSection": "Обнаружен неразобранный раздел конфигурации [{section}]. Это может быть результатом неудачной загрузки компонента. В будущем это приведет к ошибке при запуске.",
- "MoonrakerFailedComponentDescription": "Обнаружена ошибка при загрузке компонента moonraker '{component}'. Пожалуйста, проверьте лог-файл и устраните проблему."
- }
+ "UnparsedConfigSection": "Обнаружен неразобранный раздел конфигурации [{section}]. Это может быть результатом неудачной загрузки компонента. В будущем это приведет к ошибке при запуске."
+ },
+ "Never": "никогда",
+ "NextReboot": "следующая перезагрузка",
+ "NoNotification": "Уведомление отсутствует",
+ "Remind": "Напомнить:"
+ },
+ "NumberInput": {
+ "GreaterOrEqualError": "Должно быть больше или равно {min}!",
+ "MustBeBetweenError": "Должно быть между {min} и {max}!",
+ "NoEmptyAllowedError": "Вход не должен быть пустым!"
},
"Printers": "Принтер",
"ThrottledStates": {
@@ -99,11 +104,6 @@
"RecoveringDone": "Восстановление проделанной работы",
"Updating": "Обновление",
"UpdatingDone": "Обновление выполнено"
- },
- "NumberInput": {
- "GreaterOrEqualError": "Должно быть больше или равно {min}!",
- "MustBeBetweenError": "Должно быть между {min} и {max}!",
- "NoEmptyAllowedError": "Вход не должен быть пустым!"
}
},
"ConnectionDialog": {
@@ -121,6 +121,15 @@
"SendCode": "Отправьте код...",
"SetupConsole": "Мебельная консоль"
},
+ "Dialogs": {
+ "StartPrint": {
+ "Cancel": "Cancel",
+ "DoYouWantToStartFilename": "Вы хотите начать {имя файла}?",
+ "Headline": "Начать работу",
+ "Print": "вывести",
+ "Timelapse": "Таймлапс"
+ }
+ },
"Editor": {
"Cancel": "Отмена",
"ConfigReference": "Справочник по конфигурации",
@@ -153,6 +162,7 @@
"Delete": "Удалить",
"DeleteDirectory": "Удалить каталог",
"DeleteDirectoryQuestion": "Вы действительно хотите удалить каталог \"{name}\" со всем его содержимым?",
+ "DeleteSelectedQuestion": "Вы действительно хотите удалить {count} выбранных файлов?",
"Download": "Скачать",
"Downloading": "Загрузка",
"EditFile": "Редактировать файл",
@@ -168,7 +178,12 @@
"FreeDisk": "Свободное место: ",
"GCodeFiles": "файлы G-кода",
"HiddenFiles": "Скрытые файлы",
+ "LastEndTime": "Последнее время окончания",
+ "LastFilamentUsed": "Последний использованный материал",
"LastModified": "Последнее изменение",
+ "LastPrintDuration": "Продолжительность последней печати",
+ "LastStartTime": "Время последнего запуска",
+ "LastTotalDuration": "Последняя общая продолжительность",
"LayerHeight": "Высота слоя",
"Name": "Имя",
"NewDirectory": "Новый каталог",
@@ -194,13 +209,11 @@
"Uploading": "Загрузить",
"UploadNewGcode": "Загрузить новый Gcode",
"Used": "Использует: ",
- "View3D": "3D просмотр",
- "DeleteSelectedQuestion": "Вы действительно хотите удалить {count} выбранных файлов?",
- "LastEndTime": "Последнее время окончания",
- "LastFilamentUsed": "Последний использованный материал",
- "LastPrintDuration": "Продолжительность последней печати",
- "LastStartTime": "Время последнего запуска",
- "LastTotalDuration": "Последняя общая продолжительность"
+ "View3D": "3D просмотр"
+ },
+ "FullscreenUpload": {
+ "CannotUploadFile": "Невозможно загрузить файл!",
+ "DropFilesToUploadFiles": "Сбрасывайте файлы для загрузки"
},
"GCodeViewer": {
"ClearLoadedFile": "Удалить",
@@ -246,31 +259,36 @@
"ErrorKlipperNotReady": "Клиппер не готов. Карта высот отключена.",
"Flat": "Плоский",
"Heightmap": "Профиль высоты",
+ "Later": "Позже",
"Mesh": "Веб-сайт",
"Name": "Имя",
"NoBedMeshHasBeenLoadedYet": "Профиль подъема кровати еще не загружен.",
"NoProfile": "Профиль отсутствует",
+ "Ok": "ХОРОШО",
"Probed": "Протестированный",
"Profiles": "Профили",
"Remove": "удалить",
+ "RemoveSaveDescription": "Профиль bed_mesh был зарегистрирован как удаленный. Нажмите на SAVE_CONFIG, чтобы удалить его из файла printer.cfg, и перезапустите Klipper.",
"Rename": "переименовать",
"RenameBedMeshProfile": "Переименовать профиль высоты кровати",
+ "SAVE_CONFIG": "СОХРАНИТЬ_КОНФИГ",
+ "ScaleGradient": "Градиент шкалы",
+ "ScaleZMax": "Масштаб z-макс.",
"TitleCalibrate": " новая постельная сетка",
"TitleClear": "Ясная сетка",
"TitleHomeAll": "Дома все",
- "Wireframe": "Каркас",
- "Later": "Позже",
- "Ok": "ХОРОШО",
- "RemoveSaveDescription": "Профиль bed_mesh был зарегистрирован как удаленный. Нажмите на SAVE_CONFIG, чтобы удалить его из файла printer.cfg, и перезапустите Klipper.",
- "SAVE_CONFIG": "СОХРАНИТЬ_КОНФИГ",
- "ScaleGradient": "Градиент шкалы",
- "ScaleZMax": "Масштаб z-макс."
+ "Wireframe": "Каркас"
},
"History": {
+ "AddNote": "Добавить заметку",
"AllJobs": "весь",
"AvgPrinttime": "Среднее время печати",
+ "Cancel": "Отмена",
+ "CreateNote": "Создать заметку",
"Delete": "Удалить",
+ "DeleteSelectedQuestion": "Вы действительно хотите удалить {count} выбранных заданий?",
"Details": "Подробности",
+ "EditNote": "Примечание редакции",
"Empty": "пустой",
"EndTime": "Время окончания",
"EstimatedFilament": "Расчетная нить",
@@ -291,13 +309,16 @@
"LastModified": "Последнее изменение",
"LayerHeight": "Высота слоя",
"LongestPrinttime": "Самое длительное время печати",
+ "Note": "Примечание",
"ObjectHeight": "Высота объекта",
"PrintDuration": "Продолжительность печати",
"PrintHistory": "История печати",
"PrintTime": "Время печати",
"PrinttimeAvg": "время печати",
"Reprint": "Перепечатка",
+ "Save": "сохранить",
"Search": "Поиск",
+ "SelectedFilamentUsed": "Выбранный используемый материал",
"Slicer": "Slicer",
"SlicerVersion": "Slicer Версия",
"StartTime": "Время начала",
@@ -310,17 +331,8 @@
"TotalJobs": "Всего отпечатков",
"TotalPrinttime": "Общее время печати",
"TotalTime": "Общее время",
- "AddNote": "Добавить заметку",
- "Cancel": "Отмена",
- "CreateNote": "Создать заметку",
- "DeleteSelectedQuestion": "Вы действительно хотите удалить {count} выбранных заданий?",
- "EditNote": "Примечание редакции",
- "Note": "Примечание",
- "Save": "сохранить",
- "SelectedFilamentUsed": "Выбранный используемый материал",
"SelectedJobs": "Избранные вакансии",
"SelectedPrinttime": "Выбранное время печати",
- "TitleExportHistory": "История экспорта",
"StatusValues": {
"cancelled": "Отменено",
"completed": "Завершено",
@@ -329,7 +341,8 @@
"klippy_disconnect": "Клипповое разъединение",
"klippy_shutdown": "Клиппи отключение",
"server_exit": "Выход сервера"
- }
+ },
+ "TitleExportHistory": "История экспорта"
},
"JobQueue": {
"AllJobs": "Все заказы",
@@ -337,8 +350,8 @@
"JobQueue": "Очередь на работу",
"Jobs": "Заказы",
"Pause": "Pause",
- "Start": "Начало",
- "RemoveFromQueue": "Удалить из очереди"
+ "RemoveFromQueue": "Удалить из очереди",
+ "Start": "Начало"
},
"Machine": {
"ConfigFilesPanel": {
@@ -352,6 +365,7 @@
"Delete": "Удалить",
"DeleteDirectory": "Удалить каталог",
"DeleteDirectoryQuestion": "Вы действительно хотите удалить каталог \"{name}\" со всем его содержимым?",
+ "DeleteSelectedQuestion": "Удалить {count} выбранных элементов?",
"Download": "Скачать",
"EditFile": "Редактировать файл",
"Empty": "Пустой",
@@ -367,14 +381,13 @@
"Rename": "Переименовать",
"RenameDirectory": "Переименовать каталог",
"RenameFile": "Переименовать файл",
+ "Root": "Корень",
"SetupCurrentList": "Настройка текущего списка",
"ShowFile": "Показать файл",
"Total": "Всего",
"UploadFile": "Загрузить файл",
"Uploading": "Загрузка",
- "Used": "Используется",
- "DeleteSelectedQuestion": "Удалить {count} выбранных элементов?",
- "Root": "Корень"
+ "Used": "Используется"
},
"EndstopPanel": {
"Endstop": "Концевой упор",
@@ -388,13 +401,13 @@
},
"SystemPanel": {
"Constants": "Константы",
+ "Cpu": "CPU",
"HostDetails": "Информация о хозяине",
"LastStats": "Последняя статистика",
"Load": "Нагрузка",
"Memory": "Память",
- "SystemLoad": "Нагрузки на систему",
- "Cpu": "CPU",
"NoMoreInfos": "Больше никакой информации",
+ "SystemLoad": "Нагрузки на систему",
"Values": {
"Awake": "Проснуться: {awake}",
"Bandwidth": "Пропускная способность: {bandwidth}/s",
@@ -436,17 +449,45 @@
}
},
"Panels": {
+ "ControlPanel": {
+ "ALL": "ВСЕ",
+ "AlternateControls": "Альтернативные средства управления",
+ "Headline": "Управление",
+ "InvertX": "Инвертировать X",
+ "InvertY": "Инвертировать Y",
+ "InvertZ": "Инвертировать Z",
+ "PleaseConfigureSteps": "Пожалуйста, настройте шаги",
+ "QGL": "QGL",
+ "SettingsInterfaceControl": "Настройки > Интерфейс > Управление",
+ "SetupControls": "Элементы управления настройками",
+ "X": "X",
+ "Y": "Y",
+ "Z": "Z",
+ "ZTilt": "Z Наклон"
+ },
"ExtruderControlPanel": {
- "Extrude": "Экструдировать",
- "ExtrusionFactor": "Коэффициент экструзии",
- "Retract": "Въехать",
"Allowed": "Разрешено",
"EstimatedExtrusion": "Предполагаемая экструзия:",
+ "Extrude": "Экструдировать",
"ExtruderTempTooLow": "Температура экструдера. <",
+ "ExtrusionFactor": "Коэффициент экструзии",
"ExtrusionFeedrate": "Скорость подачи экструзии",
"FilamentLength": "Длина нити",
+ "FirmwareRetractionSettings": {
+ "RetractLength": "Длина втягивания",
+ "RetractSpeed": "Скорость втягивания",
+ "UnretractExtraLength": "Дополнительная длина удлинителя",
+ "UnretractSpeed": "Скорость выдвижения"
+ },
"Headline": "Экструдер",
+ "Retract": "Въехать",
"LoadFilament": "Нагрузочная нить",
+ "PressureAdvanceSettings": {
+ "Advance": "Аванс",
+ "Extruder": "Экструдер",
+ "PressureAdvance": "Опережение давления",
+ "SmoothTime": "Плавное время"
+ },
"Requested": "Запрошено",
"TooLargeExtrusion": "Экструзия слишком велика!",
"UnloadFilament": "Выгрузить нить"
@@ -465,27 +506,13 @@
"Restart": "Перезапустить"
},
"MachineSettingsPanel": {
- "FirmwareRetractionSettings": {
- "FirmwareRetraction": "Отступление от прошивки",
- "RetractLength": "Длина втягивания",
- "RetractSpeed": "Скорость втягивания",
- "UnretractExtraLength": "Дополнительная длина удлинителя",
- "UnretractSpeed": "Скорость выдвижения"
- },
"Headline": "Настройки машины",
"MotionSettings": {
"Acceleration": "Ускорение",
"Deceleration": "Замедление",
"MaxAccelToDecel": "Макс. ускорение - замедление.",
- "Motion": "Движение",
"SquareCornerVelocity": "Угловая скорость",
"Velocity": "Скорость"
- },
- "PressureAdvanceSettings": {
- "Advance": "Аванс",
- "Extruder": "Экструдер",
- "PressureAdvance": "Опережение давления",
- "SmoothTime": "Плавное время"
}
},
"MacrosPanel": {
@@ -543,6 +570,8 @@
"CancelPrint": "Отменить давление",
"ClearPrintStats": "Удаление статистики печати",
"Difference": "Разница",
+ "EmptyGcodes": "G-код отсутствует.",
+ "EmptyJobqueue": "There is currently no file in the job queue.",
"Estimate": "Оцените",
"ETA": "ETA",
"ExcludeObject": {
@@ -554,27 +583,25 @@
},
"Filament": "Филамент",
"File": "Файл",
+ "Files": "Файлы",
"Flow": "Поток",
"Headline": "Статус",
+ "Jobqueue": "Jobqueue ({count})",
+ "JobqueueMoreFiles": "нет больше рабочих мест | одно рабочее место | {count} больше рабочих мест",
"Layer": "Слой",
"Max": "макс.",
"ObjectHeight": "Высота объекта",
"PausePrint": "Давление прерывания",
"Print": "Печать",
+ "PrintTime": "Время печати",
"ReprintJob": "Повторять давление",
"Requested": "Запрошено",
"ResumePrint": "Возобновить печать",
"Slicer": "Slicer",
"Speed": "Скорость",
+ "Status": "Статус",
"Total": "Всего",
- "Unknown": "Неизвестный",
- "EmptyGcodes": "G-код отсутствует.",
- "EmptyJobqueue": "There is currently no file in the job queue.",
- "Files": "Файлы",
- "Jobqueue": "Jobqueue ({count})",
- "JobqueueMoreFiles": "нет больше рабочих мест | одно рабочее место | {count} больше рабочих мест",
- "PrintTime": "Время печати",
- "Status": "Статус"
+ "Unknown": "Неизвестный"
},
"TemperaturePanel": {
"AutoscaleChart": "Автомасштабируемая диаграмма",
@@ -614,11 +641,15 @@
"Absolute": "Абсолютно",
"ALL": "ALL",
"Controls": "Контроль",
+ "Headline": "Головка инструмента",
"Home": "Home",
+ "Invalid": "Неверный",
"InvertX": "X инвертировать",
"InvertY": "Y инвертировать",
"InvertZ": "Z инвертировать",
"Macros": "Макрос",
+ "MotorsOff": "Двигатели выключены",
+ "OutOfRange": "Вне зоны доступа!",
"PleaseConfigureSteps": "Пожалуйста, настройте расстояние вращения",
"Position": "Позиция",
"QGL": "QGL",
@@ -626,25 +657,22 @@
"SettingsInterfaceControl": "Настройки > интерфейс > управление",
"SetupControls": "Установить контроль",
"SpeedFactor": "Коэффициент скорости",
- "ZTilt": "Z Наклон",
- "Headline": "Головка инструмента",
- "Invalid": "Неверный",
- "MotorsOff": "Двигатели выключены",
- "OutOfRange": "Вне зоны доступа!",
"XOffset": "X-смещение",
"YOffset": "Y-смещение",
- "ZOffset": "Z-смещение"
+ "ZOffset": "Z-смещение",
+ "ZTilt": "Z Наклон"
},
"WebcamPanel": {
"All": "Все",
"FPS": "FPS",
"Headline": "Веб-камера",
+ "NoWebcam": "Нет доступной веб-камеры. Добавьте веб-камеру в разделе \"Настройки интерфейса\" -> \"Веб-камеры\".",
"UnknownWebcamService": "Неизвестная веб-камера",
"UrlNotAvailable": "URL недоступен",
- "Webcam": "Веб-камера",
- "NoWebcam": "Нет доступной веб-камеры. Добавьте веб-камеру в разделе \"Настройки интерфейса\" -> \"Веб-камеры\"."
+ "Webcam": "Веб-камера"
},
"ZoffsetPanel": {
+ "Clear": "Очистить",
"CurrentOffset": "Текущее смещение",
"Headline": "Z-смещение",
"Later": "Позже",
@@ -655,24 +683,7 @@
"SaveInfoDescriptionPrint": "Новое смещение по Z было рассчитано и зарегистрировано. После печати нажмите на \"SAVE CONFIG\" в верхней панели, чтобы сохранить его в файле printer.cfg, и перезапустите Klipper.",
"SaveInfoHeadline": "Информация",
"ToEndstop": "до конечной остановки",
- "ToProbe": "к зонду",
- "Clear": "Очистить"
- },
- "ControlPanel": {
- "ALL": "ВСЕ",
- "AlternateControls": "Альтернативные средства управления",
- "Headline": "Управление",
- "InvertX": "Инвертировать X",
- "InvertY": "Инвертировать Y",
- "InvertZ": "Инвертировать Z",
- "PleaseConfigureSteps": "Пожалуйста, настройте шаги",
- "QGL": "QGL",
- "SettingsInterfaceControl": "Настройки > Интерфейс > Управление",
- "SetupControls": "Элементы управления настройками",
- "X": "X",
- "Y": "Y",
- "Z": "Z",
- "ZTilt": "Z Наклон"
+ "ToProbe": "к зонду"
}
},
"PowerDeviceChangeDialog": {
@@ -703,15 +714,15 @@
"EditPrinter": "Редактировать принтер",
"Hello": "Здравствуйте и добро пожаловать в удаленный режим работы \"Грот\"!",
"HostnameInvalid": "неверное имя хоста/IP",
+ "HostnameIp": "Имя хоста/IP",
"HostnameRequired": "Имя хоста обязательно",
+ "Port": "Порт",
"PortRequired": "Порт необходим",
"RememberToAdd": "Пожалуйста, не забудьте добавить {cors} в moonraker.conf в 'cors_domains'.",
"SelectPrinter": "Выберите принтер",
"TryAgain": "повторите попытку",
"UpdatePrinter": "Обновление принтера",
- "YouCanFindMore": "Более подробную информацию вы можете найти на сайте",
- "HostnameIp": "Имя хоста/IP",
- "Port": "Порт"
+ "YouCanFindMore": "Более подробную информацию вы можете найти на сайте"
},
"Settings": {
"Cancel": "Отмена",
@@ -727,43 +738,43 @@
"EntryStyle": "Стиль записей",
"EntryStyleCompact": "компактный",
"EntryStyleDefault": "стандарт",
+ "Filters": "Фильтры",
"Height": "Высота",
"HideTemperatures": "Скрыть температуры",
"HideTimelapse": "Скрыть таймлапс",
"Name": "Имя",
"Regex": "Regex",
"StoreButton": "Фильтр магазина",
- "UpdateButton": "Обновление фильтра",
- "Filters": "Фильтры"
+ "UpdateButton": "Обновление фильтра"
},
"ControlTab": {
"Bars": "Бар",
"Circle": "Круг",
"Control": "Контроль",
"Cross": "Крест",
+ "EnableXYHoming": "Включение комбинированного наведения по осям X и Y",
+ "EstimatedExtrusionInfo": "Показать примерную информацию об экструзии",
+ "EstimatedExtrusionInfoDescription": "Показать / скрыть информацию о предполагаемых экструзиях на основе количества экструзии и скорости подачи",
"InvertXMovement": "Инвертировать движение X",
"InvertYMovement": "Инвертирование движения Y",
"InvertZMovement": "Инвертировать движение Z",
+ "IsDefault": " (по умолчанию)",
"MaximumValues": "Максимальные значения: {maximum}",
"MaximumValuesVisibility": "Для лучшей видимости рекомендуется максимальное из {maximum} значений",
"MinimumValues": "Минимальные значения: {minimum}",
+ "MotorsOff": "Двигатели выключены {isDefault}",
"MoveDistancesEInMm": "Расстояния перемещения E в мм",
"MoveDistancesInMm": "Расстояние перемещения в мм",
"MoveDistancesXYInMm": "Расстояния перемещения XY в мм",
"MoveDistancesZInMm": "Расстояние перемещения Z в мм",
+ "QuadGantryLevel": "Quad Gantry Level{isDefault}",
"SpeedEInMms": "Скорость E в мм/с",
"SpeedXY": "Скорость XY",
"SpeedZ": "Скорость Z",
"Style": "Стиль",
"ValueGreaterThan": "Значение должно быть больше, чем {value}",
- "EnableXYHoming": "Включение комбинированного наведения по осям X и Y",
- "EstimatedExtrusionInfo": "Показать примерную информацию об экструзии",
- "EstimatedExtrusionInfoDescription": "Показать / скрыть информацию о предполагаемых экструзиях на основе количества экструзии и скорости подачи",
- "IsDefault": " (по умолчанию)",
- "QuadGantryLevel": "Quad Gantry Level{isDefault}",
"ZOffsetIncrements": "Приращения Z-смещения (в мм)",
- "ZTiltAdjust": "Z-Tilt Adjust{isDefault}",
- "MotorsOff": "Двигатели выключены {isDefault}"
+ "ZTiltAdjust": "Z-Tilt Adjust{isDefault}"
},
"DashboardTab": {
"Dashboard": "Приборная панель",
@@ -778,12 +789,12 @@
"ConfirmUnsavedChanges": "Предложение сохранить или отменить несохраненные изменения",
"ConfirmUnsavedChangesDescription": "Если включено, то для сохранения/отмены несохраненных изменений требуется подтверждение. Если отключено, изменения отбрасываются в фоновом режиме.",
"Editor": "Редактор",
- "UseEscToClose": "Нажмите ESC, чтобы закрыть редактор",
- "UseEscToCloseDescription": "Позволяет закрыть редактор с помощью ESC.",
"KlipperRestartMethod": "Метод перезапуска клиппера",
"KlipperRestartMethodDescription": "Выберите, какой метод перезапуска будет использоваться при 'Save & Restart' при редактировании файлов конфигурации Klipper.",
"MoonrakerRestartInstance": "Инстанция перезапуска Moonraker",
- "MoonrakerRestartInstanceDescription": "Выберите, какая служба Moonraker будет перезапускаться при 'Save & Restart' при редактировании файлов конфигурации Moonraker."
+ "MoonrakerRestartInstanceDescription": "Выберите, какая служба Moonraker будет перезапускаться при 'Save & Restart' при редактировании файлов конфигурации Moonraker.",
+ "UseEscToClose": "Нажмите ESC, чтобы закрыть редактор",
+ "UseEscToCloseDescription": "Позволяет закрыть редактор с помощью ESC."
},
"GCodeViewerTab": {
"BackgroundColor": "Цвет фона",
@@ -792,8 +803,8 @@
"GridColor": "Цвет сетки",
"MaxFeed": "Максимальная подача",
"MinFeed": "Мин. подача",
- "ShowAxes": "Показать оси",
- "ProgressColor": "Цвет прогресса"
+ "ProgressColor": "Цвет прогресса",
+ "ShowAxes": "Показать оси"
},
"GeneralTab": {
"Backup": "Резервная копия",
@@ -809,6 +820,11 @@
"DbTimelapseSettings": "Настройки временного интервала",
"DbView": "Просмотр настроек",
"DbWebcams": "Веб-камеры",
+ "EstimateValues": {
+ "Filament": "Филамент",
+ "File": "Файл",
+ "Slicer": "Ломтерезка"
+ },
"FactoryDialog": "Пожалуйста, выберите все разделы, которые вы хотите сбросить:",
"FactoryReset": "Заводской сброс",
"General": "Общий",
@@ -817,12 +833,7 @@
"PrinterName": "Имя принтера",
"Reset": "сброс",
"Restore": "Восстановить",
- "RestoreDialog": "Пожалуйста, выберите все разделы, которые вы хотите восстановить:",
- "EstimateValues": {
- "Filament": "Филамент",
- "File": "Файл",
- "Slicer": "Ломтерезка"
- }
+ "RestoreDialog": "Пожалуйста, выберите все разделы, которые вы хотите восстановить:"
},
"InterfaceSettings": "Настройки интерфейса",
"MacrosTab": {
@@ -868,16 +879,16 @@
"CustomGCode": "Пользовательский G-код",
"EditCooldown": "Редактировать Время охлаждения",
"EditHeadline": "Редактировать предустановку",
+ "ErrorInvalidValue": "Недопустимое значение",
+ "ErrorNameNotUnique": "Имя уже существует",
+ "ErrorNameRequired": "Требуемое имя",
"Name": "Имя",
"PreheatPresets": "Предустановки предварительного нагрева",
"PresetInfo": "Вы должны задать минимальную целевую температуру или пользовательский gcode.",
+ "PresetNamePlaceholder": "Имя предустановки (обязательно)",
"StoreButton": "Сохранить предустановку",
"UpdateButton": "Обновление предустановки",
- "UpdateCooldown": "Обновить время ожидания",
- "ErrorInvalidValue": "Недопустимое значение",
- "ErrorNameNotUnique": "Имя уже существует",
- "ErrorNameRequired": "Требуемое имя",
- "PresetNamePlaceholder": "Имя предустановки (обязательно)"
+ "UpdateCooldown": "Обновить время ожидания"
},
"RemotePrintersTab": {
"AddPrinter": "Добавить принтер",
@@ -1061,18 +1072,5 @@
"Variable": "Переменная",
"Video": "Видео"
},
- "title": "Pусский",
- "FullscreenUpload": {
- "CannotUploadFile": "Невозможно загрузить файл!",
- "DropFilesToUploadFiles": "Сбрасывайте файлы для загрузки"
- },
- "Dialogs": {
- "StartPrint": {
- "Headline": "Начать работу",
- "Cancel": "Cancel",
- "DoYouWantToStartFilename": "Вы хотите начать {имя файла}?",
- "Print": "вывести",
- "Timelapse": "Таймлапс"
- }
- }
+ "title": "Pусский"
}
diff --git a/src/locales/se-SV.json b/src/locales/se-SV.json
index 8b3ec6c29..40dc40037 100644
--- a/src/locales/se-SV.json
+++ b/src/locales/se-SV.json
@@ -449,6 +449,20 @@
"Z": "Z",
"ZTilt": "Z Lutning"
},
+ "ExtuderControlPanel": {
+ "FirmwareRetractionSettings": {
+ "RetractLength": "Längd för Retract",
+ "RetractSpeed": "Hastighet för Retract",
+ "UnretractExtraLength": "Unretract extra längd",
+ "UnretractSpeed": "Unretract hastighet"
+ },
+ "PressureAdvanceSettings": {
+ "Advance": "Advance",
+ "Extruder": "Extruder",
+ "PressureAdvance": "Pressure Advance",
+ "SmoothTime": "Utjämningstid"
+ }
+ },
"FarmPrinterPanel": {
"ReconnectToPrinter": "Återanslut",
"SwitchToPrinter": "Byt till skrivare",
@@ -462,26 +476,12 @@
"Restart": "Starta om"
},
"MachineSettingsPanel": {
- "FirmwareRetractionSettings": {
- "FirmwareRetraction": "Firmware Retraction",
- "RetractLength": "Längd för Retract",
- "RetractSpeed": "Hastighet för Retract",
- "UnretractExtraLength": "Unretract extra längd",
- "UnretractSpeed": "Unretract hastighet"
- },
"Headline": "Maskininställningar",
"MotionSettings": {
"Acceleration": "Acceleration",
"MaxAccelToDecel": "Max Accel. till Decel.",
- "Motion": "Rörelse",
"SquareCornerVelocity": "Skarpa hörn Velocitet",
"Velocity": "Velocitet"
- },
- "PressureAdvanceSettings": {
- "Advance": "Advance",
- "Extruder": "Extruder",
- "PressureAdvance": "Pressure Advance",
- "SmoothTime": "Utjämningstid"
}
},
"MacrosPanel": {
diff --git a/src/locales/tr.json b/src/locales/tr.json
new file mode 100644
index 000000000..ab989b244
--- /dev/null
+++ b/src/locales/tr.json
@@ -0,0 +1,1035 @@
+{
+ "App": {
+ "Notifications": {
+ "DependencyDescription": "Mevcut {name} sürümü, Mainsail'in tüm özelliklerini desteklemiyor. {name}'yi en az {neededVersion} olarak güncelleyin.",
+ "DependencyName": "Bağımlılık: {isim}",
+ "DismissAll": "Hepsini reddet",
+ "KlipperWarnings": {
+ "DeprecatedOption": "'{section}' bölümündeki '{option}' seçeneği tedavülden kaldırılmıştır ve gelecekteki bir sürümde kaldırılacaktır.",
+ "DeprecatedOptionHeadline": "Kullanımdan Kaldırılan Klipper Ayarı",
+ "DeprecatedValue": "'{section}' bölümündeki '{option}' seçeneğindeki '{value}' değeri tedavülden kaldırılmıştır ve gelecekteki bir sürümde kaldırılacaktır.",
+ "DeprecatedValueHeadline": "Kullanımdan Kaldırılan Klipper Değeri",
+ "KlipperWarning": "Klipper uyarısı"
+ },
+ "MoonrakerWarnings": {
+ "MoonrakerComponent": "Moonraker: {component}",
+ "MoonrakerFailedComponentDescription": "Moonraker bileşeni '{component}' yüklenirken bir hata algılandı. Lütfen günlük dosyasını kontrol edin ve sorunu düzeltin.",
+ "MoonrakerWarning": "Moonraker uyarısı",
+ "UnparsedConfigOption": "[{section}] bölümünde ayrıştırılmamış yapılandırma seçeneği '{option}: {value}' algılandı. Bu, artık mevcut olmayan bir seçenek olabilir veya yüklenemeyen bir modülün sonucu olabilir. Gelecekte bu bir başlatma hatasıyla sonuçlanacaktır.",
+ "UnparsedConfigSection": "Ayrıştırılmamış yapılandırma bölümü [{section}] algılandı. Bu, yüklenemeyen bir bileşenin sonucu olabilir. Gelecekte bu bir başlatma hatasıyla sonuçlanacaktır."
+ },
+ "Never": "asla",
+ "NextReboot": "sonraki yeniden başlatma",
+ "NoNotification": "Bildirim yok",
+ "Notifications": "Bildirimler",
+ "Remind": "Hatırlat:"
+ },
+ "NumberInput": {
+ "GreaterOrEqualError": "{min} değerinden büyük veya eşit olmalıdır!",
+ "MustBeBetweenError": "{min} ile {max} arasında olmalıdır!",
+ "NoEmptyAllowedError": "Giriş boş olmamalıdır!"
+ },
+ "Printers": "Yazıcılar",
+ "ThrottledStates": {
+ "DescriptionCurrentlyThrottled": "rPi ARM çekirdek(ler)i şu anda kısılmış durumda.",
+ "DescriptionFrequencyCapped": "rPi ARM maksimum frekansı şu anda 1,2 GHz ile sınırlıdır.",
+ "DescriptionPreviouslyFrequencyCapped": "rPi ARM maksimum frekansı, son açılıştan bu yana en az bir kez 1,2 GHz ile sınırlandırılmıştır.",
+ "DescriptionPreviouslyTemperatureLimited": "rPi uC (yalnızca 3A+/3B+) sıcaklığı, son açılıştan bu yana yumuşak sınırın (varsayılan 60C) en az bir kez üzerindeydi.",
+ "DescriptionPreviouslyThrottled": "rPI ARM çekirdek(ler)i, son açılıştan bu yana en az bir kez kısıldı.",
+ "DescriptionPreviouslyUnderVolted": "rPI besleme voltajı, son açılıştan bu yana en az bir kez 4,65V'nin altına düştü.",
+ "DescriptionTemperatureLimitActive": "rPi uC (yalnızca 3A+/3B+) sıcaklığı şu anda yumuşak sınırın üzerinde (varsayılan 60C).",
+ "DescriptionUnderVoltageDetected": "rPI besleme voltajı şu anda 4,65V'un altında",
+ "TitleCurrentlyThrottled": "Şu Anda Kısılmış",
+ "TitleFrequencyCapped": "Sınırlandırılmış Frekans",
+ "TitlePreviouslyFrequencyCapped": "Önceden Sınırlandırılmış Frekans",
+ "TitlePreviouslyTemperatureLimited": "Önceden Sınırlandırılmış Sıcaklık",
+ "TitlePreviouslyThrottled": "Önceden Kısılmış",
+ "TitlePreviouslyUnderVolted": "Önceden Düşük Voltaj",
+ "TitleTemperatureLimitActive": "Sıcaklık Limiti Aktif",
+ "TitleUnderVoltageDetected": "Düşük Voltaj Algılandı"
+ },
+ "Titles": {
+ "Complete": "Tamamlandı - {filename}",
+ "Error": "HATA",
+ "Pause": "Baskı Duraklatıldı",
+ "Printing": "{percent}% Baskı - {filename}",
+ "PrintingETA": "{percent}% Baskı - Tahmini Bitiş Süresi: {eta} - {filename}"
+ },
+ "TopBar": {
+ "CannotUploadTheFile": "Dosya yüklenemiyor!",
+ "EmergencyStop": "Acil Durdurma",
+ "SAVE_CONFIG": "YAPILANDIRMAYI KAYDET",
+ "Uploading": "Yükleniyor",
+ "UploadOfFileSuccessful": "{file} yüklemesi başarılı!",
+ "UploadPrint": "Yükle ve Yazdır"
+ },
+ "TopCornerMenu": {
+ "Cancel": "İptal Et",
+ "ConfirmationDialog": {
+ "Description": {
+ "HostReboot": "Ana Bilgisayarı yeniden başlatmak, geçerli yazdırmanın başarısız olmasına neden olur!",
+ "HostShutdown": "Ana Bilgisayarı kapatmak, mevcut baskının başarısız olmasına neden olur!",
+ "KlipperFirmwareRestart": "Klipper Bellenimini yeniden başlatmak, mevcut baskının başarısız olmasına neden olur!",
+ "KlipperRestart": "Klipper'ı yeniden başlatmak, mevcut baskının başarısız olmasına neden olacak!",
+ "KlipperStop": "Klipper'ı durdurmak, mevcut baskının başarısız olmasına neden olacak!",
+ "ServiceRestart": "Bu hizmeti yeniden başlatmak, geçerli yazdırmanın başarısız olmasına neden olabilir!",
+ "ServiceStart": "Bu hizmeti başlatmak, mevcut baskının başarısız olmasına neden olabilir!",
+ "ServiceStop": "Bu hizmeti durdurmak, mevcut baskının başarısız olmasına neden olabilir!"
+ },
+ "Title": {
+ "HostReboot": "Ana Bilgisayarı Yeniden Başlatma",
+ "HostShutdown": "Ana Bilgisayarı Kapatma",
+ "KlipperFirmwareRestart": "Klipper Bellenimini Yeniden Başlatma",
+ "KlipperRestart": "Klipper Yeniden Başlatma",
+ "ServiceRestart": "Hizmet Yeniden Başlatma",
+ "ServiceStart": "Hizmet Başlat",
+ "ServiceStop": "Hizmet Durdur"
+ }
+ },
+ "HostControl": "Ana Bilgisayar Kontrolü",
+ "KlipperControl": "Klipper Kontrolü",
+ "KlipperFirmwareRestart": "Bellenim Yeniden Başlatma",
+ "KlipperRestart": "Yeniden Başlatma",
+ "PowerDevices": "Güç Cihazları",
+ "Reboot": "Tekrar Yükle",
+ "Restart": "Yeniden Başlat",
+ "ServiceControl": "Hizmet Kontrolü",
+ "Shutdown": "Kapat",
+ "Start": "Başlat",
+ "Stop": "Durdur"
+ },
+ "UpdateDialog": {
+ "Close": "Kapat",
+ "Empty": "Boş",
+ "Recovering": "{software} kurtarılıyor...",
+ "RecoveringDone": "{software} kurtarma işlemi tamamlandı!",
+ "Updating": "{software} güncelleniyor...",
+ "UpdatingDone": "{software} güncellemesi tamamlandı!"
+ }
+ },
+ "ConnectionDialog": {
+ "CannotConnectTo": "Moonraker'a ({host}) bağlanılamıyor.",
+ "CheckMoonrakerLog": "Bu mesaj tekrar tekrar görünüyorsa, lütfen şu adreste bulunan günlük dosyasına bakın:",
+ "Connecting": "{host}'a bağlanılıyor",
+ "Failed": "Bağlantı başarısız",
+ "Initializing": "Başlatılıyor",
+ "TryAgain": "Tekrar deneyin"
+ },
+ "Console": {
+ "CommandList": "Komut listesi",
+ "Empty": "Boş",
+ "HideTemperatures": "Sıcaklıkları Gizle",
+ "HideTimelapse": "Timelapse'i Gizle",
+ "SendCode": "Kodu gönder...",
+ "SetupConsole": "Kurulum Konsolu"
+ },
+ "Dialogs": {
+ "StartPrint": {
+ "Cancel": "İptal Et",
+ "DoYouWantToStartFilename": "{filename} dosyasını başlatmak istiyor musunuz?",
+ "Headline": "İşe Başla",
+ "Print": "yazdır",
+ "Timelapse": "Timelapse"
+ }
+ },
+ "Editor": {
+ "ConfigReference": "Yapılandırma Referansı",
+ "DontSave": "Kaydetme",
+ "Downloading": "İndiriliyor",
+ "FailedSave": "{filename} yüklenemedi!",
+ "FileReadOnly": "Salt-oku",
+ "SaveClose": "Kaydet & Kapat",
+ "SaveRestart": "Kaydet & Yeniden Başlat",
+ "SuccessfullySaved": "{filename} başarıyla kaydedildi.",
+ "UnsavedChanges": "Kaydedilmemiş Değişiklikler",
+ "UnsavedChangesMessage": "{filename} dosyasında yaptığınız değişiklikleri kaydetmek istiyor musunuz??",
+ "UnsavedChangesSubMessage": "Kaydetmezseniz değişiklikleriniz kaybolacak. Bu mesajı editör ayarlarından devre dışı bırakabilirsiniz.",
+ "Uploading": "Karşya Yükleniyor"
+ },
+ "EmergencyStopDialog": {
+ "AreYouSure": "Emin Misiniz?",
+ "EmergencyStop": "Acil Stop",
+ "No": "Hayır",
+ "Yes": "Evet"
+ },
+ "Files": {
+ "AddToQueue": "Sıraya ekle",
+ "AllFiles": "Hepsi",
+ "BedTemp": "Tabla Sıcaklığı",
+ "Cancel": "İptal Et",
+ "ChamberTemp": "Bölme Sıcaklığı",
+ "Create": "Oluştur",
+ "CreateNewDirectory": "Yeni dizin oluştur",
+ "CurrentPath": "Şuanki yol",
+ "Delete": "Sil",
+ "DeleteDirectory": "Dizini Sil",
+ "DeleteDirectoryQuestion": "\"{name}\" dizinini tüm içeriğiyle birlikte gerçekten silmek istiyor musunuz?",
+ "DeleteSelectedQuestion": "Seçilen {count} dosyayı gerçekten silmek istiyor musunuz?",
+ "Download": "İndir",
+ "EditFile": "Dosyayı Düzenle",
+ "Empty": "Boş",
+ "ExtruderTemp": "Ekstrüder Sıcaklığı",
+ "Filament": "Filament",
+ "FilamentName": "Filament İsmi",
+ "FilamentType": "Filament Tipi",
+ "FilamentUsage": "Filament Kullanımı",
+ "FilamentWeight": "Filament Ağırlığı",
+ "Files": "Dosyalar",
+ "Filesize": "Dosya Boyutu",
+ "Free": "Boş",
+ "FreeDisk": "Boş disk",
+ "GCodeFiles": "G-Kod Dosyaları",
+ "GcodesRootDirectoryDoesntExists": "G-Kod dizini bulunamadı. Lütfen Klipper yapılandırmasının [virtual_sdcard] bölümündeki \"path\" seçeneğini işaretleyin.",
+ "HiddenFiles": "Gizli Dosyalar",
+ "LastEndTime": "Son Bitiş Zamanı",
+ "LastFilamentUsed": "Son Filament Kullanımı",
+ "LastModified": "Son Düzenleme",
+ "LastPrintDuration": "Son Baskı Süresi",
+ "LastStartTime": "Son Başlangıç Saati",
+ "LastTotalDuration": "Son Toplam Süre",
+ "LayerHeight": "Katman Yüksekliği",
+ "Name": "İsim",
+ "NewDirectory": "Yeni Dizin",
+ "NozzleDiameter": "Nozül Çapı",
+ "ObjectHeight": "Nesne Yüksekliği",
+ "Preheat": "Ön Isınma",
+ "PrintedFiles": "Yazdırılan Dosyalar",
+ "PrintStart": "Baskı Başlangıcı",
+ "PrintTime": "Baskı Süresi",
+ "RefreshCurrentDirectory": "Geçerli Dizini Yenile",
+ "Rename": "Yeniden İsimlendir",
+ "RenameDirectory": "Dizini Yeniden İsimlendir",
+ "RenameFile": "Dosyayı Yeniden İsimlendir",
+ "Search": "Ara",
+ "SetupCurrentList": "Geçerli listeyi ayarla",
+ "Slicer": "Dilimleyici",
+ "SuccessfullyCreated": "{filename} başarıyla oluşturuldu.",
+ "SuccessfullyDeleted": "{filename} başarıyla silindi.",
+ "SuccessfullyMoved": "{filename} başarıyla taşındı.",
+ "SuccessfullyRenamed": "{filename} başarıyla yeniden adlandırıldı.",
+ "SuccessfullyUploaded": "{filename} dosyası başarıyla yüklendi!",
+ "Total": "Toplam",
+ "UploadNewGcode": "Yeni G-Kod yükle",
+ "Used": "Kullanılmış",
+ "View3D": "3D görüntüle"
+ },
+ "FullscreenUpload": {
+ "CannotUploadFile": "Dosya Yüklenemiyor!",
+ "DropFilesToUploadFiles": "Dosyaları yüklemek için sürükleyiniz"
+ },
+ "GCodeViewer": {
+ "ClearLoadedFile": "Temizle",
+ "ColorMode": "Renk Modu",
+ "Downloading": "İndiriliyor",
+ "ForceLineRendering": "Çizgi Oluşturmayı Zorla",
+ "HDRendering": "HD İşleme (Yuvarlak Ekstrüzyonlar)",
+ "High": "Yüksek",
+ "LoadCurrentFile": "Şu anki Dosya",
+ "LoadLocal": "Yerel Dosya",
+ "Low": "Düşük",
+ "Max": "Maksimum",
+ "Medium": "Orta",
+ "ReloadRequired": "Yeniden yükleme gerekli",
+ "Rendering": "İşleniyor",
+ "RenderQuality": "İşleme Kalitesi",
+ "ShowObjectSelection": "Nesne Seçimini Göster",
+ "ShowToolhead": "Araç Başlığını Göster",
+ "ShowTravelMoves": "Seyahat Hareketlerini Göster",
+ "SpecularLighting": "Aynalı Aydınlatma",
+ "Title": "G-Kod İzleyici",
+ "Tracking": "İzleme",
+ "Transparency": "Şeffaflık",
+ "Ultra": "Ultra",
+ "VoxelMode": "Voksel Modu (ASMBL)"
+ },
+ "Heightmap": {
+ "Abort": "iptal et",
+ "BedMeshCalibrate": "Tabla Örgü Kalibrasyonu Yap",
+ "BedMeshRemove": "Tabla Örgü Kalibrasyonu Kaldır",
+ "Calibrate": "kalibre et",
+ "Clear": "temizle",
+ "CurrentMesh": {
+ "Headline": "Mevcut Örgü",
+ "Max": "Max",
+ "Min": "Min",
+ "Name": "İsim",
+ "Size": "Boyut",
+ "Variance": "Varyans"
+ },
+ "DeleteBedMeshProfile": "Tabla Örgü Profilini Sil",
+ "DoYouReallyWantToDelete": "\"{name}\" profilini gerçekten silmek istiyor musunuz?",
+ "ErrorKlipperNotReady": "Klipper hazır değil. Yükseklik haritası devre dışı bırakıldı.",
+ "Flat": "Düz",
+ "Heightmap": "Yükseklik Haritası",
+ "InvalidNameAlreadyExists": "Profil adı zaten var, lütfen başka bir profil adı seçin.",
+ "InvalidNameEmpty": "Giriş boş olmamalıdır!",
+ "InvalidNameReserved": "Profil 'varsayılan' ayrılmıştır, lütfen başka bir profil adı seçin.",
+ "Later": "Sonra",
+ "Mesh": "Örgü",
+ "Name": "İsim",
+ "NoBedMeshHasBeenLoadedYet": "Henüz bir tabla örgüsü yüklenmedi.",
+ "NoProfile": "Profil yok",
+ "Ok": "OK",
+ "Probed": "Problanmış",
+ "Profiles": "Profiller",
+ "Remove": "Sil",
+ "RemoveSaveDescription": "Tabla_Örgü profili silinmiş olarak kaydedildi. printer.cfg'den kaldırmak için YAPILANDIRMAYI_KAYDET'e tıklayın ve Klipper'ı yeniden başlatın.",
+ "Rename": "yeniden adlandır",
+ "RenameBedMeshProfile": "Tabla Örgü Profilini Yeniden Adlandır",
+ "SAVE_CONFIG": "YAPILANDIRMAYI_KAYDET",
+ "ScaleGradient": "Ölçek gradyanı",
+ "ScaleZMax": "z-max'ı ölçeklendir",
+ "TitleCalibrate": "Yeni tabla örgüsü kalibre edin",
+ "TitleClear": "Tabla örgüsünü temizleyin",
+ "TitleHomeAll": "Hepsini home'la",
+ "Wireframe": "Tel-kafes"
+ },
+ "History": {
+ "AddNote": "Not ekle",
+ "AllJobs": "Hepsi",
+ "AvgPrinttime": "Baskı Süresi - Ø",
+ "Cancel": "İptal Et",
+ "ChamberTemp": "Bölme Sıcaklığı",
+ "CreateNote": "Not Oluştur",
+ "Delete": "Sil",
+ "DeleteSelectedQuestion": "Seçilen {count} işi gerçekten silmek istiyor musunuz?",
+ "Details": "Detaylar",
+ "EditNote": "Notu Düzenle",
+ "Empty": "boş",
+ "EndTime": "Bitme Zamanı",
+ "EstimatedFilament": "Tahmini Filament",
+ "EstimatedFilamentWeight": "Tahmini Filament Ağırlığı",
+ "EstimatedTime": "Tahmini Süre",
+ "FilamentCalc": "Hesaplanmış Filament",
+ "FilamentUsage": "Filament kullanımı",
+ "FilamentUsed": "Filament Kullanıldı",
+ "Filename": "Dosyaadı",
+ "Filesize": "Dosyaboyutu",
+ "FirstLayerBedTemp": "İlk Katman Tabla Sıcaklığı",
+ "FirstLayerExtTemp": "İlk Katman Ekstrüder Sıcaklığı",
+ "FirstLayerHeight": "İlk Katman Yüksekliği",
+ "HistoryFilamentUsage": "Filament",
+ "HistoryPrinttimeAVG": "Baskılar",
+ "JobDetails": "İş Detayları",
+ "Jobs": "İşler",
+ "LastModified": "Son Modifiye Edilmiş",
+ "LayerHeight": "Katman Yüksekliği",
+ "LongestPrinttime": "En Uzun Baskı Süresi",
+ "Note": "Not",
+ "ObjectHeight": "Nesne Yüksekliği",
+ "PrintDuration": "Baskı Süresi",
+ "PrintHistory": "Baskı Geçmişi",
+ "PrintTime": "Baskı Süresi",
+ "PrinttimeAvg": "Baskı Süresi - Ø",
+ "Reprint": "Tekrar Yazdır",
+ "Save": "kaydet",
+ "Search": "ara",
+ "SelectedFilamentUsed": "Kullanılan Seçilmiş Filament",
+ "SelectedJobs": "Seçilmiş İşler",
+ "SelectedPrinttime": "Seçilmiş Baskı Süresi",
+ "Slicer": "Dilimleyici",
+ "SlicerVersion": "Dilimleyici Versiyonu",
+ "StartTime": "Başlama Zamanı",
+ "Statistics": "İstatistikler",
+ "Status": "Durum",
+ "StatusValues": {
+ "cancelled": "İptal Edildi",
+ "completed": "Tamamlandı",
+ "error": "Hata",
+ "in_progress": "Devam etmekte",
+ "klippy_disconnect": "Klippy bağlantıyı kes",
+ "klippy_shutdown": "Klippy kapat",
+ "server_exit": "Sunucu çıkışı"
+ },
+ "TitleExportHistory": "İhracat Geçmişi",
+ "TitleRefreshHistory": "Geçmişi Yenile",
+ "TitleSettings": "Ayarlar",
+ "TotalDuration": "Toplam Zaman",
+ "TotalFilamentUsed": "Toplam Filament Kullanımı",
+ "TotalJobs": "Toplam İşler",
+ "TotalPrinttime": "Toplam Baskı Süresi",
+ "TotalTime": "Toplam Süre"
+ },
+ "JobQueue": {
+ "AllJobs": "Bütün İşler",
+ "Empty": "Boş",
+ "JobQueue": "İş Sırası",
+ "Jobs": "İşler",
+ "Pause": "Duraklat",
+ "RemoveFromQueue": "Sıradan Kaldır",
+ "Start": "Başlat"
+ },
+ "Machine": {
+ "ConfigFilesPanel": {
+ "AllFiles": "Hepsi",
+ "Cancel": "İptal",
+ "ConfigFiles": "Yapılandırma Dosyaları",
+ "ConfigRootDirectoryDoesntExists": "Yapılandırma dizini bulunamadı. Lütfen Moonraker yapılandırmasının [file_manager] bölümündeki \"config_path\" seçeneğini işaretleyin.",
+ "Create": "Oluştur",
+ "CreateDirectory": "Dizin Oluştur",
+ "CreateFile": "Dosya Oluştur",
+ "CurrentPath": "Mevcut yol",
+ "Delete": "Sil",
+ "DeleteDirectory": "Dizini Sil",
+ "DeleteDirectoryQuestion": "\"{name}\" dizini ve tüm içeriği silinsin mi?",
+ "DeleteSelectedQuestion": "{count} seçili öğe silinsin mi?",
+ "Download": "İndir",
+ "EditFile": "Dosyayı düzenle",
+ "Empty": "Boş",
+ "Files": "Dosyalar",
+ "Filesize": "Dosya Boyutu",
+ "Free": "Boş",
+ "FreeDisk": "Boş disk",
+ "HiddenFiles": "Gizli dosyalar",
+ "HideBackupFiles": "Yedekleme dosyalarını gizle",
+ "LastModified": "Son düzenleme",
+ "Name": "İsim",
+ "RefreshDirectory": "Dizini Yenile",
+ "Rename": "Yeniden Adlandır",
+ "RenameDirectory": "Dizini Yeniden Adlandır",
+ "RenameFile": "Dosyayı Yeniden Adlandır",
+ "Root": "Kök",
+ "SetupCurrentList": "Geçerli listeyi ayarla",
+ "ShowFile": "Dosyayı göster",
+ "Total": "Toplam",
+ "UploadFile": "Dosya yükleme",
+ "Uploading": "Yükleniyor",
+ "Used": "Kullanılmış"
+ },
+ "EndstopPanel": {
+ "Endstop": "Endstop",
+ "EndstopInfo": "Geçerli endstop durumunu yüklemek için sağ alttaki senkronizasyon düğmesine basın.",
+ "Endstops": "Endstoplar",
+ "open": "AÇIK",
+ "TRIGGERED": "TETİKLENDİ"
+ },
+ "LogfilesPanel": {
+ "Logfiles": "Log dosyaları"
+ },
+ "SystemPanel": {
+ "Constants": "Sabitler",
+ "Cpu": "CPU",
+ "HostDetails": "Ana bilgisayar ayrıntıları",
+ "LastStats": "Son istatistikler",
+ "Load": "Yük",
+ "Memory": "Hafıza",
+ "NoMoreInfos": "Daha Fazla Bilgi Yok",
+ "SystemLoad": "Sistem Yükleri",
+ "Values": {
+ "Awake": "Uyanık: {awake}",
+ "Bandwidth": "Bant Genişliği: {bandwidth}/s",
+ "Distro": "Dağıtım: {name} {version_id}",
+ "Frequency": "Frekans: {frequency}",
+ "Load": "Yük: {load}",
+ "Memory": "Hafıza: {memory}",
+ "Os": "OS: {os}",
+ "Received": "Alındı: {received}",
+ "Temp": "Sıcaklık: {temp}°C",
+ "TempMax": "max: {temp}°C",
+ "TempMin": "min: {temp}°C",
+ "Transmitted": "İletildi: {transmitted}",
+ "Version": "Versiyon: {version}"
+ }
+ },
+ "UpdatePanel": {
+ "CheckForUpdates": "Güncellemeleri kontrol et",
+ "Commits": "Taahhütler",
+ "CommitsAvailable": "taahhüt yok | {count} taahhüt mevcut | {count} taahhütler mevcut",
+ "CommitsOnDate": "{date} tarihinde taahhütler",
+ "CommittedDaysAgo": "{days} gün önce taahhüt edildi",
+ "CommittedHoursAgo": "{hours} saat önce taahhüt edildi",
+ "CommittedOnDate": "{date} tarihinde taahhüt edildi",
+ "CommittedYesterday": "dün taahhüt edildi",
+ "Detached": "ayrılmış",
+ "Dirty": "kirli",
+ "ERROR": "HATA",
+ "Invalid": "geçersiz",
+ "OSPackages": "OS-Paketleri",
+ "PackagesCanBeUpgraded": "paketler yükseltilebilir",
+ "System": "Sistem",
+ "Unknown": "bilinmeyen",
+ "Update": "güncelle",
+ "UpdateAll": "Tüm bileşenleri güncelle",
+ "UpdateManager": "Güncelleme Yöneticisi",
+ "Upgrade": "yükselt",
+ "UpToDate": "güncel"
+ }
+ },
+ "Panels": {
+ "ExtruderControlPanel": {
+ "Allowed": "İzin Verilmiş",
+ "EstimatedExtrusion": "Tahmini Ekstrüzyon:",
+ "Extrude": "Ekstrüde et",
+ "ExtruderTempTooLow": "Ekstrüder sıcaklığı <",
+ "ExtrusionFactor": "Ekstrüzyon faktörü",
+ "ExtrusionFeedrate": "Ekstrüzyon Besleme Hızı",
+ "FilamentLength": "Filament Uzunluğu",
+ "FirmwareRetractionSettings": {
+ "RetractLength": "Geri Çekme Mesafesi",
+ "RetractSpeed": "Geri Çekme Hızı",
+ "UnretractExtraLength": "Geri Çekilmemiş Ekstra Uzunluk",
+ "UnretractSpeed": "Geri Verme Hızı"
+ },
+ "Headline": "Ekstrüder",
+ "LoadFilament": "Filament Yükle",
+ "PressureAdvanceSettings": {
+ "Advance": "Basınç Avansı",
+ "Extruder": "Ekstrüder",
+ "SmoothTime": "Yumuşatma Zamanı"
+ },
+ "Requested": "Talep Edilen",
+ "Retract": "Geri Çekme",
+ "TooLargeExtrusion": "Ekstrüzyon çok fazla!",
+ "UnloadFilament": "Filament Çıkar"
+ },
+ "FarmPrinterPanel": {
+ "ReconnectToPrinter": "Yeniden Bağlan",
+ "SwitchToPrinter": "Yazıcıya Geç",
+ "WebcamOff": "Kapalı"
+ },
+ "KlippyStatePanel": {
+ "FirmwareRestart": "Firmware Yeniden Başlatma",
+ "KlipperCheck": "Lütfen Klipper hizmetinin çalışıp çalışmadığını ve bir UDS'nin (Unix Etki Alanı Soketi) yapılandırılıp yapılandırılmadığını kontrol edin.",
+ "KlippyState": "Klippy-Durumu",
+ "MoonrakerCannotConnect": "Moonraker Klipper'a bağlanamıyor!",
+ "Restart": "Yeniden Başlat"
+ },
+ "MachineSettingsPanel": {
+ "Headline": "Makine",
+ "MotionSettings": {
+ "Acceleration": "İvme",
+ "MaxAccelToDecel": "Yavaşlamaya Maksimum Hızlanma",
+ "SquareCornerVelocity": "Kare Köşe Hızı",
+ "Velocity": "Hız"
+ }
+ },
+ "MacrosPanel": {
+ "Headline": "Makrolar",
+ "Send": "gönder"
+ },
+ "MiniconsolePanel": {
+ "Headline": "Konsol",
+ "HideTemperatures": "Sıcaklıkları gizle",
+ "HideTimelapse": "Timelapse'i gizle",
+ "SendCode": "Kod gönder...",
+ "SetupConsole": "Konsolu Ayarla"
+ },
+ "MinSettingsPanel": {
+ "IncludeMainsailCfg": "mainsail.cfg dosyasını printer.cfg dosyanıza eklediğinizden emin olun.",
+ "IsNotDefinedInConfig": "config içinde tanımlı değil.",
+ "MissingConfiguration": "Eksik yapılandırma",
+ "MoreInformation": "daha fazla bilgi"
+ },
+ "MiscellaneousPanel": {
+ "Headline": "Çeşitli",
+ "RunoutSensor": {
+ "Detected": "algılandı",
+ "Disabled": "hizmet dışı kalmış",
+ "Empty": "Boş"
+ }
+ },
+ "PowerControlPanel": {
+ "Error": "Hata",
+ "Off": "Kapalı",
+ "On": "Açık",
+ "PowerControl": "Güç Kontrolü"
+ },
+ "StatusPanel": {
+ "CancelPrint": "Baskıyı iptal et",
+ "ClearPrintStats": "Baskı istatistiklerini temizle",
+ "Difference": "Fark",
+ "EmptyGcodes": "G Kodu yok.",
+ "EmptyJobqueue": "Şu anda iş kuyruğunda dosya yok.",
+ "Estimate": "Tahmini",
+ "ETA": "TVS",
+ "ExcludeObject": {
+ "Cancel": "iptal",
+ "Excluded": "Hariç Tutulmuş",
+ "ExcludeObject": "Nesneyi Hariç Tut",
+ "ExcludeObjectHeadline": "Nesneyi Hariç Tut",
+ "ExcludeObjectText": "\"{name}\" öğesini gerçekten hariç tutmak istiyor musunuz?"
+ },
+ "Filament": "Filament",
+ "File": "Dosya",
+ "Files": "Dosyalar",
+ "Flow": "Akış",
+ "Headline": "Durum",
+ "Jobqueue": "İş Kuyruğu ({count})",
+ "JobqueueMoreFiles": "artık iş yok | bir iş daha | {count} iş daha",
+ "Layer": "Katman",
+ "Max": "max",
+ "ObjectHeight": "Nesne Yüksekliği",
+ "PausePrint": "Baskıyı duraklat",
+ "Print": "Yazdır",
+ "PrintTime": "Baskı Süresi",
+ "ReprintJob": "İşi yeniden yazdır",
+ "Requested": "Talep edilen",
+ "ResumePrint": "Baskıyı devam ettir",
+ "Slicer": "Dilimleyici",
+ "Speed": "Hız",
+ "Status": "Durum",
+ "Total": "Toplam",
+ "Unknown": "Bilinmeyen"
+ },
+ "TemperaturePanel": {
+ "AutoscaleChart": "Tabloyu Otomatik Ölçeklendir",
+ "Avg": "Avg",
+ "Cooldown": "Soğutma",
+ "Current": "Anlık",
+ "Dataset": {
+ "Power": "PWM-gücü",
+ "Speed": "PWM-hızı",
+ "Target": "hedef sıcaklık",
+ "Temperature": "şuanki sıcaklık"
+ },
+ "Headline": "Sıcaklıklar",
+ "Max": "max",
+ "Min": "min",
+ "Name": "İsim",
+ "Presets": "Ön ayarlar",
+ "SetupTemperatures": "Sıcaklıkları Ayarla",
+ "ShowChart": "Grafiği Göster",
+ "ShowNameInChart": "{name}'yi grafikte göster",
+ "ShowNameInList": "{name}'yi listede göster",
+ "State": "Durum",
+ "Target": "Hedef",
+ "TemperaturesInChart": "Sıcaklık [°C]",
+ "TempTooHigh": "{name} için sıcaklık çok yüksek! (max: {max})",
+ "TempTooLow": "{name} için sıcaklık çok düşük! (max: {max})"
+ },
+ "ToolheadControlPanel": {
+ "Absolute": "mutlak",
+ "ALL": "HEPSİ",
+ "Headline": "Araç Başlığı",
+ "Invalid": "Geçersiz",
+ "OutOfRange": "Menzil dışında!",
+ "PleaseConfigureSteps": "Lütfen adımları yapılandırın",
+ "Position": "Pozisyon",
+ "QGL": "QGL",
+ "Relative": "göreceli",
+ "SettingsInterfaceControl": "Ayarlar > Arayüz > Kontrol",
+ "SpeedFactor": "Hız faktörü",
+ "ZTilt": "Z-Eğim"
+ },
+ "WebcamPanel": {
+ "All": "Hepsi",
+ "FPS": "FPS",
+ "Headline": "Web Kamerası",
+ "NoWebcam": "Web kamerası yok. \"Arayüz Ayarları\" -> \"Web Kameraları\" altında bir web kamerası ekleyin.",
+ "UnknownWebcamService": "Bilinmeyen Web Kamerası Hizmeti"
+ },
+ "ZoffsetPanel": {
+ "Clear": "Temizle",
+ "Headline": "Z-Ofset",
+ "Later": "Sonra",
+ "Ok": "OK",
+ "Save": "Kaydet",
+ "SaveConfig": "YAPILANDIRMAYI KAYDET",
+ "SaveInfoDescription": "Yeni Z-Ofseti hesaplandı ve kaydedildi. Printer.cfg'ye kaydetmek için \"YAPILANDIRMAYI KAYDET\"'in üzerine tıklayın ve Klipper'ı yeniden başlatın.",
+ "SaveInfoDescriptionPrint": "Yeni Z-Ofseti hesaplandı ve kaydedildi. Yazdırdıktan sonra, yazıcı.cfg'ye kaydetmek için üst çubuktaki \"YAPILANDIRMAYI KAYDET\"'in üzerine tıklayın ve Klipper'ı yeniden başlatın.",
+ "SaveInfoHeadline": "Bilgi",
+ "ToEndstop": "Endstop'a",
+ "ToProbe": "Prob'a"
+ }
+ },
+ "PowerDeviceChangeDialog": {
+ "AreYouSure": "Emin misiniz?",
+ "No": "Hayır",
+ "TurnDeviceOff": "{device}'ı kapat",
+ "TurnDeviceOn": "{device}'ı aç",
+ "Yes": "Evet"
+ },
+ "Router": {
+ "Console": "Konsol",
+ "Dashboard": "Gösterge Paneli",
+ "G-Code Files": "G-Kod Dosyaları",
+ "G-Code Viewer": "G-Kod Görüntüleyici",
+ "Heightmap": "Yükseklik Haritası",
+ "History": "Geçmiş",
+ "Machine": "Makine",
+ "Printers": "Yazıcılar",
+ "Timelapse": "Timelapse",
+ "Webcam": "Web Kamerası"
+ },
+ "SelectPrinterDialog": {
+ "AddPrinter": "Yazıcı Ekle",
+ "AddPrintersToJson": "Lütfen Yazıcıları config.json'a ekleyin.",
+ "CannotConnectTo": "{host}'a bağlanılamıyor.",
+ "ChangePrinter": "Yazıcıyı Değiştir",
+ "Connecting": "{host}'a bağlanılıyor",
+ "ConnectionFailed": "Bağlantı başarısız",
+ "EditPrinter": "Yazıcıyı Düzenle",
+ "Hello": "Merhaba, Mainsail'in uzak moduna hoş geldiniz!",
+ "HostnameInvalid": "geçersiz Ana Bilgisayar Adı/IP",
+ "HostnameIp": "Ana Bilgisayar Adı/IP",
+ "HostnameRequired": "Ana bilgisayar adı gerekli",
+ "Port": "Port",
+ "PortRequired": "Port gerekli",
+ "RememberToAdd": "Lütfen moonraker.conf'da 'cors_domains' içine '{cors}' eklemeyi unutmayın.",
+ "SelectPrinter": "Yazıcı Seç",
+ "TryAgain": "tekrar deneyin",
+ "UpdatePrinter": "Yazıcıyı Güncelle",
+ "YouCanFindMore": "Daha fazla ayrıntıyı şurada bulabilirsiniz."
+ },
+ "Settings": {
+ "Cancel": "İptal Et",
+ "Close": "Kapat",
+ "ConsoleTab": {
+ "AddFilter": "filtre ekle",
+ "Console": "Konsol",
+ "CreateHeadline": "Filtre oluştur",
+ "Direction": "Yön",
+ "DirectionShell": "En alttaki son giriş",
+ "DirectionTable": "En üstteki son giriş",
+ "EditHeadline": "Filtreyi düzenle",
+ "EntryStyle": "Giriş-Tasarım",
+ "EntryStyleCompact": "kompakt",
+ "EntryStyleDefault": "varsayılan",
+ "Filters": "Filtreler",
+ "Height": "Yükseklik",
+ "HideTemperatures": "Sıcaklıkları gizle",
+ "HideTimelapse": "Timelapse'i gizle",
+ "Name": "İsim",
+ "Regex": "Regex",
+ "StoreButton": "Filtreyi kaydet",
+ "UpdateButton": "Filtreyi güncelle"
+ },
+ "ControlTab": {
+ "Bars": "Barlar",
+ "Circle": "Daire",
+ "Control": "Kontrol",
+ "Cross": "Çapraz",
+ "EnableXYHoming": "Birleşik X ve Y eksenlerinin home'lanmasını etkinleştirin",
+ "EstimatedExtrusionInfo": "Tahmini ekstrüzyon bilgilerini göster",
+ "EstimatedExtrusionInfoDescription": "Ekstrüzyon miktarına ve ilerleme hızına göre tahmini ekstrüzyonlar için bilgileri göster / gizle",
+ "InvertXMovement": "X ekseni hareket yönünü ters çevir",
+ "InvertYMovement": "Y ekseni hareket yönünü ters çevir",
+ "InvertZMovement": "Z ekseni hareket yönünü ters çevir",
+ "IsDefault": " (varsayılan)",
+ "MaximumValues": "Maksimum değerler: {maximum}",
+ "MaximumValuesVisibility": "En iyi görünürlük için maksimum {maximum} değer önerilir",
+ "MinimumValues": "Minimum değerler: {minimum}",
+ "MotorsOff": "Motorlar kapalı{isDefault}",
+ "MoveDistancesEInMm": "Ekstrüzyon miktarı ön ayarları (mm olarak)",
+ "MoveDistancesInMm": "Hareket mesafesi artışları (mm cinsinden)",
+ "MoveDistancesXYInMm": "X ve Y eksenlerinin hareket mesafesi artışları (mm cinsinden)",
+ "MoveDistancesZInMm": "Z ekseninde hareket mesafesi artışları (mm cinsinden)",
+ "QuadGantryLevel": "Dörtlü Portal Seviyesi{isDefault}",
+ "SpeedEInMms": "Ekstrüzyon hızı ön ayarları (mm/sn)",
+ "SpeedXY": "X ve Y eksenleri hareket hızı",
+ "SpeedZ": "Z ekseni hareket hızı",
+ "Style": "Stil",
+ "ValueGreaterThan": "Değer, {value} değerinden büyük olmalıdır",
+ "ZOffsetIncrements": "Z-Ofset artışları (mm olarak)",
+ "ZTiltAdjust": "Z-Eğim Ayarı{isDefault}"
+ },
+ "DashboardTab": {
+ "Dashboard": "Gösterge Paneli",
+ "Desktop": "Masaüstü",
+ "Mobile": "Mobil",
+ "ResetLayout": "Düzeni Sıfırla",
+ "Tablet": "Tablet",
+ "Widescreen": "Geniş Ekran"
+ },
+ "Edit": "Düzenle",
+ "EditorTab": {
+ "ConfirmUnsavedChanges": "Kaydedilmemiş değişiklikleri kaydetme veya silme istemi",
+ "ConfirmUnsavedChangesDescription": "Etkinleştirilirse, düzenleyici, yapılan değişiklikleri kaydetmek veya atmak için bir onay ister. Devre dışı bırakılırsa, değişiklikler sessizce atılır.",
+ "Editor": "Editör",
+ "KlipperRestartMethod": "Klipper yeniden başlatma yöntemi",
+ "KlipperRestartMethodDescription": "Klipper yapılandırma dosyalarını düzenlerken 'Kaydet ve Yeniden Başlat'ta hangi yeniden başlatma yönteminin kullanılacağını seçin.",
+ "MoonrakerRestartInstance": "Moonraker yeniden başlatma örneği",
+ "MoonrakerRestartInstanceDescription": "Moonraker yapılandırma dosyalarını düzenlerken 'Kaydet ve Yeniden Başlat'ta hangi Moonraker hizmetinin yeniden başlatılacağını seçin.",
+ "UseEscToClose": "Düzenleyiciyi kapatmak için ESC'yi kullanın",
+ "UseEscToCloseDescription": "ESC tuşunun düzenleyiciyi kapatmasına izin verir"
+ },
+ "GCodeViewerTab": {
+ "BackgroundColor": "Arka Plan Rengi",
+ "ExtruderColor": "Ekstrüder Renkleri",
+ "GCodeViewer": "G-Kod Görüntüleyici",
+ "GridColor": "Izgara Rengi",
+ "MaxFeed": "Maksimum Besleme Hızı",
+ "MinFeed": "Minimum Besleme Hızı",
+ "ProgressColor": "İlerleme Rengi",
+ "ShowAxes": "Eksenleri Göster"
+ },
+ "GeneralTab": {
+ "Backup": "Yedek",
+ "BackupDialog": "Lütfen yedek oluşturmak istediğiniz tüm bölümleri seçin:",
+ "CalcEstimateTime": "Tahmini zaman hesaplaması",
+ "CalcEstimateTimeDescription": "Birden fazla seçilirse, bir ortalama hesaplanır",
+ "CalcEtaTime": "TVS(Tahmini Varış Süresi) hesaplaması",
+ "CalcEtaTimeDescription": "Birden fazla seçilirse, bir ortalama hesaplanır",
+ "CalcPrintProgress": "Yazdırma ilerleme hesaplaması",
+ "CalcPrintProgressDescription": "Yazdırma ilerlemesini hesaplama yöntemi.",
+ "CalcPrintProgressItems": {
+ "Filament": "Filament",
+ "FileAbsolute": "Dosya konumu (mutlak)",
+ "FileRelative": "Dosya konumu (göreceli)",
+ "Slicer": "Dilimleyici (M73)"
+ },
+ "CannotReadJson": "Yedekleme dosyası okunamıyor/ayrıştırılamıyor.",
+ "DbConsoleHistory": "Konsol Geçmişi",
+ "DbHistoryJobs": "Geçmiş İşler",
+ "DbHistoryTotals": "Geçmiş Toplamları",
+ "DbTimelapseSettings": "Timelapse Ayarları",
+ "DbView": "Görüntüleme Ayarları",
+ "DbWebcams": "Web Kameraları",
+ "EstimateValues": {
+ "Filament": "Filament",
+ "File": "Dosya",
+ "Slicer": "Dilimleyici"
+ },
+ "FactoryDialog": "Lütfen sıfırlamak istediğiniz tüm bölümleri seçin:",
+ "FactoryReset": "Fabrika ayarları",
+ "General": "Genel",
+ "Language": "Dil",
+ "MoonrakerDb": "Moonraker DB",
+ "PrinterName": "Yazıcı İsmi",
+ "Reset": "sıfırla",
+ "Restore": "Eski haline getir",
+ "RestoreDialog": "Lütfen geri yüklemek istediğiniz tüm bölümleri seçin:"
+ },
+ "InterfaceSettings": "Arayüz Ayarları",
+ "MacrosTab": {
+ "Add": "ekle",
+ "AddGroup": "Grup ekle",
+ "AvailableMacros": "Kullanılabilir Makrolar",
+ "ChangeMacroColor": "Düğmenin rengini değiştirin.",
+ "Color": "Renk",
+ "CountMacros": "makro eklenmedi | {count} Makro | {count} Makro",
+ "Custom": "özel",
+ "CustomColor": "Özel Renk",
+ "DeletedMacro": "Silinen makro",
+ "DeleteMacroFromGroup": "Gruptan makroyu silin.",
+ "EditGroup": "Grubu Düzenle",
+ "Error": "hata",
+ "Expert": "Uzman",
+ "General": "Genel",
+ "Group": "Grup",
+ "GroupMacros": "Makroları Grupla",
+ "Macrogroups": "Gruplar",
+ "Macros": "Makrolar",
+ "Management": "Yönetim",
+ "Name": "İsim",
+ "NoAvailableMacros": "Kullanılabilir makro yok.",
+ "NoGroups": "Grup bulunamadı...",
+ "NOMacros": "Makro bulunamadı...",
+ "NoMacrosInGroup": "Bu grupta makro yok.",
+ "Primary": "birincil",
+ "Secondary": "ikincil",
+ "ShowInStatePaused": "Yazıcı duraklatıldıysa göster/gizle.",
+ "ShowInStatePrinting": "Yazıcı yazdırıyorsa göster/gizle.",
+ "ShowInStateStandby": "Yazıcı beklemedeyse göster/gizle.",
+ "Simple": "Basit",
+ "Status": "Durum",
+ "Success": "başarı",
+ "UnknownGroup": "Bilinmeyen Grup",
+ "Warning": "uyarı"
+ },
+ "PresetsTab": {
+ "AddPreset": "ön ayar ekle",
+ "Cooldown": "Soğutma",
+ "CreateHeadline": "Ön Ayar Oluştur",
+ "CustomGCode": "Özel G-Kod",
+ "EditCooldown": "Soğutmayı Düzenle",
+ "EditHeadline": "Ön Ayarı Düzenle",
+ "ErrorInvalidValue": "Geçersiz değer",
+ "ErrorNameNotUnique": "Bu isim zaten mevcut",
+ "ErrorNameRequired": "İsim gerekli",
+ "Name": "İsim",
+ "PreheatPresets": "Ön Ayarlar",
+ "PresetInfo": "Lütfen en azından bir hedef sıcaklık veya özel bir G-Kod ayarlayın.",
+ "PresetNamePlaceholder": "Ön ayar adı (gerekli)",
+ "StoreButton": "Ön ayarı depola",
+ "UpdateButton": "Ön ayarı güncelle",
+ "UpdateCooldown": "Soğutmayı Güncelle"
+ },
+ "RemotePrintersTab": {
+ "AddPrinter": "Yazıcı Ekle",
+ "EditPrinter": "Yazıcıyı Düzenle",
+ "Hostname": "Ana Bilgisayar Adı",
+ "Port": "Port",
+ "RemotePrinters": "Yazıcılar",
+ "UpdatePrinter": "Yazıcıyı Güncelle",
+ "UseConfigJson": "InstanceDB = JSON algılandı. Yazıcı listesini değiştirmek için lütfen config.json'u kullanın."
+ },
+ "TimelapseTab": {
+ "Autorender": "Otomatik Oluşturma",
+ "AutorenderDescription": "Etkinleştirilirse, timelapse, baskının sonunda otomatik olarak oluşturulacaktır.",
+ "Camera": "Kamera",
+ "CameraDescription": "Hangi kameranın kullanılacağını seçin",
+ "ConstantRateFactor": "Sabit Oran Faktörü",
+ "ConstantRateFactorDescription": "Bu, oluşturulan videonun kalitesini ve dosya boyutunu yapılandırır. CRF ölçeğinin aralığı 0-51'dir, burada 0 kayıpsızdır, 23 varsayılandır ve 51 mümkün olan en kötü kalitedir. Daha düşük bir değer genellikle daha yüksek kaliteye yol açar ve öznel olarak makul bir aralık 17-28'dir. 17 veya 18'in görsel olarak kayıpsız olduğunu düşünün.",
+ "duplicatelastframe": "Son Kareyi Çoğalt",
+ "duplicatelastframeDescription": "Videonun sonundaki son kareyi çoğaltır",
+ "Enabled": "Etkinleştirildi",
+ "EnabledDescription": "Devre dışı bırakılırsa, G-Kod makroları yok sayılır ve otomatik oluşturma atlanır.",
+ "Extraoutputparams": "Ekstra Çıkış Parametreleri",
+ "ExtraoutputparamsDescription": "FFMPEG'e ekstra çıkış parametreleri tanımlar. Not: Burada herhangi bir şey belirtmek, döndürme ayarını devre dışı bırakacaktır.",
+ "FwRetract": "Bellenim Geri Çekmesi",
+ "FwRetractDescription": "Timelapse makrosunda bellenim geri çekmesini kullanın",
+ "GcodeVerbose": "Ayrıntılı G-Kod",
+ "GcodeVerboseDescription": "Etkinleştirilirse, G-Kod makroları konsola bilgi yazar",
+ "General": "Genel",
+ "HyperlapseCycle": "Hiperlapse Döngü Süresi",
+ "HyperlapseCycleDescription": "Herhangi bir X saniyede bir anlık görüntü alınacaktır",
+ "Mode": "Mod",
+ "ModeDescription": "Katman makrosu ve Hyperlapse (zamana dayalı) modu arasında seçim yapın",
+ "OutputFramerate": "Çıkış Kare Hızı",
+ "OutputFramerateDescription": "Videonun kare hızını tanımlar. Not: değişken_fps etkinleştirilmişse bu yok sayılır",
+ "Parkhead": "Takım Kafasını Park Et",
+ "ParkheadDescription": "Etkinleştirilirse, bir çerçeve çekmeden önce araç başlığı park edilir.",
+ "Parkpos": "Park konumu",
+ "ParkposDescription": "Park konumunu seçin",
+ "ParkTime": "Park Zamanı",
+ "ParkTimeDescription": "Park ederken ek boşta kalma süresi ekleyin.",
+ "Pixelformat": "Piksel biçimi",
+ "PixelformatDescription": "Çıkış videosunun piksel biçimini tanımlar",
+ "PosDZ": "Z konumu",
+ "PosDZDescription": "Park konumu Z (bağıl)",
+ "PosX": "X konumu",
+ "PosXDescription": "Park konumu X (mutlak)",
+ "PosY": "Y konumu",
+ "PosYDescription": "Park konumu Y (mutlak)",
+ "PreviewImage": "Resmi Önizle",
+ "PreviewImageDescription": "Videoyla aynı ada sahip bir önizleme resmi kaydedin",
+ "RenderingOptions": "İşleme Seçenekleri",
+ "RetractDistance": "Geri Çekme Mesafesi",
+ "RetractDistanceDescription": "Ekstrüderin geri çektiği filamentin uzunluğu.",
+ "RetractSpeed": "Geri Çekme Hızı",
+ "RetractSpeedDescription": "Ekstrüderin filamenti geri çekme hızı.",
+ "SaveFrames": "Çerçeveleri Kaydet",
+ "SaveFramesDescription": "Çerçeveleri harici işleme için bir zip dosyasına kaydedin",
+ "StreamDelayCompensation": "Akış Gecikmesi Telafisi",
+ "StreamDelayCompensationDescription": "Gecikmeli kare yakalama",
+ "Targetlength": "Hedef Uzunluk",
+ "TargetlengthDescription": "Değişken FPS etkinleştirildiğinde hedef uzunluk",
+ "TimeFormatCode": "Zaman Formatı Kodu",
+ "TimeFormatCodeDescription": "Bu, çıktı dosyasındaki zaman damgasının nasıl kodlanması gerektiğini tanımlar.",
+ "Timelapse": "Timelapse",
+ "TravelSpeed": "Seyahat Hızı",
+ "TravelSpeedDescription": "Park konumuna hareket ederken ve devam ederken seyahat hızı",
+ "UnretractDistance": "Geri Verme Mesafesi",
+ "UnretractDistanceDescription": "Bir geri çekme işleminden sonra ekstrüderin geri verdiği filamentin uzunluğu.",
+ "UnretractSpeed": "Geri Verme Hızı",
+ "UnretractSpeedDescription": "Bir geri çekme işleminden sonra ekstrüderin filamenti geri verme hızı.",
+ "VariableFps": "Değişken FPS",
+ "VariableFpsDescription": "Etkinleştirilirse, çıkış videosunun kare hızı hedef uzunluğa göre hesaplanacaktır.",
+ "VariableFpsMax": "Maksimum Değişken FPS",
+ "VariableFpsMaxDescription": "",
+ "VariableFpsMin": "Minimum Değişken FPS",
+ "VariableFpsMinDescription": ""
+ },
+ "UiSettingsTab": {
+ "BoolBigThumbnail": "Büyük ön izleme görseli",
+ "BoolBigThumbnailDescription": "Yazdırma sırasında durum panelinde büyük bir ön izleme görseli görüntüleyin.",
+ "BoolHideUploadAndPrintButton": "Yükle ve Yazdır Düğmesini Gizle",
+ "BoolHideUploadAndPrintButtonDescription": "Üst çubukta \"Yükle ve Yazdır\" düğmesini gösterin veya gizleyin.",
+ "ConfirmOnEmergencyStop": "Acil Durdurmada onay iste",
+ "ConfirmOnEmergencyStopDescription": "Acil Durdurma'da bir onay iletişim kutusu göster",
+ "ConfirmOnPowerDeviceChange": "Cihaz Gücü değişikliklerinde onay gerektir",
+ "ConfirmOnPowerDeviceChangeDescription": "Cihaz Gücü değişikliklerinde bir onay iletişim kutusu göster",
+ "DisplayCANCEL_PRINT": "CANCEL_PRINT'i görüntüle",
+ "DisplayCANCEL_PRINTDescription": "CANCEL_PRINT düğmesini kalıcı olarak gösterir - ikinci katman onayı gerekmez.",
+ "GcodeThumbnails": "G-Kod ön izleme görselleri",
+ "GcodeThumbnailsDescription": "Talimatlara ulaşmak için düğmeye tıklayın.",
+ "Guide": "Rehber",
+ "LockSliders": "Dokunmatik ekranlı cihazlarda kaydırıcıları kilitleyin",
+ "LockSlidersDelay": "Kaydırıcı kilit gecikmesi",
+ "LockSlidersDelayDescription": "Kaydırıcılar belirli bir gecikmeden sonra kilitlenir. 0 olarak ayarlanırsa veya boş bırakılırsa, kaydırıcılar yalnızca sayfa değiştirme/yeniden yükleme sırasında kilitlenir.",
+ "LockSlidersDescription": "Değişikliklere izin verilmeden önce dokunmatik ekranlardaki kaydırıcıların kilidinin açılması gerekir.",
+ "Logo": "Logo",
+ "NavigationStyle": "Navigasyon stili",
+ "NavigationStyleDescription": "Navigasyon görünümünü değiştir",
+ "NavigationStyleIconsAndText": "Simgeler + Metin",
+ "NavigationStyleIconsOnly": "Yalnızca Simgeler",
+ "Primary": "Birincil",
+ "ShowWebcamInNavigation": "Web kamerasını navigasyonda göster",
+ "UiSettings": "Arayüz-Ayarları"
+ },
+ "WebcamsTab": {
+ "AddWebcam": "web kamerası ekle",
+ "CreateWebcam": "Web Kamerası Oluştur",
+ "EditCrowsnestConf": "crowsnest.conf'u düzenle",
+ "EditWebcam": "Web Kamerası Düzenle",
+ "FlipHorizontally": "Web kamerasını yatay olarak çevirin",
+ "FlipVertically": "Web kamerasını dikey olarak çevirin",
+ "IconBed": "Yatak",
+ "IconCam": "Kamera",
+ "IconDoor": "Kapı",
+ "IconFilament": "Filament",
+ "IconHot": "Sıcak",
+ "IconMcu": "MCU",
+ "IconNozzle": "Nozül",
+ "IconPrinter": "Yazıcı",
+ "Ipstream": "IP Kamera",
+ "Mjpegstreamer": "MJPEG-Streamer",
+ "MjpegstreamerAdaptive": "Uyarlanabilir MJPEG-Streamer (deneysel)",
+ "Name": "İsim",
+ "NameAlreadyExists": "İsim zaten mevcut",
+ "Required": "gerekli",
+ "Rotate": "Döndür",
+ "SaveWebcam": "Web Kamerasını Kaydet",
+ "Service": "Servis",
+ "TargetFPS": "Hedef FPS",
+ "UpdateWebcam": "Web Kamerasını Güncelle",
+ "UrlSnapshot": "URL Anlık Görüntüsü",
+ "UrlStream": "URL Akışı",
+ "Uv4lMjpeg": "UV4L-MJPEG",
+ "Webcams": "Web kameraları"
+ }
+ },
+ "Timelapse": {
+ "AllFiles": "Hepsi",
+ "Autorender": "Otomatik oluşturma",
+ "Cancel": "İptal",
+ "Create": "Oluştur",
+ "CreateNewDirectory": "dizin oluştur",
+ "CurrentPath": "Şuanki yol",
+ "Delete": "Sil",
+ "DeleteDirectory": "Dizini Sil",
+ "DeleteDirectoryQuestion": "\"{name}\" dizinini tüm içeriğiyle birlikte gerçekten silmek istiyor musunuz?",
+ "DeleteSelectedQuestion": "Seçilen {count} dosyayı gerçekten silmek istiyor musunuz?",
+ "Download": "İndir",
+ "DuplicateLastframe": "Son kareyi çoğalt",
+ "Empty": "Bitmiş timelapse bulunamadı.",
+ "Enabled": "Etkinleştirildi",
+ "EstimatedLength": "Tahmini uzunluk",
+ "Files": "Dosyalar",
+ "Filesize": "Dosyaboyutu",
+ "Fixed": "sabit",
+ "Framerate": "Kare hızı",
+ "Frames": "Kareler",
+ "Free": "Boş",
+ "FreeDisk": "Boş disk",
+ "LastModified": "Son düzenleme",
+ "MaxFramerate": "Maks. kare hızı",
+ "MinFramerate": "Min. kare hızı",
+ "Name": "İsim",
+ "NewDirectory": "Yeni Dizin",
+ "NoActiveTimelapse": "Kayıt yok.",
+ "Preview": "Ön İzleme",
+ "RefreshCurrentDirectory": "dizini yenile",
+ "Rename": "Yeniden Adlandır",
+ "RenameDirectory": "Dizini Yeniden Adlandır",
+ "RenameFile": "Dosyayı Yeniden Adlandır",
+ "Render": "render",
+ "RenderSettings": "Render Ayarları",
+ "SaveFrames": "Kareleri kaydet",
+ "Search": "ara",
+ "StartRender": "render'a başla",
+ "Status": "Durum",
+ "TargetFps": "Hedef FPS",
+ "Targetlength": "Hedef uzunluk",
+ "TimelapseFiles": "Timelapse Dosyaları",
+ "TimelapseRendering": "Timelapse render'lama",
+ "TimelapseRenderingSuccessful": "Timelapse render'lama başarılı",
+ "Total": "Toplam",
+ "Type": "Tür",
+ "Used": "Kullanılmış",
+ "Variable": "Değişken",
+ "Video": "Video"
+ },
+ "title": "Türkçe"
+}
diff --git a/src/locales/uk.json b/src/locales/uk.json
new file mode 100644
index 000000000..786cfe723
--- /dev/null
+++ b/src/locales/uk.json
@@ -0,0 +1,1036 @@
+{
+ "App": {
+ "Notifications": {
+ "DependencyDescription": "Поточна версія {name} не підтримує всі функції Mainsail. Оновіть {Ім'я} принаймні до {needversion}.",
+ "DependencyName": "Залежність: {Ім'я}",
+ "DismissAll": "Відкинути всі",
+ "KlipperWarnings": {
+ "DeprecatedOption": "Опція '{option}' у розділі '{section}' застаріла і буде видалена у майбутньому випуску.",
+ "DeprecatedOptionHeadline": "ОЗастаріла опція кліппера",
+ "DeprecatedValue": "Значення '{value}' опції '{option}' у секції '{section}' застаріла і буде видалена у майбутньому випуску.",
+ "DeprecatedValueHeadline": "Застаріле значення Klipper",
+ "KlipperWarning": "Попередження Klipper"
+ },
+ "MoonrakerWarnings": {
+ "MoonrakerComponent": "Moonraker: {component}",
+ "MoonrakerFailedComponentDescription": "Помилка була виявлена під час завантаження компонента Moonraker '{component}'. Будь ласка, перевірте файл журналу та виправте проблему.",
+ "MoonrakerWarning": "Попередження Moonraker",
+ "UnparsedConfigOption": "Непарний параметр конфігурації '{option}: {value}' виявлено в розділі [{section}]. Це може бути варіантом, який більше не доступний, або може бути результатом модуля, який не зміг завантажитися.",
+ "UnparsedConfigSection": "Непарний розділ конфігурації [{section}] виявлений. Це може бути результатом компонента, який не вдалося завантажити.."
+ },
+ "Never": "ніколи",
+ "NextReboot": "наступне перезавантаження",
+ "NoNotification": "Повідомлення немає",
+ "Notifications": "Повідомлення",
+ "Remind": "Нагадування:"
+ },
+ "NumberInput": {
+ "GreaterOrEqualError": "Повинен бути більшим або рівним, ніж {min}!",
+ "MustBeBetweenError": "Має бути між {min} та {max}!",
+ "NoEmptyAllowedError": "Поле не повинно бути порожнім!"
+ },
+ "Printers": "Принтери",
+ "ThrottledStates": {
+ "DescriptionCurrentlyThrottled": "Ядро (и) RPI ARM в даний час зменьшуються.",
+ "DescriptionFrequencyCapped": "Частота Max ARM RPI наразі обмежена 1,2 ГГц.",
+ "DescriptionPreviouslyFrequencyCapped": "Частота Max ARM RPI принаймні раз була обмежена 1,2 ГГц з останнього ввімкнення.",
+ "DescriptionPreviouslyTemperatureLimited": "Температура RPI UC (3a+/3b+) була принаймні раз вище за легке обмеження (за замовчуванням 60°) з останнього ввімкнення.",
+ "DescriptionPreviouslyThrottled": "RPI Arm Core (и), де тротлило принаймні один раз після останнього ввімкнення.",
+ "DescriptionPreviouslyUnderVolted": "Напруга живлення RPI опустилася нижче 4,65 В принаймні один раз з моменту останнього ввімкнення.",
+ "DescriptionTemperatureLimitActive": "Температура RPI UC (3A+/3b+) Наразі перевищує легке обмеження (за замовчуванням 60°).",
+ "DescriptionUnderVoltageDetected": "Напруга живлення RPI наразі нижче 4,65 В",
+ "TitleCurrentlyThrottled": "Тротлінг по живленню",
+ "TitleFrequencyCapped": "Частота обмежена",
+ "TitlePreviouslyFrequencyCapped": "Попередньо обмежена частота",
+ "TitlePreviouslyTemperatureLimited": "Раніше обмежена температура",
+ "TitlePreviouslyThrottled": "Попередній тротлінг",
+ "TitlePreviouslyUnderVolted": "Раніше недостатній вольтаж",
+ "TitleTemperatureLimitActive": "Обмеження температури",
+ "TitleUnderVoltageDetected": "Виявлено недостатню напругу"
+ },
+ "Titles": {
+ "Complete": "Завершено - {filename}",
+ "Error": "Помилка",
+ "Pause": "Призупинення друку",
+ "Printing": "{percent}% Друк - {filename}",
+ "PrintingETA": "{percent}% Друк - Очікуваний час: {eta} - {filename}"
+ },
+ "TopBar": {
+ "CannotUploadTheFile": "Не вдається завантажити файл!",
+ "EmergencyStop": "АВАРІЙНА ЗУПИНКА",
+ "SAVE_CONFIG": "ЗБЕРЕЖЕННЯ КОНФІГУРАЦІЇ",
+ "Uploading": "Завантаження",
+ "UploadOfFileSuccessful": "Завантаження {file} успішно!",
+ "UploadPrint": "Завантажити та Друкувати"
+ },
+ "TopCornerMenu": {
+ "Cancel": "Скасувати",
+ "ConfirmationDialog": {
+ "Description": {
+ "HostReboot": "Перезавантаження хоста призведе до зупинки поточного друку!",
+ "HostShutdown": "Вимкнення хоста призведе до зупинки поточного друку!",
+ "KlipperFirmwareRestart": "Перезапуск прошивки Klipper призведе до зупинки поточного друку!",
+ "KlipperRestart": "Перезапуск Klipper призведе до зупинки поточного друку!",
+ "KlipperStop": "Зупинення Кліппера призведе до зупинки поточного друку! ",
+ "ServiceRestart": "Перезапуск цього сервісу може призвести до виходу з ладу поточного друку!",
+ "ServiceStart": "Запуск цього сервіса може призвести до виходу з ладу поточного друку!",
+ "ServiceStop": "Зупинення цього сервіса може призвести до виходу з ладу поточного друку!"
+ },
+ "Title": {
+ "HostReboot": "Перезавантаження хоста",
+ "HostShutdown": "Вимкнення хоста",
+ "KlipperFirmwareRestart": "Перезапуск прошивки Klipper",
+ "KlipperRestart": "Klipper перезапуск",
+ "ServiceRestart": "Перезапуск Сервісу",
+ "ServiceStart": "Запуск Сервісу",
+ "ServiceStop": "Зупинка Сервісу"
+ }
+ },
+ "HostControl": "Керування хостом",
+ "KlipperControl": "Klipper КОНТРОЛЬ",
+ "KlipperFirmwareRestart": "Перезапуск прошивки",
+ "KlipperRestart": "Перезавантажити",
+ "PowerDevices": "Живлення Пристрою",
+ "Reboot": "Перезавантажити",
+ "Restart": "Перезапустити",
+ "ServiceControl": "Контроль сервісів",
+ "Shutdown": "Вимкнути",
+ "Start": "Старт",
+ "Stop": "Стоп"
+ },
+ "UpdateDialog": {
+ "Close": "Закрити",
+ "Empty": "Порожній",
+ "Recovering": "Відновлення {software}...",
+ "RecoveringDone": "Відновлення {software} виконано!",
+ "Updating": "Оновлення {software}...",
+ "UpdatingDone": "Оновлення {software} виконано!"
+ }
+ },
+ "ConnectionDialog": {
+ "CannotConnectTo": "Не вдається підключитися до Moonraker ({host}).",
+ "CheckMoonrakerLog": "Якщо це повідомлення з’являється неодноразово, будь ласка, подивіться у файл журналу, розташований за адресою:",
+ "Connecting": "Підключення до {host}",
+ "Failed": "Підключення не вдалося",
+ "Initializing": "Ініціалізація",
+ "TryAgain": "спробуйте ще раз"
+ },
+ "Console": {
+ "CommandList": "Список команд",
+ "Empty": "Порожньо",
+ "HideTemperatures": "Сховати температуру",
+ "HideTimelapse": "Сховати Таймлапс",
+ "SendCode": "Надіслати код...",
+ "SetupConsole": "Консоль налаштування"
+ },
+ "Dialogs": {
+ "StartPrint": {
+ "Cancel": "Скасувати",
+ "DoYouWantToStartFilename": "Ви хочете роздрукувати {filename}?",
+ "Headline": "Почати друк",
+ "Print": "друк",
+ "Timelapse": "Таймлапс"
+ }
+ },
+ "Editor": {
+ "ConfigReference": "Довідка Конфігурації",
+ "DontSave": "Не зберігати",
+ "Downloading": "Завантаження",
+ "FailedSave": "{filename} не вдалося завантажити!",
+ "FileReadOnly": "лише для читання",
+ "SaveClose": "Зберегти та закрити",
+ "SaveRestart": "Зберегти та перезапустити",
+ "SuccessfullySaved": "{filename} успішно збережено.",
+ "UnsavedChanges": "Зміни не збережено",
+ "UnsavedChangesMessage": "Ви хочете зберегти свої зміни, внесені до {filename}?",
+ "UnsavedChangesSubMessage": "Ваші зміни будуть втрачені, якщо ви не збережете їх. Ви можете відключити це повідомлення в налаштуваннях редактора.",
+ "Uploading": "Завантаження"
+ },
+ "EmergencyStopDialog": {
+ "AreYouSure": "Ви впевнені?",
+ "EmergencyStop": "АВАРІЙНА ЗУПИНКА",
+ "No": "НІТ",
+ "Yes": "ТАК"
+ },
+ "Files": {
+ "AddToQueue": "Додати в чергу",
+ "AllFiles": "ВСІ",
+ "BedTemp": "Температура столу.",
+ "Cancel": "Скасувати",
+ "ChamberTemp": "t Камери.",
+ "Create": "Створити",
+ "CreateNewDirectory": "Створити нову теку",
+ "CurrentPath": "Поточний шлях",
+ "Delete": "Видалити",
+ "DeleteDirectory": "Видалити теку",
+ "DeleteDirectoryQuestion": "Ви дійсно хочете видалити \"{name}\" теку із усім її вмістом?",
+ "DeleteSelectedQuestion": "Ви дійсно хочете видалити {count} обрані файли?",
+ "Download": "Завантажити",
+ "EditFile": "Редагувати Файл",
+ "Empty": "Порожньо",
+ "ExtruderTemp": "Екструдер Темп.",
+ "Filament": "Пруток",
+ "FilamentName": "Назва Прутка",
+ "FilamentType": "Тип Прутка",
+ "FilamentUsage": "Використано Прутка",
+ "FilamentWeight": "Довжина Прутка",
+ "Files": "Файл",
+ "Filesize": "Розмір файлу",
+ "Free": "Вільно",
+ "FreeDisk": "вільний диск",
+ "GCodeFiles": "Файли G-Code",
+ "GcodesRootDirectoryDoesntExists": "Жодного каталогу G-коду не знайдено. Будь ласка, перевірте опцію \"path\" in the [virtual_sdcard] розділі конфігурації Klipper.",
+ "HiddenFiles": "Приховані файли",
+ "LastEndTime": "Час До Кінця",
+ "LastFilamentUsed": "Останнфй використаний пруток",
+ "LastModified": "Остання модифікація",
+ "LastPrintDuration": "Остання Тривалість Друку",
+ "LastStartTime": "Останній Час Початку",
+ "LastTotalDuration": "Остання Загальна Тривалість",
+ "LayerHeight": "Висота шару",
+ "Name": "Ім'я",
+ "NewDirectory": "Нова Дерикторія",
+ "NozzleDiameter": "Діаметр Сопла",
+ "ObjectHeight": "Висота Об'єкта",
+ "Preheat": "Розігріти",
+ "PrintedFiles": "Надруковані Файли",
+ "PrintStart": "Почати Друк",
+ "PrintTime": "Час Друку",
+ "RefreshCurrentDirectory": "Оновити поточну дирикторію",
+ "Rename": "Перейменувати",
+ "RenameDirectory": "Перейменувати директорыю",
+ "RenameFile": "Перейменувати Файл",
+ "Search": "Пошук",
+ "SetupCurrentList": "Поточний список налаштування",
+ "Slicer": "Слайсер",
+ "SuccessfullyCreated": "Успішно створений {filename}.",
+ "SuccessfullyDeleted": "Успішно видалено {filename}.",
+ "SuccessfullyMoved": "Успішно переміщений {filename}.",
+ "SuccessfullyRenamed": "Успішно перейменований {filename}.",
+ "SuccessfullyUploaded": "Завантаження {filename} успішне!",
+ "Total": "Загально",
+ "UploadNewGcode": "Завантажте новий G-код",
+ "Used": "Використано",
+ "View3D": "Переглянути 3D"
+ },
+ "FullscreenUpload": {
+ "CannotUploadFile": "Не вдається завантажити файл!",
+ "DropFilesToUploadFiles": "Скинути завантаження файлу"
+ },
+ "GCodeViewer": {
+ "ClearLoadedFile": "Очистити",
+ "ColorMode": "Кольоровий Режим",
+ "Downloading": "Завантаження",
+ "ForceLineRendering": "Примусова лінійна Візуалізація",
+ "HDRendering": "HD-Візуалізація (круглої екструзії)",
+ "High": "Висота",
+ "LoadCurrentFile": "Поточний файл",
+ "LoadLocal": "Локальний файл",
+ "Low": "Низько",
+ "Max": "Максимум",
+ "Medium": "Середній",
+ "ReloadRequired": "Потрібно перезавантаження",
+ "Rendering": "Візуалізація",
+ "RenderQuality": "Якість Візуалізації",
+ "ShowObjectSelection": "Показати Вибір Об'єктів",
+ "ShowToolhead": "Показати Інструмент",
+ "ShowTravelMoves": "Показати Вільні Переміщення",
+ "SpecularLighting": "Спекулярне Освітлення",
+ "Title": "Перегляд G-коду",
+ "Tracking": "Відстеження",
+ "Transparency": "Прозорість",
+ "Ultra": "Ультра",
+ "VoxelMode": "Режим Вокселя (ASMBL)"
+ },
+ "Heightmap": {
+ "Abort": "Перервати",
+ "BedMeshCalibrate": "Калібрування Сітки Столу",
+ "BedMeshRemove": "Видалити Сітку Столу",
+ "Calibrate": "калібрувати",
+ "Clear": "очистити",
+ "CurrentMesh": {
+ "Headline": "Поточна Сітка",
+ "Max": "Max",
+ "Min": "Min",
+ "Name": "Ім'я",
+ "Size": "Розмір",
+ "Variance": "Розбіжність"
+ },
+ "DeleteBedMeshProfile": "Видалити профіль сітки для столу",
+ "DoYouReallyWantToDelete": "Ви дійсно хочете видалити профіль \"{name}\"?",
+ "ErrorKlipperNotReady": "Klipper не готовий. Карту висот вимкнено.",
+ "Flat": "Плоский",
+ "Heightmap": "Карта",
+ "InvalidNameAlreadyExists": "Ім'я профілю вже існує, будь ласка, виберіть інше ім'я профілю.",
+ "InvalidNameEmpty": "Введення не повинно бути порожнім!",
+ "InvalidNameReserved": "Profile 'default' зарезервовано, будь ласка, виберіть інше ім'я профілю.",
+ "Later": "Згодом",
+ "Mesh": "Сітка",
+ "Name": "Ім'я",
+ "NoBedMeshHasBeenLoadedYet": "Жодна сітка для ліжка ще не була завантажена.",
+ "NoProfile": "Немає профілю",
+ "Ok": "OK",
+ "Probed": "Зондований",
+ "Profiles": "Профілі",
+ "Remove": "видалити",
+ "RemoveSaveDescription": "Профіль BED_MESH зареєстрований як видалений. Клацніть на SAVE_CONFIG, щоб видалити його з printer.cfg та перезапустіть Klipper.",
+ "Rename": "перейменувати",
+ "RenameBedMeshProfile": "Перейменуйте профіль сітки для столу",
+ "SAVE_CONFIG": "SAVE_CONFIG",
+ "ScaleGradient": "Градієнт Масштабу",
+ "ScaleZMax": "Масштаб Z-Max.",
+ "TitleCalibrate": "Калібрування нової сітки столу",
+ "TitleClear": "Очистити сітку калібровки",
+ "TitleHomeAll": "Всі до Дому",
+ "Wireframe": "Каркас"
+ },
+ "History": {
+ "AddNote": "Додати коментар",
+ "AllJobs": "ВСІ",
+ "AvgPrinttime": "Час Друку - Ø",
+ "Cancel": "Скасувати",
+ "ChamberTemp": "Темп. Камери",
+ "CreateNote": "Створити Примітку",
+ "Delete": "Видалити",
+ "DeleteSelectedQuestion": "Ви дійсно хочете видалити {count} вибрану роботу?",
+ "Details": "Деталі",
+ "EditNote": "Редагувати Примітку",
+ "Empty": "порожньо",
+ "EndTime": "Час Закінчення",
+ "EstimatedFilament": "Орієнтовна довжина прутка",
+ "EstimatedFilamentWeight": "Орієнтовна вага прутка",
+ "EstimatedTime": "Орієнтовний Час",
+ "FilamentCalc": "Калькулятор Прутка",
+ "FilamentUsage": "Використаня Прутка",
+ "FilamentUsed": "Використано Прутка",
+ "Filename": "Ім'я Файлу",
+ "Filesize": "Розмір Файлу",
+ "FirstLayerBedTemp": "Темп. столу першого шару.",
+ "FirstLayerExtTemp": "Темп. сопла першого шару",
+ "FirstLayerHeight": "Висота першого шару",
+ "HistoryFilamentUsage": "Пруток",
+ "HistoryPrinttimeAVG": "Друк",
+ "JobDetails": "Деталі Роботи",
+ "Jobs": "Робота",
+ "LastModified": "Останній Модифікований",
+ "LayerHeight": "Висота Шару",
+ "LongestPrinttime": "Найдовший Час Друку",
+ "Note": "Примітка",
+ "ObjectHeight": "Висота Об'єкта",
+ "PrintDuration": "Час Друку",
+ "PrintHistory": "Істоорія Роздруківок",
+ "PrintTime": "Час Друку",
+ "PrinttimeAvg": "Час Друку - Ø",
+ "Reprint": "Передрукувати",
+ "Save": "зберігти",
+ "Search": "пошук",
+ "SelectedFilamentUsed": "Вибран використовуваний пруток",
+ "SelectedJobs": "Вибрані Роботи",
+ "SelectedPrinttime": "Вибраний Час Друку",
+ "Slicer": "Слайсер",
+ "SlicerVersion": "Версія Слайсера",
+ "StartTime": "Час Старту",
+ "Statistics": "Статистика",
+ "Status": "Статус",
+ "StatusValues": {
+ "cancelled": "Скасовані",
+ "completed": "Закінчені",
+ "error": "Помилкові",
+ "in_progress": "Триває",
+ "klippy_disconnect": "Klippy відключився",
+ "klippy_shutdown": "Klippy вимкнувся",
+ "Others": "Інші",
+ "server_exit": "Вихід сервера"
+ },
+ "TitleExportHistory": "Історія Експорту",
+ "TitleRefreshHistory": "Оновити Історію",
+ "TitleSettings": "Налаштування",
+ "TotalDuration": "Загальний Час",
+ "TotalFilamentUsed": "Використано Прутка",
+ "TotalJobs": "Всі Роботи",
+ "TotalPrinttime": "Загальний Час Друку",
+ "TotalTime": "Загальний Час"
+ },
+ "JobQueue": {
+ "AllJobs": "Всі Роботи",
+ "Empty": "Порожньо",
+ "JobQueue": "Черга Робіт",
+ "Jobs": "Роботи",
+ "Pause": "Пауза",
+ "RemoveFromQueue": "Видаліть з Черги",
+ "Start": "Почати"
+ },
+ "Machine": {
+ "ConfigFilesPanel": {
+ "AllFiles": "ВСІ",
+ "Cancel": "Скасувати",
+ "ConfigFiles": "Конфігурація Файлів",
+ "ConfigRootDirectoryDoesntExists": "Не знайдено каталогу конфігурації. Будь ласка, перевірте опцію \"config_path\" у [file_manager] розділі конфігурації Moonraker.",
+ "Create": "Створити",
+ "CreateDirectory": "Створити Диркторію",
+ "CreateFile": "Створити Файл",
+ "CurrentPath": "Поточний шлях",
+ "Delete": "Видалити",
+ "DeleteDirectory": "Видалити директорію",
+ "DeleteDirectoryQuestion": "Видалити директорію \"{name}\" і весь її вміст?",
+ "DeleteSelectedQuestion": "Видалити {count} вибрані елементи?",
+ "Download": "Завантажити",
+ "EditFile": "Редагувати файл",
+ "Empty": "Порожньо",
+ "Files": "Файл",
+ "Filesize": "Розмір файлу",
+ "Free": "Вільно",
+ "FreeDisk": "Вільний диск",
+ "HiddenFiles": "Приховані файли",
+ "HideBackupFiles": "Приховати резервні файли",
+ "LastModified": "Остання модіфікація",
+ "Name": "Ім'я",
+ "RefreshDirectory": "Оновити Директорію",
+ "Rename": "Перейменувати",
+ "RenameDirectory": "Перейменувати Директорію",
+ "RenameFile": "Перейменувати файл",
+ "Root": "Root",
+ "SetupCurrentList": "Поточний список налаштувань",
+ "ShowFile": "Показати файл",
+ "Total": "Всього",
+ "UploadFile": "Завантажити Файл",
+ "Uploading": "Завантаження",
+ "Used": "Використано"
+ },
+ "EndstopPanel": {
+ "Endstop": "Кінцевик",
+ "EndstopInfo": "Натисніть кнопку синхронізації на правому боці, щоб завантажити поточний статус Кінцевиків.",
+ "Endstops": "Кінцевики",
+ "open": "ВІДКРИТО",
+ "TRIGGERED": "ЗАМКНЕНО"
+ },
+ "LogfilesPanel": {
+ "Logfiles": "Файли журналів"
+ },
+ "SystemPanel": {
+ "Constants": "Константи",
+ "Cpu": "ЦПУ",
+ "HostDetails": "Деталі хоста",
+ "LastStats": "Остання статистика",
+ "Load": "Навантаження",
+ "Memory": "ОЗУ",
+ "NoMoreInfos": "Більше немає Infos",
+ "SystemLoad": "Навантаження на Систему",
+ "Values": {
+ "Awake": "Прокинутися: {awake}",
+ "Bandwidth": "Пропускна здатність: {bandwidth}/s",
+ "Distro": "Дистрибутив: {name} {version_id}",
+ "Frequency": "Частота: {frequency}",
+ "Load": "Навантаження: {load}",
+ "Memory": "ОЗУ: {memory}",
+ "Os": "Операційка: {os}",
+ "Received": "Отриманий: {received}",
+ "Temp": "ТЕМП: {temp}°C",
+ "TempMax": "макс: {temp}°C",
+ "TempMin": "мін: {temp}°C",
+ "Transmitted": "Передано: {transmitted}",
+ "Version": "Версія: {version}"
+ }
+ },
+ "UpdatePanel": {
+ "CheckForUpdates": "Перевірте оновлення",
+ "Commits": "Коментар",
+ "CommitsAvailable": "Немає коментарів | {count} доступний коментар | {count} Доступні",
+ "CommitsOnDate": "Коментар від {date}",
+ "CommittedDaysAgo": "Прокоментовано {days} днів тому",
+ "CommittedHoursAgo": "Прокоментовано {hours} годин тому",
+ "CommittedOnDate": "Прокоментовано {date}",
+ "CommittedYesterday": "Сьогоднішній комент",
+ "Detached": "відокремлений",
+ "Dirty": "брудний",
+ "ERROR": "ПОМИЛКА",
+ "Invalid": "недійсний",
+ "OSPackages": "ОС-Пакети",
+ "PackagesCanBeUpgraded": "пакети можна оновити",
+ "System": "Система",
+ "Unknown": "невідомо",
+ "Update": "оновити",
+ "UpdateAll": "Оновіть усі компоненти",
+ "UpdateManager": "Менеджер Оновлень",
+ "Upgrade": "оновити",
+ "UpToDate": "актуальний"
+ }
+ },
+ "Panels": {
+ "ExtruderControlPanel": {
+ "Allowed": "Допущений",
+ "EstimatedExtrusion": "Розрахункова екструзія:",
+ "Extrude": "Видавити",
+ "ExtruderTempTooLow": "Екструдер Темп. <",
+ "ExtrusionFactor": "Коефіцієнт екструзії",
+ "ExtrusionFeedrate": "Екструзійна подача",
+ "FilamentLength": "Довжина прутка",
+ "FirmwareRetractionSettings": {
+ "RetractLength": "Довжина Ретракту",
+ "RetractSpeed": "Швидкість Ретракту",
+ "UnretractExtraLength": "Довжина деретракту",
+ "UnretractSpeed": "Швидкість Деретракту"
+ },
+ "Headline": "Екструдер",
+ "LoadFilament": "Завантажити Пруток",
+ "PressureAdvanceSettings": {
+ "Advance": "Pressure Advance",
+ "Extruder": "Екструдер",
+ "SmoothTime": "Плавний Час"
+ },
+ "Requested": "Запитуваний",
+ "Retract": "Ретракт",
+ "TooLargeExtrusion": "Екструзія занадто велика!",
+ "UnloadFilament": "Вигрузка Прутка"
+ },
+ "FarmPrinterPanel": {
+ "ReconnectToPrinter": "Переподключення",
+ "SwitchToPrinter": "Перемкнутися на Принтер",
+ "WebcamOff": "ВИМК"
+ },
+ "KlippyStatePanel": {
+ "FirmwareRestart": "Перезапуск Прошивки",
+ "KlipperCheck": "Будь ласка, перевірте, чи працює служба Klipper та налаштована UDS (UNIX домен).",
+ "KlippyState": "Klippy-Стан",
+ "MoonrakerCannotConnect": "Moonraker не може підключитися до Klipper!",
+ "Restart": "Перезапустити"
+ },
+ "MachineSettingsPanel": {
+ "Headline": "Машина",
+ "MotionSettings": {
+ "Acceleration": "Прискорення",
+ "MaxAccelToDecel": "Max Accel. to Decel.",
+ "SquareCornerVelocity": "Квадратна кутова швидкість",
+ "Velocity": "Швидкість"
+ }
+ },
+ "MacrosPanel": {
+ "Headline": "Макрос",
+ "Send": "надсилати"
+ },
+ "MiniconsolePanel": {
+ "Headline": "Консоль",
+ "HideTemperatures": "Сховати температуру",
+ "HideTimelapse": "Сховати таймлапс",
+ "SendCode": "Надіслати код...",
+ "SetupConsole": "Налаштувати Консоль"
+ },
+ "MinSettingsPanel": {
+ "IncludeMainsailCfg": "Переконайтеся, що ви включили mainsail.cfg у свій файл printer.cfg.",
+ "IsNotDefinedInConfig": "не визначається в конфігурації.",
+ "MissingConfiguration": "Відсутня конфігурація",
+ "MoreInformation": "більше інформації"
+ },
+ "MiscellaneousPanel": {
+ "Headline": "Різна",
+ "RunoutSensor": {
+ "Detected": "виявлено",
+ "Disabled": "Не активно",
+ "Empty": "Порожньо"
+ }
+ },
+ "PowerControlPanel": {
+ "Error": "Помилка",
+ "Off": "ВИМК",
+ "On": "ВВІМК",
+ "PowerControl": "Управління Живленням"
+ },
+ "StatusPanel": {
+ "CancelPrint": "Скасувати друк",
+ "ClearPrintStats": "Чітка статистика друку",
+ "Difference": "Різниця",
+ "EmptyGcodes": "Немає G-коду, що доступний.",
+ "EmptyJobqueue": "Наразі в черзі роботи немає файлу.",
+ "Estimate": "Оцінка",
+ "ETA": "Час Закінченя",
+ "ExcludeObject": {
+ "Cancel": "скасувати",
+ "Excluded": "Виключений",
+ "ExcludeObject": "Виключіть Об'єкт",
+ "ExcludeObjectHeadline": "Виключіть Об'єкт",
+ "ExcludeObjectText": "Ви дійсно хочете виключити \"{name}\"?"
+ },
+ "Filament": "Пруток",
+ "File": "Файл",
+ "Files": "Файли",
+ "Flow": "Потік",
+ "Headline": "Статус",
+ "Jobqueue": "Черга робіт ({count})",
+ "JobqueueMoreFiles": "більше нема робіт | ще одна робота | {count} більше робіт",
+ "Layer": "Шар",
+ "Max": "макс",
+ "ObjectHeight": "Висота Об'кта",
+ "PausePrint": "Призупинення друку",
+ "Print": "Друк",
+ "PrintTime": "Час Друку",
+ "ReprintJob": "Роздруковано",
+ "Requested": "Запитуваний",
+ "ResumePrint": "Відновити друк",
+ "Slicer": "Слайсер",
+ "Speed": "Швидкість",
+ "Status": "Статус",
+ "Total": "Всього",
+ "Unknown": "Невідомий"
+ },
+ "TemperaturePanel": {
+ "AutoscaleChart": "Автоматичний графік",
+ "Avg": "Avg",
+ "Cooldown": "Охолодження",
+ "Current": "Поточний",
+ "Dataset": {
+ "Power": "ШІМ-потужність",
+ "Speed": "Швидкість ШІМ",
+ "Target": "цільова температура",
+ "Temperature": "поточна температура"
+ },
+ "Headline": "Температури",
+ "Max": "макс",
+ "Min": "мін",
+ "Name": "Ім'я",
+ "Presets": "Пресети",
+ "SetupTemperatures": "Налаштування Температури",
+ "ShowChart": "Показати Графік",
+ "ShowNameInChart": "Показувати {name} у графіку",
+ "ShowNameInList": "Показувати {name} у списку",
+ "State": "Стан",
+ "Target": "Ціль",
+ "TemperaturesInChart": "Температура [°C]",
+ "TempTooHigh": "Температура занадто висока для{name}! (макс: {max})",
+ "TempTooLow": "Температура занадто низька для {name}! (мін: {min})"
+ },
+ "ToolheadControlPanel": {
+ "Absolute": "абсолютний",
+ "ALL": "ВСІ",
+ "Headline": "Інструмент",
+ "Invalid": "Недійсний",
+ "OutOfRange": "Поза межами!",
+ "PleaseConfigureSteps": "Будь ласка, налаштуйте кроки",
+ "Position": "Положення",
+ "QGL": "QGL",
+ "Relative": "відносний",
+ "SettingsInterfaceControl": "Налаштування > Інтерфейс > Контроль",
+ "SpeedFactor": "Коефіцієнт швидкості",
+ "ZTilt": "Z-Нахил"
+ },
+ "WebcamPanel": {
+ "All": "ВСІ",
+ "FPS": "ФПС",
+ "Headline": "Веб-камера",
+ "NoWebcam": "Немає веб-камери. Додайте веб -камеру \"Налаштування Інтерфейсу\" -> \"Веб-камери\".",
+ "UnknownWebcamService": "Невідома служба веб-камери"
+ },
+ "ZoffsetPanel": {
+ "Clear": "Очистити",
+ "Headline": "Z-Offset",
+ "Later": "Згодом",
+ "Ok": "OK",
+ "Save": "Зберегти",
+ "SaveConfig": "SAVE CONFIG",
+ "SaveInfoDescription": "Новий Z-Offset був обчислений та зареєстрований. Натисніть на \"SAVE CONFIG\" Щоб зберегти його на printer.cfg та перезапустити Klipper.",
+ "SaveInfoDescriptionPrint": "Новий Z-Offset був обчислений та зареєстрований. Після друку натисніть на \"SAVE CONFIG\" у верхній панелі, щоб зберегти його у printer.cfg та перезапустити Klipper.",
+ "SaveInfoHeadline": "Інформація",
+ "ToEndstop": "до Кінцевика",
+ "ToProbe": "Зондувати"
+ }
+ },
+ "PowerDeviceChangeDialog": {
+ "AreYouSure": "Ви впевнені?",
+ "No": "НІТ",
+ "TurnDeviceOff": "Поворот {device} ВИМК",
+ "TurnDeviceOn": "Поворот {device} ВВІМК",
+ "Yes": "ТАК"
+ },
+ "Router": {
+ "Console": "Консоль",
+ "Dashboard": "Панель приладів",
+ "G-Code Files": "Файли G-Code",
+ "G-Code Viewer": "Переглядач G-Code",
+ "Heightmap": "Карта столу",
+ "History": "Історія",
+ "Machine": "Машина",
+ "Printers": "Принтери",
+ "Timelapse": "Таймлапс",
+ "Webcam": "Веб-камера"
+ },
+ "SelectPrinterDialog": {
+ "AddPrinter": "Додати Принтер",
+ "AddPrintersToJson": "Будь ласка, додайте принтери до config.json.",
+ "CannotConnectTo": "Не вдається підключитися до {host}.",
+ "ChangePrinter": "Змінити принтер",
+ "Connecting": "Підключення до {host}",
+ "ConnectionFailed": "Підключення не вдалося",
+ "EditPrinter": "Редагувати принтер",
+ "Hello": "Привіт і ласкаво просимо до віддаленого режиму Mainsail!",
+ "HostnameInvalid": "Недійсне ім'я хоста/IP",
+ "HostnameIp": "Ім'я хоста/IP",
+ "HostnameRequired": "Ім'я хоста потрібно",
+ "Port": "Порт",
+ "PortRequired": "Потрібен порт",
+ "RememberToAdd": "Будь ласка, не забудьте додати '{cors}' у moonraker.conf всередині 'cors_domains'.",
+ "SelectPrinter": "Виберіть принтер",
+ "TryAgain": "спробуйте ще раз",
+ "UpdatePrinter": "Оновіть Принтер",
+ "YouCanFindMore": "Ви можете знайти більше деталей на"
+ },
+ "Settings": {
+ "Cancel": "Скасувати",
+ "Close": "Закрити",
+ "ConsoleTab": {
+ "AddFilter": "додати фільтр",
+ "Console": "Консоль",
+ "CreateHeadline": "Створити фільтр",
+ "Direction": "Напрямок",
+ "DirectionShell": "Останній запис унизу",
+ "DirectionTable": "Останній запис у верхній частині",
+ "EditHeadline": "Редагувати фільтр",
+ "EntryStyle": "Entry-Дизайн",
+ "EntryStyleCompact": "компактний",
+ "EntryStyleDefault": "за замовчуванням",
+ "Filters": "Фільтри",
+ "Height": "Висота",
+ "HideTemperatures": "Сховати Температуру",
+ "HideTimelapse": "Сховати Таймлапс",
+ "Name": "Ім'я",
+ "Regex": "Regex",
+ "StoreButton": "Зберегти фільтр",
+ "UpdateButton": "Оновити фільтр"
+ },
+ "ControlTab": {
+ "Bars": "Брус",
+ "Circle": "Кола",
+ "Control": "Контроль",
+ "Cross": "Перехрестя",
+ "EnableXYHoming": "Увімкнути комбіноване наведення вісь X і Y до дому",
+ "EstimatedExtrusionInfo": "Показати орієнтовну інформацію про екструзію",
+ "EstimatedExtrusionInfoDescription": "Показати / приховати інформацію про орієнтовні екструзії на основі кількості екструзії та подачі",
+ "InvertXMovement": "Інвертуйте напрямок руху осі X",
+ "InvertYMovement": "Інвертувати напрямок руху осі Y",
+ "InvertZMovement": "Інвертувати напрямок руху осі Z",
+ "IsDefault": " (замовчення)",
+ "MaximumValues": "Максимальні значення: {maximum}",
+ "MaximumValuesVisibility": "Максимум {maximum} значення рекомендуються для найкращої видимості",
+ "MinimumValues": "Мінімальні значення: {minimum}",
+ "MotorsOff": "Вимкнути мотори{isDefault}",
+ "MoveDistancesEInMm": "Extrusion amount presets (in mm)",
+ "MoveDistancesInMm": "Збільшеня дистанції переміщення у мм",
+ "MoveDistancesXYInMm": "Дистанція переміщення вісей X та Y у мм",
+ "MoveDistancesZInMm": "Дистанція переміщення вісі Z у мм",
+ "QuadGantryLevel": "Quad Gantry Вирівнювання{isDefault}",
+ "SpeedEInMms": "Швидкість екструзії (у мм/с)",
+ "SpeedXY": "Швидкість руху вісєй X та Y",
+ "SpeedZ": "Швидкість руху вісі Z",
+ "Style": "Стиль",
+ "ValueGreaterThan": "Значення повинно бути більшим, ніж {value}",
+ "ZOffsetIncrements": "Збільшення Z-Offset (в мм)",
+ "ZTiltAdjust": "Налаштування Z-нахилу{isDefault}"
+ },
+ "DashboardTab": {
+ "Dashboard": "Панель приладів",
+ "Desktop": "Робочий стіл",
+ "Mobile": "Мобільний",
+ "ResetLayout": "Скидання макета",
+ "Tablet": "Планшет",
+ "Widescreen": "Широкоекранний"
+ },
+ "Edit": "Редагувати",
+ "EditorTab": {
+ "ConfirmUnsavedChanges": "Підказувати зберігати чи ніт не збережені зміни",
+ "ConfirmUnsavedChangesDescription": "Якщо ввімкнено, редактор вимагає підтвердження, щоб зберегти, або відкинути внесені зміни. Якщо відключено, зміни не зберігаються.",
+ "Editor": "Редактор",
+ "KlipperRestartMethod": "Klipper метод перезапуску",
+ "KlipperRestartMethodDescription": "Виберіть, який метод перезавантаження буде використовуватися на 'Зберегти та перезапустити' під час редагування файлів конфігурації Klipper..",
+ "MoonrakerRestartInstance": "Інстанція перезапуску Moonraker",
+ "MoonrakerRestartInstanceDescription": "Виберіть, яка послуга Moonraker перезапуститься на 'Зберегти та перезапустити' під час редагування файлів конфігурації Moonraker.",
+ "UseEscToClose": "Використовуйте ESC для закриття редактора",
+ "UseEscToCloseDescription": "Дозволяє клавішу ESC закрити редактор"
+ },
+ "GCodeViewerTab": {
+ "BackgroundColor": "Колір фону",
+ "ExtruderColor": "Кольор Екструдеру",
+ "GCodeViewer": "Переглядач G-коду",
+ "GridColor": "Колір сітки",
+ "MaxFeed": "Максимальна швидкість подачі",
+ "MinFeed": "Мінімальна швидкість подачі",
+ "ProgressColor": "Колір прогресу",
+ "ShowAxes": "Показати осі"
+ },
+ "GeneralTab": {
+ "Backup": "Резервна копія",
+ "BackupDialog": "Виберіть усі розділи, які ви хочете створити резервну копію:",
+ "CalcEstimateTime": "Оцінка розрахунку часу",
+ "CalcEstimateTimeDescription": "Якщо вибрано кілька, середнє значення буде розраховано",
+ "CalcEtaTime": "Розрахунок Очікуваного часу закінченя",
+ "CalcEtaTimeDescription": "Якщо вибрано кілька, середнє значення буде розраховано",
+ "CalcPrintProgress": "Обчислення прогресу друку",
+ "CalcPrintProgressDescription": "Метод обчислення прогресу друку.",
+ "CalcPrintProgressItems": {
+ "Filament": "Пруток",
+ "FileAbsolute": "Позиція файлу (абсолютна)",
+ "FileRelative": "Позиція файлу (відносна)",
+ "Slicer": "Слайсер (M73)"
+ },
+ "CannotReadJson": "Не вдається читати/розбирати резервний файл.",
+ "DbConsoleHistory": "Історія Консолі",
+ "DbHistoryJobs": "Історія роботи",
+ "DbHistoryTotals": "Загальна Історія",
+ "DbTimelapseSettings": "Налаштування Таймлапсу",
+ "DbView": "Налаштування перегляду",
+ "DbWebcams": "Веб -камери",
+ "EstimateValues": {
+ "Filament": "Пруток",
+ "File": "Файл",
+ "Slicer": "Слайсер"
+ },
+ "FactoryDialog": "Будь ласка, виберіть усі розділи, які ви хочете скинути:",
+ "FactoryReset": "Заводські налаштування",
+ "General": "Загальний",
+ "Language": "Мова",
+ "MoonrakerDb": "Moonraker DB",
+ "PrinterName": "Ім'я принтера",
+ "Reset": "скинути",
+ "Restore": "Відновити",
+ "RestoreDialog": "Будь ласка, виберіть усі розділи, які ви хочете відновити:"
+ },
+ "InterfaceSettings": "Налаштування інтерфейсу",
+ "MacrosTab": {
+ "Add": "додати",
+ "AddGroup": "додати Групу",
+ "AvailableMacros": "Доступні Макроси",
+ "ChangeMacroColor": "Змініть колір кнопки.",
+ "Color": "Колір",
+ "CountMacros": "Жодних макросів не додано | {count} Макрос | {count} Макроси",
+ "Custom": "свій",
+ "CustomColor": "Свій Колір",
+ "DeletedMacro": "Видалений макрос",
+ "DeleteMacroFromGroup": "Видалити макрос з групи.",
+ "EditGroup": "Редагувати Групу",
+ "Error": "помилка",
+ "Expert": "Експерт",
+ "General": "Загальний",
+ "Group": "Група",
+ "GroupMacros": "Група макросів",
+ "Macrogroups": "Групи",
+ "Macros": "Макрос",
+ "Management": "Управління",
+ "Name": "Ім'я",
+ "NoAvailableMacros": "Немає доступних макросів.",
+ "NoGroups": "Жодної групи не знайдено...",
+ "NOMacros": "Макросів не знайдено...",
+ "NoMacrosInGroup": "У цій групі немає макросів.",
+ "Primary": "основний",
+ "Secondary": "вторинний",
+ "ShowInStatePaused": "Показати/приховати, якщо принтер призупинений.",
+ "ShowInStatePrinting": "Показати/приховати, якщо принтер друкує.",
+ "ShowInStateStandby": "Показати/приховати, якщо принтер буде в режимі очікування.",
+ "Simple": "Простий",
+ "Status": "Статус",
+ "Success": "успіх",
+ "UnknownGroup": "Невідома Група",
+ "Warning": "УВАГА"
+ },
+ "PresetsTab": {
+ "AddPreset": "додати пресет",
+ "Cooldown": "Згортання",
+ "CreateHeadline": "Створити пресет",
+ "CustomGCode": "Свій G-код",
+ "EditCooldown": "Редагувати охолодження",
+ "EditHeadline": "Редагувати пресет",
+ "ErrorInvalidValue": "Недійсне значення",
+ "ErrorNameNotUnique": "Ім'я вже існує",
+ "ErrorNameRequired": "Необхідне ім'я",
+ "Name": "Ім'я",
+ "PreheatPresets": "Пресети",
+ "PresetInfo": "Будь ласка, встановіть щонайменше цільову температуру або свій G-код.",
+ "PresetNamePlaceholder": "Назва пресету (необхідно)",
+ "StoreButton": "Збірка пресетів",
+ "UpdateButton": "Оновити Пресет",
+ "UpdateCooldown": "Оновити COOLDOWN"
+ },
+ "RemotePrintersTab": {
+ "AddPrinter": "Додати принтер",
+ "EditPrinter": "Редагувати принтер",
+ "Hostname": "Ім'я хоста",
+ "Port": "Порт",
+ "RemotePrinters": "Принтери",
+ "UpdatePrinter": "Оновити принтер",
+ "UseConfigJson": "InstanceDB = JSON виявлений. Будь ласка, використовуйте config.json щоб змінити список принтерів."
+ },
+ "TimelapseTab": {
+ "Autorender": "Ауторендер",
+ "AutorenderDescription": "Якщо ввімкнено, відео Таймлапс автоматично відображатиметься в кінці друку",
+ "Camera": "Камера",
+ "CameraDescription": "Виберіть, яку камеру слід використовувати",
+ "ConstantRateFactor": "Постійний коефіцієнт швидкості",
+ "ConstantRateFactorDescription": "Це налаштовує якість проти розміру файлу наданих відео. Діапазон шкали CRF становить 0–51, де 0 без втрат, 23 - за замовчуванням, а 51 - найгірша якість можливої якості. Більш нижнє значення, як правило, призводить до більш високої якості, а суб'єктивно здоровий діапазон становить 17–28. Розглянемо 17 або 18.",
+ "duplicatelastframe": "Дублікат останнього кадру",
+ "duplicatelastframeDescription": "Дублює останній кадр на кінці відео",
+ "Enabled": "Увімкнено",
+ "EnabledDescription": "Якщо вимкнено, макроси G-коду ігноруються, а автоматичний показник пропускається.",
+ "Extraoutputparams": "Додаткові Параметри Виводу",
+ "ExtraoutputparamsDescription": "Визначає додаткові вихідні параметри до FFMPEG. Примітка. Вказування всього тут вимкне налаштування обертання",
+ "FwRetract": "Ретракт з прошивки",
+ "FwRetractDescription": "Використовуйте втягування з прошивки у макрорі Таймлапс",
+ "GcodeVerbose": "Багатослівний G-код",
+ "GcodeVerboseDescription": "Якщо ввімкнено, макроси G-Code напишуть інформацію у консоль",
+ "General": "Загальний",
+ "HyperlapseCycle": "Час циклу Hyperlapse",
+ "HyperlapseCycleDescription": "Знімок буде зроблений будь-яких X секунди",
+ "Mode": "Режим",
+ "ModeDescription": "Виберіть між режимом макросів та гіперлапсу (на основі часу)",
+ "OutputFramerate": "Частота кадрів виводу",
+ "OutputFramerateDescription": "Визначає частоту кадрів відео. Примітка. Це буде ігноровано, якщо ввімкнено Variable_FPS",
+ "Parkhead": "Парковка голови",
+ "ParkheadDescription": "Якщо ввімкнено, перед тим, як сфтографувати, буде припарковано інструмент.",
+ "Parkpos": "Позиція парковки",
+ "ParkposDescription": "Виберіть позицію паркування",
+ "ParkTime": "Час паркінгу",
+ "ParkTimeDescription": "Додайте додатковий час у режимі очікування при парковці.",
+ "Pixelformat": "Формат пікселів",
+ "PixelformatDescription": "Визначає формат пікселя вихідного відео",
+ "PosDZ": "Позиція z",
+ "PosDZDescription": "Паркова позиція Z (відносна)",
+ "PosX": "Позиція X",
+ "PosXDescription": "Паркова позиція X (абсолют)",
+ "PosY": "Позиція Y",
+ "PosYDescription": "Паркова позиція Y (абсолют)",
+ "PreviewImage": "Попередній перегляд зображення",
+ "PreviewImageDescription": "Збережіть зображення попереднього перегляду з тим же іменем, що і відео",
+ "RenderingOptions": "Варіанти візуалізації",
+ "RetractDistance": "Відстань Ретракту",
+ "RetractDistanceDescription": "Довжина прутка, яку екструдер втягує.",
+ "RetractSpeed": "Швидкість втягування",
+ "RetractSpeedDescription": "Швидкість, з якою екструдер відтягує пруток.",
+ "SaveFrames": "Зберегти зображення",
+ "SaveFramesDescription": "Збережіть кадри у zip-файлі для зовнішнього відображення",
+ "StreamDelayCompensation": "Компенсація затримки потоку",
+ "StreamDelayCompensationDescription": "Затримка зйомка кадру",
+ "Targetlength": "Цільова довжина",
+ "TargetlengthDescription": "Цільова довжина, коли змінна FPS увімкнена",
+ "TimeFormatCode": "Код формату часу",
+ "TimeFormatCodeDescription": "Це визначає, як слід кодувати часову позначку у вихідному файлі",
+ "Timelapse": "Таймлапс",
+ "TravelSpeed": "Швидкість Переміщення",
+ "TravelSpeedDescription": "Швидкість переміщення під час переїзду в положення паркування та відновлення",
+ "UnretractDistance": "Дистанція подачи після ретракту",
+ "UnretractDistanceDescription": "Довжина прутка, яку екструдер подає після втягування.",
+ "UnretractSpeed": "Швидкість подачи",
+ "UnretractSpeedDescription": "Швидкість, з якою екструдер подає пруток після втягування.",
+ "VariableFps": "Змінна FPS",
+ "VariableFpsDescription": "Якщо ввімкнено, кадри вихідного відео буде обчислено на основі довжини відео",
+ "VariableFpsMax": "Змінна FPS макс",
+ "VariableFpsMaxDescription": "",
+ "VariableFpsMin": "Змінна FPS мін",
+ "VariableFpsMinDescription": ""
+ },
+ "UiSettingsTab": {
+ "BoolBigThumbnail": "Велика мініатюра",
+ "BoolBigThumbnailDescription": "Відобразити велику мініатюру на панелі статусу під час друку.",
+ "BoolHideUploadAndPrintButton": "Приховати кнопку завантаження та друк",
+ "BoolHideUploadAndPrintButtonDescription": "Показати або приховати кнопку «Завантажити та друкувати» у верхній панелі.",
+ "ConfirmOnEmergencyStop": "Вимагати підтвердження на аварійній зупинці",
+ "ConfirmOnEmergencyStopDescription": "Показати діалогове вікно підтвердження про аварійну зупинку",
+ "ConfirmOnPowerDeviceChange": "Вимагати підтвердження змін живлення пристрою",
+ "ConfirmOnPowerDeviceChangeDescription": "Показати діалогове вікно підтвердження щодо змін живлення пристрою",
+ "DisplayCANCEL_PRINT": "Відображення Скасування_Друку",
+ "DisplayCANCEL_PRINTDescription": "Показує кнопку CANCEL_PRINT постійно - не потрібно підтвердження другого рівня.",
+ "GcodeThumbnails": "Ескіз G-Code",
+ "GcodeThumbnailsDescription": "Клацніть на кнопку, щоб дістатися до інструкцій.",
+ "Guide": "Інструкція",
+ "LockSliders": "Заблокуйте повзунки на пристроях сенсорного екрану",
+ "LockSlidersDelay": "Затримка блокування повзунка",
+ "LockSlidersDelayDescription": "Слайдери заблокуються після заданої затримки. Якщо встановлено на 0 або залишився порожнім, повзунки лише заблокують зміну/перезавантаження сторінки.",
+ "LockSlidersDescription": "Слайдери на сенсорному екрані потрібно розблокувати, перш ніж зміни будуть дозволені.",
+ "Logo": "Логотип",
+ "NavigationStyle": "Стиль навігації",
+ "NavigationStyleDescription": "Змінити зовнішній вигляд навігації",
+ "NavigationStyleIconsAndText": "Піктограми + текст",
+ "NavigationStyleIconsOnly": "Тільки іконки",
+ "Primary": "Основний",
+ "ShowWebcamInNavigation": "Показати веб -камеру в навігації",
+ "UiSettings": "Налаштування в інтерфейсі"
+ },
+ "WebcamsTab": {
+ "AddWebcam": "Додати веб-камеру",
+ "CreateWebcam": "Створити веб-камеру",
+ "EditCrowsnestConf": "Редагувати crowsnest.conf",
+ "EditWebcam": "Редагувати веб-камеру",
+ "FlipHorizontally": "Переверніть веб-камеру горизонтально",
+ "FlipVertically": "Переверніть веб-камеру вертикально",
+ "IconBed": "Ліжко",
+ "IconCam": "Cam",
+ "IconDoor": "Двері",
+ "IconFilament": "Пруток",
+ "IconHot": "Гарячий",
+ "IconMcu": "ЦПУ",
+ "IconNozzle": "Сопло",
+ "IconPrinter": "Прінтер",
+ "Ipstream": "IP -камера",
+ "Mjpegstreamer": "MJPEG-Стример",
+ "MjpegstreamerAdaptive": "Adaptive MJPEG-Streamer (експериментальний)",
+ "Name": "Ім'я",
+ "NameAlreadyExists": "Ім'я вже існує",
+ "Required": "необхідний",
+ "Rotate": "Обертати",
+ "SaveWebcam": "Зберегти веб-камеру",
+ "Service": "Служба",
+ "TargetFPS": "Цільовий FPS",
+ "UpdateWebcam": "Оновити веб-камеру",
+ "UrlSnapshot": "URL-адреса Знімку",
+ "UrlStream": "URL-адреса Потоку",
+ "Uv4lMjpeg": "UV4L-MJPEG",
+ "Webcams": "Веб-камери"
+ }
+ },
+ "Timelapse": {
+ "AllFiles": "ВСІ",
+ "Autorender": "Auto-render",
+ "Cancel": "Скасувати",
+ "Create": "Створити",
+ "CreateNewDirectory": "створити директорію",
+ "CurrentPath": "Поточний шлях",
+ "Delete": "Видалити",
+ "DeleteDirectory": "Видалити директорію",
+ "DeleteDirectoryQuestion": "Ви дійсно хочете видалити \"{name}\" директоріб із усім її вмістом?",
+ "DeleteSelectedQuestion": "Ви дійсно хочете видалити {count} вибрані файли?",
+ "Download": "Завантажити",
+ "DuplicateLastframe": "Дублікат останнього кадру",
+ "Empty": "Не знайдено закінченого Таймлапсу.",
+ "Enabled": "Увімкнено",
+ "EstimatedLength": "Орієнтовна довжина",
+ "Files": "Файли",
+ "Filesize": "Розмір файлу",
+ "Fixed": "фіксований",
+ "Framerate": "Частота кадрів",
+ "Frames": "Кадри",
+ "Free": "Вільно",
+ "FreeDisk": "Вільний диск",
+ "LastModified": "Останній модифікований",
+ "MaxFramerate": "Макс. частота кадрів",
+ "MinFramerate": "Мін. частота кадрів",
+ "Name": "Ім'я",
+ "NewDirectory": "Нова директорія",
+ "NoActiveTimelapse": "Немає записів.",
+ "Preview": "Попередній перегляд",
+ "RefreshCurrentDirectory": "Оновити директорії",
+ "Rename": "Перейменувати",
+ "RenameDirectory": "Перейменувати Директорію",
+ "RenameFile": "Перейменувати файл",
+ "Render": "візуалізація",
+ "RenderSettings": "Налаштування візуалізації",
+ "SaveFrames": "Зберегти кадри",
+ "Search": "пошук",
+ "StartRender": "старт візуалізації",
+ "Status": "Статус",
+ "TargetFps": "Цільовий FPS",
+ "Targetlength": "Цільова довжина",
+ "TimelapseFiles": "Файли Timelapse",
+ "TimelapseRendering": "Візуалізація таймлапсу",
+ "TimelapseRenderingSuccessful": "Візуалізація таймлапсу виконано",
+ "Total": "Загальний",
+ "Type": "Тип",
+ "Used": "Використано",
+ "Variable": "Змінна",
+ "Video": "Відео"
+ },
+ "title": "Українська"
+}
diff --git a/src/locales/zh-tw.json b/src/locales/zh-tw.json
index 9a656e2df..2fbd77e99 100644
--- a/src/locales/zh-tw.json
+++ b/src/locales/zh-tw.json
@@ -317,6 +317,18 @@
"ExtruderControlPanel": {
"Extrude": "擠出",
"ExtrusionFactor": "擠出係數",
+ "FirmwareRetractionSettings": {
+ "RetractLength": "回抽長度",
+ "RetractSpeed": "回抽速度",
+ "UnretractExtraLength": "退料長度",
+ "UnretractSpeed": "退料速度"
+ },
+ "PressureAdvanceSettings": {
+ "Advance": "推進",
+ "Extruder": "擠出機",
+ "PressureAdvance": "壓力推進控制",
+ "SmoothTime": "平滑時間"
+ },
"Retract": "回抽"
},
"FarmPrinterPanel": {
@@ -332,26 +344,12 @@
"Restart": "重新啟動"
},
"MachineSettingsPanel": {
- "FirmwareRetractionSettings": {
- "FirmwareRetraction": "韌體回抽",
- "RetractLength": "回抽長度",
- "RetractSpeed": "回抽速度",
- "UnretractExtraLength": "退料長度",
- "UnretractSpeed": "退料速度"
- },
"Headline": "機器設定",
"MotionSettings": {
"Acceleration": "加速度",
"MaxAccelToDecel": "最大加速,到减速.",
- "Motion": "運動",
"SquareCornerVelocity": "直角拐角速度",
"Velocity": "速度"
- },
- "PressureAdvanceSettings": {
- "Advance": "推進",
- "Extruder": "擠出機",
- "PressureAdvance": "壓力推進控制",
- "SmoothTime": "平滑時間"
}
},
"MacrosPanel": {
diff --git a/src/locales/zh.json b/src/locales/zh.json
index a0896b401..3ff108cbb 100644
--- a/src/locales/zh.json
+++ b/src/locales/zh.json
@@ -21,7 +21,7 @@
"Never": "永不",
"NextReboot": "下次重启",
"NoNotification": "没有通知",
- "Remind": "提醒:"
+ "Remind": "提醒:"
},
"NumberInput": {
"GreaterOrEqualError": "必须大于或等于{min}!",
@@ -48,7 +48,7 @@
"TitleUnderVoltageDetected": "检测到电压过低"
},
"Titles": {
- "Complete": "完成 - {filename}",
+ "Complete": "已完成 - {filename}",
"Error": "错误",
"Pause": "暂停打印",
"Printing": "已打印 {percent}% - {filename}",
@@ -142,7 +142,7 @@
"UnsavedChanges": "修改未被保存",
"UnsavedChangesMessage": "是否将修改保存至{filename}?",
"UnsavedChangesSubMessage": "不保存你的修改将会丢失。你可以在编辑设置里关闭此提示。",
- "Uploading": "上传中"
+ "Uploading": "正在上传"
},
"EmergencyStopDialog": {
"AreYouSure": "是否确定?",
@@ -162,7 +162,6 @@
"DeleteDirectoryQuestion": "你确定要删除\"{name}\"和里面的所有内容吗?",
"DeleteSelectedQuestion": "你是否要删除选中的{count}个文件?",
"Download": "下载",
- "Downloading": "下载中",
"EditFile": "编辑文件",
"Empty": "空",
"Filament": "耗材",
@@ -170,7 +169,7 @@
"FilamentType": "耗材规格",
"FilamentUsage": "耗材用量",
"FilamentWeight": "耗材重量",
- "Files": "文件",
+ "Files": "每页显示文件数",
"Filesize": "文件大小",
"Free": "未使用",
"FreeDisk": "剩余磁盘空间",
@@ -204,7 +203,6 @@
"SuccessfullyRenamed": "成功修改名称{filename}。",
"SuccessfullyUploaded": "成功上传{filename}!",
"Total": "合计",
- "Uploading": "上传中",
"UploadNewGcode": "上传新的G-Code",
"Used": "已使用",
"View3D": "3D预览"
@@ -442,7 +440,7 @@
"Update": "更新",
"UpdateAll": "更新全部组件",
"UpdateManager": "更新管理",
- "Upgrade": "升级",
+ "Upgrade": "更新",
"UpToDate": "已经更新到最新"
}
},
@@ -452,11 +450,22 @@
"EstimatedExtrusion": "预计挤出量:",
"Extrude": "挤出",
"ExtruderTempTooLow": "挤出温度 <",
- "ExtrusionFactor": "挤出因子",
+ "ExtrusionFactor": "挤出倍数",
"ExtrusionFeedrate": "进给速度",
"FilamentLength": "耗材长度",
+ "FirmwareRetractionSettings": {
+ "RetractLength": "回抽长度",
+ "RetractSpeed": "回抽速度",
+ "UnretractExtraLength": "回料长度",
+ "UnretractSpeed": "回料速度"
+ },
"Headline": "挤出机",
"LoadFilament": "装载耗材",
+ "PressureAdvanceSettings": {
+ "Advance": "压力提前",
+ "Extruder": "挤出机",
+ "SmoothTime": "平滑时间"
+ },
"Requested": "需要",
"Retract": "回抽",
"TooLargeExtrusion": "挤出过大!",
@@ -472,28 +481,15 @@
"KlipperCheck": "请检查Klipper服务是否运行并且已经设置UDS(Unix Domain Socket)。",
"KlippyState": "Klippy状态",
"MoonrakerCannotConnect": "Moonraker无法连接到Klipper !",
- "Restart": "重启"
+ "Restart": "重启Klipper"
},
"MachineSettingsPanel": {
- "FirmwareRetractionSettings": {
- "FirmwareRetraction": "固件回抽",
- "RetractLength": "回抽长度",
- "RetractSpeed": "回抽速度",
- "UnretractExtraLength": "回料长度",
- "UnretractSpeed": "回料速度"
- },
"Headline": "机器设置",
"MotionSettings": {
"Acceleration": "加速度",
"MaxAccelToDecel": "加速到减速最大值",
- "Motion": "运动",
"SquareCornerVelocity": "直角拐弯速度",
"Velocity": "速度"
- },
- "PressureAdvanceSettings": {
- "Advance": "压力提前",
- "Extruder": "挤出机",
- "SmoothTime": "平滑时间"
}
},
"MacrosPanel": {
@@ -531,6 +527,8 @@
"CancelPrint": "取消打印",
"ClearPrintStats": "清除打印统计数据",
"Difference": "不同",
+ "EmptyGcodes": "没有G-Code文件",
+ "EmptyJobqueue": "当前任务队列中没有文件。",
"Estimate": "估算时间",
"ETA": "预估完成",
"ExcludeObject": {
@@ -543,18 +541,16 @@
"Filament": "耗材用量",
"File": "文件",
"Files": "文件",
- "EmptyGcodes": "没有G-Code文件",
- "EmptyJobqueue": "当前任务队列中没有文件。",
- "Jobqueue": "任务队列({count})",
- "JobqueueMoreFiles": "没有任务 | 一个任务 | {count}个任务",
- "PrintTime": "打印时间",
"Flow": "流量",
"Headline": "状态",
+ "Jobqueue": "任务队列({count})",
+ "JobqueueMoreFiles": "没有任务 | 一个任务 | {count}个任务",
"Layer": "层",
"Max": "最高",
"ObjectHeight": "物体高度",
"PausePrint": "暂停打印",
"Print": "打印",
+ "PrintTime": "打印耗时",
"ReprintJob": "再次打印",
"Requested": "请求",
"ResumePrint": "恢复打印",
@@ -601,7 +597,7 @@
"QGL": "四轴调平(QGL)",
"Relative": "相对坐标",
"SettingsInterfaceControl": "设置 > 界面 > 控制",
- "SpeedFactor": "速度因子",
+ "SpeedFactor": "速度倍数",
"ZTilt": "Z轴倾斜"
},
"WebcamPanel": {
@@ -621,8 +617,8 @@
"SaveInfoDescription": "已经计算生成新的Z轴偏移。点击\"保存配置\"后会自动保存到printer.cfg中并重启Klipper。",
"SaveInfoDescriptionPrint": "已经计算生成新的Z轴偏移。打印完成后点击\"保存配置\"后会自动保存到printer.cfg中并重启Klipper。",
"SaveInfoHeadline": "信息",
- "ToEndstop": "到限位",
- "ToProbe": "到Probe传感器"
+ "ToEndstop": "距离限位",
+ "ToProbe": "距离Probe传感器"
}
},
"PowerDeviceChangeDialog": {
@@ -635,8 +631,8 @@
"Router": {
"Console": "控制台",
"Dashboard": "控制面板",
- "G-Code Files": "G-Code文件",
- "G-Code Viewer": "G-Code预览",
+ "G-Code Files": "G-Code 文件",
+ "G-Code Viewer": "G-Code 预览",
"Heightmap": "高度图",
"History": "历史记录",
"Machine": "机器",
@@ -738,7 +734,7 @@
"GCodeViewerTab": {
"BackgroundColor": "背景颜色",
"ExtruderColor": "喷嘴颜色",
- "GCodeViewer": "G-Code预览",
+ "GCodeViewer": "G-Code 预览",
"GridColor": "网格颜色",
"MaxFeed": "最大挤出速度",
"MinFeed": "最小挤出速度",
diff --git a/src/main.ts b/src/main.ts
index bc9b6e66c..4003d2bca 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -74,32 +74,31 @@ import 'vue-resize/dist/vue-resize.css'
import VueResize from 'vue-resize'
Vue.use(VueResize)
-//load config.json and init vue
-fetch('/config.json')
- .then((res) => res.json())
- .then(async (file) => {
- await store.dispatch('importConfigJson', file)
-
- const url = store.getters['socket/getWebsocketUrl']
- Vue.use(WebSocketPlugin, {
- url: url,
- store: store,
+const initLoad = async () => {
+ //load config.json
+ await fetch('/config.json')
+ .then((res) => res.json())
+ .then(async (file) => {
+ window.console.debug('Loaded config.json')
+
+ await store.dispatch('importConfigJson', file)
+ if ('defaultLocale' in file) i18n.locale = file.defaultLocale
})
+ .catch((_) => {
+ window.console.error('config.json not found or cannot be decoded!')
+ })
+
+ const url = store.getters['socket/getWebsocketUrl']
+ Vue.use(WebSocketPlugin, { url, store })
+ if (store?.state?.instancesDB === 'moonraker') Vue.$socket.connect()
+}
+
+initLoad()
- if (!store?.state?.remoteMode) Vue.$socket.connect()
-
- new Vue({
- vuetify,
- router,
- store,
- i18n,
- render: (h) => h(App),
- }).$mount('#app')
- })
- .catch((error) => {
- const p = document.createElement('p')
- const content = document.createTextNode('config.json not found or cannot be decoded!')
- p.appendChild(content)
- document.getElementById('app')?.append(p)
- window.console.error('Error:', error)
- })
+new Vue({
+ vuetify,
+ router,
+ store,
+ i18n,
+ render: (h) => h(App),
+}).$mount('#app')
diff --git a/src/pages/Dashboard.vue b/src/pages/Dashboard.vue
index 1db410bef..3505d58eb 100644
--- a/src/pages/Dashboard.vue
+++ b/src/pages/Dashboard.vue
@@ -133,7 +133,7 @@ export default class PageDashboard extends Mixins(DashboardMixin) {
}
// remove temperature panel, if heaters & sensors < 1
- if (this.printerAvailableHeatersCount + this.printerAvailableSensorsCount < 1) {
+ if (this.printerAvailableHeatersCount + this.printerTemperatureSensorsCount < 1) {
output = output.filter((name) => name !== 'temperature-panel')
}
diff --git a/src/pages/Files.vue b/src/pages/Files.vue
index e05c72337..bec76b32e 100644
--- a/src/pages/Files.vue
+++ b/src/pages/Files.vue
@@ -1,5 +1,5 @@
-
+
@@ -7,17 +7,25 @@
+
+
+ {{ $t('Files.GcodesRootDirectoryDoesntExists') }}
+
+
+
+
diff --git a/src/plugins/StreamParserGcode.ts b/src/plugins/StreamParserGcode.ts
index 3f4a0c0b8..adebead5d 100644
--- a/src/plugins/StreamParserGcode.ts
+++ b/src/plugins/StreamParserGcode.ts
@@ -1,4 +1,4 @@
-import { StringStream } from '@codemirror/stream-parser'
+import { StringStream } from '@codemirror/language'
export const gcode = {
token: function (stream: StringStream, state: StreamParserGcodeState, zeroPos = 0): string | null {
@@ -8,41 +8,51 @@ export const gcode = {
/* Klipper macro attributes */
if (stream.pos > zeroPos && state.klipperMacro) {
- if (stream.match(/^\s*[A-Z_]+/)) return 'propertyName'
- else if (stream.match(/^\s*[A-Za-z0-9_]+/)) return 'number'
- else if (stream.match(/^{.*}/)) return 'variable'
+ stream.eatSpace()
+ if (stream.match(/^(".+"|true|false)/i)) {
+ return 'string'
+ } else if (stream.match(/^\d+/)) return 'number'
+ else if (stream.match(/^[A-Za-z\d_]+/)) return 'propertyName'
+ else if (zeroPos === 0 && stream.match(/^{[^%]+}/)) return 'variable'
}
/* comments */
- if ([';', '#'].includes(ch ?? '')) {
+ if ([';'].includes(ch ?? '')) {
stream.skipToEnd()
return 'comment'
}
+ const isZero = stream.pos == zeroPos
+
/* Mxxx Gxxx commands */
- if (stream.pos == zeroPos && stream.match(/[GMgm][\d]+/)) {
+ if (isZero && stream.match(/_?[GMgm][\d.]+/)) {
return 'namespace'
}
+ if (stream.string.substr(zeroPos).toLowerCase().startsWith('m117')) {
+ stream.skipToEnd()
+ return 'string'
+ }
+
/* G0/1 movements */
- if (stream.pos > zeroPos && stream.match(/[XYZIJxyzij]-?([\d]*\.[\d]+|[\d]+)?/)) {
+ if (stream.pos > zeroPos && stream.match(/[EPXYZIJ]-?([\d]*\.[\d]+|[\d]+)?/i)) {
return 'className'
}
/* G0/1 speeds */
- if (stream.pos > zeroPos && stream.match(/[Ff]-?([\d]*\.[\d]+|[\d]+)/)) {
+ if (stream.pos > zeroPos && stream.match(/[Ff]-?([\d]*\.[\d]+|[\d]+)?/)) {
return 'string'
}
/* G0/1 extrusions */
- if (stream.pos > zeroPos && stream.match(/[TtSsEe]-?([\d]*\.[\d]+|[\d]+)/)) {
+ if (stream.pos > zeroPos && stream.match(/[TtSs]-?([\d]*\.[\d]+|[\d]+)?/)) {
return 'atom'
}
- if (stream.pos > zeroPos && stream.match(/^{.*}/)) return 'propertyName'
+ if (zeroPos === 0 && stream.pos > zeroPos && stream.match(/^{[^%]+}/)) return 'propertyName'
/* Klipper macro names */
- if (stream.pos == zeroPos && stream.match(/^[A-Z_]+/)) {
+ if (isZero && stream.match(/^\s*[A-Z_\d]+/)) {
state.klipperMacro = true
return 'name'
}
diff --git a/src/plugins/StreamParserJinja2.ts b/src/plugins/StreamParserJinja2.ts
index 3fae09b90..f515b3ba9 100644
--- a/src/plugins/StreamParserJinja2.ts
+++ b/src/plugins/StreamParserJinja2.ts
@@ -1,5 +1,5 @@
/*
-import {StringStream} from "@codemirror/stream-parser";
+import {StringStream} from "@codemirror/language";
let keywords = ["and", "as", "block", "endblock", "by", "cycle", "debug", "else", "elif",
"extends", "filter", "endfilter", "firstof", "for",
"endfor", "if", "endif", "ifchanged", "endifchanged",
diff --git a/src/plugins/StreamParserKlipperConfig.ts b/src/plugins/StreamParserKlipperConfig.ts
index 6da01ba28..8b3a28e75 100644
--- a/src/plugins/StreamParserKlipperConfig.ts
+++ b/src/plugins/StreamParserKlipperConfig.ts
@@ -1,130 +1,172 @@
-import { StringStream } from '@codemirror/stream-parser'
+import { StreamParser, StringStream } from '@codemirror/language'
import { gcode } from '@/plugins/StreamParserGcode'
-export const klipper_config = {
+export const klipper_config: StreamParser = {
token: function (stream: StringStream, state: StreamParserKlipperConfigState): string | null {
const ch = stream.peek()
-
/* comments */
if (
- stream.match(/^\s+#/) ||
- (ch === '#' && (stream.pos === 0 || /\s/.test(stream.string.charAt(stream.pos - 1))))
+ stream.match(/^\s+[#;]/) ||
+ ([';', '#'].includes(ch ?? '') && (stream.pos === 0 || /\s/.test(stream.string.charAt(stream.pos - 1))))
) {
stream.skipToEnd()
+ state.block = false
state.pair = false
return 'comment'
}
- if (state.gcode && !state.klipperMacroJinja && ch === '[') {
- state.gcode = false
- state.gcodeZeroPos = null
+ if (ch !== '[' && stream.indentation() === 0 && stream.sol() && stream.match(/^[^:]+$/i)) {
+ stream.skipToEnd()
+ return null
}
- if (state.gcode) {
- stream.eatSpace()
- if (state.gcodeZeroPos === null) {
- state.gcodeZeroPos = stream.pos
+ if (stream.indentation() === 0) {
+ if (stream.pos === 0 && ch === '[') {
+ state.block = true
+ stream.next()
+ return null
}
- if (state.klipperMacroJinja) {
- if (stream.match(/^%?}/)) {
- state.klipperMacroJinja = false
+ if (state.block) {
+ if (!ch || ch === ']' || stream.eol()) {
+ stream.next()
+ state.block = false
return null
}
- if (stream.eat(/.(?!%})/)) {
- return 'string'
+ if (stream.match(/^\s[^\]]+/)) {
+ return 'className'
}
- if (stream.eat(/.(?!})/)) {
- return 'string'
+ if (stream.match(/^[^ \]]+/)) {
+ return 'namespace'
}
- stream.match(/^.*$/)
- return 'string'
- }
-
- if (stream.match(/^{%?/)) {
- state.klipperMacroJinja = true
- return null
}
+ if (state.gcode) {
+ if (stream.sol() || stream.eol()) {
+ state.gcode = false
+ state.gcodeZeroPos = null
+ return null
+ }
- return gcode.token(stream, state, state.gcodeZeroPos)
- }
+ if (!state.gcodeZeroPos) {
+ stream.eatSpace()
+ state.gcodeZeroPos = stream.pos
+ }
- if (stream.match(/^gcode:\s*/)) {
- stream.skipToEnd()
- state.gcode = true
- return 'atom'
- }
+ if (state.klipperMacroJinja) {
+ if (
+ (state.klipperMacroJinjaPercent && stream.match(/^%}/)) ||
+ (!state.klipperMacroJinjaPercent && stream.match(/^}/))
+ ) {
+ state.klipperMacroJinja = false
+ state.klipperMacroJinjaPercent = false
+ stream.eatSpace()
+ state.gcodeZeroPos = stream.pos
+ return null
+ }
+ stream.next()
+ return 'string'
+ }
- if (state.pair) {
- if (stream.match(/^[\^!]*[a-z_]+[0-9]*?:/i)) {
- stream.backUp(1)
- return 'macroName'
- } else if (
- stream.match(/^[\^!]*(?:(?:P[A-Z]?|A[A-Z]?|EXP|GPIOCHIP|GPIO)+[0-9.]+|z_virtual_endstop)(_[0-9]+)?/i) ||
- stream.match(/^\/gpio[0-9]+/i)
- ) {
- if (stream.eol()) {
- state.pair = false
+ if (stream.match(/^\s*{[%{]?/)) {
+ state.klipperMacroJinjaPercent = stream.string.includes('{%')
+ state.klipperMacroJinja = true
+ return null
}
- return 'macroName'
- } else if (stream.match(/^\s*\[?(-?[0-9,.:]+)]?/)) {
- if (stream.eol()) {
- state.pair = false
+ return gcode.token(stream, state, state.gcodeZeroPos ?? 0)
+ }
+ } else {
+ state.was = true
+ if (state.gcode) {
+ if (stream.sol()) {
+ stream.eatSpace()
+ state.gcodeZeroPos = stream.pos
}
- return 'number'
- } else if (stream.match(/^([a-zA-Z0-9~"'.,:_/\-\s]+)/)) {
- if (stream.eol()) {
- state.pair = false
+ if (state.klipperMacroJinja) {
+ if (
+ (state.klipperMacroJinjaPercent && stream.match(/^%}/)) ||
+ (!state.klipperMacroJinjaPercent && stream.match(/^}/))
+ ) {
+ state.klipperMacroJinja = false
+ state.klipperMacroJinjaPercent = false
+ stream.eatSpace()
+ state.gcodeZeroPos = stream.pos
+ return null
+ }
+ stream.next()
+ return 'string'
}
- return 'string'
- } else if (stream.match(/^\s*#.*$/)) {
- stream.skipToEnd()
- state.pair = false
- return 'comment'
+
+ if (stream.match(/^\s*{[%{]?/)) {
+ state.klipperMacroJinjaPercent = stream.string.includes('{%')
+ state.klipperMacroJinja = true
+ return null
+ }
+ return gcode.token(stream, state, state.gcodeZeroPos ?? stream.pos)
+ } else if (state.pair) {
+ stream.eatSpace()
+ if (ch !== ',') {
+ if (stream.match(/^-?\d*\.?(?:\d+)?($|,)/)) {
+ return 'number'
+ }
+ if (stream.match(/^[^#]+/)) {
+ return 'string'
+ }
+ }
+ stream.next()
+ return null
}
- stream.next()
- return null
}
+ if (state.was && stream.indentation() === 0) {
+ state.pair = false
+ state.gcode = false
+ state.was = false
+ }
+
+ if (!state.pair && !state.gcode && stream.sol()) {
+ if (stream.match(/^(?:[A-Za-z]*_?gcode|enable):/)) {
+ state.gcode = true
+ } else {
+ stream.match(/^.+?:\s*/)
+ state.pair = !stream.eol()
+ }
- if (stream.match(/^[a-zA-Z0-9_]+\s?[:=]\s?/)) {
- state.pair = true
return 'atom'
}
- /*if (stream.match(/^\[include.*]$/)) {
- console.log(stream, state);
- return "macroName";
- }*/
-
- if (state.block) {
- if (stream.match(/^[a-z0-9-_]+/i)) {
- return 'namespace'
+ if (state.pair) {
+ if (ch === ':') {
+ stream.next()
+ stream.eatSpace()
+ return null
}
- if (stream.match(/^\s[a-z0-9-_./*\s]+/i)) {
- return 'className'
+
+ if (!ch || stream.eol()) {
+ state.pair = false
+ return null
}
- stream.skipToEnd()
- state.block = false
- return null
- }
- if (stream.next() === '[') {
- state.block = true
- return null
+ if (stream.match(/^(-?\d*\.?(?:\d+)?(,|$|\s))+/)) {
+ state.pair = false
+ return 'number'
+ }
+ if (stream.match(/^[^#]+/)) {
+ state.pair = false
+ return 'string'
+ }
}
- if (stream.match(/^('([^']|\\.)*'?|"([^"]|\\.)*"?)/)) return 'string'
-
stream.next()
- return 'string'
+ return null
},
startState: function (): StreamParserKlipperConfigState {
return {
block: false,
pair: false,
+ was: false,
gcode: false,
klipperMacro: false,
gcodeZeroPos: null,
klipperMacroJinja: false,
+ klipperMacroJinjaPercent: false,
}
},
languageData: {
@@ -135,8 +177,10 @@ export const klipper_config = {
interface StreamParserKlipperConfigState {
block: boolean
pair: boolean
+ was: boolean
gcode: boolean
gcodeZeroPos: number | null
klipperMacro: boolean
klipperMacroJinja: boolean
+ klipperMacroJinjaPercent: boolean
}
diff --git a/src/plugins/StreamParserYaml.ts b/src/plugins/StreamParserYaml.ts
index 9ec07ca1c..f1ad68653 100644
--- a/src/plugins/StreamParserYaml.ts
+++ b/src/plugins/StreamParserYaml.ts
@@ -1,4 +1,4 @@
-import { StringStream } from '@codemirror/stream-parser'
+import { StringStream } from '@codemirror/language'
const cons = ['true', 'false', 'on', 'off', 'yes', 'no']
const keywordRegex = new RegExp('\\b((' + cons.join(')|(') + '))$', 'i')
diff --git a/src/plugins/codemirrorTheme.ts b/src/plugins/codemirrorTheme.ts
index 82c905620..fe92840b5 100644
--- a/src/plugins/codemirrorTheme.ts
+++ b/src/plugins/codemirrorTheme.ts
@@ -1,13 +1,14 @@
import { EditorView } from '@codemirror/view'
import { Extension } from '@codemirror/state'
-import { HighlightStyle, tags as t } from '@codemirror/highlight'
+import { tags as t } from '@lezer/highlight'
+import { HighlightStyle, syntaxHighlighting } from '@codemirror/language'
const ui = {
background: '#1e1e1e',
foreground: '#d4d4d4',
}
-export const mainsailEditor = EditorView.theme(
+const mainsailEditor = EditorView.theme(
{
'&': {
color: '#d4d4d4',
@@ -40,7 +41,7 @@ export const mainsailEditor = EditorView.theme(
{ dark: true }
)
-export const mainsailHighlightStyle = HighlightStyle.define([
+const mainsailHighlightStyle = HighlightStyle.define([
{ tag: t.number, color: '#b5cea8' },
{ tag: [t.meta], color: '#d4d4d4' },
{ tag: [t.comment], color: '#6a9955' },
@@ -51,7 +52,11 @@ export const mainsailHighlightStyle = HighlightStyle.define([
{ tag: t.name, color: '#e40', fontWeight: 'bold' },
{ tag: t.propertyName, color: '#e56735' },
])
+const fn0 = mainsailHighlightStyle.style
+// noinspection JSConstantReassignment
+// @ts-ignore
+mainsailHighlightStyle.style = (tags) => fn0(tags || [])
/// Extension to enable the Mox theme (both the editor theme and
/// the highlight style).
-export const mainsailTheme: Extension = [mainsailEditor, mainsailHighlightStyle]
+export const mainsailTheme: Extension = [mainsailEditor, syntaxHighlighting(mainsailHighlightStyle)]
diff --git a/src/plugins/webSocketClient.ts b/src/plugins/webSocketClient.ts
index 3e651cced..b79d5cc35 100644
--- a/src/plugins/webSocketClient.ts
+++ b/src/plugins/webSocketClient.ts
@@ -24,23 +24,12 @@ export class WebSocketClient {
this.url = url
}
- // eslint-disable-next-line
- passToStore(eventName: string, event: any): void {
- if (!eventName.startsWith('socket/')) {
- return
- }
-
- this.store?.dispatch(eventName, event)
- }
-
async connect() {
this.store?.dispatch('socket/setData', {
isConnecting: true,
})
- if (this.instance) {
- this.instance.close()
- }
+ await this.instance?.close()
this.instance = new WebSocket(this.url)
this.instance.onopen = () => {
@@ -48,88 +37,100 @@ export class WebSocketClient {
this.store?.dispatch('socket/onOpen', event)
}
- this.instance.onclose = async (e) => {
- if (!e.wasClean && this.reconnects < this.maxReconnects) {
- this.reconnects++
- setTimeout(() => {
- this.connect()
- }, this.reconnectInterval)
- } else await this.store?.dispatch('socket/onClose', e)
+ this.instance.onclose = (e) => {
+ if (e.wasClean || this.reconnects >= this.maxReconnects) {
+ this.store?.dispatch('socket/onClose', e)
+ return
+ }
+
+ this.reconnects++
+ setTimeout(() => {
+ this.connect()
+ }, this.reconnectInterval)
}
this.instance.onerror = () => {
- if (this.instance) this.instance.close()
+ this.instance?.close()
}
this.instance.onmessage = (msg) => {
+ if (this.store === null) return
+
const data = JSON.parse(msg.data)
- if (this.store) {
- const wait = this.getWaitById(data.id)
- if (wait && wait.action !== '') {
- if (data.error?.message) {
- if (data.error?.message !== 'Klippy Disconnected')
- window.console.error('Response Error: ' + wait.action + ' > ' + data.error.message)
- } else if (wait.action) {
- let result = data.result
- if (result === 'ok') result = { result: result }
- if (typeof result === 'string') result = { result: result }
-
- const preload = {}
- if (wait.actionPayload) Object.assign(preload, wait.actionPayload)
- Object.assign(preload, { requestParams: wait.params })
- Object.assign(preload, result)
- this.store?.dispatch(wait.action, preload)
- }
- } else this.store?.dispatch('socket/onMessage', data)
-
- if (wait) this.removeWaitById(wait.id)
+ const wait = this.getWaitById(data.id)
+
+ // report error messages
+ if (data.error?.message) {
+ if (data.error?.message !== 'Klippy Disconnected')
+ window.console.error(`Response Error: ${data.error.message} (${wait?.action ?? 'no action'})`)
+
+ if (wait?.id) this.removeWaitById(wait.id)
+
+ return
}
+
+ // pass it to socket/onMessage, if no wait exists
+ if (!wait) {
+ this.store?.dispatch('socket/onMessage', data)
+ return
+ }
+
+ // pass result to action
+ if (wait?.action) {
+ let result = data.result
+ if (result === 'ok') result = { result: result }
+ if (typeof result === 'string') result = { result: result }
+
+ const preload = {}
+ if (wait.actionPayload) Object.assign(preload, wait.actionPayload)
+ Object.assign(preload, { requestParams: wait.params })
+ Object.assign(preload, result)
+ this.store?.dispatch(wait.action, preload)
+ }
+
+ this.removeWaitById(wait.id)
}
}
- async close() {
- if (this.instance) await this.instance.close()
+ close(): void {
+ this.instance?.close()
}
getWaitById(id: number): Wait | null {
return this.waits.find((wait: Wait) => wait.id === id) ?? null
}
- removeWaitById(id: number): void {
+ removeWaitById(id: number | null): void {
const index = this.waits.findIndex((wait: Wait) => wait.id === id)
if (index) {
const wait = this.waits[index]
- if (wait.loading && this.store) {
- this.store.dispatch('socket/removeLoading', { name: wait.loading })
- }
+ if (wait.loading) this.store?.dispatch('socket/removeLoading', { name: wait.loading })
this.waits.splice(index, 1)
}
}
emit(method: string, params: Params, options: emitOptions = {}): void {
- if (this.instance?.readyState === WebSocket.OPEN) {
- const id = Math.floor(Math.random() * 10000) + 1
- this.waits.push({
- id: id,
- params: params,
- action: options.action ?? null,
- actionPayload: options.actionPayload ?? {},
- loading: options.loading ?? null,
- })
+ if (this.instance?.readyState !== WebSocket.OPEN) return
+
+ const id = Math.floor(Math.random() * 10000) + 1
+ this.waits.push({
+ id: id,
+ params: params,
+ action: options.action ?? null,
+ actionPayload: options.actionPayload ?? {},
+ loading: options.loading ?? null,
+ })
- if (options.loading && this.store) {
- this.store.dispatch('socket/addLoading', { name: options.loading })
- }
+ if (options.loading) this.store?.dispatch('socket/addLoading', { name: options.loading })
- const msg = JSON.stringify({
+ this.instance.send(
+ JSON.stringify({
jsonrpc: '2.0',
- method: method,
- params: params,
- id: id,
+ method,
+ params,
+ id,
})
-
- this.instance.send(msg)
- }
+ )
}
}
diff --git a/src/store/actions.ts b/src/store/actions.ts
index 7fa3caa0e..966101e52 100644
--- a/src/store/actions.ts
+++ b/src/store/actions.ts
@@ -1,7 +1,6 @@
import router from '@/plugins/router'
import { ActionTree } from 'vuex'
import { ConfigJson, RootState } from './types'
-import { v4 as uuidv4 } from 'uuid'
export const actions: ActionTree = {
switchToDashboard() {
@@ -9,8 +8,6 @@ export const actions: ActionTree = {
},
changePrinter({ dispatch, getters, state }, payload) {
- const remoteMode = state.remoteMode
-
dispatch('files/reset')
dispatch('gui/reset')
dispatch('printer/reset')
@@ -31,18 +28,30 @@ export const actions: ActionTree = {
/**
* This function will parse the config.json content and config mainsail
- * @param commit - vuex commit
- * @param dispatch - vuex dispatch
- * @param payload - content of config.json as a object
*/
importConfigJson({ commit, dispatch }, payload: ConfigJson) {
- const remoteMode = 'remoteMode' in payload ? payload.remoteMode : false
- if (remoteMode) {
- commit('setRemoteMode', true)
-
- if ('instances' in payload && Array.isArray(payload.instances) && payload.instances.length) {
+ type RootStateInstancesDbType = 'moonraker' | 'browser' | 'json'
+ let instancesDB: RootStateInstancesDbType = payload.instancesDB ?? 'moonraker'
+ if (document.location.hostname === 'my.mainsail.xyz') instancesDB = 'browser'
+ if (import.meta.env.VUE_APP_INSTANCES_DB)
+ instancesDB = import.meta.env.VUE_APP_INSTANCES_DB as RootStateInstancesDbType
+
+ if (instancesDB !== 'moonraker') {
+ commit('setInstancesDB', instancesDB)
+
+ if (
+ instancesDB === 'json' &&
+ 'instances' in payload &&
+ Array.isArray(payload.instances) &&
+ payload.instances.length
+ ) {
commit('setConfigInstances', payload.instances)
}
+
+ return
}
+
+ if (payload.hostname) commit('socket/setData', { hostname: payload.hostname })
+ if (payload.port) commit('socket/setData', { port: parseInt(payload.port.toString()) })
},
}
diff --git a/src/store/farm/printer/getters.ts b/src/store/farm/printer/getters.ts
index 6331fdc33..41406c149 100644
--- a/src/store/farm/printer/getters.ts
+++ b/src/store/farm/printer/getters.ts
@@ -65,7 +65,24 @@ export const getters: GetterTree = {
return state.data.print_stats?.filename ?? ''
},
- getPrintPercent: (state) => {
+ getPrintPercent: (state, getters) => {
+ const type = state.data.gui?.general?.calcPrintProgress ?? 'file-relative'
+ switch (type) {
+ case 'file-relative':
+ return getters['getPrintPercentByFilepositionRelative']
+ case 'file-absolute':
+ return getters['getPrintPercentByFilepositionAbsolute']
+ case 'slicer':
+ return getters['getPrintPercentBySlicer']
+ case 'filament':
+ return getters['getPrintPercentByFilament']
+
+ default:
+ return getters['getPrintPercentByFilepositionRelative']
+ }
+ },
+
+ getPrintPercentByFilepositionRelative: (state) => {
if (
state.current_file?.filename &&
state.current_file?.gcode_start_byte &&
@@ -84,6 +101,27 @@ export const getters: GetterTree = {
return state.data.virtual_sdcard?.progress ?? 0
},
+ getPrintPercentByFilepositionAbsolute: (state) => {
+ return state.data.virtual_sdcard?.progress ?? 0
+ },
+
+ getPrintPercentBySlicer: (state) => {
+ return state.data.display_status?.progress ?? 0
+ },
+
+ getPrintPercentByFilament: (state) => {
+ const filament_used = state.data.print_stats?.filament_used ?? null
+ const filament_total = state.current_file?.filament_total ?? null
+
+ if (filament_used !== null && filament_total !== null) {
+ if (filament_total == 0) return 0
+
+ return filament_used / filament_total
+ }
+
+ return state.data.virtual_sdcard?.progress ?? 0
+ },
+
getImage: (state) => {
if (state.current_file.filename && state.current_file.thumbnails?.length) {
const indexLastDir = state.current_file.filename.lastIndexOf('/')
diff --git a/src/store/files/getters.ts b/src/store/files/getters.ts
index 27037dd35..b70525451 100644
--- a/src/store/files/getters.ts
+++ b/src/store/files/getters.ts
@@ -44,6 +44,9 @@ export const getters: GetterTree = {
getGcodeFiles:
(state, getters, rootState, rootGetters) =>
(path: string | null, boolShowHiddenFiles: boolean, boolShowPrintedFiles: boolean) => {
+ const rootGcodes = getters['getDirectory']('gcodes')
+ if (rootGcodes === null) return []
+
let baseURL = `${rootGetters['socket/getUrl']}/server/files/gcodes`
let files: FileStateFile[] = []
@@ -52,8 +55,6 @@ export const getters: GetterTree = {
const directory = getters['getDirectory']('gcodes' + path)
files = directory?.childrens ?? []
} else {
- const rootGcodes = getters['getDirectory']('gcodes')
-
const searchGcodes = (directory: FileStateFile, currentPath: string) => {
if (directory.isDirectory && directory.childrens?.length) {
directory.childrens?.forEach((file) => {
@@ -89,6 +90,7 @@ export const getters: GetterTree = {
const fileTimestamp = typeof file.modified.getTime === 'function' ? file.modified.getTime() : 0
const tmp: FileStateGcodefile = {
...file,
+ preheat_gcode: null,
small_thumbnail: null,
big_thumbnail: null,
big_thumbnail_width: null,
@@ -101,6 +103,22 @@ export const getters: GetterTree = {
last_total_duration: null,
}
+ const preheat_gcode_array: string[] = []
+ const preheat_gcode_objects = [
+ { name: 'first_layer_extr_temp', gcode: 'M104' },
+ { name: 'first_layer_bed_temp', gcode: 'M140' },
+ ]
+
+ preheat_gcode_objects.forEach((object) => {
+ if (object.name in file && file[object.name] > 1) {
+ preheat_gcode_array.push(`${object.gcode} S${file[object.name]}`)
+ }
+ })
+
+ if (preheat_gcode_array.length) {
+ tmp.preheat_gcode = preheat_gcode_array.join('\n')
+ }
+
if (file.thumbnails?.length) {
let subdirectory = ''
if (path === null) {
diff --git a/src/store/files/types.ts b/src/store/files/types.ts
index e8d85aa77..55197c159 100644
--- a/src/store/files/types.ts
+++ b/src/store/files/types.ts
@@ -39,9 +39,11 @@ export interface FileStateFile {
metadataPulled?: boolean
metadataRequested?: boolean
size?: number
+ [key: string]: any
}
export interface FileStateGcodefile extends FileStateFile {
+ preheat_gcode: string | null
small_thumbnail: string | null
big_thumbnail: string | null
big_thumbnail_width: number | null
diff --git a/src/store/gui/actions.ts b/src/store/gui/actions.ts
index 65df52a80..aab4627f2 100644
--- a/src/store/gui/actions.ts
+++ b/src/store/gui/actions.ts
@@ -13,6 +13,7 @@ export const actions: ActionTree = {
dispatch('gcodehistory/reset')
dispatch('macros/reset')
dispatch('presets/reset')
+ dispatch('webcams/reset')
},
init() {
@@ -25,7 +26,8 @@ export const actions: ActionTree = {
const mainsailUrl = baseUrl + '?namespace=mainsail'
if ('remoteprinters' in payload.value) {
- if (!rootState.remoteMode) dispatch('remoteprinters/initStore', payload.value.remoteprinters.printers)
+ if (rootState.instancesDB === 'moonraker')
+ dispatch('remoteprinters/initStore', payload.value.remoteprinters.printers)
delete payload.value.remoteprinters
}
@@ -113,7 +115,8 @@ export const actions: ActionTree = {
})
}
- commit('setData', payload.value)
+ await commit('setData', payload.value)
+ await dispatch('socket/removeInitModule', 'gui/init', { root: true })
},
/*
diff --git a/src/store/gui/index.ts b/src/store/gui/index.ts
index a971b4453..6d6093259 100644
--- a/src/store/gui/index.ts
+++ b/src/store/gui/index.ts
@@ -19,6 +19,7 @@ export const getDefaultState = (): GuiState => {
general: {
printername: '',
language: 'en',
+ calcPrintProgress: 'file-relative',
calcEstimateTime: ['file', 'filament'],
calcEtaTime: ['file', 'filament', 'slicer'],
},
@@ -227,6 +228,7 @@ export const getDefaultState = (): GuiState => {
sortDesc: true,
showHiddenFiles: false,
currentPath: 'timelapse',
+ selectedFiles: [],
},
webcam: {
currentCam: {
diff --git a/src/store/gui/remoteprinters/actions.ts b/src/store/gui/remoteprinters/actions.ts
index 452b1ebd1..93d9abf5f 100644
--- a/src/store/gui/remoteprinters/actions.ts
+++ b/src/store/gui/remoteprinters/actions.ts
@@ -15,7 +15,7 @@ export const actions: ActionTree = {
initFromLocalstorage({ dispatch, rootState }) {
let value = rootState.configInstances ?? []
- if (value.length === 0) value = JSON.parse(localStorage.getItem('printers') ?? '{}')
+ if (rootState.instancesDB === 'moonraker') value = JSON.parse(localStorage.getItem('printers') ?? '{}')
if (Array.isArray(value)) {
const printers: any = {}
@@ -47,7 +47,7 @@ export const actions: ActionTree = {
},
upload({ state, rootState }, id) {
- if (rootState.remoteMode) {
+ if (rootState.instancesDB === 'browser') {
const printers: any[] = []
Object.keys(state.printers).forEach((id: string) => {
@@ -59,7 +59,7 @@ export const actions: ActionTree = {
})
localStorage.setItem('printers', JSON.stringify(printers))
- } else if (id in state.printers) {
+ } else if (rootState.instancesDB === 'moonraker' && id in state.printers) {
const value = {
hostname: state.printers[id].hostname,
port: state.printers[id].port,
@@ -112,7 +112,7 @@ export const actions: ActionTree = {
commit('delete', id)
dispatch('farm/unregisterPrinter', id, { root: true })
- if (rootState.remoteMode) dispatch('upload')
+ if (rootState.instancesDB === 'browser') dispatch('upload')
else {
Vue.$socket.emit('server.database.delete_item', {
namespace: 'mainsail',
diff --git a/src/store/gui/types.ts b/src/store/gui/types.ts
index fdafe2c80..5263ec9e3 100644
--- a/src/store/gui/types.ts
+++ b/src/store/gui/types.ts
@@ -10,6 +10,7 @@ export interface GuiState {
general: {
printername: string
language: string
+ calcPrintProgress: 'file-relative' | 'file-absolute' | 'slicer' | 'filament'
calcEstimateTime: string[] // file, filament are possible values
calcEtaTime: string[] // file, filament, slicer are possible values
}
@@ -156,6 +157,7 @@ export interface GuiState {
sortDesc: boolean
showHiddenFiles: boolean
currentPath: string
+ selectedFiles: FileStateFile[]
}
webcam: {
currentCam: {
diff --git a/src/store/gui/webcams/actions.ts b/src/store/gui/webcams/actions.ts
index 603d866b8..49278044b 100644
--- a/src/store/gui/webcams/actions.ts
+++ b/src/store/gui/webcams/actions.ts
@@ -14,9 +14,10 @@ export const actions: ActionTree = {
Vue.$socket.emit('server.database.get_item', { namespace: 'webcams' }, { action: 'gui/webcams/initStore' })
},
- initStore({ commit }, payload) {
- commit('reset')
- commit('initStore', payload)
+ async initStore({ commit, dispatch }, payload) {
+ await commit('reset')
+ await commit('initStore', payload)
+ await dispatch('socket/removeInitModule', 'gui/webcam/init', { root: true })
},
upload(_, payload) {
diff --git a/src/store/gui/webcams/types.ts b/src/store/gui/webcams/types.ts
index 2ae32d407..16e55b13d 100644
--- a/src/store/gui/webcams/types.ts
+++ b/src/store/gui/webcams/types.ts
@@ -12,6 +12,7 @@ export interface GuiWebcamStateWebcam {
targetFps: number
urlStream: string
urlSnapshot: string
+ rotate?: number
flipX: boolean
flipY: boolean
}
diff --git a/src/store/index.ts b/src/store/index.ts
index 8820032b4..5ff2eee83 100644
--- a/src/store/index.ts
+++ b/src/store/index.ts
@@ -18,20 +18,11 @@ import { gcodeviewer } from '@/store/gcodeviewer'
Vue.use(Vuex)
export const getDefaultState = (): RootState => {
- let remoteMode = false
-
- if (
- document.location.hostname === 'my.mainsail.xyz' ||
- String(import.meta.env.VUE_APP_REMOTE_MODE).toLowerCase() === 'true' ||
- String(import.meta.env.VUE_APP_REMOTE_MODE) === '1'
- )
- remoteMode = true
-
return {
packageVersion: (import.meta.env.PACKAGE_VERSION as string) || '0.0.0',
debugMode: (import.meta.env.VUE_APP_DEBUG_MODE as boolean) || false,
naviDrawer: null,
- remoteMode,
+ instancesDB: 'moonraker',
configInstances: [],
}
}
diff --git a/src/store/mutations.ts b/src/store/mutations.ts
index 8827a6122..1186708d7 100644
--- a/src/store/mutations.ts
+++ b/src/store/mutations.ts
@@ -7,8 +7,8 @@ export const mutations: MutationTree = {
Vue.set(state, 'naviDrawer', payload)
},
- setRemoteMode(state, payload) {
- Vue.set(state, 'remoteMode', payload)
+ setInstancesDB(state, payload) {
+ Vue.set(state, 'instancesDB', payload)
},
setConfigInstances(state, payload) {
diff --git a/src/store/printer/actions.ts b/src/store/printer/actions.ts
index 9d2b14efe..bf818b7e9 100644
--- a/src/store/printer/actions.ts
+++ b/src/store/printer/actions.ts
@@ -10,8 +10,15 @@ export const actions: ActionTree = {
commit('socket/clearLoadings', null, { root: true })
},
- init() {
+ init({ dispatch }) {
window.console.debug('init printer')
+ dispatch('reset')
+
+ dispatch('socket/addInitModule', 'printer/info', { root: true })
+ dispatch('socket/addInitModule', 'printer/initSubscripts', { root: true })
+ dispatch('socket/addInitModule', 'printer/initHelpList', { root: true })
+ dispatch('socket/addInitModule', 'printer/initTempHistory', { root: true })
+ dispatch('socket/addInitModule', 'server/gcode_store', { root: true })
Vue.$socket.emit('printer.info', {}, { action: 'printer/getInfo' })
Vue.$socket.emit('printer.objects.list', {}, { action: 'printer/initSubscripts' })
@@ -19,7 +26,7 @@ export const actions: ActionTree = {
Vue.$socket.emit('server.gcode_store', {}, { action: 'server/getGcodeStore' })
},
- getInfo({ commit }, payload) {
+ getInfo({ commit, dispatch }, payload) {
commit(
'server/setData',
{
@@ -34,9 +41,11 @@ export const actions: ActionTree = {
software_version: payload.software_version,
cpu_info: payload.cpu_info,
})
+
+ dispatch('socket/removeInitModule', 'printer/info', { root: true })
},
- initSubscripts(_, payload) {
+ initSubscripts({ dispatch }, payload) {
let subscripts = {}
const blocklist = ['menu']
@@ -49,6 +58,8 @@ export const actions: ActionTree = {
if (Object.keys(subscripts).length > 0)
Vue.$socket.emit('printer.objects.subscribe', { objects: subscripts }, { action: 'printer/getInitData' })
else Vue.$socket.emit('server.temperature_store', {}, { action: 'printer/tempHistory/init' })
+
+ dispatch('socket/removeInitModule', 'printer/initSubscripts', { root: true })
},
getInitData({ dispatch }, payload) {
@@ -109,8 +120,10 @@ export const actions: ActionTree = {
commit('setData', payload)
},
- initHelpList({ commit }, payload) {
+ initHelpList({ commit, dispatch }, payload) {
commit('setHelplist', payload)
+
+ dispatch('socket/removeInitModule', 'printer/initHelpList', { root: true })
},
getEndstopStatus({ commit }, payload) {
diff --git a/src/store/printer/getters.ts b/src/store/printer/getters.ts
index 09d6666b8..a882f9df7 100644
--- a/src/store/printer/getters.ts
+++ b/src/store/printer/getters.ts
@@ -36,7 +36,24 @@ import {
} from '@mdi/js'
export const getters: GetterTree = {
- getPrintPercent: (state) => {
+ getPrintPercent: (state, getters, rootState) => {
+ const type = rootState?.gui?.general?.calcPrintProgress ?? 'file-relative'
+ switch (type) {
+ case 'file-relative':
+ return getters['getPrintPercentByFilepositionRelative']
+ case 'file-absolute':
+ return getters['getPrintPercentByFilepositionAbsolute']
+ case 'slicer':
+ return getters['getPrintPercentBySlicer']
+ case 'filament':
+ return getters['getPrintPercentByFilament']
+
+ default:
+ return getters['getPrintPercentByFilepositionRelative']
+ }
+ },
+
+ getPrintPercentByFilepositionRelative: (state) => {
if (
state.current_file?.filename &&
state.current_file?.gcode_start_byte &&
@@ -55,6 +72,30 @@ export const getters: GetterTree = {
return state.virtual_sdcard?.progress ?? 0
},
+ getPrintPercentByFilepositionAbsolute: (state) => {
+ return state.virtual_sdcard?.progress ?? 0
+ },
+
+ getPrintPercentBySlicer: (state) => {
+ return state.display_status?.progress ?? 0
+ },
+
+ getPrintPercentByFilament: (state) => {
+ const filament_used = state.print_stats?.filament_used ?? null
+ const filament_total = state.current_file?.filament_total ?? null
+
+ if (filament_used !== null && filament_total !== null) {
+ if (filament_total == 0) return 0
+
+ const progress = filament_used / filament_total
+ if (progress > 1) return 1
+
+ return progress
+ }
+
+ return state.virtual_sdcard?.progress ?? 0
+ },
+
getMacros: (state) => {
const array: PrinterStateMacro[] = []
const config = state.configfile?.config ?? {}
@@ -357,7 +398,7 @@ export const getters: GetterTree = {
let controllable = controllableFans.includes(nameSplit[0].toLowerCase())
const settings = state.configfile?.settings[key.toLowerCase()] ?? {}
const power = 'speed' in value ? value.speed : 'value' in value ? value.value : 0
- const rpm = 'rpm' in value ? value.rpm : false
+ const rpm = 'rpm' in value ? value.rpm : null
let pwm = controllable
let scale = 1
@@ -373,11 +414,11 @@ export const getters: GetterTree = {
const tmp = {
name: name,
type: nameSplit[0],
- power: power,
- controllable: controllable,
- pwm: pwm,
- rpm: rpm,
- scale: scale,
+ power,
+ controllable,
+ pwm,
+ rpm,
+ scale,
object: value,
config: settings,
off_below: undefined,
@@ -601,7 +642,7 @@ export const getters: GetterTree = {
const sensors = getters.getMcuTempSensors
// eslint-disable-next-line
sensors.forEach((sensor: { key: string; settings: any; object: any }) => {
- if (sensor.settings?.sensor_mcu === mcuName && sensor.object?.temperature) {
+ if (mcuName.endsWith(sensor.settings?.sensor_mcu) && sensor.object?.temperature) {
output = {
temperature: sensor.object.temperature.toFixed(0),
measured_min_temp: sensor.object.measured_min_temp?.toFixed(1) ?? null,
@@ -902,4 +943,10 @@ export const getters: GetterTree = {
return 'screws_tilt_adjust' in state.configfile.settings
},
+
+ existsFirmwareRetraction: (state) => {
+ if (!state.configfile?.settings) return false
+
+ return 'firmware_retraction' in state.configfile.settings
+ },
}
diff --git a/src/store/printer/tempHistory/actions.ts b/src/store/printer/tempHistory/actions.ts
index 8c622c49e..2751ae6e8 100644
--- a/src/store/printer/tempHistory/actions.ts
+++ b/src/store/printer/tempHistory/actions.ts
@@ -227,6 +227,8 @@ export const actions: ActionTree = {
commit('setUpdateSourceInterval', updateSourceInterval)
}
+
+ dispatch('socket/removeInitModule', 'printer/initTempHistory', { root: true })
},
async updateSource({ commit, rootState, rootGetters, state }) {
diff --git a/src/store/server/actions.ts b/src/store/server/actions.ts
index c2d581163..eb91058d1 100644
--- a/src/store/server/actions.ts
+++ b/src/store/server/actions.ts
@@ -8,6 +8,9 @@ import { initableServerComponents } from '@/store/variables'
export const actions: ActionTree = {
reset({ commit, dispatch }) {
+ dispatch('stopKlippyConnectedInterval')
+ dispatch('stopKlippyStateInterval')
+
commit('reset')
dispatch('power/reset')
dispatch('updateManager/reset')
@@ -16,15 +19,24 @@ export const actions: ActionTree = {
async init({ dispatch }) {
window.console.debug('init Server')
- await dispatch('identify')
- await Vue.$socket.emit('server.info', {}, { action: 'server/initServerInfo' })
- await Vue.$socket.emit('server.config', {}, { action: 'server/initServerConfig' })
- await Vue.$socket.emit('machine.system_info', {}, { action: 'server/initSystemInfo' })
- await Vue.$socket.emit('machine.proc_stats', {}, { action: 'server/initProcStats' })
- await Vue.$socket.emit('server.database.list', { root: 'config' }, { action: 'server/checkDatabases' })
+ dispatch('socket/addInitModule', 'server/info', { root: true })
+ dispatch('socket/addInitModule', 'server/config', { root: true })
+ dispatch('socket/addInitModule', 'server/systemInfo', { root: true })
+ dispatch('socket/addInitModule', 'server/procStats', { root: true })
+ dispatch('socket/addInitModule', 'server/databaseList', { root: true })
+
+ dispatch('identify')
+ Vue.$socket.emit('server.info', {}, { action: 'server/initServerInfo' })
+ Vue.$socket.emit('server.config', {}, { action: 'server/initServerConfig' })
+ Vue.$socket.emit('machine.system_info', {}, { action: 'server/initSystemInfo' })
+ Vue.$socket.emit('machine.proc_stats', {}, { action: 'server/initProcStats' })
+ Vue.$socket.emit('server.database.list', { root: 'config' }, { action: 'server/checkDatabases' })
+
+ await dispatch('socket/removeInitModule', 'server', { root: true })
},
- identify({ rootState }) {
+ identify({ dispatch, rootState }): void {
+ dispatch('socket/addInitModule', 'server/identify', { root: true })
Vue.$socket.emit(
'server.connection.identify',
{
@@ -37,19 +49,25 @@ export const actions: ActionTree = {
)
},
- setConnectionId({ commit }, payload) {
+ setConnectionId({ commit, dispatch }, payload) {
commit('setConnectionId', payload.connection_id)
+ dispatch('socket/removeInitModule', 'server/identify', { root: true })
},
checkDatabases({ dispatch, commit, rootState }, payload) {
- if (payload.namespaces?.includes('mainsail')) dispatch('gui/init', null, { root: true })
- else dispatch('gui/initDb', null, { root: true })
- if (payload.namespaces?.includes('webcams')) dispatch('gui/webcams/init', null, { root: true })
+ if (payload.namespaces?.includes('mainsail')) {
+ dispatch('socket/addInitModule', 'gui/init', { root: true })
+ dispatch('gui/init', null, { root: true })
+ } else dispatch('gui/initDb', null, { root: true })
+ if (payload.namespaces?.includes('webcams')) {
+ dispatch('socket/addInitModule', 'gui/webcam/init', { root: true })
+ dispatch('gui/webcams/init', null, { root: true })
+ }
commit('saveDbNamespaces', payload.namespaces)
Vue.$socket.emit('server.info', {}, { action: 'server/checkKlippyConnected' })
- //dispatch('printer/init', null, { root: true })
+ dispatch('socket/removeInitModule', 'server/databaseList', { root: true })
},
initServerInfo({ dispatch, commit }, payload) {
@@ -58,13 +76,14 @@ export const actions: ActionTree = {
if ('failed_plugins' in payload) delete payload.failed_plugins
if (payload.components?.length) {
- payload.components.forEach((component: string) => {
+ for (let component of payload.components) {
component = camelize(component)
if (initableServerComponents.includes(component)) {
window.console.debug('init server component: ' + component)
+ dispatch('socket/addInitModule', 'server/' + component + '/init', { root: true })
dispatch('server/' + component + '/init', {}, { root: true })
}
- })
+ }
}
if (payload.registered_directories?.length) {
@@ -72,22 +91,30 @@ export const actions: ActionTree = {
}
commit('setData', payload)
+ dispatch('socket/removeInitModule', 'server/info', { root: true })
},
- initServerConfig({ commit }, payload) {
+ initServerConfig({ commit, dispatch }, payload) {
commit('setConfig', payload)
+ dispatch('socket/removeInitModule', 'server/config', { root: true })
},
- initSystemInfo({ commit }, payload) {
+ initSystemInfo({ commit, dispatch }, payload) {
commit('setSystemInfo', payload.system_info)
+ dispatch('socket/removeInitModule', 'server/systemInfo', { root: true })
},
- initProcStats({ commit }, payload) {
- if (payload.throttled_state !== null) commit('setThrottledState', payload.throttled_state)
+ initProcStats({ commit, dispatch }, payload) {
+ if (payload.throttled_state !== null) {
+ commit('setThrottledState', payload.throttled_state)
+ }
+
if (payload.system_uptime) {
const system_boot_at = new Date(new Date().getTime() - payload.system_uptime * 1000)
commit('setSystemBootAt', system_boot_at)
}
+
+ dispatch('socket/removeInitModule', 'server/procStats', { root: true })
},
updateProcStats({ commit }, payload) {
@@ -97,84 +124,88 @@ export const actions: ActionTree = {
if ('system_cpu_usage' in payload) commit('setCpuStats', payload.system_cpu_usage)
},
- setKlippyReady({ dispatch, state }) {
- if (state.klippy_connected_timer !== null) dispatch('stopKlippyConnectedInterval')
- if (state.klippy_state_timer !== null) dispatch('stopKlippyStateInterval')
+ setKlippyReady({ dispatch }) {
+ dispatch('stopKlippyConnectedInterval')
+ dispatch('stopKlippyStateInterval')
dispatch('printer/reset', null, { root: true })
dispatch('printer/init', null, { root: true })
},
- async setKlippyDisconnected({ commit, dispatch, state }) {
- await commit('setKlippyDisconnected', null)
- if (state.klippy_state_timer !== null) await dispatch('stopKlippyStateInterval')
- await dispatch('startKlippyConnectedInterval')
+ setKlippyDisconnected({ commit, dispatch }) {
+ commit('setKlippyDisconnected', null)
+ dispatch('stopKlippyStateInterval')
+ dispatch('startKlippyConnectedInterval')
},
- async setKlippyShutdown({ commit, dispatch, state }) {
- await commit('setKlippyShutdown', null)
- if (state.klippy_state_timer !== null) await dispatch('stopKlippyStateInterval')
- await dispatch('startKlippyConnectedInterval')
+ setKlippyShutdown({ commit, dispatch }) {
+ commit('setKlippyShutdown', null)
+ dispatch('stopKlippyStateInterval')
+ dispatch('startKlippyConnectedInterval')
},
startKlippyConnectedInterval({ commit, state }) {
- if (state.klippy_connected_timer === null) {
- const timer = setInterval(() => {
- Vue.$socket.emit('server.info', {}, { action: 'server/checkKlippyConnected' })
- }, 2000)
- commit('setKlippyConnectedTimer', timer)
- }
+ if (state.klippy_connected_timer) return
+
+ const timer = setInterval(() => {
+ Vue.$socket.emit('server.info', {}, { action: 'server/checkKlippyConnected' })
+ }, 2000)
+ commit('setKlippyConnectedTimer', timer)
},
stopKlippyConnectedInterval({ commit, state }) {
- if (state.klippy_connected_timer !== null) {
- clearInterval(state.klippy_connected_timer)
- commit('setKlippyConnectedTimer', null)
- }
+ if (state.klippy_connected_timer === null) return
+
+ clearInterval(state.klippy_connected_timer)
+ commit('setKlippyConnectedTimer', null)
},
- async checkKlippyConnected({ commit, dispatch, state }, payload) {
- if (payload.klippy_connected) {
- await dispatch('stopKlippyConnectedInterval')
- await commit('setKlippyConnected')
- dispatch('checkKlippyState', { state: payload.klippy_state, state_message: null })
- } else if (!payload.klippy_connected && state.klippy_connected_timer === null)
+ checkKlippyConnected({ commit, dispatch, state }, payload) {
+ if (!payload.klippy_connected) {
dispatch('startKlippyConnectedInterval')
+
+ return
+ }
+
+ dispatch('stopKlippyConnectedInterval')
+ commit('setKlippyConnected')
+ dispatch('checkKlippyState', { state: payload.klippy_state, state_message: null })
},
startKlippyStateInterval({ commit, state }) {
- if (state.klippy_state_timer === null) {
- const timer = setInterval(() => {
- Vue.$socket.emit('printer.info', {}, { action: 'server/checkKlippyState' })
- }, 2000)
- commit('setKlippyStateTimer', timer)
- }
+ if (state.klippy_state_timer) return
+
+ const timer = setInterval(() => {
+ Vue.$socket.emit('printer.info', {}, { action: 'server/checkKlippyState' })
+ }, 2000)
+ commit('setKlippyStateTimer', timer)
},
stopKlippyStateInterval({ commit, state }) {
- if (state.klippy_state_timer !== null) {
- clearInterval(state.klippy_state_timer)
- commit('setKlippyStateTimer', null)
- }
+ if (state.klippy_state_timer === null) return
+
+ clearInterval(state.klippy_state_timer)
+ commit('setKlippyStateTimer', null)
},
checkKlippyState({ commit, dispatch, state }, payload: { state: string; state_message: string | null }) {
commit('setKlippyState', payload.state)
commit('setKlippyMessage', payload.state_message)
- if (payload.state !== 'ready' && state.klippy_connected && state.klippy_state_timer === null) {
+ if (payload.state !== 'ready') {
dispatch('startKlippyStateInterval')
- } else if (payload.state === 'ready' && state.klippy_state_timer !== null) {
- dispatch('stopKlippyStateInterval')
- } else if (payload.state === 'ready' && state.klippy_state_timer === null) {
- dispatch('printer/init', null, { root: true })
+ return
}
+
+ dispatch('stopKlippyConnectedInterval')
+ dispatch('stopKlippyStateInterval')
+ dispatch('printer/init', null, { root: true })
},
getData({ commit }, payload) {
commit('setData', payload)
},
- getGcodeStore({ commit, rootGetters }, payload) {
+ getGcodeStore({ commit, dispatch, rootGetters }, payload) {
commit('clearGcodeStore')
let events: ServerStateEvent[] = payload.gcode_store
@@ -199,14 +230,11 @@ export const actions: ActionTree = {
return false
}
- if (event.date && new Date(event.date).valueOf() < cleared_since) {
- return false
- }
-
- return true
+ return !(event.date && new Date(event.date).valueOf() < cleared_since)
})
commit('setGcodeStore', events)
+ dispatch('socket/removeInitModule', 'server/gcode_store', { root: true })
},
addRootDirectory({ commit, state }, data) {
@@ -215,7 +243,7 @@ export const actions: ActionTree = {
}
},
- async addEvent({ commit, rootGetters }, payload) {
+ addEvent({ commit, rootGetters }, payload) {
let message = payload
let type = 'response'
@@ -234,7 +262,7 @@ export const actions: ActionTree = {
const regex = new RegExp(filter)
if (regex.test(formatMessage)) boolImport = false
} catch {
- window.console.error("Custom console filter '" + filter + "' doesn't work")
+ window.console.error("Custom console filter '" + filter + "' doesn't work!")
}
return boolImport
@@ -243,7 +271,7 @@ export const actions: ActionTree = {
if (boolImport) {
if (payload.type === 'command') formatMessage = '' + formatMessage + ' '
- await commit('addEvent', {
+ commit('addEvent', {
date: new Date(),
message: message,
formatMessage: formatMessage,
diff --git a/src/store/server/announcements/actions.ts b/src/store/server/announcements/actions.ts
index a4500cdd4..097e5ca5f 100644
--- a/src/store/server/announcements/actions.ts
+++ b/src/store/server/announcements/actions.ts
@@ -12,7 +12,7 @@ export const actions: ActionTree = {
Vue.$socket.emit('server.announcements.list', {}, { action: 'server/announcements/getList' })
},
- getList({ commit }, payload) {
+ async getList({ commit, dispatch }, payload) {
if ('entries' in payload) {
const entries = payload.entries.map((entry: any) => {
const date = new Date(entry.date * 1000)
@@ -22,9 +22,11 @@ export const actions: ActionTree = {
return { ...entry, date, date_dismissed, dismiss_wake }
})
- commit('setEntries', entries)
+ await commit('setEntries', entries)
}
- if ('feeds' in payload) commit('setFeeds', payload.feeds)
+ if ('feeds' in payload) await commit('setFeeds', payload.feeds)
+
+ await dispatch('socket/removeInitModule', 'server/announcements/init', { root: true })
},
getDismissed({ commit }, payload) {
diff --git a/src/store/server/history/actions.ts b/src/store/server/history/actions.ts
index fc34cddc8..922580d8b 100644
--- a/src/store/server/history/actions.ts
+++ b/src/store/server/history/actions.ts
@@ -17,9 +17,9 @@ export const actions: ActionTree = {
commit('setTotals', payload.job_totals)
},
- getHistory({ commit, dispatch, state }, payload) {
+ async getHistory({ commit, dispatch, state }, payload) {
if ('requestParams' in payload && 'start' in payload.requestParams && payload.requestParams.start === 0)
- commit('resetJobs')
+ await commit('resetJobs')
payload.jobs?.forEach((job: ServerHistoryStateJob) => {
if (state.jobs.findIndex((stateJob) => stateJob.job_id === job.job_id) === -1) commit('addJob', job)
@@ -34,28 +34,31 @@ export const actions: ActionTree = {
},
{ action: 'server/history/getHistory' }
)
- else dispatch('loadHistoryNotes')
+ else await dispatch('loadHistoryNotes')
},
- loadHistoryNotes({ rootState }) {
+ loadHistoryNotes({ dispatch, rootState }) {
if (rootState.server?.dbNamespaces.includes('history_notes'))
Vue.$socket.emit(
'server.database.get_item',
{ namespace: 'history_notes' },
{ action: 'server/history/initHistoryNotes' }
)
+ else dispatch('socket/removeInitModule', 'server/history/init', { root: true })
},
- initHistoryNotes({ commit, state }, payload) {
+ async initHistoryNotes({ commit, dispatch, state }, payload) {
const job_ids = Object.keys(payload.value)
- job_ids.forEach((job_id: string) => {
+ for (const job_id of job_ids) {
const noteObject: { text: string } = payload.value[job_id]
- commit('setHistoryNotes', {
+ await commit('setHistoryNotes', {
job_id,
text: noteObject.text,
})
- })
+ }
+
+ await dispatch('socket/removeInitModule', 'server/history/init', { root: true })
},
getChanged({ commit }, payload) {
diff --git a/src/store/server/history/getters.ts b/src/store/server/history/getters.ts
index 44abed823..a9de16571 100644
--- a/src/store/server/history/getters.ts
+++ b/src/store/server/history/getters.ts
@@ -74,6 +74,7 @@ export const getters: GetterTree = {
getAllPrintStatusArray(state, getters, rootState) {
const output: ServerHistoryStateAllPrintStatusEntry[] = []
+ const totalCount = state.jobs.length
state.jobs.forEach((current) => {
const index = output.findIndex((element) => element.name === current.status)
@@ -118,6 +119,37 @@ export const getters: GetterTree = {
}
})
+ const otherLimit = totalCount * 0.05
+ const others = output.filter((entry) => entry.value < otherLimit)
+ if (others.length > 1) {
+ let otherValue = 0
+
+ others.forEach((otherGroup) => {
+ const index = output.findIndex((entry) => entry.name === otherGroup.name)
+ if (index !== -1) {
+ otherValue += output[index].value
+ output.splice(index, 1)
+ }
+ })
+
+ output.push({
+ name: 'others',
+ displayName: i18n.t(`History.StatusValues.Others`).toString(),
+ value: otherValue,
+ itemStyle: {
+ opacity: 0.9,
+ color: '#616161',
+ borderColor: '#1E1E1E',
+ borderWidth: 2,
+ borderRadius: 3,
+ },
+ showInTable: true,
+ label: {
+ color: '#fff',
+ },
+ })
+ }
+
return output
},
diff --git a/src/store/server/jobQueue/actions.ts b/src/store/server/jobQueue/actions.ts
index 753e015cd..89a50b4ab 100644
--- a/src/store/server/jobQueue/actions.ts
+++ b/src/store/server/jobQueue/actions.ts
@@ -17,9 +17,11 @@ export const actions: ActionTree = {
if ('queue_state' in payload) commit('setQueueState', payload.queue_state)
},
- getStatus({ commit }, payload) {
- if ('queued_jobs' in payload) commit('setQueuedJobs', payload.queued_jobs)
- if ('queue_state' in payload) commit('setQueueState', payload.queue_state)
+ async getStatus({ commit, dispatch }, payload) {
+ if ('queued_jobs' in payload) await commit('setQueuedJobs', payload.queued_jobs)
+ if ('queue_state' in payload) await commit('setQueueState', payload.queue_state)
+
+ await dispatch('socket/removeInitModule', 'server/jobQueue/init', { root: true })
},
async addToQueue({ state }, filenames: string[]) {
diff --git a/src/store/server/power/actions.ts b/src/store/server/power/actions.ts
index d10b389e2..3bf74b8ed 100644
--- a/src/store/server/power/actions.ts
+++ b/src/store/server/power/actions.ts
@@ -12,8 +12,10 @@ export const actions: ActionTree = {
Vue.$socket.emit('machine.device_power.devices', {}, { action: 'server/power/getDevices' })
},
- getDevices({ commit }, payload) {
- if (!payload.error) commit('setDevices', payload.devices)
+ async getDevices({ commit, dispatch }, payload) {
+ if (!payload.error) await commit('setDevices', payload.devices)
+
+ await dispatch('socket/removeInitModule', 'server/power/init', { root: true })
},
getStatus({ commit }, payload) {
diff --git a/src/store/server/timelapse/actions.ts b/src/store/server/timelapse/actions.ts
index c659de506..175959a5b 100644
--- a/src/store/server/timelapse/actions.ts
+++ b/src/store/server/timelapse/actions.ts
@@ -13,10 +13,11 @@ export const actions: ActionTree = {
Vue.$socket.emit('machine.timelapse.lastframeinfo', {}, { action: 'server/timelapse/initLastFrameinfo' })
},
- initSettings({ commit }, payload) {
+ async initSettings({ commit, dispatch }, payload) {
if ('requestParams' in payload) delete payload.requestParams
- commit('setSettings', payload)
+ await commit('setSettings', payload)
+ await dispatch('socket/removeInitModule', 'server/timelapse/init', { root: true })
},
initLastFrameinfo({ commit }, payload) {
diff --git a/src/store/server/updateManager/actions.ts b/src/store/server/updateManager/actions.ts
index be71801eb..a3b347ead 100644
--- a/src/store/server/updateManager/actions.ts
+++ b/src/store/server/updateManager/actions.ts
@@ -12,7 +12,8 @@ export const actions: ActionTree = {
Vue.$socket.emit('machine.update.status', {}, { action: 'server/updateManager/getStatus' })
},
- getStatus({ commit }, payload) {
- commit('setStatus', payload)
+ async getStatus({ commit, dispatch }, payload) {
+ await commit('setStatus', payload)
+ await dispatch('socket/removeInitModule', 'server/updateManager/init', { root: true })
},
}
diff --git a/src/store/socket/actions.ts b/src/store/socket/actions.ts
index 5b8173d22..9f03727f6 100644
--- a/src/store/socket/actions.ts
+++ b/src/store/socket/actions.ts
@@ -6,6 +6,8 @@ import { v4 as uuidv4 } from 'uuid'
export const actions: ActionTree = {
reset({ commit }) {
+ commit('setDisconnected')
+ commit('clearLoadings')
commit('reset')
},
@@ -54,7 +56,8 @@ export const actions: ActionTree = {
case 'notify_klippy_ready':
commit('server/setKlippyConnected', null, { root: true })
- dispatch('printer/reset', null, { root: true })
+ dispatch('server/stopKlippyConnectedInterval', null, { root: true })
+ dispatch('server/stopKlippyStateInterval', null, { root: true })
dispatch('printer/init', null, { root: true })
break
@@ -123,9 +126,7 @@ export const actions: ActionTree = {
break
default:
- if (payload.result !== 'ok' && payload.error?.message)
- window.console.error('JSON-RPC: ' + payload.error.message)
- else window.console.debug(payload)
+ window.console.debug(payload)
}
},
@@ -141,6 +142,14 @@ export const actions: ActionTree = {
commit('clearLoadings')
},
+ addInitModule({ commit }, payload: string) {
+ commit('addInitModule', payload)
+ },
+
+ removeInitModule({ commit }, payload: string) {
+ commit('removeInitModule', payload)
+ },
+
reportDebug(_, payload) {
window.console.log(payload)
},
diff --git a/src/store/socket/index.ts b/src/store/socket/index.ts
index caee8fdda..08e865e74 100644
--- a/src/store/socket/index.ts
+++ b/src/store/socket/index.ts
@@ -19,6 +19,7 @@ export const getDefaultState = (): SocketState => {
isConnecting: false,
connectingFailed: false,
loadings: [],
+ initializationList: ['server'],
connection_id: null,
}
}
diff --git a/src/store/socket/mutations.ts b/src/store/socket/mutations.ts
index 2812e338c..61972f40f 100644
--- a/src/store/socket/mutations.ts
+++ b/src/store/socket/mutations.ts
@@ -5,7 +5,9 @@ import { SocketState } from '@/store/socket/types'
export const mutations: MutationTree = {
reset(state) {
- Object.assign(state, getDefaultState())
+ const defaults = getDefaultState()
+
+ Vue.set(state, 'initializationList', defaults.initializationList)
},
setConnected(state) {
@@ -18,6 +20,7 @@ export const mutations: MutationTree = {
Vue.set(state, 'isConnected', false)
Vue.set(state, 'isConnecting', false)
Vue.set(state, 'connectingFailed', true)
+ Vue.set(state, 'connection_id', null)
},
setData(state, payload) {
@@ -38,6 +41,24 @@ export const mutations: MutationTree = {
},
clearLoadings(state) {
- if (state.loadings.length) state.loadings.splice(0, state.loadings.length)
+ if (state.loadings.length) Vue.set(state, 'loadings', [])
+ },
+
+ addInitModule(state, payload) {
+ const list = [...state.initializationList]
+ const index = list.indexOf(payload)
+ if (index > -1) return
+
+ list.push(payload)
+ Vue.set(state, 'initializationList', list)
+ },
+
+ removeInitModule(state, payload) {
+ const list = [...state.initializationList]
+ const index = list.indexOf(payload)
+ if (index === -1) return
+
+ list.splice(index, 1)
+ Vue.set(state, 'initializationList', list)
},
}
diff --git a/src/store/socket/types.ts b/src/store/socket/types.ts
index 441ed45e4..56fb57bb6 100644
--- a/src/store/socket/types.ts
+++ b/src/store/socket/types.ts
@@ -7,5 +7,6 @@ export interface SocketState {
isConnecting: boolean
connectingFailed: boolean
loadings: string[]
+ initializationList: string[]
connection_id: number | null
}
diff --git a/src/store/types.ts b/src/store/types.ts
index 08812aacd..1c48ecfb7 100644
--- a/src/store/types.ts
+++ b/src/store/types.ts
@@ -8,7 +8,7 @@ export interface RootState {
packageVersion: string
debugMode: boolean
naviDrawer: boolean | null
- remoteMode: boolean
+ instancesDB: 'moonraker' | 'browser' | 'json'
configInstances: ConfigJsonInstance[]
socket?: SocketState
@@ -25,7 +25,9 @@ export interface RootStateDependency {
}
export interface ConfigJson {
- remoteMode?: boolean
+ hostname?: string | null
+ port?: string | number | null
+ instancesDB?: 'moonraker' | 'browser' | 'json'
instances?: ConfigJsonInstance[]
}
diff --git a/src/store/variables.ts b/src/store/variables.ts
index b0d4c0e8a..f1af83789 100644
--- a/src/store/variables.ts
+++ b/src/store/variables.ts
@@ -50,6 +50,7 @@ export const allowedMetadata = [
'nozzle_diameter',
'first_layer_bed_temp',
'first_layer_extr_temp',
+ 'chamber_temp',
'first_layer_height',
'gcode_end_byte',
'gcode_start_byte',