// *++
//
// Copyright (c) 2006 - 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"

#string STR_MISC_PORT_INTERNAL_CONNECTOR_DESIGNATOR #language en-US  "Port Internal Connector"
#string STR_MISC_PORT_EXTERNAL_CONNECTOR_DESIGNATOR #language en-US  "Port External Connector"
#string STR_MISC_PORT_INTERNAL_KEYBOARD #language en-US  "J1A1"
#string STR_MISC_PORT_EXTERNAL_KEYBOARD #language en-US  "Keyboard"
#string STR_MISC_PORT_INTERNAL_MOUSE   #language en-US  "J1A1"
#string STR_MISC_PORT_EXTERNAL_MOUSE   #language en-US  "Mouse"
#string STR_MISC_PORT_INTERNAL_COM1    #language en-US  "J2A1"
#string STR_MISC_PORT_EXTERNAL_COM1    #language en-US  "COM 1"
#string STR_MISC_PORT_INTERNAL_LPT1    #language en-US  "J4A2"
#string STR_MISC_PORT_EXTERNAL_LPT1    #language en-US  "LPT 1"
#string STR_MISC_PORT_INTERNAL_EXTENSION_POWER #language en-US  "J5C1"
#string STR_MISC_PORT_EXTERNAL_EXTENSION_POWER #language en-US  "Extension Power Header"
#string STR_MISC_PORT_INTERNAL_USB1    #language en-US  "JA5A1"
#string STR_MISC_PORT_EXTERNAL_USB1    #language en-US  "USB"
#string STR_MISC_PORT_INTERNAL_USB2    #language en-US  "J2A2"
#string STR_MISC_PORT_EXTERNAL_USB2    #language en-US  "USB"
#string STR_MISC_PORT_INTERNAL_NETWORK #language en-US  "JA5A1"
#string STR_MISC_PORT_EXTERNAL_NETWORK #language en-US  "RJ-45 Type"
#string STR_MISC_PORT_INTERNAL_MIC     #language en-US  "J6A1"
#string STR_MISC_PORT_EXTERNAL_MIC     #language en-US  "Audio Mic In"
#string STR_MISC_PORT_INTERNAL_LINE_IN #language en-US  "J6A1"
#string STR_MISC_PORT_EXTERNAL_LINE_IN #language en-US  "Audio Line In"
#string STR_MISC_PORT_INTERNAL_LINE_OUT #language en-US  "J6A1"
#string STR_MISC_PORT_EXTERNAL_LINE_OUT #language en-US  "Audio Line Out"
#string STR_MISC_PORT_INTERNAL_FLOPPY  #language en-US  "J4H1"
#string STR_MISC_PORT_EXTERNAL_FLOPPY  #language en-US  "OnBoard Floppy Type"
#string STR_MISC_PORT_INTERNAL_IDE1    #language en-US  "J6H2"
#string STR_MISC_PORT_EXTERNAL_IDE1    #language en-US  "OnBoard Primary IDE"
#string STR_MISC_PORT_INTERNAL_IDE2    #language en-US  "J6H1"
#string STR_MISC_PORT_EXTERNAL_IDE2    #language en-US  "OnBoard Secondary IDE"
#string STR_MISC_PORT_INTERNAL_SOUND_IN1 #language en-US  "J8B1"
#string STR_MISC_PORT_EXTERNAL_SOUND_IN1 #language en-US  "OnBoard Sound Input Type"
#string STR_MISC_PORT_INTERNAL_SOUND_IN2 #language en-US  "J6B1"
#string STR_MISC_PORT_EXTERNAL_SOUND_IN2 #language en-US  "OnBoard Sound Input Type"
#string STR_MISC_PORT_INTERNAL_FRONT_PANEL #language en-US  "J9G1"
#string STR_MISC_PORT_EXTERNAL_FRONT_PANEL #language en-US  "Front Panel Header Type"
#string STR_MISC_PORT_INTERNAL_CPU_FAN #language en-US  "J2F1"
#string STR_MISC_PORT_EXTERNAL_CPU_FAN #language en-US  "CPU Fan Header"
#string STR_MISC_PORT_INTERNAL_FRONT_FAN #language en-US  "J9H3"
#string STR_MISC_PORT_EXTERNAL_FRONT_FAN #language en-US  "Front Chassis Fan"
#string STR_MISC_PORT_INTERNAL_REAR_FAN #language en-US  "J1B1"
#string STR_MISC_PORT_EXTERNAL_REAR_FAN #language en-US  "Rear Chassis Fan"
#string STR_MISC_PORT_INTERNAL_CONFIG_JUMPER #language en-US  "J9H2"
#string STR_MISC_PORT_EXTERNAL_CONFIG_JUMPER #language en-US  "Configuration Jumper"
#string STR_MISC_PORT_INTERNAL_AUDIO_PANEL #language en-US  "J8A1"
#string STR_MISC_PORT_EXTERNAL_AUDIO_PANEL #language en-US  "Audio Front Panel Header"
#string STR_MISC_PORT_INTERNAL_USB_PANEL #language en-US  "J9F1"
#string STR_MISC_PORT_EXTERNAL_USB_PANEL #language en-US  "USB Front Panel Header"
#string STR_MISC_PORT_INTERNAL_ATX_POWER #language en-US  "J2H1"
#string STR_MISC_PORT_EXTERNAL_ATX_POWER #language en-US  "ATX Power Header"
#string STR_MISC_PORT_INTERNAL_COM2       #language en-US     "J5A1"
#string STR_MISC_PORT_EXTERNAL_COM2       #language en-US     "COM 2"
#string STR_MISC_PORT_INTERNAL_USB3       #language en-US     "J1D3"
#string STR_MISC_PORT_EXTERNAL_USB3       #language en-US     "USB"


