add ko and ar

This commit is contained in:
rustdesk 2024-10-22 17:06:21 +08:00
parent f98238482e
commit d41d515b15
16 changed files with 1763 additions and 14 deletions

View File

@ -27,7 +27,7 @@ export default defineConfig({
output: 'static',
i18n: {
defaultLocale: 'en',
locales: ['en', 'de', 'es', 'fr', 'it', 'ja', 'pt', 'zh-cn', 'zh-tw'],
locales: ['en', 'de', 'es', 'fr', 'it', 'ja', 'pt', 'zh-cn', 'zh-tw', 'ko', 'ar'],
routing: {
prefixDefaultLocale: true,
redirectToDefaultLocale: false,

View File

@ -4,8 +4,10 @@ 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 it from './cookie/it.json';
import ja from './cookie/ja.json';
import ar from './cookie/ar.json';
import ko from './cookie/ko.json';
import zhCN from './cookie/zh-CN.json';
import zhTW from './cookie/zh-TW.json';
@ -22,6 +24,9 @@ export const config: CookieConsentConfig = {
flipButtons: false,
},
},
onConsent: () => {
localStorage.setItem('cookie-accepted', 'true');
},
categories: {
necessary: {
readOnly: true,
@ -31,10 +36,9 @@ export const config: CookieConsentConfig = {
services: {
ga4: {
label:
'<a href="https://marketingplatform.google.com/about/analytics/terms/us/" target="_blank">Google Analytics 4 (dummy)</a>',
'<a href="https://marketingplatform.google.com/about/analytics/terms/us/" target="_blank">Google Analytics 4</a>',
onAccept: () => {
// TODO: load ga4
localStorage.setItem('cookie-accepted', 'true');
},
onReject: () => {
console.log('ga4 rejected');
@ -45,17 +49,14 @@ export const config: CookieConsentConfig = {
},
],
},
another: {
label: 'Another one (dummy)',
},
},
},
},
language: {
default: 'en',
autoDetect: 'browser',
autoDetect: 'document',
translations: {
en, de, es, fr, ja, pt, it, 'zh-CN': zhCN, 'zh-TW': zhTW,
en, de, es, fr, ja, pt, it, 'zh-CN': zhCN, 'zh-TW': zhTW, ar, ko,
},
},
};

View File

@ -6,6 +6,6 @@ import logo from '~/assets/images/logo.svg';
<span
class="flex items-center self-center ml-2 rtl:ml-0 rtl:mr-2 text-2xl md:text-xl font-bold text-gray-900 whitespace-nowrap dark:text-white"
>
<img src={logo.src} loading="lazy" alt="RustDesk Logo" class="h-8 w-8 mr-2" />
{SITE?.name?.toLowerCase()}
<img src={logo.src} loading="lazy" alt="RustDesk Logo" class="h-8 w-8" />
<span class="mx-2">{SITE?.name?.toLowerCase()}</span>
</span>

View File

@ -109,6 +109,24 @@ const ScammingBanner = ({ lang }) => {
Probabilmente sono truffatori che cercano di rubarti i soldi o
</>
),
ko: (
<>
경고: 사기당하고 있을 있습니다! <br />
RustDesk를 설치하라고 요청한 사람과 전화 중이고, 사람을 모르고 믿을 없다면,
<br />
설치하지 말고 즉시 전화를 끊으십시오. <br />
그들은 아마도 돈이나 다른 개인 정보를 훔치려는 사기꾼일 가능성이 높습니다.
</>
),
ar: (
<>
تحذير: قد تكون ضحية احتيال! <br />
إذا كنت تتحدث عبر الهاتف مع شخص لا تعرفه وطلب منك تثبيت RustDesk،
<br />
لا تقم بالتثبيت واغلق المكالمة فوراً. <br />
من المحتمل أنهم محتالون يحاولون سرقة أموالك.
</>
),
})}
</span>
<button className="bg-none border-none text-lg cursor-pointer mr-4" onClick={handleClose}>

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": "쿠키 동의",
"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

@ -23,6 +23,9 @@ export const LOCALES_SETTING: LocaleSetting = {
"ja": {
"label": "日本語"
},
"ko": {
"label": "한국어"
},
"pt": {
"label": "Português"
},
@ -34,12 +37,10 @@ export const LOCALES_SETTING: LocaleSetting = {
"label": "繁體中文",
"lang": "zh-TW"
},
/*
"ar": {
"label": "العربية",
"dir": "rtl"
},
*/
};
interface LocaleSetting {

View File

@ -16,6 +16,8 @@ export const headerData = (locale?: Lang) => {
pt: 'Recursos',
'zh-cn': '资源',
'zh-tw': '資源',
ar: 'موارد',
ko: '자원',
}),
links: [
{
@ -29,6 +31,8 @@ export const headerData = (locale?: Lang) => {
pt: 'Sobre nós',
'zh-cn': '关于我们',
'zh-tw': '關於我們',
ar: 'من نحن',
ko: '우리에 대해',
}),
href: getPermalink(getLocalPath(locale || '', '/team')),
},
@ -43,6 +47,8 @@ export const headerData = (locale?: Lang) => {
pt: 'Suporte',
'zh-cn': '支持',
'zh-tw': '支持',
ar: 'الدعم',
ko: '지원',
}),
href: getPermalink(getLocalPath(locale || '', '/support')),
},
@ -57,6 +63,8 @@ export const headerData = (locale?: Lang) => {
pt: 'Cliente Web',
'zh-cn': 'Web客户端',
'zh-tw': 'Web客戶端',
ar: 'عميل الويب',
ko: '웹 클라이언트',
}),
href: getPermalink('/web'),
},
@ -71,6 +79,8 @@ export const headerData = (locale?: Lang) => {
pt: 'Portal de licença Pro',
'zh-cn': '专业许可证门户',
'zh-tw': '專業許可證門戶',
ar: 'بوابة ترخيص Pro',
ko: 'Pro 라이선스 포털',
}),
href: getPermalink('/self-host/account'),
},
@ -91,6 +101,8 @@ export const headerData = (locale?: Lang) => {
pt: 'Preços',
'zh-cn': '定价',
'zh-tw': '定價',
ar: 'التسعير',
ko: '가격',
}),
href: getPermalink(getLocalPath(locale || '', '/pricing')),
},
@ -105,6 +117,8 @@ export const headerData = (locale?: Lang) => {
pt: 'Documentação',
'zh-cn': '文档',
'zh-tw': '文件',
ar: 'وثائق',
ko: '문서',
}),
href: getPermalink('/docs'),
},
@ -114,6 +128,8 @@ export const headerData = (locale?: Lang) => {
ja: 'ブログ',
'zh-cn': '博客',
'zh-tw': '博客',
ar: 'مدونة',
ko: '블로그',
}),
href: getPermalink('/blog'),
},
@ -129,6 +145,8 @@ export const headerData = (locale?: Lang) => {
pt: 'Baixar',
'zh-cn': '下载',
'zh-tw': '下載',
ar: 'تحميل',
ko: '다운로드',
})
, href: 'https://github.com/rustdesk/rustdesk/releases/latest', target: '_blank'
}],
@ -152,6 +170,8 @@ export const footerData = (locale?: Lang) => {
pt: 'Comunidade',
'zh-cn': '社区',
'zh-tw': '社區',
ar: 'مجتمع',
ko: '커뮤니티',
}),
links: [
{ text: 'X', href: 'https://twitter.com/rustdesk' },
@ -171,6 +191,8 @@ export const footerData = (locale?: Lang) => {
pt: 'Baixar',
'zh-cn': '下载',
'zh-tw': '下載',
ar: 'تحميل',
kernel: '다운로드',
}),
links: [
{
@ -184,6 +206,8 @@ export const footerData = (locale?: Lang) => {
pt: 'Cliente RustDesk',
'zh-cn': 'RustDesk客户端',
'zh-tw': 'RustDesk客戶端',
ar: 'عميل RustDesk',
ko: 'RustDesk 클라이언트',
})
, href: 'https://github.com/rustdesk/rustdesk/releases/latest'
},
@ -204,6 +228,8 @@ export const footerData = (locale?: Lang) => {
pt: 'Termos',
'zh-cn': '条款',
'zh-tw': '條款',
ar: 'شروط',
ko: '약관',
})
, href: getPermalink('/terms')
},
@ -218,6 +244,8 @@ export const footerData = (locale?: Lang) => {
pt: 'Política de Privacidade',
'zh-cn': '隐私政策',
'zh-tw': '隱私政策',
ar: 'سياسة الخصوصية',
ko: '개인정보 처리방침',
})
, href: getPermalink('/privacy')
},

240
v3/src/pages/ar/index.astro Normal file
View File

