- I'm currently offline. Come back later to see what I'm working on.
+ {{ t('offline') }}
+
+
+{
+ "en": {
+ "offline": "I'm currently offline. Come back later to see what I'm working on.",
+ "working": "I'm actually working on {project}, editing {state}, using {editor}. I've started {start}, the {format}.",
+ "idling": "I'm idling on my computer with {editor} running in background.",
+ "tooltip": {
+ "online": "I'm online 👋",
+ "offline": "I'm offline 🫥",
+ "idling": "I'm sleeping 😴"
+ },
+ "separator": "at"
+ },
+ "fr": {
+ "offline": "Je suis actuellement hors ligne. Revenez plus tard pour voir sur quoi je travaille.",
+ "working": "Je travaille actuellement sur {project}, éditant {state}, en utilisant {editor}. J'ai commencé il y a {start}, le {format}.",
+ "idling": "Je suis en veille sur mon ordinateur avec {editor} en arrière-plan.",
+ "tooltip": {
+ "online": "Je suis connecté 👋",
+ "offline": "Je suis déconnecté 🫥",
+ "idling": "Je dors 😴"
+ },
+ "separator": "à"
+ }
+}
+
diff --git a/app/components/content/CatchPhrase.vue b/app/components/content/CatchPhrase.vue
index badd992..30e7e56 100644
--- a/app/components/content/CatchPhrase.vue
+++ b/app/components/content/CatchPhrase.vue
@@ -8,11 +8,25 @@
class="transform -rotate-12 duration-300 group-hover:animate-wave"
name="i-ph-hand-pointing-duotone"
/>
-
Hover the bold texts to find out more about me.
+
{{ t('quote') }}
+
+
+{
+ "en": {
+ "quote": "Hover the bold texts to find out more about me."
+ },
+ "fr": {
+ "quote": "Survolez les textes en gras pour en savoir plus sur moi."
+ }
+}
+
diff --git a/app/components/content/HoverText.vue b/app/components/content/HoverText.vue
index 75ebcb3..c4b4bb1 100644
--- a/app/components/content/HoverText.vue
+++ b/app/components/content/HoverText.vue
@@ -17,10 +17,12 @@ defineProps({
-
- {{ text }}
-
+
+
+ {{ text }}
+
+
diff --git a/app/components/content/ProseIcon.vue b/app/components/content/ProseIcon.vue
index 3fd89f4..6b6a80c 100644
--- a/app/components/content/ProseIcon.vue
+++ b/app/components/content/ProseIcon.vue
@@ -8,7 +8,7 @@ defineProps({
-
+
- Hello everyone! Thanks for visiting my portfolio. Please leave whatever you like to say, such as suggestions,
- appreciations, questions or anything!
+ {{ t('quote') }}
+
+
+
+
+{
+ "en": {
+ "quote": "Hello everyone! Thanks for visiting my portfolio. Please leave whatever you like to say, such as suggestions, appreciations, questions or anything!"
+ },
+ "fr": {
+ "quote": "Bonjour tout le monde ! Merci de visiter mon portfolio. N'hésitez pas à laisser ce que vous avez à dire, comme des suggestions, des appréciations, des questions ou autre chose !"
+ }
+}
+
diff --git a/app/components/content/Stats.vue b/app/components/content/Stats.vue
index 74c68f6..4e30e6e 100644
--- a/app/components/content/Stats.vue
+++ b/app/components/content/Stats.vue
@@ -2,30 +2,65 @@
import type { Stats } from '~~/types'
const { data: stats } = await useFetch('/api/stats')
+const { t } = useI18n({
+ useScope: 'local'
+})
-
- I collect some data for {{ useTimeAgo(new Date(stats.coding.data.range.start)).value }}, started the
-
- .
- I've coded for a total of
-
- hours.
- My best editors are
- {{ stats.editors.data.slice(0, 2).map(editor => `${editor.name} (${editor.percent}%)`).join(' and ') }}.
-
- My best OS is {{ stats.os.data[0].name }} ({{ stats.os.data[0].percent }}%).
+
+
+ {{ useTimeAgo(new Date(stats.coding.data.range.start)).value }}
- My top languages are
- {{ stats.languages.data.slice(0, 2).map(language => `${language.name} (${language.percent}%)`).join(' and ') }}.
-
+
+
+
+
+
+
+
+ {{ stats.os.data[0].name }} ({{ stats.os.data[0].percent }}%)
+
+
+ {{
+ stats.languages.data.slice(0, 2).map(language => `${language.name} (${language.percent}%)`).join(t('separator'))
+ }}
+
+
+
+
+{
+ "en": {
+ "stats": "I collect some data for {time}, started the {date}. I've coded for a total of {hours} hours. My best editors are {editors}. My best OS is {os}. My top languages are {languages}.",
+ "separator": " and ",
+ "tooltip": {
+ "date": "That was so long ago 🫣",
+ "hours": "That's a lot 😮"
+ }
+ },
+ "fr": {
+ "stats": "Je collecte des données depuis {time}, commencé le {date}. J'ai codé un total de {hours} heures. Mes meilleurs éditeurs sont {editors}. Mon meilleur OS est {os}. Mes langages préférés sont {languages}.",
+ "separator": " et ",
+ "tooltip": {
+ "date": "C'était il y a si longtemps 🫣",
+ "hours": "C'est beaucoup 😮"
+ }
+ }
+}
+
diff --git a/app/components/uses/Item.vue b/app/components/uses/Item.vue
index 0483473..4f75b8a 100644
--- a/app/components/uses/Item.vue
+++ b/app/components/uses/Item.vue
@@ -8,6 +8,8 @@ defineProps({
required: true
}
})
+
+const { locale } = useI18n()
@@ -16,7 +18,7 @@ defineProps({
{{ item.name }}