XSLT debugger: i18n
authorBas Leijdekkers <basleijdekkers@gmail.com>
Mon, 10 Aug 2020 15:51:12 +0000 (17:51 +0200)
committerintellij-monorepo-bot <intellij-monorepo-bot-no-reply@jetbrains.com>
Mon, 10 Aug 2020 19:49:02 +0000 (19:49 +0000)
GitOrigin-RevId: 739e6b77d477d60fbc29c47d0d01307c817c4910

15 files changed:
plugins/xslt-debugger/resources/META-INF/plugin.xml
plugins/xslt-debugger/resources/messages/XsltDebuggerBundle.properties [new file with mode: 0644]
plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/VMPausedException.java
plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/XsltBreakpointType.java
plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/XsltDebuggerBundle.java [new file with mode: 0644]
plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/XsltDebuggerSession.java
plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/impl/XsltDebugProcess.java
plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/impl/XsltExecutionStack.java
plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/impl/XsltStackFrame.java
plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/ui/AbstractTabComponent.java
plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/ui/GeneratedStructureRenderer.java
plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/ui/OutputTabComponent.java
plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/ui/StructureTabComponent.java
plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/ui/actions/HideWhitespaceAction.java
plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/ui/actions/OpenOutputAction.java

index acebd459fb3eab2aa51f4d4c4d1cedca6b23775e..1278a0153c5ba68220b4b608a3fd501f88e21850 100644 (file)
@@ -29,4 +29,5 @@
     <xsltRunnerExtension implementation="org.intellij.plugins.xsltDebugger.XsltDebuggerExtension"/>
   </extensions>
 
+  <resource-bundle>messages.XsltDebuggerBundle</resource-bundle>
 </idea-plugin>
diff --git a/plugins/xslt-debugger/resources/messages/XsltDebuggerBundle.properties b/plugins/xslt-debugger/resources/messages/XsltDebuggerBundle.properties
new file mode 100644 (file)
index 0000000..cb94e5d
--- /dev/null
@@ -0,0 +1,7 @@
+action.hide.whitespace.nodes.text=Hide Whitespace Nodes
+dialog.message.target.vm.not.responding=Target VM is not responding
+list.item.source.frames=Source frames
+list.item.xslt.frames=XSLT frames
+status.bar.text.not.valid.position.in.file=Not a valid position in file ''{0}''
+title.xslt.breakpoints=XSLT Breakpoints
+tooltip.element.is.not.finished.yet=Element is not finished yet
\ No newline at end of file
index 8a1bd37a61d04db6fad07133fd6318ee4a7f0b3c..90c6ed935d3a7c2471659b5c05a4ccd191a649d7 100644 (file)
@@ -20,5 +20,4 @@ package org.intellij.plugins.xsltDebugger;
  * Thrown by the EDTGuard when some method cannot be completed due to the target VM being paused.
  */
 public class VMPausedException extends RuntimeException {
-  public static final String MESSAGE = "Target VM is not responding";
 }
index e4722418aab18deec57c0168fdcd61138ab20d98..96970d2b590f591c400c7d15f4a5bcfea469f3f0 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
+// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
 package org.intellij.plugins.xsltDebugger;
 
 import com.intellij.openapi.editor.Document;
@@ -25,7 +25,7 @@ public class XsltBreakpointType extends XLineBreakpointType<XBreakpointPropertie
   private final XsltDebuggerEditorsProvider myMyEditorsProvider2 = new XsltDebuggerEditorsProvider(XsltChecker.LanguageLevel.V2);
 
   public XsltBreakpointType() {
-    super("xslt", "XSLT Breakpoints");
+    super("xslt", XsltDebuggerBundle.message("title.xslt.breakpoints"));
   }
 
   @Override