@ -0,0 +1,240 @@
---
import Layout from '~/layouts/PageLayout.astro';
import Hero from '~/components/widgets/Hero.astro';
import Steps from '~/components/widgets/Steps.astro';
import Content from '~/components/widgets/Content.astro';
import BlogLatestPosts from '~/components/widgets/BlogLatestPosts.astro';
import Stats from '~/components/widgets/Stats.astro';
import CallToAction from '~/components/widgets/CallToAction.astro';
import Carousel from '~/components/widgets/Carousel.jsx';
import Note from '~/components/widgets/Note.astro';
const metadata = {
title: 'رست ديسك: سطح المكتب البعيد مفتوح المصدر مع حلول الخادم المستضاف ذاتيًا',
ignoreTitleTemplate: true,
};
---
<Layout metadata={metadata} i18n>
<Note
title="ملاحظة"
subtitle='<span class="text-2xl text-font-bold">rustdesk.com</span> هو نطاقنا الرسمي الوحيد. يرجى عدم تنزيل رست ديسك من النطاقات الأخرى.'
/>
<Hero
actions={[
{
variant: 'primary',
text: 'تحميل',
href: 'https://rustdesk.com/download',
target: '_blank',
icon: 'tabler:download',
},
{ text: 'الاستضافة الذاتية', href: 'https://rustdesk.com/docs/en/self-host/', target: '_blank', icon: 'tabler:book' },
]}
>
<Fragment slot="title">برنامج الوصول والدعم عن بُعد مفتوح المصدر السريع</Fragment>
<Fragment slot="subtitle">
انتقل من تيم فيور وأني ديسك وسبلاش توب إلى رست ديسك لتجربة سطح مكتب بعيد آمنة وموثوقة
مع خوادمك المستضافة ذاتيًا.
</Fragment>
<Fragment slot="content">
<br /><br />
<Carousel
client:load
list={[
{ src: '/remote.jpg', className: 'rounded-[15px] border border-gray-700' },
{ src: '/main.png', className: 'rounded-[15px] border border-gray-700' },
{ src: '/console.png', className: 'rounded-[15px] border border-gray-700' },
{ src: '/custom.png', className: 'rounded-[15px] border border-gray-700' },
]}
/>
</Fragment>
</Hero>
<Content
isReversed
tagline="داخل الاستضافة الذاتية"
title="قم بتمكين وصولك عن بُعد باستخدام الخوادم المستضافة ذاتيًا"
items={[
{
title: 'سيادة البيانات',
description: 'الامتثال التنظيمي أصبح سهلاً: رست ديسك المستضاف ذاتيًا يضمن سيادة البيانات.',
},
{
title: 'أمان معزز',
description: 'قم بتعزيز أمانك: النشر في الموقع يبقي بياناتك تحت سيطرتك.',
},
{
title: 'الأداء والموثوقية',
description: 'وقت تشغيل مضمون: النشر في الموقع يضمن الأداء الأمثل والحد الأدنى من وقت التوقف.',
},
{
title: 'المرونة والتخصيص',
description: 'قم بتخصيص رست ديسك في الموقع ليناسب متطلباتك الفريدة.',
},
]}
image={{
src: '~/assets/images/hosting.jpg',
alt: 'صورة الاستضافة',
}}
>
<Fragment slot="content">
<h3 class="text-2xl font-bold tracking-tight dark:text-white sm:text-3xl mb-2">لماذا الاستضافة الذاتية؟</h3>
هل أنت محبط من منصات البرمجيات كخدمة بسبب أدائها غير المستقر، وعدم الشفافية، ومخاطر أمن البيانات غير المؤكدة؟
</Fragment>
<Fragment slot="bg">
<div class="absolute inset-0 bg-blue-50 dark:bg-transparent"></div>
</Fragment>
</Content>
<Content
isAfterContent
items={[
{
title: 'علامتك التجارية، بطريقتك',
description: 'قم بتخصيص عميل رست ديسك باسمك وأيقونتك وشعارك.',
},
{
title: 'نشر سهل',
description: 'تكوين الشبكة المدمج وإعداد الخادم يجعل نشر رست ديسك في الموقع أمرًا سهلاً.',
},
{
title: 'خيارات تكوين متقدمة',
description: 'يمكن تكوين أكثر من 90 خيارًا لتلبية احتياجاتك المحددة.',
},
{
title: 'دعم متعدد المنصات',
description: 'ويندوز، ماك أو إس، لينكس، أندرويد.',
},
{
title: 'عميل الويب',
description: 'استضف عميل الويب على خادمك باسم النطاق الخاص بك لجعل الوصول عن بُعد أسهل.',
},
]}
image={{
src: '~/assets/images/qs.png',
alt: 'صورة الدعم السريع',
class: 'bg-transparent',
}}
>
<Fragment slot="content">
<h3 class="text-2xl font-bold tracking-tight dark:text-white sm:text-3xl mb-2">عميل مخصص</h3>
قم بتخصيص عميلك بعلامتك التجارية واجعله خاصًا بك حقًا.
</Fragment>
<Fragment slot="bg">
<div class="absolute inset-0 bg-blue-50 dark:bg-transparent"></div>
</Fragment>
</Content>
<Steps
isReversed
title="تثبيت الاستضافة الذاتية البسيط"
items={[
{
title: 'الخطوة 1: تثبيت دوكر',
description: '<code class="text-gray-600 dark:text-gray-500">bash <(wget -qO- https://get.docker.com)</code>',
icon: 'tabler:package',
},
{
title: 'الخطوة 2: تنزيل compose.yml',
description: `<code class="text-gray-600 dark:text-gray-500">wget rustdesk.com/oss.yml -O compose.yml</code>
<p class="text-center text-sm">أو</p>
<code class="text-gray-600 dark:text-gray-500">wget rustdesk.com/pro.yml -O compose.yml</code>`,
icon: 'tabler:download',
},
{
title: 'الخطوة 3: التركيب',
description: '<code class="text-gray-600 dark:text-gray-500">docker compose up -d</code>',
icon: 'tabler:hammer',
},
{
title: 'جاهز!',
icon: 'tabler:check',
},
]}
image={{
src: '~/assets/images/steps.jpg',
alt: 'صورة الخطوات',
}}
>
<Fragment slot="bg">
<div class="absolute inset-0 bg-blue-50 dark:bg-transparent"></div>
</Fragment>
</Steps>
<Stats
tagline="السيناريوهات"
title="من يستخدم الاستضافة الذاتية؟"
subtitle="البيانات أدناه مأخوذة من استطلاعنا عبر الإنترنت الذي شمل أكثر من 1000 مستخدم للاستضافة الذاتية."
stats={[
{ title: 'دعم تكنولوجيا المعلومات', amount: '37%' },
{ title: 'إدارة تكنولوجيا المعلومات', amount: '25%' },
{ title: 'العمل عن بُعد', amount: '29%' },
{ title: 'الصناعة وغيرها', amount: '9%' },
]}
/>
<BlogLatestPosts title="اكتشف المزيد من المحتوى في مدونتنا" />
<Stats
tagline="مفتوح المصدر"
title="تم بناؤه علنًا مع مجتمع نابض بالحياة"
subtitle="انضم إلى حل مدفوع بالمجتمع تم تنزيله ملايين المرات ويستخدمه آلاف المنظمات."
stats={[
{ title: 'تنزيلات العميل', amount: '+10 مليون' },
{ title: 'تنزيلات دوكر', amount: '+1 مليون' },
{ title: 'الأجهزة النشطة', amount: '+3 مليون' },
{ title: 'النجوم', amount: '+74 ألف' },
{ title: 'التفرعات', amount: '+9 آلاف' },
{ title: 'أعضاء المجتمع', amount: '+22 ألف' },
{ title: 'اللغات', amount: '45' },
]}
/>
<Hero
actions={[
{
text: 'جيت هب',
href: 'https://github.com/rustdesk/rustdesk/discussions',
target: '_blank',
icon: 'tabler:message-circle',
},
{
text: 'ديسكورد',
href: 'https://discord.gg/nDceKgxnkV',
target: '_blank',
icon: 'tabler:message-circle',
},
{
text: 'ريديت',
href: 'https://www.reddit.com/r/rustdesk/',
target: '_blank',
icon: 'tabler:message-circle',
},
]}
>
<Fragment slot="title">انضم إلى المجتمع</Fragment>
<Fragment slot="subtitle">اكتشف ما يقوله مجتمعنا عن تجربتهم مع رست ديسك.</Fragment>
</Hero>
<CallToAction
actions={[
{
variant: 'primary',
text: 'تحميل',
href: 'https://rustdesk.com/download',
target: '_blank',
icon: 'tabler:download',
},
{ text: 'الاستضافة الذاتية', href: 'https://rustdesk.com/docs/en/self-host/', target: '_blank', icon: 'tabler:book' },
]}
>
<Fragment slot="title">جرب رست ديسك بنفسك</Fragment>
</CallToAction>
</Layout>

View File

