diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_ru.properties b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_ru.properties
index aae5160cc..8b3d1625c 100644
--- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_ru.properties
+++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_ru.properties
@@ -30,5 +30,25 @@ timeFormat.minutes = \u043c\u0438\u043d.
timeFormat.second = \u0441\u0435\u043a.
timeFormat.seconds = \u0441\u0435\u043a.
fontNotFound = \u0428\u0440\u0438\u0444\u0442 \u0441 id=%fontId% \u043d\u0435 \u0431\u044b\u043b \u043d\u0430\u0439\u0434\u0435\u043d.
+trait.scriptinitializer = \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0441\u043a\u0440\u0438\u043f\u0442\u0430
trait.instanceinitializer = \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430
trait.classinitializer = \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u043a\u043b\u0430\u0441\u0441\u0430
+#after 16.3.1
+package.default = <\u043f\u0430\u043a\u0435\u0442 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e>
+error.swf.invalid = \u041d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0439 \u0444\u0430\u0439\u043b SWF, \u043d\u0435\u0432\u0435\u0440\u043d\u0430\u044f \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430.
+error.swf.headerTooShort = \u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a SWF \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0439.
+error.abc.invalid = \u041d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0439 \u0444\u0430\u0439\u043b ABC.
+error.swf.decryptionProblem = \u041d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0439 \u0444\u0430\u0439\u043b SWF, \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430 \u043d\u0435 \u0443\u0434\u0430\u043b\u0430\u0441\u044c.
+#after 23.0.1
+defaultValue = \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e:
+possibleValues = \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:
+valueType = \u0422\u0438\u043f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:
+valueType.Double = \u0427\u0438\u0441\u043b\u043e \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0437\u0430\u043f\u044f\u0442\u043e\u0439
+valueType.Color = \u0426\u0432\u0435\u0442
+valueType.Integer = \u0426\u0435\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e
+valueType.String = \u0421\u0442\u0440\u043e\u043a\u0430
+configurationFile = \u0424\u0430\u0439\u043b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 %app%
+configuration.removed = \u041f\u0420\u0415\u0414\u0423\u041f\u0420\u0415\u0416\u0414\u0415\u041d\u0418\u0415: \u042d\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0423\u0414\u0410\u041b\u0415\u041d\u0410. \u041e\u043d\u0430 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f.
+#after 24.0.1
+decompilationWarning.as2.noUninitializedClassFieldsDetection = \u041f\u0420\u0415\u0414\u0423\u041f\u0420\u0415\u0416\u0414\u0415\u041d\u0418\u0415: \u042d\u0442\u043e\u0442 \u043a\u043b\u0430\u0441\u0441 \u0431\u044b\u043b \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d \u0431\u0435\u0437 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043d\u0435\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u0435\u0439 \u043a\u043b\u0430\u0441\u0441\u0430.
+decompilationWarning.obfuscatedIdentifiers = \u041f\u0420\u0415\u0414\u0423\u041f\u0420\u0415\u0416\u0414\u0415\u041d\u0418\u0415: \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b.
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/AboutDialog_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/AboutDialog_ru.properties
index a6e14ab18..6df7936f9 100644
--- a/src/com/jpexs/decompiler/flash/gui/locales/AboutDialog_ru.properties
+++ b/src/com/jpexs/decompiler/flash/gui/locales/AboutDialog_ru.properties
@@ -20,7 +20,7 @@ contributors = \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u043d\u043e\u044
#In the translation, replace "english" with target language name
translation.author.label = \u0410\u0432\u0442\u043e\u0440 \u0440\u0443\u0441\u0441\u043a\u043e\u0439 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438:
#In the translation, insert your name here
-translation.author = focus
+translation.author = focus, Aivaz
developers = \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438:
developers.others = + \u0434\u0440\u0443\u0433\u0438\u0435 \u0441 GitHub \u0438 Google code
translators = \u041f\u0435\u0440\u0435\u0432\u043e\u0434\u0447\u0438\u043a\u0438:
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/AdvancedSettingsDialog_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/AdvancedSettingsDialog_ru.properties
index 05e7aed04..ab4c60c0c 100644
--- a/src/com/jpexs/decompiler/flash/gui/locales/AdvancedSettingsDialog_ru.properties
+++ b/src/com/jpexs/decompiler/flash/gui/locales/AdvancedSettingsDialog_ru.properties
@@ -74,6 +74,8 @@ config.name.openFolderAfterFlaExport = \u041e\u0442\u043a\u0440\u044b\u0432\u043
config.description.openFolderAfterFlaExport = \u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0446\u0435\u043b\u0435\u0432\u0443\u044e \u043f\u0430\u043f\u043a\u0443, \u0432 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0431\u044b\u043b \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d FLA \u0444\u0430\u0439\u043b
config.name.useDetailedLogging = \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u043b\u043e\u0433
config.description.useDetailedLogging = \u041f\u0438\u0441\u0430\u0442\u044c \u0432 \u043b\u043e\u0433 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f\u0445 \u0438 \u043e\u0448\u0438\u0431\u043a\u0430\u0445, \u0434\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u0445 \u0446\u0435\u043b\u0435\u0439
+config.name._debugMode = FFDec \u0432 \u0434\u0435\u0431\u0430\u0433 \u0440\u0435\u0436\u0438\u043c\u0435
+config.description._debugMode = \u0420\u0435\u0436\u0438\u043c \u043e\u0442\u043b\u0430\u0434\u043a\u0438 FFDec. \u0412\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043c\u0435\u043d\u044e \u043e\u0442\u043b\u0430\u0434\u043a\u0438. \u041d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u044f \u043a \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u0430.
config.name.resolveConstants = \u0420\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0432 AS1/2 P-code
config.description.resolveConstants = \u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u0432\u043c\u0435\u0441\u0442\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c 'constantxx' \u0432 \u043e\u043a\u043d\u0435 P-code
config.name.sublimiter = \u041b\u0438\u043c\u0438\u0442 \u0437\u0430\u043c\u0435\u043d \u0432 \u043a\u043e\u0434\u0435
@@ -86,6 +88,8 @@ config.name.paramNamesEnable = \u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c
config.description.paramNamesEnable = \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u043c\u0435\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u0442.\u043a. \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u043d\u0430\u043f\u0440. Flash CS 5.5, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043d\u0435\u0432\u0435\u0440\u043d\u044b\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0438\u043c\u0435\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432
config.name.displayFileName = \u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0438\u043c\u044f SWF \u0444\u0430\u0439\u043b\u0430 \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435
config.description.displayFileName = \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0438\u043c\u044f \u0444\u0430\u0439\u043b\u0430 \u0438\u043b\u0438 url \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0433\u043e SWF \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0435 \u043e\u043a\u043d\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b
+config.name._debugCopy = \u041f\u0435\u0440\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 FFDec
+config.description._debugCopy = \u041f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u043d\u043e\u0432\u043e \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b SWF \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u0442 \u0436\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u043a\u043e\u0434. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u041e\u0422\u041b\u0410\u0414\u041a\u0418 FFDec!
config.name.dumpTags = \u041f\u0438\u0441\u0430\u0442\u044c \u0442\u044d\u0433\u0438 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c
config.description.dumpTags = \u0421\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0442\u044c \u0442\u044d\u0433\u0438 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u043f\u0440\u0438 \u0447\u0442\u0435\u043d\u0438\u0438 SWF
config.name.decompilationTimeoutSingleMethod = \u0422\u0430\u0439\u043c-\u0430\u0443\u0442 \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430 AS3 (\u0441\u0435\u043a.)
@@ -118,16 +122,16 @@ config.name.gui.window.maximized.horizontal = (\u0412\u043d\u0443\u0442\u0440.)
config.description.gui.window.maximized.horizontal = \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043e\u043a\u043d\u0430 - \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u043e \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e
config.name.gui.window.maximized.vertical = (\u0412\u043d\u0443\u0442\u0440.) \u041e\u043a\u043d\u043e \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u043e \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u043e
config.description.gui.window.maximized.vertical = \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043e\u043a\u043d\u0430 - \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u043e \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u043e
-config.name.gui.avm2.splitPane.dividerLocationPercent=(\u0412\u043d\u0443\u0442\u0440.) \u041f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f AS3
-config.description.gui.avm2.splitPane.dividerLocationPercent=
+config.name.gui.avm2.splitPane.dividerLocationPercent = (\u0412\u043d\u0443\u0442\u0440.) \u041f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f AS3
+config.description.gui.avm2.splitPane.dividerLocationPercent =
config.name.gui.actionSplitPane.dividerLocationPercent = (\u0412\u043d\u0443\u0442\u0440.) \u041f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f AS1/2
config.description.gui.actionSplitPane.dividerLocationPercent =
config.name.gui.previewSplitPane.dividerLocationPercent = (\u0412\u043d\u0443\u0442\u0440.) \u041f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043f\u0440\u0435\u0434\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430
config.description.gui.previewSplitPane.dividerLocationPercent =
-config.name.gui.splitPane1.dividerLocationPercent=(\u0412\u043d\u0443\u0442\u0440.) \u041f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f 1
-config.description.gui.splitPane1.dividerLocationPercent=
-config.name.gui.splitPane2.dividerLocationPercent=(\u0412\u043d\u0443\u0442\u0440.) \u041f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f 2
-config.description.gui.splitPane2.dividerLocationPercent=
+config.name.gui.splitPane1.dividerLocationPercent = (\u0412\u043d\u0443\u0442\u0440.) \u041f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f 1
+config.description.gui.splitPane1.dividerLocationPercent =
+config.name.gui.splitPane2.dividerLocationPercent = (\u0412\u043d\u0443\u0442\u0440.) \u041f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f 2
+config.description.gui.splitPane2.dividerLocationPercent =
config.name.saveAsExeScaleMode = \u0420\u0435\u0436\u0438\u043c \u0440\u0430\u0441\u0442\u044f\u0433\u0438\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u0430\u043a EXE
config.description.saveAsExeScaleMode = \u0420\u0435\u0436\u0438\u043c \u0440\u0430\u0441\u0442\u044f\u0433\u0438\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 EXE
config.name.syntaxHighlightLimit = \u041c\u0430\u043a\u0441. \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0434\u043b\u044f \u043f\u043e\u0434\u0441\u0432\u0435\u0442\u043a\u0438 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430
@@ -164,14 +168,18 @@ config.name.textExportSingleFileSeparator = \u0420\u0430\u0437\u0434\u0435\u043b
config.description.textExportSingleFileSeparator = \u0422\u0435\u043a\u0441\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043c\u0435\u0436\u0434\u0443 \u0442\u0435\u043a\u0441\u0442\u0430\u043c\u0438 \u043f\u0440\u0438 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0435 \u0432 \u043e\u0434\u0438\u043d \u0444\u0430\u0439\u043b
config.name.textExportSingleFileRecordSeparator = \u0420\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u043f\u0440\u0438 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0435 \u0432 \u043e\u0434\u0438\u043d \u0444\u0430\u0439\u043b
config.description.textExportSingleFileRecordSeparator = \u0422\u0435\u043a\u0441\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043c\u0435\u0436\u0434\u0443 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u043c\u0438 \u0437\u0430\u043f\u0438\u0441\u044f\u043c\u0438 \u043f\u0440\u0438 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0435 \u0432 \u043e\u0434\u0438\u043d \u0444\u0430\u0439\u043b
-config.name.warning.experimental.as12edit=\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0430\u0442\u044c \u043f\u0440\u0438 \u043f\u0440\u044f\u043c\u043e\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 AS1/2
-config.description.warning.experimental.as12edit=\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f AS1/2
-config.name.warning.experimental.as3edit=\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0430\u0442\u044c \u043f\u0440\u0438 \u043f\u0440\u044f\u043c\u043e\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 AS3
-config.description.warning.experimental.as3edit=\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f AS3
+config.name.warning.experimental.as12edit = \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0430\u0442\u044c \u043f\u0440\u0438 \u043f\u0440\u044f\u043c\u043e\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 AS1/2
+config.description.warning.experimental.as12edit = \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f AS1/2
+config.name.warning.experimental.as3edit = \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0430\u0442\u044c \u043f\u0440\u0438 \u043f\u0440\u044f\u043c\u043e\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 AS3
+config.description.warning.experimental.as3edit = \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f AS3
config.name.packJavaScripts = \u0423\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0442\u044c JavaScript'\u044b
config.description.packJavaScripts = \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0443\u043f\u0430\u043a\u043e\u0432\u0449\u0438\u043a JavaScript \u043d\u0430 \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u0445, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Canvas Export.
config.name.textExportExportFontFace = \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c font-face \u043f\u0440\u0438 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0435 SVG
config.description.textExportExportFontFace = \u0412\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0448\u0440\u0438\u0444\u0442\u043e\u0432 \u0432 SVG \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f font-face \u0432\u043c\u0435\u0441\u0442\u043e \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0445 \u0444\u043e\u0440\u043c
+config.name.lzmaFastBytes = LZMA fast bytes (\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: 5\u2013255)
+config.description.lzmaFastBytes = \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 fast bytes \u0434\u043b\u044f \u043a\u043e\u0434\u0435\u0440\u0430 LZMA.
+config.name.pluginPath = \u041f\u0443\u0442\u044c \u043a \u043f\u043b\u0430\u0433\u0438\u043d\u0430\u043c
+config.description.pluginPath = -
config.name.showMethodBodyId = \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c id \u0442\u0435\u043b\u0430 \u043c\u0435\u0442\u043e\u0434\u0430 (methodbody)
config.description.showMethodBodyId = \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 id methodbody \u043f\u0440\u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0435 \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443
config.name.debuggerPort = \u041f\u043e\u0440\u0442 \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u0430
@@ -182,3 +190,21 @@ config.name.getLocalNamesFromDebugInfo = AS3: \u041f\u043e\u043b\u0443\u0447\u04
config.description.getLocalNamesFromDebugInfo = \u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u044b\u0432\u0430\u0435\u0442 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u0438\u0437 _loc_x_ \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0438\u043c\u0435\u043d\u0430, \u0435\u0441\u043b\u0438 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f. \u041c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c, \u0442.\u043a. \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0442\u043e\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0442\u0430\u043c \u043d\u0435\u0432\u0435\u0440\u043d\u044b\u0435 \u0438\u043c\u0435\u043d\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u043e\u0432.
config.name.tagTreeShowEmptyFolders = \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u0443\u0441\u0442\u044b\u0435 \u043f\u0430\u043f\u043a\u0438
config.description.tagTreeShowEmptyFolders = \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u0443\u0441\u0442\u044b\u0435 \u043f\u0430\u043f\u043a\u0438 \u0432 \u0434\u0435\u0440\u0435\u0432\u0435 \u0442\u044d\u0433\u043e\u0432.
+config.group.name.import = \u0418\u043c\u043f\u043e\u0440\u0442
+config.group.description.import = \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438\u043c\u043f\u043e\u0440\u0442\u043e\u0432
+config.name._showDebugMenu = \u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043c\u0435\u043d\u044e \u043e\u0442\u043b\u0430\u0434\u043a\u0438 FFDec
+config.name.allowOnlyOneInstance = \u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 FFDec (\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f Windows)
+config.group.name.paths = \u041f\u0443\u0442\u0438
+config.group.description.paths = \u0420\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432
+config.description.gui.avm2.splitPane.vars.dividerLocationPercent =
+tip = \u041f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0430:
+config.description.gui.action.splitPane.vars.dividerLocationPercent =
+config.description.warning.svgImport =
+config.description.shapeImport.useNonSmoothedFill =
+config.description.warning.hexViewNotUpToDate =
+config.description.gui.splitPanePlace.dividerLocationPercent =
+config.description.gui.splitPaneTransform1.dividerLocationPercent =
+config.description.gui.splitPaneTransform2.dividerLocationPercent =
+config.description.gui.transform.lastExpandedCards =
+config.description.gui.splitPaneEasyVertical.dividerLocationPercent =
+config.description.gui.splitPaneEasyHorizontal.dividerLocationPercent =
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/AsLinkageDialog_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/AsLinkageDialog_ru.properties
new file mode 100644
index 000000000..c3f104e3b
--- /dev/null
+++ b/src/com/jpexs/decompiler/flash/gui/locales/AsLinkageDialog_ru.properties
@@ -0,0 +1,27 @@
+# Copyright (C) 2024 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 .
+dialog.title = \u0421\u0432\u044f\u0437\u044c AS
+button.ok = \u041e\u041a
+button.proceed = \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c\
+
+button.cancel = \u041e\u0442\u043c\u0435\u043d\u0430
+identifier = \u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 ActionScrip
+classname = \u041a\u043b\u0430\u0441\u0441 ActionScript2 (\u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043a\u0432\u0430\u043b\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439):
+class.parentname = \u0418\u043c\u044f \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 (\u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043a\u0432\u0430\u043b\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435):
+error.alreadyExistsClass = \u041e\u0448\u0438\u0431\u043a\u0430: \u041a\u043b\u0430\u0441\u0441 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442
+error.cannotRemoveIdentifierClassExists = \u041e\u0448\u0438\u0431\u043a\u0430: \u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0443\u0431\u0440\u0430\u0442\u044c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440, \u043a\u043b\u0430\u0441\u0441 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442
+linkage.notfound.exportAssets.where = \u0413\u0434\u0435 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u044f:
+linkage.notfound.exportAssets.where.existing = \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 ExportAssets \u0442\u0435\u0433
+linkage.notfound.exportAssets.where.new = \u041d\u043e\u0432\u044b\u0439 ExportAssets \u0442\u0435\u0433
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/BreakpointListDialog_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/BreakpointListDialog_ru.properties
new file mode 100644
index 000000000..15aa9f2bd
--- /dev/null
+++ b/src/com/jpexs/decompiler/flash/gui/locales/BreakpointListDialog_ru.properties
@@ -0,0 +1,25 @@
+# Copyright (C) 2023 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 .
+dialog.title = \u0421\u043f\u0438\u0441\u043e\u043a \u0442\u043e\u0447\u0435\u043a \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0430
+button.goto = \u041f\u0435\u0440\u0435\u0439\u0442\u0438
+button.remove = \u0423\u0434\u0430\u043b\u0438\u0442\u044c
+button.removeAll = \u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0451
+button.close = \u0417\u0430\u043a\u0440\u044b\u0442\u044c
+breakpoint.scriptName = \u0418\u043c\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u0430
+breakpoint.line = \u0421\u0442\u0440\u043e\u043a\u0430
+breakpoint.status = \u0421\u0442\u0430\u0442\u0443\u0441
+breakpoint.status.invalid = \u043d\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e
+breakpoint.status.confirmed = \u043f\u043e\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u043e
+breakpoint.status.unknown = \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/CollectDepthAsSpritesDialog_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/CollectDepthAsSpritesDialog_ru.properties
new file mode 100644
index 000000000..c4aebd3d4
--- /dev/null
+++ b/src/com/jpexs/decompiler/flash/gui/locales/CollectDepthAsSpritesDialog_ru.properties
@@ -0,0 +1,21 @@
+# 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 .
+dialog.title = \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0431\u043e\u0440\u0430
+collect.depths = \u0413\u043b\u0443\u0431\u0438\u043d\u044b \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u0430:
+collect.replace = \u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0442\u0435\u0433\u0438 \u043d\u0430 \u0441\u043f\u0440\u0430\u0439\u0442
+collect.offset = \u0421\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432\u0435\u0440\u0445\u043d\u0438\u0439 \u043b\u0435\u0432\u044b\u0439 \u0443\u0433\u043e\u043b \u0432 (0,0)
+collect.matrix = \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u043a\u0430\u0434\u0440\u043e\u0432 \u043a\u0430\u043a \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043f\u0435\u0440\u0432\u043e\u0433\u043e PlaceObject
+button.ok = \u041e\u041a
+button.cancel = \u041e\u0442\u043c\u0435\u043d\u0430
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/ColorChooserDialog_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/ColorChooserDialog_ru.properties
new file mode 100644
index 000000000..b820baa44
--- /dev/null
+++ b/src/com/jpexs/decompiler/flash/gui/locales/ColorChooserDialog_ru.properties
@@ -0,0 +1,16 @@
+# Copyright (C) 2024 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 .
+dialog.title = \u0412\u044b\u0431\u043e\u0440 \u0446\u0432\u0435\u0442\u0430
+recent.add = \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/ConvertPlaceObjectTypeDialog_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/ConvertPlaceObjectTypeDialog_ru.properties
new file mode 100644
index 000000000..bf758be86
--- /dev/null
+++ b/src/com/jpexs/decompiler/flash/gui/locales/ConvertPlaceObjectTypeDialog_ru.properties
@@ -0,0 +1,4 @@
+minimum = (\u041c\u0438\u043d\u0438\u043c\u0443\u043c)
+unsupported = (\u041d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f)
+button.ok = \u041e\u041a
+button.cancel = \u041e\u0442\u043c\u0435\u043d\u0430
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/ConvertShapeTypeDialog_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/ConvertShapeTypeDialog_ru.properties
new file mode 100644
index 000000000..bf758be86
--- /dev/null
+++ b/src/com/jpexs/decompiler/flash/gui/locales/ConvertShapeTypeDialog_ru.properties
@@ -0,0 +1,4 @@
+minimum = (\u041c\u0438\u043d\u0438\u043c\u0443\u043c)
+unsupported = (\u041d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f)
+button.ok = \u041e\u041a
+button.cancel = \u041e\u0442\u043c\u0435\u043d\u0430
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/EasyPanel_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/EasyPanel_ru.properties
new file mode 100644
index 000000000..b3dd59179
--- /dev/null
+++ b/src/com/jpexs/decompiler/flash/gui/locales/EasyPanel_ru.properties
@@ -0,0 +1,107 @@
+# Copyright (C) 2024 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 .
+library = \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430
+library.folder.images = \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f
+library.folder.graphics = \u0433\u0440\u0430\u0444\u0438\u043a\u0430
+library.folder.texts = \u0442\u0435\u043a\u0441\u0442\u044b
+library.folder.fonts = \u0448\u0440\u0438\u0444\u0442\u044b
+library.folder.buttons = \u043a\u043d\u043e\u043f\u043a\u0438
+library.folder.sounds = \u0437\u0432\u0443\u043a\u0438
+library.folder.videos = \u0432\u0438\u0434\u0435\u043e
+library.header.name = \u0418\u043c\u044f
+library.header.asLinkage = \u0421\u0432\u044f\u0437\u044c AS
+item.image = \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435
+item.graphic = \u0433\u0440\u0430\u0444\u0438\u043a\u0430
+item.text = \u0442\u0435\u043a\u0441\u0442
+item.font = \u0448\u0440\u0438\u0444\u0442
+item.button = \u043a\u043d\u043e\u043f\u043a\u0430
+item.sound = \u0437\u0432\u0443\u043a
+item.video = \u0432\u0438\u0434\u0435\u043e
+item.unknown = \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e
+undo = \u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c %action%
+undo.cannot = \u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043c\u0435\u043d\u0438\u0442\u044c
+redo = \u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c %action%
+redo.cannot = \u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c
+transform = \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435
+action.addFrame = \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a\u0430\u0434\u0440
+action.addKeyFrame = \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0439 \u043a\u0430\u0434\u0440
+action.addKeyFrameWithBlankFrameBefore = \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0439 \u043a\u0430\u0434\u0440 \u0441 \u043f\u0443\u0441\u0442\u044b\u043c\u0438 \u043a\u0430\u0434\u0440\u0430\u043c\u0438 \u043f\u0435\u0440\u0435\u0434
+action.removeFrame = \u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043a\u0430\u0434\u0440
+action.transform = \u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c
+action.move = \u041f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c
+action.addToStage = \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u0430 \u0441\u0446\u0435\u043d\u0443
+action.change = \u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c %item%
+action.change.compression = \u0421\u0436\u0430\u0442\u0438\u0435
+action.change.swfVersion = \u0412\u0435\u0440\u0441\u0438\u044f SWF
+action.change.encrypted = \u0417\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043e
+action.change.gfx = GFX
+action.change.frameRate = \u0427\u0430\u0441\u0442\u043e\u0442\u0430 \u043a\u0430\u0434\u0440\u043e\u0432
+action.change.width = \u0428\u0438\u0440\u0438\u043d\u0430
+action.change.height = \u0412\u044b\u0441\u043e\u0442\u0430
+action.change.colorEffect = \u0426\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u044d\u0444\u0444\u0435\u043a\u0442
+timeline.main = \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0448\u043a\u0430\u043b\u0430
+timeline.item = \u0412\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0448\u043a\u0430\u043b\u0430 %item%
+timeline.item.cancel = \u041e\u0442\u043c\u0435\u043d\u0430 - \u043a\u043b\u0438\u043a\u043d\u0438\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043a \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0448\u043a\u0430\u043b\u0435
+properties = \u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430
+properties.document = \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442
+properties.instance.single = \u042d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 %item%
+properties.instance.multiple = %count% \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u0432
+properties.instance.none = %count% \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u0432
+properties.instance.header.positionSize = \u041f\u043e\u0437\u0438\u0446\u0438\u044f \u0438 \u0440\u0430\u0437\u043c\u0435\u0440
+properties.instance.header.colorEffect = \u0426\u0432\u0435\u0442\u043e\u0432\u043e\u0439 \u044d\u0444\u0444\u0435\u043a\u0442
+property.label = %item%:
+property.instance.item = \u041e\u0431\u044a\u0435\u043a\u0442
+property.instance.colorEffect.alpha = \u041f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c
+property.instance.colorEffect.red = \u041a\u0440\u0430\u0441\u043d\u044b\u0439
+property.instance.colorEffect.green = \u0417\u0435\u043b\u0451\u043d\u044b\u0439
+property.instance.colorEffect.blue = \u0421\u0438\u043d\u0438\u0439
+property.instance.positionSize.x = X
+property.instance.positionSize.y = Y
+property.instance.positionSize.width = \u0428
+property.instance.positionSize.height = \u0412
+properties.instance.header.display = \u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435
+property.instance.display.visible = \u0412\u0438\u0434\u0438\u043c\u044b\u0439
+property.instance.display.blending = \u0420\u0435\u0436\u0438\u043c \u0441\u043c\u0435\u0448\u0438\u0432\u0430\u043d\u0438\u044f
+property.instance.display.blending.normal = \u041e\u0431\u044b\u0447\u043d\u044b\u0439
+property.instance.display.blending.layer = \u0421\u043b\u043e\u0439
+property.instance.display.blending.multiply = \u0423\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435
+property.instance.display.blending.screen = \u042d\u043a\u0440\u0430\u043d
+property.instance.display.blending.lighten = \u041e\u0441\u0432\u0435\u0442\u043b\u0435\u043d\u0438\u0435
+property.instance.display.blending.darken = \u0417\u0430\u0442\u0435\u043c\u043d\u0435\u043d\u0438\u0435
+property.instance.display.blending.difference = \u0420\u0430\u0437\u043d\u0438\u0446\u0430
+property.instance.display.blending.add = \u0421\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435
+property.instance.display.blending.subtract = \u0412\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u0435
+property.instance.display.blending.invert = \u0418\u043d\u0432\u0435\u0440\u0441\u0438\u044f
+property.instance.display.blending.alpha = \u0410\u043b\u044c\u0444\u0430
+property.instance.display.blending.erase = \u0421\u0442\u0435\u0440\u0435\u0442\u044c
+property.instance.display.blending.overlay = \u041f\u0435\u0440\u0435\u043a\u0440\u044b\u0442\u0438\u0435
+property.instance.display.blending.hardlight = \u0416\u0451\u0441\u0442\u043a\u0438\u0439 \u0441\u0432\u0435\u0442
+property.instance.display.cacheAsBitmap.transparent = \u041f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0439
+property.instance.display.cacheAsBitmap.opaque = \u041d\u0435\u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0439
+#after 22.0.2
+property.document.backgroundColor = \u0426\u0432\u0435\u0442 \u0444\u043e\u043d\u0430
+properties.instance.header.filters = \u0424\u0438\u043b\u044c\u0442\u0440\u044b
+property.instance.filters.header.property = \u0421\u0432\u043e\u0439\u0441\u0442\u0432\u043e
+property.instance.filters.header.value = \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435
+property.instance.filters.indeterminate = \u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e
+property.instance.filters = \u0424\u0438\u043b\u044c\u0442\u0440\u044b
+property.instance.filters.menu.add = \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0444\u0438\u043b\u044c\u0442\u0440\u044b
+property.instance.filters.menu.add.removeAll = \u0423\u0431\u0440\u0430\u0442\u044c \u0432\u0441\u0451
+property.instance.filters.menu.remove = \u0423\u0431\u0440\u0430\u0442\u044c \u0444\u0438\u043b\u044c\u0442\u0440
+property.instance.filters.menu.enable = \u0412\u043a\u043b. \u0438\u043b\u0438 \u0432\u044b\u043a\u043b. \u0444\u0438\u043b\u044c\u0442\u0440
+property.instance.display.ratio = \u0421\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435
+#after 24.0.1
+properties.instance.header.text = \u0422\u0435\u043a\u0441\u0442
+action.change.text = \u0422\u0435\u043a\u0441\u0442
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/ErrorLogFrame_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/ErrorLogFrame_ru.properties
index 7a4c1faac..331ee0b74 100644
--- a/src/com/jpexs/decompiler/flash/gui/locales/ErrorLogFrame_ru.properties
+++ b/src/com/jpexs/decompiler/flash/gui/locales/ErrorLogFrame_ru.properties
@@ -17,3 +17,7 @@ details = \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043f\u0
dialog.title = \u041b\u043e\u0433
#after version 1.7.0u1:
clear = \u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c
+#after version 23.0.1:
+saveToFile = \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432 \u0444\u0430\u0439\u043b\u2026
+filter.txt = \u0422\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u0444\u0430\u0439\u043b\u044b (*.txt)
+error.cannotSave = \u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0444\u0430\u0439\u043b \u043b\u043e\u0433\u0430: %error%
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/ExportDialog_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/ExportDialog_ru.properties
index 32c64df92..e1c33b157 100644
--- a/src/com/jpexs/decompiler/flash/gui/locales/ExportDialog_ru.properties
+++ b/src/com/jpexs/decompiler/flash/gui/locales/ExportDialog_ru.properties
@@ -12,32 +12,39 @@
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
+titleFormat = %title%:
shapes = \u0424\u043e\u0440\u043c\u044b
shapes.svg = SVG
shapes.png = PNG
shapes.bmp = BMP
+shapes.webp = WEBP
shapes.canvas = \u041a\u0430\u043d\u0432\u0430\u0441 HTML5
+shapes.swf = SWF
texts = \u0422\u0435\u043a\u0441\u0442\u044b
texts.plain = \u041e\u0431\u044b\u0447\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442
texts.formatted = \u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442
texts.svg = SVG
images = \u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f
-images.png_gif_jpeg=PNG/GIF/JPEG
+images.png_gif_jpeg = PNG/GIF/JPEG
images.png = PNG
images.jpeg = JPEG
images.bmp = BMP
+images.webp = WEBP
movies = \u0412\u0438\u0434\u0435\u043e
movies.flv = FLV (\u0411\u0435\u0437 \u0437\u0432\u0443\u043a\u0430)
sounds = \u0417\u0432\u0443\u043a\u0438
-sounds.mp3_wav_flv=MP3/WAV/FLV
+sounds.mp3_wav_flv = MP3/WAV/FLV
sounds.flv = FLV (\u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0432\u0443\u043a)
-sounds.mp3_wav=MP3/WAV
+sounds.mp3_wav = MP3/WAV
sounds.wav = WAV
scripts = Scripts
scripts.as = ActionScript
scripts.pcode = P-code
-scripts.pcode_hex=P-code \u0441 Hex
+scripts.pcode_hex = P-code \u0441 Hex
scripts.hex = Hex
+scripts.constants = \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b
+scripts.as_method_stubs = \u0437\u0430\u0433\u043b\u0443\u0448\u043a\u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 ActionScript
+scripts.pcode_graphviz = P-code GraphViz
binaryData = \u0414\u0432\u043e\u0438\u0447\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435
binaryData.raw = Raw
dialog.title = \u042d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c...
@@ -47,6 +54,11 @@ morphshapes = Morphshape'\u044b
morphshapes.gif = GIF
morphshapes.svg = SVG
morphshapes.canvas = \u041a\u0430\u043d\u0432\u0430\u0441 HTML5
+morphshapes.swf = SWF
+morphshapes.bmp_start_end = BMP (\u043d\u0430\u0447\u0430\u043b\u043e, \u043a\u043e\u043d\u0435\u0446)
+morphshapes.png_start_end = PNG (\u043d\u0430\u0447\u0430\u043b\u043e, \u043a\u043e\u043d\u0435\u0446)
+morphshapes.svg_start_end = SVG (\u043d\u0430\u0447\u0430\u043b\u043e, \u043a\u043e\u043d\u0435\u0446)
+morphshapes.webp_start_end = WEBP (\u043d\u0430\u0447\u0430\u043b\u043e, \u043a\u043e\u043d\u0435\u0446)
frames = \u041a\u0430\u0434\u0440\u044b
frames.png = PNG
frames.gif = GIF
@@ -55,6 +67,24 @@ frames.svg = SVG
frames.canvas = \u041a\u0430\u043d\u0432\u0430\u0441 HTML5
frames.pdf = PDF
frames.bmp = BMP
+frames.webp = WEBP
+frames.swf = SWF
+sprites = \u0421\u043f\u0440\u0430\u0439\u0442\u044b
+sprites.png = PNG
+sprites.gif = GIF
+sprites.avi = AVI
+sprites.svg = SVG
+sprites.canvas = \u041a\u0430\u043d\u0432\u0430\u0441 HTML5
+sprites.pdf = PDF
+sprites.bmp = BMP
+sprites.webp = WEBP
+sprites.swf = SWF
+buttons = \u041a\u043d\u043e\u043f\u043a\u0438
+buttons.png = PNG
+buttons.svg = SVG
+buttons.bmp = BMP
+buttons.webp = WEBP
+buttons.swf = SWF
fonts = \u0428\u0440\u0438\u0444\u0442\u044b
fonts.ttf = TTF
fonts.woff = WOFF
@@ -63,3 +93,12 @@ zoom.percent = %
zoom.invalid = \u041d\u0435\u0432\u0435\u0440\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430.
symbolclass = \u041a\u043b\u0430\u0441\u0441 \u0441\u0438\u043c\u0432\u043e\u043b\u0430
symbolclass.csv = CSV
+#after 18.0.0
+images.png_gif_jpeg_alpha = PNG/GIF/JPEG+\u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c
+#after 18.5.0
+fonts4 = DefineFont4
+fonts4.cff = CFF
+embed = \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 [Embed]
+#after 20.1.0
+resampleWav = \u041f\u0435\u0440\u0435\u0441\u044d\u043c\u043f\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c Wav \u0434\u043e 44 \u043a\u0413\u0446
+transparentFrameBackground = \u0418\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0446\u0432\u0435\u0442 \u0444\u043e\u043d\u0430 (\u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u043c)
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/ExportSubspriteAnimationDialog_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/ExportSubspriteAnimationDialog_ru.properties
new file mode 100644
index 000000000..c67881e46
--- /dev/null
+++ b/src/com/jpexs/decompiler/flash/gui/locales/ExportSubspriteAnimationDialog_ru.properties
@@ -0,0 +1,20 @@
+# Copyright (C) 2025 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 .
+dialog.title = \u042d\u043a\u0441\u043f\u043e\u0440\u0442 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u043f\u043e\u0434\u0441\u043f\u0440\u0430\u0439\u0442\u0430
+format = \u0424\u043e\u0440\u043c\u0430\u0442:
+length = \u0414\u043b\u0438\u043d\u0430:
+frames = \u043a\u0430\u0434\u0440\u044b
+button.ok = \u041e\u041a
+button.cancel = \u041e\u0442\u043c\u0435\u043d\u0430
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/FilesChangedDialog_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/FilesChangedDialog_ru.properties
new file mode 100644
index 000000000..2cee6480f
--- /dev/null
+++ b/src/com/jpexs/decompiler/flash/gui/locales/FilesChangedDialog_ru.properties
@@ -0,0 +1,4 @@
+dialog.title = \u0424\u0430\u0439\u043b\u044b \u0431\u044b\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u044b
+button.ok = \u041e\u041a
+button.cancel = \u041e\u0442\u043c\u0435\u043d\u0430
+fileschanged = \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0444\u0430\u0439\u043b\u044b \u0431\u044b\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u044b \u0432\u043d\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0438\u0445 \u0441 \u0434\u0438\u0441\u043a\u0430?
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/FontEmbedDialog_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/FontEmbedDialog_ru.properties
index d6472dc0c..66a6a0f7c 100644
--- a/src/com/jpexs/decompiler/flash/gui/locales/FontEmbedDialog_ru.properties
+++ b/src/com/jpexs/decompiler/flash/gui/locales/FontEmbedDialog_ru.properties
@@ -23,3 +23,9 @@ installed = \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e:
ttffile.noselection = TTF \u0444\u0430\u0439\u043b: <\u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435>
ttffile.selection = TTF \u0444\u0430\u0439\u043b: %fontname% (%filename%)
allcharacters = \u0412\u0441\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b (%available% \u0441\u0438\u043c\u0432\u043e\u043b\u044b)
+#after 14.0.0
+ascentdescentleading = \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u044a\u0451\u043c\u0430 (ascent), \u0441\u043f\u0443\u0441\u043a\u0430 (descent) \u0438 \u0438\u043d\u0442\u0435\u0440\u043b\u0438\u043d\u044c\u044f\u0436\u0430 (leading)
+#after 19.1.2
+font.name = \u0418\u043c\u044f \u0448\u0440\u0438\u0444\u0442\u0430:
+font.name.default = \u041c\u043e\u0439 \u0448\u0440\u0438\u0444\u0442
+font.source = \u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a:
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/GraphDialog_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/GraphDialog_ru.properties
index 3ce185f9b..831ab5243 100644
--- a/src/com/jpexs/decompiler/flash/gui/locales/GraphDialog_ru.properties
+++ b/src/com/jpexs/decompiler/flash/gui/locales/GraphDialog_ru.properties
@@ -13,3 +13,5 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
graph = \u0413\u0440\u0430\u0444
+graph.better.dot = \u041f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0430: \u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043f\u0443\u0442\u044c \u043a \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u043c\u0443 \u0444\u0430\u0439\u043b\u0443 GraphViz Dot \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u00ab\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e / \u041f\u0443\u0442\u0438 (5)\u00bb, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043b\u0443\u0447\u0448\u0438\u0435 \u0433\u0440\u0430\u0444\u044b!
+menu.copygraph.gv = \u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 GraphViz \u0432 \u0431\u0443\u0444\u0435\u0440 \u043e\u0431\u043c\u0435\u043d\u0430
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/GridDialog_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/GridDialog_ru.properties
new file mode 100644
index 000000000..b72e8226f
--- /dev/null
+++ b/src/com/jpexs/decompiler/flash/gui/locales/GridDialog_ru.properties
@@ -0,0 +1,29 @@
+# Copyright (C) 2025 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 .
+dialog.title = \u0421\u0435\u0442\u043a\u0430
+button.ok = \u041e\u041a
+button.cancel = \u041e\u0442\u043c\u0435\u043d\u0430
+color = \u0426\u0432\u0435\u0442:
+show = \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0441\u0435\u0442\u043a\u0443
+showOverObjects = \u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u043e\u0432\u0435\u0440\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432
+snapTo = \u041f\u0440\u0438\u0432\u044f\u0437\u043a\u0430 \u043a \u0441\u0435\u0442\u043a\u0435
+spacing.x = \u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b:
+spacing.y = \u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b:
+snapAccuracy = \u0422\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438:
+snapAccuracy.mustBeClose = \u0414\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0440\u044f\u0434\u043e\u043c
+snapAccuracy.normal = \u041e\u0431\u044b\u0447\u043d\u0430\u044f
+snapAccuracy.canBeDistant = \u041c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e
+snapAccuracy.alwaysSnap = \u0412\u0441\u0435\u0433\u0434\u0430 \u043f\u0440\u0438\u0432\u044f\u0437\u044b\u0432\u0430\u0442\u044c
+error.invalidSpacing = \u041d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430. \u041e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f \u0446\u0435\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e.
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/GuidesDialog_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/GuidesDialog_ru.properties
new file mode 100644
index 000000000..c9e488ff3
--- /dev/null
+++ b/src/com/jpexs/decompiler/flash/gui/locales/GuidesDialog_ru.properties
@@ -0,0 +1,26 @@
+# Copyright (C) 2025 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 .
+dialog.title = \u041d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435
+button.ok = \u041e\u041a
+button.cancel = \u041e\u0442\u043c\u0435\u043d\u0430
+color = \u0426\u0432\u0435\u0442:
+show = \u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435
+snapTo = \u041f\u0440\u0438\u0432\u044f\u0437\u043a\u0430 \u043a \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u043c
+lock = \u0417\u0430\u043a\u0440\u0435\u043f\u0438\u0442\u044c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435
+clear = \u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0432\u0441\u0451
+snapAccuracy = \u0422\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438:
+snapAccuracy.mustBeClose = \u0414\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0440\u044f\u0434\u043e\u043c
+snapAccuracy.normal = \u041e\u0431\u044b\u0447\u043d\u0430\u044f
+snapAccuracy.canBeDistant = \u041c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/LoadFromMemoryFrame_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/LoadFromMemoryFrame_ru.properties
index 1f4d226b3..aa799b32c 100644
--- a/src/com/jpexs/decompiler/flash/gui/locales/LoadFromMemoryFrame_ru.properties
+++ b/src/com/jpexs/decompiler/flash/gui/locales/LoadFromMemoryFrame_ru.properties
@@ -26,3 +26,8 @@ column.version = \u0412\u0435\u0440\u0441\u0438\u044f
column.fileSize = \u0420\u0430\u0437\u043c\u0435\u0440
column.pid = PID
column.processName = \u041f\u0440\u043e\u0446\u0435\u0441\u0441
+column.address = \u0410\u0434\u0440\u0435\u0441
+#after 17.0.4
+hex = \u0428\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u044b\u0439
+align = \u0412\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e:
+align.bytes = \u0431\u0430\u0439\u0442\u044b
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_ru.properties
index 2c3ee9b22..f78165c4c 100644
--- a/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_ru.properties
+++ b/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_ru.properties
@@ -133,8 +133,10 @@ search.script = \u0421\u043a\u0440\u0438\u043f\u0442
constants = Constants
traits = Traits
pleasewait = \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u0434\u043e\u0436\u0434\u0438\u0442\u0435
+#DEPRECATED - see abc.detail.trait.*
abc.detail.methodtrait = Method/Getter/Setter Trait
abc.detail.unsupported = -
+#DEPRECATED - see abc.detail.trait.*
abc.detail.slotconsttrait = Slot/Const Trait
abc.detail.traitname = \u0418\u043c\u044f:
abc.detail.body.params.maxstack = \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0442\u0435\u043a\u0430:
@@ -212,8 +214,8 @@ FileChooser.newFolderErrorText = \u041e\u0448\u0438\u0431\u043a\u0430 \u0441\u04
FileChooser.newFolderToolTipText = \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u043f\u0430\u043f\u043a\u0443
FileChooser.other.newFolder = \u041d\u043e\u0432\u0430\u044f\u041f\u0430\u043f\u043a\u0430
FileChooser.other.newFolder.subsequent = \u041d\u043e\u0432\u0430\u044f\u041f\u0430\u043f\u043a\u0430.{0}
-FileChooser.win32.newFolder=\u041d\u043e\u0432\u0430\u044f \u043f\u0430\u043f\u043a\u0430
-FileChooser.win32.newFolder.subsequent=\u041d\u043e\u0432\u0430\u044f \u043f\u0430\u043f\u043a\u0430 ({0})
+FileChooser.win32.newFolder = \u041d\u043e\u0432\u0430\u044f \u043f\u0430\u043f\u043a\u0430
+FileChooser.win32.newFolder.subsequent = \u041d\u043e\u0432\u0430\u044f \u043f\u0430\u043f\u043a\u0430 ({0})
FileChooser.saveButtonText = \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c
FileChooser.saveButtonToolTipText = \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b
FileChooser.saveDialogTitleText = \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c
@@ -344,10 +346,10 @@ generictag.array.remove = \u0423\u0434\u0430\u043b\u0438\u0442\u044c %item%
generictag.array.insertafter = \u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c %item% \u043f\u043e\u0441\u043b\u0435
generictag.array.insertend = \u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c %item% \u0432 \u043a\u043e\u043d\u0435\u0446
#after version 2.0.0
-contextmenu.expandAll = \u0420\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432\u0441\u0435
+contextmenu.expandAll = \u0420\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432\u0441\u0451
filter.sounds = \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u0437\u0432\u0443\u043a\u043e\u0432\u044b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b (*.wav,*.mp3)
filter.sounds.wav = Wave \u0444\u043e\u0440\u043c\u0430\u0442 (*.wav)
-filter.sounds.mp3=MP3 \u0441\u0436\u0430\u0442\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 (*.mp3)
+filter.sounds.mp3 = MP3 \u0441\u0436\u0430\u0442\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 (*.mp3)
error.sound.invalid = \u041d\u0435 \u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 \u0437\u0432\u0443\u043a.
button.prev = \u041d\u0430\u0437\u0430\u0434
button.next = \u0414\u0430\u043b\u0435\u0435
@@ -363,8 +365,8 @@ import.select.directory = \u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043f\u043
error.text.import = \u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0435 \u0442\u0435\u043a\u0441\u0442\u0430. \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c?
#after version 2.1.1
contextmenu.removeWithDependencies = \u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438
-abc.action.find-usages=\u041d\u0430\u0439\u0442\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f
-abc.action.find-declaration=\u041d\u0430\u0439\u0442\u0438 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435
+abc.action.find-usages = \u041d\u0430\u0439\u0442\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f
+abc.action.find-declaration = \u041d\u0430\u0439\u0442\u0438 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435
contextmenu.rawEdit = \u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u0430\u0439\u0442\u044b
contextmenu.jumpToCharacter = \u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0441\u0438\u043c\u0432\u043e\u043b\u0443
menu.settings.dumpView = \u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u043e\u0431\u0440\u0430\u0437\u0430
@@ -449,11 +451,99 @@ selectPreviousTag = \u0412\u044b\u0431\u0440\u0430\u0442\u044c \u043f\u0440\u043
selectNextTag = \u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0442\u044d\u0433
button.ignoreAll = \u0418\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435
menu.file.import.symbolClass = \u041a\u043b\u0430\u0441\u0441 \u0441\u0438\u043c\u0432\u043e\u043b\u0430
-#...
+text.toggleCase = \u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0440\u0435\u0433\u0438\u0441\u0442\u0440
+#after version 5.0.2
+preview.loop = \u0426\u0438\u043a\u043b
+menu.file.import.script = \u0418\u043c\u043f\u043e\u0440\u0442 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432
+button.replaceAlphaChannel = \u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0430\u043b\u044c\u0444\u0430-\u043a\u0430\u043d\u0430\u043b...
+tagInfo.header.name = \u0418\u043c\u044f
+tagInfo.header.value = \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435
+tagInfo.tagType = \u0422\u0438\u043f \u0442\u0435\u0433\u0430
+tagInfo.offset = \u041e\u0442\u0441\u0442\u0443\u043f
+tagInfo.length = \u0414\u043b\u0438\u043d\u0430
+tagInfo.bounds = \u0413\u0440\u0430\u043d\u0438\u0446\u044b
+tagInfo.width = \u0428\u0438\u0440\u0438\u043d\u0430
+tagInfo.height = \u0412\u044b\u043e\u0441\u0442\u0430
+tagInfo.samplingRate = \u0427\u0430\u0441\u0442\u043e\u0442\u0430 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0438
+tagInfo.stereo = \u0421\u0442\u0435\u0440\u0435\u043e
+tagInfo.sampleCount = \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u044d\u043c\u043f\u043b\u043e\u0432
+import.script.result = %count% \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0432\u0430\u043d\u043e.
+#after version 6.1.1
+menu.file.start = \u0421\u0442\u0430\u0440\u0442
+menu.file.start.run = \u0417\u0430\u043f\u0443\u0441\u043a
+menu.file.start.stop = \u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c
+menu.file.start.debug = \u041e\u0442\u043b\u0430\u0434\u043a\u0430
+menu.debugging = \u041e\u0442\u043b\u0430\u0434\u043a\u0430
+menu.debugging.debug = \u041e\u0442\u043b\u0430\u0434\u043a\u0430
+menu.debugging.debug.stop = \u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c
+menu.debugging.debug.pause = \u041f\u0430\u0443\u0437\u0430
+menu.debugging.debug.continue = \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c
+menu.debugging.debug.stack = \u0421\u0442\u0435\u043a...
+menu.debugging.debug.watch = \u041d\u043e\u0432\u043e\u0435 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435...
+debugpanel.header = \u041e\u0442\u043b\u0430\u0434\u043a\u0430
+menu.file.start.debugpcode = \u041e\u0442\u043b\u0430\u0434\u043a\u0430 P-code
+button.edit.script.decompiled = \u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c ActionScript
+button.edit.script.disassembled = \u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c P-code
message.confirm.remove.nodep = \u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 %item%?
message.confirm.removemultiple.nodep = \u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0436\u0435\u043b\u0430\u0435\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435: %count%?
+message.info = \u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f
+menu.file.new = \u041d\u043e\u0432\u044b\u0439 \u043f\u0443\u0441\u0442\u043e\u0439
+new.filename = \u0431\u0435\u0437\u044b\u043c\u044f\u043d\u043d\u044b\u0439
+menu.file.import.image = \u0418\u043c\u043f\u043e\u0440\u0442 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439
+contextmenu.more = \u0411\u043e\u043b\u044c\u0448\u0435...
+#after 16.3.1
+button.show = \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c/\u0441\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440
+library = \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430:
+pin = \u041d\u0430\u0436\u043c\u0438\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043a\u0440\u0435\u043f\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442
+unpin = \u0417\u0430\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u043e - \u043d\u0430\u0436\u043c\u0438\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u043a\u0440\u0435\u043f\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u044d\u043b\u0435\u043c\u0435\u043d\u0442.
+contextmenu.unpin = \u041e\u0442\u043a\u0440\u0435\u043f\u0438\u0442\u044c
+contextmenu.unpin.all = \u041e\u0442\u043a\u0440\u0435\u043f\u0438\u0442\u044c \u0432\u0441\u0451
+contextmenu.unpin.others = \u041e\u0442\u043a\u0440\u0435\u043f\u0438\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435
+menu.tools.otherTools.clearPinnedItems = \u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0437\u0430\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b
+contextmenu.pin = \u0417\u0430\u043a\u0440\u0435\u043f\u0438\u0442\u044c
+#after 17.0.4
+productinfo.product = \u041f\u0440\u043e\u0434\u0443\u043a\u0442:
+productinfo.product.unknown = \u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439
+productinfo.edition = \u0418\u0437\u0434\u0430\u043d\u0438\u0435:
+productinfo.edition.none = \u041d\u0435\u0442
+productinfo.version = \u0412\u0435\u0440\u0441\u0438\u044f:
+productinfo.build = \u0411\u0438\u043b\u0434:
+productinfo.compileDate = \u0412\u0440\u0435\u043c\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438:
+transform.apply = \u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c
+import.sound.result = %count% \u0437\u0432\u0443\u043a\u043e\u0432 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e.
+edit.points.x = X:
+edit.points.y = Y:
+#after 20.1.0
+contextmenu.collapseAll = \u0421\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432\u0441\u0451
+contextmenu.collectDepthAsSprites = \u0421\u043e\u0431\u0440\u0430\u0442\u044c \u0442\u0435\u0433\u0438 \u043d\u0430 \u0442\u043e\u043c \u0436\u0435 \u0443\u0440\u043e\u0432\u043d\u0435, \u0447\u0442\u043e \u0438 \u0441\u043f\u0440\u0430\u0439\u0442\u044b\
+
+contextmenu.cleanAbc = \u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c ABC - \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b
+warning.cleanAbc = \u042d\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0443\u0434\u0430\u043b\u0438\u0442 \u0438\u0437 ABC \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441 \u043d\u0443\u043b\u0435\u0432\u044b\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c - \u043e\u043d\u0438 \u043d\u0435 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044b \u043d\u0438 \u0432 \u043e\u0434\u043d\u043e\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u0435.\
+ \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0438\u0434\u044b \u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 SWF-\u0444\u0430\u0439\u043b\u043e\u0432 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u0432\u0440\u0435\u0436\u0434\u0435\u043d\u044b \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c.\
+ \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043d\u0430 \u0441\u0432\u043e\u0439 \u0441\u0442\u0440\u0430\u0445 \u0438 \u0440\u0438\u0441\u043a. \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c?\
+
+contextmenu.exportFlashDevelop = \u042d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 FlashDevelop
+menu.file.export.idea = \u042d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 Intellij IDEA
contextmenu.exportFla = \u042d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 FLA
-#...
+menu.file.saveAll = \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432\u0441\u0451
+callStack.header.swf = SWF
+#after 21.0.0
+button.addfunction = \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e
+#after 21.0.5
+contextmenu.exportVsCode = \u042d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 VS Code
+#after 22.0.1
filter.swf_spl = SWF \u0444\u0430\u0439\u043b\u044b (*.swf, *.spl)
-#...
-menu.file.view.alwaysOnTop = \u0412\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u0432\u0435\u0440\u0445
\ No newline at end of file
+menu.file.view.alwaysOnTop = \u0412\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u0432\u0435\u0440\u0445
+contextmenu.showDetail = \u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0434\u0435\u0442\u0430\u043b\u0438
+highlighter.occurrences = \u041e\u0442\u043c\u0435\u0447\u0430\u0442\u044c \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f
+highlighter.currentLine = \u0422\u0435\u043a\u0443\u0449\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430
+highlighter.error = \u041e\u0448\u0438\u0431\u043a\u0430: %error%
+text.copy = \u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c
+text.selectAll = \u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0432\u0441\u0451
+menu.settings.autoDeobfuscateIdentifiers = \u0414\u0435\u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b
+deobfuscate_options.deobfuscateIdentifiers = \u0414\u0435\u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b
+node.unknown = \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e
+node.errored = \u043e\u0448\u0438\u0431\u043e\u0447\u043d\u044b\u0439
+filter.swf_spl_swt = SWF \u0444\u0430\u0439\u043b\u044b (*.swf, *.spl, *.swt)
+filter.swt = \u0428\u0430\u0431\u043b\u043e\u043d\u044b \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 (*.swt)
+contextmenu.normalizeFonts = \u041d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0448\u0440\u0438\u0444\u0442\u044b
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/NewFileDialog_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/NewFileDialog_ru.properties
new file mode 100644
index 000000000..449db699e
--- /dev/null
+++ b/src/com/jpexs/decompiler/flash/gui/locales/NewFileDialog_ru.properties
@@ -0,0 +1,24 @@
+# Copyright (C) 2022 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 .
+dialog.title = \u041d\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b
+background.color = \u0426\u0432\u0435\u0442 \u0444\u043e\u043d\u0430:
+width = \u0428\u0438\u0440\u0438\u043d\u0430
+height = \u0412\u044b\u0441\u043e\u0442\u0430
+unit.pixels = \u041f\u0438\u043a\u0441\u0435\u043b\u0435\u0439
+unit.twips = Twips
+canvas.size = \u0420\u0430\u0437\u043c\u0435\u0440\u0430 \u0445\u043e\u043b\u0441\u0442\u0430:
+script.type = \u0422\u0438\u043f\u0430 \u0441\u043a\u0440\u0438\u043f\u0442\u0430:
+script.type.actionscript1_2 = ActionScript 1/2
+script.type.actionscript3 = ActionScript 3
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/PathResolvingDialog_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/PathResolvingDialog_ru.properties
new file mode 100644
index 000000000..bebc8fcbe
--- /dev/null
+++ b/src/com/jpexs/decompiler/flash/gui/locales/PathResolvingDialog_ru.properties
@@ -0,0 +1,21 @@
+# Copyright (C) 2024 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 .
+dialog.title = \u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u0443\u0442\u0438
+info = \u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043f\u0430\u043f\u043a\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u044b, \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u044b \u0432 \u043f\u0443\u0442\u0438 SWF.\
+ \u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u0443\u044e \u0447\u0435\u0440\u0442\u0443 "|" \u0434\u043b\u044f \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u043c\u0435\u0442\u044c \u043f\u0443\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 "data:|C:\MyData\Dir",\
+ \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u043f\u0443\u0442\u0438, \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0435\u0441\u044f \u0441 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u0430 "data:".\
+ \u041e\u0434\u0438\u043d \u043f\u0443\u0442\u044c \u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0443. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0442\u0435\u0433\u0430\u0445 GFX.
+button.ok = \u041e\u041a
+button.cancel = \u041e\u0442\u043c\u0435\u043d\u0430
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/ReplaceCharacterDialog_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/ReplaceCharacterDialog_ru.properties
new file mode 100644
index 000000000..a50f8f935
--- /dev/null
+++ b/src/com/jpexs/decompiler/flash/gui/locales/ReplaceCharacterDialog_ru.properties
@@ -0,0 +1,18 @@
+# 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 .
+dialog.title = \u0417\u0430\u043c\u0435\u043d\u0430 character tag
+replace.with = \u0417\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430:
+button.ok = \u041e\u041a
+button.cancel = \u041e\u043c\u0435\u043d\u0430
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/SearchDialog_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/SearchDialog_ru.properties
index cf61a6b55..4e5bcc9cd 100644
--- a/src/com/jpexs/decompiler/flash/gui/locales/SearchDialog_ru.properties
+++ b/src/com/jpexs/decompiler/flash/gui/locales/SearchDialog_ru.properties
@@ -18,7 +18,7 @@ button.ok = OK
button.cancel = \u041e\u0442\u043c\u0435\u043d\u0430
label.searchtext = \u0418\u0441\u043a\u0430\u0442\u044c \u0442\u0435\u043a\u0441\u0442:
label.replacementtext = \u0422\u0435\u043a\u0441\u0442 \u0437\u0430\u043c\u0435\u043d\u044b:
-#dialog.title = \u041f\u043e\u0438\u0441\u043a \u043f\u043e ActionScript
+#dialog.title = ActionScript search
dialog.title = \u041f\u043e\u0438\u0441\u043a \u0442\u0435\u043a\u0441\u0442\u0430
dialog.title.replace = \u0417\u0430\u043c\u0435\u043d\u0430 \u0442\u0435\u043a\u0441\u0442\u0430
error = \u041e\u0448\u0438\u0431\u043a\u0430
@@ -26,3 +26,12 @@ error.invalidregexp = \u041d\u0435\u0432\u0435\u0440\u043d\u043e\u0435 \u0440\u0
checkbox.searchText = \u0418\u0441\u043a\u0430\u0442\u044c \u0432 \u0442\u0435\u043a\u0441\u0442\u0435
checkbox.searchAS = \u0418\u0441\u043a\u0430\u0442\u044c \u0432 AS
checkbox.replaceInParameters = \u0417\u0430\u043c\u0435\u043d\u044f\u0442\u044c \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0445
+checkbox.searchPCode = \u041f\u043e\u0438\u0441\u043a \u0432 P-Code
+#after 13.0.3
+label.scope = \u041e\u0431\u043b\u0430\u0441\u0442\u044c:
+scope.currentFile = \u0422\u0435\u043a\u0443\u0449\u0438\u0439 SWF
+scope.selection = \u0412\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435 (%selection%)
+scope.allFiles = \u0412\u0441\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0435 SWF
+scope.selection.items = %count% \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432
+#after 16.3.1
+scope.currentFile.abc = \u0422\u0435\u043a\u0443\u0449\u0438\u0439 ABC
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/SelectFramePositionDialog_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/SelectFramePositionDialog_ru.properties
new file mode 100644
index 000000000..0237c7a74
--- /dev/null
+++ b/src/com/jpexs/decompiler/flash/gui/locales/SelectFramePositionDialog_ru.properties
@@ -0,0 +1,18 @@
+# Copyright (C) 2022 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 .
+dialog.title = \u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u043a\u0430\u0434\u0440\u0430 \u0432 %filetitle%
+button.ok = \u041e\u041a
+button.cancel = \u041e\u0442\u043c\u0435\u043d\u0430
+timeline.end = \u043a\u043e\u043d\u0435\u0446 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0448\u043a\u0430\u043b\u044b
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/SelectTagOfTypeDialog_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/SelectTagOfTypeDialog_ru.properties
new file mode 100644
index 000000000..d72ef5764
--- /dev/null
+++ b/src/com/jpexs/decompiler/flash/gui/locales/SelectTagOfTypeDialog_ru.properties
@@ -0,0 +1,17 @@
+# Copyright (C) 2022 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 .
+dialog.title = \u0412\u044b\u0431\u0440\u0430\u0442\u044c %type% \u0442\u0435\u0433
+button.ok = \u041e\u041a
+button.cancel = \u041e\u0442\u043c\u0435\u043d\u0430
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/SelectTagPositionDialog_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/SelectTagPositionDialog_ru.properties
new file mode 100644
index 000000000..e549b4624
--- /dev/null
+++ b/src/com/jpexs/decompiler/flash/gui/locales/SelectTagPositionDialog_ru.properties
@@ -0,0 +1,19 @@
+# Copyright (C) 2022 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 .
+dialog.title = \u0412\u044b\u0431\u043e\u0440 \u043d\u043e\u0432\u043e\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0439 \u0442\u0435\u0433\u0430 \u0432 %filetitle%
+button.ok = \u041e\u041a
+button.cancel = \u041e\u0442\u043c\u0435\u043d\u0430
+timeline.end = \u041a\u043e\u043d\u0435\u0446 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0448\u043a\u0430\u043b\u044b
+dialog.title.new.typed = \u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043d\u043e\u0432\u0443\u044e \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u0442\u0435\u0433\u0430 %type% \u0432 %filetitle%
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/SnappingDialog_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/SnappingDialog_ru.properties
new file mode 100644
index 000000000..f970eaa4e
--- /dev/null
+++ b/src/com/jpexs/decompiler/flash/gui/locales/SnappingDialog_ru.properties
@@ -0,0 +1,32 @@
+# Copyright (C) 2025 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 .
+dialog.title = Snapping
+button.ok = \u041e\u041a
+button.cancel = \u041e\u0442\u043c\u0435\u043d\u0430
+snapAlign = \u041f\u0440\u0438\u0432\u044f\u0437\u043a\u0430 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f
+snapToGrid = \u041f\u0440\u0438\u0432\u044f\u0437\u043a\u0430 \u043a \u0441\u0435\u0442\u043a\u0435
+snapToGuides = \u041f\u0440\u0438\u0432\u044f\u0437\u043a\u0430 \u043a \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u043c
+snapToPixels = \u041f\u0440\u0438\u0432\u044f\u0437\u043a\u0430 \u043a \u043f\u0438\u043a\u0441\u0435\u043b\u044f\u043c
+snapToObjects = \u041f\u0440\u0438\u0432\u044f\u0437\u043a\u0430 \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c
+snapAlign.settings = \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f
+snapAlign.stageBorder = \u0413\u0440\u0430\u043d\u0438\u0446\u0430 \u0441\u0446\u0435\u043d\u044b:
+snapAlign.objectSpacing = \u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u043c\u0435\u0436\u0434\u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438:
+snapAlign.objectSpacing.horizontal = \u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e:
+snapAlign.objectSpacing.vertical = \u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u043e:
+snapAlign.centerAlignment = \u0412\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u043f\u043e \u0446\u0435\u043d\u0442\u0440\u0443:
+snapAlign.centerAlignment.horizontal = \u0413\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u043f\u043e \u0446\u0435\u043d\u0442\u0440\u0443
+snapAlign.centerAlignment.vertical = \u0412\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u043f\u043e \u0446\u0435\u043d\u0442\u0440\u0443
+error.invalidSpacing = \u041d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430. \u041e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f \u0446\u0435\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e.
+error.invalidBorder = \u041d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0433\u0440\u0430\u043d\u0438\u0446\u044b. \u041e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f \u0446\u0435\u043b\u043e\u0435 \u0447\u0438\u0441\u043b\u043e.
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/abc/ABCExplorerDialog_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/abc/ABCExplorerDialog_ru.properties
new file mode 100644
index 000000000..ec9c776ff
--- /dev/null
+++ b/src/com/jpexs/decompiler/flash/gui/locales/abc/ABCExplorerDialog_ru.properties
@@ -0,0 +1,36 @@
+# Copyright (C) 2023 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 .
+title = \u0421
+abc = ABC:
+abc.info = %index% of %count%, v%major%.%minor%, %size%, \u041a\u0430\u0434\u0440 %frame%
+abc.info.standalone = v%major%.%minor%, %size%
+show.script = \u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442 \u0432 \u0433\u043b\u0430\u0432\u043d\u043e\u043c \u043e\u043a\u043d\u0435
+show.method = \u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 \u0432 \u0433\u043b\u0430\u0432\u043d\u043e\u043c \u043e\u043a\u043d\u0435
+show.trait = \u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0442\u0440\u0435\u0439\u0442 \u0432 \u0433\u043b\u0430\u0432\u043d\u043e\u043c \u043e\u043a\u043d\u0435
+show.class = \u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0441 \u0432 \u0433\u043b\u0430\u0432\u043d\u043e\u043c \u043e\u043a\u043d\u0435
+copy.row = \u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u0432 \u0431\u0443\u0444\u0435\u0440 \u043e\u0431\u043c\u0435\u043d\u0430
+copy.typeid = \u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c typeId \u0432 \u0431\u0443\u0444\u0435\u0440 \u043e\u0431\u043c\u0435\u043d\u0430
+copy.title = \u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0432 \u0431\u0443\u0444\u0435\u0440 \u043e\u0431\u043c\u0435\u043d\u0430
+copy.value = \u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u0431\u0443\u0444\u0435\u0440 \u043e\u0431\u043c\u0435\u043d\u0430
+copy.rawstring = C\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c raw string \u0432 \u0431\u0443\u0444\u0435\u0440 \u043e\u0431\u043c\u0435\u043d\u0430
+#after 20.1.0
+usages = \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f %item%
+copy.path = \u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0443\u0442\u044c \u0432 \u0431\u0443\u0444\u0435\u0440 \u043e\u0431\u043c\u0435\u043d\u0430
+copy.paths = \u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u043f\u0443\u0442\u0438 \u0432 \u0431\u0443\u0444\u0435\u0440 \u043e\u0431\u043c\u0435\u043d\u0430
+copy.paths.all = \u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u043f\u0443\u0442\u0438 \u0432 \u0431\u0443\u0444\u0435\u0440 \u043e\u0431\u043c\u0435\u043d\u0430
+hilight.usage = \u0412\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u043f\u0443\u0442\u044c
+goto.path = \u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u043f\u0443\u0442\u0438
+goto.path.label = \u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043f\u0443\u0442\u044c \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430
+button.clean = \u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c - \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/abc/AddClassDialog_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/abc/AddClassDialog_ru.properties
new file mode 100644
index 000000000..aac4bbd18
--- /dev/null
+++ b/src/com/jpexs/decompiler/flash/gui/locales/abc/AddClassDialog_ru.properties
@@ -0,0 +1,23 @@
+# Copyright (C) 2021 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 .
+dialog.title = \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442
+button.ok = \u041e\u041a
+button.cancel = \u041e\u0442\u043c\u0435\u043d\u0430
+classname = \u041f\u043e\u043b\u043d\u043e\u0435 \u0438\u043c\u044f \u043a\u043b\u0430\u0441\u0441\u0430:
+#after 16.3.1
+button.proceed = \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c
+abc.where = \u0413\u0434\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0431\u0430\u0439\u0442-\u043a\u043e\u0434:
+abc.where.existing = \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 DoABC \u0442\u0435\u0433
+abc.where.new = \u041d\u043e\u0432\u044b\u0439 DoABC \u0442\u0435\u0433
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/abc/As3ClassLinkageDialog_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/abc/As3ClassLinkageDialog_ru.properties
new file mode 100644
index 000000000..d7f621c2d
--- /dev/null
+++ b/src/com/jpexs/decompiler/flash/gui/locales/abc/As3ClassLinkageDialog_ru.properties
@@ -0,0 +1,35 @@
+# Copyright (C) 2024 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 .
+dialog.title = \u0421\u0432\u044f\u0437\u043a\u0430 AS3 \u043a\u043b\u0430\u0441\u0441\u0430
+button.ok = \u041e\u041a
+button.proceed = \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c
+button.cancel = \u041e\u0442\u043c\u0435\u043d\u0430
+classname = \u041f\u043e\u043b\u043d\u043e\u0435 \u0438\u043c\u044f \u043a\u043b\u0430\u0441\u0441\u0430:
+error.multipleClasses = \u041e\u0448\u0438\u0431\u043a\u0430: \u0414\u0430\u043d\u043d\u043e\u043c\u0443 \u0441\u0438\u043c\u0432\u043e\u043b\u0443 \u0443\u0436\u0435 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043e \u0431\u043e\u043b\u0435\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430, \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e. \u041e\u0434\u043d\u0430\u043a\u043e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c SymbolClass \u0442\u0435\u0433.
+error.alreadyAssignedClass = \u041e\u0448\u0438\u0431\u043a\u0430: \u042d\u0442\u043e\u0442 \u043a\u043b\u0430\u0441\u0441 \u0443\u0436\u0435 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u0440\u0443\u0433\u043e\u043c\u0443 \u0441\u0438\u043c\u0432\u043e\u043b\u0443
+error.needToModify = \u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0438\u043c\u044f \u043a\u043b\u0430\u0441\u0441\u0430 \u043d\u0430 \u043d\u043e\u0432\u043e\u0435.
+class.found = \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043a\u043b\u0430\u0441\u0441 \u0441 \u0442\u0430\u043a\u0438\u043c \u0438\u043c\u0435\u043d\u0435\u043c \u043d\u0430\u0439\u0434\u0435\u043d.
+class.notfound = \u041a\u043b\u0430\u0441\u0441 \u0441 \u0442\u0430\u043a\u0438\u043c \u0438\u043c\u0435\u043d\u0435\u043c \u043f\u043e\u043a\u0430 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442.
+symbolClassAppropriate = SymbolClass \u0442\u0435\u0433 \u0432 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u043c \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u043c \u043a\u0430\u0434\u0440\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d \u0438\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u043d.
+class.notfound.createAsk = \u0412\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0441?
+class.notfound.create = \u0414\u0430, \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0441
+class.notfound.create.parentType = \u0418\u043c\u044f \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 (\u043f\u043e\u043b\u043d\u043e\u0435):
+class.notfound.create.abc.where = \u0413\u0434\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0431\u0430\u0439\u0442-\u043a\u043e\u0434:
+class.notfound.create.abc.where.existing = \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 DoABC \u0442\u0435\u0433
+class.notfound.create.abc.where.new = \u041d\u043e\u0432\u044b\u0439 DoABC \u0442\u0435\u0433
+class.notfound.onlySetClassName = \u041d\u0435\u0442, \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0438\u0442\u044c \u0438\u043c\u044f \u043a\u043b\u0430\u0441\u0441\u0430
+class.notfound.onlySetClassName.symbolClass.where = \u0413\u0434\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u044f:
+class.notfound.onlySetClassName.symbolClass.where.existing = \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 SymbolClass \u0442\u0435\u0433
+class.notfound.onlySetClassName.symbolClass.where.new = \u041d\u043e\u0432\u044b\u0439 SymbolClass \u0442\u0435\u0433
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/abc/DeobfuscationDialog_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/abc/DeobfuscationDialog_ru.properties
index abb62f785..c20160dce 100644
--- a/src/com/jpexs/decompiler/flash/gui/locales/abc/DeobfuscationDialog_ru.properties
+++ b/src/com/jpexs/decompiler/flash/gui/locales/abc/DeobfuscationDialog_ru.properties
@@ -20,3 +20,9 @@ deobfuscation.removetraps = \u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043b\u0
deobfuscation.restorecontrolflow = \u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f
button.ok = OK
button.cancel = \u041e\u0442\u043c\u0435\u043d\u0430
+deobfuscation.scope = \u041e\u0431\u043b\u0430\u0441\u0442\u044c:
+deobfuscation.scope.method = \u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u043c\u0435\u0442\u043e\u0434
+deobfuscation.scope.script = \u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u0441\u043a\u0440\u0438\u043f\u0442
+deobfuscation.scope.swf = \u0426\u0435\u043b\u044b\u0439 SWF
+warning.modify = \u041f\u0420\u0415\u0414\u0423\u041f\u0420\u0415\u0416\u0414\u0415\u041d\u0418\u0415: \u042d\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442 SWF-\u0444\u0430\u0439\u043b.\
+ \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0435\u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0446\u0438\u044f \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043e\u043f\u0446\u0438\u044e "\u0414\u0435\u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434" \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u0438\u043b\u0438 \u0437\u043d\u0430\u0447\u043e\u043a \u0442\u0430\u0431\u043b\u0435\u0442\u043a\u0438 \u043d\u0430\u0434 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u043e\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432.
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/abc/SelectDoABCDialog_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/abc/SelectDoABCDialog_ru.properties
new file mode 100644
index 000000000..7c6145edc
--- /dev/null
+++ b/src/com/jpexs/decompiler/flash/gui/locales/abc/SelectDoABCDialog_ru.properties
@@ -0,0 +1,17 @@
+# Copyright (C) 2022 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 .
+dialog.title = \u0412\u044b\u0431\u0440\u0430\u0442\u044c DoABC \u0442\u0435\u0433
+button.ok = \u041e\u041a
+button.cancel = \u041e\u0442\u043c\u0435\u043d\u0430
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/action/AddScriptDialog_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/action/AddScriptDialog_ru.properties
new file mode 100644
index 000000000..f41a45fd8
--- /dev/null
+++ b/src/com/jpexs/decompiler/flash/gui/locales/action/AddScriptDialog_ru.properties
@@ -0,0 +1,10 @@
+framenum = Frame #:
+dialog.title = \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442
+button.ok = \u041e\u041a
+button.cancel = \u041e\u0442\u043c\u0435\u043d\u0430
+type = \u0422\u0438\u043f\u0430 \u0441\u043a\u0440\u0438\u043f\u0442\u0430:
+type.class = AS2 \u043a\u043b\u0430\u0441\u0441
+classname = \u041f\u043e\u043b\u043d\u043e\u0435 \u0438\u043c\u044f \u043a\u043b\u0430\u0441\u0441\u0430
+message.classexists = \u041a\u043b\u0430\u0441\u0441 \u0441 \u0442\u0430\u043a\u0438\u043c \u0438\u043c\u0435\u043d\u0435\u043c \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0434\u0440\u0443\u0433\u043e\u0435 \u0438\u043c\u044f.
+# In some cases we display only part of the dialog (like add class), in such case, dialog title is modified
+dialog.title.combined = %title% - %type%
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/hexview/GotoAddressDialog_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/hexview/GotoAddressDialog_ru.properties
new file mode 100644
index 000000000..160657e98
--- /dev/null
+++ b/src/com/jpexs/decompiler/flash/gui/locales/hexview/GotoAddressDialog_ru.properties
@@ -0,0 +1,4 @@
+dialog.title = \u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443
+button.ok = \u041e\u041a
+button.cancel = \u041e\u0442\u043c\u0435\u043d\u0430
+hex = \u0428\u0435\u0441\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043d\u044b\u0439
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/soleditor/SolEditorFrame_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/soleditor/SolEditorFrame_ru.properties
new file mode 100644
index 000000000..11b0c45da
--- /dev/null
+++ b/src/com/jpexs/decompiler/flash/gui/locales/soleditor/SolEditorFrame_ru.properties
@@ -0,0 +1,15 @@
+dialog.title = \u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440 .sol \u0444\u0430\u0439\u043b\u043e\u0432
+button.new = \u041d\u043e\u0432\u044b\u0439
+button.open = \u041e\u0442\u043a\u0440\u044b\u0442\u044c...
+button.open.npapi = \u041e\u0442\u043a\u0440\u044b\u0442\u044c NPAPI...
+button.open.ppapi = \u041e\u0442\u043a\u0440\u044b\u0442\u044c PPAPI...
+button.save = \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c
+button.saveAs = \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u0430\u043a...
+filter.sol = SOL \u0444\u0430\u0439\u043b\u044b (*.sol)
+error.cannotOpen = \u041d\u0435 \u0443\u0434\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0444\u0430\u0439\u043b.
+error.parse = \u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430. %reason% \u0432 \u0441\u0442\u0440\u043e\u043a\u0435 %line%.
+info.saved = \u0424\u0430\u0439\u043b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d.
+filename = \u0418\u043c\u044f \u0444\u0430\u0439\u043b\u0430:
+amfVersion = \u0412\u0435\u0440\u0441\u0438\u044f AMF:
+warning.loseChanges = \u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u0444\u0430\u0439\u043b \u0438\u0437\u043c\u0435\u043d\u0435\u043d. \u0412\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u0442\u0435\u0440\u044f\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f?
+untitled = \u0411\u0435\u0437\u044b\u043c\u044f\u043d\u043d\u044b\u0439