diff --git a/website/server/controllers/api-v3/quests.js b/website/server/controllers/api-v3/quests.js index d0f96b8a80..4153244620 100644 --- a/website/server/controllers/api-v3/quests.js +++ b/website/server/controllers/api-v3/quests.js @@ -79,7 +79,7 @@ api.inviteToQuest = { 'party._id': group._id, _id: {$ne: user._id}, }) - .select('auth.facebook auth.google auth.local preferences.emailNotifications profile.name pushDevices') + .select('auth.facebook auth.google auth.local preferences.emailNotifications preferences.pushNotifications preferences.language profile.name pushDevices') .exec(); group.markModified('quest'); @@ -124,12 +124,11 @@ api.inviteToQuest = { sendPushNotification( member, { - title: res.t('questInvitationTitle'), - message: res.t('questInvitationInfo', {quest: quest.text(req.language)}), + title: res.t('questInvitationTitle', member.preferences.language), + message: res.t('questInvitationInfo', {quest: quest.text(member.preferences.language)}, member.preferences.language), identifier: 'questInvitation', category: 'questInvitation', } - ); } diff --git a/website/server/libs/inbox/index.js b/website/server/libs/inbox/index.js index dd9a4cb4b2..2f2e4b6575 100644 --- a/website/server/libs/inbox/index.js +++ b/website/server/libs/inbox/index.js @@ -18,8 +18,8 @@ export async function sentMessage (sender, receiver, message, translate) { sendPushNotification( receiver, { - title: translate('newPM'), - message: translate('newPMInfo', {name: getUserInfo(sender, ['name']).name, message}), + title: translate('newPM', receiver.preferences.language), + message: translate('newPMInfo', {name: getUserInfo(sender, ['name']).name, message}, receiver.preferences.language), identifier: 'newPM', category: 'newPM', payload: {replyTo: sender._id}, diff --git a/website/server/libs/invites/index.js b/website/server/libs/invites/index.js index d5225338ef..2429794e68 100644 --- a/website/server/libs/invites/index.js +++ b/website/server/libs/invites/index.js @@ -25,7 +25,7 @@ function sendInvitePushNotification (userToInvite, groupLabel, group, publicGuil userToInvite, { title: group.name, - message: res.t(identifier), + message: res.t(identifier, userToInvite.preferences.language), identifier, payload: {groupID: group._id, publicGuild}, } diff --git a/website/server/models/challenge.js b/website/server/models/challenge.js index 62ab8716a0..97b37338d8 100644 --- a/website/server/models/challenge.js +++ b/website/server/models/challenge.js @@ -346,7 +346,7 @@ schema.methods.closeChal = async function closeChal (broken = {}) { sendPushNotification(savedWinner, { title: challenge.name, - message: shared.i18n.t('wonChallenge'), + message: shared.i18n.t('wonChallenge', savedWinner.preferences.language), identifier: 'wonChallenge', }); } diff --git a/website/server/models/group.js b/website/server/models/group.js index 568e8530ac..e348bcded0 100644 --- a/website/server/models/group.js +++ b/website/server/models/group.js @@ -617,7 +617,7 @@ schema.methods.startQuest = async function startQuest (user) { await User.find({ _id: {$in: Object.keys(this.quest.members)}, }) - .select('party.quest party._id items.quests auth preferences.emailNotifications preferences.pushNotifications pushDevices profile.name webhooks') + .select('party.quest party._id items.quests auth preferences.emailNotifications preferences.pushNotifications preferences.language pushDevices profile.name webhooks') .lean() .exec() .then(partyMembers => { @@ -685,8 +685,6 @@ schema.methods.startQuest = async function startQuest (user) { await newMessage.save(); const membersToEmail = []; - const pushTitle = quest.text(); - const pushMessage = `${shared.i18n.t('questStarted')}: ${quest.text()}`; // send notifications and webhooks in the background without blocking members.forEach(member => { @@ -698,9 +696,10 @@ schema.methods.startQuest = async function startQuest (user) { // send push notifications and filter users that disabled emails if (member.preferences.pushNotifications.questStarted !== false) { + const memberLang = member.preferences.language; sendPushNotification(member, { - title: pushTitle, - message: pushMessage, + title: quest.text(memberLang), + message: `${shared.i18n.t('questStarted', memberLang)}: ${quest.text(memberLang)}`, identifier: 'questStarted', }); }