@ -0,0 +1,449 @@
---
import Layout from '~/layouts/PageLayout.astro';
import Note from '~/components/widgets/Note.astro';
import Prices from '~/components/widgets/Pricing.astro';
import FAQs from '~/components/widgets/FAQs.astro';
import Steps from '~/components/widgets/Steps.astro';
import CallToAction from '~/components/widgets/CallToAction.astro';
const metadata = {
title: 'التسعير',
};
---
<script>
import Swal from 'sweetalert2';
import 'sweetalert2/dist/sweetalert2.min.css';
window['gotoBuy'] = function (redirectUrl) {
Swal.fire({
title: 'يرجى التأكيد',
html: `<p style="text-align:right">هل تريد المتابعة إلى صفحة الشراء؟ <br><br>يرجى ملاحظة أن ما تشتريه <b style="font-size: 2em">ليس</b> اشتراكًا في <span style="text-decoration:line-through">خدمة البرمجيات كخدمة (SaaS)</span>. <br><br>بدلاً من ذلك، إنه ترخيص لحل <b style="font-size: 2em">استضافة ذاتية</b>، والذي يتطلب منك نشره على خادمك الخاص (خادم سحابي، مثل AWS EC2 أو Azure VM أو Vultr VPS إلخ، أو خادمك المحلي). <br><br>يرجى <b style="font-size: 2em">عدم</b> الشراء إذا كنت لا تعرف ما هي الاستضافة الذاتية`,
icon: 'question',
showCancelButton: true,
confirmButtonText: 'نعم',
cancelButtonText: 'لا',
}).then((result) => {
if (result.isConfirmed) {
Swal.fire({
title: 'يرجى التأكيد',
html: `يرجى ملاحظة أننا <span class="text-3xl font-bold">لا</span> نقدم <span class="text-3xl font-bold">استردادًا للأموال</span>. نوصي بشدة <span class="underline font-bold">باختبار خطتنا المجانية للاستضافة الذاتية</span> قبل التفكير في شراء خطتنا الاحترافية. هل ما زلت مهتمًا بالمتابعة؟`,
showCancelButton: true,
confirmButtonText: 'نعم',
cancelButtonText: 'لا',
}).then((result) => {
if (result.isConfirmed) {
window.open(redirectUrl, '_blank');
}
});
}
});
};
</script>
<Layout metadata={metadata} i18n>
<Note
title="ملاحظة"
subtitle='هذا التسعير هو لحل <span class="text-xl text-blue-500">الاستضافة الذاتية</span>، وهو <span class="text-3xl font-extrabold">ليس</span> اشتراكًا في <span class="line-through text-xl text-blue-500">خدمة البرمجيات كخدمة</span>.'
/>
<Prices
title='تسعير حلول <span class="text-5xl text-blue-500">الاستضافة الذاتية</span> لدينا'
subtitle="ادفع فقط مقابل ما تحتاجه"
prices={[
{
title: 'مجاني',
subtitle: 'خطة الاستضافة الذاتية المجانية',
price: '0 <span class="text-sm">/ شهر</span>',
period: 'مفتوح المصدر ومجاني',
items: [
{
description: 'الحالة عبر الإنترنت',
},
{
description: 'دعم المجتمع',
},
],
callToAction: {
target: '_blank',
text: 'ابدأ الآن',
href: 'https://rustdesk.com/docs/en/self-host/rustdesk-server-oss/',
},
},
{
title: 'فردي',
subtitle: 'خطة الاستضافة الذاتية <span class="font-bold">الاحترافية</span> للأفراد',
price: '9.90 <span class="text-sm">/ شهر</span>',
period: 'تُدفع سنويًا',
items: [
{
description:
'<a class="underline" target="_blank" href="https://github.com/rustdesk/rustdesk/wiki/FAQ#what-are-managed-devices--licensed-users--concurrent-connections-in-pro">مستخدم مرخص واحد</a>',
},
{
description:
'<a class="underline" target="_blank" href="https://github.com/rustdesk/rustdesk/wiki/FAQ#what-are-managed-devices--licensed-users--concurrent-connections-in-pro">20 جهاز مُدار</a>',
},
{
description:
'<a class="underline text-blue-500 font-bold" target="_blank" href="https://github.com/rustdesk/rustdesk/wiki/FAQ#what-are-managed-devices--licensed-users--concurrent-connections-in-pro">اتصالات متزامنة غير محدودة</a>',
},
{
description:
'<a class="underline" target="_blank" href="https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/2fa/">المصادقة الثنائية</a>',
},
{
description:
'<a class="underline" target="_blank" href="https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/console/">لوحة تحكم الويب</a>',
},
{
description: 'دفتر العناوين',
},
{
description: 'سجل التدقيق',
},
{
description: 'تغيير المعرف',
},
{
description:
'<a class="underline" target="_blank" href="https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/permissions/">التحكم في الوصول</a>',
},
{
description:
'<a class="underline" target="_blank" href="https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/strategy/">إعدادات مركزية</a>',
},
{
description:
'<a class="underline" target="_blank" href="https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/relay/">خوادم توصيل موزعة</a>',
},
],
callToAction: {
text: 'اشترِ الآن',
onclick: 'gotoBuy("https://rustdesk.com/api/lic/stripe/checkout?type=Individual")',
variant: 'primary',
},
},
{
title: 'أساسي',
subtitle: 'خطة الاستضافة الذاتية <span class="font-bold">الاحترافية</span> الأساسية',
price: '19.90 <span class="text-sm">/ شهر</span>',
period: 'تُدفع سنويًا',
items: [
{
description: '<span class="font-bold">كل ما في الخطة الفردية</span>',
icon: 'tabler:checks',
},
{
description:
'<a class="underline" target="_blank" href="https://github.com/rustdesk/rustdesk/wiki/FAQ#what-are-managed-devices--licensed-users--concurrent-connections-in-pro">10 مستخدمين مرخصين</a>',
},
{
description:
'<a class="underline" target="_blank" href="https://github.com/rustdesk/rustdesk/wiki/FAQ#what-are-managed-devices--licensed-users--concurrent-connections-in-pro">100 جهاز مُدار</a>',
},
{
description:
'<a class="underline" target="_blank" href="https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/oidc/">OIDC (تسجيل دخول موحد)</a>',
},
{
description:
'<a class="underline" target="_blank" href="https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/ldap/">تكامل LDAP</a>',
},
{
description:
'<a class="underline" target="_blank" href="https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/permissions/#cross-group-settings">الوصول عبر المجموعات</a>',
},
{
description:
'<a class="underline text-blue-500 font-bold" target="_blank" href="https://rustdesk.com/docs/en/self-host/client-configuration/#1-custom-client-generator-pro-only">مولد العملاء المخصص</a>',
},
],
callToAction: {
text: 'اشترِ الآن',
onclick: 'gotoBuy("https://rustdesk.com/api/lic/stripe/checkout?type=Basic")',
},
hasRibbon: true,
ribbonTitle: 'الأكثر شعبية',
},
{
title: 'مخصص',
subtitle: 'خطة <span class="font-bold">احترافية</span> مخصصة',
price: '<span id="cprice">19.90</span> <span class="text-sm">/ شهر</span>',
period: 'تُدفع سنويًا',
items: [
{
description: '<span class="font-bold">كل ما في الخطة الأساسية</span>',
icon: 'tabler:checks',
},
{
description: '1 دولار لكل مستخدم إضافي',
},
{
description: '0.1 دولار لكل جهاز إضافي',
},
],
content: `
<form class="flex flex-col space-y-3 mx-3 min-w-[200px]">
<label for="users" class="text-right font-bold">عدد المستخدمين المرخصين:</label>
<input class="bg-white text-black rounded-md border border-gray-300 py-1 px-2 w-24 h-10" type="number" id="users" name="users" value="10" min="10" max="500" step="10">
<input type="range" id="usersSlider" class="slider" name="usersRange" value="10" min="10" max="500" step="10">
<label for="devices" class="text-right font-bold">عدد الأجهزة المُدارة:</label>
<input class="bg-white text-black rounded-md border border-gray-300 py-1 px-2 w-24 h-10" type="number" id="devices" name="devices" value="100" min="100" max="5000" step="100">
<input type="range" id="devicesSlider" class="slider" name="devicesRange" value="100" min="100" max="5000" step="100">
</form>
<br>
<script>
var users = 10;
var devices = 100;
function submit() {
redirectUrl = "https://rustdesk.com/api/lic/stripe/checkout?type=Customized&users=" + users + "&devices=" + devices;
gotoBuy(redirectUrl);
}
function calculatePrice() {
users = parseInt(document.getElementById("users").value);
devices = parseInt(document.getElementById("devices").value);
if (!users || users < 10) users = 10;
if (devices < 100) devices = 100;
var price = 19.9 + (users - 10) + (devices - 100) * 0.1;
document.getElementById("cprice").innerText = price.toFixed(price >= 100 ? 1 : 2);
}
document.getElementById("users").oninput = function() {
document.getElementById("usersSlider").value = this.value;
calculatePrice();
}
document.getElementById("devices").oninput = function() {
document.getElementById("devicesSlider").value = this.value;
calculatePrice();
}
document.getElementById("usersSlider").oninput = function() {
document.getElementById("users").value = this.value;
calculatePrice();
}
document.getElementById("devicesSlider").oninput = function() {
document.getElementById("devices").value = this.value;
calculatePrice();
}
</script>
`,
callToAction: {
text: 'اشترِ الآن',
onclick: 'submit()',
variant: 'primary',
},
},
]}
/>
<Prices
prices={[
{
title: 'مخصص V2',
subtitle: 'خطة <span class="font-bold">احترافية</span> مخصصة مع اتصالات متزامنة محدودة',
price: '<span id="cprice2">19.90</span> <span class="text-sm">/ شهر</span>',
period: 'تُدفع سنويًا',
items: [
{
description: `<span class="font-bold">كل ما في خطة الاستضافة الذاتية الأساسية <span class="underline font-normal">ولكن مع اتصالات متزامنة محدودة، لن يتم تعطيل الأجهزة المُدارة الزائدة</span></span>`,
icon: 'tabler:checks',
},
{
description: 'جلسات غير محدودة متزامنة (في علامات تبويب أو نوافذ منفصلة) لكل اتصال متزامن',
},
{
description: '1 دولار لكل مستخدم إضافي',
},
{
description: '0.1 دولار لكل جهاز إضافي',
},
{
description: '20 دولارًا لكل اتصال متزامن إضافي',
},
],
id: 'custom2',
content: `
<form class="flex flex-col space-y-3 mx-3">
<label for="users2" class="text-right font-bold">عدد المستخدمين المرخصين:</label>
<input class="bg-white text-black rounded-md border border-gray-300 py-1 px-2 w-24 h-10" type="number" id="users2" name="users2" value="10" min="10" max="500" step="10">
<input type="range" id="usersSlider2" class="slider" name="usersRange2" value="10" min="10" max="500" step="10">
<label for="devices2" class="text-right font-bold">عدد الأجهزة المُدارة:</label>
<input class="bg-white text-black rounded-md border border-gray-300 py-1 px-2 w-24 h-10" type="number" id="devices2" name="devices2" value="100" min="100" max="5000" step="100">
<input type="range" id="devicesSlider2" class="slider" name="devicesRange2" value="100" min="100" max="5000" step="100">
<label for="conns" class="text-right font-bold">عدد الاتصالات المتزامنة:</label>
<input class="bg-white text-black rounded-md border border-gray-300 py-1 px-2 w-24 h-10" type="number" id="conns" name="conns" value="1" min="1" max="50" step="1">
<input type="range" id="connsSlider" class="slider" name="connsRange" value="1" min="1" max="50" step="1">
</form>
<br>
<script>
var users2 = 10;
var devices2 = 100;
var conns = 1;
function submit2() {
redirectUrl = "https://rustdesk.com/api/lic/stripe/checkout?type=Customized&users=" + users2 + "&devices=" + devices2 + "&conns=" + conns;
gotoBuy(redirectUrl);
}
function calculatePrice2() {
users2 = parseInt(document.getElementById("users2").value);
devices2 = parseInt(document.getElementById("devices2").value);
conns = parseInt(document.getElementById("conns").value);
if (!users2 || users2 < 10) users2 = 10;
if (devices2 < 100) devices2 = 100;
if (conns < 1) conns = 1;
var price = 19.9 + (users2 - 10) + (devices2 - 100) * 0.1 + (conns - 1) * 20;
document.getElementById("cprice2").innerText = price.toFixed(price >= 100 ? 1 : 2);
}
if (window.location.href.indexOf("custom2") > 0) {
setTimeout(function() { window.location = "#custom2"; }, 150);
} else {
setTimeout(function() { document.getElementById("custom2").parentElement.parentElement.parentElement.style.display = 'none'; }, 0);
}
document.getElementById("users2").oninput = function() {
document.getElementById("usersSlider2").value = this.value;
calculatePrice2();
}
document.getElementById("devices2").oninput = function() {
document.getElementById("devicesSlider2").value = this.value;
calculatePrice2();
}
document.getElementById("conns").oninput = function() {
document.getElementById("connsSlider").value = this.value;
calculatePrice2();
}
document.getElementById("usersSlider2").oninput = function() {
document.getElementById("users2").value = this.value;
calculatePrice2();
}
document.getElementById("devicesSlider2").oninput = function() {
document.getElementById("devices2").value = this.value;
calculatePrice2();
}
document.getElementById("connsSlider").oninput = function() {
document.getElementById("conns").value = this.value;
calculatePrice2();
}
</script>
`,
callToAction: {
text: 'اشترِ الآن',
onclick: 'submit2()',
variant: 'primary',
},
},
]}
/>
<CallToAction
actions={[
{
text: 'sales@rustdesk.com',
href: 'mailto:sales@rustdesk.com',
target: '_blank',
icon: 'tabler:mail',
},
]}
>
<Fragment slot="title">اتصل بنا للحصول على خطط أكبر واستفسارات</Fragment>
</CallToAction>
<Steps
title="رحلة موجهة من الخطط إلى الإنتاج"
tagline="عملية مبسطة"
isReversed={true}
items={[
{
title: 'تثبيت RustDesk Server Pro',
icon: 'tabler:number-1',
description:
'<code>bash <(wget -qO- https://get.docker.com)<br>wget rustdesk.com/pro.yml -O compose.yml<br>docker compose up -d</code>',
},
{
title: 'استكشف الخطط واختر خطة',
icon: 'tabler:number-2',
},
{
title: 'أدخل البريد الإلكتروني وتفاصيل الدفع',
icon: 'tabler:number-3',
},
{
title: 'احصل على مفتاح الترخيص عبر البريد الإلكتروني الذي أدخلته',
icon: 'tabler:number-4',
},
{
title: 'أدخل مفتاح الترخيص في لوحة التحكم على الويب لـ RustDesk Server Pro',
icon: 'tabler:number-5',
},
{
title: 'جاهز!',
icon: 'tabler:check',
description:
'للحصول على تعليمات مفصلة، يرجى الرجوع إلى <a class="underline" target="_blank" href="https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/license/">وثائقنا</a>.',
},
]}
image={{
src: '~/assets/images/steps.jpg',
alt: 'صورة الخطوات',
}}
/>
<FAQs
title="الأسئلة الشائعة حول التسعير"
subtitle="اختيار الخطة المناسبة أمر مهم، ونحن هنا للإجابة على أسئلتك. إذا كانت لديك استفسارات حول خيارات التسعير لدينا، فأنت في المكان الصحيح."
columns={1}
items={[
{
title: 'هل تأتي الخطط مع دعم العملاء؟',
description:
'بالتأكيد، جميع الخطط المدفوعة تتضمن الوصول إلى دعم العملاء المخصص لدينا لمساعدتك في أي استفسارات أو مخاوف.',
},
{
title: 'هل هناك ترخيص تجريبي؟',
description: 'يرجى <a class="underline" href="mailto:sales@rustdesk.com">الاتصال بنا</a>',
},
{
title: 'كيف يمكنني ترقية خطتي؟',
description:
'بالتأكيد! يمكنك بسهولة <a class="underline" target="_blank" href="https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/license/#renewupgrade-license">ترقية خطتك</a>، في أي وقت، للعثور على الخطة التي تناسب احتياجاتك المتطورة بشكل أفضل.',
},
{
title: 'ما هي طرق الدفع التي تقبلونها؟',
description:
'نحن نقبل بطاقات الائتمان الرئيسية وطرق الدفع عبر الإنترنت لضمان عملية معاملة مريحة وآمنة. إذا كنت ترغب في الدفع عن طريق التحويل المصرفي، يرجى <a class="underline" href="mailto:sales@rustdesk.com">الاتصال بنا</a>؛ سيتم فرض رسوم إضافية لمعالجة البنك، وسنرسل لك مفتاح الترخيص بمجرد استلامنا للدفع الفعلي في البنك؛ يستغرق ذلك 3-5 أيام عمل.',
},
{
title: 'هل هناك أي رسوم خفية بخلاف التكلفة المعروضة؟',
description:
'لا، التكلفة تغطي جميع الميزات والخدمات المدرجة تحت كل خطة. لا توجد رسوم خفية أو تكاليف إضافية.',
},
{
title: 'هل لديكم دفع شهري؟',
description:
'لا، نحن نقدم فقط خطط دفع سنوية. نحن لا نجدد تلقائيًا؛ ستتلقى رسالة بريد إلكتروني لتذكيرك بتجديد ترخيصك قبل 14 يومًا من تاريخ انتهاء الصلاحية.',
},
{
title: 'هل لديكم خصم للمنظمات غير الربحية أو التعليمية؟',
description: 'لا، ليس لدينا ذلك بعد. نشجعك على استخدام الخطة المجانية.',
},
{
title: 'ما هي شروطكم؟',
description:
'يرجى التحقق من هذه <a class="underline" target="_blank" href="https://github.com/rustdesk/rustdesk-server-pro/blob/main/terms">الشروط</a>',
},
{
title:
'ماذا عن حالات الدعم العرضية؟ لدينا بعض الأجهزة التي تحتاج إلى دعم من حين لآخر دون الوصول غير المراقب.',
description:
'نحن نقدم هذا <a class="underline" target="_blank" href="https://github.com/rustdesk/rustdesk-server-pro/discussions/182#discussioncomment-10083053">الحل</a>',
},
]}
/>
</Layout>

