Merge pull request #520 from donaldzou/main

Merging latest v4.1.1 changes into v4.2.0 branch
This commit is contained in:
Donald Zou 2024-11-23 18:10:00 +08:00 committed by GitHub
commit 8ddee03338
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
54 changed files with 2854 additions and 1517 deletions

View File

@ -21,6 +21,11 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: linux/amd64,linux/arm64,linux/arm/v6,linux/arm/v7
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
@ -30,10 +35,10 @@ jobs:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and export (linux/amd64, linux/arm64, linux/arm/v7)
- name: Build and export (multi-arch)
uses: docker/build-push-action@v6
with:
context: .
push: true
tags: ${{ env.DOCKER_IMAGE }}:latest
platforms: linux/amd64,linux/arm64,linux/arm/v7
platforms: linux/amd64,linux/arm64,linux/arm/v6,linux/arm/v7

View File

@ -29,8 +29,8 @@
Join our Discord Server for quick help, or you wanna chat about this project!
</p>
<p align="center">
<a align="center" href="https://discord.gg/MXDBpuRB"><img src="https://img.shields.io/discord/1276818723637956628?labelColor=ffffff&style=for-the-badge&logo=discord&label=Discord"></a>
</p>
<a align="center" href="https://discord.gg/72TwzjeuWm"><img src="https://img.shields.io/discord/1276818723637956628?labelColor=ffffff&style=for-the-badge&logo=discord&label=Discord"></a>
</p>
<hr>

View File

@ -27,7 +27,7 @@ import threading
from flask.json.provider import DefaultJSONProvider
DASHBOARD_VERSION = 'v4.1.0'
DASHBOARD_VERSION = 'v4.1.1'
CONFIGURATION_PATH = os.getenv('CONFIGURATION_PATH', '.')
DB_PATH = os.path.join(CONFIGURATION_PATH, 'db')
if not os.path.isdir(DB_PATH):
@ -753,8 +753,17 @@ class WireguardConfiguration:
""" % self.Name
, newPeer)
for p in peers:
subprocess.check_output(f"wg set {self.Name} peer {p['id']} allowed-ips {p['allowed_ip']}",
presharedKeyExist = len(p['preshared_key']) > 0
rd = random.Random()
uid = str(uuid.UUID(int=rd.getrandbits(128), version=4))
if presharedKeyExist:
with open(uid, "w+") as f:
f.write(p['preshared_key'])
subprocess.check_output(f"wg set {self.Name} peer {p['id']} allowed-ips {p['allowed_ip'].replace(' ', '')}{f' preshared-key {uid}' if presharedKeyExist else ''}",
shell=True, stderr=subprocess.STDOUT)
if presharedKeyExist:
os.remove(uid)
subprocess.check_output(
f"wg-quick save {self.Name}", shell=True, stderr=subprocess.STDOUT)
self.getPeersList()
@ -783,14 +792,14 @@ class WireguardConfiguration:
presharedKeyExist = len(p['preshared_key']) > 0
rd = random.Random()
uid = uuid.UUID(int=rd.getrandbits(128), version=4)
uid = str(uuid.UUID(int=rd.getrandbits(128), version=4))
if presharedKeyExist:
with open(f"{uid}", "w+") as f:
with open(uid, "w+") as f:
f.write(p['preshared_key'])
subprocess.check_output(f"wg set {self.Name} peer {p['id']} allowed-ips {p['allowed_ip'].replace(' ', '')}{f' preshared-key {uid}' if presharedKeyExist else ''}",
shell=True, stderr=subprocess.STDOUT)
if presharedKeyExist: os.remove(str(uid))
if presharedKeyExist: os.remove(uid)
else:
return ResponseObject(False, "Failed to allow access of peer " + i)
if not self.__wgSave():
@ -1206,18 +1215,18 @@ class Peer:
return ResponseObject(False, "Private key does not match with the public key")
try:
rd = random.Random()
uid = uuid.UUID(int=rd.getrandbits(128), version=4)
uid = str(uuid.UUID(int=rd.getrandbits(128), version=4))
pskExist = len(preshared_key) > 0
if pskExist:
with open(f"{uid}", "w+") as f:
with open(uid, "w+") as f:
f.write(preshared_key)
newAllowedIPs = allowed_ip.replace(" ", "")
updateAllowedIp = subprocess.check_output(
f"wg set {self.configuration.Name} peer {self.id} allowed-ips {newAllowedIPs}{f' preshared-key {uid}' if pskExist else ''}",
shell=True, stderr=subprocess.STDOUT)
if pskExist: os.remove(str(uid))
if pskExist: os.remove(uid)
if len(updateAllowedIp.decode().strip("\n")) != 0:
return ResponseObject(False,

View File

@ -1 +1 @@
import{_ as r,c as i,d as o,w as e,j as l,a as t,T as _,i as a,l as d,S as u}from"./index-glbWjskj.js";const m={name:"configuration"},p={class:"mt-md-5 mt-3 text-body"};function f(x,h,k,w,$,v){const n=l("RouterView");return t(),i("div",p,[o(n,null,{default:e(({Component:s,route:c})=>[o(_,{name:"fade2",mode:"out-in"},{default:e(()=>[(t(),a(u,null,{default:e(()=>[(t(),a(d(s),{key:c.path}))]),_:2},1024))]),_:2},1024)]),_:1})])}const B=r(m,[["render",f]]);export{B as default};
import{_ as r,c as i,d as o,w as e,j as l,a as t,T as _,i as a,l as d,S as u}from"./index-DeLT-ag4.js";const m={name:"configuration"},p={class:"mt-md-5 mt-3 text-body"};function f(x,h,k,w,$,v){const n=l("RouterView");return t(),i("div",p,[o(n,null,{default:e(({Component:s,route:c})=>[o(_,{name:"fade2",mode:"out-in"},{default:e(()=>[(t(),a(u,null,{default:e(()=>[(t(),a(d(s),{key:c.path}))]),_:2},1024))]),_:2},1024)]),_:1})])}const B=r(m,[["render",f]]);export{B as default};

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{$ as w,r as c,H as x,D as B,o as _,a as l,c as b,b as t,d as o,n as D,m as $,s as N,B as m,i as v,q as M,g as T}from"./index-glbWjskj.js";import{L as s}from"./localeText-CS3fF34S.js";const I={class:"peerSettingContainer w-100 h-100 position-absolute top-0 start-0 overflow-y-scroll"},R={class:"container d-flex h-100 w-100"},S={class:"m-auto modal-dialog-centered dashboardModal",style:{width:"700px"}},V={class:"card rounded-3 shadow flex-grow-1 bg-danger-subtle border-danger-subtle",id:"deleteConfigurationContainer"},A={class:"card-header bg-transparent d-flex align-items-center gap-2 border-0 p-4 pb-0"},L={class:"mb-0"},P={class:"card-body px-4 text-muted"},W={class:"mb-0"},q={key:0},z={key:1},E={key:2,class:"d-flex align-items-center gap-2"},G=["placeholder"],H=["disabled"],J={__name:"deleteConfiguration",emits:["backup"],setup(O,{emit:k}){const i=w().params.id,g=c(""),h=x(),p=B(),r=c(!1),y=()=>{clearInterval(p.Peers.RefreshInterval),r.value=!0,M("/api/deleteWireguardConfiguration",{Name:i},n=>{n.status?(h.push("/"),p.newMessage("Server","Configuration deleted","success")):r.value=!1})},u=c(!0),d=c([]),f=()=>{u.value=!0,T("/api/getWireguardConfigurationBackup",{configurationName:i},n=>{d.value=n.data,u.value=!1})};_(()=>{f()});const C=k;return(n,e)=>(l(),b("div",I,[t("div",R,[t("div",S,[t("div",V,[t("div",A,[t("h5",L,[o(s,{t:"Are you sure to delete this configuration?"})]),t("button",{type:"button",class:"btn-close ms-auto",onClick:e[0]||(e[0]=a=>n.$emit("close"))})]),t("div",P,[t("p",W,[o(s,{t:"Once you deleted this configuration:"})]),t("ul",null,[t("li",null,[o(s,{t:"All connected peers will get disconnected"})]),t("li",null,[o(s,{t:"Both configuration file (.conf) and database table related to this configuration will get deleted"})])]),t("div",{class:D(["alert",[u.value?"alert-secondary":d.value.length>0?"alert-success":"alert-danger"]])},[u.value?(l(),b("div",q,[e[5]||(e[5]=t("i",{class:"bi bi-search me-2"},null,-1)),o(s,{t:"Checking backups..."})])):d.value.length>0?(l(),b("div",z,[e[6]||(e[6]=t("i",{class:"bi bi-check-circle-fill me-2"},null,-1)),o(s,{t:"This configuration have "+d.value.length+" backups"},null,8,["t"])])):(l(),b("div",E,[e[9]||(e[9]=t("i",{class:"bi bi-x-circle-fill me-2"},null,-1)),o(s,{t:"This configuration have no backup"}),t("a",{role:"button",onClick:e[1]||(e[1]=a=>C("backup")),class:"ms-auto btn btn-sm btn-primary rounded-3"},[e[7]||(e[7]=t("i",{class:"bi bi-clock-history me-2"},null,-1)),o(s,{t:"Backup"})]),t("a",{role:"button",onClick:e[2]||(e[2]=a=>f()),class:"btn btn-sm btn-primary rounded-3"},e[8]||(e[8]=[t("i",{class:"bi bi-arrow-clockwise"},null,-1)]))]))],2),e[11]||(e[11]=t("hr",null,null,-1)),t("p",null,[o(s,{t:"If you're sure, please type in the configuration name below and click Delete"})]),$(t("input",{class:"form-control rounded-3 mb-3",placeholder:m(i),"onUpdate:modelValue":e[3]||(e[3]=a=>g.value=a),type:"text"},null,8,G),[[N,g.value]]),t("button",{class:"btn btn-danger w-100",onClick:e[4]||(e[4]=a=>y()),disabled:g.value!==m(i)||r.value},[e[10]||(e[10]=t("i",{class:"bi bi-trash-fill me-2 rounded-3"},null,-1)),r.value?(l(),v(s,{key:1,t:"Deleting..."})):(l(),v(s,{key:0,t:"Delete"}))],8,H)])])])])]))}};export{J as default};
import{$ as w,r as c,H as x,D as B,o as _,a as l,c as b,b as t,d as o,n as D,m as $,s as N,B as m,i as v,q as M,g as T}from"./index-DeLT-ag4.js";import{L as s}from"./localeText-Bm68I_nB.js";const I={class:"peerSettingContainer w-100 h-100 position-absolute top-0 start-0 overflow-y-scroll"},R={class:"container d-flex h-100 w-100"},S={class:"m-auto modal-dialog-centered dashboardModal",style:{width:"700px"}},V={class:"card rounded-3 shadow flex-grow-1 bg-danger-subtle border-danger-subtle",id:"deleteConfigurationContainer"},A={class:"card-header bg-transparent d-flex align-items-center gap-2 border-0 p-4 pb-0"},L={class:"mb-0"},P={class:"card-body px-4 text-muted"},W={class:"mb-0"},q={key:0},z={key:1},E={key:2,class:"d-flex align-items-center gap-2"},G=["placeholder"],H=["disabled"],J={__name:"deleteConfiguration",emits:["backup"],setup(O,{emit:k}){const i=w().params.id,g=c(""),h=x(),p=B(),r=c(!1),y=()=>{clearInterval(p.Peers.RefreshInterval),r.value=!0,M("/api/deleteWireguardConfiguration",{Name:i},n=>{n.status?(h.push("/"),p.newMessage("Server","Configuration deleted","success")):r.value=!1})},u=c(!0),d=c([]),f=()=>{u.value=!0,T("/api/getWireguardConfigurationBackup",{configurationName:i},n=>{d.value=n.data,u.value=!1})};_(()=>{f()});const C=k;return(n,e)=>(l(),b("div",I,[t("div",R,[t("div",S,[t("div",V,[t("div",A,[t("h5",L,[o(s,{t:"Are you sure to delete this configuration?"})]),t("button",{type:"button",class:"btn-close ms-auto",onClick:e[0]||(e[0]=a=>n.$emit("close"))})]),t("div",P,[t("p",W,[o(s,{t:"Once you deleted this configuration:"})]),t("ul",null,[t("li",null,[o(s,{t:"All connected peers will get disconnected"})]),t("li",null,[o(s,{t:"Both configuration file (.conf) and database table related to this configuration will get deleted"})])]),t("div",{class:D(["alert",[u.value?"alert-secondary":d.value.length>0?"alert-success":"alert-danger"]])},[u.value?(l(),b("div",q,[e[5]||(e[5]=t("i",{class:"bi bi-search me-2"},null,-1)),o(s,{t:"Checking backups..."})])):d.value.length>0?(l(),b("div",z,[e[6]||(e[6]=t("i",{class:"bi bi-check-circle-fill me-2"},null,-1)),o(s,{t:"This configuration have "+d.value.length+" backups"},null,8,["t"])])):(l(),b("div",E,[e[9]||(e[9]=t("i",{class:"bi bi-x-circle-fill me-2"},null,-1)),o(s,{t:"This configuration have no backup"}),t("a",{role:"button",onClick:e[1]||(e[1]=a=>C("backup")),class:"ms-auto btn btn-sm btn-primary rounded-3"},[e[7]||(e[7]=t("i",{class:"bi bi-clock-history me-2"},null,-1)),o(s,{t:"Backup"})]),t("a",{role:"button",onClick:e[2]||(e[2]=a=>f()),class:"btn btn-sm btn-primary rounded-3"},e[8]||(e[8]=[t("i",{class:"bi bi-arrow-clockwise"},null,-1)]))]))],2),e[11]||(e[11]=t("hr",null,null,-1)),t("p",null,[o(s,{t:"If you're sure, please type in the configuration name below and click Delete"})]),$(t("input",{class:"form-control rounded-3 mb-3",placeholder:m(i),"onUpdate:modelValue":e[3]||(e[3]=a=>g.value=a),type:"text"},null,8,G),[[N,g.value]]),t("button",{class:"btn btn-danger w-100",onClick:e[4]||(e[4]=a=>y()),disabled:g.value!==m(i)||r.value},[e[10]||(e[10]=t("i",{class:"bi bi-trash-fill me-2 rounded-3"},null,-1)),r.value?(l(),v(s,{key:1,t:"Deleting..."})):(l(),v(s,{key:0,t:"Delete"}))],8,H)])])])])]))}};export{J as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{_ as t,G as e,t as o}from"./index-glbWjskj.js";const s={name:"localeText",props:{t:""},computed:{getLocaleText(){return e(this.t)}}};function a(c,r,n,p,_,i){return o(this.getLocaleText)}const x=t(s,[["render",a]]);export{x as L};
import{_ as t,G as e,t as o}from"./index-DeLT-ag4.js";const s={name:"localeText",props:{t:""},computed:{getLocaleText(){return e(this.t)}}};function a(c,r,n,p,_,i){return o(this.getLocaleText)}const x=t(s,[["render",a]]);export{x as L};

View File

@ -1 +1 @@
import{L as c}from"./localeText-CS3fF34S.js";import{d as n}from"./dayjs.min-DTCutzON.js";import{_ as d,a as r,c as m,b as s,d as i,f as t,t as e,n as l,j as _}from"./index-glbWjskj.js";const p={name:"message",methods:{dayjs:n},components:{LocaleText:c},props:{message:Object},mounted(){setTimeout(()=>{this.message.show=!1},5e3)}},g=["id"],h={class:"card-body"},f={class:"d-flex"},x={class:"fw-bold d-block",style:{"text-transform":"uppercase"}},u={class:"ms-auto"};function b(y,v,w,T,j,a){const o=_("LocaleText");return r(),m("div",{class:l(["card shadow rounded-3 position-relative message ms-auto",{"text-bg-danger":this.message.type==="danger","text-bg-success":this.message.type==="success","text-bg-warning":this.message.type==="warning"}]),id:this.message.id},[s("div",h,[s("div",f,[s("small",x,[i(o,{t:"FROM "}),t(" "+e(this.message.from),1)]),s("small",u,e(a.dayjs().format("hh:mm A")),1)]),t(" "+e(this.message.content),1)])],10,g)}const M=d(p,[["render",b],["__scopeId","data-v-f50b8f0c"]]);export{M};
import{L as c}from"./localeText-Bm68I_nB.js";import{d as n}from"./dayjs.min-BXJG8oxU.js";import{_ as d,a as r,c as m,b as s,d as i,f as t,t as e,n as l,j as _}from"./index-DeLT-ag4.js";const p={name:"message",methods:{dayjs:n},components:{LocaleText:c},props:{message:Object},mounted(){setTimeout(()=>{this.message.show=!1},5e3)}},g=["id"],h={class:"card-body"},f={class:"d-flex"},x={class:"fw-bold d-block",style:{"text-transform":"uppercase"}},u={class:"ms-auto"};function b(y,v,w,T,j,a){const o=_("LocaleText");return r(),m("div",{class:l(["card shadow rounded-3 position-relative message ms-auto",{"text-bg-danger":this.message.type==="danger","text-bg-success":this.message.type==="success","text-bg-warning":this.message.type==="warning"}]),id:this.message.id},[s("div",h,[s("div",f,[s("small",x,[i(o,{t:"FROM "}),t(" "+e(this.message.from),1)]),s("small",u,e(a.dayjs().format("hh:mm A")),1)]),t(" "+e(this.message.content),1)])],10,g)}const M=d(p,[["render",b],["__scopeId","data-v-f50b8f0c"]]);export{M};

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{_ as f,D as m,r as _,a as s,c as a,b as e,d as l,w as g,T as h}from"./index-glbWjskj.js";import{L as v}from"./localeText-CS3fF34S.js";const y={class:"peerSettingContainer w-100 h-100 position-absolute top-0 start-0"},x={class:"container d-flex h-100 w-100"},w={class:"m-auto modal-dialog-centered dashboardModal justify-content-center"},C={class:"card rounded-3 shadow w-100"},k={class:"card-header bg-transparent d-flex align-items-center gap-2 border-0 p-4 pb-0"},F={class:"mb-0"},T={class:"card-body p-4"},D={class:"d-flex"},S=["disabled"],B={key:0,class:"d-block"},M={key:1,class:"d-block",id:"check"},G=["value"],L={__name:"peerConfigurationFile",props:{configurationFile:String},emits:["close"],setup(i,{emit:r}){const c=r,d=i,n=m(),o=_(!1),u=async()=>{navigator.clipboard&&navigator.clipboard.writeText?navigator.clipboard.writeText(d.configurationFile).then(()=>{o.value=!0,setTimeout(()=>{o.value=!1},3e3)}).catch(()=>{n.newMessage("WGDashboard","Failed to copy","danger")}):(document.querySelector("#peerConfigurationFile").select(),document.execCommand("copy")?(o.value=!0,setTimeout(()=>{o.value=!1},3e3)):n.newMessage("WGDashboard","Failed to copy","danger"))};return(p,t)=>(s(),a("div",y,[e("div",x,[e("div",w,[e("div",C,[e("div",k,[e("h4",F,[l(v,{t:"Peer Configuration File"})]),e("button",{type:"button",class:"btn-close ms-auto",onClick:t[0]||(t[0]=b=>c("close"))})]),e("div",T,[e("div",D,[e("button",{onClick:t[1]||(t[1]=b=>u()),disabled:o.value,class:"ms-auto btn bg-primary-subtle border-primary-subtle text-primary-emphasis rounded-3 position-relative"},[l(h,{name:"slide-up",mode:"out-in"},{default:g(()=>[o.value?(s(),a("span",M,t[3]||(t[3]=[e("i",{class:"bi bi-check-circle-fill"},null,-1)]))):(s(),a("span",B,t[2]||(t[2]=[e("i",{class:"bi bi-clipboard-fill"},null,-1)])))]),_:1})],8,S)]),e("textarea",{style:{height:"300px"},class:"form-control w-100 rounded-3 mt-2",id:"peerConfigurationFile",value:i.configurationFile},null,8,G)])])])])]))}},W=f(L,[["__scopeId","data-v-fcd3ae95"]]);export{W as default};
import{_ as f,D as m,r as _,a as s,c as a,b as e,d as l,w as g,T as h}from"./index-DeLT-ag4.js";import{L as v}from"./localeText-Bm68I_nB.js";const y={class:"peerSettingContainer w-100 h-100 position-absolute top-0 start-0"},x={class:"container d-flex h-100 w-100"},w={class:"m-auto modal-dialog-centered dashboardModal justify-content-center"},C={class:"card rounded-3 shadow w-100"},k={class:"card-header bg-transparent d-flex align-items-center gap-2 border-0 p-4 pb-0"},F={class:"mb-0"},T={class:"card-body p-4"},D={class:"d-flex"},S=["disabled"],B={key:0,class:"d-block"},M={key:1,class:"d-block",id:"check"},G=["value"],L={__name:"peerConfigurationFile",props:{configurationFile:String},emits:["close"],setup(i,{emit:r}){const c=r,d=i,n=m(),o=_(!1),u=async()=>{navigator.clipboard&&navigator.clipboard.writeText?navigator.clipboard.writeText(d.configurationFile).then(()=>{o.value=!0,setTimeout(()=>{o.value=!1},3e3)}).catch(()=>{n.newMessage("WGDashboard","Failed to copy","danger")}):(document.querySelector("#peerConfigurationFile").select(),document.execCommand("copy")?(o.value=!0,setTimeout(()=>{o.value=!1},3e3)):n.newMessage("WGDashboard","Failed to copy","danger"))};return(p,t)=>(s(),a("div",y,[e("div",x,[e("div",w,[e("div",C,[e("div",k,[e("h4",F,[l(v,{t:"Peer Configuration File"})]),e("button",{type:"button",class:"btn-close ms-auto",onClick:t[0]||(t[0]=b=>c("close"))})]),e("div",T,[e("div",D,[e("button",{onClick:t[1]||(t[1]=b=>u()),disabled:o.value,class:"ms-auto btn bg-primary-subtle border-primary-subtle text-primary-emphasis rounded-3 position-relative"},[l(h,{name:"slide-up",mode:"out-in"},{default:g(()=>[o.value?(s(),a("span",M,t[3]||(t[3]=[e("i",{class:"bi bi-check-circle-fill"},null,-1)]))):(s(),a("span",B,t[2]||(t[2]=[e("i",{class:"bi bi-clipboard-fill"},null,-1)])))]),_:1})],8,S)]),e("textarea",{style:{height:"300px"},class:"form-control w-100 rounded-3 mt-2",id:"peerConfigurationFile",value:i.configurationFile},null,8,G)])])])])]))}},W=f(L,[["__scopeId","data-v-fcd3ae95"]]);export{W as default};

View File

@ -1 +1 @@
.list-move[data-v-6d5fc831],.list-enter-active[data-v-6d5fc831],.list-leave-active[data-v-6d5fc831]{transition:all .3s ease}.list-enter-from[data-v-6d5fc831],.list-leave-to[data-v-6d5fc831]{opacity:0;transform:translateY(10px)}.list-leave-active[data-v-6d5fc831]{position:absolute}.peerSettingContainer[data-v-17eb547c]{background-color:#00000060;z-index:9998}div[data-v-17eb547c]{transition:.2s ease-in-out}.inactiveField[data-v-17eb547c]{opacity:.4}.card[data-v-17eb547c]{max-height:100%}
.list-move[data-v-6d5fc831],.list-enter-active[data-v-6d5fc831],.list-leave-active[data-v-6d5fc831]{transition:all .3s ease}.list-enter-from[data-v-6d5fc831],.list-leave-to[data-v-6d5fc831]{opacity:0;transform:translateY(10px)}.list-leave-active[data-v-6d5fc831]{position:absolute}.peerSettingContainer[data-v-ddffd6ec]{background-color:#00000060;z-index:9998}div[data-v-ddffd6ec]{transition:.2s ease-in-out}.inactiveField[data-v-ddffd6ec]{opacity:.4}.card[data-v-ddffd6ec]{max-height:100%}

View File

@ -1 +1 @@
import{S as p,a as b}from"./schedulePeerJob-BAfYRNYt.js";import{_ as h,W as u,p as m,j as i,a as o,c as a,b as e,d as r,w as _,F as v,h as f,i as J,e as x,k as g}from"./index-glbWjskj.js";import{L as w}from"./localeText-CS3fF34S.js";import"./vue-datepicker-5oBLmVre.js";import"./dayjs.min-DTCutzON.js";const P={name:"peerJobs",setup(){return{store:u()}},props:{selectedPeer:Object},components:{LocaleText:w,SchedulePeerJob:p,ScheduleDropdown:b},data(){return{}},methods:{deleteJob(d){this.selectedPeer.jobs=this.selectedPeer.jobs.filter(t=>t.JobID!==d.JobID)},addJob(){this.selectedPeer.jobs.unshift(JSON.parse(JSON.stringify({JobID:m().toString(),Configuration:this.selectedPeer.configuration.Name,Peer:this.selectedPeer.id,Field:this.store.PeerScheduleJobs.dropdowns.Field[0].value,Operator:this.store.PeerScheduleJobs.dropdowns.Operator[0].value,Value:"",CreationDate:"",ExpireDate:"",Action:this.store.PeerScheduleJobs.dropdowns.Action[0].value})))}}},S={class:"peerSettingContainer w-100 h-100 position-absolute top-0 start-0 overflow-y-scroll"},y={class:"container d-flex h-100 w-100"},$={class:"m-auto modal-dialog-centered dashboardModal"},C={class:"card rounded-3 shadow",style:{width:"700px"}},D={class:"card-header bg-transparent d-flex align-items-center gap-2 border-0 p-4 pb-2"},j={class:"mb-0 fw-normal"},k={class:"card-body px-4 pb-4 pt-2 position-relative"},N={class:"d-flex align-items-center mb-3"},T={class:"card shadow-sm",key:"none",style:{height:"153px"}},I={class:"card-body text-muted text-center d-flex"},L={class:"m-auto"};function O(d,t,B,F,V,A){const n=i("LocaleText"),l=i("SchedulePeerJob");return o(),a("div",S,[e("div",y,[e("div",$,[e("div",C,[e("div",D,[e("h4",j,[r(n,{t:"Schedule Jobs"})]),e("button",{type:"button",class:"btn-close ms-auto",onClick:t[0]||(t[0]=s=>this.$emit("close"))})]),e("div",k,[e("div",N,[e("button",{class:"btn bg-primary-subtle border-1 border-primary-subtle text-primary-emphasis rounded-3 shadow",onClick:t[1]||(t[1]=s=>this.addJob())},[t[3]||(t[3]=e("i",{class:"bi bi-plus-lg me-2"},null,-1)),r(n,{t:"Job"})])]),r(g,{name:"schedulePeerJobTransition",tag:"div",class:"position-relative"},{default:_(()=>[(o(!0),a(v,null,f(this.selectedPeer.jobs,(s,E)=>(o(),J(l,{onRefresh:t[2]||(t[2]=c=>this.$emit("refresh")),onDelete:c=>this.deleteJob(s),dropdowns:this.store.PeerScheduleJobs.dropdowns,key:s.JobID,pjob:s},null,8,["onDelete","dropdowns","pjob"]))),128)),this.selectedPeer.jobs.length===0?(o(),a("div",T,[e("div",I,[e("h6",L,[r(n,{t:"This peer does not have any job yet."})])])])):x("",!0)]),_:1})])])])])])}const z=h(P,[["render",O],["__scopeId","data-v-5bbdd42b"]]);export{z as default};
import{S as p,a as b}from"./schedulePeerJob-B4AuR_O4.js";import{_ as h,W as u,p as m,j as i,a as o,c as a,b as e,d as r,w as _,F as v,h as f,i as J,e as x,k as g}from"./index-DeLT-ag4.js";import{L as w}from"./localeText-Bm68I_nB.js";import"./vue-datepicker-BYU1fpEw.js";import"./dayjs.min-BXJG8oxU.js";const P={name:"peerJobs",setup(){return{store:u()}},props:{selectedPeer:Object},components:{LocaleText:w,SchedulePeerJob:p,ScheduleDropdown:b},data(){return{}},methods:{deleteJob(d){this.selectedPeer.jobs=this.selectedPeer.jobs.filter(t=>t.JobID!==d.JobID)},addJob(){this.selectedPeer.jobs.unshift(JSON.parse(JSON.stringify({JobID:m().toString(),Configuration:this.selectedPeer.configuration.Name,Peer:this.selectedPeer.id,Field:this.store.PeerScheduleJobs.dropdowns.Field[0].value,Operator:this.store.PeerScheduleJobs.dropdowns.Operator[0].value,Value:"",CreationDate:"",ExpireDate:"",Action:this.store.PeerScheduleJobs.dropdowns.Action[0].value})))}}},S={class:"peerSettingContainer w-100 h-100 position-absolute top-0 start-0 overflow-y-scroll"},y={class:"container d-flex h-100 w-100"},$={class:"m-auto modal-dialog-centered dashboardModal"},C={class:"card rounded-3 shadow",style:{width:"700px"}},D={class:"card-header bg-transparent d-flex align-items-center gap-2 border-0 p-4 pb-2"},j={class:"mb-0 fw-normal"},k={class:"card-body px-4 pb-4 pt-2 position-relative"},N={class:"d-flex align-items-center mb-3"},T={class:"card shadow-sm",key:"none",style:{height:"153px"}},I={class:"card-body text-muted text-center d-flex"},L={class:"m-auto"};function O(d,t,B,F,V,A){const n=i("LocaleText"),l=i("SchedulePeerJob");return o(),a("div",S,[e("div",y,[e("div",$,[e("div",C,[e("div",D,[e("h4",j,[r(n,{t:"Schedule Jobs"})]),e("button",{type:"button",class:"btn-close ms-auto",onClick:t[0]||(t[0]=s=>this.$emit("close"))})]),e("div",k,[e("div",N,[e("button",{class:"btn bg-primary-subtle border-1 border-primary-subtle text-primary-emphasis rounded-3 shadow",onClick:t[1]||(t[1]=s=>this.addJob())},[t[3]||(t[3]=e("i",{class:"bi bi-plus-lg me-2"},null,-1)),r(n,{t:"Job"})])]),r(g,{name:"schedulePeerJobTransition",tag:"div",class:"position-relative"},{default:_(()=>[(o(!0),a(v,null,f(this.selectedPeer.jobs,(s,E)=>(o(),J(l,{onRefresh:t[2]||(t[2]=c=>this.$emit("refresh")),onDelete:c=>this.deleteJob(s),dropdowns:this.store.PeerScheduleJobs.dropdowns,key:s.JobID,pjob:s},null,8,["onDelete","dropdowns","pjob"]))),128)),this.selectedPeer.jobs.length===0?(o(),a("div",T,[e("div",I,[e("h6",L,[r(n,{t:"This peer does not have any job yet."})])])])):x("",!0)]),_:1})])])])])])}const z=h(P,[["render",O],["__scopeId","data-v-5bbdd42b"]]);export{z as default};

View File

@ -1 +1 @@
import{S as b}from"./schedulePeerJob-BAfYRNYt.js";import{_ as g,W as v,p as f,j as l,a as o,c as t,b as e,d as i,F as p,h,t as _,e as y,i as x}from"./index-glbWjskj.js";import{L as J}from"./localeText-CS3fF34S.js";import"./vue-datepicker-5oBLmVre.js";import"./dayjs.min-DTCutzON.js";const w={name:"peerJobsAllModal",setup(){return{store:v()}},components:{LocaleText:J,SchedulePeerJob:b},props:{configurationPeers:Array[Object]},methods:{getuuid(){return f()}},computed:{getAllJobs(){return this.configurationPeers.filter(r=>r.jobs.length>0)}}},A={class:"peerSettingContainer w-100 h-100 position-absolute top-0 start-0 overflow-y-scroll"},$={class:"container d-flex h-100 w-100"},k={class:"m-auto modal-dialog-centered dashboardModal"},S={class:"card rounded-3 shadow",style:{width:"700px"}},L={class:"card-header bg-transparent d-flex align-items-center gap-2 border-0 p-4 pb-2"},j={class:"mb-0 fw-normal"},P={class:"card-body px-4 pb-4 pt-2"},C={key:0,class:"accordion",id:"peerJobsLogsModalAccordion"},M={class:"accordion-header"},B=["data-bs-target"],N={key:0},D={class:"text-muted"},T=["id"],V={class:"accordion-body"},F={key:1,class:"card shadow-sm",style:{height:"153px"}},O={class:"card-body text-muted text-center d-flex"},W={class:"m-auto"};function E(r,s,I,R,q,z){const n=l("LocaleText"),u=l("SchedulePeerJob");return o(),t("div",A,[e("div",$,[e("div",k,[e("div",S,[e("div",L,[e("h4",j,[i(n,{t:"All Active Jobs"})]),e("button",{type:"button",class:"btn-close ms-auto",onClick:s[0]||(s[0]=a=>this.$emit("close"))})]),e("div",P,[this.getAllJobs.length>0?(o(),t("div",C,[(o(!0),t(p,null,h(this.getAllJobs,(a,d)=>(o(),t("div",{class:"accordion-item",key:a.id},[e("h2",M,[e("button",{class:"accordion-button collapsed",type:"button","data-bs-toggle":"collapse","data-bs-target":"#collapse_"+d},[e("small",null,[e("strong",null,[a.name?(o(),t("span",N,_(a.name)+" • ",1)):y("",!0),e("samp",D,_(a.id),1)])])],8,B)]),e("div",{id:"collapse_"+d,class:"accordion-collapse collapse","data-bs-parent":"#peerJobsLogsModalAccordion"},[e("div",V,[(o(!0),t(p,null,h(a.jobs,c=>(o(),x(u,{onDelete:s[1]||(s[1]=m=>this.$emit("refresh")),onRefresh:s[2]||(s[2]=m=>this.$emit("refresh")),dropdowns:this.store.PeerScheduleJobs.dropdowns,viewOnly:!0,key:c.JobID,pjob:c},null,8,["dropdowns","pjob"]))),128))])],8,T)]))),128))])):(o(),t("div",F,[e("div",O,[e("span",W,[i(n,{t:"No active job at the moment."})])])]))])])])])])}const X=g(w,[["render",E]]);export{X as default};
import{S as b}from"./schedulePeerJob-B4AuR_O4.js";import{_ as g,W as v,p as f,j as l,a as o,c as t,b as e,d as i,F as p,h,t as _,e as y,i as x}from"./index-DeLT-ag4.js";import{L as J}from"./localeText-Bm68I_nB.js";import"./vue-datepicker-BYU1fpEw.js";import"./dayjs.min-BXJG8oxU.js";const w={name:"peerJobsAllModal",setup(){return{store:v()}},components:{LocaleText:J,SchedulePeerJob:b},props:{configurationPeers:Array[Object]},methods:{getuuid(){return f()}},computed:{getAllJobs(){return this.configurationPeers.filter(r=>r.jobs.length>0)}}},A={class:"peerSettingContainer w-100 h-100 position-absolute top-0 start-0 overflow-y-scroll"},$={class:"container d-flex h-100 w-100"},k={class:"m-auto modal-dialog-centered dashboardModal"},S={class:"card rounded-3 shadow",style:{width:"700px"}},L={class:"card-header bg-transparent d-flex align-items-center gap-2 border-0 p-4 pb-2"},j={class:"mb-0 fw-normal"},P={class:"card-body px-4 pb-4 pt-2"},C={key:0,class:"accordion",id:"peerJobsLogsModalAccordion"},M={class:"accordion-header"},B=["data-bs-target"],N={key:0},D={class:"text-muted"},T=["id"],V={class:"accordion-body"},F={key:1,class:"card shadow-sm",style:{height:"153px"}},O={class:"card-body text-muted text-center d-flex"},W={class:"m-auto"};function E(r,s,I,R,q,z){const n=l("LocaleText"),u=l("SchedulePeerJob");return o(),t("div",A,[e("div",$,[e("div",k,[e("div",S,[e("div",L,[e("h4",j,[i(n,{t:"All Active Jobs"})]),e("button",{type:"button",class:"btn-close ms-auto",onClick:s[0]||(s[0]=a=>this.$emit("close"))})]),e("div",P,[this.getAllJobs.length>0?(o(),t("div",C,[(o(!0),t(p,null,h(this.getAllJobs,(a,d)=>(o(),t("div",{class:"accordion-item",key:a.id},[e("h2",M,[e("button",{class:"accordion-button collapsed",type:"button","data-bs-toggle":"collapse","data-bs-target":"#collapse_"+d},[e("small",null,[e("strong",null,[a.name?(o(),t("span",N,_(a.name)+" • ",1)):y("",!0),e("samp",D,_(a.id),1)])])],8,B)]),e("div",{id:"collapse_"+d,class:"accordion-collapse collapse","data-bs-parent":"#peerJobsLogsModalAccordion"},[e("div",V,[(o(!0),t(p,null,h(a.jobs,c=>(o(),x(u,{onDelete:s[1]||(s[1]=m=>this.$emit("refresh")),onRefresh:s[2]||(s[2]=m=>this.$emit("refresh")),dropdowns:this.store.PeerScheduleJobs.dropdowns,viewOnly:!0,key:c.JobID,pjob:c},null,8,["dropdowns","pjob"]))),128))])],8,T)]))),128))])):(o(),t("div",F,[e("div",O,[e("span",W,[i(n,{t:"No active job at the moment."})])])]))])])])])])}const X=g(w,[["render",E]]);export{X as default};

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{b as a}from"./browser-CjSdxGTc.js";import{L as n}from"./localeText-CS3fF34S.js";import{_ as c,j as r,a as d,c as i,b as e,d as l}from"./index-glbWjskj.js";const p={name:"peerQRCode",components:{LocaleText:n},props:{peerConfigData:String},mounted(){a.toCanvas(document.querySelector("#qrcode"),this.peerConfigData,o=>{o&&console.error(o)})}},_={class:"peerSettingContainer w-100 h-100 position-absolute top-0 start-0"},m={class:"container d-flex h-100 w-100"},h={class:"m-auto modal-dialog-centered dashboardModal justify-content-center"},u={class:"card rounded-3 shadow"},f={class:"card-header bg-transparent d-flex align-items-center gap-2 border-0 p-4 pb-0"},b={class:"mb-0"},v={class:"card-body"},C={id:"qrcode",class:"rounded-3 shadow",ref:"qrcode"};function g(o,t,x,$,w,q){const s=r("LocaleText");return d(),i("div",_,[e("div",m,[e("div",h,[e("div",u,[e("div",f,[e("h4",b,[l(s,{t:"QR Code"})]),e("button",{type:"button",class:"btn-close ms-auto",onClick:t[0]||(t[0]=y=>this.$emit("close"))})]),e("div",v,[e("canvas",C,null,512)])])])])])}const Q=c(p,[["render",g]]);export{Q as default};
import{b as a}from"./browser-CjSdxGTc.js";import{L as n}from"./localeText-Bm68I_nB.js";import{_ as c,j as r,a as d,c as i,b as e,d as l}from"./index-DeLT-ag4.js";const p={name:"peerQRCode",components:{LocaleText:n},props:{peerConfigData:String},mounted(){a.toCanvas(document.querySelector("#qrcode"),this.peerConfigData,o=>{o&&console.error(o)})}},_={class:"peerSettingContainer w-100 h-100 position-absolute top-0 start-0"},m={class:"container d-flex h-100 w-100"},h={class:"m-auto modal-dialog-centered dashboardModal justify-content-center"},u={class:"card rounded-3 shadow"},f={class:"card-header bg-transparent d-flex align-items-center gap-2 border-0 p-4 pb-0"},b={class:"mb-0"},v={class:"card-body"},C={id:"qrcode",class:"rounded-3 shadow",ref:"qrcode"};function g(o,t,x,$,w,q){const s=r("LocaleText");return d(),i("div",_,[e("div",m,[e("div",h,[e("div",u,[e("div",f,[e("h4",b,[l(s,{t:"QR Code"})]),e("button",{type:"button",class:"btn-close ms-auto",onClick:t[0]||(t[0]=y=>this.$emit("close"))})]),e("div",v,[e("canvas",C,null,512)])])])])])}const Q=c(p,[["render",g]]);export{Q as default};

View File

@ -1 +1 @@
import{_ as g,D as f,q as h,j as p,a as s,c as r,b as t,d as o,n as m,i as n,t as _,e as b}from"./index-glbWjskj.js";import{d}from"./dayjs.min-DTCutzON.js";import{V as y}from"./vue-datepicker-5oBLmVre.js";import{L as S}from"./localeText-CS3fF34S.js";const k={name:"peerShareLinkModal",props:{peer:Object},components:{LocaleText:S,VueDatePicker:y},data(){return{dataCopy:void 0,loading:!1}},setup(){return{store:f()}},mounted(){this.dataCopy=JSON.parse(JSON.stringify(this.peer.ShareLink)).at(0)},watch:{"peer.ShareLink":{deep:!0,handler(e,a){a.length!==e.length&&(this.dataCopy=JSON.parse(JSON.stringify(this.peer.ShareLink)).at(0))}}},methods:{startSharing(){this.loading=!0,h("/api/sharePeer/create",{Configuration:this.peer.configuration.Name,Peer:this.peer.id,ExpireDate:d().add(7,"d").format("YYYY-MM-DD HH:mm:ss")},e=>{e.status?(this.peer.ShareLink=e.data,this.dataCopy=e.data.at(0)):this.store.newMessage("Server","Share link failed to create. Reason: "+e.message,"danger"),this.loading=!1})},updateLinkExpireDate(){h("/api/sharePeer/update",this.dataCopy,e=>{e.status?(this.dataCopy=e.data.at(0),this.peer.ShareLink=e.data,this.store.newMessage("Server","Link expire date updated","success")):this.store.newMessage("Server","Link expire date failed to update. Reason: "+e.message,"danger"),this.loading=!1})},stopSharing(){this.loading=!0,this.dataCopy.ExpireDate=d().format("YYYY-MM-DD HH:mm:ss"),this.updateLinkExpireDate()},parseTime(e){e?this.dataCopy.ExpireDate=d(e).format("YYYY-MM-DD HH:mm:ss"):this.dataCopy.ExpireDate=void 0,this.updateLinkExpireDate()}},computed:{getUrl(){const e=this.store.getActiveCrossServer();return e?`${e.host}/${this.$router.resolve({path:"/share",query:{ShareID:this.dataCopy.ShareID}}).href}`:window.location.origin+window.location.pathname+this.$router.resolve({path:"/share",query:{ShareID:this.dataCopy.ShareID}}).href}}},x={class:"peerSettingContainer w-100 h-100 position-absolute top-0 start-0 overflow-y-scroll"},v={class:"container d-flex h-100 w-100"},C={class:"m-auto modal-dialog-centered dashboardModal",style:{width:"500px"}},D={class:"card rounded-3 shadow flex-grow-1"},w={class:"card-header bg-transparent d-flex align-items-center gap-2 border-0 p-4"},L={class:"mb-0"},M={key:0,class:"card-body px-4 pb-4"},Y={key:0},$={class:"mb-3 text-muted"},E=["disabled"],H={key:1},V={class:"d-flex gap-2 mb-4"},N=["href"],P={class:"d-flex flex-column gap-2 mb-3"},O=["disabled"];function T(e,a,U,B,I,c){const i=p("LocaleText"),u=p("VueDatePicker");return s(),r("div",x,[t("div",v,[t("div",C,[t("div",D,[t("div",w,[t("h4",L,[o(i,{t:"Share Peer"})]),t("button",{type:"button",class:"btn-close ms-auto",onClick:a[0]||(a[0]=l=>this.$emit("close"))})]),this.peer.ShareLink?(s(),r("div",M,[this.dataCopy?(s(),r("div",H,[t("div",V,[a[4]||(a[4]=t("i",{class:"bi bi-link-45deg"},null,-1)),t("a",{href:this.getUrl,class:"text-decoration-none",target:"_blank"},_(c.getUrl),9,N)]),t("div",P,[t("small",null,[a[5]||(a[5]=t("i",{class:"bi bi-calendar me-2"},null,-1)),o(i,{t:"Expire At"})]),o(u,{is24:!0,"min-date":new Date,"model-value":this.dataCopy.ExpireDate,"onUpdate:modelValue":this.parseTime,"time-picker-inline":"",format:"yyyy-MM-dd HH:mm:ss","preview-format":"yyyy-MM-dd HH:mm:ss",dark:this.store.Configuration.Server.dashboard_theme==="dark"},null,8,["min-date","model-value","onUpdate:modelValue","dark"])]),t("button",{onClick:a[2]||(a[2]=l=>this.stopSharing()),disabled:this.loading,class:"w-100 btn bg-danger-subtle text-danger-emphasis border-1 border-danger-subtle rounded-3 shadow-sm"},[t("span",{class:m({"animate__animated animate__flash animate__infinite animate__slower":this.loading})},a[6]||(a[6]=[t("i",{class:"bi bi-send-slash-fill me-2"},null,-1)]),2),this.loading?(s(),n(i,{key:0,t:"Stop Sharing..."})):(s(),n(i,{key:1,t:"Stop Sharing"}))],8,O)])):(s(),r("div",Y,[t("h6",$,[o(i,{t:"Currently the peer is not sharing"})]),t("button",{onClick:a[1]||(a[1]=l=>this.startSharing()),disabled:this.loading,class:"w-100 btn bg-success-subtle text-success-emphasis border-1 border-success-subtle rounded-3 shadow-sm"},[t("span",{class:m({"animate__animated animate__flash animate__infinite animate__slower":this.loading})},a[3]||(a[3]=[t("i",{class:"bi bi-send-fill me-2"},null,-1)]),2),this.loading?(s(),n(i,{key:0,t:"Sharing..."})):(s(),n(i,{key:1,t:"Start Sharing"}))],8,E)]))])):b("",!0)])])])])}const R=g(k,[["render",T]]);export{R as default};
import{_ as g,D as f,q as h,j as p,a as s,c as r,b as t,d as o,n as m,i as n,t as _,e as b}from"./index-DeLT-ag4.js";import{d}from"./dayjs.min-BXJG8oxU.js";import{V as y}from"./vue-datepicker-BYU1fpEw.js";import{L as S}from"./localeText-Bm68I_nB.js";const k={name:"peerShareLinkModal",props:{peer:Object},components:{LocaleText:S,VueDatePicker:y},data(){return{dataCopy:void 0,loading:!1}},setup(){return{store:f()}},mounted(){this.dataCopy=JSON.parse(JSON.stringify(this.peer.ShareLink)).at(0)},watch:{"peer.ShareLink":{deep:!0,handler(e,a){a.length!==e.length&&(this.dataCopy=JSON.parse(JSON.stringify(this.peer.ShareLink)).at(0))}}},methods:{startSharing(){this.loading=!0,h("/api/sharePeer/create",{Configuration:this.peer.configuration.Name,Peer:this.peer.id,ExpireDate:d().add(7,"d").format("YYYY-MM-DD HH:mm:ss")},e=>{e.status?(this.peer.ShareLink=e.data,this.dataCopy=e.data.at(0)):this.store.newMessage("Server","Share link failed to create. Reason: "+e.message,"danger"),this.loading=!1})},updateLinkExpireDate(){h("/api/sharePeer/update",this.dataCopy,e=>{e.status?(this.dataCopy=e.data.at(0),this.peer.ShareLink=e.data,this.store.newMessage("Server","Link expire date updated","success")):this.store.newMessage("Server","Link expire date failed to update. Reason: "+e.message,"danger"),this.loading=!1})},stopSharing(){this.loading=!0,this.dataCopy.ExpireDate=d().format("YYYY-MM-DD HH:mm:ss"),this.updateLinkExpireDate()},parseTime(e){e?this.dataCopy.ExpireDate=d(e).format("YYYY-MM-DD HH:mm:ss"):this.dataCopy.ExpireDate=void 0,this.updateLinkExpireDate()}},computed:{getUrl(){const e=this.store.getActiveCrossServer();return e?`${e.host}/${this.$router.resolve({path:"/share",query:{ShareID:this.dataCopy.ShareID}}).href}`:window.location.origin+window.location.pathname+this.$router.resolve({path:"/share",query:{ShareID:this.dataCopy.ShareID}}).href}}},x={class:"peerSettingContainer w-100 h-100 position-absolute top-0 start-0 overflow-y-scroll"},v={class:"container d-flex h-100 w-100"},C={class:"m-auto modal-dialog-centered dashboardModal",style:{width:"500px"}},D={class:"card rounded-3 shadow flex-grow-1"},w={class:"card-header bg-transparent d-flex align-items-center gap-2 border-0 p-4"},L={class:"mb-0"},M={key:0,class:"card-body px-4 pb-4"},Y={key:0},$={class:"mb-3 text-muted"},E=["disabled"],H={key:1},V={class:"d-flex gap-2 mb-4"},N=["href"],P={class:"d-flex flex-column gap-2 mb-3"},O=["disabled"];function T(e,a,U,B,I,c){const i=p("LocaleText"),u=p("VueDatePicker");return s(),r("div",x,[t("div",v,[t("div",C,[t("div",D,[t("div",w,[t("h4",L,[o(i,{t:"Share Peer"})]),t("button",{type:"button",class:"btn-close ms-auto",onClick:a[0]||(a[0]=l=>this.$emit("close"))})]),this.peer.ShareLink?(s(),r("div",M,[this.dataCopy?(s(),r("div",H,[t("div",V,[a[4]||(a[4]=t("i",{class:"bi bi-link-45deg"},null,-1)),t("a",{href:this.getUrl,class:"text-decoration-none",target:"_blank"},_(c.getUrl),9,N)]),t("div",P,[t("small",null,[a[5]||(a[5]=t("i",{class:"bi bi-calendar me-2"},null,-1)),o(i,{t:"Expire At"})]),o(u,{is24:!0,"min-date":new Date,"model-value":this.dataCopy.ExpireDate,"onUpdate:modelValue":this.parseTime,"time-picker-inline":"",format:"yyyy-MM-dd HH:mm:ss","preview-format":"yyyy-MM-dd HH:mm:ss",dark:this.store.Configuration.Server.dashboard_theme==="dark"},null,8,["min-date","model-value","onUpdate:modelValue","dark"])]),t("button",{onClick:a[2]||(a[2]=l=>this.stopSharing()),disabled:this.loading,class:"w-100 btn bg-danger-subtle text-danger-emphasis border-1 border-danger-subtle rounded-3 shadow-sm"},[t("span",{class:m({"animate__animated animate__flash animate__infinite animate__slower":this.loading})},a[6]||(a[6]=[t("i",{class:"bi bi-send-slash-fill me-2"},null,-1)]),2),this.loading?(s(),n(i,{key:0,t:"Stop Sharing..."})):(s(),n(i,{key:1,t:"Stop Sharing"}))],8,O)])):(s(),r("div",Y,[t("h6",$,[o(i,{t:"Currently the peer is not sharing"})]),t("button",{onClick:a[1]||(a[1]=l=>this.startSharing()),disabled:this.loading,class:"w-100 btn bg-success-subtle text-success-emphasis border-1 border-success-subtle rounded-3 shadow-sm"},[t("span",{class:m({"animate__animated animate__flash animate__infinite animate__slower":this.loading})},a[3]||(a[3]=[t("i",{class:"bi bi-send-fill me-2"},null,-1)]),2),this.loading?(s(),n(i,{key:0,t:"Sharing..."})):(s(),n(i,{key:1,t:"Start Sharing"}))],8,E)]))])):b("",!0)])])])])}const R=g(k,[["render",T]]);export{R as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{_ as u,D as m,q as p,c as r,b as e,d as o,f as c,t as h,e as f,m as l,s as d,a as i,j as w}from"./index-glbWjskj.js";import{L as g}from"./localeText-CS3fF34S.js";const b={name:"setup",components:{LocaleText:g},setup(){return{store:m()}},data(){return{setup:{username:"",newPassword:"",repeatNewPassword:"",enable_totp:!0},loading:!1,errorMessage:"",done:!1}},computed:{goodToSubmit(){return this.setup.username&&this.setup.newPassword.length>=8&&this.setup.repeatNewPassword.length>=8&&this.setup.newPassword===this.setup.repeatNewPassword}},methods:{submit(){this.loading=!0,p("/api/Welcome_Finish",this.setup,n=>{n.status?(this.done=!0,this.$router.push("/2FASetup")):(document.querySelectorAll("#createAccount input").forEach(s=>s.classList.add("is-invalid")),this.errorMessage=n.message,document.querySelector(".login-container-fluid").scrollTo({top:0,left:0,behavior:"smooth"})),this.loading=!1})}}},_=["data-bs-theme"],x={class:"m-auto text-body",style:{width:"500px"}},v={class:"dashboardLogo display-4"},y={class:"mb-5"},P={key:0,class:"alert alert-danger"},N={class:"d-flex flex-column gap-3"},k={id:"createAccount",class:"d-flex flex-column gap-2"},S={class:"form-group text-body"},T={for:"username",class:"mb-1 text-muted"},C={class:"form-group text-body"},L={for:"password",class:"mb-1 text-muted"},V={class:"form-group text-body"},q={for:"confirmPassword",class:"mb-1 text-muted"},$=["disabled"],A={key:0,class:"d-flex align-items-center w-100"},M={key:1,class:"d-flex align-items-center w-100"};function B(n,s,D,E,U,F){const t=w("LocaleText");return i(),r("div",{class:"container-fluid login-container-fluid d-flex main pt-5 overflow-scroll","data-bs-theme":this.store.Configuration.Server.dashboard_theme},[e("div",x,[e("span",v,[o(t,{t:"Nice to meet you!"})]),e("p",y,[o(t,{t:"Please fill in the following fields to finish setup"}),s[4]||(s[4]=c(" 😊"))]),e("div",null,[e("h3",null,[o(t,{t:"Create an account"})]),this.errorMessage?(i(),r("div",P,h(this.errorMessage),1)):f("",!0),e("div",N,[e("form",k,[e("div",S,[e("label",T,[e("small",null,[o(t,{t:"Enter an username you like"})])]),l(e("input",{type:"text",autocomplete:"username","onUpdate:modelValue":s[0]||(s[0]=a=>this.setup.username=a),class:"form-control",id:"username",name:"username",required:""},null,512),[[d,this.setup.username]])]),e("div",C,[e("label",L,[e("small",null,[o(t,{t:"Enter a password"}),e("code",null,[o(t,{t:"(At least 8 characters and make sure is strong enough!)"})])])]),l(e("input",{type:"password",autocomplete:"new-password","onUpdate:modelValue":s[1]||(s[1]=a=>this.setup.newPassword=a),class:"form-control",id:"password",name:"password",required:""},null,512),[[d,this.setup.newPassword]])]),e("div",V,[e("label",q,[e("small",null,[o(t,{t:"Confirm password"})])]),l(e("input",{type:"password",autocomplete:"confirm-new-password","onUpdate:modelValue":s[2]||(s[2]=a=>this.setup.repeatNewPassword=a),class:"form-control",id:"confirmPassword",name:"confirmPassword",required:""},null,512),[[d,this.setup.repeatNewPassword]])])]),e("button",{class:"btn btn-dark btn-lg mb-5 d-flex btn-brand shadow align-items-center",ref:"signInBtn",disabled:!this.goodToSubmit||this.loading||this.done,onClick:s[3]||(s[3]=a=>this.submit())},[!this.loading&&!this.done?(i(),r("span",A,[o(t,{t:"Next"}),s[5]||(s[5]=e("i",{class:"bi bi-chevron-right ms-auto"},null,-1))])):(i(),r("span",M,[o(t,{t:"Saving..."}),s[6]||(s[6]=e("span",{class:"spinner-border ms-auto spinner-border-sm",role:"status"},[e("span",{class:"visually-hidden"},"Loading...")],-1))]))],8,$)])])])],8,_)}const W=u(b,[["render",B]]);export{W as default};
import{_ as u,D as m,q as p,c as r,b as e,d as o,f as c,t as h,e as f,m as l,s as d,a as i,j as w}from"./index-DeLT-ag4.js";import{L as g}from"./localeText-Bm68I_nB.js";const b={name:"setup",components:{LocaleText:g},setup(){return{store:m()}},data(){return{setup:{username:"",newPassword:"",repeatNewPassword:"",enable_totp:!0},loading:!1,errorMessage:"",done:!1}},computed:{goodToSubmit(){return this.setup.username&&this.setup.newPassword.length>=8&&this.setup.repeatNewPassword.length>=8&&this.setup.newPassword===this.setup.repeatNewPassword}},methods:{submit(){this.loading=!0,p("/api/Welcome_Finish",this.setup,n=>{n.status?(this.done=!0,this.$router.push("/2FASetup")):(document.querySelectorAll("#createAccount input").forEach(s=>s.classList.add("is-invalid")),this.errorMessage=n.message,document.querySelector(".login-container-fluid").scrollTo({top:0,left:0,behavior:"smooth"})),this.loading=!1})}}},_=["data-bs-theme"],x={class:"m-auto text-body",style:{width:"500px"}},v={class:"dashboardLogo display-4"},y={class:"mb-5"},P={key:0,class:"alert alert-danger"},N={class:"d-flex flex-column gap-3"},k={id:"createAccount",class:"d-flex flex-column gap-2"},S={class:"form-group text-body"},T={for:"username",class:"mb-1 text-muted"},C={class:"form-group text-body"},L={for:"password",class:"mb-1 text-muted"},V={class:"form-group text-body"},q={for:"confirmPassword",class:"mb-1 text-muted"},$=["disabled"],A={key:0,class:"d-flex align-items-center w-100"},M={key:1,class:"d-flex align-items-center w-100"};function B(n,s,D,E,U,F){const t=w("LocaleText");return i(),r("div",{class:"container-fluid login-container-fluid d-flex main pt-5 overflow-scroll","data-bs-theme":this.store.Configuration.Server.dashboard_theme},[e("div",x,[e("span",v,[o(t,{t:"Nice to meet you!"})]),e("p",y,[o(t,{t:"Please fill in the following fields to finish setup"}),s[4]||(s[4]=c(" 😊"))]),e("div",null,[e("h3",null,[o(t,{t:"Create an account"})]),this.errorMessage?(i(),r("div",P,h(this.errorMessage),1)):f("",!0),e("div",N,[e("form",k,[e("div",S,[e("label",T,[e("small",null,[o(t,{t:"Enter an username you like"})])]),l(e("input",{type:"text",autocomplete:"username","onUpdate:modelValue":s[0]||(s[0]=a=>this.setup.username=a),class:"form-control",id:"username",name:"username",required:""},null,512),[[d,this.setup.username]])]),e("div",C,[e("label",L,[e("small",null,[o(t,{t:"Enter a password"}),e("code",null,[o(t,{t:"(At least 8 characters and make sure is strong enough!)"})])])]),l(e("input",{type:"password",autocomplete:"new-password","onUpdate:modelValue":s[1]||(s[1]=a=>this.setup.newPassword=a),class:"form-control",id:"password",name:"password",required:""},null,512),[[d,this.setup.newPassword]])]),e("div",V,[e("label",q,[e("small",null,[o(t,{t:"Confirm password"})])]),l(e("input",{type:"password",autocomplete:"confirm-new-password","onUpdate:modelValue":s[2]||(s[2]=a=>this.setup.repeatNewPassword=a),class:"form-control",id:"confirmPassword",name:"confirmPassword",required:""},null,512),[[d,this.setup.repeatNewPassword]])])]),e("button",{class:"btn btn-dark btn-lg mb-5 d-flex btn-brand shadow align-items-center",ref:"signInBtn",disabled:!this.goodToSubmit||this.loading||this.done,onClick:s[3]||(s[3]=a=>this.submit())},[!this.loading&&!this.done?(i(),r("span",A,[o(t,{t:"Next"}),s[5]||(s[5]=e("i",{class:"bi bi-chevron-right ms-auto"},null,-1))])):(i(),r("span",M,[o(t,{t:"Saving..."}),s[6]||(s[6]=e("span",{class:"spinner-border ms-auto spinner-border-sm",role:"status"},[e("span",{class:"visually-hidden"},"Loading...")],-1))]))],8,$)])])])],8,_)}const W=u(b,[["render",B]]);export{W as default};

View File

@ -1 +1 @@
import{_,r,D as p,g as u,c as m,b as t,d as c,$ as h,a as f,j as b}from"./index-glbWjskj.js";import{b as v}from"./browser-CjSdxGTc.js";import{L as y}from"./localeText-CS3fF34S.js";const g={name:"share",components:{LocaleText:y},async setup(){const o=h(),e=r(!1),i=p(),n=r(""),s=r(void 0),l=r(new Blob);await u("/api/getDashboardTheme",{},d=>{n.value=d.data});const a=o.query.ShareID;return a===void 0||a.length===0?(s.value=void 0,e.value=!0):await u("/api/sharePeer/get",{ShareID:a},d=>{d.status?(s.value=d.data,l.value=new Blob([s.value.file],{type:"text/plain"})):s.value=void 0,e.value=!0}),{store:i,theme:n,peerConfiguration:s,blob:l}},mounted(){this.peerConfiguration&&v.toCanvas(document.querySelector("#qrcode"),this.peerConfiguration.file,o=>{o&&console.error(o)})},methods:{download(){const o=new Blob([this.peerConfiguration.file],{type:"text/plain"}),e=URL.createObjectURL(o),i=`${this.peerConfiguration.fileName}.conf`,n=document.createElement("a");n.href=e,n.download=i,n.click()}},computed:{getBlob(){return URL.createObjectURL(this.blob)}}},w=["data-bs-theme"],x={class:"m-auto text-body",style:{width:"500px"}},C={key:0,class:"text-center position-relative",style:{}},U={class:"position-absolute w-100 h-100 top-0 start-0 d-flex animate__animated animate__fadeInUp",style:{"animation-delay":"0.1s"}},I={class:"m-auto"},L={key:1,class:"d-flex align-items-center flex-column gap-3"},B={class:"h1 dashboardLogo text-center animate__animated animate__fadeInUp"},k={id:"qrcode",class:"rounded-3 shadow animate__animated animate__fadeInUp mb-3",ref:"qrcode"},D={class:"text-muted animate__animated animate__fadeInUp mb-1",style:{"animation-delay":"0.2s"}},R=["download","href"];function j(o,e,i,n,s,l){const a=b("LocaleText");return f(),m("div",{class:"container-fluid login-container-fluid d-flex main pt-5 overflow-scroll","data-bs-theme":this.theme},[t("div",x,[this.peerConfiguration?(f(),m("div",L,[t("div",B,[e[1]||(e[1]=t("h6",null,"WGDashboard",-1)),c(a,{t:"Scan QR Code with the WireGuard App to add peer"})]),t("canvas",k,null,512),t("p",D,[c(a,{t:"or click the button below to download the "}),e[2]||(e[2]=t("samp",null,".conf",-1)),c(a,{t:" file"})]),t("a",{download:this.peerConfiguration.fileName+".conf",href:l.getBlob,class:"btn btn-lg bg-primary-subtle text-primary-emphasis border-1 border-primary-subtle animate__animated animate__fadeInUp shadow-sm",style:{"animation-delay":"0.25s"}},e[3]||(e[3]=[t("i",{class:"bi bi-download"},null,-1)]),8,R)])):(f(),m("div",C,[e[0]||(e[0]=t("div",{class:"animate__animated animate__fadeInUp"},[t("h1",{style:{"font-size":"20rem",filter:"blur(1rem)","animation-duration":"7s"},class:"animate__animated animate__flash animate__infinite"},[t("i",{class:"bi bi-file-binary"})])],-1)),t("div",U,[t("h3",I,[c(a,{t:"Oh no... This link is either expired or invalid."})])])]))])],8,w)}const $=_(g,[["render",j],["__scopeId","data-v-1b44aacd"]]);export{$ as default};
import{_,r,D as p,g as u,c as m,b as t,d as c,$ as h,a as f,j as b}from"./index-DeLT-ag4.js";import{b as v}from"./browser-CjSdxGTc.js";import{L as y}from"./localeText-Bm68I_nB.js";const g={name:"share",components:{LocaleText:y},async setup(){const o=h(),e=r(!1),i=p(),n=r(""),s=r(void 0),l=r(new Blob);await u("/api/getDashboardTheme",{},d=>{n.value=d.data});const a=o.query.ShareID;return a===void 0||a.length===0?(s.value=void 0,e.value=!0):await u("/api/sharePeer/get",{ShareID:a},d=>{d.status?(s.value=d.data,l.value=new Blob([s.value.file],{type:"text/plain"})):s.value=void 0,e.value=!0}),{store:i,theme:n,peerConfiguration:s,blob:l}},mounted(){this.peerConfiguration&&v.toCanvas(document.querySelector("#qrcode"),this.peerConfiguration.file,o=>{o&&console.error(o)})},methods:{download(){const o=new Blob([this.peerConfiguration.file],{type:"text/plain"}),e=URL.createObjectURL(o),i=`${this.peerConfiguration.fileName}.conf`,n=document.createElement("a");n.href=e,n.download=i,n.click()}},computed:{getBlob(){return URL.createObjectURL(this.blob)}}},w=["data-bs-theme"],x={class:"m-auto text-body",style:{width:"500px"}},C={key:0,class:"text-center position-relative",style:{}},U={class:"position-absolute w-100 h-100 top-0 start-0 d-flex animate__animated animate__fadeInUp",style:{"animation-delay":"0.1s"}},I={class:"m-auto"},L={key:1,class:"d-flex align-items-center flex-column gap-3"},B={class:"h1 dashboardLogo text-center animate__animated animate__fadeInUp"},k={id:"qrcode",class:"rounded-3 shadow animate__animated animate__fadeInUp mb-3",ref:"qrcode"},D={class:"text-muted animate__animated animate__fadeInUp mb-1",style:{"animation-delay":"0.2s"}},R=["download","href"];function j(o,e,i,n,s,l){const a=b("LocaleText");return f(),m("div",{class:"container-fluid login-container-fluid d-flex main pt-5 overflow-scroll","data-bs-theme":this.theme},[t("div",x,[this.peerConfiguration?(f(),m("div",L,[t("div",B,[e[1]||(e[1]=t("h6",null,"WGDashboard",-1)),c(a,{t:"Scan QR Code with the WireGuard App to add peer"})]),t("canvas",k,null,512),t("p",D,[c(a,{t:"or click the button below to download the "}),e[2]||(e[2]=t("samp",null,".conf",-1)),c(a,{t:" file"})]),t("a",{download:this.peerConfiguration.fileName+".conf",href:l.getBlob,class:"btn btn-lg bg-primary-subtle text-primary-emphasis border-1 border-primary-subtle animate__animated animate__fadeInUp shadow-sm",style:{"animation-delay":"0.25s"}},e[3]||(e[3]=[t("i",{class:"bi bi-download"},null,-1)]),8,R)])):(f(),m("div",C,[e[0]||(e[0]=t("div",{class:"animate__animated animate__fadeInUp"},[t("h1",{style:{"font-size":"20rem",filter:"blur(1rem)","animation-duration":"7s"},class:"animate__animated animate__flash animate__infinite"},[t("i",{class:"bi bi-file-binary"})])],-1)),t("div",U,[t("h3",I,[c(a,{t:"Oh no... This link is either expired or invalid."})])])]))])],8,w)}const $=_(g,[["render",j],["__scopeId","data-v-1b44aacd"]]);export{$ as default};

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{_ as h,D as m,g as p,q as f,c as b,b as t,d as i,t as _,m as v,s as g,i as d,w as r,j as c,a as n}from"./index-glbWjskj.js";import{b as x}from"./browser-CjSdxGTc.js";import{L as y}from"./localeText-CS3fF34S.js";const T={name:"totp",components:{LocaleText:y},async setup(){const s=m();let e="";return await p("/api/Welcome_GetTotpLink",{},a=>{a.status&&(e=a.data)}),{l:e,store:s}},mounted(){this.l&&x.toCanvas(document.getElementById("qrcode"),this.l,function(s){})},data(){return{totp:"",totpInvalidMessage:"",verified:!1}},methods:{validateTotp(){}},watch:{totp(s){const e=document.querySelector("#totp");e.classList.remove("is-invalid","is-valid"),s.length===6&&(console.log(s),/[0-9]{6}/.test(s)?f("/api/Welcome_VerifyTotpLink",{totp:s},a=>{a.status?(this.verified=!0,e.classList.add("is-valid"),this.$emit("verified")):(e.classList.add("is-invalid"),this.totpInvalidMessage="TOTP does not match.")}):(e.classList.add("is-invalid"),this.totpInvalidMessage="TOTP can only contain numbers"))}}},k=["data-bs-theme"],w={class:"m-auto text-body",style:{width:"500px"}},L={class:"d-flex flex-column"},M={class:"dashboardLogo display-4"},C={class:"mb-2"},P={class:"text-muted"},I={class:"p-3 bg-body-secondary rounded-3 border mb-3"},O={class:"text-muted mb-0"},B=["href"],$={style:{"line-break":"anywhere"}},q={for:"totp",class:"mb-2"},D={class:"text-muted"},S={class:"form-group mb-2"},A=["disabled"],E={class:"invalid-feedback"},F={class:"valid-feedback"},R={class:"d-flex gap-3 mt-5 flex-column"};function G(s,e,a,N,W,j){const o=c("LocaleText"),l=c("RouterLink");return n(),b("div",{class:"container-fluid login-container-fluid d-flex main pt-5 overflow-scroll","data-bs-theme":this.store.Configuration.Server.dashboard_theme},[t("div",w,[t("div",L,[t("div",null,[t("h1",M,[i(o,{t:"Multi-Factor Authentication (MFA)"})]),t("p",C,[t("small",P,[i(o,{t:"1. Please scan the following QR Code to generate TOTP with your choice of authenticator"})])]),e[1]||(e[1]=t("canvas",{id:"qrcode",class:"rounded-3 mb-2"},null,-1)),t("div",I,[t("p",O,[t("small",null,[i(o,{t:"Or you can click the link below:"})])]),t("a",{href:this.l},[t("code",$,_(this.l),1)],8,B)]),t("label",q,[t("small",D,[i(o,{t:"2. Enter the TOTP generated by your authenticator to verify"})])]),t("div",S,[v(t("input",{class:"form-control text-center totp",id:"totp",maxlength:"6",type:"text",inputmode:"numeric",autocomplete:"one-time-code","onUpdate:modelValue":e[0]||(e[0]=u=>this.totp=u),disabled:this.verified},null,8,A),[[g,this.totp]]),t("div",E,[i(o,{t:this.totpInvalidMessage},null,8,["t"])]),t("div",F,[i(o,{t:"TOTP verified!"})])])]),e[4]||(e[4]=t("hr",null,null,-1)),t("div",R,[this.verified?(n(),d(l,{key:1,to:"/",class:"btn btn-dark btn-lg d-flex btn-brand shadow align-items-center flex-grow-1 rounded-3"},{default:r(()=>[i(o,{t:"Complete"}),e[3]||(e[3]=t("i",{class:"bi bi-chevron-right ms-auto"},null,-1))]),_:1})):(n(),d(l,{key:0,to:"/",class:"btn bg-secondary-subtle text-secondary-emphasis rounded-3 flex-grow-1 btn-lg border-1 border-secondary-subtle shadow d-flex"},{default:r(()=>[i(o,{t:"I don't need MFA"}),e[2]||(e[2]=t("i",{class:"bi bi-chevron-right ms-auto"},null,-1))]),_:1}))])])])],8,k)}const z=h(T,[["render",G]]);export{z as default};
import{_ as h,D as m,g as p,q as f,c as b,b as t,d as i,t as _,m as v,s as g,i as d,w as r,j as c,a as n}from"./index-DeLT-ag4.js";import{b as x}from"./browser-CjSdxGTc.js";import{L as y}from"./localeText-Bm68I_nB.js";const T={name:"totp",components:{LocaleText:y},async setup(){const s=m();let e="";return await p("/api/Welcome_GetTotpLink",{},a=>{a.status&&(e=a.data)}),{l:e,store:s}},mounted(){this.l&&x.toCanvas(document.getElementById("qrcode"),this.l,function(s){})},data(){return{totp:"",totpInvalidMessage:"",verified:!1}},methods:{validateTotp(){}},watch:{totp(s){const e=document.querySelector("#totp");e.classList.remove("is-invalid","is-valid"),s.length===6&&(console.log(s),/[0-9]{6}/.test(s)?f("/api/Welcome_VerifyTotpLink",{totp:s},a=>{a.status?(this.verified=!0,e.classList.add("is-valid"),this.$emit("verified")):(e.classList.add("is-invalid"),this.totpInvalidMessage="TOTP does not match.")}):(e.classList.add("is-invalid"),this.totpInvalidMessage="TOTP can only contain numbers"))}}},k=["data-bs-theme"],w={class:"m-auto text-body",style:{width:"500px"}},L={class:"d-flex flex-column"},M={class:"dashboardLogo display-4"},C={class:"mb-2"},P={class:"text-muted"},I={class:"p-3 bg-body-secondary rounded-3 border mb-3"},O={class:"text-muted mb-0"},B=["href"],$={style:{"line-break":"anywhere"}},q={for:"totp",class:"mb-2"},D={class:"text-muted"},S={class:"form-group mb-2"},A=["disabled"],E={class:"invalid-feedback"},F={class:"valid-feedback"},R={class:"d-flex gap-3 mt-5 flex-column"};function G(s,e,a,N,W,j){const o=c("LocaleText"),l=c("RouterLink");return n(),b("div",{class:"container-fluid login-container-fluid d-flex main pt-5 overflow-scroll","data-bs-theme":this.store.Configuration.Server.dashboard_theme},[t("div",w,[t("div",L,[t("div",null,[t("h1",M,[i(o,{t:"Multi-Factor Authentication (MFA)"})]),t("p",C,[t("small",P,[i(o,{t:"1. Please scan the following QR Code to generate TOTP with your choice of authenticator"})])]),e[1]||(e[1]=t("canvas",{id:"qrcode",class:"rounded-3 mb-2"},null,-1)),t("div",I,[t("p",O,[t("small",null,[i(o,{t:"Or you can click the link below:"})])]),t("a",{href:this.l},[t("code",$,_(this.l),1)],8,B)]),t("label",q,[t("small",D,[i(o,{t:"2. Enter the TOTP generated by your authenticator to verify"})])]),t("div",S,[v(t("input",{class:"form-control text-center totp",id:"totp",maxlength:"6",type:"text",inputmode:"numeric",autocomplete:"one-time-code","onUpdate:modelValue":e[0]||(e[0]=u=>this.totp=u),disabled:this.verified},null,8,A),[[g,this.totp]]),t("div",E,[i(o,{t:this.totpInvalidMessage},null,8,["t"])]),t("div",F,[i(o,{t:"TOTP verified!"})])])]),e[4]||(e[4]=t("hr",null,null,-1)),t("div",R,[this.verified?(n(),d(l,{key:1,to:"/",class:"btn btn-dark btn-lg d-flex btn-brand shadow align-items-center flex-grow-1 rounded-3"},{default:r(()=>[i(o,{t:"Complete"}),e[3]||(e[3]=t("i",{class:"bi bi-chevron-right ms-auto"},null,-1))]),_:1})):(n(),d(l,{key:0,to:"/",class:"btn bg-secondary-subtle text-secondary-emphasis rounded-3 flex-grow-1 btn-lg border-1 border-secondary-subtle shadow d-flex"},{default:r(()=>[i(o,{t:"I don't need MFA"}),e[2]||(e[2]=t("i",{class:"bi bi-chevron-right ms-auto"},null,-1))]),_:1}))])])])],8,k)}const z=h(T,[["render",G]]);export{z as default};

View File

@ -1 +1 @@
import{_ as h,W as b,g,c as o,b as t,d as n,m as y,s as f,A as v,w as r,T as c,a,f as x,F as u,h as m,n as T,z as k,t as i,e as A,j as _}from"./index-glbWjskj.js";import{O as w}from"./osmap-BjMGYJcF.js";import{L as R}from"./localeText-CS3fF34S.js";const M={name:"traceroute",components:{LocaleText:R,OSMap:w},data(){return{tracing:!1,ipAddress:void 0,tracerouteResult:void 0}},setup(){return{store:b()}},methods:{execute(){this.ipAddress&&(this.tracing=!0,this.tracerouteResult=void 0,g("/api/traceroute/execute",{ipAddress:this.ipAddress},d=>{d.status?this.tracerouteResult=d.data:this.store.newMessage("Server",d.message,"danger"),this.tracing=!1}))}}},S={class:"mt-md-5 mt-3 text-body"},$={class:"container-md"},C={class:"mb-3 text-body"},L={class:"d-flex gap-2 flex-column mb-5"},P={class:"mb-1 text-muted",for:"ipAddress"},V=["disabled"],N=["disabled"],O={key:0,class:"d-block"},z={key:1,class:"d-block"},B={class:"position-relative"},I={key:"pingPlaceholder"},D={key:1},E={key:"table",class:"w-100 mt-2"},F={class:"table table-sm rounded-3 w-100"},G={scope:"col"},H={scope:"col"},K={scope:"col"},W={scope:"col"},j={scope:"col"},U={scope:"col"},q={key:0};function J(d,s,Q,X,Y,Z){const l=_("LocaleText"),p=_("OSMap");return a(),o("div",S,[t("div",$,[t("h3",C,[n(l,{t:"Traceroute"})]),t("div",L,[t("div",null,[t("label",P,[t("small",null,[n(l,{t:"Enter IP Address / Hostname"})])]),y(t("input",{disabled:this.tracing,id:"ipAddress",class:"form-control","onUpdate:modelValue":s[0]||(s[0]=e=>this.ipAddress=e),onKeyup:s[1]||(s[1]=v(e=>this.execute(),["enter"])),type:"text"},null,40,V),[[f,this.ipAddress]])]),t("button",{class:"btn btn-primary rounded-3 mt-3 position-relative",disabled:this.tracing||!this.ipAddress,onClick:s[2]||(s[2]=e=>this.execute())},[n(c,{name:"slide"},{default:r(()=>[this.tracing?(a(),o("span",z,s[4]||(s[4]=[t("span",{class:"spinner-border spinner-border-sm","aria-hidden":"true"},null,-1),t("span",{class:"visually-hidden",role:"status"},"Loading...",-1)]))):(a(),o("span",O,s[3]||(s[3]=[t("i",{class:"bi bi-person-walking me-2"},null,-1),x("Trace! ")])))]),_:1})],8,N)]),t("div",B,[n(c,{name:"ping"},{default:r(()=>[this.tracerouteResult?(a(),o("div",D,[n(p,{d:this.tracerouteResult,type:"traceroute"},null,8,["d"]),t("div",E,[t("table",F,[t("thead",null,[t("tr",null,[t("th",G,[n(l,{t:"Hop"})]),t("th",H,[n(l,{t:"IP Address"})]),t("th",K,[n(l,{t:"Average RTT (ms)"})]),t("th",W,[n(l,{t:"Min RTT (ms)"})]),t("th",j,[n(l,{t:"Max RTT (ms)"})]),t("th",U,[n(l,{t:"Geolocation"})])])]),t("tbody",null,[(a(!0),o(u,null,m(this.tracerouteResult,(e,tt)=>(a(),o("tr",null,[t("td",null,[t("small",null,i(e.hop),1)]),t("td",null,[t("small",null,i(e.ip),1)]),t("td",null,[t("small",null,i(e.avg_rtt),1)]),t("td",null,[t("small",null,i(e.min_rtt),1)]),t("td",null,[t("small",null,i(e.max_rtt),1)]),t("td",null,[e.geo.city&&e.geo.country?(a(),o("span",q,[t("small",null,i(e.geo.city)+", "+i(e.geo.country),1)])):A("",!0)])]))),256))])])])])):(a(),o("div",I,[s[5]||(s[5]=t("div",{class:"pingPlaceholder bg-body-secondary rounded-3 mb-3",style:{height:"300px !important"}},null,-1)),(a(),o(u,null,m(5,e=>t("div",{class:T(["pingPlaceholder bg-body-secondary rounded-3 mb-3",{"animate__animated animate__flash animate__slower animate__infinite":this.tracing}]),style:k({"animation-delay":`${e*.05}s`})},null,6)),64))]))]),_:1})])])])}const ot=h(M,[["render",J],["__scopeId","data-v-549eb223"]]);export{ot as default};
import{_ as h,W as b,g,c as o,b as t,d as n,m as y,s as f,A as v,w as r,T as c,a,f as x,F as u,h as m,n as T,z as k,t as i,e as A,j as _}from"./index-DeLT-ag4.js";import{O as w}from"./osmap-BpsUKiQ8.js";import{L as R}from"./localeText-Bm68I_nB.js";const M={name:"traceroute",components:{LocaleText:R,OSMap:w},data(){return{tracing:!1,ipAddress:void 0,tracerouteResult:void 0}},setup(){return{store:b()}},methods:{execute(){this.ipAddress&&(this.tracing=!0,this.tracerouteResult=void 0,g("/api/traceroute/execute",{ipAddress:this.ipAddress},d=>{d.status?this.tracerouteResult=d.data:this.store.newMessage("Server",d.message,"danger"),this.tracing=!1}))}}},S={class:"mt-md-5 mt-3 text-body"},$={class:"container-md"},C={class:"mb-3 text-body"},L={class:"d-flex gap-2 flex-column mb-5"},P={class:"mb-1 text-muted",for:"ipAddress"},V=["disabled"],N=["disabled"],O={key:0,class:"d-block"},z={key:1,class:"d-block"},B={class:"position-relative"},I={key:"pingPlaceholder"},D={key:1},E={key:"table",class:"w-100 mt-2"},F={class:"table table-sm rounded-3 w-100"},G={scope:"col"},H={scope:"col"},K={scope:"col"},W={scope:"col"},j={scope:"col"},U={scope:"col"},q={key:0};function J(d,s,Q,X,Y,Z){const l=_("LocaleText"),p=_("OSMap");return a(),o("div",S,[t("div",$,[t("h3",C,[n(l,{t:"Traceroute"})]),t("div",L,[t("div",null,[t("label",P,[t("small",null,[n(l,{t:"Enter IP Address / Hostname"})])]),y(t("input",{disabled:this.tracing,id:"ipAddress",class:"form-control","onUpdate:modelValue":s[0]||(s[0]=e=>this.ipAddress=e),onKeyup:s[1]||(s[1]=v(e=>this.execute(),["enter"])),type:"text"},null,40,V),[[f,this.ipAddress]])]),t("button",{class:"btn btn-primary rounded-3 mt-3 position-relative",disabled:this.tracing||!this.ipAddress,onClick:s[2]||(s[2]=e=>this.execute())},[n(c,{name:"slide"},{default:r(()=>[this.tracing?(a(),o("span",z,s[4]||(s[4]=[t("span",{class:"spinner-border spinner-border-sm","aria-hidden":"true"},null,-1),t("span",{class:"visually-hidden",role:"status"},"Loading...",-1)]))):(a(),o("span",O,s[3]||(s[3]=[t("i",{class:"bi bi-person-walking me-2"},null,-1),x("Trace! ")])))]),_:1})],8,N)]),t("div",B,[n(c,{name:"ping"},{default:r(()=>[this.tracerouteResult?(a(),o("div",D,[n(p,{d:this.tracerouteResult,type:"traceroute"},null,8,["d"]),t("div",E,[t("table",F,[t("thead",null,[t("tr",null,[t("th",G,[n(l,{t:"Hop"})]),t("th",H,[n(l,{t:"IP Address"})]),t("th",K,[n(l,{t:"Average RTT (ms)"})]),t("th",W,[n(l,{t:"Min RTT (ms)"})]),t("th",j,[n(l,{t:"Max RTT (ms)"})]),t("th",U,[n(l,{t:"Geolocation"})])])]),t("tbody",null,[(a(!0),o(u,null,m(this.tracerouteResult,(e,tt)=>(a(),o("tr",null,[t("td",null,[t("small",null,i(e.hop),1)]),t("td",null,[t("small",null,i(e.ip),1)]),t("td",null,[t("small",null,i(e.avg_rtt),1)]),t("td",null,[t("small",null,i(e.min_rtt),1)]),t("td",null,[t("small",null,i(e.max_rtt),1)]),t("td",null,[e.geo.city&&e.geo.country?(a(),o("span",q,[t("small",null,i(e.geo.city)+", "+i(e.geo.country),1)])):A("",!0)])]))),256))])])])])):(a(),o("div",I,[s[5]||(s[5]=t("div",{class:"pingPlaceholder bg-body-secondary rounded-3 mb-3",style:{height:"300px !important"}},null,-1)),(a(),o(u,null,m(5,e=>t("div",{class:T(["pingPlaceholder bg-body-secondary rounded-3 mb-3",{"animate__animated animate__flash animate__slower animate__infinite":this.tracing}]),style:k({"animation-delay":`${e*.05}s`})},null,6)),64))]))]),_:1})])])])}const ot=h(M,[["render",J],["__scopeId","data-v-549eb223"]]);export{ot as default};

View File

@ -10,7 +10,7 @@
<link rel="icon" href="/static/app/dist/favicon.png">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>WGDashboard</title>
<script type="module" crossorigin src="/static/app/dist/assets/index-glbWjskj.js"></script>
<script type="module" crossorigin src="/static/app/dist/assets/index-DeLT-ag4.js"></script>
<link rel="stylesheet" crossorigin href="/static/app/dist/assets/index-D2eeEsuX.css">
</head>
<body>

View File

@ -1,6 +1,6 @@
{
"name": "app",
"version": "4.1.0",
"version": "4.1.1",
"private": true,
"type": "module",
"scripts": {

View File

@ -146,9 +146,7 @@ export default {
id="bullAdd_PresharedKey_Switch" checked>
<label class="form-check-label" for="bullAdd_PresharedKey_Switch">
<small class="fw-bold">
<LocaleText t="Pre-Shared Key"></LocaleText>
<LocaleText t="Enabled" v-if="this.data.preshared_key_bulkAdd"></LocaleText>
<LocaleText t="Disabled" v-else></LocaleText>
<LocaleText t="Pre-Shared Key"></LocaleText> <LocaleText t="Enabled" v-if="this.data.preshared_key_bulkAdd"></LocaleText><LocaleText t="Disabled" v-else></LocaleText>
</small>
</label>
</div>

View File

@ -14,6 +14,11 @@
"lang_name": "English",
"lang_name_localized": "English"
},
{
"lang_id": "es-es",
"lang_name": "Spanish",
"lang_name_localized": "Español"
},
{
"lang_id": "it-it",
"lang_name": "Italian",
@ -48,5 +53,15 @@
"lang_id": "zh-hk",
"lang_name": "Chinese (Traditional)",
"lang_name_localized": "中文(繁體)"
},
{
"lang_id": "sv-se",
"lang_name": "Swedish",
"lang_name_localized": "Svenska"
},
{
"lang_id": "pl",
"lang_name": "Polish",
"lang_name_localized": "Polski"
}
]

View File

@ -1,242 +1,222 @@
{
"Welcome to": "Vítejte v",
"Username": "Uživatelské jméno",
"Password": "Heslo",
"OTP from your authenticator": "Jednorázové heslo (OTP) z vašeho autentizátoru",
"Sign In": "Přihlásit",
"Signing In...": "Přihlašování...",
"Access Remote Server": "Připojit k vzdálenému serveru",
"Server": "Server",
"Click": "Klikněte",
"Pinging...": "Posílám ping...",
"to add your server": "pro přidání vašeho serveru",
"Server List": "Seznam serverů",
"Sorry, your username or password is incorrect.": "Bohužel, vaše uživatelské jméno či heslo je neplatné.",
"Home": "Domů",
"Settings": "Nastavení",
"Tools": "Nástroje",
"Sign Out": "Odhlásit",
"Checking for update...": "Ověření aktualizací...",
"You're on the latest version": "Používáte nejnovější verzi",
"WireGuard Configurations": "WireGuard konfigurace",
"You don't have any WireGuard configurations yet. Please check the configuration folder or change it in Settings. By default the folder is /etc/wireguard.": "Ještě nemáte žádné WireGuard konfigurace. Zkontrolujte adresář konfigurací nebo si jej změňte v Nastaveních. Tento adresář je zvyčejně /etc/wireguard.",
"Configuration": "Konfigurace",
"Configurations": "Konfigurace",
"Peers Default Settings": "Standardní nastavení peerů",
"Dashboard Theme": "Téma Dashboardu",
"Light": "Světlá",
"Dark": "Tmavá",
"This will be changed globally, and will be apply to all peer's QR code and configuration file.": "Toto bude změněno globálně, a bude platit pro QR kódy a konfigurační soubory všech peerů",
"WireGuard Configurations Settings": "Nastavení WireGuard konfigurací",
"Configurations Directory": "Adresář konfigurací",
"Remember to remove / at the end of your path. e.g /etc/wireguard": "Nezapomeňte odstranit lomítko na konci cesty, např. /etc/wireguard",
"WGDashboard Account Settings": "Nastavení účtu WGDashboard",
"Current Password": "Současné heslo",
"New Password": "Nové heslo",
"Repeat New Password": "Zopakujte nové heslo",
"Update Password": "Aktualizace hesla",
"Multi-Factor Authentication (MFA)": "Vícefaktorové ověření (MFA)",
"Reset": "Resetovat",
"Setup": "Nastavení",
"API Keys": "API klíče",
"API Key": "API klíč",
"Key": "Klíč",
"Enabled": "Povoleno",
"Disabled": "Zakázáno",
"No WGDashboard API Key": "Žádný WGDashboard API klíč",
"Expire At": "Vyprší",
"Are you sure to delete this API key?": "Určitě chcete smazat tento API klíč?",
"Create API Key": "Vytvořit API klíč",
"When should this API Key expire?": "Kdy má tento API klíč vypršet?",
"Never Expire": "Bez expirace",
"Don't think that's a good idea": "To není dobrý nápad",
"Creating...": "Tvořím...",
"Create": "Vytvořit",
"Status": "Stav",
"On": "Zapnuto",
"Off": "Vypnuto",
"Turning On...": "Zapínám...",
"Turning Off...": "Vypínám...",
"Address": "Adresa",
"Listen Port": "Otevřený port",
"Public Key": "Veřejný klíč",
"Connected Peers": "Připojení peers",
"Total Usage": "Celkem přeneseno",
"Total Received": "Celkem přijato",
"Total Sent": "Celkem odesláno",
"Peers Data Usage": "Datová spotřeba peerů",
"Real Time Received Data Usage": "Aktuální rychlost příchozích dat",
"Real Time Sent Data Usage": "Aktuální rychlost odchozích dat",
"Peer": "Peer",
"Peers": "Peers",
"Peer Settings": "Nastavení peers",
"Download All": "Stáhnout vše",
"Search Peers...": "Hledat peers...",
"Display": "Zobrazit",
"Sort By": "Seřadit dle",
"Refresh Interval": "Aktualizační interval",
"Name": "Jméno",
"Allowed IPs": "Povolené IP adresy",
"Restricted": "Omezeno",
"(.*) Seconds": "$1 sekund",
"(.*) Minutes": "$1 minut",
"Configuration Settings": "Nastavení konfigurací",
"Peer Jobs": "Peer úkoly",
"Active Jobs": "Aktivní úkoly",
"All Active Jobs": "Všechny aktivní úkoly",
"Logs": "Logy",
"Private Key": "Soukromý klíč",
"(Required for QR Code and Download)": "(Nutné pro QR kód a stažení)",
"(Required)": "(Povinné)",
"Endpoint Allowed IPs": "Povolené IP adresy koncového bodu",
"DNS": "DNS",
"Optional Settings": "Volitelná nastavení",
"Pre-Shared Key": "Před-sdílený klíč",
"MTU": "MTU",
"Persistent Keepalive": "Persistentní keepalive",
"Reset Data Usage": "Resetovat objemy",
"Total": "Celkem",
"Sent": "Odesláno",
"Received": "Přijato",
"Revert": "Revertovat",
"Save Peer": "Uložit peera",
"QR Code": "QR kód",
"Schedule Jobs": "Naplánovat úkol",
"Job": "Úkol",
"Job ID": "ID úkolu",
"Unsaved Job": "Neuložený úkol",
"This peer does not have any job yet.": "Tento peer ještě nemá žádný úkol.",
"if": "pokud",
"is": "je",
"then": "pak",
"larger than": "více než",
"Date": "Datum",
"Restrict Peer": "Omezit peera",
"Delete Peer": "Smazat peera",
"Edit": "Upravit",
"Delete": "Smazat",
"Deleting...": "Mažu...",
"Cancel": "Zrušit",
"Save": "Uložit",
"No active job at the moment.": "Žádný úkol v současnosti neprobíhá.",
"Jobs Logs": "Logy úkolů",
"Updated at": "Aktualizováno",
"Refresh": "Aktualizovat",
"Filter": "Filtrovat",
"Success": "Úspěch",
"Failed": "Neúspěch",
"Log ID": "ID logu",
"Message": "Zpráva",
"Share Peer": "Sdílet peera",
"Currently the peer is not sharing": "Peer momentálně nesdílí",
"Sharing...": "Sdílím...",
"Start Sharing": "Zahájit sdílení",
"Stop Sharing...": "Ukončit sdílení...",
"Stop Sharing": "Ukončit sdílení",
"Access Restricted": "Přístup omezen",
"Restrict Access": "Omezit přístup",
"Restricting...": "Omezuji...",
"Allow Access": "Povolit přístup",
"Allowing Access...": "Povoluji přístup...",
"Download & QR Code is not available due to no private key set for this peer": "Stažení a QR kód nejsou k dispozici, peer nemá nastavený soukromý klíč.",
"Add Peers": "Přidat peery",
"Bulk Add": "Hromadný import",
"By adding peers by bulk, each peer's name will be auto generated, and Allowed IP will be assign to the next available IP.": "Při hromadném importu bude jméno každého peera vygenerované automaticky, a povolená IP adresa bude nastavena na další v pořadí",
"How many peers you want to add?": "Kolik peerů chcete přidat?",
"You can add up to (.*) peers": "Můžete přidat nanejvýš $1 peerů",
"Use your own Private and Public Key": "Použít vlastní soukromý a veřejný klíč",
"Enter IP Address/CIDR": "Zadejte IP adresu/CIDR",
"IP Address/CIDR": "IP adresa/CIDR",
"or": "nebo",
"Pick Available IP": "Vyberte dostupnou IP",
"No available IP containing": "Žádná dostupná IP obsahující",
"Add": "Přidat",
"Adding...": "Přidávám...",
"Failed to check available update": "Nepodařilo se zkontrolovat dostupnost aktualizací",
"Nice to meet you!": "Rádi vás poznáváme!",
"Please fill in the following fields to finish setup": "Prosím, vyplňte následující pole pro dokončení nastavení",
"Create an account": "Vytvořit účet",
"Enter an username you like": "Zadejte uživatelské jméno",
"Enter a password": "Zadejte heslo",
"\\(At least 8 characters and make sure is strong enough!\\)": "(Alespoň 8 znaků s dostatečnou složitostí)",
"Confirm password": "Potvrdit heslo",
"Next": "Další",
"Saving\\.\\.\\.": "Ukládám...",
"1\\. Please scan the following QR Code to generate TOTP with your choice of authenticator": "1. Pro nastavení TOTP naskenujte následující QR kód ve vašem oblíbeném autentizátoru",
"Or you can click the link below:": "Nebo klikněte na odkaz níže:",
"2\\. Enter the TOTP generated by your authenticator to verify": "2. Vložte TOTP vygenerovaný vaším autentizátorem pro ověření správnosti",
"TOTP verified!": "TOTP ověřeno!",
"I don't need MFA": "Nepotřebuji MFA",
"Complete": "Hotovo",
"(v[0-9.]{1,}) is now available for update!": "Aktualizace na verzi $1 je nyní k dispozici!",
"Current Version:": "Aktuální verze:",
"Oh no\\.\\.\\. This link is either expired or invalid\\.": "Bohužel, tento odkaz již buď vypršel, nebo je neplatný.",
"Scan QR Code with the WireGuard App to add peer": "Naskenujte QR kód ve WireGuard aplikaci pro přidání peera",
"or click the button below to download the ": "nebo klikněte na tlačítko níže pro stažení ",
" file": " souboru",
"FROM ": "OD",
"(.*) is on": "$1 je zapnuto",
"(.*) is off": "$1 je vypnuto",
"Allowed IPs is invalid": "Povolené IP jsou neplatné",
"Peer created successfully": "Peer úspěšně vytvořen",
"Please fill in all required box": "Prosím, vyplňte všechna pole",
"Please specify amount of peers you want to add": "Uveďte počet peerů, které chcete přidat",
"No more available IP can assign": "Žádné zbylé IP adresy k přiřazení",
"The maximum number of peers can add is (.*)": "Maximální počet peerů, které lze přidat, je $1",
"Generating key pairs by bulk failed": "Hromadné generování párových klíčů selhalo",
"Failed to add peers in bulk": "Selhal hromadný import peerů",
"This peer already exist": "Tento peer již existuje",
"This IP is not available: (.*)": "Tato IP není dostupná: $1",
"Configuration does not exist": "Konfigurace neexistuje",
"Peer does not exist": "Peer neexistuje",
"Please provide a valid configuration name": "Prosím, uveďte platný název konfigurace",
"Peer saved": "Peer uložen",
"Allowed IPs already taken by another peer": "Povolené IP jsou již obsazeny jiným peerem",
"Endpoint Allowed IPs format is incorrect": "Neplatný formát povolených IP koncového bodu",
"DNS format is incorrect": "DNS formát je neplatný",
"MTU format is not correct": "MTU formát je neplatný",
"Persistent Keepalive format is not correct": "Neplatný formát persistentních keepalives",
"Private key does not match with the public key": "Soukromý klíč neodpovídá veřejnému klíči",
"Update peer failed when updating Pre-Shared Key": "Aktualizace peera selhala při aktualizování před-sdíleného klíče",
"Update peer failed when updating Allowed IPs": "Aktualizace peera selhala při aktualizování povolených IP",
"Update peer failed when saving the configuration": "Aktualizace peera selhala při ukládání konfigurace",
"Peer data usage reset successfully": "Datová spotřeba peera úspěšně resetována",
"Peer download started": "Download peera zahájen",
"Please specify one or more peers": "Specifikujte jednoho či více peerů",
"Share link failed to create. Reason: (.*)": "Sdílecí odkaz se nepodařilo vytvořit. Důvod: $1",
"Link expire date updated": "Datum vypršení odkazu aktualizováno",
"Link expire date failed to update. Reason: (.*)": "Datum vypršení odkazu se nepodařilo aktualizovat. Důvod: $1",
"Peer job saved": "Peer úkol uložen",
"Please specify job": "Prosím, uveďte úkol",
"Please specify peer and configuration": "Prosím, uveďte peera a konfiguraci",
"Peer job deleted": "Peer úkol smazán",
"API Keys function is successfully enabled": "Funkce API klíčů je povolena",
"API Keys function is successfully disabled": "Funke API klíčů je vypnuta",
"API Keys function is failed to enable": "Funkci API klíčů se nepodařilo povolit",
"API Keys function is failed to disable": "Funkci API klíčů se nepodařilo vypnout",
"WGDashboard API Keys function is disabled": "Funkce WGDashboard API klíčů je vypnuta",
"WireGuard configuration path saved": "Cesta k WireGuard konfiguracím je uložena",
"API Key deleted": "API klíč smazán",
"API Key created": "API klíč vytvořen",
"Sign in session ended, please sign in again": "Přihlášení vypršelo, přihlašte se znovu, prosím",
"Please specify an IP Address (v4/v6)": "Prosím, uveďte IP adresu (v4/v6)",
"Please provide ipAddress and count": "Prosím, uveďte IP adresu a počet",
"Please provide ipAddress": "Prosím, uveďte IP adresu",
"Dashboard Language": "Jazyk dashboardu",
"Dashboard language update failed": "Aktualizace jazyka dashboardu selhalo",
"Peer Remote Endpoint": "Koncový bod peera",
"New Configuration": "Nová konfigurace",
"Configuration Name": "Název konfigurace",
"Configuration name is invalid. Possible reasons:": "Název konfigurace je neplatný. Možné důvody:",
"Configuration name already exist\\.": "Název konfigurace již existuje",
"Configuration name can only contain 15 lower/uppercase alphabet, numbers, underscore, equal sign, plus sign, period and hyphen\\.": "Název konfigurace smí obsahovat pouze 15 alfanumerických znaků, podtržítko, rovnítko, plus, tečku a pomlčku.",
"Invalid Port": "Neplatný port",
"Save Configuration": "Uložit konfiguraci",
"IP Address/CIDR is invalid": "IP adresa/CIDR je neplatná",
"IP Address": "IP adresa",
"Enter IP Address / Hostname": "Zadejte IP adresu / hostname",
"IP Address / Hostname": "IP adresa / hostname",
"Count": "Počet",
"Welcome to": "Vítejte v",
"Username": "Uživatelské jméno",
"Password": "Heslo",
"OTP from your authenticator": "Jednorázové heslo (OTP) z vašeho autentizátoru",
"Sign In": "Přihlásit",
"Access Remote Server": "Připojit k vzdálenému serveru",
"Server": "Server",
"Click": "Klikněte",
"Pinging...": "Posílám ping...",
"to add your server": "pro přidání vašeho serveru",
"Server List": "Seznam serverů",
"Sorry, your username or password is incorrect.": "Bohužel, vaše uživatelské jméno či heslo je neplatné.",
"Home": "Domů",
"Settings": "Nastavení",
"Tools": "Nástroje",
"Sign Out": "Odhlásit",
"Checking for update...": "Ověření aktualizací...",
"You're on the latest version": "Používáte nejnovější verzi",
"WireGuard Configurations": "WireGuard konfigurace",
"You don't have any WireGuard configurations yet. Please check the configuration folder or change it in Settings. By default the folder is /etc/wireguard.": "Ještě nemáte žádné WireGuard konfigurace. Zkontrolujte adresář konfigurací nebo si jej změňte v Nastaveních. Tento adresář je zvyčejně /etc/wireguard.",
"Configuration": "Konfigurace",
"Configurations": "Konfigurace",
"Peers Default Settings": "Standardní nastavení peerů",
"Dashboard Theme": "Téma Dashboardu",
"Light": "Světlá",
"Dark": "Tmavá",
"This will be changed globally, and will be apply to all peer's QR code and configuration file.": "Toto bude změněno globálně, a bude platit pro QR kódy a konfigurační soubory všech peerů",
"WireGuard Configurations Settings": "Nastavení WireGuard konfigurací",
"Configurations Directory": "Adresář konfigurací",
"Remember to remove / at the end of your path. e.g /etc/wireguard": "Nezapomeňte odstranit lomítko na konci cesty, např. /etc/wireguard",
"WGDashboard Account Settings": "Nastavení účtu WGDashboard",
"Current Password": "Současné heslo",
"New Password": "Nové heslo",
"Repeat New Password": "Zopakujte nové heslo",
"Update Password": "Aktualizace hesla",
"Reset": "Resetovat",
"Setup": "Nastavení",
"API Keys": "API klíče",
"API Key": "API klíč",
"Key": "Klíč",
"Enabled": "Povoleno",
"Disabled": "Zakázáno",
"No WGDashboard API Key": "Žádný WGDashboard API klíč",
"Expire At": "Vyprší",
"Create API Key": "Vytvořit API klíč",
"Never Expire": "Bez expirace",
"Don't think that's a good idea": "To není dobrý nápad",
"Create": "Vytvořit",
"Status": "Stav",
"On": "Zapnuto",
"Off": "Vypnuto",
"Address": "Adresa",
"Listen Port": "Otevřený port",
"Public Key": "Veřejný klíč",
"Connected Peers": "Připojení peers",
"Total Usage": "Celkem přeneseno",
"Total Received": "Celkem přijato",
"Total Sent": "Celkem odesláno",
"Peers Data Usage": "Datová spotřeba peerů",
"Real Time Received Data Usage": "Aktuální rychlost příchozích dat",
"Real Time Sent Data Usage": "Aktuální rychlost odchozích dat",
"Peer": "Peer",
"Peers": "Peers",
"Peer Settings": "Nastavení peers",
"Download All": "Stáhnout vše",
"Display": "Zobrazit",
"Sort By": "Seřadit dle",
"Refresh Interval": "Aktualizační interval",
"Name": "Jméno",
"Allowed IPs": "Povolené IP adresy",
"Restricted": "Omezeno",
"(.*) Seconds": "$1 sekund",
"(.*) Minutes": "$1 minut",
"Configuration Settings": "Nastavení konfigurací",
"Peer Jobs": "Peer úkoly",
"Active Jobs": "Aktivní úkoly",
"All Active Jobs": "Všechny aktivní úkoly",
"Logs": "Logy",
"Private Key": "Soukromý klíč",
"Endpoint Allowed IPs": "Povolené IP adresy koncového bodu",
"DNS": "DNS",
"Optional Settings": "Volitelná nastavení",
"Pre-Shared Key": "Před-sdílený klíč",
"MTU": "MTU",
"Persistent Keepalive": "Persistentní keepalive",
"Reset Data Usage": "Resetovat objemy",
"Total": "Celkem",
"Sent": "Odesláno",
"Received": "Přijato",
"Revert": "Revertovat",
"Save Peer": "Uložit peera",
"QR Code": "QR kód",
"Schedule Jobs": "Naplánovat úkol",
"Job": "Úkol",
"Job ID": "ID úkolu",
"Unsaved Job": "Neuložený úkol",
"if": "pokud",
"is": "je",
"then": "pak",
"larger than": "více než",
"Date": "Datum",
"Restrict Peer": "Omezit peera",
"Delete Peer": "Smazat peera",
"Edit": "Upravit",
"Delete": "Smazat",
"Deleting...": "Mažu...",
"Cancel": "Zrušit",
"Save": "Uložit",
"Jobs Logs": "Logy úkolů",
"Updated at": "Aktualizováno",
"Refresh": "Aktualizovat",
"Filter": "Filtrovat",
"Success": "Úspěch",
"Failed": "Neúspěch",
"Log ID": "ID logu",
"Message": "Zpráva",
"Share Peer": "Sdílet peera",
"Currently the peer is not sharing": "Peer momentálně nesdílí",
"Start Sharing": "Zahájit sdílení",
"Stop Sharing": "Ukončit sdílení",
"Access Restricted": "Přístup omezen",
"Restrict Access": "Omezit přístup",
"Allow Access": "Povolit přístup",
"Add Peers": "Přidat peery",
"Bulk Add": "Hromadný import",
"You can add up to (.*) peers": "Můžete přidat nanejvýš $1 peerů",
"Use your own Private and Public Key": "Použít vlastní soukromý a veřejný klíč",
"Enter IP Address/CIDR": "Zadejte IP adresu/CIDR",
"IP Address/CIDR": "IP adresa/CIDR",
"or": "nebo",
"Pick Available IP": "Vyberte dostupnou IP",
"No available IP containing": "Žádná dostupná IP obsahující",
"Add": "Přidat",
"Failed to check available update": "Nepodařilo se zkontrolovat dostupnost aktualizací",
"Nice to meet you!": "Rádi vás poznáváme!",
"Please fill in the following fields to finish setup": "Prosím, vyplňte následující pole pro dokončení nastavení",
"Create an account": "Vytvořit účet",
"Enter an username you like": "Zadejte uživatelské jméno",
"Enter a password": "Zadejte heslo",
"\\(At least 8 characters and make sure is strong enough!\\)": "(Alespoň 8 znaků s dostatečnou složitostí)",
"Confirm password": "Potvrdit heslo",
"Next": "Další",
"Saving\\.\\.\\.": "Ukládám...",
"1\\. Please scan the following QR Code to generate TOTP with your choice of authenticator": "1. Pro nastavení TOTP naskenujte následující QR kód ve vašem oblíbeném autentizátoru",
"Or you can click the link below:": "Nebo klikněte na odkaz níže:",
"2\\. Enter the TOTP generated by your authenticator to verify": "2. Vložte TOTP vygenerovaný vaším autentizátorem pro ověření správnosti",
"TOTP verified!": "TOTP ověřeno!",
"I don't need MFA": "Nepotřebuji MFA",
"Complete": "Hotovo",
"(v[0-9.]{1,}) is now available for update!": "Aktualizace na verzi $1 je nyní k dispozici!",
"Current Version:": "Aktuální verze:",
"Oh no\\.\\.\\. This link is either expired or invalid\\.": "Bohužel, tento odkaz již buď vypršel, nebo je neplatný.",
"Scan QR Code with the WireGuard App to add peer": "Naskenujte QR kód ve WireGuard aplikaci pro přidání peera",
"or click the button below to download the ": "nebo klikněte na tlačítko níže pro stažení ",
" file": " souboru",
"FROM ": "OD",
"(.*) is on": "$1 je zapnuto",
"(.*) is off": "$1 je vypnuto",
"Allowed IPs is invalid": "Povolené IP jsou neplatné",
"Peer created successfully": "Peer úspěšně vytvořen",
"Please fill in all required box": "Prosím, vyplňte všechna pole",
"Please specify amount of peers you want to add": "Uveďte počet peerů, které chcete přidat",
"No more available IP can assign": "Žádné zbylé IP adresy k přiřazení",
"The maximum number of peers can add is (.*)": "Maximální počet peerů, které lze přidat, je $1",
"Generating key pairs by bulk failed": "Hromadné generování párových klíčů selhalo",
"Failed to add peers in bulk": "Selhal hromadný import peerů",
"This peer already exist": "Tento peer již existuje",
"This IP is not available: (.*)": "Tato IP není dostupná: $1",
"Configuration does not exist": "Konfigurace neexistuje",
"Peer does not exist": "Peer neexistuje",
"Please provide a valid configuration name": "Prosím, uveďte platný název konfigurace",
"Peer saved": "Peer uložen",
"Allowed IPs already taken by another peer": "Povolené IP jsou již obsazeny jiným peerem",
"Endpoint Allowed IPs format is incorrect": "Neplatný formát povolených IP koncového bodu",
"DNS format is incorrect": "DNS formát je neplatný",
"MTU format is not correct": "MTU formát je neplatný",
"Persistent Keepalive format is not correct": "Neplatný formát persistentních keepalives",
"Private key does not match with the public key": "Soukromý klíč neodpovídá veřejnému klíči",
"Update peer failed when updating Pre-Shared Key": "Aktualizace peera selhala při aktualizování před-sdíleného klíče",
"Update peer failed when updating Allowed IPs": "Aktualizace peera selhala při aktualizování povolených IP",
"Update peer failed when saving the configuration": "Aktualizace peera selhala při ukládání konfigurace",
"Peer data usage reset successfully": "Datová spotřeba peera úspěšně resetována",
"Peer download started": "Download peera zahájen",
"Please specify one or more peers": "Specifikujte jednoho či více peerů",
"Share link failed to create. Reason: (.*)": "Sdílecí odkaz se nepodařilo vytvořit. Důvod: $1",
"Link expire date updated": "Datum vypršení odkazu aktualizováno",
"Link expire date failed to update. Reason: (.*)": "Datum vypršení odkazu se nepodařilo aktualizovat. Důvod: $1",
"Peer job saved": "Peer úkol uložen",
"Please specify job": "Prosím, uveďte úkol",
"Please specify peer and configuration": "Prosím, uveďte peera a konfiguraci",
"Peer job deleted": "Peer úkol smazán",
"API Keys function is successfully enabled": "Funkce API klíčů je povolena",
"API Keys function is successfully disabled": "Funke API klíčů je vypnuta",
"API Keys function is failed to enable": "Funkci API klíčů se nepodařilo povolit",
"API Keys function is failed to disable": "Funkci API klíčů se nepodařilo vypnout",
"WGDashboard API Keys function is disabled": "Funkce WGDashboard API klíčů je vypnuta",
"WireGuard configuration path saved": "Cesta k WireGuard konfiguracím je uložena",
"API Key deleted": "API klíč smazán",
"API Key created": "API klíč vytvořen",
"Sign in session ended, please sign in again": "Přihlášení vypršelo, přihlašte se znovu, prosím",
"Please specify an IP Address (v4/v6)": "Prosím, uveďte IP adresu (v4/v6)",
"Please provide ipAddress and count": "Prosím, uveďte IP adresu a počet",
"Please provide ipAddress": "Prosím, uveďte IP adresu",
"Dashboard Language": "Jazyk dashboardu",
"Dashboard language update failed": "Aktualizace jazyka dashboardu selhalo",
"Peer Remote Endpoint": "Koncový bod peera",
"New Configuration": "Nová konfigurace",
"Configuration Name": "Název konfigurace",
"Configuration name is invalid. Possible reasons:": "Název konfigurace je neplatný. Možné důvody:",
"Configuration name already exist\\.": "Název konfigurace již existuje",
"Configuration name can only contain 15 lower/uppercase alphabet, numbers, underscore, equal sign, plus sign, period and hyphen\\.": "Název konfigurace smí obsahovat pouze 15 alfanumerických znaků, podtržítko, rovnítko, plus, tečku a pomlčku.",
"Invalid Port": "Neplatný port",
"Save Configuration": "Uložit konfiguraci",
"IP Address/CIDR is invalid": "IP adresa/CIDR je neplatná",
"IP Address": "IP adresa",
"Enter IP Address / Hostname": "Zadejte IP adresu / hostname",
"IP Address / Hostname": "IP adresa / hostname",
"Count": "Počet",
"Geolocation": "Geolokace",
"Is Alive": "Je naživu",
"Average / Min / Max Round Trip Time": "Průměr / Min / Max / Max okružní cesta",
@ -307,5 +287,26 @@
"Deleted ([0-9]{1,}) peer\\(s\\)": "Smazáno $1 peer/-ů",
"Deleted ([0-9]{1,}) peer\\(s\\) successfully. Failed to delete ([0-9]{1,}) peer\\(s\\)": "Smazáno $1 peer/-ů. Nezdařilo se smazat $2 peer/-ů",
"Restricted ([0-9]{1,}) peer\\(s\\)": "Omezeno $1 peer/-ů",
"Restricted ([0-9]{1,}) peer\\(s\\) successfully. Failed to restrict ([0-9]{1,}) peer\\(s\\)": "Omezeno $1 peer/-ů. Nezdařilo se omezit $2 peer/-ů"
"Restricted ([0-9]{1,}) peer\\(s\\) successfully. Failed to restrict ([0-9]{1,}) peer\\(s\\)": "Omezeno $1 peer/-ů. Nezdařilo se omezit $2 peer/-ů",
"Signing In\\.\\.\\.": "Přihlašování...",
"Multi-Factor Authentication \\(MFA\\)": "Vícefaktorové ověření (MFA)",
"Are you sure to delete this API key\\?": "Určitě chcete smazat tento API klíč?",
"When should this API Key expire\\?": "Kdy má tento API klíč vypršet?",
"Creating\\.\\.\\.": "Tvořím...",
"Turning On\\.\\.\\.": "Zapínám...",
"Turning Off\\.\\.\\.": "Vypínám...",
"Search Peers\\.\\.\\.": "Hledat peers...",
"\\(Required for QR Code and Download\\)": "(Nutné pro QR kód a stažení)",
"\\(Required\\)": "(Povinné)",
"This peer does not have any job yet\\.": "Tento peer ještě nemá žádný úkol.",
"No active job at the moment\\.": "Žádný úkol v současnosti neprobíhá.",
"Sharing\\.\\.\\.": "Sdílím...",
"Stop Sharing\\.\\.\\.": "Ukončit sdílení...",
"Restricting\\.\\.\\.": "Omezuji...",
"Allowing Access\\.\\.\\.": "Povoluji přístup...",
"Download \\& QR Code is not available due to no private key set for this peer": "Stažení a QR kód nejsou k dispozici, peer nemá nastavený soukromý klíč.",
"By adding peers by bulk, each peer's name will be auto generated, and Allowed IP will be assign to the next available IP\\.": "Při hromadném importu bude jméno každého peera vygenerované automaticky, a povolená IP adresa bude nastavena na další v pořadí",
"How many peers you want to add\\?": "Kolik peerů chcete přidat?",
"Adding\\.\\.\\.": "Přidávám...",
"Dashboard IP Address \\& Listen Port": ""
}

View File

@ -1,311 +1,312 @@
{
"Welcome to": "Willkommen bei",
"Username": "Benutzername",
"Password": "Passwort",
"OTP from your authenticator": "OTP von deinem Authentifikator",
"Sign In": "Anmelden",
"Signing In...": "Anmeldung...",
"Access Remote Server": "Zugriff auf Remote-Server",
"Server": "Server",
"Click": "Klicken",
"Pinging...": "Pinge...",
"to add your server": "um deinen Server hinzuzufügen",
"Server List": "Serverliste",
"Sorry, your username or password is incorrect.": "Entschuldige, dein Benutzername oder Passwort ist falsch.",
"Home": "Startseite",
"Settings": "Einstellungen",
"Tools": "Werkzeuge",
"Sign Out": "Abmelden",
"Checking for update...": "Suche nach Updates...",
"You're on the latest version": "Du verwendest die aktuellste Version",
"WireGuard Configurations": "WireGuard Konfigurationen",
"You don't have any WireGuard configurations yet. Please check the configuration folder or change it in Settings. By default the folder is /etc/wireguard.": "Du hast noch keine WireGuard-Konfigurationen. Bitte überprüfe den Konfigurationsordner oder ändere ihn in den Einstellungen. Standardmäßig ist der Ordner /etc/wireguard.",
"Configuration": "Konfiguration",
"Configurations": "Konfigurationen",
"Peers Default Settings": "Peers Standardeinstellungen",
"Dashboard Theme": "Dashboard-Design",
"Light": "Hell",
"Dark": "Dunkel",
"This will be changed globally, and will be apply to all peer's QR code and configuration file.": "Dies wird global geändert und gilt für alle Peer-QR-Codes und Konfigurationsdateien.",
"WireGuard Configurations Settings": "WireGuard Konfigurationseinstellungen",
"Configurations Directory": "Konfigurationsverzeichnis",
"Remember to remove / at the end of your path. e.g /etc/wireguard": "Vergiss nicht, das \"/\" am Ende deines Pfads zu entfernen. z.B. /etc/wireguard",
"WGDashboard Account Settings": "WGDashboard Kontoeinstellungen",
"Current Password": "Aktuelles Passwort",
"New Password": "Neues Passwort",
"Repeat New Password": "Neues Passwort wiederholen",
"Update Password": "Passwort aktualisieren",
"Multi-Factor Authentication (MFA)": "Multi-Faktor-Authentifizierung (MFA)",
"Reset": "Zurücksetzen",
"Setup": "Einrichten",
"API Keys": "API-Schlüssel",
"API Key": "API-Schlüssel",
"Key": "Schlüssel",
"Enabled": "Aktiviert",
"Disabled": "Deaktiviert",
"No WGDashboard API Key": "Kein WGDashboard API-Schlüssel",
"Expire At": "Ablaufdatum",
"Are you sure to delete this API key?": "Bist du sicher, dass du diesen API-Schlüssel löschen möchtest?",
"Create API Key": "API-Schlüssel erstellen",
"When should this API Key expire?": "Wann soll dieser API-Schlüssel ablaufen?",
"Never Expire": "Kein Ablaufdatum",
"Don't think that's a good idea": "Das ist wohl keine gute Idee",
"Creating...": "Erstelle...",
"Create": "Erstellen",
"Status": "Status",
"On": "An",
"Off": "Aus",
"Turning On...": "Schalte ein...",
"Turning Off...": "Schalte aus...",
"Address": "Adresse",
"Listen Port": "Empfangsport",
"Public Key": "Öffentlicher Schlüssel",
"Connected Peers": "Verbundene Peers",
"Total Usage": "Gesamtnutzung",
"Total Received": "Gesamt empfangen",
"Total Sent": "Gesamt gesendet",
"Peers Data Usage": "Datenverbrauch der Peers",
"Real Time Received Data Usage": "Datenempfang in Echtzeit",
"Real Time Sent Data Usage": "Datensendung in Echtzeit",
"Peer": "Peer",
"Peers": "Peers",
"Peer Settings": "Peers Einstellungen",
"Download All": "Alle herunterladen",
"Search Peers...": "Suche Peers...",
"Display": "Anzeigen",
"Sort By": "Sortieren nach",
"Refresh Interval": "Aktualisierungsintervall",
"Name": "Name",
"Allowed IPs": "Erlaubte IPs",
"Restricted": "Eingeschränkt",
"(.*) Seconds": "$1 Sekunden",
"(.*) Minutes": "$1 Minuten",
"Configuration Settings": "Konfigurationseinstellungen",
"Peer Jobs": "Peer-Aufgaben",
"Active Jobs": "Aktive Aufgaben",
"All Active Jobs": "Alle aktiven Aufgaben",
"Logs": "Protokolle",
"Private Key": "Privater Schlüssel",
"(Required for QR Code and Download)": "(Erforderlich für QR-Code und Download)",
"(Required)": "(Erforderlich)",
"Endpoint Allowed IPs": "Erlaubte IPs für Endpunkt",
"DNS": "DNS",
"Optional Settings": "Optionale Einstellungen",
"Pre-Shared Key": "Vorab geteilter Schlüssel",
"MTU": "MTU",
"Persistent Keepalive": "Ständiges Keepalive",
"Reset Data Usage": "Datenverbrauch zurücksetzen",
"Total": "Gesamt",
"Sent": "Gesendet",
"Received": "Empfangen",
"Revert": "Zurücksetzen",
"Save Peer": "Peer speichern",
"QR Code": "QR-Code",
"Schedule Jobs": "Aufgaben planen",
"Job": "Aufgabe",
"Job ID": "Aufgaben-ID",
"Unsaved Job": "Nicht gespeicherte Aufgabe",
"This peer does not have any job yet.": "Dieser Peer hat noch keine Aufgabe.",
"if": "wenn",
"is": "ist",
"then": "dann",
"larger than": "größer als",
"Date": "Datum",
"Restrict Peer": "Peer einschränken",
"Delete Peer": "Peer löschen",
"Edit": "Bearbeiten",
"Delete": "Löschen",
"Deleting...": "Lösche...",
"Cancel": "Abbrechen",
"Save": "Speichern",
"No active job at the moment.": "Zurzeit keine aktive Aufgabe.",
"Jobs Logs": "Aufgabenprotokolle",
"Updated at": "Aktualisiert am",
"Refresh": "Aktualisieren",
"Filter": "Filtern",
"Success": "Erfolgreich",
"Failed": "Fehlgeschlagen",
"Log ID": "Protokoll-ID",
"Message": "Nachricht",
"Share Peer": "Peer teilen",
"Currently the peer is not sharing": "Der Peer wird derzeit nicht freigegeben",
"Sharing...": "Teile...",
"Start Sharing": "Teilen starten",
"Stop Sharing...": "Teilen beenden...",
"Stop Sharing": "Teilen beenden",
"Access Restricted": "Zugriff eingeschränkt",
"Restrict Access": "Zugriff einschränken",
"Restricting...": "Einschränken...",
"Allow Access": "Zugriff erlauben",
"Allowing Access...": "Erlaube Zugriff...",
"Download & QR Code is not available due to no private key set for this peer": "Download & QR-Code sind nicht verfügbar, da kein privater Schlüssel für diesen Peer festgelegt wurde",
"Add Peers": "Peers hinzufügen",
"Bulk Add": "Massenerstellung",
"By adding peers by bulk, each peer's name will be auto generated, and Allowed IP will be assign to the next available IP.": "Bei der Massenerstellung wird der Name jedes Peers automatisch generiert, und die erlaubte IP wird der nächsten verfügbaren IP zugewiesen.",
"How many peers you want to add?": "Wie viele Peers möchtest du hinzufügen?",
"You can add up to (.*) peers": "Du kannst bis zu $1 Peers hinzufügen",
"Use your own Private and Public Key": "Verwende deinen eigenen privaten und öffentlichen Schlüssel",
"Enter IP Address/CIDR": "Gib IP-Adresse/CIDR ein",
"IP Address/CIDR": "IP-Adresse/CIDR",
"or": "oder",
"Pick Available IP": "Verfügbare IP auswählen",
"No available IP containing": "Keine verfügbare IP enthält",
"Add": "Hinzufügen",
"Adding...": "Füge hinzu...",
"Failed to check available update": "Überprüfung auf verfügbares Update fehlgeschlagen",
"Nice to meet you!": "Schön, dich kennenzulernen!",
"Please fill in the following fields to finish setup": "Bitte fülle die folgenden Felder aus, um die Einrichtung abzuschließen",
"Create an account": "Ein Konto erstellen",
"Enter an username you like": "Gib einen Benutzernamen deiner Wahl ein",
"Enter a password": "Gib ein Passwort ein",
"\\(At least 8 characters and make sure is strong enough!\\)": "(Mindestens 8 Zeichen und stelle sicher, dass es stark genug ist!)",
"Confirm password": "Passwort bestätigen",
"Next": "Weiter",
"Saving\\.\\.\\.": "Speichern...",
"1\\. Please scan the following QR Code to generate TOTP with your choice of authenticator": "1. Bitte scanne den folgenden QR-Code, um ein TOTP mit deinem Authentifikator zu erstellen",
"Or you can click the link below:": "Oder du kannst auf den Link unten klicken:",
"2\\. Enter the TOTP generated by your authenticator to verify": "2. Gib das von deinem Authentifikator generierte TOTP ein, um es zu verifizieren",
"TOTP verified!": "TOTP erfolgreich verifiziert!",
"I don't need MFA": "Ich brauche keine MFA",
"Complete": "Abschließen",
"(v[0-9.]{1,}) is now available for update!": "Version $1 ist jetzt zum Update verfügbar!",
"Current Version:": "Aktuelle Version:",
"Oh no\\.\\.\\. This link is either expired or invalid\\.": "Oh nein... Dieser Link ist entweder abgelaufen oder ungültig.",
"Scan QR Code with the WireGuard App to add peer": "Scanne den QR-Code mit der WireGuard App, um deinen Peer hinzuzufügen",
"or click the button below to download the ": "oder klicke auf den Button unten, um die",
" file": " Datei herunterzuladen",
"FROM ": "VON",
"(.*) is on": "$1 ist eingeschaltet",
"(.*) is off": "$1 ist ausgeschaltet",
"Allowed IPs is invalid": "Erlaubte IPs sind ungültig",
"Peer created successfully": "Peer erfolgreich erstellt",
"Please fill in all required box": "Bitte fülle alle erforderlichen Felder aus",
"Please specify amount of peers you want to add": "Bitte gib die Anzahl der Peers an, die du hinzufügen möchtest",
"No more available IP can assign": "Es können keine weiteren verfügbaren IPs zugewiesen werden",
"The maximum number of peers can add is (.*)": "$1 ist die maximale Anzahl an Peers, die hinzugefügt werden können",
"Generating key pairs by bulk failed": "Massenerstellung von Schlüsselpaaren fehlgeschlagen",
"Failed to add peers in bulk": "Massenerstellung von Peers fehlgeschlagen",
"This peer already exist": "Dieser Peer existiert bereits",
"This IP is not available: (.*)": "Diese IP ist nicht verfügbar: $1",
"Configuration does not exist": "Konfiguration existiert nicht",
"Peer does not exist": "Peer existiert nicht",
"Please provide a valid configuration name": "Bitte gib einen gültigen Konfigurationsnamen an",
"Peer saved": "Peer gespeichert",
"Allowed IPs already taken by another peer": "Erlaubte IPs sind bereits von einem anderen Peer belegt",
"Endpoint Allowed IPs format is incorrect": "Das Format der erlaubten Endpunkt-IPs ist ungültig",
"DNS format is incorrect": "DNS-Format ist ungültig",
"MTU format is not correct": "MTU-Format ist ungültig",
"Persistent Keepalive format is not correct": "Das Format für Persistent Keepalive ist ungültig",
"Private key does not match with the public key": "Privater Schlüssel stimmt nicht mit dem öffentlichen Schlüssel überein",
"Update peer failed when updating Pre-Shared Key": "Fehler beim Aktualisieren des Peers während der Aktualisierung des Pre-Shared-Keys",
"Update peer failed when updating Allowed IPs": "Fehler beim Aktualisieren des Peers während der Aktualisierung der erlaubten IP-Adressen",
"Update peer failed when saving the configuration": "Fehler beim Speichern der Peer-Konfiguration",
"Peer data usage reset successfully": "Peer-Datenverbrauch erfolgreich zurückgesetzt",
"Peer download started": "Peer-Download gestartet",
"Please specify one or more peers": "Bitte gib einen oder mehrere Peers an",
"Share link failed to create. Reason: (.*)": "Freigabelink konnte nicht erstellt werden. Grund: $1",
"Link expire date updated": "Ablaufdatum des Links aktualisiert",
"Link expire date failed to update. Reason: (.*)": "Ablaufdatum des Links konnte nicht aktualisiert werden. Grund: $1",
"Peer job saved": "Peer-Aufgabe gespeichert",
"Please specify job": "Bitte gib eine Aufgabe an",
"Please specify peer and configuration": "Bitte gib Peer und Konfiguration an",
"Peer job deleted": "Peer-Aufgabe gelöscht",
"API Keys function is successfully enabled": "API-Schlüsselfunktion wurde erfolgreich aktiviert",
"API Keys function is successfully disabled": "API-Schlüsselfunktion wurde erfolgreich deaktiviert",
"API Keys function is failed to enable": "API-Schlüsselfunktion konnte nicht aktiviert werden",
"API Keys function is failed to disable": "API-Schlüsselfunktion konnte nicht deaktiviert werden",
"WGDashboard API Keys function is disabled": "Die API-Schlüsselfunktion im WGDashboard ist deaktiviert",
"WireGuard configuration path saved": "WireGuard-Konfigurationspfad gespeichert",
"API Key deleted": "API-Schlüssel gelöscht",
"API Key created": "API-Schlüssel erstellt",
"Sign in session ended, please sign in again": "Anmeldesitzung beendet, bitte melde dich erneut an",
"Please specify an IP Address (v4/v6)": "Bitte gib eine IP-Adresse (v4/v6) an",
"Please provide ipAddress and count": "Bitte gib die IP-Adresse und die Anzahl an",
"Please provide ipAddress": "Bitte gib eine IP-Adresse an",
"Dashboard Language": "Dashboard-Sprache",
"Dashboard language update failed": "Aktualisierung der Dashboard-Sprache fehlgeschlagen",
"Peer Remote Endpoint": "Remote-Endpunkt des Peers",
"New Configuration": "Neue Konfiguration",
"Configuration Name": "Konfigurationsname",
"Configuration name is invalid. Possible reasons:": "Der Konfigurationsname ist ungültig. Mögliche Gründe:",
"Configuration name already exist\\.": "Konfigurationsname existiert bereits.",
"Configuration name can only contain 15 lower/uppercase alphabet, numbers, underscore, equal sign, plus sign, period and hyphen\\.": "Der Konfigurationsname darf nur 15 Zeichen enthalten, bestehend aus Groß-/Kleinbuchstaben, Zahlen, Unterstrich, Gleichheitszeichen, Pluszeichen, Punkt und Bindestrich.",
"Invalid Port": "Ungültiger Port",
"Save Configuration": "Konfiguration speichern",
"IP Address/CIDR is invalid": "IP-Adresse/CIDR ist ungültig",
"IP Address": "IP-Adresse",
"Enter IP Address / Hostname": "IP-Adresse/Hostnamen eingeben",
"IP Address / Hostname": "IP-Adresse/Hostnamen",
"Count": "Zählen",
"Geolocation": "",
"Is Alive": "",
"Average / Min / Max Round Trip Time": "",
"Sent / Received / Lost Package": "",
"Manual restart of WGDashboard is needed to apply changes on IP Address and Listen Port": "",
"Restore Configuration": "",
"Step (.*)": "",
"Select a backup you want to restore": "",
"Click to change a backup": "",
"Selected Backup": "",
"You don't have any configuration to restore": "",
"Help": "",
"Backup": "",
"([0-9].*) Backups?": "",
"Yes": "",
"No": "",
"Backup not selected": "",
"Confirm \\& edit restore information": "",
"(.*) Available IP Address": "",
"Database File": "",
"Contain": "",
"Restricted Peers?": "",
"Restore": "",
"Restoring": "",
"WGDashboard Settings": "",
"Peers Settings": "",
"WireGuard Configuration Settings": "",
"Appearance": "",
"Theme": "",
"Language": "",
"Account Settings": "",
"Peer Default Settings": "",
"Toggle When Start Up": "",
"Other Settings": "",
"Select Peers": "",
"Backup & Restore": "",
"Delete Configuration": "",
"Create Backup": "",
"No backup yet, click the button above to create backup\\.": "",
"Are you sure to delete this backup\\?": "",
"Are you sure to restore this backup?\\": "",
"Backup Date": "",
"File": "",
"Are you sure to delete this configuration\\?": "",
"Once you deleted this configuration\\:": "",
"All connected peers will get disconnected": "",
"Both configuration file \\(\\.conf\\) and database table related to this configuration will get deleted": "",
"Checking backups...": "",
"This configuration have ([0-9].*) backups": "",
"This configuration have no backup": "",
"If you're sure, please type in the configuration name below and click Delete": "",
"Select All": "",
"Clear Selection": "",
"([0-9].*) Peers?": "",
"Downloading": "",
"Download Finished": "",
"Done": "",
"Are you sure to delete": "",
"Are you sure to delete this peer\\?": "",
"Configuration deleted": "",
"Configuration saved": "",
"WGDashboard language update failed": "",
"Configuration restored": "",
"Allowed IP already taken by another peer": "",
"Failed to allow access of peer (.*)": "",
"Failed to save configuration through WireGuard": "",
"Allow access successfully": "",
"Deleted ([0-9]{1,}) peer\\(s\\)": "",
"Deleted ([0-9]{1,}) peer\\(s\\) successfully. Failed to delete ([0-9]{1,}) peer\\(s\\)": "",
"Restricted ([0-9]{1,}) peer\\(s\\)": "",
"Restricted ([0-9]{1,}) peer\\(s\\) successfully. Failed to restrict ([0-9]{1,}) peer\\(s\\)": ""
}
"Welcome to": "Willkommen bei",
"Username": "Benutzername",
"Password": "Passwort",
"OTP from your authenticator": "OTP von deinem Authentifikator",
"Sign In": "Anmelden",
"Access Remote Server": "Zugriff auf Remote-Server",
"Server": "Server",
"Click": "Klicken",
"Pinging...": "Pinge...",
"to add your server": "um deinen Server hinzuzufügen",
"Server List": "Serverliste",
"Sorry, your username or password is incorrect.": "Entschuldige, dein Benutzername oder Passwort ist falsch.",
"Home": "Startseite",
"Settings": "Einstellungen",
"Tools": "Werkzeuge",
"Sign Out": "Abmelden",
"Checking for update...": "Suche nach Updates...",
"You're on the latest version": "Du verwendest die aktuellste Version",
"WireGuard Configurations": "WireGuard Konfigurationen",
"You don't have any WireGuard configurations yet. Please check the configuration folder or change it in Settings. By default the folder is /etc/wireguard.": "Du hast noch keine WireGuard-Konfigurationen. Bitte überprüfe den Konfigurationsordner oder ändere ihn in den Einstellungen. Standardmäßig ist der Ordner /etc/wireguard.",
"Configuration": "Konfiguration",
"Configurations": "Konfigurationen",
"Peers Default Settings": "Peers Standardeinstellungen",
"Dashboard Theme": "Dashboard-Design",
"Light": "Hell",
"Dark": "Dunkel",
"This will be changed globally, and will be apply to all peer's QR code and configuration file.": "Dies wird global geändert und gilt für alle Peer-QR-Codes und Konfigurationsdateien.",
"WireGuard Configurations Settings": "WireGuard Konfigurationseinstellungen",
"Configurations Directory": "Konfigurationsverzeichnis",
"Remember to remove / at the end of your path. e.g /etc/wireguard": "Vergiss nicht, das \"/\" am Ende deines Pfads zu entfernen. z.B. /etc/wireguard",
"WGDashboard Account Settings": "WGDashboard Kontoeinstellungen",
"Current Password": "Aktuelles Passwort",
"New Password": "Neues Passwort",
"Repeat New Password": "Neues Passwort wiederholen",
"Update Password": "Passwort aktualisieren",
"Reset": "Zurücksetzen",
"Setup": "Einrichten",
"API Keys": "API-Schlüssel",
"API Key": "API-Schlüssel",
"Key": "Schlüssel",
"Enabled": "Aktiviert",
"Disabled": "Deaktiviert",
"No WGDashboard API Key": "Kein WGDashboard API-Schlüssel",
"Expire At": "Ablaufdatum",
"Create API Key": "API-Schlüssel erstellen",
"Never Expire": "Kein Ablaufdatum",
"Don't think that's a good idea": "Das ist wohl keine gute Idee",
"Create": "Erstellen",
"Status": "Status",
"On": "An",
"Off": "Aus",
"Address": "Adresse",
"Listen Port": "Empfangsport",
"Public Key": "Öffentlicher Schlüssel",
"Connected Peers": "Verbundene Peers",
"Total Usage": "Gesamtnutzung",
"Total Received": "Gesamt empfangen",
"Total Sent": "Gesamt gesendet",
"Peers Data Usage": "Datenverbrauch der Peers",
"Real Time Received Data Usage": "Datenempfang in Echtzeit",
"Real Time Sent Data Usage": "Datensendung in Echtzeit",
"Peer": "Peer",
"Peers": "Peers",
"Peer Settings": "Peers Einstellungen",
"Download All": "Alle herunterladen",
"Display": "Anzeigen",
"Sort By": "Sortieren nach",
"Refresh Interval": "Aktualisierungsintervall",
"Name": "Name",
"Allowed IPs": "Erlaubte IPs",
"Restricted": "Eingeschränkt",
"(.*) Seconds": "$1 Sekunden",
"(.*) Minutes": "$1 Minuten",
"Configuration Settings": "Konfigurationseinstellungen",
"Peer Jobs": "Peer-Aufgaben",
"Active Jobs": "Aktive Aufgaben",
"All Active Jobs": "Alle aktiven Aufgaben",
"Logs": "Protokolle",
"Private Key": "Privater Schlüssel",
"Endpoint Allowed IPs": "Erlaubte IPs für Endpunkt",
"DNS": "DNS",
"Optional Settings": "Optionale Einstellungen",
"Pre-Shared Key": "Vorab geteilter Schlüssel",
"MTU": "MTU",
"Persistent Keepalive": "Ständiges Keepalive",
"Reset Data Usage": "Datenverbrauch zurücksetzen",
"Total": "Gesamt",
"Sent": "Gesendet",
"Received": "Empfangen",
"Revert": "Zurücksetzen",
"Save Peer": "Peer speichern",
"QR Code": "QR-Code",
"Schedule Jobs": "Aufgaben planen",
"Job": "Aufgabe",
"Job ID": "Aufgaben-ID",
"Unsaved Job": "Nicht gespeicherte Aufgabe",
"if": "wenn",
"is": "ist",
"then": "dann",
"larger than": "größer als",
"Date": "Datum",
"Restrict Peer": "Peer einschränken",
"Delete Peer": "Peer löschen",
"Edit": "Bearbeiten",
"Delete": "Löschen",
"Deleting...": "Lösche...",
"Cancel": "Abbrechen",
"Save": "Speichern",
"Jobs Logs": "Aufgabenprotokolle",
"Updated at": "Aktualisiert am",
"Refresh": "Aktualisieren",
"Filter": "Filtern",
"Success": "Erfolgreich",
"Failed": "Fehlgeschlagen",
"Log ID": "Protokoll-ID",
"Message": "Nachricht",
"Share Peer": "Peer teilen",
"Currently the peer is not sharing": "Der Peer wird derzeit nicht freigegeben",
"Start Sharing": "Teilen starten",
"Stop Sharing": "Teilen beenden",
"Access Restricted": "Zugriff eingeschränkt",
"Restrict Access": "Zugriff einschränken",
"Allow Access": "Zugriff erlauben",
"Add Peers": "Peers hinzufügen",
"Bulk Add": "Massenerstellung",
"You can add up to (.*) peers": "Du kannst bis zu $1 Peers hinzufügen",
"Use your own Private and Public Key": "Verwende deinen eigenen privaten und öffentlichen Schlüssel",
"Enter IP Address/CIDR": "Gib IP-Adresse/CIDR ein",
"IP Address/CIDR": "IP-Adresse/CIDR",
"or": "oder",
"Pick Available IP": "Verfügbare IP auswählen",
"No available IP containing": "Keine verfügbare IP enthält",
"Add": "Hinzufügen",
"Failed to check available update": "Überprüfung auf verfügbares Update fehlgeschlagen",
"Nice to meet you!": "Schön, dich kennenzulernen!",
"Please fill in the following fields to finish setup": "Bitte fülle die folgenden Felder aus, um die Einrichtung abzuschließen",
"Create an account": "Ein Konto erstellen",
"Enter an username you like": "Gib einen Benutzernamen deiner Wahl ein",
"Enter a password": "Gib ein Passwort ein",
"\\(At least 8 characters and make sure is strong enough!\\)": "(Mindestens 8 Zeichen und stelle sicher, dass es stark genug ist!)",
"Confirm password": "Passwort bestätigen",
"Next": "Weiter",
"Saving\\.\\.\\.": "Speichern...",
"1\\. Please scan the following QR Code to generate TOTP with your choice of authenticator": "1. Bitte scanne den folgenden QR-Code, um ein TOTP mit deinem Authentifikator zu erstellen",
"Or you can click the link below:": "Oder du kannst auf den Link unten klicken:",
"2\\. Enter the TOTP generated by your authenticator to verify": "2. Gib das von deinem Authentifikator generierte TOTP ein, um es zu verifizieren",
"TOTP verified!": "TOTP erfolgreich verifiziert!",
"I don't need MFA": "Ich brauche keine MFA",
"Complete": "Abschließen",
"(v[0-9.]{1,}) is now available for update!": "Version $1 ist jetzt zum Update verfügbar!",
"Current Version:": "Aktuelle Version:",
"Oh no\\.\\.\\. This link is either expired or invalid\\.": "Oh nein... Dieser Link ist entweder abgelaufen oder ungültig.",
"Scan QR Code with the WireGuard App to add peer": "Scanne den QR-Code mit der WireGuard App, um deinen Peer hinzuzufügen",
"or click the button below to download the ": "oder klicke auf den Button unten, um die",
" file": " Datei herunterzuladen",
"FROM ": "VON",
"(.*) is on": "$1 ist eingeschaltet",
"(.*) is off": "$1 ist ausgeschaltet",
"Allowed IPs is invalid": "Erlaubte IPs sind ungültig",
"Peer created successfully": "Peer erfolgreich erstellt",
"Please fill in all required box": "Bitte fülle alle erforderlichen Felder aus",
"Please specify amount of peers you want to add": "Bitte gib die Anzahl der Peers an, die du hinzufügen möchtest",
"No more available IP can assign": "Es können keine weiteren verfügbaren IPs zugewiesen werden",
"The maximum number of peers can add is (.*)": "$1 ist die maximale Anzahl an Peers, die hinzugefügt werden können",
"Generating key pairs by bulk failed": "Massenerstellung von Schlüsselpaaren fehlgeschlagen",
"Failed to add peers in bulk": "Massenerstellung von Peers fehlgeschlagen",
"This peer already exist": "Dieser Peer existiert bereits",
"This IP is not available: (.*)": "Diese IP ist nicht verfügbar: $1",
"Configuration does not exist": "Konfiguration existiert nicht",
"Peer does not exist": "Peer existiert nicht",
"Please provide a valid configuration name": "Bitte gib einen gültigen Konfigurationsnamen an",
"Peer saved": "Peer gespeichert",
"Allowed IPs already taken by another peer": "Erlaubte IPs sind bereits von einem anderen Peer belegt",
"Endpoint Allowed IPs format is incorrect": "Das Format der erlaubten Endpunkt-IPs ist ungültig",
"DNS format is incorrect": "DNS-Format ist ungültig",
"MTU format is not correct": "MTU-Format ist ungültig",
"Persistent Keepalive format is not correct": "Das Format für Persistent Keepalive ist ungültig",
"Private key does not match with the public key": "Privater Schlüssel stimmt nicht mit dem öffentlichen Schlüssel überein",
"Update peer failed when updating Pre-Shared Key": "Fehler beim Aktualisieren des Peers während der Aktualisierung des Pre-Shared-Keys",
"Update peer failed when updating Allowed IPs": "Fehler beim Aktualisieren des Peers während der Aktualisierung der erlaubten IP-Adressen",
"Update peer failed when saving the configuration": "Fehler beim Speichern der Peer-Konfiguration",
"Peer data usage reset successfully": "Peer-Datenverbrauch erfolgreich zurückgesetzt",
"Peer download started": "Peer-Download gestartet",
"Please specify one or more peers": "Bitte gib einen oder mehrere Peers an",
"Share link failed to create. Reason: (.*)": "Freigabelink konnte nicht erstellt werden. Grund: $1",
"Link expire date updated": "Ablaufdatum des Links aktualisiert",
"Link expire date failed to update. Reason: (.*)": "Ablaufdatum des Links konnte nicht aktualisiert werden. Grund: $1",
"Peer job saved": "Peer-Aufgabe gespeichert",
"Please specify job": "Bitte gib eine Aufgabe an",
"Please specify peer and configuration": "Bitte gib Peer und Konfiguration an",
"Peer job deleted": "Peer-Aufgabe gelöscht",
"API Keys function is successfully enabled": "API-Schlüsselfunktion wurde erfolgreich aktiviert",
"API Keys function is successfully disabled": "API-Schlüsselfunktion wurde erfolgreich deaktiviert",
"API Keys function is failed to enable": "API-Schlüsselfunktion konnte nicht aktiviert werden",
"API Keys function is failed to disable": "API-Schlüsselfunktion konnte nicht deaktiviert werden",
"WGDashboard API Keys function is disabled": "Die API-Schlüsselfunktion im WGDashboard ist deaktiviert",
"WireGuard configuration path saved": "WireGuard-Konfigurationspfad gespeichert",
"API Key deleted": "API-Schlüssel gelöscht",
"API Key created": "API-Schlüssel erstellt",
"Sign in session ended, please sign in again": "Anmeldesitzung beendet, bitte melde dich erneut an",
"Please specify an IP Address (v4/v6)": "Bitte gib eine IP-Adresse (v4/v6) an",
"Please provide ipAddress and count": "Bitte gib die IP-Adresse und die Anzahl an",
"Please provide ipAddress": "Bitte gib eine IP-Adresse an",
"Dashboard Language": "Dashboard-Sprache",
"Dashboard language update failed": "Aktualisierung der Dashboard-Sprache fehlgeschlagen",
"Peer Remote Endpoint": "Remote-Endpunkt des Peers",
"New Configuration": "Neue Konfiguration",
"Configuration Name": "Konfigurationsname",
"Configuration name is invalid. Possible reasons:": "Der Konfigurationsname ist ungültig. Mögliche Gründe:",
"Configuration name already exist\\.": "Konfigurationsname existiert bereits.",
"Configuration name can only contain 15 lower/uppercase alphabet, numbers, underscore, equal sign, plus sign, period and hyphen\\.": "Der Konfigurationsname darf nur 15 Zeichen enthalten, bestehend aus Groß-/Kleinbuchstaben, Zahlen, Unterstrich, Gleichheitszeichen, Pluszeichen, Punkt und Bindestrich.",
"Invalid Port": "Ungültiger Port",
"Save Configuration": "Konfiguration speichern",
"IP Address/CIDR is invalid": "IP-Adresse/CIDR ist ungültig",
"IP Address": "IP-Adresse",
"Enter IP Address / Hostname": "IP-Adresse/Hostnamen eingeben",
"IP Address / Hostname": "IP-Adresse/Hostnamen",
"Count": "Zählen",
"Geolocation": "Geostandort",
"Is Alive": "Ist erreichbar",
"Average / Min / Max Round Trip Time": "Durchschnittliche / Minimale / Maximale Antwortzeit",
"Sent / Received / Lost Package": "Gesendete / Empfangene / Verlorene Pakete",
"Manual restart of WGDashboard is needed to apply changes on IP Address and Listen Port": "Manueller Neustart des WGDashboards erforderlich, um Änderungen an der IP-Adresse und dem Listen-Port anzuwenden",
"Restore Configuration": "Konfiguration wiederherstellen",
"Step (.*)": "Schritt $1",
"Select a backup you want to restore": "Wählen Sie ein Backup aus, das Sie wiederherstellen möchten",
"Click to change a backup": "Klicken, um ein Backup zu ändern",
"Selected Backup": "Ausgewähltes Backup",
"You don't have any configuration to restore": "Es gibt keine Konfiguration, die wiederhergestellt werden kann",
"Help": "Hilfe",
"Backup": "Backup",
"([0-9].*) Backups?": "$1 Backups",
"Yes": "Ja",
"No": "Nein",
"Backup not selected": "Kein Backup ausgewählt",
"Confirm \\& edit restore information": "Wiederherstellungsinformationen bestätigen & bearbeiten",
"(.*) Available IP Address": "$1 verfügbare IP-Adresse",
"Database File": "Datenbankdatei",
"Contain": "Enthält",
"Restricted Peers?": "Eingeschränkte Peers?",
"Restore": "Wiederherstellen",
"Restoring": "Wiederherstellung läuft",
"WGDashboard Settings": "WGDashboard-Einstellungen",
"Peers Settings": "Peer-Einstellungen",
"WireGuard Configuration Settings": "WireGuard-Konfigurationseinstellungen",
"Appearance": "Aussehen",
"Theme": "Design",
"Language": "Sprache",
"Account Settings": "Kontoeinstellungen",
"Peer Default Settings": "Standard-Peer-Einstellungen",
"Toggle When Start Up": "Beim Start umschalten",
"Other Settings": "Weitere Einstellungen",
"Select Peers": "Peers auswählen",
"Backup & Restore": "Backup & Wiederherstellung",
"Delete Configuration": "Konfiguration löschen",
"Create Backup": "Backup erstellen",
"No backup yet, click the button above to create backup\\.": "Noch kein Backup vorhanden. Klicken Sie oben auf die Schaltfläche, um ein Backup zu erstellen.",
"Are you sure to delete this backup\\?": "Sind Sie sicher, dass Sie dieses Backup löschen möchten?",
"Backup Date": "Backup-Datum",
"File": "Datei",
"Are you sure to delete this configuration\\?": "Sind Sie sicher, dass Sie diese Konfiguration löschen möchten?",
"Once you deleted this configuration\\:": "Wenn Sie diese Konfiguration löschen:",
"All connected peers will get disconnected": "Alle verbundenen Peers werden getrennt",
"Both configuration file \\(\\.conf\\) and database table related to this configuration will get deleted": "Sowohl die Konfigurationsdatei (.conf) als auch die zugehörige Datenbanktabelle werden gelöscht",
"Checking backups...": "Backups werden überprüft...",
"This configuration have ([0-9].*) backups": "Diese Konfiguration hat $1 Backups",
"This configuration have no backup": "Diese Konfiguration hat kein Backup",
"If you're sure, please type in the configuration name below and click Delete": "Wenn Sie sicher sind, geben Sie unten den Namen der Konfiguration ein und klicken Sie auf Löschen",
"Select All": "Alle auswählen",
"Clear Selection": "Auswahl löschen",
"([0-9].*) Peers?": "$1 Peers?",
"Downloading": "Herunterladen",
"Download Finished": "Download abgeschlossen",
"Done": "Fertig",
"Are you sure to delete": "Sind Sie sicher, dass Sie löschen möchten",
"Are you sure to delete this peer\\?": "Sind Sie sicher, dass Sie diesen Peer löschen möchten?",
"Configuration deleted": "Konfiguration gelöscht",
"Configuration saved": "Konfiguration gespeichert",
"WGDashboard language update failed": "WGDashboard-Sprachaktualisierung fehlgeschlagen",
"Configuration restored": "Konfiguration wiederhergestellt",
"Allowed IP already taken by another peer": "Zugelassene IP bereits von einem anderen Peer belegt",
"Failed to allow access of peer (.*)": "Fehler beim Zulassen des Zugriffs für Peer $1",
"Failed to save configuration through WireGuard": "Fehler beim Speichern der Konfiguration über WireGuard",
"Allow access successfully": "Zugriff erfolgreich erlaubt",
"Deleted ([0-9]{1,}) peer\\(s\\)": "$1 Peer(s) gelöscht",
"Deleted ([0-9]{1,}) peer\\(s\\) successfully. Failed to delete ([0-9]{1,}) peer\\(s\\)": "$1 Peer(s) erfolgreich gelöscht. Fehler beim Löschen von $2 Peer(s)",
"Restricted ([0-9]{1,}) peer\\(s\\)": "$1 Peer(s) eingeschränkt",
"Restricted ([0-9]{1,}) peer\\(s\\) successfully. Failed to restrict ([0-9]{1,}) peer\\(s\\)": "$1 Peer(s) erfolgreich eingeschränkt. Fehler beim Einschränken von $2 Peer(s)",
"Signing In\\.\\.\\.": "Anmeldung...",
"Multi-Factor Authentication \\(MFA\\)": "Multi-Faktor-Authentifizierung (MFA)",
"Are you sure to delete this API key\\?": "Bist du sicher, dass du diesen API-Schlüssel löschen möchtest?",
"When should this API Key expire\\?": "Wann soll dieser API-Schlüssel ablaufen?",
"Creating\\.\\.\\.": "Erstelle...",
"Turning On\\.\\.\\.": "Schalte ein...",
"Turning Off\\.\\.\\.": "Schalte aus...",
"Search Peers\\.\\.\\.": "Suche Peers...",
"\\(Required for QR Code and Download\\)": "(Erforderlich für QR-Code und Download)",
"\\(Required\\)": "(Erforderlich)",
"This peer does not have any job yet\\.": "Dieser Peer hat noch keine Aufgabe.",
"No active job at the moment\\.": "Zurzeit keine aktive Aufgabe.",
"Sharing\\.\\.\\.": "Teile...",
"Stop Sharing\\.\\.\\.": "Teilen beenden...",
"Restricting\\.\\.\\.": "Einschränken...",
"Allowing Access\\.\\.\\.": "Erlaube Zugriff...",
"Download \\& QR Code is not available due to no private key set for this peer": " \"Download & QR Code is not available due to no private key set for this peer\": \"Download & QR-Code sind nicht verfügbar, da kein privater Schlüssel für diesen Peer festgelegt wurde",
"By adding peers by bulk, each peer's name will be auto generated, and Allowed IP will be assign to the next available IP\\.": "Bei der Massenerstellung wird der Name jedes Peers automatisch generiert, und die erlaubte IP wird der nächsten verfügbaren IP zugewiesen.",
"How many peers you want to add\\?": "Wie viele Peers möchtest du hinzufügen?",
"Adding\\.\\.\\.": "Füge hinzu...",
"Dashboard IP Address \\& Listen Port": "",
"Are you sure to restore this backup?\\": "Sind Sie sicher, dass Sie dieses Backup wiederherstellen möchten?"
}

View File

@ -0,0 +1,312 @@
{
"Welcome to": "Bienvenido",
"Username": "Usuario",
"Password": "Contraseña",
"OTP from your authenticator": "OTP de tu autentificador",
"Sign In": "Iniciar sesión",
"Signing In\\.\\.\\.": "Iniciando sesión...",
"Access Remote Server": "Acceder a servidor remoto",
"Server": "Servidor",
"Click": "Click",
"Pinging...": "Ping...",
"to add your server": "para agregar tu servidor",
"Server List": "Lista de Servidores",
"Sorry, your username or password is incorrect.": "Lo siento, tu usuario o contraseña no son correctos.",
"Home": "Home",
"Settings": "Ajustes",
"Tools": "Herramientas",
"Sign Out": "Salir",
"Checking for update...": "Buscando actualizaciones...",
"You're on the latest version": "Estás utilizando la última versión",
"WireGuard Configurations": "Configuraciones de Wireguard",
"You don't have any WireGuard configurations yet. Please check the configuration folder or change it in Settings. By default the folder is /etc/wireguard.": "Todavía no tienes configuraciones de WireGuard. Por favor, comprueba la carpeta de configuraciones o cámbiala en Ajustes. Por defecto, la carpeta es /etc/wireguard.",
"Configuration": "Configuración",
"Configurations": "Configuraciones",
"Peers Default Settings": "Ajustes por defecto de Peers",
"Dashboard Theme": "Tema del dashboard",
"Light": "Claro",
"Dark": "Oscuro",
"This will be changed globally, and will be apply to all peer's QR code and configuration file.": "Esto se va a cambiar de forma global, y se aplicará a todos los QRs y archivos de configuración de todos los Peers.",
"WireGuard Configurations Settings": "Ajustes de Configuración de Wireguard",
"Configurations Directory": "Carpeta de configuraciones",
"Remember to remove / at the end of your path. e.g /etc/wireguard": "Recuerda eliminar '/' al final de tu directorio. Por ejemplo, '/etc/wireguard'",
"WGDashboard Account Settings": "Ajustes de la cuenta de WGDashboard",
"Current Password": "Contraseña actual",
"New Password": "Nueva contraseña",
"Repeat New Password": "Repite la nueva contraseña",
"Update Password": "Actualizar contraseña",
"Multi-Factor Authentication \\(MFA\\)": "Autentificación de doble factor (MFA)",
"Reset": "Reset",
"Setup": "Setup",
"API Keys": "Clave API",
"API Key": "Clave API",
"Key": "Clave",
"Enabled": "Habilitado",
"Disabled": "Deshabilitado",
"No WGDashboard API Key": "Ninguna clave API WGDashboard",
"Expire At": "Expira en",
"Are you sure to delete this API key\\?": "¿Estás seguro de eliminar esta clave API?",
"Create API Key": "Crear una nueva clave API",
"When should this API Key expire\\?": "¿Cuándo debería expirar esta clave API?",
"Never Expire": "Nunca expira",
"Don't think that's a good idea": "No creo que esta sea una buena idea",
"Creating\\.\\.\\.": "Creando...",
"Create": "Crear",
"Status": "Estado",
"On": "Activo",
"Off": "Inactivo",
"Turning On\\.\\.\\.": "Activando...",
"Turning Off\\.\\.\\.": "Desactivando...",
"Address": "Dirección",
"Listen Port": "Puerto de escucha",
"Public Key": "Clave pública",
"Connected Peers": "Peer conectado",
"Total Usage": "Uso Total",
"Total Received": "Total Recibido",
"Total Sent": "Total Enviado",
"Peers Data Usage": "Uso de datos de Peers",
"Real Time Received Data Usage": "Datos recibidos en tiempo real",
"Real Time Sent Data Usage": "Datos enviados en tiempo real",
"Peer": "Peer",
"Peers": "Peers",
"Peer Settings": "Ajustes de Peers",
"Download All": "Descargar todo",
"Search Peers\\.\\.\\.": "Buscar Peers...",
"Display": "Mostrar",
"Sort By": "Ordenar por",
"Refresh Interval": "Intervalo de refresco",
"Name": "Nombre",
"Allowed IPs": "IPs permitidas",
"Restricted": "Restringido",
"(.*) Seconds": "$1 Segundos/i",
"(.*) Minutes": "$1 Minutos/i",
"Configuration Settings": "Configuración",
"Peer Jobs": "Jobs del Peer",
"Active Jobs": "Jobs Activos",
"All Active Jobs": "Todos los Jobs Activos",
"Logs": "Logs",
"Private Key": "Clave privada",
"\\(Required for QR Code and Download\\)": "(Requerido para el código QR y Descarga)",
"\\(Required\\)": "(Requerido)",
"Endpoint Allowed IPs": "Direcciones IP del endpoint permitidas",
"DNS": "DNS",
"Optional Settings": "Ajustes opcionales",
"Pre-Shared Key": "Clave pre-compartida",
"MTU": "MTU",
"Persistent Keepalive": "Keepalive persistente",
"Reset Data Usage": "Resetear los datos de uso",
"Total": "Total",
"Sent": "Enviado",
"Received": "Recibido",
"Revert": "Revertir",
"Save Peer": "Guardar el Peer",
"QR Code": "Código QR",
"Schedule Jobs": "Planificar Job",
"Job": "Job",
"Job ID": "ID del Job",
"Unsaved Job": "Job sin guardar",
"This peer does not have any job yet\\.": "Este Peer no tiene jobs todavía.",
"if": "si",
"is": "es",
"then": "entonces",
"larger than": "mayor que",
"Date": "Fecha",
"Restrict Peer": "Limitar el Peer",
"Delete Peer": "Eliminar el Peer",
"Edit": "Modificar",
"Delete": "Eliminar",
"Deleting...": "Eliminando...",
"Cancel": "Cancelar",
"Save": "Guardar",
"No active job at the moment\\.": "No hay jobs activos en este momento.",
"Jobs Logs": "Logs del Job",
"Updated at": "Actualizado el",
"Refresh": "Refrescar",
"Filter": "Filtrar",
"Success": "Éxito",
"Failed": "Fallido",
"Log ID": "ID del log",
"Message": "Mensaje",
"Share Peer": "Compartir Peer",
"Currently the peer is not sharing": "Actualmente el Peer no está compartiendo",
"Sharing\\.\\.\\.": "Compartiendo...",
"Start Sharing": "Empezar intercambio",
"Stop Sharing\\.\\.\\.": "Interrumpir intercambio...",
"Stop Sharing": "Interrumpir intercambio",
"Access Restricted": "Accesso Restringido",
"Restrict Access": "Restringir Acceso",
"Restricting\\.\\.\\.": "Restringiendo...",
"Allow Access": "Habilitar Acceso",
"Allowing Access\\.\\.\\.": "Habilitando el acceso...",
"Download \\& QR Code is not available due to no private key set for this peer": "La descarga y el código QR no están disponibles porque no se ha configurado una clave privada para este peer",
"Add Peers": "Agregar un Peer",
"Bulk Add": "Agregar múltiple",
"By adding peers by bulk, each peer's name will be auto generated, and Allowed IP will be assign to the next available IP\\.": "Agregando Peers de forma múltiple, los nombres de los peers se generarán de forma automática, y la IP permitida se asignará en función de la siguiente IP disponible.",
"How many peers you want to add\\?": "¿Cuántos peers quieres añadir?",
"You can add up to (.*) peers": "Puedes añadir hasta $1 peers",
"Use your own Private and Public Key": "Usa tu propia clave pública y privada",
"Enter IP Address/CIDR": "ntroduce la dirección IP/CIDR",
"IP Address/CIDR": "Dirección IP/CIDR",
"or": "o",
"Pick Available IP": "Selecciona una IP disponible",
"No available IP containing": "Ninguna IP disponible que contenga",
"Add": "añadir",
"Adding\\.\\.\\.": "Añadiendo...",
"Failed to check available update": "Error al buscar actualizaciones disponibles",
"Nice to meet you!": "Encantado de conocerte",
"Please fill in the following fields to finish setup": "Por favor rellena los siguientes campos para finalizar el setup",
"Create an account": "Crea una cuenta",
"Enter an username you like": "Introduce un nombre de usuario",
"Enter a password": "Introduce una contraseña",
"\\(At least 8 characters and make sure is strong enough!\\)": "(Al menos 8 caracteres y asegúrate de que sea suficientemente fuerte)",
"Confirm password": "Confirma la contraseña",
"Next": "Siguiente",
"Saving\\.\\.\\.": "Guardando...",
"1\\. Please scan the following QR Code to generate TOTP with your choice of authenticator": "1. Por favor escanea el siguiente código QR para generar un código TOTP con el autentificador que prefieras",
"Or you can click the link below:": "O puedes hacer click en el siguiente enlace:",
"2\\. Enter the TOTP generated by your authenticator to verify": "2. Inserta el código TOTP generado por tu autentificador para verificar",
"TOTP verified!": "¡TOTP Verificado!",
"I don't need MFA": "No necesito MFA",
"Complete": "Completado",
"(v[0-9.]{1,}) is now available for update!": "$1 está disponible para actualizar!",
"Current Version:": "Versión actual:",
"Oh no\\.\\.\\. This link is either expired or invalid\\.": "Oh no... Este link ha expirado o es inválido.",
"Scan QR Code with the WireGuard App to add peer": "Escanea el código QR con la App Wireguard para añadir el peer",
"or click the button below to download the ": "o haz click en el botón de abajo para descargar el ",
" file": " archivo",
"FROM ": "DE ",
"(.*) is on": "$1 está activo",
"(.*) is off": "$1 está desactivado",
"Allowed IPs is invalid": "Las IPs Permitidas son inválidas",
"Peer created successfully": "Peer creado con éxito",
"Please fill in all required box": "Por favor, rellena las casillas requeridas",
"Please specify amount of peers you want to add": "Por favor, especifica la cantidad de peers que quieres añadir",
"No more available IP can assign": "No hay más IPs disponibles que asignar",
"The maximum number of peers can add is (.*)": "El número máximo de peers que se pueden añadir es $1",
"Generating key pairs by bulk failed": "Generación de key pairs por Añadir Múltiples falló",
"Failed to add peers in bulk": "Error al añadir múltiples peers",
"This peer already exist": "Este peer ya existe",
"This IP is not available: (.*)": "Esta IP no está disponible: $1",
"Configuration does not exist": "La configuración no existe",
"Peer does not exist": "El peer no existe",
"Please provide a valid configuration name": "Por favor, introduce un nombre de configuración válido",
"Peer saved": "Peer guardado",
"Allowed IPs already taken by another peer": "IPs disponibles ya han sido seleccionadas por otro peer",
"Endpoint Allowed IPs format is incorrect": "El formato de las IPs disponibles no es correcto",
"DNS format is incorrect": "El formato del DNS no es correcto",
"MTU format is not correct": "El formato del MTU no es correcto",
"Persistent Keepalive format is not correct": "El formato de Keepalive persistente no es correcto",
"Private key does not match with the public key": "La clave privada no corresponde con la clave pública",
"Update peer failed when updating Pre-Shared Key": "Actualización del peer falló cuando se actualizó la clave pre-compartida",
"Update peer failed when updating Allowed IPs": "Actualización del peer falló cuando se actualizó las IPs Permitidas",
"Update peer failed when saving the configuration": "Actualización del peer falló cuando se guardaba la configuración",
"Peer data usage reset successfully": "Los datos del uso del peer se restablecieron con éxito",
"Peer download started": "Descarga del peer comenzada",
"Please specify one or more peers": "Por favor, especifica uno o más peers",
"Share link failed to create. Reason: (.*)": "Creación del link para compartir fallida. Motivo: $1",
"Link expire date updated": "Actualizada la fecha de expiración del link",
"Link expire date failed to update. Reason: (.*)": "Actualización de la fecha de expiración fallida. Motivo: $1",
"Peer job saved": "Job del Peer guardado",
"Please specify job": "Por favor, especifica un job",
"Please specify peer and configuration": "Por favor, especifica peer y configuración",
"Peer job deleted": "Job del Peer eliminado",
"API Keys function is successfully enabled": "La funcionalidad de clave API se ha habilitado con éxito",
"API Keys function is successfully disabled": "La funcionalidad de clave API se ha deshabilitado con éxito",
"API Keys function is failed to enable": "La funcionalidad de clave API no se ha habilitado",
"API Keys function is failed to disable": "La funcionalidad de clave API no se ha habilitado",
"WGDashboard API Keys function is disabled": "La funcionalidad de clave API de WGDashboard está deshabilitada",
"WireGuard configuration path saved": "Guardado el destino de la configuración de Wireguard",
"API Key deleted": "Clave API eliminada",
"API Key created": "Clave API creada",
"Sign in session ended, please sign in again": "La sesión actual ha caducado, por favor, accede de nuevo",
"Please specify an IP Address (v4/v6)": "Por favor, especificado dirección IP (v4/v6)",
"Please provide ipAddress and count": "Por favor, especifica dirección IP y cuenta",
"Please provide ipAddress": "Por favor, especifica dirección IP",
"Dashboard Language": "Idioma del Dashboard",
"Dashboard language update failed": "Imposible actualizar el idioma del Dashboard",
"Peer Remote Endpoint": "Endpoint remoto del Peer",
"New Configuration": "Nueva configuración",
"Configuration Name": "Nombre de la configuración",
"Configuration name is invalid. Possible reasons:": "El nombre de la configuración es inválido. Motivo:",
"Configuration name already exist\\.": "El nombre de la configuración ya existe.",
"Configuration name can only contain 15 lower/uppercase alphabet, numbers, underscore, equal sign, plus sign, period and hyphen\\.": "El nombre de la configuración solo puede contener 15 letras mayúsculas o minúsculas, números, barrabaja, símbolos de igual, suma, puntos y guiones.",
"Invalid Port": "Puerto inválido",
"Save Configuration": "Guardar la configuración",
"IP Address/CIDR is invalid": "La IP/CIDR no es válida",
"IP Address": "Dirección IP",
"Enter IP Address / Hostname": "Introduce una dirección IP / Hostname",
"IP Address / Hostname": "Dirección IP / Hostname",
"Dashboard IP Address \\& Listen Port": "Dirección IP del dashboard y puerto",
"Count": "Cuenta",
"Geolocation": "Geolocalización",
"Is Alive": "Está Activo",
"Average / Min / Max Round Trip Time": "Media / Min / Max Redondeo Viaje Tiempo",
"Sent / Received / Lost Package": "Enviado / Recibido / Paquetes perdidos",
"Manual restart of WGDashboard is needed to apply changes on IP Address and Listen Port": "Un reset manual de WGDashboard es necesario para aplicar los cambios en la dirección IP y el puerto",
"Restore Configuration": "Restablecer configuración",
"Step (.*)": "Paso $1",
"Select a backup you want to restore": "Selecciona el backup que quieres restaurar",
"Click to change a backup": "click para cambiar el backup",
"Selected Backup": "Backup seleccionado",
"You don't have any configuration to restore": "No tienes ninguna configuración que restaurar",
"Help": "Ayuda",
"Backup": "Backup",
"([0-9].*) Backups?": "$1 Backups?",
"Yes": "Sí",
"No": "No",
"Backup not selected": "Backup no seleccionado",
"Confirm \\& edit restore information": "Confirmar y editar la información de restauración",
"(.*) Available IP Address": "$1 Dirección IP disponible",
"Database File": "Fichero de base de datos",
"Contain": "Contiene",
"Restricted Peers?": "¿Peers restringidos?",
"Restore": "Restaurar",
"Restoring": "Restaurando",
"WGDashboard Settings": "Ajustes de WGDashboard",
"Peers Settings": "Ajustes de Peers",
"WireGuard Configuration Settings": "Ajustes de Configuraciones de Wireguard",
"Appearance": "apariencia",
"Theme": "Tema",
"Language": "Idioma",
"Account Settings": "Ajustes de la cuenta",
"Peer Default Settings": "Ajustes por defecto del peer",
"Toggle When Start Up": "Activar en Start Up",
"Other Settings": "Otros ajustes",
"Select Peers": "Seleccionar peers",
"Backup & Restore": "Backups y Restaurar",
"Delete Configuration": "Eliminar Configuración",
"Create Backup": "Crear Backup",
"No backup yet, click the button above to create backup\\.": "No hay backups todavía, presiona el botón de arriba para crear un backup.",
"Are you sure to delete this backup\\?": "¿Estás seguro de que quieres borrar este backup?",
"Are you sure to restore this backup?\\": "¿Estás seguro de que quieres restaurar este backup?",
"Backup Date": "Fecha del backup",
"File": "Archivo",
"Are you sure to delete this configuration\\?": "¿Estás seguro de eliminar esta configuración?",
"Once you deleted this configuration\\:": "Una vez eliminada esta configuración:",
"All connected peers will get disconnected": "Todos los peers conectados se desconectarán",
"Both configuration file \\(\\.conf\\) and database table related to this configuration will get deleted": "Ambos ficheros de configuración (.conf) y de la tabla de la base de datos relacionados con esta configuración serán eliminados",
"Checking backups...": "Comprobando backups...",
"This configuration have ([0-9].*) backups": "Esta configuración tiene $1 backups",
"This configuration have no backup": "Esta configuración no tiene backups",
"If you're sure, please type in the configuration name below and click Delete": "Si estás seguro, introduce el nombre de la configuración y presiona eliminar",
"Select All": "Seleccionar todo",
"Clear Selection": "Deseleccionar",
"([0-9].*) Peers?": "¿$1 Peers?",
"Downloading": "Descargando",
"Download Finished": "Descarga finalizada",
"Done": "Hecho",
"Are you sure to delete": "¿Estás seguro de eliminar?",
"Are you sure to delete this peer\\?": "¿Estás seguro de eliminar este peer?",
"Configuration deleted": "Configuración eliminada",
"Configuration saved": "Configuración guardada",
"WGDashboard language update failed": "La actualización de idioma de WGDashboard falló",
"Configuration restored": "Configuración restaurada",
"Allowed IP already taken by another peer": "IP Permitida ya ha sido seleccionada por otro peer",
"Failed to allow access of peer (.*)": "Fallo de habilitar acceso del peer $1",
"Failed to save configuration through WireGuard": "Fallo de salvar configuración a través de WireGuard",
"Allow access successfully": "Acceso permitido con éxito",
"Deleted ([0-9]{1,}) peer\\(s\\)": "Eliminados $1 peer(s)",
"Deleted ([0-9]{1,}) peer\\(s\\) successfully. Failed to delete ([0-9]{1,}) peer\\(s\\)": "Eliminados $1 peer(s) con éxito. Fallo al eliminar $2 peer(s)",
"Restricted ([0-9]{1,}) peer\\(s\\)": "Restringidos $1 peer(s)",
"Restricted ([0-9]{1,}) peer\\(s\\) successfully. Failed to restrict ([0-9]{1,}) peer\\(s\\)": "Restringidos $1 peer(s) con éxito. Fallo al restringir $2 peer(s)"
}

View File

@ -1,242 +1,242 @@
{
"Welcome to": "Benvenuto su",
"Username": "Nome utente",
"Password": "Password",
"OTP from your authenticator": "OTP del tuo autenticatore",
"Sign In": "Accedi",
"Signing In\\.\\.\\.": "Accesso...",
"Access Remote Server": "Accedi ad un server remoto",
"Server": "Server",
"Click": "Clicca",
"Pinging...": "Ping...",
"to add your server": "per aggiungere il tuo server",
"Server List": "Elenco dei server",
"Sorry, your username or password is incorrect.": "Spiacente, il nome utente o la password sono errati.",
"Home": "Home",
"Settings": "Impostazioni",
"Tools": "Strumenti",
"Sign Out": "Esci",
"Checking for update...": "Verifica aggiornamenti...",
"You're on the latest version": "Stai utilizzando l'ultima versione",
"WireGuard Configurations": "Configurazioni di WireGuard",
"You don't have any WireGuard configurations yet. Please check the configuration folder or change it in Settings. By default the folder is /etc/wireguard.": "Non hai ancora configurazioni WireGuard. Controlla la cartella di configurazione o cambiala nelle impostazioni. Per impostazione predefinita, la cartella è /etc/wireguard.",
"Configuration": "Configurazione",
"Configurations": "Configurazioni",
"Peers Default Settings": "Impostazioni predefinite per i Peer",
"Dashboard Theme": "Tema della dashboard",
"Light": "Chiaro",
"Dark": "Scuro",
"This will be changed globally, and will be apply to all peer's QR code and configuration file.": "Questo verrà modificato a livello globale, e applicato a tutti i codici QR e ai file di configurazione dei Peer.",
"WireGuard Configurations Settings": "Impostazioni delle configurazioni di WireGuard",
"Configurations Directory": "Cartella delle configurazioni",
"Remember to remove / at the end of your path. e.g /etc/wireguard": "Ricorda di rimuovere '/' alla fine del tuo percorso. Ad esempio, '/etc/wireguard'",
"WGDashboard Account Settings": "Impostazioni account WGDashboard",
"Current Password": "Password attuale",
"New Password": "Nuova password",
"Repeat New Password": "Ripeti la nuova password",
"Update Password": "Aggiorna la password",
"Multi-Factor Authentication \\(MFA\\)": "Autenticazione a più fattori (MFA)",
"Reset": "Ripristina",
"Setup": "Imposta",
"API Keys": "Chiavi API",
"API Key": "Chiave API",
"Key": "Chiave",
"Enabled": "Abilitato",
"Disabled": "Disabilitato",
"No WGDashboard API Key": "Nessuna chiave API WGDashboard",
"Expire At": "Scade il",
"Are you sure to delete this API key\\?": "Sei sicuro di elimineare questa chiave API?",
"Create API Key": "Crea una nuova chaive API",
"When should this API Key expire\\?": "Quando dovrebbe scadere questa chiave API?",
"Never Expire": "Nessuna scadenza",
"Don't think that's a good idea": "Non pensare che questa sia una buona idea",
"Creating\\.\\.\\.": "Creazione...",
"Create": "Crea",
"Status": "Stato",
"On": "Acceso",
"Off": "Spento",
"Turning On\\.\\.\\.": "Accensione...",
"Turning Off\\.\\.\\.": "Spegnimento...",
"Address": "Indirizzo",
"Listen Port": "Porta in ascolto",
"Public Key": "Chiave pubblica",
"Connected Peers": "Peer connessi",
"Total Usage": "Uso dei dati totale",
"Total Received": "Dati totali ricevuti",
"Total Sent": "Dati totali inviati",
"Peers Data Usage": "Uso dei dati dei Peers",
"Real Time Received Data Usage": "Dati ricevuti in tempo reale",
"Real Time Sent Data Usage": "Dati inviati in tempo reale",
"Peer": "Peer",
"Peers": "Peers",
"Peer Settings": "Impostazioni Peers",
"Download All": "Scarica tutto",
"Search Peers\\.\\.\\.": "Cerca Peers...",
"Display": "Mostra",
"Sort By": "Ordina per",
"Refresh Interval": "Intervallo di aggiornamento",
"Name": "Nome",
"Allowed IPs": "IP consentiti",
"Restricted": "Limitato",
"(.*) Seconds": "$1 Secondo/i",
"(.*) Minutes": "$1 Minuto/i",
"Configuration Settings": "Configurazioni",
"Peer Jobs": "Job dei Peer",
"Active Jobs": "Job attivi",
"All Active Jobs": "Tutti i job attivi",
"Logs": "Log",
"Private Key": "Chiave privata",
"\\(Required for QR Code and Download\\)": "(Richiesto per il codice QR ed il Download)",
"\\(Required\\)": "(Richiesto)",
"Endpoint Allowed IPs": "Indirizzi IP degli endpoint consentiti",
"DNS": "DNS",
"Optional Settings": "Impostazioni opzionali",
"Pre-Shared Key": "Chiave pre-condivisa",
"MTU": "MTU",
"Persistent Keepalive": "Keepalive persistente",
"Reset Data Usage": "Resetta l'utilizzo dei dati",
"Total": "Totale",
"Sent": "Inviato",
"Received": "Ricevuto",
"Revert": "Ripristina",
"Save Peer": "Salva il Peer",
"QR Code": "Codice QR",
"Schedule Jobs": "Job pianificati",
"Job": "Job",
"Job ID": "ID del Job",
"Unsaved Job": "Job non salvato",
"This peer does not have any job yet\\.": "Questo Peer non ha ancora nessun Job",
"if": "se",
"is": "è",
"then": "allora",
"larger than": "più grande di",
"Date": "Data",
"Restrict Peer": "Limita il Peer",
"Delete Peer": "Elimina il Peer",
"Edit": "Modifica",
"Delete": "Elimina",
"Deleting...": "Eliminazione...",
"Cancel": "Annulla",
"Save": "Salva",
"No active job at the moment\\.": "Nessuna Job attivo al momento.",
"Jobs Logs": "Log dei Job",
"Updated at": "Aggiornato al",
"Refresh": "Aggiorna",
"Filter": "Filtra",
"Success": "Successo",
"Failed": "Fallito",
"Log ID": "ID del log",
"Message": "Messaggio",
"Share Peer": "Condividi Peer",
"Currently the peer is not sharing": "Attualmente il peer non sta condividendo",
"Sharing\\.\\.\\.": "Condivisione...",
"Start Sharing": "Avvia condivisione",
"Stop Sharing\\.\\.\\.": "Interruzione condivisione...",
"Stop Sharing": "Interrompi condivisione",
"Access Restricted": "Accesso limitato",
"Restrict Access": "Limita l'accesso",
"Restricting\\.\\.\\.": "Limitazione...",
"Allow Access": "Abilità l'accesso",
"Allowing Access\\.\\.\\.": "Abilitazione dell'accesso...",
"Download \\& QR Code is not available due to no private key set for this peer": "Il download ed il codice QR non sono disponibili fino a quando non imposti una chiave privata per questo Peer",
"Add Peers": "Aggiungi un Peer",
"Bulk Add": "Inserimento multiplo",
"By adding peers by bulk, each peer's name will be auto generated, and Allowed IP will be assign to the next available IP\\.": "Aggiungendo Peer multipli, il nome di ciascun Peer verrà generato automaticamente e l'IP consentito verrà assegnato al prossimo IP disponibile.",
"How many peers you want to add\\?": "Quanti Peer vuoi aggiungere?",
"You can add up to (.*) peers": "Puoi aggiungere fino a $1 peer",
"Use your own Private and Public Key": "Usa la tua chiave privata e la tua chiave pubblica",
"Enter IP Address/CIDR": "Inserisici l'indirizzo IP/CIDR",
"IP Address/CIDR": "Indirizzo IP/CIDR",
"or": "o",
"Pick Available IP": "Seleziona un IP disponibile",
"No available IP containing": "Nessun IP disponibile corrispondente",
"Add": "Aggiungi",
"Adding\\.\\.\\.": "Aggiunta...",
"Failed to check available update": "Non è stato possibile verificare la disponibilità di nuovi aggiornamenti",
"Nice to meet you!": "Piacere di conoscerti!",
"Please fill in the following fields to finish setup": "Per favore completa i seguenti campi per terminare la configurazione",
"Create an account": "Crea un nuovo account",
"Enter an username you like": "Inserisci l'username che preferisci",
"Enter a password": "Inserisci una password",
"\\(At least 8 characters and make sure is strong enough!\\)": "(Almeno 8 caratteri e assicurati che sia sufficentemente forte)",
"Confirm password": "Conferma la password",
"Next": "Avanti",
"Saving\\.\\.\\.": "Salvataggio...",
"1\\. Please scan the following QR Code to generate TOTP with your choice of authenticator": "1. Scansiona il seguente codice QR per generare un TOTP con l'autenticatore che preferisci",
"Or you can click the link below:": "Oppure clicca il seguente link: ",
"2\\. Enter the TOTP generated by your authenticator to verify": "2. Inserisci il codice TOTP generato dal tuo autenticatore per la verifica",
"TOTP verified!": "TOTP Verificato!",
"I don't need MFA": "Non ho bisogno di MFA",
"Complete": "Completato",
"(v[0-9.]{1,}) is now available for update!": "$1 è dispobile per l'aggiornamento!",
"Current Version:": "Versione corrente: ",
"Oh no\\.\\.\\. This link is either expired or invalid\\.": "Oh no... Questo link è scaduto oppure non è invalido.",
"Scan QR Code with the WireGuard App to add peer": "Scansiona il codice QR con la applicazione WireGuard per aggiungere il Peer",
"or click the button below to download the ": "oppure clicca il bottone qui sotto per scaricare il ",
" file": " file",
"FROM ": "DA ",
"(.*) is on": "$1 è attivo",
"(.*) is off": "$1 è disattivo",
"Allowed IPs is invalid": "Gli indirizzi IP consentiti non sono validi",
"Peer created successfully": "Peer creato con successo",
"Please fill in all required box": "Perfavore inserisci tutti i cambi richiesti",
"Please specify amount of peers you want to add": "Perfavore inserisci il numero di Peer che vuoi inserire",
"No more available IP can assign": "Non ci sono più IP disponibili che possono essere assegnati",
"The maximum number of peers can add is (.*)": "Il numero massimo di peer che puoi aggiungere è/sono $1",
"Generating key pairs by bulk failed": "Generazione delle coppie di chiavi in blocco fallita",
"Failed to add peers in bulk": "Impossibile inserire i Peer in blocco",
"This peer already exist": "Questo Peer esiste già",
"This IP is not available: (.*)": "Questo indirizzo IP non è disponibile: $1",
"Configuration does not exist": "La configurazione non esiste",
"Peer does not exist": "Il Peer non esiste.",
"Please provide a valid configuration name": "Perfavore fornisci un nome per la configurazione valido",
"Peer saved": "Peer salvato",
"Allowed IPs already taken by another peer": "Gli indirizzi IP consentiti sono già stati assegnati ad un'altro Peer",
"Endpoint Allowed IPs format is incorrect": "L'indirizzi di destinazione consentiti non sono nel formato corretto",
"DNS format is incorrect": "Il formato dell'indirizzo DNS non è corretto",
"MTU format is not correct": "Il formato dell'MTU non è corretto",
"Persistent Keepalive format is not correct": "Il Keepalive persistente non è nel formato corretto",
"Private key does not match with the public key": "La chiave privata non è cooerente con la chiave pubblica",
"Update peer failed when updating Pre-Shared Key": "Aggiornamento del Peer fallito durante l'aggiornamento della chiave condivisa",
"Update peer failed when updating Allowed IPs": "Aggioranmento del Peer fallito durante l'aggiornamento degli IP consentiti.",
"Update peer failed when saving the configuration": "Aggiornamento del Peer fallito durante l'aggiornamento della configurazione",
"Peer data usage reset successfully": "Uso dei dati del Peer ripristinati correttamente",
"Peer download started": "Scaricamento del Peer avviato",
"Please specify one or more peers": "Perfavore specifica uno o più Peer",
"Share link failed to create. Reason: (.*)": "Creazione del link di condivisione fallito. Motivo: $1",
"Link expire date updated": "Data di scadenza del link aggioranta",
"Link expire date failed to update. Reason: (.*)": "Aggiornamento della data di scadenza del link fallito. Motivo: $1",
"Peer job saved": "Job del Peer salvato",
"Please specify job": "Perfavore specifica un Job",
"Please specify peer and configuration": "Perfavore specifica un Peer oppure una configurazione",
"Peer job deleted": "Job del Peer eliminato",
"API Keys function is successfully enabled": "La funzionalità delle chiavi API è stata attiviata con successo",
"API Keys function is successfully disabled": "La funzionalità delle chivi API è stata disattivata con successo",
"API Keys function is failed to enable": "Impossibile abilitare la funzionalità delle chiavi API",
"API Keys function is failed to disable": "Impossibile disabilitare la funzionalità delle chiavi API",
"WGDashboard API Keys function is disabled": "La funzionalità delle chiavi API WGDashboard è stata disabilitata",
"WireGuard configuration path saved": "Percorso di configurazione WireGuard salvato",
"API Key deleted": "Chiave API eliminata",
"API Key created": "Chiave API creata",
"Sign in session ended, please sign in again": "La sessione corrente è scaduta, pervafore accedi di nuovo",
"Please specify an IP Address (v4/v6)": "Perfavore specifica un indirizzo IP (v4/v6)",
"Please provide ipAddress and count": "Per favore fornisci un indirizzo IP ed un conteggio",
"Please provide ipAddress": "Perfavore fornisci un indirizzo IP",
"Dashboard Language": "Lingua della Dashboard",
"Dashboard language update failed": "Impossibile aggiornare la lingua della Dashboard",
"Peer Remote Endpoint": "Destinazione remota del Peer",
"New Configuration": "Nuova configurazione",
"Configuration Name": "Nome della configurazione",
"Configuration name is invalid. Possible reasons:": "Il nome della configurazione non è valido. Motivi:",
"Configuration name already exist\\.": "Il nome della configurazione esiste già.",
"Configuration name can only contain 15 lower/uppercase alphabet, numbers, underscore, equal sign, plus sign, period and hyphen\\.": "Il nome della configurazione può contenere solo 15 lettere tra minuscole/maiuscole, numeri, segno '_', segno '=', segno '>', punto e virgola.",
"Invalid Port": "Porta non valida",
"Save Configuration": "Salva la configurazione",
"IP Address/CIDR is invalid": "L'indirizzo IP/CIDR non è valido",
"IP Address": "",
"Enter IP Address / Hostname": "",
"Welcome to": "Benvenuto su",
"Username": "Nome utente",
"Password": "Password",
"OTP from your authenticator": "OTP del tuo autenticatore",
"Sign In": "Accedi",
"Signing In\\.\\.\\.": "Accesso...",
"Access Remote Server": "Accedi ad un server remoto",
"Server": "Server",
"Click": "Clicca",
"Pinging...": "Ping...",
"to add your server": "per aggiungere il tuo server",
"Server List": "Elenco dei server",
"Sorry, your username or password is incorrect.": "Spiacente, il nome utente o la password sono errati.",
"Home": "Home",
"Settings": "Impostazioni",
"Tools": "Strumenti",
"Sign Out": "Esci",
"Checking for update...": "Verifica aggiornamenti...",
"You're on the latest version": "Stai utilizzando l'ultima versione",
"WireGuard Configurations": "Configurazioni di WireGuard",
"You don't have any WireGuard configurations yet. Please check the configuration folder or change it in Settings. By default the folder is /etc/wireguard.": "Non hai ancora configurazioni WireGuard. Controlla la cartella di configurazione o cambiala nelle impostazioni. Per impostazione predefinita, la cartella è /etc/wireguard.",
"Configuration": "Configurazione",
"Configurations": "Configurazioni",
"Peers Default Settings": "Impostazioni predefinite per i Peer",
"Dashboard Theme": "Tema della dashboard",
"Light": "Chiaro",
"Dark": "Scuro",
"This will be changed globally, and will be apply to all peer's QR code and configuration file.": "Questo verrà modificato a livello globale, e applicato a tutti i codici QR e ai file di configurazione dei Peer.",
"WireGuard Configurations Settings": "Impostazioni delle configurazioni di WireGuard",
"Configurations Directory": "Cartella delle configurazioni",
"Remember to remove / at the end of your path. e.g /etc/wireguard": "Ricorda di rimuovere '/' alla fine del tuo percorso. Ad esempio, '/etc/wireguard'",
"WGDashboard Account Settings": "Impostazioni account WGDashboard",
"Current Password": "Password attuale",
"New Password": "Nuova password",
"Repeat New Password": "Ripeti la nuova password",
"Update Password": "Aggiorna la password",
"Multi-Factor Authentication \\(MFA\\)": "Autenticazione a più fattori (MFA)",
"Reset": "Ripristina",
"Setup": "Imposta",
"API Keys": "Chiavi API",
"API Key": "Chiave API",
"Key": "Chiave",
"Enabled": "Abilitato",
"Disabled": "Disabilitato",
"No WGDashboard API Key": "Nessuna chiave API WGDashboard",
"Expire At": "Scade il",
"Are you sure to delete this API key\\?": "Sei sicuro di elimineare questa chiave API?",
"Create API Key": "Crea una nuova chaive API",
"When should this API Key expire\\?": "Quando dovrebbe scadere questa chiave API?",
"Never Expire": "Nessuna scadenza",
"Don't think that's a good idea": "Non pensare che questa sia una buona idea",
"Creating\\.\\.\\.": "Creazione...",
"Create": "Crea",
"Status": "Stato",
"On": "Acceso",
"Off": "Spento",
"Turning On\\.\\.\\.": "Accensione...",
"Turning Off\\.\\.\\.": "Spegnimento...",
"Address": "Indirizzo",
"Listen Port": "Porta in ascolto",
"Public Key": "Chiave pubblica",
"Connected Peers": "Peer connessi",
"Total Usage": "Uso dei dati totale",
"Total Received": "Dati totali ricevuti",
"Total Sent": "Dati totali inviati",
"Peers Data Usage": "Uso dei dati dei Peers",
"Real Time Received Data Usage": "Dati ricevuti in tempo reale",
"Real Time Sent Data Usage": "Dati inviati in tempo reale",
"Peer": "Peer",
"Peers": "Peers",
"Peer Settings": "Impostazioni Peers",
"Download All": "Scarica tutto",
"Search Peers\\.\\.\\.": "Cerca Peers...",
"Display": "Mostra",
"Sort By": "Ordina per",
"Refresh Interval": "Intervallo di aggiornamento",
"Name": "Nome",
"Allowed IPs": "IP consentiti",
"Restricted": "Limitato",
"(.*) Seconds": "$1 Secondo/i",
"(.*) Minutes": "$1 Minuto/i",
"Configuration Settings": "Configurazioni",
"Peer Jobs": "Job dei Peer",
"Active Jobs": "Job attivi",
"All Active Jobs": "Tutti i job attivi",
"Logs": "Log",
"Private Key": "Chiave privata",
"\\(Required for QR Code and Download\\)": "(Richiesto per il codice QR ed il Download)",
"\\(Required\\)": "(Richiesto)",
"Endpoint Allowed IPs": "Indirizzi IP degli endpoint consentiti",
"DNS": "DNS",
"Optional Settings": "Impostazioni opzionali",
"Pre-Shared Key": "Chiave pre-condivisa",
"MTU": "MTU",
"Persistent Keepalive": "Keepalive persistente",
"Reset Data Usage": "Resetta l'utilizzo dei dati",
"Total": "Totale",
"Sent": "Inviato",
"Received": "Ricevuto",
"Revert": "Ripristina",
"Save Peer": "Salva il Peer",
"QR Code": "Codice QR",
"Schedule Jobs": "Job pianificati",
"Job": "Job",
"Job ID": "ID del Job",
"Unsaved Job": "Job non salvato",
"This peer does not have any job yet\\.": "Questo Peer non ha ancora nessun Job",
"if": "se",
"is": "è",
"then": "allora",
"larger than": "più grande di",
"Date": "Data",
"Restrict Peer": "Limita il Peer",
"Delete Peer": "Elimina il Peer",
"Edit": "Modifica",
"Delete": "Elimina",
"Deleting...": "Eliminazione...",
"Cancel": "Annulla",
"Save": "Salva",
"No active job at the moment\\.": "Nessuna Job attivo al momento.",
"Jobs Logs": "Log dei Job",
"Updated at": "Aggiornato al",
"Refresh": "Aggiorna",
"Filter": "Filtra",
"Success": "Successo",
"Failed": "Fallito",
"Log ID": "ID del log",
"Message": "Messaggio",
"Share Peer": "Condividi Peer",
"Currently the peer is not sharing": "Attualmente il peer non sta condividendo",
"Sharing\\.\\.\\.": "Condivisione...",
"Start Sharing": "Avvia condivisione",
"Stop Sharing\\.\\.\\.": "Interruzione condivisione...",
"Stop Sharing": "Interrompi condivisione",
"Access Restricted": "Accesso limitato",
"Restrict Access": "Limita l'accesso",
"Restricting\\.\\.\\.": "Limitazione...",
"Allow Access": "Abilità l'accesso",
"Allowing Access\\.\\.\\.": "Abilitazione dell'accesso...",
"Download \\& QR Code is not available due to no private key set for this peer": "Il download ed il codice QR non sono disponibili fino a quando non imposti una chiave privata per questo Peer",
"Add Peers": "Aggiungi un Peer",
"Bulk Add": "Inserimento multiplo",
"By adding peers by bulk, each peer's name will be auto generated, and Allowed IP will be assign to the next available IP\\.": "Aggiungendo Peer multipli, il nome di ciascun Peer verrà generato automaticamente e l'IP consentito verrà assegnato al prossimo IP disponibile.",
"How many peers you want to add\\?": "Quanti Peer vuoi aggiungere?",
"You can add up to (.*) peers": "Puoi aggiungere fino a $1 peer",
"Use your own Private and Public Key": "Usa la tua chiave privata e la tua chiave pubblica",
"Enter IP Address/CIDR": "Inserisici l'indirizzo IP/CIDR",
"IP Address/CIDR": "Indirizzo IP/CIDR",
"or": "o",
"Pick Available IP": "Seleziona un IP disponibile",
"No available IP containing": "Nessun IP disponibile corrispondente",
"Add": "Aggiungi",
"Adding\\.\\.\\.": "Aggiunta...",
"Failed to check available update": "Non è stato possibile verificare la disponibilità di nuovi aggiornamenti",
"Nice to meet you!": "Piacere di conoscerti!",
"Please fill in the following fields to finish setup": "Per favore completa i seguenti campi per terminare la configurazione",
"Create an account": "Crea un nuovo account",
"Enter an username you like": "Inserisci l'username che preferisci",
"Enter a password": "Inserisci una password",
"\\(At least 8 characters and make sure is strong enough!\\)": "(Almeno 8 caratteri e assicurati che sia sufficentemente forte)",
"Confirm password": "Conferma la password",
"Next": "Avanti",
"Saving\\.\\.\\.": "Salvataggio...",
"1\\. Please scan the following QR Code to generate TOTP with your choice of authenticator": "1. Scansiona il seguente codice QR per generare un TOTP con l'autenticatore che preferisci",
"Or you can click the link below:": "Oppure clicca il seguente link: ",
"2\\. Enter the TOTP generated by your authenticator to verify": "2. Inserisci il codice TOTP generato dal tuo autenticatore per la verifica",
"TOTP verified!": "TOTP Verificato!",
"I don't need MFA": "Non ho bisogno di MFA",
"Complete": "Completato",
"(v[0-9.]{1,}) is now available for update!": "$1 è dispobile per l'aggiornamento!",
"Current Version:": "Versione corrente: ",
"Oh no\\.\\.\\. This link is either expired or invalid\\.": "Oh no... Questo link è scaduto oppure non è invalido.",
"Scan QR Code with the WireGuard App to add peer": "Scansiona il codice QR con la applicazione WireGuard per aggiungere il Peer",
"or click the button below to download the ": "oppure clicca il bottone qui sotto per scaricare il ",
" file": " file",
"FROM ": "DA ",
"(.*) is on": "$1 è attivo",
"(.*) is off": "$1 è disattivo",
"Allowed IPs is invalid": "Gli indirizzi IP consentiti non sono validi",
"Peer created successfully": "Peer creato con successo",
"Please fill in all required box": "Perfavore inserisci tutti i cambi richiesti",
"Please specify amount of peers you want to add": "Perfavore inserisci il numero di Peer che vuoi inserire",
"No more available IP can assign": "Non ci sono più IP disponibili che possono essere assegnati",
"The maximum number of peers can add is (.*)": "Il numero massimo di peer che puoi aggiungere è/sono $1",
"Generating key pairs by bulk failed": "Generazione delle coppie di chiavi in blocco fallita",
"Failed to add peers in bulk": "Impossibile inserire i Peer in blocco",
"This peer already exist": "Questo Peer esiste già",
"This IP is not available: (.*)": "Questo indirizzo IP non è disponibile: $1",
"Configuration does not exist": "La configurazione non esiste",
"Peer does not exist": "Il Peer non esiste.",
"Please provide a valid configuration name": "Perfavore fornisci un nome per la configurazione valido",
"Peer saved": "Peer salvato",
"Allowed IPs already taken by another peer": "Gli indirizzi IP consentiti sono già stati assegnati ad un'altro Peer",
"Endpoint Allowed IPs format is incorrect": "L'indirizzi di destinazione consentiti non sono nel formato corretto",
"DNS format is incorrect": "Il formato dell'indirizzo DNS non è corretto",
"MTU format is not correct": "Il formato dell'MTU non è corretto",
"Persistent Keepalive format is not correct": "Il Keepalive persistente non è nel formato corretto",
"Private key does not match with the public key": "La chiave privata non è cooerente con la chiave pubblica",
"Update peer failed when updating Pre-Shared Key": "Aggiornamento del Peer fallito durante l'aggiornamento della chiave condivisa",
"Update peer failed when updating Allowed IPs": "Aggioranmento del Peer fallito durante l'aggiornamento degli IP consentiti.",
"Update peer failed when saving the configuration": "Aggiornamento del Peer fallito durante l'aggiornamento della configurazione",
"Peer data usage reset successfully": "Uso dei dati del Peer ripristinati correttamente",
"Peer download started": "Scaricamento del Peer avviato",
"Please specify one or more peers": "Perfavore specifica uno o più Peer",
"Share link failed to create. Reason: (.*)": "Creazione del link di condivisione fallito. Motivo: $1",
"Link expire date updated": "Data di scadenza del link aggioranta",
"Link expire date failed to update. Reason: (.*)": "Aggiornamento della data di scadenza del link fallito. Motivo: $1",
"Peer job saved": "Job del Peer salvato",
"Please specify job": "Perfavore specifica un Job",
"Please specify peer and configuration": "Perfavore specifica un Peer oppure una configurazione",
"Peer job deleted": "Job del Peer eliminato",
"API Keys function is successfully enabled": "La funzionalità delle chiavi API è stata attiviata con successo",
"API Keys function is successfully disabled": "La funzionalità delle chivi API è stata disattivata con successo",
"API Keys function is failed to enable": "Impossibile abilitare la funzionalità delle chiavi API",
"API Keys function is failed to disable": "Impossibile disabilitare la funzionalità delle chiavi API",
"WGDashboard API Keys function is disabled": "La funzionalità delle chiavi API WGDashboard è stata disabilitata",
"WireGuard configuration path saved": "Percorso di configurazione WireGuard salvato",
"API Key deleted": "Chiave API eliminata",
"API Key created": "Chiave API creata",
"Sign in session ended, please sign in again": "La sessione corrente è scaduta, pervafore accedi di nuovo",
"Please specify an IP Address (v4/v6)": "Perfavore specifica un indirizzo IP (v4/v6)",
"Please provide ipAddress and count": "Per favore fornisci un indirizzo IP ed un conteggio",
"Please provide ipAddress": "Perfavore fornisci un indirizzo IP",
"Dashboard Language": "Lingua della Dashboard",
"Dashboard language update failed": "Impossibile aggiornare la lingua della Dashboard",
"Peer Remote Endpoint": "Destinazione remota del Peer",
"New Configuration": "Nuova configurazione",
"Configuration Name": "Nome della configurazione",
"Configuration name is invalid. Possible reasons:": "Il nome della configurazione non è valido. Motivi:",
"Configuration name already exist\\.": "Il nome della configurazione esiste già.",
"Configuration name can only contain 15 lower/uppercase alphabet, numbers, underscore, equal sign, plus sign, period and hyphen\\.": "Il nome della configurazione può contenere solo 15 lettere tra minuscole/maiuscole, numeri, segno '_', segno '=', segno '>', punto e virgola.",
"Invalid Port": "Porta non valida",
"Save Configuration": "Salva la configurazione",
"IP Address/CIDR is invalid": "L'indirizzo IP/CIDR non è valido",
"IP Address": "Indirizzo IP",
"Enter IP Address / Hostname": "Inserisici l'indirizzo IP/CIDR",
"IP Address / Hostname": "",
"Dashboard IP Address \\& Listen Port": "",
"Dashboard IP Address \\& Listen Port": "",
"Count": "",
"Geolocation": "",
"Is Alive": "",

View File

@ -0,0 +1,312 @@
{
"Welcome to": "",
"Username": "",
"Password": "",
"OTP from your authenticator": "",
"Sign In": "",
"Signing In\\.\\.\\.": "",
"Access Remote Server": "",
"Server": "",
"Click": "",
"Pinging...": "",
"to add your server": "",
"Server List": "",
"Sorry, your username or password is incorrect.": "",
"Home": "",
"Settings": "",
"Tools": "",
"Sign Out": "",
"Checking for update...": "",
"You're on the latest version": "",
"WireGuard Configurations": "",
"You don't have any WireGuard configurations yet. Please check the configuration folder or change it in Settings. By default the folder is /etc/wireguard.": "",
"Configuration": "",
"Configurations": "",
"Peers Default Settings": "",
"Dashboard Theme": "",
"Light": "",
"Dark": "",
"This will be changed globally, and will be apply to all peer's QR code and configuration file.": "",
"WireGuard Configurations Settings": "",
"Configurations Directory": "",
"Remember to remove / at the end of your path. e.g /etc/wireguard": "",
"WGDashboard Account Settings": "",
"Current Password": "",
"New Password": "",
"Repeat New Password": "",
"Update Password": "",
"Multi-Factor Authentication \\(MFA\\)": "",
"Reset": "",
"Setup": "",
"API Keys": "",
"API Key": "",
"Key": "",
"Enabled": "",
"Disabled": "",
"No WGDashboard API Key": "",
"Expire At": "",
"Are you sure to delete this API key\\?": "",
"Create API Key": "",
"When should this API Key expire\\?": "",
"Never Expire": "",
"Don't think that's a good idea": "",
"Creating\\.\\.\\.": "",
"Create": "",
"Status": "",
"On": "",
"Off": "",
"Turning On\\.\\.\\.": "",
"Turning Off\\.\\.\\.": "",
"Address": "",
"Listen Port": "",
"Public Key": "",
"Connected Peers": "",
"Total Usage": "",
"Total Received": "",
"Total Sent": "",
"Peers Data Usage": "",
"Real Time Received Data Usage": "",
"Real Time Sent Data Usage": "",
"Peer": "",
"Peers": "",
"Peer Settings": "",
"Download All": "",
"Search Peers\\.\\.\\.": "",
"Display": "",
"Sort By": "",
"Refresh Interval": "",
"Name": "",
"Allowed IPs": "",
"Restricted": "",
"(.*) Seconds": "",
"(.*) Minutes": "",
"Configuration Settings": "",
"Peer Jobs": "",
"Active Jobs": "",
"All Active Jobs": "",
"Logs": "",
"Private Key": "",
"\\(Required for QR Code and Download\\)": "",
"\\(Required\\)": "",
"Endpoint Allowed IPs": "",
"DNS": "",
"Optional Settings": "",
"Pre-Shared Key": "",
"MTU": "",
"Persistent Keepalive": "",
"Reset Data Usage": "",
"Total": "",
"Sent": "",
"Received": "",
"Revert": "",
"Save Peer": "",
"QR Code": "",
"Schedule Jobs": "",
"Job": "",
"Job ID": "",
"Unsaved Job": "",
"This peer does not have any job yet\\.": "",
"if": "",
"is": "",
"then": "",
"larger than": "",
"Date": "",
"Restrict Peer": "",
"Delete Peer": "",
"Edit": "",
"Delete": "",
"Deleting...": "",
"Cancel": "",
"Save": "",
"No active job at the moment\\.": "",
"Jobs Logs": "",
"Updated at": "",
"Refresh": "",
"Filter": "",
"Success": "",
"Failed": "",
"Log ID": "",
"Message": "",
"Share Peer": "",
"Currently the peer is not sharing": "",
"Sharing\\.\\.\\.": "",
"Start Sharing": "",
"Stop Sharing\\.\\.\\.": "",
"Stop Sharing": "",
"Access Restricted": "",
"Restrict Access": "",
"Restricting\\.\\.\\.": "",
"Allow Access": "",
"Allowing Access\\.\\.\\.": "",
"Download \\& QR Code is not available due to no private key set for this peer": "",
"Add Peers": "",
"Bulk Add": "",
"By adding peers by bulk, each peer's name will be auto generated, and Allowed IP will be assign to the next available IP\\.": "",
"How many peers you want to add\\?": "",
"You can add up to (.*) peers": "",
"Use your own Private and Public Key": "",
"Enter IP Address/CIDR": "",
"IP Address/CIDR": "",
"or": "",
"Pick Available IP": "",
"No available IP containing": "",
"Add": "",
"Adding\\.\\.\\.": "",
"Failed to check available update": "",
"Nice to meet you!": "",
"Please fill in the following fields to finish setup": "",
"Create an account": "",
"Enter an username you like": "",
"Enter a password": "",
"\\(At least 8 characters and make sure is strong enough!\\)": "",
"Confirm password": "",
"Next": "",
"Saving\\.\\.\\.": "",
"1\\. Please scan the following QR Code to generate TOTP with your choice of authenticator": "",
"Or you can click the link below:": "",
"2\\. Enter the TOTP generated by your authenticator to verify": "",
"TOTP verified!": "",
"I don't need MFA": "",
"Complete": "",
"(v[0-9.]{1,}) is now available for update!": "",
"Current Version:": "",
"Oh no\\.\\.\\. This link is either expired or invalid\\.": "",
"Scan QR Code with the WireGuard App to add peer": "",
"or click the button below to download the ": "",
" file": "",
"FROM ": "",
"(.*) is on": "",
"(.*) is off": "",
"Allowed IPs is invalid": "",
"Peer created successfully": "",
"Please fill in all required box": "",
"Please specify amount of peers you want to add": "",
"No more available IP can assign": "",
"The maximum number of peers can add is (.*)": "",
"Generating key pairs by bulk failed": "",
"Failed to add peers in bulk": "",
"This peer already exist": "",
"This IP is not available: (.*)": "",
"Configuration does not exist": "",
"Peer does not exist": "",
"Please provide a valid configuration name": "",
"Peer saved": "",
"Allowed IPs already taken by another peer": "",
"Endpoint Allowed IPs format is incorrect": "",
"DNS format is incorrect": "",
"MTU format is not correct": "",
"Persistent Keepalive format is not correct": "",
"Private key does not match with the public key": "",
"Update peer failed when updating Pre-Shared Key": "",
"Update peer failed when updating Allowed IPs": "",
"Update peer failed when saving the configuration": "",
"Peer data usage reset successfully": "",
"Peer download started": "",
"Please specify one or more peers": "",
"Share link failed to create. Reason: (.*)": "",
"Link expire date updated": "",
"Link expire date failed to update. Reason: (.*)": "",
"Peer job saved": "",
"Please specify job": "",
"Please specify peer and configuration": "",
"Peer job deleted": "",
"API Keys function is successfully enabled": "",
"API Keys function is successfully disabled": "",
"API Keys function is failed to enable": "",
"API Keys function is failed to disable": "",
"WGDashboard API Keys function is disabled": "",
"WireGuard configuration path saved": "",
"API Key deleted": "",
"API Key created": "",
"Sign in session ended, please sign in again": "",
"Please specify an IP Address (v4/v6)": "",
"Please provide ipAddress and count": "",
"Please provide ipAddress": "",
"Dashboard Language": "",
"Dashboard language update failed": "",
"Peer Remote Endpoint": "",
"New Configuration": "",
"Configuration Name": "",
"Configuration name is invalid. Possible reasons:": "",
"Configuration name already exist\\.": "",
"Configuration name can only contain 15 lower/uppercase alphabet, numbers, underscore, equal sign, plus sign, period and hyphen\\.": "",
"Invalid Port": "",
"Save Configuration": "",
"IP Address/CIDR is invalid": "",
"IP Address": "",
"Enter IP Address / Hostname": "",
"IP Address / Hostname": "",
"Dashboard IP Address \\& Listen Port": "",
"Count": "",
"Geolocation": "",
"Is Alive": "",
"Average / Min / Max Round Trip Time": "",
"Sent / Received / Lost Package": "",
"Manual restart of WGDashboard is needed to apply changes on IP Address and Listen Port": "",
"Restore Configuration": "",
"Step (.*)": "",
"Select a backup you want to restore": "",
"Click to change a backup": "",
"Selected Backup": "",
"You don't have any configuration to restore": "",
"Help": "",
"Backup": "",
"([0-9].*) Backups?": "",
"Yes": "",
"No": "",
"Backup not selected": "",
"Confirm \\& edit restore information": "",
"(.*) Available IP Address": "",
"Database File": "",
"Contain": "",
"Restricted Peers?": "",
"Restore": "",
"Restoring": "",
"WGDashboard Settings": "",
"Peers Settings": "",
"WireGuard Configuration Settings": "",
"Appearance": "",
"Theme": "",
"Language": "",
"Account Settings": "",
"Peer Default Settings": "",
"Toggle When Start Up": "",
"Other Settings": "",
"Select Peers": "",
"Backup & Restore": "",
"Delete Configuration": "",
"Create Backup": "",
"No backup yet, click the button above to create backup\\.": "",
"Are you sure to delete this backup\\?": "",
"Are you sure to restore this backup?\\": "",
"Backup Date": "",
"File": "",
"Are you sure to delete this configuration\\?": "",
"Once you deleted this configuration\\:": "",
"All connected peers will get disconnected": "",
"Both configuration file \\(\\.conf\\) and database table related to this configuration will get deleted": "",
"Checking backups...": "",
"This configuration have ([0-9].*) backups": "",
"This configuration have no backup": "",
"If you're sure, please type in the configuration name below and click Delete": "",
"Select All": "",
"Clear Selection": "",
"([0-9].*) Peers?": "",
"Downloading": "",
"Download Finished": "",
"Done": "",
"Are you sure to delete": "",
"Are you sure to delete this peer\\?": "",
"Configuration deleted": "",
"Configuration saved": "",
"WGDashboard language update failed": "",
"Configuration restored": "",
"Allowed IP already taken by another peer": "",
"Failed to allow access of peer (.*)": "",
"Failed to save configuration through WireGuard": "",
"Allow access successfully": "",
"Deleted ([0-9]{1,}) peer\\(s\\)": "",
"Deleted ([0-9]{1,}) peer\\(s\\) successfully. Failed to delete ([0-9]{1,}) peer\\(s\\)": "",
"Restricted ([0-9]{1,}) peer\\(s\\)": "",
"Restricted ([0-9]{1,}) peer\\(s\\) successfully. Failed to restrict ([0-9]{1,}) peer\\(s\\)": ""
}

View File

@ -1,311 +1,312 @@
{
"Welcome to": "Welkom bij",
"Username": "Gebruikersnaam",
"Password": "Wachtwoord",
"OTP from your authenticator": "OTP van uw authenticator",
"Sign In": "Inloggen",
"Signing In...": "Inloggen...",
"Access Remote Server": "Toegang tot Remote Server",
"Server": "Server",
"Click": "Klik",
"Pinging...": "Pingen...",
"to add your server": "om uw server toe te voegen",
"Server List": "Serverlijst",
"Sorry, your username or password is incorrect.": "Sorry, uw gebruikersnaam of wachtwoord is onjuist.",
"Home": "Startpagina",
"Settings": "Instellingen",
"Tools": "Hulpmiddelen",
"Sign Out": "Uitloggen",
"Checking for update...": "Zoeken naar updates...",
"You're on the latest version": "U gebruikt de laatste versie",
"WireGuard Configurations": "WireGuard Configuraties",
"You don't have any WireGuard configurations yet. Please check the configuration folder or change it in Settings. By default the folder is /etc/wireguard.": "U heeft nog geen WireGuard configuraties. Controleer de configuratiemap of wijzig deze in de instellingen. Standaard is de map /etc/wireguard.",
"Configuration": "Configuratie",
"Configurations": "Configuraties",
"Peers Default Settings": "Standaardinstellingen voor Peers",
"Dashboard Theme": "Dashboard Thema",
"Light": "Licht",
"Dark": "Donker",
"This will be changed globally, and will be apply to all peer's QR code and configuration file.": "Dit wordt globaal gewijzigd en is van toepassing op alle QR-codes van peers en configuratiebestanden.",
"WireGuard Configurations Settings": "WireGuard Configuratie-instellingen",
"Configurations Directory": "Configuratiemap",
"Remember to remove / at the end of your path. e.g /etc/wireguard": "Vergeet niet de / aan het einde van uw pad te verwijderen. Bijv. /etc/wireguard",
"WGDashboard Account Settings": "WGDashboard Accountinstellingen",
"Current Password": "Huidig Wachtwoord",
"New Password": "Nieuw Wachtwoord",
"Repeat New Password": "Herhaal Nieuw Wachtwoord",
"Update Password": "Wachtwoord bijwerken",
"Multi-Factor Authentication (MFA)": "Multi-Factor Authenticatie (MFA)",
"Reset": "Resetten",
"Setup": "Instellen",
"API Keys": "API-sleutels",
"API Key": "API-sleutel",
"Key": "Sleutel",
"Enabled": "Ingeschakeld",
"Disabled": "Uitgeschakeld",
"No WGDashboard API Key": "Geen WGDashboard API-sleutel",
"Expire At": "Vervalt Op",
"Are you sure to delete this API key?": "Weet u zeker dat u deze API-sleutel wilt verwijderen?",
"Create API Key": "API-sleutel maken",
"When should this API Key expire?": "Wanneer moet deze API-sleutel vervallen?",
"Never Expire": "Nooit vervallen",
"Don't think that's a good idea": "Dit is geen goed idee, denk ik",
"Creating...": "Maken...",
"Create": "Maken",
"Status": "Status",
"On": "Aan",
"Off": "Uit",
"Turning On...": "Aanzetten...",
"Turning Off...": "Uitzetten...",
"Address": "Adres",
"Listen Port": "Luisterpoort",
"Public Key": "Publieke Sleutel",
"Connected Peers": "Verbonden Peers",
"Total Usage": "Totaal Gebruik",
"Total Received": "Totaal Ontvangen",
"Total Sent": "Totaal Verzonden",
"Peers Data Usage": "Data Gebruik van Peers",
"Real Time Received Data Usage": "Realtime Ontvangen Data Gebruik",
"Real Time Sent Data Usage": "Realtime Verzonden Data Gebruik",
"Peer": "Peer",
"Peers": "Peers",
"Peer Settings": "Peer Instellingen",
"Download All": "Alles Downloaden",
"Search Peers...": "Zoek Peers...",
"Display": "Weergave",
"Sort By": "Sorteren op",
"Refresh Interval": "Vernieuwingsinterval",
"Name": "Naam",
"Allowed IPs": "Allowed IPs",
"Restricted": "Beperkt",
"(.*) Seconds": "$1 Seconden",
"(.*) Minutes": "$1 Minuten",
"Configuration Settings": "Configuratie-instellingen",
"Peer Jobs": "Peer Taken",
"Active Jobs": "Actieve Taken",
"All Active Jobs": "Alle Actieve Taken",
"Logs": "Logboeken",
"Private Key": "Privé Sleutel",
"(Required for QR Code and Download)": "(Vereist voor QR-code en Download)",
"(Required)": "(Vereist)",
"Endpoint Allowed IPs": "Allowed-IPs voor Eindpunt",
"DNS": "DNS",
"Optional Settings": "Optionele Instellingen",
"Pre-Shared Key": "Pre-Shared Key",
"MTU": "MTU",
"Persistent Keepalive": "Persistente Keepalive",
"Reset Data Usage": "Reset Datagebruik",
"Total": "Totaal",
"Sent": "Verzonden",
"Received": "Ontvangen",
"Revert": "Herstellen",
"Save Peer": "Peer Opslaan",
"QR Code": "QR-code",
"Schedule Jobs": "Taken Inplannen",
"Job": "Taak",
"Job ID": "Taak ID",
"Unsaved Job": "Niet Opgeslagen Taak",
"This peer does not have any job yet.": "Deze peer heeft nog geen taak.",
"if": "als",
"is": "is",
"then": "dan",
"larger than": "groter dan",
"Date": "Datum",
"Restrict Peer": "Peer Beperken",
"Delete Peer": "Peer Verwijderen",
"Edit": "Bewerken",
"Delete": "Verwijderen",
"Deleting...": "Aan het verwijderen",
"Cancel": "Annuleren",
"Save": "Opslaan",
"No active job at the moment.": "Momenteel geen actieve taak.",
"Jobs Logs": "Taaklogboeken",
"Updated at": "Bijgewerkt op",
"Refresh": "Vernieuwen",
"Filter": "Filteren",
"Success": "Succesvol",
"Failed": "Mislukt",
"Log ID": "Log-ID",
"Message": "Bericht",
"Share Peer": "Deel Peer",
"Currently the peer is not sharing": "De peer deelt momenteel niet",
"Sharing...": "Delen aan het starten...",
"Start Sharing": "Start delen",
"Stop Sharing...": "Delen aan het stoppen...",
"Stop Sharing": "Stop met delen",
"Access Restricted": "Toegang Beperkt",
"Restrict Access": "Beperk toegang",
"Restricting...": "Aan het beperken...",
"Allow Access": "Toegang toestaan",
"Allowing Access...": "Toegang toe aan het staan...",
"Download & QR Code is not available due to no private key set for this peer": "Download & QR-code zijn niet beschikbaar omdat er geen privésleutel voor deze peer is ingesteld",
"Add Peers": "Peers toevoegen",
"Bulk Add": "Bulk toevoegen",
"By adding peers by bulk, each peer's name will be auto generated, and Allowed IP will be assign to the next available IP.": "Bij het bulk toevoegen wordt de naam van elke peer automatisch gegenereerd en wordt de Allowed-IPs aan het volgende beschikbare IP toegewezen.",
"How many peers you want to add?": "Hoeveel peers wil je toevoegen?",
"You can add up to (.*) peers": "Je kunt tot $1 peers toevoegen",
"Use your own Private and Public Key": "Gebruik je eigen Privé- en Publieke Sleutel",
"Enter IP Address/CIDR": "Voer IP-adres/CIDR in",
"IP Address/CIDR": "IP-adres/CIDR",
"or": "of",
"Pick Available IP": "Kies beschikbare IP",
"No available IP containing": "Geen beschikbare IP bevat",
"Add": "Toevoegen",
"Adding...": "Toevoegen...",
"Failed to check available update": "Controlen van beschikbare updates mislukt",
"Nice to meet you!": "Leuk je te ontmoeten!",
"Please fill in the following fields to finish setup": "Vul de volgende velden in om de installatie te voltooien",
"Create an account": "Maak een account aan",
"Enter an username you like": "Voer een gebruikersnaam in die je leuk vindt",
"Enter a password": "Voer een wachtwoord in",
"\\(At least 8 characters and make sure is strong enough!\\)": "(Minimaal 8 tekens en zorg ervoor dat het sterk genoeg is!)",
"Confirm password": "Bevestig wachtwoord",
"Next": "Volgende",
"Saving\\.\\.\\.": "Opslaan...",
"1\\. Please scan the following QR Code to generate TOTP with your choice of authenticator": "1. Scan de volgende QR-code om TOTP te genereren met je keuze van authenticator",
"Or you can click the link below:": "Of je kunt de onderstaande link klikken:",
"2\\. Enter the TOTP generated by your authenticator to verify": "2. Voer de door je authenticator gegenereerde TOTP in om te verifiëren",
"TOTP verified!": "TOTP succesvol geverifieerd!",
"I don't need MFA": "Ik heb geen MFA nodig",
"Complete": "Voltooien",
"(v[0-9.]{1,}) is now available for update!": "Versie $1 is nu beschikbaar voor update!",
"Current Version:": "Huidige versie:",
"Oh no\\.\\.\\. This link is either expired or invalid\\.": "Oh nee... Deze link is ofwel verlopen of ongeldig.",
"Scan QR Code with the WireGuard App to add peer": "Scan de QR-code met de WireGuard-app om peer toe te voegen",
"or click the button below to download the ": "of klik op de knop hieronder om de",
" file": " bestand te downloaden",
"FROM ": "VAN",
"(.*) is on": "$1 is ingeschakeld",
"(.*) is off": "$1 is uitgeschakeld",
"Allowed IPs is invalid": "Toegestane IP's zijn ongeldig",
"Peer created successfully": "Peer succesvol aangemaakt",
"Please fill in all required box": "Vul alle vereiste velden in",
"Please specify amount of peers you want to add": "Geef het aantal peers op dat je wilt toevoegen",
"No more available IP can assign": "Er kunnen geen extra beschikbare IP's worden toegewezen",
"The maximum number of peers can add is (.*)": "Het maximale aantal peers dat kan worden toegevoegd is $1",
"Generating key pairs by bulk failed": "Het massaal genereren van sleutelpaar is mislukt",
"Failed to add peers in bulk": "Massaal toevoegen van peers mislukt",
"This peer already exist": "Deze peer bestaat al",
"This IP is not available: (.*)": "Deze IP is niet beschikbaar: $1",
"Configuration does not exist": "Configuratie bestaat niet",
"Peer does not exist": "Peer bestaat niet",
"Please provide a valid configuration name": "Geef een geldige configuratienaam op",
"Peer saved": "Peer opgeslagen",
"Allowed IPs already taken by another peer": "Toegestane IP's zijn al in gebruik door een andere peer",
"Endpoint Allowed IPs format is incorrect": "Het formaat van toegestane IP's van het eindpunt is onjuist",
"DNS format is incorrect": "Het DNS-formaat is onjuist",
"MTU format is not correct": "Het MTU-formaat is onjuist",
"Persistent Keepalive format is not correct": "Het formaat van Persistent Keepalive is onjuist",
"Private key does not match with the public key": "Het privésleutel komt niet overeen met de publieke sleutel",
"Update peer failed when updating Pre-Shared Key": "Fout bij het bijwerken van de peer tijdens het bijwerken van de Pre-Shared Key",
"Update peer failed when updating Allowed IPs": "Fout bij het bijwerken van de peer tijdens het bijwerken van toegestane IP's",
"Update peer failed when saving the configuration": "Fout bij het opslaan van de peer-configuratie",
"Peer data usage reset successfully": "Peer-gegevensverbruik succesvol gereset",
"Peer download started": "Peer-download gestart",
"Please specify one or more peers": "Geef een of meer peers op",
"Share link failed to create. Reason: (.*)": "De gedeelde link kon niet worden aangemaakt. Reden: $1",
"Link expire date updated": "Vervaldatum van de link bijgewerkt",
"Link expire date failed to update. Reason: (.*)": "Vervaldatum van de link kon niet worden bijgewerkt. Reden: $1",
"Peer job saved": "Peer-taak opgeslagen",
"Please specify job": "Geef een taak op",
"Please specify peer and configuration": "Geef peer en configuratie op",
"Peer job deleted": "Peer-taak verwijderd",
"API Keys function is successfully enabled": "API-sleutelfunctie is succesvol ingeschakeld",
"API Keys function is successfully disabled": "API-sleutelfunctie is succesvol uitgeschakeld",
"API Keys function is failed to enable": "API-sleutelfunctie kon niet worden ingeschakeld",
"API Keys function is failed to disable": "API-sleutelfunctie kon niet worden uitgeschakeld",
"WGDashboard API Keys function is disabled": "De API-sleutelfunctie in WGDashboard is uitgeschakeld",
"WireGuard configuration path saved": "WireGuard-configuratiepad opgeslagen",
"API Key deleted": "API-sleutel verwijderd",
"API Key created": "API-sleutel aangemaakt",
"Sign in session ended, please sign in again": "Aanmeldsessie beëindigd, meld je opnieuw aan",
"Please specify an IP Address (v4/v6)": "Geef een IP-adres op (v4/v6)",
"Please provide ipAddress and count": "Geef het IP-adres en het aantal op",
"Please provide ipAddress": "Geef een IP-adres op",
"Dashboard Language": "Dashboard-taal",
"Dashboard language update failed": "Bijwerken van dashboard-taal mislukt",
"Peer Remote Endpoint": "Peer Remote Endpunt",
"New Configuration": "Nieuwe configuratie",
"Configuration Name": "Configuratienaam",
"Configuration name is invalid. Possible reasons:": "Configuratienaam is ongeldig. Mogelijke redenen:",
"Configuration name already exist.": "Configuratienaam bestaat al.",
"Configuration name can only contain 15 lower/uppercase alphabet, numbers, underscore, equal sign, plus sign, period and hyphen.": "De configuratienaam mag alleen uit 15 tekens bestaan, inclusief hoofd-/kleine letters, cijfers, onderstrepingsteken, gelijkteken, plusteken, punt en koppelteken.",
"Invalid Port": "Ongeldige poort",
"Save Configuration": "Configuratie opslaan",
"IP Address/CIDR is invalid": "IP-adres/CIDR is ongeldig",
"IP Address": "IP-adres",
"Enter IP Address / Hostname": "Voer IP-adres / Hostnaam in",
"IP Address / Hostname": "IP-adres / Hostnaam",
"Count": "Aantal",
"Geolocation": "Geolocatie",
"Is Alive": "Is actief",
"Average / Min / Max Round Trip Time": "Gemiddelde / Min / Max Round Trip Time",
"Sent / Received / Lost Package": "Verzonden / Ontvangen / Verloren pakket",
"Manual restart of WGDashboard is needed to apply changes on IP Address and Listen Port": "Handmatig opnieuw opstarten van WGDashboard is nodig om wijzigingen in IP-adres en luisterpoort toe te passen",
"Restore Configuration": "Herstel configuratie",
"Step (.*)": "Stap $1",
"Select a backup you want to restore": "Selecteer een back-up die je wilt herstellen",
"Click to change a backup": "Klik om een back-up te wijzigen",
"Selected Backup": "Geselecteerde back-up",
"You don't have any configuration to restore": "Je hebt geen configuratie om te herstellen",
"Help": "Help",
"Backup": "Back-up",
"([0-9].*) Backups?": "$1 Back-ups?",
"Yes": "Ja",
"No": "Nee",
"Backup not selected": "Geen back-up geselecteerd",
"Confirm & edit restore information": "Bevestigen & herstelinformatie bewerken",
"(.*) Available IP Address": "$1 Beschikbaar IP-adres",
"Database File": "Databestand",
"Contain": "Bevat",
"Restricted Peers?": "Beperkte Peers?",
"Restore": "Herstellen",
"Restoring": "Herstellen...",
"WGDashboard Settings": "WGDashboard Instellingen",
"Peers Settings": "Peers Instellingen",
"WireGuard Configuration Settings": "WireGuard Configuratie Instellingen",
"Appearance": "Weergave",
"Theme": "Thema",
"Language": "Taal",
"Account Settings": "Account Instellingen",
"Peer Default Settings": "Standaard Peer Instellingen",
"Toggle When Start Up": "Wisselen bij opstarten",
"Other Settings": "Andere Instellingen",
"Select Peers": "Selecteer Peers",
"Backup & Restore": "Back-up & Herstellen",
"Delete Configuration": "Configuratie Verwijderen",
"Create Backup": "Maak een Back-up",
"No backup yet, click the button above to create backup.": "Nog geen back-up, klik op de knop hierboven om een back-up te maken.",
"Are you sure to delete this backup?": "Weet je zeker dat je deze back-up wilt verwijderen?",
"Are you sure to restore this backup?": "Weet je zeker dat je deze back-up wilt herstellen?",
"Backup Date": "Back-up Datum",
"File": "Bestand",
"Are you sure to delete this configuration?": "Weet je zeker dat je deze configuratie wilt verwijderen?",
"Once you deleted this configuration:": "Zodra je deze configuratie hebt verwijderd:",
"All connected peers will get disconnected": "Alle verbonden peers worden losgekoppeld",
"Both configuration file (.conf) and database table related to this configuration will get deleted": "Zowel het configuratiebestand (.conf) als de databasetabel die aan deze configuratie is gekoppeld, worden verwijderd",
"Checking backups...": "Back-ups worden gecontroleerd...",
"This configuration have ([0-9].*) backups": "Deze configuratie heeft $1 back-ups",
"This configuration have no backup": "Deze configuratie heeft geen back-up",
"If you're sure, please type in the configuration name below and click Delete": "Als je zeker bent, typ dan de configuratienaam hieronder in en klik op Verwijderen",
"Select All": "Selecteer alles",
"Clear Selection": "Selectie wissen",
"([0-9].*) Peers?": "$1 Peers?",
"Downloading": "Bezig met downloaden",
"Download Finished": "Download voltooid",
"Done": "Klaar",
"Are you sure to delete": "Weet je zeker dat je wilt verwijderen?",
"Are you sure to delete this peer?": "Weet je zeker dat je deze peer wilt verwijderen?",
"Configuration deleted": "Configuratie verwijderd",
"Configuration saved": "Configuratie opgeslagen",
"WGDashboard language update failed": "Bijwerken van de WGDashboard-taal mislukt",
"Configuration restored": "Configuratie hersteld",
"Allowed IP already taken by another peer": "Toegestane IP is al in gebruik door een andere peer",
"Failed to allow access of peer (.*)": "Toegang voor peer $1 niet toegestaan",
"Failed to save configuration through WireGuard": "Configuratie opslaan via WireGuard mislukt",
"Allow access successfully": "Toegang succesvol toegestaan",
"Deleted ([0-9]{1,}) peer(s)": "$1 peer(s) verwijderd",
"Deleted ([0-9]{1,}) peer(s) successfully. Failed to delete ([0-9]{1,}) peer(s)": "$1 peer(s) succesvol verwijderd. Het verwijderen van $2 peer(s) is mislukt",
"Restricted ([0-9]{1,}) peer(s)": "$1 peer(s) beperkt",
"Restricted ([0-9]{1,}) peer(s) successfully. Failed to restrict ([0-9]{1,}) peer(s)": "$1 peer(s) succesvol beperkt. Het beperken van $2 peer(s) is mislukt"
}
"Welcome to": "Welkom bij",
"Username": "Gebruikersnaam",
"Password": "Wachtwoord",
"OTP from your authenticator": "OTP van uw authenticator",
"Sign In": "Inloggen",
"Signing In\\.\\.\\.": "Inloggen...",
"Access Remote Server": "Toegang tot Remote Server",
"Server": "Server",
"Click": "Klik",
"Pinging...": "Pingen...",
"to add your server": "om uw server toe te voegen",
"Server List": "Serverlijst",
"Sorry, your username or password is incorrect.": "Sorry, uw gebruikersnaam of wachtwoord is onjuist.",
"Home": "Startpagina",
"Settings": "Instellingen",
"Tools": "Hulpmiddelen",
"Sign Out": "Uitloggen",
"Checking for update...": "Zoeken naar updates...",
"You're on the latest version": "U gebruikt de laatste versie",
"WireGuard Configurations": "WireGuard Configuraties",
"You don't have any WireGuard configurations yet. Please check the configuration folder or change it in Settings. By default the folder is /etc/wireguard.": "U heeft nog geen WireGuard configuraties. Controleer de configuratiemap of wijzig deze in de instellingen. Standaard is de map /etc/wireguard.",
"Configuration": "Configuratie",
"Configurations": "Configuraties",
"Peers Default Settings": "Standaardinstellingen voor Peers",
"Dashboard Theme": "Dashboard Thema",
"Light": "Licht",
"Dark": "Donker",
"This will be changed globally, and will be apply to all peer's QR code and configuration file.": "Dit wordt globaal gewijzigd en is van toepassing op alle QR-codes van peers en configuratiebestanden.",
"WireGuard Configurations Settings": "WireGuard Configuratie-instellingen",
"Configurations Directory": "Configuratiemap",
"Remember to remove / at the end of your path. e.g /etc/wireguard": "Vergeet niet de / aan het einde van uw pad te verwijderen. Bijv. /etc/wireguard",
"WGDashboard Account Settings": "WGDashboard Accountinstellingen",
"Current Password": "Huidig Wachtwoord",
"New Password": "Nieuw Wachtwoord",
"Repeat New Password": "Herhaal Nieuw Wachtwoord",
"Update Password": "Wachtwoord bijwerken",
"Reset": "Resetten",
"Setup": "Instellen",
"API Keys": "API-sleutels",
"API Key": "API-sleutel",
"Key": "Sleutel",
"Enabled": "Ingeschakeld",
"Disabled": "Uitgeschakeld",
"No WGDashboard API Key": "Geen WGDashboard API-sleutel",
"Expire At": "Vervalt Op",
"Create API Key": "API-sleutel maken",
"Never Expire": "Nooit vervallen",
"Don't think that's a good idea": "Dit is geen goed idee, denk ik",
"Create": "Maken",
"Status": "Status",
"On": "Aan",
"Off": "Uit",
"Address": "Adres",
"Listen Port": "Luisterpoort",
"Public Key": "Publieke Sleutel",
"Connected Peers": "Verbonden Peers",
"Total Usage": "Totaal Gebruik",
"Total Received": "Totaal Ontvangen",
"Total Sent": "Totaal Verzonden",
"Peers Data Usage": "Data Gebruik van Peers",
"Real Time Received Data Usage": "Realtime Ontvangen Data Gebruik",
"Real Time Sent Data Usage": "Realtime Verzonden Data Gebruik",
"Peer": "Peer",
"Peers": "Peers",
"Peer Settings": "Peer Instellingen",
"Download All": "Alles Downloaden",
"Display": "Weergave",
"Sort By": "Sorteren op",
"Refresh Interval": "Vernieuwingsinterval",
"Name": "Naam",
"Allowed IPs": "Allowed IPs",
"Restricted": "Beperkt",
"(.*) Seconds": "$1 Seconden",
"(.*) Minutes": "$1 Minuten",
"Configuration Settings": "Configuratie-instellingen",
"Peer Jobs": "Peer Taken",
"Active Jobs": "Actieve Taken",
"All Active Jobs": "Alle Actieve Taken",
"Logs": "Logboeken",
"Private Key": "Privé Sleutel",
"Endpoint Allowed IPs": "Allowed-IPs voor Eindpunt",
"DNS": "DNS",
"Optional Settings": "Optionele Instellingen",
"Pre-Shared Key": "Pre-Shared Key",
"MTU": "MTU",
"Persistent Keepalive": "Persistente Keepalive",
"Reset Data Usage": "Reset Datagebruik",
"Total": "Totaal",
"Sent": "Verzonden",
"Received": "Ontvangen",
"Revert": "Herstellen",
"Save Peer": "Peer Opslaan",
"QR Code": "QR-code",
"Schedule Jobs": "Taken Inplannen",
"Job": "Taak",
"Job ID": "Taak ID",
"Unsaved Job": "Niet Opgeslagen Taak",
"if": "als",
"is": "is",
"then": "dan",
"larger than": "groter dan",
"Date": "Datum",
"Restrict Peer": "Peer Beperken",
"Delete Peer": "Peer Verwijderen",
"Edit": "Bewerken",
"Delete": "Verwijderen",
"Deleting...": "Aan het verwijderen",
"Cancel": "Annuleren",
"Save": "Opslaan",
"Jobs Logs": "Taaklogboeken",
"Updated at": "Bijgewerkt op",
"Refresh": "Vernieuwen",
"Filter": "Filteren",
"Success": "Succesvol",
"Failed": "Mislukt",
"Log ID": "Log-ID",
"Message": "Bericht",
"Share Peer": "Deel Peer",
"Currently the peer is not sharing": "De peer deelt momenteel niet",
"Start Sharing": "Start delen",
"Stop Sharing": "Stop met delen",
"Access Restricted": "Toegang Beperkt",
"Restrict Access": "Beperk toegang",
"Allow Access": "Toegang toestaan",
"Add Peers": "Peers toevoegen",
"Bulk Add": "Bulk toevoegen",
"You can add up to (.*) peers": "Je kunt tot $1 peers toevoegen",
"Use your own Private and Public Key": "Gebruik je eigen Privé- en Publieke Sleutel",
"Enter IP Address/CIDR": "Voer IP-adres/CIDR in",
"IP Address/CIDR": "IP-adres/CIDR",
"or": "of",
"Pick Available IP": "Kies beschikbare IP",
"No available IP containing": "Geen beschikbare IP bevat",
"Add": "Toevoegen",
"Failed to check available update": "Controlen van beschikbare updates mislukt",
"Nice to meet you!": "Leuk je te ontmoeten!",
"Please fill in the following fields to finish setup": "Vul de volgende velden in om de installatie te voltooien",
"Create an account": "Maak een account aan",
"Enter an username you like": "Voer een gebruikersnaam in die je leuk vindt",
"Enter a password": "Voer een wachtwoord in",
"\\(At least 8 characters and make sure is strong enough!\\)": "(Minimaal 8 tekens en zorg ervoor dat het sterk genoeg is!)",
"Confirm password": "Bevestig wachtwoord",
"Next": "Volgende",
"Saving\\.\\.\\.": "Opslaan...",
"1\\. Please scan the following QR Code to generate TOTP with your choice of authenticator": "1. Scan de volgende QR-code om TOTP te genereren met je keuze van authenticator",
"Or you can click the link below:": "Of je kunt de onderstaande link klikken:",
"2\\. Enter the TOTP generated by your authenticator to verify": "2. Voer de door je authenticator gegenereerde TOTP in om te verifiëren",
"TOTP verified!": "TOTP succesvol geverifieerd!",
"I don't need MFA": "Ik heb geen MFA nodig",
"Complete": "Voltooien",
"(v[0-9.]{1,}) is now available for update!": "Versie $1 is nu beschikbaar voor update!",
"Current Version:": "Huidige versie:",
"Oh no\\.\\.\\. This link is either expired or invalid\\.": "Oh nee... Deze link is ofwel verlopen of ongeldig.",
"Scan QR Code with the WireGuard App to add peer": "Scan de QR-code met de WireGuard-app om peer toe te voegen",
"or click the button below to download the ": "of klik op de knop hieronder om de",
" file": " bestand te downloaden",
"FROM ": "VAN",
"(.*) is on": "$1 is ingeschakeld",
"(.*) is off": "$1 is uitgeschakeld",
"Allowed IPs is invalid": "Toegestane IP's zijn ongeldig",
"Peer created successfully": "Peer succesvol aangemaakt",
"Please fill in all required box": "Vul alle vereiste velden in",
"Please specify amount of peers you want to add": "Geef het aantal peers op dat je wilt toevoegen",
"No more available IP can assign": "Er kunnen geen extra beschikbare IP's worden toegewezen",
"The maximum number of peers can add is (.*)": "Het maximale aantal peers dat kan worden toegevoegd is $1",
"Generating key pairs by bulk failed": "Het massaal genereren van sleutelpaar is mislukt",
"Failed to add peers in bulk": "Massaal toevoegen van peers mislukt",
"This peer already exist": "Deze peer bestaat al",
"This IP is not available: (.*)": "Deze IP is niet beschikbaar: $1",
"Configuration does not exist": "Configuratie bestaat niet",
"Peer does not exist": "Peer bestaat niet",
"Please provide a valid configuration name": "Geef een geldige configuratienaam op",
"Peer saved": "Peer opgeslagen",
"Allowed IPs already taken by another peer": "Toegestane IP's zijn al in gebruik door een andere peer",
"Endpoint Allowed IPs format is incorrect": "Het formaat van toegestane IP's van het eindpunt is onjuist",
"DNS format is incorrect": "Het DNS-formaat is onjuist",
"MTU format is not correct": "Het MTU-formaat is onjuist",
"Persistent Keepalive format is not correct": "Het formaat van Persistent Keepalive is onjuist",
"Private key does not match with the public key": "Het privésleutel komt niet overeen met de publieke sleutel",
"Update peer failed when updating Pre-Shared Key": "Fout bij het bijwerken van de peer tijdens het bijwerken van de Pre-Shared Key",
"Update peer failed when updating Allowed IPs": "Fout bij het bijwerken van de peer tijdens het bijwerken van toegestane IP's",
"Update peer failed when saving the configuration": "Fout bij het opslaan van de peer-configuratie",
"Peer data usage reset successfully": "Peer-gegevensverbruik succesvol gereset",
"Peer download started": "Peer-download gestart",
"Please specify one or more peers": "Geef een of meer peers op",
"Share link failed to create. Reason: (.*)": "De gedeelde link kon niet worden aangemaakt. Reden: $1",
"Link expire date updated": "Vervaldatum van de link bijgewerkt",
"Link expire date failed to update. Reason: (.*)": "Vervaldatum van de link kon niet worden bijgewerkt. Reden: $1",
"Peer job saved": "Peer-taak opgeslagen",
"Please specify job": "Geef een taak op",
"Please specify peer and configuration": "Geef peer en configuratie op",
"Peer job deleted": "Peer-taak verwijderd",
"API Keys function is successfully enabled": "API-sleutelfunctie is succesvol ingeschakeld",
"API Keys function is successfully disabled": "API-sleutelfunctie is succesvol uitgeschakeld",
"API Keys function is failed to enable": "API-sleutelfunctie kon niet worden ingeschakeld",
"API Keys function is failed to disable": "API-sleutelfunctie kon niet worden uitgeschakeld",
"WGDashboard API Keys function is disabled": "De API-sleutelfunctie in WGDashboard is uitgeschakeld",
"WireGuard configuration path saved": "WireGuard-configuratiepad opgeslagen",
"API Key deleted": "API-sleutel verwijderd",
"API Key created": "API-sleutel aangemaakt",
"Sign in session ended, please sign in again": "Aanmeldsessie beëindigd, meld je opnieuw aan",
"Please specify an IP Address (v4/v6)": "Geef een IP-adres op (v4/v6)",
"Please provide ipAddress and count": "Geef het IP-adres en het aantal op",
"Please provide ipAddress": "Geef een IP-adres op",
"Dashboard Language": "Dashboard-taal",
"Dashboard language update failed": "Bijwerken van dashboard-taal mislukt",
"Peer Remote Endpoint": "Peer Remote Endpunt",
"New Configuration": "Nieuwe configuratie",
"Configuration Name": "Configuratienaam",
"Configuration name is invalid. Possible reasons:": "Configuratienaam is ongeldig. Mogelijke redenen:",
"Invalid Port": "Ongeldige poort",
"Save Configuration": "Configuratie opslaan",
"IP Address/CIDR is invalid": "IP-adres/CIDR is ongeldig",
"IP Address": "IP-adres",
"Enter IP Address / Hostname": "Voer IP-adres / Hostnaam in",
"IP Address / Hostname": "IP-adres / Hostnaam",
"Count": "Aantal",
"Geolocation": "Geolocatie",
"Is Alive": "Is actief",
"Average / Min / Max Round Trip Time": "Gemiddelde / Min / Max Round Trip Time",
"Sent / Received / Lost Package": "Verzonden / Ontvangen / Verloren pakket",
"Manual restart of WGDashboard is needed to apply changes on IP Address and Listen Port": "Handmatig opnieuw opstarten van WGDashboard is nodig om wijzigingen in IP-adres en luisterpoort toe te passen",
"Restore Configuration": "Herstel configuratie",
"Step (.*)": "Stap $1",
"Select a backup you want to restore": "Selecteer een back-up die je wilt herstellen",
"Click to change a backup": "Klik om een back-up te wijzigen",
"Selected Backup": "Geselecteerde back-up",
"You don't have any configuration to restore": "Je hebt geen configuratie om te herstellen",
"Help": "Help",
"Backup": "Back-up",
"([0-9].*) Backups?": "$1 Back-ups?",
"Yes": "Ja",
"No": "Nee",
"Backup not selected": "Geen back-up geselecteerd",
"(.*) Available IP Address": "$1 Beschikbaar IP-adres",
"Database File": "Databestand",
"Contain": "Bevat",
"Restricted Peers?": "Beperkte Peers?",
"Restore": "Herstellen",
"Restoring": "Herstellen...",
"WGDashboard Settings": "WGDashboard Instellingen",
"Peers Settings": "Peers Instellingen",
"WireGuard Configuration Settings": "WireGuard Configuratie Instellingen",
"Appearance": "Weergave",
"Theme": "Thema",
"Language": "Taal",
"Account Settings": "Account Instellingen",
"Peer Default Settings": "Standaard Peer Instellingen",
"Toggle When Start Up": "Wisselen bij opstarten",
"Other Settings": "Andere Instellingen",
"Select Peers": "Selecteer Peers",
"Backup & Restore": "Back-up & Herstellen",
"Delete Configuration": "Configuratie Verwijderen",
"Create Backup": "Maak een Back-up",
"Backup Date": "Back-up Datum",
"File": "Bestand",
"All connected peers will get disconnected": "Alle verbonden peers worden losgekoppeld",
"Checking backups...": "Back-ups worden gecontroleerd...",
"This configuration have ([0-9].*) backups": "Deze configuratie heeft $1 back-ups",
"This configuration have no backup": "Deze configuratie heeft geen back-up",
"If you're sure, please type in the configuration name below and click Delete": "Als je zeker bent, typ dan de configuratienaam hieronder in en klik op Verwijderen",
"Select All": "Selecteer alles",
"Clear Selection": "Selectie wissen",
"([0-9].*) Peers?": "$1 Peers?",
"Downloading": "Bezig met downloaden",
"Download Finished": "Download voltooid",
"Done": "Klaar",
"Are you sure to delete": "Weet je zeker dat je wilt verwijderen?",
"Configuration deleted": "Configuratie verwijderd",
"Configuration saved": "Configuratie opgeslagen",
"WGDashboard language update failed": "Bijwerken van de WGDashboard-taal mislukt",
"Configuration restored": "Configuratie hersteld",
"Allowed IP already taken by another peer": "Toegestane IP is al in gebruik door een andere peer",
"Failed to allow access of peer (.*)": "Toegang voor peer $1 niet toegestaan",
"Failed to save configuration through WireGuard": "Configuratie opslaan via WireGuard mislukt",
"Allow access successfully": "Toegang succesvol toegestaan",
"Multi-Factor Authentication \\(MFA\\)": "Multi-Factor Authenticatie (MFA)",
"Are you sure to delete this API key\\?": "Weet u zeker dat u deze API-sleutel wilt verwijderen?",
"When should this API Key expire\\?": "Wanneer moet deze API-sleutel vervallen?",
"Creating\\.\\.\\.": "Maken",
"Turning On\\.\\.\\.": "Aanzetten...",
"Turning Off\\.\\.\\.": "Uitzetten...",
"Search Peers\\.\\.\\.": "Zoek Peers...",
"\\(Required for QR Code and Download\\)": "(Vereist voor QR-code en Download)",
"\\(Required\\)": "(Vereist)",
"This peer does not have any job yet\\.": "Deze peer heeft nog geen taak.",
"No active job at the moment\\.": "Momenteel geen actieve taak.",
"Sharing\\.\\.\\.": "Delen aan het starten...",
"Stop Sharing\\.\\.\\.": "Delen aan het stoppen...",
"Restricting\\.\\.\\.": "Aan het beperken...",
"Allowing Access\\.\\.\\.": "Toegang toe aan het staan...",
"Download \\& QR Code is not available due to no private key set for this peer": "Download & QR-code zijn niet beschikbaar omdat er geen privésleutel voor deze peer is ingesteld",
"By adding peers by bulk, each peer's name will be auto generated, and Allowed IP will be assign to the next available IP\\.": " \"By adding peers by bulk, each peer's name will be auto generated, and Allowed IP will be assign to the next available IP.\": \"Bij het bulk toevoegen wordt de naam van elke peer automatisch gegenereerd en wordt de Allowed-IPs aan het volgende beschikbare IP toegewezen.",
"How many peers you want to add\\?": "Hoeveel peers wil je toevoegen?",
"Adding\\.\\.\\.": "Toevoegen...",
"Configuration name already exist\\.": "Configuratienaam bestaat al.",
"Configuration name can only contain 15 lower/uppercase alphabet, numbers, underscore, equal sign, plus sign, period and hyphen\\.": "De configuratienaam mag alleen uit 15 tekens bestaan, inclusief hoofd-/kleine letters, cijfers, onderstrepingsteken, gelijkteken, plusteken, punt en koppelteken.",
"Dashboard IP Address \\& Listen Port": "",
"Confirm \\& edit restore information": "Bevestigen & herstelinformatie bewerken",
"No backup yet, click the button above to create backup\\.": "Nog geen back-up, klik op de knop hierboven om een back-up te maken.",
"Are you sure to delete this backup\\?": "Weet je zeker dat je deze back-up wilt verwijderen?",
"Are you sure to restore this backup?\\": "Weet je zeker dat je deze back-up wilt herstellen?",
"Are you sure to delete this configuration\\?": "Weet je zeker dat je deze configuratie wilt verwijderen?",
"Once you deleted this configuration\\:": "Zodra je deze configuratie hebt verwijderd:",
"Both configuration file \\(\\.conf\\) and database table related to this configuration will get deleted": "Zowel het configuratiebestand (.conf) als de databasetabel die aan deze configuratie is gekoppeld, worden verwijderd",
"Are you sure to delete this peer\\?": "Weet je zeker dat je deze peer wilt verwijderen?",
"Deleted ([0-9]{1,}) peer\\(s\\)": "$1 peer(s) verwijderd",
"Deleted ([0-9]{1,}) peer\\(s\\) successfully. Failed to delete ([0-9]{1,}) peer\\(s\\)": "$1 peer(s) succesvol verwijderd. Het verwijderen van $2 peer(s) is mislukt",
"Restricted ([0-9]{1,}) peer\\(s\\)": "$1 peer(s) beperkt",
"Restricted ([0-9]{1,}) peer\\(s\\) successfully. Failed to restrict ([0-9]{1,}) peer\\(s\\)": "$1 peer(s) succesvol beperkt. Het beperken van $2 peer(s) is mislukt"
}

312
src/static/locale/pl.json Normal file
View File

@ -0,0 +1,312 @@
{
"Welcome to": "Witamy w",
"Username": "Nazwa Użytkownika",
"Password": "Hasło",
"OTP from your authenticator": "OTP z Twojego Autentykatora",
"Sign In": "Zaloguj",
"Signing In\\.\\.\\.": "Trwa Logowanie...",
"Access Remote Server": "Połącz się ze zdalnym serwerem",
"Server": "Serwer",
"Click": "Kliknij",
"Pinging...": "Pinguje...",
"to add your server": "aby dodać do Twojego serwera",
"Server List": "Lista Serwerów",
"Sorry, your username or password is incorrect.": "Nazwa użytkownika bądź hasło jest niepoprawne.",
"Home": "Strona Główna",
"Settings": "Ustawnienia",
"Tools": "Narzędzia",
"Sign Out": "Wyloguj się",
"Checking for update...": "Sprawdzanie aktualizacji...",
"You're on the latest version": "Korzystasz z najnowszej wersji",
"WireGuard Configurations": "Konfiguracja",
"You don't have any WireGuard configurations yet. Please check the configuration folder or change it in Settings. By default the folder is /etc/wireguard.": "Nie posiadasz żadnych konfiguarcji WireGuard. Sprawdź folder konfiguarcji lub zmień go w Ustawieniach. Domyślnie konfiguracje są zapisywane w /etc/wireguard.",
"Configuration": "Konfiguracja",
"Configurations": "Konfiguracje",
"Peers Default Settings": "Domyślne ustawienia Klientów",
"Dashboard Theme": "Styl Panelu",
"Light": "Jasny",
"Dark": "Ciemny",
"This will be changed globally, and will be apply to all peer's QR code and configuration file.": "Te zmiany zostaną wprowadzone globalnie i nadpiszą kody QR i konfiguracje wszystkich Klientów.",
"Manual restart of WGDashboard is needed to apply changes on IP Address and Listen Port": "Aby zapisać zmiany adresów IP lub portu nasłuchiwania wymagany będzie manualny restart WGDashboard.",
"WireGuard Configurations Settings": "Ustawienia Konfiguracji WireGuard",
"Configurations Directory": "Folder Konfiguracji",
"Remember to remove / at the end of your path. e.g /etc/wireguard": "Pamiętaj aby usunąć / na końcu ścieżki, na przykład /etc/wireguard",
"WGDashboard Account Settings": "Ustawienia Konta WGDashboard",
"Current Password": "Aktualne Hasło",
"New Password": "Nowe Hasło",
"Repeat New Password": "Powtórz Nowe Hasło",
"Update Password": "Aktualizuj Hasło",
"Multi-Factor Authentication \\(MFA\\)": "Weryfikacja Wieloskładnikowa (MFA)",
"Reset": "Reset",
"Setup": "Ustawienia",
"API Keys": "Klucze API",
"API Key": "Klucz API",
"Key": "Klucz",
"Enabled": "Włączone",
"Disabled": "Wyłączone",
"No WGDashboard API Key": "Brak Klucza API WGDashboard",
"Expire At": "Termin Ważności",
"Are you sure to delete this API key\\?": "Czy na pewno chcesz usunąć ten klucz API?",
"Create API Key": "Stwórz klucz API",
"When should this API Key expire\\?": "Kiedy ten klucz API powinien utracić swoją ważność?",
"Never Expire": "Nigdy",
"Don't think that's a good idea": "To nie jest dobry pomysł...",
"Creating\\.\\.\\.": "Tworzenie...",
"Create": "Stwórz",
"Status": "Status",
"On": "Wł.",
"Off": "Wył.",
"Turning On\\.\\.\\.": "Włączam...",
"Turning Off\\.\\.\\.": "Wyłączam...",
"Address": "Adres",
"Listen Port": "Port Nasłuchu",
"Public Key": "Klucz publiczny",
"Connected Peers": "Połączeni Klienci",
"Total Usage": "Łączne Użycie",
"Total Received": "Łącznie Odebrano",
"Total Sent": "Łącznie Wysłano",
"Peers Data Usage": "Użycie danych przez Klientów",
"Real Time Received Data Usage": "Aktualnie Odbierane Dane",
"Real Time Sent Data Usage": "Aktualnie Wysyłane Dane",
"Peer": "Klient",
"Peers": "Klienci",
"Peer Settings": "Ustawienia Klientów",
"Download All": "Pobierz Wszystkie",
"Search Peers\\.\\.\\.": "Szukaj Klientów...",
"Display": "Wyświetlanie",
"Sort By": "Sortuj po",
"Refresh Interval": "Interwał Odświeżania",
"Name": "Nazwa",
"Allowed IPs": "Dozwolone IP",
"Restricted": "Ograniczone",
"(.*) Seconds": "$1 sek.",
"(.*) Minutes": "$1 min.",
"Configuration Settings": "Ustawienia Konfiguracji",
"Peer Jobs": "Automatyzacje Klienta",
"Active Jobs": "Aktywne Automatyzacje",
"All Active Jobs": "Wszystkie Aktywne Automatyzacje",
"Logs": "Logi",
"Private Key": "Prywatny Klucz",
"\\(Required for QR Code and Download\\)": "Wymagane aby otrzymać kod QR lub Pobrać",
"\\(Required\\)": "Wymagane",
"Endpoint Allowed IPs": "Dozwolone IP Punktu Końcowego",
"DNS": "DNS",
"Optional Settings": "Opcjonalne Ustawienia",
"Pre-Shared Key": "Klucz PSK",
"MTU": "MTU",
"Persistent Keepalive": "Stałe Utrzymywanie Online",
"Reset Data Usage": "Zresetuje Użycie Danych",
"Total": "Łącznie",
"Sent": "Wysłano",
"Received": "Otrzymano",
"Revert": "Cofnij",
"Save Peer": "Zapisz Klienta",
"QR Code": "Kod QR",
"Schedule Jobs": "Automatyzacje",
"Job": "Automatyzacja",
"Job ID": "ID Automatyzacji",
"Unsaved Job": "Niezapisana Automatyzacja",
"This peer does not have any job yet\\.": "Ten klient nie posiada żadnych automatyzacji.",
"if": "Jeśli",
"is": "jest",
"then": "to wtedy",
"larger than": "większy/a niż",
"Date": "Data",
"Restrict Peer": "Ogranicz Klienta",
"Delete Peer": "Usuń Klienta",
"Edit": "Edytuj",
"Delete": "Usuń",
"Deleting...": "Usuwam...",
"Cancel": "Anuluj",
"Save": "Zapisz",
"No active job at the moment\\.": "Brak aktywnych automatyzacji.",
"Jobs Logs": "Logi Automatyzacji",
"Updated at": "Ostatnia zmiana",
"Refresh": "Odśwież",
"Filter": "Filtruj",
"Success": "Sukces",
"Failed": "Porażka",
"Log ID": "ID Logów",
"Message": "Wiadomość",
"Share Peer": "Udostępnij Klienta",
"Currently the peer is not sharing": "Aktualnie klient nie jest udostępniony",
"Sharing\\.\\.\\.": "Udostępniam...",
"Start Sharing": "Rozpocznij Udostępnianie",
"Stop Sharing\\.\\.\\.": "Zakańczanie Udostępniania...",
"Stop Sharing": "Zakończ",
"Access Restricted": "Dostęp Ograniczony",
"Restrict Access": "Ogranicz Dostęp",
"Restricting\\.\\.\\.": "Ograniczanie...",
"Allow Access": "Udostępnij Dostęp",
"Allowing Access\\.\\.\\.": "Udostępnianie Dostępu...",
"Download \\& QR Code is not available due to no private key set for this peer": "Kod QR lub pobieranie nie jest dostępne ze względu na brak ustawionego prywatnego klucza dla tego klienta",
"Add Peers": "Dodaj Klientów",
"Bulk Add": "Masowe Dodawanie",
"By adding peers by bulk, each peer's name will be auto generated, and Allowed IP will be assign to the next available IP\\.": "Dodając klientów masowo, nazwa każdego klienta zostanie wygenerowana automatycznie i przydzielone zostanie następny dostępny adres IP.",
"How many peers you want to add\\?": "Ilu klientów chcesz dodać?",
"You can add up to (.*) peers": "Możesz dodać do $1 Klientów",
"Use your own Private and Public Key": "Użyj własnych publicznych i prywatnych kluczy",
"Enter IP Address/CIDR": "Podaj adres IP/CIDR",
"IP Address/CIDR": "Adres IP/CIDR",
"or": "lub",
"Pick Available IP": "Wybierz Dostępny Adres IP",
"No available IP containing": "Brak dostępnych adresów IP zawierających",
"Add": "Dodaj",
"Adding\\.\\.\\.": "Dodawanie...",
"Failed to check available update": "Nie udało się sprawdzić dostępnych aktualizacji",
"Nice to meet you!": "Miło Cię poznać!",
"Please fill in the following fields to finish setup": "Wypełnij następujące pola aby ukończyć instalacje",
"Create an account": "Stwórz konto",
"Enter an username you like": "Wpisz nazwę użytkownika",
"Enter a password": "Utwórz Hasło",
"\\(At least 8 characters and make sure is strong enough!\\)": "(Wybierz silne hasło zawierające co najmniej 8 znaków!)",
"Confirm password": "Potwierdź Hasło",
"Next": "Dalej",
"Saving\\.\\.\\.": "Zapisywanie...",
"1\\. Please scan the following QR Code to generate TOTP with your choice of authenticator": "1. Zeskanuj ten kod QR aby utworzyć jednorazowe hasło (TOTP) za pomocą Twojego Autentykatora",
"Or you can click the link below:": "Lub kliknij w poniższy link",
"2\\. Enter the TOTP generated by your authenticator to verify": "2. Podaj swoje jednorazowe hasło (TOTP), utworzone za pomocą Twojego Autentykatora",
"TOTP verified!": "Jednorazowe hasło (TOTP) potwierdzone!",
"I don't need MFA": "Nie potrzebuję Weryfikacji Wieloskładnikowej (MFA)",
"Complete": "Zakończ",
"(v[0-9.]{1,}) is now available for update!": "Aktualizacja do wersji $1 jest dostępna do pobrania!",
"Current Version:": "Aktualna wersja: ",
"Oh no\\.\\.\\. This link is either expired or invalid\\.": "Ups. Ten link nie jest poprawny bądź utracił swoją ważność.",
"Scan QR Code with the WireGuard App to add peer": "Zeskanuj kod QR za pomocą aplikacji WireGuard aby dodać klienta",
"or click the button below to download the ": "lub kliknij przycisk poniżej aby pobrać ",
" file": " plik",
"FROM ": "z ",
"(.*) is on": "$1 jest wł.",
"(.*) is off": "$1 jest wył.",
"Allowed IPs is invalid": "Dozwolone Adresy IP są niepoprawne",
"Peer created successfully": "Klient utworzony pomyślnie",
"Please fill in all required box": "Wypełnij wszystkie wymagane pola",
"Please specify amount of peers you want to add": "Podaj liczbę klientów do dodania",
"No more available IP can assign": "Brak dostępnych adresów IP do dopisania",
"The maximum number of peers can add is (.*)": "Maksymalnie można dodać $1 klientów",
"Generating key pairs by bulk failed": "Tworzenie par kluczy nie udało się",
"Failed to add peers in bulk": "Nie udało się dodać klientów masowo",
"This peer already exist": "Ten klient już istnieje",
"This IP is not available: (.*)": "Ten adres IP nie jest dostępny: $1",
"Configuration does not exist": "Konfiguracja nie istnieje",
"Peer does not exist": "Klient nie istnieje",
"Please provide a valid configuration name": "Podaj poprawną nazwę konfiguracji",
"Peer saved": "Klient zapisany pomyślnie",
"Allowed IPs already taken by another peer": "Adres IP jest już wykorzystywany przez innego klienta",
"Endpoint Allowed IPs format is incorrect": "Format Dozwolonych adresów IP jest niepoprawny",
"DNS format is incorrect": "Niepoprawny format adresu serwera DNS",
"MTU format is not correct": "Niepoprawny format wartości MTU",
"Persistent Keepalive format is not correct": "Niepoprawny format wartości Stałego Utrzymywania Online",
"Private key does not match with the public key": "Prywatny klucz nie pasuje do publicznego klucza",
"Update peer failed when updating Pre-Shared Key": "Aktualizacja klientów nie powiodła się przy zapisywaniu Klucza PSK",
"Update peer failed when updating Allowed IPs": "Aktualizacja klientów nie powiodła się przy zapisywaniu dozwolonych adresów IP",
"Update peer failed when saving the configuration": "Aktualizacja klientów nie powiodła się przy zapisywaniu Konfiguracji",
"Peer data usage reset successfully": "Użycie danych klienta zresetowane pomyślnie",
"Peer download started": "Pobieranie klienta rozpoczęte",
"Please specify one or more peers": "Wybierz co najmniej jednego klienta",
"Share link failed to create. Reason: (.*)": "Nie udało się stworzyć linku do udostępniania. Powód: $1",
"Link expire date updated": "Data ważności linku zapisana",
"Link expire date failed to update. Reason: (.*)": "Nie udało się zapisać daty linku do udostępniania. Powód: $1",
"Peer job saved": "Automatyzacja klienta zapisana",
"Please specify job": "Wybierz poprawną automatyzacje",
"Please specify peer and configuration": "Wybierz klienta i konfiguracje",
"Peer job deleted": "Automatyzacja klienta usunięta pomyślnie",
"API Keys function is successfully enabled": "Funkcjonalność kluczy API pomyślnie włączona",
"API Keys function is successfully disabled": "Funkcjonalność kluczy API pomyślnie wyłączona",
"API Keys function is failed to enable": "Nie udało się włączyć funkcjonalności kluczy API",
"API Keys function is failed to disable": "Nie udało się wyłączyć funkcjonalności kluczy API",
"WGDashboard API Keys function is disabled": "Funkcjonalność kluczy API jest wyłączona",
"WireGuard configuration path saved": "Zapisano ścieżkę konfiguracji WireGuard pomyślnie",
"API Key deleted": "Klucz API usunięty pomyślnie",
"API Key created": "Klucz API stworzony pomyślnie",
"Sign in session ended, please sign in again": "Sesja logowania została zakończona. Zaloguj się ponownie",
"Please specify an IP Address (v4/v6)": "Podaj adres IP (v4/v6)",
"Please provide ipAddress and count": "Podaj adres IP i ilość",
"Please provide ipAddress": "Podaj adres IP",
"Dashboard Language": "Język Portalu WGDashboard",
"Dashboard language update failed": "Nie udało się zmienić języka portalu WGDashboard",
"Peer Remote Endpoint": "Zdalny Punkt Końcowy Klienta",
"New Configuration": "Nowa Konfiguracja",
"Configuration Name": "Nazwa Konfiguracji",
"Configuration name is invalid. Possible reasons:": "Nazwa Konfiguracji jest nieprawidłowa. Możliwy powód:",
"Configuration name already exist\\.": "Konfiguracja o tej nazwie już istnieje. ",
"Configuration name can only contain 15 lower/uppercase alphabet, numbers, underscore, equal sign, plus sign, period and hyphen\\.": "Nazwa konfiguracji może zawierać tylko 15 znaków składających się z małych i dużych liter alfabetu, liczb, oraz tych znaków: _=+.- ",
"Invalid Port": "Niepoprawny Port",
"Save Configuration": "Zapisz Konfiguracje",
"IP Address/CIDR is invalid": "Adres IP/CIDR jest niepoprawny",
"IP Address": "Adres IP",
"Enter IP Address / Hostname": "Wpisz Adres IP / Nazwę Hosta",
"IP Address / Hostname": "Adres IP / Nazwa Hosta",
"Dashboard IP Address \\& Listen Port": "Adres IP Portalu WGDashboard oraz Port Nasłuchiwania",
"Count": "Ilość",
"Geolocation": "Geolokalizacja",
"Is Alive": "Jest Online",
"Average / Min / Max Round Trip Time": "Średnia / Min. / Maks. czas podróży pakietu",
"Sent / Received / Lost Package": "Wysłane / Otrzymane / Utracone Pakiety",
"Restore Configuration": "Przywróc Konfiguracje",
"Step (.*)": "Krok $1",
"Select a backup you want to restore": "Wybierz kopię zapasową którą chcesz przywrócić",
"Click to change a backup": "Wybierz kopię zapasową",
"Selected Backup": "Wybrana kopia zapasowa",
"You don't have any configuration to restore": "Nie posiadasz żadnej konfiguracji do przywrócenia",
"Help": "Pomoc",
"Backup": "Kopia Zapasowa",
"([0-9].*) Backups?": "$1 Kopii Zapasowych?",
"Yes": "Tak",
"No": "Nie",
"Backup not selected": "Nie wybrano kopii zapasowej",
"Confirm \\& edit restore information": "Potwierdź i edytuj informacje o przywróceniu kopii zapasowej",
"(.*) Available IP Address": "$1 Dostępne Adresy IP",
"Database File": "Plik Bazy Danych",
"Contain": "Zawiera",
"Restricted Peers?": "Ograniczeni Klienci",
"Restore": "Przywróć",
"Restoring": "Trwa przywracanie...",
"WGDashboard Settings": "Ustawienia WGDashboard",
"Peers Settings": "Ustawienia Klientów",
"WireGuard Configuration Settings": "Ustawienia Konfiguracji WireGuard",
"Appearance": "Wygląd",
"Theme": "Styl",
"Language": "Język",
"Account Settings": "Ustawienia Konta",
"Peer Default Settings": "Domyślne Ustawienia Klientów",
"Toggle When Start Up": "Włącz przy starcie serwera",
"Other Settings": "Inne Ustawienia",
"Select Peers": "Wybierz Klientów",
"Backup & Restore": "Tworzenie i Przywracanie Kopii Zapasowej",
"Delete Configuration": "Usuń Konfiguracje",
"Create Backup": "Stwórz Kopię Zapasową",
"No backup yet, click the button above to create backup\\.": "Brak kopii Zapasowych, kliknij przycisk powyżej aby utworzyć nową kopię",
"Are you sure to delete this backup\\?": "Czy na pewno chcesz usunąć tą kopię zapasową?",
"Are you sure to restore this backup?\\": "Czy na pewno chcesz przywrócić tą kopię zapasową?",
"Backup Date": "Data Utworzenia",
"File": "Plik",
"Are you sure to delete this configuration\\?": "Czy na pewno chcesz usunąć tą konfigurację?",
"Once you deleted this configuration\\:": "Jak tylko usuniesz tą konfigurację: ",
"All connected peers will get disconnected": "Wszyscy klienci zostaną odłączeni",
"Both configuration file \\(\\.conf\\) and database table related to this configuration will get deleted": "Zarówno plik konfiguracji (.conf) jak i tabela w bazie danych dotycząca tej konfiguracji zostaną usunięte",
"Checking backups...": "Sprawdzanie kopii zapasowych...",
"This configuration have ([0-9].*) backups": "Ta konfiguracja ma utworzone $1 kopii zapasowych",
"This configuration have no backup": "Ta konfiguracja nie posiada żadnych kopii zapasowych",
"If you're sure, please type in the configuration name below and click Delete": "Jeśli jesteś pewny/a wpisz nazwę konfiguracji poniżej i kliknij Usuń",
"Select All": "Zaznacz Wszystkie",
"Clear Selection": "Wyczyść Zaznaczenie",
"([0-9].*) Peers?": "$1 Klientów?",
"Downloading": "Pobieranie",
"Download Finished": "Pobieranie Zakończone",
"Done": "Zakończono",
"Are you sure to delete": "Czy na pewno chcesz usunąć",
"Are you sure to delete this peer\\?": "Czy na pewno chcesz usunąć tego klienta?",
"Configuration deleted": "Konfiguracja usunięta pomyślnie",
"Configuration saved": "Konfiguracja zapisana pomyślnie",
"WGDashboard language update failed": "Nie udało się zmienić języka WGDashboard",
"Configuration restored": "Konfiguracja przywrócona pomyślnie",
"Allowed IP already taken by another peer": "Dozwolony Adres IP jest już wykorzystywany przez innego klienta",
"Failed to allow access of peer (.*)": "Nie udało się pozwolić na dostęp klientowi$1",
"Failed to save configuration through WireGuard": "Nie udało się zapisać konfiguracji poprzez WireGuard",
"Deleted ([0-9]{1,}) peer\\(s\\)": "Usunięto $1 klienta/ów",
"Deleted ([0-9]{1,}) peer\\(s\\) successfully. Failed to delete ([0-9]{1,}) peer\\(s\\)": "Usunięto $1 klienta/ów pomyślnie. Nie udało się usunąć $2 klienta/ów",
"Restricted ([0-9]{1,}) peer\\(s\\)": "Ograniczono $1 klienta/ów ",
"Restricted ([0-9]{1,}) peer\\(s\\) successfully. Failed to restrict ([0-9]{1,}) peer\\(s\\)": "Ograniczono $1 klienta/ów pomyślnie. Nie udało się ograniczyć $2 klienta/ów",
"Allow access successfully": "Pomyślnie udostępniono dostęp"
}

View File

@ -27,7 +27,7 @@
"Light": "Светлая",
"Dark": "Тёмная",
"This will be changed globally, and will be apply to all peer's QR code and configuration file.": "Это будет изменено глобально и будет применяться ко всем QR-кодам и конфигурационным файлам клиентов.",
"Manual restart of WGDashboard is needed to apply changes on IP Address and Listen Port": "Для внесения изменений в IP-адрес и порт прослушивания необходим ручной перезапуск WGDashboard",
"Manual restart of WGDashboard is needed to apply changes on IP Address and Listen Port": "Для внесения изменений в IP-адрес и порт прослушивания необходим ручной перезапуск WGDashboard",
"WireGuard Configurations Settings": "Параметры конфигурации WireGuard",
"Configurations Directory": "Каталог конфигураций",
"Remember to remove / at the end of your path. e.g /etc/wireguard": "Не забудьте удалить символ / в конце вашего пути - например /etc/wireguard",
@ -77,7 +77,6 @@
"Sort By": "Сортировать по",
"Refresh Interval": "Интервал обновления",
"Name": "Имя",
"ago": "назад",
"Allowed IPs": "Внутренний IP-адрес",
"Restricted": "Прекращен",
"(.*) Seconds": "$1 сек.",
@ -234,84 +233,80 @@
"Configuration name can only contain 15 lower/uppercase alphabet, numbers, underscore, equal sign, plus sign, period and hyphen\\.": "Название конфигурации может содержать только 15 строчных/прописных букв, цифры, подчеркивание, знак равенства, знак плюс, точку и дефис ",
"Invalid Port": "Неверный порт",
"Save Configuration": "Сохранить конфигурацию",
"IP Address/CIDR is invalid": "IP-адрес/CIDR недействителен",
"IP Address": "IP-адрес",
"Enter IP Address / Hostname": "Введите IP-адрес / Имя хоста",
"IP Address / Hostname": "IP-адрес / Имя хоста",
"Dashboard IP Address & Listen Port": "IP-адрес и порт панели мониторинга",
"Count": "Число прыжков",
"Geolocation": "Геолокация",
"Is Alive": "Живой",
"Average / Min / Max Round Trip Time": "Среднее / Мин. / Макс. Время в пути",
"Sent / Received / Lost Package": "Отправлено / Получено / Потеряно",
"Restore Configuration": "Восстановить конфигурацию",
"Step (.*)": "Шаг $1",
"Select a backup you want to restore": "Выберите резервную копию для восстановления",
"Click to change a backup": "Нажмите, чтобы изменить архив",
"Selected Backup": "Выбранный архив",
"You don't have any configuration to restore": "У вас нет настроек для восстановления",
"Help": "Помощь",
"Backup": "Архив",
"([0-9].*) Backups?": "$1 Архивы?",
"Yes": "Да",
"IP Address/CIDR is invalid": "IP-адрес/CIDR недействителен",
"IP Address": "IP-адрес",
"Enter IP Address / Hostname": "Введите IP-адрес / Имя хоста",
"IP Address / Hostname": "IP-адрес / Имя хоста",
"Count": "Число прыжков",
"Geolocation": "Геолокация",
"Is Alive": "Живой",
"Average / Min / Max Round Trip Time": "Среднее / Мин. / Макс. Время в пути",
"Sent / Received / Lost Package": "Отправлено / Получено / Потеряно",
"Restore Configuration": "Восстановить конфигурацию",
"Step (.*)": "Шаг $1",
"Select a backup you want to restore": "Выберите резервную копию для восстановления",
"Click to change a backup": "Нажмите, чтобы изменить архив",
"Selected Backup": "Выбранный архив",
"You don't have any configuration to restore": "У вас нет настроек для восстановления",
"Help": "Помощь",
"Backup": "Архив",
"([0-9].*) Backups?": "$1 Архивы?",
"Yes": "Да",
"No": "Нет",
"Backup not selected": "Архив не выбран",
"Confirm \\& edit restore information": "Подтвердите и отредактируйте информацию о восстановлении",
"(.*) Available IP Address": "$1 Доступный IP-адрес",
"Database File": "Файл базы данных",
"Contain": "Содержит",
"Restricted Peers?": "Блокированные клиенты",
"Restore": "Восстановить",
"Restoring": "Восстановление...",
"WGDashboard Settings": "Настройки панели",
"Peers Settings": "Настройки клиента",
"WireGuard Configuration Settings": "Параметры WireGuard",
"Appearance": "Интерфейс",
"Theme": "Тема",
"Language": "Язык",
"Account Settings": "Настройки учетной записи",
"Peer Default Settings": "Настройки клиента по умолчанию",
"Toggle When Start Up": "Автостарт",
"Other Settings": "Другие настройки",
"Select Peers": "Выбрать клиентов",
"Backup & Restore": "Архивировать / Восстановить",
"Delete Configuration": "Удалить конфигурацию",
"Create Backup": "Содать архив",
"No backup yet, click the button above to create backup\\.": "Архивов не обнаружено, нажмите на кнопку выше, чтобы создать",
"Are you sure to delete this backup\\?": "Вы уверены, что нужно удалить этот архив?",
"Backup not selected": "Архив не выбран",
"Confirm \\& edit restore information": "Подтвердите и отредактируйте информацию о восстановлении",
"(.*) Available IP Address": "$1 Доступный IP-адрес",
"Database File": "Файл базы данных",
"Contain": "Содержит",
"Restricted Peers?": "Блокированные клиенты",
"Restore": "Восстановить",
"Restoring": "Восстановление...",
"WGDashboard Settings": "Настройки панели",
"Peers Settings": "Настройки клиента",
"WireGuard Configuration Settings": "Параметры WireGuard",
"Appearance": "Интерфейс",
"Theme": "Тема",
"Language": "Язык",
"Account Settings": "Настройки учетной записи",
"Peer Default Settings": "Настройки клиента по умолчанию",
"Toggle When Start Up": "Автостарт",
"Other Settings": "Другие настройки",
"Select Peers": "Выбрать клиентов",
"Backup & Restore": "Архивировать / Восстановить",
"Delete Configuration": "Удалить конфигурацию",
"Create Backup": "Содать архив",
"No backup yet, click the button above to create backup\\.": "Архивов не обнаружено, нажмите на кнопку выше, чтобы создать",
"Are you sure to delete this backup\\?": "Вы уверены, что нужно удалить этот архив?",
"Are you sure to restore this backup?\\": "Вы уверены, что нужно восстановить этот архив?",
"Backup Date": "Дата архива",
"File": "Файл",
"Are you sure to delete this configuration\\?": "Вы уверены, что нужно удалить эту конфигурацию?",
"Once you deleted this configuration\\:": "Как только вы удалите эту конфигурацию: ",
"Once you deleted this configuration\\:": "Как только вы удалите эту конфигурацию: ",
"All connected peers will get disconnected": "Все подключенные клиенты будут отключены",
"Both configuration file \\(\\.conf\\) and database table related to this configuration will get deleted": "Оба файла конфигурации (.conf) и таблица базы данных этой конфигурации, будут удалены",
"Checking backups...": "Проверка архивов...",
"This configuration have ([0-9].*) backups": "Эта конфигурация имеет $1",
"This configuration have no backup": "Эта конфигурация не имеет архивов",
"If you're sure, please type in the configuration name below and click Delete": "Если вы уверены, пожалуйста, введите название конфигурации ниже и нажмите Удалить",
"Select All": "Выбрать всё",
"Select All": "Выбрать всё",
"Clear Selection": "Очистит выбор",
"([0-9].*) Peers?": "$1 Клиенты?",
"Downloading": "Загрузка",
"Download Finished": "Загрузка завершена",
"Done": "Выполнено",
"Are you sure to delete": "Вы уверены, что нужно удалить",
"Are you sure to delete this peer\\?": "Вы уверены, что нужно удалить?",
"Configuration deleted": "Конфигурация удалена",
"Are you sure to delete this peer\\?": "Вы уверены, что нужно удалить?",
"Configuration deleted": "Конфигурация удалена",
"Configuration saved": "Конфигурация сохранена",
"WGDashboard language update failed": "Не удалось обновить язык WGDashboard",
"Configuration restored": "Конфигурация восстановлена",
"Allowed IP already taken by another peer": "IP-адрес, уже занятый другим узлом",
"Failed to allow access of peer (.*)": "Не удалось разрешить доступ этому клиенту:$1",
"Failed to save configuration through WireGuard": "Не удалось сохранить конфигурацию с помощью WireGuard",
"Allow access successfully!": "Доступ разрешён!",
"Deleted ([0-9]{1,}) peer\\(s\\)": "Удалено $1 клиентов ",
"Deleted ([0-9]{1,}) peer\\(s\\) successfully. Failed to delete ([0-9]{1,}) peer\\(s\\)": "Успешно удалено $1 клиентов. Не удалось удалить $2 ",
"Restricted ([0-9]{1,}) peer\\(s\\)": "Заблокировано $1 клиентов ",
"Restricted ([0-9]{1,}) peer\\(s\\) successfully. Failed to restrict ([0-9]{1,}) peer\\(s\\)": "Успешно аблокировано $1 клиентов. Не удалось заблокировать $2 ",
"Traceroute": "Трассировка",
"Autostart": "Автозапуск",
"Path": "Директория"
}
"Dashboard IP Address \\& Listen Port": "IP-адрес и порт панели мониторинга",
"Allow access successfully": "Доступ разрешён"
}

View File

@ -0,0 +1,312 @@
{
"Welcome to": "Välkommen till",
"Username": "Användarnamn",
"Password": "Lösenord",
"OTP from your authenticator": "Engångslösenord från din autentiserare",
"Sign In": "Logga in",
"Access Remote Server": "Åtkomst till fjärrserver",
"Server": "Server",
"Click": "Klicka",
"Pinging...": "Pingar...",
"to add your server": "för att lägga till din server",
"Server List": "Serverlista",
"Sorry, your username or password is incorrect.": "Tyvärr, ditt användarnamn eller lösenord är fel.",
"Home": "Hem",
"Settings": "Inställningar",
"Tools": "Verktyg",
"Sign Out": "Logga ut",
"Checking for update...": "Kontrollerar efter uppdateringar...",
"You're on the latest version": "Du använder den senaste versionen",
"WireGuard Configurations": "WireGuard-konfigurationer",
"You don't have any WireGuard configurations yet. Please check the configuration folder or change it in Settings. By default the folder is /etc/wireguard.": "Du har inga WireGuard-konfigurationer ännu. Kontrollera konfigurationsmappen eller ändra den i Inställningar. Som standard är mappen /etc/wireguard.",
"Configuration": "Konfiguration",
"Configurations": "Konfigurationer",
"Peers Default Settings": "Standardinställningar för Peers",
"Dashboard Theme": "Paneltema",
"Light": "Ljust",
"Dark": "Mörkt",
"This will be changed globally, and will be apply to all peer's QR code and configuration file.": "Detta kommer att ändras globalt och tillämpas på alla Peers QR-koder och konfigurationsfiler.",
"WireGuard Configurations Settings": "Inställningar för WireGuard-konfigurationer",
"Configurations Directory": "Konfigurationskatalog",
"Remember to remove / at the end of your path. e.g /etc/wireguard": "Kom ihåg att ta bort / i slutet av sökvägen, t.ex. /etc/wireguard",
"WGDashboard Account Settings": "WGDashboard-kontoinställningar",
"Current Password": "Nuvarande lösenord",
"New Password": "Nytt lösenord",
"Repeat New Password": "Upprepa nytt lösenord",
"Update Password": "Uppdatera lösenord",
"Reset": "Återställ",
"Setup": "Installera",
"API Keys": "API-nycklar",
"API Key": "API-nyckel",
"Key": "Nyckel",
"Enabled": "Aktiverad",
"Disabled": "Inaktiverad",
"No WGDashboard API Key": "Ingen WGDashboard API-nyckel",
"Expire At": "Utgår",
"Create API Key": "Skapa API-nyckel",
"Never Expire": "Löper aldrig ut",
"Don't think that's a good idea": "Det är nog inte en bra idé",
"Create": "Skapa",
"Status": "Status",
"On": "På",
"Off": "Av",
"Address": "Adress",
"Listen Port": "Lyssnarport",
"Public Key": "Publik nyckel",
"Connected Peers": "Anslutna Peers",
"Total Usage": "Total användning",
"Total Received": "Totalt mottaget",
"Total Sent": "Totalt skickat",
"Peers Data Usage": "Dataanvändning för Peers",
"Real Time Received Data Usage": "Realtidsanvändning mottagen data",
"Real Time Sent Data Usage": "Realtidsanvändning skickad data",
"Peer": "Peer",
"Peers": "Peers",
"Peer Settings": "Peer-inställningar",
"Download All": "Ladda ner alla",
"Display": "Visa",
"Sort By": "Sortera efter",
"Refresh Interval": "Uppdateringsintervall",
"Name": "Namn",
"Allowed IPs": "Tillåtna IP-adresser",
"Restricted": "Begränsad",
"(.*) Seconds": "$1 sekunder",
"(.*) Minutes": "$1 minuter",
"Configuration Settings": "Konfigurationsinställningar",
"Peer Jobs": "Peer-jobb",
"Active Jobs": "Aktiva jobb",
"All Active Jobs": "Alla aktiva jobb",
"Logs": "Loggar",
"Private Key": "Privat nyckel",
"Endpoint Allowed IPs": "Tillåtna IP-adresser för slutpunkt",
"DNS": "DNS",
"Optional Settings": "Valfria inställningar",
"Pre-Shared Key": "Fördelad nyckel",
"MTU": "MTU",
"Persistent Keepalive": "Persistent Keepalive",
"Reset Data Usage": "Återställ dataanvändning",
"Total": "Totalt",
"Sent": "Skickat",
"Received": "Mottaget",
"Revert": "Återställ",
"Save Peer": "Spara Peer",
"QR Code": "QR-kod",
"Schedule Jobs": "Schemalägg jobb",
"Job": "Jobb",
"Job ID": "Jobb-ID",
"Unsaved Job": "Osparat jobb",
"if": "om",
"is": "är",
"then": "då",
"larger than": "större än",
"Date": "Datum",
"Restrict Peer": "Begränsa Peer",
"Delete Peer": "Radera Peer",
"Edit": "Redigera",
"Delete": "Radera",
"Deleting...": "Raderar...",
"Cancel": "Avbryt",
"Save": "Spara",
"Jobs Logs": "Jobbloggar",
"Updated at": "Uppdaterad",
"Refresh": "Uppdatera",
"Filter": "Filter",
"Success": "Lyckades",
"Failed": "Misslyckades",
"Log ID": "Logg-ID",
"Message": "Meddelande",
"Share Peer": "Dela Peer",
"Currently the peer is not sharing": "Peer delar inte för tillfället",
"Start Sharing": "Starta delning",
"Stop Sharing": "Stoppa delning",
"Access Restricted": "Begränsad åtkomst",
"Restrict Access": "Begränsa åtkomst",
"Allow Access": "Tillåt åtkomst",
"Add Peers": "Lägg till Peers",
"Bulk Add": "Lägg till i bulk",
"You can add up to (.*) peers": "Du kan lägga till upp till $1 Peers",
"Use your own Private and Public Key": "Använd din egen privata och publika nyckel",
"Enter IP Address/CIDR": "Ange IP-adress/CIDR",
"IP Address/CIDR": "IP-adress/CIDR",
"or": "eller",
"Pick Available IP": "Välj tillgänglig IP",
"No available IP containing": "Ingen tillgänglig IP som innehåller ",
"Add": "Lägg till",
"Failed to check available update": "Misslyckades med att kontrollera tillgänglig uppdatering",
"Nice to meet you!": "Trevligt att träffas!",
"Please fill in the following fields to finish setup": "Fyll i följande fält för att slutföra installationen",
"Create an account": "Skapa ett konto",
"Enter an username you like": "Skriv in ett användarnamn du gillar",
"Enter a password": "Ange ett lösenord",
"Confirm password": "Bekräfta lösenord",
"Next": "Nästa",
"Or you can click the link below:": "Eller så kan du klicka på länken nedan:",
"TOTP verified!": "TOTP verifierad!",
"I don't need MFA": "Jag behöver inte MFA",
"Complete": "Komplett",
"(v[0-9.]{1,}) is now available for update!": "Version $1 är nu tillgänglig för uppdatering!",
"Current Version:": "Nuvarande version:",
"Scan QR Code with the WireGuard App to add peer": "Skanna QR-koden med WireGuard-appen för att lägga till peer",
"or click the button below to download the ": "eller klicka på knappen nedan för att ladda ner ",
" file": " fil",
"FROM ": "FRÅN ",
"(.*) is on": "$1 är aktiverad",
"(.*) is off": "$1 är avstängd",
"Allowed IPs is invalid": "Tillåtna IP-adresser är ogiltiga",
"Peer created successfully": "Peer skapad framgångsrikt",
"Please fill in all required box": "Vänligen fyll i alla obligatoriska fält",
"Please specify amount of peers you want to add": "Ange antalet peers du vill lägga till",
"No more available IP can assign": "Det finns inga fler tillgängliga IP-adresser att tilldela",
"The maximum number of peers can add is (.*)": "Det maximala antalet peers som kan läggas till är $1",
"Generating key pairs by bulk failed": "Generering av nyckelpar i bulk misslyckades",
"Failed to add peers in bulk": "Misslyckades med att lägga till peers i bulk",
"This peer already exist": "Den här peeren finns redan",
"This IP is not available: (.*)": "Den här IP-adressen är inte tillgänglig: $1",
"Configuration does not exist": "Konfigurationen finns inte",
"Peer does not exist": "Peer finns inte",
"Please provide a valid configuration name": "Vänligen ange ett giltigt konfigurationsnamn",
"Peer saved": "Peer sparad",
"Allowed IPs already taken by another peer": "Tillåtna IP-adresser är redan upptagna av en annan peer",
"Endpoint Allowed IPs format is incorrect": "Endpoint tillåtna IP-adresser är i fel format",
"DNS format is incorrect": "DNS-formatet är felaktigt",
"MTU format is not correct": "MTU-formatet är inte korrekt",
"Persistent Keepalive format is not correct": "Formatet för Persistent Keepalive är inte korrekt",
"Private key does not match with the public key": "Privat nyckel matchar inte med den offentliga nyckeln",
"Update peer failed when updating Pre-Shared Key": "Uppdatering av peer misslyckades vid uppdatering av Pre-Shared Key",
"Update peer failed when updating Allowed IPs": "Uppdatering av peer misslyckades vid uppdatering av tillåtna IP-adresser",
"Update peer failed when saving the configuration": "Uppdatering av peer misslyckades vid sparande av konfigurationen",
"Peer data usage reset successfully": "Peer dataanvändning återställd framgångsrikt",
"Peer download started": "Peer nedladdning påbörjad",
"Please specify one or more peers": "Vänligen ange en eller flera peers",
"Share link failed to create. Reason: (.*)": "Delningslänk skapades inte. Orsak: $1",
"Link expire date updated": "Länkens utgångsdatum uppdaterat",
"Link expire date failed to update. Reason: (.*)": "Länkens utgångsdatum misslyckades med att uppdateras. Orsak: $1",
"Peer job saved": "Peer-jobb sparad",
"Please specify job": "Vänligen ange jobb",
"Please specify peer and configuration": "Vänligen ange peer och konfiguration",
"Peer job deleted": "Peer-jobb raderad",
"API Keys function is successfully enabled": "API-nyckelfunktion har aktiverats",
"API Keys function is successfully disabled": "API-nyckelfunktion har inaktiverats",
"API Keys function is failed to enable": "API-nyckelfunktion misslyckades med att aktiveras",
"API Keys function is failed to disable": "API-nyckelfunktion misslyckades med att inaktiveras",
"WGDashboard API Keys function is disabled": "WGDashboard API-nyckelfunktion är inaktiverad",
"WireGuard configuration path saved": "WireGuard-konfigurationsväg sparad",
"API Key deleted": "API-nyckel raderad",
"API Key created": "API-nyckel skapad",
"Sign in session ended, please sign in again": "Inloggningen har gått ut, vänligen logga in igen",
"Please specify an IP Address (v4/v6)": "Vänligen ange en IP-adress (v4/v6)",
"Please provide ipAddress and count": "Vänligen ange ipAddress och count",
"Please provide ipAddress": "Vänligen ange ipAddress",
"Dashboard Language": "Panelens språk",
"Dashboard language update failed": "Uppdatering av panelens språk misslyckades",
"Peer Remote Endpoint": "Peer fjärrslutpunkt",
"New Configuration": "Ny konfiguration",
"Configuration Name": "Konfigurationsnamn",
"Configuration name is invalid. Possible reasons:": "Konfigurationsnamn är ogiltigt. Möjliga orsaker:",
"Configuration name already exist\\.": "Konfigurationsnamnet finns redan.",
"Configuration name can only contain 15 lower/uppercase alphabet, numbers, underscore, equal sign, plus sign, period and hyphen\\.": "Konfigurationsnamnet får endast innehålla 15 små/stora bokstäver, siffror, understreck, likhetstecken, plustecken, punkt och bindestreck.",
"Invalid Port": "Ogiltig port",
"Save Configuration": "Spara konfiguration",
"IP Address/CIDR is invalid": "IP-adress/CIDR är ogiltig",
"IP Address": "IP-adress",
"Enter IP Address / Hostname": "Ange IP-adress / Värdnamn",
"IP Address / Hostname": "IP-adress / Värdnamn",
"Dashboard IP Address \\& Listen Port": "Panelens IP-adress & Lyssningsport",
"Count": "Antal",
"Geolocation": "Geolokalisering",
"Is Alive": "Är aktiv",
"Average / Min / Max Round Trip Time": "Genomsnitt / Min / Max rundturstid",
"Sent / Received / Lost Package": "Skickade / Mottagna / Förlorade paket",
"Manual restart of WGDashboard is needed to apply changes on IP Address and Listen Port": "Manuell omstart av WGDashboard krävs för att tillämpa ändringar på IP-adress och lyssningsport",
"Restore Configuration": "Återställ konfiguration",
"Step (.*)": "Steg $1",
"Select a backup you want to restore": "Välj en säkerhetskopia du vill återställa",
"Click to change a backup": "Klicka för att ändra säkerhetskopia",
"Selected Backup": "Vald säkerhetskopia",
"You don't have any configuration to restore": "Du har ingen konfiguration att återställa",
"Help": "Hjälp",
"Backup": "Säkerhetskopiering",
"([0-9].*) Backups?": "$1 säkerhetskopior?",
"Yes": "Ja",
"No": "Nej",
"Backup not selected": "Ingen säkerhetskopia vald",
"Confirm \\& edit restore information": "Bekräfta och redigera återställningsinformation",
"(.*) Available IP Address": "$1 tillgängliga IP-adresser",
"Database File": "Databasfil",
"Contain": "Innehåller",
"Restricted Peers?": "Begränsade peers?",
"Restore": "Återställ",
"Restoring": "Återställer...",
"WGDashboard Settings": "WGDashboard inställningar",
"Peers Settings": "Peer-inställningar",
"WireGuard Configuration Settings": "WireGuard konfigurationsinställningar",
"Appearance": "Utseende",
"Theme": "Tema",
"Language": "Språk",
"Account Settings": "Kontoinställningar",
"Peer Default Settings": "Peer-standardinställningar",
"Toggle When Start Up": "Växla vid start",
"Other Settings": "Övriga inställningar",
"Select Peers": "Välj peers",
"Backup & Restore": "Säkerhetskopiering & Återställning",
"Delete Configuration": "Radera konfiguration",
"Create Backup": "Skapa säkerhetskopia",
"No backup yet, click the button above to create backup\\.": "Ingen säkerhetskopia än, klicka på knappen ovan för att skapa en.",
"Are you sure to delete this backup\\?": "Är du säker på att du vill radera denna säkerhetskopia?",
"Are you sure to restore this backup?\\": "Är du säker på att du vill återställa denna säkerhetskopia?",
"Backup Date": "Säkerhetskopieringsdatum",
"File": "Fil",
"Are you sure to delete this configuration\\?": "Är du säker på att du vill radera denna konfiguration?",
"Once you deleted this configuration\\:": "När du raderat denna konfiguration:",
"All connected peers will get disconnected": "Alla anslutna peers kommer att kopplas bort",
"Both configuration file \\(\\.conf\\) and database table related to this configuration will get deleted": "Både konfigurationsfilen (.conf) och databastabellen relaterad till denna konfiguration kommer att raderas",
"Checking backups...": "Kontrollerar säkerhetskopior...",
"This configuration have ([0-9].*) backups": "Denna konfiguration har $1 säkerhetskopior",
"This configuration have no backup": "Denna konfiguration har ingen säkerhetskopia",
"If you're sure, please type in the configuration name below and click Delete": "Om du är säker, skriv in konfigurationsnamnet nedan och klicka på Radera",
"Select All": "Välj alla",
"Clear Selection": "Rensa urval",
"([0-9].*) Peers?": "$1 Peers?",
"Downloading": "Hämtar",
"Download Finished": "Nedladdning slutförd",
"Done": "Klar",
"Are you sure to delete": "Är du säker på att du vill radera",
"Are you sure to delete this peer\\?": "Är du säker på att du vill radera denna peer?",
"Configuration deleted": "Konfiguration raderad",
"Configuration saved": "Konfiguration sparad",
"WGDashboard language update failed": "Uppdatering av WGDashboard språk misslyckades",
"Configuration restored": "Konfiguration återställd",
"Allowed IP already taken by another peer": "Tillåten IP-adress är redan upptagen av en annan peer",
"Failed to allow access of peer (.*)": "Misslyckades att ge access till peer (.*)",
"Failed to save configuration through WireGuard": "Misslyckades att spara konfiguration genom WireGuard",
"Allow access successfully": "Åtkomst beviljad framgångsrikt",
"Deleted ([0-9]{1,}) peer\\(s\\)": "Raderade $1 peer(s)",
"Deleted ([0-9]{1,}) peer\\(s\\) successfully. Failed to delete ([0-9]{1,}) peer\\(s\\)": "Raderade framgångsrikt $1 peer(s), misslyckades att radera $2 peer(s)",
"Restricted ([0-9]{1,}) peer\\(s\\)": "Begränsade $1 peer(s)",
"Restricted ([0-9]{1,}) peer\\(s\\) successfully. Failed to restrict ([0-9]{1,}) peer\\(s\\)": "Begränsade framgångsrikt $1 peer(s), misslyckades att begränsa $2 peer(s)",
"Signing In\\.\\.\\.": "Loggar in...",
"Multi-Factor Authentication \\(MFA\\)": "Flerfaktorsautentisering (MFA)",
"Are you sure to delete this API key\\?": "Är du säker på att du vill radera denna API-nyckel?",
"When should this API Key expire\\?": "När ska denna API-nyckel löpa ut?",
"Creating\\.\\.\\.": "Skapar...",
"Turning On\\.\\.\\.": "Aktiverar...",
"Turning Off\\.\\.\\.": "Inaktiverar...",
"Search Peers\\.\\.\\.": "Sök Peers...",
"\\(Required for QR Code and Download\\)": "(Krävs för QR-kod och nedladdning)",
"\\(Required\\)": "(Krävs)",
"This peer does not have any job yet\\.": "Denna Peer har inga jobb ännu.",
"No active job at the moment\\.": "Inga aktiva jobb just nu.",
"Sharing\\.\\.\\.": "Delar...",
"Stop Sharing\\.\\.\\.": "Stoppar delning...",
"Restricting\\.\\.\\.": "Begränsar åtkomst...",
"Allowing Access\\.\\.\\.": "Tillåter åtkomst...",
"Download \\& QR Code is not available due to no private key set for this peer": "Nedladdning & QR-kod är inte tillgängligt eftersom ingen privat nyckel är inställd för denna Peer",
"By adding peers by bulk, each peer's name will be auto generated, and Allowed IP will be assign to the next available IP\\.": "Vid bulk-läggning genereras varje Peer's namn automatiskt och tillåtet IP tilldelas nästa tillgängliga IP.",
"How many peers you want to add\\?": "Hur många Peers vill du lägga till?",
"Adding\\.\\.\\.": "Lägger till...",
"\\(At least 8 characters and make sure is strong enough!\\)": "(Minst 8 tecken och se till att det är tillräckligt starkt!)",
"Saving\\.\\.\\.": "Sparar...",
"1\\. Please scan the following QR Code to generate TOTP with your choice of authenticator": "1. Vänligen skanna följande QR-kod för att generera TOTP med din valda autentiserare",
"2\\. Enter the TOTP generated by your authenticator to verify": "2. Ange den TOTP som din autentiserare genererade för att verifiera",
"Oh no\\.\\.\\. This link is either expired or invalid\\.": "Åh nej... Den här länken är antingen utgången eller ogiltig."
}

View File

@ -1,311 +1,312 @@
{
"Welcome to": "Hoş geldiniz",
"Username": "Kullanıcı adı",
"Password": "Parola",
"OTP from your authenticator": "Kimlik doğrulama uygulamanızdan tek kullanımlık parola",
"Sign In": "Giriş Yap",
"Signing In...": "Giriş Yapılıyor...",
"Access Remote Server": "Uzak Sunuculara Eriş",
"Server": "Sunucu",
"Click": "Tıkla",
"Pinging...": "Ping atılıyor...",
"to add your server": "sunucunu eklemek için",
"Server List": "Sunucu Listesi",
"Sorry, your username or password is incorrect.": "Üzgünüm, kullanıcı adı veya parola yanlış.",
"Home": "Ana sayfa",
"Settings": "Ayarlar",
"Tools": "Araçlar",
"Sign Out": ıkış yap",
"Checking for update...": "Yeni sürüm için kontrol sağlanıyor...",
"You're on the latest version": "En güncel sürümü kullanıyorsunuz",
"WireGuard Configurations": "WireGuard Ayarları",
"You don't have any WireGuard configurations yet. Please check the configuration folder or change it in Settings. By default the folder is /etc/wireguard.": "Henüz herhangi bir WireGuard ayarınız bulunmuyor. Lütfen yapılandırma dizinini kontrol edin veya Ayarlar kısmından değiştirin. Ön tanımlı ayar dizini /etc/wireguard.",
"Configuration": "Ayar",
"Configurations": "Ayarlar",
"Peers Default Settings": "Ön Tanımlı Eş Ayarları",
"Dashboard Theme": "Arayüz Teması",
"Light": "Aydınlık",
"Dark": "Karanlık",
"This will be changed globally, and will be apply to all peer's QR code and configuration file.": "Bu değişiklik global olarak, tüm eşlerin QR kod ve yapılandırma dosyalarına uygulanacak.",
"WireGuard Configurations Settings": "WireGuard Yapılandırma Ayarları",
"Configurations Directory": "Yapılandırma Dizini",
"Remember to remove / at the end of your path. e.g /etc/wireguard": "Dizin adresinin sonundaki /'ı kaldırmayı unutmayın. Örnek; /etc/wireguard",
"WGDashboard Account Settings": "WGDashboard Hesap Ayarları",
"Current Password": "Geçerli Parola",
"New Password": "Yeni Parola",
"Repeat New Password": "Yeni Parolayı Tekrarla",
"Update Password": "Parolayı Guncelle",
"Multi-Factor Authentication (MFA)": "Çok Adımlı Dogrulama (MFA)",
"Reset": "Sıfırla",
"Setup": "Kurulum",
"API Keys": "API Anahtarları",
"API Key": "API Anahtarı",
"Key": "Anahtar",
"Enabled": "Aktif",
"Disabled": "Devre Dışı",
"No WGDashboard API Key": "WGDashboard API Anahtarı Yok",
"Expire At": "Geçerliliğini yitirme tarihi",
"Are you sure to delete this API key?": "Bu API anahtarını silmek istediğine emin misiniz?",
"Create API Key": "Yeni API anahtarı oluştur",
"When should this API Key expire?": "Bu API anahtarı ne zamana kadar geçerli olmalı?",
"Never Expire": "Geçerliligi asla yitirme",
"Don't think that's a good idea": "Bunun iyi bir fikir oldugunu düşünmüyorum",
"Creating...": "Oluşturuluyor...",
"Create": "Oluştur",
"Status": "Durum",
"On": "Açık",
"Off": "Kapalı",
"Turning On...": "Açılıyor...",
"Turning Off...": "Kapatılıyor...",
"Address": "Adres",
"Listen Port": "Port",
"Public Key": "Genel Anahtar",
"Connected Peers": "Bağlı Eşler",
"Total Usage": "Toplam Kullanım",
"Total Received": "Toplam Gelen",
"Total Sent": "Toplam Gönderilen",
"Peers Data Usage": "Eşlerin Veri Kullanımı",
"Real Time Received Data Usage": "Gerçek Zamanlı Gelen Veri Kullanımı",
"Real Time Sent Data Usage": "Gerçek Zamanlı Gönderilen Veri Kullanımı",
"Peer": "Eş",
"Peers": "Eşler",
"Peer Settings": "Eş Ayarları",
"Download All": "Hepsini İndir",
"Search Peers...": "Eşleri Ara...",
"Display": "Göster",
"Sort By": "Sırala",
"Refresh Interval": "Yenileme Sıklığı",
"Name": "Ad",
"Allowed IPs": "İzin Verilen IP Adresleri",
"Restricted": "Kısıtla",
"(.*) Seconds": "$1 Saniye",
"(.*) Minutes": "$1 Dakika",
"Configuration Settings": "Yapılandırma Ayarları",
"Peer Jobs": "Eş Görevleri",
"Active Jobs": "Aktif Eşler",
"All Active Jobs": "Aktif Tüm Görevler",
"Logs": "Loglar",
"Private Key": "Özel Anahtar",
"(Required for QR Code and Download)": "(QR Kodu ve İndirme için zorunlu)",
"(Required)": "(Zorunlu)",
"Endpoint Allowed IPs": "Endpointe Erişim İçin İzin Verilen IP Adresleri",
"DNS": "DNS",
"Optional Settings": "İsteğe Bağlı Ayarlar",
"Pre-Shared Key": "Ön Paylaşımlı Anahtar",
"MTU": "MTU",
"Persistent Keepalive": "Sürekli Oturum süresi",
"Reset Data Usage": "Veri Kullanımını Sıfırla",
"Total": "Toplam",
"Sent": "Gönderilen",
"Received": "Gelen",
"Revert": "Geri al",
"Save Peer": "Eşi Kaydet",
"QR Code": "QR Kod",
"Schedule Jobs": "Zamanlanmış Görevler",
"Job": "Görev",
"Job ID": "Görev ID",
"Unsaved Job": "Kaydedilmemiş Görev",
"This peer does not have any job yet.": "Bu eşe ait henüz herhangi bir görev yok.",
"if": "eğer",
"is": "",
"then": "öyleyse",
"larger than": "daha büyük",
"Date": "Tarih",
"Restrict Peer": "Eşi Kısıtla",
"Delete Peer": "Eşi Sil",
"Edit": "Düzenle",
"Delete": "Sil",
"Deleting...": "Siliniyor...",
"Cancel": "İptal Et",
"Save": "Kaydet",
"No active job at the moment.": "Şu an herhangi bir aktif görev yok.",
"Jobs Logs": "Görev Logları",
"Updated at": "tarihinde güncellenmiş",
"Refresh": "Yenile",
"Filter": "Filtre",
"Success": "Başarılı",
"Failed": "Başarısız",
"Log ID": "Log ID",
"Message": "Mesaj",
"Share Peer": "Eşi Paylaş",
"Currently the peer is not sharing": "Eş şu an paylaşım yapmıyor",
"Sharing...": "Paylaşılıyor...",
"Start Sharing": "Paylaşımı Başlat",
"Stop Sharing...": "Paylaşım Durduruluyor...",
"Stop Sharing": "Paylaşımı Durdur",
"Access Restricted": "Erişim Kısıtlandı",
"Restrict Access": "Erişimi Kısıtla",
"Restricting...": "Erişim Kısıtlanıyor...",
"Allow Access": "Erişim Ver",
"Allowing Access...": "Erişim Veriliyor...",
"Download & QR Code is not available due to no private key set for this peer": "Bu eş için özel anahtar tanımlandığı için İndirme ve QR Kod mevcut değil",
"Add Peers": "Eş Ekle",
"Bulk Add": "Toplu Ekle",
"By adding peers by bulk, each peer's name will be auto generated, and Allowed IP will be assign to the next available IP.": "Toplu ekleme yaparsanız eşlerin isimleri otomatik olarak oluşturulacak ve İzin Verilen IP adresi mevcut olan bir sonraki IP olarak tanımlanacak.",
"How many peers you want to add?": "Kaç adet eş eklemek istiyorsunuz?",
"You can add up to (.*) peers": "$1 adete kadar eş ekleyebilirsiniz",
"Use your own Private and Public Key": "Kendi özel ve genel anahtarınızı kullanın",
"Enter IP Address/CIDR": "IP Adresi/CIDR girin",
"IP Address/CIDR": "IP Adresi/CIDR",
"or": "veya",
"Pick Available IP": "Mevcut IP Adresi Seç",
"No available IP containing": "Mevcut IP Adresi bulunmuyor",
"Add": "Ekle",
"Adding...": "Ekleniyor...",
"Failed to check available update": "Mevcut güncelleştirme kontrol edilemedi",
"Nice to meet you!": "Tanıştığıma memnun oldum!",
"Please fill in the following fields to finish setup": "Lütfen kurulumu bitirmek için şu alanları doldurun",
"Create an account": "Hesap oluştur",
"Enter an username you like": "Bir kullanıcı adı girin",
"Enter a password": "Parola girin",
"\\(At least 8 characters and make sure is strong enough!\\)": "(En az 8 karakter girin ve güçlü bir parola seçtiğinizden emin olun!)",
"Confirm password": "Parolayı doğrula",
"Next": "Sonraki",
"Saving\\.\\.\\.": "Kaydediliyor...",
"1\\. Please scan the following QR Code to generate TOTP with your choice of authenticator": "1. Lütfen zaman tabanlı parola oluşturmak için aşağıdaki QR kodunu kimlik doğrulama uygulamanız ile tarayın",
"Or you can click the link below:": "Veya aşağıdaki linkte tıklayabilirsiniz:",
"2\\. Enter the TOTP generated by your authenticator to verify": "2. Doğrulamak için kimlik doğrulama uygulaması tarafından üretilen zaman tabanlı parolayı girin",
"TOTP verified!": "Zaman tabanlı parola doğrulandı!",
"I don't need MFA": "Çok adımlı doğrulamaya ihtiyacım yok",
"Complete": "Tamamla",
"(v[0-9.]{1,}) is now available for update!": "Sürüm $1 güncelleme için hazır!",
"Current Version:": "Geçerli Sürüm:",
"Oh no\\.\\.\\. This link is either expired or invalid\\.": "Tüh... Link geçerliliğini yitirmiş veya geçersiz link.",
"Scan QR Code with the WireGuard App to add peer": "Eşi eklemek için WireGuard uygulaması ile QR kodu okutun",
"or click the button below to download the ": "veya indirmek için aşağıdaki butona tıklayın",
" file": " dosyası",
"FROM ": "Kimden ",
"(.*) is on": "$1 açık",
"(.*) is off": "$1 kapalı",
"Allowed IPs is invalid": "İzin Verilen IP Adresleri geçersiz",
"Peer created successfully": "Eş başarıyla oluşturuldu",
"Please fill in all required box": "Lütfen zorunlu tüm alanları doldurun",
"Please specify amount of peers you want to add": "Lütfen eklemek istediğiniz eş adetini belirtin",
"No more available IP can assign": "Atanabilecek daha fazla mevcut IP adresi yok",
"The maximum number of peers can add is (.*)": "En fazla $1 adet eş ekleyebilirsiniz",
"Generating key pairs by bulk failed": "Toplu anahtar oluşturma işlemi başarısız oldu",
"Failed to add peers in bulk": "Toplu eş ekleme işlemi başarısız oldu",
"This peer already exist": "Bu eş zaten mevcut",
"This IP is not available: (.*)": "$1 adresi mevcut değil",
"Configuration does not exist": "Yapılandırma mevcut değil",
"Peer does not exist": "Eş mevcut değil",
"Please provide a valid configuration name": "Lütfen geçerli bir yapılandırma ismi girin",
"Peer saved": "Eş kaydedildi",
"Allowed IPs already taken by another peer": "İzin Verilen IP Adresleri başka bir eş tarafından zaten kullanılıyor",
"Endpoint Allowed IPs format is incorrect": "Endpoint için İzin Verilen IP Adreslerinin formatı yanlış",
"DNS format is incorrect": "DNS formatı yanlış",
"MTU format is not correct": "MTU formatı yanlış",
"Persistent Keepalive format is not correct": "Sürekli Oturum formatı yanlış",
"Private key does not match with the public key": "Özel anahtar genel anahtar ile eşleşmiyor",
"Update peer failed when updating Pre-Shared Key": "Eş güncellemesi Ön Tanımlı Anahtar güncellenirken başarısız oldu",
"Update peer failed when updating Allowed IPs": "Eş güncellemesi İzin Verilen IP Adresleri güncellenirken başarısız oldu",
"Update peer failed when saving the configuration": "Eş güncellemesi yapılandırma kaydedilirken başarısız oldu",
"Peer data usage reset successfully": "Eşin veri kullanım istatistiği başarıyla sıfırlandı",
"Peer download started": "Eş indirmesi başladı",
"Please specify one or more peers": "Lütfen bir veya daha fazla eş belirtin",
"Share link failed to create. Reason: (.*)": "Link paylaşımı oluşturulamadı. Sebebi: $1",
"Link expire date updated": "Link geçerlilik tarihi güncellendi",
"Link expire date failed to update. Reason: (.*)": "Link gerçerliliği güncellenemedi. Sebebi: $1",
"Peer job saved": "Eş görevi kaydedildi",
"Please specify job": "Lütfen görev belirtin",
"Please specify peer and configuration": "Lütfen eş ve yapılandırma belirtin",
"Peer job deleted": "Eş görevi silindi",
"API Keys function is successfully enabled": "API Anahtar işlevi başarıyla aktifleştirildi",
"API Keys function is successfully disabled": "API Anahtar işlevi başarıyle devre dışı bırakıldı",
"API Keys function is failed to enable": "API Anahtar işlevi aktifleştirilemedi",
"API Keys function is failed to disable": "API Anahtar işlevi devre dışı bırakılamadı",
"WGDashboard API Keys function is disabled": "WGDashboard API Anahtar işlevi devre dışı bırakılamadı",
"WireGuard configuration path saved": "WireGuard yapılandırma yolu kaydedildi",
"API Key deleted": "API Anahtarı silindi",
"API Key created": "API Anahtarı oluşturuldu",
"Sign in session ended, please sign in again": "Oturum süresi doldu, lütfen tekrar giriş yapın",
"Please specify an IP Address (v4/v6)": "Lütfen IP Adresi belirtin (v4/v6)",
"Please provide ipAddress and count": "Lütfen IP Adresı ve sayısını belirtin",
"Please provide ipAddress": "Lütfen IP Adresi belirtin",
"Dashboard Language": "Arayüz Dili",
"Dashboard language update failed": "Arayüz dil değişikliği başarısız oldu",
"Peer Remote Endpoint": "Uzak eş endpointi",
"New Configuration": "Yeni Yapılandırma",
"Configuration Name": "Yapılandırma Adı",
"Configuration name is invalid. Possible reasons:": "Yapılandırma ismi geçersiz. Muhtemel sebepler:",
"Configuration name already exist.": "Yapılandırma ismi zaten mevcut.",
"Configuration name can only contain 15 lower/uppercase alphabet, numbers, underscore, equal sign, plus sign, period and hyphen.": "Yapılandırma ismi 15 karakterden oluşur; büyük/küçük harf, sayı, alt çizgi, eşittir, artı, nokta ve tire içerebilir.",
"Invalid Port": "Geçersiz Port",
"Save Configuration": "Yapılandırmayı Kaydet",
"IP Address/CIDR is invalid": "IP Adresi/CIDR geçersiz",
"IP Address": "IP Adresi",
"Enter IP Address / Hostname": "IP Adresi/Hostname girin",
"IP Address / Hostname": "IP Adresi/Hostname",
"Count": "Sayı",
"Geolocation": "Coğrafi Konum",
"Is Alive": "Erişilebilir mi",
"Average / Min / Max Round Trip Time": "Ortalama / Min / Maks RTT",
"Sent / Received / Lost Package": "Gönderilen / Alınan / Kayıp Paket",
"Manual restart of WGDashboard is needed to apply changes on IP Address and Listen Port": "IP Adresi ve Port değişikliklerinin uygulanması için WGDashboard'un elle yeniden başlatılması gerekiyor",
"Restore Configuration": "Yapılandırmayı Geri Yükle",
"Step (.*)": "$1. Adım",
"Select a backup you want to restore": "Geri yüklemek istediğiniz yedeği seçin",
"Click to change a backup": "Yedek seçmek için tıklayın",
"Selected Backup": "Seçilen Yedek",
"You don't have any configuration to restore": "Geri yüklemek için herhangi bir yapılandırmanız yok",
"Help": "Yardım",
"Backup": "Yedek",
"([0-9].*) Backups?": "$1 Yedek?",
"Yes": "Evet",
"No": "Hayır",
"Backup not selected": "Yedek seçilmedi",
"Confirm & edit restore information": "Geri yükleme bilgisini doğrula ve düzelt",
"(.*) Available IP Address": "$1 adet mevcut IP Adresi",
"Database File": "Veritabanı Dosyası",
"Contain": "İçeriyor",
"Restricted Peers?": "Kısıtlanmış Eşler?",
"Restore": "Geri Yükle",
"Restoring": "Geri Yükleniyor...",
"WGDashboard Settings": "WGDashboard Ayarları",
"Peers Settings": "Eş Ayarları",
"WireGuard Configuration Settings": "WireGuard Yapılandırma Ayarları",
"Appearance": "Görünüm",
"Theme": "Tema",
"Language": "Dil",
"Account Settings": "Hesap Ayarları",
"Peer Default Settings": "Ön Tanımlı Eş Ayarları",
"Toggle When Start Up": "Açılışta Ayarla",
"Other Settings": "Diğer Ayarlar",
"Select Peers": "Eş Seç",
"Backup & Restore": "Yedekleme ve Geri Yükleme",
"Delete Configuration": "Yapılandırmayı Sil",
"Create Backup": "Yedek Oluştur",
"No backup yet, click the button above to create backup.": "Henüz herhangi bir yedek bulunmuyor, oluşturmak için üstteki butona tıklayın.",
"Are you sure to delete this backup?": "Bu yedeği silmek istediğinize emin misiniz?",
"Are you sure to restore this backup?": "Bu yedeği geri yüklemek istediğinize emin misiniz?",
"Backup Date": "Yedek Tarihi",
"File": "Dosya",
"Are you sure to delete this configuration?": "Bu yapılandırmayı silmek istediğinize emin misiniz?",
"Once you deleted this configuration:": "Bu yapılandırmayı sildiğiniz an:",
"All connected peers will get disconnected": "Bağlı tüm eşlerin bağlantısı kopacak",
"Both configuration file (.conf) and database table related to this configuration will get deleted": "Hem yapılandırma dosyası (.conf) hem de bu yapılandırmanın veritabanı tablosu silinecek",
"Checking backups...": "Yedekler kontrol ediliyor...",
"This configuration have ([0-9].*) backups": "Bu yapılandırmanın $1 adet yedeği bulunuyor",
"This configuration have no backup": "Bu yapılandırmanın hiç yedeği bulunmuyor",
"If you're sure, please type in the configuration name below and click Delete": "Eğer eminseniz aşağıya yapılandırma ismini girin ve Sil'e tıklayın",
"Select All": "Hepsini Seç",
"Clear Selection": "Seçimi Kaldır",
"([0-9].*) Peers?": "$1 Eş?",
"Downloadıng": "İndiriliyor",
"Download Finished": "İndirme Tamamlandı",
"Done": "Bitti",
"Are you sure to delete": "Silmek istediğinize emin misiniz?",
"Are you sure to delete this peer?": "Bu eşi silmek istediğinize emin misiniz?",
"Configuration deleted": "Yapılandırma silindi",
"Configuration saved": "Yapılandırma kaydedildi",
"WGDashboard language update failed": "WGDashboard ismi güncellenemedi",
"Configuration restored": "Yapılandırma geri yüklendi",
"Allowed IP already taken by another peer": "İzin verilen IP başka bir eş tarafından kullanılıyor",
"Failed to allow access of peer (.*)": "$1 eşe erişim izni verilemedi",
"Failed to save configuration through WireGuard": "WireGuard üzerinden yapılandırma kaydedilemedi",
"Allow access successfully": "Erişim izni başarıyla verildi",
"Deleted ([0-9]{1,}) peer(s)": "$1 eş silindi",
"Deleted ([0-9]{1,}) peer(s) successfully. Failed to delete ([0-9]{1,}) peer(s)": "$1 eş başarıyla silindi. $2 eş silinemedi",
"Restricted ([0-9]{1,}) peer(s)": "$1 eşin erişimi kısıtlandı",
"Restricted ([0-9]{1,}) peer(s) successfully. Failed to restrict ([0-9]{1,}) peer(s)": "$1 eşin erişimi kısıtlandı. $2 eşin erişimi kısıtlanamadı"
"Welcome to": "Hoş geldiniz",
"Username": "Kullanıcı adı",
"Password": "Parola",
"OTP from your authenticator": "Kimlik doğrulama uygulamanızdan tek kullanımlık parola",
"Sign In": "Giriş Yap",
"Signing In\\.\\.\\.": "Giriş Yapılıyor...",
"Access Remote Server": "Uzak Sunuculara Eriş",
"Server": "Sunucu",
"Click": "Tıkla",
"Pinging...": "Ping atılıyor...",
"to add your server": "sunucunu eklemek için",
"Server List": "Sunucu Listesi",
"Sorry, your username or password is incorrect.": "Üzgünüm, kullanıcı adı veya parola yanlış.",
"Home": "Ana sayfa",
"Settings": "Ayarlar",
"Tools": "Araçlar",
"Sign Out": ıkış yap",
"Checking for update...": "Yeni sürüm için kontrol sağlanıyor...",
"You're on the latest version": "En güncel sürümü kullanıyorsunuz",
"WireGuard Configurations": "WireGuard Ayarları",
"You don't have any WireGuard configurations yet. Please check the configuration folder or change it in Settings. By default the folder is /etc/wireguard.": "Henüz herhangi bir WireGuard ayarınız bulunmuyor. Lütfen yapılandırma dizinini kontrol edin veya Ayarlar kısmından değiştirin. Ön tanımlı ayar dizini /etc/wireguard.",
"Configuration": "Ayar",
"Configurations": "Ayarlar",
"Peers Default Settings": "Ön Tanımlı Eş Ayarları",
"Dashboard Theme": "Arayüz Teması",
"Light": "Aydınlık",
"Dark": "Karanlık",
"This will be changed globally, and will be apply to all peer's QR code and configuration file.": "Bu değişiklik global olarak, tüm eşlerin QR kod ve yapılandırma dosyalarına uygulanacak.",
"WireGuard Configurations Settings": "WireGuard Yapılandırma Ayarları",
"Configurations Directory": "Yapılandırma Dizini",
"Remember to remove / at the end of your path. e.g /etc/wireguard": "Dizin adresinin sonundaki /'ı kaldırmayı unutmayın. Örnek; /etc/wireguard",
"WGDashboard Account Settings": "WGDashboard Hesap Ayarları",
"Current Password": "Geçerli Parola",
"New Password": "Yeni Parola",
"Repeat New Password": "Yeni Parolayı Tekrarla",
"Update Password": "Parolayı Guncelle",
"Reset": "Sıfırla",
"Setup": "Kurulum",
"API Keys": "API Anahtarları",
"API Key": "API Anahtarı",
"Key": "Anahtar",
"Enabled": "Aktif",
"Disabled": "Devre Dışı",
"No WGDashboard API Key": "WGDashboard API Anahtarı Yok",
"Expire At": "Geçerliliğini yitirme tarihi",
"Create API Key": "Yeni API anahtarı oluştur",
"Never Expire": "Geçerliligi asla yitirme",
"Don't think that's a good idea": "Bunun iyi bir fikir oldugunu düşünmüyorum",
"Create": "Oluştur",
"Status": "Durum",
"On": "Açık",
"Off": "Kapalı",
"Address": "Adres",
"Listen Port": "Port",
"Public Key": "Genel Anahtar",
"Connected Peers": "Bağlı Eşler",
"Total Usage": "Toplam Kullanım",
"Total Received": "Toplam Gelen",
"Total Sent": "Toplam Gönderilen",
"Peers Data Usage": "Eşlerin Veri Kullanımı",
"Real Time Received Data Usage": "Gerçek Zamanlı Gelen Veri Kullanımı",
"Real Time Sent Data Usage": "Gerçek Zamanlı Gönderilen Veri Kullanımı",
"Peer": "Eş",
"Peers": "Eşler",
"Peer Settings": "Eş Ayarları",
"Download All": "Hepsini İndir",
"Display": "Göster",
"Sort By": "Sırala",
"Refresh Interval": "Yenileme Sıklığı",
"Name": "Ad",
"Allowed IPs": "İzin Verilen IP Adresleri",
"Restricted": "Kısıtla",
"(.*) Seconds": "$1 Saniye",
"(.*) Minutes": "$1 Dakika",
"Configuration Settings": "Yapılandırma Ayarları",
"Peer Jobs": "Eş Görevleri",
"Active Jobs": "Aktif Eşler",
"All Active Jobs": "Aktif Tüm Görevler",
"Logs": "Loglar",
"Private Key": "Özel Anahtar",
"Endpoint Allowed IPs": "Endpointe Erişim İçin İzin Verilen IP Adresleri",
"DNS": "DNS",
"Optional Settings": "İsteğe Bağlı Ayarlar",
"Pre-Shared Key": "Ön Paylaşımlı Anahtar",
"MTU": "MTU",
"Persistent Keepalive": "Sürekli Oturum süresi",
"Reset Data Usage": "Veri Kullanımını Sıfırla",
"Total": "Toplam",
"Sent": "Gönderilen",
"Received": "Gelen",
"Revert": "Geri al",
"Save Peer": "Eşi Kaydet",
"QR Code": "QR Kod",
"Schedule Jobs": "Zamanlanmış Görevler",
"Job": "Görev",
"Job ID": "Görev ID",
"Unsaved Job": "Kaydedilmemiş Görev",
"if": "eğer",
"is": "",
"then": "öyleyse",
"larger than": "daha büyük",
"Date": "Tarih",
"Restrict Peer": "Eşi Kısıtla",
"Delete Peer": "Eşi Sil",
"Edit": "Düzenle",
"Delete": "Sil",
"Deleting...": "Siliniyor...",
"Cancel": "İptal Et",
"Save": "Kaydet",
"Jobs Logs": "Görev Logları",
"Updated at": "tarihinde güncellenmiş",
"Refresh": "Yenile",
"Filter": "Filtre",
"Success": "Başarılı",
"Failed": "Başarısız",
"Log ID": "Log ID",
"Message": "Mesaj",
"Share Peer": "Eşi Paylaş",
"Currently the peer is not sharing": "Eş şu an paylaşım yapmıyor",
"Start Sharing": "Paylaşımı Başlat",
"Stop Sharing": "Paylaşımı Durdur",
"Access Restricted": "Erişim Kısıtlandı",
"Restrict Access": "Erişimi Kısıtla",
"Allow Access": "Erişim Ver",
"Add Peers": "Eş Ekle",
"Bulk Add": "Toplu Ekle",
"You can add up to (.*) peers": "$1 adete kadar eş ekleyebilirsiniz",
"Use your own Private and Public Key": "Kendi özel ve genel anahtarınızı kullanın",
"Enter IP Address/CIDR": "IP Adresi/CIDR girin",
"IP Address/CIDR": "IP Adresi/CIDR",
"or": "veya",
"Pick Available IP": "Mevcut IP Adresi Seç",
"No available IP containing": "Mevcut IP Adresi bulunmuyor",
"Add": "Ekle",
"Failed to check available update": "Mevcut güncelleştirme kontrol edilemedi",
"Nice to meet you!": "Tanıştığıma memnun oldum!",
"Please fill in the following fields to finish setup": "Lütfen kurulumu bitirmek için şu alanları doldurun",
"Create an account": "Hesap oluştur",
"Enter an username you like": "Bir kullanıcı adı girin",
"Enter a password": "Parola girin",
"\\(At least 8 characters and make sure is strong enough!\\)": "(En az 8 karakter girin ve güçlü bir parola seçtiğinizden emin olun!)",
"Confirm password": "Parolayı doğrula",
"Next": "Sonraki",
"Saving\\.\\.\\.": "Kaydediliyor...",
"1\\. Please scan the following QR Code to generate TOTP with your choice of authenticator": "1. Lütfen zaman tabanlı parola oluşturmak için aşağıdaki QR kodunu kimlik doğrulama uygulamanız ile tarayın",
"Or you can click the link below:": "Veya aşağıdaki linkte tıklayabilirsiniz:",
"2\\. Enter the TOTP generated by your authenticator to verify": "2. Doğrulamak için kimlik doğrulama uygulaması tarafından üretilen zaman tabanlı parolayı girin",
"TOTP verified!": "Zaman tabanlı parola doğrulandı!",
"I don't need MFA": "Çok adımlı doğrulamaya ihtiyacım yok",
"Complete": "Tamamla",
"(v[0-9.]{1,}) is now available for update!": "Sürüm $1 güncelleme için hazır!",
"Current Version:": "Geçerli Sürüm:",
"Oh no\\.\\.\\. This link is either expired or invalid\\.": "Tüh... Link geçerliliğini yitirmiş veya geçersiz link.",
"Scan QR Code with the WireGuard App to add peer": "Eşi eklemek için WireGuard uygulaması ile QR kodu okutun",
"or click the button below to download the ": "veya indirmek için aşağıdaki butona tıklayın",
" file": " dosyası",
"FROM ": "Kimden ",
"(.*) is on": "$1 açık",
"(.*) is off": "$1 kapalı",
"Allowed IPs is invalid": "İzin Verilen IP Adresleri geçersiz",
"Peer created successfully": "Eş başarıyla oluşturuldu",
"Please fill in all required box": "Lütfen zorunlu tüm alanları doldurun",
"Please specify amount of peers you want to add": "Lütfen eklemek istediğiniz eş adetini belirtin",
"No more available IP can assign": "Atanabilecek daha fazla mevcut IP adresi yok",
"The maximum number of peers can add is (.*)": "En fazla $1 adet eş ekleyebilirsiniz",
"Generating key pairs by bulk failed": "Toplu anahtar oluşturma işlemi başarısız oldu",
"Failed to add peers in bulk": "Toplu eş ekleme işlemi başarısız oldu",
"This peer already exist": "Bu eş zaten mevcut",
"This IP is not available: (.*)": "$1 adresi mevcut değil",
"Configuration does not exist": "Yapılandırma mevcut değil",
"Peer does not exist": "Eş mevcut değil",
"Please provide a valid configuration name": "Lütfen geçerli bir yapılandırma ismi girin",
"Peer saved": "Eş kaydedildi",
"Allowed IPs already taken by another peer": "İzin Verilen IP Adresleri başka bir eş tarafından zaten kullanılıyor",
"Endpoint Allowed IPs format is incorrect": "Endpoint için İzin Verilen IP Adreslerinin formatı yanlış",
"DNS format is incorrect": "DNS formatı yanlış",
"MTU format is not correct": "MTU formatı yanlış",
"Persistent Keepalive format is not correct": "Sürekli Oturum formatı yanlış",
"Private key does not match with the public key": "Özel anahtar genel anahtar ile eşleşmiyor",
"Update peer failed when updating Pre-Shared Key": "Eş güncellemesi Ön Tanımlı Anahtar güncellenirken başarısız oldu",
"Update peer failed when updating Allowed IPs": "Eş güncellemesi İzin Verilen IP Adresleri güncellenirken başarısız oldu",
"Update peer failed when saving the configuration": "Eş güncellemesi yapılandırma kaydedilirken başarısız oldu",
"Peer data usage reset successfully": "Eşin veri kullanım istatistiği başarıyla sıfırlandı",
"Peer download started": "Eş indirmesi başladı",
"Please specify one or more peers": "Lütfen bir veya daha fazla eş belirtin",
"Share link failed to create. Reason: (.*)": "Link paylaşımı oluşturulamadı. Sebebi: $1",
"Link expire date updated": "Link geçerlilik tarihi güncellendi",
"Link expire date failed to update. Reason: (.*)": "Link gerçerliliği güncellenemedi. Sebebi: $1",
"Peer job saved": "Eş görevi kaydedildi",
"Please specify job": "Lütfen görev belirtin",
"Please specify peer and configuration": "Lütfen eş ve yapılandırma belirtin",
"Peer job deleted": "Eş görevi silindi",
"API Keys function is successfully enabled": "API Anahtar işlevi başarıyla aktifleştirildi",
"API Keys function is successfully disabled": "API Anahtar işlevi başarıyle devre dışı bırakıldı",
"API Keys function is failed to enable": "API Anahtar işlevi aktifleştirilemedi",
"API Keys function is failed to disable": "API Anahtar işlevi devre dışı bırakılamadı",
"WGDashboard API Keys function is disabled": "WGDashboard API Anahtar işlevi devre dışı bırakılamadı",
"WireGuard configuration path saved": "WireGuard yapılandırma yolu kaydedildi",
"API Key deleted": "API Anahtarı silindi",
"API Key created": "API Anahtarı oluşturuldu",
"Sign in session ended, please sign in again": "Oturum süresi doldu, lütfen tekrar giriş yapın",
"Please specify an IP Address (v4/v6)": "Lütfen IP Adresi belirtin (v4/v6)",
"Please provide ipAddress and count": "Lütfen IP Adresı ve sayısını belirtin",
"Please provide ipAddress": "Lütfen IP Adresi belirtin",
"Dashboard Language": "Arayüz Dili",
"Dashboard language update failed": "Arayüz dil değişikliği başarısız oldu",
"Peer Remote Endpoint": "Uzak eş endpointi",
"New Configuration": "Yeni Yapılandırma",
"Configuration Name": "Yapılandırma Adı",
"Configuration name is invalid. Possible reasons:": "Yapılandırma ismi geçersiz. Muhtemel sebepler:",
"Invalid Port": "Geçersiz Port",
"Save Configuration": "Yapılandırmayı Kaydet",
"IP Address/CIDR is invalid": "IP Adresi/CIDR geçersiz",
"IP Address": "IP Adresi",
"Enter IP Address / Hostname": "IP Adresi/Hostname girin",
"IP Address / Hostname": "IP Adresi/Hostname",
"Count": "Sayı",
"Geolocation": "Coğrafi Konum",
"Is Alive": "Erişilebilir mi",
"Average / Min / Max Round Trip Time": "Ortalama / Min / Maks RTT",
"Sent / Received / Lost Package": "Gönderilen / Alınan / Kayıp Paket",
"Manual restart of WGDashboard is needed to apply changes on IP Address and Listen Port": "IP Adresi ve Port değişikliklerinin uygulanması için WGDashboard'un elle yeniden başlatılması gerekiyor",
"Restore Configuration": "Yapılandırmayı Geri Yükle",
"Step (.*)": "$1. Adım",
"Select a backup you want to restore": "Geri yüklemek istediğiniz yedeği seçin",
"Click to change a backup": "Yedek seçmek için tıklayın",
"Selected Backup": "Seçilen Yedek",
"You don't have any configuration to restore": "Geri yüklemek için herhangi bir yapılandırmanız yok",
"Help": "Yardım",
"Backup": "Yedek",
"([0-9].*) Backups?": "$1 Yedek?",
"Yes": "Evet",
"No": "Hayır",
"Backup not selected": "Yedek seçilmedi",
"(.*) Available IP Address": "$1 adet mevcut IP Adresi",
"Database File": "Veritabanı Dosyası",
"Contain": "İçeriyor",
"Restricted Peers?": "Kısıtlanmış Eşler?",
"Restore": "Geri Yükle",
"Restoring": "Geri Yükleniyor...",
"WGDashboard Settings": "WGDashboard Ayarları",
"Peers Settings": "Eş Ayarları",
"WireGuard Configuration Settings": "WireGuard Yapılandırma Ayarları",
"Appearance": "Görünüm",
"Theme": "Tema",
"Language": "Dil",
"Account Settings": "Hesap Ayarları",
"Peer Default Settings": "Ön Tanımlı Eş Ayarları",
"Toggle When Start Up": "Açılışta Ayarla",
"Other Settings": "Diğer Ayarlar",
"Select Peers": "Eş Seç",
"Backup & Restore": "Yedekleme ve Geri Yükleme",
"Delete Configuration": "Yapılandırmayı Sil",
"Create Backup": "Yedek Oluştur",
"Backup Date": "Yedek Tarihi",
"File": "Dosya",
"All connected peers will get disconnected": "Bağlı tüm eşlerin bağlantısı kopacak",
"Checking backups...": "Yedekler kontrol ediliyor...",
"This configuration have ([0-9].*) backups": "Bu yapılandırmanın $1 adet yedeği bulunuyor",
"This configuration have no backup": "Bu yapılandırmanın hiç yedeği bulunmuyor",
"If you're sure, please type in the configuration name below and click Delete": "Eğer eminseniz aşağıya yapılandırma ismini girin ve Sil'e tıklayın",
"Select All": "Hepsini Seç",
"Clear Selection": "Seçimi Kaldır",
"([0-9].*) Peers?": "$1 Eş?",
"Download Finished": "İndirme Tamamlandı",
"Done": "Bitti",
"Are you sure to delete": "Silmek istediğinize emin misiniz?",
"Configuration deleted": "Yapılandırma silindi",
"Configuration saved": "Yapılandırma kaydedildi",
"WGDashboard language update failed": "WGDashboard ismi güncellenemedi",
"Configuration restored": "Yapılandırma geri yüklendi",
"Allowed IP already taken by another peer": "İzin verilen IP başka bir eş tarafından kullanılıyor",
"Failed to allow access of peer (.*)": "$1 eşe erişim izni verilemedi",
"Failed to save configuration through WireGuard": "WireGuard üzerinden yapılandırma kaydedilemedi",
"Allow access successfully": "Erişim izni başarıyla verildi",
"Multi-Factor Authentication \\(MFA\\)": "Çok Adımlı Dogrulama (MFA)",
"Are you sure to delete this API key\\?": "Bu API anahtarını silmek istediğine emin misiniz?",
"When should this API Key expire\\?": "Bu API anahtarı ne zamana kadar geçerli olmalı?",
"Creating\\.\\.\\.": "Oluşturuluyor...",
"Turning On\\.\\.\\.": "Açılıyor...",
"Turning Off\\.\\.\\.": "Kapatılıyor...",
"Search Peers\\.\\.\\.": "Eşleri Ara...",
"\\(Required for QR Code and Download\\)": "(QR Kodu ve İndirme için zorunlu)",
"\\(Required\\)": "(Zorunlu)",
"This peer does not have any job yet\\.": "Bu eşe ait henüz herhangi bir görev yok.",
"No active job at the moment\\.": "Şu an herhangi bir aktif görev yok.",
"Sharing\\.\\.\\.": "Paylaşılıyor...",
"Stop Sharing\\.\\.\\.": "Paylaşım Durduruluyor...",
"Restricting\\.\\.\\.": "Erişim Kısıtlanıyor...",
"Allowing Access\\.\\.\\.": "Erişim Veriliyor...",
"Download \\& QR Code is not available due to no private key set for this peer": "Bu eş için özel anahtar tanımlandığı için İndirme ve QR Kod mevcut değil",
"By adding peers by bulk, each peer's name will be auto generated, and Allowed IP will be assign to the next available IP\\.": "Toplu ekleme yaparsanız eşlerin isimleri otomatik olarak oluşturulacak ve İzin Verilen IP adresi mevcut olan bir sonraki IP olarak tanımlanacak.",
"How many peers you want to add\\?": "Kaç adet eş eklemek istiyorsunuz?",
"Adding\\.\\.\\.": "Ekleniyor...",
"Configuration name already exist\\.": "Yapılandırma ismi zaten mevcut.",
"Configuration name can only contain 15 lower/uppercase alphabet, numbers, underscore, equal sign, plus sign, period and hyphen\\.": "Yapılandırma ismi 15 karakterden oluşur; büyük/küçük harf, sayı, alt çizgi, eşittir, artı, nokta ve tire içerebilir.",
"Dashboard IP Address \\& Listen Port": "",
"Confirm \\& edit restore information": "Geri yükleme bilgisini doğrula ve düzelt",
"No backup yet, click the button above to create backup\\.": "Henüz herhangi bir yedek bulunmuyor, oluşturmak için üstteki butona tıklayın.",
"Are you sure to delete this backup\\?": "Bu yedeği silmek istediğinize emin misiniz?",
"Are you sure to restore this backup?\\": "Bu yedeği geri yüklemek istediğinize emin misiniz?",
"Are you sure to delete this configuration\\?": "Bu yapılandırmayı silmek istediğinize emin misiniz?",
"Once you deleted this configuration\\:": "Bu yapılandırmayı sildiğiniz an:",
"Both configuration file \\(\\.conf\\) and database table related to this configuration will get deleted": "Hem yapılandırma dosyası (.conf) hem de bu yapılandırmanın veritabanı tablosu silinecek",
"Downloading": "İndiriliyor",
"Are you sure to delete this peer\\?": "Bu eşi silmek istediğinize emin misiniz?",
"Deleted ([0-9]{1,}) peer\\(s\\)": "$1 eş silindi",
"Deleted ([0-9]{1,}) peer\\(s\\) successfully. Failed to delete ([0-9]{1,}) peer\\(s\\)": "$1 eş başarıyla silindi. $2 eş silinemedi",
"Restricted ([0-9]{1,}) peer\\(s\\)": "$1 eşin erişimi kısıtlandı",
"Restricted ([0-9]{1,}) peer\\(s\\) successfully. Failed to restrict ([0-9]{1,}) peer\\(s\\)": "$1 eşin erişimi kısıtlandı. $2 eşin erişimi kısıtlanamadı"
}

View File

@ -236,6 +236,7 @@
"IP Address": "IP-адреса",
"Enter IP Address / Hostname": "Введіть IP-адресу / ім’я хоста",
"IP Address / Hostname": "IP-адресу / ім’я хоста",
"Dashboard IP Address \\& Listen Port": "",
"Count": "Граф",
"Geolocation": "",
"Is Alive": "",

View File

@ -0,0 +1,62 @@
import json
active_languages = json.loads(open("active_languages.json", "r").read())
language_template = json.loads(open("language_template.json", "r").read())
if __name__ == "__main__":
welcome = "WGDashboard Locale File Verification [by @donaldzou]"
print("="*(len(welcome) + 4))
print(f"| {welcome} |")
print("="*(len(welcome) + 4))
print()
print("Active Languages\n")
status = False
for language in active_languages:
print(f"{language['lang_name']} | {language['lang_id']}")
lang_ids = list(map(lambda x: x['lang_id'], active_languages))
print()
lang_id = ""
while not status:
lang_id = input("Please enter the language ID to verify: ")
if lang_id not in lang_ids:
print(f'{lang_id} is not a valid language ID')
elif lang_id == 'en':
print(f'{lang_id} is not a editable language')
else:
status = True
with open(f"{lang_id}.json", "r") as f:
lang_file = json.load(f)
# Identify missing and deprecated translations
missing_translation = [
key for key in language_template
if key not in lang_file or not lang_file[key].strip()
]
deprecated_translation = [
key for key in lang_file
if key not in language_template
]
with open(f"{lang_id}.json", "w") as f:
new_lang_file = dict(lang_file)
for key in missing_translation:
new_lang_file[key] = ""
for key in deprecated_translation:
new_lang_file.pop(key)
f.write(json.dumps(new_lang_file, ensure_ascii=False, indent='\t'))
print()
# Print missing translations
print(f"\t[Missing Translations] {len(missing_translation)} translation{'s' if len(missing_translation) > 1 else ''}")
# Print deprecated translations
print(f"\t[Deprecated Translations] {len(deprecated_translation)} translation{'s' if len(deprecated_translation) > 1 else ''}")
print(f"\t[Note] All missing translations are added into {lang_id}.json, all deprecated translations are removed from {lang_id}.json")

View File

@ -236,7 +236,7 @@
"IP Address": "IP 地址",
"Enter IP Address / Hostname": "输入 IP 地址 / 域名",
"IP Address / Hostname": "IP 地址 / 域名",
"Dashboard IP Address \\& Listen Port": "面板 IP地址 & 监听端口",
"Dashboard IP Address \\& Listen Port": "面板 IP地址 & 监听端口",
"Count": "数量",
"Geolocation": "地理位置",
"Is Alive": "在线",
@ -298,7 +298,7 @@
"Are you sure to delete": "您确定要删除",
"Are you sure to delete this peer\\?": "您确定要删除此端点吗?",
"Configuration deleted": "配置删除成功",
"Configuration saved": "",
"Configuration saved": "配置保存成功",
"WGDashboard language update failed": "WGDashboard 语言更新失败",
"Configuration restored": "配置恢复成功",
"Allowed IP already taken by another peer": "允许的 IP 地址已经被别的端点占用",

View File

@ -298,7 +298,7 @@
"Are you sure to delete": "您確定要刪除",
"Are you sure to delete this peer\\?": "您確定要刪除此端點嗎?",
"Configuration deleted": "配置刪除成功",
"Configuration saved": "",
"Configuration saved": "配置保存成功",
"WGDashboard language update failed": "WGDashboard 語言更新失敗",
"Configuration restored": "配置恢復成功",
"Allowed IP already taken by another peer": "允許的 IP 地址已經被別的端點佔用",