diff --git a/apps/web/src/components/ui/date-range-indicator/DateRangeIndicator.tsx b/apps/web/src/components/ui/date-range-indicator/DateRangeIndicator.tsx index 25dd1460..5db2f9f9 100644 --- a/apps/web/src/components/ui/date-range-indicator/DateRangeIndicator.tsx +++ b/apps/web/src/components/ui/date-range-indicator/DateRangeIndicator.tsx @@ -1,5 +1,6 @@ import { AnimatePresence, m } from 'motion/react' import { memo } from 'react' +import { useTranslation } from 'react-i18next' import { useMobile } from '~/hooks/useMobile' import { clsxm } from '~/lib/cn' @@ -14,6 +15,11 @@ interface DateRangeIndicatorProps { export const DateRangeIndicator = memo( ({ dateRange, location, isVisible, className }: DateRangeIndicatorProps) => { + const { t } = useTranslation() + const translateDay = (day: string | number) => t(`date.day.${day}` as any) + const translateMonth = (month: string | number) => + t(`date.month.${month}` as any) + // 解析日期范围,提取主要的日期信息 const parseMainDate = (range: string) => { // 匹配跨年日期范围格式 "2022年3月 - 2023年5月" @@ -22,7 +28,8 @@ export const DateRangeIndicator = memo( ) if (crossYearMatch) { const [, startYear, startMonth, endYear, endMonth] = crossYearMatch - return `${startMonth}月 ${startYear} – ${endMonth}月 ${endYear}` + // return `${startMonth}月 ${startYear} – ${endMonth}月 ${endYear}` + return `${translateMonth(startMonth)} ${startYear} - ${translateMonth(endMonth)} ${endYear}` } // 匹配类似 "2022年3月30日 - 5月2日" 的格式 @@ -32,21 +39,24 @@ export const DateRangeIndicator = memo( if (singleYearDayMatch) { const [, year, startMonth, startDay, endMonth, endDay] = singleYearDayMatch - return `${startMonth}月${startDay}日–${endMonth}月${endDay}日, ${year}` + // return `${startMonth}月${startDay}日–${endMonth}月${endDay}日, ${year}` + return `${translateMonth(startMonth)} ${translateDay(startDay)} - ${translateMonth(endMonth)} ${translateDay(endDay)} ${year}` } // 匹配类似 "2022年3月 - 5月" 的格式 const monthRangeMatch = range.match(/(\d{4})年(\d+)月\s*-\s*(\d+)月/) if (monthRangeMatch) { const [, year, startMonth, endMonth] = monthRangeMatch - return `${startMonth}月–${endMonth}月, ${year}` + // return `${startMonth}月–${endMonth}月, ${year}` + return `${translateMonth(startMonth)} - ${translateMonth(endMonth)} ${year}` } // 匹配单个日期 const singleDateMatch = range.match(/(\d{4})年(\d+)月(\d+)日/) if (singleDateMatch) { const [, year, month, day] = singleDateMatch - return `${month}月${day}日, ${year}` + // return `${month}月${day}日, ${year}` + return `${translateMonth(month)} ${translateDay(day)} ${year}` } // 默认返回原始字符串 diff --git a/apps/web/src/components/ui/map/ClusterPhotoGrid.tsx b/apps/web/src/components/ui/map/ClusterPhotoGrid.tsx index 38ec3108..ede0df96 100644 --- a/apps/web/src/components/ui/map/ClusterPhotoGrid.tsx +++ b/apps/web/src/components/ui/map/ClusterPhotoGrid.tsx @@ -18,16 +18,16 @@ export const ClusterPhotoGrid = ({ // 最多显示 6 张照片 const displayPhotos = photos.slice(0, 6) const remainingCount = Math.max(0, photos.length - 6) - const { i18n } = useTranslation() + const { t, i18n } = useTranslation() return (
{/* 标题 */}

- {photos.length} 张照片 + {t('explory.cluster.photos', { count: photos.length })}

-
点击查看详情
+
{t('explory.cluster.click.details')}
{/* 照片网格 */} @@ -104,7 +104,7 @@ export const ClusterPhotoGrid = ({
+{remainingCount}
-
更多
+
{t('explory.cluster.more')}
)} diff --git a/apps/web/src/components/ui/map/shared/MapControls.tsx b/apps/web/src/components/ui/map/shared/MapControls.tsx index ce1a9726..0276e958 100644 --- a/apps/web/src/components/ui/map/shared/MapControls.tsx +++ b/apps/web/src/components/ui/map/shared/MapControls.tsx @@ -1,10 +1,12 @@ import { m } from 'motion/react' +import { useTranslation } from 'react-i18next' import { useMap } from 'react-map-gl/maplibre' import type { MapControlsProps } from './types' export const MapControls = ({ onGeolocate }: MapControlsProps) => { const { current: map } = useMap() + const { t } = useTranslation() const handleZoomIn = () => { if (map) { @@ -66,7 +68,7 @@ export const MapControls = ({ onGeolocate }: MapControlsProps) => { type="button" onClick={handleZoomIn} className="group hover:bg-fill-secondary active:bg-fill-tertiary flex h-12 w-12 items-center justify-center transition-colors" - title="放大" + title={t('explory.controls.zoom.in')} > @@ -79,7 +81,7 @@ export const MapControls = ({ onGeolocate }: MapControlsProps) => { type="button" onClick={handleZoomOut} className="group hover:bg-fill-secondary active:bg-fill-tertiary flex h-12 w-12 items-center justify-center transition-colors" - title="缩小" + title={t('explory.controls.zoom.out')} > @@ -91,7 +93,7 @@ export const MapControls = ({ onGeolocate }: MapControlsProps) => { type="button" onClick={handleCompass} className="group hover:bg-fill-secondary active:bg-fill-tertiary flex h-12 w-12 items-center justify-center transition-colors" - title="重置方向" + title={t('explory.controls.compass')} > @@ -103,7 +105,7 @@ export const MapControls = ({ onGeolocate }: MapControlsProps) => { type="button" onClick={handleGeolocate} className="group hover:bg-fill-secondary active:bg-fill-tertiary flex h-12 w-12 items-center justify-center transition-colors" - title="定位到我的位置" + title={t('explory.controls.locate')} > diff --git a/apps/web/src/components/ui/slider.tsx b/apps/web/src/components/ui/slider.tsx index 763c6e70..15aa7b38 100644 --- a/apps/web/src/components/ui/slider.tsx +++ b/apps/web/src/components/ui/slider.tsx @@ -174,7 +174,9 @@ export const Slider = ({ {/* 当前值显示 */}
- {value === 'auto' ? finalAutoLabel : `${value} 列`} + {value === 'auto' + ? finalAutoLabel + : t('slider.columns', { count: value } as any)}
) diff --git a/apps/web/src/pages/explory/index.tsx b/apps/web/src/pages/explory/index.tsx index dee94bae..cf383280 100644 --- a/apps/web/src/pages/explory/index.tsx +++ b/apps/web/src/pages/explory/index.tsx @@ -58,6 +58,8 @@ const ExploryPageSkeleton = () => { } const ExploryPageError = () => { + const { t } = useTranslation() + return ( { animate={{ opacity: 1, y: 0 }} transition={{ duration: 0.3, delay: 0.2 }} > - 地图加载失败 + {t('explory.map.error.title')} { animate={{ opacity: 1, y: 0 }} transition={{ duration: 0.3, delay: 0.3 }} > - 请检查网络连接或刷新页面重试 + {t('explory.map.error.description')} diff --git a/locales/app/en.json b/locales/app/en.json index eccb9403..849a6272 100644 --- a/locales/app/en.json +++ b/locales/app/en.json @@ -26,6 +26,49 @@ "action.tag.not-found": "No tags match your search", "action.tag.search": "Search Tags", "action.view.github": "View GitHub Repository", + "date.day.1": "1st", + "date.day.10": "10th", + "date.day.11": "11th", + "date.day.12": "12th", + "date.day.13": "13th", + "date.day.14": "14th", + "date.day.15": "15th", + "date.day.16": "16th", + "date.day.17": "17th", + "date.day.18": "18th", + "date.day.19": "19th", + "date.day.2": "2nd", + "date.day.20": "20th", + "date.day.21": "21st", + "date.day.22": "22nd", + "date.day.23": "23rd", + "date.day.24": "24th", + "date.day.25": "25th", + "date.day.26": "26th", + "date.day.27": "27th", + "date.day.28": "28th", + "date.day.29": "29th", + "date.day.3": "3rd", + "date.day.30": "30th", + "date.day.31": "31st", + "date.day.4": "4th", + "date.day.5": "5th", + "date.day.6": "6th", + "date.day.7": "7th", + "date.day.8": "8th", + "date.day.9": "9th", + "date.month.1": "Jan", + "date.month.10": "Oct", + "date.month.11": "Nov", + "date.month.12": "Dec", + "date.month.2": "Feb", + "date.month.3": "Mar", + "date.month.4": "Apr", + "date.month.5": "May", + "date.month.6": "Jun", + "date.month.7": "Jul", + "date.month.8": "Aug", + "date.month.9": "Sep", "error.feedback": "Still having this issue? Please provide feedback on Github, thank you!", "error.reload": "Reload", "error.submit.issue": "Submit Issue", @@ -232,6 +275,14 @@ "exif.white.balance.title": "White Balance", "explory.back.to.gallery": "Back to Gallery", "explory.clear.selection": "Clear Selection", + "explory.cluster.click.details": "Click to view details", + "explory.cluster.more": "More", + "explory.cluster.photos_one": "{{count}} photo", + "explory.cluster.photos_other": "{{count}} photos", + "explory.controls.compass": "Reset bearing", + "explory.controls.locate": "Locate me", + "explory.controls.zoom.in": "Zoom in", + "explory.controls.zoom.out": "Zoom out", "explory.explore.map": "Explore Map", "explory.found.locations": "Found {{count}} shooting locations", "explory.loading.map": "Loading Map...", @@ -285,6 +336,7 @@ "photo.webgl.unavailable": "WebGL is unavailable, unable to render image", "photo.zoom.hint": "Double-tap or pinch to zoom", "slider.auto": "Auto", + "slider.columns": "{{count}} column", "video.codec.keyword": "Encoder", "video.conversion.cached.result": "Using cached result", "video.conversion.codec.fallback": "No MP4 codec found that supports this resolution. Falling back to WebM.", diff --git a/locales/app/jp.json b/locales/app/jp.json index 50bfe533..764b434f 100644 --- a/locales/app/jp.json +++ b/locales/app/jp.json @@ -26,6 +26,49 @@ "action.tag.not-found": "検索に一致するタグがありません", "action.tag.search": "タグ検索", "action.view.github": "GitHub リポジトリを表示", + "date.day.1": "1日", + "date.day.10": "10日", + "date.day.11": "11日", + "date.day.12": "12日", + "date.day.13": "13日", + "date.day.14": "14日", + "date.day.15": "15日", + "date.day.16": "16日", + "date.day.17": "17日", + "date.day.18": "18日", + "date.day.19": "19日", + "date.day.2": "2日", + "date.day.20": "20日", + "date.day.21": "21日", + "date.day.22": "22日", + "date.day.23": "23日", + "date.day.24": "24日", + "date.day.25": "25日", + "date.day.26": "26日", + "date.day.27": "27日", + "date.day.28": "28日", + "date.day.29": "29日", + "date.day.3": "3日", + "date.day.30": "30日", + "date.day.31": "31日", + "date.day.4": "4日", + "date.day.5": "5日", + "date.day.6": "6日", + "date.day.7": "7日", + "date.day.8": "8日", + "date.day.9": "9日", + "date.month.1": "1月", + "date.month.10": "10月", + "date.month.11": "11月", + "date.month.12": "12月", + "date.month.2": "2月", + "date.month.3": "3月", + "date.month.4": "4月", + "date.month.5": "5月", + "date.month.6": "6月", + "date.month.7": "7月", + "date.month.8": "8月", + "date.month.9": "9月", "error.feedback": "まだ問題が解決しませんか?GitHub でフィードバックをお願いします。", "error.reload": "再読み込み", "error.submit.issue": "問題を報告", @@ -231,6 +274,14 @@ "exif.white.balance.title": "ホワイトバランス", "explory.back.to.gallery": "ギャラリーに戻る", "explory.clear.selection": "選択をクリア", + "explory.cluster.click.details": "クリックして詳細を表示", + "explory.cluster.more": "もっと", + "explory.cluster.photos_one": "写真{{count}}枚", + "explory.cluster.photos_other": "写真{{count}}枚", + "explory.controls.compass": "方向をリセット", + "explory.controls.locate": "現在地を取得", + "explory.controls.zoom.in": "拡大", + "explory.controls.zoom.out": "縮小", "explory.explore.map": "マップを探索", "explory.found.locations": "{{count}} 個の撮影場所を発見", "explory.loading.map": "マップを読み込み中...", @@ -281,6 +332,7 @@ "photo.webgl.unavailable": "WebGL が利用できないため、画像をレンダリングできません", "photo.zoom.hint": "ダブルタップまたはピンチしてズーム", "slider.auto": "自動", + "slider.columns": "{{count}} 列", "video.codec.keyword": "エンコーダー", "video.conversion.cached.result": "キャッシュされた結果を使用", "video.conversion.codec.fallback": "この解像度でサポートされている MP4 コーデックが見つかりません。WebM にフォールバックします。", @@ -298,4 +350,4 @@ "video.conversion.webcodecs.not.supported": "このブラウザは WebCodecs をサポートしていません", "video.format.mov.not.supported": "ブラウザが MOV 形式をサポートしていないため、変換が必要です", "video.format.mov.supported": "ブラウザが MOV 形式をネイティブでサポートしているため、変換をスキップします" -} \ No newline at end of file +} diff --git a/locales/app/ko.json b/locales/app/ko.json index 1aaf9f36..5c83d867 100644 --- a/locales/app/ko.json +++ b/locales/app/ko.json @@ -26,6 +26,49 @@ "action.tag.not-found": "검색과 일치하는 태그가 없습니다", "action.tag.search": "태그 검색", "action.view.github": "GitHub 리포지토리 보기", + "date.day.1": "1일", + "date.day.10": "10일", + "date.day.11": "11일", + "date.day.12": "12일", + "date.day.13": "13일", + "date.day.14": "14일", + "date.day.15": "15일", + "date.day.16": "16일", + "date.day.17": "17일", + "date.day.18": "18일", + "date.day.19": "19일", + "date.day.2": "2일", + "date.day.20": "20일", + "date.day.21": "21일", + "date.day.22": "22일", + "date.day.23": "23일", + "date.day.24": "24일", + "date.day.25": "25일", + "date.day.26": "26일", + "date.day.27": "27일", + "date.day.28": "28일", + "date.day.29": "29일", + "date.day.3": "3일", + "date.day.30": "30일", + "date.day.31": "31일", + "date.day.4": "4일", + "date.day.5": "5일", + "date.day.6": "6일", + "date.day.7": "7일", + "date.day.8": "8일", + "date.day.9": "9일", + "date.month.1": "1월", + "date.month.10": "10월", + "date.month.11": "11월", + "date.month.12": "12월", + "date.month.2": "2월", + "date.month.3": "3월", + "date.month.4": "4월", + "date.month.5": "5월", + "date.month.6": "6월", + "date.month.7": "7월", + "date.month.8": "8월", + "date.month.9": "9월", "error.feedback": "문제가 계속 발생하나요? GitHub 에 피드백을 남겨주세요. 감사합니다!", "error.reload": "새로고침", "error.submit.issue": "문제 제출", @@ -231,6 +274,14 @@ "exif.white.balance.title": "화이트 밸런스", "explory.back.to.gallery": "갤러리로 돌아가기", "explory.clear.selection": "선택 해제", + "explory.cluster.click.details": "클릭하여 상세 보기", + "explory.cluster.more": "더보기", + "explory.cluster.photos_one": "사진 {{count}}장", + "explory.cluster.photos_other": "사진 {{count}}장", + "explory.controls.compass": "방향 초기화", + "explory.controls.locate": "내 위치 찾기", + "explory.controls.zoom.in": "확대", + "explory.controls.zoom.out": "축소", "explory.explore.map": "지도 탐색", "explory.found.locations": "{{count}}개의 촬영 위치 발견", "explory.loading.map": "지도 로딩 중...", @@ -281,6 +332,7 @@ "photo.webgl.unavailable": "WebGL 을 사용할 수 없어 이미지를 렌더링할 수 없습니다", "photo.zoom.hint": "더블 탭 또는 손가락으로 확대/축소", "slider.auto": "자동", + "slider.columns": "{{count}} 열", "video.codec.keyword": "인코더", "video.conversion.cached.result": "캐시된 결과 사용", "video.conversion.codec.fallback": "이 해상도에서 지원되는 MP4 코덱을 찾을 수 없습니다. WebM 으로 대체합니다.", @@ -298,4 +350,4 @@ "video.conversion.webcodecs.not.supported": "이 브라우저는 WebCodecs 를 지원하지 않습니다", "video.format.mov.not.supported": "브라우저가 MOV 형식을 지원하지 않아 변환이 필요합니다.", "video.format.mov.supported": "브라우저가 MOV 형식을 기본적으로 지원하므로 변환을 건너뜁니다." -} \ No newline at end of file +} diff --git a/locales/app/zh-CN.json b/locales/app/zh-CN.json index 7f21712e..bf1cacc1 100644 --- a/locales/app/zh-CN.json +++ b/locales/app/zh-CN.json @@ -26,6 +26,49 @@ "action.tag.not-found": "没有标签匹配您的搜索", "action.tag.search": "搜索标签", "action.view.github": "查看 GitHub 仓库", + "date.day.1": "1日", + "date.day.10": "10日", + "date.day.11": "11日", + "date.day.12": "12日", + "date.day.13": "13日", + "date.day.14": "14日", + "date.day.15": "15日", + "date.day.16": "16日", + "date.day.17": "17日", + "date.day.18": "18日", + "date.day.19": "19日", + "date.day.2": "2日", + "date.day.20": "20日", + "date.day.21": "21日", + "date.day.22": "22日", + "date.day.23": "23日", + "date.day.24": "24日", + "date.day.25": "25日", + "date.day.26": "26日", + "date.day.27": "27日", + "date.day.28": "28日", + "date.day.29": "29日", + "date.day.3": "3日", + "date.day.30": "30日", + "date.day.31": "31日", + "date.day.4": "4日", + "date.day.5": "5日", + "date.day.6": "6日", + "date.day.7": "7日", + "date.day.8": "8日", + "date.day.9": "9日", + "date.month.1": "1月", + "date.month.10": "10月", + "date.month.11": "11月", + "date.month.12": "12月", + "date.month.2": "2月", + "date.month.3": "3月", + "date.month.4": "4月", + "date.month.5": "5月", + "date.month.6": "6月", + "date.month.7": "7月", + "date.month.8": "8月", + "date.month.9": "9月", "error.feedback": "仍然存在此问题?请在 Github 中提供反馈,谢谢!", "error.reload": "重新加载", "error.submit.issue": "提交问题", @@ -232,6 +275,14 @@ "exif.white.balance.title": "白平衡", "explory.back.to.gallery": "返回相册", "explory.clear.selection": "清除选择", + "explory.cluster.click.details": "点击查看详情", + "explory.cluster.more": "更多", + "explory.cluster.photos_one": "{{count}} 张照片", + "explory.cluster.photos_other": "{{count}} 张照片", + "explory.controls.compass": "重置方向", + "explory.controls.locate": "定位到我的位置", + "explory.controls.zoom.in": "放大", + "explory.controls.zoom.out": "缩小", "explory.explore.map": "探索地图", "explory.found.locations": "发现了 {{count}} 个拍摄位置", "explory.loading.map": "加载地图中...", @@ -285,6 +336,7 @@ "photo.webgl.unavailable": "WebGL 不可用,无法渲染图像", "photo.zoom.hint": "双击或捏合缩放", "slider.auto": "自动", + "slider.columns": "{{count}} 列", "video.codec.keyword": "编码器", "video.conversion.cached.result": "使用缓存结果", "video.conversion.codec.fallback": "找不到此分辨率支持的 MP4 编解码器。回退到 WebM。", @@ -302,4 +354,4 @@ "video.conversion.webcodecs.not.supported": "此浏览器不支持 WebCodecs", "video.format.mov.not.supported": "浏览器不支持 MOV 格式,需要转换", "video.format.mov.supported": "浏览器原生支持 MOV 格式,跳过转换" -} \ No newline at end of file +} diff --git a/locales/app/zh-HK.json b/locales/app/zh-HK.json index 53e56504..4f395741 100644 --- a/locales/app/zh-HK.json +++ b/locales/app/zh-HK.json @@ -26,6 +26,49 @@ "action.tag.not-found": "沒有標籤符合您的搜尋", "action.tag.search": "搜尋標籤", "action.view.github": "查看 GitHub 倉庫", + "date.day.1": "1日", + "date.day.10": "10日", + "date.day.11": "11日", + "date.day.12": "12日", + "date.day.13": "13日", + "date.day.14": "14日", + "date.day.15": "15日", + "date.day.16": "16日", + "date.day.17": "17日", + "date.day.18": "18日", + "date.day.19": "19日", + "date.day.2": "2日", + "date.day.20": "20日", + "date.day.21": "21日", + "date.day.22": "22日", + "date.day.23": "23日", + "date.day.24": "24日", + "date.day.25": "25日", + "date.day.26": "26日", + "date.day.27": "27日", + "date.day.28": "28日", + "date.day.29": "29日", + "date.day.3": "3日", + "date.day.30": "30日", + "date.day.31": "31日", + "date.day.4": "4日", + "date.day.5": "5日", + "date.day.6": "6日", + "date.day.7": "7日", + "date.day.8": "8日", + "date.day.9": "9日", + "date.month.1": "1月", + "date.month.10": "7月", + "date.month.11": "8月", + "date.month.12": "9月", + "date.month.2": "2月", + "date.month.3": "3月", + "date.month.4": "4月", + "date.month.5": "5月", + "date.month.6": "6月", + "date.month.7": "7月", + "date.month.8": "8月", + "date.month.9": "9月", "error.feedback": "仍然遇到此問題?請在 Github 中提供反饋,謝謝!", "error.reload": "重新載入", "error.submit.issue": "提交問題", @@ -231,6 +274,14 @@ "exif.white.balance.title": "白平衡", "explory.back.to.gallery": "返回相簿", "explory.clear.selection": "清除選擇", + "explory.cluster.click.details": "點擊查看詳情", + "explory.cluster.more": "更多", + "explory.cluster.photos_one": "{{count}} 張照片", + "explory.cluster.photos_other": "{{count}} 張照片", + "explory.controls.compass": "重置方向", + "explory.controls.locate": "定位到我的位置", + "explory.controls.zoom.in": "放大", + "explory.controls.zoom.out": "縮小", "explory.explore.map": "探索地圖", "explory.found.locations": "發現了 {{count}} 個拍攝位置", "explory.loading.map": "載入地圖中...", @@ -281,6 +332,7 @@ "photo.webgl.unavailable": "WebGL 不可用,無法渲染圖像", "photo.zoom.hint": "雙擊或捏合縮放", "slider.auto": "自動", + "slider.columns": "{{count}} 列", "video.codec.keyword": "編碼器", "video.conversion.cached.result": "使用快取結果", "video.conversion.codec.fallback": "找不到此解析度支援的 MP4 編解碼器。回退到 WebM。", @@ -298,4 +350,4 @@ "video.conversion.webcodecs.not.supported": "此瀏覽器不支援 WebCodecs", "video.format.mov.not.supported": "瀏覽器不支援 MOV 格式,需要轉換", "video.format.mov.supported": "瀏覽器原生支援 MOV 格式,跳過轉換" -} \ No newline at end of file +} diff --git a/locales/app/zh-TW.json b/locales/app/zh-TW.json index f08d289f..013cbcb2 100644 --- a/locales/app/zh-TW.json +++ b/locales/app/zh-TW.json @@ -26,6 +26,49 @@ "action.tag.not-found": "沒有標籤符合您的搜尋", "action.tag.search": "搜尋標籤", "action.view.github": "檢視 GitHub 存放庫", + "date.day.1": "1日", + "date.day.10": "10日", + "date.day.11": "11日", + "date.day.12": "12日", + "date.day.13": "13日", + "date.day.14": "14日", + "date.day.15": "15日", + "date.day.16": "16日", + "date.day.17": "17日", + "date.day.18": "18日", + "date.day.19": "19日", + "date.day.2": "2日", + "date.day.20": "20日", + "date.day.21": "21日", + "date.day.22": "22日", + "date.day.23": "23日", + "date.day.24": "24日", + "date.day.25": "25日", + "date.day.26": "26日", + "date.day.27": "27日", + "date.day.28": "28日", + "date.day.29": "29日", + "date.day.3": "3日", + "date.day.30": "30日", + "date.day.31": "31日", + "date.day.4": "4日", + "date.day.5": "5日", + "date.day.6": "6日", + "date.day.7": "7日", + "date.day.8": "8日", + "date.day.9": "9日", + "date.month.1": "1月", + "date.month.10": "10月", + "date.month.11": "11月", + "date.month.12": "12月", + "date.month.2": "2月", + "date.month.3": "3月", + "date.month.4": "4月", + "date.month.5": "5月", + "date.month.6": "6月", + "date.month.7": "7月", + "date.month.8": "8月", + "date.month.9": "9月", "error.feedback": "仍然遇到此問題?請在 Github 中提供回饋,謝謝!", "error.reload": "重新載入", "error.submit.issue": "提交問題", @@ -230,6 +273,14 @@ "exif.white.balance.title": "白平衡", "explory.back.to.gallery": "返回相簿", "explory.clear.selection": "清除選擇", + "explory.cluster.click.details": "點擊查看詳情", + "explory.cluster.more": "更多", + "explory.cluster.photos_one": "{{count}} 張照片", + "explory.cluster.photos_other": "{{count}} 張照片", + "explory.controls.compass": "重置方向", + "explory.controls.locate": "定位到我的位置", + "explory.controls.zoom.in": "放大", + "explory.controls.zoom.out": "縮小", "explory.explore.map": "探索地圖", "explory.found.locations": "發現了 {{count}} 個拍攝位置", "explory.loading.map": "載入地圖中...", @@ -280,6 +331,7 @@ "photo.webgl.unavailable": "WebGL 不可用,無法渲染圖像", "photo.zoom.hint": "雙擊或捏合縮放", "slider.auto": "自動", + "slider.columns": "{{count}} 列", "video.codec.keyword": "編碼器", "video.conversion.cached.result": "使用快取結果", "video.conversion.codec.fallback": "找不到此解析度支援的 MP4 編解碼器。回退到 WebM。", @@ -297,4 +349,4 @@ "video.conversion.webcodecs.not.supported": "此瀏覽器不支援 WebCodecs", "video.format.mov.not.supported": "瀏覽器不支援 MOV 格式,需要轉換", "video.format.mov.supported": "瀏覽器原生支援 MOV 格式,跳過轉換" -} \ No newline at end of file +}