diff --git a/package.json b/package.json index 43447c3..c0cd01f 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "moment": "^2.29.4", "next": "13.1.6", "next-i18next": "^13.1.5", + "nodemailer": "^6.9.1", "react": "18.2.0", "react-dom": "18.2.0", "react-i18next": "^12.1.5", diff --git a/src/components/about/usecase_items.tsx b/src/components/about/usecase_items.tsx index 3c82fc8..2d32846 100644 --- a/src/components/about/usecase_items.tsx +++ b/src/components/about/usecase_items.tsx @@ -16,13 +16,13 @@ function UseCaseItems({ title, description, image }: IUsecaseParams) { const useDescripList = useDescrip.map((v) => { return

{t(v)}

; - }); //todo: react use id + }); return (

{t(title)}

- {useDescripList} +

{useDescripList}

{title} diff --git a/src/components/common/contact_us_form.tsx b/src/components/common/contact_us_form.tsx index bdfc600..b766316 100644 --- a/src/components/common/contact_us_form.tsx +++ b/src/components/common/contact_us_form.tsx @@ -1,44 +1,201 @@ +import { useEffect, useState, useRef } from "react"; +import lottie from "lottie-web"; import Image from "next/legacy/image"; import { useTranslation } from "next-i18next"; +import useInputNumber from "../../lib/hooks/use_input_number"; import myStyles from "@/styles/contact.module.css"; function ContactUsForm() { const { t } = useTranslation("common"); + const sendAnimContainer = useRef(null); + const successAnimContainer = useRef(null); + + const [submitBtnDisabled, setSubmitBtnDisabled] = useState(false); + const [sendAnimation, setSendAnimation] = useState(false); + const [sendSuccess, setSendSuccess] = useState(false); + const [showResult, setShowResult] = useState(false); + + const [inputName, setInputName] = useState(""); + const [inputPhone, setInputPhone] = useInputNumber(""); + const [inputEmail, setInputEmail] = useState(""); + const [inputMessage, setInputMessage] = useState(""); + + const now = new Date().toLocaleString("zh-TW", { timeZone: "Asia/Taipei" }); + + useEffect(() => { + const animSend = lottie.loadAnimation({ + container: sendAnimContainer.current!, + renderer: "svg", + loop: true, + autoplay: true, + path: "/animation/zonafans2.json", + }); + + const animSuccess = lottie.loadAnimation({ + container: successAnimContainer.current!, + renderer: "svg", + loop: false, + autoplay: true, + path: "/animation/success.json", + }); + + return () => { + animSend.destroy(); + animSuccess.destroy(); + }; + }, [sendAnimation, sendSuccess, showResult]); + + const nameChangeHandler = (event: React.ChangeEvent) => { + setInputName(event.target.value); + }; + + const phoneChangeHandler = (event: React.ChangeEvent) => { + setInputPhone(event.target.value); + }; + + const emailChangeHandler = (event: React.ChangeEvent) => { + setInputEmail(event.target.value); + }; + + const messageChangeHandler = ( + event: React.ChangeEvent + ) => { + setInputMessage(event.target.value); + }; + + const submitHandler = async (event: React.FormEvent) => { + const failedProcess = async () => { + setSendSuccess(false); + setShowResult(true); + setSubmitBtnDisabled(false); + + await new Promise((resolve) => setTimeout(resolve, 3000)); + + setSendAnimation(false); + setShowResult(false); + }; + try { + event.preventDefault(); + + const emailData = { + comment: `

姓名:${inputName}

手機:${inputPhone}

Email:${inputEmail}

意見:${inputMessage}

${now}

`, + }; + + setSubmitBtnDisabled(true); + setSendAnimation(true); + + await new Promise((resolve) => setTimeout(resolve, 3000)); + + const res = await fetch("/api/email", { + method: "POST", + body: JSON.stringify(emailData), + headers: { + "Content-Type": "application/json; charset=UTF-8", + }, + }); + const result = await res.json(); + + const success = result.success; + if (success) { + setSendSuccess(true); + setShowResult(true); + await new Promise((resolve) => setTimeout(resolve, 3000)); + setSendAnimation(false); + setSendSuccess(false); + setShowResult(false); + setInputName(""); + setInputPhone(""); + setInputEmail(""); + setInputMessage(""); + } else { + await failedProcess(); + } + setSubmitBtnDisabled(false); + } catch (error) { + await failedProcess(); + } + }; + + const resultPart = showResult ? ( + sendSuccess ? ( +

+
+

{t("CONTACT_FORM.SUCCESS_MESSAGE")}

+
+ ) : ( +
+

{t("CONTACT_FORM.ERROR_MESSAGE1")}

+

{t("CONTACT_FORM.ERROR_MESSAGE2")}

+
+ ) + ) : null; + + const inputPart = sendAnimation ? ( +
+
+
+ ) : ( + <> + + + + + + ); + + const submitButton = submitBtnDisabled ? ( + + ) : ( + + ); + return (
contact_us
-
- - - - - + + + {resultPart} + {inputPart} + {submitButton}
); diff --git a/src/components/common/footer.tsx b/src/components/common/footer.tsx index da032e1..a12a384 100644 --- a/src/components/common/footer.tsx +++ b/src/components/common/footer.tsx @@ -33,7 +33,7 @@ function Footer() {

{t("NAV_BAR.TECHNOLOGY")}

- +

{t("TECHNOLOGY.TITLE1")}

diff --git a/src/components/faq/faqItems.tsx b/src/components/faq/faqItems.tsx index fd39447..76f1b36 100644 --- a/src/components/faq/faqItems.tsx +++ b/src/components/faq/faqItems.tsx @@ -4,7 +4,7 @@ import myStyles from "@/styles/faq.module.css"; interface IFaqItemsParams { id: string; question: string; - answer: string; + answer: string[]; faqBlockStyles: string; answerAreaStyles: string; showAnsIndex: string; @@ -30,15 +30,17 @@ function FAQItems({ } }; + const answerList = answer.map((v) => { + return

{t(v)}

; + }); + return (

{t(question)}

-
-

{t(answer)}

-
+
{answerList}
); } diff --git a/src/components/home/bolt_introduction.tsx b/src/components/home/bolt_introduction.tsx index cd7e316..fa3855b 100644 --- a/src/components/home/bolt_introduction.tsx +++ b/src/components/home/bolt_introduction.tsx @@ -2,6 +2,7 @@ import { useRef, useEffect } from "react"; import lottie from "lottie-web"; import { useTranslation } from "next-i18next"; import myStyles from "@/styles/introduction.module.css"; +import Link from "next/link"; function BoltIntro() { const { t } = useTranslation("common"); @@ -57,8 +58,6 @@ function BoltIntro() { path: "/animation/step03.json", }); - //const [animFrameStep1,setAnimFrameStep1] = useState() - function animatebodymovin(duration: number) { const scrollPosition = window.scrollY; @@ -120,7 +119,11 @@ function BoltIntro() {

- {t("MAIN.BLOCK2.TITLE1_HIGHLIGHT")} + + + {t("MAIN.BLOCK2.TITLE1_HIGHLIGHT")} + + {t("MAIN.BLOCK2.TITLE1")}

{t("MAIN.BLOCK2.DESCRIPTION1")}

@@ -132,7 +135,11 @@ function BoltIntro() {

{t("MAIN.BLOCK2.TITLE2")} - {t("MAIN.BLOCK2.TITLE2_HIGHLIGHT")} + + + {t("MAIN.BLOCK2.TITLE2_HIGHLIGHT")} + +

{t("MAIN.BLOCK2.DESCRIPTION2_LINE1")}

{t("MAIN.BLOCK2.DESCRIPTION2_LINE2")}

@@ -145,7 +152,11 @@ function BoltIntro() {

{t("MAIN.BLOCK2.TITLE3")} - {t("MAIN.BLOCK2.TITLE3_HIGHLIGHT")} + + + {t("MAIN.BLOCK2.TITLE3_HIGHLIGHT")} + +

{t("MAIN.BLOCK2.DESCRIPTION3")}

diff --git a/src/constants/config.ts b/src/constants/config.ts index 1240fcd..dedc52b 100644 --- a/src/constants/config.ts +++ b/src/constants/config.ts @@ -72,21 +72,49 @@ const useCaseData = [ { id: "u004", title: "ABOUT.USE_CASE.CASE4.TITLE", - description: ["ABOUT.USE_CASE.CASE4.DESCRIPTION"], + description: [ + "ABOUT.USE_CASE.CASE4.DESCRIPTION1", + "ABOUT.USE_CASE.CASE4.DESCRIPTION2", + "ABOUT.USE_CASE.CASE4.DESCRIPTION3", + ], image: "ABOUT.USE_CASE.CASE4.IMAGE", }, ]; const faqData = [ - { id: "q001", question: "FAQ.QUESTION1", answer: "FAQ.ANSWER1" }, - { id: "q002", question: "FAQ.QUESTION2", answer: "FAQ.ANSWER2" }, - { id: "q003", question: "FAQ.QUESTION3", answer: "FAQ.ANSWER3" }, - { id: "q004", question: "FAQ.QUESTION4", answer: "FAQ.ANSWER4" }, + { + id: "q001", + question: "FAQ.QUESTION1", + answer: [ + "FAQ.ANSWER1_LINE1", + "FAQ.ANSWER1_LINE2", + "FAQ.ANSWER1_LINE3", + "FAQ.ANSWER1_LINE4", + "FAQ.ANSWER1_LINE5", + ], + }, + { + id: "q002", + question: "FAQ.QUESTION2", + answer: ["FAQ.ANSWER2_LINE1", "FAQ.ANSWER2_LINE2", "FAQ.ANSWER2_LINE3"], + }, + { + id: "q003", + question: "FAQ.QUESTION3", + answer: [ + "FAQ.ANSWER3_LINE1", + "FAQ.ANSWER3_LINE2", + "FAQ.ANSWER3_LINE3", + "FAQ.ANSWER3_LINE4", + "FAQ.ANSWER3_LINE5", + ], + }, + { id: "q004", question: "FAQ.QUESTION4", answer: ["FAQ.ANSWER4"] }, ]; const technologyData = [ { - anchor: "distributed-audit", + anchor: "decentralized-audit", title: "TECHNOLOGY.TITLE1", description: "TECHNOLOGY.DESCRIPTION1", image: "/img/technology01.svg", diff --git a/src/lib/hooks/use_input_number.ts b/src/lib/hooks/use_input_number.ts new file mode 100644 index 0000000..ed6162d --- /dev/null +++ b/src/lib/hooks/use_input_number.ts @@ -0,0 +1,15 @@ +import { useState } from "react"; + +/* Info: (20230324 - Julian) 限制輸入數字 hooks */ +const useInputNumber = (defaultVal = ""): [string, (val: string) => void] => { + const [numVal, setNumVal] = useState(defaultVal); + + const handleChange = (val: string) => { + val = val.replace(/[^-+\d]/g, ""); + setNumVal(val); + }; + + return [numVal, handleChange]; +}; + +export default useInputNumber; diff --git a/src/lib/utils/email.js b/src/lib/utils/email.js new file mode 100644 index 0000000..da0f2a3 --- /dev/null +++ b/src/lib/utils/email.js @@ -0,0 +1,55 @@ +const nodemailer = require("nodemailer"); + +class SendMail { + /* Info: (20230324 - Julian) 設定不含參數的 constructor */ + constructor() { + /* Info: (20230324 - Julian) nothing to do */ + } + + static async sendMail(config, comment) { + /* Info: (20230324 - Julian) create gmail service */ + const transporter = nodemailer.createTransport({ + service: "Gmail", + host: "smtp.gmail.com", + port: 465, + auth: { + /* Info: (20230324 - Julian) 發信的帳號密碼,由 dotenv 傳入以保障安全 */ + user: config.googleClientID, + pass: config.googleClientPassword, + }, + }); + + /* Info: (20230324 - Julian) 設定信件模板 */ + const mailOptions = { + /* Info: (20230324 - Julian) 寄件地址 */ + from: config.googleClientID, + /* Info: (20230324 - Julian) 收信人 */ + to: config.googleClientID, + /* Info: (20230324 - Julian) 主旨 */ + subject: "Bolt 表單回覆", + /* Info: (20230324 - Julian) plaintext body */ + text: comment, + /* Info: (20230324 - Julian) html body */ + html: "

" + comment + "

", + }; + + /* Info: (20230324 - Julian) send mail with defined transport object */ + transporter.sendMail(mailOptions, (error, info) => { + if (error) { + throw error; + } else { + return info.response; + } + }); + + return { success: true }; + } +} + +(module.exports = SendMail), + { + rules: { + "react/no-unescaped-entities": "off", + "@next/next/no-page-custom-font": "off", + }, + }; diff --git a/src/locales/en/common.json b/src/locales/en/common.json index b69c7eb..3fbd6b8 100644 --- a/src/locales/en/common.json +++ b/src/locales/en/common.json @@ -1,74 +1,76 @@ { "NAV_BAR": { - "ABOUT": "about Bolt", + "ABOUT": "about BOLT", "TECHNOLOGY": "Technology", "FAQ": "FAQ", - "BLOCKCHAIN": "區塊鏈瀏覽器", + "BLOCKCHAIN": "Blockchain Explorer", "CONTACT_US": "Contact Us", "PRIVACY": "Privacy Policy", "LANGUAGE": "Language (EN)" }, "MAIN": { "BLOCK1": { - "TITLE": "兼具隱私的區塊鏈存證庫", + "TITLE": "Privacy-Preserving Blockchain Repository", "WHITEPAPER": "Whitepaper", - "WINDOWS": "Bolt for Windows", - "MAC_OS": "Bolt for MAC OS", - "LINUX": "Bolt for Linux", - "HOW_TO": "How to install Bolt ?" + "WINDOWS": "BOLT for Windows", + "MAC_OS": "BOLT for MAC OS", + "LINUX": "BOLT for Linux", + "HOW_TO": "How to install BOLT ?" }, "BLOCK2": { - "TITLE": "What Is Bolt ?", - "TITLE1_HIGHLIGHT": "零知識證明", - "TITLE1": "資料壓縮打包", - "DESCRIPTION1": "Bolt 會在鏈下先將數筆資料壓縮,降低龐大的上鏈成本,透過零知識證明技術,使用者可以在不透露隱私,又有存證的需求下將資料交給Bolt,以區塊鏈技術存證,同時兼具可信度和隱私性。", - "TITLE2_HIGHLIGHT": "見證者", - "TITLE2": "人人都是", - "DESCRIPTION2_LINE1": "以分散式稽核的方式大幅增加資料可信性和防篡改力度。", - "DESCRIPTION2_LINE2": "只要有網路和儲存量,人人皆可作為見證者,分工合作、相互監督。", - "DESCRIPTION2_LINE3": "合理的獎勵機制,吸引更多的見證者來為我們的資料做保證,以此創造共榮區塊鏈生態圈。", - "TITLE3_HIGHLIGHT": "混合鏈證據", - "TITLE3": "跨鏈創造", - "DESCRIPTION3": "資料除了上傳到 Bolt 各個節點外,亦會透過跨鏈協議上傳至 以太坊/比特幣 等大型公鏈,證據在多方層層的保護下大幅降低被攻擊篡改的可能性,受到嚴密的保護。" + "TITLE": "What Is BOLT ?", + "TITLE1_HIGHLIGHT": "Zero-Knowledge Proof ", + "TITLE1": "Data compression and packaging", + "DESCRIPTION1": "BOLT will compress multiple sets of data off-chain, reducing the cost of uploading large amounts of data. Through the use of zero-knowledge proof technology, users can provide BOLT with data for blockchain storage without revealing their privacy. This ensures credibility and privacy protection for the user's data.", + "TITLE2_HIGHLIGHT": "witness", + "TITLE2": "Everyone is a ", + "DESCRIPTION2_LINE1": "Through decentralized auditing, we significantly enhance data credibility and tamper-proof capabilities.", + "DESCRIPTION2_LINE2": "With internet access and storage capacity, anyone can be a witness and collaborate and supervise each other.", + "DESCRIPTION2_LINE3": "We offer a reasonable incentive mechanism to attract more witnesses to ensure the reliability of our data, creating a thriving blockchain ecosystem.", + "TITLE3_HIGHLIGHT": "Hybrid-Chain Evidence", + "TITLE3": "Cross-Chain Creation ", + "DESCRIPTION3": "In addition to uploading data to various nodes of BOLT, data is also uploaded to large public chains such as Ethereum/Bitcoin through cross-chain protocols. Evidence is protected by multiple layers of security measures, greatly reducing the possibility of attacks and tampering." }, "BLOCK3": { - "TITLE": "以安全為首要條件,實踐去中心化理想" + "TITLE": "We prioritize security and strive to realize the ideal of decentralization." } }, "ABOUT": { "WHY_BOLT": { - "TITLE": "Why Use Bolt ?", - "TITLE1": "合理的上鏈成本", - "DESCRIPTION1": "大量壓縮鏈下資料與交易紀錄,能以極低成本上多條公鏈存證。", - "TITLE2": "零知識證明技術", - "DESCRIPTION2": "該技術在無需揭露資料機密下仍可讓資料受區塊鏈生態監管。", - "TITLE3": "數據交換平台", - "DESCRIPTION3": "透過合理分潤鼓勵數據提供者,打造真實數據整合平台,提供相關單位合法取得數據之管道。" + "TITLE": "Why Use BOLT ?", + "TITLE1": "Reasonable Upload Cost", + "DESCRIPTION1": "We first compress a large amount of transaction records off-chain, so that the data can be uploaded to multiple public chains for storage at a very low cost.", + "TITLE2": "Zero-Knowledge Proof", + "DESCRIPTION2": "This technology enables data to be monitored by the blockchain ecosystem without the need to disclose sensitive information.", + "TITLE3": "Data Exchange Platform", + "DESCRIPTION3": "By providing reasonable revenue sharing, we encourage data providers to contribute to the creation of a real data integration platform, which can provide a legitimate channel for relevant units to obtain data." }, "USE_CASE": { "TITLE": "Use Case", "CASE1": { - "TITLE": "交易所審計:", - "DESCRIPTION_LINE1": "防止加密貨幣的雷曼時刻再次發生,加強交易所可信度", - "DESCRIPTION_LINE2": "導入流程:", - "DESCRIPTION_LINE3": "Bolt Audit 使用零知識證明技術驗證,過程不需揭露交易所營運數據", - "DESCRIPTION_LINE4": "用戶得以隨時比對雙方證據是否吻合,並於發現異常時及時公佈給相關用戶。用戶亦可自行存證指定格式相關證據,並存證於 Bolt 透過 Bolt Explorer 確認資料成功寫入,提供用戶資料存證收據", - "DESCRIPTION_LINE5": "透過 Bolt 定期將交易所資料整理為指定格式,加密存證於區塊鏈上", + "TITLE": "Exchange Auditing: ", + "DESCRIPTION_LINE1": "To prevent another Lehman moment in the cryptocurrency, we will enhance the credibility of exchanges through auditing.", + "DESCRIPTION_LINE2": "The implemented process is as follows: ", + "DESCRIPTION_LINE3": "1. BOLT Audit uses zero-knowledge proof technology for verification, without disclosing the operational data of the exchange.", + "DESCRIPTION_LINE4": "2. Users can compare the evidence from both sides at any time and promptly announce any anomalies to relevant parties. Users can also preserve related evidence in a designated format and store it in BOLT, and confirm that the data has been successfully written through BOLT Explorer, providing users receipts of data storage.", + "DESCRIPTION_LINE5": "BOLT periodically organizes exchange data into a specified format, encrypts it, and stores it on the blockchain.", "IMAGE": "/img/usecase01.svg" }, "CASE2": { - "TITLE": "資料信任服務:", - "DESCRIPTION": "解決資料信任問題,如:捐款資金走向等,將資料上到 BOLT 後,壓縮上到公鏈,讓大眾有管道進行驗證,提高資料的可信度,同時加強企業形象。", + "TITLE": "Data Trust Service: ", + "DESCRIPTION": "BOLT proposes a solution to the data trust issues arising from the management of large amounts of data, such as the flow of donation funds, by using a hybrid chain proof technology. \nSpecifically, after data is uploaded to BOLT, it is compressed and saved to the public chain using hybrid chain proof, allowing the data to be transferred between different blockchains and eliminating the risk and suspicion of data tampering, thereby increasing data credibility. In addition to providing a channel for the public to verify the data, it also strengthens the corporate image, making BOLT more trustworthy.", "IMAGE": "/img/usecase02.svg" }, "CASE3": { - "TITLE": "商品溯源:", - "DESCRIPTION": "解決假貨問題,可將商品資訊及產銷環節等資料進行登錄,獲取專屬的證書頁面,確保資料受到保護, 亦可透過深度追溯服務提供消費者詳實的產銷履歷資訊,杜絕假貨帶來的損失,亦讓消費者能更安心購買。", + "TITLE": "Product Traceability: ", + "DESCRIPTION": "To address the issue of counterfeit products, we can register product information and production and distribution details to generate a unique certificate page, ensuring data protection and allowing for public verification. This enables consumers to easily trace the origin of a product and verify its authenticity and quality with third-party organizations, enhancing their trust in the product.\nIn addition, through in-depth traceability services, consumers can obtain more detailed production and sales history information, helping them choose products that meet their needs and prevent losses caused by counterfeit goods, thereby protecting their rights and interests. This not only makes consumers feel relieved when making purchases, but also promotes the healthy development of the industry.", "IMAGE": "/img/usecase03.svg" }, "CASE4": { - "TITLE": "資產數位化應用:", - "DESCRIPTION": "將資產轉換 Boltchain 資產後可完整導入區塊鏈交易追蹤與存證機制,提升各種中心式應用服務可信度。", + "TITLE": "The Application of Asset Digitization: ", + "DESCRIPTION1": "Converting physical assets into BOLT digital assets facilitates trading, management, and tracking. By fully incorporating blockchain transaction tracking and evidence mechanisms, it enhances the credibility of various centralized application services. ", + "DESCRIPTION2": "As a decentralized digital asset trading platform, BOLT guarantees users the ability to trade and manage digital assets without interference from centralized servers or institutions, as well as achieve transparent transaction processes.", + "DESCRIPTION3": "Blockchain can also provide services such as smart contracts and asset management to improve the utility value and efficiency of assets. For example, automated transactions and payments can be achieved through smart contracts, reducing transaction time and costs. The asset management system can effectively supervise assets and ensure their security and authenticity. All of these can bring more value and development space to digital asset applications.", "IMAGE": "/img/usecase04.svg" } }, @@ -77,24 +79,34 @@ } }, "TECHNOLOGY": { - "TITLE": "Bolt Technology", - "TITLE1": "Distributed Audit", - "DESCRIPTION1": "因 Bolt 使用零知識證明,可以在不揭露隱私的情況下執行數據的稽核。我們認為信任的根本在於見證者,只有在建立足夠規模的見證者情況下,系統的可信度才得以承受考驗。而完整的分工社會,其信任的根基也必然建立在成員公開透明的相互的監督之上。 具備網路連線與一定量儲存空間的機器皆可以作為 Bolt 封裝節點,取得出塊獎勵。用戶可以藉由抵押 BOLT 投票給信任的節點,具備足夠信任的節點可依序對封裝的區塊進行審計並取得服務獎勵。", - "TITLE2": "Zero-knowledge proof", - "DESCRIPTION2": "零知識證明的精粹在於,如何證明自己擁有該情報而不必透露情報內容,Bolt 將其概念與區塊鏈技術結合,在不需揭露企業營運或資料的機密前提下亦可受區塊鏈生態監管。", - "TITLE3": "Hybrid-chain evidence", - "DESCRIPTION3": "數筆交易的鏈下證據壓縮形成之加密雜湊值,通過跨鏈協議同時上到 Ethereum/Bitcoin 等公鏈,形成混合鏈證據,使資料正確性達到更高層級。" + "TITLE": "BOLT Technology", + "TITLE1": "Decentralized Audit", + "DESCRIPTION1": "BOLT has introduced zero-knowledge proof technology, which allows data to be audited without revealing privacy. We believe that the foundation of trust lies in the witnesses, and only when a sufficient number of witnesses are established can the system's credibility be tested. In a fully-functioning society, trust is also inevitably built on mutual supervision among members that is open and transparent. \nAny machine with internet connectivity and a certain amount of storage space can serve as a packaging node for BOLT and receive block rewards. Users can vote for trusted nodes by staking BOLT, and once there are enough trusted nodes, they can sequentially audit the packaged blocks and receive service rewards.", + "TITLE2": "Zero-Knowledge Proof", + "DESCRIPTION2": "The essence of zero-knowledge proof is ‘how to prove that one has certain information without revealing the content of that information to others.’ For example, a user needs to prove that they have the password to a safe without revealing any confidential information to a third party. With zero-knowledge proof technology, the user can open the safe and display the unlocked contents as proof of ownership of the password, without disclosing the password to anyone. \nBy integrating this concept with blockchain, BOLT can ensure privacy and security while being monitored by the blockchain ecosystem, without revealing any sensitive information about the enterprise's operations or data. This not only enhances privacy and security but also boosts user trust.", + "TITLE3": "Hybrid-Chain Evidence", + "DESCRIPTION3": "Hybrid chain evidence is generated by compressing the off-chain evidence of several transactions into an encrypted hash value, which is then saved on both Ethereum and Bitcoin through cross-chain protocols. It can be used for cross-chain querying, usage, and verification. \nWhen users transfer assets between different blockchains, the unique hash value generated by the hybrid chain proof let both Ethereum and BOLT can verify the transaction, proving that the assets have not been tampered with or double-spending, ensuring the validity and legitimacy of each transaction, and achieving a higher level of data security and correctness." }, "FAQ": { "TITLE": "FAQ", - "QUESTION1": "為什麼要使用區塊鏈技術?", - "ANSWER1": "區塊鏈帶來的是系統設計、歷史記載、甚至是社會的新型態,具備去中心化、防止篡改等特性,已開始被用於包括交易追蹤、商品防偽溯源等應用場景,2025年區塊鏈的企業市場將超過 200億美元。", - "QUESTION2": "Why use Bolt?", - "ANSWER2": "Boltchain can solve the obstacles that are currently preventing the use of blockchain in central systems, including bandwidth, privacy, and convenience. And it uses mainstream public chains to provide extremely high global consensus and permanence.", - "QUESTION3": "What industries can apply Boltchain technology?", - "ANSWER3": "Boltchain is designed to be compatible with both a company’s central system and a public blockchain at the same time, allowing companies to effectively use the blockchain to build relevant applications. In a general business environment, when there is an intermediary or if an activity requires the intervention of a supervisory authority and cannot be completely decentralized, we can solve the problem of inaccurate information between users and intermediaries. Examples of such industries include copyright management of digital content and the financial industry.", - "QUESTION4": "如何下載安裝 Bolt?", - "ANSWER4": "詳細內容放置於此" + "QUESTION1": "Why use blockchain ?", + "ANSWER1_LINE1": "Blockchain, as a distributed database, has brought significant impact to the development of technology today with its decentralization, tamper-proofing, and shared interaction characteristics, and has also pointed to new directions for the development of future technology.", + "ANSWER1_LINE2": "First of all, blockchain addresses the trust issue of traditional centralized systems and has advantages for applications that require reliable records. For example, blockchain can be used for transaction tracking, asset digitization, and product anti-counterfeiting traceability. With the encryption protection and decentralization features of blockchain, these applications become more fair and transparent, eliminating the possibility of human intervention, ensuring the security and trustworthiness. The potential applications of blockchain are not limited to currency transactions but also have extensive applications in industries such as social media, entertainment, and healthcare.", + "ANSWER1_LINE3": "Secondly, the development of blockchain will help promote the development of financial technology and digital currencies, improve the efficiency and trustworthiness of transactions, and promote the adoption and popularization of digital currencies, enhancing their liquidity, anonymity, and security. Through tools such as smart contracts, automated contract execution and financial product design can be achieved.", + "ANSWER1_LINE4": "Finally, the development of blockchain will bring new possibilities for data storage, enabling decentralized storage and exchange of data, combined with zero-knowledge proof technology, thus protecting user data privacy and security. At the same time, it enables data tracing and regulation, improving the transparency and reliability of data management.", + "ANSWER1_LINE5": "Overall, blockchain brings not only new system design and historical records, but also a whole new form of society. It has been widely used in industries such as finance, e-commerce, and supply chains. The impact of blockchain technology on the current development of technology is profound and it will continue to develop in the future, with an even wider range of applications. It can improve transaction efficiency, reduce costs, enhance data security and privacy protection, and may become an important infrastructure in the future.", + "QUESTION2": "Why use smart contracts and zero-knowledge proofs?", + "ANSWER2_LINE1": "Smart contracts enable more secure and reliable data storage and exchange. Through smart contracts, trading parties can conduct transactions without the need for third-party intermediaries, reducing costs and risks. Additionally, smart contracts can achieve automation to improve efficiency, transparency, and cost savings. ", + "ANSWER2_LINE2": "Zero-knowledge proofs, on the other hand, can protect user privacy when conducting transactions on the blockchain, verifying transactions without revealing personal identity or financial information. This ensures transaction security and verifiability, making zero-knowledge proofs particularly important for financial and privacy-sensitive applications. ", + "ANSWER2_LINE3": "The combination of smart contracts and zero-knowledge proofs can be widely used for identity verification, copyright protection, and other scenarios. With security and privacy protection as a prerequisite, they provide more secure, efficient, and reliable solutions for various industries, promoting digital transformation and improving industry efficiency.", + "QUESTION3": "What are the fields where BOLT can be applied?", + "ANSWER3_LINE1": "BOLT is designed to effectively connect enterprise centralized systems with public blockchains, allowing businesses to build related applications such as anti-counterfeiting certification of goods, traceability of production and sales links, digital asset management and reserve proof, etc. These fields all require highly trusted data storage and exchange, which is precisely what BOLT is designed to achieve.", + "ANSWER3_LINE2": "BOLT can help enterprises to put their product production information on the blockchain, providing more trusted product certification information to consumers. Through BOLT Trust service, companies can write product information into the blockchain, ensuring that the product information and production history are tamper-proof. At the same time, the cost of uploading information onto the blockchain has been greatly reduced, providing value to the product without significantly affecting marketing costs. Using BOLT Currency, BOLT can also provide marketing applications for partner factories combined with digital tokens.", + "ANSWER3_LINE3": "Traceability of Production and Sales: Enterprises can achieve full lifecycle management of products through BOLT. From raw materials to the final sales and usage, all data is recorded on the blockchain, ensuring the quality and safety of products, while also making it convenient for consumers to trace the product's origin.", + "ANSWER3_LINE4": "Digital Asset Management: BOLT enables enterprises to achieve more secure and reliable digital asset management. Through blockchain technology, enterprises can put digital assets on the chain, ensuring that they are not tampered with or lost. At the same time, BOLT technology also has a reserve proof function, which uses blockchain technology to prove that the enterprise has enough reserves to support its business operations.", + "ANSWER3_LINE5": "Furthermore, BOLT can also be applied to other fields, including copyright management of digital content and the financial industry. When complete decentralization is not possible, we can solve the problem of information asymmetry between users and intermediaries by providing a high level of global consensus and permanence with mainstream public chains. \nIn summary, BOLT has extensive application prospects in multiple fields, realizing decentralized storage and exchange of data, ensuring the credibility and security of data. It can also help enterprises achieve more efficient and convenient business processes, reduce costs, and improve efficiency.", + "QUESTION4": "How to install BOLT?", + "ANSWER4": "Detailed information is available here." }, "NEWS": { "TITLE": "News", @@ -108,30 +120,34 @@ "PHONE": "Phone", "EMAIL": "E-mail", "MESSAGE": "Message", - "SUBMIT_BUTTON": "Send" + "SUBMIT_BUTTON": "Send", + "SENDING": "Sending...", + "SUCCESSS_MESSAGE": "Success!", + "ERROR_MESSAGE1": "Error!", + "ERROR_MESSAGE2": "Please try again later." }, "PRIVACY": { "TITLE": "Privacy Policy", "UPDATE": "Update as of", "LINE1": "At BOLT, we take your privacy seriously and take measures to provide all visitors and users to our web site with a safe and secure environment. If you have any questions about this Policy, please contact us via our website.", - "GATHER1": "個人資料的蒐集、處理及利用方式", - "GATHER2": "當您蒞臨本網站或參與本網站活動時,我們將視活動性質請您提供必要的個人資料,並在該特定目的範圍內處理及利用您的個人資料。", - "GATHER3": "本網站蒐集足以識別使用者身分的個人資料、消費與交易資料,或日後經您同意而提供之其他個人資料,都僅供本網站於其內部、依照蒐集之目的進行處理和利用、或為完成提供服務或履行合約義務之必要、或依照相關法令規定或有權政府機關之命令或要求,否則 本網站不會將足以識別使用者身分的個人資料提供給第三人(包括境內及境外)、或移作蒐集目的以外之使用。", - "PROTECT1": "資料之保護", - "PROTECT2": "本網站主機均設有防火牆、防毒系統等相關的各項資訊安全設備及必要的安全防護措施,加以保護網站及您的個人資料採用嚴格的保護措施,只由經過授權的人員才能接觸您的個人資料,相關處理人員皆簽有保密合約,如有違反保密義務者,將會受到相關的法律處分。", - "PROTECT3": "如因業務需要有必要委託本網站相關單位提供服務時,本網站亦會嚴格要求其遵守保密義務,並且採取必要檢查程序以確定其將確實遵守。", + "GATHER1": "Collection, Processing, and Utilization of Personal Data ", + "GATHER2": "When you visit or participate in activities on this website, we will request necessary personal data based on the nature of the activity, and will process and utilize your personal data only within the scope of that specific purpose.", + "GATHER3": "This website collects personal data, consumption and transaction data, or other personal data provided with your consent, which is sufficient to identify the user. These data are used and processed only for the purpose of providing services, fulfilling contractual obligations, or complying with relevant laws and regulations or orders or requests from competent government agencies. Otherwise, this website will not provide personal data that can identify users to third parties (including domestic and foreign) or use them for purposes other than collection.", + "PROTECT1": "Protection of Data", + "PROTECT2": "Our website is equipped with various information security devices and necessary security measures, such as firewalls and antivirus systems, to protect the website and your personal data. We use strict protection measures, and only authorized personnel can access your personal data. Relevant processing personnel have signed confidentiality agreements, and anyone who violates their duty of confidentiality will be subject to legal sanctions.", + "PROTECT3": "If it is necessary to entrust related units to provide services due to business needs, we will also strictly require them to abide by their duty of confidentiality and take necessary inspection procedures to ensure that they will indeed comply.", "COOKIE1": "Cookies ", "COOKIE2": "BOLT may set and access our Cookies on your computer.  Cookies are used to provide our system with the basic information to provide the services you are requesting.  Cookies can be cleared at any time from your internet browser settings. ", - "COOKIE3": "若您不願接受Cookie的寫入,您可在您使用的瀏覽器功能項中設定隱私權等級為高,即可拒絕Cookie的寫入,但可能會導至網站某些功能無法正常執行。", + "COOKIE3": "If you do not wish to accept the writing of cookies, you can set the privacy level to high in the browser settings, which will reject the writing of cookies. However, this may result in certain website features not functioning properly.", "THIRD1": "Third Parties", - "THIRD2": "本網站絕不會提供、交換、出租或出售任何您的個人資料給其他個人、團體、私人企業或公務機關,但有法律依據或合約義務者,不在此限。前項但書之情形包括不限於:", - "THIRD3": "- 經由您書面同意。", - "THIRD4": "- 法律明文規定。", - "THIRD5": "- 為免除您生命、身體、自由或財產上之危險。", - "THIRD6": "- 與公務機關或學術研究機構合作,基於公共利益為統計或學術研究而有必要,且資料經過提供者處理或蒐集著依其揭露方式無從識別特定之當事人。", - "THIRD7": "- 當您在網站的行為,違反服務條款或可能損害或妨礙網站與其他使用者權益或導致任何人遭受損害時,經網站管理單位研析揭露您的個人資料是為了辨識、聯絡或採取法律行動所必要者。", - "THIRD8": "- 有利於您的權益。", - "THIRD9": "- 本網站委託廠商協助蒐集、處理或利用您的個人資料時,將對委外廠商或個人善盡監督管理之責。", + "THIRD2": "This website will never provide, exchange, rent or sell any of your personal information to other individuals, groups, private enterprises or government agencies, except where there is legal basis or contractual obligations. The situations where this may occur include, but are not limited to:", + "THIRD3": "* With your written consent.", + "THIRD4": "* Where legally required.", + "THIRD5": "* In order to avoid danger to your life, body, freedom or property.", + "THIRD6": "* In cooperation with government agencies or academic research institutions for the purpose of public interest, statistics or academic research, and where the data has been processed or collected in a way that individuals cannot be identified.", + "THIRD7": "* When your behavior on the website violates the terms of service, or may harm or interfere with the rights and interests of the website and other users, or may cause harm to any person, and the website management deems it necessary to disclose your personal information for the purpose of identification, contact, or legal action.", + "THIRD8": "* To protect your interests.", + "THIRD9": "* When this website entrusts vendors to assist in the collection, processing or use of your personal information, it will fulfill its responsibility of supervision and management of the outsourced vendors or individuals.", "CHANGE1": "Changes to Our Privacy Policy", "CHANGE2": "We may make changes to our Privacy Policy in the future. If we make a change to this policy is material, we will notify you by an email, where possible. By continuing to access or use our services, you agree to be bound to the terms of our Privacy Policy." }, diff --git a/src/locales/zh-CN/common.json b/src/locales/zh-CN/common.json index 51321e8..d7768c2 100644 --- a/src/locales/zh-CN/common.json +++ b/src/locales/zh-CN/common.json @@ -1,35 +1,35 @@ { "NAV_BAR": { - "ABOUT": "关于 Bolt", + "ABOUT": "关于 BOLT", "TECHNOLOGY": "核心技术", "FAQ": "常见问题", "BLOCKCHAIN": "区块链浏览器", "CONTACT_US": "联络我们", "PRIVACY": "政策条款", - "LANGUAGE": "语言 (CH)" + "LANGUAGE": "语言 (TW)" }, "MAIN": { "BLOCK1": { "TITLE": "兼具隐私的区块链存证库", "WHITEPAPER": "Whitepaper", - "WINDOWS": "Bolt Windows 版", - "MAC_OS": "Bolt MAC OS 版", - "LINUX": "Bolt Linux 版", - "HOW_TO": "如何安装 Bolt ?" + "WINDOWS": "BOLT Windows 版", + "MAC_OS": "BOLT MAC OS 版", + "LINUX": "BOLT Linux 版", + "HOW_TO": "如何安装 BOLT ?" }, "BLOCK2": { - "TITLE": "什麽是 Bolt ?", + "TITLE": "什么是 BOLT ?", "TITLE1_HIGHLIGHT": "零知识证明", "TITLE1": "资料压缩打包", - "DESCRIPTION1": "Bolt 会在链下先将数笔资料压缩,降低庞大的上链成本,透过零知识证明技术,用户可以在不透露隐私,又有存证的需求下将资料交给Bolt,以区块链技术存证,同时兼具可信度和隐私性。", + "DESCRIPTION1": "BOLT 会在链下先将数笔资料压缩,降低庞大的上链成本,透过零知识证明技术,让使用者可以在不透露隐私,又有存证的需求下将资料交给 BOLT ,以区块链技术存证,同时兼具可信度和隐私性。", "TITLE2_HIGHLIGHT": "见证者", "TITLE2": "人人都是", "DESCRIPTION2_LINE1": "以分散式稽核的方式大幅增加资料可信性和防篡改力度。", "DESCRIPTION2_LINE2": "只要有网路和储存量,人人皆可作为见证者,分工合作、相互监督。", - "DESCRIPTION2_LINE3": "合理的奖励机制,吸引更多的见证者来为我们的资料做保证,以此创造共荣区块链生态圈。", + "DESCRIPTION2_LINE3": "提供合理的奖励机制,吸引更多的见证者来为我们的资料做保证,以此创造共荣区块链生态圈。", "TITLE3_HIGHLIGHT": "混合链证据", "TITLE3": "跨链创造", - "DESCRIPTION3": "资料除了上传到 Bolt 各个节点外,亦会透过跨链协议上传至 以太坊/比特币 等大型公链,证据在多方层层的保护下大幅降低被攻击篡改的可能性,受到严密的保护。" + "DESCRIPTION3": "资料除了上传到 BOLT 各个节点外,亦会透过跨链协议上传至 以太坊/比特币 等大型公链,证据在多方层层的保护下大幅降低被攻击篡改的可能性,受到严密的保护。" }, "BLOCK3": { "TITLE": "以安全为首要条件,实践去中心化理想" @@ -37,38 +37,40 @@ }, "ABOUT": { "WHY_BOLT": { - "TITLE": "为何选择 Bolt?", + "TITLE": "为何选择 BOLT?", "TITLE1": "合理的上链成本", - "DESCRIPTION1": "大量压缩链下资料与交易纪录,能以极低成本上多条公链存证。", + "DESCRIPTION1": "大量压缩链下交易纪录,使资料以极低成本上传至多条公链存证。", "TITLE2": "零知识证明技术", - "DESCRIPTION2": "该技术在无需揭露资料机密下仍可让资料受区块链生态监管。", + "DESCRIPTION2": "该技术使在无需揭露资料机密的情况下,让资料仍可受区块链生态监管。", "TITLE3": "数据交换平台", - "DESCRIPTION3": "透过合理分润鼓励数据提供者,打造真实数据整合平台,提供相关单位合法取得数据之管道。" + "DESCRIPTION3": "透过合理分润鼓励数据提供者,打造真实数据整合平台,以提供相关单位合法取得数据之管道。" }, "USE_CASE": { "TITLE": "应用场景", "CASE1": { "TITLE": "交易所审计:", - "DESCRIPTION_LINE1": "防止加密货币的雷曼时刻再次发生,加强交易所可信度", + "DESCRIPTION_LINE1": "防止加密货币的雷曼时刻再次发生,加强交易所可信度。", "DESCRIPTION_LINE2": "导入流程:", - "DESCRIPTION_LINE3": "Bolt Audit 使用零知识证明技术验证,过程不需揭露交易所营运数据", - "DESCRIPTION_LINE4": "用户得以随时比对双方证据是否吻合,并于发现异常时及时公布给相关用户。用户亦可自行存证指定格式相关证据,并存证于 Bolt 透过 Bolt Explorer 确认资料成功写入,提供用户资料存证收据", - "DESCRIPTION_LINE5": "透过 Bolt 定期将交易所资料整理为指定格式,加密存证于区块链上", + "DESCRIPTION_LINE3": "1. BOLT Audit 使用零知识证明技术验证,过程不需揭露交易所营运数据", + "DESCRIPTION_LINE4": "2. 用户得以随时比对双方证据是否吻合,并于发现异常时及时公布给相关用户。用户亦可自行存证指定格式相关证据,并存证于 BOLT 透过 BOLT Explorer 确认资料成功写入,提供用户资料存证收据", + "DESCRIPTION_LINE5": "3. 透过 BOLT 定期将交易所资料整理为指定格式,加密存证于区块链上", "IMAGE": "/img/usecase01.svg" }, "CASE2": { "TITLE": "资料信任服务:", - "DESCRIPTION": "解决资料信任问题,如:捐款资金走向等,将资料上到 BOLT 后,压缩上到公链,让大众有管道进行验证,提高资料的可信度,同时加强企业形象。", + "DESCRIPTION": "针对管理大量数据所产生的资料信任问题,如:捐款资金走向等,BOLT 提出的解决方案是使用混合链证明技术。\n具体来说,在资料上传到 BOLT 后,透过混合链证明压缩保存至公链,让数据在不同区块链间转移,免除资料被篡改的风险和疑虑,提高资料的可信度。除了提供大众进行验证的管道,同时加强企业形象,让 BOLT 更具公信力。", "IMAGE": "/img/usecase02.svg" }, "CASE3": { "TITLE": "商品溯源:", - "DESCRIPTION": "解决假货问题,可将商品资讯及产销环节等资料进行登录,获取专属的证书页面,确保资料受到保护, 亦可透过深度追溯服务提供消费者详实的产销履历资讯,杜绝假货带来的损失,亦让消费者能更安心购买。", + "DESCRIPTION": "为了解决假货问题,可将商品资讯及产销环节等资料进行登录,获取专属的证书页面,确保资料受到保护,且能够进行公开验证。使消费者可以轻易地追溯商品的源头,与第三方机构核实产品的真伪和品质,加强消费者对商品的信任度。\n此外,透过深度追溯服务,消费者可以获得更详实的产销履历资讯。帮助消费者选择符合自身需求的商品,并杜绝假货带来的损失,保障消费者的权益。不仅让消费者能更安心购买,亦能促进产业的健康发展。", "IMAGE": "/img/usecase03.svg" }, "CASE4": { "TITLE": "资产数位化应用:", - "DESCRIPTION": "将资产转换 Boltchain 资产后可完整导入区块链交易追踪与存证机制,提升各种中心式应用服务可信度。", + "DESCRIPTION1": "将实体资产转换 BOLT 资产,以便于进行交易、管理和追踪,透过完整导入区块链交易追踪与存证机制,提升各种中心式应用服务可信度。BOLT 作为一个去中心化的数位资产交易平台,可以让用户在不受中心化服务器或者机构的干扰下,进行数位资产的交易和管理,即能够实现透明和公正的交易过程。", + "DESCRIPTION2": "", + "DESCRIPTION3": "区块链技术还可以提供智能合约、资产管理等服务,以提高资产的使用价值和效率。举例来说,透过智能合约实现自动化的交易和付款,减少交易的时间和成本;资产管理系统能够实现资产的有效监管和管理,确保资产的安全性和真实性。这些都可以为资产数位化应用带来更多的价值和发展空间。", "IMAGE": "/img/usecase04.svg" } }, @@ -77,23 +79,33 @@ } }, "TECHNOLOGY": { - "TITLE": "Bolt 核心技术", + "TITLE": "BOLT 核心技术", "TITLE1": "分散式稽核", - "DESCRIPTION1": "因 Bolt 使用零知识证明,可以在不揭露隐私的情况下执行数据的稽核。我们认为信任的根本在于见证者,只有在建立足够规模的见证者情况下,系统的可信度才得以承受考验。而完整的分工社会,其信任的根基也必然建立在成员公开透明的相互的监督之上。 具备网路连线与一定量储存空间的机器皆可以作为 Bolt 封装节点,取得出块奖励。用户可以借由抵押 BOLT 投票给信任的节点,具备足够信任的节点可依序对封装的区块进行审计并取得服务奖励。", + "DESCRIPTION1": "因 BOLT 使用零知识证明,可以在不揭露隐私的情况下执行数据的稽核。我们认为信任的根本在于见证者,只有在建立足够规模的见证者情况下,系统的可信度才得以承受考验。而完整的分工社会,其信任的根基也必然建立在成员公开透明的相互的监督之上。\n具备网路连线与一定量储存空间的机器皆可以作为 BOLT 封装节点,取得出块奖励。用户可以借由抵押 BOLT 投票给信任的节点,具备足够信任的节点可依序对封装的区块进行审计并取得服务奖励。", "TITLE2": "零知识证明", - "DESCRIPTION2": "零知识证明的精粹在于,如何证明自己拥有该情报而不必透露情报内容,Bolt 将其概念与区块链技术结合,在不需揭露企业营运或资料的机密前提下亦可受区块链生态监管。", + "DESCRIPTION2": "零知识证明的精粹在于:如何证明自己拥有该情报,而不必透露情报的内容。举例来说,一名使用者需要在不把私密资讯泄露给第三方的情况下,证明自己拥有保险箱的密码。使用零知识证明的技术,使用者可以透过打开保险箱并展示其解锁后的成果,来证明自己拥有保险箱密码,而不需要向任何人透露这组密码。\nBOLT 将其概念与区块链技术结合,在不需揭露企业营运或资料的机密前提下,亦可受区块链生态的监管,不仅能确保隐私安全性,还能提升用户的信任度。", "TITLE3": "混合链证据", - "DESCRIPTION3": "数笔交易的链下证据压缩形成之加密杂凑值,通过跨链协议同时上到 Ethereum/Bitcoin 等公链,形成混合链证据,使资料正确性达到更高层级。" + "DESCRIPTION3": "由数笔交易的链下证据压缩产生之加密杂凑值,通过跨链协议同时保存到 Ethereum/Bitcoin 等公链,形成混合链证据,用于跨链查询,使用和验证。\n当用户在不同区块链间转移资产时,透过混合链证据产生的唯一杂凑值让 Ethereum 和 BOLT 可以验证该笔交易,证明其资产没有被篡改或重复使用,保证每一笔交易的有效性和合法性,使资料的安全与正确达到更高层级。" }, "FAQ": { "TITLE": "常见问题", "QUESTION1": "为什么要使用区块链技术?", - "ANSWER1": "区块链带来的是系统设计、历史记载、甚至是社会的新型态,具备去中心化、防止篡改等特性,已开始被用于包括交易追踪、商品防伪溯源等应用场景,2025年区块链的企业市场将超过 200亿美元。", - "QUESTION2": "为什么要使用 Bolt?", - "ANSWER2": "Boltchain 可以解决目前企业中央式系统对于区块链的使用障碍,包含频宽、隐私以及便利,并以主流公链来提供极高的全球共识与永久性。", - "QUESTION3": "有哪些领域可以应用 Bolt 技术?", - "ANSWER3": "Boltchain 的设计能良好介接企业的中央式系统与公有区块链,让企业能有效使用区块链建立相关应用。在一般商业环境中,有中间人服务,或需要监管机关介入,无法完全去中心化时,我们可以解决用户和中间人资讯不对等的问题,包含数位内容的版权管理、金融产业等。", - "QUESTION4": "如何下载安装 Bolt?", + "ANSWER1_LINE1": "区块链技术作为一种分布式的数据库,其去中心化、防止篡改、共享交互等特点,为现今科技发展带来了巨大的影响,同时也为未来科技的发展指明了新的方向。", + "ANSWER1_LINE2": "首先,区块链技术解决了传统中心化系统的信任问题,对于一些需要可靠记录的应用场景具有独特的优势。例如:区块链可以被用于交易追踪、资产数位化、商品防伪溯源等,透过区块链技术的加密保护和去中心化特点,使这些应用场景更加公正和透明,消除人为干预的可能性,保障数据的安全性和可信度。不仅限于货币交易,区块链技术在社交、娱乐、医疗等行业也有广泛应用的潜力。", + "ANSWER1_LINE3": "其次,区块链技术的发展将有助于推动金融科技和数字货币的发展,提高交易的效率和可信度,并有助于数字货币的推广和普及,提高货币的流动性、匿名性和安全性。透过智能合约等工具,可以实现自动化的合约执行和金融产品设计。", + "ANSWER1_LINE4": "最后,区块链技术将为数据保存带来新的可能,实现数据的去中心化储存和交换,结合零知识证明技术,从而保护用户的数据隐私和安全。同时实现数据的溯源和监管,提高数据管理的透明度和可靠度。", + "ANSWER1_LINE5": "总体来说,区块链带来的不只是新的系统设计、历史记载,更是社会的全新型态,目前已被广泛应用于金融、电商、供应链等行业。区块链技术对现今科技发展有着深远的影响,未来更将继续发展,应用范围更加广泛,提高交易效率、降低成本、增强数据安全和隐私保护,有望成为未来重要的基础设施。", + "QUESTION2": "为什么要使用智能合约和零知识证明?", + "ANSWER2_LINE1": "智能合约能实现更安全、更可靠的数据存储和交换。通过智能合约,交易双方不需要第三方介入即可进行交易,降低成本和风险。另外智能合约还可以实现自动化执行,从而提高了效率。达成自动化、透明化和节省成本的目的。", + "ANSWER2_LINE2": "而零知识证明可以保护用户在区块链上进行交易时,不必暴露个人身份或财务资讯等私密资讯,即可完成交易的验证。确保交易的安全性和可验证性,因此零知识证明技术在金融和隐私敏感的应用场景中具有重要意义。", + "ANSWER2_LINE3": "结合智能合约和零知识证明的技术,可以广泛应用于身份验证、版权保护等场景,在不牺牲安全与隐私保护的前题下,为各行各业提供更加安全、高效和可靠的解决方案。同时也能促进行业的数字化转型和提高行业效率。", + "QUESTION3": "有哪些领域可以应用 BOLT 技术?", + "ANSWER3_LINE1": "BOLT 的设计能良好介接企业的中央式系统与公有区块链,让企业能有效使用区块链建立相关应用,包括商品防伪认证、产销环节追溯、数字资产管理与储备证明等。这些领域都需要高度可信的数据存储和交换,而 BOLT 正是为了实现这一目标而设计的。", + "ANSWER3_LINE2": "- 商品防伪认证:BOLT 技术可以帮助企业将商品生产资讯上链,提供更可信的商品认证资讯给消费者。通过 BOLT Trust 服务,企业可以将商品资讯写入区块链,保证商品资讯与生产履历为不可篡改且可信任。同时上链的成本已大幅降低,提供商品价值之余却不会大幅影响营销成本。利用 BOLT Currency,亦能提供合作厂商结合数位通证的营销应用。", + "ANSWER3_LINE3": "- 产销环节追溯:企业可以透过 BOLT 实现产品的全生命周期管理。从原材料到最终产品的销售和使用过程中,将所有数据记录在区块链上,这样可以保证产品的品质和安全,同时方便消费者对产品的追溯。", + "ANSWER3_LINE4": "- 数字资产管理:BOLT 能让企业实现更安全、更可靠的数字资产管理。通过区块链技术,企业可以将数字资产上链,保证其不被篡改或丢失。同时 BOLT 技术还兼具储备证明功能,即使用区块链技术来证明企业拥有足够的储备金来支撑其业务运营。", + "ANSWER3_LINE5": "另外, BOLT 还可以应用于其他领域,包含数位内容的版权管理、金融产业等。当无法完全去中心化时,我们可以解决用户和中间人资讯不对等的问题,以主流公链来提供极高的全球共识与永久性。综上所述,BOLT 在多个领域都有广泛的应用前景。实现数据的去中心化存储和交换,保证数据的可信性和安全性。还可以帮助企业实现更高效、更便捷的业务流程,降低成本并提高效率。", + "QUESTION4": "如何下载安装 BOLT?", "ANSWER4": "详细内容放置于此" }, "NEWS": { @@ -108,7 +120,11 @@ "PHONE": "联络电话", "EMAIL": "E-mail", "MESSAGE": "讯息", - "SUBMIT_BUTTON": "确认发送" + "SUBMIT_BUTTON": "确认发送", + "SENDING": "发送中...", + "SUCCESS_MESSAGE": "发送成功!", + "ERROR_MESSAGE1": "发送失败!", + "ERROR_MESSAGE2": "请稍后再试。" }, "PRIVACY": { "TITLE": "隐私权政策与条款", @@ -121,7 +137,7 @@ "PROTECT2": "本网站主机均设有防火墙、防毒系统等相关的各项资讯安全设备及必要的安全防护措施,加以保护网站及您的个人资料采用严格的保护措施,只由经过授权的人员才能接触您的个人资料,相关处理人员皆签有保密合约,如有违反保密义务者,将会受到相关的法律处分。", "PROTECT3": "如因业务需要有必要委托本网站相关单位提供服务时,本网站亦会严格要求其遵守保密义务,并且采取必要检查程序以确定其将确实遵守。", "COOKIE1": "Cookie 之使用", - "COOKIE2": "为了提供您最佳的服务,BOLT 会在您的电脑中放置和取用我们的 Cookie。您随时可以从浏览器功能项中的隐私权设定清除 Cookie。", + "COOKIE2": "为了提供您最佳的服务,BOLT 会在您的电脑中放置和取用我们的 Cookie。您随时可以从浏览器功能项中的隐私权设定清除 Cookie。", "COOKIE3": "若您不愿接受Cookie的写入,您可在您使用的浏览器功能项中设定隐私权等级为高,即可拒绝Cookie的写入,但可能会导至网站某些功能无法正常执行。", "THIRD1": "与第三方共用个人资料之政策", "THIRD2": "本网站绝不会提供、交换、出租或出售任何您的个人资料给其他个人、团体、私人企业或公务机关,但有法律依据或合约义务者,不在此限。前项但书之情形包括不限于:", @@ -141,7 +157,7 @@ }, "COMING_SOON": { "TITLE": "COMING SOON", - "DESCRIPTION": "Our Launch is Just Around the Corner - Stay Tuned!", + "DESCRIPTION": "即将推出,敬请期待!", "BUTTON": "返回上页" } } diff --git a/src/locales/zh-TW/common.json b/src/locales/zh-TW/common.json index 72bee3e..47427ba 100644 --- a/src/locales/zh-TW/common.json +++ b/src/locales/zh-TW/common.json @@ -1,6 +1,6 @@ { "NAV_BAR": { - "ABOUT": "關於 Bolt", + "ABOUT": "關於 BOLT", "TECHNOLOGY": "核心技術", "FAQ": "常見問題", "BLOCKCHAIN": "區塊鏈瀏覽器", @@ -12,24 +12,24 @@ "BLOCK1": { "TITLE": "兼具隱私的區塊鏈存證庫", "WHITEPAPER": "Whitepaper", - "WINDOWS": "Bolt Windows 版", - "MAC_OS": "Bolt MAC OS 版", - "LINUX": "Bolt Linux 版", - "HOW_TO": "如何安裝 Bolt ?" + "WINDOWS": "BOLT Windows 版", + "MAC_OS": "BOLT MAC OS 版", + "LINUX": "BOLT Linux 版", + "HOW_TO": "如何安裝 BOLT ?" }, "BLOCK2": { - "TITLE": "什麼是 Bolt ?", + "TITLE": "什麼是 BOLT ?", "TITLE1_HIGHLIGHT": "零知識證明", "TITLE1": "資料壓縮打包", - "DESCRIPTION1": "Bolt 會在鏈下先將數筆資料壓縮,降低龐大的上鏈成本,透過零知識證明技術,使用者可以在不透露隱私,又有存證的需求下將資料交給Bolt,以區塊鏈技術存證,同時兼具可信度和隱私性。", + "DESCRIPTION1": "BOLT 會在鏈下先將數筆資料壓縮,降低龐大的上鏈成本,透過零知識證明技術,讓使用者可以在不透露隱私,又有存證的需求下將資料交給 BOLT ,以區塊鏈技術存證,同時兼具可信度和隱私性。", "TITLE2_HIGHLIGHT": "見證者", "TITLE2": "人人都是", "DESCRIPTION2_LINE1": "以分散式稽核的方式大幅增加資料可信性和防篡改力度。", "DESCRIPTION2_LINE2": "只要有網路和儲存量,人人皆可作為見證者,分工合作、相互監督。", - "DESCRIPTION2_LINE3": "合理的獎勵機制,吸引更多的見證者來為我們的資料做保證,以此創造共榮區塊鏈生態圈。", + "DESCRIPTION2_LINE3": "提供合理的獎勵機制,吸引更多的見證者來為我們的資料做保證,以此創造共榮區塊鏈生態圈。", "TITLE3_HIGHLIGHT": "混合鏈證據", "TITLE3": "跨鏈創造", - "DESCRIPTION3": "資料除了上傳到 Bolt 各個節點外,亦會透過跨鏈協議上傳至 以太坊/比特幣 等大型公鏈,證據在多方層層的保護下大幅降低被攻擊篡改的可能性,受到嚴密的保護。" + "DESCRIPTION3": "資料除了上傳到 BOLT 各個節點外,亦會透過跨鏈協議上傳至 以太坊/比特幣 等大型公鏈,證據在多方層層的保護下大幅降低被攻擊篡改的可能性,受到嚴密的保護。" }, "BLOCK3": { "TITLE": "以安全為首要條件,實踐去中心化理想" @@ -37,38 +37,40 @@ }, "ABOUT": { "WHY_BOLT": { - "TITLE": "為何選擇 Bolt?", + "TITLE": "為何選擇 BOLT?", "TITLE1": "合理的上鏈成本", - "DESCRIPTION1": "大量壓縮鏈下資料與交易紀錄,能以極低成本上多條公鏈存證。", + "DESCRIPTION1": "大量壓縮鏈下交易紀錄,使資料以極低成本上傳至多條公鏈存證。", "TITLE2": "零知識證明技術", - "DESCRIPTION2": "該技術在無需揭露資料機密下仍可讓資料受區塊鏈生態監管。", + "DESCRIPTION2": "該技術使在無需揭露資料機密的情況下,讓資料仍可受區塊鏈生態監管。", "TITLE3": "數據交換平台", - "DESCRIPTION3": "透過合理分潤鼓勵數據提供者,打造真實數據整合平台,提供相關單位合法取得數據之管道。" + "DESCRIPTION3": "透過合理分潤鼓勵數據提供者,打造真實數據整合平台,以提供相關單位合法取得數據之管道。" }, "USE_CASE": { "TITLE": "應用場景", "CASE1": { "TITLE": "交易所審計:", - "DESCRIPTION_LINE1": "防止加密貨幣的雷曼時刻再次發生,加強交易所可信度", + "DESCRIPTION_LINE1": "防止加密貨幣的雷曼時刻再次發生,加強交易所可信度。", "DESCRIPTION_LINE2": "導入流程:", - "DESCRIPTION_LINE3": "Bolt Audit 使用零知識證明技術驗證,過程不需揭露交易所營運數據", - "DESCRIPTION_LINE4": "用戶得以隨時比對雙方證據是否吻合,並於發現異常時及時公佈給相關用戶。用戶亦可自行存證指定格式相關證據,並存證於 Bolt 透過 Bolt Explorer 確認資料成功寫入,提供用戶資料存證收據", - "DESCRIPTION_LINE5": "透過 Bolt 定期將交易所資料整理為指定格式,加密存證於區塊鏈上", + "DESCRIPTION_LINE3": "1. BOLT Audit 使用零知識證明技術驗證,過程不需揭露交易所營運數據", + "DESCRIPTION_LINE4": "2. 用戶得以隨時比對雙方證據是否吻合,並於發現異常時及時公佈給相關用戶。用戶亦可自行存證指定格式相關證據,並存證於 BOLT 透過 BOLT Explorer 確認資料成功寫入,提供用戶資料存證收據", + "DESCRIPTION_LINE5": "3. 透過 BOLT 定期將交易所資料整理為指定格式,加密存證於區塊鏈上", "IMAGE": "/img/usecase01.svg" }, "CASE2": { "TITLE": "資料信任服務:", - "DESCRIPTION": "解決資料信任問題,如:捐款資金走向等,將資料上到 BOLT 後,壓縮上到公鏈,讓大眾有管道進行驗證,提高資料的可信度,同時加強企業形象。", + "DESCRIPTION": "針對管理大量數據所產生的資料信任問題,如:捐款資金走向等,BOLT 提出的解決方案是使用混合鏈證明技術。\n具體來說,在資料上傳到 BOLT 後,透過混合鏈證明壓縮保存至公鏈,讓數據在不同區塊鏈間轉移,免除資料被篡改的風險和疑慮,提高資料的可信度。除了提供大眾進行驗證的管道,同時加強企業形象,讓 BOLT 更具公信力。", "IMAGE": "/img/usecase02.svg" }, "CASE3": { "TITLE": "商品溯源:", - "DESCRIPTION": "解決假貨問題,可將商品資訊及產銷環節等資料進行登錄,獲取專屬的證書頁面,確保資料受到保護, 亦可透過深度追溯服務提供消費者詳實的產銷履歷資訊,杜絕假貨帶來的損失,亦讓消費者能更安心購買。", + "DESCRIPTION": "為了解決假貨問題,可將商品資訊及產銷環節等資料進行登錄,獲取專屬的證書頁面,確保資料受到保護,且能夠進行公開驗證。使消費者可以輕易地追溯商品的源頭,與第三方機構核實產品的真偽和品質,加強消費者對商品的信任度。\n此外,透過深度追溯服務,消費者可以獲得更詳實的產銷履歷資訊。幫助消費者選擇符合自身需求的商品,並杜絕假貨帶來的損失,保障消費者的權益。不僅讓消費者能更安心購買,亦能促進產業的健康發展。", "IMAGE": "/img/usecase03.svg" }, "CASE4": { "TITLE": "資產數位化應用:", - "DESCRIPTION": "將資產轉換 Boltchain 資產後可完整導入區塊鏈交易追蹤與存證機制,提升各種中心式應用服務可信度。", + "DESCRIPTION1": "將實體資產轉換 BOLT 資產,以便於進行交易、管理和追蹤,透過完整導入區塊鏈交易追蹤與存證機制,提升各種中心式應用服務可信度。BOLT 作為一個去中心化的數位資產交易平台,可以讓用戶在不受中心化服務器或者機構的干擾下,進行數位資產的交易和管理,即能夠實現透明和公正的交易過程。", + "DESCRIPTION2": "", + "DESCRIPTION3": "區塊鏈技術還可以提供智能合約、資產管理等服務,以提高資產的使用價值和效率。舉例來說,透過智能合約實現自動化的交易和付款,減少交易的時間和成本;資產管理系統能夠實現資產的有效監管和管理,確保資產的安全性和真實性。這些都可以為資產數位化應用帶來更多的價值和發展空間。", "IMAGE": "/img/usecase04.svg" } }, @@ -77,23 +79,33 @@ } }, "TECHNOLOGY": { - "TITLE": "Bolt 核心技術", + "TITLE": "BOLT 核心技術", "TITLE1": "分散式稽核", - "DESCRIPTION1": "因 Bolt 使用零知識證明,可以在不揭露隱私的情況下執行數據的稽核。我們認為信任的根本在於見證者,只有在建立足夠規模的見證者情況下,系統的可信度才得以承受考驗。而完整的分工社會,其信任的根基也必然建立在成員公開透明的相互的監督之上。 具備網路連線與一定量儲存空間的機器皆可以作為 Bolt 封裝節點,取得出塊獎勵。用戶可以藉由抵押 BOLT 投票給信任的節點,具備足夠信任的節點可依序對封裝的區塊進行審計並取得服務獎勵。", + "DESCRIPTION1": "因 BOLT 使用零知識證明,可以在不揭露隱私的情況下執行數據的稽核。我們認為信任的根本在於見證者,只有在建立足夠規模的見證者情況下,系統的可信度才得以承受考驗。而完整的分工社會,其信任的根基也必然建立在成員公開透明的相互的監督之上。\n具備網路連線與一定量儲存空間的機器皆可以作為 BOLT 封裝節點,取得出塊獎勵。用戶可以藉由抵押 BOLT 投票給信任的節點,具備足夠信任的節點可依序對封裝的區塊進行審計並取得服務獎勵。", "TITLE2": "零知識證明", - "DESCRIPTION2": "零知識證明的精粹在於,如何證明自己擁有該情報而不必透露情報內容,Bolt 將其概念與區塊鏈技術結合,在不需揭露企業營運或資料的機密前提下亦可受區塊鏈生態監管。", + "DESCRIPTION2": "零知識證明的精粹在於:如何證明自己擁有該情報,而不必透露情報的內容。舉例來說,一名使用者需要在不把私密資訊洩露給第三方的情況下,證明自己擁有保險箱的密碼。使用零知識證明的技術,使用者可以透過打開保險箱並展示其解鎖後的成果,來證明自己擁有保險箱密碼,而不需要向任何人透露這組密碼。\nBOLT 將其概念與區塊鏈技術結合,在不需揭露企業營運或資料的機密前提下,亦可受區塊鏈生態的監管,不僅能確保隱私安全性,還能提升用戶的信任度。", "TITLE3": "混合鏈證據", - "DESCRIPTION3": "數筆交易的鏈下證據壓縮形成之加密雜湊值,通過跨鏈協議同時上到 Ethereum/Bitcoin 等公鏈,形成混合鏈證據,使資料正確性達到更高層級。" + "DESCRIPTION3": "由數筆交易的鏈下證據壓縮產生之加密雜湊值,通過跨鏈協議同時保存到 Ethereum/Bitcoin 等公鏈,形成混合鏈證據,用於跨鏈查詢,使用和驗證。\n當用戶在不同區塊鏈間轉移資產時,透過混合鏈證據產生的唯一雜湊值讓 Ethereum 和 BOLT 可以驗證該筆交易,證明其資產沒有被篡改或重複使用,保證每一筆交易的有效性和合法性,使資料的安全與正確達到更高層級。" }, "FAQ": { "TITLE": "常見問題", "QUESTION1": "為什麼要使用區塊鏈技術?", - "ANSWER1": "區塊鏈帶來的是系統設計、歷史記載、甚至是社會的新型態,具備去中心化、防止篡改等特性,已開始被用於包括交易追蹤、商品防偽溯源等應用場景,2025年區塊鏈的企業市場將超過 200億美元。", - "QUESTION2": "為什麼要使用 Bolt?", - "ANSWER2": "Boltchain 可以解決目前企業中央式系統對於區塊鏈的使用障礙,包含頻寬、隱私以及便利,並以主流公鏈來提供極高的全球共識與永久性。", - "QUESTION3": "有哪些領域可以應用 Bolt 技術?", - "ANSWER3": "Boltchain 的設計能良好介接企業的中央式系統與公有區塊鏈,讓企業能有效使用區塊鏈建立相關應用。在一般商業環境中,有中間人服務,或需要監管機關介入,無法完全去中心化時,我們可以解決用戶和中間人資訊不對等的問題,包含數位內容的版權管理、金融產業等。", - "QUESTION4": "如何下載安裝 Bolt?", + "ANSWER1_LINE1": "區塊鏈技術作為一種分佈式的數據庫,其去中心化、防止篡改、共享交互等特點,為現今科技發展帶來了巨大的影響,同時也為未來科技的發展指明了新的方向。", + "ANSWER1_LINE2": "首先,區塊鏈技術解決了傳統中心化系統的信任問題,對於一些需要可靠記錄的應用場景具有獨特的優勢。例如:區塊鏈可以被用於交易追蹤、資產數位化、商品防偽溯源等,透過區塊鏈技術的加密保護和去中心化特點,使這些應用場景更加公正和透明,消除人為干預的可能性,保障數據的安全性和可信度。不僅限於貨幣交易,區塊鏈技術在社交、娛樂、醫療等行業也有廣泛應用的潛力。", + "ANSWER1_LINE3": "其次,區塊鏈技術的發展將有助於推動金融科技和數字貨幣的發展,提高交易的效率和可信度,並有助於數字貨幣的推廣和普及,提高貨幣的流動性、匿名性和安全性。透過智能合約等工具,可以實現自動化的合約執行和金融產品設計。", + "ANSWER1_LINE4": "最後,區塊鏈技術將為數據保存帶來新的可能,實現數據的去中心化儲存和交換,結合零知識證明技術,從而保護用戶的數據隱私和安全。同時實現數據的溯源和監管,提高數據管理的透明度和可靠度。", + "ANSWER1_LINE5": "總體來說,區塊鏈帶來的不只是新的系統設計、歷史記載,更是社會的全新型態,目前已被廣泛應用於金融、電商、供應鏈等行業。區塊鏈技術對現今科技發展有著深遠的影響,未來更將繼續發展,應用範圍更加廣泛,提高交易效率、降低成本、增強數據安全和隱私保護,有望成為未來重要的基礎設施。", + "QUESTION2": "為什麼要使用智能合約和零知識證明?", + "ANSWER2_LINE1": "智能合約能實現更安全、更可靠的數據存儲和交換。通過智能合約,交易雙方不需要第三方介入即可進行交易,降低成本和風險。另外智能合約還可以實現自動化執行,從而提高了效率。達成自動化、透明化和節省成本的目的。", + "ANSWER2_LINE2": "而零知識證明可以保護用戶在區塊鏈上進行交易時,不必暴露個人身份或財務資訊等私密資訊,即可完成交易的驗證。確保交易的安全性和可驗證性,因此零知識證明技術在金融和隱私敏感的應用場景中具有重要意義。", + "ANSWER2_LINE3": "結合智能合約和零知識證明的技術,可以廣泛應用於身份驗證、版權保護等場景,在不犧牲安全與隱私保護的前題下,為各行各業提供更加安全、高效和可靠的解決方案。同時也能促進行業的數字化轉型和提高行業效率。", + "QUESTION3": "有哪些領域可以應用 BOLT 技術?", + "ANSWER3_LINE1": "BOLT 的設計能良好介接企業的中央式系統與公有區塊鏈,讓企業能有效使用區塊鏈建立相關應用,包括商品防偽認證、產銷環節追溯、數字資產管理與儲備證明等。這些領域都需要高度可信的數據存儲和交換,而 BOLT 正是為了實現這一目標而設計的。", + "ANSWER3_LINE2": "- 商品防偽認證:BOLT 技術可以幫助企業將商品生產資訊上鏈,提供更可信的商品認證資訊給消費者。通過 BOLT Trust 服務,企業可以將商品資訊寫入區塊鏈,保證商品資訊與生產履歷為不可篡改且可信任。同時上鏈的成本已大幅降低,提供商品價值之餘卻不會大幅影響營銷成本。利用 BOLT Currency,亦能提供合作廠商結合數位通證的營銷應用。", + "ANSWER3_LINE3": "- 產銷環節追溯:企業可以透過 BOLT 實現產品的全生命周期管理。從原材料到最終產品的銷售和使用過程中,將所有數據記錄在區塊鏈上,這樣可以保證產品的品質和安全,同時方便消費者對產品的追溯。", + "ANSWER3_LINE4": "- 數字資產管理:BOLT 能讓企業實現更安全、更可靠的數字資產管理。通過區塊鏈技術,企業可以將數字資產上鏈,保證其不被篡改或丟失。同時 BOLT 技術還兼具儲備證明功能,即使用區塊鏈技術來證明企業擁有足夠的儲備金來支撐其業務運營。", + "ANSWER3_LINE5": "另外, BOLT 還可以應用於其他領域,包含數位內容的版權管理、金融產業等。當無法完全去中心化時,我們可以解決用戶和中間人資訊不對等的問題,以主流公鏈來提供極高的全球共識與永久性。綜上所述,BOLT 在多個領域都有廣泛的應用前景。實現數據的去中心化存儲和交換,保證數據的可信性和安全性。還可以幫助企業實現更高效、更便捷的業務流程,降低成本並提高效率。", + "QUESTION4": "如何下載安裝 BOLT?", "ANSWER4": "詳細內容放置於此" }, "NEWS": { @@ -108,7 +120,11 @@ "PHONE": "聯絡電話", "EMAIL": "E-mail", "MESSAGE": "訊息", - "SUBMIT_BUTTON": "確認發送" + "SUBMIT_BUTTON": "確認發送", + "SENDING": "發送中...", + "SUCCESS_MESSAGE": "發送成功!", + "ERROR_MESSAGE1": "發送失敗!", + "ERROR_MESSAGE2": "請稍後再試。" }, "PRIVACY": { "TITLE": "隱私權政策與條款", @@ -141,7 +157,7 @@ }, "COMING_SOON": { "TITLE": "COMING SOON", - "DESCRIPTION": "Our Launch is Just Around the Corner - Stay Tuned!", + "DESCRIPTION": "即將推出,敬請期待!", "BUTTON": "返回上頁" } } diff --git a/src/pages/api/email.ts b/src/pages/api/email.ts new file mode 100644 index 0000000..8a12362 --- /dev/null +++ b/src/pages/api/email.ts @@ -0,0 +1,27 @@ +import { NextApiRequest, NextApiResponse } from "next"; +import SendMail from "../../lib/utils/email"; + +type emailConfig = { + googleClientID: string; + googleClientPassword: string; +}; + +export default async function handler( + req: NextApiRequest, + res: NextApiResponse +) { + /* Info: (20230324 - Julian) read config */ + const config = { + googleClientID: process.env.REACT_APP_GOOGLE_CLIENT_ID, + googleClientPassword: process.env.REACT_APP_GOOGLE_CLIENT_PASSWORD, + }; + + /* Info: (20230324 - Julian) send email */ + const sendMail = SendMail.sendMail; + const sender = sendMail(config as emailConfig, await req.body.comment); + + /* Info: (20230324 - Julian) return result */ + const result = await sender; + + res.status(200).json(result); +} diff --git a/src/pages/api/news/see_more_list.ts b/src/pages/api/news/see_more_list.ts index 6612bdf..7cc1085 100644 --- a/src/pages/api/news/see_more_list.ts +++ b/src/pages/api/news/see_more_list.ts @@ -5,14 +5,29 @@ export default function handler(req: NextApiRequest, res: NextApiResponse) { const allNews = dummyNewsData; const newsId = req.query.newsId; const newsIndex = Number(newsId?.slice(1)); + const maxNewsIndex = allNews.length; + // 取得前一篇和後一篇 news const newsList = allNews.slice(newsIndex - 2, newsIndex + 1); const seeMoreList = newsId === "n001" ? allNews.slice(1, 2) : newsList.filter((news) => !(news.id === newsId)); + /* ToDo: (20230504 - Julian) 修正隨機 news 的邏輯 + // 取得隨機一篇 news + const getRandomNews = (max: number) => { + const randomNumber = Math.floor(Math.random() * max); + // 將隨機數字轉成 newsId 格式字串 + const randomIndex = "n" + String(randomNumber).padStart(3, "0"); - //random + const randomNews = !newsList.find((news) => news.id === randomIndex) + ? allNews[randomNumber - 1] + : allNews[randomNumber]; + + return randomNews; + }; + + seeMoreList.push(getRandomNews(maxNewsIndex)); */ res.status(200).send(seeMoreList); } diff --git a/src/styles/Home.module.css b/src/styles/Home.module.css index 0783f64..1a68d33 100644 --- a/src/styles/Home.module.css +++ b/src/styles/Home.module.css @@ -60,7 +60,8 @@ .bolt_main_textbox h1 { font: normal normal 60px/97px Noto Sans TC; - white-space: nowrap; + white-space: wrap; + padding: 1rem; } .bolt_main_textbox span { @@ -151,7 +152,7 @@ } .bolt_main_textbox h1 { - font: normal normal 28px/97px Noto Sans TC; + font: normal normal 28px/50px Noto Sans TC; } .animSafe { @@ -293,11 +294,12 @@ } .bolt_main_textbox { + max-width: 70%; padding: 3rem; } .bolt_main_from_top { - height: 250px; + height: 300px; animation: fromTop 1s ease-out 1 forwards; } diff --git a/src/styles/about.module.css b/src/styles/about.module.css index ecfaed2..5cfd6c8 100644 --- a/src/styles/about.module.css +++ b/src/styles/about.module.css @@ -76,6 +76,7 @@ .useitem_textbox p { font: normal normal normal 14px/23px Noto Sans TC; + white-space: pre-wrap; } .useitem_imgbox { diff --git a/src/styles/contact.module.css b/src/styles/contact.module.css index f044c12..e457a26 100644 --- a/src/styles/contact.module.css +++ b/src/styles/contact.module.css @@ -55,21 +55,55 @@ .contact_formPart button { padding: 10px; width: 120px; - background-color: #31d3f5; - border: 1px solid #31d3f5; border-radius: 23px; - color: #3a3b4d; font: normal normal 18px/26px Noto Sans TC; letter-spacing: 0.09px; transition: all 0.1s ease-in; cursor: pointer; } -.contact_formPart button:hover { +.btn_submit { + background-color: #31d3f5; + border: 1px solid #31d3f5; + color: #3a3b4d; +} + +.btn_submit:hover { background-color: transparent; color: #31d3f5; } +.btn_send { + background-color: #c7c7c7; + border: 1px solid #c7c7c7; + color: #ffffff; +} + +.contact_animation_container { + display: flex; + width: 100%; + height: 450px; + justify-content: center; + align-items: center; +} + +.anim_send { + width: 160px; + height: 160px; +} + +.send_result_container { + z-index: 10; + position: absolute; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + background-color: #f8fafa; + width: 100%; + height: 100%; +} + /* Mobile */ @media screen and (max-width: 768px) { .contact_imgbox { diff --git a/src/styles/faq.module.css b/src/styles/faq.module.css index a328723..cfab3dd 100644 --- a/src/styles/faq.module.css +++ b/src/styles/faq.module.css @@ -70,10 +70,6 @@ padding: 1rem 2rem 0 0; } -.showAnswer { - height: 200px; -} - .hideAnswer { height: 0; } @@ -103,9 +99,13 @@ font: normal normal normal 16px/23px Noto Sans TC; } + .showAnswer { + min-height: 400px; + } + .hideAnswer p, .showAnswer p { - padding: 2rem 0 0 0; + padding: 2rem 0.25rem 0 0.25rem; } .faq_showAns h4::after, @@ -129,4 +129,8 @@ .faq_hideAns h4::after { margin-top: 10px; } + + .showAnswer { + height: 500px; + } } diff --git a/src/styles/introduction.module.css b/src/styles/introduction.module.css index c7bfa58..616a9f4 100644 --- a/src/styles/introduction.module.css +++ b/src/styles/introduction.module.css @@ -36,6 +36,10 @@ color: #31d3f5 !important; } +.bolt_intro_textbox span:hover { + color: #3158f5 !important; +} + .bolt_intro_textbox p { color: #3a3b4d; font: normal normal normal 14px/23px Noto Sans TC; diff --git a/src/styles/technology.module.css b/src/styles/technology.module.css index 86d4d9b..d89e5a6 100644 --- a/src/styles/technology.module.css +++ b/src/styles/technology.module.css @@ -48,6 +48,7 @@ .tech_item_textbox p { margin-top: 2rem; font: normal normal normal 14px/23px Noto Sans TC; + white-space: pre-wrap; } /* Mobile */ @@ -97,7 +98,7 @@ } .tech_item_textbox { - height: 400px; + min-height: 400px; } }