fix
This commit is contained in:
parent
2e3358eb2c
commit
8a09356208
File diff suppressed because one or more lines are too long
@ -1,21 +1,39 @@
|
||||
import { FC, SVGProps } from "react";
|
||||
import { useLocation } from "react-router-dom";
|
||||
|
||||
// Fallback функция для получения языка, когда React Router недоступен
|
||||
const getLanguageFromUrlFallback = (): string => {
|
||||
const path = window.location.pathname;
|
||||
const langMatch = path.match(/^\/(en|ru|uz)(\/|$)/i);
|
||||
if (langMatch) {
|
||||
return langMatch[1].toLowerCase();
|
||||
}
|
||||
return "ru";
|
||||
};
|
||||
|
||||
export const NameplateLogoFQ: FC<SVGProps<SVGSVGElement>> = (props) => {
|
||||
const location = useLocation();
|
||||
const pathname = location.pathname;
|
||||
let lang = "ru"; // fallback
|
||||
|
||||
const getLanguageFromUrl = () => {
|
||||
const parts = pathname.split("/");
|
||||
if (parts.length >= 2) {
|
||||
const langSegment = parts[1].toLowerCase();
|
||||
if (langSegment === "en") return "en";
|
||||
if (langSegment === "uz") return "uz";
|
||||
}
|
||||
return "ru";
|
||||
};
|
||||
try {
|
||||
// Пытаемся использовать React Router
|
||||
const { useLocation } = require("react-router-dom");
|
||||
const location = useLocation();
|
||||
const pathname = location.pathname;
|
||||
|
||||
const lang = getLanguageFromUrl(); // Оптимизация - вызываем функцию один раз
|
||||
const getLanguageFromUrl = () => {
|
||||
const parts = pathname.split("/");
|
||||
if (parts.length >= 2) {
|
||||
const langSegment = parts[1].toLowerCase();
|
||||
if (langSegment === "en") return "en";
|
||||
if (langSegment === "uz") return "uz";
|
||||
}
|
||||
return "ru";
|
||||
};
|
||||
|
||||
lang = getLanguageFromUrl();
|
||||
} catch (error) {
|
||||
// Если React Router недоступен (в виджете), используем fallback
|
||||
lang = getLanguageFromUrlFallback();
|
||||
}
|
||||
|
||||
if (lang === "ru") return <RU {...props} />;
|
||||
if (lang === "en") return <EN {...props} />;
|
||||
|
@ -1,21 +1,39 @@
|
||||
import { FC, SVGProps } from "react";
|
||||
import { useLocation } from "react-router-dom";
|
||||
|
||||
// Fallback функция для получения языка, когда React Router недоступен
|
||||
const getLanguageFromUrlFallback = (): string => {
|
||||
const path = window.location.pathname;
|
||||
const langMatch = path.match(/^\/(en|ru|uz)(\/|$)/i);
|
||||
if (langMatch) {
|
||||
return langMatch[1].toLowerCase();
|
||||
}
|
||||
return "ru";
|
||||
};
|
||||
|
||||
export const NameplateLogoFQDark: FC<SVGProps<SVGSVGElement>> = (props) => {
|
||||
const location = useLocation();
|
||||
const pathname = location.pathname;
|
||||
let lang = "ru"; // fallback
|
||||
|
||||
const getLanguageFromUrl = () => {
|
||||
const parts = pathname.split("/");
|
||||
if (parts.length >= 2) {
|
||||
const langSegment = parts[1].toLowerCase();
|
||||
if (langSegment === "en") return "en";
|
||||
if (langSegment === "uz") return "uz";
|
||||
}
|
||||
return "ru";
|
||||
};
|
||||
try {
|
||||
// Пытаемся использовать React Router
|
||||
const { useLocation } = require("react-router-dom");
|
||||
const location = useLocation();
|
||||
const pathname = location.pathname;
|
||||
|
||||
const lang = getLanguageFromUrl(); // Оптимизация - вызываем функцию один раз
|
||||
const getLanguageFromUrl = () => {
|
||||
const parts = pathname.split("/");
|
||||
if (parts.length >= 2) {
|
||||
const langSegment = parts[1].toLowerCase();
|
||||
if (langSegment === "en") return "en";
|
||||
if (langSegment === "uz") return "uz";
|
||||
}
|
||||
return "ru";
|
||||
};
|
||||
|
||||
lang = getLanguageFromUrl();
|
||||
} catch (error) {
|
||||
// Если React Router недоступен (в виджете), используем fallback
|
||||
lang = getLanguageFromUrlFallback();
|
||||
}
|
||||
|
||||
if (lang === "ru") return <RU {...props} />;
|
||||
if (lang === "en") return <EN {...props} />;
|
||||
|
@ -70,8 +70,7 @@ const r = {
|
||||
"questions are not ready yet": "Вопросы для аудитории ещё не созданы. Пожалуйста, подождите",
|
||||
"Add your image": "Добавьте своё изображение",
|
||||
"select emoji": "выберите смайлик",
|
||||
"file is too big": "Файл слишком большой",
|
||||
"file type is not supported": "Тип файла не поддерживается",
|
||||
"": "", // Пустой ключ для fallback
|
||||
},
|
||||
en: {
|
||||
"quiz is inactive": "Quiz is inactive",
|
||||
@ -132,6 +131,7 @@ const r = {
|
||||
"questions are not ready yet": "There are no questions for the audience yet. Please wait",
|
||||
"Add your image": "Add your image",
|
||||
"select emoji": "select emoji",
|
||||
"": "", // Пустой ключ для fallback
|
||||
},
|
||||
uz: {
|
||||
"quiz is inactive": "Test faol emas",
|
||||
@ -192,6 +192,7 @@ const r = {
|
||||
"questions are not ready yet": "Tomoshabinlar uchun hozircha savollar yo'q. Iltimos kuting",
|
||||
"Add your image": "Rasmingizni qo'shing",
|
||||
"select emoji": "emoji tanlang",
|
||||
"": "", // Пустой ключ для fallback
|
||||
},
|
||||
};
|
||||
|
||||
@ -230,6 +231,10 @@ i18n
|
||||
})
|
||||
.then(() => {
|
||||
console.log("i18n initialized. Current language:", i18n.language);
|
||||
console.log("Available languages:", i18n.languages);
|
||||
console.log("Available keys for ru:", Object.keys(r.ru));
|
||||
console.log("Available keys for en:", Object.keys(r.en));
|
||||
console.log("Available keys for uz:", Object.keys(r.uz));
|
||||
});
|
||||
|
||||
// 4. Логирование событий
|
||||
|
Loading…
Reference in New Issue
Block a user