android: Use TextInputLayoutHelper in profile editor

This adds floating labels and helper texts to the form fields. It also
changed/added lots of strings in the editor.
This commit is contained in:
Tobias Brunner
2016-05-02 18:39:17 +02:00
parent 79ba4b285f
commit ea15f20a56
7 changed files with 216 additions and 152 deletions
@@ -1,8 +1,8 @@
/*
* Copyright (C) 2012-2014 Tobias Brunner
* Copyright (C) 2012-2016 Tobias Brunner
* Copyright (C) 2012 Giuliano Grassi
* Copyright (C) 2012 Ralf Sager
* Hochschule fuer Technik Rapperswil
* HSR Hochschule fuer Technik Rapperswil
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -57,6 +57,7 @@ import org.strongswan.android.data.VpnType;
import org.strongswan.android.data.VpnType.VpnTypeFeature;
import org.strongswan.android.logic.TrustedCertificateManager;
import org.strongswan.android.security.TrustedCertificateEntry;
import org.strongswan.android.ui.widget.TextInputLayoutHelper;
import java.security.cert.X509Certificate;
@@ -74,10 +75,13 @@ public class VpnProfileDetailActivity extends AppCompatActivity
private VpnType mVpnType = VpnType.IKEV2_EAP;
private VpnProfile mProfile;
private EditText mName;
private TextInputLayoutHelper mNameWrap;
private EditText mGateway;
private TextInputLayoutHelper mGatewayWrap;
private Spinner mSelectVpnType;
private ViewGroup mUsernamePassword;
private EditText mUsername;
private TextInputLayoutHelper mUsernameWrap;
private EditText mPassword;
private ViewGroup mUserCertificate;
private RelativeLayout mSelectUserCert;
@@ -87,7 +91,9 @@ public class VpnProfileDetailActivity extends AppCompatActivity
private CheckBox mShowAdvanced;
private ViewGroup mAdvancedSettings;
private EditText mMTU;
private TextInputLayoutHelper mMTUWrap;
private EditText mPort;
private TextInputLayoutHelper mPortWrap;
private CheckBox mBlockIPv4;
private CheckBox mBlockIPv6;
@@ -105,12 +111,15 @@ public class VpnProfileDetailActivity extends AppCompatActivity
setContentView(R.layout.profile_detail_view);
mName = (EditText)findViewById(R.id.name);
mNameWrap = (TextInputLayoutHelper)findViewById(R.id.name_wrap);
mGateway = (EditText)findViewById(R.id.gateway);
mGatewayWrap = (TextInputLayoutHelper) findViewById(R.id.gateway_wrap);
mSelectVpnType = (Spinner)findViewById(R.id.vpn_type);
mTncNotice = (RelativeLayout)findViewById(R.id.tnc_notice);
mUsernamePassword = (ViewGroup)findViewById(R.id.username_password_group);
mUsername = (EditText)findViewById(R.id.username);
mUsernameWrap = (TextInputLayoutHelper) findViewById(R.id.username_wrap);
mPassword = (EditText)findViewById(R.id.password);
mUserCertificate = (ViewGroup)findViewById(R.id.user_certificate_group);
@@ -123,7 +132,9 @@ public class VpnProfileDetailActivity extends AppCompatActivity
mAdvancedSettings = (ViewGroup)findViewById(R.id.advanced_settings);
mMTU = (EditText)findViewById(R.id.mtu);
mMTUWrap = (TextInputLayoutHelper) findViewById(R.id.mtu_wrap);
mPort = (EditText)findViewById(R.id.port);
mPortWrap = (TextInputLayoutHelper) findViewById(R.id.port_wrap);
mBlockIPv4 = (CheckBox)findViewById(R.id.split_tunneling_v4);
mBlockIPv6 = (CheckBox)findViewById(R.id.split_tunneling_v6);
@@ -135,14 +146,15 @@ public class VpnProfileDetailActivity extends AppCompatActivity
public void onTextChanged(CharSequence s, int start, int before, int count) {}
@Override
public void afterTextChanged(Editable s) {
public void afterTextChanged(Editable s)
{
if (TextUtils.isEmpty(mGateway.getText()))
{
mName.setHint(R.string.profile_name_hint);
mNameWrap.setHelperText(getString(R.string.profile_name_hint));
}
else
{
mName.setHint("(" + mGateway.getText() + ")");
mNameWrap.setHelperText(String.format(getString(R.string.profile_name_hint_gateway), mGateway.getText()));
}
}
});
@@ -411,14 +423,14 @@ public class VpnProfileDetailActivity extends AppCompatActivity
boolean valid = true;
if (mGateway.getText().toString().trim().isEmpty())
{
mGateway.setError(getString(R.string.alert_text_no_input_gateway));
mGatewayWrap.setError(getString(R.string.alert_text_no_input_gateway));
valid = false;
}
if (mVpnType.has(VpnTypeFeature.USER_PASS))
{
if (mUsername.getText().toString().trim().isEmpty())
{
mUsername.setError(getString(R.string.alert_text_no_input_username));
mUsernameWrap.setError(getString(R.string.alert_text_no_input_username));
valid = false;
}
}
@@ -435,13 +447,13 @@ public class VpnProfileDetailActivity extends AppCompatActivity
Integer mtu = getInteger(mMTU);
if (mtu != null && (mtu < MTU_MIN || mtu > MTU_MAX))
{
mMTU.setError(String.format(getString(R.string.alert_text_out_of_range), MTU_MIN, MTU_MAX));
mMTUWrap.setError(String.format(getString(R.string.alert_text_out_of_range), MTU_MIN, MTU_MAX));
valid = false;
}
Integer port = getInteger(mPort);
if (port != null && (port < 1 || port > 65535))
{
mPort.setError(String.format(getString(R.string.alert_text_out_of_range), 1, 65535));
mPortWrap.setError(String.format(getString(R.string.alert_text_out_of_range), 1, 65535));
valid = false;
}
return valid;
@@ -16,32 +16,39 @@
for more details.
-->
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dp" >
android:padding="10dp"
android:animateLayoutChanges="true" >
<org.strongswan.android.ui.widget.TextInputLayoutHelper
android:id="@+id/gateway_wrap"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
app:helper_text="@string/profile_gateway_hint" >
<android.support.design.widget.TextInputEditText
android:id="@+id/gateway"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="textNoSuggestions"
android:hint="@string/profile_gateway_label" />
</org.strongswan.android.ui.widget.TextInputLayoutHelper>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/profile_gateway_label" />
<EditText
android:id="@+id/gateway"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="textNoSuggestions" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginLeft="4dp"
android:textSize="12sp"
android:text="@string/profile_vpn_type_label" />
<Spinner
@@ -62,32 +69,37 @@
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
<org.strongswan.android.ui.widget.TextInputLayoutHelper
android:id="@+id/username_wrap"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/profile_username_label" />
android:layout_height="wrap_content" >
<EditText
android:id="@+id/username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="textNoSuggestions" />
<android.support.design.widget.TextInputEditText
android:id="@+id/username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="textNoSuggestions"
android:hint="@string/profile_username_label" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/profile_password_label" />
</org.strongswan.android.ui.widget.TextInputLayoutHelper>
<EditText
android:id="@+id/password"
<org.strongswan.android.ui.widget.TextInputLayoutHelper
android:id="@+id/password_wrap"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="textPassword|textNoSuggestions"
android:hint="@string/profile_password_hint" />
android:layout_marginTop="4dp"
app:helper_text="@string/profile_password_hint" >
<android.support.design.widget.TextInputEditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="textPassword|textNoSuggestions"
android:hint="@string/profile_password_label" />
</org.strongswan.android.ui.widget.TextInputLayoutHelper>
</LinearLayout>
@@ -95,12 +107,15 @@
android:id="@+id/user_certificate_group"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
android:orientation="vertical" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginTop="4dp"
android:layout_marginLeft="4dp"
android:textSize="12sp"
android:text="@string/profile_user_certificate_label" />
<include
@@ -112,38 +127,42 @@
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginLeft="4dp"
android:textSize="12sp"
android:text="@string/profile_ca_label" />
<CheckBox
android:id="@+id/ca_auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:text="@string/profile_ca_auto_label" />
<include
android:id="@+id/select_certificate"
layout="@layout/two_line_button" />
<TextView
<org.strongswan.android.ui.widget.TextInputLayoutHelper
android:id="@+id/name_wrap"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/profile_name_label" />
android:layout_marginTop="8dp"
app:helper_text="@string/profile_name_hint" >
<EditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="textNoSuggestions"
android:hint="@string/profile_use_server_hint" />
<android.support.design.widget.TextInputEditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="textNoSuggestions"
android:hint="@string/profile_name_label" />
</org.strongswan.android.ui.widget.TextInputLayoutHelper>
<CheckBox
android:id="@+id/show_advanced"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/profile_show_advanced_label" />
<LinearLayout
@@ -156,34 +175,49 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/profile_mtu_label" />
android:layout_marginLeft="4dp"
android:textSize="20sp"
android:text="@string/profile_advanced_label" />
<EditText
android:id="@+id/mtu"
<org.strongswan.android.ui.widget.TextInputLayoutHelper
android:id="@+id/mtu_wrap"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="number|textNoSuggestions"
android:hint="@string/profile_use_default_hint" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/profile_port_label" />
app:helper_text="@string/profile_mtu_hint" >
<android.support.design.widget.TextInputEditText
android:id="@+id/mtu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="number|textNoSuggestions"
android:hint="@string/profile_mtu_label" />
<EditText
android:id="@+id/port"
</org.strongswan.android.ui.widget.TextInputLayoutHelper>
<org.strongswan.android.ui.widget.TextInputLayoutHelper
android:id="@+id/port_wrap"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="number|textNoSuggestions"
android:hint="@string/profile_use_default_hint" />
app:helper_text="@string/profile_port_hint" >
<android.support.design.widget.TextInputEditText
android:id="@+id/port"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:inputType="number|textNoSuggestions"
android:hint="@string/profile_port_label" />
</org.strongswan.android.ui.widget.TextInputLayoutHelper>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginLeft="4dp"
android:textSize="12sp"
android:text="@string/profile_split_tunneling_label" />
<CheckBox
@@ -202,4 +236,4 @@
</LinearLayout>
</ScrollView>
</ScrollView>
@@ -49,30 +49,34 @@
<!-- VPN profile details -->
<string name="profile_edit_save">Speichern</string>
<string name="profile_edit_cancel">Abbrechen</string>
<string name="profile_name_label">Profilname:</string>
<string name="profile_name_hint">(Server-Adresse verwenden)</string>
<string name="profile_gateway_label">Server:</string>
<string name="profile_vpn_type_label">Typ:</string>
<string name="profile_username_label">Benutzername:</string>
<string name="profile_password_label">Passwort:</string>
<string name="profile_password_hint">(anfordern wenn benötigt)</string>
<string name="profile_user_certificate_label">Benutzer-Zertifikat:</string>
<string name="profile_name_label">Profilname (optional)</string>
<string name="profile_name_hint">Standardwert ist der konfigurierte Server</string>
<string name="profile_name_hint_gateway">Standardwert ist \"%1$s\"</string>
<string name="profile_gateway_label">Server</string>
<string name="profile_gateway_hint">IP-Adresse oder Hostname des VPN Servers</string>
<string name="profile_vpn_type_label">VPN-Typ</string>
<string name="profile_username_label">Benutzername</string>
<string name="profile_password_label">Passwort (optional)</string>
<string name="profile_password_hint">Leer lassen, um bei Bedarf danach gefragt zu werden</string>
<string name="profile_user_certificate_label">Benutzer-Zertifikat</string>
<string name="profile_user_select_certificate_label">Benutzer-Zertifikat auswählen</string>
<string name="profile_user_select_certificate">Wählen Sie ein bestimmtes Benutzer-Zertifikat</string>
<string name="profile_ca_label">CA-Zertifikat:</string>
<string name="profile_ca_label">CA-Zertifikat</string>
<string name="profile_ca_auto_label">Automatisch wählen</string>
<string name="profile_ca_select_certificate_label">CA-Zertifikat auswählen</string>
<string name="profile_ca_select_certificate">Wählen Sie ein bestimmtes CA-Zertifikat</string>
<string name="profile_advanced_label">Erweiterte Einstellungen</string>
<string name="profile_show_advanced_label">Erweiterte Einstellungen anzeigen</string>
<string name="profile_mtu_label">MTU:</string>
<string name="profile_port_label">Server Port:</string>
<string name="profile_use_default_hint">(Standardwert verwenden)</string>
<string name="profile_split_tunneling_label">Split-Tunneling:</string>
<string name="profile_mtu_label">MTU des VPN Tunnel-Device</string>
<string name="profile_mtu_hint">Falls der Standardwert in einem bestimmten Netzwerk nicht geeignet ist</string>
<string name="profile_port_label">Server Port</string>
<string name="profile_port_hint">UDP-Port zu dem verbunden wird, falls dieser vom Standard-Port abweicht</string>
<string name="profile_split_tunneling_label">Split-Tunneling</string>
<string name="profile_split_tunnelingv4_title">Blockiere IPv4 Verkehr der nicht für das VPN bestimmt ist</string>
<string name="profile_split_tunnelingv6_title">Blockiere IPv6 Verkehr der nicht für das VPN bestimmt ist</string>
<!-- Warnings/Notifications in the details view -->
<string name="alert_text_no_input_gateway">Bitte geben Sie hier die Server-Adresse ein</string>
<string name="alert_text_no_input_username">Bitte geben Sie hier Ihren Benutzernamen ein</string>
<string name="alert_text_no_input_gateway">Ein Wert wird benötigt, um die Verbindung aufbauen zu können</string>
<string name="alert_text_no_input_username">Bitte geben Sie Ihren Benutzernamen ein</string>
<string name="alert_text_nocertfound_title">Kein CA-Zertifikat ausgewählt</string>
<string name="alert_text_nocertfound">Bitte wählen Sie eines aus oder aktivieren Sie <i>Automatisch wählen</i></string>
<string name="alert_text_out_of_range">Bitte geben Sie eine Nummer von %1$d - %2$d ein</string>
@@ -49,36 +49,40 @@
<!-- VPN profile details -->
<string name="profile_edit_save">Zapisz</string>
<string name="profile_edit_cancel">Anuluj</string>
<string name="profile_name_label">Nazwa profilu:</string>
<string name="profile_name_hint">(użyj adresu serwer)</string>
<string name="profile_gateway_label">Serwer:</string>
<string name="profile_vpn_type_label">Typ:</string>
<string name="profile_username_label">Użytkownik:</string>
<string name="profile_password_label">Hasło:</string>
<string name="profile_password_hint">(w razie potrzeby zapromptuj)</string>
<string name="profile_user_certificate_label">Certyfikat użytkownika:</string>
<string name="profile_name_label">Nazwa profilu (opcjonalny)</string>
<string name="profile_name_hint">Defaults to the configured server</string>
<string name="profile_name_hint_gateway">Defaults to \"%1$s\"</string>
<string name="profile_gateway_label">Serwer</string>
<string name="profile_gateway_hint">IP address or hostname of the VPN server</string>
<string name="profile_vpn_type_label">Typ VPN</string>
<string name="profile_username_label">Użytkownik</string>
<string name="profile_password_label">Hasło (opcjonalny)</string>
<string name="profile_password_hint">Leave blank to get prompted on demand</string>
<string name="profile_user_certificate_label">Certyfikat użytkownika</string>
<string name="profile_user_select_certificate_label">Wybierz certyfikat użytkownika</string>
<string name="profile_user_select_certificate">>Wybierz określony certyfikat użytkownika</string>
<string name="profile_ca_label">Certyfikat CA:</string>
<string name="profile_ca_label">Certyfikat CA</string>
<string name="profile_ca_auto_label">Wybierz automatycznie</string>
<string name="profile_ca_select_certificate_label">Wybierz certyfikat CA</string>
<string name="profile_ca_select_certificate">Wybierz określony certyfikat CA</string>
<string name="profile_advanced_label">Advanced settings</string>
<string name="profile_show_advanced_label">Show advanced settings</string>
<string name="profile_mtu_label">MTU:</string>
<string name="profile_port_label">Server port:</string>
<string name="profile_use_default_hint">(use default)</string>
<string name="profile_split_tunneling_label">Split tunneling:</string>
<string name="profile_mtu_label">MTU of the VPN tunnel device</string>
<string name="profile_mtu_hint">In case the default value is unsuitable for a particular network</string>
<string name="profile_port_label">Server port</string>
<string name="profile_port_hint">UDP port to connect to, if different from the default</string>
<string name="profile_split_tunneling_label">Split tunneling</string>
<string name="profile_split_tunnelingv4_title">Block IPv4 traffic not destined for the VPN</string>
<string name="profile_split_tunnelingv6_title">Block IPv6 traffic not destined for the VPN</string>
<!-- Warnings/Notifications in the details view -->
<string name="alert_text_no_input_gateway">Wprowadź adres serwer</string>
<string name="alert_text_no_input_gateway">A value is required to initiate the connection</string>
<string name="alert_text_no_input_username">Wprowadź swoją nazwę użytkownika</string>
<string name="alert_text_nocertfound_title">Nie wybrano żadnego certyfikatu CA</string>
<string name="alert_text_nocertfound">Wybierz lub uaktywnij jeden <i>Wybierz automatycznie</i></string>
<string name="alert_text_out_of_range">Please enter a number in the range from %1$d - %2$d</string>
<string name="tnc_notice_title">EAP-TNC may affect your privacy</string>
<string name="tnc_notice_subtitle">Device data is sent to the server operator</string>
<string name="tnc_notice_details">&lt;p>Trusted Network Connect (TNC) allows server operators to assess the health of a client device.&lt;/p>&lt;p>For that purpose the server operator may request data such as a unique identifier, a list of installed packages, system settings, or cryptographic checksums of files.&lt;/p>&lt;b>Any data will be sent only after verifying the server\'s identity.&lt;/b></string>
<string name="tnc_notice_details"><![CDATA[<p>Trusted Network Connect (TNC) allows server operators to assess the health of a client device.</p><p>For that purpose the server operator may request data such as a unique identifier, a list of installed packages, system settings, or cryptographic checksums of files.</p><b>Any data will be sent only after verifying the server\'s identity.</b>]]></string>
<!-- Trusted certificate selection -->
<string name="trusted_certs_title">Certyfikaty CA</string>
@@ -46,29 +46,33 @@
<!-- VPN profile details -->
<string name="profile_edit_save">Сохранить</string>
<string name="profile_edit_cancel">Отмена</string>
<string name="profile_name_label">Название профиля:</string>
<string name="profile_name_hint">(адрес cервер)</string>
<string name="profile_gateway_label">Сервер:</string>
<string name="profile_vpn_type_label">Тип:</string>
<string name="profile_username_label">Логин:</string>
<string name="profile_password_label">Пароль:</string>
<string name="profile_password_hint">(спросить если нужно)</string>
<string name="profile_user_certificate_label">Сертификат пользователя:</string>
<string name="profile_name_label">Название профиля (необязательный)</string>
<string name="profile_name_hint">Defaults to the configured server</string>
<string name="profile_name_hint_gateway">Defaults to \"%1$s\"</string>
<string name="profile_gateway_label">Сервер</string>
<string name="profile_gateway_hint">IP address or hostname of the VPN server</string>
<string name="profile_vpn_type_label">VPN Тип</string>
<string name="profile_username_label">Логин</string>
<string name="profile_password_label">Пароль (необязательный)</string>
<string name="profile_password_hint">Leave blank to get prompted on demand</string>
<string name="profile_user_certificate_label">Сертификат пользователя</string>
<string name="profile_user_select_certificate_label">Выбрать сертификат пользователя</string>
<string name="profile_user_select_certificate">Выбрать сертификат пользователя</string>
<string name="profile_ca_label">Сертификат CA:</string>
<string name="profile_ca_label">Сертификат CA</string>
<string name="profile_ca_auto_label">Выбрать автоматически</string>
<string name="profile_ca_select_certificate_label">Выбрать сертификат CA</string>
<string name="profile_ca_select_certificate">Выбрать CA сертификат</string>
<string name="profile_advanced_label">Advanced settings</string>
<string name="profile_show_advanced_label">Show advanced settings</string>
<string name="profile_mtu_label">MTU:</string>
<string name="profile_port_label">Server port:</string>
<string name="profile_use_default_hint">(use default)</string>
<string name="profile_split_tunneling_label">Split tunneling:</string>
<string name="profile_mtu_label">MTU of the VPN tunnel device</string>
<string name="profile_mtu_hint">In case the default value is unsuitable for a particular network</string>
<string name="profile_port_label">Server port</string>
<string name="profile_port_hint">UDP port to connect to, if different from the default</string>
<string name="profile_split_tunneling_label">Split tunneling</string>
<string name="profile_split_tunnelingv4_title">Block IPv4 traffic not destined for the VPN</string>
<string name="profile_split_tunnelingv6_title">Block IPv6 traffic not destined for the VPN</string>
<!-- Warnings/Notifications in the details view -->
<string name="alert_text_no_input_gateway">Пожалуйста введите адрес cервер</string>
<string name="alert_text_no_input_gateway">A value is required to initiate the connection</string>
<string name="alert_text_no_input_username">Пожалуйста введите имя пользователя</string>
<string name="alert_text_nocertfound_title">Не выбран сертификат CA</string>
<string name="alert_text_nocertfound">Пожалуйста выберите один <i>Выбрать автоматически</i></string>
@@ -127,4 +131,3 @@
<string name="connect">Соединить</string>
</resources>
@@ -47,30 +47,34 @@
<!-- VPN profile details -->
<string name="profile_edit_save">Зберегти</string>
<string name="profile_edit_cancel">Відміна</string>
<string name="profile_name_label">Назва профілю:</string>
<string name="profile_name_hint">(використовувати адресу cервер)</string>
<string name="profile_gateway_label">Сервер:</string>
<string name="profile_vpn_type_label">Тип:</string>
<string name="profile_username_label">Логін:</string>
<string name="profile_password_label">Пароль:</string>
<string name="profile_password_hint">(запитати якщо потрібно)</string>
<string name="profile_user_certificate_label">Сертифікат користувача:</string>
<string name="profile_name_label">Назва профілю (необов\'язковий)</string>
<string name="profile_name_hint">Defaults to the configured server</string>
<string name="profile_name_hint_gateway">Defaults to \"%1$s\"</string>
<string name="profile_gateway_label">Сервер</string>
<string name="profile_gateway_hint">IP address or hostname of the VPN server</string>
<string name="profile_vpn_type_label">VPN Тип</string>
<string name="profile_username_label">Логін</string>
<string name="profile_password_label">Пароль (необов\'язковий)</string>
<string name="profile_password_hint">Leave blank to get prompted on demand</string>
<string name="profile_user_certificate_label">Сертифікат користувача</string>
<string name="profile_user_select_certificate_label">Виберіть сертифікат користувача</string>
<string name="profile_user_select_certificate">Вибрати спеціальний сертифікат користувача</string>
<string name="profile_ca_label">Сертифікат CA:</string>
<string name="profile_ca_label">Сертифікат CA</string>
<string name="profile_ca_auto_label">Вибрати автоматично</string>
<string name="profile_ca_select_certificate_label">Вибрати сертифікат CA</string>
<string name="profile_ca_select_certificate">Вибрати спеціальний сертифікат CA</string>
<string name="profile_advanced_label">Advanced settings</string>
<string name="profile_show_advanced_label">Show advanced settings</string>
<string name="profile_mtu_label">MTU:</string>
<string name="profile_port_label">Server port:</string>
<string name="profile_use_default_hint">(use default)</string>
<string name="profile_split_tunneling_label">Split tunneling:</string>
<string name="profile_mtu_label">MTU of the VPN tunnel device</string>
<string name="profile_mtu_hint">In case the default value is unsuitable for a particular network</string>
<string name="profile_port_label">Server port</string>
<string name="profile_port_hint">UDP port to connect to, if different from the default</string>
<string name="profile_split_tunneling_label">Split tunneling</string>
<string name="profile_split_tunnelingv4_title">Block IPv4 traffic not destined for the VPN</string>
<string name="profile_split_tunnelingv6_title">Block IPv6 traffic not destined for the VPN</string>
<!-- Warnings/Notifications in the details view -->
<string name="alert_text_no_input_gateway">Введіть адресу cервер тут</string>
<string name="alert_text_no_input_username">Введіть ім\'я користувача тут</string>
<string name="alert_text_no_input_gateway">A value is required to initiate the connection</string>
<string name="alert_text_no_input_username">Введіть ім\'я користувача </string>
<string name="alert_text_nocertfound_title">Не вибрано сертифікат CA</string>
<string name="alert_text_nocertfound">Будь ласка виберіть один <i>Вибрати автоматично</i></string>
<string name="alert_text_out_of_range">Please enter a number in the range from %1$d - %2$d</string>
@@ -128,4 +132,3 @@
<string name="connect">Підключити</string>
</resources>
@@ -49,30 +49,34 @@
<!-- VPN profile details -->
<string name="profile_edit_save">Save</string>
<string name="profile_edit_cancel">Cancel</string>
<string name="profile_name_label">Profile Name:</string>
<string name="profile_name_hint">(use server address)</string>
<string name="profile_gateway_label">Server:</string>
<string name="profile_vpn_type_label">Type:</string>
<string name="profile_username_label">Username:</string>
<string name="profile_password_label">Password:</string>
<string name="profile_password_hint">(prompt when needed)</string>
<string name="profile_user_certificate_label">User certificate:</string>
<string name="profile_name_label">Profile name (optional)</string>
<string name="profile_name_hint">Defaults to the configured server</string>
<string name="profile_name_hint_gateway">Defaults to \"%1$s\"</string>
<string name="profile_gateway_label">Server</string>
<string name="profile_gateway_hint">IP address or hostname of the VPN server</string>
<string name="profile_vpn_type_label">VPN Type</string>
<string name="profile_username_label">Username</string>
<string name="profile_password_label">Password (optional)</string>
<string name="profile_password_hint">Leave blank to get prompted on demand</string>
<string name="profile_user_certificate_label">User certificate</string>
<string name="profile_user_select_certificate_label">Select user certificate</string>
<string name="profile_user_select_certificate">Select a specific user certificate</string>
<string name="profile_ca_label">CA certificate:</string>
<string name="profile_ca_label">CA certificate</string>
<string name="profile_ca_auto_label">Select automatically</string>
<string name="profile_ca_select_certificate_label">Select CA certificate</string>
<string name="profile_ca_select_certificate">Select a specific CA certificate</string>
<string name="profile_advanced_label">Advanced settings</string>
<string name="profile_show_advanced_label">Show advanced settings</string>
<string name="profile_mtu_label">MTU:</string>
<string name="profile_port_label">Server port:</string>
<string name="profile_use_default_hint">(use default)</string>
<string name="profile_split_tunneling_label">Split tunneling:</string>
<string name="profile_mtu_label">MTU of the VPN tunnel device</string>
<string name="profile_mtu_hint">In case the default value is unsuitable for a particular network</string>
<string name="profile_port_label">Server port</string>
<string name="profile_port_hint">UDP port to connect to, if different from the default</string>
<string name="profile_split_tunneling_label">Split tunneling</string>
<string name="profile_split_tunnelingv4_title">Block IPv4 traffic not destined for the VPN</string>
<string name="profile_split_tunnelingv6_title">Block IPv6 traffic not destined for the VPN</string>
<!-- Warnings/Notifications in the details view -->
<string name="alert_text_no_input_gateway">Please enter the server address here</string>
<string name="alert_text_no_input_username">Please enter your username here</string>
<string name="alert_text_no_input_gateway">A value is required to initiate the connection</string>
<string name="alert_text_no_input_username">Please enter your username </string>
<string name="alert_text_nocertfound_title">No CA certificate selected</string>
<string name="alert_text_nocertfound">Please select one or activate <i>Select automatically</i></string>
<string name="alert_text_out_of_range">Please enter a number in the range from %1$d - %2$d</string>