feat: optimism i18n

This commit is contained in:
zaunist committed 2025-06-12 01:00:32 +08:00
1 parent 3707efca2a
commit d82eea0e42
8 files changed
+711 -128

No files matched your search

+237 -2
View File
@@ -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!"
}
}
}
+237 -2
View File
@@ -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临时邮箱服务!"
}
}
}
-2
View File
@@ -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>
+2 -2
View File
@@ -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;
+49 -43
View File
@@ -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>
);
+104 -1
View File
@@ -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;
+47 -52
View File
@@ -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>
);
+35 -24
View File
@@ -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;