Skip to content

Commit 3b14677

Browse files
authored
Merge pull request #8 from scroll-tech/develop
From Main Repo Develop to Spanish Catchup
2 parents c13d909 + 919a6b0 commit 3b14677

File tree

122 files changed

+5765
-3908
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

122 files changed

+5765
-3908
lines changed

astro-i18next.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
export default {
33
defaultLocale: "en",
44
showDefaultLocale: true,
5-
locales: ["en", "es"],
5+
locales: ["en", "es", "zh"],
66
load: ["server", "client"],
77
}

package-lock.json

Lines changed: 696 additions & 3540 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
},
5555
"devDependencies": {
5656
"@astrojs/mdx": "^0.19.7",
57-
"@astrojs/preact": "^1.2.0",
57+
"@astrojs/preact": "^3.0.1",
5858
"@astrojs/react": "^2.2.0",
5959
"@astrojs/sitemap": "^1.0.0",
6060
"@nomicfoundation/hardhat-toolbox": "^2.0.0",

public/locales/en/translation.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,14 +166,19 @@
166166
},
167167
"resources": {
168168
"title": "Resources",
169+
"scrollDocsURL": "https://docs.scroll.io/",
169170
"blog": "Blog",
170171
"documentation": "Documentation",
171-
"pressKit": "Press Kit"
172+
"brandKit": "Brand Kit"
172173
},
173174
"followUs": {
174175
"title": "Follow Us"
175176
}
176177
},
178+
"pageNotFound": {
179+
"title": "Page not found",
180+
"text": "We're sorry, but we couldn't find the page you were looking for."
181+
},
177182
"notTranslated": {
178183
"notTranslated": "This page has not been translated yet."
179184
}

public/locales/es/translation.json

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@
5252
"text": "Roadmap, actualizaciones, eventos virtuales y presenciales, oportunidades en el ecosistema y más",
5353
"placeholder": "tu correo electrónico aquí",
5454
"thankYouForSubscribing": "¡Gracias por suscribirte!",
55-
"correctEmail": "Porfavor usa un correo electrónico válido.",
56-
"pleaseInsertEmail": "Porfavor ingresa tu correo electrónico."
55+
"correctEmail": "Por favor usa un correo electrónico válido.",
56+
"pleaseInsertEmail": "Por favor ingresa tu correo electrónico."
5757
}
5858
},
5959
"sidebar": {
@@ -166,15 +166,21 @@
166166
},
167167
"resources": {
168168
"title": "Recursos",
169+
"scrollDocsURL": "https://docs.scroll.io/es",
169170
"blog": "Blog",
170171
"documentation": "Documentación",
171-
"pressKit": "Kit de Prensa"
172+
"brandKit": "Kit de Marca"
172173
},
173174
"followUs": {
174175
"title": "Síguenos"
175176
}
176177
},
178+
"pageNotFound": {
179+
"title": "Página no encontrada",
180+
"text": "Lo sentimos, pero no pudimos encontrar la página que buscas."
181+
},
177182
"notTranslated": {
178183
"notTranslated": "Esta página no ha sido traducida aún."
179-
}
184+
},
185+
"This email cannot be added to this list. Please enter a different email address.": "Este correo electrónico no puede ser añadido a la lista. Por favor ingresa uno diferente."
180186
}

public/locales/zh/translation.json

