Files
rocketmq-dashboard/frontend-new/src/i18n/LanguageContext.js
2025-07-05 20:50:36 +08:00

39 lines
1.4 KiB
JavaScript

/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import React, {createContext, useContext, useState} from 'react';
import {translations} from '../i18n';
const LanguageContext = createContext({
lang: 'en',
setLang: () => {
},
t: translations['en'], // 当前语言的文本资源
});
export const LanguageProvider = ({children}) => {
const [lang, setLang] = useState('en');
const t = translations[lang] || translations['en'];
return (
<LanguageContext.Provider value={{lang, setLang, t}}>
{children}
</LanguageContext.Provider>
);
};
export const useLanguage = () => useContext(LanguageContext);