#
# Copyright (C) 2012 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.
#

Plugin_Vendor = Motorola Mobility, Inc.
Plugin_Name = MOTODEV Studio for Android Code Utils Plug-in

android.wizard.activity = Android Activity
android.wizard.activity.description = Creates a new Activity building block
android.wizard.activity.template = Android Activity Based on Template
android.wizard.activity.template.description = Creates a new Activity building block based on a template

android.wizard.activity.list = Android List Activities

android.wizard.activity.imageoptionlist.name = Image option list
android.wizard.activity.imageoptionlist.description = List with items that may contain an image and text

android.wizard.activity.expandablelist.name = Expandable list
android.wizard.activity.expandablelist.description = List grouped by sections which can be expanded and collapsed 

android.wizard.activity.singlechoicelist.name = Single choice list
android.wizard.activity.singlechoicelist.description = List containing image and single-choice items (radio buttons)

android.wizard.activity.multiplechoicelist.name = Multiple choice list
android.wizard.activity.multiplechoicelist.description = List containing image and multiple-choice items (checkboxes)

android.wizard.activity.autoloadlist.name = Auto-load list
android.wizard.activity.autoloadlist.description = List that loads additional items as needed

android.wizard.activity.treelist.name = Tree list
android.wizard.activity.treelist.description = List that presents items in a collapsible tree

android.wizard.activity.endlesslist.name = Endless List
android.wizard.activity.endlesslist.description = List which has no end. Every time its end is about to be reached, more data is retrieved and added to the list.

android.wizard.activity.pulltorefresh.name = Endless List (Pull to Refresh)
android.wizard.activity.pulltorefresh.description = List which has no end. Pulling down on the list while it is scrolled to the top causes more data to be retrieved and added to the beginning of the list.

android.wizard.receiver = Android Broadcast Receiver
android.wizard.receiver.description = Creates a new Broadcast Receiver building block
android.wizard.service = Android Service
android.wizard.service.description = Creates a new Service building block
android.wizard.provider = Android Content Provider
android.wizard.provider.description = Creates a new Content Provider building block
android.wizard.project.name = Android Project Using Studio for Android
android.wizard.project.description = Creates a new MOTODEV Studio for Android project
android.wizard.widget.project.name = Android Widget Project Using Studio for Android

android.wizard.widget.project.description = Creates a new MOTODEV Studio for Android widget project

android.wizard.widget.provider = Android Widget Provider

android.wizard.widget.provider.description = Creates a new Widget Provider building block

android.wizard.category.description = Creates a new MOTODEV Studio for Android project

motodevmenu.autogeneratedcode=Auto-Generated Code
motodevmenu.autogeneratedcode.activity=Create Activity Based on Template

motodevmenu.new.activity=New Android Activity
motodevmenu.new.broadcastreceiver=New Android Broadcast Receiver
motodevmenu.new.contentprovider=New Android Content Provider
motodevmenu.new.service=New Android Service
motodevmenu.new.widget.provider=New Android Widget Provider

motodevmenu.localization.openEditor=Open Android Localization Files Editor

Motodev_Studio_Fill_Activity_Based_On_Layout=Generate Java Code Based on Android Layout...
fill_save_instance_state_command_name=Generate Save UI State Code...
fill_save_instance_state_command_description=Generates the onSaveInstanceState() method based on those layout items that are handled by the activity

Motodev_Studio_Generate_Menu_Code=Generate Java Code Based on Menu XML Files...

Activity_Samples_DB_name=Database List
Activity_Samples_DB_description=Displays the contents of a specified database table.
Activity_Samples_Dialog_name=Dialog
Activity_Samples_Dialog_description=A dialog containing a list of choices.
Activity_Samples_DDList_name=Drop Down List
Activity_Samples_DDList_description=A drop down list.
Activity_Samples_Multitouch_name=Multitouch Event
Activity_Samples_Multitouch_description=Enables the user to move or resize an image using multitouch.
Activity_Samples_Preference_name=Preference Activity
Activity_Samples_Preference_description=An XML-based preferences activity.
Activity_Samples_RadioButton_name=Radio Button
Activity_Samples_RadioButton_description=Radio buttons.
Activity_Samples_SelectionList_name=Selection List
Activity_Samples_SelectionList_description=A selection list that can be configured to allow for one or multiple choices.
Activity_Samples_SimpleList_name=Simple List
Activity_Samples_SimpleList_description=A simple list of strings.
Activity_Samples_Tabs_name=Tabs for versions of Android versions prior to 3.2
Activity_Samples_Tabs_description=An activity containing tabs that are created as they are selected.\n\nNotes:\n\n - The API used in this template is deprecated as of Android 3.2.\n - New applications should use fragments.
Activity_Samples_ListActivities_name=List Activities
Activity_Samples_ListActivities_description=Set of templates involving many list layouts.
Activity_Samples_DashboardPattern_name=Dashboard Pattern
Activity_Samples_DashboardPattern_description=A landing page for your application with large icons representing its most important features.
Activity_Samples_ActionBar_name=Action Bar for Android 3.0 and later
Activity_Samples_ActionBar_description=An activity that uses the Action Bar UI design pattern.
Activity_Samples_ActionBarCompatibility_name=Action Bar for versions of Android prior to 3.0
Activity_Samples_ActionBarCompatibility_description=An activity that uses the Action Bar UI design pattern.
Activity_Samples_QuickAction_name=Quick Action Menu
Activity_Samples_QuickAction_description=An activity that uses the Quick Action UI design pattern.

android.wizard.activity.endlesslist.usingfragment.name = Endless List (using fragment - requires API level 11 or higher)
android.wizard.activity.endlesslist.usingfragment.description = ListFragment which has no end. Every time the end of the list is about to be reached, more data is retrieved and added to the list.  