translations #106

This commit is contained in:
Alireza Ahmadi
2024-05-15 00:08:50 +02:00
parent b4fcec9477
commit 7d39252fec
44 changed files with 1254 additions and 323 deletions
+10 -14
View File
@@ -6,29 +6,29 @@
</v-col>
<v-col cols="12" sm="6" md="4">
<v-text-field
label="Override Address"
:label="$t('types.direct.overrideAddr')"
hide-details
v-model="data.override_address">
</v-text-field>
</v-col>
<v-col cols="12" sm="6" md="4">
<v-text-field
label="Override Port"
:label="$t('types.direct.overridePort')"
type="number"
min="0"
hide-details
v-model="override_port">
v-model.number="override_port">
</v-text-field>
</v-col>
<v-col cols="12" sm="6" md="4" v-if="direction == 'out'">
<v-text-field
label="Proxy Protocol"
type="number"
min="0"
max="2"
<v-select
:label="$t('types.direct.proxyProtocol')"
:items="[1,2]"
hide-details
v-model="proxy_protocol">
</v-text-field>
clearable
@click:clear="delete data.proxy_protocol"
v-model.number="data.proxy_protocol">
</v-select>
</v-col>
</v-row>
</v-card>
@@ -47,10 +47,6 @@ export default {
get() { return this.$props.data.override_port ? this.$props.data.override_port : ''; },
set(newValue: any) { this.$props.data.override_port = newValue.length == 0 || newValue == 0 ? undefined : parseInt(newValue); }
},
proxy_protocol: {
get() { return this.$props.data.proxy_protocol ? this.$props.data.proxy_protocol : ''; },
set(newValue: any) { this.$props.data.proxy_protocol = newValue.length == 0 || newValue == 0 ? undefined : parseInt(newValue); }
},
},
components: { Network }
}
+3 -3
View File
@@ -3,21 +3,21 @@
<v-row>
<v-col cols="12" sm="6" md="4">
<v-text-field
label="Username"
:label="$t('types.un')"
hide-details
v-model="username">
</v-text-field>
</v-col>
<v-col cols="12" sm="6" md="4">
<v-text-field
label="Password"
:label="$t('types.pw')"
hide-details
v-model="password">
</v-text-field>
</v-col>
<v-col cols="12" sm="6" md="4">
<v-text-field
label="Path"
:label="$t('transport.path')"
hide-details
v-model="data.path">
</v-text-field>
@@ -3,19 +3,19 @@
<v-row>
<v-col cols="12" sm="6" md="4">
<v-text-field
label="Uplink Limit"
:label="$t('stats.upload')"
hide-details
type="number"
suffix="Mbps"
:suffix="$t('stats.Mbps')"
v-model.number="up_mbps">
</v-text-field>
</v-col>
<v-col cols="12" sm="6" md="4">
<v-text-field
label="Downlink Limit"
:label="$t('stats.download')"
hide-details
type="number"
suffix="Mbps"
:suffix="$t('stats.Mbps')"
min="0"
v-model.number="down_mbps">
</v-text-field>
@@ -24,14 +24,14 @@
<v-row>
<v-col cols="12" sm="6" md="4">
<v-text-field
label="obfs Password"
:label="$t('types.hy.obfs')"
hide-details
v-model="data.obfs">
</v-text-field>
</v-col>
<v-col cols="12" sm="6" md="4" v-if="direction=='out'">
<v-text-field
label="Authentication String"
:label="$t('types.hy.auth')"
hide-details
v-model="data.auth_str">
</v-text-field>
@@ -87,7 +87,7 @@
<v-spacer></v-spacer>
<v-menu v-model="menu" :close-on-content-click="false" location="start">
<template v-slot:activator="{ props }">
<v-btn v-bind="props" hide-details>Hysteria Options</v-btn>
<v-btn v-bind="props" hide-details>{{ $t('types.hy.hyOptions') }}</v-btn>
</template>
<v-card>
<v-list>
@@ -101,7 +101,7 @@
<v-switch v-model="optionRsvClnt" color="primary" label="Recv window client" hide-details></v-switch>
</v-list-item>
<v-list-item v-if="direction=='in'">
<v-switch v-model="optionMaxConn" color="primary" label="Max connection" hide-details></v-switch>
<v-switch v-model="optionMaxConn" color="primary" label="Max conn client" hide-details></v-switch>
</v-list-item>
</v-list>
</v-card>
+10 -10
View File
@@ -3,19 +3,19 @@
<v-row v-if="direction == 'in'">
<v-col cols="12" sm="6" md="4">
<v-text-field
label="Masquerade"
label="HTTP3 server on auth fail"
hide-details
v-model="data.masquerade">
</v-text-field>
</v-col>
<v-col cols="12" sm="6" md="4">
<v-switch v-model="data.ignore_client_bandwidth" color="primary" label="Ignore Client Bandwidth" hide-details></v-switch>
<v-switch v-model="data.ignore_client_bandwidth" color="primary" :label="$t('types.hy.ignoreBw')" hide-details></v-switch>
</v-col>
</v-row>
<v-row v-else>
<v-col cols="12" sm="6" md="4">
<v-text-field
label="Password"
:label="$t('types.pw')"
hide-details
v-model="data.password">
</v-text-field>
@@ -27,20 +27,20 @@
<v-row v-if="!data.ignore_client_bandwidth">
<v-col cols="12" sm="6" md="4">
<v-text-field
label="Uplink Limit"
:label="$t('stats.upload')"
hide-details
type="number"
suffix="Mbps"
:suffix="$t('stats.Mbps')"
min="0"
v-model.number="up_mbps">
</v-text-field>
</v-col>
<v-col cols="12" sm="6" md="4">
<v-text-field
label="Downlink Limit"
:label="$t('stats.download')"
hide-details
type="number"
suffix="Mbps"
:suffix="$t('stats.Mbps')"
min="0"
v-model.number="down_mbps">
</v-text-field>
@@ -49,7 +49,7 @@
<v-row v-if="data.obfs">
<v-col cols="12" sm="6" md="4">
<v-text-field
label="obfs Password"
:label="$t('types.hy.obfs')"
hide-details
v-model="data.obfs.password">
</v-text-field>
@@ -59,12 +59,12 @@
<v-spacer></v-spacer>
<v-menu v-model="menu" :close-on-content-click="false" location="start">
<template v-slot:activator="{ props }">
<v-btn v-bind="props" hide-details>Hysteria2 Options</v-btn>
<v-btn v-bind="props" hide-details>{{ $t('types.hy.hy2Options') }}</v-btn>
</template>
<v-card>
<v-list>
<v-list-item>
<v-switch v-model="optionObfs" color="primary" label="Obfs" hide-details></v-switch>
<v-switch v-model="optionObfs" color="primary" :label="$t('types.hy.obfs')" hide-details></v-switch>
</v-list-item>
</v-list>
</v-card>
@@ -5,13 +5,13 @@
<v-select
hide-details
:items="[1,2,3]"
label="Version"
:label="$t('version')"
v-model="version">
</v-select>
</v-col>
<v-col cols="12" sm="6" md="4" v-if="data.version > 1">
<v-text-field
label="Password"
:label="$t('types.pw')"
hide-details
v-model="data.password">
</v-text-field>
@@ -16,13 +16,13 @@
<v-combobox
v-model="data.default"
:items="data.outbounds"
label="Default"
:label="$t('types.lb.defaultOut')"
clearable
hide-details
></v-combobox>
</v-col>
<v-col cols="12" sm="6">
<v-switch v-model="data.interrupt_exist_connections" color="primary" label="Interrupt exist connections" hide-details></v-switch>
<v-switch v-model="data.interrupt_exist_connections" color="primary" :label="$t('types.lb.interruptConn')" hide-details></v-switch>
</v-col>
</v-row>
</v-card>
@@ -5,13 +5,13 @@
<v-select
hide-details
:items="[1,2,3]"
label="Version"
:label="$t('version')"
v-model="version">
</v-select>
</v-col>
<v-col cols="12" sm="6" md="4" v-if="data.password != undefined">
<v-text-field
label="Password"
:label="$t('types.pw')"
hide-details
v-model="data.password">
</v-text-field>
@@ -20,14 +20,14 @@
<v-row>
<v-col cols="12" sm="6" md="4">
<v-text-field
label="Handshake Server"
:label="$t('types.shdwTls.hs')"
hide-details
v-model="Inbound.handshake.server">
</v-text-field>
</v-col>
<v-col cols="12" sm="6" md="4">
<v-text-field
label="Server Port"
:label="$t('out.port')"
type="number"
min="0"
hide-details
@@ -39,7 +39,7 @@
<v-row v-if="Inbound.handshake_for_server_name != undefined">
<v-col cols="12" sm="6" md="4">
<v-text-field
label="Add Hanshake Server"
:label="$t('types.shdwTls.adHS')"
hide-details
append-icon="mdi-plus"
@click:append="addHandshakeServer()"
@@ -67,14 +67,14 @@
<v-row>
<v-col cols="12" sm="6" md="4">
<v-text-field
label="Handshake Server"
:label="$t('types.shdwTls.hs')"
hide-details
v-model="value.server">
</v-text-field>
</v-col>
<v-col cols="12" sm="6" md="4">
<v-text-field
label="Server Port"
:label="$t('out.port')"
type="number"
min="0"
hide-details
@@ -4,13 +4,13 @@
<v-col cols="12" sm="6" md="4">
<v-select
hide-details
label="Method"
:label="$t('in.ssMethod')"
:items="ssMethods"
v-model="data.method">
</v-select>
</v-col>
<v-col cols="12" sm="6" md="4">
<v-text-field v-model="data.password" label="Password" hide-details></v-text-field>
<v-text-field v-model="data.password" :label="$t('types.pw')" hide-details></v-text-field>
</v-col>
<v-col cols="12" sm="6" md="4">
<Network :data="data" />
+3 -3
View File
@@ -3,14 +3,14 @@
<v-row>
<v-col cols="12" sm="6" md="4">
<v-text-field
label="Username"
:label="$t('types.un')"
hide-details
v-model="username">
</v-text-field>
</v-col>
<v-col cols="12" sm="6" md="4">
<v-text-field
label="Password"
:label="$t('types.pw')"
hide-details
v-model="password">
</v-text-field>
@@ -21,7 +21,7 @@
<v-select
hide-details
:items="['4','4a','5']"
label="Version"
:label="$t('version')"
v-model="data.version">
</v-select>
</v-col>
+10 -10
View File
@@ -39,7 +39,7 @@
<v-row>
<v-col cols="12" sm="6">
<v-text-field
label="Passphrase"
:label="$t('types.ssh.passphrase')"
hide-details
v-model="data.private_key_passphrase">
</v-text-field>
@@ -49,17 +49,17 @@
<template v-else>
<v-row>
<v-col cols="12" sm="6" md="4">
<v-text-field v-model="data.user" label="SSH User" hide-details></v-text-field>
<v-text-field v-model="data.user" :label="$t('types.un')" hide-details></v-text-field>
</v-col>
<v-col cols="12" sm="6" md="4">
<v-text-field v-model="data.password" label="Password" hide-details></v-text-field>
<v-text-field v-model="data.password" :label="$t('types.pw')" hide-details></v-text-field>
</v-col>
</v-row>
</template>
<v-row v-if="optionHostKey">
<v-col cols="12" sm="6">
<v-textarea
label="Host Keys"
:label="$t('types.ssh.hostKey')"
hide-details
v-model="host_key">
</v-textarea>
@@ -67,17 +67,17 @@
</v-row>
<v-row>
<v-col cols="12" sm="6" md="4" v-if="data.host_key_algorithms != undefined">
<v-text-field v-model="algorithms" label="Key Algorithms (comma separated)" hide-details></v-text-field>
<v-text-field v-model="algorithms" :label="$t('types.ssh.algorithm') + ' ' + $t('commaSeparated')" hide-details></v-text-field>
</v-col>
<v-col cols="12" sm="6" md="4" v-if="data.client_version != undefined">
<v-text-field v-model="data.client_version" label="Client Version" hide-details></v-text-field>
<v-text-field v-model="data.client_version" :label="$t('types.ssh.clientVer')" hide-details></v-text-field>
</v-col>
</v-row>
<v-card-actions>
<v-spacer></v-spacer>
<v-menu v-model="menu" :close-on-content-click="false" location="start">
<template v-slot:activator="{ props }">
<v-btn v-bind="props" hide-details>SSH Options</v-btn>
<v-btn v-bind="props" hide-details>{{ $t('types.ssh.options') }}</v-btn>
</template>
<v-card>
<v-list>
@@ -85,13 +85,13 @@
<v-switch v-model="optionKey" color="primary" label="SSH Key" hide-details></v-switch>
</v-list-item>
<v-list-item>
<v-switch v-model="optionHostKey" color="primary" label="Host Key" hide-details></v-switch>
<v-switch v-model="optionHostKey" color="primary" :label="$t('types.ssh.hostKey')" hide-details></v-switch>
</v-list-item>
<v-list-item>
<v-switch v-model="optionAlgorithms" color="primary" label="Key Algorithms" hide-details></v-switch>
<v-switch v-model="optionAlgorithms" color="primary" :label="$t('types.ssh.algorithm')" hide-details></v-switch>
</v-list-item>
<v-list-item>
<v-switch v-model="optionVer" color="primary" label="Client Version" hide-details></v-switch>
<v-switch v-model="optionVer" color="primary" :label="$t('types.ssh.clientVer')" hide-details></v-switch>
</v-list-item>
</v-list>
</v-card>
+3 -3
View File
@@ -2,15 +2,15 @@
<v-card subtitle="Tor">
<v-row>
<v-col cols="12" sm="6" md="4">
<v-text-field v-model="data.executable_path" label="Executable Path" hide-details></v-text-field>
<v-text-field v-model="data.executable_path" :label="$t('types.tor.execPath')" hide-details></v-text-field>
</v-col>
<v-col cols="12" sm="6" md="4">
<v-text-field v-model="data.data_directory" label="Data Directory" hide-details></v-text-field>
<v-text-field v-model="data.data_directory" :label="$t('types.tor.dataDir')" hide-details></v-text-field>
</v-col>
</v-row>
<v-row>
<v-col cols="12" sm="6" md="4">
<v-text-field v-model="extra_args" label="Extra Args (comma separated)" hide-details></v-text-field>
<v-text-field v-model="extra_args" :label="$t('types.tor.extArgs') + ' ' + $t('commaSeparated')" hide-details></v-text-field>
</v-col>
</v-row>
</v-card>
+1 -1
View File
@@ -2,7 +2,7 @@
<v-card subtitle="Trojan">
<v-row>
<v-col cols="12" sm="6" md="4">
<v-text-field v-model="data.password" label="Password" hide-details></v-text-field>
<v-text-field v-model="data.password" :label="$t('types.pw')" hide-details></v-text-field>
</v-col>
<v-col cols="12" sm="6" md="4">
<Network :data="data" />
+6 -6
View File
@@ -5,7 +5,7 @@
<v-text-field v-model="data.uuid" label="UUID" hide-details></v-text-field>
</v-col>
<v-col cols="12" sm="6" md="4">
<v-text-field v-model="data.password" label="Password" hide-details></v-text-field>
<v-text-field v-model="data.password" :label="$t('types.pw')" hide-details></v-text-field>
</v-col>
<v-col cols="12" sm="6" md="4">
<Network :data="data" />
@@ -28,7 +28,7 @@
<v-col cols="12" sm="6" md="4">
<v-select
hide-details
label="Congestion Control"
:label="$t('types.tuic.congControl')"
:items="congestion_controls"
v-model="data.congestion_control">
</v-select>
@@ -40,20 +40,20 @@
<v-row>
<v-col cols="12" sm="6" md="4" v-if="direction == 'in'">
<v-text-field
label="Authentication Timeout"
:label="$t('types.tuic.authTimeout')"
hide-details
type="number"
suffix="s"
:suffix="$t('date.s')"
min="1"
v-model.number="auth_timeout">
</v-text-field>
</v-col>
<v-col cols="12" sm="6" md="4">
<v-text-field
label="Heartbeat"
:label="$t('types.tuic.hb')"
hide-details
type="number"
suffix="s"
:suffix="$t('date.s')"
min="1"
v-model.number="heartbeat">
</v-text-field>
+13 -13
View File
@@ -14,62 +14,62 @@
</v-row>
<v-row>
<v-col cols="12" sm="6" v-if="optionUrl">
<v-select v-model="data.url" label="URL" hide-details></v-select>
<v-text-field v-model="data.url" :label="$t('types.lb.testUrl')" hide-details></v-text-field>
</v-col>
</v-row>
<v-row>
<v-col cols="12" sm="6" md="4" v-if="optionInterval">
<v-text-field
label="Interval"
:label="$t('types.lb.interval')"
hide-details
type="number"
min="3"
suffix="s"
:suffix="$t('date.s')"
v-model.number="interval"></v-text-field>
</v-col>
<v-col cols="12" sm="6" md="4" v-if="optionTolerance">
<v-text-field
label="Tolerance"
:label="$t('types.lb.tolerance')"
hide-details
type="number"
min="0"
suffix="ms"
:suffix="$t('date.ms')"
v-model.number="tolerance"></v-text-field>
</v-col>
<v-col cols="12" sm="6" md="4" v-if="optionIdle">
<v-text-field
label="Idle Timeout"
:label="$t('transport.idleTimeout')"
hide-details
type="number"
min="0"
suffix="m"
:suffix="$t('date.m')"
v-model.number="idle_timeout"></v-text-field>
</v-col>
</v-row>
<v-row>
<v-col cols="12" sm="6">
<v-switch v-model="data.interrupt_exist_connections" color="primary" label="Interrupt exist connections" hide-details></v-switch>
<v-switch v-model="data.interrupt_exist_connections" color="primary" :label="$t('types.lb.interruptConn')" hide-details></v-switch>
</v-col>
</v-row>
<v-card-actions>
<v-spacer></v-spacer>
<v-menu v-model="menu" :close-on-content-click="false" location="start">
<template v-slot:activator="{ props }">
<v-btn v-bind="props" hide-details>SSH Options</v-btn>
<v-btn v-bind="props" hide-details>{{ $t('types.lb.urlTestOptions') }}</v-btn>
</template>
<v-card>
<v-list>
<v-list-item>
<v-switch v-model="optionUrl" color="primary" label="Test URL" hide-details></v-switch>
<v-switch v-model="optionUrl" color="primary" :label="$t('types.lb.testUrl')" hide-details></v-switch>
</v-list-item>
<v-list-item>
<v-switch v-model="optionInterval" color="primary" label="Interval" hide-details></v-switch>
<v-switch v-model="optionInterval" color="primary" :label="$t('types.lb.interval')" hide-details></v-switch>
</v-list-item>
<v-list-item>
<v-switch v-model="optionTolerance" color="primary" label="Tolerance" hide-details></v-switch>
<v-switch v-model="optionTolerance" color="primary" :label="$t('types.lb.tolerance')" hide-details></v-switch>
</v-list-item>
<v-list-item>
<v-switch v-model="optionIdle" color="primary" label="Idle Timeout" hide-details></v-switch>
<v-switch v-model="optionIdle" color="primary" :label="$t('transport.idleTimeout')" hide-details></v-switch>
</v-list-item>
</v-list>
</v-card>
+2 -2
View File
@@ -7,7 +7,7 @@
<v-col cols="12" sm="6" md="4">
<v-select
hide-details
label="Flow"
:label="$t('types.vless.flow')"
:items="['','xtls-rprx-vision']"
v-model="data.flow">
</v-select>
@@ -17,7 +17,7 @@
<v-col cols="12" sm="6" md="4">
<v-select
hide-details
label="UDP Packet Encoding"
:label="$t('types.vless.udpEnc')"
:items="['none','packetaddr','xudp']"
v-model="packet_encoding">
</v-select>
+4 -4
View File
@@ -18,7 +18,7 @@
<v-col cols="12" sm="6" md="4">
<v-select
hide-details
label="Security"
:label="$t('types.vmess.security')"
:items="securities"
v-model="data.security">
</v-select>
@@ -26,7 +26,7 @@
<v-col cols="12" sm="6" md="4">
<v-select
hide-details
label="UDP Packet Encoding"
:label="$t('types.vless.udpEnc')"
:items="['none','packetaddr','xudp']"
v-model="packet_encoding">
</v-select>
@@ -35,10 +35,10 @@
<Network :data="data" />
</v-col>
<v-col cols="12" sm="6" md="4">
<v-switch v-model="data.global_padding" color="primary" label="Global Padding" hide-details></v-switch>
<v-switch v-model="data.global_padding" color="primary" :label="$t('types.vmess.globalPadding')" hide-details></v-switch>
</v-col>
<v-col cols="12" sm="6" md="4">
<v-switch v-model="data.authenticated_length" color="primary" label="Encryptrd Length" hide-details></v-switch>
<v-switch v-model="data.authenticated_length" color="primary" :label="$t('types.vmess.authLen')" hide-details></v-switch>
</v-col>
</v-row>
</v-card>
+24 -24
View File
@@ -2,25 +2,25 @@
<v-card subtitle="Wireguard">
<v-row>
<v-col cols="12" sm="8">
<v-text-field v-model="data.private_key" label="Private Key" hide-details></v-text-field>
<v-text-field v-model="data.private_key" :label="$t('types.wg.privKey')" hide-details></v-text-field>
</v-col>
<v-col cols="12" sm="8">
<v-text-field v-model="data.peer_public_key" label="Peer Public Key" hide-details></v-text-field>
<v-text-field v-model="data.peer_public_key" :label="$t('types.wg.pubKey')" hide-details></v-text-field>
</v-col>
<v-col cols="12" sm="8" v-if="data.pre_shared_key != undefined">
<v-text-field v-model="data.pre_shared_key" label="Pre-Shared Key" hide-details></v-text-field>
<v-text-field v-model="data.pre_shared_key" :label="$t('types.wg.psk')" hide-details></v-text-field>
</v-col>
<v-col cols="12" sm="8">
<v-text-field v-model="local_ips" label="Local IPs (comma separated)" hide-details></v-text-field>
<v-text-field v-model="local_ips" :label="$t('types.wg.localIp') + ' ' + $t('commaSeparated')" hide-details></v-text-field>
</v-col>
</v-row>
<v-row>
<v-col cols="12" sm="6" md="4" v-if="data.reserved != undefined">
<v-text-field v-model="reserved" label="Reserved (comma separated)" hide-details></v-text-field>
<v-text-field v-model="reserved" :label="'Reserved ' + $t('commaSeparated')" hide-details></v-text-field>
</v-col>
<v-col cols="12" sm="6" md="4" v-if="data.workers != undefined">
<v-text-field
label="Workers"
:label="$t('types.wg.worker')"
hide-details
type="number"
min=1
@@ -43,7 +43,7 @@
</v-col>
<v-col cols="12" sm="6" md="4" v-if="data.interface_name != undefined">
<v-text-field
label="Interface Name"
:label="$t('types.wg.ifName')"
hide-details
v-model.number="data.interface_name">
</v-text-field>
@@ -51,55 +51,55 @@
</v-row>
<v-row>
<v-col cols="12" sm="6" md="4">
<v-switch v-model="data.system_interface" color="primary" label="System Interface" hide-details></v-switch>
<v-switch v-model="data.system_interface" color="primary" :label="$t('types.wg.sysIf')" hide-details></v-switch>
</v-col>
<v-col cols="12" sm="6" md="4">
<v-switch v-model="data.gso" color="primary" label="Segmentation Offload" hide-details></v-switch>
<v-switch v-model="data.gso" color="primary" :label="$t('types.wg.gso')" hide-details></v-switch>
</v-col>
</v-row>
<v-card-actions>
<v-spacer></v-spacer>
<v-menu v-model="menu" :close-on-content-click="false" location="start">
<template v-slot:activator="{ props }">
<v-btn v-bind="props" hide-details>Wireguard Options</v-btn>
<v-btn v-bind="props" hide-details>{{ $t('types.wg.options') }}</v-btn>
</template>
<v-card>
<v-list>
<v-list-item>
<v-switch v-model="optionPsk" color="primary" label="Pre-shared Key" hide-details></v-switch>
<v-switch v-model="optionPsk" color="primary" :label="$t('types.wg.psk')" hide-details></v-switch>
</v-list-item>
<v-list-item>
<v-switch v-model="optionRsrv" color="primary" label="Reserved" hide-details></v-switch>
</v-list-item>
<v-list-item>
<v-switch v-model="optionWorker" color="primary" label="Worker" hide-details></v-switch>
<v-switch v-model="optionWorker" color="primary" :label="$t('types.wg.worker')" hide-details></v-switch>
</v-list-item>
<v-list-item>
<v-switch v-model="optionMtu" color="primary" label="MTU" hide-details></v-switch>
</v-list-item>
<v-list-item>
<v-switch v-model="optionInterface" color="primary" label="Interface Name" hide-details></v-switch>
<v-switch v-model="optionInterface" color="primary" :label="$t('types.wg.ifName')" hide-details></v-switch>
</v-list-item>
<v-list-item>
<v-switch v-model="optionPeers" color="primary" label="Multi Peer" hide-details></v-switch>
<v-switch v-model="optionPeers" color="primary" :label="$t('types.wg.multiPeer')" hide-details></v-switch>
</v-list-item>
</v-list>
</v-card>
</v-menu>
</v-card-actions>
</v-card>
<v-card subtitle="Peers" v-if="data.peers != undefined">
<v-card v-if="data.peers != undefined">
<v-card-subtitle>
{{ $t('types.wg.peers') }} <v-icon @click="addPeer" icon="mdi-plus" />
</v-card-subtitle>
<template v-for="(p, index) in data.peers">
Peer {{ index+1 }} <v-icon icon="mdi-delete" @click="data.peers.splice(index,1)" />
<v-divider></v-divider>
<Peer :data="p" />
<v-card style="margin-top: 1rem;">
<v-card-subtitle>
{{ $t('types.wg.peer') + ' ' + (index+1) }} <v-icon icon="mdi-delete" @click="data.peers.splice(index,1)" />
</v-card-subtitle>
<Peer :data="p" />
</v-card>
</template>
<v-card-actions class="pt-0">
<v-spacer></v-spacer>
<v-btn @click="addPeer" rounded>
<v-icon icon="mdi-plus" />Peer
</v-btn>
</v-card-actions>
</v-card>
</template>