#
# 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.
#

Missing_res_folder=Could not find the 'res' folder.
MainActivityChecker_Exception_Get_Action_Intent_Value=An error occurred while retrieving the "android:name" value of an "action" intent filter.
MainActivityChecker_Exception_Get_Category_Intent_Value=An error occurred while retrieving the "android:name" value of a "category" intent filter.
Invalid_ManifestFile=Android manifest is invalid. Verify the file.
IsDebuggableCondition_AttrFound_Message=Attribute android:debuggable is set to true. You should set the android:debuggable attribute to false before publishing the application.
IsDebuggableCondition_AttrFound_QuickFix=Set the android:debuggable flag to false
MainActivityChecker_manyMainActivity=More than one main activity found in the Android manifest file.
MainActivityChecker_MoreThanOneMainActivityFixSuggestion=Make sure that your app has only one activity with an "android.intent.action.MAIN" action in its Android manifest file.
MainActivityChecker_noMainActivity=No main activity found in the Android manifest file.
MainActivityChecker_NoMainActivityFixSuggestion=Add the "android.intent.action.MAIN" action and the "android.intent.category.LAUNCHER" category to the same intent-filter on one of the activities declared in the Android manifest file.
MissingDrawableChecker_AddDrawableToFolder=Add the appropriate "{0}" drawable to the "{1}" folder.
MissingDrawableChecker_CreateFolderOnResFolder=Create the "{0}" folder inside the "res" folder and add the appropriate drawables to it.
MissingDrawableChecker_CreateFoldersOnResFolder=Create the "{0}", "{1}" and "{2}" folders inside the "res" folder and add the appropriate drawables to them.
MissingDrawableChecker_UselessXhdpiResources=The application's API level does not support the xhdpi screen density. 
MissingDrawableChecker_UselessXhdpiResourcesSugestion=Delete the "drawable-xhdpi" folder from the application resources or change the application's API level (in AndroidManifest.xml) to include level 9 or above. 
MissingDrawableChecker_FolderNotFound=Folder "{0}" does not exist.
MissingDrawableChecker_ldpiFolder=drawable-ldpi
MissingDrawableChecker_mdpiFolder=drawable-mdpi
MissingDrawableChecker_hdpiFolder=drawable-hdpi
MissingDrawableChecker_xhdpiFolder=drawable-xhdpi
MissingDrawableChecker_missingDrawableDesc=Drawable "{0}" does not exist in the "{1}" folder.
MissingDrawableChecker_noDensitySpecificDrawableFolders=Density-specific drawable folders were not found for the application. You should create them with density-specific versions of your drawables.
MissingDrawableChecker_noDrawableFolders=The application has no drawable folders.
MissingWidgetPreviewTagCondition_quickFix=Add a widget preview to your resources file by inserting android:previewImage="@drawable/yourpreview" to your <appwidget-provider> declaration.
MissingWidgetPreviewTagCondition_WarningMessage=This widget project does not have a registered preview image in its resources file.
LocalizationStringsChecker_Exception_MissingDefaultKeys=An error occurred while checking for default keys missing in other localization files.
LocalizationStringsChecker_Exception_MissingLocaleKeys=An error occurred while checking for non-default keys missing in the default localization files.
LocalizationStringsChecker_Exception_EmptyValuesDefault= An error occurred while checking for empty values in the default localization files.
LocalizationStringsChecker_Exception_EmptyValuesLocale= An error occurred while checking for empty values in the non-default localization files.
LocalizationStringsChecker_defaultStringNotFoundSimple=The "{0}" key from the default localization files was not found in the "{1}" localization files.
LocalizationStringsChecker_localeStringNotFoundSimple=The "{0}" key from the "{1}" localization files was not found in the default localization files.
LocalizationStringsChecker_addStringToLocalizationResourceDetailed=Add the key to the proper localization file.
LocalizationStringsChecker_invalidParameters=The "{0}" parameter is not valid for the Localization Strings Checker.
LocalizationStringsChecker_invalidDefaultLocaleParameter=The "defaultLocale" parameter value is invalid. Values must follow the "ll" or "ll_CC" format, where "ll" is a language code and "CC" is a country code.
LocalizationStringsChecker_helpParameterLocaleValueFormatDescription=Values must follow the "ll" or "ll_CC" format, where "ll" is a language code and "CC" is a country code.
LocalizationStringsChecker_helpParameterLocaleDescription=Set the default locale to be used following the "ll" or "ll_CC" format, where ll is the language and CC is the country. The default "values" folder in your application will be ignored.
LocalizationStringsChecker_helpParameterLocaleValueDescription=LOCALE
LocalizationStringsChecker_detailedLocaleResourceNotFound=The locale specified by the "defaultLocale" parameter was not found.
LocalizationStringsChecker_localeStringEmptyValue=The "{0}" key from the "{1}" localization files does not have a value defined.
LocalizationStringsChecker_defaultStringEmptyValue=The "{0}" key from the default localization files does not have a value defined.
LocalizationStringsChecker_Missing_stringsXml_File=Could not find a valid 'strings.xml' file in the required folders.
LocalizationStringsChecker_stringEmptyValueQuickFix=Define a value for the key.
LocalizationStringsChecker_conditionMissingValue_CouldNotBeRun_EmptyLocalizationFiles=It was not possible to run condition {0} because the checker could not find any string keys.
LocalizationStringsChecker_conditionMissingKey_CouldNotBeRun_NoDefault=It was not possible to run condition {0} because the checker could not find the default localization file.
LocalizationStringsChecker_conditionMissingKey_CouldNotBeRun_NoLocale=It was not possible to run condition {0} because the checker could not find any non-default localization files.
LocalizationStringsChecker_UnknownError=It was not possible to run condition {0}. Unknown error.
LogCallsCondition_CallFound_Message=You should remove all log calls before publishing the app.
LogCallsCondition_CallFound_QuickFix=Remove the log call.
AndroidMarketFiltersChecker_Exception_Getting_Manifest_Attribute = An error occurred while retrieving the attribute {0}. 
AndroidMarketFiltersChecker_missingManifestIconOrLabel_Suggestion=Add the {0} attribute in the application element or supply a value for it. 
AndroidMarketFiltersChecker_missingManifestIconOrLabel_Issue=The {0} attribute is not defined or is empty in the application element.
AndroidMarketFiltersChecker_certificatePeriodExpired_Suggestion=Sign your application using a certificate that expires after October 22, 2033.
AndroidMarketFiltersChecker_certificatePeriodExpired_Issue=Certificate expires on {0}, but Google Play requires it to expire after October 22, 2033.
AndroidMarketFiltersChecker_missingMinSdkVersion_Issue=The android:minSdkVersion attribute is not defined or is empty in the uses-sdk element. Although this allows the app to be installed on any Android device, it may crash if, for example, the application uses an API not supported by the Android OS version running on that device. 
AndroidMarketFiltersChecker_missingMinSdkVersion_Suggestion=Add the android:minSdkVersion attribute to the uses-sdk element or supply a valid value for it.
AndroidMarketFiltersChecker_declaredMaxSdkVersion_Issue=The android:maxSdkVersion attribute is defined in the uses-sdk element. This is not recommended as it limits which devices can run your application.
AndroidMarketFiltersChecker_declaredMaxSdkVersion_Suggestion=Check if the uses-sdk android:maxSdkVersion property is set. If so, remove it from your manifest. 
AndroidMarketFiltersChecker_permissionToImpliedFeatures_Suggestion=Add the implied feature to the Android manifest file. If your app does not require the implied feature, put "android:required="false" in the feature declaration you are adding.
AndroidMarketFiltersChecker_permissionToImpliedFeatures_Issue=Google Play will assume that the following features are required: {0} as implied by the following permission: {1}.
AndroidMarketFiltersChecker_missingVersionCodeOrName_Suggestion=Add the {0} attribute to the manifest element or supply a value for it.
AndroidMarketFiltersChecker_missingVersionCodeOrName_Issue=The {0} attribute is not defined or is empty in the manifest element.
AndroidMarketFiltersChecker_certificatePeriodNotYeatValid_Issue=Certificate is not valid during the required period. It is only valid after {0}.
DeviceCompatibilityChecker_SMALL_SCREEN_SUPPORT_FIX_SUGGESTION=In the AndroidManifest.xml file, change your application target API level to 4 or above and then set android:smallScreens to true in the supports-screens element.
DeviceCompatibilityChecker_SMALL_SCREEN_SUPPORT_ISSUE_DESCRIPTION=Small screen devices are not supported by this application. It will not run on the following device: {0}.
DeviceCompatibilityChecker_XLARGE_SCREEN_SUPPORT_FIX_SUGGESTION=In the AndroidManifest.xml file, change your application target API level to 4 or above.
DeviceCompatibilityChecker_XLARGE_SCREEN_SUPPORT_ISSUE_DESCRIPTION=Extra large screen devices are not fully supported by this application. If you want to prevent this app from running on XLarge screen devices, add <compatible-screens> information to the AndroidManifest.xml file. Otherwise it will work under compatibility mode on devices such as: {0}.
PermissionsChecker_MissingPermission_Message=Called method, {0}, requires the following permission(s): {1}.
PermissionsChecker_MissingPermission_QuickFix=Verify and add the required permission(s) to the AndroidManifest.xml file
UnneededPermissionsCondition_UneededPermissionMessage=Declared permission "{0}" does not appear to be needed by any called method. Consider removing this permission.
UnneededPermissionsCondition_UneededPermissionQuickFix=Remove this permission if it is really not needed by the application.
UnsecurePermissionsChecker_conditionForbiddenPermission_description=The following permission cannot be used by most applications: {0}.
UnsecurePermissionsChecker_conditionForbiddenPermission_suggestion=Verify that your application can actually use this permission. If not, remove it from the manifest.
DeviceCompatibilityChecker_CONDITION_UNSUPPORTED_FEATURE_FIX_SUGGESTION=Verify that the permission or feature is actually required by the application. Consider declaring <uses-feature android:name="{0}" android:required="false"/> in your Android manifest, and then use the feature only on devices that support it (use 'PackageManager.hasSystemFeature(String featureName)' to check for the presence of the feature at run time). 
DeviceCompatibilityChecker_CONDITION_UNSUPPORTED_FEATURE_DECLARED_ISSUE_DESCRIPTION=The application declared the unsupported feature {0} which might prevent the application from being installed on the following device: {1}.
DeviceCompatibilityChecker_CONDITION_UNSUPPORTED_FEATURE_IMPLIED_ISSUE_DESCRIPTION=The application declares the permission {0} which implies the unsupported feature {1}. This might prevent the application from being installed on the following device: {2}.
LayoutChecker_MissingKeyWarningMessage=The following ID was not defined in your layout file: "{0}".
LayoutChecker_MissingKeyFixSuggestion=Add the missing ID to the layout file.
AndroidMarketFiltersChecker_minSdkIsPreview_Issue=The android:minSdkVersion declared in the Android manifest file is a string instead of a number. It is probably a preview SDK, rather than an official release. 
AndroidMarketFiltersChecker_minSdkIsPreview_Suggestion=Verify that android:minSDKVersion is for an official release before submitting the app to Google Play.
AndroidMarketFiltersChecker_targetSdkIsPreview_Issue=The android:targetSdkVersion is specified in the Android manifest using a string rather than a number. It is probably a preview SDK instead of an official release.
AndroidMarketFiltersChecker_targetSdkIsPreview_Suggestion=Verify that the android:targetSDKVersion is for an official SDK release before submitting the application to Google Play.
BuildingBlockDeclarationCondition_TheClassXShouldExtendBuildingBlockY=The building block represented by class "{0}" does not directly extend "{1}". Your app could crash if "{1}" is not within the hierarchy of "{0}".
AndroidMarketFiltersChecker_zipaligned_Suggestion=Use the zipalign tool provided with the Android SDK to optimize your APK file.
AndroidMarketFiltersChecker_zipaligned_Issue=File {0} is not optimized with zipalign.
AndroidMarketFiltersChecker_zipaligned_ConditionNotExecutedForProject=Condition {0} will not be executed because it is valid only for APK files. 
BuildingBlocksInheritanceCondition_Activity=Activity
BuildingBlocksInheritanceCondition_BroadcastReceiver=Broadcast Receiver
BuildingBlocksInheritanceCondition_ContentProvider=Content Provider
BuildingBlocksInheritanceCondition_Service=Service
BuildingBlocksInheritanceCondition_TheBuildingBlockXShouldExtendClassY=Verify that "{0}" has "{1}" within its hierarchy.
OpenedCursorsCondition_Result_Message=The cursor "{0}" at "{1}" does not seem to be closed. {2} instance(s) using this variable were not closed.
OpenedCursorsCondition_Result_QuickFix=Make sure that all cursors are closed to avoid problems during app execution.
RepeatedIdCondition_Result_Description=The following ID is already defined in the layout file {0}: "{1}".
RepeatedIdCondition_Result_QuickFix=Make sure that IDs are not repeated.
ViewTypeIdsCondition_Results_Description=Element ID {0}, a {1}, has already been declared as a {2}.
ViewTypeIdsCondition_Results_QuickFix=Use different IDs for different view types.
XlargeConfigCondition_Result_Description=Default layout file {0} does not have an xlarge-specific version. This app may not have the look and feel expected on devices with extra large screens.
XlargeConfigCondition_Result_QuickFix=Define an xlarge layout for {0} or add <supports-screens android:xlargeScreens="false"> to the manifest file.
OrphanedStringsCondition_Result_Description=Application declares the string ID: {0} but it is not used in source code or resource files.
OrphanedStringsCondition_Result_QuickFix=Check your code and resources to see if the string should be used. If the string really is unnecessary, consider removing it. 
