perf: unify i18n text class in frontend

This commit is contained in:
Junyan Qin
2025-05-20 11:32:55 +08:00
parent ff335130ae
commit 7d34a2154b
5 changed files with 20 additions and 24 deletions

View File

@@ -1,5 +1,5 @@
import styles from './HomeSidebar.module.css';
import { I18nText } from '@/app/infra/entities/api';
import { I18nLabel } from '@/app/infra/entities/common';
export interface ISidebarChildVO {
id: string;
@@ -7,7 +7,7 @@ export interface ISidebarChildVO {
name: string;
route: string;
description: string;
helpLink: I18nText;
helpLink: I18nLabel;
}
export class SidebarChildVO {
@@ -16,7 +16,7 @@ export class SidebarChildVO {
name: string;
route: string;
description: string;
helpLink: I18nText;
helpLink: I18nLabel;
constructor(props: ISidebarChildVO) {
this.id = props.id;

View File

@@ -1,6 +1,6 @@
import { i18nObj } from '@/i18n/I18nProvider';
import styles from './HomeTittleBar.module.css';
import { I18nText } from '@/app/infra/entities/api';
import { I18nLabel } from '@/app/infra/entities/common';
export default function HomeTitleBar({
title,
@@ -9,7 +9,7 @@ export default function HomeTitleBar({
}: {
title: string;
subtitle: string;
helpLink: I18nText;
helpLink: I18nLabel;
}) {
return (
<div className={`${styles.titleBarContainer}`}>

View File

@@ -5,7 +5,7 @@ import HomeSidebar from '@/app/home/components/home-sidebar/HomeSidebar';
import HomeTitleBar from '@/app/home/components/home-titlebar/HomeTitleBar';
import React, { useState } from 'react';
import { SidebarChildVO } from '@/app/home/components/home-sidebar/HomeSidebarChild';
import { I18nText } from '@/app/infra/entities/api';
import { I18nLabel } from '@/app/infra/entities/common';
export default function HomeLayout({
children,
@@ -14,7 +14,7 @@ export default function HomeLayout({
}>) {
const [title, setTitle] = useState<string>('');
const [subtitle, setSubtitle] = useState<string>('');
const [helpLink, setHelpLink] = useState<I18nText>({
const [helpLink, setHelpLink] = useState<I18nLabel>({
en_US: '',
zh_Hans: '',
});

View File

@@ -1,5 +1,6 @@
import { IDynamicFormItemSchema } from '@/app/infra/entities/form/dynamic';
import { PipelineConfigTab } from '@/app/infra/entities/pipeline';
import { I18nLabel } from '@/app/infra/entities/common';
export interface ApiResponse<T> {
code: number;
@@ -7,11 +8,6 @@ export interface ApiResponse<T> {
msg: string;
}
export interface I18nText {
en_US: string;
zh_Hans: string;
}
export interface AsyncTaskCreatedResp {
task_id: number;
}
@@ -26,8 +22,8 @@ export interface ApiRespProviderRequester {
export interface Requester {
name: string;
label: I18nText;
description: I18nText;
label: I18nLabel;
description: I18nLabel;
icon?: string;
spec: {
config: IDynamicFormItemSchema[];
@@ -84,8 +80,8 @@ export interface ApiRespPlatformAdapter {
export interface Adapter {
name: string;
label: I18nText;
description: I18nText;
label: I18nLabel;
description: I18nLabel;
icon?: string;
spec: {
config: AdapterSpecConfig[];
@@ -94,7 +90,7 @@ export interface Adapter {
export interface AdapterSpecConfig {
default: string | number | boolean | Array<unknown>;
label: I18nText;
label: I18nLabel;
name: string;
required: boolean;
type: string;
@@ -133,8 +129,8 @@ export interface ApiRespPlugin {
export interface Plugin {
author: string;
name: string;
description: I18nText;
label: I18nText;
description: I18nLabel;
label: I18nLabel;
version: string;
enabled: boolean;
priority: number;

View File

@@ -2,7 +2,7 @@
import { ReactNode } from 'react';
import '@/i18n';
import { I18nText } from '@/app/infra/entities/api';
import { I18nLabel } from '@/app/infra/entities/common';
interface I18nProviderProps {
children: ReactNode;
@@ -11,10 +11,10 @@ interface I18nProviderProps {
export default function I18nProvider({ children }: I18nProviderProps) {
return <>{children}</>;
}
export function i18nObj(i18nText: I18nText): string {
export function i18nObj(i18nLabel: I18nLabel): string {
const language = localStorage.getItem('langbot_language');
if ((language === 'zh-Hans' && i18nText.zh_Hans) || !i18nText.en_US) {
return i18nText.zh_Hans;
if ((language === 'zh-Hans' && i18nLabel.zh_Hans) || !i18nLabel.en_US) {
return i18nLabel.zh_Hans;
}
return i18nText.en_US;
return i18nLabel.en_US;
}