可动态识别属性

This commit is contained in:
YHH
2025-10-15 17:15:05 +08:00
parent b69b81f63a
commit fb7a1b1282
30 changed files with 2069 additions and 461 deletions

View File

@@ -1,10 +1,10 @@
import { useState, useEffect } from 'react';
import { useState, useEffect, useCallback, useMemo } from 'react';
import { Core } from '@esengine/ecs-framework';
import { LocaleService, type Locale } from '@esengine/editor-core';
export function useLocale() {
const localeService = Core.services.resolve(LocaleService);
const [locale, setLocale] = useState<Locale>(localeService.getCurrentLocale());
const localeService = useMemo(() => Core.services.resolve(LocaleService), []);
const [locale, setLocale] = useState<Locale>(() => localeService.getCurrentLocale());
useEffect(() => {
const unsubscribe = localeService.onChange((newLocale) => {
@@ -14,13 +14,13 @@ export function useLocale() {
return unsubscribe;
}, [localeService]);
const t = (key: string, fallback?: string) => {
const t = useCallback((key: string, fallback?: string) => {
return localeService.t(key, fallback);
};
}, [localeService]);
const changeLocale = (newLocale: Locale) => {
const changeLocale = useCallback((newLocale: Locale) => {
localeService.setLocale(newLocale);
};
}, [localeService]);
return {
locale,