diff --git a/.gitignore b/.gitignore
index b5f7b8e..f8595c4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,5 +18,5 @@ src/Server/logs
src/Shared/bin
src/Shared/obj
src/Server/wwwroot/logs/*
-src/Server/CriticalCSS/node_modules
-src/Server/CriticalCSS/package*.json
+src/Server/Tools/CriticalCSS/node_modules
+src/Server/Tools/CriticalCSS/package*.json
diff --git a/src/Server/Resources/SharedResources.de.resx b/src/Server/Resources/SharedResources.de.resx
index 521b3c6..04636c2 100644
--- a/src/Server/Resources/SharedResources.de.resx
+++ b/src/Server/Resources/SharedResources.de.resx
@@ -55,7 +55,7 @@
Such-Cache
- Such-Cache Speicherauslastung
+ Such-Cache-SpeicherauslastungLeeren
@@ -121,7 +121,7 @@
Searchdomain Name
- Cache Abgleich verwenden
+ Cache-Abgleich verwendenEntity erstellen
@@ -175,10 +175,10 @@
Searchdomain konnte nicht erstellt werden
- Searchdomain Cache wurde erfolgreich geleert
+ Searchdomain-Cache wurde erfolgreich geleert
- Searchdomain Cache konnte nicht geleert werden
+ Searchdomain-Cache konnte nicht geleert werdenEntity wurde erfolgreich gelöscht
@@ -229,7 +229,7 @@
Searchdomain Einstellungen konnten nicht abgerufen werden
- Searchdomain Cache-Auslastung konnte nicht abgerufen werden
+ Searchdomain-Cache-Auslastung konnte nicht abgerufen werdenDetails
@@ -243,4 +243,61 @@
Benachrichtigung schließen
+
+ Letzte Queries
+
+
+ Dashboard
+
+
+ Searchdomains
+
+
+ Swagger
+
+
+ Elmah
+
+
+ Hallo!
+
+
+ Hallo {0}!
+
+
+ Embedding-Cache
+
+
+ Größe
+
+
+ Zeichenketten
+
+
+ Die Anzahl der Zeichenketten, für die Embeddings vorliegen. D.h. wenn zwei Modelle verwendet werden, ist die Zahl der Embeddings zweimal so hoch.
+
+
+ Embeddings
+
+
+ Health Checks
+
+
+ Server
+
+
+ AI Providers
+
+
+ Anzahl
+
+
+ Entities insgesamt
+
+
+ Query-Cache-Verwendung insgesamt
+
+
+ Searchdomain Datenbank-Auslastung konnte nicht abgerufen werden
+
\ No newline at end of file
diff --git a/src/Server/Resources/SharedResources.en.resx b/src/Server/Resources/SharedResources.en.resx
index 64b5941..000c7bc 100644
--- a/src/Server/Resources/SharedResources.en.resx
+++ b/src/Server/Resources/SharedResources.en.resx
@@ -243,4 +243,61 @@
Close alert
+
+ Recent queries
+
+
+ Dashboard
+
+
+ Searchdomains
+
+
+ Swagger
+
+
+ Elmah
+
+
+ Hi!
+
+
+ Hi {0}!
+
+
+ Embedding Cache
+
+
+ Size
+
+
+ Strings
+
+
+ The number of strings for which there are embeddings. I.e. If you use two models, the amount of embeddings will be twice this number.
+
+
+ Embeddings
+
+
+ Health Checks
+
+
+ Server
+
+
+ AI Providers
+
+
+ Count
+
+
+ Total Entities
+
+
+ Total query cache utilization
+
+
+ Unable to fetch searchdomain database utilization
+
\ No newline at end of file
diff --git a/src/Server/CriticalCSS/CriticalCSSGenerator.js b/src/Server/Tools/CriticalCSS/CriticalCSSGenerator.js
similarity index 100%
rename from src/Server/CriticalCSS/CriticalCSSGenerator.js
rename to src/Server/Tools/CriticalCSS/CriticalCSSGenerator.js
diff --git a/src/Server/CriticalCSS/README.md b/src/Server/Tools/CriticalCSS/README.md
similarity index 58%
rename from src/Server/CriticalCSS/README.md
rename to src/Server/Tools/CriticalCSS/README.md
index 994df3c..031f14d 100644
--- a/src/Server/CriticalCSS/README.md
+++ b/src/Server/Tools/CriticalCSS/README.md
@@ -7,4 +7,5 @@ npm install puppeteer
2. Run the css generator:
```bash
node CriticalCSSGenerator.js
-```
\ No newline at end of file
+```
+3. Move the `.css` files from the current directory to the `CriticalCSS/` folder (overwrite existing files)
\ No newline at end of file
diff --git a/src/Server/Tools/LocalizationChecker/LocalizationChecker.py b/src/Server/Tools/LocalizationChecker/LocalizationChecker.py
new file mode 100644
index 0000000..d9dc724
--- /dev/null
+++ b/src/Server/Tools/LocalizationChecker/LocalizationChecker.py
@@ -0,0 +1,78 @@
+import re
+import sys
+
+def extract_translations_from_View(view_path):
+ """Extract all translation strings from file A"""
+ translations = {}
+
+ try:
+ with open(view_path, 'r', encoding='utf-8') as file_a:
+ for line_num, line in enumerate(file_a, 1):
+ # Match T["..."] patterns
+ matches = re.findall(r'T\["([^"]*)"\]', line)
+ for match in matches:
+ translations[match] = line_num
+ except FileNotFoundError:
+ print(f"Error: File {view_path} not found")
+ sys.exit(1)
+ except Exception as e:
+ print(f"Error reading file {view_path}: {e}")
+ sys.exit(1)
+
+ return translations
+
+def extract_localizations_from_resource_file(file_b_path):
+ """Extract all translation strings from file B"""
+ translations = set()
+
+ try:
+ with open(file_b_path, 'r', encoding='utf-8') as file_b:
+ for line in file_b:
+ # Match the pattern in file B
+ match = re.search(r'
+ title="@T["stringsCountInfo"]">
diff --git a/src/Server/Views/Home/Searchdomains.cshtml b/src/Server/Views/Home/Searchdomains.cshtml
index df424bc..309bfcc 100644
--- a/src/Server/Views/Home/Searchdomains.cshtml
+++ b/src/Server/Views/Home/Searchdomains.cshtml
@@ -92,7 +92,7 @@