View File

@ -0,0 +1,43 @@
---
import Layout from '~/layouts/PageLayout.astro';
import Features2 from '~/components/widgets/Features2.astro';
const metadata = {
title: 'الدعم',
};
---
<Layout metadata={metadata} i18n>
<Features2
title="نحن هنا للمساعدة!"
items={[
{
title: 'المشكلات',
description: 'هل وجدت خطأً؟ نود أن نسمع عنه في مشكلات GitHub الخاصة بنا.',
},
{
title: 'دعم المجتمع',
description: 'انضم إلى خادم Discord الخاص بنا للبحث عن المساعدة وأفضل الممارسات.',
},
{
title: 'تذكرة للمستخدم المحترف',
description: 'راسلنا عبر البريد الإلكتروني إذا واجهت أي مشكلات أثناء استخدام RustDesk Server Pro.',
},
{
title: 'GitHub',
description: '<a target="_blank" href="https://github.com/rustdesk/rustdesk/issues">افتح مشكلة</a>',
icon: 'tabler:brand-github',
},
{
title: 'Discord',
description: '<a target="_blank" href="https://discord.com/invite/nDceKgxnkV">انضم إلى خادمنا</a>',
icon: 'tabler:brand-discord',
},
{
title: 'البريد الإلكتروني',
description: '<a href="mailto:support@rustdesk.com">support@rustdesk.com</a>',
icon: 'tabler:mail',
},
]}
/>
</Layout>

