<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2011 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
 -->

<resources xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <string name="prompt" msgid="3183836924226407828">"კავშირის მოთხოვნა"</string>
    <string name="warning" msgid="809658604548412033">"<xliff:g id="APP">%s</xliff:g> სურს დააყენოს VPN კავშირი, რაც ქსელის ტრაფიკის მონიტორინგის საშუალებას იძლევა. მიიღოთ მხოლოდ ისეთ შემთხვევაში, თუ წყაროს ენდობით. &lt;br /&gt; &lt;br /&gt; &lt;img src=vpn_icon /&gt; თქვენი ეკრანის სიის თავში გამოჩნდება, როდესაც VPN აქტიურია."</string>
    <string name="legacy_title" msgid="192936250066580964">"VPN დაკავშირებულია"</string>
    <string name="session" msgid="6470628549473641030">"სესია:"</string>
    <string name="duration" msgid="3584782459928719435">"ხანგრძლივობა:"</string>
    <string name="data_transmitted" msgid="7988167672982199061">"გაგზავნილი:"</string>
    <string name="data_received" msgid="4062776929376067820">"მიღებული:"</string>
    <string name="data_value_format" msgid="2192466557826897580">"<xliff:g id="NUMBER_0">%1$s</xliff:g> ბაიტი / <xliff:g id="NUMBER_1">%2$s</xliff:g> პაკეტი"</string>
    <!-- no translation found for always_on_disconnected_title (1906740176262776166) -->
    <skip />
    <!-- no translation found for always_on_disconnected_message (555634519845992917) -->
    <skip />
    <!-- no translation found for always_on_disconnected_message_lockdown (4232225539869452120) -->
    <skip />
    <!-- no translation found for always_on_disconnected_message_separator (3310614409322581371) -->
    <skip />
    <!-- no translation found for always_on_disconnected_message_settings_link (6172280302829992412) -->
    <skip />
    <string name="configure" msgid="4905518375574791375">"კონფიგურაცია"</string>
    <string name="disconnect" msgid="971412338304200056">"კავშირის გაწყვეტა"</string>
    <!-- no translation found for open_app (3717639178595958667) -->
    <skip />
    <!-- no translation found for dismiss (6192859333764711227) -->
    <skip />
</resources>
