/* Copywrite 2016 Will Winder This file is part of Universal Gcode Sender (UGS). UGS is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. UGS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with UGS. If not, see <http://www.gnu.org/licenses/>. */ package com.willwinder.ugs.nbp.lib.services; import com.willwinder.ugs.nbp.lib.lookup.CentralLookup; import com.willwinder.universalgcodesender.i18n.Localization; import com.willwinder.universalgcodesender.model.BackendAPI; import java.io.IOException; import org.openide.util.Lookup; import org.openide.util.lookup.ServiceProvider; /** * * @author wwinder */ @ServiceProvider(service=LocalizingService.class) public class LocalizingService { // Initialize backend (locale setting) before we load localized strings. static private final String lang = CentralLookup.getDefault().lookup(BackendAPI.class).getSettings().getLanguage(); public final static String VisualizerTitle = Localization.getString("platform.window.visualizer", lang); public final static String VisualizerTooltip = Localization.getString("platform.window.visualizer.tooltip", lang); public final static String VisualizerWindowPath = "Menu/Window"; public final static String VisualizerActionId = "com.willwinder.ugs.nbm.visualizer.Visualizer2TopComponent"; public final static String VisualizerCategory = "Window"; public final static String SerialConsoleTitle = Localization.getString("platform.window.serialconsole", lang); public final static String SerialConsoleTooltip = Localization.getString("platform.window.serialconsole.tooltip", lang); public final static String SerialConsoleWindowPath = "Menu/Window"; public final static String SerialConsoleActionId = "com.willwinder.universalgcodesender.nbp.console.SerialConsoleTopComponent"; public final static String SerialConsoleCategory = "Window"; public final static String SendStatusTitle = Localization.getString("platform.window.sendstatus", lang); public final static String SendStatusTooltip = Localization.getString("platform.window.sendstatus.tooltip", lang); public final static String SendStatusWindowPath = "Menu/Window/Classic"; public final static String SendStatusActionId = "com.willwinder.ugs.nbp.core.control.SendStatusTopComponent"; public final static String SendStatusCategory = "Window"; public final static String OverridesTitle = Localization.getString("platform.window.overrides", lang); public final static String OverridesTooltip = Localization.getString("platform.window.overrides.tooltip", lang); public final static String OverridesWindowPath = "Menu/Window"; public final static String OverridesActionId = "com.willwinder.universalgcodesender.nbp.control.OverridesTopComponent"; public final static String OverridesCategory = "Window"; public final static String MacrosTitle = Localization.getString("platform.window.macros", lang); public final static String MacrosTooltip = Localization.getString("platform.window.macros.tooltip", lang); public final static String MacrosWindowPath = "Menu/Window"; public final static String MacrosActionId = "com.willwinder.ugs.nbp.core.control.MacrosTopComponent"; public final static String MacrosCategory = "Window"; public final static String JogControlTitle = Localization.getString("platform.window.jogcontrol", lang); public final static String JogControlTooltip = Localization.getString("platform.window.jogcontrol.tooltip", lang); public final static String JogControlWindowPath = "Menu/Window"; public final static String JogControlActionId = "com.willwinder.ugs.nbp.core.control.JogControlTopComponent"; public final static String JogControlCategory = "Window"; public final static String FileBrowserTitle = Localization.getString("platform.window.filebrowser", lang); public final static String FileBrowserTooltip = Localization.getString("platform.window.filebrowser.tooltip", lang); public final static String FileBrowserWindowPath = "Menu/Window/Classic"; public final static String FileBrowserActionId = "com.willwinder.ugs.nbp.core.filebrowser.FileBrowserTopComponentTopComponent"; public final static String FileBrowserCategory = "Window"; public final static String LocationStatusTitle = Localization.getString("platform.window.dro", lang); public final static String LocationStatusTooltip = Localization.getString("platform.window.dro.tooltip", lang); public final static String LocationStatusWindowPath = "Menu/Window"; public final static String LocationStatusActionId = "com.willwinder.ugs.nbp.control.StatusTopComponent"; public final static String LocationStatusCategory = "Window"; public final static String ActionsTitle = Localization.getString("platform.window.actions", lang); public final static String ActionsTooltip = Localization.getString("platform.window.actions.tooltip", lang); public final static String ActionsWindowPath = "Menu/Window/Classic"; public final static String ActionsActionId = "com.willwinder.ugs.nbp.control.ActionsTopComponent"; public final static String ActionsCategory = "Window"; public final static String WorkflowWindowTitle = Localization.getString("platform.window.workflow", lang); public final static String WorkflowWindowTooltip = Localization.getString("platform.window.workflow.tooltip", lang); public final static String WorkflowWindowWindowPath = "Menu/Window/Plugins"; public final static String WorkflowWindowActionId = "com.willwinder.ugs.nbm.workflow.WorkflowWindowTopComponent"; public final static String WorkflowWindowCategory = "Window"; public final static String ProbeTitle = Localization.getString("platform.window.probe", lang); public final static String ProbeTooltip = Localization.getString("platform.window.probe.tooltip", lang); public final static String ProbeWindowPath = "Menu/Window/Plugins"; public final static String ProbeActionId = "com.willwinder.ugs.nbp.control.ProbeTopComponent"; public final static String ProbeCategory = "Window"; public final static String StartTitle = Localization.getString("mainWindow.swing.sendButton", lang); public final static String StartTitleKey = "mainWindow.swing.sendButton"; public final static String StartWindowPath = "Menu/Machine"; public final static String StartActionId = "com.willwinder.ugs.nbp.core.actions.StartAction"; public final static String StartCategory = "Machine"; public final static String PauseTitle = Localization.getString("mainWindow.swing.pauseButton", lang); public final static String PauseTitleKey = "mainWindow.swing.pauseButton"; public final static String PauseWindowPath = "Menu/Machine"; public final static String PauseActionId = "com.willwinder.ugs.nbp.core.actions.PauseAction"; public final static String PauseCategory = "Machine"; public final static String StopTitle = Localization.getString("mainWindow.swing.stopButton", lang); public final static String StopTitleKey = "mainWindow.swing.stopButton"; public final static String StopWindowPath = "Menu/Machine"; public final static String StopActionId = "com.willwinder.ugs.nbp.core.actions.StopAction"; public final static String StopCategory = "Machine"; public final static String ConnectDisconnectTitleConnect = Localization.getString("mainWindow.ui.connect", lang); public final static String ConnectDisconnectTitleDisconnect = Localization.getString("mainWindow.ui.disconnect", lang); public final static String ConnectDisconnectActionTitleKey = "mainWindow.ui.connectDisconnect"; public final static String ConnectWindowPath = "Menu/Machine"; public final static String ConnectDisconnectActionId = "com.willwinder.ugs.nbp.core.actions.ConnectDisconnectAction"; public final static String ConnectDisconnectCategory = "Machine"; public final static String ConnectionBaudRateToolbarTitle = Localization.getString("mainWindow.swing.baudrate.toolbarTitle", lang); public final static String ConnectionBaudRateToolbarTitleKey = "mainWindow.swing.baudrate.toolbarTitle"; public final static String ConnectionBaudRateToolbarActionId = "com.willwinder.ugs.nbp.core.toolbars.ConnectionBaudRateToolbar"; public final static String ConnectionBaudRateToolbarCategory = "Machine"; public final static String ConnectionFirmwareToolbarTitle = Localization.getString("mainWindow.swing.firmware.toolbarTitle", lang); public final static String ConnectionFirmwareToolbarTitleKey = "mainWindow.swing.firmware.toolbarTitle"; public final static String ConnectionFirmwareToolbarActionId = "com.willwinder.ugs.nbp.core.toolbars.ConnectionFirmwareToolbar"; public final static String ConnectionFirmwareToolbarCategory = "Machine"; public final static String ConnectionSerialPortToolbarTitle = Localization.getString("mainWindow.swing.serialport.toolbarTitle", lang); public final static String ConnectionSerialPortToolbarTitleKey = "mainWindow.swing.firmware.toolbarTitle"; public final static String ConnectionSerialPortToolbarActionId = "com.willwinder.ugs.nbp.core.toolbars.ConnectionSerialPortToolbar"; public final static String ConnectionSerialPortToolbarCategory = "Machine"; public final static String FileBrowserToolbarTitle = Localization.getString("mainWindow.swing.filebrowser.toolbarTitle", lang); public final static String FileBrowserToolbarTitleKey = "mainWindow.swing.filebrowser.toolbarTitle"; public final static String FileBrowserToolbarActionId = "com.willwinder.ugs.nbp.core.toolbars.FileBrowserToolbar"; public final static String FileBrowserToolbarCategory = "Machine"; public LocalizingService() throws IOException { ActionRegistrationService ars = Lookup.getDefault().lookup(ActionRegistrationService.class); // Update menu's with localized names. // Menu Folders ars.createAndLocalizeFullMenu("Menu/Window/Classic", String.format("Menu/%s/%s", Localization.getString("platform.menu.window"), Localization.getString("platform.menu.classic"))); ars.createAndLocalizeFullMenu("Menu/Window/Plugins", String.format("Menu/%s/%s", Localization.getString("platform.menu.window"), Localization.getString("platform.menu.plugins"))); // Menu Items ars.overrideActionName(WorkflowWindowCategory, WorkflowWindowActionId, WorkflowWindowTitle); ars.overrideActionName(ActionsCategory, ActionsActionId, ActionsTitle); ars.overrideActionName(LocationStatusCategory, LocationStatusActionId, LocationStatusTitle); ars.overrideActionName(FileBrowserCategory, FileBrowserActionId, FileBrowserTitle); ars.overrideActionName(JogControlCategory, JogControlActionId, JogControlTitle); ars.overrideActionName(MacrosCategory, MacrosActionId, MacrosTitle); ars.overrideActionName(OverridesCategory, OverridesActionId, OverridesTitle); ars.overrideActionName(SendStatusCategory, SendStatusActionId, SendStatusTitle); ars.overrideActionName(SerialConsoleCategory, SerialConsoleActionId, SerialConsoleTitle); ars.overrideActionName(VisualizerCategory, VisualizerActionId, VisualizerTitle); ars.overrideActionName(ProbeCategory, ProbeActionId, ProbeTitle); } }