diff --git a/projects/ucap-webmessenger-app/src/app/layouts/native/native.layout.module.ts b/projects/ucap-webmessenger-app/src/app/layouts/native/native.layout.module.ts
index 4c417697..4134e647 100644
--- a/projects/ucap-webmessenger-app/src/app/layouts/native/native.layout.module.ts
+++ b/projects/ucap-webmessenger-app/src/app/layouts/native/native.layout.module.ts
@@ -8,6 +8,8 @@ import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu';
import { MatToolbarModule } from '@angular/material/toolbar';
+import { TranslateModule } from '@ngx-translate/core';
+
import { UCapUiModule } from '@ucap-webmessenger/ui';
import { UCapUiProfileModule } from '@ucap-webmessenger/ui-profile';
@@ -25,6 +27,8 @@ import { MatTooltipModule, MatBadgeModule } from '@angular/material';
MatMenuModule,
MatBadgeModule,
+ TranslateModule,
+
UCapUiModule,
UCapUiProfileModule
],
diff --git a/projects/ucap-webmessenger-app/src/app/pages/messenger/components/main.page.component.ts b/projects/ucap-webmessenger-app/src/app/pages/messenger/components/main.page.component.ts
index 5f4f9d1b..dc19cc9a 100644
--- a/projects/ucap-webmessenger-app/src/app/pages/messenger/components/main.page.component.ts
+++ b/projects/ucap-webmessenger-app/src/app/pages/messenger/components/main.page.component.ts
@@ -46,6 +46,7 @@ import {
import { MessageType } from '@ucap-webmessenger/api-message';
import { AppUserInfo, KEY_APP_USER_INFO } from '@app/types/app-user-info.type';
import { environment } from '../../../../environments/environment';
+import { TranslateService } from '@ngx-translate/core';
@Component({
selector: 'app-page-messenger-main',
@@ -77,6 +78,7 @@ export class MainPageComponent implements OnInit, OnDestroy {
private callService: CallService,
private localStorageService: LocalStorageService,
private sessionStorageService: SessionStorageService,
+ private translateService: TranslateService,
private dialogService: DialogService,
private logger: NGXLogger
) {
@@ -274,10 +276,11 @@ export class MainPageComponent implements OnInit, OnDestroy {
AlertDialogResult
>(AlertDialogComponent, {
data: {
- title: '',
- html: `전화를 걸 수 없는 사용자 입니다.`
+ title: this.translateService.instant('call.errors.label'),
+ html: this.translateService.instant('call.errors.cannotCallToUser')
}
});
+
return false;
}
@@ -291,8 +294,10 @@ export class MainPageComponent implements OnInit, OnDestroy {
>(ConfirmDialogComponent, {
width: '360px',
data: {
- title: '전화 걸기',
- html: `${calleeNumber}로 전화를 거시겠습니까?`
+ title: this.translateService.instant('call.callTo'),
+ html: this.translateService.instant('call.callWithNumber', {
+ phoneNumber: calleeNumber
+ })
}
});
@@ -320,8 +325,10 @@ export class MainPageComponent implements OnInit, OnDestroy {
AlertDialogResult
>(AlertDialogComponent, {
data: {
- title: '',
- html: `상대방 번호가 없어 전화를 걸 수 없습니다.`
+ title: this.translateService.instant('call.errors.label'),
+ html: this.translateService.instant(
+ 'call.errors.cannotCallToUserWithoutPhomeNumber'
+ )
}
});
}
@@ -339,10 +346,11 @@ export class MainPageComponent implements OnInit, OnDestroy {
AlertDialogResult
>(AlertDialogComponent, {
data: {
- title: '',
- html: `SMS 사용 권한이 없습니다.`
+ title: this.translateService.instant('sms.errors.label'),
+ html: this.translateService.instant('sms.errors.haveNoPermission')
}
});
+
return false;
}
diff --git a/projects/ucap-webmessenger-app/src/app/services/notification.service.ts b/projects/ucap-webmessenger-app/src/app/services/notification.service.ts
index 4d0a4963..2a48dbe0 100644
--- a/projects/ucap-webmessenger-app/src/app/services/notification.service.ts
+++ b/projects/ucap-webmessenger-app/src/app/services/notification.service.ts
@@ -1,7 +1,7 @@
import { delGroupSuccess, buddy2 } from './../store/messenger/sync/actions';
import { Injectable, Inject } from '@angular/core';
-import { tap, withLatestFrom } from 'rxjs/operators';
+import { tap, withLatestFrom, take } from 'rxjs/operators';
import { Store, select } from '@ngrx/store';
@@ -109,6 +109,7 @@ import { NotificationMethod } from '@ucap-webmessenger/core';
import { Dictionary } from '@ngrx/entity';
import { MessageType } from '@ucap-webmessenger/api-message';
import { LogoutInfo, KEY_LOGOUT_INFO } from '@app/types';
+import { TranslateService } from '@ngx-translate/core';
@Injectable()
export class AppNotificationService {
@@ -120,6 +121,7 @@ export class AppNotificationService {
private groupProtocolService: GroupProtocolService,
private buddyProtocolService: BuddyProtocolService,
private statusProtocolService: StatusProtocolService,
+ private translateService: TranslateService,
private umgProtocolService: UmgProtocolService,
private localStorageService: LocalStorageService,
private sessionStorageService: SessionStorageService,
@@ -235,7 +237,9 @@ export class AppNotificationService {
const notiReq: NotificationRequest = {
type: NotificationType.Event,
seq: noti.roomSeq,
- title: '메세지가 도착했습니다.',
+ title: this.translateService.instant(
+ 'notification.titleChatEventArrived'
+ ),
contents: StringUtil.convertFinalEventMessage(
noti.eventType,
noti.info.sentMessageJson
@@ -611,7 +615,9 @@ export class AppNotificationService {
const notiReq: NotificationRequest = {
type: NotificationType.Message,
seq: noti.keyId,
- title: '쪽지가 도착했습니다.',
+ title: this.translateService.instant(
+ 'notification.titleMessageArrived'
+ ),
contents: noti.text,
image: noti.senderInfo.profileImageFile,
useSound: [
diff --git a/projects/ucap-webmessenger-app/src/app/store/account/authentication/effects.ts b/projects/ucap-webmessenger-app/src/app/store/account/authentication/effects.ts
index 6f4e3641..2f3d1186 100644
--- a/projects/ucap-webmessenger-app/src/app/store/account/authentication/effects.ts
+++ b/projects/ucap-webmessenger-app/src/app/store/account/authentication/effects.ts
@@ -68,11 +68,7 @@ import { KEY_LOGIN_RES_INFO } from '@app/types/login-res-info.type';
import { ProtocolService } from '@ucap-webmessenger/protocol';
import { environment } from '../../../../environments/environment';
-import {
- ChangePasswordDialogComponent,
- ChangePasswordDialogData,
- ChangePasswordDialogResult
-} from '@app/layouts/messenger/dialogs/account/change-password.dialog.component';
+
import {
ServiceProtocolService,
UserPasswordSetResponse
@@ -80,6 +76,7 @@ import {
import { DaesangUrlInfoResponse } from '@ucap-webmessenger/api-external';
import { AppUserInfo, KEY_APP_USER_INFO } from '@app/types/app-user-info.type';
import { DaesangCipherService, WebLinkType } from '@ucap-webmessenger/daesang';
+import { TranslateService } from '@ngx-translate/core';
@Injectable()
export class Effects {
@@ -205,8 +202,8 @@ export class Effects {
ConfirmDialogResult
>(ConfirmDialogComponent, {
data: {
- title: 'Logout',
- message: '로그아웃 하시겠습니까?'
+ title: this.translateService.instant('accounts.logout'),
+ message: this.translateService.instant('accounts.confirmLogout')
}
});
@@ -259,7 +256,9 @@ export class Effects {
height: '500px',
disableClose: true,
data: {
- title: '개인정보 동의',
+ title: this.translateService.instant(
+ 'accounts.consentOfPrivacy'
+ ),
html: `
`
}
});
@@ -288,7 +287,7 @@ export class Effects {
height: '500px',
disableClose: true,
data: {
- title: '패스워드 초기화',
+ title: this.translateService.instant('accounts.resetPassword'),
html: `
`
}
});
@@ -311,8 +310,12 @@ export class Effects {
AlertDialogResult
>(AlertDialogComponent, {
data: {
- title: '비밀번호 만기',
- html: `비밀번호가 만료되었습니다.
비밀번호 변경 후 다시 로그인 하세요.`
+ title: this.translateService.instant(
+ 'accounts.passwordExpired'
+ ),
+ html: this.translateService.instant(
+ 'accounts.descriptionOfPasswordExpired'
+ )
}
});
@@ -444,8 +447,10 @@ export class Effects {
width: '360px',
disableClose: true,
data: {
- title: '비밀번호 변경',
- message: '비밀번호가 변경되었습니다. 다시 로그인하여 주십시오'
+ title: this.translateService.instant('accounts.changePassword'),
+ message: this.translateService.instant(
+ 'accounts.results.changedPassword'
+ )
}
});
@@ -462,7 +467,9 @@ export class Effects {
ofType(userPasswordSetFailure),
tap(action => {
this.snackBarService.open(
- `비밀번호 변경 중에 문제가 발생하였습니다.`,
+ this.translateService.instant(
+ 'accounts.errors.failToChangePassword'
+ ),
'',
{
duration: 3000,
@@ -487,6 +494,7 @@ export class Effects {
private protocolService: ProtocolService,
private authenticationProtocolService: AuthenticationProtocolService,
private serviceProtocolService: ServiceProtocolService,
+ private translateService: TranslateService,
private dialogService: DialogService,
private snackBarService: SnackBarService,
@Inject(UCAP_NATIVE_SERVICE) private nativeService: NativeService,
diff --git a/projects/ucap-webmessenger-app/src/app/store/messenger/chat/effects.ts b/projects/ucap-webmessenger-app/src/app/store/messenger/chat/effects.ts
index a176ca3c..8bb1f6f0 100644
--- a/projects/ucap-webmessenger-app/src/app/store/messenger/chat/effects.ts
+++ b/projects/ucap-webmessenger-app/src/app/store/messenger/chat/effects.ts
@@ -1,17 +1,16 @@
-import { Injectable, Inject } from '@angular/core';
+import { Injectable } from '@angular/core';
import { Actions, ofType, createEffect } from '@ngrx/effects';
import { Store } from '@ngrx/store';
import { NGXLogger } from 'ngx-logger';
-import { catchError, exhaustMap, map, tap, switchMap } from 'rxjs/operators';
+import { catchError, exhaustMap, map } from 'rxjs/operators';
import {
selectedMassDetail,
massTalkDownload,
massTalkDownloadFailure,
- massTalkDownloadSuccess,
- clearSelectedRoom
+ massTalkDownloadSuccess
} from './actions';
import { of } from 'rxjs';
import { SessionStorageService } from '@ucap-webmessenger/web-storage';
@@ -20,16 +19,12 @@ import { CommonApiService } from '@ucap-webmessenger/api-common';
import { KEY_LOGIN_RES_INFO } from '@app/types/login-res-info.type';
import { EnvironmentsInfo, KEY_ENVIRONMENTS_INFO } from '@app/types';
import { LoginResponse } from '@ucap-webmessenger/protocol-authentication';
-import {
- DialogService,
- AlertDialogComponent,
- AlertDialogData
-} from '@ucap-webmessenger/ui';
-import { initialState } from '../event';
+import { DialogService } from '@ucap-webmessenger/ui';
import {
MassDetailComponent,
MassDetailDialogData
} from '@app/layouts/messenger/dialogs/chat/mass-detail.component';
+import { TranslateService } from '@ngx-translate/core';
@Injectable()
export class Effects {
@@ -73,7 +68,7 @@ export class Effects {
disableClose: false,
width: '550px',
data: {
- title: 'Detail View',
+ title: this.translateService.instant('chat.detailView'),
contents: res.content
}
});
@@ -94,6 +89,7 @@ export class Effects {
private commonApiService: CommonApiService,
private sessionStorageService: SessionStorageService,
private dialogService: DialogService,
+ private translateService: TranslateService,
private store: Store
,
private logger: NGXLogger
) {}
diff --git a/projects/ucap-webmessenger-app/src/app/store/messenger/event/effects.ts b/projects/ucap-webmessenger-app/src/app/store/messenger/event/effects.ts
index ce89f127..f2a0c782 100644
--- a/projects/ucap-webmessenger-app/src/app/store/messenger/event/effects.ts
+++ b/projects/ucap-webmessenger-app/src/app/store/messenger/event/effects.ts
@@ -109,13 +109,13 @@ import {
FileType
} from '@ucap-webmessenger/protocol-file';
import { environment } from '../../../../environments/environment';
-import { RoomUserData } from '@ucap-webmessenger/protocol-sync';
import {
AlertDialogComponent,
AlertDialogResult,
AlertDialogData,
DialogService
} from '@ucap-webmessenger/ui';
+import { TranslateService } from '@ngx-translate/core';
@Injectable()
export class Effects {
@@ -370,7 +370,9 @@ export class Effects {
disableClose: true,
data: {
title: '',
- message: '더이상 검색할 내용이 없습니다.'
+ message: this.translateService.instant(
+ 'chat.noMoreEvents'
+ )
}
});
}
@@ -892,6 +894,7 @@ export class Effects {
private fileProtocolService: FileProtocolService,
private roomProtocolService: RoomProtocolService,
private sessionStorageService: SessionStorageService,
+ private translateService: TranslateService,
private dialogService: DialogService,
private logger: NGXLogger
) {}
diff --git a/projects/ucap-webmessenger-app/src/app/store/messenger/message/effects.ts b/projects/ucap-webmessenger-app/src/app/store/messenger/message/effects.ts
index c8708cb6..55ccb2c2 100644
--- a/projects/ucap-webmessenger-app/src/app/store/messenger/message/effects.ts
+++ b/projects/ucap-webmessenger-app/src/app/store/messenger/message/effects.ts
@@ -7,36 +7,14 @@ import { Store, select } from '@ngrx/store';
import { NGXLogger } from 'ngx-logger';
import { of } from 'rxjs';
-import {
- tap,
- switchMap,
- map,
- catchError,
- exhaustMap,
- withLatestFrom,
- concatMap,
- take
-} from 'rxjs/operators';
-import moment from 'moment';
-
-import * as ChatStore from '@app/store/messenger/chat';
-import * as RoomStore from '@app/store/messenger/room';
-import * as SyncStore from '@app/store/messenger/sync';
+import { switchMap, map, catchError, withLatestFrom } from 'rxjs/operators';
import { SessionStorageService } from '@ucap-webmessenger/web-storage';
import { KEY_ENVIRONMENTS_INFO } from './../../../types/environment.type';
-import { LoginInfo, KEY_LOGIN_INFO, EnvironmentsInfo } from '@app/types';
-import { Dictionary } from '@ngrx/entity';
+import { EnvironmentsInfo } from '@app/types';
import { LoginResponse } from '@ucap-webmessenger/protocol-authentication';
-import { KEY_LOGIN_RES_INFO } from '@app/types/login-res-info.type';
import { MessageStatusCode } from '@ucap-webmessenger/api';
-import { environment } from '../../../../environments/environment';
-import {
- AlertDialogComponent,
- AlertDialogResult,
- AlertDialogData,
- DialogService
-} from '@ucap-webmessenger/ui';
+import { DialogService } from '@ucap-webmessenger/ui';
import {
retrieveMessage,
retrieveMessageFailure,
@@ -65,14 +43,9 @@ import {
MessageSearchType,
DelRequest,
CancelReservationRequest,
- DetailRequest
+ DetailRequest,
+ UnreadCountRequest
} from '@ucap-webmessenger/api-message';
-import { UnreadCountRequest } from 'projects/ucap-webmessenger-api-message/src/lib/apis/unread-count';
-import {
- MessageDetailDialogComponent,
- MessageDetailDialogResult,
- MessageDetailDialogData
-} from '@app/layouts/messenger/dialogs/message/message-detail.dialog.component';
@Injectable()
export class Effects {
diff --git a/projects/ucap-webmessenger-app/src/app/store/messenger/sync/effects.ts b/projects/ucap-webmessenger-app/src/app/store/messenger/sync/effects.ts
index ad440f8f..8ffc6707 100644
--- a/projects/ucap-webmessenger-app/src/app/store/messenger/sync/effects.ts
+++ b/projects/ucap-webmessenger-app/src/app/store/messenger/sync/effects.ts
@@ -112,6 +112,7 @@ import {
AlertDialogData
} from '@ucap-webmessenger/ui';
import { UserInfoSS } from '@ucap-webmessenger/protocol-query';
+import { TranslateService } from '@ngx-translate/core';
@Injectable()
export class Effects {
@@ -422,8 +423,14 @@ export class Effects {
AlertDialogResult
>(AlertDialogComponent, {
data: {
- title: '',
- html: `${environment.productConfig.CommonSetting.maxChatRoomUser}명 이상 대화할 수 없습니다.`
+ title: this.translateService.instant('chat.errors.label'),
+ html: this.translateService.instant(
+ 'chat.errors.maxCountOfRoomMemberWith',
+ {
+ maxCount:
+ environment.productConfig.CommonSetting.maxChatRoomUser
+ }
+ )
}
});
return;
@@ -1095,6 +1102,7 @@ export class Effects {
private groupProtocolService: GroupProtocolService,
private buddyProtocolService: BuddyProtocolService,
private sessionStorageService: SessionStorageService,
+ private translateService: TranslateService,
private dialogService: DialogService,
private logger: NGXLogger
) {}
diff --git a/projects/ucap-webmessenger-app/src/assets/i18n/en.json b/projects/ucap-webmessenger-app/src/assets/i18n/en.json
index 783ffeb2..9fdbfb8a 100644
--- a/projects/ucap-webmessenger-app/src/assets/i18n/en.json
+++ b/projects/ucap-webmessenger-app/src/assets/i18n/en.json
@@ -1,6 +1,36 @@
{
+ "accounts": {
+ "login": "Login",
+ "logout": "Logout",
+ "consentOfPrivacy": "Agreement of ",
+ "changePassword": "Change password",
+ "resetPassword": "Reset password",
+ "passwordExpired": "Password expired",
+ "descriptionOfPasswordExpired": "Password has expired.
Please change your password and log in again.",
+ "confirmLogout": "Do you want to log out?",
+ "results": {
+ "changedPassword": "Password changed. Please log in again."
+ },
+ "errors": {
+ "failToChangePassword": "Failed to change password."
+ }
+ },
"profile": {
- "open": "Open profile"
+ "open": "Open profile",
+ "errors": {
+ "label": "Profile error",
+ "failToChangeProfileImage": "Failed to change profile image."
+ }
+ },
+ "settings": {
+ "label": "Settings",
+ "typeGenernal": "Genernal",
+ "typeNotification": "Notification",
+ "typeChat": "Chat"
+ },
+ "presence": {
+ "online": "Online",
+ "offline": "Offline"
},
"group": {
"label": "Group",
@@ -21,13 +51,19 @@
"removeGroup": "Remove group",
"startChatWithGroup": "Chat with group",
"sendMessageToGroup": "Send message to group",
- "selectTargetGroup": "Select target group"
+ "selectTargetGroup": "Select target group",
+ "confirmAddNew": "Do you want to add a new group?",
+ "confirmAddNewWith": "Do you want to add a new ({{nameOfGroup}}) group?",
+ "confirmAddNewWithout": "Do you want to add a new group?
Created as an empty group.",
+ "confirmRemoveBuddyFromGroup": "Do you want to remove [{{target}}] from group?
Deleting it from your profile will remove it from all groups."
},
"chat": {
"label": "Chat",
"room": "Chat room",
"searchRoomByName": "Search by room name",
"searchEventByText": "Search by chat",
+ "nameOfRoom": "Name of chat room",
+ "scopeOfChangeNameOfRoom": "Scope of Changing",
"newTimerChat": "New Timer Chat",
"newChat": "New Chat",
"startChat": "Chat",
@@ -70,7 +106,9 @@
"inputChatMessage": "Please enter a chat message",
"maxLengthOfMassText": "If you include a sticker, you can't send more than {{maxLength}} characters."
},
- "detailView": "Detail View"
+ "noMoreEvents": "There is no more messages",
+ "detailView": "Detail View",
+ "setTimer": "Set timer"
},
"organization": {
"chart": "Organization chart",
@@ -84,7 +122,9 @@
},
"message": {
"label": "Message",
- "newMessage": "New message",
+ "new": "New message",
+ "remove": "Remove message",
+ "modify": "Modify message",
"sendTo": "Send message",
"placeholderForSearch": "search for name, title, content",
"messageTypeAll": "All",
@@ -94,23 +134,76 @@
"searchTypeName": "Name",
"searchTypeTitle": "Title",
"searchTypeContent": "Content",
- "badgeDescriptionForUnread": "There is an unconfirmed message."
+ "sender": "Sender",
+ "receiver": "Receiver",
+ "receivedTime": "Received Time",
+ "sendingTime": "Sending Time",
+ "reservationTime": "Reservation Time",
+ "countOfReadUser": "count of read",
+ "countOfUnreadUser": "count of unread",
+ "badgeDescriptionForUnread": "There is an unconfirmed message.",
+ "cancelReservation": "Cancel reservation",
+ "cancelSending": "Cancel sending",
+ "confirmCancelReservation": "Do you want to cancel reservation?
Canceling will also permanently remove you from the list.",
+ "confirmCancelSending": "If you cancel the shipment, the message will be deleted from the recipient's message box.",
+ "confirmRemove": "Do you want to delete selected message(s)?",
+ "detailOfViewers": "Detail of viewers",
+ "selectRecipient": "Select recipient",
+ "results": {
+ "successForSending": "Your message has been sent.",
+ "successForReservation": "You have scheduled a message transfer.",
+ "successForModifying": "Your message has been modified."
+ },
+ "errors": {
+ "label": "Message error",
+ "failToSending": "The message failed to send.",
+ "failToModify": "The message failed to modify."
+ }
},
"notice": {
+ "label": "Notice",
"fieldTitle": "Title",
- "fieldPostDate": "Post date"
+ "fieldPostDate": "Post date",
+ "important": "Important"
+ },
+ "call": {
+ "callTo": "Make a call",
+ "callWithNumber": "Do you want to call {{phoneNumber}}?",
+ "errors": {
+ "label": "Call error",
+ "cannotCallToUser": "You cannot call that user.",
+ "cannotCallToUserWithoutPhomeNumber": "You cannot call because you do not have a contact number."
+ }
+ },
+ "sms": {
+ "errors": {
+ "label": "SMS error",
+ "haveNoPermission": "You do not have SMS permissions."
+ }
+ },
+ "notification": {
+ "titleChatEventArrived": "A message of chat has arrived.",
+ "titleMessageArrived": "A message has arrived."
},
"common": {
"search": "Search",
"searchWord": "Search word",
"searchResult": "Search result",
"useOnlyForSpecialCharacter": "Can only use Special characters: {{v}}",
- "howManyPersons": "person(s)",
+ "units": {
+ "hour": "hour",
+ "hourFrom": "hour",
+ "minute": "minute",
+ "second": "second",
+ "persons": "person(s)"
+ },
"file": {
"name": "Name of file",
"size": "Size of file",
"download": "Download",
"delete": "Delete",
+ "save": "Save",
+ "saveAll": "Save all",
"downloadSelected": "Download selected",
"openDownloadFolder": "Open download folder",
"selectFiles": "Select files",
@@ -121,13 +214,17 @@
},
"results": {
"saved": "The file has been saved.",
- "savedToPath": "The file has been saved to path[{{path}}]."
+ "savedAll": "All file(s) have(has) been saved.",
+ "savedToPath": "The file has been saved to path[{{path}}].",
+ "downloadInProgress": "Download is in progress."
},
"errors": {
"label": "File errors",
"failToUpload": "File upload failed.",
"failToSave": "File save failed.",
- "failToSpecifyPath": "Specifing of save path failed."
+ "failToSaveSomeOfAll": "Some of file(s) save failed",
+ "failToSpecifyPath": "Specifing of save path failed.",
+ "expired": "This file has expired"
}
},
"clipboard": {
@@ -140,8 +237,18 @@
"no": "No",
"confirm": "Confirm",
"select": "Select",
+ "selectAll": "Select all",
"unselect": "Unselect",
- "searching": "Searching"
+ "searching": "Searching",
+ "cancel": "Cancel",
+ "close": "Close",
+ "modify": "Modify",
+ "remove": "Remove",
+ "apply": "Apply",
+ "Minimize window": "창 최소화",
+ "Maxmize window": "창 최대화",
+ "Restore window": "창 이전 크기",
+ "Close window": "창 닫기"
},
"paginator": {
"itemsPerPage": "Items per page",
@@ -150,6 +257,10 @@
"firstPage": "First page",
"lastPage": "Last page"
},
+ "pronoun": {
+ "me": "Me",
+ "all": "All"
+ },
"timezone": {
"Africa/Abidjan": "Africa/Abidjan",
"Africa/Accra": "Africa/Accra",
diff --git a/projects/ucap-webmessenger-app/src/assets/i18n/ko.json b/projects/ucap-webmessenger-app/src/assets/i18n/ko.json
index 58495556..477316f1 100644
--- a/projects/ucap-webmessenger-app/src/assets/i18n/ko.json
+++ b/projects/ucap-webmessenger-app/src/assets/i18n/ko.json
@@ -1,6 +1,36 @@
{
+ "accounts": {
+ "login": "로그인",
+ "logout": "로그아웃",
+ "consentOfPrivacy": "개인정보 동의",
+ "changePassword": "비밀번호 변경",
+ "resetPassword": "비밀번호 초기화",
+ "passwordExpired": "비밀번호 만기",
+ "descriptionOfPasswordExpired": "비밀번호가 만료되었습니다.
비밀번호 변경 후 다시 로그인 하세요.",
+ "confirmLogout": "로그아웃 하시겠습니까?",
+ "results": {
+ "changedPassword": "비밀번호가 변경되었습니다. 다시 로그인하여 주십시오"
+ },
+ "errors": {
+ "failToChangePassword": "비밀번호 변경에 실패하였습니다."
+ }
+ },
"profile": {
- "open": "프로필 보기"
+ "open": "프로필 보기",
+ "errors": {
+ "label": "프로필 에러",
+ "failToChangeProfileImage": "프로필 이미지 변경에 실패 하였습니다."
+ }
+ },
+ "settings": {
+ "label": "설정",
+ "typeGenernal": "일반",
+ "typeNotification": "알림",
+ "typeChat": "대화"
+ },
+ "presence": {
+ "online": "온라인",
+ "offline": "부재중"
},
"group": {
"label": "그룹",
@@ -13,7 +43,7 @@
"nameDefault": "기본",
"favorite": "즐겨찾기 등록",
"unfavorite": "즐겨찾기 해제",
- "removeBuddyFromGroup": "이 그룹에서 삭제",
+ "removeBuddyFromGroup": "그룹에서 삭제",
"copyBuddyToGroup": "대화 상대 복사",
"moveBuddyToGroup": "대화 상대 이동",
"changeGroupName": "그룹 이름 바꾸기",
@@ -21,13 +51,19 @@
"removeGroup": "그룹 삭제",
"startChatWithGroup": "그룹 대화하기",
"sendMessageToGroup": "그룹 쪽지 보내기",
- "selectTargetGroup": "대상 그룹 선택"
+ "selectTargetGroup": "대상 그룹 선택",
+ "confirmAddNew": "새로운 그룹을 추가하시겠습니까?",
+ "confirmAddNewWith": "새로운 그룹({{nameOfGroup}})을 추가하시겠습니까?",
+ "confirmAddNewWithout": "새로운 그룹을 추가하시겠습니까?
빈 그룹으로 생성됩니다.",
+ "confirmRemoveBuddyFromGroup": "[{{target}}]를 그룹에서 삭제하시겠습니까?
프로필에서 삭제하면 모든 그룹에서 삭제됩니다."
},
"chat": {
"label": "대화",
"room": "대화방",
"searchRoomByName": "대화방 이름 검색",
"searchEventByText": "대화 내용 검색",
+ "nameOfRoom": "대화방 이름",
+ "scopeOfChangeNameOfRoom": "변경 범위",
"newTimerChat": "새로운 타이머 대화",
"newChat": "새로운 대화",
"startChat": "대화하기",
@@ -68,9 +104,12 @@
"errors": {
"label": "대화 에러",
"inputChatMessage": "대화 내용을 입력해 주세요.",
- "maxLengthOfMassText": "스티커를 포함할 경우 {{maxLength}}자 이상 보낼 수 없습니다."
+ "maxLengthOfMassText": "스티커를 포함할 경우 {{maxLength}}자 이상 보낼 수 없습니다.",
+ "maxCountOfRoomMemberWith": "{{maxCount}}명 이상 대화할 수 없습니다."
},
- "detailView": "상세 보기"
+ "noMoreEvents": "더이상 검색할 내용이 없습니다.",
+ "detailView": "상세 보기",
+ "setTimer": "타이머 설정"
},
"organization": {
"chart": "조직도",
@@ -84,7 +123,9 @@
},
"message": {
"label": "쪽지",
- "newMessage": "새로운 쪽지",
+ "new": "새로운 쪽지",
+ "remove": "쪽지 삭제",
+ "modify": "쪽지 수정",
"sendTo": "쪽지 보내기",
"placeholderForSearch": "이름, 제목, 내용 검색",
"messageTypeAll": "전체",
@@ -94,23 +135,76 @@
"searchTypeName": "이름",
"searchTypeTitle": "제목",
"searchTypeContent": "내용",
- "badgeDescriptionForUnread": "확인하지 않은 쪽지가 있습니다."
+ "sender": "보낸 사람",
+ "receiver": "받는 사람",
+ "receivedTime": "받은 시간",
+ "sendingTime": "보낸 시간",
+ "reservationTime": "발송 예정 시간",
+ "countOfReadUser": "읽은 사람",
+ "countOfUnreadUser": "읽은 않은 사람",
+ "badgeDescriptionForUnread": "확인하지 않은 쪽지가 있습니다.",
+ "cancelReservation": "예약 발송 취소",
+ "cancelSending": "발송 취소",
+ "confirmCancelReservation": "예약발송을 취소 하시겠습니까?
취소하면 목록에서도 영구 삭제됩니다.",
+ "confirmCancelSending": "발송 취소를 하시면 받는 사람의 쪽지함에서 쪽지가 삭제됩니다.",
+ "confirmRemove": "선택한 쪽지를 삭제하시겠습니까?",
+ "detailOfViewers": "읽음 확인",
+ "selectRecipient": "수신자 선택",
+ "results": {
+ "successForSending": "쪽지를 전송하였습니다.",
+ "successForReservation": "쪽지 전송을 예약 하였습니다.",
+ "successForModifying": "쪽지를 수정하였습니다."
+ },
+ "errors": {
+ "label": "쪽지 에러",
+ "failToSending": "쪽지를 전송에 실패 하였습니다.",
+ "failToModify": "쪽지 수정에 실패 하였습니다."
+ }
},
"notice": {
+ "label": "공지사항",
"fieldTitle": "제목",
- "fieldPostDate": "게시일"
+ "fieldPostDate": "게시일",
+ "important": "중요"
+ },
+ "call": {
+ "callTo": "전화 걸기",
+ "callWithNumber": "{{phoneNumber}}로 전화를 거시겠습니까?",
+ "errors": {
+ "label": "전화 에러",
+ "cannotCallToUser": "전화를 걸 수 없는 사용자 입니다.",
+ "cannotCallToUserWithoutPhomeNumber": "상대방 번호가 없어 전화를 걸 수 없습니다."
+ }
+ },
+ "sms": {
+ "errors": {
+ "label": "SMS 에러",
+ "haveNoPermission": "SMS 사용 권한이 없습니다."
+ }
+ },
+ "notification": {
+ "titleChatEventArrived": "메세지가 도착했습니다.",
+ "titleMessageArrived": "쪽지가 도착했습니다."
},
"common": {
"search": "검색",
"searchWord": "검색어",
"searchResult": "검색 결과",
"useOnlyForSpecialCharacter": "특수문자는 {{specialCharacter}}만 사용할 수 있습니다.",
- "howManyPersons": "명",
+ "units": {
+ "hour": "시",
+ "hourFrom": "시간",
+ "minute": "분",
+ "second": "초",
+ "persons": "명"
+ },
"file": {
"name": "파일 이름",
"size": "파일 크기",
"download": "파일 다운로드",
"delete": "파일 삭제",
+ "save": "파일 저장",
+ "saveAll": "파일 모두 저장",
"downloadSelected": "선택된 파일 다운로드",
"openDownloadFolder": "다운로드 폴더 열기",
"selectFiles": "파일을 선택하세요",
@@ -121,13 +215,17 @@
},
"results": {
"saved": "파일이 저장되었습니다.",
- "savedToPath": "파일이 경로[{{path}}]에 저장되었습니다."
+ "savedAll": "모든 파일이 저장되었습니다.",
+ "savedToPath": "파일이 경로[{{path}}]에 저장되었습니다.",
+ "downloadInProgress": "다운로드가 진행중입니다."
},
"errors": {
"label": "파일 에러",
"failToUpload": "파일 업로드에 실패하였습니다.",
"failToSave": "파일 저장에 실패하였습니다.",
- "failToSpecifyPath": "저장경로 지정에 실패하였습니다."
+ "failToSaveSomeOfAll": "파일 저장 중 일부 파일이 실패하였습니다.",
+ "failToSpecifyPath": "저장경로 지정에 실패하였습니다.",
+ "expired": "기간이 만료된 파일입니다"
}
},
"clipboard": {
@@ -136,12 +234,22 @@
}
},
"messages": {
- "yes": "네",
+ "yes": "예",
"no": "아니오",
"confirm": "확인",
"select": "선택",
+ "selectAll": "전체 선택",
"unselect": "선택 해제",
- "searching": "검색중"
+ "searching": "검색중",
+ "cancel": "취소",
+ "close": "닫기",
+ "modify": "수정",
+ "remove": "삭제",
+ "apply": "적용",
+ "minimizeWindow": "창 최소화",
+ "maxmizeWindow": "창 최대화",
+ "restoreWindow": "창 이전 크기",
+ "closeWindow": "창 닫기"
},
"paginator": {
"itemsPerPage": "페이지별 갯수",
@@ -150,6 +258,10 @@
"firstPage": "처음 페이지",
"lastPage": "마지막 페이지"
},
+ "pronoun": {
+ "me": "나",
+ "all": "전체"
+ },
"timezone": {
"Africa/Abidjan": "아프리카/아비 장",
"Africa/Accra": "아프리카/아크라",