Captain
a74d71c1c3
New translations whatsapptemplates.json (Korean)
...
[ci skip]
2026-03-16 20:42:54 -07:00
Captain
947287af7f
New translations bulkactions.json (Korean)
...
[ci skip]
2026-03-16 20:42:52 -07:00
Captain
d00081b871
New translations contactfilters.json (Korean)
...
[ci skip]
2026-03-16 20:42:51 -07:00
Captain
47a50ae3e2
New translations advancedfilters.json (Korean)
...
[ci skip]
2026-03-16 20:42:49 -07:00
Captain
0b70e8ae53
New translations automation.json (Korean)
...
[ci skip]
2026-03-16 20:42:48 -07:00
Captain
6be138614d
New translations attributesmgmt.json (Korean)
...
[ci skip]
2026-03-16 20:42:46 -07:00
Captain
5aa2639b49
New translations csatmgmt.json (Korean)
...
[ci skip]
2026-03-16 20:42:45 -07:00
Captain
7668ccdc46
New translations integrationapps.json (Korean)
...
[ci skip]
2026-03-16 20:42:44 -07:00
Captain
c85cde5550
New translations campaign.json (Korean)
...
[ci skip]
2026-03-16 20:42:42 -07:00
Captain
572af818e5
New translations teamssettings.json (Korean)
...
[ci skip]
2026-03-16 20:42:41 -07:00
Captain
29b5eed897
New translations labelsmgmt.json (Korean)
...
[ci skip]
2026-03-16 20:42:40 -07:00
Captain
68626a8e65
New translations signup.json (Korean)
...
[ci skip]
2026-03-16 20:42:34 -07:00
Captain
3537b61a02
New translations settings.json (Korean)
...
[ci skip]
2026-03-16 20:42:33 -07:00
Captain
abf0e93548
New translations setnewpassword.json (Korean)
...
[ci skip]
2026-03-16 20:42:31 -07:00
Captain
8e762f0481
New translations resetpassword.json (Korean)
...
[ci skip]
2026-03-16 20:42:30 -07:00
Captain
c7399339d7
New translations report.json (Korean)
...
[ci skip]
2026-03-16 20:42:28 -07:00
Captain
141b4b0fa9
New translations login.json (Korean)
...
[ci skip]
2026-03-16 20:42:27 -07:00
Captain
79b8fd31ba
New translations integrations.json (Korean)
...
[ci skip]
2026-03-16 20:42:26 -07:00
Captain
5dcd8b1bb2
New translations inboxmgmt.json (Korean)
...
[ci skip]
2026-03-16 20:42:24 -07:00
Captain
a07f6dddec
New translations generalsettings.json (Korean)
...
[ci skip]
2026-03-16 20:42:23 -07:00
Captain
9acecbb03d
New translations conversation.json (Korean)
...
[ci skip]
2026-03-16 20:42:22 -07:00
Captain
a107408d57
New translations contact.json (Korean)
...
[ci skip]
2026-03-16 20:42:20 -07:00
Captain
9e6b0452b5
New translations chatlist.json (Korean)
...
[ci skip]
2026-03-16 20:42:19 -07:00
Captain
5703096d4f
New translations cannedmgmt.json (Korean)
...
[ci skip]
2026-03-16 20:42:18 -07:00
Captain
2753b009d9
New translations agentmgmt.json (Korean)
...
[ci skip]
2026-03-16 20:42:16 -07:00
Captain
0ca5fffaa4
New translations inboxmgmt.json (Georgian)
...
[ci skip]
2026-03-16 20:41:46 -07:00
Captain
95adfc155a
New translations inboxmgmt.json (Japanese)
...
[ci skip]
2026-03-16 20:41:12 -07:00
Captain
2e6e01c5b3
New translations inboxmgmt.json (Italian)
...
[ci skip]
2026-03-16 20:40:38 -07:00
Captain
eb3bb7f53c
New translations inboxmgmt.json (Armenian)
...
[ci skip]
2026-03-16 20:40:05 -07:00
Captain
4923a58fa0
New translations inboxmgmt.json (Hungarian)
...
[ci skip]
2026-03-16 20:39:31 -07:00
Captain
ba26d63692
New translations inboxmgmt.json (Hebrew)
...
[ci skip]
2026-03-16 20:38:56 -07:00
Captain
91b738ccb7
New translations inboxmgmt.json (Finnish)
...
[ci skip]
2026-03-16 20:38:22 -07:00
Captain
210b36cd4e
New translations inboxmgmt.json (Greek)
...
[ci skip]
2026-03-16 20:37:46 -07:00
Captain
5bb81736c7
New translations inboxmgmt.json (German)
...
[ci skip]
2026-03-16 20:37:12 -07:00
Captain
ad46e98c4d
New translations inboxmgmt.json (Danish)
...
[ci skip]
2026-03-16 20:36:37 -07:00
Captain
d20ed19f7e
New translations inboxmgmt.json (Czech)
...
[ci skip]
2026-03-16 20:36:02 -07:00
Captain
3769ad404d
New translations inboxmgmt.json (Catalan)
...
[ci skip]
2026-03-16 20:35:25 -07:00
Captain
f8a46ccecd
New translations inboxmgmt.json (Bulgarian)
...
[ci skip]
2026-03-16 20:34:49 -07:00
Captain
fd91c54286
New translations inboxmgmt.json (Arabic)
...
[ci skip]
2026-03-16 20:34:15 -07:00
Captain
753a01e21c
New translations inboxmgmt.json (Spanish)
...
[ci skip]
2026-03-16 20:33:43 -07:00
Captain
64f1523ee3
New translations inboxmgmt.json (French)
...
[ci skip]
2026-03-16 20:33:08 -07:00
Captain
513714ec14
New translations inboxmgmt.json (Portuguese, Brazilian)
...
[ci skip]
2026-03-16 20:32:34 -07:00
Captain
6c527ee54b
New translations inboxmgmt.json (Turkish)
...
[ci skip]
2026-03-16 20:32:23 -07:00
Captain
f9ec61ee87
New translations inboxmgmt.json (Romanian)
...
[ci skip]
2026-03-16 20:32:10 -07:00
a62beffeef
fix(i18n): complete zh_TW locale coverage ( #13792 )
...
This updates the Traditional Chinese (`zh_TW`) locale coverage across
Chatwoot so the app no longer falls back to English for missing backend,
dashboard, widget, and survey strings.
## How to test
1. Start Chatwoot locally and switch the UI locale to Traditional
Chinese (`zh_TW`).
2. Walk through the main product areas: dashboard, settings, inbox
management, help center, automations, reports, widget, and survey flows.
3. Confirm the UI surfaces translated Traditional Chinese copy instead
of English fallbacks.
4. Spot-check newly added locale surfaces such as secure password
messaging and snooze UI copy.
---------
Co-authored-by: Sojan Jose <sojan@pepalo.com >
2026-03-16 18:47:22 -07:00
b866886b55
feat(i18n): complete Korean (ko) translations to 100% coverage ( #13583 )
...
Translate all English strings to Korean across 41 frontend locale files
and 2 backend locale files. Add structurally missing keys and translate
existing keys that were left in English.
# Pull Request Template
## Description
Please include a summary of the change and issue(s) fixed. Also, mention
relevant motivation, context, and any dependencies that this change
requires.
Fixes # (issue)
## Type of change
Please delete options that are not relevant.
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality not to work as expected)
- [ ] This change requires a documentation update
## How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide
instructions so we can reproduce. Please also list any relevant details
for your test configuration.
## Checklist:
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my code
- [x] I have commented on my code, particularly in hard-to-understand
areas
- [x] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [x] Any dependent changes have been merged and published in downstream
modules
Co-authored-by: Sojan Jose <sojan@pepalo.com >
2026-03-16 16:54:26 -07:00
b88236e86e
chore(i18n): update Russian translations ( #13405 )
...
# Pull Request Template
## Description
Updated few i18n files to:
1. fix typos / grammar / punctuation
2. translate strings that were still in english
3. add missing keys
## Type of change
- [ ] Bug fix (non-breaking change which fixes an issue)
## How Has This Been Tested?
i18n change, the format remained the same.
## Checklist:
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented on my code, particularly in hard-to-understand
areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream
modules
---------
Co-authored-by: Sojan Jose <sojan@pepalo.com >
2026-03-16 16:10:16 -07:00
11ee741716
chore: Update translations ( #13227 )
...
Co-authored-by: Sojan Jose <sojan@pepalo.com >
2026-03-16 15:44:32 -07:00
a452ce9e84
feat(whatsapp): add webhook registration and status endpoints ( #13551 )
...
## Description
Adds webhook configuration management for WhatsApp Cloud API channels,
allowing administrators to check webhook status and register webhooks
directly from Chatwoot without accessing Meta Business Manager.
## Type of change
- [ ] New feature (non-breaking change which adds functionality)
## Screenshots
<img width="1130" height="676" alt="Screenshot 2026-03-05 at 7 04 18 PM"
src="https://github.com/user-attachments/assets/f5dcd9dd-8827-42c5-a52b-1024012703c2 "
/>
<img width="1101" height="651" alt="Screenshot 2026-03-05 at 7 04 29 PM"
src="https://github.com/user-attachments/assets/e0bd59f9-2a90-4f24-87c0-b79f21e721ee "
/>
## Checklist:
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented on my code, particularly in hard-to-understand
areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream
modules
---------
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com >
2026-03-16 12:48:16 +05:30
Sivin Varghese and GitHub
88587b1ccb
feat: Add natural language date parser for snooze functionality ( #13587 )
...
# Pull Request Template
## Description
This PR introduces a custom, lightweight natural-language date parser
(dependency-free except for date-fns) to power snooze actions via the
command bar (e.g., “Remind me tomorrow at 6am”). It also adds support
for multi-language searches.
<details>
<summary>Supported Formats</summary>
## Snooze Date Parser — Supported Input Formats
## 1. Durations
Specify an amount of time from now.
### Basic
- `5 minutes` · `2 hours` · `3 days` · `1 week` · `6 months` · `ten
year`
- `in 2 hours` · `in 30 minutes` · `in a week` · `in a month`
- `5 minutes from now` · `a week from now` · `two weeks from now`
### Half / fractional
- `half hour` · `half day` · `half week` · `half month`
- `in half a day` · `in half an hour` · `in half a week`
- `one and a half hours` · `in one and a half hours`
- `1.5 hours` · `2.5 days`
### Compound
- `1 hour and 30 minutes` · `2 hours and 15 minutes`
- `2 days at 3pm` · `1 week at 9am`
### Shorthand (no spaces)
- `2h` · `30m` · `1h30m` · `2h15m`
- `1h30minutes` · `2hr15min` · `1hour30min`
### Informal quantities
- `couple hours` · `a couple of days` · `in a couple hours`
- `a few minutes` · `in a few hours` · `in a few days`
- `fortnight` · `in a fortnight` _(= 2 weeks)_
### Trailing "later"
- `2 days later` · `a week later` · `month later`
### Prefix words (`after` / `within`)
- `after 2 hours` · `after 3 days` · `after ten year`
- `within a week` · `within 2 hours`
### Recognised word-numbers
`a` (1) · `an` (1) · `one` – `twenty` · `thirty` · `forty` · `fifty` ·
`sixty` · `ninety` · `half` (0.5) · `couple` (2) · `few` (3)
---
## 2. Relative Days
- `today` · `tonight` · `tomorrow`
- `tomorrow morning` · `tomorrow afternoon` · `tomorrow evening` ·
`tomorrow night`
- `tomorrow at 3pm` · `tomorrow 9` · `tonight at 8` · `tonight at 10pm`
- `tomorrow same time` · `same time tomorrow`
- `day after tomorrow` · `the day after tomorrow` · `day after tomorrow
at 2pm`
- `later today` · `later this afternoon` · `later this evening`
---
## 3. Weekdays
- `monday` · `friday` · `wed` · `thu`
- `friday at 3pm` · `monday 9am` · `wednesday 14:30`
- `monday morning` · `friday afternoon` · `wednesday evening`
- `monday morning 6` · `friday evening 7`
- `this friday` · `upcoming monday` · `coming friday`
- `same time friday` · `same time wednesday`
---
## 4. "Next" Patterns
- `next hour` · `next week` · `next month` · `next year`
- `next week at 2pm` · `next month at 9am`
- `next monday` · `next friday` · `next friday at 3pm`
- `next monday morning` · `next friday evening`
- `monday of next week` · `next week monday`
- `next january` · `next december`
- `next business day` · `next working day`
---
## 5. Time of Day
- `morning` · `afternoon` · `evening` · `night` · `noon` · `midnight`
- `this morning` · `this afternoon` · `this evening`
- `early morning` · `late evening` · `late night`
- `morning at 8am` · `evening 6pm` · `afternoon 2pm`
- `eod` · `end of day` · `end of the day`
---
## 6. Standalone Time
- **12-hour:** `3pm` · `9am` · `at 3pm` · `at 9:30am`
- **24-hour:** `14:30` · `at 14:30`
---
## 7. Named Dates (Month + Day)
- `jan 15` · `january 15` · `march 20` · `dec 25`
- `jan 1st` · `march 3rd` · `april 2nd` · `december 31st`
- `15 march` · `25 dec` _(reversed order)_
- `jan 15 2025` · `dec 25 2025` · `march 20 next year`
- `jan 15 at 2pm` · `march 5 at 2pm`
- `december 2025` · `january 2024` _(month + year only)_
---
## 8. Month + Ordinal Patterns
Target a specific week or day within a month.
### Week of month
- `april first week` · `july 2nd week` · `feb 3rd week`
- `first week of april` · `2nd week of july`
### Day of month
- `april first day` · `march second day` · `march 5th day`
- `third day of march` · `5th day of jan at 2pm`
### Supported ordinals
- **Digit:** `1st` `2nd` `3rd` `4th` `5th` … (up to 31 for days, 5 for
weeks)
- **Word:** `first` `second` `third` `fourth` `fifth` `sixth` `seventh`
`eighth` `ninth` `tenth`
---
## 9. Formal / Numeric Dates
- **ISO:** `2025-01-15`
- **Slash (M/D/Y):** `01/15/2025`
- **Dash (D-M-Y):** `15-01-2025`
- **Dot (D.M.Y):** `15.01.2025`
- Any of the above **+ time:** `2025-01-15 at 3pm`
---
## 10. Special Phrases
- `this weekend` · `weekend` · `next weekend`
- `end of week` · `end of month`
- `end of next week` · `end of next month`
- `beginning of next week` · `start of next week`
- `beginning of next month`
---
## 11. Noise / Filler Stripping
The parser silently removes conversational prefixes so all of these work
exactly the same as the bare expression:
```
snooze for 2 hours → 2 hours
remind me tomorrow → tomorrow
please snooze until friday → friday
can you set a reminder for next week → next week
schedule this for jan 15 → jan 15
postpone to next monday → next monday
defer for 2 days → 2 days
delay it by 1 hour → 1 hour
```
### Recognised filler verbs / prefixes
`snooze` · `remind` · `remind me` · `set a reminder` · `add a reminder`
·
`schedule` · `postpone` · `defer` · `delay` · `push`
### Recognised prepositions (stripped)
`on` · `to` · `for` · `at` · `until` · `till` · `by` · `from` · `after`
· `within`
### Typo corrections
`tommorow` / `tommorrow` → `tomorrow` · `nxt` → `next`
---
## 12. Multi-Language Support
The parser supports localised input via translations in `snooze.json`.
### Translatable token categories
- **Units:** minute, hour, day, week, month, year _(singular + plural)_
- **Relative days:** tomorrow, day after tomorrow, next week / month,
this / next weekend
- **Time of day:** morning, afternoon, evening, night, noon, midnight
- **Word numbers:** one through ten, twelve, fifteen, twenty, thirty
- **Ordinals:** first through fifth
- **Structural words:** at, in, of, after, week, day, from now, next
year
- **Meridiem:** am, pm
### Auto-detected from locale
Weekday names and month names are resolved automatically via
`Intl.DateTimeFormat` for the user's locale — no manual translation
needed.
</details>
## Type of change
- [x] New feature (non-breaking change which adds functionality)
## How Has This Been Tested?
**Screenshots**
<img width="974" height="530" alt="image"
src="https://github.com/user-attachments/assets/c690d328-a0df-41d2-b531-2b4e6ce6b5fd "
/>
<img width="974" height="530" alt="image"
src="https://github.com/user-attachments/assets/fa881acc-4fed-4ba3-9166-58bd953bcb26 "
/>
<img width="974" height="530" alt="image"
src="https://github.com/user-attachments/assets/4d9a224b-641c-409c-a7ce-3dec2b5355e2 "
/>
<img width="974" height="530" alt="image"
src="https://github.com/user-attachments/assets/465b9835-d82c-4bc7-a2ae-94976ada2d3b "
/>
<img width="974" height="530" alt="image"
src="https://github.com/user-attachments/assets/839fe8fc-8943-4b66-83ca-5c61c95f24d8 "
/>
<img width="974" height="530" alt="image"
src="https://github.com/user-attachments/assets/3a9a54f2-7669-40f2-b098-a3f5c183526d "
/>
<img width="974" height="530" alt="image"
src="https://github.com/user-attachments/assets/7791ab2b-c763-49a9-90a0-e91b0d8f0a26 "
/>
<img width="974" height="530" alt="image"
src="https://github.com/user-attachments/assets/4689390c-0e7f-48ae-acc7-d8e28695452f "
/>
<img width="974" height="530" alt="image"
src="https://github.com/user-attachments/assets/d0aa5217-d0e1-4f41-b663-72888d028a3a "
/>
<img width="974" height="530" alt="image"
src="https://github.com/user-attachments/assets/4fa9ff5b-a874-43d5-812f-6abe1a95a5ac "
/>
<img width="974" height="530" alt="image"
src="https://github.com/user-attachments/assets/2c8199a6-f872-46af-986f-bdf8597248f5 "
/>
<img width="974" height="530" alt="image"
src="https://github.com/user-attachments/assets/5bd9effc-7518-4f96-b2f2-7c547f32f500 "
/>
## Checklist:
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my code
- [x] I have commented on my code, particularly in hard-to-understand
areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream
modules
2026-03-06 12:20:22 +04:00