<?xml version="1.0" encoding="utf-8"?>
<!--
     Copyright (C) 2013-2015 The CyanogenMod Project
     Copyright (C) 2017-2020, 2022 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <string name="app_name">Dewin gosod</string>
    <string name="next">Nesaf</string>
    <string name="skip">Neidio</string>
    <string name="start">Dechrau</string>
    <string name="done">Cwblhau</string>
    <string name="ok">Iawn</string>
    <string name="loading">Un eiliad\u2026</string>
    <string name="setup_complete">Mae\'r gosodiad wedi ei gwblhau.</string>
    <string name="setup_welcome">Croeso</string>
    <string name="setup_welcome_message">Croeso i <xliff:g id="name" example="LeafOS">%1$s</xliff:g></string>
    <string name="setup_locale">Iaith</string>
    <string name="setup_wifi">Dewis Wi-Fi</string>
    <string name="setup_sim_missing">Cerdyn SIM ar goll</string>
    <string name="setup_choose_data_sim">Dewis SIM ar gyfer data</string>
    <string name="setup_location">Gwasanaethau lleoliad</string>
    <string name="setup_other">Gwasanaethau eraill</string>
    <string name="setup_datetime">Dyddiad ac amser</string>
    <string name="setup_current_date">Dyddiad heddiw</string>
    <string name="setup_current_time">Amser nawr</string>
    <string name="sim_missing_summary" product="tablet">Nid yw\'n ymddangos bod cerdyn SIM yn dy lechen. I osod cerdyn SIM, gweler y cyfarwyddiadau a ddaeth gyda dy ddyfais.</string>
    <string name="sim_missing_summary" product="default">Nid yw\'n ymddangos bod cerdyn SIM yn dy ffôn. I osod cerdyn SIM, gweler y cyfarwyddiadau a ddaeth gyda dy ddyfais.</string>
    <string name="choose_data_sim_summary" product="tablet">Pa gerdyn SIM wyt ti am ddefnyddio ar gyfer data? Bydd y SIM hwn yn cael yn ei ddefnyddio wrth sefydlu dy lechen ac mae\'n bosib y bydd costau data, yn dibynnu ar dy gytundeb rhwydwaith symudol.</string>
    <string name="choose_data_sim_summary" product="default">Pa gerdyn SIM wyt ti am ddefnyddio ar gyfer data? Bydd y SIM hwn yn cael yn ei ddefnyddio wrth sefydlu dy ffôn ac mae\'n bosib y bydd costau data, yn dibynnu ar dy gytundeb rhwydwaith symudol.</string>
    <string name="date_time_summary">Gosoda dy gylchfa amser ac addasu’r dyddiad ac amser os oes angen.</string>
    <string name="location_access_summary"><b>Caniatáu i apiau sydd wedi gofyn am dy ganiatâd</b> medru defnyddio gwybodaeth dy leoliad. Gall hyn gynnwys dy leoliad cyfredol a lleoliadau yn y gorffennol.</string>
    <string name="setup_mobile_data">Defnyddio data symudol</string>
    <string name="setup_mobile_data_no_service">Dim gwasanaeth</string>
    <string name="setup_mobile_data_emergency_only">Galwadau brys yn unig</string>
    <string name="enable_mobile_data_summary">Wyt ti am ddefnyddio data symudol yn ystod y gosod? Gall troi data symudol ymlaen arwain at gostau defnydd data.</string>
    <string name="no">Ydw</string>
    <string name="yes">Iawn</string>
    <string name="data_sim_name">SIM <xliff:g id="sub">%1$d</xliff:g> - <xliff:g id="name">%2$s</xliff:g></string>
    <string name="emergency_call">Galwad brys</string>
    <string name="accessibility_settings">Gosodiadau hygyrchedd</string>
    <string name="setup_services">Nodweddion LeafOS</string>
    <string name="services_pp_explanation">Mae\'r gwasanaethau hyn yn gweithio i ti fedru ymestyn gallu dy ddyfais. Caiff data ei ddefnyddio yn ôl polisi preifatrwydd <xliff:g id="name" example="LeafOS">%1$s</xliff:g>.</string>
    <string name="services_find_privacy_policy">Gellir darllen y polisi preifatrwydd ar ddyfais arall wrth ymweld â <xliff:g id="uri" example="https://lineageos.org/legal">%1$s</xliff:g></string>
    <string name="services_help_improve_cm">Helpu i wella <xliff:g id="name" example="CyanogenMod">%s</xliff:g></string>
    <string name="services_metrics_label"><xliff:g id="name" example="Help improve LineageOS">%1$s</xliff:g> wrth anfon gwybodaeth ddiagnostig a defnydd data at <xliff:g id="name" example="LineageOS">%2$s</xliff:g>. Ni fydd yn bosib defnyddio\'r wybodaeth i dy adnabod di ac mi fydd o help mawr i\'r timau sy\'n gweithio ar bethau fel gwella perfformiad apiau a bywyd batri a chreu nodweddion newydd yn <xliff:g id="name" example="LeafOS">%3$s</xliff:g>.</string>
    <string name="services_os_nav_keys_label"><b>Defnyddio bysellau llywio ar y sgrin</b> yn hytrach na botymau\'r ddyfais.</string>
    <string name="services_full_description"><xliff:g id="pp_explanation">%1$s</xliff:g>\n<xliff:g id="pp_find">%2$s</xliff:g></string>
    <string name="settings_biometric_setup_title">Dewis math o glo sgrin wrth gefn</string>
    <string name="settings_biometric_setup_details">Sut hoffet gloi dy sgrin?</string>
    <string name="fingerprint_setup_title">Gosod ôl bys</string>
    <string name="fingerprint_setup_summary">I ddefnyddio\'r synhwyrydd olion bysedd i ddatgloi dy sgrin, mae angen:</string>
    <string name="fingerprint_setup_add_fingerprint">Ychwanegu ôl dy fys</string>
    <string name="face_setup_title">Gosod wyneb</string>
    <string name="face_setup_summary">I ddefnyddio dy wyneb i ddatgloi dy sgrin, bydd angen i ti:</string>
    <string name="face_setup_add_face">Ychwanegu dy wyneb</string>
    <string name="biometric_setup_backup_lock_method">Gosod ail ddull o ddatgloi</string>
    <string name="biometric_setup_screen_lock_setup">Gosod clo\'r sgrin</string>
    <string name="sim_locale_changed">Synhwyrwyd %1$s SIM</string>
    <string name="settings_lockscreen_setup_title">Dewis math o sgrin cloi</string>
    <string name="settings_lockscreen_setup_details">Sut hoffet gloi dy sgrin?</string>
    <string name="lockscreen_setup_title" product="default">Diogelu dy ffôn</string>
    <string name="lockscreen_setup_title" product="tablet">Diogelu dy lechen</string>
    <string name="lockscreen_setup_summary"><b>Diogela\'r ddyfais hon</b> gan osod PIN, patrwm, neu gyfrinair er mwyn datgloi\'r sgrin.</string>
    <string name="lockscreen_setup_screen_lock_setup">Gosod</string>
    <string name="intro_restore_title">Adfer apiau a data</string>
    <string name="intro_restore_button">Adfer o gopi wrth gefn</string>
    <string name="update_recovery_title">Diweddaru Modd Adfer Lineage </string>
    <string name="update_recovery_description">Mae\'n diweddaru Lineage Recovery wrth y cychwyn cyntaf wedi pob diweddariad.</string>
    <string name="update_recovery_warning">Caiff Recovery ei ddiweddaru yn syth ar ôl cwblhau\'r gosod. Os hoffet ti ei gadw\'n gyfan, analluoga\'r nodwedd hon.</string>
    <string name="update_recovery_setting">Diweddaru Lineage Recovery ochr yn ochr â\'r OS</string>
    <string name="update_recovery_full_description"><xliff:g id="recovery_update_description">%1$s</xliff:g>\n<xliff:g id="recovery_update_warning">%2$s</xliff:g></string>
    <string name="setup_navigation">Llywio</string>
    <string name="navigation_summary">Dewisa pa ddull llywio sydd well gennyt</string>
    <string name="gesture_navigation">Llywio ag ystumiau</string>
    <string name="two_button_navigation">Llywio 2-fotwm</string>
    <string name="navbar_navigation">Llywio 3-botwm</string>
    <string name="hide_gesture_hint">Cuddio hintiau llywio ag ystumiau</string>
</resources>