View File

@ -0,0 +1,64 @@
---
import Features2 from '~/components/widgets/Features2.astro';
import Hero from '~/components/widgets/Hero.astro';
import Steps2 from '~/components/widgets/Steps2.astro';
import Layout from '~/layouts/PageLayout.astro';
const metadata = {
title: 'معلومات عنا',
};
---
<Layout metadata={metadata} i18n>
<!-- Hero Widget ******************* -->
<Hero tagline="معلومات عنا">
<Fragment slot="title"> لماذا نبني هذا؟ </Fragment>
<Fragment slot="subtitle">
<p class="text-left">
في خضم جائحة كوفيد-19 في منتصف عام 2020، وجد المطور الرئيسي / المؤسس نفسه مضطراً للحصول على ترخيص تجاري لـ TeamViewer لتسهيل العمل عن بُعد في سنغافورة. ومع ذلك، فقد صُدم من التكلفة الباهظة. بعد ليلة بلا نوم، بدأ مهمة لإنشاء حل بديل. وهكذا، تم تصور RustDesk - برنامج سطح مكتب عن بُعد مفتوح المصدر ومتاح مجانًا تم تطويره بعناية من خلال العديد من الليالي بلا نوم. وقد أسفر هذا العمل من التفاني والعزيمة عن إصدار RustDesk على GitHub في عام 2021، مما سمح باستخدامه من قبل الأفراد في جميع أنحاء العالم.
</p>
</Fragment>
</Hero>
<!-- Steps2 Widget ****************** -->
<Steps2
title="الفريق الأساسي"
items={[
{
title: 'جوزيف جاكس<br><small>الرئيس التنفيذي</small>',
description:
"أسس جوزيف جاكس OSS Capital في عام 2018. إنها أول وأكبر شركة استثمارية في العالم مخصصة حصريًا للشركات الناشئة في مجال البرمجيات مفتوحة المصدر التجارية على مستوى عالمي. سابقًا، ساعد في بدء وتشغيل أول شركة ناشئة في Kubernetes (Kismatic) وأيضًا أسس وأدار KubeCon (مؤتمر مجتمع Kubernetes) قبل التبرع بها إلى مؤسسة Linux في عام 2016 عندما كانت CNCF (مؤسسة الحوسبة السحابية الأصلية) تتشكل.",
icon: 'tabler:user',
},
{
title: 'هوا بينغ تشو<br><small>المدير التقني</small>',
description:
'قبل تأسيس وتطوير RustDesk، جمع هوا بينغ تشو أكثر من 12 عامًا من الخبرة في مجال تكنولوجيا المعلومات المالية أثناء عمله في سنغافورة. يجلب ثروة من الخبرة الحياتية الحقيقية لكل من المشروع وإدارة الأعمال.',
icon: 'tabler:user',
},
{
title: 'دانيال لام<br><small>مساعد المجتمع</small>',
description:
"مع مسيرة مهنية رائعة تمتد لربع قرن في صناعة تكنولوجيا المعلومات، شارك دانيال لام بنشاط في العديد من المشاريع مفتوحة المصدر، متوليًا أدوارًا ومسؤوليات متنوعة. بالإضافة إلى ذلك، حقق تأسيس شركة خدمات تكنولوجيا المعلومات مقرها في اسكتلندا، تلبي احتياجات العملاء في جميع أنحاء العالم. تشمل خبرة دانيال الواسعة الدعم والمبيعات والمشاركة المجتمعية، مما يجلب كمية كبيرة من المعرفة والخبرة إلى المشروع.",
icon: 'tabler:user',
},
]}
/>
<!-- Features2 Widget ************** -->
<Features2
title="مواقعنا"
tagline="ابحث عنا"
columns={1}
items={[
{
title: 'سنغافورة',
description: '18A، كانبيرا درايف، ييشون',
},
]}
/>
</Layout>

239
v3/src/pages/ko/index.astro Normal file
View File

