diff --git a/astro-i18next.config.ts b/astro-i18next.config.ts index d191ee33b..2b3e6b322 100644 --- a/astro-i18next.config.ts +++ b/astro-i18next.config.ts @@ -2,6 +2,6 @@ export default { defaultLocale: "en", showDefaultLocale: true, - locales: ["en", "zh"], + locales: ["en", "zh", "es"], load: ["server", "client"], } diff --git a/public/locales/en/translation.json b/public/locales/en/translation.json index 73586261b..ad8a263e6 100644 --- a/public/locales/en/translation.json +++ b/public/locales/en/translation.json @@ -1,4 +1,15 @@ { + "rightSidebar": { + "onThisPage": "On This Page", + "more": "More", + "editThisPage": "Edit this page", + "joinOurCommunity": "Join our community", + "feedback": "Feedback" + }, + "ui": { + "whatsNext": "What's Next", + "readMore": "Read More" + }, "landing": { "test": "test", "search": { @@ -55,6 +66,8 @@ "commonErrors": "Common Errors", "rollupExplorer": "Rollup Explorer", "scrollSepoliaBlockExplorer": "Scroll Sepolia Explorer", + "scrollMainnet": "Scroll Mainnet", + "scrollscan": "Scrollscan Block Explorer", "sepoliaBlockExplorer": "Sepolia Explorer", "community": "Community", "discord": "Discord", @@ -85,9 +98,13 @@ "bridgingERC1155ThroughCustomGateway": "Bridging ERC1155 through Custom Gateway", "estimatingGasAndTxFees": "Estimating Gas & Tx Fees", "resources": "Resources", + "mainnetResources": "Mainnet Resources", + "sepoliaResources": "Sepolia Resources", + "scrollBlockExplorer": "Scrollscan Explorer", "rollupExplorer": "Rollup Explorer", "scrollSepoliaBlockExplorer": "Scroll Sepolia Explorer", - "sepoliaBlockExplorer": "Sepolia Explorer" + "sepoliaRollupExplorer": "Rollup Explorer", + "sepoliaBlockExplorer": "Scrollscan Explorer" }, "technology": { "introduction": "Introduction", @@ -118,7 +135,11 @@ "bridgeOverview": "Bridge Overview", "prover": "Prover", "proofGeneration": "Proof Generation", - "cpuProverRepo": "CPU Prover Repo" + "cpuProverRepo": "CPU Prover Repo", + + "security": "Security", + "auditsAndBugBounty": "Audits & Bug Bounty", + "l2BeatAssessment": "L2Beat Assessment" }, "learn": { "ethereumAndProtocols": "Ethereum & Protocols", diff --git a/public/locales/es/translation.json b/public/locales/es/translation.json index 261ba69ce..8c177c20d 100644 --- a/public/locales/es/translation.json +++ b/public/locales/es/translation.json @@ -1,5 +1,148 @@ { + "rightSidebar": { + "onThisPage": "En esta página", + "more": "Más", + "editThisPage": "Editar esta página", + "joinOurCommunity": "Únete a nuestro Discord", + "feedback": "Feedback" + }, + "ui": { + "whatsNext": "¿Qué sigue?", + "readMore": "Leer Más" + }, + "landing": { + "test": "test", + "search": { + "title": "Bienvenido a la Documentación de Scroll", + "placeholder": "Buscar Documentación de Scroll..." + }, + "newUserCTA": { + "title": "Nuevo en Scroll y los ZK Rollups?", + "description": "Aprende lo básico en la Guía de Inicio" + }, + "resourcesCTA": { + "title": "Recursos Útiles" + }, + "nodesCTA": { + "title": "Necesitas correr tu propio Nodo de Scroll?", + "description": "Consulte la Guía del Operador de Nodos para obtener más información sobre la puesta en marcha y el mantenimiento de los Nodos de Scroll.", + "buttonText": "Guía del Operador de Nodos" + }, + "TutorialsCTA": { + "title": "Ver tutoriales", + "description": "Obtenga más información sobre la tecnología que estamos construyendo. Subimos constantemente nuevos vídeos a nuestro canal de YouTube.", + "buttonText": "Ver tutoriales" + }, + "LinksCTA": { + "card1": { + "title": "¿Necesita ayuda para integrarse?", + "description": "Talk to an expert once we TODO: a url" + }, + "card2": { + "title": "Discord", + "description": "Únete a nuestra Comunidad" + }, + "card3": { + "title": "TODO: Discourse", + "description": "Really, join the community" + } + }, + "NewsletterCTA": { + "title": "Stay updated on the latest Scroll news", + "placeholder": "Enter your email address", + "buttonText": "Sign up" + } + }, + "sidebar": { + "gettingStarted": { + "gettingStarted": "Primeros Pasos", + "overview": "Vista General", + "scrollSepoliaTestnet": "Scroll Sepolia Testnet", + "userGuide": "Guía de Usuario", + "setup": "Configuración", + "faucet": "Faucet", + "bridge": "Bridge", + "transferTokens": "Transferencia de Tokens", + "commonErrors": "Errores Comunes", + "rollupExplorer": "Rollup Explorer", + "scrollSepoliaBlockExplorer": "Scroll Sepolia Explorer", + "sepoliaBlockExplorer": "Sepolia Explorer", + "community": "Comunidad", + "discord": "Discord", + "communityForum": "Forum de la Comunidad" + }, + "developers": { + "developers": "Desarrolladores", + "buildingOnScroll": "Construyendo en Scroll", + "developerQuickstart": "Inicio rápido para Desarrolladores", + "verifyingSmartContracts": "Verificando Smart Contracts", + "scrollContracts": "Contratos de Scroll", + "ethereumAndScrollDifferences": "Diferencias entre Scroll y Ethereum", + "l1AndL2Bridging": "L1 y L2 Bridging", + "ethAndErc20TokenBridge": "ETH y ERC20 Token Bridge", + "erc721NftBridge": "ERC721 NFT Bridge", + "erc1155TokenBridge": "ERC1155 Token Bridge", + "theScrollMessenger": "El Scroll Messenger", + "transactionFeesOnScroll": "Comisiones de Transacciones en Scroll", + "l2Fee": "Comisión L2", + "l1Fee": "Comisión L1", + "gasOracle": "Gas Oracle", + "future": "Futuro", + "guides": "Guías", + "contractDeploymentTutorial": "Tutorial de Despliegue de Contratos", + "crossChainInteraction": "Interacción Cross-chain del Scroll Messenger", + "bridgingERC20TokenThroughCustomGateway": "Bridging de un ERC20 a través de una Gateway Personalizada", + "bridgingERC721NftThroughCustomGateway": "Bridging de un ERC721 NFT a través de una Gateway Personalizada", + "bridgingERC1155ThroughCustomGateway": "Bridging de un ERC1155 a través de una Gateway Personalizada", + "estimatingGasAndTxFees": "Estimación de las Tarifas de Gas y Tx", + "resources": "Recursos", + "rollupExplorer": "Rollup Explorer", + "scrollSepoliaBlockExplorer": "Scroll Sepolia Explorer", + "sepoliaBlockExplorer": "Sepolia Explorer" + }, + "technology": { + "introduction": "Introducción", + "principles": "Principios", + "scrollArchitecture": "Arquitectura de Scroll", + "overview": "Vista General", + + "scrollChain": "Scroll Chain", + "accountsAndState": "Cuentas y Estado", + "blocks": "Bloques", + "transactions": "Transacciones", + "rollupProcess": "Proceso del Rollup", + "evmDifferencesFromEthereum": "Diferencias de EVM respecto a Ethereum", + + "bridge": "Bridge", + "crossDomainMessaging": "Cross-Domain Messaging", + "depositGateways": "Gateways de Depósito", + "withdrawGateways": "Gateways de Retiro", + + "sequencer": "Secuenciador", + "executionNode": "Nodo de Ejecución", + "rollupNode": "Nodo Rollup", + "zkTrie": "zkTrie", + + "zkevm": "zkEVM", + "introToZkevm": "Intro a la zkEVM", + "zkevmOverview": "Vista General de la zkEVM", + "bridgeOverview": "Vista General del Bridge", + "prover": "Prover", + "proofGeneration": "Proof Generation", + "cpuProverRepo": "CPU Prover Repo" + }, + "learn": { + "ethereumAndProtocols": "Ethereum y Protocolos", + "theScalabilityProblem": "El Problema de la Escalabilidad", + "introToRollups": "Intro a los Rollups", + "zeroKnowledge": "Zero Knowledge", + "introToZeroKnowledge": "Intro a la Zero Knowledge", + "polynomialCommitmentSchemes": "Esquemas de Compromiso Polinómicos", + "kzgCommitmentScheme": "Esquema de Compromiso KZG", + "additionalResources": "Recursos Adicionales" + } + }, "notTranslated": { - "notTranslated": "Esta página aún no ha sido traducida." + "notTranslated": "Esta página no ha sido traducida aún." } } diff --git a/src/components/NavCard.astro b/src/components/NavCard.astro index 8c8678504..dfcd8e10f 100644 --- a/src/components/NavCard.astro +++ b/src/components/NavCard.astro @@ -1,4 +1,5 @@ --- +import i18next, { t } from "i18next" export type Props = { icon: string name: string @@ -17,7 +18,7 @@ const { icon, name, content, link } = Astro.props as Props {name} {content} - Read more + {t("ui.readMore")} diff --git a/src/components/PageContent/WhatsNext.astro b/src/components/PageContent/WhatsNext.astro index f201197a6..2e21d4258 100644 --- a/src/components/PageContent/WhatsNext.astro +++ b/src/components/PageContent/WhatsNext.astro @@ -1,10 +1,11 @@ --- +import i18next, { t } from "i18next" export type Props = { content: Record } const { content = {} } = Astro.props as Props ---
-

Whats Next

+

{t("ui.whatsNext")}