页面翻译

This commit is contained in:
kron
2025-10-27 14:21:31 +08:00
parent 14f43e929f
commit 63c002ed56
6 changed files with 67 additions and 104 deletions

View File

@@ -209,7 +209,7 @@ onMounted(async () => {
fontSize: '16px',
marginLeft: '2px',
}"
></text
>points</text
>
</view>
<view

View File

@@ -69,7 +69,6 @@ const ringText = (ring) => {
display: flex;
flex-direction: column;
justify-content: flex-end;
margin-top: -30rpx;
}
.container > view {
padding: 0 10rpx;

View File

@@ -4,15 +4,12 @@ import { onShow } from "@dcloudio/uni-app";
import Container from "@/components/Container.vue";
import EditOption from "@/components/EditOption.vue";
import SButton from "@/components/SButton.vue";
import { getPointBookDataAPI } from "@/apis";
const expandIndex = ref(0);
const bowType = ref("");
const distance = ref(0);
const bowtargetType = ref("");
const amountGroup = ref("");
const days = ref(0);
const arrows = ref(0);
const onExpandChange = (index, expand) => {
if (expandIndex.value !== -1) {
@@ -54,18 +51,11 @@ const toEditPage = () => {
});
} else {
uni.showToast({
title: "请完善信息",
title: "Please complete the information",
icon: "none",
});
}
};
// onShow(async () => {
// const result = await getPointBookDataAPI();
// if (result) {
// days.value = result.total_day || 0;
// arrows.value = result.total_arrow || 0;
// }
// });
onMounted(async () => {
const pointBook = uni.getStorageSync("point-book");
if (pointBook) {
@@ -82,29 +72,9 @@ onMounted(async () => {
:bgType="2"
bgColor="#F5F5F5"
:whiteBackArrow="false"
title="选择参数"
title="Select Parameters"
>
<view class="container">
<!-- <view class="header">
<image
src="https://static.shelingxingqiu.com/attachment/2025-08-06/dbv8w5ak76hozbfpy2.png"
mode="widthFix"
/>
<view>
<view>
<text>{{ days }}</text>
<text></text>
</view>
<text>训练天数</text>
</view>
<view>
<view>
<text>{{ arrows }}</text>
<text></text>
</view>
<text>训练箭数</text>
</view>
</view> -->
<view>
<EditOption
:itemIndex="0"
@@ -136,7 +106,7 @@ onMounted(async () => {
</view>
</view>
<view :style="{ marginBottom: '20px' }">
<SButton :rounded="50" :onClick="toEditPage">下一步</SButton>
<SButton :rounded="50" :onClick="toEditPage">Next</SButton>
</view>
</Container>
</template>
@@ -152,34 +122,4 @@ onMounted(async () => {
.container > view:nth-child(2) {
margin: 0 10px;
}
.header {
width: 100%;
height: 27vw;
position: relative;
display: flex;
align-items: center;
color: #ffffffc7;
font-size: 14px;
margin-top: 10px;
}
.header > image {
position: absolute;
width: 100%;
border: 2px solid #fff;
box-sizing: border-box;
border-radius: 10px;
}
.header > view {
position: relative;
}
.header > view:nth-child(2) {
margin-left: 7vw;
margin-right: 7vw;
}
.header > view > view > text:first-child {
font-size: 27px;
font-weight: 500;
margin-right: 5px;
color: #fff4c9;
}
</style>

View File

@@ -75,7 +75,7 @@ onLoad(async (options) => {
:bgType="2"
bgColor="#F5F5F5"
:whiteBackArrow="false"
title="分析"
title="Analysis"
:onBack="goBack"
>
<view class="container">
@@ -92,7 +92,7 @@ onLoad(async (options) => {
fontSize: selectedIndex === index ? '15px' : '13px',
letterSpacing: index !== 0 ? '2px' : '0',
}"
>{{ index === 0 ? "全部" : `${index}` }}</text
>{{ index === 0 ? "All" : `Set${index}` }}</text
>
<!-- <image
src="../static/s-triangle.png"
@@ -107,7 +107,7 @@ onLoad(async (options) => {
:style="{ display: 'flex', alignItems: 'center' }"
@click="() => openTip(1)"
>
<text>落点稳定性</text>
<text>Stability</text>
<image
src="../static/s-question-mark.png"
mode="widthFix"
@@ -117,25 +117,25 @@ onLoad(async (options) => {
<text>{{ Number((data.stability || 0).toFixed(2)) }}</text>
</view>
<view>
<view>黄心率</view>
<view>Yellow Rate</view>
<text>{{ Number((data.yellowRate * 100).toFixed(2)) }}%</text>
</view>
<view>
<view>10环数</view>
<view>10 Rings</view>
<text>{{ data.tenRings }}</text>
</view>
<view>
<view>平均环数</view>
<view>Avg Rings</view>
<text>{{ Number((data.averageRing || 0).toFixed(2)) }}</text>
</view>
<view>
<view>总环数</view>
<view>Total Rings</view>
<text>{{ data.userTotalRing }}/{{ data.totalRing }}</text>
</view>
</view>
<view class="title-bar">
<view />
<text>落点分布</text>
<text>Distribution</text>
<button hover-class="none" @click="() => openTip(2)">
<image
src="../static/s-question-mark.png"
@@ -155,22 +155,18 @@ onLoad(async (options) => {
<view :style="{ transform: 'translateY(-90rpx)' }">
<view class="title-bar">
<view />
<text>环值分布</text>
<text>Ring Value Distribution</text>
</view>
<view :style="{ padding: '0 30rpx' }">
<RingBarChart :data="ringRates" />
</view>
<view class="title-bar" :style="{ marginTop: '30rpx' }">
<view />
<text>{{
selectedIndex === 0 ? "每组环数" : `${selectedIndex}组环数`
}}</text>
<text>{{ selectedIndex === 0 ? "Rings per Set" : `Set ${selectedIndex} Rings` }}</text>
</view>
<view class="ring-text-groups">
<view v-for="(item, index) in groups" :key="index">
<text v-if="selectedIndex === 0 && index !== 0">{{
`${index}`
}}</text>
<text v-if="selectedIndex === 0 && index !== 0">{{ `Set${index}` }}</text>
<view
v-if="
(selectedIndex === 0 && index !== 0) ||
@@ -190,27 +186,27 @@ onLoad(async (options) => {
? "X"
: arrow.ring === -1
? "M"
: arrow.ring + "环"
: arrow.ring
}}
</text>
</view>
</view>
</view>
<view :style="{ marginBottom: '40rpx' }">
<SButton :onClick="goBack" :rounded="50">关闭</SButton>
<SButton :onClick="goBack" :rounded="50">Close</SButton>
</view>
</view>
<ScreenHint2 :show="showTip || showTip2" :onClose="closeTip">
<view class="tip-content">
<block v-if="showTip">
<text>落点稳定性说明</text>
<text>Stability Description</text>
<text
>通过计算每支箭与其他箭的平均距离衡一量射箭的稳定性,数字越小则说明射箭越稳定。该数据只能在用户标记落点的情况下生成。</text
>The stability of archery is measured by calculating the average distance of each arrow to other arrows. The smaller the number, the more stable the archery. This data can only be generated when the user marks the landing point.</text
>
</block>
<block v-if="showTip2">
<text>落点分布说明</text>
<text>展示用户某次练习中射箭的点位</text>
<text>Distribution Description</text>
<text>Show the user's archery points in a practice session</text>
</block>
</view>
</ScreenHint2>

View File

@@ -36,7 +36,7 @@ const onSubmit = async () => {
);
if (!isComplete) {
return uni.showToast({
title: "请完善信息",
title: "Please complete the information",
icon: "none",
});
}
@@ -112,11 +112,11 @@ onMounted(() => {
<view class="title-bar">
<view>
<view />
<text> {{ currentGroup }} </text>
<text>Set {{ currentGroup }}</text>
</view>
<view @click="deleteArrow">
<image src="../static/delete.png" />
<text>删除</text>
<text>Delete</text>
</view>
</view>
<view class="bow-arrows">
@@ -133,12 +133,15 @@ onMounted(() => {
isNaN(arrow.ring)
? arrow.ring
: arrow.ring
? arrow.ring + " "
? arrow.ring + " points"
: ""
}}</view
>
</view>
<text>推荐在靶纸上落点计分这样可获得稳定性分析</text>
<text
>It is recommended to score on the target face to obtain stability
analysis</text
>
<view class="bow-rings">
<view
v-for="(item, index) in ringTypes"
@@ -155,12 +158,12 @@ onMounted(() => {
</view>
<ScreenHint2 :show="showTip">
<view class="tip-content">
<text>现在离开会导致</text>
<text>未提交的数据丢失是否继续</text>
<text>Leaving now will result in the loss of unsaved data.</text>
<text>Are you sure you want to continue?</text>
<view>
<button hover-class="none" @click="onBack">退出</button>
<button hover-class="none" @click="onBack">Exit</button>
<button hover-class="none" @click="showTip = false">
继续记录
Continue
</button>
</view>
</view>
@@ -168,7 +171,7 @@ onMounted(() => {
</view>
<view :style="{ marginBottom: '20px' }">
<SButton :rounded="50" :onClick="onSubmit">
{{ currentGroup === groups ? "记完了,提交看分析" : "下一组" }}
{{ currentGroup === groups ? "Submit for analysis" : "Next set" }}
</SButton>
</view>
</Container>
@@ -177,9 +180,11 @@ onMounted(() => {
<style scoped>
.container {
width: 100%;
display: flex;
flex-direction: column;
}
.container > text {
margin: 15px;
margin: 0 30rpx;
color: #999;
font-size: 13px;
font-weight: 200;

View File

@@ -41,6 +41,10 @@ const toEditPage = () => {
</button>
</view>
<button hover-class="none">Log out</button>
<view>
<text>Have questions? Please contact us through email: </text>
<text>shelingxingqiu@163.com</text>
</view>
</view>
</view>
</template>
@@ -50,6 +54,7 @@ const toEditPage = () => {
display: flex;
flex-direction: column;
align-items: center;
height: 100%;
}
.header {
position: relative;
@@ -73,36 +78,41 @@ const toEditPage = () => {
.body {
width: 100%;
margin-top: 20rpx;
display: flex;
flex-direction: column;
align-items: center;
flex: 1;
}
.body > view {
.body > view:first-child {
background-color: $uni-bg-color;
border-radius: 25px;
padding: 0 20px;
width: calc(100% - 80rpx);
}
.body > view > button {
.body > view:first-child > button {
display: flex;
align-items: center;
padding: 20px 0;
}
.body > view > button:not(:last-child) {
.body > view:first-child > button:not(:last-child) {
border-bottom: 1rpx solid #e3e3e3;
}
.body > view > button > image:first-child {
.body > view:first-child > button > image:first-child {
width: 40rpx;
height: 40rpx;
}
.body > view > button > text {
.body > view:first-child > button > text {
flex: 1;
font-size: 26rpx;
color: #333333;
text-align: left;
padding-left: 20rpx;
}
.body > view > button > image:last-child {
.body > view:first-child > button > image:last-child {
width: 28rpx;
height: 28rpx;
}
.body > button:last-child {
.body > button {
margin-top: 24rpx;
background: $uni-bg-color;
border-radius: 24rpx;
@@ -110,5 +120,18 @@ const toEditPage = () => {
color: $uni-link-color;
text-align: center;
padding: 20px 0;
width: 100%;
}
.body > view:last-child {
margin-top: auto;
padding-bottom: 25rpx;
display: flex;
flex-direction: column;
align-items: center;
font-size: 24rpx;
color: #666666;
}
.body > view:last-child > text:last-child {
color: $uni-link-color;
}
</style>