Skip to content

Conversation

@pavin7512
Copy link

@pavin7512 pavin7512 commented Oct 9, 2025

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

  • I have read the CONTRIBUTING document
  • My code follows the code style of this project
  • I have added tests to cover my changes (N/A for translation)
  • All new and existing tests passed
  • I have tested the translation by building and running the application
  • Translation maintains consistent terminology
  • 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.

Added Tamil language for Language translation.
- Complete Tamil translation for all UI elements
- Follows Rocket.Chat localization standards
- Covers all dialog boxes, menus, and settings"
- Complete Tamil translation for all UI elements
- Follows Rocket.Chat localization standards
- Covers all dialog boxes, menus, and settings"
@CLAassistant
Copy link

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.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Oct 9, 2025

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
Loading
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
Loading

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.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (2)
src/i18n/ta.json (1)

121-121: Verify spacing around punctuation.

Two minor formatting observations:

  • Line 121: "{{- url }} ." has a space before the period
  • Line 150: " ரத்து" has a leading space

These may be intentional for Tamil language formatting rules, but please verify they render correctly in the UI.

Also applies to: 150-150

src/i18n/resources.ts (1)

5-5: Import path is correct; no change required
Optionally rename src/i18n/ta.json to ta.i18n.json to align with other locale filenames.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between d614c2c and 0bb0f44.

📒 Files selected for processing (8)
  • src/buildAssets.ts (0 hunks)
  • src/i18n/resources.ts (1 hunks)
  • src/i18n/ta.json (1 hunks)
  • src/ui/assets/DmgBackground.tsx (0 hunks)
  • src/ui/assets/NsisSideBar.tsx (0 hunks)
  • src/ui/components/RocketChatLogo.tsx (0 hunks)
  • src/ui/icons/WindowsTrayIcon.tsx (0 hunks)
  • src/videoCallWindow/videoCallWindow.tsx (0 hunks)
💤 Files with no reviewable changes (6)
  • src/ui/icons/WindowsTrayIcon.tsx
  • src/ui/assets/NsisSideBar.tsx
  • src/ui/components/RocketChatLogo.tsx
  • src/videoCallWindow/videoCallWindow.tsx
  • src/ui/assets/DmgBackground.tsx
  • src/buildAssets.ts
🧰 Additional context used
📓 Path-based instructions (1)
**/*.{ts,tsx}

📄 CodeRabbit inference engine (CLAUDE.md)

**/*.{ts,tsx}: Follow existing TypeScript patterns with strict mode enabled
All new code must pass ESLint and TypeScript checks
Avoid unnecessary comments; only add comments for complex logic or non-obvious decisions

Files:

  • src/i18n/resources.ts
🔇 Additional comments (1)
src/i18n/ta.json (1)

1-441: LGTM! Comprehensive Tamil translation with proper placeholder handling.

This complete Tamil localization file correctly:

  • Maintains all required placeholder tokens ({{- appName}}, {{- version}}, {{- host}}, {{- url}}, {{count}}, etc.)
  • Follows the same JSON structure as other locale files
  • Covers all major UI sections (context menus, dialogs, downloads, settings, errors, etc.)
  • Uses proper Tamil Unicode characters throughout

The translation appears thorough and well-formatted, enabling Rocket.Chat.Electron access for Tamil speakers.

@jeanfbrito
Copy link
Collaborator

@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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants