chore(邀请新用户页面): 增加阿语翻译

This commit is contained in:
hzj 2025-12-05 12:04:39 +08:00
parent f9bec96d3c
commit 739dd68615
4 changed files with 68 additions and 21 deletions

View File

@ -302,5 +302,20 @@
"enter_card_number": "أدخل رقم البطاقة", "enter_card_number": "أدخل رقم البطاقة",
"enter_payee": "أدخل اسم المستفيد", "enter_payee": "أدخل اسم المستفيد",
"admin_policy": "سياسة المشرف" "admin_policy": "سياسة المشرف",
"invitation_to_register": "دعوة للتسجيل",
"total_invitations": "إجمالي الدعوات:",
"todays_invitation": "دعوات اليوم:",
"invitation_total_income": "إجمالي الدخل:",
"todays_income": "دخل اليوم:",
"users": "المستخدمون",
"remaining_time": "الوقت المتبقي",
"prowide_income": "الدخل المقدم",
"copied_successfully": "تم النسخ بنجاح",
"please_enter_valid_invitation_code": "يرجى إدخال رمز دعوة صالح.",
"invitation_code_bound_successfully": "تم ربط رمز الدعوة بنجاح!",
"invitation_code_binding_failed": "فشل ربط رمز الدعوة.",
"user_id_prefix": "المعرف:",
"day_unit": "يوم"
} }

View File

@ -302,5 +302,20 @@
"enter_card_number": "Enter the Card Number", "enter_card_number": "Enter the Card Number",
"enter_payee": "Enter the payee", "enter_payee": "Enter the payee",
"admin_policy": "Admin Policy" "admin_policy": "Admin Policy",
"invitation_to_register": "Invitation to register",
"total_invitations": "Total invitations:",
"todays_invitation": "Today's invitation:",
"invitation_total_income": "Total income:",
"todays_income": "Today's income:",
"users": "Users",
"remaining_time": "Remaining time",
"prowide_income": "Prowide income",
"copied_successfully": "Copied successfully",
"please_enter_valid_invitation_code": "Please enter a valid invitation code.",
"invitation_code_bound_successfully": "Invitation code bound successfully!",
"invitation_code_binding_failed": "Invitation code binding failed.",
"user_id_prefix": "ID:",
"day_unit": "Day"
} }

View File

@ -302,5 +302,20 @@
"enter_card_number": "请输入卡号", "enter_card_number": "请输入卡号",
"enter_payee": "请输入收款人", "enter_payee": "请输入收款人",
"admin_policy": "管理员政策" "admin_policy": "管理员政策",
"invitation_to_register": "邀请注册",
"total_invitations": "总邀请人数:",
"todays_invitation": "今日邀请人数:",
"invitation_total_income": "总收入:",
"todays_income": "今日收入:",
"users": "用户",
"remaining_time": "剩余时间",
"prowide_income": "提供收入",
"copied_successfully": "复制成功",
"please_enter_valid_invitation_code": "请输入有效的邀请码。",
"invitation_code_bound_successfully": "邀请码绑定成功!",
"invitation_code_binding_failed": "邀请码绑定失败。",
"user_id_prefix": "ID:",
"day_unit": "天"
} }

View File

