diff --git a/src/app/App.tsx b/src/app/App.tsx index a497b68..6a48417 100644 --- a/src/app/App.tsx +++ b/src/app/App.tsx @@ -1,3 +1,4 @@ +import LanguageSelect from "@/components/molecules/LanguageSelect"; import { useI18n } from "@/utils/i18n/hooks/useI18n"; import { useLinks } from "@/utils/i18n/hooks/useLinks"; import { useNeutral } from "@/utils/i18n/hooks/useNeutral"; @@ -457,6 +458,7 @@ const Curriculum: React.FC = () => { + diff --git a/src/components/molecules/LanguageSelect/index.tsx b/src/components/molecules/LanguageSelect/index.tsx new file mode 100644 index 0000000..9c581b3 --- /dev/null +++ b/src/components/molecules/LanguageSelect/index.tsx @@ -0,0 +1,30 @@ +// LanguageSelect.tsx +import React from "react"; +import { useToggleLanguage } from "./useToggleLanguage"; + +const LanguageSelect: React.FC = () => { + const { currentLanguage, toggleLanguage, languages } = useToggleLanguage(); + + return ( +
+ {languages.map((language) => ( + + ))} +
+ ); +}; + +export default LanguageSelect; diff --git a/src/components/molecules/LanguageSelect/useToggleLanguage.tsx b/src/components/molecules/LanguageSelect/useToggleLanguage.tsx new file mode 100644 index 0000000..de618ad --- /dev/null +++ b/src/components/molecules/LanguageSelect/useToggleLanguage.tsx @@ -0,0 +1,20 @@ +// useLanguage.ts +import { languages } from "@/utils/i18n/languages"; +import { useEffect, useState } from "react"; +import { useT } from "talkr"; + +export const useToggleLanguage = () => { + const { setLocale, locale } = useT(); + + const [currentLanguage, setCurrentLanguage] = useState(locale); + + useEffect(() => { + setCurrentLanguage(locale); + }, [locale]); + + const toggleLanguage = (languageCode: string) => { + setLocale(languageCode); + }; + + return { currentLanguage, toggleLanguage, languages }; +}; diff --git a/src/utils/i18n/en.json b/src/utils/i18n/en.json index af8f5ed..e9b079d 100644 --- a/src/utils/i18n/en.json +++ b/src/utils/i18n/en.json @@ -1,6 +1,6 @@ { "address": "Curitiba - PR - Brazil", - "profession": "Full-Stack Developer Specialist in React and Next.js", + "profession": "Full-Stack Developer Specialist in React and Next", "description": "Solid experience in projects involving Frontend Development and SEO, currently in search of new challenges", "certs_title": "Certifications", "sololearn": "SoloLearn (USA):", diff --git a/src/utils/i18n/languages.ts b/src/utils/i18n/languages.ts new file mode 100644 index 0000000..e051f29 --- /dev/null +++ b/src/utils/i18n/languages.ts @@ -0,0 +1,10 @@ +interface Language { + code: string; + emoji: string; + label: string; +} + +export const languages: Language[] = [ + { code: "en", emoji: "πŸ‡ΊπŸ‡Έ", label: "EN" }, + { code: "pt", emoji: "πŸ‡§πŸ‡·", label: "PT" }, +]; \ No newline at end of file