{{ aggregateTrafficDisplay }}
{{$t("updateAvailable")}}
{{latestRelease.changelog}}
{{$t("clients")}}
{{client.name}}
$refs['client-' + client.id + '-name'][0].select(), 1);"
class="cursor-pointer opacity-0 group-hover:opacity-100 transition-opacity">
{{client.address}}
$refs['client-' + client.id + '-address'][0].select(), 1);"
class="cursor-pointer opacity-0 group-hover:opacity-100 transition-opacity">
{{ new Date(client.latestHandshakeAt) | timeago }}
{{ client.transferTxCurrent | bytes }}/s
{{ client.transferRxCurrent | bytes }}/s
{{ $t('trafficHistory') }}
{{ $t('trafficPeriod' + period.charAt(0).toUpperCase() + period.slice(1)) }}
{{ formatTrafficShort((clientTrafficHistory[client.id] && clientTrafficHistory[client.id][period]) ? (clientTrafficHistory[client.id][period].rx || 0) + (clientTrafficHistory[client.id][period].tx || 0) : 0) }}
{{$t("noClients")}}
{{ $t('firewallProfilesTitle') }}
{{ profile.name }}
| {{ $t('globalRuleAction') }} | {{ $t('globalRuleDestination') }} | {{ $t('globalRulePort') }} | {{ $t('globalRuleProtocol') }} | |
|---|---|---|---|---|
| {{ r.action }} | {{ r.destination_cidr }} | {{ r.port_range || '—' }} | {{ r.protocol || '—' }} | |
| {{ $t('addNewRule') }} | ||||
| {{ $t('globalRuleAction') }} | {{ $t('globalRuleDestination') }} | {{ $t('globalRulePort') }} | {{ $t('globalRuleProtocol') }} | |
|---|---|---|---|---|
| {{ r.action }} | {{ r.destination_cidr }} | {{ r.port_range || '—' }} | {{ r.protocol || '—' }} | |
| {{ $t('addNewRule') }} | ||||
{{ $t('createNewProfile') }}
{{ $t('editProfile') }}
{{ profileRuleEdit.id ? $t('globalRuleEdit') : $t('globalRuleAdd') }}
{{ globalRuleEdit.id ? $t('globalRuleEdit') : $t('globalRuleAdd') }}
{{ $t('viewConfig') }}
{{ $t('expiryEditTitle') }} — {{ clientExpiryEdit.name }}
{{$t("newClient")}}
{{$t("deleteClient")}}
{{$t("deleteDialog1")}} {{clientDelete.name}}? {{$t("deleteDialog2")}}