Lines changed: 115 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,15 @@
11
{
2+
"rightSidebar": {
3+
"onThisPage": "本页",
4+
"more": "更多",
5+
"editThisPage": "编辑本页",
6+
"joinOurCommunity": "加入我们的社区",
7+
"feedback": "反馈"
8+
},
9+
"ui": {
10+
"whatsNext": "接下来是什么",
11+
"readMore": "阅读更多"
12+
},
213
"landing": {
314
"test": "test",
415
"search": {
@@ -38,45 +49,136 @@
3849
},
3950
"NewsletterCTA": {
4051
"title": "随时了解最新的 Scroll 新闻",
41-
"placeholder": "输入你的电子邮箱地址",
42-
"buttonText": "报名"
52+
"text": "路线图更新,虚拟和现场活动,生态机会等等",
53+
"placeholder": "在此输入您的电子邮件地址",
54+
"thankYouForSubscribing": "感谢您的订阅!",
55+
"correctEmail": "请使用正确的电子邮件地址。",
56+
"pleaseInsertEmail": "请输入您的电子邮件。"
4357
}
4458
},
4559
"sidebar": {
4660
"gettingStarted": {
4761
"gettingStarted": "入门",
48-
"overview": "概述",
62+
"overview": "概览",
63+
"scrollSepoliaTestnet": "Scroll Sepolia 测试网",
4964
"userGuide": "用户指南",
5065
"setup": "设置",
5166
"faucet": "水龙头",
52-
"bridge": "桥接器",
67+
"bridge": "跨链桥",
5368
"transferTokens": "转移代币",
5469
"commonErrors": "常见错误",
55-
"rollupExplorer": "Rollup浏览器",
70+
"rollupExplorer": "Rollup 浏览器",
71+
"scrollSepoliaBlockExplorer": "Scroll Sepolia 浏览器",
72+
"scrollMainnet": "Scroll 主网",
73+
"scrollscan": "Scrollscan 区块浏览器",
74+
"sepoliaBlockExplorer": "Sepolia 浏览器",
5675
"community": "社区",
76+
"discord": "Discord",
5777
"communityForum": "社区论坛"
5878
},
5979
"developers": {
6080
"developers": "开发者",
61-
"buildingOnScroll": "构建Scroll应用",
81+
"buildingOnScroll": "在 Scroll 上开发",
6282
"developerQuickstart": "开发者快速入门",
63-
"integrations": "集成",
83+
"verifyingSmartContracts": "验证智能合约",
84+
"scrollContracts": "Scroll 合约",
85+
"ethereumAndScrollDifferences": "以太坊 和 Scroll 的区别",
86+
"l1AndL2Bridging": "L1 和 L2 跨链",
87+
"ethAndErc20TokenBridge": "ETH 和 ERC20 代币跨链桥",
88+
"erc721NftBridge": "ERC721 NFT 跨链桥",
89+
"erc1155TokenBridge": "ERC1155 代币跨链桥",
90+
"theScrollMessenger": "The Scroll Messenger",
91+
"transactionFeesOnScroll": "Scroll 上的交易手续费",
92+
"l2Fee": "L2 Fee",
93+
"l1Fee": "L1 Fee",
94+
"gasOracle": "Gas 预言机",
95+
"future": "未来",
6496
"guides": "指南",
6597
"contractDeploymentTutorial": "合约部署教程",
98+
"crossChainInteraction": "Scroll Messenger 跨链交互",
99+
"bridgingERC20TokenThroughCustomGateway": "通过自定义网关跨链 ERC20",
100+
"bridgingERC721NftThroughCustomGateway": "通过自定义网关跨链 ERC721 NFT",
101+
"bridgingERC1155ThroughCustomGateway": "通过自定义网关跨链 ERC1155",
102+
"estimatingGasAndTxFees": "预估 Gas 费和交易手续费",
66103
"resources": "资源",
67-
"rollupExplorer": "Rollup浏览器"
104+
"mainnetResources": "主网资源",
105+
"sepoliaResources": "Sepolia资源",
106+
"scrollBlockExplorer": "Scrollscan 区块浏览器",
107+
"rollupExplorer": "Rollup 浏览器",
108+
"scrollSepoliaBlockExplorer": "Scroll Sepolia 浏览器",
109+
"sepoliaRollupExplorer": "Rollup 浏览器",
110+
"sepoliaBlockExplorer": "Sepolia 浏览器"
68111
},
69112
"technology": {
70-
"overview": "概述",
71-
"scrollArchitecture": "Scroll架构"
113+
"introduction": "介绍",
114+
"principles": "原则",
115+
"scrollArchitecture": "Scroll 架构",
116+
"overview": "概览",
117+
118+
"scrollChain": "Scroll 链",
119+
"accountsAndState": "账户和状态",
120+
"blocks": "区块",
121+
"transactions": "交易",
122+
"rollupProcess": "Rollup 流程",
123+
"evmDifferencesFromEthereum": "和以太坊 EVM 的区别",
124+
125+
"bridge": "跨链桥",
126+
"crossDomainMessaging": "跨链消息传递",
127+
"depositGateways": "存款网关",
128+
"withdrawGateways": "提款网关",
129+
130+
"sequencer": "排序器",
131+
"executionNode": "执行节点",
132+
"rollupNode": "Rollup 节点",
133+
"zkTrie": "zkTrie树",
134+
135+
"zkevm": "zkEVM",
136+
"introToZkevm": "zkEVM 介绍",
137+
"zkevmOverview": "zkEVM 概览",
138+
"bridgeOverview": "跨链桥 概览",
139+
"prover": "prover",
140+
"proofGeneration": "证明生成",
141+
"cpuProverRepo": "CPU prover 代码仓库",
142+
143+
"security": "安全",
144+
"auditsAndBugBounty": "审计和漏洞赏金",
145+
"l2BeatAssessment": "L2Beat 评估"
72146
},
73147
"learn": {
74-
"zkEVMOverview": "zkEVM概述"
148+
"ethereumAndProtocols": "以太坊与协议",
149+
"theScalabilityProblem": "扩容问题",
150+
"introToRollups": "Rollups 介绍",
151+
"zeroKnowledge": "零知识证明",
152+
"introToZeroKnowledge": "零知识证明介绍",
153+
"polynomialCommitmentSchemes": "多项式承诺方案",
154+
"kzgCommitmentScheme": "KZG 承诺方案",
155+
"additionalResources": "其他资源"
156+
}
157+
},
158+
"footer": {
159+
"aboutScroll": {
160+
"title": "关于 Scroll",
161+
"bugBounty": "漏洞赏金",
162+
"joinUs": "加入我们",
163+
"healthStatus": "健康状况",
164+
"privacyPolicy": "隐私政策",
165+
"termsAndConditions": "条款和条件"
166+
},
167+
"resources": {
168+
"title": "资源",
169+
"scrollDocsURL": "https://docs.scroll.io/",
170+
"blog": "博客",
171+
"documentation": "文档",
172+
"brandKit": "品牌工具包"
75173
},
76-
"infrastructure": {
77-
"introduction": "介绍"
174+
"followUs": {
175+
"title": "关注我们"
78176
}
79177
},
178+
"pageNotFound": {
179+
"title": "页面未找到",
180+
"text": "很抱歉,我们找不到您正在寻找的页面"
181+
},
80182
"notTranslated": {
81183
"notTranslated": "此页面尚未翻译。"
82184
}

src/components/Footer/Footer.astro

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
import Subscribe from "./Subscribe/Subscribe.tsx"
3+
import PureFooter from "./PureFooter/PureFooter.tsx"
4+
import i18next from "i18next"
5+
---
6+
7+
<div>
8+
<Subscribe client:idle lang={i18next.language} />
9+
<PureFooter />
10+
</div>

src/components/Footer/Footer.tsx

Lines changed: 0 additions & 15 deletions
This file was deleted.

src/components/Footer/PureFooter/PureFooter.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ const Footer = () => {
1414
<ul>
1515
{aboutList.map((item) => (
1616
<li key={item.name} className={styles.content}>
17-
<a href={item.href}>{item.name}</a>
17+
<a href={item.href}>{t(item.name)}</a>
1818
</li>
1919
))}
2020
</ul>
@@ -24,7 +24,7 @@ const Footer = () => {
2424
<ul>
2525
{resourceList.map((item) => (
2626
<li key={item.name} className={styles.content}>
27-
<a href={item.href}>{item.name}</a>
27+
<a href={item.href}>{t(item.name)}</a>
2828
</li>
2929
))}
3030
</ul>

src/components/Footer/Subscribe/Subscribe.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { useState, useEffect } from "preact/hooks"
33
import MailchimpSubscribe from "react-mailchimp-subscribe"
44
import SubscribeSvg from "~/assets/svgs/footer/subscribe.svg?react"
55
import { clsx } from "~/lib"
6-
import { t } from "i18next"
6+
import i18next, { changeLanguage, t } from "i18next"
77

88
import EmailInput from "./EmailInput.tsx"
99
import styles from "./Subscribe.module.css"
@@ -15,11 +15,13 @@ const isValidEmail = (email: string): boolean => {
1515
return emailRegex.test(email)
1616
}
1717

18-
export default function Subscribe() {
18+
export default function Subscribe(props) {
1919
const [email, setEmail] = useState("")
2020
const [customMessage, setCustomMessage] = useState("")
2121
const [emailValid, setEmailValid] = useState(false)
2222

23+
i18next.changeLanguage(props.lang)
24+
2325
useEffect(() => {
2426
setCustomMessage("")
2527
setEmailValid(isValidEmail(email))
@@ -67,7 +69,7 @@ export default function Subscribe() {
6769
end={status === "success"}
6870
/>
6971
{customMessage && <div className={styles.errorMessage}>{customMessage}</div>}
70-
{status === "error" && <div className={styles.errorMessage}>{message}</div>}
72+
{status === "error" && <div className={styles.errorMessage}>{t(message)}</div>}
7173
</div>
7274
)}
7375
/>

0 commit comments

Comments
 (0)