@ -0,0 +1,239 @@
---
import Layout from '~/layouts/PageLayout.astro';
import Hero from '~/components/widgets/Hero.astro';
import Steps from '~/components/widgets/Steps.astro';
import Content from '~/components/widgets/Content.astro';
import BlogLatestPosts from '~/components/widgets/BlogLatestPosts.astro';
import Stats from '~/components/widgets/Stats.astro';
import CallToAction from '~/components/widgets/CallToAction.astro';
import Carousel from '~/components/widgets/Carousel.jsx';
import Note from '~/components/widgets/Note.astro';
const metadata = {
title: 'RustDesk: 오픈 소스 원격 데스크탑 및 자체 호스팅 서버 솔루션',
ignoreTitleTemplate: true,
};
---
<Layout metadata={metadata} i18n>
<Note
title="알림"
subtitle='<span class="text-2xl text-font-bold">rustdesk.com</span>은 우리의 유일한 공식 도메인입니다. 다른 도메인에서 RustDesk를 다운로드하지 마십시오.'
/>
<Hero
actions={[
{
variant: 'primary',
text: '다운로드',
href: 'https://rustdesk.com/download',
target: '_blank',
icon: 'tabler:download',
},
{ text: '자체 호스팅', href: 'https://rustdesk.com/docs/en/self-host/', target: '_blank', icon: 'tabler:book' },
]}
>
<Fragment slot="title"> 빠른 오픈 소스 원격 액세스 및 지원 소프트웨어 </Fragment>
<Fragment slot="subtitle">
TeamViewer, AnyDesk 및 Splashtop에서 RustDesk로 전환하여 안전하고 신뢰할 수 있는 원격 데스크탑 경험을 제공하며, 자체 호스팅 서버를 사용하세요.
</Fragment>
<Fragment slot="content">
<br /><br />
<Carousel
client:load
list={[
{ src: '/remote.jpg', className: 'rounded-[15px] border border-gray-700' },
{ src: '/main.png', className: 'rounded-[15px] border border-gray-700' },
{ src: '/console.png', className: 'rounded-[15px] border border-gray-700' },
{ src: '/custom.png', className: 'rounded-[15px] border border-gray-700' },
]}
/>
</Fragment>
</Hero>
<Content
isReversed
tagline="자체 호스팅 내부"
title="자체 호스팅 서버로 원격 액세스를 강화하세요"
items={[
{
title: '데이터 주권',
description: '규제 준수가 쉬워집니다: 자체 호스팅 RustDesk는 데이터 주권을 보장합니다.',
},
{
title: '강화된 보안',
description: '보안을 강화하세요: 온프레미스 배포는 데이터를 제어할 수 있도록 합니다.',
},
{
title: '성능 및 신뢰성',
description: '보장된 가동 시간: 온프레미스 배포는 최적의 성능과 최소한의 다운타임을 보장합니다.',
},
{
title: '유연성 및 사용자 정의',
description: 'RustDesk 온프레미스를 귀하의 고유한 요구 사항에 맞게 조정하세요.',
},
]}
image={{
src: '~/assets/images/hosting.jpg',
alt: '호스팅 이미지',
}}
>
<Fragment slot="content">
<h3 class="text-2xl font-bold tracking-tight dark:text-white sm:text-3xl mb-2">왜 자체 호스팅인가요?</h3>
SaaS 플랫폼의 불안정한 성능, 투명성 부족 및 불확실한 데이터 보안 위험에 불만이 있으신가요?
</Fragment>
<Fragment slot="bg">
<div class="absolute inset-0 bg-blue-50 dark:bg-transparent"></div>
</Fragment>
</Content>
<Content
isAfterContent
items={[
{
title: '당신의 브랜드, 당신의 방식',
description: `RustDesk 클라이언트를 귀하의 이름, 아이콘, 로고로 개인화하세요.`,
},
{
title: '쉬운 배포',
description: `내장된 네트워크 구성 및 서버 설정으로 RustDesk를 온프레미스에서 쉽게 배포할 수 있습니다.`,
},
{
title: '고급 구성 옵션',
description: '90개 이상의 옵션을 구성하여 귀하의 특정 요구 사항을 충족할 수 있습니다.',
},
{
title: '다중 플랫폼 지원',
description: 'Windows, macOS, Linux, Android.',
},
{
title: '웹 클라이언트',
description: '귀하의 도메인 이름으로 서버에서 웹 클라이언트를 호스팅하여 원격 액세스를 더욱 쉽게 만드세요.',
},
]}
image={{
src: '~/assets/images/qs.png',
alt: 'QuickSupport 이미지',
class: 'bg-transparent',
}}
>
<Fragment slot="content">
<h3 class="text-2xl font-bold tracking-tight dark:text-white sm:text-3xl mb-2">맞춤 클라이언트</h3>
귀하의 브랜드로 클라이언트를 사용자 정의하여 진정으로 귀하의 것으로 만드세요.
</Fragment>
<Fragment slot="bg">
<div class="absolute inset-0 bg-blue-50 dark:bg-transparent"></div>
</Fragment>
</Content>
<Steps
isReversed
title="간단한 자체 호스팅 설치"
items={[
{
title: '1단계: Docker 설치',
description: '<code class="text-gray-600 dark:text-gray-500">bash <(wget -qO- https://get.docker.com)</code>',
icon: 'tabler:package',
},
{
title: '2단계: compose.yml 다운로드',
description: `<code class="text-gray-600 dark:text-gray-500">wget rustdesk.com/oss.yml -O compose.yml</code>
<p class="text-center text-sm">또는</p>
<code class="text-gray-600 dark:text-gray-500">wget rustdesk.com/pro.yml -O compose.yml</code>`,
icon: 'tabler:download',
},
{
title: `3단계: Compose`,
description: '<code class="text-gray-600 dark:text-gray-500">docker compose up -d</code>',
icon: 'tabler:hammer',
},
{
title: '준비 완료!',
icon: 'tabler:check',
},
]}
image={{
src: '~/assets/images/steps.jpg',
alt: '단계 이미지',
}}
>
<Fragment slot="bg">
<div class="absolute inset-0 bg-blue-50 dark:bg-transparent"></div>
</Fragment>
</Steps>
<Stats
tagline="시나리오"
title="누가 자체 호스팅을 사용하고 있나요?"
subtitle="아래 데이터는 1,000명 이상의 자체 호스팅 사용자에 대한 온라인 설문조사에서 수집되었습니다."
stats={[
{ title: 'IT 지원', amount: '37%' },
{ title: 'IT 관리', amount: '25%' },
{ title: '원격 근무', amount: '29%' },
{ title: '산업 및 기타', amount: '9%' },
]}
/>
<BlogLatestPosts title="블로그에서 더 많은 콘텐츠를 확인하세요" />
<Stats
tagline="오픈 소스"
title="공개적으로 구축된 활기찬 커뮤니티"
subtitle="수백만 번의 다운로드와 수천 개의 조직에서 사용되는 커뮤니티 주도 솔루션에 참여하세요."
stats={[
{ title: '클라이언트 다운로드', amount: '10M+' },
{ title: 'Docker 다운로드', amount: '1M+' },
{ title: '활성 장치', amount: '3M+' },
{ title: '스타', amount: '74K+' },
{ title: '포크', amount: '9K+' },
{ title: '커뮤니티 회원', amount: '22K+' },
{ title: '언어', amount: '45' },
]}
/>
<Hero
actions={[
{
text: 'GitHub',
href: 'https://github.com/rustdesk/rustdesk/discussions',
target: '_blank',
icon: 'tabler:message-circle',
},
{
text: 'Discord',
href: 'https://discord.gg/nDceKgxnkV',
target: '_blank',
icon: 'tabler:message-circle',
},
{
text: 'Reddit',
href: 'https://www.reddit.com/r/rustdesk/',
target: '_blank',
icon: 'tabler:message-circle',
},
]}
>
<Fragment slot="title"> 커뮤니티에 참여하세요 </Fragment>
<Fragment slot="subtitle"> 커뮤니티가 RustDesk 경험에 대해 이야기하는 내용을 확인하세요. </Fragment>
</Hero>
<CallToAction
actions={[
{
variant: 'primary',
text: '다운로드',
href: 'https://rustdesk.com/download',
target: '_blank',
icon: 'tabler:download',
},
{ text: '자체 호스팅', href: 'https://rustdesk.com/docs/en/self-host/', target: '_blank', icon: 'tabler:book' },
]}
>
<Fragment slot="title"> RustDesk를 직접 경험해 보세요 </Fragment>
</CallToAction>
</Layout>

View File