diff --git a/plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/XsltDebuggerBundle.java b/plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/XsltDebuggerBundle.java
new file mode 100644 (file)
index 0000000..ce17e81
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
+package org.intellij.plugins.xsltDebugger;
+
+import com.intellij.DynamicBundle;
+import org.jetbrains.annotations.Nls;
+import org.jetbrains.annotations.NonNls;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.PropertyKey;
+
+import java.util.function.Supplier;
+
+/**
+ * (c) 2020 Silent Forest AB
+ * created: 06 August 2020
+ */
+public class XsltDebuggerBundle extends DynamicBundle {
+  @NonNls private static final String BUNDLE = "messages.XsltDebuggerBundle";
+  private static final XsltDebuggerBundle INSTANCE = new XsltDebuggerBundle();
+
+  private XsltDebuggerBundle() {
+    super(BUNDLE);
+  }
+
+  @NotNull
+  public static @Nls String message(@NotNull @PropertyKey(resourceBundle = BUNDLE) String key, Object @NotNull ... params) {
+    return INSTANCE.getMessage(key, params);
+  }
+
+  @NotNull
+  public static Supplier<@Nls String> messagePointer(@NotNull @PropertyKey(resourceBundle = BUNDLE) String key,
+                                                     Object @NotNull ... params) {
+    return INSTANCE.getLazyMessage(key, params);
+  }
+}
index 9fd66d6752504b0302ce886b6d09a39fc77602fa..33c3e94cf46348a1a2553196347c304feb89d663 100644 (file)
@@ -18,6 +18,7 @@ package org.intellij.plugins.xsltDebugger;
 
 import com.intellij.execution.process.ProcessHandler;
 import com.intellij.openapi.Disposable;
+import com.intellij.openapi.diagnostic.Logger;
 import com.intellij.openapi.editor.Editor;
 import com.intellij.openapi.fileEditor.FileEditorManager;
 import com.intellij.openapi.fileEditor.OpenFileDescriptor;
@@ -50,6 +51,8 @@ import java.util.EventListener;
  * hits a breakpoint, resumes execution, etc.
  */
 public final class XsltDebuggerSession implements Disposable {
+  private static final Logger LOG = Logger.getInstance(XsltDebuggerSession.class);
+
   private static final Key<XsltDebuggerSession> DEBUGGER_SESSION = Key.create("DEBUGGER_SESSION");
 
   private final Project myProject;
@@ -175,7 +178,7 @@ public final class XsltDebuggerSession implements Disposable {
 
       return FileEditorManager.getInstance(project).openTextEditor(descriptor, true);
     } catch (MalformedURLException | URISyntaxException e) {
-      e.printStackTrace();
+      LOG.warn(e);
       return null;
     }
   }
index f900b73bd52eb1f6b52b9ebe59ba2da2d964c7b2..d5cd150d929f73b039c2a569f3b9048e73f99314 100644 (file)
@@ -1,3 +1,4 @@
+// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
 package org.intellij.plugins.xsltDebugger.impl;
 
 import com.intellij.execution.ExecutionResult;
@@ -20,6 +21,7 @@ import com.intellij.xdebugger.frame.XSuspendContext;
 import org.intellij.lang.xpath.xslt.impl.XsltChecker;
 import org.intellij.plugins.xsltDebugger.VMPausedException;
 import org.intellij.plugins.xsltDebugger.XsltBreakpointType;
+import org.intellij.plugins.xsltDebugger.XsltDebuggerBundle;
 import org.intellij.plugins.xsltDebugger.XsltDebuggerSession;
 import org.intellij.plugins.xsltDebugger.rt.engine.Breakpoint;
 import org.intellij.plugins.xsltDebugger.rt.engine.BreakpointManager;
@@ -148,7 +150,7 @@ public class XsltDebugProcess extends XDebugProcess implements Disposable {
     try {
       return myDebuggerSession.getClient().ping();
     } catch (VMPausedException e) {
-      getSession().reportMessage(VMPausedException.MESSAGE, MessageType.WARNING);
+      getSession().reportMessage(XsltDebuggerBundle.message("dialog.message.target.vm.not.responding"), MessageType.WARNING);
       return false;
     }
   }
