cookie translate

This commit is contained in:
rustdesk 2024-10-22 16:05:30 +08:00
parent 20951eb04f
commit f98238482e
15 changed files with 607 additions and 70 deletions

View File

@ -1,4 +1,13 @@
import type { CookieConsentConfig } from 'vanilla-cookieconsent'; import type { CookieConsentConfig } from 'vanilla-cookieconsent';
import en from './cookie/en.json';
import de from './cookie/de.json';
import es from './cookie/es.json';
import fr from './cookie/fr.json';
import pt from './cookie/pt.json';
import it from './cookie/pt.json';
import ja from './cookie/pt.json';
import zhCN from './cookie/zh-CN.json';
import zhTW from './cookie/zh-TW.json';
export const config: CookieConsentConfig = { export const config: CookieConsentConfig = {
guiOptions: { guiOptions: {
@ -46,57 +55,7 @@ export const config: CookieConsentConfig = {
default: 'en', default: 'en',
autoDetect: 'browser', autoDetect: 'browser',
translations: { translations: {
en: { en, de, es, fr, ja, pt, it, 'zh-CN': zhCN, 'zh-TW': zhTW,
consentModal: {
title: "Hello traveller, it's cookie time!",
description:
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip.',
acceptAllBtn: 'Accept all',
acceptNecessaryBtn: 'Reject all',
showPreferencesBtn: 'Manage preferences',
footer:
'<a href="/privacy">Privacy Policy</a>\n<a href="/term">Terms and conditions</a>',
},
preferencesModal: {
title: 'Consent Preferences Center',
acceptAllBtn: 'Accept all',
acceptNecessaryBtn: 'Reject all',
savePreferencesBtn: 'Save preferences',
closeIconLabel: 'Close modal',
serviceCounterLabel: 'Service|Services',
sections: [
{
title: 'Cookie Usage',
description:
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.',
},
{
title:
'Strictly Necessary Cookies <span class="pm__badge">Always Enabled</span>',
description:
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.',
linkedCategory: 'necessary',
},
{
title: 'Functionality Cookies',
description:
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.',
linkedCategory: 'functionality',
},
{
title: 'Analytics Cookies',
description:
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.',
linkedCategory: 'analytics',
},
{
title: 'More information',
description:
'For any query in relation to my policy on cookies and your choices, please <a class="cc__link" href="#yourdomain.com">contact me</a>.',
},
],
},
},
}, },
}, },
}; };

View File

@ -1,6 +1,8 @@
import React, { useState, useEffect } from 'react'; import React, { useState, useEffect } from 'react';
import { useTranslations } from '@/i18n';
const ScammingBanner = () => { const ScammingBanner = ({ lang }) => {
const t = useTranslations(lang || '');
const [isHide, setHide] = useState(true); const [isHide, setHide] = useState(true);
useEffect(() => { useEffect(() => {
@ -22,11 +24,92 @@ const ScammingBanner = () => {
return ( return (
<div className="top-0 w-full bg-gradient-to-r from-[#E014B0] to-[#802FF3] text-white p-2 flex justify-between items-center z-50"> <div className="top-0 w-full bg-gradient-to-r from-[#E014B0] to-[#802FF3] text-white p-2 flex justify-between items-center z-50">
<span className="flex-1 text-center font-bold"> <span className="flex-1 text-center font-bold">
{t({
en: (
<>
WARNING: YOU MAY BE BEING SCAMMED! <br /> WARNING: YOU MAY BE BEING SCAMMED! <br />
If you are on the phone with someone you DON'T know AND TRUST who has asked you to install RustDesk, If you are on the phone with someone you DON'T know AND TRUST who has asked you to install RustDesk,
<br /> <br />
do not install and hang up immediately. <br /> do not install and hang up immediately. <br />
They are likely a scammer trying to steal your money or other private information. They are likely a scammer trying to steal your money or other private information.
</>
),
fr: (
<>
ATTENTION: VOUS POURRIEZ ÊTRE SCAMMÉ! <br />
Si vous êtes sur la ligne avec quelqu'un que vous ne connaissez pas et qui vous a demandé d'installer
RustDesk,
<br />
ne l'installez pas et coupez immédiatement. <br />
Ils sont probablement des escrocs qui essaient de voler votre argent ou d'autres informations privées.
</>
),
de: (
<>
WARNUNG: Sie könnten betrogen worden sein! <br />
Wenn du mit jemanden telefoniest, der du nicht kennst und vertraust, der dich fragt, RustDesk zu
installieren,
<br />
installiere es nicht und hänge sofort auf. <br />
Sie sind wahrscheinlich ein Betrüger, der versucht, dein Geld oder andere private Informationen zu
stehlen.
</>
),
es: (
<>
ADVERTENCIA: PODRÍAS ESTAR SIENDO ESTAFADO! <br />
Si estás en la llamada con alguien que no conoces y no puedes confiar que te pida instalar RustDesk,
<br />
no instales y cuelga inmediatamente. <br />
Probablemente sean estafadores que intentan robar tu dinero o otra información privada.
</>
),
pt: (
<>
AVISO: VOCÊ PODE ESTAR SENDO ENGANADO! <br />
Se você está no telefone com alguém que NÃO conhece e CONFIANÇA que pediu para instalar RustDesk,
<br />
não instale e desligue imediatamente. <br />
Eles provavelmente são golpistas tentando roubar seu dinheiro ou outras informações privadas.
</>
),
'zh-cn': (
<>
警告您可能正在被骗 <br />
如果您与您不认识和信任的人通话并要求您安装 RustDesk
<br />
请勿安装并立即挂断 <br />
他们很可能是骗子试图窃取您的钱或其他私人信息
</>
),
'zh-tw': (
<>
警告您可能正在被騙 <br />
如果您與您不認識和信任的人通話並要求您安裝 RustDesk
<br />
請勿安裝並立即掛斷 <br />
他們很可能是騙子試圖竊取您的錢或其他私人信息
</>
),
ja: (
<>
警告あなたは騙されているかもしれません <br />
RustDesk をインストールするように頼んだことがない人と電話中である場合
<br />
インストールしないですぐに電話を切断してください <br />
おそらくあなたのお金や他の個人情報を盗もうとする詐欺師です
</>
),
it: (
<>
AVVISO: POTRESTI ESSERE TRUFFATO! <br />
Se sei al telefono con qualcuno che NON conosci e in cui CONFIANZA ti ha chiesto di installare RustDesk,
<br />
non installare e riaggancia immediatamente. <br />
Probabilmente sono truffatori che cercano di rubarti i soldi o
</>
),
})}
</span> </span>
<button className="bg-none border-none text-lg cursor-pointer mr-4" onClick={handleClose}> <button className="bg-none border-none text-lg cursor-pointer mr-4" onClick={handleClose}>
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">

View File

@ -0,0 +1,55 @@
{
"consentModal": {
"label": "Cookie-Zustimmung",
"title": "Hallo Reisender, es ist Zeit für Cookies!",
"description": "Unsere Website verwendet essentielle Cookies, um den ordnungsgemäßen Betrieb zu gewährleisten, und Tracking-Cookies, um zu verstehen, wie Sie damit interagieren. Letztere werden erst nach Zustimmung gesetzt. <button type=\"button\" data-cc=\"show-preferencesModal\" class=\"cc__link\">Einstellungen verwalten</button>",
"acceptAllBtn": "Alle akzeptieren",
"acceptNecessaryBtn": "Alle ablehnen",
"showPreferencesBtn": "Einstellungen verwalten"
},
"preferencesModal": {
"title": "Cookie-Einstellungen",
"acceptAllBtn": "Alle akzeptieren",
"acceptNecessaryBtn": "Alle ablehnen",
"savePreferencesBtn": "Einstellungen speichern",
"closeIconLabel": "Schließen",
"sections": [
{
"title": "Cookie-Nutzung",
"description": "Wir verwenden Cookies, um die grundlegenden Funktionen der Website sicherzustellen und Ihr Online-Erlebnis zu verbessern ..."
},
{
"title": "Unbedingt erforderliche Cookies",
"description": "Diese Cookies sind für das ordnungsgemäße Funktionieren meiner Website unerlässlich. Ohne diese Cookies würde die Website nicht richtig funktionieren",
"linkedCategory": "necessary"
},
{
"title": "Leistungs- und Analyse-Cookies",
"description": "Diese Cookies ermöglichen es der Website, sich an die Entscheidungen zu erinnern, die Sie in der Vergangenheit getroffen haben",
"linkedCategory": "analytics",
"cookieTable": {
"headers": {
"name": "Name",
"domain": "Dienst",
"description": "Beschreibung",
"expiration": "Ablauf"
},
"body": [
{
"name": "_ga",
"domain": "Google Analytics",
"description": "Cookie gesetzt von <a href=\"#das\">Google Analytics</a>.",
"expiration": "Läuft nach 12 Tagen ab"
},
{
"name": "_gid",
"domain": "Google Analytics",
"description": "Cookie gesetzt von <a href=\"#das\">Google Analytics</a>",
"expiration": "Sitzung"
}
]
}
}
]
}
}

View File

@ -0,0 +1,55 @@
{
"consentModal": {
"label": "Cookie Consent",
"title": "Hello traveller, it's cookie time!",
"description": "Our website uses essential cookies to ensure its proper operation and tracking cookies to understand how you interact with it. The latter will be set only after consent. <button type=\"button\" data-cc=\"show-preferencesModal\" class=\"cc__link\">Manage preferences</button>",
"acceptAllBtn": "Accept all",
"acceptNecessaryBtn": "Reject all",
"showPreferencesBtn": "Manage preferences"
},
"preferencesModal": {
"title": "Cookie preferences",
"acceptAllBtn": "Accept all",
"acceptNecessaryBtn": "Reject all",
"savePreferencesBtn": "Save preferences",
"closeIconLabel": "Close",
"sections": [
{
"title": "Cookie usage",
"description": "We use cookies to ensure the basic functionalities of the website and to enhance your online experience ..."
},
{
"title": "Strictly necessary cookies",
"description": "These cookies are essential for the proper functioning of my website. Without these cookies, the website would not work properly",
"linkedCategory": "necessary"
},
{
"title": "Performance and Analytics cookies",
"description": "These cookies allow the website to remember the choices you have made in the past",
"linkedCategory": "analytics",
"cookieTable": {
"headers": {
"name": "Name",
"domain": "Service",
"description": "Description",
"expiration": "Expiration"
},
"body": [
{
"name": "_ga",
"domain": "Google Analytics",
"description": "Cookie set by <a href=\"#das\">Google Analytics</a>.",
"expiration": "Expires after 12 days"
},
{
"name": "_gid",
"domain": "Google Analytics",
"description": "Cookie set by <a href=\"#das\">Google Analytics</a>",
"expiration": "Session"
}
]
}
}
]
}
}

View File

@ -0,0 +1,55 @@
{
"consentModal": {
"label": "Consentimiento de Cookies",
"title": "¡Hola viajero, es hora de las cookies!",
"description": "Nuestro sitio web utiliza cookies esenciales para garantizar su correcto funcionamiento y cookies de seguimiento para entender cómo interactúas con él. Estas últimas solo se establecerán después del consentimiento. <button type=\"button\" data-cc=\"show-preferencesModal\" class=\"cc__link\">Gestionar preferencias</button>",
"acceptAllBtn": "Aceptar todas",
"acceptNecessaryBtn": "Rechazar todas",
"showPreferencesBtn": "Gestionar preferencias"
},
"preferencesModal": {
"title": "Preferencias de cookies",
"acceptAllBtn": "Aceptar todas",
"acceptNecessaryBtn": "Rechazar todas",
"savePreferencesBtn": "Guardar preferencias",
"closeIconLabel": "Cerrar",
"sections": [
{
"title": "Uso de cookies",
"description": "Utilizamos cookies para garantizar las funcionalidades básicas del sitio web y mejorar tu experiencia en línea ..."
},
{
"title": "Cookies estrictamente necesarias",
"description": "Estas cookies son esenciales para el correcto funcionamiento de mi sitio web. Sin estas cookies, el sitio web no funcionaría correctamente",
"linkedCategory": "necessary"
},
{
"title": "Cookies de rendimiento y análisis",
"description": "Estas cookies permiten al sitio web recordar las elecciones que has hecho en el pasado",
"linkedCategory": "analytics",
"cookieTable": {
"headers": {
"name": "Nombre",
"domain": "Servicio",
"description": "Descripción",
"expiration": "Expiración"
},
"body": [
{
"name": "_ga",
"domain": "Google Analytics",
"description": "Cookie establecida por <a href=\"#das\">Google Analytics</a>.",
"expiration": "Expira después de 12 días"
},
{
"name": "_gid",
"domain": "Google Analytics",
"description": "Cookie establecida por <a href=\"#das\">Google Analytics</a>",
"expiration": "Sesión"
}
]
}
}
]
}
}

View File

@ -0,0 +1,55 @@
{
"consentModal": {
"label": "Consentement aux cookies",
"title": "Bonjour voyageur, c'est l'heure des cookies !",
"description": "Notre site web utilise des cookies essentiels pour assurer son bon fonctionnement et des cookies de suivi pour comprendre comment vous interagissez avec lui. Ces derniers ne seront installés qu'après consentement. <button type=\"button\" data-cc=\"show-preferencesModal\" class=\"cc__link\">Gérer les préférences</button>",
"acceptAllBtn": "Tout accepter",
"acceptNecessaryBtn": "Tout rejeter",
"showPreferencesBtn": "Gérer les préférences"
},
"preferencesModal": {
"title": "Préférences des cookies",
"acceptAllBtn": "Tout accepter",
"acceptNecessaryBtn": "Tout rejeter",
"savePreferencesBtn": "Enregistrer les préférences",
"closeIconLabel": "Fermer",
"sections": [
{
"title": "Utilisation des cookies",
"description": "Nous utilisons des cookies pour assurer les fonctionnalités de base du site web et pour améliorer votre expérience en ligne ..."
},
{
"title": "Cookies strictement nécessaires",
"description": "Ces cookies sont essentiels au bon fonctionnement de notre site web. Sans ces cookies, le site ne fonctionnerait pas correctement",
"linkedCategory": "necessary"
},
{
"title": "Cookies de performance et d'analyse",
"description": "Ces cookies permettent au site web de se souvenir des choix que vous avez faits dans le passé",
"linkedCategory": "analytics",
"cookieTable": {
"headers": {
"name": "Nom",
"domain": "Service",
"description": "Description",
"expiration": "Expiration"
},
"body": [
{
"name": "_ga",
"domain": "Google Analytics",
"description": "Cookie défini par <a href=\"#das\">Google Analytics</a>.",
"expiration": "Expire après 12 jours"
},
{
"name": "_gid",
"domain": "Google Analytics",
"description": "Cookie défini par <a href=\"#das\">Google Analytics</a>",
"expiration": "Session"
}
]
}
}
]
}
}

View File

@ -0,0 +1,55 @@
{
"consentModal": {
"label": "Consenso ai cookie",
"title": "Ciao viaggiatore, è l'ora dei cookie!",
"description": "Il nostro sito web utilizza cookie essenziali per garantire il suo corretto funzionamento e cookie di tracciamento per capire come interagisci con esso. Questi ultimi saranno installati solo dopo il consenso. <button type=\"button\" data-cc=\"show-preferencesModal\" class=\"cc__link\">Gestisci preferenze</button>",
"acceptAllBtn": "Accetta tutti",
"acceptNecessaryBtn": "Rifiuta tutti",
"showPreferencesBtn": "Gestisci preferenze"
},
"preferencesModal": {
"title": "Preferenze dei cookie",
"acceptAllBtn": "Accetta tutti",
"acceptNecessaryBtn": "Rifiuta tutti",
"savePreferencesBtn": "Salva preferenze",
"closeIconLabel": "Chiudi",
"sections": [
{
"title": "Utilizzo dei cookie",
"description": "Utilizziamo i cookie per garantire le funzionalità di base del sito web e per migliorare la tua esperienza online ..."
},
{
"title": "Cookie strettamente necessari",
"description": "Questi cookie sono essenziali per il corretto funzionamento del nostro sito web. Senza questi cookie, il sito non funzionerebbe correttamente",
"linkedCategory": "necessary"
},
{
"title": "Cookie di prestazione e analisi",
"description": "Questi cookie permettono al sito web di ricordare le scelte che hai fatto in passato",
"linkedCategory": "analytics",
"cookieTable": {
"headers": {
"name": "Nome",
"domain": "Servizio",
"description": "Descrizione",
"expiration": "Scadenza"
},
"body": [
{
"name": "_ga",
"domain": "Google Analytics",
"description": "Cookie impostato da <a href=\"#das\">Google Analytics</a>.",
"expiration": "Scade dopo 12 giorni"
},
{
"name": "_gid",
"domain": "Google Analytics",
"description": "Cookie impostato da <a href=\"#das\">Google Analytics</a>",
"expiration": "Sessione"
}
]
}
}
]
}
}

View File

@ -0,0 +1,55 @@
{
"consentModal": {
"label": "クッキー同意",
"title": "こんにちは旅人さん、クッキーの時間です!",
"description": "当ウェブサイトは、適切な運営を確保するために必要不可欠なクッキーと、お客様との対話を理解するための追跡クッキーを使用しています。後者は同意後にのみ設定されます。<button type=\"button\" data-cc=\"show-preferencesModal\" class=\"cc__link\">設定を管理する</button>",
"acceptAllBtn": "すべて受け入れる",
"acceptNecessaryBtn": "すべて拒否する",
"showPreferencesBtn": "設定を管理する"
},
"preferencesModal": {
"title": "クッキー設定",
"acceptAllBtn": "すべて受け入れる",
"acceptNecessaryBtn": "すべて拒否する",
"savePreferencesBtn": "設定を保存する",
"closeIconLabel": "閉じる",
"sections": [
{
"title": "クッキーの使用",
"description": "私たちはウェブサイトの基本的な機能を確保し、オンライン体験を向上させるためにクッキーを使用しています..."
},
{
"title": "厳密に必要なクッキー",
"description": "これらのクッキーは、当ウェブサイトの適切な機能のために不可欠です。これらのクッキーがなければ、ウェブサイトは正常に動作しません",
"linkedCategory": "necessary"
},
{
"title": "パフォーマンスと分析用クッキー",
"description": "これらのクッキーにより、ウェブサイトはあなたが過去に行った選択を記憶することができます",
"linkedCategory": "analytics",
"cookieTable": {
"headers": {
"name": "名前",
"domain": "サービス",
"description": "説明",
"expiration": "有効期限"
},
"body": [
{
"name": "_ga",
"domain": "Google Analytics",
"description": "<a href=\"#das\">Google Analytics</a>によって設定されたクッキー。",
"expiration": "12日後に有効期限切れ"
},
{
"name": "_gid",
"domain": "Google Analytics",
"description": "<a href=\"#das\">Google Analytics</a>によって設定されたクッキー",
"expiration": "セッション"
}
]
}
}
]
}
}

View File

@ -0,0 +1,55 @@
{
"consentModal": {
"label": "Consentimento de Cookies",
"title": "Olá viajante, é hora dos cookies!",
"description": "Nosso site usa cookies essenciais para garantir seu funcionamento adequado e cookies de rastreamento para entender como você interage com ele. Estes últimos só serão definidos após o consentimento. <button type=\"button\" data-cc=\"show-preferencesModal\" class=\"cc__link\">Gerenciar preferências</button>",
"acceptAllBtn": "Aceitar todos",
"acceptNecessaryBtn": "Rejeitar todos",
"showPreferencesBtn": "Gerenciar preferências"
},
"preferencesModal": {
"title": "Preferências de cookies",
"acceptAllBtn": "Aceitar todos",
"acceptNecessaryBtn": "Rejeitar todos",
"savePreferencesBtn": "Salvar preferências",
"closeIconLabel": "Fechar",
"sections": [
{
"title": "Uso de cookies",
"description": "Usamos cookies para garantir as funcionalidades básicas do site e para melhorar sua experiência online ..."
},
{
"title": "Cookies estritamente necessários",
"description": "Esses cookies são essenciais para o funcionamento adequado do nosso site. Sem esses cookies, o site não funcionaria corretamente",
"linkedCategory": "necessary"
},
{
"title": "Cookies de desempenho e análise",
"description": "Esses cookies permitem que o site lembre as escolhas que você fez no passado",
"linkedCategory": "analytics",
"cookieTable": {
"headers": {
"name": "Nome",
"domain": "Serviço",
"description": "Descrição",
"expiration": "Expiração"
},
"body": [
{
"name": "_ga",
"domain": "Google Analytics",
"description": "Cookie definido pelo <a href=\"#das\">Google Analytics</a>.",
"expiration": "Expira após 12 dias"
},
{
"name": "_gid",
"domain": "Google Analytics",
"description": "Cookie definido pelo <a href=\"#das\">Google Analytics</a>",
"expiration": "Sessão"
}
]
}
}
]
}
}

View File

@ -0,0 +1,55 @@
{
"consentModal": {
"label": "Cookie 同意",
"title": "你好旅行者,是时候选择 Cookie 了!",
"description": "我们的网站使用必要的 cookie 来确保其正常运行,并使用跟踪 cookie 来了解您与之交互的方式。后者只有在得到同意后才会设置。<button type=\"button\" data-cc=\"show-preferencesModal\" class=\"cc__link\">管理偏好设置</button>",
"acceptAllBtn": "接受全部",
"acceptNecessaryBtn": "拒绝全部",
"showPreferencesBtn": "管理偏好设置"
},
"preferencesModal": {
"title": "Cookie 偏好设置",
"acceptAllBtn": "接受全部",
"acceptNecessaryBtn": "拒绝全部",
"savePreferencesBtn": "保存偏好设置",
"closeIconLabel": "关闭",
"sections": [
{
"title": "Cookie 使用",
"description": "我们使用 cookie 来确保网站的基本功能并增强您的在线体验 ..."
},
{
"title": "严格必要的 cookie",
"description": "这些 cookie 对我的网站的正常运行至关重要。没有这些 cookie网站将无法正常工作",
"linkedCategory": "necessary"
},
{
"title": "性能和分析 cookie",
"description": "这些 cookie 允许网站记住您过去做出的选择",
"linkedCategory": "analytics",
"cookieTable": {
"headers": {
"name": "名称",
"domain": "服务",
"description": "描述",
"expiration": "过期时间"
},
"body": [
{
"name": "_ga",
"domain": "Google Analytics",
"description": "由 <a href=\"#das\">Google Analytics</a> 设置的 cookie。",
"expiration": "12天后过期"
},
{
"name": "_gid",
"domain": "Google Analytics",
"description": "由 <a href=\"#das\">Google Analytics</a> 设置的 cookie",
"expiration": "会话结束时"
}
]
}
}
]
}
}

View File

@ -0,0 +1,55 @@
{
"consentModal": {
"label": "Cookie 同意",
"title": "您好旅行者,是時候談談 Cookie 了!",
"description": "我們的網站使用必要的 Cookie 來確保其正常運作,並使用追蹤 Cookie 來了解您如何與之互動。後者只有在得到同意後才會設置。<button type=\"button\" data-cc=\"show-preferencesModal\" class=\"cc__link\">管理偏好設置</button>",
"acceptAllBtn": "接受全部",
"acceptNecessaryBtn": "拒絕全部",
"showPreferencesBtn": "管理偏好設置"
},
"preferencesModal": {
"title": "Cookie 偏好設置",
"acceptAllBtn": "接受全部",
"acceptNecessaryBtn": "拒絕全部",
"savePreferencesBtn": "保存偏好設置",
"closeIconLabel": "關閉",
"sections": [
{
"title": "Cookie 使用",
"description": "我們使用 Cookie 來確保網站的基本功能並增強您的線上體驗 ..."
},
{
"title": "絕對必要的 Cookie",
"description": "這些 Cookie 對於我的網站的正常運作至關重要。沒有這些 Cookie網站將無法正常工作",
"linkedCategory": "necessary"
},
{
"title": "性能和分析 Cookie",
"description": "這些 Cookie 允許網站記住您過去做出的選擇",
"linkedCategory": "analytics",
"cookieTable": {
"headers": {
"name": "名稱",
"domain": "服務",
"description": "描述",
"expiration": "過期時間"
},
"body": [
{
"name": "_ga",
"domain": "Google Analytics",
"description": "由 <a href=\"#das\">Google Analytics</a> 設置的 Cookie。",
"expiration": "12天後過期"
},
{
"name": "_gid",
"domain": "Google Analytics",
"description": "由 <a href=\"#das\">Google Analytics</a> 設置的 Cookie",
"expiration": "會話結束時"
}
]
}
}
]
}
}

View File

@ -34,7 +34,7 @@ export const DEFAULT_LOCALE = DEFAULT_LOCALE_SETTING as Lang;
* @example * @example
* { en: "Hello", ja: "こんにちは", ... } * { en: "Hello", ja: "こんにちは", ... }
*/ */
export type Multilingual = { [key in Lang]?: string }; export type Multilingual = { [key in Lang]?: string | React.ReactNode };
/** /**
@ -43,7 +43,7 @@ export type Multilingual = { [key in Lang]?: string };
* @returns - The translation function * @returns - The translation function
*/ */
export function useTranslations(lang: Lang) { export function useTranslations(lang: Lang) {
return function t(multilingual: Multilingual | string): string { return function t(multilingual: Multilingual | string): string | React.ReactNode {
if (typeof multilingual === "string") { if (typeof multilingual === "string") {
return multilingual; return multilingual;
} else { } else {

View File

@ -44,7 +44,7 @@ metadata.description = t({
ja: "RustDeskは、セルフホスト型サーバーオプションを備えたオープンソースのリモートデスクトップソリューションを提供しています。安全でプライベート、カスタマイズ可能なリモートアクセスのための完璧なTeamViewerの代替です。プロフェッショナルなオンプレミスライセンスをご覧ください。", ja: "RustDeskは、セルフホスト型サーバーオプションを備えたオープンソースのリモートデスクトップソリューションを提供しています。安全でプライベート、カスタマイズ可能なリモートアクセスのための完璧なTeamViewerの代替です。プロフェッショナルなオンプレミスライセンスをご覧ください。",
"zh-cn": "RustDesk提供了一个开源的远程桌面解决方案具有自托管服务器选项。是安全、私密和可定制的远程访问的完美TeamViewer替代品。探索我们的专业本地许可证。", "zh-cn": "RustDesk提供了一个开源的远程桌面解决方案具有自托管服务器选项。是安全、私密和可定制的远程访问的完美TeamViewer替代品。探索我们的专业本地许可证。",
"zh-tw": "RustDesk 提供了一個開源的遠程桌面解決方案,具有自托管伺服器選項。是安全、私密和可定制的遠程訪問的完美 TeamViewer 替代品。探索我們的專業本地許可證。", "zh-tw": "RustDesk 提供了一個開源的遠程桌面解決方案,具有自托管伺服器選項。是安全、私密和可定制的遠程訪問的完美 TeamViewer 替代品。探索我們的專業本地許可證。",
}); }) as string;
--- ---
<!doctype html> <!doctype html>
@ -98,7 +98,7 @@ metadata.description = t({
</head> </head>
<body class="antialiased text-default bg-page tracking-tight"> <body class="antialiased text-default bg-page tracking-tight">
<Scamming client:load /> <Scamming lang={Astro.currentLocale as Lang} client:load />
<slot /> <slot />
<BasicScripts /> <BasicScripts />

View File

@ -19,7 +19,7 @@ const metadata = {
<Layout metadata={metadata} i18n> <Layout metadata={metadata} i18n>
<Note <Note
title="注意" title="注意"
subtitle='<span class="text-2xl text-font-bold">rustdesk.com</span>が唯一の公式ドメインです。他のドメインからRustDeskをダウンロードしないでください。' subtitle='<span class="text-2xl text-font-bold">rustdesk.com</span>が唯一の公式ドメインです。他のドメインから RustDesk をダウンロードしないでください。'
/> />
<Hero <Hero
@ -37,7 +37,7 @@ const metadata = {
<Fragment slot="title">高速オープンソースのリモートアクセスおよびサポートソフトウェア</Fragment> <Fragment slot="title">高速オープンソースのリモートアクセスおよびサポートソフトウェア</Fragment>
<Fragment slot="subtitle"> <Fragment slot="subtitle">
TeamViewer、AnyDesk、Splashtopから、自身のセルフホストサーバーを使用した安全で信頼性の高いリモートデスクトップ体験のRustDeskに切り替えましょう。 TeamViewer、AnyDesk、Splashtopから、自身のセルフホストサーバーを使用した安全で信頼性の高いリモートデスクトップ体験の RustDesk に切り替えましょう。
</Fragment> </Fragment>
<Fragment slot="content"> <Fragment slot="content">
<br /><br /> <br /><br />
@ -60,7 +60,7 @@ const metadata = {
items={[ items={[
{ {
title: 'データ主権', title: 'データ主権',
description: '規制遵守が容易にセルフホストのRustDeskがデータ主権を確保します。', description: '規制遵守が容易に:セルフホストの RustDesk がデータ主権を確保します。',
}, },
{ {
title: '強化されたセキュリティ', title: '強化されたセキュリティ',
@ -72,7 +72,7 @@ const metadata = {
}, },
{ {
title: '柔軟性とカスタマイズ', title: '柔軟性とカスタマイズ',
description: 'RustDeskのオンプレミスを独自の要件に合わせてカスタマイズします。', description: 'RustDesk のオンプレミスを独自の要件に合わせてカスタマイズします。',
}, },
]} ]}
image={{ image={{
@ -95,11 +95,11 @@ const metadata = {
items={[ items={[
{ {
title: 'あなたのブランド、あなたのやり方', title: 'あなたのブランド、あなたのやり方',
description: `RustDeskクライアントを自分の名前、アイコン、ロゴでパーソナライズします。`, description: `RustDesk クライアントを自分の名前、アイコン、ロゴでパーソナライズします。`,
}, },
{ {
title: '簡単な展開', title: '簡単な展開',
description: `内蔵のネットワーク設定とサーバーセットアップにより、RustDeskのオンプレミス展開が容易になります。`, description: `内蔵のネットワーク設定とサーバーセットアップにより、RustDesk のオンプレミス展開が容易になります。`,
}, },
{ {
title: '高度な設定オプション', title: '高度な設定オプション',

View File

@ -13,15 +13,15 @@ const metadata = {
items={[ items={[
{ {
title: '問題報告', title: '問題報告',
description: 'バグを見つけましたかGitHubのイシューでお知らせください。', description: 'バグを見つけましたかGitHub のイシューでお知らせください。',
}, },
{ {
title: 'コミュニティサポート', title: 'コミュニティサポート',
description: '私たちのDiscordサーバーに参加して、ヘルプやベストプラクティスを探してください。', description: '私たちの Discord サーバーに参加して、ヘルプやベストプラクティスを探してください。',
}, },
{ {
title: 'Proユーザー向けチケット', title: 'Proユーザー向けチケット',
description: 'RustDesk Server Proの使用中に問題が発生した場合は、メールでお問い合わせください。', description: 'RustDesk Server Pro の使用中に問題が発生した場合は、メールでお問い合わせください。',
}, },
{ {
title: 'GitHub', title: 'GitHub',