新增服务器连接配置
This commit is contained in:
parent
1486e1f6ec
commit
e525e06d7a
@ -28,6 +28,9 @@ public class PrintServerConfig {
|
|||||||
private static final boolean DEFAULT_ENABLE_NOTIFICATIONS = true;
|
private static final boolean DEFAULT_ENABLE_NOTIFICATIONS = true;
|
||||||
private static final boolean DEFAULT_START_MINIMIZED = false;
|
private static final boolean DEFAULT_START_MINIMIZED = false;
|
||||||
private static final boolean DEFAULT_AUTO_START = false;
|
private static final boolean DEFAULT_AUTO_START = false;
|
||||||
|
private static final String DEFAULT_WEBSOCKET_URL = "ws://127.0.0.1:8080/print-websocket";
|
||||||
|
private static final String DEFAULT_PRINTER_ID = "123456";
|
||||||
|
private static final String DEFAULT_API_KEY = "519883ab-3677-ce4b-59ba-7263870d0a26";
|
||||||
|
|
||||||
// 配置属性
|
// 配置属性
|
||||||
private String defaultPrinter = DEFAULT_PRINTER;
|
private String defaultPrinter = DEFAULT_PRINTER;
|
||||||
@ -35,6 +38,9 @@ public class PrintServerConfig {
|
|||||||
private boolean enableNotifications = DEFAULT_ENABLE_NOTIFICATIONS;
|
private boolean enableNotifications = DEFAULT_ENABLE_NOTIFICATIONS;
|
||||||
private boolean startMinimized = DEFAULT_START_MINIMIZED;
|
private boolean startMinimized = DEFAULT_START_MINIMIZED;
|
||||||
private boolean autoStart = DEFAULT_AUTO_START;
|
private boolean autoStart = DEFAULT_AUTO_START;
|
||||||
|
private String websocketUrl = DEFAULT_WEBSOCKET_URL;
|
||||||
|
private String printerId = DEFAULT_PRINTER_ID;
|
||||||
|
private String apiKey = DEFAULT_API_KEY;
|
||||||
|
|
||||||
private Properties properties = new Properties();
|
private Properties properties = new Properties();
|
||||||
private File configFile;
|
private File configFile;
|
||||||
@ -68,6 +74,9 @@ public class PrintServerConfig {
|
|||||||
enableNotifications = Boolean.parseBoolean(properties.getProperty("enableNotifications", String.valueOf(DEFAULT_ENABLE_NOTIFICATIONS)));
|
enableNotifications = Boolean.parseBoolean(properties.getProperty("enableNotifications", String.valueOf(DEFAULT_ENABLE_NOTIFICATIONS)));
|
||||||
startMinimized = Boolean.parseBoolean(properties.getProperty("startMinimized", String.valueOf(DEFAULT_START_MINIMIZED)));
|
startMinimized = Boolean.parseBoolean(properties.getProperty("startMinimized", String.valueOf(DEFAULT_START_MINIMIZED)));
|
||||||
autoStart = Boolean.parseBoolean(properties.getProperty("autoStart", String.valueOf(DEFAULT_AUTO_START)));
|
autoStart = Boolean.parseBoolean(properties.getProperty("autoStart", String.valueOf(DEFAULT_AUTO_START)));
|
||||||
|
websocketUrl = properties.getProperty("websocketUrl", DEFAULT_WEBSOCKET_URL);
|
||||||
|
printerId = properties.getProperty("printerId", DEFAULT_PRINTER_ID);
|
||||||
|
apiKey = properties.getProperty("apiKey", DEFAULT_API_KEY);
|
||||||
|
|
||||||
log.info("配置已加载: {}", configFile.getAbsolutePath());
|
log.info("配置已加载: {}", configFile.getAbsolutePath());
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
@ -98,6 +107,9 @@ public class PrintServerConfig {
|
|||||||
properties.setProperty("enableNotifications", String.valueOf(enableNotifications));
|
properties.setProperty("enableNotifications", String.valueOf(enableNotifications));
|
||||||
properties.setProperty("startMinimized", String.valueOf(startMinimized));
|
properties.setProperty("startMinimized", String.valueOf(startMinimized));
|
||||||
properties.setProperty("autoStart", String.valueOf(autoStart));
|
properties.setProperty("autoStart", String.valueOf(autoStart));
|
||||||
|
properties.setProperty("websocketUrl", websocketUrl);
|
||||||
|
properties.setProperty("printerId", printerId);
|
||||||
|
properties.setProperty("apiKey", apiKey);
|
||||||
|
|
||||||
// 保存到文件
|
// 保存到文件
|
||||||
try (FileOutputStream fos = new FileOutputStream(configFile)) {
|
try (FileOutputStream fos = new FileOutputStream(configFile)) {
|
||||||
@ -118,5 +130,8 @@ public class PrintServerConfig {
|
|||||||
enableNotifications = DEFAULT_ENABLE_NOTIFICATIONS;
|
enableNotifications = DEFAULT_ENABLE_NOTIFICATIONS;
|
||||||
startMinimized = DEFAULT_START_MINIMIZED;
|
startMinimized = DEFAULT_START_MINIMIZED;
|
||||||
autoStart = DEFAULT_AUTO_START;
|
autoStart = DEFAULT_AUTO_START;
|
||||||
|
websocketUrl = DEFAULT_WEBSOCKET_URL;
|
||||||
|
printerId = DEFAULT_PRINTER_ID;
|
||||||
|
apiKey = DEFAULT_API_KEY;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2,6 +2,7 @@ package com.goeing.printserver.main.gui;
|
|||||||
|
|
||||||
import com.goeing.printserver.main.PrintController;
|
import com.goeing.printserver.main.PrintController;
|
||||||
import com.goeing.printserver.main.config.PrintServerConfig;
|
import com.goeing.printserver.main.config.PrintServerConfig;
|
||||||
|
import com.goeing.printserver.main.sse.PrinterClient;
|
||||||
import com.goeing.printserver.main.utils.LocaleChangeListener;
|
import com.goeing.printserver.main.utils.LocaleChangeListener;
|
||||||
import com.goeing.printserver.main.utils.LocaleManager;
|
import com.goeing.printserver.main.utils.LocaleManager;
|
||||||
import com.goeing.printserver.main.utils.MessageUtils;
|
import com.goeing.printserver.main.utils.MessageUtils;
|
||||||
@ -28,6 +29,7 @@ public class PrintSettingsPanel extends JPanel implements LocaleChangeListener {
|
|||||||
private final PrintQueueService printQueueService;
|
private final PrintQueueService printQueueService;
|
||||||
private final PrintServerConfig config;
|
private final PrintServerConfig config;
|
||||||
private final PrintController printController;
|
private final PrintController printController;
|
||||||
|
private final PrinterClient printerClient;
|
||||||
|
|
||||||
// UI组件
|
// UI组件
|
||||||
private JComboBox<String> defaultPrinterComboBox;
|
private JComboBox<String> defaultPrinterComboBox;
|
||||||
@ -35,19 +37,26 @@ public class PrintSettingsPanel extends JPanel implements LocaleChangeListener {
|
|||||||
private JCheckBox enableNotificationsCheckBox;
|
private JCheckBox enableNotificationsCheckBox;
|
||||||
private JCheckBox startMinimizedCheckBox;
|
private JCheckBox startMinimizedCheckBox;
|
||||||
private JCheckBox autoStartCheckBox;
|
private JCheckBox autoStartCheckBox;
|
||||||
|
private JTextField websocketUrlField;
|
||||||
|
private JTextField printerIdField;
|
||||||
|
private JTextField apiKeyField;
|
||||||
|
|
||||||
// 标签和按钮
|
// 标签和按钮
|
||||||
private JLabel titleLabel;
|
private JLabel titleLabel;
|
||||||
private JLabel defaultPrinterLabel;
|
private JLabel defaultPrinterLabel;
|
||||||
private JLabel maxQueueSizeLabel;
|
private JLabel maxQueueSizeLabel;
|
||||||
|
private JLabel websocketUrlLabel;
|
||||||
|
private JLabel printerIdLabel;
|
||||||
|
private JLabel apiKeyLabel;
|
||||||
private JButton saveButton;
|
private JButton saveButton;
|
||||||
private JButton resetButton;
|
private JButton resetButton;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public PrintSettingsPanel(PrintQueueService printQueueService, PrintServerConfig config, PrintController printController) {
|
public PrintSettingsPanel(PrintQueueService printQueueService, PrintServerConfig config, PrintController printController, PrinterClient printerClient) {
|
||||||
this.printQueueService = printQueueService;
|
this.printQueueService = printQueueService;
|
||||||
this.config = config;
|
this.config = config;
|
||||||
this.printController = printController;
|
this.printController = printController;
|
||||||
|
this.printerClient = printerClient;
|
||||||
initializeUI();
|
initializeUI();
|
||||||
loadSettings();
|
loadSettings();
|
||||||
|
|
||||||
@ -121,9 +130,47 @@ public class PrintSettingsPanel extends JPanel implements LocaleChangeListener {
|
|||||||
autoStartCheckBox = new JCheckBox(MessageUtils.getMessage("settings.autoStart"));
|
autoStartCheckBox = new JCheckBox(MessageUtils.getMessage("settings.autoStart"));
|
||||||
settingsPanel.add(autoStartCheckBox, gbc);
|
settingsPanel.add(autoStartCheckBox, gbc);
|
||||||
|
|
||||||
// 添加一个弹性空间
|
// WebSocket URL设置
|
||||||
gbc.gridx = 0;
|
gbc.gridx = 0;
|
||||||
gbc.gridy = 5;
|
gbc.gridy = 5;
|
||||||
|
gbc.gridwidth = 1;
|
||||||
|
gbc.weightx = 0.0;
|
||||||
|
websocketUrlLabel = new JLabel(MessageUtils.getMessage("settings.websocketUrl"));
|
||||||
|
settingsPanel.add(websocketUrlLabel, gbc);
|
||||||
|
|
||||||
|
gbc.gridx = 1;
|
||||||
|
gbc.weightx = 1.0;
|
||||||
|
websocketUrlField = new JTextField();
|
||||||
|
settingsPanel.add(websocketUrlField, gbc);
|
||||||
|
|
||||||
|
// 打印机ID设置
|
||||||
|
gbc.gridx = 0;
|
||||||
|
gbc.gridy = 6;
|
||||||
|
gbc.weightx = 0.0;
|
||||||
|
printerIdLabel = new JLabel(MessageUtils.getMessage("settings.printerId"));
|
||||||
|
settingsPanel.add(printerIdLabel, gbc);
|
||||||
|
|
||||||
|
gbc.gridx = 1;
|
||||||
|
gbc.weightx = 1.0;
|
||||||
|
printerIdField = new JTextField();
|
||||||
|
settingsPanel.add(printerIdField, gbc);
|
||||||
|
|
||||||
|
// API Key设置
|
||||||
|
gbc.gridx = 0;
|
||||||
|
gbc.gridy = 7;
|
||||||
|
gbc.weightx = 0.0;
|
||||||
|
apiKeyLabel = new JLabel(MessageUtils.getMessage("settings.apiKey"));
|
||||||
|
settingsPanel.add(apiKeyLabel, gbc);
|
||||||
|
|
||||||
|
gbc.gridx = 1;
|
||||||
|
gbc.weightx = 1.0;
|
||||||
|
apiKeyField = new JTextField();
|
||||||
|
settingsPanel.add(apiKeyField, gbc);
|
||||||
|
|
||||||
|
// 添加一个弹性空间
|
||||||
|
gbc.gridx = 0;
|
||||||
|
gbc.gridy = 8;
|
||||||
|
gbc.gridwidth = 2;
|
||||||
gbc.weighty = 1.0;
|
gbc.weighty = 1.0;
|
||||||
settingsPanel.add(Box.createVerticalGlue(), gbc);
|
settingsPanel.add(Box.createVerticalGlue(), gbc);
|
||||||
|
|
||||||
@ -158,6 +205,9 @@ public class PrintSettingsPanel extends JPanel implements LocaleChangeListener {
|
|||||||
enableNotificationsCheckBox.setSelected(config.isEnableNotifications());
|
enableNotificationsCheckBox.setSelected(config.isEnableNotifications());
|
||||||
startMinimizedCheckBox.setSelected(config.isStartMinimized());
|
startMinimizedCheckBox.setSelected(config.isStartMinimized());
|
||||||
autoStartCheckBox.setSelected(config.isAutoStart());
|
autoStartCheckBox.setSelected(config.isAutoStart());
|
||||||
|
websocketUrlField.setText(config.getWebsocketUrl());
|
||||||
|
printerIdField.setText(config.getPrinterId());
|
||||||
|
apiKeyField.setText(config.getApiKey());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -171,6 +221,14 @@ public class PrintSettingsPanel extends JPanel implements LocaleChangeListener {
|
|||||||
boolean enableNotifications = enableNotificationsCheckBox.isSelected();
|
boolean enableNotifications = enableNotificationsCheckBox.isSelected();
|
||||||
boolean startMinimized = startMinimizedCheckBox.isSelected();
|
boolean startMinimized = startMinimizedCheckBox.isSelected();
|
||||||
boolean autoStart = autoStartCheckBox.isSelected();
|
boolean autoStart = autoStartCheckBox.isSelected();
|
||||||
|
String websocketUrl = websocketUrlField.getText().trim();
|
||||||
|
String printerId = printerIdField.getText().trim();
|
||||||
|
String apiKey = apiKeyField.getText().trim();
|
||||||
|
|
||||||
|
// 检查WebSocket相关配置是否发生变化
|
||||||
|
boolean websocketConfigChanged = !websocketUrl.equals(config.getWebsocketUrl()) ||
|
||||||
|
!printerId.equals(config.getPrinterId()) ||
|
||||||
|
!apiKey.equals(config.getApiKey());
|
||||||
|
|
||||||
// 更新配置对象
|
// 更新配置对象
|
||||||
config.setDefaultPrinter(defaultPrinter);
|
config.setDefaultPrinter(defaultPrinter);
|
||||||
@ -178,6 +236,9 @@ public class PrintSettingsPanel extends JPanel implements LocaleChangeListener {
|
|||||||
config.setEnableNotifications(enableNotifications);
|
config.setEnableNotifications(enableNotifications);
|
||||||
config.setStartMinimized(startMinimized);
|
config.setStartMinimized(startMinimized);
|
||||||
config.setAutoStart(autoStart);
|
config.setAutoStart(autoStart);
|
||||||
|
config.setWebsocketUrl(websocketUrl);
|
||||||
|
config.setPrinterId(printerId);
|
||||||
|
config.setApiKey(apiKey);
|
||||||
|
|
||||||
// 保存配置
|
// 保存配置
|
||||||
config.saveConfig();
|
config.saveConfig();
|
||||||
@ -185,7 +246,15 @@ public class PrintSettingsPanel extends JPanel implements LocaleChangeListener {
|
|||||||
// 应用设置到服务
|
// 应用设置到服务
|
||||||
applySettings();
|
applySettings();
|
||||||
|
|
||||||
|
// 如果WebSocket配置发生变化,重新连接WebSocket
|
||||||
|
if (websocketConfigChanged) {
|
||||||
|
printerClient.reconnect();
|
||||||
|
String message = MessageUtils.getMessage("settings.saved") + "\n\n" +
|
||||||
|
MessageUtils.getMessage("settings.websocket.reconnected");
|
||||||
|
JOptionPane.showMessageDialog(this, message, MessageUtils.getMessage("dialog.success"), JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
} else {
|
||||||
JOptionPane.showMessageDialog(this, MessageUtils.getMessage("settings.saved"), MessageUtils.getMessage("dialog.success"), JOptionPane.INFORMATION_MESSAGE);
|
JOptionPane.showMessageDialog(this, MessageUtils.getMessage("settings.saved"), MessageUtils.getMessage("dialog.success"), JOptionPane.INFORMATION_MESSAGE);
|
||||||
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(MessageUtils.getMessage("log.settings.save.error"), e);
|
log.error(MessageUtils.getMessage("log.settings.save.error"), e);
|
||||||
JOptionPane.showMessageDialog(this, MessageUtils.getMessage("settings.save.error", new Object[]{e.getMessage()}), MessageUtils.getMessage("dialog.error"), JOptionPane.ERROR_MESSAGE);
|
JOptionPane.showMessageDialog(this, MessageUtils.getMessage("settings.save.error", new Object[]{e.getMessage()}), MessageUtils.getMessage("dialog.error"), JOptionPane.ERROR_MESSAGE);
|
||||||
@ -346,6 +415,9 @@ public class PrintSettingsPanel extends JPanel implements LocaleChangeListener {
|
|||||||
titleLabel.setText(MessageUtils.getMessage("settings.title"));
|
titleLabel.setText(MessageUtils.getMessage("settings.title"));
|
||||||
defaultPrinterLabel.setText(MessageUtils.getMessage("settings.defaultPrinter"));
|
defaultPrinterLabel.setText(MessageUtils.getMessage("settings.defaultPrinter"));
|
||||||
maxQueueSizeLabel.setText(MessageUtils.getMessage("settings.maxQueueSize"));
|
maxQueueSizeLabel.setText(MessageUtils.getMessage("settings.maxQueueSize"));
|
||||||
|
websocketUrlLabel.setText(MessageUtils.getMessage("settings.websocketUrl"));
|
||||||
|
printerIdLabel.setText(MessageUtils.getMessage("settings.printerId"));
|
||||||
|
apiKeyLabel.setText(MessageUtils.getMessage("settings.apiKey"));
|
||||||
|
|
||||||
// 更新复选框
|
// 更新复选框
|
||||||
enableNotificationsCheckBox.setText(MessageUtils.getMessage("settings.notifications"));
|
enableNotificationsCheckBox.setText(MessageUtils.getMessage("settings.notifications"));
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import cn.hutool.extra.spring.SpringUtil;
|
|||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.goeing.printserver.main.PrintController;
|
import com.goeing.printserver.main.PrintController;
|
||||||
|
import com.goeing.printserver.main.config.PrintServerConfig;
|
||||||
import com.goeing.printserver.main.domain.dto.WebSocketMessageDTO;
|
import com.goeing.printserver.main.domain.dto.WebSocketMessageDTO;
|
||||||
import com.goeing.printserver.main.domain.request.PrintRequest;
|
import com.goeing.printserver.main.domain.request.PrintRequest;
|
||||||
import com.goeing.printserver.main.service.PrintQueueService;
|
import com.goeing.printserver.main.service.PrintQueueService;
|
||||||
@ -30,21 +31,17 @@ import java.util.stream.Collectors;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
public class PrinterClient implements ApplicationRunner {
|
public class PrinterClient implements ApplicationRunner {
|
||||||
private final PrintQueueService printQueueService;
|
private final PrintQueueService printQueueService;
|
||||||
|
private final PrintServerConfig config;
|
||||||
private Session session;
|
private Session session;
|
||||||
@Value("${print.printer.id}")
|
|
||||||
private String printerId;
|
|
||||||
@Value("${print.websocket.url}")
|
|
||||||
private String serverUri;
|
|
||||||
@Value("${print.websocket.apiKey}")
|
|
||||||
private String apiKey;
|
|
||||||
|
|
||||||
private final ScheduledExecutorService reconnectExecutor = Executors.newSingleThreadScheduledExecutor();
|
private final ScheduledExecutorService reconnectExecutor = Executors.newSingleThreadScheduledExecutor();
|
||||||
private final ScheduledExecutorService heartbeatExecutor = Executors.newSingleThreadScheduledExecutor();
|
private final ScheduledExecutorService heartbeatExecutor = Executors.newSingleThreadScheduledExecutor();
|
||||||
private boolean isConnecting = false;
|
private boolean isConnecting = false;
|
||||||
|
|
||||||
// 构造函数,注入PrintQueueService
|
// 构造函数,注入PrintQueueService和PrintServerConfig
|
||||||
public PrinterClient(PrintQueueService printQueueService) {
|
public PrinterClient(PrintQueueService printQueueService, PrintServerConfig config) {
|
||||||
this.printQueueService = printQueueService;
|
this.printQueueService = printQueueService;
|
||||||
|
this.config = config;
|
||||||
// 构造函数不做连接操作,在run方法中进行连接
|
// 构造函数不做连接操作,在run方法中进行连接
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -150,6 +147,12 @@ public class PrinterClient implements ApplicationRunner {
|
|||||||
if (isConnecting || (session != null && session.isOpen())) {
|
if (isConnecting || (session != null && session.isOpen())) {
|
||||||
return; // 已经连接或正在连接中
|
return; // 已经连接或正在连接中
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 从配置对象中获取最新的连接参数
|
||||||
|
String serverUri = config.getWebsocketUrl();
|
||||||
|
String printerId = config.getPrinterId();
|
||||||
|
String apiKey = config.getApiKey();
|
||||||
|
|
||||||
String tempUrl = serverUri+"?printerId="+printerId+"&apiKey="+apiKey;
|
String tempUrl = serverUri+"?printerId="+printerId+"&apiKey="+apiKey;
|
||||||
|
|
||||||
isConnecting = true;
|
isConnecting = true;
|
||||||
@ -212,6 +215,23 @@ public class PrinterClient implements ApplicationRunner {
|
|||||||
log.info("WebSocket客户端已关闭");
|
log.info("WebSocket客户端已关闭");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 重新连接WebSocket服务器(用于配置更改后)
|
||||||
|
*/
|
||||||
|
public void reconnect() {
|
||||||
|
log.info("配置已更改,重新连接WebSocket服务器...");
|
||||||
|
if (session != null && session.isOpen()) {
|
||||||
|
try {
|
||||||
|
session.close();
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("关闭现有连接失败", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
session = null;
|
||||||
|
isConnecting = false;
|
||||||
|
connect();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run(ApplicationArguments args) {
|
public void run(ApplicationArguments args) {
|
||||||
// 应用启动后连接到WebSocket服务器
|
// 应用启动后连接到WebSocket服务器
|
||||||
|
|||||||
@ -103,6 +103,9 @@ settings.maxQueueSize=Max Queue Size:
|
|||||||
settings.notifications=Enable System Notifications
|
settings.notifications=Enable System Notifications
|
||||||
settings.startMinimized=Start Minimized to System Tray
|
settings.startMinimized=Start Minimized to System Tray
|
||||||
settings.autoStart=Start Automatically at Login
|
settings.autoStart=Start Automatically at Login
|
||||||
|
settings.websocketUrl=WebSocket URL:
|
||||||
|
settings.printerId=Printer ID:
|
||||||
|
settings.apiKey=API Key:
|
||||||
settings.save=Save Settings
|
settings.save=Save Settings
|
||||||
settings.reset=Reset to Defaults
|
settings.reset=Reset to Defaults
|
||||||
settings.saved=Settings have been saved
|
settings.saved=Settings have been saved
|
||||||
|
|||||||
@ -103,9 +103,13 @@ settings.maxQueueSize=Max Queue Size:
|
|||||||
settings.notifications=Enable System Notifications
|
settings.notifications=Enable System Notifications
|
||||||
settings.startMinimized=Start Minimized to System Tray
|
settings.startMinimized=Start Minimized to System Tray
|
||||||
settings.autoStart=Start Automatically at Login
|
settings.autoStart=Start Automatically at Login
|
||||||
|
settings.websocketUrl=WebSocket URL:
|
||||||
|
settings.printerId=Printer ID:
|
||||||
|
settings.apiKey=API Key:
|
||||||
settings.save=Save Settings
|
settings.save=Save Settings
|
||||||
settings.reset=Reset to Defaults
|
settings.reset=Reset to Defaults
|
||||||
settings.saved=Settings have been saved
|
settings.saved=Settings have been saved
|
||||||
|
settings.websocket.reconnected=WebSocket configuration has been changed and the connection has been automatically reconnected.
|
||||||
settings.reset.confirm=Are you sure you want to reset all settings to default values?
|
settings.reset.confirm=Are you sure you want to reset all settings to default values?
|
||||||
settings.reset.success=Settings have been reset to default values
|
settings.reset.success=Settings have been reset to default values
|
||||||
settings.save.error=Failed to save settings: {0}
|
settings.save.error=Failed to save settings: {0}
|
||||||
|
|||||||
@ -101,9 +101,13 @@ settings.maxQueueSize=最大队列大小:
|
|||||||
settings.notifications=启用系统通知
|
settings.notifications=启用系统通知
|
||||||
settings.startMinimized=启动时最小化到系统托盘
|
settings.startMinimized=启动时最小化到系统托盘
|
||||||
settings.autoStart=开机自动启动
|
settings.autoStart=开机自动启动
|
||||||
|
settings.websocketUrl=WebSocket地址:
|
||||||
|
settings.printerId=打印机ID:
|
||||||
|
settings.apiKey=API密钥:
|
||||||
settings.save=保存设置
|
settings.save=保存设置
|
||||||
settings.reset=重置默认
|
settings.reset=重置默认
|
||||||
settings.saved=设置已保存
|
settings.saved=设置已保存
|
||||||
|
settings.websocket.reconnected=WebSocket配置已更改,连接已自动重新建立。
|
||||||
settings.reset.confirm=确定要重置所有设置为默认值吗?
|
settings.reset.confirm=确定要重置所有设置为默认值吗?
|
||||||
settings.reset.success=设置已重置为默认值
|
settings.reset.success=设置已重置为默认值
|
||||||
settings.save.error=保存设置失败: {0}
|
settings.save.error=保存设置失败: {0}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user