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:
root
2026-02-24 17:57:25 +08:00
commit 8d78e18267
121 changed files with 18563 additions and 0 deletions
+150
View File
@@ -0,0 +1,150 @@
{
"app": {
"name": "Système d'Entreprise",
"title": "Plateforme d'Outils Entreprise"
},
"tab": {
"home": "Accueil",
"apps": "Applications",
"profile": "Profil"
},
"common": {
"loading": "Chargement...",
"confirm": "Confirmer",
"cancel": "Annuler",
"submit": "Soumettre",
"save": "Enregistrer",
"delete": "Supprimer",
"edit": "Modifier",
"search": "Rechercher",
"refresh": "Actualiser",
"back": "Retour",
"close": "Fermer",
"select": "Sélectionner",
"all": "Tous",
"more": "Plus",
"total": "{{count}} au total",
"noData": "Aucune donnée",
"operation": "Opération",
"status": "Statut",
"remark": "Remarque",
"createTime": "Date de création",
"updateTime": "Date de mise à jour"
},
"dashboard": {
"welcome": "Bienvenue",
"greeting": "Bonjour, {{name}}",
"quickActions": "Actions Rapides",
"myTodos": "Mes Tâches",
"myApprovals": "Mes Approbations",
"notifications": "Notifications",
"recentlyUsed": "Récemment Utilisés"
},
"apps": {
"title": "Centre d'Applications",
"businessTrip": "Déplacement",
"reimbursement": "Remboursement",
"leave": "Demande de Congé",
"overtime": "Heures Supplémentaires",
"purchase": "Demande d'Achat",
"approval": "Approbations",
"report": "Rapports",
"settings": "Paramètres",
"addressBook": "Contacts",
"notice": "Annonces",
"calendar": "Calendrier",
"file": "Fichiers"
},
"businessTrip": {
"title": "Déplacement Professionnel",
"apply": "Demander",
"myTrips": "Mes Déplacements",
"pendingApproval": "En Attente",
"approved": "Approuvé",
"rejected": "Rejeté",
"cancelled": "Annulé",
"tripTitle": "Titre du Déplacement",
"destination": "Destination",
"startDate": "Date de Début",
"endDate": "Date de Fin",
"duration": "Durée",
"reason": "Motif",
"budget": "Budget",
"submitter": "Demandeur",
"submitTime": "Date de Soumission",
"approver": "Approbateur",
"approvalStatus": "Statut d'Approbation",
"approvalComment": "Commentaire",
"confirmSubmit": "Confirmer la soumission?",
"confirmCancel": "Confirmer l'annulation?",
"submitSuccess": "Soumis avec succès",
"cancelSuccess": "Annulé avec succès"
},
"approval": {
"title": "Approbations",
"myApproval": "Mes Approbations",
"pending": "En Attente",
"approved": "Approuvé",
"rejected": "Rejeté",
"detail": "Détail",
"approve": "Approuver",
"reject": "Rejeter",
"comment": "Commentaire",
"submitComment": "Soumettre",
"confirmApprove": "Confirmer l'approbation?",
"confirmReject": "Confirmer le rejet?",
"approveSuccess": "Approuvé",
"rejectSuccess": "Rejeté",
"noPending": "Aucune approbation en attente",
"status": {
"pending": "En Attente",
"approved": "Approuvé",
"rejected": "Rejeté",
"cancelled": "Annulé"
}
},
"profile": {
"title": "Mon Profil",
"myInfo": "Mes Informations",
"myMessages": "Mes Messages",
"settings": "Paramètres",
"about": "À Propos",
"logout": "Déconnexion",
"language": "Langue",
"switchCompany": "Changer d'Entreprise",
"notifications": "Notifications",
"security": "Sécurité"
},
"login": {
"title": "Connexion",
"username": "Nom d'utilisateur",
"password": "Mot de passe",
"loginBtn": "Se Connecter",
"feishuLogin": "Connexion Feishu",
"loginSuccess": "Connexion réussie",
"loginFailed": "Échec de la connexion"
},
"settings": {
"language": "Langue",
"theme": "Thème",
"notifications": "Notifications"
},
"error": {
"networkError": "Erreur réseau, veuillez réessayer plus tard",
"serverError": "Erreur du serveur",
"unauthorized": "Non autorisé, veuillez vous connecter d'abord",
"forbidden": "Accès interdit",
"notFound": "Page non trouvée",
"unknownError": "Erreur inconnue"
},
"time": {
"today": "Aujourd'hui",
"yesterday": "Hier",
"thisWeek": "Cette Semaine",
"lastWeek": "Semaine Dernière",
"thisMonth": "Ce Mois",
"lastMonth": "Mois Dernier",
"thisYear": "Cette Année",
"lastYear": "Année Dernière"
}
}