@ -5,7 +5,7 @@
<GeneralHeader <GeneralHeader
:isHomePage="true" :isHomePage="true"
:showHelp="true" :showHelp="true"
title="Invitation to register" :title="t('invitation_to_register')"
@help="helpInfoShow = true" @help="helpInfoShow = true"
/> />
</div> </div>
@ -130,7 +130,7 @@
padding: 2vw; padding: 2vw;
" "
> >
<div>Total invitations:</div> <div>{{ t('total_invitations') }}</div>
<div>{{ myInviteIncome.validInviteCount || 0 }}</div> <div>{{ myInviteIncome.validInviteCount || 0 }}</div>
</div> </div>
@ -144,7 +144,7 @@
padding: 2vw; padding: 2vw;
" "
> >
<div>Today's invitation:</div> <div>{{ t('todays_invitation') }}</div>
<div>{{ myInviteIncome.todayInviteCount || 0 }}</div> <div>{{ myInviteIncome.todayInviteCount || 0 }}</div>
</div> </div>
@ -158,7 +158,7 @@
padding: 2vw; padding: 2vw;
" "
> >
<div>Total income:</div> <div>{{ t('invitation_total_income') }}</div>
<div style="display: flex; align-items: center"> <div style="display: flex; align-items: center">
<img <img
v-smart-img v-smart-img
@ -171,7 +171,7 @@
</div> </div>
</div> </div>
<!-- 今日邀请人数 --> <!-- 今日收入 -->
<div <div
style=" style="
align-self: stretch; align-self: stretch;
@ -181,7 +181,7 @@
padding: 2vw; padding: 2vw;
" "
> >
<div>Today's income:</div> <div>{{ t('todays_income') }}</div>
<div style="display: flex; align-items: center"> <div style="display: flex; align-items: center">
<img <img
v-smart-img v-smart-img
@ -217,7 +217,7 @@
> >
<!-- 头部 --> <!-- 头部 -->
<div style="width: 100%; display: flex; align-items: center"> <div style="width: 100%; display: flex; align-items: center">
<div style="flex: 1; font-weight: 590; font-size: 0.85em">Users</div> <div style="flex: 1; font-weight: 590; font-size: 0.85em">{{ t('users') }}</div>
<div <div
style=" style="
flex: 1; flex: 1;
@ -238,7 +238,7 @@
); );
" "
></div> ></div>
<div style="font-weight: 590; font-size: 0.82em">Remaining time</div> <div style="font-weight: 590; font-size: 0.82em">{{ t('remaining_time') }}</div>
<div <div
style=" style="
width: 1px; width: 1px;
@ -252,7 +252,7 @@
></div> ></div>
</div> </div>
<div style="flex: 1; font-weight: 590; text-align: end; font-size: 0.82em"> <div style="flex: 1; font-weight: 590; text-align: end; font-size: 0.82em">
Prowide income {{ t('prowide_income') }}
</div> </div>
</div> </div>
@ -263,7 +263,7 @@
style="width: 100%; display: flex; align-items: center" style="width: 100%; display: flex; align-items: center"
> >
<div style="flex: 1; font-weight: 590; font-size: 0.7em"> <div style="flex: 1; font-weight: 590; font-size: 0.7em">
ID:{{ user.invitedUserAccount || '-' }} {{ t('user_id_prefix') }}{{ user.invitedUserAccount || '-' }}
</div> </div>
<div <div
style=" style="
@ -286,7 +286,7 @@
" "
></div> ></div>
<div style="font-weight: 590; font-size: 0.7em"> <div style="font-weight: 590; font-size: 0.7em">
{{ user.remainingDays || 0 }}Day {{ user.remainingDays || 0 }}{{ t('day_unit') }}
</div> </div>
<div <div
style=" style="
@ -452,7 +452,7 @@
<div <div
style="padding: 12px; border-radius: 8px; background: rgba(0, 0, 0, 0.4); font-weight: 600" style="padding: 12px; border-radius: 8px; background: rgba(0, 0, 0, 0.4); font-weight: 600"
> >
Copied successfully {{ t('copied_successfully') }}
</div> </div>
</div> </div>
</div> </div>
@ -460,6 +460,7 @@
<script setup> <script setup>
import { computed, onMounted, ref } from 'vue' import { computed, onMounted, ref } from 'vue'
import { useI18n } from 'vue-i18n'
import { useLangStore } from '@/stores/lang' import { useLangStore } from '@/stores/lang'
import { gotoPrivateChat } from '@/utils/appBridge.js' import { gotoPrivateChat } from '@/utils/appBridge.js'
import { showError, showWarning, showInfo, showSuccess } from '@/utils/toast.js' import { showError, showWarning, showInfo, showSuccess } from '@/utils/toast.js'
@ -482,6 +483,7 @@ import GeneralHeader from '@/components/GeneralHeader.vue'
import itemCenter from '@/components/itemCenter.vue' import itemCenter from '@/components/itemCenter.vue'
import maskLayer from '@/components/MaskLayer.vue' import maskLayer from '@/components/MaskLayer.vue'
const { t } = useI18n()
const langStore = useLangStore() const langStore = useLangStore()
// //
const currentLangType = computed(() => { const currentLangType = computed(() => {
@ -546,7 +548,7 @@ const showDetail = (reward) => {
} else if (reward.type === 'DOLLARS') { } else if (reward.type === 'DOLLARS') {
return `$${reward.content}` return `$${reward.content}`
} else { } else {
return `${reward.quantity}Days` return `${reward.quantity}${t('day_unit')}`
} }
} }
@ -573,13 +575,13 @@ const copyCode = (text) => {
// //
const showAwardText = (award) => { const showAwardText = (award) => {
if (award.type == 'GOLD') return award.quantity if (award.type == 'GOLD') return award.quantity
return award.quantity + 'Days' return award.quantity + t('day_unit')
} }
// //
const confirmInvitationCode = () => { const confirmInvitationCode = () => {
if (!invitationCode.value.trim()) { if (!invitationCode.value.trim()) {
showWarning('Please enter a valid invitation code.') showWarning(t('please_enter_valid_invitation_code'))
return return
} }
} }
@ -603,16 +605,16 @@ const apiGetMyInviter = async () => {
// //
const confirm = async () => { const confirm = async () => {
if (!invitationCode.value.trim()) { if (!invitationCode.value.trim()) {
showWarning('Please enter a valid invitation code.') showWarning(t('please_enter_valid_invitation_code'))
return return
} }
let data = { inviteCode: invitationCode.value.trim(), inviteType: 'REGISTER' } let data = { inviteCode: invitationCode.value.trim(), inviteType: 'REGISTER' }
try { try {
const resBind = await bindInviteCode(data) const resBind = await bindInviteCode(data)
if (resBind.status) { if (resBind.status) {
showSuccess('Invitation code bound successfully!') showSuccess(t('invitation_code_bound_successfully'))
} else { } else {
showError('Invitation code binding failed.') showError(t('invitation_code_binding_failed'))
} }
invitationCode.value = '' invitationCode.value = ''
enterCodeShow.value = false enterCodeShow.value = false