diff --git a/src/com/jpexs/decompiler/flash/gui/GenericTagTreePanel.java b/src/com/jpexs/decompiler/flash/gui/GenericTagTreePanel.java
index fbf0fbde2..0d2e4a7b3 100644
--- a/src/com/jpexs/decompiler/flash/gui/GenericTagTreePanel.java
+++ b/src/com/jpexs/decompiler/flash/gui/GenericTagTreePanel.java
@@ -22,6 +22,7 @@ import com.jpexs.decompiler.flash.gui.generictageditors.Amf3ValueEditor;
import com.jpexs.decompiler.flash.gui.generictageditors.BinaryDataEditor;
import com.jpexs.decompiler.flash.gui.generictageditors.BooleanEditor;
import com.jpexs.decompiler.flash.gui.generictageditors.ColorEditor;
+import com.jpexs.decompiler.flash.gui.generictageditors.FullSized;
import com.jpexs.decompiler.flash.gui.generictageditors.GenericTagEditor;
import com.jpexs.decompiler.flash.gui.generictageditors.NumberEditor;
import com.jpexs.decompiler.flash.gui.generictageditors.StringEditor;
@@ -49,6 +50,7 @@ import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
+import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
@@ -66,6 +68,7 @@ import java.util.Objects;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.AbstractCellEditor;
+import javax.swing.BorderFactory;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JMenu;
@@ -75,6 +78,7 @@ import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JTree;
+import javax.swing.UIManager;
import javax.swing.event.TreeModelListener;
import javax.swing.plaf.basic.BasicLabelUI;
import javax.swing.plaf.basic.BasicTreeUI;
@@ -135,6 +139,12 @@ public class GenericTagTreePanel extends GenericTagPanel {
@Override
public Component getTreeCellEditorComponent(JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row) {
+ Rectangle cellRect = tree.getPathBounds(tree.getPathForRow(row));
+ Rectangle treeVisibleRect = tree.getVisibleRect();
+ int scrollBarSize = ((Integer) UIManager.get("ScrollBar.width")).intValue();
+
+ Rectangle cellMaxVisibleRect = new Rectangle(cellRect.x, cellRect.y, treeVisibleRect.width - cellRect.x - tree.getInsets().left - tree.getInsets().right - scrollBarSize, cellRect.height);
+
if (value instanceof FieldNode) {
fnode = (FieldNode) value;
JPanel panSum = new JPanel(new FlowLayout(FlowLayout.LEFT, 0, 0));
@@ -194,7 +204,7 @@ public class GenericTagTreePanel extends GenericTagPanel {
}
};
- pan.setBackground(Color.white);
+ pan.setOpaque(false);
nameLabel.setAlignmentY(TOP_ALIGNMENT);
pan.add(nameLabel);
@@ -203,6 +213,9 @@ public class GenericTagTreePanel extends GenericTagPanel {
nameLabel.setSize(nameLabel.getWidth(), editorComponent.getHeight());
editorComponent.setAlignmentY(TOP_ALIGNMENT);
pan.add(editorComponent);
+ if (editorComponent instanceof FullSized) {
+ editorComponent.setPreferredSize(new Dimension(cellMaxVisibleRect.width - (int) nameLabel.getPreferredSize().getWidth() - 5, editorComponent.getPreferredSize().height));
+ }
if (editorComponent instanceof GenericTagEditor) {
((GenericTagEditor) editorComponent).added();
}
@@ -212,6 +225,7 @@ public class GenericTagTreePanel extends GenericTagPanel {
}
panSum.add(pan);
}
+ panSum.setPreferredSize(new Dimension(cellMaxVisibleRect.width, panSum.getPreferredSize().height));
return panSum;
}
return null;
diff --git a/src/com/jpexs/decompiler/flash/gui/generictageditors/Amf3ValueEditor.java b/src/com/jpexs/decompiler/flash/gui/generictageditors/Amf3ValueEditor.java
index a29a9c72a..de0c78b98 100644
--- a/src/com/jpexs/decompiler/flash/gui/generictageditors/Amf3ValueEditor.java
+++ b/src/com/jpexs/decompiler/flash/gui/generictageditors/Amf3ValueEditor.java
@@ -19,6 +19,8 @@ package com.jpexs.decompiler.flash.gui.generictageditors;
import com.jpexs.decompiler.flash.amf.amf3.Amf3Value;
import com.jpexs.decompiler.flash.exporters.amf.amf3.Amf3Exporter;
import com.jpexs.decompiler.flash.gui.AppStrings;
+import com.jpexs.decompiler.flash.gui.View;
+import com.jpexs.decompiler.flash.gui.editor.LineMarkedEditorPane;
import com.jpexs.decompiler.flash.importers.amf.amf3.Amf3Importer;
import com.jpexs.decompiler.flash.importers.amf.amf3.Amf3ParseException;
import com.jpexs.helpers.Helper;
@@ -27,6 +29,11 @@ import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.Insets;
+import java.awt.Rectangle;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.event.FocusAdapter;
@@ -37,11 +44,13 @@ import java.awt.event.MouseListener;
import java.io.IOException;
import java.lang.reflect.Field;
import java.util.Timer;
+import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JEditorPane;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;
@@ -49,24 +58,9 @@ import javax.swing.event.CaretListener;
*
* @author JPEXS
*/
-public class Amf3ValueEditor extends JPanel implements GenericTagEditor {
+public class Amf3ValueEditor extends JPanel implements GenericTagEditor, FullSized {
- private JEditorPane editor = new JEditorPane() {
- @Override
- public boolean getScrollableTracksViewportWidth() {
- return true;
- }
-
- @Override
- public Component.BaselineResizeBehavior getBaselineResizeBehavior() {
- return Component.BaselineResizeBehavior.CONSTANT_ASCENT;
- }
-
- @Override
- public int getBaseline(int width, int height) {
- return 0;
- }
- };
+ private LineMarkedEditorPane editor = new LineMarkedEditorPane();
private final Object obj;
@@ -88,6 +82,23 @@ public class Amf3ValueEditor extends JPanel implements GenericTagEditor {
String s = editor.getText();
editor.setContentType("text/javascript");
editor.setText(s);
+ editor.setCaretPosition(0);
+ //Dimension csize = getPreferredSize();
+ //System.out.println("max=" + getMaximumSize());
+
+ //csize.height = 300;
+ //Dimension editorSize = editor.getPreferredSize();
+ //setPreferredSize(csize);
+ }
+
+ @Override
+ public BaselineResizeBehavior getBaselineResizeBehavior() {
+ return Component.BaselineResizeBehavior.CONSTANT_ASCENT;
+ }
+
+ @Override
+ public int getBaseline(int width, int height) {
+ return 0;
}
public Amf3ValueEditor(String fieldName, Object obj, Field field, int index, Class> type) {
@@ -96,12 +107,56 @@ public class Amf3ValueEditor extends JPanel implements GenericTagEditor {
this.index = index;
this.type = type;
this.fieldName = fieldName;
-
+ setPreferredSize(new Dimension(800, 200));
setLayout(new BorderLayout());
- Dimension d = new Dimension(500, 330);
- setSize(d);
- setPreferredSize(d);
+ JPanel titlePanel = new JPanel(new BorderLayout()) {
+ @Override
+ public Insets getInsets() {
+ Insets is = super.getInsets();
+ is.left = 5;
+ return is;
+ }
+
+ };
+ JLabel titleLabel = new JLabel(AppStrings.translate("generic.editor.amf3.title"));
+ titleLabel.setFont(titleLabel.getFont().deriveFont(Font.BOLD));
+ titlePanel.add(titleLabel, BorderLayout.CENTER);
+ JButton helpButton = new JButton(View.getIcon("about16"));
+ helpButton.setFocusable(false);
+ JTextArea txthelp = new JTextArea();
+ txthelp.setFont(new Font("monospaced", Font.PLAIN, 12));
+
+ final String SCALAR_SAMPLES = " * undefined, null, false, true\n"
+ + " * integer : -5, 5, 29\n"
+ + " * double: 5.5, 1.27, -187.568\n"
+ + " * String: \"hello\", \"escape new\\nline\"\n";
+ final String NONSCALAR_SAMPLES = " * XMLDocument: {\"type\":\"XMLDocument\", value: \"\"}\n"
+ + " * Date: {\"type\":\"Date\", \"value\": \"2016-07-17 14:51:42.584\"}\n"
+ + " * Array: {\"type\":\"Array\", \"denseValues\": [27,58,99], \"associativeValues\": {\"key1\":5, \"key2\": -4.6 }}\n"
+ + " * Object: {\"type\":\"Object\",\"className\":\"\",\"dynamic\":true,\n"
+ + " \"sealedMembers\": {\"smemberA\": \"abc\", \"smemberB\":987.5},\n"
+ + " \"dynamicMembers\": {\"member1\": 5, \"member2\": \"aaa\"}\n"
+ + " }\n"
+ + " * XML: {\"type\":\"XML\", value: \"\"}\n"
+ + " * ByteArray: {\"type\":\"ByteArray\", \"value\":\"B0312F\"}\n"
+ + " * Vector: {\"type\": \"Vector\", \"fixed\":false, \"subtype\":\"int\", \"values\": [8, 4, 6]}\n"
+ + " * Dictionary: {\"type\": \"Dictionary\", \"weakKeys\":false, \"entries\": { \"dkey1\" : \"val1\", \"dkey2\": 56 }}\n";
+ final String REFERENCE_SAMPLE = " {\"type\": \"Vector\", \"fixed\":false, \"subtype\":\"\",\n"
+ + " \"values\": [\n"
+ + " {\"type\":\"Date\", id=\"mydate\",\"value\": \"2016-07-17 14:51:42.584\"}\n"
+ + " #mydate,\n"
+ + " #mydate,\n"
+ + " {\"type\":\"Date\", \"value\": \"2016-07-26 18:12:22.188\"}\n"
+ + " ]}";
+
+ txthelp.setText(AppStrings.translate("generic.editor.amf3.help").replace("%scalar_samples%", SCALAR_SAMPLES).replace("%nonscalar_samples%", NONSCALAR_SAMPLES).replace("%reference_sample%", REFERENCE_SAMPLE));
+ txthelp.setEditable(false);
+ helpButton.addActionListener((ActionEvent e) -> {
+ View.showMessageDialog(null, txthelp);
+ });
+ titlePanel.add(helpButton, BorderLayout.EAST);
+ add(titlePanel, BorderLayout.NORTH);
add(new JScrollPane(editor), BorderLayout.CENTER);
add(errorLabel, BorderLayout.SOUTH);
@@ -161,6 +216,13 @@ public class Amf3ValueEditor extends JPanel implements GenericTagEditor {
importer.stringToAmf(textVal);
}
} catch (IOException | Amf3ParseException ex) {
+
+ if (ex instanceof Amf3ParseException) {
+ Amf3ParseException ape = (Amf3ParseException) ex;
+ if (ape.line > 0) {
+ editor.gotoLine((int) ape.line);
+ }
+ }
final CaretListener cl = new CaretListener() {
@Override
public void caretUpdate(CaretEvent e) {
diff --git a/src/com/jpexs/decompiler/flash/gui/generictageditors/FullSized.java b/src/com/jpexs/decompiler/flash/gui/generictageditors/FullSized.java
new file mode 100644
index 000000000..8313adcaa
--- /dev/null
+++ b/src/com/jpexs/decompiler/flash/gui/generictageditors/FullSized.java
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2016 Jindra
+ *
+ * This program 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.
+ *
+ * This program 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 this program. If not, see .
+ */
+package com.jpexs.decompiler.flash.gui.generictageditors;
+
+/**
+ *
+ * @author JPEXS
+ */
+public interface FullSized {
+
+}
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/MainFrame.properties b/src/com/jpexs/decompiler/flash/gui/locales/MainFrame.properties
index 2426914fd..06029c57c 100644
--- a/src/com/jpexs/decompiler/flash/gui/locales/MainFrame.properties
+++ b/src/com/jpexs/decompiler/flash/gui/locales/MainFrame.properties
@@ -1,723 +1,737 @@
-# Copyright (C) 2010-2016 JPEXS
-#
-# This program 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.
-#
-# This program 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 this program. If not, see .
-
-menu.file = File
-menu.file.open = Open...
-menu.file.save = Save
-menu.file.saveas = Save as...
-menu.file.export.fla = Export to FLA
-menu.file.export.all = Export all parts
-menu.file.export.selection = Export selection
-menu.file.exit = Exit
-
-menu.tools = Tools
-menu.tools.searchas = Search All ActionScript...
-menu.tools.proxy = Proxy
-menu.tools.deobfuscation = Deobfuscation
-menu.tools.deobfuscation.pcode = P-code deobfuscation...
-menu.tools.deobfuscation.globalrename = Globally rename identifier
-menu.tools.deobfuscation.renameinvalid = Rename invalid identifiers
-menu.tools.gotoDocumentClass = Go to document class
-
-menu.settings = Settings
-menu.settings.autodeobfuscation = Automatic deobfuscation
-menu.settings.internalflashviewer = Use own Flash viewer
-menu.settings.parallelspeedup = Parallel SpeedUp
-menu.settings.disabledecompilation = Disable decompilation (Disassemble only)
-menu.settings.addtocontextmenu = Add FFDec to SWF files context menu
-menu.settings.language = Change language
-menu.settings.cacheOnDisk = Use caching on disk
-menu.settings.gotoMainClassOnStartup = Highlight document class on startup
-
-menu.help = Help
-menu.help.checkupdates = Check for updates...
-menu.help.helpus = Help us!
-menu.help.homepage = Visit homepage
-menu.help.about = About...
-
-contextmenu.remove = Remove
-
-button.save = Save
-button.edit = Edit
-button.cancel = Cancel
-button.replace = Replace...
-
-notavailonthisplatform = Preview of this object is not available on this platform (Windows only).
-
-swfpreview = SWF preview
-swfpreview.internal = SWF preview (Internal viewer)
-
-parameters = Parameters
-
-rename.enternew = Enter new name:
-
-rename.finished.identifier = Identifier renamed.
-rename.finished.multiname = %count% multiname(s) renamed.
-
-node.texts = texts
-node.images = images
-node.movies = movies
-node.sounds = sounds
-node.binaryData = binaryData
-node.fonts = fonts
-node.sprites = sprites
-node.shapes = shapes
-node.morphshapes = morphshapes
-node.buttons = buttons
-node.frames = frames
-node.scripts = scripts
-
-message.warning = Warning
-message.confirm.experimental = Following procedure can damage SWF file which can be then unplayable.\r\nUSE IT ON YOUR OWN RISK. Do you want to continue?
-message.confirm.parallel = Parallelism can speed up loading and decompilation but uses more memory.
-message.confirm.on = Do you want to turn this ON?
-message.confirm.off = Do you want to turn this OFF?
-message.confirm = Confirm
-
-message.confirm.autodeobfuscate = Automatic deobfuscation is a way to decompile obfuscated code.\r\nDeobfuscation leads to slower decompilation and some of the dead code may be eliminated.\r\nIf the code is not obfuscated, it's better to turn autodeobfuscation off.
-
-message.parallel = Parallelism
-message.trait.saved = Trait successfully saved
-
-message.constant.new.string = String "%value%" is not present in constants table. Do you want to add it?
-message.constant.new.string.title = Add String
-message.constant.new.integer = Integer value "%value%" is not present in constants table. Do you want to add it?
-message.constant.new.integer.title = Add Integer
-message.constant.new.unsignedinteger = Unsigned integer value "%value%" is not present in constants table. Do you want to add it?
-message.constant.new.unsignedinteger.title = Add Unsigned integer
-message.constant.new.double = Double value "%value%" is not present in constants table. Do you want to add it?
-message.constant.new.double.title = Add Double
-
-work.buffering = Buffering
-work.waitingfordissasembly = Waiting for disassembly
-work.gettinghilights = Getting highlights
-work.disassembling = Disassembling
-work.exporting = Exporting
-work.searching = Searching
-work.renaming = Renaming
-work.exporting.fla = Exporting FLA
-work.renaming.identifiers = Renaming identifiers
-work.deobfuscating = Deobfuscating
-work.decompiling = Decompiling
-work.gettingvariables = Getting variables
-work.reading.swf = Reading SWF
-work.creatingwindow = Creating window
-work.buildingscripttree = Building script tree
-
-work.deobfuscating.complete = Deobfuscation complete
-
-message.search.notfound = String "%searchtext%" not found.
-message.search.notfound.title = Not found
-
-message.rename.notfound.multiname = No multiname found under cursor
-message.rename.notfound.identifier = No identifier found under cursor
-message.rename.notfound.title = Not found
-message.rename.renamed = Identifiers renamed: %count%
-
-filter.images = Images (%extensions%)
-filter.fla = %version% Document (*.fla)
-filter.xfl = %version% Uncompressed Document (*.xfl)
-filter.swf = SWF files (*.swf)
-
-error = Error
-error.image.invalid = Invalid image.
-
-error.text.invalid = Invalid text: %text% on line %line%
-error.file.save = Cannot save file
-error.file.write = Cannot write to the file
-error.export = Error during export
-
-export.select.directory = Select directory to export
-export.finishedin = Exported in %time%
-
-update.check.title = Update check
-update.check.nonewversion = No new version available.
-
-message.helpus = Please visit\r\n%url%\r\nfor details.
-message.homepage = Visit homepage at: \r\n%url%
-
-proxy = Proxy
-proxy.start = Start proxy
-proxy.stop = Stop proxy
-proxy.show = Show proxy
-exit = Exit
-
-panel.disassembled = P-code source
-panel.decompiled = ActionScript source
-
-search.info = Search for "%text%":
-search.script = Script
-
-constants = Constants
-traits = Traits
-
-pleasewait = Please wait
-
-abc.detail.methodtrait = Method/Getter/Setter Trait
-abc.detail.unsupported = -
-abc.detail.slotconsttrait = Slot/Const Trait
-abc.detail.traitname = Name:
-
-abc.detail.body.params.maxstack = Max stack:
-abc.detail.body.params.localregcount = Local registers count:
-abc.detail.body.params.minscope = Minimum scope depth:
-abc.detail.body.params.maxscope = Maximum scope depth:
-abc.detail.body.params.autofill = Auto fill on code save (GLOBAL SETTING)
-abc.detail.body.params.autofill.experimental = ...EXPERIMENTAL
-
-abc.detail.methodinfo.methodindex = Method Index:
-abc.detail.methodinfo.parameters = Parameters:
-abc.detail.methodinfo.returnvalue = Return value type:
-
-error.methodinfo.params = MethodInfo Params Error
-error.methodinfo.returnvalue = MethodInfo Return value type Error
-
-abc.detail.methodinfo = MethodInfo
-abc.detail.body.code = MethodBody Code
-abc.detail.body.params = MethodBody params
-
-abc.detail.slotconst.typevalue = Type and Value:
-
-error.slotconst.typevalue = SlotConst type value Error
-
-message.autofill.failed = Cannot get code stats for automatic body params.\r\nUncheck autofill to avoid this message.
-info.selecttrait = Select class and click a trait in Actionscript source to edit it.
-
-button.viewgraph = View Graph
-button.viewhex = View Hex
-
-abc.traitslist.instanceinitializer = instance initializer
-abc.traitslist.classinitializer = class initializer
-
-action.edit.experimental = (Experimental)
-
-message.action.saved = Code successfully saved
-
-error.action.save = %error% on line %line%
-
-message.confirm.remove = Are you sure you want to remove %item%\n and all objects which depend on it?
-
-#after version 1.6.5u1:
-
-button.ok = OK
-button.cancel = Cancel
-
-font.name = Font name:
-font.isbold = Is bold:
-font.isitalic = Is italic:
-font.ascent = Ascent:
-font.descent = Descent:
-font.leading = Leading:
-font.characters = Characters:
-font.characters.add = Add characters:
-value.unknown = ?
-
-yes = yes
-no = no
-
-errors.present = There are ERRORS in the log. Click to view.
-errors.none = There are no errors in the log.
-
-#after version 1.6.6:
-
-dialog.message.title = Message
-dialog.select.title = Select an Option
-
-button.yes = Yes
-button.no = No
-
-FileChooser.openButtonText = Open
-FileChooser.openButtonToolTipText = Open
-FileChooser.lookInLabelText = Look in:
-FileChooser.acceptAllFileFilterText = All Files
-FileChooser.filesOfTypeLabelText = Files of type:
-FileChooser.fileNameLabelText = File name:
-FileChooser.listViewButtonToolTipText = List
-FileChooser.listViewButtonAccessibleName = List
-FileChooser.detailsViewButtonToolTipText = Details
-FileChooser.detailsViewButtonAccessibleName = Details
-FileChooser.upFolderToolTipText = Up One Level
-FileChooser.upFolderAccessibleName = Up One Level
-FileChooser.homeFolderToolTipText = Home
-FileChooser.homeFolderAccessibleName = Home
-FileChooser.fileNameHeaderText = Name
-FileChooser.fileSizeHeaderText = Size
-FileChooser.fileTypeHeaderText = Type
-FileChooser.fileDateHeaderText = Date
-FileChooser.fileAttrHeaderText = Attributes
-FileChooser.openDialogTitleText = Open
-FileChooser.directoryDescriptionText = Directory
-FileChooser.directoryOpenButtonText = Open
-FileChooser.directoryOpenButtonToolTipText = Open selected directory
-FileChooser.fileDescriptionText = Generic File
-FileChooser.helpButtonText = Help
-FileChooser.helpButtonToolTipText = FileChooser help
-FileChooser.newFolderAccessibleName = New Folder
-FileChooser.newFolderErrorText = Error creating new folder
-FileChooser.newFolderToolTipText = Create New Folder
-FileChooser.other.newFolder = NewFolder
-FileChooser.other.newFolder.subsequent = NewFolder.{0}
-FileChooser.win32.newFolder = New Folder
-FileChooser.win32.newFolder.subsequent = New Folder ({0})
-FileChooser.saveButtonText = Save
-FileChooser.saveButtonToolTipText = Save selected file
-FileChooser.saveDialogTitleText = Save
-FileChooser.saveInLabelText = Save in:
-FileChooser.updateButtonText = Update
-FileChooser.updateButtonToolTipText = Update directory listing
-
-#after version 1.6.6u2:
-
-FileChooser.detailsViewActionLabel.textAndMnemonic = Details
-FileChooser.detailsViewButtonToolTip.textAndMnemonic = Details
-FileChooser.fileAttrHeader.textAndMnemonic = Attributes
-FileChooser.fileDateHeader.textAndMnemonic = Modified
-FileChooser.fileNameHeader.textAndMnemonic = Name
-FileChooser.fileNameLabel.textAndMnemonic = File name:
-FileChooser.fileSizeHeader.textAndMnemonic = Size
-FileChooser.fileTypeHeader.textAndMnemonic = Type
-FileChooser.filesOfTypeLabel.textAndMnemonic = Files of type:
-FileChooser.folderNameLabel.textAndMnemonic = Folder name:
-FileChooser.homeFolderToolTip.textAndMnemonic = Home
-FileChooser.listViewActionLabel.textAndMnemonic = List
-FileChooser.listViewButtonToolTip.textAndMnemonic = List
-FileChooser.lookInLabel.textAndMnemonic = Look in:
-FileChooser.newFolderActionLabel.textAndMnemonic = New Folder
-FileChooser.newFolderToolTip.textAndMnemonic = Create New Folder
-FileChooser.refreshActionLabel.textAndMnemonic = Refresh
-FileChooser.saveInLabel.textAndMnemonic = Save in:
-FileChooser.upFolderToolTip.textAndMnemonic = Up One Level
-FileChooser.viewMenuButtonAccessibleName = View Menu
-FileChooser.viewMenuButtonToolTipText = View Menu
-FileChooser.viewMenuLabel.textAndMnemonic = View
-FileChooser.newFolderActionLabelText = New Folder
-FileChooser.listViewActionLabelText = List
-FileChooser.detailsViewActionLabelText = Details
-FileChooser.refreshActionLabelText = Refresh
-FileChooser.sortMenuLabelText = Arrange Icons By
-FileChooser.viewMenuLabelText = View
-FileChooser.fileSizeKiloBytes = {0} KB
-FileChooser.fileSizeMegaBytes = {0} MB
-FileChooser.fileSizeGigaBytes = {0} GB
-FileChooser.folderNameLabelText = Folder name:
-
-error.occured = Error occurred: %error%
-button.abort = Abort
-button.retry = Retry
-button.ignore = Ignore
-
-font.source = Source Font:
-
-#after version 1.6.7:
-
-menu.export = Export
-menu.general = General
-menu.language = Language
-
-startup.welcometo = Welcome to
-startup.selectopen = Click Open icon on the top panel or drag SWF file to this window to start.
-
-error.font.nocharacter = Selected source font does not contain character "%char%".
-
-warning.initializers = Static fields and consts are often initialized in initializers.\nEditing value here is usually not enough!
-
-#after version 1.7.0u1:
-
-menu.tools.searchMemory = Search SWFs in memory
-menu.file.reload = Reload
-message.confirm.reload = This action cancels all unsaved changes and reloads the SWF file again.\nDo you want to continue?
-
-dialog.selectbkcolor.title = Select background color for SWF display
-button.selectbkcolor.hint = Select background color
-
-ColorChooser.okText = OK
-ColorChooser.cancelText = Cancel
-ColorChooser.resetText = Reset
-ColorChooser.previewText = Preview
-ColorChooser.swatchesNameText = Swatches
-ColorChooser.swatchesRecentText = Recent:
-ColorChooser.sampleText = Sample Text Sample Text
-
-#after version 1.7.1:
-
-preview.play = Play
-preview.pause = Pause
-preview.stop = Stop
-
-message.confirm.removemultiple = Are you sure you want to remove %count% items\n and all objects which depend on it?
-
-menu.tools.searchCache = Search browsers cache
-
-#after version 1.7.2u2
-
-error.trait.exists = Trait with name "%name%" already exists.
-button.addtrait = Add trait
-button.font.embed = Embed...
-button.yes.all = Yes to all
-button.no.all = No to all
-message.font.add.exists = Character %char% already exists in the font tag.\nDo you want to replace it?
-
-filter.gfx = ScaleForm GFx files (*.gfx)
-filter.supported = All supported filetypes
-work.canceled = Canceled
-work.restoringControlFlow = Restoring control flow
-menu.advancedsettings.advancedsettings = Advanced Settings
-menu.recentFiles = Recent files
-
-#after version 1.7.4
-work.restoringControlFlow.complete = Control flow restored
-message.confirm.recentFileNotFound = File not found. Do you want to remove it from the recent file list?
-contextmenu.closeSwf = Close SWF
-menu.settings.autoRenameIdentifiers = Auto rename identifiers
-menu.file.saveasexe = Save as Exe...
-filter.exe = Executable files (*.exe)
-
-#after version 1.8.0
-font.updateTexts = Update texts
-
-#after version 1.8.0u1
-menu.file.close = Close
-menu.file.closeAll = Close all
-menu.tools.otherTools = Other
-menu.tools.otherTools.clearRecentFiles = Clear recent files
-fontName.name = Font display name:
-fontName.copyright = Font copyright:
-button.preview = Preview
-button.reset = Reset
-errors.info = There are INFORMATIONS in the log. Click to view.
-errors.warning = There are WARNINGS in the log. Click to view.
-
-decompilationError = Decompilation error
-
-disassemblingProgress.toString = toString
-disassemblingProgress.reading = Reading
-disassemblingProgress.deobfuscating = Deobfuscating
-
-contextmenu.moveTag = Move tag to
-
-filter.swc = SWC component files (*.swc)
-filter.zip = ZIP compressed files (*.zip)
-filter.binary = Binary search - all files (*.*)
-
-open.error = Error
-open.error.fileNotFound = File not found
-open.error.cannotOpen = Cannot open file
-
-node.others = others
-
-#after version 1.8.1
-menu.tools.search = Text Search
-
-#after version 1.8.1u1
-menu.tools.timeline = Timeline
-
-dialog.selectcolor.title = Select color
-button.selectcolor.hint = Click to select color
-
-#default item name, will be used in following sentences
-generictag.array.item = item
-generictag.array.insertbeginning = Insert %item% at the beginning
-generictag.array.insertbefore = Insert %item% before
-generictag.array.remove = Remove %item%
-generictag.array.insertafter = Insert %item% after
-generictag.array.insertend = Insert %item% at the end
-
-#after version 2.0.0
-contextmenu.expandAll = Expand all
-
-filter.sounds = Supported sound formats (*.wav, *.mp3)
-filter.sounds.wav = Wave file format (*.wav)
-filter.sounds.mp3 = MP3 compressed format (*.mp3)
-
-error.sound.invalid = Invalid sound.
-
-button.prev = Previous
-button.next = Next
-
-#after version 2.1.0
-message.action.playerglobal.title = PlayerGlobal library needed
-message.action.playerglobal.needed = For ActionScript 3 direct editation, a library called "PlayerGlobal.swc" needs to be downloaded from Adobe homepage.\r\n%adobehomepage%\r\nPress OK to go to the download page.
-message.action.playerglobal.place = Download the library called PlayerGlobal(.swc), and place it to directory\r\n%libpath%\r\n Press OK to continue.
-
-message.confirm.experimental.function = This function is EXPERIMENTAL. It means that you should not trust the results and the SWF file can be disfunctional after saving.
-message.confirm.donotshowagain = Do not show again
-
-menu.import = Import
-menu.file.import.text = Import text
-import.select.directory = Select directory to import
-error.text.import = Error during text import. Do you want to continue?
-
-#after version 2.1.1
-contextmenu.removeWithDependencies = Remove with dependencies
-
-abc.action.find-usages = Find usages
-abc.action.find-declaration = Find declaration
-
-contextmenu.rawEdit = Raw edit
-contextmenu.jumpToCharacter = Jump to character
-
-menu.settings.dumpView = Dump view
-
-menu.view = View
-menu.file.view.resources = Resources
-menu.file.view.hex = Hex dump
-
-node.header = header
-
-header.signature = Signature:
-header.compression = Compression:
-header.compression.lzma = LZMA
-header.compression.zlib = ZLIB
-header.compression.none = No compression
-header.version = SWF Version:
-header.gfx = GFX:
-header.filesize = File size:
-header.framerate = Frame rate:
-header.framecount = Frame count:
-header.displayrect = Display rect:
-header.displayrect.value.twips = %xmin%,%ymin% => %xmax%,%ymax% twips
-header.displayrect.value.pixels = %xmin%,%ymin% => %xmax%,%ymax% pixels
-
-#after version 2.1.2
-contextmenu.saveToFile = Save to File
-contextmenu.parseActions = Parse actions
-contextmenu.parseABC = Parse ABC
-contextmenu.parseInstructions = Parse AVM2 Instructions
-
-#after version 2.1.3
-menu.deobfuscation = Deobfuscation
-menu.file.deobfuscation.old = Old style
-menu.file.deobfuscation.new = New style
-
-#after version 2.1.4
-contextmenu.openswfinside = Open SWF inside
-binarydata.swfInside = It looks like there is SWF inside this binary data tag. Click here to load it as subtree.
-
-#after version 3.0.0
-button.zoomin.hint = Zoom in
-button.zoomout.hint = Zoom out
-button.zoomfit.hint = Zoom to fit
-button.zoomnone.hint = Zoom to 1:1
-button.snapshot.hint = Take snapshot into clipboard
-
-editorTruncateWarning = Text truncated at position %chars% in debug mode.
-
-#Font name which is presented in the SWF Font tag
-font.name.intag = Font name in tag:
-
-menu.debugger = Debugger
-menu.debugger.switch = Debugger
-menu.debugger.replacetrace = Replace trace calls
-menu.debugger.showlog = Show Log
-
-message.debugger = This SWF Debugger can only be used to print messages to log window, browser console or alerts.\r\nIt is NOT designed for features like step code, breakpoints etc.
-
-contextmenu.addTag = Add tag
-
-deobfuscation.comment.tryenable = Tip: You can try enabling "Automatic deobfuscation" in Settings
-deobfuscation.comment.failed = Deobfuscation is activated but decompilation still failed. If the file is NOT obfuscated, disable "Automatic deobfuscation" for better results.
-
-#after version 4.0.2
-preview.nextframe = Next frame
-preview.prevframe = Previous frame
-preview.gotoframe = Goto frame...
-
-preview.gotoframe.dialog.title = Goto frame
-preview.gotoframe.dialog.message = Enter frame number (%min% - %max%)
-preview.gotoframe.dialog.frame.error = Invalid frame number. It must be number between %min% and %max%.
-
-error.text.invalid.continue = Invalid text: %text% on line %line%. Do you want to continue?
-
-#after version 4.0.5
-contextmenu.copyTag = Copy tag to
-fit = fit
-button.setAdvanceValues = Set advance values
-
-menu.tools.replace = Text Replace
-
-message.confirm.close = There are unsaved changes. Do you really want to close {swfName}?
-message.confirm.closeAll = There are unsaved changes. Do you really want to close all SWFs?
-
-contextmenu.exportJavaSource = Export Java Source
-contextmenu.exportSwfXml = Export SWF as XML
-contextmenu.importSwfXml = Import SWF XML
-
-filter.xml = XML
-
-#after version 4.1.0
-contextmenu.undo = Undo
-
-text.align.left = Left align
-text.align.right = Right align
-text.align.center = Center align
-text.align.justify = Justify align
-
-text.undo = Undo changes
-
-menu.file.import.xml = Import SWF XML
-menu.file.export.xml = Export SWF XML
-
-#after version 4.1.1
-text.align.translatex.decrease = Decrease TranslateX
-text.align.translatex.increase = Increase TranslateX
-selectPreviousTag = Select previous tag
-selectNextTag = Select next tag
-button.ignoreAll = Ignore All
-menu.file.import.symbolClass = Import Symbol-Class
-text.toggleCase = Toggle case
-
-#after version 5.0.2
-preview.loop = Loop
-menu.file.import.script = Import script
-contextmenu.copyTagWithDependencies = Copy tag with dependencies to
-button.replaceWithTag = Replace with other character tag
-button.resolveConstants = Resolve constants
-
-#after version 5.1.0
-button.viewConstants = View Constants
-work.exported = Exported
-button.replaceAlphaChannel = Replace alpha channel...
-
-tagInfo.header.name = Name
-tagInfo.header.value = Value
-tagInfo.tagType = Tag Type
-tagInfo.characterId = Character Id
-tagInfo.offset = Offset
-tagInfo.length = Length
-tagInfo.bounds = Bounds
-tagInfo.width = Width
-tagInfo.height = Height
-tagInfo.neededCharacters = Needed Characters
-
-button.viewhexpcode = View Hex with instructions
-taginfo.header = Basic tag info
-
-tagInfo.dependentCharacters = Dependent Characters
-
-#after version 5.3.0
-header.uncompressed = Uncompressed
-header.warning.unsupportedGfxCompression = GFX supports only uncompressed or Zlib compressed content.
-header.warning.minimumZlibVersion = Zlib compression needs SWF version 6 or greater.
-header.warning.minimumLzmaVersion = LZMA compression needs SWF version 13 or greater.
-
-tagInfo.codecName = Codec Name
-tagInfo.exportFormat = Export Format
-tagInfo.samplingRate = Sampling Rate
-tagInfo.stereo = Stereo
-tagInfo.sampleCount = Sample Count
-
-filter.dmg = Mac Executable files (*.dmg)
-filter.linuxExe = Linux Executable files
-
-import.script.result = %count% scripts imported.
-import.script.as12warning = Import script can import only AS1/2 scripts.
-
-error.constantPoolTooBig = Constant pool is too big. index=%index%, size=%size%
-error.image.alpha.invalid = Invalid alpha channel data.
-
-#after version 6.0.2
-contextmenu.saveUncompressedToFile = Save to Uncompressed File
-abc.traitslist.scriptinitializer = script initializer
-menu.settings.autoOpenLoadedSWFs = Open loaded SWFs while playing
-
-#after version 6.1.1
-menu.file.start = Start
-menu.file.start.run = Run
-menu.file.start.stop = Stop
-menu.file.start.debug = Debug
-menu.debugging = Debugging
-menu.debugging.debug = Debug
-menu.debugging.debug.stop = Stop
-menu.debugging.debug.pause = Pause
-menu.debugging.debug.stepOver = Step over
-menu.debugging.debug.stepInto = Step into
-menu.debugging.debug.stepOut = Step out
-menu.debugging.debug.continue = Continue
-menu.debugging.debug.stack = Stack...
-menu.debugging.debug.watch = New watch...
-
-message.playerpath.notset = Flash Player projector not found. Please configure its path in Advanced Settings / Paths (1).
-message.playerpath.debug.notset = Flash Player projector content debugger not found. Please configure its path in Advanced Settings / Paths (2).
-message.playerpath.lib.notset = PlayerGlobal (.SWC) not found. Please configure its path in Advanced Settings / Paths (3).
-
-debugpanel.header = Debugging
-
-variables.header.registers = Registers
-variables.header.locals = Locals
-variables.header.arguments = Arguments
-variables.header.scopeChain = Scope chain
-variables.column.name = Name
-variables.column.type = Type
-variables.column.value = Value
-
-callStack.header = Call stack
-callStack.header.file = File
-callStack.header.line = Line
-
-stack.header = Stack
-stack.header.item = Item
-
-constantpool.header = Constant pool
-constantpool.header.id = Id
-constantpool.header.value = Value
-
-work.running = Running
-work.debugging = Debugging
-work.debugging.instrumenting = Preparing SWF for debugging
-work.breakat = Break at\u0020
-work.halted = Debugging started, execution halted. Add breakpoints and click Continue (F5) to resume running.
-
-debuglog.header = Log
-debuglog.button.clear = Clear
-
-#after 7.0.1
-work.debugging.wait = Waiting for Flash debug projector to connect
-
-error.debug.listen = Cannot listen on port %port%. There might be other flash debugger running.
-
-debug.break.reason.unknown = (Unknown)
-debug.break.reason.breakpoint = (Breakpoint)
-debug.break.reason.watch = (Watch)
-debug.break.reason.fault = (Fault)
-debug.break.reason.stopRequest = (Stop request)
-debug.break.reason.step = (Step)
-debug.break.reason.halt = (Halt)
-debug.break.reason.scriptLoaded = (Script loaded)
-
-menu.file.start.debugpcode = Debug P-code
-
-#after 7.1.2
-button.replaceNoFill = Replace - Update bounds...
-message.warning.svgImportExperimental = Not all SVG features are supported. Please check the log after import.
-
-message.imported.swf = The SWF file uses assets from an imported SWF file:\n%url%\nDo you want the assets to be loaded from that URL?
-message.imported.swf.manually = Cannot load imported SWF\n%url%\nThe file or URL does not exist.\nDo you want to select local file?
-
-message.warning.hexViewNotUpToDate = Hex View is not up-to-date. Please save and reload the file to update Hex View.
-message.font.replace.updateTexts = Some characters were replaced. Do you want to update the existing texts?
-
-menu.settings.simplifyExpressions = Simplify expressions
-
-#after 8.0.1
-menu.recentFiles.empty = Recent file list is empty
-message.warning.outOfMemory32BitJre = OutOfMemory error occurred. You are running 32bit Java on 64bit system. Please use 64bit Java.
-
-menu.file.reloadAll = Reload all
-message.confirm.reloadAll = This action cancels all unsaved changes in all SWF files and reloads whole application again.\nDo you want to continue?
-export.script.singleFilePallelModeWarning = Single file script export is not supported with enabled parallel speedup
-
-button.showOriginalBytesInPcodeHex = Show original bytes
-button.remove = Remove
-button.showFileOffsetInPcodeHex = Show file offset
+# Copyright (C) 2010-2016 JPEXS
+#
+# This program 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.
+#
+# This program 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 this program. If not, see .
+
+menu.file = File
+menu.file.open = Open...
+menu.file.save = Save
+menu.file.saveas = Save as...
+menu.file.export.fla = Export to FLA
+menu.file.export.all = Export all parts
+menu.file.export.selection = Export selection
+menu.file.exit = Exit
+
+menu.tools = Tools
+menu.tools.searchas = Search All ActionScript...
+menu.tools.proxy = Proxy
+menu.tools.deobfuscation = Deobfuscation
+menu.tools.deobfuscation.pcode = P-code deobfuscation...
+menu.tools.deobfuscation.globalrename = Globally rename identifier
+menu.tools.deobfuscation.renameinvalid = Rename invalid identifiers
+menu.tools.gotoDocumentClass = Go to document class
+
+menu.settings = Settings
+menu.settings.autodeobfuscation = Automatic deobfuscation
+menu.settings.internalflashviewer = Use own Flash viewer
+menu.settings.parallelspeedup = Parallel SpeedUp
+menu.settings.disabledecompilation = Disable decompilation (Disassemble only)
+menu.settings.addtocontextmenu = Add FFDec to SWF files context menu
+menu.settings.language = Change language
+menu.settings.cacheOnDisk = Use caching on disk
+menu.settings.gotoMainClassOnStartup = Highlight document class on startup
+
+menu.help = Help
+menu.help.checkupdates = Check for updates...
+menu.help.helpus = Help us!
+menu.help.homepage = Visit homepage
+menu.help.about = About...
+
+contextmenu.remove = Remove
+
+button.save = Save
+button.edit = Edit
+button.cancel = Cancel
+button.replace = Replace...
+
+notavailonthisplatform = Preview of this object is not available on this platform (Windows only).
+
+swfpreview = SWF preview
+swfpreview.internal = SWF preview (Internal viewer)
+
+parameters = Parameters
+
+rename.enternew = Enter new name:
+
+rename.finished.identifier = Identifier renamed.
+rename.finished.multiname = %count% multiname(s) renamed.
+
+node.texts = texts
+node.images = images
+node.movies = movies
+node.sounds = sounds
+node.binaryData = binaryData
+node.fonts = fonts
+node.sprites = sprites
+node.shapes = shapes
+node.morphshapes = morphshapes
+node.buttons = buttons
+node.frames = frames
+node.scripts = scripts
+
+message.warning = Warning
+message.confirm.experimental = Following procedure can damage SWF file which can be then unplayable.\r\nUSE IT ON YOUR OWN RISK. Do you want to continue?
+message.confirm.parallel = Parallelism can speed up loading and decompilation but uses more memory.
+message.confirm.on = Do you want to turn this ON?
+message.confirm.off = Do you want to turn this OFF?
+message.confirm = Confirm
+
+message.confirm.autodeobfuscate = Automatic deobfuscation is a way to decompile obfuscated code.\r\nDeobfuscation leads to slower decompilation and some of the dead code may be eliminated.\r\nIf the code is not obfuscated, it's better to turn autodeobfuscation off.
+
+message.parallel = Parallelism
+message.trait.saved = Trait successfully saved
+
+message.constant.new.string = String "%value%" is not present in constants table. Do you want to add it?
+message.constant.new.string.title = Add String
+message.constant.new.integer = Integer value "%value%" is not present in constants table. Do you want to add it?
+message.constant.new.integer.title = Add Integer
+message.constant.new.unsignedinteger = Unsigned integer value "%value%" is not present in constants table. Do you want to add it?
+message.constant.new.unsignedinteger.title = Add Unsigned integer
+message.constant.new.double = Double value "%value%" is not present in constants table. Do you want to add it?
+message.constant.new.double.title = Add Double
+
+work.buffering = Buffering
+work.waitingfordissasembly = Waiting for disassembly
+work.gettinghilights = Getting highlights
+work.disassembling = Disassembling
+work.exporting = Exporting
+work.searching = Searching
+work.renaming = Renaming
+work.exporting.fla = Exporting FLA
+work.renaming.identifiers = Renaming identifiers
+work.deobfuscating = Deobfuscating
+work.decompiling = Decompiling
+work.gettingvariables = Getting variables
+work.reading.swf = Reading SWF
+work.creatingwindow = Creating window
+work.buildingscripttree = Building script tree
+
+work.deobfuscating.complete = Deobfuscation complete
+
+message.search.notfound = String "%searchtext%" not found.
+message.search.notfound.title = Not found
+
+message.rename.notfound.multiname = No multiname found under cursor
+message.rename.notfound.identifier = No identifier found under cursor
+message.rename.notfound.title = Not found
+message.rename.renamed = Identifiers renamed: %count%
+
+filter.images = Images (%extensions%)
+filter.fla = %version% Document (*.fla)
+filter.xfl = %version% Uncompressed Document (*.xfl)
+filter.swf = SWF files (*.swf)
+
+error = Error
+error.image.invalid = Invalid image.
+
+error.text.invalid = Invalid text: %text% on line %line%
+error.file.save = Cannot save file
+error.file.write = Cannot write to the file
+error.export = Error during export
+
+export.select.directory = Select directory to export
+export.finishedin = Exported in %time%
+
+update.check.title = Update check
+update.check.nonewversion = No new version available.
+
+message.helpus = Please visit\r\n%url%\r\nfor details.
+message.homepage = Visit homepage at: \r\n%url%
+
+proxy = Proxy
+proxy.start = Start proxy
+proxy.stop = Stop proxy
+proxy.show = Show proxy
+exit = Exit
+
+panel.disassembled = P-code source
+panel.decompiled = ActionScript source
+
+search.info = Search for "%text%":
+search.script = Script
+
+constants = Constants
+traits = Traits
+
+pleasewait = Please wait
+
+abc.detail.methodtrait = Method/Getter/Setter Trait
+abc.detail.unsupported = -
+abc.detail.slotconsttrait = Slot/Const Trait
+abc.detail.traitname = Name:
+
+abc.detail.body.params.maxstack = Max stack:
+abc.detail.body.params.localregcount = Local registers count:
+abc.detail.body.params.minscope = Minimum scope depth:
+abc.detail.body.params.maxscope = Maximum scope depth:
+abc.detail.body.params.autofill = Auto fill on code save (GLOBAL SETTING)
+abc.detail.body.params.autofill.experimental = ...EXPERIMENTAL
+
+abc.detail.methodinfo.methodindex = Method Index:
+abc.detail.methodinfo.parameters = Parameters:
+abc.detail.methodinfo.returnvalue = Return value type:
+
+error.methodinfo.params = MethodInfo Params Error
+error.methodinfo.returnvalue = MethodInfo Return value type Error
+
+abc.detail.methodinfo = MethodInfo
+abc.detail.body.code = MethodBody Code
+abc.detail.body.params = MethodBody params
+
+abc.detail.slotconst.typevalue = Type and Value:
+
+error.slotconst.typevalue = SlotConst type value Error
+
+message.autofill.failed = Cannot get code stats for automatic body params.\r\nUncheck autofill to avoid this message.
+info.selecttrait = Select class and click a trait in Actionscript source to edit it.
+
+button.viewgraph = View Graph
+button.viewhex = View Hex
+
+abc.traitslist.instanceinitializer = instance initializer
+abc.traitslist.classinitializer = class initializer
+
+action.edit.experimental = (Experimental)
+
+message.action.saved = Code successfully saved
+
+error.action.save = %error% on line %line%
+
+message.confirm.remove = Are you sure you want to remove %item%\n and all objects which depend on it?
+
+#after version 1.6.5u1:
+
+button.ok = OK
+button.cancel = Cancel
+
+font.name = Font name:
+font.isbold = Is bold:
+font.isitalic = Is italic:
+font.ascent = Ascent:
+font.descent = Descent:
+font.leading = Leading:
+font.characters = Characters:
+font.characters.add = Add characters:
+value.unknown = ?
+
+yes = yes
+no = no
+
+errors.present = There are ERRORS in the log. Click to view.
+errors.none = There are no errors in the log.
+
+#after version 1.6.6:
+
+dialog.message.title = Message
+dialog.select.title = Select an Option
+
+button.yes = Yes
+button.no = No
+
+FileChooser.openButtonText = Open
+FileChooser.openButtonToolTipText = Open
+FileChooser.lookInLabelText = Look in:
+FileChooser.acceptAllFileFilterText = All Files
+FileChooser.filesOfTypeLabelText = Files of type:
+FileChooser.fileNameLabelText = File name:
+FileChooser.listViewButtonToolTipText = List
+FileChooser.listViewButtonAccessibleName = List
+FileChooser.detailsViewButtonToolTipText = Details
+FileChooser.detailsViewButtonAccessibleName = Details
+FileChooser.upFolderToolTipText = Up One Level
+FileChooser.upFolderAccessibleName = Up One Level
+FileChooser.homeFolderToolTipText = Home
+FileChooser.homeFolderAccessibleName = Home
+FileChooser.fileNameHeaderText = Name
+FileChooser.fileSizeHeaderText = Size
+FileChooser.fileTypeHeaderText = Type
+FileChooser.fileDateHeaderText = Date
+FileChooser.fileAttrHeaderText = Attributes
+FileChooser.openDialogTitleText = Open
+FileChooser.directoryDescriptionText = Directory
+FileChooser.directoryOpenButtonText = Open
+FileChooser.directoryOpenButtonToolTipText = Open selected directory
+FileChooser.fileDescriptionText = Generic File
+FileChooser.helpButtonText = Help
+FileChooser.helpButtonToolTipText = FileChooser help
+FileChooser.newFolderAccessibleName = New Folder
+FileChooser.newFolderErrorText = Error creating new folder
+FileChooser.newFolderToolTipText = Create New Folder
+FileChooser.other.newFolder = NewFolder
+FileChooser.other.newFolder.subsequent = NewFolder.{0}
+FileChooser.win32.newFolder = New Folder
+FileChooser.win32.newFolder.subsequent = New Folder ({0})
+FileChooser.saveButtonText = Save
+FileChooser.saveButtonToolTipText = Save selected file
+FileChooser.saveDialogTitleText = Save
+FileChooser.saveInLabelText = Save in:
+FileChooser.updateButtonText = Update
+FileChooser.updateButtonToolTipText = Update directory listing
+
+#after version 1.6.6u2:
+
+FileChooser.detailsViewActionLabel.textAndMnemonic = Details
+FileChooser.detailsViewButtonToolTip.textAndMnemonic = Details
+FileChooser.fileAttrHeader.textAndMnemonic = Attributes
+FileChooser.fileDateHeader.textAndMnemonic = Modified
+FileChooser.fileNameHeader.textAndMnemonic = Name
+FileChooser.fileNameLabel.textAndMnemonic = File name:
+FileChooser.fileSizeHeader.textAndMnemonic = Size
+FileChooser.fileTypeHeader.textAndMnemonic = Type
+FileChooser.filesOfTypeLabel.textAndMnemonic = Files of type:
+FileChooser.folderNameLabel.textAndMnemonic = Folder name:
+FileChooser.homeFolderToolTip.textAndMnemonic = Home
+FileChooser.listViewActionLabel.textAndMnemonic = List
+FileChooser.listViewButtonToolTip.textAndMnemonic = List
+FileChooser.lookInLabel.textAndMnemonic = Look in:
+FileChooser.newFolderActionLabel.textAndMnemonic = New Folder
+FileChooser.newFolderToolTip.textAndMnemonic = Create New Folder
+FileChooser.refreshActionLabel.textAndMnemonic = Refresh
+FileChooser.saveInLabel.textAndMnemonic = Save in:
+FileChooser.upFolderToolTip.textAndMnemonic = Up One Level
+FileChooser.viewMenuButtonAccessibleName = View Menu
+FileChooser.viewMenuButtonToolTipText = View Menu
+FileChooser.viewMenuLabel.textAndMnemonic = View
+FileChooser.newFolderActionLabelText = New Folder
+FileChooser.listViewActionLabelText = List
+FileChooser.detailsViewActionLabelText = Details
+FileChooser.refreshActionLabelText = Refresh
+FileChooser.sortMenuLabelText = Arrange Icons By
+FileChooser.viewMenuLabelText = View
+FileChooser.fileSizeKiloBytes = {0} KB
+FileChooser.fileSizeMegaBytes = {0} MB
+FileChooser.fileSizeGigaBytes = {0} GB
+FileChooser.folderNameLabelText = Folder name:
+
+error.occured = Error occurred: %error%
+button.abort = Abort
+button.retry = Retry
+button.ignore = Ignore
+
+font.source = Source Font:
+
+#after version 1.6.7:
+
+menu.export = Export
+menu.general = General
+menu.language = Language
+
+startup.welcometo = Welcome to
+startup.selectopen = Click Open icon on the top panel or drag SWF file to this window to start.
+
+error.font.nocharacter = Selected source font does not contain character "%char%".
+
+warning.initializers = Static fields and consts are often initialized in initializers.\nEditing value here is usually not enough!
+
+#after version 1.7.0u1:
+
+menu.tools.searchMemory = Search SWFs in memory
+menu.file.reload = Reload
+message.confirm.reload = This action cancels all unsaved changes and reloads the SWF file again.\nDo you want to continue?
+
+dialog.selectbkcolor.title = Select background color for SWF display
+button.selectbkcolor.hint = Select background color
+
+ColorChooser.okText = OK
+ColorChooser.cancelText = Cancel
+ColorChooser.resetText = Reset
+ColorChooser.previewText = Preview
+ColorChooser.swatchesNameText = Swatches
+ColorChooser.swatchesRecentText = Recent:
+ColorChooser.sampleText = Sample Text Sample Text
+
+#after version 1.7.1:
+
+preview.play = Play
+preview.pause = Pause
+preview.stop = Stop
+
+message.confirm.removemultiple = Are you sure you want to remove %count% items\n and all objects which depend on it?
+
+menu.tools.searchCache = Search browsers cache
+
+#after version 1.7.2u2
+
+error.trait.exists = Trait with name "%name%" already exists.
+button.addtrait = Add trait
+button.font.embed = Embed...
+button.yes.all = Yes to all
+button.no.all = No to all
+message.font.add.exists = Character %char% already exists in the font tag.\nDo you want to replace it?
+
+filter.gfx = ScaleForm GFx files (*.gfx)
+filter.supported = All supported filetypes
+work.canceled = Canceled
+work.restoringControlFlow = Restoring control flow
+menu.advancedsettings.advancedsettings = Advanced Settings
+menu.recentFiles = Recent files
+
+#after version 1.7.4
+work.restoringControlFlow.complete = Control flow restored
+message.confirm.recentFileNotFound = File not found. Do you want to remove it from the recent file list?
+contextmenu.closeSwf = Close SWF
+menu.settings.autoRenameIdentifiers = Auto rename identifiers
+menu.file.saveasexe = Save as Exe...
+filter.exe = Executable files (*.exe)
+
+#after version 1.8.0
+font.updateTexts = Update texts
+
+#after version 1.8.0u1
+menu.file.close = Close
+menu.file.closeAll = Close all
+menu.tools.otherTools = Other
+menu.tools.otherTools.clearRecentFiles = Clear recent files
+fontName.name = Font display name:
+fontName.copyright = Font copyright:
+button.preview = Preview
+button.reset = Reset
+errors.info = There are INFORMATIONS in the log. Click to view.
+errors.warning = There are WARNINGS in the log. Click to view.
+
+decompilationError = Decompilation error
+
+disassemblingProgress.toString = toString
+disassemblingProgress.reading = Reading
+disassemblingProgress.deobfuscating = Deobfuscating
+
+contextmenu.moveTag = Move tag to
+
+filter.swc = SWC component files (*.swc)
+filter.zip = ZIP compressed files (*.zip)
+filter.binary = Binary search - all files (*.*)
+
+open.error = Error
+open.error.fileNotFound = File not found
+open.error.cannotOpen = Cannot open file
+
+node.others = others
+
+#after version 1.8.1
+menu.tools.search = Text Search
+
+#after version 1.8.1u1
+menu.tools.timeline = Timeline
+
+dialog.selectcolor.title = Select color
+button.selectcolor.hint = Click to select color
+
+#default item name, will be used in following sentences
+generictag.array.item = item
+generictag.array.insertbeginning = Insert %item% at the beginning
+generictag.array.insertbefore = Insert %item% before
+generictag.array.remove = Remove %item%
+generictag.array.insertafter = Insert %item% after
+generictag.array.insertend = Insert %item% at the end
+
+#after version 2.0.0
+contextmenu.expandAll = Expand all
+
+filter.sounds = Supported sound formats (*.wav, *.mp3)
+filter.sounds.wav = Wave file format (*.wav)
+filter.sounds.mp3 = MP3 compressed format (*.mp3)
+
+error.sound.invalid = Invalid sound.
+
+button.prev = Previous
+button.next = Next
+
+#after version 2.1.0
+message.action.playerglobal.title = PlayerGlobal library needed
+message.action.playerglobal.needed = For ActionScript 3 direct editation, a library called "PlayerGlobal.swc" needs to be downloaded from Adobe homepage.\r\n%adobehomepage%\r\nPress OK to go to the download page.
+message.action.playerglobal.place = Download the library called PlayerGlobal(.swc), and place it to directory\r\n%libpath%\r\n Press OK to continue.
+
+message.confirm.experimental.function = This function is EXPERIMENTAL. It means that you should not trust the results and the SWF file can be disfunctional after saving.
+message.confirm.donotshowagain = Do not show again
+
+menu.import = Import
+menu.file.import.text = Import text
+import.select.directory = Select directory to import
+error.text.import = Error during text import. Do you want to continue?
+
+#after version 2.1.1
+contextmenu.removeWithDependencies = Remove with dependencies
+
+abc.action.find-usages = Find usages
+abc.action.find-declaration = Find declaration
+
+contextmenu.rawEdit = Raw edit
+contextmenu.jumpToCharacter = Jump to character
+
+menu.settings.dumpView = Dump view
+
+menu.view = View
+menu.file.view.resources = Resources
+menu.file.view.hex = Hex dump
+
+node.header = header
+
+header.signature = Signature:
+header.compression = Compression:
+header.compression.lzma = LZMA
+header.compression.zlib = ZLIB
+header.compression.none = No compression
+header.version = SWF Version:
+header.gfx = GFX:
+header.filesize = File size:
+header.framerate = Frame rate:
+header.framecount = Frame count:
+header.displayrect = Display rect:
+header.displayrect.value.twips = %xmin%,%ymin% => %xmax%,%ymax% twips
+header.displayrect.value.pixels = %xmin%,%ymin% => %xmax%,%ymax% pixels
+
+#after version 2.1.2
+contextmenu.saveToFile = Save to File
+contextmenu.parseActions = Parse actions
+contextmenu.parseABC = Parse ABC
+contextmenu.parseInstructions = Parse AVM2 Instructions
+
+#after version 2.1.3
+menu.deobfuscation = Deobfuscation
+menu.file.deobfuscation.old = Old style
+menu.file.deobfuscation.new = New style
+
+#after version 2.1.4
+contextmenu.openswfinside = Open SWF inside
+binarydata.swfInside = It looks like there is SWF inside this binary data tag. Click here to load it as subtree.
+
+#after version 3.0.0
+button.zoomin.hint = Zoom in
+button.zoomout.hint = Zoom out
+button.zoomfit.hint = Zoom to fit
+button.zoomnone.hint = Zoom to 1:1
+button.snapshot.hint = Take snapshot into clipboard
+
+editorTruncateWarning = Text truncated at position %chars% in debug mode.
+
+#Font name which is presented in the SWF Font tag
+font.name.intag = Font name in tag:
+
+menu.debugger = Debugger
+menu.debugger.switch = Debugger
+menu.debugger.replacetrace = Replace trace calls
+menu.debugger.showlog = Show Log
+
+message.debugger = This SWF Debugger can only be used to print messages to log window, browser console or alerts.\r\nIt is NOT designed for features like step code, breakpoints etc.
+
+contextmenu.addTag = Add tag
+
+deobfuscation.comment.tryenable = Tip: You can try enabling "Automatic deobfuscation" in Settings
+deobfuscation.comment.failed = Deobfuscation is activated but decompilation still failed. If the file is NOT obfuscated, disable "Automatic deobfuscation" for better results.
+
+#after version 4.0.2
+preview.nextframe = Next frame
+preview.prevframe = Previous frame
+preview.gotoframe = Goto frame...
+
+preview.gotoframe.dialog.title = Goto frame
+preview.gotoframe.dialog.message = Enter frame number (%min% - %max%)
+preview.gotoframe.dialog.frame.error = Invalid frame number. It must be number between %min% and %max%.
+
+error.text.invalid.continue = Invalid text: %text% on line %line%. Do you want to continue?
+
+#after version 4.0.5
+contextmenu.copyTag = Copy tag to
+fit = fit
+button.setAdvanceValues = Set advance values
+
+menu.tools.replace = Text Replace
+
+message.confirm.close = There are unsaved changes. Do you really want to close {swfName}?
+message.confirm.closeAll = There are unsaved changes. Do you really want to close all SWFs?
+
+contextmenu.exportJavaSource = Export Java Source
+contextmenu.exportSwfXml = Export SWF as XML
+contextmenu.importSwfXml = Import SWF XML
+
+filter.xml = XML
+
+#after version 4.1.0
+contextmenu.undo = Undo
+
+text.align.left = Left align
+text.align.right = Right align
+text.align.center = Center align
+text.align.justify = Justify align
+
+text.undo = Undo changes
+
+menu.file.import.xml = Import SWF XML
+menu.file.export.xml = Export SWF XML
+
+#after version 4.1.1
+text.align.translatex.decrease = Decrease TranslateX
+text.align.translatex.increase = Increase TranslateX
+selectPreviousTag = Select previous tag
+selectNextTag = Select next tag
+button.ignoreAll = Ignore All
+menu.file.import.symbolClass = Import Symbol-Class
+text.toggleCase = Toggle case
+
+#after version 5.0.2
+preview.loop = Loop
+menu.file.import.script = Import script
+contextmenu.copyTagWithDependencies = Copy tag with dependencies to
+button.replaceWithTag = Replace with other character tag
+button.resolveConstants = Resolve constants
+
+#after version 5.1.0
+button.viewConstants = View Constants
+work.exported = Exported
+button.replaceAlphaChannel = Replace alpha channel...
+
+tagInfo.header.name = Name
+tagInfo.header.value = Value
+tagInfo.tagType = Tag Type
+tagInfo.characterId = Character Id
+tagInfo.offset = Offset
+tagInfo.length = Length
+tagInfo.bounds = Bounds
+tagInfo.width = Width
+tagInfo.height = Height
+tagInfo.neededCharacters = Needed Characters
+
+button.viewhexpcode = View Hex with instructions
+taginfo.header = Basic tag info
+
+tagInfo.dependentCharacters = Dependent Characters
+
+#after version 5.3.0
+header.uncompressed = Uncompressed
+header.warning.unsupportedGfxCompression = GFX supports only uncompressed or Zlib compressed content.
+header.warning.minimumZlibVersion = Zlib compression needs SWF version 6 or greater.
+header.warning.minimumLzmaVersion = LZMA compression needs SWF version 13 or greater.
+
+tagInfo.codecName = Codec Name
+tagInfo.exportFormat = Export Format
+tagInfo.samplingRate = Sampling Rate
+tagInfo.stereo = Stereo
+tagInfo.sampleCount = Sample Count
+
+filter.dmg = Mac Executable files (*.dmg)
+filter.linuxExe = Linux Executable files
+
+import.script.result = %count% scripts imported.
+import.script.as12warning = Import script can import only AS1/2 scripts.
+
+error.constantPoolTooBig = Constant pool is too big. index=%index%, size=%size%
+error.image.alpha.invalid = Invalid alpha channel data.
+
+#after version 6.0.2
+contextmenu.saveUncompressedToFile = Save to Uncompressed File
+abc.traitslist.scriptinitializer = script initializer
+menu.settings.autoOpenLoadedSWFs = Open loaded SWFs while playing
+
+#after version 6.1.1
+menu.file.start = Start
+menu.file.start.run = Run
+menu.file.start.stop = Stop
+menu.file.start.debug = Debug
+menu.debugging = Debugging
+menu.debugging.debug = Debug
+menu.debugging.debug.stop = Stop
+menu.debugging.debug.pause = Pause
+menu.debugging.debug.stepOver = Step over
+menu.debugging.debug.stepInto = Step into
+menu.debugging.debug.stepOut = Step out
+menu.debugging.debug.continue = Continue
+menu.debugging.debug.stack = Stack...
+menu.debugging.debug.watch = New watch...
+
+message.playerpath.notset = Flash Player projector not found. Please configure its path in Advanced Settings / Paths (1).
+message.playerpath.debug.notset = Flash Player projector content debugger not found. Please configure its path in Advanced Settings / Paths (2).
+message.playerpath.lib.notset = PlayerGlobal (.SWC) not found. Please configure its path in Advanced Settings / Paths (3).
+
+debugpanel.header = Debugging
+
+variables.header.registers = Registers
+variables.header.locals = Locals
+variables.header.arguments = Arguments
+variables.header.scopeChain = Scope chain
+variables.column.name = Name
+variables.column.type = Type
+variables.column.value = Value
+
+callStack.header = Call stack
+callStack.header.file = File
+callStack.header.line = Line
+
+stack.header = Stack
+stack.header.item = Item
+
+constantpool.header = Constant pool
+constantpool.header.id = Id
+constantpool.header.value = Value
+
+work.running = Running
+work.debugging = Debugging
+work.debugging.instrumenting = Preparing SWF for debugging
+work.breakat = Break at\u0020
+work.halted = Debugging started, execution halted. Add breakpoints and click Continue (F5) to resume running.
+
+debuglog.header = Log
+debuglog.button.clear = Clear
+
+#after 7.0.1
+work.debugging.wait = Waiting for Flash debug projector to connect
+
+error.debug.listen = Cannot listen on port %port%. There might be other flash debugger running.
+
+debug.break.reason.unknown = (Unknown)
+debug.break.reason.breakpoint = (Breakpoint)
+debug.break.reason.watch = (Watch)
+debug.break.reason.fault = (Fault)
+debug.break.reason.stopRequest = (Stop request)
+debug.break.reason.step = (Step)
+debug.break.reason.halt = (Halt)
+debug.break.reason.scriptLoaded = (Script loaded)
+
+menu.file.start.debugpcode = Debug P-code
+
+#after 7.1.2
+button.replaceNoFill = Replace - Update bounds...
+message.warning.svgImportExperimental = Not all SVG features are supported. Please check the log after import.
+
+message.imported.swf = The SWF file uses assets from an imported SWF file:\n%url%\nDo you want the assets to be loaded from that URL?
+message.imported.swf.manually = Cannot load imported SWF\n%url%\nThe file or URL does not exist.\nDo you want to select local file?
+
+message.warning.hexViewNotUpToDate = Hex View is not up-to-date. Please save and reload the file to update Hex View.
+message.font.replace.updateTexts = Some characters were replaced. Do you want to update the existing texts?
+
+menu.settings.simplifyExpressions = Simplify expressions
+
+#after 8.0.1
+menu.recentFiles.empty = Recent file list is empty
+message.warning.outOfMemory32BitJre = OutOfMemory error occurred. You are running 32bit Java on 64bit system. Please use 64bit Java.
+
+menu.file.reloadAll = Reload all
+message.confirm.reloadAll = This action cancels all unsaved changes in all SWF files and reloads whole application again.\nDo you want to continue?
+export.script.singleFilePallelModeWarning = Single file script export is not supported with enabled parallel speedup
+
+button.showOriginalBytesInPcodeHex = Show original bytes
+button.remove = Remove
+button.showFileOffsetInPcodeHex = Show file offset
+
+generic.editor.amf3.title = AMF3 editor
+generic.editor.amf3.help = AMF3 value syntax:\n\
+ ------------------\n\
+ scalar types:\n\
+ %scalar_samples%\
+ other types:\n\
+ %nonscalar_samples%\
+ \n\
+ Notes:\n\
+ \ * Nonscalar datatypes can be referenced by previously declared "id" attributes with # syntax:\n\
+ %reference_sample%\n
+ \ * Keys in Dictionary entries can be any type\n
+
\ No newline at end of file