Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
119 changes: 119 additions & 0 deletions messages/en.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
{
"common": {
"appName": "DevTrack",
"save": "Save",
"saving": "Saving...",
"reset": "Reset",
"remove": "Remove",
"removing": "Removing...",
"loading": "Loading...",
"settings": "Settings",
"dashboard": "Dashboard",
"signIn": "Sign in",
"signOut": "Sign out",
"backToHome": "Back to home",
"backToDashboard": "Back to Dashboard",
"cancel": "Cancel",
"language": "Language"
},
"navigation": {
"main": "Main navigation",
"overview": "Overview",
"resume": "Resume",
"leaderboard": "Leaderboard",
"home": "Home",
"features": "Features",
"openMenu": "Open navigation menu",
"closeMenu": "Close navigation menu",
"loggedInAs": "Logged in as",
"settings": "Settings",
"signInCta": "SIGN IN",
"signOutCta": "Sign out"
},
"dashboard": {
"overviewEyebrow": "Dashboard overview",
"title": "Dashboard",
"subtitle": "coding activity at a glance",
"welcomeBack": "Welcome back",
"goodMorning": "Good morning",
"goodAfternoon": "Good afternoon",
"goodEvening": "Good evening",
"midnightOil": "Burning the midnight oil",
"syncedJustNow": "Synced just now",
"syncedMinutesAgo": "Synced {minutes} min ago",
"shareProfile": "Share Profile",
"viewPublicProfile": "View your public profile",
"yearInCode": "Year in Code",
"newFeature": "New Feature",
"resumeGenerator": "Resume Generator",
"resumeHeadline": "Generate an ATS-Friendly CV Backed by Your Real Code",
"resumeDescription": "Analyze your GitHub contributions, merged PRs, and lines of code changed to automatically generate professional bullet points for your target roles.",
"buildResume": "Build Resume",
"nightOwl": "Night Owl",
"earlyBird": "Early Bird",
"nightOwlTitle": "Night Owl Milestone: You push code between Midnight and 4 AM!",
"earlyBirdTitle": "Early Bird Milestone: You push code between 5 AM and 8 AM!",
"profileLinkCopied": "Profile link copied!",
"profileLinkCopyFailed": "Failed to copy link"
},
"auth": {
"signInFailed": "Sign-in failed",
"githubError": "GitHub sign-in failed. This is usually caused by incorrect OAuth credentials or a mismatched callback URL. Check your GitHub OAuth App settings and try again.",
"oauthCallbackError": "The OAuth callback could not be completed. Please try signing in again.",
"oauthSigninError": "Could not start the GitHub sign-in flow. Please try again.",
"configurationError": "There is a server configuration error. Please contact the site administrator.",
"accessDeniedError": "Access was denied. You may have cancelled the GitHub authorization.",
"verificationError": "The sign-in link has expired or has already been used.",
"defaultError": "An unexpected authentication error occurred. Please try again.",
"welcome": "WELCOME",
"back": "BACK.",
"tagline": "Track streaks, PR velocity & coding growth.",
"signInWithGitHub": "Sign in with GitHub",
"licenseLine": "MIT License · Self-hostable · Free forever"
},
"settings": {
"title": "Settings",
"loadingLabel": "Loading settings",
"languageTitle": "Language",
"languageDescription": "Choose the display language used across DevTrack.",
"languageSelectLabel": "Display language",
"languageSaved": "Language preference saved",
"languageSaveFailed": "Failed to save language preference",
"profileTitle": "Profile Settings",
"profileDescription": "Manage your public profile, dashboard preferences, and integrations.",
"appearanceTitle": "Appearance",
"appearanceDescription": "Choose the theme that matches your workflow.",
"weeklyDigestTitle": "Weekly Email Digest",
"weeklyDigestDescription": "Receive an optional weekly email digest every Monday morning summarizing your coding habits.",
"notificationsTitle": "Notifications",
"notificationsDescription": "Send a weekly summary of your activity to Slack or Discord via webhook.",
"webhookUrl": "Webhook URL",
"connectedAccountsTitle": "Connected Accounts",
"connectedAccountsDescription": "Link additional GitHub accounts and switch between them on the dashboard.",
"addGitHubAccount": "Add GitHub Account",
"noLinkedAccounts": "No linked GitHub accounts yet.",
"loadingLinkedAccounts": "Loading linked accounts...",
"wakatimeTitle": "Wakatime Integration",
"wakatimeDescription": "Connect your Wakatime account to display accurate coding time and language usage.",
"apiKey": "API Key",
"discordTitle": "Discord Integration",
"discordDescription": "Receive streak reminders and milestone alerts in your Discord server.",
"timezoneLabel": "Timezone (For 8 PM reminders)",
"saveDiscord": "Save Discord Settings",
"testNotification": "Test Notification",
"testing": "Testing...",
"muteNotifications": "Mute Notifications",
"unmuteNow": "Unmute Now",
"unsavedTitle": "Unsaved Changes",
"unsavedMessage": "You have unsaved changes in your settings. If you leave now, your progress will be lost.",
"leaveAnyway": "Leave Anyway",
"stayAndSave": "Stay and Save"
},
"achievements": {
"title": "GitHub Achievements",
"loading": "Loading GitHub achievements",
"loadFailed": "GitHub achievements could not be loaded right now.",
"empty": "No public GitHub achievements available yet.",
"badgeAlt": "{title} GitHub achievement badge"
}
}
119 changes: 119 additions & 0 deletions messages/es.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
{
"common": {
"appName": "DevTrack",
"save": "Guardar",
"saving": "Guardando...",
"reset": "Restablecer",
"remove": "Eliminar",
"removing": "Eliminando...",
"loading": "Cargando...",
"settings": "Configuración",
"dashboard": "Panel",
"signIn": "Iniciar sesión",
"signOut": "Cerrar sesión",
"backToHome": "Volver al inicio",
"backToDashboard": "Volver al panel",
"cancel": "Cancelar",
"language": "Idioma"
},
"navigation": {
"main": "Navegación principal",
"overview": "Resumen",
"resume": "CV",
"leaderboard": "Clasificación",
"home": "Inicio",
"features": "Funciones",
"openMenu": "Abrir menú de navegación",
"closeMenu": "Cerrar menú de navegación",
"loggedInAs": "Sesión iniciada como",
"settings": "Configuración",
"signInCta": "INICIAR SESIÓN",
"signOutCta": "Cerrar sesión"
},
"dashboard": {
"overviewEyebrow": "Resumen del panel",
"title": "Panel",
"subtitle": "actividad de código de un vistazo",
"welcomeBack": "Te damos la bienvenida",
"goodMorning": "Buenos días",
"goodAfternoon": "Buenas tardes",
"goodEvening": "Buenas noches",
"midnightOil": "Trabajando de madrugada",
"syncedJustNow": "Sincronizado ahora mismo",
"syncedMinutesAgo": "Sincronizado hace {minutes} min",
"shareProfile": "Compartir perfil",
"viewPublicProfile": "Ver tu perfil público",
"yearInCode": "Año en código",
"newFeature": "Nueva función",
"resumeGenerator": "Generador de CV",
"resumeHeadline": "Genera un CV compatible con ATS basado en tu código real",
"resumeDescription": "Analiza tus contribuciones en GitHub, PR fusionadas y líneas de código modificadas para generar automáticamente viñetas profesionales para tus puestos objetivo.",
"buildResume": "Crear CV",
"nightOwl": "Noctámbulo",
"earlyBird": "Madrugador",
"nightOwlTitle": "Logro noctámbulo: subes código entre la medianoche y las 4 a. m.",
"earlyBirdTitle": "Logro madrugador: subes código entre las 5 a. m. y las 8 a. m.",
"profileLinkCopied": "Enlace del perfil copiado.",
"profileLinkCopyFailed": "No se pudo copiar el enlace"
},
"auth": {
"signInFailed": "Error al iniciar sesión",
"githubError": "El inicio de sesión con GitHub falló. Normalmente esto se debe a credenciales OAuth incorrectas o a una URL de devolución que no coincide. Revisa la configuración de tu aplicación OAuth de GitHub e inténtalo de nuevo.",
"oauthCallbackError": "No se pudo completar la devolución OAuth. Intenta iniciar sesión de nuevo.",
"oauthSigninError": "No se pudo iniciar el flujo de acceso con GitHub. Inténtalo de nuevo.",
"configurationError": "Hay un error de configuración del servidor. Contacta con el administrador del sitio.",
"accessDeniedError": "Acceso denegado. Puede que hayas cancelado la autorización de GitHub.",
"verificationError": "El enlace de inicio de sesión caducó o ya se usó.",
"defaultError": "Ocurrió un error de autenticación inesperado. Inténtalo de nuevo.",
"welcome": "HOLA DE",
"back": "NUEVO.",
"tagline": "Sigue rachas, velocidad de PR y crecimiento de código.",
"signInWithGitHub": "Iniciar sesión con GitHub",
"licenseLine": "Licencia MIT · Autoalojable · Gratis para siempre"
},
"settings": {
"title": "Configuración",
"loadingLabel": "Cargando configuración",
"languageTitle": "Idioma",
"languageDescription": "Elige el idioma de visualización usado en DevTrack.",
"languageSelectLabel": "Idioma de visualización",
"languageSaved": "Preferencia de idioma guardada",
"languageSaveFailed": "No se pudo guardar la preferencia de idioma",
"profileTitle": "Configuración del perfil",
"profileDescription": "Gestiona tu perfil público, preferencias del panel e integraciones.",
"appearanceTitle": "Apariencia",
"appearanceDescription": "Elige el tema que se adapta a tu flujo de trabajo.",
"weeklyDigestTitle": "Resumen semanal por correo",
"weeklyDigestDescription": "Recibe un resumen semanal opcional cada lunes por la mañana con tus hábitos de programación.",
"notificationsTitle": "Notificaciones",
"notificationsDescription": "Envía un resumen semanal de tu actividad a Slack o Discord mediante webhook.",
"webhookUrl": "URL del webhook",
"connectedAccountsTitle": "Cuentas conectadas",
"connectedAccountsDescription": "Vincula cuentas adicionales de GitHub y cambia entre ellas en el panel.",
"addGitHubAccount": "Agregar cuenta de GitHub",
"noLinkedAccounts": "Aún no hay cuentas de GitHub vinculadas.",
"loadingLinkedAccounts": "Cargando cuentas vinculadas...",
"wakatimeTitle": "Integración con Wakatime",
"wakatimeDescription": "Conecta tu cuenta de Wakatime para mostrar tiempo de programación y uso de lenguajes con precisión.",
"apiKey": "Clave API",
"discordTitle": "Integración con Discord",
"discordDescription": "Recibe recordatorios de rachas y alertas de hitos en tu servidor de Discord.",
"timezoneLabel": "Zona horaria (para recordatorios de las 8 p. m.)",
"saveDiscord": "Guardar configuración de Discord",
"testNotification": "Probar notificación",
"testing": "Probando...",
"muteNotifications": "Silenciar notificaciones",
"unmuteNow": "Quitar silencio ahora",
"unsavedTitle": "Cambios sin guardar",
"unsavedMessage": "Tienes cambios sin guardar en tu configuración. Si sales ahora, perderás tu progreso.",
"leaveAnyway": "Salir de todos modos",
"stayAndSave": "Quedarse y guardar"
},
"achievements": {
"title": "Logros de GitHub",
"loading": "Cargando logros de GitHub",
"loadFailed": "Los logros de GitHub no se pudieron cargar en este momento.",
"empty": "Aún no hay logros públicos de GitHub disponibles.",
"badgeAlt": "Insignia del logro de GitHub {title}"
}
}
5 changes: 4 additions & 1 deletion next.config.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
import withPWAInit from "@ducanh2912/next-pwa";
import createNextIntlPlugin from "next-intl/plugin";

const withNextIntl = createNextIntlPlugin("./src/i18n/request.ts");

const withPWA = withPWAInit({
dest: "public",
Expand Down Expand Up @@ -195,4 +198,4 @@ const nextConfig = {
},
};

export default withPWA(nextConfig);
export default withNextIntl(withPWA(nextConfig));
Loading
Loading