From 273d88262c368869be0c44d8242fa7ba238d40a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pau=20Ferrer=20Oca=C3=B1a?= Date: Tue, 10 Sep 2019 16:40:53 +0200 Subject: [PATCH] MOBILE-3142 chat: Translate said to string --- scripts/langindex.json | 3 +++ src/addon/mod/chat/lang/en.json | 1 + src/addon/mod/chat/pages/chat/chat.html | 2 +- src/addon/mod/chat/pages/chat/chat.ts | 2 +- src/addon/mod/chat/providers/helper.ts | 20 +++++++++++++++++++- src/assets/lang/en.json | 1 + 6 files changed, 26 insertions(+), 3 deletions(-) diff --git a/scripts/langindex.json b/scripts/langindex.json index e8a555bb2..0ed0824bc 100644 --- a/scripts/langindex.json +++ b/scripts/langindex.json @@ -433,14 +433,17 @@ "addon.mod_chat.errorwhilegettingchatusers": "local_moodlemobileapp", "addon.mod_chat.errorwhileretrievingmessages": "local_moodlemobileapp", "addon.mod_chat.errorwhilesendingmessage": "local_moodlemobileapp", + "addon.mod_chat.messagebeepseveryone": "chat", "addon.mod_chat.messagebeepsyou": "chat", "addon.mod_chat.messageenter": "chat", "addon.mod_chat.messageexit": "chat", "addon.mod_chat.messages": "chat", + "addon.mod_chat.messageyoubeep": "chat", "addon.mod_chat.modulenameplural": "chat", "addon.mod_chat.mustbeonlinetosendmessages": "local_moodlemobileapp", "addon.mod_chat.nomessages": "chat", "addon.mod_chat.nosessionsfound": "local_moodlemobileapp", + "addon.mod_chat.saidto": "chat", "addon.mod_chat.send": "chat", "addon.mod_chat.sessionstart": "chat", "addon.mod_chat.showincompletesessions": "local_moodlemobileapp", diff --git a/src/addon/mod/chat/lang/en.json b/src/addon/mod/chat/lang/en.json index 04c334410..ad8f86ce8 100644 --- a/src/addon/mod/chat/lang/en.json +++ b/src/addon/mod/chat/lang/en.json @@ -19,6 +19,7 @@ "mustbeonlinetosendmessages": "You must be online to send messages.", "nomessages": "No messages yet", "nosessionsfound": "No sessions found", + "saidto": "said to", "send": "Send", "sessionstart": "The next chat session will start on {{$a.date}}, ({{$a.fromnow}} from now)", "showincompletesessions": "Show incomplete sessions", diff --git a/src/addon/mod/chat/pages/chat/chat.html b/src/addon/mod/chat/pages/chat/chat.html index 2e08fe598..7e3de79b3 100644 --- a/src/addon/mod/chat/pages/chat/chat.html +++ b/src/addon/mod/chat/pages/chat/chat.html @@ -69,7 +69,7 @@

{{ 'addon.mod_chat.mustbeonlinetosendmessages' | translate }}

- +
diff --git a/src/addon/mod/chat/pages/chat/chat.ts b/src/addon/mod/chat/pages/chat/chat.ts index 880d2cd2a..de3640946 100644 --- a/src/addon/mod/chat/pages/chat/chat.ts +++ b/src/addon/mod/chat/pages/chat/chat.ts @@ -133,7 +133,7 @@ export class AddonModChatChatPage { modal.onDidDismiss((data) => { if (data && data.talkTo) { - this.newMessage = `To ${data.talkTo}: ` + this.sendMessageForm.message; + this.newMessage = `To ${data.talkTo}: ` + (this.sendMessageForm.message || ''); } if (data && data.beepTo) { this.sendMessage('', data.beepTo); diff --git a/src/addon/mod/chat/providers/helper.ts b/src/addon/mod/chat/providers/helper.ts index 6e7b7fedf..9c88bed68 100644 --- a/src/addon/mod/chat/providers/helper.ts +++ b/src/addon/mod/chat/providers/helper.ts @@ -13,6 +13,8 @@ // limitations under the License. import { Injectable } from '@angular/core'; +import { TranslateService } from '@ngx-translate/core'; +import { CoreTextUtilsProvider } from '@providers/utils/text'; import * as moment from 'moment'; import AddonModChatMessageWithUserData from './chat'; @@ -22,6 +24,13 @@ import AddonModChatMessageWithUserData from './chat'; @Injectable() export class AddonModChatHelperProvider { + static patternto = new RegExp(/^To\s([^:]+):(.*)/); + + constructor(protected translate: TranslateService, + protected textUtils: CoreTextUtilsProvider) { + + } + /** * Give some format info about messages. * @@ -30,7 +39,10 @@ export class AddonModChatHelperProvider { * @param prevMessage Previous Message in a discussion (if any). * @return Message with additional info. */ - formatMessage(currentUserId: number, message: AddonModChatMessageWithUserData, prevMessage?: any): any { + formatMessage(currentUserId: number, message: AddonModChatMessageWithUserData, + prevMessage?: AddonModChatMessageWithUserData): any { + message.message = message.message.trim(); + message.showDate = this.showDate(message, prevMessage); message.beep = message.message.substr(0, 5) == 'beep ' && message.message.substr(5).trim(); @@ -41,6 +53,12 @@ export class AddonModChatHelperProvider { message.message = message.message.substr(4).trim(); } + if (!message.special && message.message.match(AddonModChatHelperProvider.patternto)) { + const matches = message.message.match(AddonModChatHelperProvider.patternto); + message.message = '' + this.translate.instant('addon.mod_chat.saidto') + + ' ' + matches[1] + ': ' + matches[2]; + } + message.showUserData = this.showUserData(currentUserId, message, prevMessage); prevMessage ? prevMessage.showTail = this.showTail(prevMessage, message) : null; diff --git a/src/assets/lang/en.json b/src/assets/lang/en.json index 2d744257b..58ceb5175 100644 --- a/src/assets/lang/en.json +++ b/src/assets/lang/en.json @@ -442,6 +442,7 @@ "addon.mod_chat.mustbeonlinetosendmessages": "You must be online to send messages.", "addon.mod_chat.nomessages": "No messages yet", "addon.mod_chat.nosessionsfound": "No sessions found", + "addon.mod_chat.saidto": "said to", "addon.mod_chat.send": "Send", "addon.mod_chat.sessionstart": "The next chat session will start on {{$a.date}}, ({{$a.fromnow}} from now)", "addon.mod_chat.showincompletesessions": "Show incomplete sessions",