<?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>

    <!-- Name of the application. [CHAR_LIMIT=NONE] -->
    <string name="app_name">Calculator</string>

    <!-- Error displayed when expression evaluates to NaN. [CHAR_LIMIT=14] -->
    <string name="error_nan">Not a number</string>
    <!-- Error displayed when expression contains a syntax error. [CHAR_LIMIT=14] -->
    <string name="error_syntax">Error</string>

    <!-- Abbrev. name of cosine function (e.g. "cos(π)". [CHAR_LIMIT=3] -->
    <string name="fun_cos">cos</string>
    <!-- Natural logarithm function (e.g. "ln(2)"). [CHAR_LIMIT=3] -->
    <string name="fun_ln">ln</string>
    <!-- Logarithm function (e.g. "log(10)"). [CHAR_LIMIT=3] -->
    <string name="fun_log">log</string>
    <!-- Abbrev. name of sine function (e.g. "sin(π)". [CHAR_LIMIT=3] -->
    <string name="fun_sin">sin</string>
    <!-- Abbrev. name of tangent function (e.g. "tan(π)". [CHAR_LIMIT=3] -->
    <string name="fun_tan">tan</string>

    <!-- Clear operation to clear the currently entered expression. [CHAR_LIMIT=3] -->
    <string name="clr">clr</string>
    <!-- Delete operation to remove last entered token. [CHAR_LIMIT=3] -->
    <string name="del">del</string>

    <!-- Content Descriptions -->
    <eat-comment />

    <!-- Content description for 'e' button. [CHAR_LIMIT=NONE] -->
    <string name="desc_const_e">Euler\'s number</string>
    <!-- Content description for 'π' button. [CHAR_LIMIT=NONE] -->
    <string name="desc_const_pi">pi</string>

    <!-- Content description for '.' button. [CHAR_LIMIT=NONE] -->
    <string name="desc_dec_point">point</string>

    <!-- Content description for '(' button. [CHAR_LIMIT=NONE] -->
    <string name="desc_lparen">left parenthesis</string>
    <!-- Content description for ')' button. [CHAR_LIMIT=NONE] -->
    <string name="desc_rparen">right parenthesis</string>

    <!-- Content description for 'cos' button. [CHAR_LIMIT=NONE] -->
    <string name="desc_fun_cos">cosine</string>
    <!-- Content description for 'ln' button. [CHAR_LIMIT=NONE] -->
    <string name="desc_fun_ln">natural logarithm</string>
    <!-- Content description for 'log' button. [CHAR_LIMIT=NONE] -->
    <string name="desc_fun_log">logarithm</string>
    <!-- Content description for 'sin' button. [CHAR_LIMIT=NONE] -->
    <string name="desc_fun_sin">sine</string>
    <!-- Content description for 'tan' button. [CHAR_LIMIT=NONE] -->
    <string name="desc_fun_tan">tangent</string>

    <!-- Content description for '+' button. [CHAR_LIMIT=NONE] -->
    <string name="desc_op_add">plus</string>
    <!-- Content description for '÷' button. [CHAR_LIMIT=NONE] -->
    <string name="desc_op_div">divide</string>
    <!-- Content description for '!' button. [CHAR_LIMIT=NONE] -->
    <string name="desc_op_fact">factorial</string>
    <!-- Content description for '×' button. [CHAR_LIMIT=NONE] -->
    <string name="desc_op_mul">times</string>
    <!-- Content description for '^' button. [CHAR_LIMIT=NONE] -->
    <string name="desc_op_pow">power</string>
    <!-- Content description for '√' button. [CHAR_LIMIT=NONE] -->
    <string name="desc_op_sqrt">square root</string>
    <!-- Content description for '-' button. [CHAR_LIMIT=NONE] -->
    <string name="desc_op_sub">minus</string>

    <!-- Content description for "clr" button. [CHAR_LIMIT=NONE] -->
    <string name="desc_clr">clear</string>
    <!-- Content description for "del" button. [CHAR_LIMIT=NONE] -->
    <string name="desc_del">delete</string>
    <!-- Content description for '=' button. [CHAR_LIMIT=NONE] -->
    <string name="desc_eq">equals</string>

</resources>
