feat: optimism i18n
This commit is contained in:
1 parent
3707efca2a
commit
d82eea0e42
8 files changed
+711
-128
No files matched your search
@@ -22,7 +22,10 @@
|
||||
"empty": "No data",
|
||||
"blog": "Blog",
|
||||
"youtube": "YouTube",
|
||||
"xugouMonitor": "Xugou Monitor"
|
||||
"xugouMonitor": "Xugou Monitor",
|
||||
"privacyPolicy": "Privacy Policy",
|
||||
"terms": "Terms of Service",
|
||||
"about": "About Us"
|
||||
},
|
||||
"mailbox": {
|
||||
"createRandom": "Create Random Mailbox",
|
||||
@@ -92,5 +95,237 @@
|
||||
"errors": {
|
||||
"generic": "An error occurred, please try again later",
|
||||
"notFound": "The requested resource was not found"
|
||||
},
|
||||
"intro": {
|
||||
"features": {
|
||||
"title": "Core Features",
|
||||
"privacy": {
|
||||
"title": "Privacy Protection",
|
||||
"description": "No registration required, no personal information collected, completely anonymous"
|
||||
},
|
||||
"temporary": {
|
||||
"title": "Temporary Email",
|
||||
"description": "24-hour validity period, automatic expiration and deletion, avoid spam troubles"
|
||||
},
|
||||
"anonymous": {
|
||||
"title": "Anonymous Reception",
|
||||
"description": "Protect your real email address, prevent information leakage and harassment"
|
||||
},
|
||||
"instant": {
|
||||
"title": "Instant Creation",
|
||||
"description": "One-click generation of temporary email, ready to use immediately, simple and convenient"
|
||||
}
|
||||
},
|
||||
"useCases": {
|
||||
"title": "Use Cases",
|
||||
"verification": {
|
||||
"title": "One-time Verification",
|
||||
"description": "Receive verification codes, confirmation emails and other temporary verification needs"
|
||||
},
|
||||
"downloads": {
|
||||
"title": "Software Downloads",
|
||||
"description": "Avoid marketing emails when downloading software and getting resources"
|
||||
},
|
||||
"testing": {
|
||||
"title": "Testing & Verification",
|
||||
"description": "Ideal tool for development testing and email verification functions"
|
||||
}
|
||||
},
|
||||
"security": {
|
||||
"title": "Security Notice",
|
||||
"warning1": "Do not use for receiving important or sensitive information, temporary email does not guarantee data security",
|
||||
"warning2": "Email content may be accessed by others, please avoid including personal privacy information",
|
||||
"warning3": "The mailbox will be automatically deleted after 24 hours, please save important content in time"
|
||||
},
|
||||
"faq": {
|
||||
"title": "FAQ",
|
||||
"q1": {
|
||||
"question": "How long is the mailbox valid?",
|
||||
"answer": "All mailboxes are valid for 24 hours and will be automatically deleted after expiration."
|
||||
},
|
||||
"q2": {
|
||||
"question": "Can I send emails?",
|
||||
"answer": "This service only supports receiving emails, not sending emails."
|
||||
},
|
||||
"q3": {
|
||||
"question": "Is email content secure?",
|
||||
"answer": "All email content is only stored during the validity period and will be automatically deleted after expiration. Please check important information in time."
|
||||
}
|
||||
}
|
||||
},
|
||||
"terms": {
|
||||
"title": "Terms of Service",
|
||||
"subtitle": "Please read the following terms carefully before using this temporary email service. Using the service means you agree to this agreement.",
|
||||
"section1": {
|
||||
"title": "1. Service Description",
|
||||
"item1": "This service provides users with temporary, anonymous email addresses for receiving emails, verification codes and other information.",
|
||||
"item2": "All mailboxes and email content are temporarily stored and automatically deleted after expiration, and cannot be recovered."
|
||||
},
|
||||
"section2": {
|
||||
"title": "2. User Responsibilities",
|
||||
"item1": "Users should comply with relevant laws and regulations and shall not use this service for any illegal, irregular or harmful activities.",
|
||||
"item2": "Users should bear all risks and responsibilities arising from the use of this service."
|
||||
},
|
||||
"section3": {
|
||||
"title": "3. Prohibited Behaviors",
|
||||
"item1": "Shall not be used to send or receive spam, malware, phishing information and other illegal content.",
|
||||
"item2": "Shall not be used for harassment, fraud, infringement of others' privacy or intellectual property rights.",
|
||||
"item3": "Shall not attempt to attack, interfere with or destroy the normal operation of this service."
|
||||
},
|
||||
"section4": {
|
||||
"title": "4. Disclaimer",
|
||||
"item1": "This service is a free open source project, provided \"as is\", and makes no commitment to the availability, stability or data integrity of the service.",
|
||||
"item2": "The developer assumes no responsibility for any direct or indirect losses caused by the use of this service."
|
||||
},
|
||||
"section5": {
|
||||
"title": "5. Service Changes and Termination",
|
||||
"item1": "We have the right to adjust, suspend or terminate the service content at any time without prior notice to users.",
|
||||
"item2": "If users are found to have violations, we have the right to restrict or terminate their use of this service."
|
||||
},
|
||||
"section6": {
|
||||
"title": "6. Applicable Law",
|
||||
"item1": "The interpretation and application of these terms of use are governed by the relevant laws and regulations of the open source project hosting location."
|
||||
},
|
||||
"section7": {
|
||||
"title": "7. Terms Changes",
|
||||
"item1": "We have the right to modify these terms of use at any time as needed, and changes will be announced in a prominent position on the page."
|
||||
},
|
||||
"conclusion": "Thank you for using zmail temporary email service!"
|
||||
},
|
||||
"about": {
|
||||
"title": "About Us",
|
||||
"subtitle": "Learn about the background and philosophy of zmail temporary email service.",
|
||||
"intro": {
|
||||
"title": "Project Introduction",
|
||||
"content": "zmail is an open source temporary email service designed to provide users with secure and convenient temporary email solutions. We are committed to protecting user privacy and avoiding spam troubles."
|
||||
},
|
||||
"features": {
|
||||
"title": "Core Features",
|
||||
"free": {
|
||||
"title": "Completely Free",
|
||||
"desc": "No registration required, no payment required, completely free to use."
|
||||
},
|
||||
"instant": {
|
||||
"title": "Instant Generation",
|
||||
"desc": "Generate temporary email addresses with one click, ready to use immediately."
|
||||
},
|
||||
"autodestroy": {
|
||||
"title": "Auto Destroy",
|
||||
"desc": "Mailboxes are automatically destroyed after 24 hours to protect privacy."
|
||||
},
|
||||
"realtime": {
|
||||
"title": "Real-time Receiving",
|
||||
"desc": "Receive emails in real time with auto-refresh support."
|
||||
},
|
||||
"opensource": {
|
||||
"title": "Open Source Transparency",
|
||||
"desc": "Code is completely open source, secure and trustworthy."
|
||||
}
|
||||
},
|
||||
"usecases": {
|
||||
"title": "Use Cases",
|
||||
"registration": "Website registration verification",
|
||||
"download": "Download resource verification",
|
||||
"temporary": "Temporary communication needs",
|
||||
"spam": "Avoid spam"
|
||||
},
|
||||
"tech": {
|
||||
"title": "Technical Architecture",
|
||||
"intro": "zmail is built with modern technology stack:",
|
||||
"frontend": {
|
||||
"title": "Frontend",
|
||||
"desc": "React + TypeScript + Tailwind CSS"
|
||||
},
|
||||
"backend": {
|
||||
"title": "Backend",
|
||||
"desc": "Honojs + CloudFlare Worker"
|
||||
},
|
||||
"email": {
|
||||
"title": "Email Service",
|
||||
"desc": "Based on CloudFlare email service to provide free temporary mailboxes, stable and reliable"
|
||||
},
|
||||
"storage": {
|
||||
"title": "Data Storage",
|
||||
"desc": "Memory storage with scheduled cleanup"
|
||||
}
|
||||
},
|
||||
"opensource": {
|
||||
"title": "Open Source Information",
|
||||
"intro": "zmail is a completely open source project that follows the MIT open source license. We welcome community contributions, suggestions or issue reports.",
|
||||
"github": {
|
||||
"title": "GitHub Repository"
|
||||
},
|
||||
"license": {
|
||||
"title": "License",
|
||||
"desc": "MIT License"
|
||||
},
|
||||
"contribute": {
|
||||
"title": "Contribution Guide",
|
||||
"desc": "Welcome to submit Pull Requests and Issues"
|
||||
}
|
||||
},
|
||||
"contact": {
|
||||
"title": "Contact Us",
|
||||
"intro": "If you encounter problems during use, or have any suggestions and feedback, please contact us through the following methods:",
|
||||
"github": {
|
||||
"title": "GitHub Issues",
|
||||
"desc": "Submit Issues in the project repository"
|
||||
},
|
||||
"email": {
|
||||
"title": "Email"
|
||||
}
|
||||
},
|
||||
"conclusion": "Thank you for choosing zmail temporary email service!"
|
||||
},
|
||||
"privacy": {
|
||||
"title": "Privacy Policy",
|
||||
"intro": "We take your privacy protection very seriously. This privacy policy explains how we collect, use and protect your information.",
|
||||
"section1": {
|
||||
"title": "Information Collection",
|
||||
"item1": "We do not require users to register or provide personal information.",
|
||||
"item2": "We do not collect users' names, email addresses or other personal identification information.",
|
||||
"item3": "We may collect anonymous usage statistics, such as visit counts and usage time, to improve service quality."
|
||||
},
|
||||
"section2": {
|
||||
"title": "Information Use",
|
||||
"item1": "Temporary email addresses are only used to receive emails and will not be used for other purposes.",
|
||||
"item2": "We will not sell, trade or transfer any of your information to third parties.",
|
||||
"item3": "Collected anonymous statistics are only used for analysis and service improvement."
|
||||
},
|
||||
"section3": {
|
||||
"title": "Data Storage",
|
||||
"item1": "All email content is temporarily stored in memory and will not be persisted to disk.",
|
||||
"item2": "Mailboxes and their contents are automatically deleted after 24 hours and cannot be recovered.",
|
||||
"item3": "We do not keep backups of any user data."
|
||||
},
|
||||
"section4": {
|
||||
"title": "Third-party Services",
|
||||
"item1": "This website may use third-party analytics tools (such as Google Analytics) to understand website usage.",
|
||||
"item2": "These third-party services have their own privacy policies, and we recommend that you review the relevant policies.",
|
||||
"item3": "We are not responsible for the privacy practices of third-party services."
|
||||
},
|
||||
"section5": {
|
||||
"title": "Cookie Usage",
|
||||
"item1": "We may use cookies to improve user experience, such as saving language preferences.",
|
||||
"item2": "You can disable cookies through browser settings, but this may affect website functionality.",
|
||||
"item3": "We do not use cookies to track personal identification information."
|
||||
},
|
||||
"section6": {
|
||||
"title": "Security Measures",
|
||||
"item1": "We adopt appropriate technical and administrative measures to protect data security.",
|
||||
"item2": "All data transmission is encrypted through HTTPS.",
|
||||
"item3": "Although we strive to protect data security, we cannot guarantee absolute security."
|
||||
},
|
||||
"section7": {
|
||||
"title": "Policy Changes",
|
||||
"item1": "We may update this privacy policy from time to time.",
|
||||
"item2": "Significant changes will be announced in a prominent position on the website.",
|
||||
"item3": "Continued use of the service indicates your acceptance of the updated policy."
|
||||
},
|
||||
"section8": {
|
||||
"title": "Contact Us",
|
||||
"item1": "If you have any questions about this privacy policy, please contact us through GitHub Issues."
|
||||
},
|
||||
"conclusion": "Thank you for trusting and using zmail temporary email service!"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -22,7 +22,10 @@
|
||||
"empty": "暂无数据",
|
||||
"blog": "博客",
|
||||
"youtube": "油管频道",
|
||||
"xugouMonitor": "xugou监控"
|
||||
"xugouMonitor": "xugou监控",
|
||||
"privacyPolicy": "隐私政策",
|
||||
"terms": "使用条款",
|
||||
"about": "关于我们"
|
||||
},
|
||||
"mailbox": {
|
||||
"createRandom": "创建随机邮箱",
|
||||
@@ -92,5 +95,237 @@
|
||||
"errors": {
|
||||
"generic": "发生错误,请稍后重试",
|
||||
"notFound": "未找到请求的资源"
|
||||
},
|
||||
"intro": {
|
||||
"features": {
|
||||
"title": "核心功能",
|
||||
"privacy": {
|
||||
"title": "隐私保护",
|
||||
"description": "无需注册,不收集个人信息,完全匿名使用"
|
||||
},
|
||||
"temporary": {
|
||||
"title": "临时邮箱",
|
||||
"description": "24小时有效期,自动过期删除,避免垃圾邮件困扰"
|
||||
},
|
||||
"anonymous": {
|
||||
"title": "匿名接收",
|
||||
"description": "保护真实邮箱地址,防止信息泄露和骚扰"
|
||||
},
|
||||
"instant": {
|
||||
"title": "即时创建",
|
||||
"description": "一键生成临时邮箱,立即可用,操作简单便捷"
|
||||
}
|
||||
},
|
||||
"useCases": {
|
||||
"title": "使用场景",
|
||||
"verification": {
|
||||
"title": "一次性验证",
|
||||
"description": "接收验证码、确认邮件等临时验证需求"
|
||||
},
|
||||
"downloads": {
|
||||
"title": "软件下载",
|
||||
"description": "下载软件、获取资源时避免营销邮件"
|
||||
},
|
||||
"testing": {
|
||||
"title": "测试验证",
|
||||
"description": "开发测试、邮件验证功能时的理想工具"
|
||||
}
|
||||
},
|
||||
"security": {
|
||||
"title": "安全提示",
|
||||
"warning1": "请勿用于接收重要或敏感信息,临时邮箱不保证数据安全性",
|
||||
"warning2": "邮箱内容可能被他人访问,请避免包含个人隐私信息",
|
||||
"warning3": "邮箱将在24小时后自动删除,请及时保存重要内容"
|
||||
},
|
||||
"faq": {
|
||||
"title": "常见问题",
|
||||
"q1": {
|
||||
"question": "邮箱有效期是多久?",
|
||||
"answer": "所有邮箱的有效期为24小时,过期后会自动删除。"
|
||||
},
|
||||
"q2": {
|
||||
"question": "可以发送邮件吗?",
|
||||
"answer": "本服务仅支持接收邮件,不支持发送邮件功能。"
|
||||
},
|
||||
"q3": {
|
||||
"question": "邮件内容安全吗?",
|
||||
"answer": "所有邮件内容仅在有效期内存储,过期后会自动删除,请及时查看重要信息。"
|
||||
}
|
||||
}
|
||||
},
|
||||
"terms": {
|
||||
"title": "使用条款",
|
||||
"subtitle": "请在使用本临时邮箱服务前仔细阅读以下条款,使用即视为同意本协议。",
|
||||
"section1": {
|
||||
"title": "1. 服务说明",
|
||||
"item1": "本服务为用户提供临时、匿名的电子邮箱地址,用于接收邮件、验证码等信息。",
|
||||
"item2": "所有邮箱及邮件内容均为临时存储,过期后自动删除,无法恢复。"
|
||||
},
|
||||
"section2": {
|
||||
"title": "2. 用户责任",
|
||||
"item1": "用户应遵守相关法律法规,不得利用本服务从事任何违法、违规或有害的活动。",
|
||||
"item2": "用户应自行承担使用本服务过程中产生的全部风险和责任。"
|
||||
},
|
||||
"section3": {
|
||||
"title": "3. 禁止行为",
|
||||
"item1": "不得用于发送、接收垃圾邮件、恶意软件、钓鱼信息等非法内容。",
|
||||
"item2": "不得用于骚扰、欺诈、侵犯他人隐私或知识产权等行为。",
|
||||
"item3": "不得尝试攻击、干扰或破坏本服务的正常运行。"
|
||||
},
|
||||
"section4": {
|
||||
"title": "4. 免责声明",
|
||||
"item1": "本服务为免费开源项目,按\"现状\"提供,不对服务的可用性、稳定性或数据完整性作任何承诺。",
|
||||
"item2": "因使用本服务导致的任何直接或间接损失,开发者不承担任何责任。"
|
||||
},
|
||||
"section5": {
|
||||
"title": "5. 服务变更与终止",
|
||||
"item1": "我们有权随时对服务内容进行调整、暂停或终止,无需事先通知用户。",
|
||||
"item2": "如发现用户存在违规行为,有权限制或终止其使用本服务。"
|
||||
},
|
||||
"section6": {
|
||||
"title": "6. 法律适用",
|
||||
"item1": "本使用条款的解释与适用均受开源项目托管地相关法律法规管辖。"
|
||||
},
|
||||
"section7": {
|
||||
"title": "7. 条款变更",
|
||||
"item1": "我们有权根据需要随时修改本使用条款,变更内容将在页面显著位置公告。"
|
||||
},
|
||||
"conclusion": "感谢您使用zmail临时邮箱服务!"
|
||||
},
|
||||
"about": {
|
||||
"title": "关于我们",
|
||||
"subtitle": "了解zmail临时邮箱服务的背景和理念。",
|
||||
"intro": {
|
||||
"title": "项目简介",
|
||||
"content": "zmail是一个开源的临时邮箱服务,旨在为用户提供安全、便捷的临时电子邮箱解决方案。我们致力于保护用户隐私,避免垃圾邮件的困扰。"
|
||||
},
|
||||
"features": {
|
||||
"title": "核心特性",
|
||||
"free": {
|
||||
"title": "完全免费",
|
||||
"desc": "无需注册,无需付费,完全免费使用。"
|
||||
},
|
||||
"instant": {
|
||||
"title": "即时生成",
|
||||
"desc": "一键生成临时邮箱地址,立即可用。"
|
||||
},
|
||||
"autodestroy": {
|
||||
"title": "自动销毁",
|
||||
"desc": "邮箱在24小时后自动销毁,保护隐私。"
|
||||
},
|
||||
"realtime": {
|
||||
"title": "实时接收",
|
||||
"desc": "实时接收邮件,支持自动刷新。"
|
||||
},
|
||||
"opensource": {
|
||||
"title": "开源透明",
|
||||
"desc": "代码完全开源,安全可信。"
|
||||
}
|
||||
},
|
||||
"usecases": {
|
||||
"title": "使用场景",
|
||||
"registration": "网站注册验证",
|
||||
"download": "下载资源验证",
|
||||
"temporary": "临时通信需求",
|
||||
"spam": "避免垃圾邮件"
|
||||
},
|
||||
"tech": {
|
||||
"title": "技术架构",
|
||||
"intro": "zmail采用现代化的技术栈构建:",
|
||||
"frontend": {
|
||||
"title": "前端",
|
||||
"desc": "React + TypeScript + Tailwind CSS"
|
||||
},
|
||||
"backend": {
|
||||
"title": "后端",
|
||||
"desc": "Honojs + CloudFlare Worker"
|
||||
},
|
||||
"email": {
|
||||
"title": "邮件服务",
|
||||
"desc": "基于 CloudFlare 邮件服务提供免费临时邮箱,稳定可靠"
|
||||
},
|
||||
"storage": {
|
||||
"title": "数据存储",
|
||||
"desc": "内存存储,定时清理"
|
||||
}
|
||||
},
|
||||
"opensource": {
|
||||
"title": "开源信息",
|
||||
"intro": "zmail是一个完全开源的项目,遵循MIT开源协议。我们欢迎社区贡献代码、提出建议或报告问题。",
|
||||
"github": {
|
||||
"title": "GitHub仓库"
|
||||
},
|
||||
"license": {
|
||||
"title": "许可协议",
|
||||
"desc": "MIT License"
|
||||
},
|
||||
"contribute": {
|
||||
"title": "贡献指南",
|
||||
"desc": "欢迎提交Pull Request和Issue"
|
||||
}
|
||||
},
|
||||
"contact": {
|
||||
"title": "联系我们",
|
||||
"intro": "如果您在使用过程中遇到问题,或者有任何建议和反馈,欢迎通过以下方式联系我们:",
|
||||
"github": {
|
||||
"title": "GitHub Issues",
|
||||
"desc": "在项目仓库中提交Issue"
|
||||
},
|
||||
"email": {
|
||||
"title": "邮箱"
|
||||
}
|
||||
},
|
||||
"conclusion": "感谢您选择zmail临时邮箱服务!"
|
||||
},
|
||||
"privacy": {
|
||||
"title": "隐私政策",
|
||||
"intro": "我们非常重视您的隐私保护。本隐私政策说明了我们如何收集、使用和保护您的信息。",
|
||||
"section1": {
|
||||
"title": "信息收集",
|
||||
"item1": "我们不要求用户注册或提供个人信息。",
|
||||
"item2": "我们不收集用户的姓名、邮箱地址或其他个人身份信息。",
|
||||
"item3": "我们可能收集匿名的使用统计信息,如访问次数、使用时间等,用于改善服务质量。"
|
||||
},
|
||||
"section2": {
|
||||
"title": "信息使用",
|
||||
"item1": "临时邮箱地址仅用于接收邮件,不会被用于其他目的。",
|
||||
"item2": "我们不会向第三方出售、交易或转让您的任何信息。",
|
||||
"item3": "收集的匿名统计信息仅用于分析和改善服务。"
|
||||
},
|
||||
"section3": {
|
||||
"title": "数据存储",
|
||||
"item1": "所有邮件内容均临时存储在内存中,不会持久化到磁盘。",
|
||||
"item2": "邮箱及其内容在24小时后自动删除,无法恢复。",
|
||||
"item3": "我们不保留任何用户数据的备份。"
|
||||
},
|
||||
"section4": {
|
||||
"title": "第三方服务",
|
||||
"item1": "本网站可能使用第三方分析工具(如Google Analytics)来了解网站使用情况。",
|
||||
"item2": "这些第三方服务有自己的隐私政策,我们建议您查阅相关政策。",
|
||||
"item3": "我们不对第三方服务的隐私做法负责。"
|
||||
},
|
||||
"section5": {
|
||||
"title": "Cookies使用",
|
||||
"item1": "我们可能使用Cookies来改善用户体验,如保存语言偏好。",
|
||||
"item2": "您可以通过浏览器设置禁用Cookies,但这可能影响网站功能。",
|
||||
"item3": "我们不使用Cookies跟踪个人身份信息。"
|
||||
},
|
||||
"section6": {
|
||||
"title": "安全措施",
|
||||
"item1": "我们采用适当的技术和管理措施保护数据安全。",
|
||||
"item2": "所有数据传输均通过HTTPS加密。",
|
||||
"item3": "尽管我们努力保护数据安全,但无法保证绝对安全。"
|
||||
},
|
||||
"section7": {
|
||||
"title": "政策变更",
|
||||
"item1": "我们可能会不时更新本隐私政策。",
|
||||
"item2": "重大变更将在网站上显著位置公告。",
|
||||
"item3": "继续使用服务即表示您接受更新后的政策。"
|
||||
},
|
||||
"section8": {
|
||||
"title": "联系我们",
|
||||
"item1": "如果您对本隐私政策有任何疑问,请通过GitHub Issues联系我们。"
|
||||
},
|
||||
"conclusion": "感谢您信任并使用zmail临时邮箱服务!"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,5 @@
|
||||
import React from 'react';
|
||||
import { Routes, Route } from 'react-router-dom';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import Layout from './components/Layout';
|
||||
import HomePage from './pages/HomePage';
|
||||
import NotFoundPage from './pages/NotFoundPage';
|
||||
@@ -10,7 +9,6 @@ import AboutPage from './pages/AboutPage';
|
||||
import { MailboxProvider } from './contexts/MailboxContext';
|
||||
|
||||
const App: React.FC = () => {
|
||||
const { t } = useTranslation();
|
||||
|
||||
return (
|
||||
<MailboxProvider>
|
||||
|
||||
@@ -22,7 +22,7 @@ i18n
|
||||
translation: en,
|
||||
},
|
||||
},
|
||||
fallbackLng: 'zh-CN',
|
||||
fallbackLng: 'en',
|
||||
debug: import.meta.env.MODE === 'development',
|
||||
interpolation: {
|
||||
escapeValue: false, // 不转义HTML
|
||||
@@ -33,4 +33,4 @@ i18n
|
||||
},
|
||||
});
|
||||
|
||||
export default i18n;
|
||||
export default i18n;
|
||||
@@ -1,55 +1,61 @@
|
||||
import React from "react";
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import Container from "../components/Container";
|
||||
|
||||
const AboutPage: React.FC = () => {
|
||||
const { t } = useTranslation();
|
||||
|
||||
return (
|
||||
<Container>
|
||||
<div className="prose max-w-none mx-auto">
|
||||
<h1 className="text-3xl font-bold mb-4 text-center">关于我们</h1>
|
||||
<p className="text-lg text-center mb-8 text-muted-foreground">
|
||||
ZMAIL - 24小时匿名邮箱,开源、免费、极简、安全
|
||||
</p>
|
||||
<h2 className="text-xl font-semibold mt-8 mb-2">项目简介</h2>
|
||||
<p>
|
||||
本项目致力于为用户提供一个无需注册、即开即用的临时邮箱服务,帮助用户在注册网站、接收验证码、保护隐私等场景下,免受垃圾邮件和隐私泄露困扰。
|
||||
</p>
|
||||
<h2 className="text-xl font-semibold mt-8 mb-2">我们的理念</h2>
|
||||
<h1 className="text-3xl font-bold mb-4 text-center">{t('about.title')}</h1>
|
||||
<p className="text-lg text-center mb-8 text-muted-foreground">{t('about.subtitle')}</p>
|
||||
|
||||
<h2 className="text-xl font-semibold mt-8 mb-2">{t('about.intro.title')}</h2>
|
||||
<p>{t('about.intro.content')}</p>
|
||||
|
||||
<h2 className="text-xl font-semibold mt-8 mb-2">{t('about.features.title')}</h2>
|
||||
<ul>
|
||||
<li>极简体验:无需注册,打开即用,界面简洁友好。</li>
|
||||
<li>隐私优先:不收集用户个人信息,邮件自动过期删除。</li>
|
||||
<li>开源透明:所有代码开源,欢迎社区参与和监督。</li>
|
||||
<li><strong>{t('about.features.free.title')}</strong>:{t('about.features.free.desc')}</li>
|
||||
<li><strong>{t('about.features.instant.title')}</strong>:{t('about.features.instant.desc')}</li>
|
||||
<li><strong>{t('about.features.autodestroy.title')}</strong>:{t('about.features.autodestroy.desc')}</li>
|
||||
<li><strong>{t('about.features.realtime.title')}</strong>:{t('about.features.realtime.desc')}</li>
|
||||
<li><strong>{t('about.features.opensource.title')}</strong>:{t('about.features.opensource.desc')}</li>
|
||||
</ul>
|
||||
<h2 className="text-xl font-semibold mt-8 mb-2">开源与贡献</h2>
|
||||
<p>
|
||||
本项目完全开源,代码托管于{" "}
|
||||
<a
|
||||
href="https://github.com/zaunist/zmail"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="text-primary underline"
|
||||
>
|
||||
GitHub
|
||||
</a>
|
||||
,欢迎任何人提出建议、反馈或贡献代码。
|
||||
</p>
|
||||
<h2 className="text-xl font-semibold mt-8 mb-2">联系我们</h2>
|
||||
<p>
|
||||
如有任何问题或合作意向,可通过{" "}
|
||||
<a
|
||||
href="https://github.com/zaunist/zmail/issues"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="text-primary underline"
|
||||
>
|
||||
GitHub Issues
|
||||
</a>{" "}
|
||||
留言,或在开源社区与我们交流。
|
||||
</p>
|
||||
<div className="text-center mt-10">
|
||||
<span className="inline-block px-4 py-2 bg-primary text-primary-foreground rounded-full text-base font-medium shadow">
|
||||
感谢您的关注与支持!
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<h2 className="text-xl font-semibold mt-8 mb-2">{t('about.usecases.title')}</h2>
|
||||
<ul>
|
||||
<li>{t('about.usecases.registration')}</li>
|
||||
<li>{t('about.usecases.download')}</li>
|
||||
<li>{t('about.usecases.temporary')}</li>
|
||||
<li>{t('about.usecases.spam')}</li>
|
||||
</ul>
|
||||
|
||||
<h2 className="text-xl font-semibold mt-8 mb-2">{t('about.tech.title')}</h2>
|
||||
<p>{t('about.tech.intro')}</p>
|
||||
<ul>
|
||||
<li><strong>{t('about.tech.frontend.title')}</strong>:{t('about.tech.frontend.desc')}</li>
|
||||
<li><strong>{t('about.tech.backend.title')}</strong>:{t('about.tech.backend.desc')}</li>
|
||||
<li><strong>{t('about.tech.email.title')}</strong>:{t('about.tech.email.desc')}</li>
|
||||
<li><strong>{t('about.tech.storage.title')}</strong>:{t('about.tech.storage.desc')}</li>
|
||||
</ul>
|
||||
|
||||
<h2 className="text-xl font-semibold mt-8 mb-2">{t('about.opensource.title')}</h2>
|
||||
<p>{t('about.opensource.intro')}</p>
|
||||
<ul>
|
||||
<li><strong>{t('about.opensource.github.title')}</strong>:<a href="https://github.com/zaunist/zmail" className="text-blue-600 hover:underline">https://github.com/zaunist/zmail</a></li>
|
||||
<li><strong>{t('about.opensource.license.title')}</strong>:{t('about.opensource.license.desc')}</li>
|
||||
<li><strong>{t('about.opensource.contribute.title')}</strong>:{t('about.opensource.contribute.desc')}</li>
|
||||
</ul>
|
||||
|
||||
<h2 className="text-xl font-semibold mt-8 mb-2">{t('about.contact.title')}</h2>
|
||||
<p>{t('about.contact.intro')}</p>
|
||||
<ul>
|
||||
<li><strong>{t('about.contact.github.title')}</strong>:{t('about.contact.github.desc')}</li>
|
||||
<li><strong>{t('about.contact.email.title')}</strong>:y.bz@foxmail.com</li>
|
||||
</ul>
|
||||
|
||||
<p className="text-center mt-10">{t('about.conclusion')}</p>
|
||||
</div>
|
||||
</Container>
|
||||
);
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import React, { useContext, useRef } from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { Link } from 'react-router-dom';
|
||||
import EmailList from '../components/EmailList';
|
||||
import { MailboxContext } from '../contexts/MailboxContext';
|
||||
import Container from '../components/Container';
|
||||
@@ -66,8 +67,110 @@ const HomePage: React.FC = () => {
|
||||
onSelectEmail={setSelectedEmail}
|
||||
isLoading={isEmailsLoading}
|
||||
/>
|
||||
|
||||
{/* 介绍内容区域 */}
|
||||
<div className="mt-8 space-y-6">
|
||||
{/* 功能介绍 */}
|
||||
<section className="bg-card rounded-lg p-6 border">
|
||||
<h2 className="text-xl font-semibold mb-4">{t('intro.features.title')}</h2>
|
||||
<div className="grid md:grid-cols-2 gap-4">
|
||||
<div className="space-y-3">
|
||||
<div className="flex items-start space-x-3">
|
||||
<i className="fas fa-shield-alt text-primary mt-1"></i>
|
||||
<div>
|
||||
<h3 className="font-medium">{t('intro.features.privacy.title')}</h3>
|
||||
<p className="text-sm text-muted-foreground">{t('intro.features.privacy.description')}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex items-start space-x-3">
|
||||
<i className="fas fa-clock text-primary mt-1"></i>
|
||||
<div>
|
||||
<h3 className="font-medium">{t('intro.features.temporary.title')}</h3>
|
||||
<p className="text-sm text-muted-foreground">{t('intro.features.temporary.description')}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="space-y-3">
|
||||
<div className="flex items-start space-x-3">
|
||||
<i className="fas fa-user-secret text-primary mt-1"></i>
|
||||
<div>
|
||||
<h3 className="font-medium">{t('intro.features.anonymous.title')}</h3>
|
||||
<p className="text-sm text-muted-foreground">{t('intro.features.anonymous.description')}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex items-start space-x-3">
|
||||
<i className="fas fa-bolt text-primary mt-1"></i>
|
||||
<div>
|
||||
<h3 className="font-medium">{t('intro.features.instant.title')}</h3>
|
||||
<p className="text-sm text-muted-foreground">{t('intro.features.instant.description')}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{/* 使用场景 */}
|
||||
<section className="bg-card rounded-lg p-6 border">
|
||||
<h2 className="text-xl font-semibold mb-4">{t('intro.useCases.title')}</h2>
|
||||
<div className="grid md:grid-cols-3 gap-4">
|
||||
<div className="text-center p-4">
|
||||
<i className="fas fa-check-circle text-2xl text-primary mb-3"></i>
|
||||
<h3 className="font-medium mb-2">{t('intro.useCases.verification.title')}</h3>
|
||||
<p className="text-sm text-muted-foreground">{t('intro.useCases.verification.description')}</p>
|
||||
</div>
|
||||
<div className="text-center p-4">
|
||||
<i className="fas fa-download text-2xl text-primary mb-3"></i>
|
||||
<h3 className="font-medium mb-2">{t('intro.useCases.downloads.title')}</h3>
|
||||
<p className="text-sm text-muted-foreground">{t('intro.useCases.downloads.description')}</p>
|
||||
</div>
|
||||
<div className="text-center p-4">
|
||||
<i className="fas fa-vial text-2xl text-primary mb-3"></i>
|
||||
<h3 className="font-medium mb-2">{t('intro.useCases.testing.title')}</h3>
|
||||
<p className="text-sm text-muted-foreground">{t('intro.useCases.testing.description')}</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{/* 安全提示 */}
|
||||
<section className="bg-card rounded-lg p-6 border">
|
||||
<h2 className="text-xl font-semibold mb-4">{t('intro.security.title')}</h2>
|
||||
<div className="space-y-3">
|
||||
<div className="flex items-start space-x-3">
|
||||
<i className="fas fa-exclamation-triangle text-yellow-500 mt-1"></i>
|
||||
<p className="text-sm text-muted-foreground">{t('intro.security.warning1')}</p>
|
||||
</div>
|
||||
<div className="flex items-start space-x-3">
|
||||
<i className="fas fa-info-circle text-blue-500 mt-1"></i>
|
||||
<p className="text-sm text-muted-foreground">{t('intro.security.warning2')}</p>
|
||||
</div>
|
||||
<div className="flex items-start space-x-3">
|
||||
<i className="fas fa-trash-alt text-red-500 mt-1"></i>
|
||||
<p className="text-sm text-muted-foreground">{t('intro.security.warning3')}</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{/* 常见问题 */}
|
||||
<section className="bg-card rounded-lg p-6 border">
|
||||
<h2 className="text-xl font-semibold mb-4">{t('intro.faq.title')}</h2>
|
||||
<div className="space-y-4">
|
||||
<div>
|
||||
<h3 className="font-medium mb-2">{t('intro.faq.q1.question')}</h3>
|
||||
<p className="text-sm text-muted-foreground">{t('intro.faq.q1.answer')}</p>
|
||||
</div>
|
||||
<div>
|
||||
<h3 className="font-medium mb-2">{t('intro.faq.q2.question')}</h3>
|
||||
<p className="text-sm text-muted-foreground">{t('intro.faq.q2.answer')}</p>
|
||||
</div>
|
||||
<div>
|
||||
<h3 className="font-medium mb-2">{t('intro.faq.q3.question')}</h3>
|
||||
<p className="text-sm text-muted-foreground">{t('intro.faq.q3.answer')}</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</Container>
|
||||
);
|
||||
};
|
||||
|
||||
export default HomePage;
|
||||
export default HomePage;
|
||||
@@ -1,76 +1,71 @@
|
||||
import React from "react";
|
||||
import React from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import Container from "../components/Container";
|
||||
|
||||
const PrivacyPolicyPage: React.FC = () => {
|
||||
const { t } = useTranslation();
|
||||
|
||||
return (
|
||||
<Container>
|
||||
<h1 className="text-2xl font-bold mb-4">隐私政策</h1>
|
||||
<div className="prose max-w-none">
|
||||
<p>
|
||||
欢迎使用本临时邮箱服务(以下简称"本服务")。我们非常重视您的隐私和个人信息保护。本隐私政策将帮助您了解我们如何收集、使用、存储和保护您的信息。
|
||||
</p>
|
||||
<h2>1. 信息收集</h2>
|
||||
<div className="prose max-w-none mx-auto">
|
||||
<h1 className="text-3xl font-bold mb-4 text-center">{t('privacy.title')}</h1>
|
||||
<p className="text-lg text-center mb-8 text-muted-foreground">{t('privacy.intro')}</p>
|
||||
|
||||
<h2 className="text-xl font-semibold mt-8 mb-2">{t('privacy.section1.title')}</h2>
|
||||
<ul>
|
||||
<li>
|
||||
本服务不会要求您注册账户,也不会主动收集您的姓名、联系方式等个人身份信息。
|
||||
</li>
|
||||
<li>
|
||||
在您使用临时邮箱时,系统会自动生成邮箱地址,并在服务器上临时存储相关邮件内容。
|
||||
</li>
|
||||
<li>
|
||||
我们可能会收集您的IP地址、浏览器信息等基础访问日志,仅用于安全审计和防止滥用。
|
||||
</li>
|
||||
<li>{t('privacy.section1.item1')}</li>
|
||||
<li>{t('privacy.section1.item2')}</li>
|
||||
<li>{t('privacy.section1.item3')}</li>
|
||||
</ul>
|
||||
<h2>2. 信息使用</h2>
|
||||
|
||||
<h2 className="text-xl font-semibold mt-8 mb-2">{t('privacy.section2.title')}</h2>
|
||||
<ul>
|
||||
<li>
|
||||
收集的信息仅用于提供和优化本服务、保障服务安全、统计访问量等用途。
|
||||
</li>
|
||||
<li>我们不会将您的任何信息用于广告推送或与第三方共享。</li>
|
||||
<li>{t('privacy.section2.item1')}</li>
|
||||
<li>{t('privacy.section2.item2')}</li>
|
||||
<li>{t('privacy.section2.item3')}</li>
|
||||
</ul>
|
||||
<h2>3. 邮件内容与存储</h2>
|
||||
|
||||
<h2 className="text-xl font-semibold mt-8 mb-2">{t('privacy.section3.title')}</h2>
|
||||
<ul>
|
||||
<li>
|
||||
所有临时邮箱的邮件内容仅在有效期内存储,过期后会自动彻底删除,无法恢复。
|
||||
</li>
|
||||
<li>请勿在临时邮箱中接收或存储敏感、重要或私人信息。</li>
|
||||
<li>{t('privacy.section3.item1')}</li>
|
||||
<li>{t('privacy.section3.item2')}</li>
|
||||
<li>{t('privacy.section3.item3')}</li>
|
||||
</ul>
|
||||
<h2>4. 第三方服务</h2>
|
||||
|
||||
<h2 className="text-xl font-semibold mt-8 mb-2">{t('privacy.section4.title')}</h2>
|
||||
<ul>
|
||||
<li>
|
||||
本服务可能集成第三方统计或安全服务(如Cloudflare、Google
|
||||
Analytics等),这些服务可能会收集匿名流量数据,具体请参阅相关第三方的隐私政策。
|
||||
</li>
|
||||
<li>{t('privacy.section4.item1')}</li>
|
||||
<li>{t('privacy.section4.item2')}</li>
|
||||
<li>{t('privacy.section4.item3')}</li>
|
||||
</ul>
|
||||
<h2>5. Cookie与本地存储</h2>
|
||||
|
||||
<h2 className="text-xl font-semibold mt-8 mb-2">{t('privacy.section5.title')}</h2>
|
||||
<ul>
|
||||
<li>
|
||||
本服务可能使用Cookie或本地存储以提升用户体验(如保存语言偏好、邮箱会话等),不会用于追踪您的个人行为。
|
||||
</li>
|
||||
<li>{t('privacy.section5.item1')}</li>
|
||||
<li>{t('privacy.section5.item2')}</li>
|
||||
<li>{t('privacy.section5.item3')}</li>
|
||||
</ul>
|
||||
<h2>6. 数据安全</h2>
|
||||
|
||||
<h2 className="text-xl font-semibold mt-8 mb-2">{t('privacy.section6.title')}</h2>
|
||||
<ul>
|
||||
<li>
|
||||
我们采取合理的技术手段保护您的数据安全,防止数据丢失、滥用或被未授权访问。
|
||||
</li>
|
||||
<li>{t('privacy.section6.item1')}</li>
|
||||
<li>{t('privacy.section6.item2')}</li>
|
||||
<li>{t('privacy.section6.item3')}</li>
|
||||
</ul>
|
||||
<h2>7. 用户权利</h2>
|
||||
|
||||
<h2 className="text-xl font-semibold mt-8 mb-2">{t('privacy.section7.title')}</h2>
|
||||
<ul>
|
||||
<li>
|
||||
您有权随时停止使用本服务,所有临时邮箱及邮件内容在过期后会自动删除。
|
||||
</li>
|
||||
<li>{t('privacy.section7.item1')}</li>
|
||||
<li>{t('privacy.section7.item2')}</li>
|
||||
<li>{t('privacy.section7.item3')}</li>
|
||||
</ul>
|
||||
<h2>8. 政策变更</h2>
|
||||
|
||||
<h2 className="text-xl font-semibold mt-8 mb-2">{t('privacy.section8.title')}</h2>
|
||||
<ul>
|
||||
<li>如本隐私政策有重大变更,我们将在页面显著位置进行公告。</li>
|
||||
<li>{t('privacy.section8.item1')}</li>
|
||||
</ul>
|
||||
<h2>9. 联系我们</h2>
|
||||
<ul>
|
||||
<li>
|
||||
如有任何关于隐私政策的问题或建议,请通过项目主页或开源社区联系我们。
|
||||
</li>
|
||||
</ul>
|
||||
<p>感谢您信任并使用zmail临时邮箱服务!</p>
|
||||
|
||||
<p className="text-center mt-10">{t('privacy.conclusion')}</p>
|
||||
</div>
|
||||
</Container>
|
||||
);
|
||||
|
||||
@@ -1,50 +1,61 @@
|
||||
import React from 'react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import Container from '../components/Container';
|
||||
|
||||
const TermsPage: React.FC = () => {
|
||||
const { t } = useTranslation();
|
||||
|
||||
return (
|
||||
<Container>
|
||||
<div className="prose max-w-none mx-auto">
|
||||
<h1 className="text-3xl font-bold mb-4 text-center">使用条款</h1>
|
||||
<p className="text-lg text-center mb-8 text-muted-foreground">请在使用本临时邮箱服务前仔细阅读以下条款,使用即视为同意本协议。</p>
|
||||
<h2 className="text-xl font-semibold mt-8 mb-2">1. 服务说明</h2>
|
||||
<h1 className="text-3xl font-bold mb-4 text-center">{t('terms.title')}</h1>
|
||||
<p className="text-lg text-center mb-8 text-muted-foreground">{t('terms.subtitle')}</p>
|
||||
|
||||
<h2 className="text-xl font-semibold mt-8 mb-2">{t('terms.section1.title')}</h2>
|
||||
<ul>
|
||||
<li>本服务为用户提供临时、匿名的电子邮箱地址,用于接收邮件、验证码等信息。</li>
|
||||
<li>所有邮箱及邮件内容均为临时存储,过期后自动删除,无法恢复。</li>
|
||||
<li>{t('terms.section1.item1')}</li>
|
||||
<li>{t('terms.section1.item2')}</li>
|
||||
</ul>
|
||||
<h2 className="text-xl font-semibold mt-8 mb-2">2. 用户责任</h2>
|
||||
|
||||
<h2 className="text-xl font-semibold mt-8 mb-2">{t('terms.section2.title')}</h2>
|
||||
<ul>
|
||||
<li>用户应遵守相关法律法规,不得利用本服务从事任何违法、违规或有害的活动。</li>
|
||||
<li>用户应自行承担使用本服务过程中产生的全部风险和责任。</li>
|
||||
<li>{t('terms.section2.item1')}</li>
|
||||
<li>{t('terms.section2.item2')}</li>
|
||||
</ul>
|
||||
<h2 className="text-xl font-semibold mt-8 mb-2">3. 禁止行为</h2>
|
||||
|
||||
<h2 className="text-xl font-semibold mt-8 mb-2">{t('terms.section3.title')}</h2>
|
||||
<ul>
|
||||
<li>不得用于发送、接收垃圾邮件、恶意软件、钓鱼信息等非法内容。</li>
|
||||
<li>不得用于骚扰、欺诈、侵犯他人隐私或知识产权等行为。</li>
|
||||
<li>不得尝试攻击、干扰或破坏本服务的正常运行。</li>
|
||||
<li>{t('terms.section3.item1')}</li>
|
||||
<li>{t('terms.section3.item2')}</li>
|
||||
<li>{t('terms.section3.item3')}</li>
|
||||
</ul>
|
||||
<h2 className="text-xl font-semibold mt-8 mb-2">4. 免责声明</h2>
|
||||
|
||||
<h2 className="text-xl font-semibold mt-8 mb-2">{t('terms.section4.title')}</h2>
|
||||
<ul>
|
||||
<li>本服务为免费开源项目,按"现状"提供,不对服务的可用性、稳定性或数据完整性作任何承诺。</li>
|
||||
<li>因使用本服务导致的任何直接或间接损失,开发者不承担任何责任。</li>
|
||||
<li>{t('terms.section4.item1')}</li>
|
||||
<li>{t('terms.section4.item2')}</li>
|
||||
</ul>
|
||||
<h2 className="text-xl font-semibold mt-8 mb-2">5. 服务变更与终止</h2>
|
||||
|
||||
<h2 className="text-xl font-semibold mt-8 mb-2">{t('terms.section5.title')}</h2>
|
||||
<ul>
|
||||
<li>我们有权随时对服务内容进行调整、暂停或终止,无需事先通知用户。</li>
|
||||
<li>如发现用户存在违规行为,有权限制或终止其使用本服务。</li>
|
||||
<li>{t('terms.section5.item1')}</li>
|
||||
<li>{t('terms.section5.item2')}</li>
|
||||
</ul>
|
||||
<h2 className="text-xl font-semibold mt-8 mb-2">6. 法律适用</h2>
|
||||
|
||||
<h2 className="text-xl font-semibold mt-8 mb-2">{t('terms.section6.title')}</h2>
|
||||
<ul>
|
||||
<li>本使用条款的解释与适用均受开源项目托管地相关法律法规管辖。</li>
|
||||
<li>{t('terms.section6.item1')}</li>
|
||||
</ul>
|
||||
<h2 className="text-xl font-semibold mt-8 mb-2">7. 条款变更</h2>
|
||||
|
||||
<h2 className="text-xl font-semibold mt-8 mb-2">{t('terms.section7.title')}</h2>
|
||||
<ul>
|
||||
<li>我们有权根据需要随时修改本使用条款,变更内容将在页面显著位置公告。</li>
|
||||
<li>{t('terms.section7.item1')}</li>
|
||||
</ul>
|
||||
<p className="text-center mt-10">感谢您使用zmail临时邮箱服务!</p>
|
||||
|
||||
<p className="text-center mt-10">{t('terms.conclusion')}</p>
|
||||
</div>
|
||||
</Container>
|
||||
);
|
||||
};
|
||||
|
||||
export default TermsPage;
|
||||
export default TermsPage;
|
||||
Reference in new issue
Block a user