Rocket.Chat.Electron icon indicating copy to clipboard operation
Rocket.Chat.Electron copied to clipboard

feat: Adding the Translator language: "TAMIL"

Open pavin7512 opened this issue 3 months ago • 3 comments

Adds complete Tamil language translation for Rocket.Chat.Electron desktop application, making it accessible to Tamil-speaking users worldwide.

Description of changes

  • New translation file: src/i18n/ta.json with 500+ translated strings
  • Language registration: Tamil added to available languages list
  • Comprehensive coverage: All UI elements translated including:
    • Context menus and dialog boxes
    • Settings and preferences panels
    • Error messages and notifications
    • Sidebar navigation and tooltips
    • Video call interfaces
    • Download manager
    • System tray and taskbar
    • Authentication flows

Motivation and Context

Tamil is spoken by over 78 million people worldwide and is an official language in Sri Lanka, Singapore, and India. This translation:

  • Makes Rocket.Chat accessible to Tamil-speaking communities
  • Supports educational and business institutions in Tamil-speaking regions
  • Enhances the app's global reach and inclusivity
  • Follows Rocket.Chat's commitment to multilingual support

Screenshots

Screenshot 2025-10-10 031802

Technical Details

  • File: src/i18n/ta.json
  • Strings: 500+ translated terms
  • Format: Standard JSON localization format
  • Standards: Follows existing Rocket.Chat localization patterns
  • Placeholders: Properly handles dynamic variables like {{appName}}, {{version}}

Testing Performed

  • ✅ Built application successfully with new translation
  • ✅ Verified JSON syntax validity
  • ✅ Checked placeholder variable consistency
  • ✅ Confirmed all UI sections have translations
  • ✅ Tested special characters and Tamil script rendering

Checklist

  • [x] I have read the CONTRIBUTING document
  • [x] My code follows the code style of this project
  • [x] I have added tests to cover my changes (N/A for translation)
  • [x] All new and existing tests passed
  • [x] I have tested the translation by building and running the application
  • [x] Translation maintains consistent terminology
  • [x] No hard-coded strings left untranslated

Impact

  • Users: ~78 million Tamil speakers can now use Rocket.Chat in their native language
  • Adoption: Lowers barrier for Tamil-speaking organizations to adopt Rocket.Chat
  • Usability: Improves user experience for non-English speakers

Related Issues

This addresses the need for broader language support in Rocket.Chat ecosystem.

Summary by CodeRabbit

  • New Features

    • Added full Tamil (ta) localization across the app.
  • Refactor

    • Removed the legacy video call window; this feature is no longer available.
    • Retired custom DMG/NSIS artwork and related asset generation, which may alter installer visuals across platforms.
  • Chores

    • Cleaned up obsolete asset-building scripts and UI components tied to platform-specific icons and installers.

pavin7512 avatar Oct 09 '25 21:10 pavin7512

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

CLAassistant avatar Oct 09 '25 21:10 CLAassistant

Walkthrough

This change removes the asset-building pipeline and several UI asset/icon components, deletes the video call window module, and adds Tamil (ta) localization. It also updates the i18n resource map to lazily load the new locale.

Changes

Cohort / File(s) Summary
Asset build pipeline removal
src/buildAssets.ts
Deleted the entire asset-building module (SVG-to-PNG rendering, platform icon/tray generators, orchestrator, CLI entry).
UI asset components removed
src/ui/assets/DmgBackground.tsx, src/ui/assets/NsisSideBar.tsx, src/ui/components/RocketChatLogo.tsx, src/ui/icons/WindowsTrayIcon.tsx
Removed SVG-based React components used for DMG background, NSIS sidebar, app logo, and Windows tray icon. Eliminates their default/named exports.
Video call window removed
src/videoCallWindow/videoCallWindow.tsx
Deleted the video call window React component and its IPC-driven webview logic, including auto-recovery, loading/error UI, and screen share integrations.
i18n locale added and wired
src/i18n/resources.ts, src/i18n/ta.json
Added Tamil locale file and updated resources map to lazy-load 'ta' via dynamic import without altering other locales.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant UI as UI
  participant I18N as i18n resources
  participant Loader as Dynamic Import

  Note over UI,I18N: New/updated control flow for Tamil locale loading
  UI->>I18N: request strings for locale 'ta'
  I18N->>Loader: import('./ta.json')
  activate Loader
  Loader-->>I18N: resolve ta.json
  deactivate Loader
  I18N-->>UI: return resource bundle
sequenceDiagram
  autonumber
  participant Main as Main/IPC
  participant VCW as VideoCallWindow (Removed)
  participant WV as <webview> (Removed)

  rect rgba(255, 230, 230, 0.4)
  Note over Main,VCW: Previous flow (now removed)
  Main->>VCW: open with URL via IPC
  VCW->>WV: load URL, attach listeners
  WV-->>VCW: load / error / crash events
  VCW->>VCW: auto-recovery (reload/refresh/reinit)
  VCW-->>Main: close or ready signals
  end

  Note over Main: Module and flow removed

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

I hop through commits with whiskers alight,
Old icons fade softly into the night.
A call window waves—goodbye, friend, adieu—
While Tamil arrives, fresh strings in view.
Pipelines retire, their engines at rest—
Carrots and code: ship only the best. 🥕✨

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title clearly and concisely summarizes the primary change of the pull request, which is adding Tamil language support to the application’s translation resources, and follows the conventional commit style.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
  • [ ] 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • [ ] Create PR with unit tests
  • [ ] Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

coderabbitai[bot] avatar Oct 09 '25 21:10 coderabbitai[bot]

@pavin7512 Thanks for your PR, but why all the removals? The new language its a very cool add, fix the PR and I will accept it.

jeanfbrito avatar Oct 27 '25 18:10 jeanfbrito