diff --git a/src/lang/en.ts b/src/lang/en.ts index 4e63a2b..7317398 100644 --- a/src/lang/en.ts +++ b/src/lang/en.ts @@ -1,6 +1,8 @@ export default { Login: { + signup: 'Sign up', login: 'Log in', + logoff: 'Log off', register: 'Register', loginTip: 'Platform integrated with AiDA.
AiDA account login required.', name: 'Name', @@ -11,6 +13,7 @@ export default { enterEmail: 'Enter your email', enterPassword: 'Enter your password', enterPasswordAgain: 'Enter your password again', + passwordTip: 'You must satisfy ALL password conditions to register.', forgotPassword: 'Forget password?', pleaseInputName: 'Please input the name', nameLengthError: 'Name length must be between {min} and {max} characters', @@ -37,7 +40,24 @@ export default { wechatLogin: 'Sign in with Wechat', indexTip: 'A multi-agent canvas for rapid, trend driven design iteration.', sendCodeError: 'Send code error', - retrievePassword: 'Retrieve password' + retrievePassword: 'Retrieve password', + emailVerification: 'Email Verification', + retrievePasswordTitle: 'Please enter your email address below to verify your identity.', + submit: 'Submit', + enterNewPassword: 'Enter a new password for
{email}', + passwordsDoNotMatch: 'Passwords do not match', + logOffTip: 'Are you sure to log off?', + }, + RegisterSuccess: { + title1: 'Welcome to Stylish Parade!', + title2: 'Please switch to the Login tab to log in.', + title3: 'What awaits you in Stylish Parade', + item1title: 'Behind the design', + item1tip: 'Discover how designers bring ideas to life with AiDA — from first sketch to final look.', + item2title: 'Creative digital works', + item2tip: 'Unlock a growing library of inspiring digital works to refresh your creative mind.', + item3title: 'A fashion community', + item3tip: 'Join a space where fashion speaks — exchange ideas and connect with creators worldwide.', }, Settings: { title: 'Settings', @@ -235,6 +255,8 @@ export default { digitalItem:{ BestSelling: 'Best Selling', Price: 'Price: Low to High', + SelectedFirst: 'Selected First', + DateAdded: 'Date Added', NewestFirst: 'Newest First', title: 'Digital Item', info: 'Virtual fashion creations collected in your personal archive', @@ -250,5 +272,34 @@ export default { }, checked: { All: 'All', - } + }, + MainHeader: { + Home: 'Home', + CollectionStory: 'Collection Story', + Brand: 'Brand', + DigitalItem: 'Digital Item', + HiName: 'Hi, {name}', + MyWardrobe: 'My Wardrobe', + Notifications: 'Notifications', + Settings: 'Settings', + }, + ShoppingCart: { + title: 'Shopping Cart', + listNullTitle: 'Your Cart is empty', + listNullTip: 'Discover new fashion assets and add them to your cart.', + dateTimeFormat: 'SM D, YYYY, h:mm A', + noLongerAvailable: 'No Longer Available', + delistedFromMarketplace: 'Delisted from marketplace', + remove: 'Remove', + removeTip: 'Are you sure to remove this item?', + total: 'Total', + digitalAssets: 'Digital assets. Creator retains copyright.', + checkout: 'Checkout', + exploreDigitalItems: 'Explore Digital Items', + orderSummary: 'Order Summary', + selected: 'Selected', + brands: 'Brands', + item: 'item', + checkoutSelected: 'Checkout Selected', + }, } \ No newline at end of file diff --git a/src/lang/zh-cn.ts b/src/lang/zh-cn.ts index b51d165..750464a 100644 --- a/src/lang/zh-cn.ts +++ b/src/lang/zh-cn.ts @@ -1,6 +1,8 @@ export default { Login: { + signup: '注册', login: '登录', + logoff: '退出登录', register: '注册', loginTip: '与 AiDA 集成的平台。
需要登录 AiDA 账户。', name: '姓名', @@ -11,6 +13,7 @@ export default { enterEmail: '请输入邮箱', enterPassword: '请输入密码', enterPasswordAgain: '请输入密码确认', + passwordTip: '你必须满足所有密码条件才能注册。', forgotPassword: '忘记密码?', pleaseInputName: '请输入姓名', nameLengthError: '姓名长度必须在 {min} 到 {max} 个字符之间', @@ -37,7 +40,24 @@ export default { wechatLogin: '使用微信登录', indexTip: '一个多智能体画布,用于快速、趋势驱动的设计迭代。', sendCodeError: '发送验证码失败', - retrievePassword: '找回密码' + retrievePassword: '找回密码', + emailVerification: '邮箱验证', + retrievePasswordTitle: '请输入您的邮箱地址以验证您的身份。', + submit: '提交', + enterNewPassword: '请输入新密码
{email}', + passwordsDoNotMatch: '两次输入密码不一致', + logOffTip: '确定退出登录吗?', + }, + RegisterSuccess: { + title1: '欢迎来到 Stylish Parade!', + title2: '请切换到登录选项卡以登录。', + title3: '在 Stylish Parade 中等待你的发现', + item1title: '设计灵感', + item1tip: '了解设计师是如何借助 AiDA 将创意变为现实的——从最初的草图到最终的成品。', + item2title: '创意数字作品', + item2tip: '解锁一个增长的数字作品库,刷新你的创意。', + item3title: '时尚社区', + item3tip: '加入一个全球的时尚社区,与设计师分享创意。', }, Settings: { title: '设置', @@ -235,6 +255,8 @@ export default { digitalItem: { BestSelling: "畅销优先", Price: "价格:从低到高", + SelectedFirst: "已选优先", + DateAdded: "添加日期", NewestFirst: "最新优先", title: "数字藏品", info: "收藏于个人档案中的虚拟时装作品", @@ -250,5 +272,34 @@ export default { }, checked: { All: "全部" - } + }, + MainHeader: { + Home: '首页', + CollectionStory: '系列故事', + Brand: '品牌', + DigitalItem: '数字藏品', + HiName: '你好,{name}', + MyWardrobe: '我的衣橱', + Notifications: '通知', + Settings: '设置', + }, + ShoppingCart: { + title: '购物车', + listNullTitle: '你的购物车为空', + listNullTip: '发现新的时尚资产并将其添加到你的购物车。', + dateTimeFormat: 'YYYY-MM-DD HH:mm', + noLongerAvailable: '已下架', + delistedFromMarketplace: '已从市场移除', + remove: '删除', + removeTip: '确认删除吗?', + total: '总金额', + digitalAssets: '数字资产。创作者保留版权。', + checkout: '结账', + exploreDigitalItems: '探索数字单品', + orderSummary: '订单信息', + selected: '已选', + brands: '品牌', + item: '数字藏品', + checkoutSelected: '结账已选', + }, } diff --git a/src/views/login/login-dialog.vue b/src/views/login/login-dialog.vue index 28169cf..d6c6f54 100644 --- a/src/views/login/login-dialog.vue +++ b/src/views/login/login-dialog.vue @@ -14,26 +14,28 @@
-
+
-
{{ curentTabInfo.title }}
+
{{ $t(curentTabInfo.title) }}
@@ -70,6 +72,8 @@ import retrievePassword from './retrieve-password.vue' import myEvent from '@/utils/myEvent' import { useUserInfoStore } from '@/stores/userInfo' + import { useRouter } from 'vue-router' + const router = useRouter() const userStore = useUserInfoStore() const data = ref({ name: '', @@ -95,12 +99,12 @@ }, { name: TabNames.email_verify, - title: 'EMAIL VERIFICATION', + title: 'Login.emailVerification', component: emailVerify }, { name: TabNames.retrieve_password, - title: 'RETRIEVE PASSWORD', + title: 'Login.retrievePassword', component: retrievePassword }, { @@ -157,6 +161,9 @@ AccountLogin(value).then((v) => { userStore.setUserInfo(v) show.value = false + setTimeout(() => { + router.go(0) + }) }) } else { value['username'] = data.value.name @@ -244,6 +251,7 @@ font-size: 2rem; font-family: KaiseiOpti-Regular; color: #9f9f9f; + text-transform: uppercase; &.active { font-family: KaiseiOpti-Bold; color: #232323; @@ -273,6 +281,7 @@ font-family: KaiseiOpti-Bold; font-size: 2rem; color: #232323; + text-transform: uppercase; } } } diff --git a/src/views/login/register-success.vue b/src/views/login/register-success.vue index d619448..e743936 100644 --- a/src/views/login/register-success.vue +++ b/src/views/login/register-success.vue @@ -1,31 +1,25 @@ - +
/ ENG @@ -93,19 +95,19 @@ const activePath = computed(() => route.path) const navList1 = ref([ { - name: 'Home', + name: 'MainHeader.Home', path: '/' }, { - name: 'Collection Story', + name: 'MainHeader.CollectionStory', path: '/collectionStory' }, { - name: 'Brand', + name: 'MainHeader.Brand', path: '/brand' }, { - name: 'Digital Item', + name: 'MainHeader.DigitalItem', path: '/digitalItem' } ]) @@ -142,7 +144,7 @@ } const onLogout = () => { hideProfilePopover() - ElMessageBox.confirm('Are you sure to log off?') + ElMessageBox.confirm(t('Login.logOffTip')) .then(() => { userInfoStore.logout(true) }) diff --git a/src/views/shoppingCart/order-summary.vue b/src/views/shoppingCart/order-summary.vue index fe80c9a..968dd8b 100644 --- a/src/views/shoppingCart/order-summary.vue +++ b/src/views/shoppingCart/order-summary.vue @@ -1,33 +1,35 @@ @@ -162,6 +164,7 @@ > .checkout-btn { width: 100%; margin-top: 3rem; + text-transform: uppercase; } > .tip { margin-top: 1rem; diff --git a/src/views/shoppingCart/sc-item.vue b/src/views/shoppingCart/sc-item.vue index 5fb5854..b179360 100644 --- a/src/views/shoppingCart/sc-item.vue +++ b/src/views/shoppingCart/sc-item.vue @@ -19,7 +19,7 @@
- {{ FormatDate(info.date, 'SM D, YYYY, h:mm A') }} + {{ FormatDate(info.date, $t('ShoppingCart.dateTimeFormat')) }}
@@ -27,9 +27,9 @@
- No Longer Available + {{ $t('ShoppingCart.noLongerAvailable') }}
-
Delisted from marketplace
+
{{ $t('ShoppingCart.delistedFromMarketplace') }}
${{ info.amount }} HKD
- Remove + {{ $t('ShoppingCart.remove') }}
diff --git a/src/views/shoppingCart/sc-list-null.vue b/src/views/shoppingCart/sc-list-null.vue index 2f24a12..e69c36e 100644 --- a/src/views/shoppingCart/sc-list-null.vue +++ b/src/views/shoppingCart/sc-list-null.vue @@ -4,7 +4,9 @@
{{ title }}
{{ tip }}
- + @@ -15,7 +17,7 @@ title: { type: String, default: '' }, tip: { type: String, default: '' }, showButton: { type: Boolean, default: true }, - buttonText: { type: String, default: 'EXPLORE DIGITAL ITEMS' } + buttonText: { type: String, default: '' } }) const emit = defineEmits(['explore']) const handleClick = () => { @@ -58,6 +60,7 @@ font-size: 1.6rem; color: #979797; margin-top: 3rem; + text-transform: uppercase; } } \ No newline at end of file diff --git a/src/views/shoppingCart/sc-list.vue b/src/views/shoppingCart/sc-list.vue index dd7de06..b5ec69c 100644 --- a/src/views/shoppingCart/sc-list.vue +++ b/src/views/shoppingCart/sc-list.vue @@ -3,7 +3,7 @@
- {{ title || 'Shopping Cart' }} + {{ title || $t('ShoppingCart.title') }} @@ -15,22 +15,32 @@ :indeterminate="selectedCount === 0 ? false : selectedCount < maxLength" @click="handleAllAllClick" /> - {{ selectedCount }}  Selected + {{ + $t('Wardrobe.assets.selectedCount', { count: selectedCount }) + }}
-
Select All
-
Deselect All
+
+ {{ $t('Wardrobe.assets.selectAll') }} +
+
+ {{ $t('Wardrobe.assets.deselectAll') }} +
- +
@@ -40,8 +50,8 @@
@@ -85,6 +95,8 @@ import scItem from './sc-item.vue' import scListNull from './sc-list-null.vue' import { useRouter } from 'vue-router' + import { useI18n } from 'vue-i18n' + const { t } = useI18n() const router = useRouter() const emit = defineEmits(['close', 'selected-change']) const props = defineProps({ @@ -103,19 +115,19 @@ const sortBy = ref('DateAdded') const sortByOptions = ref([ { - label: 'Best Selling', + label: 'digitalItem.BestSelling', value: 'BestSelling' }, { - label: 'Price: Low to High', + label: 'digitalItem.Price', value: 'PriceLowToHigh' }, { - label: 'Selected First', + label: 'digitalItem.SelectedFirst', value: 'SelectedFirst' }, { - label: 'Date Added', + label: 'digitalItem.DateAdded', value: 'DateAdded' } ]) @@ -177,7 +189,7 @@ handleSelectedChange() }) const handleRemoveClick = (value: any) => { - ElMessageBox.confirm('Are you sure to remove this item?') + ElMessageBox.confirm(t('ShoppingCart.removeTip')) .then(() => { RemoveShoppingCartItem({ listingId: value.listingId }).then(() => { GetList() @@ -365,6 +377,7 @@ height: 4.6rem; --button-font-size: 1.4rem; margin-top: 2rem; + text-transform: uppercase; } } }