<?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:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <string name="activity_sample_code">Support v4 Demos</string>

    <string name="hello_world"><b>Hello, <i>World!</i></b></string>
    <string name="alert_dialog_two_buttons_title">
        Lorem ipsum dolor sit aie consectetur adipiscing\nPlloaso mako nuto
        siwuf cakso dodtos anr koop.
    </string>
    <string name="alert_dialog_ok">OK</string>
    <string name="alert_dialog_cancel">Cancel</string>
    
    <string name="initial_text">Initial text.</string>
    
    <string name="pick_result">Pick a result to send, or BACK to cancel.</string>
    <string name="corky">Corky</string>
    <string name="violet">Violet</string>
    <string name="receive_result_instructions">Press the button to get an activity result, which will be displayed here:</string>
    <string name="receive_result_result">Get Result</string>
    
    <string name="fragment_alert_dialog_support">Fragment/Alert Dialog</string>

    <string name="fragment_arguments_support">Fragment/Arguments</string>
    <string name="fragment_arguments_msg">Demonstrates a fragment that takes arguments
        as a Bundle at runtime (on the right) or from attributes in a layout (on the left).</string>
    <string name="fragment_arguments_embedded">From Attributes</string>
    <string name="fragment_arguments_embedded_land">Landscape Only</string>

    <string name="fragment_hide_show_support">Fragment/Hide and Show</string>

    <string name="fragment_context_menu_support">Fragment/Context Menu</string>
    <string name="fragment_context_menu_msg">Fragment populating a context
            menu; long press the button to see.</string>
    <string name="long_press">Long press me</string>

    <string name="fragment_dialog_support">Fragment/Dialog</string>
    <string name="show">Show</string>

    <string name="fragment_dialog_or_activity_support">Fragment/Dialog or Activity</string>
    <string name="fragment_dialog_or_activity_msg">Demonstrates the same fragment
            being shown as a dialog and embedded inside of an activity.</string>
    <string name="fragment_dialog_or_activity_inline">Fragment embedded inside
            of the activity:</string>

    <string name="fragment_layout_support">Fragment/Layout</string>

    <string name="fragment_list_array_support">Fragment/List Array</string>

    <string name="fragment_menu_support">Fragment/Menu</string>
    <string name="fragment_menu_msg">Build menus from two fragments, allowing
        you to hide them to remove them..</string>
    <string name="fragment1menu">Show fragment 1 menu</string>
    <string name="fragment2menu">Show fragment 2 menu</string>

    <string name="fragment_retain_instance_support">Fragment/Retain Instance</string>
    <string name="fragment_retain_instance_msg">Current progress of retained fragment;
    restarts if fragment is re-created.</string>
    <string name="restart">Restart</string>

    <string name="fragment_receive_result_support">Fragment/Receive Result</string>

    <string name="fragment_stack_support">Fragment/Stack</string>
    <string name="new_fragment">New fragment</string>

    <string name="fragment_tabs">Fragment/Tabs</string>

    <string name="fragment_tabs_pager">Fragment/Tabs and Pager</string>

    <string name="fragment_pager_support">Fragment/Pager</string>
    <string name="first">First</string>
    <string name="last">Last</string>

    <string name="fragment_state_pager_support">Fragment/State Pager</string>

    <string name="loader_cursor_support">Loader/Cursor</string>
    
    <string name="loader_custom_support">Loader/Custom</string>

    <string name="loader_throttle_support">Loader/Throttle</string>

</resources>
