diff --git a/platform/build-scripts/icons/src/org/jetbrains/intellij/build/images/IntellijIconClassGeneratorConfig.kt b/platform/build-scripts/icons/src/org/jetbrains/intellij/build/images/IntellijIconClassGeneratorConfig.kt
index b486248a4135..3e1cf1bffbbe 100644
--- a/platform/build-scripts/icons/src/org/jetbrains/intellij/build/images/IntellijIconClassGeneratorConfig.kt
+++ b/platform/build-scripts/icons/src/org/jetbrains/intellij/build/images/IntellijIconClassGeneratorConfig.kt
@@ -65,12 +65,6 @@ class IntellijIconClassGeneratorConfig : IconClasses() {
iconDirectory = "icons/com/jetbrains/pythonCore",
)
- "intellij.gnuGetText"-> IntellijIconClassGeneratorModuleConfig(
- className = "LocalizationIcons",
- packageName = "com.jetbrains.localization.lcons",
- iconDirectory = "icons/com/jetbrains/localization",
- )
-
"intellij.notebooks.jupyter.core"-> IntellijIconClassGeneratorModuleConfig(
className = "JupyterCoreIcons",
packageName = "com.intellij.notebooks.jupyter.core.icons",
diff --git a/platform/icons/src/PlatformIconMappings.json b/platform/icons/src/PlatformIconMappings.json
index 27e200c6359b..e88fccc3410f 100644
--- a/platform/icons/src/PlatformIconMappings.json
+++ b/platform/icons/src/PlatformIconMappings.json
@@ -222,6 +222,7 @@
"html.svg": "fileTypes/html.svg",
"ideaModule.svg": "nodes/ideaModule.svg",
"idl.svg": "fileTypes/idl.svg",
+ "i18n.svg": "fileTypes/i18n.svg",
"ignored.svg": "vcs/ignore_file.svg",
"java.svg": [
"fileTypes/java.svg",
diff --git a/plugins/devkit/devkit-core/resources/icons/expui/localizationFile.svg b/platform/icons/src/expui/fileTypes/i18n.svg
similarity index 100%
rename from plugins/devkit/devkit-core/resources/icons/expui/localizationFile.svg
rename to platform/icons/src/expui/fileTypes/i18n.svg
diff --git a/plugins/devkit/devkit-core/resources/icons/expui/localizationFile_dark.svg b/platform/icons/src/expui/fileTypes/i18n_dark.svg
similarity index 100%
rename from plugins/devkit/devkit-core/resources/icons/expui/localizationFile_dark.svg
rename to platform/icons/src/expui/fileTypes/i18n_dark.svg
diff --git a/platform/icons/src/fileTypes/i18n.svg b/platform/icons/src/fileTypes/i18n.svg
new file mode 100644
index 000000000000..7e396f70e33d
--- /dev/null
+++ b/platform/icons/src/fileTypes/i18n.svg
@@ -0,0 +1,15 @@
+
+
diff --git a/platform/util/ui/api-dump.txt b/platform/util/ui/api-dump.txt
index 1178d8594012..38b5c9626c10 100644
--- a/platform/util/ui/api-dump.txt
+++ b/platform/util/ui/api-dump.txt
@@ -429,6 +429,7 @@ f:com.intellij.icons.AllIcons$FileTypes
- sf:Hprof:javax.swing.Icon
- sf:Htaccess:javax.swing.Icon
- sf:Html:javax.swing.Icon
+- sf:I18n:javax.swing.Icon
- sf:Idl:javax.swing.Icon
- sf:Image:javax.swing.Icon
- sf:Java:javax.swing.Icon
diff --git a/platform/util/ui/src/com/intellij/icons/AllIcons.java b/platform/util/ui/src/com/intellij/icons/AllIcons.java
index 6e5b08c18b95..ae16701be958 100644
--- a/platform/util/ui/src/com/intellij/icons/AllIcons.java
+++ b/platform/util/ui/src/com/intellij/icons/AllIcons.java
@@ -466,6 +466,7 @@ public class AllIcons {
/** 16x16 */ public static final @NotNull Icon Hprof = load("fileTypes/hprof.svg", 2107471584, 0);
/** 16x16 */ public static final @NotNull Icon Htaccess = load("fileTypes/htaccess.svg", -1026396371, 0);
/** 16x16 */ public static final @NotNull Icon Html = load("expui/fileTypes/html.svg", "fileTypes/html.svg", 944305592, 0);
+ /** 16x16 */ public static final @NotNull Icon I18n = load("expui/fileTypes/i18n.svg", "fileTypes/i18n.svg", 1594775427, 0);
/** 16x16 */ public static final @NotNull Icon Idl = load("expui/fileTypes/idl.svg", "fileTypes/idl.svg", 1130770662, 0);
/** 16x16 */ public static final @NotNull Icon Image = load("expui/fileTypes/image.svg", "fileTypes/image.svg", -266191706, 0);
/** 16x16 */ public static final @NotNull Icon Java = load("expui/fileTypes/java.svg", "fileTypes/java.svg", 1296658493, 0);
diff --git a/plugins/devkit/devkit-core/gen/org/jetbrains/idea/devkit/DevKitIcons.java b/plugins/devkit/devkit-core/gen/org/jetbrains/idea/devkit/DevKitIcons.java
index 30a7ad9f662f..c4c06d0040c8 100644
--- a/plugins/devkit/devkit-core/gen/org/jetbrains/idea/devkit/DevKitIcons.java
+++ b/plugins/devkit/devkit-core/gen/org/jetbrains/idea/devkit/DevKitIcons.java
@@ -26,7 +26,6 @@ public final class DevKitIcons {
/** 12x12 */ public static final @NotNull Icon Properties = load("icons/expui/gutter/properties@14x14.svg", "icons/gutter/properties.svg", -818710709, 2);
}
- /** 16x16 */ public static final @NotNull Icon LocalizationFile = load("icons/expui/localizationFile.svg", "icons/localizationFile.svg", -1571747209, 2);
/** 16x16 */ public static final @NotNull Icon PluginV2 = load("icons/expui/pluginV2.svg", 1719825147, 2);
/** 16x16 */ public static final @NotNull Icon RemoteMapping = load("icons/expui/remoteMapping.svg", "icons/remoteMapping.svg", 1371307852, 2);
/** 16x16 */ public static final @NotNull Icon Sdk_closed = load("icons/expui/sdkClosed.svg", "icons/sdk_closed.svg", -1355048140, 2);
diff --git a/plugins/devkit/devkit-core/resources/icons/localizationFile.svg b/plugins/devkit/devkit-core/resources/icons/localizationFile.svg
deleted file mode 100644
index f4fd9c0331fb..000000000000
--- a/plugins/devkit/devkit-core/resources/icons/localizationFile.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
diff --git a/plugins/devkit/devkit-core/resources/icons/localizationFile_dark.svg b/plugins/devkit/devkit-core/resources/icons/localizationFile_dark.svg
deleted file mode 100644
index bdfd4478019f..000000000000
--- a/plugins/devkit/devkit-core/resources/icons/localizationFile_dark.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
diff --git a/plugins/devkit/intellij.devkit.i18n/resources/intellij.devkit.i18n.xml b/plugins/devkit/intellij.devkit.i18n/resources/intellij.devkit.i18n.xml
index e57332be679e..7a181fee7629 100644
--- a/plugins/devkit/intellij.devkit.i18n/resources/intellij.devkit.i18n.xml
+++ b/plugins/devkit/intellij.devkit.i18n/resources/intellij.devkit.i18n.xml
@@ -11,8 +11,6 @@
-
-
com.intellij.java-i18n
Java Internationalization
Other Tools
+ JetBrains
+
com.intellij.properties
com.intellij.modules.java
com.intellij.modules.platform
+
Provides code inspections and corresponding quick fixes for internationalization in Java source code.
- JetBrains
+
messages.PropertiesBundle
+
+
JAVA
com.intellij.codeInspection.capitalization.AnnotateCapitalizationIntention
@@ -90,7 +95,10 @@
+
+
+
diff --git a/plugins/java-i18n/src/com/intellij/java/i18n/MessagesFileIconProvider.kt b/plugins/java-i18n/src/com/intellij/java/i18n/MessagesFileIconProvider.kt
new file mode 100644
index 000000000000..6f25cb453180
--- /dev/null
+++ b/plugins/java-i18n/src/com/intellij/java/i18n/MessagesFileIconProvider.kt
@@ -0,0 +1,26 @@
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.java.i18n
+
+import com.intellij.icons.AllIcons
+import com.intellij.ide.FileIconProvider
+import com.intellij.openapi.project.Project
+import com.intellij.openapi.vfs.VirtualFile
+import javax.swing.Icon
+
+internal class MessagesFileIconProvider : FileIconProvider {
+ private val messagesPattern: Regex = Regex("messages(_[a-z]+)?\\.properties")
+ private val validationMessagesPattern: Regex = Regex("(.*)Messages(_[a-z]+)?\\.properties")
+ private val bundlePattern: Regex = Regex("(.*)Bundle(_.+)?\\.properties")
+
+ override fun getIcon(file: VirtualFile, flags: Int, project: Project?): Icon? {
+ if (file.name.matches(messagesPattern)
+ || validationMessagesPattern.matches(file.name)) {
+ return AllIcons.FileTypes.I18n
+ }
+ if (file.parent?.name == "messages"
+ && file.name.matches(bundlePattern)) {
+ return AllIcons.FileTypes.I18n
+ }
+ return null
+ }
+}
\ No newline at end of file