mirror of
https://github.com/basketikun/infinite-canvas.git
synced 2026-08-06 01:14:36 +08:00
feat(i18n): implement internationalization framework and update UI components for language support
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import { useCallback, useEffect, useMemo, useState } from "react";
|
||||
import { App } from "antd";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { APP_VERSION } from "@/constant/env";
|
||||
import { parseChangelog, type ReleaseInfo } from "@/lib/release";
|
||||
|
||||
@@ -23,6 +24,7 @@ function isNewerVersion(latestVersion: string, currentVersion: string) {
|
||||
}
|
||||
|
||||
export function useVersionCheck() {
|
||||
const { t } = useTranslation();
|
||||
const currentVersion = APP_VERSION;
|
||||
const { message } = App.useApp();
|
||||
const localReleases = useMemo(readLocalReleases, []);
|
||||
@@ -49,23 +51,23 @@ export function useVersionCheck() {
|
||||
setChecking(true);
|
||||
try {
|
||||
const [versionResponse, changelogResponse] = await Promise.all([fetch(latestVersionUrl), fetch(latestChangelogUrl)]);
|
||||
if (!versionResponse.ok) throw new Error("版本读取失败");
|
||||
if (!changelogResponse.ok) throw new Error("更新日志读取失败");
|
||||
if (!versionResponse.ok) throw new Error(t("version.readFailed"));
|
||||
if (!changelogResponse.ok) throw new Error(t("version.changelogFailed"));
|
||||
const [version, changelog] = await Promise.all([versionResponse.text(), changelogResponse.text()]);
|
||||
setLatestVersion(version.trim() || currentVersion);
|
||||
if (changelog.trim()) setReleases(parseChangelog(changelog));
|
||||
if (showMessage) message.success("已获取最新版本信息");
|
||||
if (showMessage) message.success(t("version.updated"));
|
||||
return true;
|
||||
} catch {
|
||||
setLatestVersion(currentVersion);
|
||||
setReleases(localReleases);
|
||||
if (showMessage) message.error("获取最新版本信息失败");
|
||||
if (showMessage) message.error(t("version.updateFailed"));
|
||||
return false;
|
||||
} finally {
|
||||
setChecking(false);
|
||||
}
|
||||
},
|
||||
[currentVersion, localReleases, message],
|
||||
[currentVersion, localReleases, message, t],
|
||||
);
|
||||
|
||||
useEffect(() => {
|
||||
|
||||
Reference in New Issue
Block a user