@@ -169,7 +171,7 @@ public class XsltDebugProcess extends XDebugProcess implements Disposable {
     if (myDebuggerSession.canRunTo(position)) {
       myDebuggerSession.runTo(psiFile, position);
     } else {
-      StatusBar.Info.set("Not a valid position in file '" + psiFile.getName() + "'", psiFile.getProject());
+      StatusBar.Info.set(XsltDebuggerBundle.message("status.bar.text.not.valid.position.in.file", psiFile.getName()), psiFile.getProject());
       final Debugger c = myDebuggerSession.getClient();
       getSession().positionReached(new MySuspendContext(myDebuggerSession, c.getCurrentFrame(), c.getSourceFrame()));
     }
@@ -188,11 +190,11 @@ public class XsltDebugProcess extends XDebugProcess implements Disposable {
 
     @Override
     public XExecutionStack getActiveExecutionStack() {
-      return new XsltExecutionStack("XSLT Frames", myStyleFrame, myDebuggerSession);
+      return new XsltExecutionStack(XsltDebuggerBundle.message("list.item.xslt.frames"), myStyleFrame, myDebuggerSession);
     }
 
     public XExecutionStack getSourceStack() {
-      return new XsltExecutionStack("Source Frames", mySourceFrame, myDebuggerSession);
+      return new XsltExecutionStack(XsltDebuggerBundle.message("list.item.source.frames"), mySourceFrame, myDebuggerSession);
     }
 
     @Override
index 129308324278d17c695f0b1d1778f7819c17ffb8..6c61a40306b3f60a03d3c6f4a5ee13cbdbc95fbf 100644 (file)
@@ -1,8 +1,11 @@
+// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
 package org.intellij.plugins.xsltDebugger.impl;
 
+import com.intellij.openapi.util.NlsContexts;
 import com.intellij.xdebugger.frame.XExecutionStack;
 import com.intellij.xdebugger.frame.XStackFrame;
 import org.intellij.plugins.xsltDebugger.VMPausedException;
+import org.intellij.plugins.xsltDebugger.XsltDebuggerBundle;
 import org.intellij.plugins.xsltDebugger.XsltDebuggerSession;
 import org.intellij.plugins.xsltDebugger.rt.engine.Debugger;
 
@@ -14,7 +17,7 @@ public class XsltExecutionStack extends XExecutionStack {
   private final XsltStackFrame myTopFrame;
   private final XsltDebuggerSession myDebuggerSession;
 
-  public XsltExecutionStack(String name, Debugger.Frame topFrame, XsltDebuggerSession debuggerSession) {
+  public XsltExecutionStack(@NlsContexts.ListItem String name, Debugger.Frame topFrame, XsltDebuggerSession debuggerSession) {
     super(name);
     myDebuggerSession = debuggerSession;
     myTopFrame = new XsltStackFrame(topFrame, myDebuggerSession);
@@ -45,7 +48,7 @@ public class XsltExecutionStack extends XExecutionStack {
         }
       }
     } catch (VMPausedException e) {
-      container.errorOccurred(VMPausedException.MESSAGE);
+      container.errorOccurred(XsltDebuggerBundle.message("dialog.message.target.vm.not.responding"));
     }
   }
 }
index 3adf52fedc720a2c4ee8e412d6cb847a7d92aaa5..e45326a84abfbe624f6766d4cc658b10d659a502 100644 (file)
@@ -1,3 +1,4 @@
+// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
 package org.intellij.plugins.xsltDebugger.impl;
 
 import com.intellij.openapi.vfs.VfsUtil;
@@ -9,6 +10,7 @@ import com.intellij.xdebugger.XSourcePosition;
 import com.intellij.xdebugger.evaluation.XDebuggerEvaluator;
 import com.intellij.xdebugger.frame.*;
 import org.intellij.plugins.xsltDebugger.VMPausedException;
+import org.intellij.plugins.xsltDebugger.XsltDebuggerBundle;
 import org.intellij.plugins.xsltDebugger.XsltDebuggerSession;
 import org.intellij.plugins.xsltDebugger.rt.engine.Debugger;
 import org.intellij.plugins.xsltDebugger.rt.engine.DebuggerStoppedException;
@@ -97,7 +99,7 @@ public class XsltStackFrame extends XStackFrame {
         super.computeChildren(node);
       }
     } catch (VMPausedException ignored) {
-      node.setErrorMessage(VMPausedException.MESSAGE);
+      node.setErrorMessage(XsltDebuggerBundle.message("dialog.message.target.vm.not.responding"));
     }
   }
 
