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

    <!-- Fragment API -->

    <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_custom_animation_support">Fragment/Custom Animation</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_nesting_tabs_support">Fragment/Nesting Tabs</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="home">Go home</string>
    <string name="new_fragment">Add new</string>
    <string name="delete_fragment">Pop top</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_retained_support">Loader/Retained</string>

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

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

    <string name="local_service_broadcaster">Content/Local Service Broadcaster</string>

    <string name="local_service_broadcaster_msg">Demonstrates use of LocalBroadcastManager
        to communicate from a Service to an Activity.</string>
    <string name="start_service">Start Service</string>
    <string name="stop_service">Stop Service</string>

    <!-- Accessibility API -->

    <string name="accessibility_manager_title">Accessibility/Accessibility Manager</string>
    <string name="accessibility_manager_instructions">
        1. Enable TalkBack from Settings->Accessibility.
        \n2. Go back to this activity.
        \n3. Disable TalkBack from Settings->Accessibility.</string>
    <string name="accessibility_manager_no_enabled_services">No enabled accessibility services or API level lower than ICS.</string>
    <string name="accessibility_manager_enabled_service">ENABLED ACCESSIBILITY SERVICES:
        \n\nService: %1$s\nFeedback: %2$s\nDescription: %3$s\nSettings: %4$s\n</string>
    <string name="accessibility_manager_accessibility_state">Accessibility enabled: %1$s</string>

    <string name="accessibility_delegate_title">Accessibility/Accessibility Delegate</string>
    <string name="accessibility_delegate_instructions">
        1. Enable TalkBack from Settings->Accessibility.
        \n2. Go back to this activity.
        \n3. Touch the button below.</string>
    <string name="accessibility_delegate_button">Button</string>
    <string name="accessibility_delegate_custom_text_added">Custom text added via an accessibility delegate.</string>

    <string name="share_text">Share some text</string>
    <string name="share_file">Share a file</string>
    <string name="share_multiple_file">Share multiple files</string>
    <string name="sharing_support_title">App/ShareCompat Demo</string>
    <string name="sharing_receiver_title">ShareCompat Receiver</string>

    <string name="file_provider_example">Content/FileProvider example</string>

    <!-- Text API -->

    <string name="without_bidiformatter">Without BidiFormatter:</string>
    <string name="with_bidiformatter">With BidiFormatter:</string>
    <string name="bidiformatter_support_title">Text/BidiFormatter Demo</string>

    <!-- TransportController -->

    <string name="sample_transport_controller_activity">Media/TransportController</string>

</resources>
