<?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">"SIP-instelllingen"</string>
    <string name="sip_accounts" msgid="85559497282185405">"SIP-accounts"</string>
    <string name="sip_accounts_title" msgid="2082527045326874519">"Accounts"</string>
    <string name="sip_receive_calls" msgid="426678617137462173">"Binnenkomende oproepen ontvangen"</string>
    <string name="sip_receive_calls_summary" msgid="946161517528227523">"Gebruikt meer batterijlading"</string>
    <string name="sip_call_options_title" msgid="8421210494703869806">"SIP-oproepen gebruiken"</string>
    <string name="sip_call_options_wifi_only_title" msgid="5112579243580893890">"SIP-oproepen gebruiken (alleen wifi)"</string>
    <string name="sip_call_options_entry_1" msgid="7217659161237099900">"Voor alle oproepen indien gegevensnetwerk beschikbaar is"</string>
    <string name="sip_call_options_entry_2" msgid="1815335903940609729">"Alleen voor SIP-oproepen"</string>
    <string name="sip_call_options_wifi_only_entry_1" msgid="1358513095551847314">"Voor alle oproepen"</string>
    <string name="add_sip_account" msgid="800843669753980091">"Account toevoegen"</string>
    <string name="remove_sip_account" msgid="1367664438506503690">"Account verwijderen"</string>
    <string name="sip_account_list" msgid="5610858485304821480">"SIP-accounts"</string>
    <string name="saving_account" msgid="5336529880235177448">"Het account opslaan…"</string>
    <string name="removing_account" msgid="5537351356808985756">"Het account verwijderen…"</string>
    <string name="sip_menu_save" msgid="7882219814563869225">"Opslaan"</string>
    <string name="sip_menu_discard" msgid="2350421645423888438">"Verwijderen"</string>
    <string name="alert_dialog_close" msgid="1326011828713435134">"Het profiel sluiten"</string>
    <string name="alert_dialog_ok" msgid="4752048404605388940">"OK"</string>
    <string name="close_profile" msgid="3122414058856309881">"Sluiten"</string>
    <string name="registration_status_checking_status" msgid="6136793741862200337">"Status controleren..."</string>
    <string name="registration_status_registering" msgid="2677183977796278749">"Registreren…"</string>
    <string name="registration_status_still_trying" msgid="7648151061205513458">"Nog steeds bezig…"</string>
    <string name="registration_status_not_receiving" msgid="7620333886153361090">"Oproepen worden niet ontvangen."</string>
    <string name="registration_status_no_data" msgid="2541999976218192413">"Accountregistratie gestopt omdat er geen internetverbinding is."</string>
    <string name="registration_status_no_wifi_data" msgid="9154717387473039546">"Accountregistratie gestopt omdat er geen wifi-verbinding is."</string>
    <string name="registration_status_not_running" msgid="514205414303796800">"Accountregistratie mislukt."</string>
    <string name="registration_status_done" msgid="3264961069247314253">"Oproepen worden ontvangen."</string>
    <string name="registration_status_failed_try_later" msgid="2199970021756384317">"Accountregistratie mislukt: (<xliff:g id="REGISTRATION_ERROR_MESSAGE">%s</xliff:g>). We proberen het later opnieuw."</string>
    <string name="registration_status_invalid_credentials" msgid="8406872554323334182">"Accountregistratie mislukt: gebruikersnaam of wachtwoord onjuist."</string>
    <string name="registration_status_server_unreachable" msgid="7710275557045148634">"Accountregistratie mislukt: controleer de servernaam."</string>
    <string name="third_party_account_summary" msgid="9041060473615403041">"Dit account wordt momenteel gebruikt door de app <xliff:g id="ACCOUNT_OWNER">%s</xliff:g>."</string>
    <string name="sip_edit_title" msgid="1967247832635750410">"SIP-gegevens"</string>
    <string name="sip_edit_new_title" msgid="266414118302574305">"SIP-gegevens"</string>
    <string name="domain_address_title" msgid="1968479941328225423">"Server"</string>
    <string name="username_title" msgid="6770064611005663470">"Gebruikersnaam"</string>
    <string name="password_title" msgid="5289013731515564295">"Wachtwoord"</string>
    <string name="display_name_title" msgid="579241787583079773">"Weergavenaam"</string>
    <string name="proxy_address_title" msgid="6890163365640631841">"Adres voor uitgaande proxy"</string>
    <string name="port_title" msgid="6693965912656593862">"Poortnummer"</string>
    <string name="transport_title" msgid="889155457465372527">"Transporttype"</string>
    <string name="send_keepalive_title" msgid="599627072150501159">"Keepalive verzenden"</string>
    <string name="advanced_settings" msgid="6622996380747040711">"Optionele instellingen"</string>
    <string name="auth_username_title" msgid="8262491689004708265">"Gebruikersnaam voor verificatie"</string>
    <string name="auth_username_summary" msgid="941160241371436473">"Gebruikersnaam die voor de verificatie wordt gebruikt"</string>
    <string name="default_preference_summary_username" msgid="8404717434312826082">"&lt;Niet ingesteld&gt;"</string>
    <string name="default_preference_summary_password" msgid="4464464672997027904">"&lt;Niet ingesteld&gt;"</string>
    <string name="default_preference_summary_domain_address" msgid="4871971710197441673">"&lt;Niet ingesteld&gt;"</string>
    <string name="display_name_summary" msgid="7155076491675565407">"&lt;Gelijk aan gebruikersnaam&gt;"</string>
    <string name="optional_summary" msgid="2363105560396317624">"&lt;Optioneel&gt;"</string>
    <string name="advanced_settings_show" msgid="7838761602853998622">"▷ Tikken om alles weer te geven"</string>
    <string name="advanced_settings_hide" msgid="3480554978705290228">"▽ Tikken om alles te verbergen"</string>
    <string name="all_empty_alert" msgid="4087734950375192387">"Geef details op voor nieuw SIP-account."</string>
    <string name="empty_alert" msgid="6659484914371384024">"<xliff:g id="INPUT_FIELD_NAME">%s</xliff:g> is verplicht en mag niet leeg worden gelaten."</string>
    <string name="not_a_valid_port" msgid="7931422555587011830">"Het poortnummer moet tussen 1000 en 65534 liggen."</string>
    <string name="no_internet_available" msgid="5523747991760017298">"Als je een SIP-oproep wilt plaatsen, controleer je eerst je internetverbinding."</string>
    <string name="no_wifi_available" msgid="1955023904229673488">"Je moet verbinding hebben met een wifi-netwerk voor SIP-oproepen (gebruik de instellingen bij \'Draadloos en netwerken\')."</string>
    <string name="no_voip" msgid="3038021971231952704">"SIP-oproepen worden niet ondersteund"</string>
    <string name="sip_system_decide" msgid="5577696249416700671">"Automatisch"</string>
    <string name="sip_always_send_keepalive" msgid="4773022409239823318">"Altijd verzenden"</string>
    <string name="sip_connection_service_label" msgid="6935325004265884453">"Ingebouwde SIP-oproepen"</string>
</resources>
