feat(i18n): 实现应用国际化支持,添加中英文翻译

- 为所有UI组件添加国际化支持,替换硬编码文本
- 新增useI18n钩子函数统一管理翻译
- 完善中英文翻译资源,覆盖统计、用药、通知设置等模块
- 优化Tab布局使用翻译键值替代静态文本
- 更新药品管理、个人资料编辑等页面的多语言支持
This commit is contained in:
richarjiang
2025-11-13 11:09:55 +08:00
parent 416d144387
commit 2dca3253e6
21 changed files with 1669 additions and 366 deletions

View File

@@ -2,6 +2,7 @@ import { MoodCheckin, getMoodConfig } from '@/services/moodCheckins';
import dayjs from 'dayjs';
import LottieView from 'lottie-react-native';
import React, { useEffect, useRef } from 'react';
import { useTranslation } from 'react-i18next';
import { Image, StyleSheet, Text, TouchableOpacity, View } from 'react-native';
interface MoodCardProps {
@@ -11,6 +12,7 @@ interface MoodCardProps {
}
export function MoodCard({ moodCheckin, onPress }: MoodCardProps) {
const { t } = useTranslation();
const moodConfig = moodCheckin ? getMoodConfig(moodCheckin.moodType) : null;
const animationRef = useRef<LottieView>(null);
@@ -28,7 +30,7 @@ export function MoodCard({ moodCheckin, onPress }: MoodCardProps) {
source={require('@/assets/images/icons/icon-mood.png')}
style={styles.titleIcon}
/>
<Text style={styles.cardTitle}></Text>
<Text style={styles.cardTitle}>{t('statistics.components.mood.title')}</Text>
</View>
<LottieView
ref={animationRef}
@@ -48,7 +50,7 @@ export function MoodCard({ moodCheckin, onPress }: MoodCardProps) {
</Text>
</View>
) : (
<Text style={styles.moodEmptyText}></Text>
<Text style={styles.moodEmptyText}>{t('statistics.components.mood.empty')}</Text>
)}
</TouchableOpacity>
);