<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<!--
  Copyright (C) 2015 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>
    <string name="app_name">Cyfrifiannell</string>
    <string name="dec_point">.</string>
    <string name="mode_deg">deg</string>
    <string name="mode_rad">rad</string>
    <string name="clr">clr</string>
    <string name="cleared">cliriwyd</string>
    <string name="del">del</string>
    <string name="desc_const_e">Rhif Euler</string>
    <string name="desc_const_pi">pi</string>
    <string name="desc_dec_point">pwynt</string>
    <string name="desc_lparen">cromfach chwith</string>
    <string name="desc_rparen">cromfach dde</string>
    <string name="desc_fun_cos">cosine</string>
    <string name="desc_fun_ln">logarithm naturiol</string>
    <string name="desc_fun_log">logarithm</string>
    <string name="desc_fun_sin">sine</string>
    <string name="desc_fun_tan">tangiad</string>
    <string name="desc_fun_arccos">cosine gwrthdro</string>
    <string name="desc_fun_arcsin">sine gwrthdro</string>
    <string name="desc_fun_arctan">tangent gwrthdro</string>
    <string name="desc_fun_10pow">deg i\'r pŵer o</string>
    <string name="desc_fun_exp">ffwythiant esbonyddol</string>
    <string name="desc_op_sqr">wedi\'i sgwario</string>
    <string name="desc_op_add">plws</string>
    <string name="desc_op_div">rhannu</string>
    <string name="desc_op_fact">ffactorol</string>
    <string name="desc_op_mul">lluosi</string>
    <string name="desc_op_pct">y cant</string>
    <string name="desc_op_pow">pŵer</string>
    <string name="desc_op_sqrt">ail isradd</string>
    <string name="desc_op_sub">minws</string>
    <string name="desc_mode_deg">modd graddau</string>
    <string name="desc_mode_rad">modd radianau</string>
    <string name="desc_switch_deg">newid i graddau</string>
    <string name="desc_switch_rad">newid i radianau</string>
    <string name="desc_eq">yn hafal i</string>
    <string name="desc_clr">clirio</string>
    <string name="desc_del">dileu</string>
    <string name="desc_inv_off">dangos ffwythiannau gwrthdro</string>
    <string name="desc_inv_on">cuddio ffwythiannau gwrthdro</string>
    <string name="desc_formula">Dim fformiwla</string>
    <string name="desc_result">Dim canlyniad</string>
    <string name="desc_num_pad">Rhifau a gweithrediadau sylfaenol</string>
    <string name="desc_adv_pad">Gweithrediadau uwch</string>
    <string name="error_nan">Dim yn rhif</string>
    <string name="error_syntax">Mynegiad gwael</string>
    <string name="error_aborted">Ataliwyd</string>
    <string name="error_overflow">Diderfyn?</string>
    <string name="error_zero_divide">Meth ei rannu â 0</string>
    <string name="text_copied_toast">Testun wedi\'i gopïo</string>
    <string name="cancelled">Diddymwyd y cyfrifiannu</string>
    <string name="timeout">Gall fod y gwerth yn ddiddiwedd neu heb ei ddiffinio.</string>
    <string name="ok_remove_timeout">Caniatáu amser hirach</string>
    <string name="dismiss">Diystyru</string>
    <string name="exact">(union)</string>
    <string name="approximate">(±1 yn digid olaf)</string>
    <string name="menu_leading">Ateb gyda digidau arweiniol</string>
    <string name="menu_fraction">Ateb fel ffracsiwn</string>
    <string name="menu_licenses">Trwyddedau cod agored</string>
    <string name="menu_history">Hanes</string>
    <string name="menu_clear_history">Clirio</string>
    <string name="title_history">Hanes</string>
    <string name="desc_navigate_up">Llywio i fyny</string>
    <string name="dialog_timeout">Terfyn amser</string>
    <string name="dialog_clear">Clirio\'r hanes a\'r cof?</string>
    <string name="title_current_expression">Mynediad cyfredol</string>
    <string name="no_history">Dim hanes</string>
</resources>
