<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2014 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="sip_settings" msgid="3768482698061677257">"Configuración de SIP"</string>
    <string name="sip_accounts" msgid="85559497282185405">"Cuentas SIP"</string>
    <string name="sip_accounts_title" msgid="2082527045326874519">"Cuentas"</string>
    <string name="sip_receive_calls" msgid="426678617137462173">"Recibir llamadas entrantes"</string>
    <string name="sip_receive_calls_summary" msgid="946161517528227523">"Utiliza más batería"</string>
    <string name="sip_call_options_title" msgid="8421210494703869806">"Utilizar llamadas SIP"</string>
    <string name="sip_call_options_wifi_only_title" msgid="5112579243580893890">"Utilizar llamadas SIP (solo Wi-Fi)"</string>
    <string name="sip_call_options_entry_1" msgid="7217659161237099900">"Para todas las llamadas cuando la red de datos esté disponible"</string>
    <string name="sip_call_options_entry_2" msgid="1815335903940609729">"Solo para llamadas SIP"</string>
    <string name="sip_call_options_wifi_only_entry_1" msgid="1358513095551847314">"Para todas las llamadas"</string>
    <string name="add_sip_account" msgid="800843669753980091">"Agregar cuenta"</string>
    <string name="remove_sip_account" msgid="1367664438506503690">"Eliminar cuenta"</string>
    <string name="sip_account_list" msgid="5610858485304821480">"Cuentas SIP"</string>
    <string name="saving_account" msgid="5336529880235177448">"Guardando la cuenta…"</string>
    <string name="removing_account" msgid="5537351356808985756">"Eliminando la cuenta…"</string>
    <string name="sip_menu_save" msgid="7882219814563869225">"Guardar"</string>
    <string name="sip_menu_discard" msgid="2350421645423888438">"Descartar"</string>
    <string name="alert_dialog_close" msgid="1326011828713435134">"Cerrar el perfil"</string>
    <string name="alert_dialog_ok" msgid="4752048404605388940">"Aceptar"</string>
    <string name="close_profile" msgid="3122414058856309881">"Cerrar"</string>
    <string name="registration_status_checking_status" msgid="6136793741862200337">"Comprobando el estado…"</string>
    <string name="registration_status_registering" msgid="2677183977796278749">"Registrando…"</string>
    <string name="registration_status_still_trying" msgid="7648151061205513458">"Intento en curso…"</string>
    <string name="registration_status_not_receiving" msgid="7620333886153361090">"Sin recepción de llamadas"</string>
    <string name="registration_status_no_data" msgid="2541999976218192413">"Se detuvo el registro de cuenta porque no hay conexión a Internet."</string>
    <string name="registration_status_no_wifi_data" msgid="9154717387473039546">"Se detuvo el registro de la cuenta porque no existe una conexión Wi-Fi."</string>
    <string name="registration_status_not_running" msgid="514205414303796800">"La cuenta no se registró correctamente."</string>
    <string name="registration_status_done" msgid="3264961069247314253">"Recibiendo llamadas"</string>
    <string name="registration_status_failed_try_later" msgid="2199970021756384317">"La cuenta no se registró correctamente: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>); se volverá a intentar más tarde."</string>
    <string name="registration_status_invalid_credentials" msgid="8406872554323334182">"La cuenta no se registró correctamente: contraseña o nombre de usuario incorrectos."</string>
    <string name="registration_status_server_unreachable" msgid="7710275557045148634">"La cuenta no se registró correctamente: verifica el nombre del servidor."</string>
    <string name="third_party_account_summary" msgid="9041060473615403041">"La aplicación <xliff:g id="ACCOUNT_OWNER">%s</xliff:g> está usando la cuenta en este momento."</string>
    <string name="sip_edit_title" msgid="1967247832635750410">"Detalles de la cuenta SIP"</string>
    <string name="sip_edit_new_title" msgid="266414118302574305">"Detalles de la cuenta SIP"</string>
    <string name="domain_address_title" msgid="1968479941328225423">"Servidor"</string>
    <string name="username_title" msgid="6770064611005663470">"Nombre de usuario"</string>
    <string name="password_title" msgid="5289013731515564295">"Contraseña"</string>
    <string name="display_name_title" msgid="579241787583079773">"Nombre de visualización"</string>
    <string name="proxy_address_title" msgid="6890163365640631841">"Dirección de proxy saliente"</string>
    <string name="port_title" msgid="6693965912656593862">"Número de puerto"</string>
    <string name="transport_title" msgid="889155457465372527">"Tipo de transporte"</string>
    <string name="send_keepalive_title" msgid="599627072150501159">"Enviar mantenimiento de conexión"</string>
    <string name="advanced_settings" msgid="6622996380747040711">"Configuración opcional"</string>
    <string name="auth_username_title" msgid="8262491689004708265">"Nombre de usuario de autenticación"</string>
    <string name="auth_username_summary" msgid="941160241371436473">"Nombre de usuario utilizado para autenticación"</string>
    <string name="default_preference_summary" msgid="1979249643719483249">"&lt;Sin configurar&gt;"</string>
    <string name="display_name_summary" msgid="7155076491675565407">"&lt;Igual que el nombre de usuario&gt;"</string>
    <string name="optional_summary" msgid="2363105560396317624">"&lt;Opcional&gt;"</string>
    <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Tocar para mostrar todo"</string>
    <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Tocar para ocultar todo"</string>
    <string name="empty_alert" msgid="6659484914371384024">"El campo <xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> es obligatorio y no puede quedar en blanco."</string>
    <string name="not_a_valid_port" msgid="7931422555587011830">"El número de puerto debe estar dentro de 1000 y 65534."</string>
    <string name="no_internet_available" msgid="5523747991760017298">"Para realizar una llamada SIP, primero comprueba que tienes conexión a Internet."</string>
    <string name="no_wifi_available" msgid="1955023904229673488">"Tienes que estar conectado a una red Wi-Fi para las llamadas SIP (utilizar la configuración de redes inalámbricas)."</string>
    <string name="no_voip" msgid="3038021971231952704">"Llamada SIP no compatible"</string>
    <string name="sip_system_decide" msgid="5577696249416700671">"Automático"</string>
    <string name="sip_always_send_keepalive" msgid="4773022409239823318">"Enviar siempre"</string>
    <string name="sip_connection_service_label" msgid="6935325004265884453">"Llamadas SIP integradas"</string>
</resources>
