From ef70deee14d7c7eed2dcafab08fd31bfed135738 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=87=91=E6=9D=91=20=E5=8B=87=E7=A5=90?= Date: Wed, 23 Apr 2025 02:05:10 +0000 Subject: [PATCH] =?UTF-8?q?Merged=20PR=201048:=20=E8=8B=B1=E8=AA=9E?= =?UTF-8?q?=E4=BB=A5=E5=A4=96=E3=81=AE=E8=A8=80=E8=AA=9E=E9=81=B8=E6=8A=9E?= =?UTF-8?q?=E6=99=82=E3=80=81=E4=B8=80=E9=83=A8=E3=81=8C=E8=8B=B1=E8=AA=9E?= =?UTF-8?q?=E3=81=AE=E3=81=BE=E3=81=BE=E3=81=A8=E3=81=AA=E3=81=A3=E3=81=A6?= =?UTF-8?q?=E3=81=84=E3=82=8B=5F=E5=AE=9F=E8=A3=85=E3=83=BB=E5=8D=98?= =?UTF-8?q?=E4=BD=93=E3=83=86=E3=82=B9=E3=83=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 概要 商用環境にて、一部リテラルが別言語にした場合も英語表記ののままというご指摘がありました。 指摘対象の修正と他にも漏れがないか調査して合わせて修正しております。 ### チケット [OMDS_IS-492 英語以外の言語選択時、一部が英語のままとなっている](https://so-net.backlog.jp/board/OMDS_IS?selectedIssueKey=OMDS_IS-492&category=1074456203) ### 修正内容 修正内容はは以下の内容となっております - ユーザー一覧画面 - ユーザーのRoleについて:リテラル表 99,100,107行 - ライセンス割り当てステータスについて : 540~543行目 - タスク一覧画面 - タスクのステータスについて:160~164行目 - タスクのPriorityとPriorityのステータスについて: 135行目、544、545行目 [単体テスト](https://ndstokyo.sharepoint.com/:x:/r/sites/SNC-OMDS/Shared%20Documents/%E4%BF%9D%E5%AE%88/10_%E3%83%86%E3%82%B9%E3%83%88%E9%96%A2%E9%80%A3/%E5%8D%98%E4%BD%93%E3%83%86%E3%82%B9%E3%83%88/OMDS_IS-492%20%E8%8B%B1%E8%AA%9E%E4%BB%A5%E5%A4%96%E3%81%AE%E8%A8%80%E8%AA%9E%E9%81%B8%E6%8A%9E%E6%99%82%E3%80%81%E4%B8%80%E9%83%A8%E3%81%8C%E8%8B%B1%E8%AA%9E%E3%81%AE%E3%81%BE%E3%81%BE%E3%81%A8%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B/%E5%8D%98%E4%BD%93%E3%83%86%E3%82%B9%E3%83%88%E3%82%A8%E3%83%93%E3%83%87%E3%83%B3%E3%82%B9_OMDS_IS-492_%E8%8B%B1%E8%AA%9E%E4%BB%A5%E5%A4%96%E3%81%AE%E8%A8%80%E8%AA%9E%E9%81%B8%E6%8A%9E%E6%99%82%E3%80%81%E4%B8%80%E9%83%A8%E3%81%8C%E8%8B%B1%E8%AA%9E%E3%81%AE%E3%81%BE%E3%81%BE%E3%81%A8%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B.xlsx?d=w3018e2715f4c402f83f23581ffbcf0c2&csf=1&web=1&e=DgoO0B) [リテラル表](https://ndstokyo.sharepoint.com/:x:/r/sites/SNC-OMDS/Shared%20Documents/%E4%BF%9D%E5%AE%88/10_%E3%83%86%E3%82%B9%E3%83%88%E9%96%A2%E9%80%A3/%E5%8D%98%E4%BD%93%E3%83%86%E3%82%B9%E3%83%88/OMDS_IS-492%20%E8%8B%B1%E8%AA%9E%E4%BB%A5%E5%A4%96%E3%81%AE%E8%A8%80%E8%AA%9E%E9%81%B8%E6%8A%9E%E6%99%82%E3%80%81%E4%B8%80%E9%83%A8%E3%81%8C%E8%8B%B1%E8%AA%9E%E3%81%AE%E3%81%BE%E3%81%BE%E3%81%A8%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B/%E3%83%A9%E3%83%99%E3%83%AB%E3%83%BB%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E7%AE%A1%E7%90%86_dictation_20250401_2.xlsx?d=w4f470fdc3aa948caae53c1c735295677&csf=1&web=1&e=AgX8ga) 画面のみの修正のためユニットテストは実施しておりません --- .../src/features/user/constants.ts | 15 --- .../src/features/user/selectors.ts | 9 +- .../src/pages/DictationPage/index.tsx | 117 +++++++++++------- .../src/pages/UserListPage/index.tsx | 50 +++++--- dictation_client/src/translation/de.json | 10 +- dictation_client/src/translation/en.json | 10 +- dictation_client/src/translation/es.json | 10 +- dictation_client/src/translation/fr.json | 12 +- 8 files changed, 140 insertions(+), 93 deletions(-) diff --git a/dictation_client/src/features/user/constants.ts b/dictation_client/src/features/user/constants.ts index 86f318c..27bb5dd 100644 --- a/dictation_client/src/features/user/constants.ts +++ b/dictation_client/src/features/user/constants.ts @@ -1,5 +1,3 @@ -import type { RoleType } from "./types"; - // LicenseStatusTypeの値を定数オブジェクトにする export const LICENSE_STATUS = { NORMAL: "Normal", @@ -13,16 +11,3 @@ export const LICENSE_ALLOCATE_STATUS = { ALLOCATED: "Allocated", NOTALLOCATED: "Not Allocated", } as const; - -// NoLicenseの表示 -export const NO_LICENSE = "No License" as const; - -// ライセンスが割り当てられている場合の表示 -export const LICENSE_NORMAL = "License Assigned" as const; - -// Roleの表示名 -export const ROLE_DISPLAY_NAME: Record = { - author: "Author", - typist: "Transcriptionist", - none: "None", -} as const; diff --git a/dictation_client/src/features/user/selectors.ts b/dictation_client/src/features/user/selectors.ts index 8cd9bdf..de7e2ee 100644 --- a/dictation_client/src/features/user/selectors.ts +++ b/dictation_client/src/features/user/selectors.ts @@ -9,11 +9,7 @@ import { isLicenseStatusType, isRoleType, } from "./types"; -import { - LICENSE_STATUS, - LICENSE_ALLOCATE_STATUS, - ROLE_DISPLAY_NAME, -} from "./constants"; +import { LICENSE_STATUS, LICENSE_ALLOCATE_STATUS } from "./constants"; export const selectInputValidationErrors = (state: RootState) => { const { name, email, role, authorId, encryption, encryptionPassword } = @@ -180,8 +176,7 @@ export const selectUserViews = (state: RootState): UserView[] => { prompt: convertedValues.prompt, encryption: convertedValues.encryption, authorId: convertedValues.authorId, - // roleに応じて表示名を変更する - role: ROLE_DISPLAY_NAME[role], + role, licenseStatus: convertedLicenseStatus, expiration: convertedExpiration, remaining: convertedRemaining, diff --git a/dictation_client/src/pages/DictationPage/index.tsx b/dictation_client/src/pages/DictationPage/index.tsx index d9c5c4f..e5769a8 100644 --- a/dictation_client/src/pages/DictationPage/index.tsx +++ b/dictation_client/src/pages/DictationPage/index.tsx @@ -439,8 +439,9 @@ const DictationPage: React.FC = (): JSX.Element => { dispatch(listTypistsAsync()); dispatch(listTypistGroupsAsync()); - const url = `${import.meta.env.VITE_DESK_TOP_APP_SCHEME - }:playback?audioId=${audioFileId}`; + const url = `${ + import.meta.env.VITE_DESK_TOP_APP_SCHEME + }:playback?audioId=${audioFileId}`; const a = document.createElement("a"); a.href = url; document.body.appendChild(a); @@ -922,6 +923,41 @@ const DictationPage: React.FC = (): JSX.Element => { })(); }, [dispatch]); + const getTaskStatus = (taskStatus: string): string => { + switch (taskStatus) { + case STATUS.UPLOADED: + return t(getTranslationID("dictationPage.label.uploaded")); + case STATUS.PENDING: + return t(getTranslationID("dictationPage.label.pending")); + case STATUS.FINISHED: + return t(getTranslationID("dictationPage.label.finished")); + case STATUS.INPROGRESS: + return t(getTranslationID("dictationPage.label.inProgress")); + case STATUS.BACKUP: + return t(getTranslationID("dictationPage.label.backup")); + default: + return taskStatus; + } + }; + + const getTaskStatusIcon = (taskStatus: string): JSX.Element => { + switch (taskStatus) { + case STATUS.UPLOADED: + return Uploaded; + case STATUS.PENDING: + return Pending; + case STATUS.FINISHED: + return Finished; + case STATUS.INPROGRESS: + return InProgress; + case STATUS.BACKUP: + return Backup; + default: + // 予期せぬステータスの場合、アイコンを表示しない + return ; + } + }; + return ( <> @@ -1098,8 +1134,9 @@ const DictationPage: React.FC = (): JSX.Element => { {/* eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */}