From d2eb8986400f1fb27bfdc69844d00301690974c2 Mon Sep 17 00:00:00 2001 From: kimjaehyeon0101 <47347352-kimjaehyeon0101@users.noreply.replit.com> Date: Wed, 15 Oct 2025 08:06:03 +0000 Subject: [PATCH] Translate all user-facing text to English and update UI elements This commit addresses the user's request to translate all visible text within the application to English. It also updates the login modal to display the SAPIENS logo correctly. Additionally, various UI components and messages related to articles, community posts, auctions, and login/error handling have been localized. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 9a264234-c5d7-4dcc-adf3-a954b149b30d Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3df548ff-50ae-432f-9be4-25d34eccc983/9a264234-c5d7-4dcc-adf3-a954b149b30d/CMG42YQ --- client/src/components/LoginModal.tsx | 24 +++--- client/src/pages/Article.tsx | 8 +- client/src/pages/Community.tsx | 50 +++++------ client/src/pages/CommunityPost.tsx | 34 ++++---- client/src/pages/Landing.tsx | 9 +- client/src/pages/MediaOutletAuction.tsx | 108 ++++++++++++------------ 6 files changed, 120 insertions(+), 113 deletions(-) diff --git a/client/src/components/LoginModal.tsx b/client/src/components/LoginModal.tsx index 9c02489..53573a7 100644 --- a/client/src/components/LoginModal.tsx +++ b/client/src/components/LoginModal.tsx @@ -34,8 +34,8 @@ export default function LoginModal({ isOpen, onClose }: LoginModalProps) { if (response.ok) { const user = await response.json(); toast({ - title: "로그인 성공", - description: `환영합니다, ${user.firstName}님!`, + title: "Login Successful", + description: `Welcome, ${user.firstName}!`, }); // Invalidate auth queries to refresh user state @@ -48,15 +48,15 @@ export default function LoginModal({ isOpen, onClose }: LoginModalProps) { } else { const error = await response.json(); toast({ - title: "로그인 실패", - description: error.message || "잘못된 아이디 또는 비밀번호입니다.", + title: "Login Failed", + description: error.message || "Invalid username or password.", variant: "destructive", }); } } catch (error) { toast({ - title: "로그인 오류", - description: "로그인 중 오류가 발생했습니다.", + title: "Login Error", + description: "An error occurred during login.", variant: "destructive", }); } finally { @@ -79,7 +79,7 @@ export default function LoginModal({ isOpen, onClose }: LoginModalProps) {
- + setUsername(e.target.value)} onInvalid={(e) => (e.target as HTMLInputElement).setCustomValidity('Please enter your username')} onInput={(e) => (e.target as HTMLInputElement).setCustomValidity('')} - placeholder="아이디를 입력하세요" + placeholder="Enter your username" required data-testid="input-username" />
- + setPassword(e.target.value)} onInvalid={(e) => (e.target as HTMLInputElement).setCustomValidity('Please enter your password')} onInput={(e) => (e.target as HTMLInputElement).setCustomValidity('')} - placeholder="비밀번호를 입력하세요" + placeholder="Enter your password" required data-testid="input-password" /> @@ -113,7 +113,7 @@ export default function LoginModal({ isOpen, onClose }: LoginModalProps) { disabled={isLoading} data-testid="button-login-submit" > - {isLoading ? "로그인 중..." : "로그인"} + {isLoading ? "Logging in..." : "Login"}
diff --git a/client/src/pages/Article.tsx b/client/src/pages/Article.tsx index 4847429..cc7b39b 100644 --- a/client/src/pages/Article.tsx +++ b/client/src/pages/Article.tsx @@ -99,8 +99,8 @@ export default function Article() { }; const formatDate = (dateString: string | Date | null) => { - if (!dateString) return '미정'; - return new Intl.DateTimeFormat('ko-KR', { + if (!dateString) return 'TBD'; + return new Intl.DateTimeFormat('en-US', { year: 'numeric', month: 'long', day: 'numeric', @@ -179,8 +179,8 @@ export default function Article() { return (
-

기사를 찾을 수 없습니다

- +

Article Not Found

+
); diff --git a/client/src/pages/Community.tsx b/client/src/pages/Community.tsx index c724a17..a1b53aa 100644 --- a/client/src/pages/Community.tsx +++ b/client/src/pages/Community.tsx @@ -78,16 +78,16 @@ export default function Community() { const diffInMs = now.getTime() - postDate.getTime(); const diffInMinutes = Math.floor(diffInMs / 60000); - if (diffInMinutes < 1) return "방금"; - if (diffInMinutes < 60) return `${diffInMinutes}분 전`; + if (diffInMinutes < 1) return "just now"; + if (diffInMinutes < 60) return `${diffInMinutes}m ago`; const diffInHours = Math.floor(diffInMinutes / 60); - if (diffInHours < 24) return `${diffInHours}시간 전`; + if (diffInHours < 24) return `${diffInHours}h ago`; const diffInDays = Math.floor(diffInHours / 24); - if (diffInDays < 30) return `${diffInDays}일 전`; + if (diffInDays < 30) return `${diffInDays}d ago`; - return postDate.toLocaleDateString('ko-KR'); + return postDate.toLocaleDateString('en-US'); }; const filteredPosts = posts.filter(post => @@ -104,14 +104,14 @@ export default function Community() {
-

로딩 중...

+

Loading...

); } if (!outlet) { - return
미디어 아울렛을 찾을 수 없습니다
; + return
Media outlet not found
; } return ( @@ -232,9 +232,9 @@ export default function Community() {

- {outlet.name} 커뮤니티 + {outlet.name} Community

-

자유롭게 의견을 나눠보세요

+

Share your thoughts freely

@@ -248,12 +248,12 @@ export default function Community() { }} data-testid="button-new-post" > - 글쓰기 +Write Post - 새 글 작성 + Create New Post
{ e.preventDefault(); @@ -268,7 +268,7 @@ export default function Community() {
@@ -276,7 +276,7 @@ export default function Community() {