@@ -201,7 +203,7 @@ public class XsltStackFrame extends XStackFrame {
         final Value eval = myFrame.eval(expression);
         callback.evaluated(new MyValue(new ExpressionResult(eval)));
       } catch (VMPausedException ignored) {
-        callback.errorOccurred(VMPausedException.MESSAGE);
+        callback.errorOccurred(XsltDebuggerBundle.message("dialog.message.target.vm.not.responding"));
       } catch (Debugger.EvaluationException e) {
         callback.errorOccurred(e.getMessage() != null ? e.getMessage() : e.toString());
       }
index 2d80ffa92b0bcdfd86862fed747533e24e884cfa..5ce1ffcf58d8aa474e6c0fb8bbf81cbce7b4f5b3 100644 (file)
@@ -1,6 +1,8 @@
+// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
 package org.intellij.plugins.xsltDebugger.ui;
 
 import com.intellij.diagnostic.logging.AdditionalTabComponent;
+import com.intellij.openapi.util.NlsContexts;
 import org.jetbrains.annotations.NotNull;
 
 import javax.swing.*;
@@ -8,7 +10,7 @@ import javax.swing.*;
 abstract class AbstractTabComponent extends AdditionalTabComponent {
   private final String myTabTitle;
 
-  AbstractTabComponent(String tabTitle) {
+  AbstractTabComponent(@NlsContexts.TabTitle String tabTitle) {
     myTabTitle = tabTitle;
   }
 
index 074ceb5b3494cfc52fa62534ed77a0a7682dd13f..cb327159e8fbb1c4727538af1668e29fb93f1446 100644 (file)
@@ -21,6 +21,7 @@ import com.intellij.ui.ColoredTreeCellRenderer;
 import com.intellij.ui.SimpleTextAttributes;
 import com.intellij.util.PlatformIcons;
 import icons.XsltDebuggerIcons;
+import org.intellij.plugins.xsltDebugger.XsltDebuggerBundle;
 import org.intellij.plugins.xsltDebugger.rt.engine.OutputEventQueue;
 
 import javax.swing.*;
@@ -40,7 +41,7 @@ class GeneratedStructureRenderer extends ColoredTreeCellRenderer {
     } else if (o instanceof String) {
       // "..." node
       append((String)o, SimpleTextAttributes.SYNTHETIC_ATTRIBUTES);
-      setToolTipText("Element is not finished yet");
+      setToolTipText(XsltDebuggerBundle.message("tooltip.element.is.not.finished.yet"));
     } else if (o instanceof OutputEventQueue.NodeEvent) {
       final OutputEventQueue.NodeEvent event = (OutputEventQueue.NodeEvent)o;
       final OutputEventQueue.NodeEvent.QName qname = event.getQName();
index 8e2485139c9e973523ac9997346a4999785071df..c70011c61e1b9ce4d32a4a416c2084447dffe338 100644 (file)
@@ -1,8 +1,10 @@
+// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
 package org.intellij.plugins.xsltDebugger.ui;
 
 import com.intellij.diagnostic.logging.AdditionalTabComponent;
 import com.intellij.openapi.actionSystem.ActionGroup;
 import com.intellij.openapi.actionSystem.DefaultActionGroup;
+import org.intellij.plugins.xsltDebugger.XsltDebuggerBundle;
 import org.intellij.plugins.xsltDebugger.ui.actions.OpenOutputAction;
 import org.jetbrains.annotations.NotNull;
 
@@ -13,7 +15,7 @@ public class OutputTabComponent extends AbstractTabComponent {
   private final AdditionalTabComponent myOutputConsole;
 
   public OutputTabComponent(AdditionalTabComponent outputConsole) {
-    super("Output");
+    super(XsltDebuggerBundle.message("tab.title.output"));
 
     myOutputConsole = outputConsole;
     final DefaultActionGroup outputActions = new DefaultActionGroup();
index 116a747e7989e8c2cd48f8358589e799439ad986..0ef2da8b091a534248a1188d1fc02e09d926c421 100644 (file)
@@ -9,6 +9,7 @@ import com.intellij.openapi.actionSystem.ActionGroup;
 import com.intellij.openapi.actionSystem.DefaultActionGroup;
 import com.intellij.openapi.util.Key;
 import com.intellij.ui.ScrollPaneFactory;
+import org.intellij.plugins.xsltDebugger.XsltDebuggerBundle;
 import org.intellij.plugins.xsltDebugger.ui.actions.HideWhitespaceAction;
 import org.jetbrains.annotations.NotNull;
 
@@ -22,7 +23,7 @@ public final class StructureTabComponent extends AbstractTabComponent {
   private final GeneratedStructureModel myEventModel;
 
   private StructureTabComponent(@NotNull Disposable disposable) {
-    super("Structure");
+    super(XsltDebuggerBundle.message("tab.title.structure"));
 
     myEventModel = new GeneratedStructureModel();
 
index 930a25f3f95b05bf624ad7ffb89fa7af5b197d42..3c5c7a21552c9079df5fee3f6d2b6f84aecc0a28 100644 (file)
@@ -20,6 +20,7 @@ import com.intellij.ide.util.treeView.TreeState;
 import com.intellij.openapi.actionSystem.AnActionEvent;
 import com.intellij.openapi.actionSystem.ToggleAction;
 import com.intellij.ui.treeStructure.Tree;
+import org.intellij.plugins.xsltDebugger.XsltDebuggerBundle;
 import org.intellij.plugins.xsltDebugger.ui.GeneratedStructureModel;
 import org.jetbrains.annotations.NotNull;
 
@@ -28,7 +29,7 @@ public class HideWhitespaceAction extends ToggleAction {
   private final GeneratedStructureModel myEventModel;
 
   public HideWhitespaceAction(Tree structureTree, GeneratedStructureModel eventModel) {
-    super("Hide Whitespace Nodes");
+    super(XsltDebuggerBundle.message("action.hide.whitespace.nodes.text"));
     myStructureTree = structureTree;
     myEventModel = eventModel;
 
index 09470f5cff1cfc3fc4c8d1d84d6b19c57c43bf79..6fab9e09cae83f6c77032824ea30f395394125f0 100644 (file)
@@ -18,6 +18,7 @@ package org.intellij.plugins.xsltDebugger.ui.actions;
 import com.intellij.diagnostic.logging.AdditionalTabComponent;
 import com.intellij.icons.AllIcons;
 import com.intellij.ide.DataManager;
+import com.intellij.lang.LangBundle;
 import com.intellij.openapi.actionSystem.AnAction;
 import com.intellij.openapi.actionSystem.AnActionEvent;
 import com.intellij.openapi.actionSystem.CommonDataKeys;
@@ -34,7 +35,7 @@ public class OpenOutputAction extends AnAction {
   private final AdditionalTabComponent myConsole;
 
   public OpenOutputAction(AdditionalTabComponent console) {
-    super("Open in Editor");
+    super(LangBundle.message("button.open.in.editor"));
     myConsole = console;
     getTemplatePresentation().setIcon(AllIcons.ToolbarDecorator.Export);
   }