RocketChat / RocketChat/Rocket.Chat.ReactNative
bug: Slash commands from Rocket.Chat Apps show raw i18n key instead of description
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 2.4k
- Forks
- 1.5k
- Avg merge
- 1d 18h
- Merged PRs (30d)
- 90
Description
Describe the Bug
Slash commands registered by Rocket.Chat Apps (e.g. Jitsi, Giphy) display their raw internal translation key as the description instead of the human-readable text. This happens because the React Native client uses i18n-js which does not receive the dynamic app translations that are only injected into the web client at runtime.
Steps to Reproduce
- Install any Rocket.Chat App that registers a slash command (e.g. Jitsi Video Call)
- Open the React Native mobile app and navigate to any room
- Tap the message input and type
/ - Observe the autocomplete list of slash commands
Expected Behavior
Each slash command should display a human-readable description, e.g.:
/jitsi → Generate a Jitsi conference call.
Actual Behavior
Slash commands from Apps display the raw translation key as their description, e.g.:
/jitsi → app-3b387ba9-f57c-44c6-9810-8c0256abd64c.command_description
Rocket.Chat Server Version
8.3.0-develop
Rocket.Chat App Version
4.71.0
Device Name
iPhone 17 pro simulator
OS Version
iOS 26
Screenshots
Additional Context
The root cause is that Rocket.Chat Apps bundle their i18n strings locally and the web client receives them via AppClientOrchestratorInstance.load() → TAPi18next.addResourceBundle() at runtime. The React Native client has no equivalent mechanism and no existing REST endpoint exposes these translations. All built-in slash commands are unaffected since their descriptions are static keys present in the standard en.json translation files.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the React Native slash-command autocomplete path and compare it with the web client's AppClientOrchestratorInstance.load() and TAPi18next.addResourceBundle() flow. Determine how app translations can reach i18n-js; done means app slash commands show human-readable descriptions instead of raw translation keys.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- react-native, typescript
- Domain
- internationalization, mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 38/100