7a1ab18657
Align the next-intl message schema across components, hooks, and locale files so the frontend uses one canonical structure instead of compile-first workarounds. Restore Spanish, French, German, Japanese, and Korean translations to the new schema while narrowing clipboard hook dependencies to translation contracts.
488 lines
24 KiB
TypeScript
488 lines
24 KiB
TypeScript
import { Messages } from "@/types/messages";
|
||
|
||
export const en: Messages = {
|
||
meta: {
|
||
home: {
|
||
title:
|
||
"PrivyDrop: Open-Source & Free P2P File Transfer & Clipboard Sharing | Privacy-First",
|
||
description:
|
||
"PrivyDrop is an open-source, free, and secure P2P file transfer tool with no size limits, no registration, and support for resumable transfers. Based on WebRTC for end-to-end encryption, its code is transparent and trustworthy. Share text, images, and folders across devices, perfect for team collaboration and private file transfer.",
|
||
keywords:
|
||
"resumable file transfer,reliable file sharing,interrupted transfer recovery,P2P file resume,WebRTC resumable transfer,open source file sharing,P2P file transfer,secure file transfer,webrtc file sharing,private clipboard,source code transparency,GitHub project,team collaboration,cross-device sharing,encrypted file transfer,no-registration file sharing,unlimited file transfer,folder sync,mobile file transfer,secure messaging,instant file sharing,private data transfer",
|
||
},
|
||
about: {
|
||
title: "About PrivyDrop",
|
||
description:
|
||
"Learn about PrivyDrop, our mission to provide a secure and private file transfer and clipboard sharing service, and our commitment to user privacy and data protection.",
|
||
},
|
||
faq: {
|
||
title: "PrivyDrop FAQ",
|
||
description:
|
||
"Find answers to frequently asked questions about PrivyDrop, including how to send files, share clipboard content, and ensure secure and private data transfers.",
|
||
},
|
||
features: {
|
||
title:
|
||
"PrivyDrop Core Features: 6 Key Advantages of P2P File Transfer | Secure & Unlimited",
|
||
description:
|
||
"Discover PrivyDrop's core features: end-to-end encrypted P2P direct transfer, unlimited file size, resumable transfers, team collaboration, eco-friendly design, and open-source transparency. Experience truly secure and private file sharing.",
|
||
},
|
||
help: {
|
||
title: "PrivyDrop Help and Support",
|
||
description:
|
||
"Find information on how to contact PrivyDrop support, as well as links to our About, Terms of Use, and Privacy Policy pages for more details about our service.",
|
||
},
|
||
privacy: {
|
||
title: "PrivyDrop Privacy Policy",
|
||
description:
|
||
"Understand how PrivyDrop protects your privacy and data, including details on information collection, data storage and security, and our commitment to not sharing your data with third parties.",
|
||
},
|
||
terms: {
|
||
title: "PrivyDrop Terms of Use",
|
||
description:
|
||
"Review the terms of use for PrivyDrop, including information about the acceptable use of the service, data privacy and security, and limitations of liability.",
|
||
},
|
||
blog: {
|
||
title:
|
||
"PrivyDrop Blog - Private P2P File Sharing & Collaboration",
|
||
description:
|
||
"Discover secure file sharing tips, privacy-first collaboration strategies, and how to leverage P2P and WebRTC for safer data transfer.",
|
||
},
|
||
},
|
||
text: {
|
||
// Navigation (formerly Header)
|
||
navigation: {
|
||
home: "Home",
|
||
blog: "blog",
|
||
about: "About",
|
||
help: "Help",
|
||
faq: "FAQ",
|
||
features: "Features",
|
||
terms: "Terms",
|
||
privacy: "Privacy",
|
||
},
|
||
|
||
// Footer
|
||
footer: {
|
||
copyright: "PrivyDrop. All rights reserved.",
|
||
terms: "Terms of Use",
|
||
privacy: "Privacy Policy",
|
||
supportedLanguages: "Supported Languages",
|
||
},
|
||
|
||
// Privacy Policy
|
||
privacy: {
|
||
policyLabel: "Privacy Policy",
|
||
h1: "PrivyDrop Privacy Policy",
|
||
h1Paragraph:
|
||
"At PrivyDrop, we are committed to protecting your privacy and safeguarding your personal information. This privacy policy outlines how we collect, use, and protect the data you provide while using our service.",
|
||
sections: {
|
||
informationCollection: "Information Collection",
|
||
informationCollectionParagraph:
|
||
"PrivyDrop does not collect any personally identifiable information from users. We do not require registration or account creation to use our service. The only information we collect is the Room ID and the file/clipboard data you choose to share with other users.",
|
||
dataStorage: "Data Storage and Security",
|
||
dataStorageParagraph:
|
||
"We do not store any of your data on our servers. All file transfers and clipboard sharing are handled using end-to-end encryption, ensuring that your information remains secure and accessible only to the intended recipient. Once the transfer is complete, the data is removed from our systems.",
|
||
thirdPartyServices: "Third-Party Services",
|
||
thirdPartyServicesParagraph:
|
||
"PrivyDrop does not integrate with any third-party services or platforms. We do not share or sell your data to any third parties.",
|
||
amendments: "Amendments to the Privacy Policy",
|
||
amendmentsParagraph:
|
||
"We may update this privacy policy from time to time to reflect changes in our practices or applicable laws. Any changes will be effective immediately upon posting the updated policy on our website. It is your responsibility to review the privacy policy periodically for any updates.",
|
||
contactUs: "Contact Us",
|
||
contactUsParagraph:
|
||
"If you have any questions or concerns about our privacy practices, please feel free to contact us at",
|
||
},
|
||
},
|
||
|
||
// Terms of Use
|
||
terms: {
|
||
useLabel: "Terms of Use",
|
||
h1: "PrivyDrop Terms of Use",
|
||
h1Paragraph:
|
||
"By using the PrivyDrop service, you agree to be bound by these terms of use. If you do not agree to these terms, please do not use the service.",
|
||
sections: {
|
||
useOfService: "Use of the Service",
|
||
useOfServiceParagraph:
|
||
"PrivyDrop is provided as a free service without any restrictions.",
|
||
dataPrivacy: "Data Privacy and Security",
|
||
dataPrivacyParagraph:
|
||
"We take the privacy and security of your data very seriously. All file transfers and clipboard sharing are secured with end-to-end encryption, and we do not store any of your data on our servers. However, we cannot guarantee the security of your data during the transfer process, and you use the service at your own risk.",
|
||
acceptableUse: "Acceptable Use",
|
||
acceptableUseParagraph:
|
||
"You agree not to use PrivyDrop for any unlawful, abusive, or harmful purpose. This includes, but is not limited to, the transfer of illegal, copyrighted, or malicious content, as well as the use of the service to harass or impersonate others.",
|
||
liability: "Limitation of Liability",
|
||
liabilityParagraph:
|
||
'PrivyDrop is provided "as is" without any warranties or guarantees. We shall not be liable for any direct, indirect, or consequential damages arising from the use of our service, including but not limited to data loss, system failures, or interruptions in service.',
|
||
changes: "Changes to the Terms of Use",
|
||
changesParagraph:
|
||
"We reserve the right to update these terms of use at any time. Any changes will be effective immediately upon posting the updated terms on our website. It is your responsibility to review the terms of use periodically for any changes.",
|
||
},
|
||
},
|
||
|
||
// Help & Support
|
||
help: {
|
||
label: "Help",
|
||
h1: "PrivyDrop Help and Support",
|
||
h1Paragraph:
|
||
"We're here to help you make the most out of PrivyDrop. If you have any questions or need assistance, please don't hesitate to reach out to us.",
|
||
sections: {
|
||
contactUs: "Contact Us",
|
||
contactUsParagraph1: "You can send us an email at",
|
||
contactUsParagraph2: ". We will get back to you within 24 hours.",
|
||
socialMedia: "Social Media",
|
||
socialMediaParagraph: "You can also find us on social media:",
|
||
additionalResources: "Additional Resources",
|
||
additionalResourcesParagraph:
|
||
"For more information about PrivyDrop, please check out the following pages:",
|
||
},
|
||
},
|
||
|
||
// About
|
||
about: {
|
||
h1: "About PrivyDrop",
|
||
paragraphs: [
|
||
"PrivyDrop is a free and secure file transfer and clipboard sharing tool designed with privacy and ease-of-use in mind. Our mission is to provide a simple, yet powerful solution for transferring files and sharing content across devices without any restrictions.",
|
||
"At the core of PrivyDrop is our commitment to security and privacy. We use end-to-end encryption to ensure that your data is protected during the transfer process, and we never store your files or clipboard content on our servers. This means that your data stays local and under your control.",
|
||
"With PrivyDrop, you can effortlessly share text, images, and files of any size without the need for registration or logins. Our platform is designed to be fast, efficient, and environmentally friendly, with a focus on providing a seamless and user-friendly experience.",
|
||
"We believe in empowering users to take control of their digital lives, and PrivyDrop is our contribution to that vision. We hope that our tool will help you securely share and collaborate with your friends, family, and colleagues, without compromising your privacy or security.",
|
||
"For more information or questions, please visit the following pages:",
|
||
],
|
||
},
|
||
|
||
// How It Works
|
||
howItWorks: {
|
||
title: "How it works",
|
||
description: "Share files and messages instantly in three simple steps",
|
||
tryNow: "Try it now →",
|
||
step1Title: "Type or Choose Files",
|
||
step1Description:
|
||
"Type your message or drag & drop files/folders into the selection area",
|
||
step2Title: "Join Room",
|
||
step2Description:
|
||
"Click the 'Join Room' button to create a sharing session",
|
||
step3Title: "Receive",
|
||
step3Description:
|
||
"Enter the Room ID on the receive page and click 'Join Room' to get the shared content",
|
||
},
|
||
|
||
// System Diagram
|
||
systemDiagram: {
|
||
title: "System diagram",
|
||
description: "PrivyDrop: Your data, your control. Simple, fast, and private.",
|
||
},
|
||
|
||
// Key Features
|
||
keyFeatures: {
|
||
title: "Key Features",
|
||
items: {
|
||
directSecure: {
|
||
title: "Direct and Secure",
|
||
description:
|
||
"Your files travel straight from your device to the recipient's, like a secret tunnel only you two can access. With end-to-end encryption, it's like your data is speaking a language only the intended recipient can understand. Don't want to share anymore? Simply close your browser tab, and it's like hanging up a phone call - you're in control.",
|
||
},
|
||
teamSynergy: {
|
||
title: "Team Synergy",
|
||
description:
|
||
"Share with your entire team as easily as sharing with one person. Like hosting a digital roundtable, everyone gets the files simultaneously. Whether you're collaborating on a creative project or distributing important documents, it's like having everyone in the same room, receiving your shared vision at once. Perfect for brainstorming sessions, team presentations, or any moment when multiple minds need to connect.",
|
||
},
|
||
noLimits: {
|
||
title: "No Limits, Smart Handling",
|
||
description:
|
||
"Imagine a magical pipeline that can transport anything, no matter how big! Send files of any size, limited only by your disk space. For those extra-large files, choose where to save them on your device. It's like having a special delivery service that doesn't slow down your computer - files go straight to disk, keeping your device speedy and responsive.",
|
||
},
|
||
swift: {
|
||
title: "Swift as a Thought",
|
||
description:
|
||
"Share text, images, and even entire folders as quickly as you can think of them. It's like teleporting your digital stuff instantly. Need to send a whole photo album or a folder full of documents? No problem! It's as easy as sharing a single file.",
|
||
},
|
||
greenClean: {
|
||
title: "Green and Clean",
|
||
description:
|
||
"We're like a digital version of a face-to-face conversation - nothing gets stored anywhere else. This means we're super environmentally friendly, using minimal resources. It's like leaving no footprint in the digital world, keeping things clean and green for everyone.",
|
||
},
|
||
resumable: {
|
||
title: "Resumable Transfers",
|
||
description:
|
||
"Set a save directory to automatically enable resumable transfers. No more worrying about network interruptions; your file sharing will pick up right where it left off.",
|
||
},
|
||
},
|
||
},
|
||
|
||
// FAQ
|
||
faq: {
|
||
title: "Frequently Asked Questions",
|
||
items: [
|
||
{
|
||
question:
|
||
"Is the data truly stored locally and not transferred to other servers?",
|
||
answer:
|
||
"Yes, all data is handled locally. You can check the YouTube video on our homepage—files can still be transferred within a local network even if the internet is disconnected after establishing a connection. In the future, we plan to open source the code so everyone can review it.",
|
||
},
|
||
{
|
||
question: "How do I send and receive folders?",
|
||
answer:
|
||
'Sending a folder is as simple as sending a file. Drag the folder into the file selection area or click the area to select it, then hit "Start Sending." button On the receiving end, users can download directly or choose a save directory before downloading. The former saves to memory, while the latter saves directly to disk.',
|
||
},
|
||
{
|
||
question: "Can I change the Room ID?",
|
||
answer: "Yes, you can change the Room ID to any string you prefer.",
|
||
},
|
||
{
|
||
question: "Can I share content continuously?",
|
||
answer:
|
||
'As long as you remain connected, you can manually click the "Start Sending" button to update the shared content whenever it changes.',
|
||
},
|
||
{
|
||
question: "Can I share files with multiple recipients simultaneously?",
|
||
answer:
|
||
"Of course! There's no difference between one person receiving and multiple people receiving simultaneously.",
|
||
},
|
||
{
|
||
question: "Is my data secure when using PrivyDrop?",
|
||
answer:
|
||
"Absolutely secure. Your data always stays local, transferring between devices through an encrypted, end-to-end connection. All transmitted data is encrypted, ensuring only you and the recipient can access it.",
|
||
},
|
||
{
|
||
question: "Do I need to create an account to use PrivyDrop?",
|
||
answer:
|
||
"No registration or login required—just open the site and start using it. Convenience and speed are our priorities.",
|
||
},
|
||
{
|
||
question: "Are there any file size limits?",
|
||
answer:
|
||
"No limits on file size or speed. As long as you have enough disk space, you can transfer files of any size by setting a save directory before downloading.",
|
||
},
|
||
{
|
||
question: "Can I share folders or multiple files at once?",
|
||
answer:
|
||
'Yes, sharing multiple files or folders is as simple as sharing a single file. You can also add files to the transfer—just click "Start Sending" to update them for the recipient.',
|
||
},
|
||
{
|
||
question: "How do I stop sharing if I change my mind?",
|
||
answer:
|
||
"Stopping a share is as simple as closing the browser tab or window. Once you do this, the connection is terminated, and no further data can be transferred.",
|
||
},
|
||
{
|
||
question: "Does using PrivyDrop slow down my device?",
|
||
answer:
|
||
"No, PrivyDrop is designed to be lightweight and efficient. If you set a save directory, all received data is written directly to disk, bypassing memory, which helps maintain your device's performance.",
|
||
},
|
||
{
|
||
question: "Can I use PrivyDrop offline?",
|
||
answer:
|
||
"Yes, if the sender and receiver are on the same local network, they can join the same room while connected to the internet and then disconnect from it. File sharing will still work. You can refer to the YouTube video on the homepage for details.",
|
||
},
|
||
{
|
||
question: "Does PrivyDrop use any servers?",
|
||
answer:
|
||
"Yes, there is indeed a lightweight server, which is used only for signaling to establish an encrypted connection. Once the connection is established, all data is transferred directly between devices through the encrypted connection.",
|
||
},
|
||
{
|
||
question: "What is the expiration period for Room IDs?",
|
||
answer:
|
||
"The initial validity of a RoomId is 24 hours. If a recipient joins the room, the validity is automatically extended by 24 hours from that moment.",
|
||
},
|
||
],
|
||
},
|
||
|
||
// Blog
|
||
blog: {
|
||
listTitle: "Blog",
|
||
listSubtitle: "Latest articles and updates",
|
||
recentPosts: "Recent Posts",
|
||
tags: "Tags",
|
||
readMore: "Read more",
|
||
by: "by",
|
||
postNotFound: "Post not found",
|
||
tocTitle: "Table of contents",
|
||
tagTitlePrefix: "Tag",
|
||
tagSubtitleTemplate: "Articles tagged with {tag}",
|
||
tagEmpty: "No articles found for this tag.",
|
||
},
|
||
|
||
// Common UI elements
|
||
common: {
|
||
clipboard: {
|
||
pasted: "Pasted",
|
||
copied: "Copied",
|
||
copyError: "Failed to copy.",
|
||
readError: "Failed to read clipboard.",
|
||
loading: "Loading...",
|
||
},
|
||
buttons: {
|
||
request: "Request",
|
||
download: "Download",
|
||
save: "Save",
|
||
copy: "Copy",
|
||
paste: "Paste",
|
||
joinRoom: "Join room",
|
||
leaveRoom: "Leave Room",
|
||
},
|
||
},
|
||
|
||
// Clipboard Core
|
||
clipboard: {
|
||
tabs: {
|
||
send: "Send",
|
||
retrieve: "Retrieve",
|
||
},
|
||
titles: {
|
||
share: "Share Content",
|
||
retrieve: "Retrieve Content",
|
||
retrieveMethod: "Retrieve method",
|
||
},
|
||
actions: {
|
||
sync: "Sync",
|
||
syncLoading: "Synced",
|
||
readClipboard: "Paste RoomID",
|
||
},
|
||
placeholders: {
|
||
roomId: "Enter RoomID",
|
||
},
|
||
status: {
|
||
roomEmpty: "Room is empty",
|
||
receiverCanAccept: "You can accept an invitation to join the room",
|
||
onlyOne: "You're the only one here",
|
||
peopleCount: "{peerCount} People in the room",
|
||
connected: "Connected",
|
||
senderDisconnected: "Sender disconnected",
|
||
leftRoom: "You have left the room.",
|
||
},
|
||
messages: {
|
||
fileExist: "Some files were already added.",
|
||
noFilesForFolder: "No files found for folder '{folderName}'.",
|
||
zipError: "Error creating ZIP.",
|
||
fileNotFound: "File '{fileName}' not found for download.",
|
||
confirmLeave:
|
||
"Transfer will be interrupted. Can be resumed if save directory is set. Exit anyway?",
|
||
leaveSuccess: "Left room, transfer interrupted",
|
||
fetchRoomError: "Failed to get a room. Please try again.",
|
||
generateShareLinkError: "Failed to generate share link.",
|
||
leaveRoomError: "Failed to leave room.",
|
||
validateRoomError: "Failed to validate room.",
|
||
resetSenderStateError: "Failed to reset sender state.",
|
||
channelOpen: "'data channel is opened,ready to receive data...'",
|
||
waiting:
|
||
"Waiting for receiver to connect. Please keep this page open until the transfer is complete. On desktop, you can minimize the browser or switch tabs. On mobile, please keep the browser in the foreground.",
|
||
},
|
||
join: {
|
||
empty: "Warning, the roomID is empty",
|
||
duplicate: "This room ID is already in use. Please choose another ID.",
|
||
success:
|
||
"Successfully joined the room! Do not close this page until the transfer is complete. (On desktop, you can minimize the browser or switch tabs; on mobile, do not move the browser to the background.)",
|
||
notFound:
|
||
"The room you are trying to join does not exist. Only the sender can create a room.",
|
||
failure: "Failed to join room:",
|
||
inProgress:
|
||
"Joining the room… this may take 5–30 seconds on slow networks",
|
||
slow: "Feels slow—check your network/VPN or try again shortly",
|
||
timeout: "Join timed out (network may be restricted). Please try again",
|
||
},
|
||
rtc: {
|
||
slow: "Network may be restricted — try turning off VPN or try again shortly",
|
||
negotiating: "In the room—establishing a direct P2P connection…",
|
||
connected: "Connected",
|
||
reconnecting: "Reconnecting…",
|
||
restored: "Connection restored",
|
||
},
|
||
roomCheck: {
|
||
empty: "RoomID should not be empty",
|
||
available: "Room is available",
|
||
notAvailable: "Room is not available, please try another",
|
||
},
|
||
saveLocation: {
|
||
pickMsg: "Save Directly to Disk ?",
|
||
unsupported: "Directory picker not supported.",
|
||
success: "Save location set.",
|
||
error: "Could not set save location.",
|
||
},
|
||
cachedId: {
|
||
save: "Save ID",
|
||
use: "Use cached ID",
|
||
saveTip: "Save current ID for quick reuse later",
|
||
useTip: "Quick use saved ID; double-click to switch save mode",
|
||
saveSuccess: "Saved to cache",
|
||
},
|
||
generateId: {
|
||
simple: "Simple ID",
|
||
random: "Random ID",
|
||
},
|
||
},
|
||
|
||
// File Upload
|
||
fileUpload: {
|
||
noFileChosen: "No file chosen",
|
||
fileChosen: "{fileNum} file(s) and {folderNum} folder(s) selected",
|
||
chooseTip:
|
||
"Drag and drop files/folders anywhere on this page, or click here to choose.",
|
||
dragTip: "Drag to anywhere on this page.",
|
||
dialog: {
|
||
title: "Choose Upload Type",
|
||
description: "Select whether you want to upload files or a folder",
|
||
selectFile: "Select Files",
|
||
selectFolder: "Select Folder",
|
||
},
|
||
},
|
||
|
||
// File List
|
||
fileList: {
|
||
sending: "Sending",
|
||
receiving: "Receiving",
|
||
finished: "finished",
|
||
delete: "Delete",
|
||
downloadCount: "Download count",
|
||
folderSummary: "folder name:{name} ({num} files and {size}) in total",
|
||
folderInline: " ({num} files, {size})",
|
||
saveDialog: {
|
||
title: "Recommended: Choose a Save Directory",
|
||
description:
|
||
"We recommend selecting a save directory to directly save files to your disk. This makes it easier to transfer large files and synchronize folders efficiently.",
|
||
tip: "Save large files or folders directly to a selected directory. 👉",
|
||
button: "Choose save location",
|
||
},
|
||
},
|
||
|
||
// File Transfer Button
|
||
fileTransfer: {
|
||
savedToDisk: "File already saved to disk",
|
||
currentTransferring: "File is being transferred",
|
||
otherTransferring: "Please wait for current transfer to complete",
|
||
download: "Download",
|
||
pendingSave: "Click to save file locally",
|
||
saved: "Saved",
|
||
waiting: "Waiting",
|
||
},
|
||
|
||
// Retrieve Method (Share Card)
|
||
retrieveMethod: {
|
||
intro: "Congrats 🎉 Share content is waiting to be retrieved:",
|
||
roomIdTip: "Retrieve RoomID: ",
|
||
copyRoomId: "Copy RoomID",
|
||
urlTip: "Retrieve using URL: ",
|
||
copyUrl: "Copy share url",
|
||
scanQr: "Scan the QR code to receive 👇",
|
||
copied: "Copied",
|
||
copyQr: "Copy QR code",
|
||
downloadQr: "Download QR code",
|
||
},
|
||
|
||
// Home Page
|
||
home: {
|
||
hero: {
|
||
title: "Free Secure Online Clipboard & File Transfer Tool",
|
||
subtitle:
|
||
"P2P transfers that pick up where you left off. Experience truly reliable, private, and unstoppable file and text sharing—no registration, no file size or speed limits, completely free.",
|
||
screenOnlyTitle: "Try Secure Clipboard & File Transfer Tool Now",
|
||
},
|
||
demo: {
|
||
title: "See Secure File Sharing in Action",
|
||
description:
|
||
"Watch how our local-first, end-to-end encrypted file sharing protects your privacy",
|
||
watchTip: "You can also watch the video on these platforms:",
|
||
youtube: "Watch PrivyDrop on YouTube",
|
||
bilibili: "Watch PrivyDrop on Bilibili",
|
||
},
|
||
},
|
||
},
|
||
};
|