<!-- Copyright (C) 2011 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="button_text">Button</string>
    <string name="button1_text">Button1</string>
    <string name="button2_text">Button2</string>
    <string name="button3_text">Button3</string>
    <string name="button4_text">Button4</string>
    <string name="button_right_text">Right</string>
    <string name="button_after_text">End</string>
    <string name="button_left_text">Left</string>
    <string name="button_before_text">Start</string>
    <string name="button_requestlayout_text">Request Layout</string>
    <string name="button_alert_dialog_text">AlertDialog</string>
    <string name="textview_text">TextView</string>
    <string name="textview_ltr_text">LTR TextView</string>
    <string name="textview_rtl_text">RTL TextView</string>
    <string name="textview_default_text">Default TextView</string>
    <string name="textview_password_default_text">Password TextView</string>
    <string name="edittext_text">mmmmmmmmmmmmmmmmmmmmmmmm</string>
    <string name="normal_text">Normal String</string>
    <string name="normal_long_text">mmmmmmmmmmmmmmmmmmmmmmmm</string>
    <string name="normal_long_text_2">nnnnnnnnnnnnnnnnnnnnnnnn</string>
    <string name="normal_long_text_3">Notify me when an open network is available</string>
    <string name="arabic_text">&#x0644;&#x0627; &#x0627;&#x0646;&#x0627; hello Arabic</string>
    <string name="chinese_text">利比亚局势或影响美俄关系发展</string>
    <string name="italic_text">Italic String</string>
    <string name="bold_text">Bold String - other text</string>
    <string name="bold_italic_text">Bold Italic String</string>
    <string name="mixed_text_1">he said in Arabic: &#x0644;&#x0627;. Wow this is cool</string>
    <string name="hebrew_text">&#x05DD;&#x05DE;</string>
    <string name="menu_add">Add</string>
    <string name="menu_delete">Delete</string>
    <string name="textview_hebrew_text">&#x05DD;&#x05DE;ab?!</string>
    <string name="textview_latin_text">ab&#x05DD;&#x05DE;?!</string>
    <string name="textview_multiline_text">&#x05DD;&#x05DE;?!\nab?!\n?!</string>
    <string name="ltr">Left to right text"</string>
    <string name="rtl">"والحق أن تترك ونص"</string>
    <string name="composing">"\u0644\u0627"</string>
    <string name="url">www.amazon.co.uk/gp/aw/h.html/275-8912818-8203452</string>
    <string name="pointer_location" msgid="6084434787496938001">"ตำแหน่งของตัวชี้"</string>
</resources>