@ -0,0 +1,449 @@
---
import Layout from '~/layouts/PageLayout.astro';
import Note from '~/components/widgets/Note.astro';
import Prices from '~/components/widgets/Pricing.astro';
import FAQs from '~/components/widgets/FAQs.astro';
import Steps from '~/components/widgets/Steps.astro';
import CallToAction from '~/components/widgets/CallToAction.astro';
const metadata = {
title: '가격',
};
---
<script>
import Swal from 'sweetalert2';
import 'sweetalert2/dist/sweetalert2.min.css';
window['gotoBuy'] = function (redirectUrl) {
Swal.fire({
title: '확인해 주세요',
html: `<p style="text-align:left">구매 페이지로 진행하시겠습니까? <br><br>구매하시는 것은 <b style="font-size: 2em">SaaS(서비스형 소프트웨어)</b> 구독이 아닌 <b style="font-size: 2em">자체 호스팅</b> 솔루션의 라이센스입니다. 이 솔루션은 귀하의 서버(클라우드 서버, 예: AWS EC2, Azure VM, Vultr VPS 등)에서 배포해야 합니다. <br><br>자체 호스팅이 무엇인지 모른다면 <b style="font-size: 2em">구매하지 마세요</b>`,
icon: 'question',
showCancelButton: true,
confirmButtonText: '예',
cancelButtonText: '아니오',
}).then((result) => {
if (result.isConfirmed) {
Swal.fire({
title: '확인해 주세요',
html: `환불을 <span class="text-3xl font-bold">제공하지 않습니다</span>. 구매하기 전에 <span class="underline font-bold">무료 자체 호스팅 계획을 테스트</span>하는 것을 강력히 권장합니다. 계속 진행하시겠습니까?`,
showCancelButton: true,
confirmButtonText: '예',
cancelButtonText: '아니오',
}).then((result) => {
if (result.isConfirmed) {
window.open(redirectUrl, '_blank');
}
});
}
});
};
</script>
<Layout metadata={metadata} i18n>
<Note
title="알림"
subtitle='이 가격은 <span class="text-xl text-blue-500">자체 호스팅</span> 솔루션에 대한 것이며, <span class="text-3xl font-extrabold">SaaS</span> 구독이 아닙니다.'
/>
<Prices
title='우리의 <span class="text-5xl text-blue-500">자체 호스팅</span> 솔루션 가격'
subtitle="필요한 만큼만 지불하세요"
prices={[
{
title: '무료',
subtitle: '무료 자체 호스팅 계획',
price: '0 <span class="text-sm">/월</span>',
period: '오픈 소스 및 무료',
items: [
{
description: '온라인 상태',
},
{
description: '커뮤니티 지원',
},
],
callToAction: {
target: '_blank',
text: '시작하기',
href: 'https://rustdesk.com/docs/en/self-host/rustdesk-server-oss/',
},
},
{
title: '개인',
subtitle: '개인 자체 호스팅 <span class="font-bold">Pro</span> 계획',
price: '9.90 <span class="text-sm">/월</span>',
period: '연간 청구',
items: [
{
description:
'<a class="underline" target="_blank" href="https://github.com/rustdesk/rustdesk/wiki/FAQ#what-are-managed-devices--licensed-users--concurrent-connections-in-pro">1 라이센스 사용자</a>',
},
{
description:
'<a class="underline" target="_blank" href="https://github.com/rustdesk/rustdesk/wiki/FAQ#what-are-managed-devices--licensed-users--concurrent-connections-in-pro">20 관리 장치</a>',
},
{
description:
'<a class="underline text-blue-500 font-bold" target="_blank" href="https://github.com/rustdesk/rustdesk/wiki/FAQ#what-are-managed-devices--licensed-users--concurrent-connections-in-pro">무제한 동시 연결</a>',
},
{
description:
'<a class="underline" target="_blank" href="https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/2fa/">2FA</a>',
},
{
description:
'<a class="underline" target="_blank" href="https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/console/">웹 콘솔</a>',
},
{
description: '주소록',
},
{
description: '감사 로그',
},
{
description: '변경 ID',
},
{
description:
'<a class="underline" target="_blank" href="https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/permissions/">액세스 제어</a>',
},
{
description:
'<a class="underline" target="_blank" href="https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/strategy/">중앙 집중식 설정</a>',
},
{
description:
'<a class="underline" target="_blank" href="https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/relay/">분산 릴레이 서버</a>',
},
],
callToAction: {
text: '지금 구매',
onclick: 'gotoBuy("https://rustdesk.com/api/lic/stripe/checkout?type=Individual")',
variant: 'primary',
},
},
{
title: '기본',
subtitle: '기본 자체 호스팅 <span class="font-bold">Pro</span> 계획',
price: '19.90 <span class="text-sm">/월</span>',
period: '연간 청구',
items: [
{
description: '<span class="font-bold">개인 계획의 모든 것</span>',
icon: 'tabler:checks',
},
{
description:
'<a class="underline" target="_blank" href="https://github.com/rustdesk/rustdesk/wiki/FAQ#what-are-managed-devices--licensed-users--concurrent-connections-in-pro">10 라이센스 사용자</a>',
},
{
description:
'<a class="underline" target="_blank" href="https://github.com/rustdesk/rustdesk/wiki/FAQ#what-are-managed-devices--licensed-users--concurrent-connections-in-pro">100 관리 장치</a>',
},
{
description:
'<a class="underline" target="_blank" href="https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/oidc/">OIDC (SSO)</a>',
},
{
description:
'<a class="underline" target="_blank" href="https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/ldap/">LDAP 통합</a>',
},
{
description:
'<a class="underline" target="_blank" href="https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/permissions/#cross-group-settings">그룹 간 액세스</a>',
},
{
description:
'<a class="underline text-blue-500 font-bold" target="_blank" href="https://rustdesk.com/docs/en/self-host/client-configuration/#1-custom-client-generator-pro-only">맞춤 클라이언트 생성기</a>',
},
],
callToAction: {
text: '지금 구매',
onclick: 'gotoBuy("https://rustdesk.com/api/lic/stripe/checkout?type=Basic")',
},
hasRibbon: true,
ribbonTitle: '인기',
},
{
title: '맞춤형',
subtitle: '맞춤형 <span class="font-bold">Pro</span> 계획',
price: '<span id="cprice">19.90</span> <span class="text-sm">/월</span>',
period: '연간 청구',
items: [
{
description: '<span class="font-bold">기본 계획의 모든 것</span>',
icon: 'tabler:checks',
},
{
description: '$1 추가 사용자당',
},
{
description: '$0.1 추가 장치당',
},
],
content: `
<form class="flex flex-col space-y-3 mx-3 min-w-[200px]">
<label for="users" class="text-left font-bold">라이센스 사용자 수:</label>
<input class="bg-white text-black rounded-md border border-gray-300 py-1 px-2 w-24 h-10" type="number" id="users" name="users" value="10" min="10" max="500" step="10">
<input type="range" id="usersSlider" class="slider" name="usersRange" value="10" min="10" max="500" step="10">
<label for="devices" class="text-left font-bold">관리 장치 수:</label>
<input class="bg-white text-black rounded-md border border-gray-300 py-1 px-2 w-24 h-10" type="number" id="devices" name="devices" value="100" min="100" max="5000" step="100">
<input type="range" id="devicesSlider" class="slider" name="devicesRange" value="100" min="100" max="5000" step="100">
</form>
<br>
<script>
var users = 10;
var devices = 100;
function submit() {
redirectUrl = "https://rustdesk.com/api/lic/stripe/checkout?type=Customized&users=" + users + "&devices=" + devices;
gotoBuy(redirectUrl);
}
function calculatePrice() {
users = parseInt(document.getElementById("users").value);
devices = parseInt(document.getElementById("devices").value);
if (!users || users < 10) users = 10;
if (devices < 100) devices = 100;
var price = 19.9 + (users - 10) + (devices - 100) * 0.1;
document.getElementById("cprice").innerText = price.toFixed(price >= 100 ? 1 : 2);
}
document.getElementById("users").oninput = function() {
document.getElementById("usersSlider").value = this.value;
calculatePrice();
}
document.getElementById("devices").oninput = function() {
document.getElementById("devicesSlider").value = this.value;
calculatePrice();
}
document.getElementById("usersSlider").oninput = function() {
document.getElementById("users").value = this.value;
calculatePrice();
}
document.getElementById("devicesSlider").oninput = function() {
document.getElementById("devices").value = this.value;
calculatePrice();
}
</script>
`,
callToAction: {
text: '지금 구매',
onclick: 'submit()',
variant: 'primary',
},
},
]}
/>
<Prices
prices={[
{
title: '맞춤형 V2',
subtitle: '제한된 동시 연결이 있는 맞춤형 <span class="font-bold">Pro</span> 계획',
price: '<span id="cprice2">19.90</span> <span class="text-sm">/월</span>',
period: '연간 청구',
items: [
{
description: `<span class="font-bold">기본 자체 호스팅 계획의 모든 것 <span class="underline font-normal">단, 제한된 동시 연결이 있으며, 과도한 관리 장치는 비활성화되지 않습니다</span></span>`,
icon: 'tabler:checks',
},
{
description: '동시 연결당 무제한 동시 세션(탭 또는 별도의 창)',
},
{
description: '$1 추가 사용자당',
},
{
description: '$0.1 추가 장치당',
},
{
description: '$20 추가 동시 연결당',
},
],
id: 'custom2',
content: `
<form class="flex flex-col space-y-3 mx-3">
<label for="users2" class="text-left font-bold">라이센스 사용자 수:</label>
<input class="bg-white text-black rounded-md border border-gray-300 py-1 px-2 w-24 h-10" type="number" id="users2" name="users2" value="10" min="10" max="500" step="10">
<input class="range" id="usersSlider2" class="slider" name="usersRange2" value="10" min="10" max="500" step="10">
<label for="devices2" class="text-left font-bold">관리 장치 수:</label>
<input class="bg-white text-black rounded-md border border-gray-300 py-1 px-2 w-24 h-10" type="number" id="devices2" name="devices2" value="100" min="100" max="5000" step="100">
<input type="range" id="devicesSlider2" class="slider" name="devicesRange2" value="100" min="100" max="5000" step="100">
<label for="conns" class="text-left font-bold">동시 연결 수:</label>
<input class="bg-white text-black rounded-md border border-gray-300 py-1 px-2 w-24 h-10" type="number" id="conns" name="conns" value="1" min="1" max="50" step="1">
<input type="range" id="connsSlider" class="slider" name="connsRange" value="1" min="1" max="50" step="1">
</form>
<br>
<script>
var users2 = 10;
var devices2 = 100;
var conns = 1;
function submit2() {
redirectUrl = "https://rustdesk.com/api/lic/stripe/checkout?type=Customized&users=" + users2 + "&devices=" + devices2 + "&conns=" + conns;
gotoBuy(redirectUrl);
}
function calculatePrice2() {
users2 = parseInt(document.getElementById("users2").value);
devices2 = parseInt(document.getElementById("devices2").value);
conns = parseInt(document.getElementById("conns").value);
if (!users2 || users2 < 10) users2 = 10;
if (devices2 < 100) devices2 = 100;
if (conns < 1) conns = 1;
var price = 19.9 + (users2 - 10) + (devices2 - 100) * 0.1 + (conns - 1) * 20;
document.getElementById("cprice2").innerText = price.toFixed(price >= 100 ? 1 : 2);
}
if (window.location.href.indexOf("custom2") > 0) {
setTimeout(function() { window.location = "#custom2"; }, 150);
} else {
setTimeout(function() { document.getElementById("custom2").parentElement.parentElement.parentElement.style.display = 'none'; }, 0);
}
document.getElementById("users2").oninput = function() {
document.getElementById("usersSlider2").value = this.value;
calculatePrice2();
}
document.getElementById("devices2").oninput = function() {
document.getElementById("devicesSlider2").value = this.value;
calculatePrice2();
}
document.getElementById("conns").oninput = function() {
document.getElementById("connsSlider").value = this.value;
calculatePrice2();
}
document.getElementById("usersSlider2").oninput = function() {
document.getElementById("users2").value = this.value;
calculatePrice2();
}
document.getElementById("devicesSlider2").oninput = function() {
document.getElementById("devices2").value = this.value;
calculatePrice2();
}
document.getElementById("connsSlider").oninput = function() {
document.getElementById("conns").value = this.value;
calculatePrice2();
}
</script>
`,
callToAction: {
text: '지금 구매',
onclick: 'submit2()',
variant: 'primary',
},
},
]}
/>
<CallToAction
actions={[
{
text: 'sales@rustdesk.com',
href: 'mailto:sales@rustdesk.com',
target: '_blank',
icon: 'tabler:mail',
},
]}
>
<Fragment slot="title">대규모 계획 및 문의를 위해 저희에게 연락해 주세요</Fragment>
</CallToAction>
<Steps
title="계획에서 생산까지의 안내 여정"
tagline="간소화된 프로세스"
isReversed={true}
items={[
{
title: 'RustDesk Server Pro 설치',
icon: 'tabler:number-1',
description:
'<code>bash <(wget -qO- https://get.docker.com)<br>wget rustdesk.com/pro.yml -O compose.yml<br>docker compose up -d</code>',
},
{
title: '계획 탐색 및 선택',
icon: 'tabler:number-2',
},
{
title: '이메일 및 결제 정보 입력',
icon: 'tabler:number-3',
},
{
title: '입력한 이메일로 라이센스 키 수신',
icon: 'tabler:number-4',
},
{
title: 'RustDesk Server Pro의 웹 콘솔에 라이센스 키 입력',
icon: 'tabler:number-5',
},
{
title: '준비 완료!',
icon: 'tabler:check',
description:
'자세한 지침은 저희 <a class="underline" target="_blank" href="https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/license/">문서</a>를 참조해 주세요.',
},
]}
image={{
src: '~/assets/images/steps.jpg',
alt: '단계 이미지',
}}
/>
<FAQs
title="가격 FAQ"
subtitle="올바른 계획을 선택하는 것은 중요하며, 우리는 귀하의 질문에 답변하기 위해 여기 있습니다. 가격 옵션에 대한 질문이 있으시면, 올바른 장소에 계십니다."
columns={1}
items={[
{
title: '계획에 고객 지원이 포함되나요?',
description:
'물론입니다. 모든 유료 계획에는 귀하의 질문이나 우려 사항을 도와줄 전담 고객 지원이 포함됩니다.',
},
{
title: '시험 라이센스가 있나요?',
description: '자세한 내용은 <a class="underline" href="mailto:sales@rustdesk.com">저희에게 연락해 주세요</a>',
},
{
title: '계획을 어떻게 업그레이드하나요?',
description:
'물론입니다! 언제든지 <a class="underline" target="_blank" href="https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/license/#renewupgrade-license">계획을 업그레이드</a>하여 귀하의 요구에 가장 적합한 계획을 찾을 수 있습니다.',
},
{
title: '어떤 결제 방법을 받나요?',
description:
'주요 신용 카드 및 온라인 결제 방법을 수락하여 편리하고 안전한 거래 프로세스를 보장합니다. 은행 송금으로 결제하고 싶으시면 <a class="underline" href="mailto:sales@rustdesk.com">저희에게 연락해 주세요</a>; 추가 은행 처리 수수료가 부과되며, 오프라인 결제를 은행에서 수령한 후 라이센스 키를 보내드립니다. 이 과정은 3~5일이 소요됩니다.',
},
{
title: '표시된 비용 외에 숨겨진 수수료가 있나요?',
description:
'아니요, 비용은 각 계획에 나열된 모든 기능을 포함합니다. 숨겨진 수수료나 추가 요금은 없습니다.',
},
{
title: '월별 결제가 있나요?',
description:
'아니요, 연간 결제 계획만 제공합니다. 자동 갱신은 하지 않으며, 만료일 14일 전에 갱신 알림 이메일을 받게 됩니다.',
},
{
title: '비영리 또는 교육 기관에 대한 할인 혜택이 있나요?',
description: '아니요, 현재로서는 없습니다. 무료 계획을 사용하시기를 권장합니다.',
},
{
title: "약관은 무엇인가요?",
description:
'이 <a class="underline" target="_blank" href="https://github.com/rustdesk/rustdesk-server-pro/blob/main/terms">약관</a>을 확인해 주세요.',
},
{
title:
'가끔 지원이 필요한 장치가 있습니다. 무인 액세스 없이 지원이 가능한가요?',
description:
'이 <a class="underline" target="_blank" href="https://github.com/rustdesk/rustdesk-server-pro/discussions/182#discussioncomment-10083053">해결책</a>을 제공합니다.',
},
]}
/>
</Layout>

