diff --git a/projects/ucap-webmessenger-app/src/app/layouts/common/dialogs/file-viewer.dialog.component.ts b/projects/ucap-webmessenger-app/src/app/layouts/common/dialogs/file-viewer.dialog.component.ts index 601e1c8d..e602a493 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/common/dialogs/file-viewer.dialog.component.ts +++ b/projects/ucap-webmessenger-app/src/app/layouts/common/dialogs/file-viewer.dialog.component.ts @@ -99,7 +99,7 @@ export class FileViewerDialogComponent implements OnInit, OnDestroy { .then(result => { if (!!result) { this.translateService - .get('common.file.savedToPath', { + .get('common.file.results.savedToPath', { path: result }) .pipe(take(1)) @@ -111,7 +111,7 @@ export class FileViewerDialogComponent implements OnInit, OnDestroy { }); } else { this.translateService - .get('common.file.failToSave') + .get('common.file.errors.failToSave') .pipe(take(1)) .subscribe(v => { this.snackBarService.open(v); @@ -120,7 +120,7 @@ export class FileViewerDialogComponent implements OnInit, OnDestroy { }) .catch(reason => { this.translateService - .get('common.file.failToSave') + .get('common.file.errors.failToSave') .pipe(take(1)) .subscribe(v => { this.snackBarService.open(v); diff --git a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/chat.component.html b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/chat.component.html index d6bb7160..866961c2 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/chat.component.html +++ b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/chat.component.html @@ -140,7 +140,7 @@ }} diff --git a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/chat.component.ts b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/chat.component.ts index 6a05c4d1..4df5e291 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/chat.component.ts +++ b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/left-sidenav/chat.component.ts @@ -258,7 +258,7 @@ export class ChatComponent implements OnInit, OnDestroy, AfterViewChecked { case 'EXIT_ROOM': { this.translateService - .get(['chat.leaveFromRoom', 'chat.confirmLeaveFromRoom']) + .get(['chat.exitFromRoom', 'chat.confirmExitFromRoom']) .pipe(take(1)) .subscribe(async values => { const result = await this.dialogService.open< @@ -267,8 +267,8 @@ export class ChatComponent implements OnInit, OnDestroy, AfterViewChecked { ConfirmDialogResult >(ConfirmDialogComponent, { data: { - title: values['chat.leaveFromRoom'], - html: values['chat.confirmLeaveFromRoom'] + title: values['chat.exitFromRoom'], + html: values['chat.confirmExitFromRoom'] } }); diff --git a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/messages.component.html b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/messages.component.html index e34ec399..e067daba 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/messages.component.html +++ b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/messages.component.html @@ -131,56 +131,56 @@ *ngIf="getShowContextMenu('OPEN_ALBUM_LIST')" (click)="onClickContextMenu('OPEN_ALBUM_LIST')" > - 앨범함 + {{ 'chat.albumBox.label' | translate }} @@ -330,34 +330,34 @@ *ngIf="isCopyableMessage(message.type)" (click)="onClickMessageContextMenu('COPY', message)" > - 대화 복사 + {{ 'chat.copyChatText' | translate }} diff --git a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/messages.component.ts b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/messages.component.ts index 6bdf2bc4..216835ff 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/messages.component.ts +++ b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/messages.component.ts @@ -109,6 +109,7 @@ import { MassDetailDialogData } from '../dialogs/chat/mass-detail.component'; import { NativeService, UCAP_NATIVE_SERVICE } from '@ucap-webmessenger/native'; +import { TranslateService } from '@ngx-translate/core'; @Component({ selector: 'app-layout-messenger-messages', @@ -204,6 +205,7 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit { private localStorageService: LocalStorageService, private commonApiService: CommonApiService, private clipboardService: ClipboardService, + private translateService: TranslateService, private dialogService: DialogService, private snackBarService: SnackBarService, @Inject(UCAP_NATIVE_SERVICE) private nativeService: NativeService, @@ -613,22 +615,28 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit { } /** Send Event */ - async onSendMessage(message: string) { + onSendMessage(message: string) { this.setEventMoreInit(); if (!this.selectedSticker) { if (!message || message.trim().length === 0) { - const result = await this.dialogService.open< - AlertDialogComponent, - AlertDialogData, - AlertDialogResult - >(AlertDialogComponent, { - width: '360px', - data: { - title: 'Alert', - message: `대화내용을 입력해주세요.` - } - }); + this.translateService + .get(['chat.errors.label', 'chat.errors.inputChatMessage']) + .pipe(take(1)) + .subscribe(async vs => { + const result = await this.dialogService.open< + AlertDialogComponent, + AlertDialogData, + AlertDialogResult + >(AlertDialogComponent, { + width: '360px', + data: { + title: vs['chat.errors.label'], + message: vs['chat.errors.inputChatMessage'] + } + }); + }); + return; } } @@ -730,17 +738,24 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit { message.trim().length > environment.productConfig.CommonSetting.masstextLength ) { - const result = await this.dialogService.open< - AlertDialogComponent, - AlertDialogData, - AlertDialogResult - >(AlertDialogComponent, { - width: '360px', - data: { - title: 'Alert', - message: `스티커를 포함할 경우 ${environment.productConfig.CommonSetting.masstextLength}자 이상 보낼 수 없습니다.` - } - }); + this.translateService + .get(['chat.errors.label', 'chat.errors.maxLengthOfMassText'], { + maxLength: environment.productConfig.CommonSetting.masstextLength + }) + .pipe(take(1)) + .subscribe(async vs => { + const result = await this.dialogService.open< + AlertDialogComponent, + AlertDialogData, + AlertDialogResult + >(AlertDialogComponent, { + width: '360px', + data: { + title: vs['chat.errors.label'], + message: vs['chat.errors.maxLengthOfMassText'] + } + }); + }); return; } @@ -856,20 +871,31 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit { }) { this.logger.debug('fileSave', value); if (value.type === 'saveAs') { - this.nativeService - .selectSaveFilePath(value.fileInfo.fileName) - .then(result => { - if (!!result && result.length > 0) { - this.saveFile(value, result); - } else { - this.snackBarService.open( - '저장경로 지정에 실패하였습니다.', - '확인' - ); - } - }) - .catch(reason => { - this.snackBarService.open('저장경로 지정에 실패하였습니다.', '확인'); + this.translateService + .get([ + 'common.file.errors.label', + 'common.file.errors.failToSpecifyPath' + ]) + .pipe(take(1)) + .subscribe(vs => { + this.nativeService + .selectSaveFilePath(value.fileInfo.fileName) + .then(result => { + if (!!result && result.length > 0) { + this.saveFile(value, result); + } else { + this.snackBarService.open( + vs['common.file.errors.failToSpecifyPath'], + vs['common.file.errors.label'] + ); + } + }) + .catch(reason => { + this.snackBarService.open( + vs['common.file.errors.failToSpecifyPath'], + vs['common.file.errors.label'] + ); + }); }); } else { this.saveFile(value); @@ -919,26 +945,33 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit { .saveFile(buffer, value.fileInfo.fileName, mimeType, savePath) .then(result => { if (!!result) { - this.snackBarService.open( - `파일이 경로[${result}]에 저장되었습니다.`, - '', - { - duration: 3000, - verticalPosition: 'bottom' - } - ); + this.translateService + .get('common.file.results.savedToPath', { + path: result + }) + .pipe(take(1)) + .subscribe(v => { + this.snackBarService.open(v, '', { + duration: 3000, + verticalPosition: 'bottom' + }); + }); } else { - this.snackBarService.open( - '파일 저장에 실패하였습니다.', - '확인' - ); + this.translateService + .get('common.file.errors.failToSave') + .pipe(take(1)) + .subscribe(v => { + this.snackBarService.open(v); + }); } }) .catch(reason => { - this.snackBarService.open( - '파일 저장에 실패하였습니다.', - '확인' - ); + this.translateService + .get('common.file.errors.failToSave') + .pipe(take(1)) + .subscribe(v => { + this.snackBarService.open(v); + }); }); }) .catch(reason => { @@ -1036,18 +1069,19 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit { }, error => { this.logger.debug('onFileSelected error', error); - this.fileUploadQueue.onUploadComplete(); - this.dialogService.open< - AlertDialogComponent, - AlertDialogData, - AlertDialogResult - >(AlertDialogComponent, { - data: { - title: 'Alert', - html: `파일전송에 실패하였습니다.
계속 문제 발생 시 관리자에게 문의하세요.` - } - }); + this.translateService + .get([ + 'common.file.errors.label', + 'common.file.errors.failToUpload' + ]) + .pipe(take(1)) + .subscribe(vs => { + this.snackBarService.open( + vs['common.file.errors.failToUpload'], + vs['common.file.errors.label'] + ); + }); }, () => { this.fileUploadQueue.onUploadComplete(); @@ -1072,7 +1106,7 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit { this.messageContextMenuTrigger.openMenu(); } - async onClickMessageContextMenu(menuType: string, message: Info) { + onClickMessageContextMenu(menuType: string, message: Info) { switch (menuType) { case 'COPY': { @@ -1084,11 +1118,20 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit { (message as Info).sentMessage ) ) { - this.snackBarService.open('클립보드에 복사되었습니다.', '', { - duration: 3000, - verticalPosition: 'top', - horizontalPosition: 'center' - }); + this.translateService + .get(['common.clipboard.results.copied']) + .pipe(take(1)) + .subscribe(async vs => { + this.snackBarService.open( + vs['common.clipboard.results.copied'], + '', + { + duration: 3000, + verticalPosition: 'top', + horizontalPosition: 'center' + } + ); + }); } } break; @@ -1104,15 +1147,20 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit { .pipe(take(1)) .subscribe(res => { if (this.clipboardService.copyFromContent(res.content)) { - this.snackBarService.open( - '클립보드에 복사되었습니다.', - '', - { - duration: 3000, - verticalPosition: 'top', - horizontalPosition: 'center' - } - ); + this.translateService + .get(['common.clipboard.results.copied']) + .pipe(take(1)) + .subscribe(async vs => { + this.snackBarService.open( + vs['common.clipboard.results.copied'], + '', + { + duration: 3000, + verticalPosition: 'top', + horizontalPosition: 'center' + } + ); + }); } }); } @@ -1125,48 +1173,53 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit { break; case 'REPLAY': { - const result = await this.dialogService.open< - CreateChatDialogComponent, - CreateChatDialogData, - CreateChatDialogResult - >(CreateChatDialogComponent, { - width: '600px', - data: { - type: UserSelectDialogType.MessageForward, - title: 'MessageForward', - ignoreRoom: [this.roomInfo] - } - }); + this.translateService + .get(['chat.forwardEventTo']) + .pipe(take(1)) + .subscribe(async vs => { + const result = await this.dialogService.open< + CreateChatDialogComponent, + CreateChatDialogData, + CreateChatDialogResult + >(CreateChatDialogComponent, { + width: '600px', + data: { + type: UserSelectDialogType.MessageForward, + title: vs['chat.forwardEventTo'], + ignoreRoom: [this.roomInfo] + } + }); - if (!!result && !!result.choice && result.choice) { - const userSeqs: number[] = []; - let roomSeq = ''; - if ( - !!result.selectedUserList && - result.selectedUserList.length > 0 - ) { - result.selectedUserList.map(user => userSeqs.push(user.seq)); - } + if (!!result && !!result.choice && result.choice) { + const userSeqs: number[] = []; + let roomSeq = ''; + if ( + !!result.selectedUserList && + result.selectedUserList.length > 0 + ) { + result.selectedUserList.map(user => userSeqs.push(user.seq)); + } - if (!!result.selectedRoom) { - roomSeq = result.selectedRoom.roomSeq; - } + if (!!result.selectedRoom) { + roomSeq = result.selectedRoom.roomSeq; + } - if (userSeqs.length > 0 || roomSeq.trim().length > 0) { - this.store.dispatch( - EventStore.forward({ - senderSeq: this.loginRes.userSeq, - req: { - roomSeq: '-999', - eventType: message.type, - sentMessage: message.sentMessage - }, - trgtUserSeqs: userSeqs, - trgtRoomSeq: roomSeq - }) - ); - } - } + if (userSeqs.length > 0 || roomSeq.trim().length > 0) { + this.store.dispatch( + EventStore.forward({ + senderSeq: this.loginRes.userSeq, + req: { + roomSeq: '-999', + eventType: message.type, + sentMessage: message.sentMessage + }, + trgtUserSeqs: userSeqs, + trgtRoomSeq: roomSeq + }) + ); + } + } + }); } break; case 'REPLAY_TO_ME': @@ -1188,51 +1241,61 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit { break; case 'DELETE': { - const result = await this.dialogService.open< - ConfirmDialogComponent, - ConfirmDialogData, - ConfirmDialogResult - >(ConfirmDialogComponent, { - width: '400px', - data: { - title: 'Delete', - html: `선택한 메시지를 삭제하시겠습니까?
삭제된 메시지는 내 대화방에서만 적용되며 상대방의 대화방에서는 삭제되지 않습니다.` - } - }); + this.translateService + .get(['chat.removeEvent', 'chat.confirmRemoveEvent']) + .pipe(take(1)) + .subscribe(async vs => { + const result = await this.dialogService.open< + ConfirmDialogComponent, + ConfirmDialogData, + ConfirmDialogResult + >(ConfirmDialogComponent, { + width: '400px', + data: { + title: vs['chat.removeEvent'], + html: vs['chat.confirmRemoveEvent'] + } + }); - if (!!result && !!result.choice && result.choice) { - this.store.dispatch( - EventStore.del({ - roomSeq: this.roomInfo.roomSeq, - eventSeq: message.seq - }) - ); - } + if (!!result && !!result.choice && result.choice) { + this.store.dispatch( + EventStore.del({ + roomSeq: this.roomInfo.roomSeq, + eventSeq: message.seq + }) + ); + } + }); } break; case 'RECALL': { - const result = await this.dialogService.open< - ConfirmDialogComponent, - ConfirmDialogData, - ConfirmDialogResult - >(ConfirmDialogComponent, { - width: '400px', - data: { - title: 'ReCall', - html: `해당 대화를 회수하시겠습니까?
상대방 대화창에서도 회수됩니다.` - } - }); + this.translateService + .get(['chat.recallEvent', 'chat.confirmRecallEvent']) + .pipe(take(1)) + .subscribe(async vs => { + const result = await this.dialogService.open< + ConfirmDialogComponent, + ConfirmDialogData, + ConfirmDialogResult + >(ConfirmDialogComponent, { + width: '400px', + data: { + title: vs['chat.recallEvent'], + html: vs['chat.confirmRecallEvent'] + } + }); - if (!!result && !!result.choice && result.choice) { - this.store.dispatch( - EventStore.cancel({ - roomSeq: this.roomInfo.roomSeq, - eventSeq: message.seq, - deviceType: this.environmentsInfo.deviceType - }) - ); - } + if (!!result && !!result.choice && result.choice) { + this.store.dispatch( + EventStore.cancel({ + roomSeq: this.roomInfo.roomSeq, + eventSeq: message.seq, + deviceType: this.environmentsInfo.deviceType + }) + ); + } + }); } break; default: @@ -1240,7 +1303,7 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit { } } - async onClickContextMenu(menuType: string) { + onClickContextMenu(menuType: string) { switch (menuType) { case 'OPEN_ALBUM_LIST': { @@ -1276,134 +1339,153 @@ export class MessagesComponent implements OnInit, OnDestroy, AfterViewInit { break; case 'ADD_MEMBER': { - const result = await this.dialogService.open< - CreateChatDialogComponent, - CreateChatDialogData, - CreateChatDialogResult - >(CreateChatDialogComponent, { - width: '600px', - data: { - type: UserSelectDialogType.EditChatMember, - title: 'Edit Chat Member', - curRoomUser: this.userInfoList.filter( - user => user.seq !== this.loginRes.userSeq && user.isJoinRoom - ) - } - }); - - if (!!result && !!result.choice && result.choice) { - const userSeqs: number[] = this.userInfoList.map(userInfo => { - if (userInfo.isJoinRoom) { - return userInfo.seq; - } - }); - if ( - !!result.selectedUserList && - result.selectedUserList.length > 0 - ) { - result.selectedUserList.forEach(user => { - if (userSeqs.indexOf(user.seq) < 0) { - userSeqs.push(user.seq); + this.translateService + .get(['chat.modifyRoomMember']) + .pipe(take(1)) + .subscribe(async vs => { + const result = await this.dialogService.open< + CreateChatDialogComponent, + CreateChatDialogData, + CreateChatDialogResult + >(CreateChatDialogComponent, { + width: '600px', + data: { + type: UserSelectDialogType.EditChatMember, + title: vs['chat.modifyRoomMember'], + curRoomUser: this.userInfoList.filter( + user => + user.seq !== this.loginRes.userSeq && user.isJoinRoom + ) } }); - } - if (userSeqs.length > 0) { - // include me - userSeqs.push(this.loginRes.userSeq); - - this.store.dispatch( - RoomStore.inviteOrOpen({ - req: { - divCd: 'Invite', - userSeqs + if (!!result && !!result.choice && result.choice) { + const userSeqs: number[] = this.userInfoList.map(userInfo => { + if (userInfo.isJoinRoom) { + return userInfo.seq; } - }) - ); - } - } + }); + if ( + !!result.selectedUserList && + result.selectedUserList.length > 0 + ) { + result.selectedUserList.forEach(user => { + if (userSeqs.indexOf(user.seq) < 0) { + userSeqs.push(user.seq); + } + }); + } + + if (userSeqs.length > 0) { + // include me + userSeqs.push(this.loginRes.userSeq); + + this.store.dispatch( + RoomStore.inviteOrOpen({ + req: { + divCd: 'Invite', + userSeqs + } + }) + ); + } + } + }); } break; case 'ADD_GROUP': { - const result = await this.dialogService.open< - SelectGroupDialogComponent, - SelectGroupDialogData, - SelectGroupDialogResult - >(SelectGroupDialogComponent, { - width: '600px', - data: { - title: 'Group Select' - } - }); + this.translateService + .get(['chat.addMemberToGroup']) + .pipe(take(1)) + .subscribe(async vs => { + const result = await this.dialogService.open< + SelectGroupDialogComponent, + SelectGroupDialogData, + SelectGroupDialogResult + >(SelectGroupDialogComponent, { + width: '600px', + data: { + title: vs['chat.addMemberToGroup'] + } + }); - if (!!result && !!result.choice && result.choice) { - if (!!result.group) { - const oldGroup: GroupDetailData = result.group; - const trgtUserSeq: number[] = []; - result.group.userSeqs.map(seq => trgtUserSeq.push(seq)); - this.userInfoList - .filter(v => result.group.userSeqs.indexOf(v.seq) < 0) - .forEach(user => { - trgtUserSeq.push(user.seq); - }); + if (!!result && !!result.choice && result.choice) { + if (!!result.group) { + const oldGroup: GroupDetailData = result.group; + const trgtUserSeq: number[] = []; + result.group.userSeqs.map(seq => trgtUserSeq.push(seq)); + this.userInfoList + .filter(v => result.group.userSeqs.indexOf(v.seq) < 0) + .forEach(user => { + trgtUserSeq.push(user.seq); + }); - this.store.dispatch( - SyncStore.updateGroupMember({ - oldGroup, - trgtUserSeq - }) - ); - } - } + this.store.dispatch( + SyncStore.updateGroupMember({ + oldGroup, + trgtUserSeq + }) + ); + } + } + }); } break; case 'EDIT_ROOM': { - const result = await this.dialogService.open< - EditChatRoomDialogComponent, - EditChatRoomDialogData, - EditChatRoomDialogResult - >(EditChatRoomDialogComponent, { - width: '600px', - data: { - title: 'Edit Chat Room', - roomInfo: this.roomInfo - } - }); - - if (!!result && !!result.choice && result.choice) { - const roomName: string = result.roomName; - const roomNameChangeTarget: string = result.roomNameChangeTarget; - const timeRoomInterval: number = result.timeRoomInterval; - const roomInfo: RoomInfo = result.roomInfo; - - // 방제목 업데이트. - this.store.dispatch( - RoomStore.update({ - req: { - roomSeq: roomInfo.roomSeq, - roomName, - receiveAlarm: roomInfo.receiveAlarm, - syncAll: - roomNameChangeTarget.toUpperCase() === 'ALL' ? true : false + this.translateService + .get(['chat.settingsOfRoom']) + .pipe(take(1)) + .subscribe(async vs => { + const result = await this.dialogService.open< + EditChatRoomDialogComponent, + EditChatRoomDialogData, + EditChatRoomDialogResult + >(EditChatRoomDialogComponent, { + width: '600px', + data: { + title: vs['chat.settingsOfRoom'], + roomInfo: this.roomInfo } - }) - ); + }); - if ( - roomInfo.isTimeRoom && - timeRoomInterval > 0 && - roomInfo.timeRoomInterval !== timeRoomInterval - ) { - this.store.dispatch( - RoomStore.updateTimeRoomInterval({ - roomSeq: roomInfo.roomSeq, - timerInterval: timeRoomInterval - }) - ); - } - } + if (!!result && !!result.choice && result.choice) { + const roomName: string = result.roomName; + const roomNameChangeTarget: string = + result.roomNameChangeTarget; + const timeRoomInterval: number = result.timeRoomInterval; + const roomInfo: RoomInfo = result.roomInfo; + + // 방제목 업데이트. + this.store.dispatch( + RoomStore.update({ + req: { + roomSeq: roomInfo.roomSeq, + roomName, + receiveAlarm: roomInfo.receiveAlarm, + syncAll: + roomNameChangeTarget.toUpperCase() === 'ALL' + ? true + : false + } + }) + ); + + if ( + roomInfo.isTimeRoom && + timeRoomInterval > 0 && + roomInfo.timeRoomInterval !== timeRoomInterval + ) { + this.store.dispatch( + RoomStore.updateTimeRoomInterval({ + roomSeq: roomInfo.roomSeq, + timerInterval: timeRoomInterval + }) + ); + } + } + }); } break; case 'CLOSE_ROOM': diff --git a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/right-drawer/album-box.component.ts b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/right-drawer/album-box.component.ts index 9a258c5e..4cb8cd26 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/right-drawer/album-box.component.ts +++ b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/right-drawer/album-box.component.ts @@ -233,7 +233,7 @@ export class AlbumBoxComponent implements OnInit, OnDestroy { .then(result => { if (!!result) { this.translateService - .get('common.file.savedToPath', { + .get('common.file.results.savedToPath', { path: result }) .pipe(take(1)) @@ -245,7 +245,7 @@ export class AlbumBoxComponent implements OnInit, OnDestroy { }); } else { this.translateService - .get('common.file.failToSave') + .get('common.file.errors.failToSave') .pipe(take(1)) .subscribe(v => { this.snackBarService.open(v); @@ -254,7 +254,7 @@ export class AlbumBoxComponent implements OnInit, OnDestroy { }) .catch(reason => { this.translateService - .get('common.file.failToSave') + .get('common.file.errors.failToSave') .pipe(take(1)) .subscribe(v => { this.snackBarService.open(v); diff --git a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/right-drawer/file-box.component.ts b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/right-drawer/file-box.component.ts index ee64a132..7dfb1cb9 100644 --- a/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/right-drawer/file-box.component.ts +++ b/projects/ucap-webmessenger-app/src/app/layouts/messenger/components/right-drawer/file-box.component.ts @@ -277,7 +277,7 @@ export class FileBoxComponent implements OnInit, OnDestroy { .then(result => { if (!!result) { this.translateService - .get('common.file.savedToPath', { + .get('common.file.results.savedToPath', { path: result }) .pipe(take(1)) @@ -289,7 +289,7 @@ export class FileBoxComponent implements OnInit, OnDestroy { }); } else { this.translateService - .get('common.file.failToSave') + .get('common.file.errors.failToSave') .pipe(take(1)) .subscribe(v => { this.snackBarService.open(v); @@ -298,7 +298,7 @@ export class FileBoxComponent implements OnInit, OnDestroy { }) .catch(reason => { this.translateService - .get('common.file.failToSave') + .get('common.file.errors.failToSave') .pipe(take(1)) .subscribe(v => { this.snackBarService.open(v); diff --git a/projects/ucap-webmessenger-app/src/assets/i18n/en.json b/projects/ucap-webmessenger-app/src/assets/i18n/en.json index e7d44171..783ffeb2 100644 --- a/projects/ucap-webmessenger-app/src/assets/i18n/en.json +++ b/projects/ucap-webmessenger-app/src/assets/i18n/en.json @@ -1,4 +1,105 @@ { + "profile": { + "open": "Open profile" + }, + "group": { + "label": "Group", + "addNew": "Add new group", + "expandMore": "Expand all groups", + "expandLess": "Collapse all groups", + "name": "Group name", + "nameFavorit": "Favorit", + "nameMyDept": "My Dept", + "nameDefault": "Default", + "favorite": "Favorite", + "unfavorite": "Unfavorite", + "removeBuddyFromGroup": "Remove buddy from group", + "copyBuddyToGroup": "Copy buddy to other group", + "moveBuddyToGroup": "Move buddy to otyer group", + "changeGroupName": "Change name of group", + "modifyGroupMember": "Modify member of group", + "removeGroup": "Remove group", + "startChatWithGroup": "Chat with group", + "sendMessageToGroup": "Send message to group", + "selectTargetGroup": "Select target group" + }, + "chat": { + "label": "Chat", + "room": "Chat room", + "searchRoomByName": "Search by room name", + "searchEventByText": "Search by chat", + "newTimerChat": "New Timer Chat", + "newChat": "New Chat", + "startChat": "Chat", + "openRoom": "Open room", + "listOfRoomMember": "List of room member", + "settingsOfRoom": "Settings of room", + "turnOnRoomAlert": "Turn on room alert", + "turnOffRoomAlert": "Turn off room alert", + "exitFromRoom": "Exit room", + "closeRoom": "Close room", + "confirmExitFromRoom": "Do you want to exit the chat room?
Exiting will delete your chat history and chat room information.", + "confirmDeleteFile": "Do you want to delete the file?
The deleted file (message) will only be applied to your chat room and will not be deleted from their chat room.", + "confirmRemoveEvent": "Do you want to delete the chat?
Deleted messages apply only to your chat room and are not deleted from their chat rooms.", + "confirmRecallEvent": "Do you want to recall the chat?
It is also retrieved from the other party's chat window.", + "typeReceived": "Received", + "typeSent": "Sent", + "sentDate": "Sent date", + "validityPeriod": "Validity period", + "forwardEventToMe": "Forward chat to me", + "forwardEventTo": "Forward chat to ...", + "forwardFileToMe": "Forward file to me", + "forwardFileTo": "Forward file to ...", + "addMemberToRoom": "Add member to room", + "addMemberToGroup": "Add member to group", + "copyChatText": "Copy chat", + "removeEvent": "Remove chat", + "recallEvent": "Recall chat", + "modifyRoomMember": "Modify chat room member", + "ejectFromRoom": "Eject from room", + "confirmEjectFromRoom": "Do you want to eject member[{{targetMember}}] from room?", + "badgeDescriptionForUnread": "There is an unconfirmed message.", + "albumBox": { + "label": "Album box" + }, + "fileBox": { + "label": "File box" + }, + "errors": { + "label": "Chat erros", + "inputChatMessage": "Please enter a chat message", + "maxLengthOfMassText": "If you include a sticker, you can't send more than {{maxLength}} characters." + }, + "detailView": "Detail View" + }, + "organization": { + "chart": "Organization chart", + "addToGroup": "Add to group", + "startChat": "Chat", + "startVideoConference": "Video conference", + "makeExtensionCall": "Make extension call", + "makeMobileCall": "Make mobile call", + "sendMessage": "Send message", + "sendSMS": "Send SMS" + }, + "message": { + "label": "Message", + "newMessage": "New message", + "sendTo": "Send message", + "placeholderForSearch": "search for name, title, content", + "messageTypeAll": "All", + "messageTypeReceiving": "Receiving", + "messageTypeOutgoing": "Outgoing", + "messageTypeReservation": "Reservation", + "searchTypeName": "Name", + "searchTypeTitle": "Title", + "searchTypeContent": "Content", + "badgeDescriptionForUnread": "There is an unconfirmed message." + }, + "notice": { + "fieldTitle": "Title", + "fieldPostDate": "Post date" + }, "common": { "search": "Search", "searchWord": "Search word", @@ -10,9 +111,6 @@ "size": "Size of file", "download": "Download", "delete": "Delete", - "saved": "The file has been saved.", - "savedToPath": "The file has been saved to path[{{v}}].", - "failToSave": "File save failed.", "downloadSelected": "Download selected", "openDownloadFolder": "Open download folder", "selectFiles": "Select files", @@ -20,6 +118,21 @@ "label": "Type of file", "images": "Images", "video": "Video" + }, + "results": { + "saved": "The file has been saved.", + "savedToPath": "The file has been saved to path[{{path}}]." + }, + "errors": { + "label": "File errors", + "failToUpload": "File upload failed.", + "failToSave": "File save failed.", + "failToSpecifyPath": "Specifing of save path failed." + } + }, + "clipboard": { + "results": { + "copied": "Copied to clipboard." } }, "messages": { @@ -632,83 +745,5 @@ "WET": "WET", "Zulu": "Zulu" } - }, - "profile": { - "open": "Open profile" - }, - "group": { - "label": "Group", - "addNew": "Add new group", - "expandMore": "Expand all groups", - "expandLess": "Collapse all groups", - "name": "Group name", - "nameFavorit": "Favorit", - "nameMyDept": "My Dept", - "nameDefault": "Default", - "favorite": "Favorite", - "unfavorite": "Unfavorite", - "removeBuddyFromGroup": "Remove buddy from group", - "copyBuddyToGroup": "Copy buddy to other group", - "moveBuddyToGroup": "Move buddy to otyer group", - "changeGroupName": "Change name of group", - "modifyGroupMember": "Modify member of group", - "removeGroup": "Remove group", - "startChatWithGroup": "Chat with group", - "sendMessageToGroup": "Send message to group", - "selectTargetGroup": "Select target group" - }, - "chat": { - "label": "Chat", - "room": "Chat room", - "searchRoomByName": "Search by room name", - "newTimerChat": "New Timer Chat", - "newChat": "New Chat", - "startChat": "Chat", - "openRoom": "Open room", - "turnOnRoomAlert": "turn on room alert", - "turnOffRoomAlert": "turn off room alert", - "leaveFromRoom": "leave room", - "confirmLeaveFromRoom": "Do you want to leave the chat room?
Leave your chat history and chat room information.", - "confirmDeleteFile": "Do you want to delete the file?
The deleted file (message) will only be applied to your chat room and will not be deleted from their chat room.", - "typeReceived": "Received", - "typeSent": "Sent", - "sentDate": "Sent date", - "validityPeriod": "Validity period", - "forwardFileToMe": "Forward file to me", - "forwardFileTo": "Forward file to ...", - "addMemberToRoom": "Add member to room", - "addMemberToGroup": "Add member to group", - "modifyRoomMember": "Modify chat room member", - "ejectFromRoom": "Eject from room", - "confirmEjectFromRoom": "Do you want to eject member[{{targetMember}}] from room?", - "badgeDescriptionForUnread": "There is an unconfirmed message." - }, - "organization": { - "chart": "Organization chart", - "addToGroup": "Add to group", - "startChat": "Chat", - "startVideoConference": "Video conference", - "makeExtensionCall": "Make extension call", - "makeMobileCall": "Make mobile call", - "sendMessage": "Send message", - "sendSMS": "Send SMS" - }, - "message": { - "label": "Message", - "newMessage": "New message", - "sendTo": "Send message", - "placeholderForSearch": "search for name, title, content", - "messageTypeAll": "All", - "messageTypeReceiving": "Receiving", - "messageTypeOutgoing": "Outgoing", - "messageTypeReservation": "Reservation", - "searchTypeName": "Name", - "searchTypeTitle": "Title", - "searchTypeContent": "Content", - "badgeDescriptionForUnread": "There is an unconfirmed message." - }, - "notice": { - "fieldTitle": "Title", - "fieldPostDate": "Post date" } } diff --git a/projects/ucap-webmessenger-app/src/assets/i18n/ko.json b/projects/ucap-webmessenger-app/src/assets/i18n/ko.json index 7a40679c..58495556 100644 --- a/projects/ucap-webmessenger-app/src/assets/i18n/ko.json +++ b/projects/ucap-webmessenger-app/src/assets/i18n/ko.json @@ -1,4 +1,105 @@ { + "profile": { + "open": "프로필 보기" + }, + "group": { + "label": "그룹", + "addNew": "새 그룹 추가", + "expandMore": "그룹 전체 열기", + "expandLess": "그룹 전체 닫기", + "name": "그룹 이름", + "nameFavorit": "즐겨찾기", + "nameMyDept": "소속부서", + "nameDefault": "기본", + "favorite": "즐겨찾기 등록", + "unfavorite": "즐겨찾기 해제", + "removeBuddyFromGroup": "이 그룹에서 삭제", + "copyBuddyToGroup": "대화 상대 복사", + "moveBuddyToGroup": "대화 상대 이동", + "changeGroupName": "그룹 이름 바꾸기", + "modifyGroupMember": "그룹 멤버 변경", + "removeGroup": "그룹 삭제", + "startChatWithGroup": "그룹 대화하기", + "sendMessageToGroup": "그룹 쪽지 보내기", + "selectTargetGroup": "대상 그룹 선택" + }, + "chat": { + "label": "대화", + "room": "대화방", + "searchRoomByName": "대화방 이름 검색", + "searchEventByText": "대화 내용 검색", + "newTimerChat": "새로운 타이머 대화", + "newChat": "새로운 대화", + "startChat": "대화하기", + "openRoom": "대화방 열기", + "listOfRoomMember": "대화 참여자 목록", + "settingsOfRoom": "대화방 설정", + "turnOnRoomAlert": "대화방 알람 켜기", + "turnOffRoomAlert": "대화방 알람 끄기", + "exitFromRoom": "대화방 나가기", + "closeRoom": "방 닫기", + "confirmExitFromRoom": "대화방을 나가시겠습니까?
나가기를 하면 대화내용 및 대화방 정보가 삭제됩니다.", + "confirmDeleteFile": "선택한 파일(메시지)를 삭제하시겠습니까?
삭제된 파일(메시지)는 내 대화방에서만 적용되며 상대방의 대화방에서는 삭제되지 않습니다.", + "confirmRemoveEvent": "선택한 메시지를 삭제하시겠습니까?
삭제된 메시지는 내 대화방에서만 적용되며 상대방의 대화방에서는 삭제되지 않습니다.", + "confirmRecallEvent": "해당 대화를 회수하시겠습니까?
상대방 대화창에서도 회수됩니다.", + "typeReceived": "수신", + "typeSent": "발신", + "sentDate": "보낸 날짜", + "validityPeriod": "유효 기간", + "forwardEventToMe": "대화 나에게 전달", + "forwardEventTo": "대화 전달", + "forwardFileToMe": "파일을 나에게 전달", + "forwardFileTo": "파일 전달", + "addMemberToRoom": "대화 상대 추가", + "addMemberToGroup": "그룹 멤버로 추가", + "copyChatText": "대화 복사", + "removeEvent": "대화 삭제", + "recallEvent": "대화 회수", + "modifyRoomMember": "대화방 멤버 편집", + "ejectFromRoom": "강퇴", + "confirmEjectFromRoom": "{{targetMember}} 님을 대화방에서 퇴장 시키겠습니까?", + "badgeDescriptionForUnread": "확인하지 않은 메시지가 있습니다.", + "albumBox": { + "label": "앨범함" + }, + "fileBox": { + "label": "파일함" + }, + "errors": { + "label": "대화 에러", + "inputChatMessage": "대화 내용을 입력해 주세요.", + "maxLengthOfMassText": "스티커를 포함할 경우 {{maxLength}}자 이상 보낼 수 없습니다." + }, + "detailView": "상세 보기" + }, + "organization": { + "chart": "조직도", + "addToGroup": "그룹에 추가", + "startChat": "대화", + "startVideoConference": "화상회의", + "makeExtensionCall": "내선번호 전화걸기", + "makeMobileCall": "모바일 전화걸기", + "sendMessage": "쪽지 보내기", + "sendSMS": "SMS 보내기" + }, + "message": { + "label": "쪽지", + "newMessage": "새로운 쪽지", + "sendTo": "쪽지 보내기", + "placeholderForSearch": "이름, 제목, 내용 검색", + "messageTypeAll": "전체", + "messageTypeReceiving": "수신", + "messageTypeOutgoing": "발신", + "messageTypeReservation": "예약", + "searchTypeName": "이름", + "searchTypeTitle": "제목", + "searchTypeContent": "내용", + "badgeDescriptionForUnread": "확인하지 않은 쪽지가 있습니다." + }, + "notice": { + "fieldTitle": "제목", + "fieldPostDate": "게시일" + }, "common": { "search": "검색", "searchWord": "검색어", @@ -10,9 +111,6 @@ "size": "파일 크기", "download": "파일 다운로드", "delete": "파일 삭제", - "saved": "파일이 저장되었습니다.", - "savedToPath": "파일이 경로[{{path}}]에 저장되었습니다.", - "failToSave": "파일 저장에 실패하였습니다.", "downloadSelected": "선택된 파일 다운로드", "openDownloadFolder": "다운로드 폴더 열기", "selectFiles": "파일을 선택하세요", @@ -20,6 +118,21 @@ "label": "파일 종류", "images": "이미지", "video": "동영상" + }, + "results": { + "saved": "파일이 저장되었습니다.", + "savedToPath": "파일이 경로[{{path}}]에 저장되었습니다." + }, + "errors": { + "label": "파일 에러", + "failToUpload": "파일 업로드에 실패하였습니다.", + "failToSave": "파일 저장에 실패하였습니다.", + "failToSpecifyPath": "저장경로 지정에 실패하였습니다." + } + }, + "clipboard": { + "results": { + "copied": "클립보드에 복사되었습니다." } }, "messages": { @@ -632,83 +745,5 @@ "WET": "WET", "Zulu": "줄루" } - }, - "profile": { - "open": "프로필 보기" - }, - "group": { - "label": "그룹", - "addNew": "새 그룹 추가", - "expandMore": "그룹 전체 열기", - "expandLess": "그룹 전체 닫기", - "name": "그룹 이름", - "nameFavorit": "즐겨찾기", - "nameMyDept": "소속부서", - "nameDefault": "기본", - "favorite": "즐겨찾기 등록", - "unfavorite": "즐겨찾기 해제", - "removeBuddyFromGroup": "이 그룹에서 삭제", - "copyBuddyToGroup": "대화 상대 복사", - "moveBuddyToGroup": "대화 상대 이동", - "changeGroupName": "그룹 이름 바꾸기", - "modifyGroupMember": "그룹 멤버 변경", - "removeGroup": "그룹 삭제", - "startChatWithGroup": "그룹 대화하기", - "sendMessageToGroup": "그룹 쪽지 보내기", - "selectTargetGroup": "대상 그룹 선택" - }, - "chat": { - "label": "대화", - "room": "대화방", - "searchRoomByName": "대화방 이름 검색", - "newTimerChat": "새로운 타이머 대화", - "newChat": "새로운 대화", - "startChat": "대화하기", - "openRoom": "대화방 열기", - "turnOnRoomAlert": "대화방 알람 켜기", - "turnOffRoomAlert": "대화방 알람 끄기", - "leaveFromRoom": "대화방 나가기", - "confirmLeaveFromRoom": "대화방을 나가시겠습니까?
나가기를 하면 대화내용 및 대화방 정보가 삭제됩니다.", - "confirmDeleteFile": "선택한 파일(메시지)를 삭제하시겠습니까?
삭제된 파일(메시지)는 내 대화방에서만 적용되며 상대방의 대화방에서는 삭제되지 않습니다.", - "typeReceived": "수신", - "typeSent": "발신", - "sentDate": "보낸 날짜", - "validityPeriod": "유효 기간", - "forwardFileToMe": "파일을 나에게 전달", - "forwardFileTo": "파일 전달", - "addMemberToRoom": "대화 상대 추가", - "addMemberToGroup": "그룹 멤버로 추가", - "modifyRoomMember": "대화방 멤버 편집", - "ejectFromRoom": "Eject from room", - "confirmEjectFromRoom": "{{targetMember}} 님을 대화방에서 퇴장 시키겠습니까?", - "badgeDescriptionForUnread": "확인하지 않은 메시지가 있습니다." - }, - "organization": { - "chart": "조직도", - "addToGroup": "그룹에 추가", - "startChat": "대화", - "startVideoConference": "화상회의", - "makeExtensionCall": "내선번호 전화걸기", - "makeMobileCall": "모바일 전화걸기", - "sendMessage": "쪽지 보내기", - "sendSMS": "SMS 보내기" - }, - "message": { - "label": "쪽지", - "newMessage": "새로운 쪽지", - "sendTo": "쪽지 보내기", - "placeholderForSearch": "이름, 제목, 내용 검색", - "messageTypeAll": "전체", - "messageTypeReceiving": "수신", - "messageTypeOutgoing": "발신", - "messageTypeReservation": "예약", - "searchTypeName": "이름", - "searchTypeTitle": "제목", - "searchTypeContent": "내용", - "badgeDescriptionForUnread": "확인하지 않은 쪽지가 있습니다." - }, - "notice": { - "fieldTitle": "제목", - "fieldPostDate": "게시일" } }