Skip to content

Commit

Permalink
fix: Update the translation for the text used in isTyping method (c…
Browse files Browse the repository at this point in the history
…hatwoot#10384)

This fix consists of translating the message when another user is typing on the other side.
---
Co-authored-by: Pranav <[email protected]>
Co-authored-by: Pranav <[email protected]>
  • Loading branch information
KokeroO authored Nov 5, 2024
1 parent 8cdbdaa commit 54740e3
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -138,10 +138,9 @@ export default {
},
typingUserNames() {
const userList = this.typingUsersList;
if (this.isAnyoneTyping) {
const userListAsName = getTypingUsersText(userList);
return userListAsName;
const [i18nKey, params] = getTypingUsersText(userList);
return this.$t(i18nKey, params);
}
return '';
Expand Down
15 changes: 8 additions & 7 deletions app/javascript/dashboard/helper/commons.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,19 +27,20 @@ export const isJSONValid = value => {

export const getTypingUsersText = (users = []) => {
const count = users.length;
const [firstUser, secondUser] = users;

if (count === 1) {
const [user] = users;
return `${user.name} is typing`;
return ['TYPING.ONE', { user: firstUser.name }];
}

if (count === 2) {
const [first, second] = users;
return `${first.name} and ${second.name} are typing`;
return [
'TYPING.TWO',
{ user: firstUser.name, secondUser: secondUser.name },
];
}

const [user] = users;
const rest = users.length - 1;
return `${user.name} and ${rest} others are typing`;
return ['TYPING.MULTIPLE', { user: firstUser.name, count: count - 1 }];
};

export const createPendingMessage = data => {
Expand Down
11 changes: 6 additions & 5 deletions app/javascript/dashboard/helper/specs/commons.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,16 @@ import {

describe('#getTypingUsersText', () => {
it('returns the correct text is there is only one typing user', () => {
expect(getTypingUsersText([{ name: 'Pranav' }])).toEqual(
'Pranav is typing'
);
expect(getTypingUsersText([{ name: 'Pranav' }])).toEqual([
'TYPING.ONE',
{ user: 'Pranav' },
]);
});

it('returns the correct text is there are two typing users', () => {
expect(
getTypingUsersText([{ name: 'Pranav' }, { name: 'Nithin' }])
).toEqual('Pranav and Nithin are typing');
).toEqual(['TYPING.TWO', { user: 'Pranav', secondUser: 'Nithin' }]);
});

it('returns the correct text is there are more than two users are typing', () => {
Expand All @@ -27,7 +28,7 @@ describe('#getTypingUsersText', () => {
{ name: 'Subin' },
{ name: 'Sojan' },
])
).toEqual('Pranav and 3 others are typing');
).toEqual(['TYPING.MULTIPLE', { user: 'Pranav', count: 3 }]);
});
});

Expand Down
5 changes: 5 additions & 0 deletions app/javascript/dashboard/i18n/locale/en/conversation.json
Original file line number Diff line number Diff line change
Expand Up @@ -335,5 +335,10 @@
"ORIGINAL_CONTENT": "Original Content",
"TRANSLATED_CONTENT": "Translated Content",
"NO_TRANSLATIONS_AVAILABLE": "No translations are available for this content"
},
"TYPING": {
"ONE": "{user} is typing",
"TWO": "{user} and {secondUser} are typing",
"MULTIPLE": "{user} and {count} others are typing"
}
}
5 changes: 5 additions & 0 deletions app/javascript/dashboard/i18n/locale/pt_BR/conversation.json
Original file line number Diff line number Diff line change
Expand Up @@ -335,5 +335,10 @@
"ORIGINAL_CONTENT": "Conteúdo original",
"TRANSLATED_CONTENT": "Conteúdo traduzido",
"NO_TRANSLATIONS_AVAILABLE": "Nenhuma tradução está disponível para este conteúdo"
},
"TYPING": {
"ONE": "{user} está digitando",
"TWO": "{user} e {secondUser} estão digitando",
"MULTIPLE": "{user} e {count} outros estão digitando"
}
}

0 comments on commit 54740e3

Please sign in to comment.