<!--
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>

    <!-- Advanced Details -->
    <string name="account_preferences_advanced_tab">Advanced</string>
    <string name="account_registration_exp_label">Registration Expire</string>
    <string name="account_registration_status_label">Registration Status</string>
    <string name="account_registration_code_label">Registration Code</string>
    <string name="account_registration_state_label">Registration State</string>
    <string name="account_credential_count_label">Credential Count</string>
    <string name="account_config_dtmf_type_label">overrtp</string>
    <string name="account_ringtone_path_label">Ringtone</string>
    <string name="account_ringtone_enabled_label">Ringtone Enabled</string>
    <string name="account_keep_alive_label">Keep Alive</string>
    <string name="account_local_interface_label">Local Interface</string>
    <string name="account_published_same_as_local_label">Published Port Same As Local</string>
    <string name="account_local_port_label">Local Port</string>
    <string name="account_published_port_label">Published Port</string>
    <string name="account_published_address_label">Published Address</string>
    <string name="account_displayname_label">Displayname Label</string>
    <string name="account_stun_server_label">Stun Server</string>
    <string name="account_stun_enable_label">Stun Enabled</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_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_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>