<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2007 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="app_name" msgid="8095131950334945205">"Калькулятор"</string>
    <string name="error" msgid="9197457880925804499">"Ошибка"</string>
    <string name="digit0" msgid="8069590963464434135">"0"</string>
    <string name="digit1" msgid="8535041374797804029">"1"</string>
    <string name="digit2" msgid="8977354203154316247">"2"</string>
    <string name="digit3" msgid="148544090755132760">"3"</string>
    <string name="digit4" msgid="2199490603838247678">"4"</string>
    <string name="digit5" msgid="7568514524384173087">"5"</string>
    <string name="digit6" msgid="6705952561049362551">"6"</string>
    <string name="digit7" msgid="658125644218958447">"7"</string>
    <string name="digit8" msgid="3134686906411558886">"8"</string>
    <string name="digit9" msgid="765379157698748031">"9"</string>
    <string name="del" msgid="6248896117422989693">"Удалить"</string>
    <string name="clear" msgid="8103610981407459768">"CLR"</string>
    <string name="sin" msgid="6793866152659175277">"sin"</string>
    <string name="cos" msgid="6901841853098114414">"cos"</string>
    <string name="tan" msgid="7957459816738554960">"tan"</string>
    <string name="e" msgid="1377847800971731483">"e"</string>
    <string name="ln" msgid="6888500680285403344">"ln"</string>
    <string name="lg" msgid="873623857385418182">"log"</string>
    <string name="leftParen" msgid="4850643713953092099">"("</string>
    <string name="rightParen" msgid="3177971166159324016">")"</string>
    <string name="basic" msgid="7691469861698059753">"Основная панель"</string>
    <string name="advanced" msgid="7122495413742976492">"Дополнительная панель"</string>
    <string name="clear_history" msgid="8458043980601165012">"Очистить историю"</string>
    <string name="text_copied_toast" msgid="5801480710472541833">"Текст скопирован."</string>
    <string name="leftParenDesc" msgid="8446428211982811379">"открывающая скобка"</string>
    <string name="rightParenDesc" msgid="9133691645148976523">"закрывающая скобка"</string>
    <string name="factorialDesc" msgid="9217024218012761574">"факториал числа"</string>
    <string name="lnDesc" msgid="1052579286300842270">"натуральный логарифм числа"</string>
    <string name="lgDesc" msgid="6490920451513731160">"логарифм числа"</string>
    <string name="sqrtDesc" msgid="2247252128762219267">"квадратный корень из числа"</string>
    <string name="divDesc" msgid="7442623079124315427">"деление"</string>
    <string name="mulDesc" msgid="9003016819648670694">"умножение"</string>
    <string name="plusDesc" msgid="3145322700823848264">"плюс"</string>
    <string name="minusDesc" msgid="5033462008907390900">"минус"</string>
    <string name="dotDesc" msgid="5253752241630161722">"десятичный разделитель"</string>
    <string name="powerDesc" msgid="9034898318444176910">"в степени"</string>
    <string name="delDesc" msgid="8211175878012032240">"удаление"</string>
    <string name="clearDesc" msgid="8015748901120751476">"сброс"</string>
    <string name="tanDesc" msgid="2055554933130702423">"тангенс"</string>
    <string name="sinDesc" msgid="6563285042235077204">"синус"</string>
    <string name="cosDesc" msgid="4048942450207926538">"косинус"</string>
    <string name="eDesc" msgid="6709583372168924068">"число Эйлера"</string>
    <string name="piDesc" msgid="8838151606775021517">"число \"пи\""</string>
    <string name="equalDesc" msgid="4164435100263313101">"равно"</string>
    <!-- no translation found for operatorDescs:10 (3456824579675198186) -->
</resources>
