Initial commit: X-Server Mobile enterprise tool system
- Frontend: React 18 + TypeScript + Vite + Ant Design Mobile - Backend: PHP 8.5 + Webman 2.x + MySQL + Redis - i18n support: Chinese, English, Russian, Spanish, French - Approval workflow engine - Docker development environment - Feishu integration Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* English translation file
|
||||
*/
|
||||
return [
|
||||
'app' => [
|
||||
'name' => 'Enterprise Tool System',
|
||||
'title' => 'Enterprise Internal Tool Platform',
|
||||
],
|
||||
'common' => [
|
||||
'success' => 'Operation successful',
|
||||
'error' => 'Operation failed',
|
||||
'confirm' => 'Confirm',
|
||||
'cancel' => 'Cancel',
|
||||
'submit' => 'Submit',
|
||||
'save' => 'Save',
|
||||
'delete' => 'Delete',
|
||||
'edit' => 'Edit',
|
||||
'search' => 'Search',
|
||||
'refresh' => 'Refresh',
|
||||
'back' => 'Back',
|
||||
'close' => 'Close',
|
||||
'loading' => 'Loading...',
|
||||
'no_data' => 'No data',
|
||||
'operation' => 'Operation',
|
||||
'status' => 'Status',
|
||||
'create_time' => 'Create Time',
|
||||
'update_time' => 'Update Time',
|
||||
'remark' => 'Remark',
|
||||
],
|
||||
'auth' => [
|
||||
'login_success' => 'Login successful',
|
||||
'login_failed' => 'Login failed',
|
||||
'username_required' => 'Username is required',
|
||||
'password_required' => 'Password is required',
|
||||
'invalid_credentials' => 'Invalid username or password',
|
||||
'token_expired' => 'Session expired, please login again',
|
||||
'unauthorized' => 'Unauthorized, please login first',
|
||||
],
|
||||
'user' => [
|
||||
'not_found' => 'User not found',
|
||||
'info_updated' => 'Profile updated successfully',
|
||||
'company_switched' => 'Company switched successfully',
|
||||
],
|
||||
'approval' => [
|
||||
'submit_success' => 'Approval submitted successfully',
|
||||
'approve_success' => 'Approved successfully',
|
||||
'reject_success' => 'Rejected successfully',
|
||||
'cancel_success' => 'Cancelled successfully',
|
||||
'not_found' => 'Approval not found',
|
||||
'cannot_approve' => 'Cannot approve in current status',
|
||||
'cannot_cancel' => 'Cannot cancel in current status',
|
||||
'not_owner' => 'Only the applicant can cancel',
|
||||
'status' => [
|
||||
'pending' => 'Pending',
|
||||
'approved' => 'Approved',
|
||||
'rejected' => 'Rejected',
|
||||
'cancelled' => 'Cancelled',
|
||||
],
|
||||
],
|
||||
'business_trip' => [
|
||||
'submit_success' => 'Business trip submitted successfully',
|
||||
'update_success' => 'Business trip updated successfully',
|
||||
'not_found' => 'Business trip not found',
|
||||
],
|
||||
'error' => [
|
||||
'network_error' => 'Network error, please try again later',
|
||||
'server_error' => 'Server error',
|
||||
'not_found' => 'Page not found',
|
||||
'unknown_error' => 'Unknown error',
|
||||
'params_error' => 'Parameter error',
|
||||
'validation_error' => 'Validation failed',
|
||||
],
|
||||
];
|
||||
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Traducción al español (Spanish translation)
|
||||
*/
|
||||
return [
|
||||
'app' => [
|
||||
'name' => 'Sistema Empresarial',
|
||||
'title' => 'Plataforma de Herramientas Empresariales',
|
||||
],
|
||||
'common' => [
|
||||
'success' => 'Operación exitosa',
|
||||
'error' => 'Operación fallida',
|
||||
'confirm' => 'Confirmar',
|
||||
'cancel' => 'Cancelar',
|
||||
'submit' => 'Enviar',
|
||||
'save' => 'Guardar',
|
||||
'delete' => 'Eliminar',
|
||||
'edit' => 'Editar',
|
||||
'search' => 'Buscar',
|
||||
'refresh' => 'Actualizar',
|
||||
'back' => 'Atrás',
|
||||
'close' => 'Cerrar',
|
||||
'loading' => 'Cargando...',
|
||||
'no_data' => 'Sin datos',
|
||||
'operation' => 'Operación',
|
||||
'status' => 'Estado',
|
||||
'create_time' => 'Fecha de creación',
|
||||
'update_time' => 'Fecha de actualización',
|
||||
'remark' => 'Observación',
|
||||
],
|
||||
'auth' => [
|
||||
'login_success' => 'Inicio de sesión exitoso',
|
||||
'login_failed' => 'Error de inicio de sesión',
|
||||
'username_required' => 'Se requiere usuario',
|
||||
'password_required' => 'Se requiere contraseña',
|
||||
'invalid_credentials' => 'Usuario o contraseña inválidos',
|
||||
'token_expired' => 'Sesión expirada, inicie sesión nuevamente',
|
||||
'unauthorized' => 'No autorizado, inicie sesión primero',
|
||||
],
|
||||
'user' => [
|
||||
'not_found' => 'Usuario no encontrado',
|
||||
'info_updated' => 'Perfil actualizado exitosamente',
|
||||
'company_switched' => 'Empresa cambiada exitosamente',
|
||||
],
|
||||
'approval' => [
|
||||
'submit_success' => 'Aprobación enviada exitosamente',
|
||||
'approve_success' => 'Aprobado exitosamente',
|
||||
'reject_success' => 'Rechazado exitosamente',
|
||||
'cancel_success' => 'Cancelado exitosamente',
|
||||
'not_found' => 'Aprobación no encontrada',
|
||||
'cannot_approve' => 'No se puede aprobar en estado actual',
|
||||
'cannot_cancel' => 'No se puede cancelar en estado actual',
|
||||
'not_owner' => 'Solo el solicitante puede cancelar',
|
||||
'status' => [
|
||||
'pending' => 'Pendiente',
|
||||
'approved' => 'Aprobado',
|
||||
'rejected' => 'Rechazado',
|
||||
'cancelled' => 'Cancelado',
|
||||
],
|
||||
],
|
||||
'business_trip' => [
|
||||
'submit_success' => 'Viaje enviado exitosamente',
|
||||
'update_success' => 'Viaje actualizado exitosamente',
|
||||
'not_found' => 'Viaje no encontrado',
|
||||
],
|
||||
'error' => [
|
||||
'network_error' => 'Error de red, inténtelo más tarde',
|
||||
'server_error' => 'Error del servidor',
|
||||
'not_found' => 'Página no encontrada',
|
||||
'unknown_error' => 'Error desconocido',
|
||||
'params_error' => 'Error de parámetros',
|
||||
'validation_error' => 'Validación fallida',
|
||||
],
|
||||
];
|
||||
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Traduction française (French translation)
|
||||
*/
|
||||
return [
|
||||
'app' => [
|
||||
'name' => 'Système d\'Entreprise',
|
||||
'title' => 'Plateforme d\'Outils Entreprise',
|
||||
],
|
||||
'common' => [
|
||||
'success' => 'Opération réussie',
|
||||
'error' => 'Opération échouée',
|
||||
'confirm' => 'Confirmer',
|
||||
'cancel' => 'Annuler',
|
||||
'submit' => 'Soumettre',
|
||||
'save' => 'Enregistrer',
|
||||
'delete' => 'Supprimer',
|
||||
'edit' => 'Modifier',
|
||||
'search' => 'Rechercher',
|
||||
'refresh' => 'Actualiser',
|
||||
'back' => 'Retour',
|
||||
'close' => 'Fermer',
|
||||
'loading' => 'Chargement...',
|
||||
'no_data' => 'Aucune donnée',
|
||||
'operation' => 'Opération',
|
||||
'status' => 'Statut',
|
||||
'create_time' => 'Date de création',
|
||||
'update_time' => 'Date de mise à jour',
|
||||
'remark' => 'Remarque',
|
||||
],
|
||||
'auth' => [
|
||||
'login_success' => 'Connexion réussie',
|
||||
'login_failed' => 'Échec de la connexion',
|
||||
'username_required' => 'Nom d\'utilisateur requis',
|
||||
'password_required' => 'Mot de passe requis',
|
||||
'invalid_credentials' => 'Nom d\'utilisateur ou mot de passe invalide',
|
||||
'token_expired' => 'Session expirée, veuillez vous reconnecter',
|
||||
'unauthorized' => 'Non autorisé, veuillez vous connecter d\'abord',
|
||||
],
|
||||
'user' => [
|
||||
'not_found' => 'Utilisateur introuvable',
|
||||
'info_updated' => 'Profil mis à jour avec succès',
|
||||
'company_switched' => 'Entreprise changée avec succès',
|
||||
],
|
||||
'approval' => [
|
||||
'submit_success' => 'Approbation soumise avec succès',
|
||||
'approve_success' => 'Approuvé avec succès',
|
||||
'reject_success' => 'Rejeté avec succès',
|
||||
'cancel_success' => 'Annulé avec succès',
|
||||
'not_found' => 'Approbation introuvable',
|
||||
'cannot_approve' => 'Impossible d\'approuver dans cet état',
|
||||
'cannot_cancel' => 'Impossible d\'annuler dans cet état',
|
||||
'not_owner' => 'Seul le demandeur peut annuler',
|
||||
'status' => [
|
||||
'pending' => 'En attente',
|
||||
'approved' => 'Approuvé',
|
||||
'rejected' => 'Rejeté',
|
||||
'cancelled' => 'Annulé',
|
||||
],
|
||||
],
|
||||
'business_trip' => [
|
||||
'submit_success' => 'Déplacement soumis avec succès',
|
||||
'update_success' => 'Déplacement mis à jour avec succès',
|
||||
'not_found' => 'Déplacement introuvable',
|
||||
],
|
||||
'error' => [
|
||||
'network_error' => 'Erreur réseau, veuillez réessayer plus tard',
|
||||
'server_error' => 'Erreur du serveur',
|
||||
'not_found' => 'Page introuvable',
|
||||
'unknown_error' => 'Erreur inconnue',
|
||||
'params_error' => 'Erreur de paramètres',
|
||||
'validation_error' => 'Validation échouée',
|
||||
],
|
||||
];
|
||||
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Русский перевод (Russian translation)
|
||||
*/
|
||||
return [
|
||||
'app' => [
|
||||
'name' => 'Корпоративная система',
|
||||
'title' => 'Корпоративная платформа инструментов',
|
||||
],
|
||||
'common' => [
|
||||
'success' => 'Операция выполнена успешно',
|
||||
'error' => 'Операция не удалась',
|
||||
'confirm' => 'Подтвердить',
|
||||
'cancel' => 'Отмена',
|
||||
'submit' => 'Отправить',
|
||||
'save' => 'Сохранить',
|
||||
'delete' => 'Удалить',
|
||||
'edit' => 'Редактировать',
|
||||
'search' => 'Поиск',
|
||||
'refresh' => 'Обновить',
|
||||
'back' => 'Назад',
|
||||
'close' => 'Закрыть',
|
||||
'loading' => 'Загрузка...',
|
||||
'no_data' => 'Нет данных',
|
||||
'operation' => 'Операция',
|
||||
'status' => 'Статус',
|
||||
'create_time' => 'Время создания',
|
||||
'update_time' => 'Время обновления',
|
||||
'remark' => 'Примечание',
|
||||
],
|
||||
'auth' => [
|
||||
'login_success' => 'Вход выполнен успешно',
|
||||
'login_failed' => 'Ошибка входа',
|
||||
'username_required' => 'Имя пользователя обязательно',
|
||||
'password_required' => 'Пароль обязателен',
|
||||
'invalid_credentials' => 'Неверное имя пользователя или пароль',
|
||||
'token_expired' => 'Сессия истекла, войдите снова',
|
||||
'unauthorized' => 'Не авторизован, войдите сначала',
|
||||
],
|
||||
'user' => [
|
||||
'not_found' => 'Пользователь не найден',
|
||||
'info_updated' => 'Профиль обновлен успешно',
|
||||
'company_switched' => 'Компания изменена успешно',
|
||||
],
|
||||
'approval' => [
|
||||
'submit_success' => 'Согласование отправлено успешно',
|
||||
'approve_success' => 'Согласовано успешно',
|
||||
'reject_success' => 'Отклонено успешно',
|
||||
'cancel_success' => 'Отменено успешно',
|
||||
'not_found' => 'Согласование не найдено',
|
||||
'cannot_approve' => 'Невозможно согласовать в текущем статусе',
|
||||
'cannot_cancel' => 'Невозможно отменить в текущем статусе',
|
||||
'not_owner' => 'Только заявитель может отменить',
|
||||
'status' => [
|
||||
'pending' => 'Ожидает',
|
||||
'approved' => 'Согласовано',
|
||||
'rejected' => 'Отклонено',
|
||||
'cancelled' => 'Отменено',
|
||||
],
|
||||
],
|
||||
'business_trip' => [
|
||||
'submit_success' => 'Командировка отправлена успешно',
|
||||
'update_success' => 'Командировка обновлена успешно',
|
||||
'not_found' => 'Командировка не найдена',
|
||||
],
|
||||
'error' => [
|
||||
'network_error' => 'Ошибка сети, попробуйте позже',
|
||||
'server_error' => 'Ошибка сервера',
|
||||
'not_found' => 'Страница не найдена',
|
||||
'unknown_error' => 'Неизвестная ошибка',
|
||||
'params_error' => 'Ошибка параметров',
|
||||
'validation_error' => 'Ошибка проверки данных',
|
||||
],
|
||||
];
|
||||
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* 中文翻译文件
|
||||
*/
|
||||
return [
|
||||
'app' => [
|
||||
'name' => '企业工具系统',
|
||||
'title' => '企业内部工具平台',
|
||||
],
|
||||
'common' => [
|
||||
'success' => '操作成功',
|
||||
'error' => '操作失败',
|
||||
'confirm' => '确认',
|
||||
'cancel' => '取消',
|
||||
'submit' => '提交',
|
||||
'save' => '保存',
|
||||
'delete' => '删除',
|
||||
'edit' => '编辑',
|
||||
'search' => '搜索',
|
||||
'refresh' => '刷新',
|
||||
'back' => '返回',
|
||||
'close' => '关闭',
|
||||
'loading' => '加载中...',
|
||||
'no_data' => '暂无数据',
|
||||
'operation' => '操作',
|
||||
'status' => '状态',
|
||||
'create_time' => '创建时间',
|
||||
'update_time' => '更新时间',
|
||||
'remark' => '备注',
|
||||
],
|
||||
'auth' => [
|
||||
'login_success' => '登录成功',
|
||||
'login_failed' => '登录失败',
|
||||
'username_required' => '用户名不能为空',
|
||||
'password_required' => '密码不能为空',
|
||||
'invalid_credentials' => '用户名或密码错误',
|
||||
'token_expired' => '登录已过期,请重新登录',
|
||||
'unauthorized' => '未授权,请先登录',
|
||||
],
|
||||
'user' => [
|
||||
'not_found' => '用户不存在',
|
||||
'info_updated' => '个人信息更新成功',
|
||||
'company_switched' => '公司切换成功',
|
||||
],
|
||||
'approval' => [
|
||||
'submit_success' => '审批提交成功',
|
||||
'approve_success' => '审批通过',
|
||||
'reject_success' => '已拒绝',
|
||||
'cancel_success' => '已撤销',
|
||||
'not_found' => '审批单不存在',
|
||||
'cannot_approve' => '当前状态无法审批',
|
||||
'cannot_cancel' => '当前状态无法撤销',
|
||||
'not_owner' => '只有申请人可以撤销',
|
||||
'status' => [
|
||||
'pending' => '待审批',
|
||||
'approved' => '已通过',
|
||||
'rejected' => '已拒绝',
|
||||
'cancelled' => '已撤销',
|
||||
],
|
||||
],
|
||||
'business_trip' => [
|
||||
'submit_success' => '出差申请提交成功',
|
||||
'update_success' => '出差申请更新成功',
|
||||
'not_found' => '出差申请不存在',
|
||||
],
|
||||
'error' => [
|
||||
'network_error' => '网络错误,请稍后重试',
|
||||
'server_error' => '服务器错误',
|
||||
'not_found' => '页面不存在',
|
||||
'unknown_error' => '未知错误',
|
||||
'params_error' => '参数错误',
|
||||
'validation_error' => '数据验证失败',
|
||||
],
|
||||
];
|
||||
Reference in New Issue
Block a user