View File

@ -0,0 +1,43 @@
---
import Layout from '~/layouts/PageLayout.astro';
import Features2 from '~/components/widgets/Features2.astro';
const metadata = {
title: '지원',
};
---
<Layout metadata={metadata} i18n>
<Features2
title="우리는 도와드리기 위해 여기 있습니다!"
items={[
{
title: '문제',
description: `버그를 발견하셨나요? GitHub 이슈에서 알려주시면 감사하겠습니다.`,
},
{
title: '커뮤니티 지원',
description: '도움과 모범 사례를 찾아보려면 Discord 서버에 참여하세요.',
},
{
title: '프로 사용자 티켓',
description: 'RustDesk Server Pro 사용 중 문제가 발생하면 이메일로 문의하세요.',
},
{
title: 'GitHub',
description: '<a target="_blank" href="https://github.com/rustdesk/rustdesk/issues">이슈 열기</a>',
icon: 'tabler:brand-github',
},
{
title: 'Discord',
description: '<a target="_blank" href="https://discord.com/invite/nDceKgxnkV">서버에 참여하기</a>',
icon: 'tabler:brand-discord',
},
{
title: '이메일',
description: '<a href="mailto:support@rustdesk.com">support@rustdesk.com</a>',
icon: 'tabler:mail',
},
]}
/>
</Layout>

View File

@ -0,0 +1,64 @@
---
import Features2 from '~/components/widgets/Features2.astro';
import Hero from '~/components/widgets/Hero.astro';
import Steps2 from '~/components/widgets/Steps2.astro';
import Layout from '~/layouts/PageLayout.astro';
const metadata = {
title: '우리에 대해',
};
---
<Layout metadata={metadata} i18n>
<!-- Hero Widget ******************* -->
<Hero tagline="우리에 대해">
<Fragment slot="title"> 왜 우리는 이것을 만들고 있나요? </Fragment>
<Fragment slot="subtitle">
<p class="text-left">
2020년 중반 Covid-19 팬데믹 속에서, 현재의 리드 개발자이자 창립자는 싱가포르에서 원격 근무를 촉진하기 위해 TeamViewer의 상업 라이센스를 구매해야겠다는 강한 필요성을 느꼈습니다. 그러나 그들은 그 비싼 비용에 놀랐습니다. 불면의 밤을 보낸 후, 그들은 대안 솔루션을 만들기로 결심했습니다. 그래서 RustDesk가 탄생했습니다 — 오픈 소스이며 자유롭게 접근 가능한 원격 데스크탑 소프트웨어로, 수많은 불면의 밤을 통해 정성스럽게 제작되었습니다. 이 헌신과 결단의 노력은 2021년 GitHub에 RustDesk를 출시하는 것으로 결실을 맺어, 전 세계의 개인들이 사용할 수 있게 되었습니다.
</p>
</Fragment>
</Hero>
<!-- Steps2 Widget ****************** -->
<Steps2
title="핵심 팀"
items={[
{
title: '조셉 잭스<br><small>CEO</small>',
description:
"조셉 잭스는 2018년에 OSS Capital을 설립했습니다. 이는 COSS(상업 오픈 소스) 스타트업에 전적으로 전념하는 세계 최초이자 유일한 초기 단계 VC입니다. 이전에는 최초의 쿠버네티스 스타트업(Kismatic)을 시작하고 운영하는 데 도움을 주었으며, 쿠버네티스 커뮤니티 회의인 KubeCon을 설립하고 운영한 후 2016년에 이를 리눅스 재단에 기부하여 CNCF(클라우드 네이티브 컴퓨팅 재단)가 형성되는 데 기여했습니다.",
icon: 'tabler:user',
},
{
title: '화빙 저우<br><small>CTO</small>',
description:
'RustDesk를 설립하고 개발하기 전에, 화빙 저우는 싱가포르에서 금융 IT 분야에서 12년 이상의 경험을 쌓았습니다. 그는 프로젝트와 비즈니스를 관리하는 데 있어 풍부한 실무 경험을 제공합니다.',
icon: 'tabler:user',
},
{
title: '다니엘 램<br><small>커뮤니티 어시스턴트</small>',
description:
"IT 산업에서 25년의 경력을 가진 다니엘 램은 수많은 오픈 소스 프로젝트에 적극적으로 참여하며 다양한 역할과 책임을 맡아왔습니다. 또한 그는 스코틀랜드에 본사를 둔 IT 서비스 회사를 설립하여 전 세계 고객을 대상으로 서비스를 제공했습니다. 다니엘의 방대한 전문 지식은 지원, 판매 및 커뮤니티 참여를 포함하여 프로젝트에 많은 지식과 경험을 제공합니다.",
icon: 'tabler:user',
},
]}
/>
<!-- Features2 Widget ************** -->
<Features2
title="우리의 위치"
tagline="우리를 찾아보세요"
columns={1}
items={[
{
title: '싱가포르',
description: '18A, 캔버라 드라이브, 이순',
},
]}
/>
</Layout>