This commit is contained in:
makabe 2024-02-05 09:37:06 +09:00
commit cf30b97a16
9 changed files with 350 additions and 26 deletions

View File

@ -1500,6 +1500,19 @@ export interface PostCheckoutPermissionRequest {
*/
'assignees': Array<Assignee>;
}
/**
*
* @export
* @interface PostDeleteUserRequest
*/
export interface PostDeleteUserRequest {
/**
* ID
* @type {number}
* @memberof PostDeleteUserRequest
*/
'userId': number;
}
/**
*
* @export
@ -2639,6 +2652,44 @@ export const AccountsApiAxiosParamCreator = function (configuration?: Configurat
options: localVarRequestOptions,
};
},
/**
* IDで指定されたタイピストグループを削除します
* @summary
* @param {number} typistGroupId
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
deleteTypistGroup: async (typistGroupId: number, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
// verify required parameter 'typistGroupId' is not null or undefined
assertParamExists('deleteTypistGroup', 'typistGroupId', typistGroupId)
const localVarPath = `/accounts/typist-groups/{typistGroupId}/delete`
.replace(`{${"typistGroupId"}}`, encodeURIComponent(String(typistGroupId)));
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
let baseOptions;
if (configuration) {
baseOptions = configuration.baseOptions;
}
const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
// authentication bearer required
// http bearer authentication required
await setBearerAuthToObject(localVarHeaderParameter, configuration)
setSearchParams(localVarUrlObj, localVarQueryParameter);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions,
};
},
/**
*
* @summary
@ -3510,6 +3561,19 @@ export const AccountsApiFp = function(configuration?: Configuration) {
const operationBasePath = operationServerMap['AccountsApi.deleteAccountAndData']?.[index]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, operationBasePath || basePath);
},
/**
* IDで指定されたタイピストグループを削除します
* @summary
* @param {number} typistGroupId
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async deleteTypistGroup(typistGroupId: number, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<object>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.deleteTypistGroup(typistGroupId, options);
const index = configuration?.serverIndex ?? 0;
const operationBasePath = operationServerMap['AccountsApi.deleteTypistGroup']?.[index]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, operationBasePath || basePath);
},
/**
*
* @summary
@ -3848,6 +3912,16 @@ export const AccountsApiFactory = function (configuration?: Configuration, baseP
deleteAccountAndData(deleteAccountRequest: DeleteAccountRequest, options?: any): AxiosPromise<object> {
return localVarFp.deleteAccountAndData(deleteAccountRequest, options).then((request) => request(axios, basePath));
},
/**
* IDで指定されたタイピストグループを削除します
* @summary
* @param {number} typistGroupId
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
deleteTypistGroup(typistGroupId: number, options?: any): AxiosPromise<object> {
return localVarFp.deleteTypistGroup(typistGroupId, options).then((request) => request(axios, basePath));
},
/**
*
* @summary
@ -4140,6 +4214,18 @@ export class AccountsApi extends BaseAPI {
return AccountsApiFp(this.configuration).deleteAccountAndData(deleteAccountRequest, options).then((request) => request(this.axios, this.basePath));
}
/**
* IDで指定されたタイピストグループを削除します
* @summary
* @param {number} typistGroupId
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof AccountsApi
*/
public deleteTypistGroup(typistGroupId: number, options?: AxiosRequestConfig) {
return AccountsApiFp(this.configuration).deleteTypistGroup(typistGroupId, options).then((request) => request(this.axios, this.basePath));
}
/**
*
* @summary
@ -7183,6 +7269,46 @@ export const UsersApiAxiosParamCreator = function (configuration?: Configuration
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
localVarRequestOptions.data = serializeDataIfNeeded(postUpdateUserRequest, localVarRequestOptions, configuration)
return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions,
};
},
/**
*
* @summary
* @param {PostDeleteUserRequest} postDeleteUserRequest
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
updeateUser: async (postDeleteUserRequest: PostDeleteUserRequest, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
// verify required parameter 'postDeleteUserRequest' is not null or undefined
assertParamExists('updeateUser', 'postDeleteUserRequest', postDeleteUserRequest)
const localVarPath = `/users/delete`;
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
let baseOptions;
if (configuration) {
baseOptions = configuration.baseOptions;
}
const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
// authentication bearer required
// http bearer authentication required
await setBearerAuthToObject(localVarHeaderParameter, configuration)
localVarHeaderParameter['Content-Type'] = 'application/json';
setSearchParams(localVarUrlObj, localVarQueryParameter);
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
localVarRequestOptions.data = serializeDataIfNeeded(postDeleteUserRequest, localVarRequestOptions, configuration)
return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions,
@ -7350,6 +7476,19 @@ export const UsersApiFp = function(configuration?: Configuration) {
const operationBasePath = operationServerMap['UsersApi.updateUser']?.[index]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, operationBasePath || basePath);
},
/**
*
* @summary
* @param {PostDeleteUserRequest} postDeleteUserRequest
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async updeateUser(postDeleteUserRequest: PostDeleteUserRequest, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<object>> {
const localVarAxiosArgs = await localVarAxiosParamCreator.updeateUser(postDeleteUserRequest, options);
const index = configuration?.serverIndex ?? 0;
const operationBasePath = operationServerMap['UsersApi.updeateUser']?.[index]?.url;
return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, operationBasePath || basePath);
},
}
};
@ -7476,6 +7615,16 @@ export const UsersApiFactory = function (configuration?: Configuration, basePath
updateUser(postUpdateUserRequest: PostUpdateUserRequest, options?: any): AxiosPromise<object> {
return localVarFp.updateUser(postUpdateUserRequest, options).then((request) => request(axios, basePath));
},
/**
*
* @summary
* @param {PostDeleteUserRequest} postDeleteUserRequest
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
updeateUser(postDeleteUserRequest: PostDeleteUserRequest, options?: any): AxiosPromise<object> {
return localVarFp.updeateUser(postDeleteUserRequest, options).then((request) => request(axios, basePath));
},
};
};
@ -7625,6 +7774,18 @@ export class UsersApi extends BaseAPI {
public updateUser(postUpdateUserRequest: PostUpdateUserRequest, options?: AxiosRequestConfig) {
return UsersApiFp(this.configuration).updateUser(postUpdateUserRequest, options).then((request) => request(this.axios, this.basePath));
}
/**
*
* @summary
* @param {PostDeleteUserRequest} postDeleteUserRequest
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof UsersApi
*/
public updeateUser(postDeleteUserRequest: PostDeleteUserRequest, options?: AxiosRequestConfig) {
return UsersApiFp(this.configuration).updeateUser(postDeleteUserRequest, options).then((request) => request(this.axios, this.basePath));
}
}

View File

@ -60,4 +60,7 @@ export const errorCodes = [
"E011004", // ワークタイプ使用中エラー
"E013001", // ワークフローのAuthorIDとWorktypeIDのペア重複エラー
"E013002", // ワークフロー不在エラー
"E015001", // タイピストグループ削除済みエラー
"E015002", // タイピストグループがワークフローに紐づいているエラー
"E015003", // タイピストグループがルーティングされているエラー
] as const;

View File

@ -256,3 +256,70 @@ export const updateTypistGroupAsync = createAsyncThunk<
return thunkApi.rejectWithValue({ error });
}
});
export const deleteTypistGroupAsync = createAsyncThunk<
{
/* Empty Object */
},
{
typistGroupId: number;
},
{
// rejectした時の返却値の型
rejectValue: {
error: ErrorObject;
};
}
>("workflow/deleteTypistGroupAsync", async (args, thunkApi) => {
const { typistGroupId } = args;
// apiのConfigurationを取得する
const { getState } = thunkApi;
const state = getState() as RootState;
const { configuration } = state.auth;
const accessToken = getAccessToken(state.auth);
const config = new Configuration(configuration);
const accountsApi = new AccountsApi(config);
try {
await accountsApi.deleteTypistGroup(typistGroupId, {
headers: { authorization: `Bearer ${accessToken}` },
});
thunkApi.dispatch(
openSnackbar({
level: "info",
message: getTranslationID("common.message.success"),
})
);
return {};
} catch (e) {
// e ⇒ errorObjectに変換"
const error = createErrorObject(e);
// すでに削除されていた場合は成功扱いする
if (error.code === "E015001") {
thunkApi.dispatch(
openSnackbar({
level: "info",
message: getTranslationID("common.message.success"),
})
);
return {};
}
// 以下は実際の削除失敗
let message = getTranslationID("common.message.internalServerError");
if (error.code === "E015002")
message = getTranslationID(
"typistGroupSetting.message.deleteFailedWorkflowAssigned"
);
if (error.code === "E015003")
message = getTranslationID(
"typistGroupSetting.message.deleteFailedCheckoutPermissionExisted"
);
thunkApi.dispatch(openSnackbar({ level: "error", message }));
return thunkApi.rejectWithValue({ error });
}
});

View File

@ -6,6 +6,7 @@ import {
listTypistGroupsAsync,
listTypistsAsync,
updateTypistGroupAsync,
deleteTypistGroupAsync,
} from "./operations";
const initialState: TypistGroupState = {
@ -106,6 +107,15 @@ export const typistGroupSlice = createSlice({
builder.addCase(updateTypistGroupAsync.rejected, (state) => {
state.apps.isLoading = false;
});
builder.addCase(deleteTypistGroupAsync.pending, (state) => {
state.apps.isLoading = true;
});
builder.addCase(deleteTypistGroupAsync.fulfilled, (state) => {
state.apps.isLoading = false;
});
builder.addCase(deleteTypistGroupAsync.rejected, (state) => {
state.apps.isLoading = false;
});
},
});

View File

@ -11,6 +11,7 @@ import {
selectTypistGroups,
selectIsLoading,
listTypistGroupsAsync,
deleteTypistGroupAsync,
} from "features/workflow/typistGroup";
import { AppDispatch } from "app/store";
import { useTranslation } from "react-i18next";
@ -47,6 +48,25 @@ const TypistGroupSettingPage: React.FC = (): JSX.Element => {
[setIsEditPopupOpen]
);
const onDeleteTypistGroup = useCallback(
async (typistGroupId: number) => {
if (
/* eslint-disable-next-line no-alert */
!window.confirm(t(getTranslationID("common.message.dialogConfirm")))
) {
return;
}
const { meta } = await dispatch(
deleteTypistGroupAsync({ typistGroupId })
);
if (meta.requestStatus === "fulfilled") {
dispatch(listTypistGroupsAsync());
}
},
[dispatch, t]
);
useEffect(() => {
dispatch(listTypistGroupsAsync());
}, [dispatch]);
@ -142,6 +162,17 @@ const TypistGroupSettingPage: React.FC = (): JSX.Element => {
{t(getTranslationID("common.label.edit"))}
</a>
</li>
<li>
{/* eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions */}
<a
className={`${styles.menuLink} ${styles.isActive}`}
onClick={() => {
onDeleteTypistGroup(group.id);
}}
>
{t(getTranslationID("common.label.delete"))}
</a>
</li>
</ul>
</td>
</tr>

View File

@ -128,7 +128,14 @@
"authorIdIncorrectError": "Das Format der Autoren-ID ist ungültig. Als Autoren-ID können nur alphanumerische Zeichen und „_“ eingegeben werden.",
"roleChangeError": "Die Benutzerrolle kann nicht geändert werden. Die angezeigten Informationen sind möglicherweise veraltet. Aktualisieren Sie daher bitte den Bildschirm, um den neuesten Status anzuzeigen.",
"encryptionPasswordCorrectError": "Das Verschlüsselungskennwort entspricht nicht den Regeln.",
"alreadyLicenseDeallocatedError": "Die zugewiesene Lizenz wurde bereits storniert. Die angezeigten Informationen sind möglicherweise veraltet. Aktualisieren Sie daher bitte den Bildschirm, um den neuesten Status anzuzeigen."
"alreadyLicenseDeallocatedError": "Die zugewiesene Lizenz wurde bereits storniert. Die angezeigten Informationen sind möglicherweise veraltet. Aktualisieren Sie daher bitte den Bildschirm, um den neuesten Status anzuzeigen.",
"UserDeletionLicenseActiveError": "(de)ユーザーの削除に失敗しました。対象ユーザーのライセンス割り当てを解除してください。",
"TypistDeletionRoutingRuleError": "(de)ユーザーの削除に失敗しました。Workflow画面でルーティングルールから対象Transcriptionistを外してください。",
"AdminUserDeletionError": "(de)ユーザーの削除に失敗しました。アカウント画面で対象ユーザーをPrimary/Secondary Administratorから外してください。",
"TypistUserDeletionTranscriptionTaskError": "(de)ユーザーの削除に失敗しました。Dictation画面でタスクのルーティングから対象Transcriptionistを外してください。",
"AuthorUserDeletionTranscriptionTaskError": "(de)ユーザーの削除に失敗しました。Dictation画面で対象AuthorのAuthorIDが設定されているタスクの中で、文字起こしが未完了のタスクを削除またはFinishedにしてください。",
"TypistUserDeletionTranscriptionistGroupError": "(de)ユーザーの削除に失敗しました。Workflow画面でTranscriptionistGroupから対象Transcriptionistを外してください。",
"AuthorDeletionRoutingRuleError": "(de)ユーザーの削除に失敗しました。Workflow画面でルーティングルールから対象AuthorのAuthorIDを外してください。"
},
"label": {
"title": "Benutzer",
@ -417,7 +424,10 @@
},
"message": {
"selectedTypistEmptyError": "Um eine Transkriptionsgruppe zu speichern, müssen ein oder mehrere Transkriptionisten ausgewählt werden.",
"groupSaveFailedError": "Die Schreibkraftgruppe konnte nicht gespeichert werden. Die angezeigten Informationen sind möglicherweise veraltet. Aktualisieren Sie daher bitte den Bildschirm, um den neuesten Status anzuzeigen."
"groupSaveFailedError": "Die Transkriptionistengruppe konnte nicht gespeichert werden. Die angezeigten Informationen sind möglicherweise veraltet. Aktualisieren Sie daher bitte den Bildschirm, um den neuesten Status anzuzeigen.",
"GroupNameAlreadyExistError": "(de)TypistGroupの保存に失敗しました。同名のTranscriptionistGroupは登録できません。",
"deleteFailedWorkflowAssigned": "(de)TranscriptionistGroupの削除に失敗しました。Workflow画面でルーティングルールから対象TranscriptionistGroupを外してください。",
"deleteFailedCheckoutPermissionExisted": "(de)TranscriptionistGroupの削除に失敗しました。Dictation画面でタスクのルーティングから対象TranscriptionistGroupを外してください。"
}
},
"worktypeIdSetting": {
@ -509,6 +519,9 @@
},
"message": {
"updateAccountFailedError": "Kontoinformationen konnten nicht gespeichert werden. Bitte aktualisieren Sie den Bildschirm und versuchen Sie es erneut."
},
"text": {
"dealerManagementAnnotation": "Durch die Aktivierung der Option „Erlauben Sie dem Händler, Änderungen vorzunehmen“ erklären Sie sich damit einverstanden, dass Ihr Händler die Rechte erhält, auf Ihr ODMS Cloud-Konto zuzugreifen, um in Ihrem Namen Lizenzen zu bestellen und Benutzer zu registrieren. Ihr Händler hat keinen Zugriff auf Sprachdateien oder Dokumente, die in Ihrem ODMS Cloud-Konto gespeichert sind."
}
},
"deleteAccountPopup": {
@ -558,4 +571,4 @@
"close": "Schließen"
}
}
}
}

View File

@ -128,7 +128,14 @@
"authorIdIncorrectError": "Author ID format is invalid. Only alphanumeric characters and \"_\" can be entered for Author ID.",
"roleChangeError": "Unable to change the User Role. The displayed information may be outdated, so please refresh the screen to see the latest status.",
"encryptionPasswordCorrectError": "Encryption password does not meet the rules.",
"alreadyLicenseDeallocatedError": "Assigned license has already been canceled. The displayed information may be outdated, so please refresh the screen to see the latest status."
"alreadyLicenseDeallocatedError": "Assigned license has already been canceled. The displayed information may be outdated, so please refresh the screen to see the latest status.",
"UserDeletionLicenseActiveError": "ユーザーの削除に失敗しました。対象ユーザーのライセンス割り当てを解除してください。",
"TypistDeletionRoutingRuleError": "ユーザーの削除に失敗しました。Workflow画面でルーティングルールから対象Transcriptionistを外してください。",
"AdminUserDeletionError": "ユーザーの削除に失敗しました。アカウント画面で対象ユーザーをPrimary/Secondary Administratorから外してください。",
"TypistUserDeletionTranscriptionTaskError": "ユーザーの削除に失敗しました。Dictation画面でタスクのルーティングから対象Transcriptionistを外してください。",
"AuthorUserDeletionTranscriptionTaskError": "ユーザーの削除に失敗しました。Dictation画面で対象AuthorのAuthorIDが設定されているタスクの中で、文字起こしが未完了のタスクを削除またはFinishedにしてください。",
"TypistUserDeletionTranscriptionistGroupError": "ユーザーの削除に失敗しました。Workflow画面でTranscriptionistGroupから対象Transcriptionistを外してください。",
"AuthorDeletionRoutingRuleError": "ユーザーの削除に失敗しました。Workflow画面でルーティングルールから対象AuthorのAuthorIDを外してください。"
},
"label": {
"title": "User",
@ -417,7 +424,10 @@
},
"message": {
"selectedTypistEmptyError": "One or more transcriptonist must be selected to save a transcrption group.",
"groupSaveFailedError": "Typist Group could not be saved. The displayed information may be outdated, so please refresh the screen to see the latest status."
"groupSaveFailedError": "Transcriptionist Group could not be saved. The displayed information may be outdated, so please refresh the screen to see the latest status.",
"GroupNameAlreadyExistError": "TypistGroupの保存に失敗しました。同名のTranscriptionistGroupは登録できません。",
"deleteFailedWorkflowAssigned": "TranscriptionistGroupの削除に失敗しました。Workflow画面でルーティングルールから対象TranscriptionistGroupを外してください。",
"deleteFailedCheckoutPermissionExisted": "TranscriptionistGroupの削除に失敗しました。Dictation画面でタスクのルーティングから対象TranscriptionistGroupを外してください。"
}
},
"worktypeIdSetting": {
@ -509,6 +519,9 @@
},
"message": {
"updateAccountFailedError": "Failed to save account information. Please refresh the screen and try again."
},
"text": {
"dealerManagementAnnotation": "By enabling the \"Dealer Management\" option, you are agreeing to allow your dealer to have the rights to access your ODMS Cloud account to order licenses and register users on your behalf. Your dealer will not have access to any voice file(s) or document(s) stored in your ODMS Cloud account."
}
},
"deleteAccountPopup": {
@ -558,4 +571,4 @@
"close": "Close"
}
}
}
}

View File

@ -28,7 +28,7 @@
"tier1": "Admin",
"tier2": "BC",
"tier3": "Distribuidor",
"tier4": "Concesionario",
"tier4": "Distribuidor",
"tier5": "Cliente",
"notSelected": "Ninguno",
"signOutButton": "cerrar sesión"
@ -62,14 +62,14 @@
"title": "Crea tu cuenta",
"accountInfoTitle": "Información de Registro",
"countryExplanation": "Seleccione el país donde se encuentra. Si su país no aparece en la lista, seleccione el país más cercano.",
"dealerExplanation": "Seleccione el concesionario al que le gustaría comprar la licencia.",
"dealerExplanation": "Seleccione el distribuidor al que le gustaría comprar la licencia.",
"adminInfoTitle": "Registre la información del administrador principal",
"passwordTerms": "Establezca una contraseña. La contraseña debe tener entre 8 y 25 caracteres y debe contener letras, números y símbolos. (Debe enumerar el símbolo compatible e indicar si se necesita una letra mayúscula)."
},
"label": {
"company": "Nombre de empresa",
"country": "País",
"dealer": "Concesionario (Opcional)",
"dealer": "Distribuidor (Opcional)",
"adminName": "Nombre del administrador",
"email": "Dirección de correo electrónico",
"password": "Contraseña",
@ -93,7 +93,7 @@
"label": {
"company": "Nombre de empresa",
"country": "País",
"dealer": "Concesionario (Opcional)",
"dealer": "Distribuidor (Opcional)",
"adminName": "Nombre del administrador",
"email": "Dirección de correo electrónico",
"password": "Contraseña",
@ -128,7 +128,14 @@
"authorIdIncorrectError": "El formato de ID del autor no es válido. Sólo se pueden ingresar caracteres alfanuméricos y \"_\" para la ID del autor.",
"roleChangeError": "No se puede cambiar la función de usuario. La información mostrada puede estar desactualizada, así que actualice la pantalla para ver el estado más reciente.",
"encryptionPasswordCorrectError": "La contraseña de cifrado no cumple con las reglas.",
"alreadyLicenseDeallocatedError": "La licencia asignada ya ha sido cancelada. La información mostrada puede estar desactualizada, así que actualice la pantalla para ver el estado más reciente."
"alreadyLicenseDeallocatedError": "La licencia asignada ya ha sido cancelada. La información mostrada puede estar desactualizada, así que actualice la pantalla para ver el estado más reciente.",
"UserDeletionLicenseActiveError": "(es)ユーザーの削除に失敗しました。対象ユーザーのライセンス割り当てを解除してください。",
"TypistDeletionRoutingRuleError": "(es)ユーザーの削除に失敗しました。Workflow画面でルーティングルールから対象Transcriptionistを外してください。",
"AdminUserDeletionError": "(es)ユーザーの削除に失敗しました。アカウント画面で対象ユーザーをPrimary/Secondary Administratorから外してください。",
"TypistUserDeletionTranscriptionTaskError": "(es)ユーザーの削除に失敗しました。Dictation画面でタスクのルーティングから対象Transcriptionistを外してください。",
"AuthorUserDeletionTranscriptionTaskError": "(es)ユーザーの削除に失敗しました。Dictation画面で対象AuthorのAuthorIDが設定されているタスクの中で、文字起こしが未完了のタスクを削除またはFinishedにしてください。",
"TypistUserDeletionTranscriptionistGroupError": "(es)ユーザーの削除に失敗しました。Workflow画面でTranscriptionistGroupから対象Transcriptionistを外してください。",
"AuthorDeletionRoutingRuleError": "(es)ユーザーの削除に失敗しました。Workflow画面でルーティングルールから対象AuthorのAuthorIDを外してください。"
},
"label": {
"title": "Usuario",
@ -417,7 +424,10 @@
},
"message": {
"selectedTypistEmptyError": "Se deben seleccionar uno o más transcriptores para guardar un grupo de transcripción.",
"groupSaveFailedError": "No se pudo guardar el grupo mecanógrafo. La información mostrada puede estar desactualizada, así que actualice la pantalla para ver el estado más reciente."
"groupSaveFailedError": "El grupo transcriptor no se pudo salvar. La información mostrada puede estar desactualizada. Así que actualice la pantalla para ver el estado más reciente.",
"GroupNameAlreadyExistError": "(es)TypistGroupの保存に失敗しました。同名のTranscriptionistGroupは登録できません。",
"deleteFailedWorkflowAssigned": "(es)TranscriptionistGroupの削除に失敗しました。Workflow画面でルーティングルールから対象TranscriptionistGroupを外してください。",
"deleteFailedCheckoutPermissionExisted": "(es)TranscriptionistGroupの削除に失敗しました。Dictation画面でタスクのルーティングから対象TranscriptionistGroupを外してください。"
}
},
"worktypeIdSetting": {
@ -496,9 +506,9 @@
"accountID": "ID de la cuenta",
"yourCategory": "Tipo de cuenta",
"yourCountry": "País",
"yourDealer": "Concesionario",
"selectDealer": "Seleccionar Concesionario",
"dealerManagement": "Permitir que el concesionario realice los cambios",
"yourDealer": "Distribuidor",
"selectDealer": "Seleccionar distribuidor",
"dealerManagement": "Permitir que el distribuidor realice los cambios",
"administratorInformation": "Información del administrador",
"primaryAdministrator": "Administrador primario",
"secondaryAdministrator": "Administrador secundario",
@ -509,6 +519,9 @@
},
"message": {
"updateAccountFailedError": "No se pudo guardar la información de la cuenta. Actualice la pantalla e inténtelo de nuevo."
},
"text": {
"dealerManagementAnnotation": "Al habilitar la opción \"Permitir que el distribuidor realice los cambios\", usted acepta permitir que su distribuidor tenga derechos para acceder a su cuenta de ODMS Cloud para solicitar licencias y registrar usuarios en su nombre. Su distribuidor no tendrá acceso a ningún archivo de voz o documento almacenado en su cuenta de ODMS Cloud."
}
},
"deleteAccountPopup": {
@ -558,4 +571,4 @@
"close": "Cerrar"
}
}
}
}

View File

@ -28,7 +28,7 @@
"tier1": "Admin",
"tier2": "BC",
"tier3": "Distributeur",
"tier4": "Concessionnaire",
"tier4": "Revendeur",
"tier5": "Client",
"notSelected": "Aucune",
"signOutButton": "se déconnecter"
@ -62,14 +62,14 @@
"title": "Créez votre compte",
"accountInfoTitle": "Information d'inscription",
"countryExplanation": "Sélectionnez le pays où vous vous trouvez. Si votre pays ne figure pas dans la liste, veuillez sélectionner le pays le plus proche.",
"dealerExplanation": "Veuillez sélectionner le concessionnaire auprès duquel vous souhaitez acheter la licence.",
"dealerExplanation": "Veuillez sélectionner le revendeur auprès duquel vous souhaitez acheter la licence.",
"adminInfoTitle": "Enregistrer les informations de l'administrateur principal",
"passwordTerms": "Veuillez définir un mot de passe. Le mot de passe doit être composé de 8 à 25 caractères et doit contenir des lettres, des chiffres et des symboles. (Devrait lister les symboles compatibles et indiquer si une majuscule est nécessaire)."
},
"label": {
"company": "Nom de l'entreprise",
"country": "Pays",
"dealer": "Concessionnaire (Facultatif)",
"dealer": "Revendeur (Facultatif)",
"adminName": "Nom de l'administrateur",
"email": "Adresse e-mail",
"password": "Mot de passe",
@ -93,7 +93,7 @@
"label": {
"company": "Nom de l'entreprise",
"country": "Pays",
"dealer": "Concessionnaire (Facultatif)",
"dealer": "Revendeur (Facultatif)",
"adminName": "Nom de l'administrateur",
"email": "Adresse e-mail",
"password": "Mot de passe",
@ -128,7 +128,14 @@
"authorIdIncorrectError": "Le format de l'identifiant de l'auteur n'est pas valide. Seuls les caractères alphanumériques et \"_\" peuvent être saisis pour l'ID d'auteur.",
"roleChangeError": "Impossible de modifier le rôle de l'utilisateur. Les informations affichées peuvent être obsolètes, veuillez donc actualiser l'écran pour voir le dernier statut.",
"encryptionPasswordCorrectError": "Le mot de passe de cryptage n'est pas conforme aux règles.",
"alreadyLicenseDeallocatedError": "La licence attribuée a déjà été annulée. Les informations affichées peuvent être obsolètes, veuillez donc actualiser l'écran pour voir le dernier statut."
"alreadyLicenseDeallocatedError": "La licence attribuée a déjà été annulée. Les informations affichées peuvent être obsolètes, veuillez donc actualiser l'écran pour voir le dernier statut.",
"UserDeletionLicenseActiveError": "(fr)ユーザーの削除に失敗しました。対象ユーザーのライセンス割り当てを解除してください。",
"TypistDeletionRoutingRuleError": "(fr)ユーザーの削除に失敗しました。Workflow画面でルーティングルールから対象Transcriptionistを外してください。",
"AdminUserDeletionError": "(fr)ユーザーの削除に失敗しました。アカウント画面で対象ユーザーをPrimary/Secondary Administratorから外してください。",
"TypistUserDeletionTranscriptionTaskError": "(fr)ユーザーの削除に失敗しました。Dictation画面でタスクのルーティングから対象Transcriptionistを外してください。",
"AuthorUserDeletionTranscriptionTaskError": "(fr)ユーザーの削除に失敗しました。Dictation画面で対象AuthorのAuthorIDが設定されているタスクの中で、文字起こしが未完了のタスクを削除またはFinishedにしてください。",
"TypistUserDeletionTranscriptionistGroupError": "(fr)ユーザーの削除に失敗しました。Workflow画面でTranscriptionistGroupから対象Transcriptionistを外してください。",
"AuthorDeletionRoutingRuleError": "(fr)ユーザーの削除に失敗しました。Workflow画面でルーティングルールから対象AuthorのAuthorIDを外してください。"
},
"label": {
"title": "Utilisateur",
@ -417,7 +424,10 @@
},
"message": {
"selectedTypistEmptyError": "Un ou plusieurs transcripteurs doivent être sélectionnés pour enregistrer un groupe de transcription.",
"groupSaveFailedError": "Le groupe de dactylographes n'a pas pu être enregistré. Les informations affichées peuvent être obsolètes, veuillez donc actualiser l'écran pour voir le dernier statut."
"groupSaveFailedError": "Le groupe de transcriptionniste n'a pas pu être enregistré. Les informations affichées peuvent être obsolètes, veuillez donc actualiser l'écran pour voir le dernier statut.",
"GroupNameAlreadyExistError": "(fr)TypistGroupの保存に失敗しました。同名のTranscriptionistGroupは登録できません。",
"deleteFailedWorkflowAssigned": "(fr)TranscriptionistGroupの削除に失敗しました。Workflow画面でルーティングルールから対象TranscriptionistGroupを外してください。",
"deleteFailedCheckoutPermissionExisted": "(fr)TranscriptionistGroupの削除に失敗しました。Dictation画面でタスクのルーティングから対象TranscriptionistGroupを外してください。"
}
},
"worktypeIdSetting": {
@ -496,9 +506,9 @@
"accountID": "identifiant de compte",
"yourCategory": "Type de compte",
"yourCountry": "Pays",
"yourDealer": "Concessionnaire",
"selectDealer": "Sélectionner le Concessionnaire",
"dealerManagement": "Autoriser le concessionnaire à modifier les paramètres",
"yourDealer": "Revendeur",
"selectDealer": "Sélectionner le revendeur",
"dealerManagement": "Autoriser le revendeur à modifier les paramètres",
"administratorInformation": "Informations sur l'administrateur",
"primaryAdministrator": "Administrateur principal",
"secondaryAdministrator": "Administrateur secondaire",
@ -509,6 +519,9 @@
},
"message": {
"updateAccountFailedError": "Échec de l'enregistrement des informations du compte. Veuillez actualiser l'écran et réessayer."
},
"text": {
"dealerManagementAnnotation": "En activant l'option « Autoriser le revendeur à modifier les paramètres », vous acceptez que votre concessionnaire ait les droits d'accès à votre compte ODMS Cloud pour commander des licences et enregistrer des utilisateurs en votre nom. Votre revendeur n'aura accès à aucun fichier(s) vocal(s) ou document(s) stocké(s) dans votre compte ODMS Cloud."
}
},
"deleteAccountPopup": {
@ -558,4 +571,4 @@
"close": "Fermer"
}
}
}
}