Skip to content

feat(i18n): Comprehensive platform localization (Flows, Templates, Enrichers) - #195

Draft
sevasdron wants to merge 19 commits into
reconurge:mainfrom
sevasdron:Localization
Draft

feat(i18n): Comprehensive platform localization (Flows, Templates, Enrichers)#195
sevasdron wants to merge 19 commits into
reconurge:mainfrom
sevasdron:Localization

Conversation

@sevasdron

Copy link
Copy Markdown

Description

This PR introduces a comprehensive internationalization (i18n) layer for the Flowsint platform, transitioning the dashboard from hardcoded English strings to a fully dynamic localization system.

Key implementations include:

  • String Extraction & Refactoring: Extracted hardcoded UI strings from React components (Flows, Enricher Items, Custom Types, Vault, Settings) and replaced them with dynamic react-i18next hooks.
  • Dynamic Entities Localization: Automated translation mapping for 40+ Base Types (Organization, Domain, IP, Phrase, etc.) and their specific properties. The localization architecture preserves technical IDs for backend serialization while displaying localized labels in the UI.
  • Enricher Modules: Added descriptions and UI property translations for 45+ built-in enricher plugins.
  • Templates Editor: Full localization of the YAML Enricher Templates editor, including validation messages, IDE actions, and toast notifications.
  • Locale Synchronization: Updated en.json, ru.json, fr.json, and it.json to share identical key structures. Original English text was preserved in en.json, ensuring stable behavior for English users while enabling full support for Russian and serving as a foundation for other languages.

Motivation and Context

To support a global user base and make the platform accessible to analysts in multiple languages. By decoupling display text from component logic and backend docstrings, we enable easier maintenance and community-driven translations.

Type of change

  • New feature (non-breaking change which adds functionality)
  • Refactoring / UI Improvements

@dextmorgn

Copy link
Copy Markdown
Collaborator

@sevasdron,

This is an absolute banger. Amazing.

I'll review your PR very soon !

@sevasdron

sevasdron commented Jul 14, 2026

Copy link
Copy Markdown
Author

I'm glad I could be of assistance. I really liked your product. I was a bit hasty and missed a couple of tabs. I'll correct and add them now.
The translation into French and Italian was done using Google. Therefore, I apologize for any inaccuracies. They are easy to fix – everything is in one file. I left the English language unchanged, as in the original.
I suggest taking our time with the branch integration. I'll work on it for a couple of weeks and pinpoint any elements I might have missed.
Integrate virtually the entire OSINT framework's tools into the templates, excluding outdated and non-functional ones.
I used Gemini PRO as a helper. I checked the code whenever possible and required full compliance with your architecture. I hope the quality of the implementation will be up to par.
Thank you for the excellent platform!

… system info

- Added Russian translations for 470+ entity fields and descriptions (`ru.json`).
- Synced `en.json`, `fr.json`, `it.json` structures to maintain 100% key parity across locales.
- Localized `ImportSheet` texts with i18n hooks and error fallbacks.
- Refactored `InfoDialog` (About Flowsint) to use `dangerouslySetInnerHTML` instead of `<Trans>`. This fixes an i18next parsing bug where nested <strong> tags and blank spaces caused text duplication and broken HTML rendering in long text blocks.
@sevasdron

Copy link
Copy Markdown
Author

Sorry, I was in a hurry, it needs some work. I'll come back later.

@sevasdron sevasdron closed this Jul 15, 2026
…ings

- Cleaned up duplicate translation keys across localization files
- Translated hardcoded strings in FlowSheet and AddItemDialog components to use i18next hooks
- Extracted and added missing Enricher descriptions directly from backend Python sources
- Synchronized `ru.json` structure to strictly match `en.json` (master file) layout and ordering
- Removed temporary parsing scripts and unused fr/it locales
@dextmorgn

Copy link
Copy Markdown
Collaborator

Hey @sevasdron thanks for your work. You can leave it open and mark it as draft or work in progress :)

@dextmorgn dextmorgn reopened this Jul 15, 2026
@dextmorgn dextmorgn added the enhancement New feature or request label Jul 15, 2026
@dextmorgn
dextmorgn marked this pull request as draft July 15, 2026 12:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants