diff --git a/public/locales/en/translation.json b/public/locales/en/translation.json index 73586261b..506fb40b8 100644 --- a/public/locales/en/translation.json +++ b/public/locales/en/translation.json @@ -1,4 +1,14 @@ { + "rightSidebar": { + "onThisPage": "On This Page", + "more": "More", + "editThisPage": "Edit this page", + "joinOurCommunity": "Join our community", + "feedback": "Feedback" + }, + "ui": { + "whatsNext": "What's Next" + }, "landing": { "test": "test", "search": { diff --git a/public/locales/es/translation.json b/public/locales/es/translation.json index 73586261b..594b3a610 100644 --- a/public/locales/es/translation.json +++ b/public/locales/es/translation.json @@ -1,35 +1,45 @@ { + "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?" + }, "landing": { "test": "test", "search": { - "title": "Welcome to the Scroll Documentation", - "placeholder": "Search Scroll documentation..." + "title": "Bienvenido a la Documentación de Scroll", + "placeholder": "Buscar Documentación de Scroll..." }, "newUserCTA": { - "title": "New to Scroll and ZK Rollups?", - "description": "Learn the basics in the Getting Started Guide." + "title": "Nuevo en Scroll y los ZK Rollups?", + "description": "Aprende lo básico en la Guía de Inicio" }, "resourcesCTA": { - "title": "Useful resources" + "title": "Recursos Útiles" }, "nodesCTA": { - "title": "Need to run your own Scroll Node?", - "description": "See the Node Operator’s Guide to learn about starting and maintaining Scroll Nodes.", - "buttonText": "Node Operator’s Guide" + "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": "Watch tutorials", - "description": "Learn more about the technology we are building. We're constantly uploading new videos to our YouTube channel.", - "buttonText": "Watch tutorials" + "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": "Need integration support?", + "title": "¿Necesita ayuda para integrarse?", "description": "Talk to an expert once we TODO: a url" }, "card2": { "title": "Discord", - "description": "Join the community" + "description": "Únete a nuestra Comunidad" }, "card3": { "title": "TODO: Discourse", @@ -44,94 +54,94 @@ }, "sidebar": { "gettingStarted": { - "gettingStarted": "Getting Started", - "overview": "Overview", + "gettingStarted": "Primeros Pasos", + "overview": "Vista General", "scrollSepoliaTestnet": "Scroll Sepolia Testnet", - "userGuide": "User Guide", - "setup": "Setup", + "userGuide": "Guía de Usuario", + "setup": "Configuración", "faucet": "Faucet", "bridge": "Bridge", - "transferTokens": "Transfer Tokens", - "commonErrors": "Common Errors", + "transferTokens": "Transferencia de Tokens", + "commonErrors": "Errores Comunes", "rollupExplorer": "Rollup Explorer", "scrollSepoliaBlockExplorer": "Scroll Sepolia Explorer", "sepoliaBlockExplorer": "Sepolia Explorer", - "community": "Community", + "community": "Comunidad", "discord": "Discord", - "communityForum": "Community Forum" + "communityForum": "Forum de la Comunidad" }, "developers": { - "developers": "Developers", - "buildingOnScroll": "Building on Scroll", - "developerQuickstart": "Developer Quickstart", - "verifyingSmartContracts": "Verifying Smart Contracts", - "scrollContracts": "Scroll Contracts", - "ethereumAndScrollDifferences": "Ethereum & Scroll Differences", - "l1AndL2Bridging": "L1 & L2 Bridging", - "ethAndErc20TokenBridge": "ETH & ERC20 Token Bridge", + "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": "The Scroll Messenger", - "transactionFeesOnScroll": "Transaction Fees on Scroll", - "l2Fee": "L2 Fee", - "l1Fee": "L1 Fee", + "theScrollMessenger": "El Scroll Messenger", + "transactionFeesOnScroll": "Comisiones de Transacciones en Scroll", + "l2Fee": "Comisión L2", + "l1Fee": "Comisión L1", "gasOracle": "Gas Oracle", - "future": "Future", - "guides": "Guides", - "contractDeploymentTutorial": "Contract Deployment Tutorial", - "crossChainInteraction": "Scroll Messenger Cross-chain Interaction", - "bridgingERC20TokenThroughCustomGateway": "Bridge an ERC20 through the Custom Gateway", - "bridgingERC721NftThroughCustomGateway": "Bridging ERC721 NFT through Custom Gateway", - "bridgingERC1155ThroughCustomGateway": "Bridging ERC1155 through Custom Gateway", - "estimatingGasAndTxFees": "Estimating Gas & Tx Fees", - "resources": "Resources", + "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": "Introduction", - "principles": "Principles", - "scrollArchitecture": "Scroll Architecture", - "overview": "Overview", + "introduction": "Introducción", + "principles": "Principios", + "scrollArchitecture": "Arquitectura de Scroll", + "overview": "Vista General", "scrollChain": "Scroll Chain", - "accountsAndState": "Accounts and State", - "blocks": "Blocks", - "transactions": "Transactions", - "rollupProcess": "Rollup Process", - "evmDifferencesFromEthereum": "EVM Differences from Ethereum", + "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": "Deposit Gateways", - "withdrawGateways": "Withdraw Gateways", + "depositGateways": "Gateways de Depósito", + "withdrawGateways": "Gateways de Retiro", - "sequencer": "Sequencer", - "executionNode": "Execution Node", - "rollupNode": "Rollup Node", + "sequencer": "Secuenciador", + "executionNode": "Nodo de Ejecución", + "rollupNode": "Nodo Rollup", "zkTrie": "zkTrie", "zkevm": "zkEVM", - "introToZkevm": "Intro to zkEVM", - "zkevmOverview": "zkEVM Overview", - "bridgeOverview": "Bridge Overview", + "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 & Protocols", - "theScalabilityProblem": "The Scalability Problem", - "introToRollups": "Intro to Rollups", + "ethereumAndProtocols": "Ethereum y Protocolos", + "theScalabilityProblem": "El Problema de la Escalabilidad", + "introToRollups": "Intro a los Rollups", "zeroKnowledge": "Zero Knowledge", - "introToZeroKnowledge": "Intro to Zero Knowledge", - "polynomialCommitmentSchemes": "Polynomial Commitment Schemes", - "kzgCommitmentScheme": "KZG Commitment Scheme", - "additionalResources": "Additional Resources" + "introToZeroKnowledge": "Intro a la Zero Knowledge", + "polynomialCommitmentSchemes": "Esquemas de Compromiso Polinómicos", + "kzgCommitmentScheme": "Esquema de Compromiso KZG", + "additionalResources": "Recursos Adicionales" } }, "notTranslated": { - "notTranslated": "This page has not been translated yet." + "notTranslated": "Esta página no ha sido traducida aún." } } diff --git a/src/components/Header/Header.astro b/src/components/Header/Header.astro index 26c39da59..5dbcbf177 100644 --- a/src/components/Header/Header.astro +++ b/src/components/Header/Header.astro @@ -51,13 +51,11 @@ const section = frontmatter?.section ?? ""
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")}

    { Object.keys(content).map((key) => ( diff --git a/src/components/RightSidebar/MoreMenu.astro b/src/components/RightSidebar/MoreMenu.astro index 5909a56d4..b5191170e 100644 --- a/src/components/RightSidebar/MoreMenu.astro +++ b/src/components/RightSidebar/MoreMenu.astro @@ -1,10 +1,11 @@ --- +import i18next, { t } from "i18next" import * as CONFIG from "../../config" const { editHref } = Astro.props const showMoreSection = CONFIG.COMMUNITY_INVITE_URL || editHref --- -{showMoreSection &&

    More

    } +{showMoreSection &&

    {t("rightSidebar.more")}

    }
      { editHref && ( @@ -27,7 +28,7 @@ const showMoreSection = CONFIG.COMMUNITY_INVITE_URL || editHref - Edit this page + {t("rightSidebar.editThisPage")} ) @@ -56,7 +57,7 @@ const showMoreSection = CONFIG.COMMUNITY_INVITE_URL || editHref fill="currentColor" /> - Join our community + {t("rightSidebar.joinOurCommunity")} ) diff --git a/src/components/RightSidebar/RightSidebar.astro b/src/components/RightSidebar/RightSidebar.astro index 6b46c32f3..d26ad856c 100644 --- a/src/components/RightSidebar/RightSidebar.astro +++ b/src/components/RightSidebar/RightSidebar.astro @@ -1,4 +1,5 @@ --- +import i18next, { t } from "i18next" import TableOfContents from "./TableOfContents" import MoreMenu from "./MoreMenu.astro" import { Feedback } from "../PageContent/Feedback" @@ -15,7 +16,7 @@ const { content, githubEditUrl, headings, clientSideToc } = Astro.props
- + diff --git a/src/components/RightSidebar/TableOfContents/index.tsx b/src/components/RightSidebar/TableOfContents/index.tsx index 37ab33571..b41dfe426 100644 --- a/src/components/RightSidebar/TableOfContents/index.tsx +++ b/src/components/RightSidebar/TableOfContents/index.tsx @@ -3,6 +3,7 @@ import { useStore } from "@nanostores/preact" import type { FunctionalComponent } from "preact" import { useState, useEffect, useRef } from "preact/hooks" import { shouldUpdateToc } from "./tocStore" +import i18next, { t } from "i18next" export interface Heading { depth: number text: string @@ -79,7 +80,7 @@ const TableOfContents: FunctionalComponent<{ return ( <> -

On this page

+

{t("rightSidebar.onThisPage")}