<!--
Copyright (C) 2004-2014 Savoir-Faire Linux Inc.

Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>

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 Free Software Foundation; either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

Additional permission under GNU GPL version 3 section 7:

If you modify this program, or any covered work, by linking or
combining it with the OpenSSL project's OpenSSL library (or a
modified version of that library), containing parts covered by the
terms of the OpenSSL or SSLeay licenses, Savoir-Faire Linux Inc.
grants you additional permission to convey the resulting work.
Corresponding Source for a non-source form of such a combination
shall include the source code for the parts of OpenSSL used as well
as that of the covered work.
-->

<resources>

    <!-- Strings related to login -->
    <string name="prompt_alias">Alias</string>
    <string name="prompt_hostname">Hostname</string>
    <string name="prompt_username">Username</string>
    <string name="prompt_password">Password</string>
    <string name="action_create"><b>Register Account</b></string>
    <string name="action_create_short">Register</string>
    <string name="error_field_required">This field is required</string>

    <!-- AccountManagementFragment -->
    <string name="preference_section1">Accounts</string>
    <string name="empty_account_list">No account registered</string>
    <string name="normal_accounts_titles">Accounts</string>
    <string name="ip2ip_account">IP2IP Account</string>
    <string name="ip2ip_state">READY</string>

    <!-- Basic Details -->
    <string name="account_preferences_basic_tab">General</string>
    <string name="account_basic_category">Basic Settings</string>
    <string name="account_alias_label">Alias</string>
    <string name="account_hostname_label">Hostname</string>
    <string name="account_username_label">Username</string>
    <string name="account_password_label">Password</string>
    <string name="account_optionnal_category">Optionnal Settings</string>
    <string name="account_useragent_label">User Agent</string>
    <string name="account_autoanswer_label">Auto Answer</string>
    <string name="account_proxy_field">Proxy</string>
    <string name="show_password">Show password</string>

    <!-- Audio Details -->
    <string name="account_preferences_audio_tab">Audio</string>
    <string name="account_dtmf_label">DTMF</string>
    <string name="account_ringtone_label">Ringtones</string>
    <string name="account_ringtone_enabled_label">Activate ringtones</string>
    <string name="account_ringtone_path_label">Ringtone path</string>

    <!-- Advanced Details -->
    <string name="account_preferences_advanced_tab">Advanced</string>
    <string name="account_registration_exp_label">Registration Expire</string>
    <string name="account_credential_count_label">Credential Count</string>
    <string name="account_local_interface_label">Local Interface</string>
    <string name="account_local_port_label">Local Port</string>
    <string name="account_stun_enable_label">Stun Enabled</string>
    <string name="account_stun_server_label">Stun Server</string>
    <string name="account_published_same_as_local_label">Published same as local</string>
    <string name="account_published_port_label">Published Port</string>
    <string name="account_published_address_label">Published Address</string>


    <!-- Security Details -->
    <string name="account_credentials_label">Credentials</string>

    <!-- SRTP Details -->
    <string name="account_preferences_security_tab">Security</string>
    <string name="account_srtp_enabled_label">SRTP Enabled</string>
    <string name="account_srtp_deactivated">Deactivated</string>
    <string name="account_srtp_preferences_label">SRTP Preferences</string>
    <string name="account_srtp_exchange_label">SRTP Key Exchange</string>
    <string name="account_encryption_algo_label">Encryption Algo</string>
    <string name="account_srtp_fallback_label">SRTP Fallback</string>
    <string name="account_hello_hash_enable_label">Send Hello Hash in SDP</string>
    <string name="account_display_sas_label">Display SAS</string>
    <string name="account_not_supported_warning_label">Not Supported Warning</string>
    <string name="account_display_sas_once_label">Display SAS Once</string>


    <!-- TLS Details -->
    <string name="account_tls_general_label">TLS</string>
    <string name="account_tls_transport_switch_label">Use TLS Transport</string>
    <string name="account_tls_enabled_label">TLS enabled</string>
    <string name="account_tls_disabled_label">TLS disabled</string>
    <string name="account_tls_port_label">TLS Listener Port</string>
    <string name="account_tls_certificate_list_label">Certification Authorities</string>
    <string name="account_tls_certificate_file_label">Certificate File</string>
    <string name="account_tls_private_key_file_label">Private Key File</string>
    <string name="account_tls_password_label">Private Key Password</string>
    <string name="account_tls_method_label">TLS Method</string>
    <string name="account_tls_method_default">Default</string>
    <string name="account_tls_ciphers_label">TLS Ciphers</string>
    <string name="account_tls_server_name_label">Server Name</string>
    <string name="account_tls_verify_server_label">Verify Server</string>
    <string name="account_tls_verify_client_label">Verify Client</string>
    <string name="account_tls_require_client_certificat_label">Require Client Certificate</string>
    <string name="account_tls_negotiation_timeout_sec">Negotiation Timeout (sec)</string>

</resources>