/** @file
  String definitions for User Profile Manager driver.

Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials 
are licensed and made available under the terms and conditions of the BSD License 
which accompanies this distribution.  The full text of the license may be found at 
http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

**/

#langdef   en-US "English"
#langdef   fr-FR "Français"

#string STR_NULL_STRING                #language en-US  ""
                                       #language fr-FR  ""
#string STR_FORMSET_TITLE              #language en-US  "User Manager"
                                       #language fr-FR  "User Manager(French)"
#string STR_TITLE_HELP                 #language en-US  "This selection will take you to the User Manager"
                                       #language fr-FR  "This selection will take you to the User Manager(French)" 
#string STR_USERMAN_TITLE              #language en-US  "User Manager"
                                       #language fr-FR  "User Manager(French)"
#string STR_ADD_USER_TITLE						 #language en-US  "Add User Profile"
																			 #language fr-FR  "Add User Profile(French)"
#string STR_ADD_USER_HELP							 #language en-US  "Add User Profile to User Database"
																			 #language fr-FR  "Add User Profile to User Database(French)"
#string STR_MODIFY_USER_TITLE					 #language en-US  "Modify User Profile"
																			 #language fr-FR  "Modify User Profile(French)"
#string STR_MODIFY_USER_HELP					 #language en-US  "Modify User Profile Information"
																			 #language fr-FR  "Modify User Profile Information(French)"
#string STR_DELETE_USER_TITLE					 #language en-US  "Delete User Profile"
																			 #language fr-FR  "Delete User Profile(French)"
#string STR_DELETE_USER_HELP           #language en-US  "Delete User Profile from User Database"
																			 #language fr-FR  "Delete User Profile from User Database(French)"
#string STR_USER_INFO									 #language en-US  "User Profile Information"
																			 #language fr-FR  "User Profile Information(French)"
#string STR_USER_NAME									 #language en-US  "User Name"
																			 #language fr-FR  "User Name(French)"
#string STR_USER_NAME_VAL							 #language en-US  ""
																			 #language fr-FR  ""								 
#string STR_CREATE_DATE								 #language en-US  "Create Date"
																		   #language fr-FR  "Create Date(French)"
#string STR_CREATE_DATE_VAL						 #language en-US  ""
																			 #language fr-FR  ""
#string STR_USAGE_DATE 								 #language en-US  "Usage Date"
																			 #language fr-FR  "Usage Date(French)"
#string STR_USAGE_DATE_VAL						 #language en-US  ""
																			 #language fr-FR  ""
#string STR_USAGE_COUNT								 #language en-US  "Usage Count"
																			 #language fr-FR  "Usage Count(French)"
#string STR_USAGE_COUNT_VAL						 #language en-US  ""
																			 #language fr-FR  ""				 
#string STR_IDENTIFY_POLICY						 #language en-US  "Identify Policy"
																			 #language fr-FR  "Identify Policy(French)"
#string STR_IDENTIFY_POLICY_VAL				 #language en-US  ""
																			 #language fr-FR  ""
#string STR_ACCESS_POLICY							 #language en-US  "Access Policy"
																			 #language fr-FR  "Access Policy(French)"	
#string STR_SAVE											 #language en-US  "Save & Exit"
																			 #language fr-FR  "Save & Exit(French)"					 
#string STR_IDENTIFY_SAVE_HELP				 #language en-US  "Save Identify Policy and Exit"
																			 #language fr-FR  "Save Identify Policy and Exit(French)"	
#string STR_PROVIDER									 #language en-US  "Credential Provider"
																			 #language fr-FR  "Credential Provider(French)"
#string STR_PROVIDER_HELP							 #language en-US  "Select Credential Provider Option"
																			 #language fr-FR  "Select Credential Provider Option(French)"	
#string STR_OR_CON										 #language en-US  "Or"
																			 #language fr-FR  "Or(French)"
#string STR_AND_CON										 #language en-US  "And"
																			 #language fr-FR  "And(French)"	
#string STR_CONNECTOR									 #language en-US  "Logical Connector"
																			 #language fr-FR  "Logical Connector(French)"
#string STR_CONNECTOR_HELP						 #language en-US  "Select Logical Connector Option"
																			 #language fr-FR  "Select Logical Connector Option(French)"	
#string STR_IDENTIFY_POLICY_VALUE			 #language en-US  ""
																			 #language fr-FR  ""
#string STR_IDENTIFY_POLICY_HELP       #language en-US  "Current Identify Policy"
																			 #language fr-FR  "Current Identify Policy(French)"	
#string STR_ADD_OPTION								 #language en-US  "Add Option"
																			 #language fr-FR  "Add Option(French)"
#string STR_ADD_OPTION_HELP						 #language en-US  "Add This Option to Identify Policy"
																			 #language fr-FR  "Add This Option to Identify Policy(French)"
#string STR_ACCESS_SAVE_HELP				   #language en-US  "Save Access Policy and Exit"
																			 #language fr-FR  "Save Access Policy and Exit(French)"
#string STR_ACCESS_RIGHT							 #language en-US  "Access Right"
																			 #language fr-FR  "Access Right(French)"
#string STR_ACCESS_RIGHT_HELP					 #language en-US  "Select Access Right Option"
																			 #language fr-FR  "Select Access Right Option(French)"	
