import { Suspense } from "react"; import { Routes, Route, Outlet } from "react-router-dom"; import Home from "./pages/Home"; import About from "./pages/About"; import Dashboard from "./pages/Dashboard"; import Dynamic from "./pages/Dynamic"; // import ToPdf from "./pages/convert/ToPdf"; // import Impose from "./pages/page-operations/Impose"; import NoMatch from "./pages/NoMatch"; import NavBar from "./components/NavBar"; import "bootstrap/dist/css/bootstrap.min.css"; import { Container } from "react-bootstrap"; import { useTranslation, initReactI18next } from "react-i18next"; import LanguageDetector from "i18next-browser-languagedetector"; import i18next from "i18next"; import resourcesToBackend from "i18next-resources-to-backend"; i18next.use(LanguageDetector).use(initReactI18next).use(resourcesToBackend((language: string, namespace: string) => import(`../../shared-operations/public/locales/${namespace}/${language}.json`))) .init({ debug: false, ns: ["common"], // Preload this namespace, no need to add the others, they will load once their module is loaded defaultNS: "common", fallbackLng: "en", interpolation: { escapeValue: false, }, initImmediate: false // Makes loading blocking but sync }); // TODO: use i18next.config.ts instead import "./general.css"; export default function App() { return ( {/* Routes nest inside one another. Nested route paths build upon parent route paths, and nested route elements render inside parent route elements. See the note about below. */} }> } /> } /> } /> } /> {/* Using path="*"" means "match anything", so this route acts like a catch-all for URLs that we don't have explicit routes for. */} } /> }> {/* } /> */} } /> }> {/* } /> */} } /> ); } function Layout() { const { t } = useTranslation(); console.log(t("inputs.pdffile.name")); return (
{/* An renders whatever child route is currently active, so you can think about this as a placeholder for the child routes we defined above. */}
); }