#string STR_NORMAL										 #language en-US  "Normal"
																			 #language fr-FR  "Normal(French)"
#string STR_ENROLL										 #language en-US  "Enroll"
																			 #language fr-FR  "Enroll(French)"
#string STR_MANAGE										 #language en-US  "Manage"
																			 #language fr-FR  "Manage(French)"	
#string STR_ACCESS_SETUP							 #language en-US  "Access Setup"
																			 #language fr-FR  "Access Setup(French)"
#string STR_ACCESS_SETUP_HELP					 #language en-US  "Select Access Setup Option"
																		   #language fr-FR  "Selelct Access Setup Option(French)"
#string STR_RESTRICTED								 #language en-US  "Restricted"
																			 #language fr-FR  "Restricted(French)"
#string STR_ADMIN											 #language en-US  "Admin"
																			 #language fr-FR  "Admin(French)"	
#string STR_BOOR_ORDER								 #language en-US  "Access Boot Order"
																			 #language fr-FR  "Access Boot Order(French)"
#string STR_BOOT_ORDER_HELP						 #language en-US  "Select Access Boot Order Option"
																			 #language fr-FR  "Select Access Boot Order Option(French)"
#string STR_INSERT										 #language en-US  "Insert"
																			 #language fr-FR  "Insert(French)"
#string STR_APPEND										 #language en-US  "Append"
																		   #language fr-FR  "Append(French)"
#string STR_REPLACE										 #language en-US  "Replace"
																			 #language fr-FR  "Replace(French)"
#string STR_NODEFAULT									 #language en-US  "Nodefault"
																			 #language fr-FR  "Nodefault(French)"	
#string STR_LOAD								 			 #language en-US  "Load Device Path"
																	 		 #language fr-FR  "Load Device Path(French)"
#string STR_LOAD_HELP									 #language en-US  "Select Permit/Forbid Load Device Path"
																			 #language fr-FR  "Select Permit/Forbid Load Device Path(French)"
#string STR_CONNECT										 #language en-US  "Connect Device Path"
																			 #language fr-FR  "Connect Device Path(French)"
#string STR_CONNECT_HELP							 #language en-US  "Select Permit/Forbid Connect Device Path"
																			 #language fr-FR  "Select Permit/Forbid Connect Device Path(French)"
#string STR_LOAD_PERMIT					   		 #language en-US  "Permit Load Device Path"
																			 #language fr-FR  "Permit Load Device Path(French)"
#string STR_LOAD_PERMIT_HELP					 #language en-US  "Change Permit Load Device Path to Forbid"
																			 #language fr-FR  "Change Permit Load Device Path to Forbid(French)"
#string STR_LOAD_FORBID					   		 #language en-US  "Forbid Load Device Path"
																			 #language fr-FR  "Forbid Load Device Path(French)"
#string STR_LOAD_FORBID_HELP					 #language en-US  "Change Forbid Load Device Path to Permit"
																			 #language fr-FR  "Change Forbid Load Device Path to Permit(French)"
#string STR_CONNECT_PERMIT					   #language en-US  "Permit Connect Device Path"
																			 #language fr-FR  "Permit Connect Device Path(French)"
#string STR_CONNECT_PERMIT_HELP				 #language en-US  "Change Permit Connect Device Path to Forbid"
																			 #language fr-FR  "Change Permit Connect Device Path to Forbid(French)"
#string STR_CONNECT_FORBID						 #language en-US  "Forbid Connect Device Path"
																			 #language fr-FR  "Forbid Connect Device Path(French)"
#string STR_CONNECT_FORBID_HELP				 #language en-US  "Change Forbid Connect Device Path to Permit"
																			 #language fr-FR  "Change Forbid Connect Device Path to Permit(French)"
#string STR_PRESS_KEY_CONTINUE				 #language en-US  "Press ENTER to Continue, Other Key to Cancel ..."
																			 #language fr-FR  "Press ENTER to Continue, Other Key to Cancel ...(French)"	
#string STR_MOVE_TO_FORBID_LIST				 #language en-US  "Are You Sure to Move It to Forbid List?"
																			 #language fr-FR  "Are You Sure to Move It to Forbid List?(French)"	
#string STR_MOVE_TO_PERMIT_LIST				 #language en-US  "Are You Sure to Move It to Permit List?"
																			 #language fr-FR  "Are You Sure to Move It to Permit List?(French)"						 
#string STR_STROKE_KEY_CONTINUE        #language en-US  "Please Press Any Key to Continue ..."
																			 #language fr-FR  "Please Press Any Key to Continue ... (French)"
#string STR_CREATE_PROFILE_FAILED      #language en-US  "Create New User Profile Failed!"
																			 #language fr-FR  "Create New User Profile Failed! (French)"
#string STR_CREATE_PROFILE_SUCCESS     #language en-US  "Create New User Profile Succeed!"
																			 #language fr-FR  "Create New User Profile Succeed! (French)"
#string STR_USER_ALREADY_EXISTED       #language en-US  "User Name Had Already Existed."
																			 #language fr-FR  "User Name Had Already Existed. (French)"	
#string STR_GET_USERNAME_FAILED        #language en-US  "Failed To Get User Name."
																			 #language fr-FR  "Failed To Get User Name. (French)"
																		 
