﻿var locale = (function () {

	var dictionary = {
		'en_GB': {
			emptyText: ''
, txtReset:                     'Reset'
, txtClose:                     'Close'
, txtCancel:                    'Cancel'
, txtClear:                     'Clear'
, txtNext:                      'Next'
, txtBack:                      'Back'
, noData:                       'No data is available.'
// countries.js
, chooseCountry:                'Choose a country...'
// homepage.js
, homeQuickSearch:              'Please enter one or more characters on which to search.'
// news.js
, chooseDate:                   'Choose a date...'
// pubgroups.js
, pubGroupsGridTitle:           'Published BRAHMS Online Databases'
, cmPubParentGroupHeader:       'Websites'
, cmPubGroupHeader:             'Website'
, cmPubGroupNotesHeader:        'Notes'
, cmPubServerHeader:            'Server'
, cmPubContactHeader:           'Contact'
// menus.js - displayThumbs
, titleThumbnails:              'Image Thumbnails'
, viewHR:                       'View high-resolution version'
, noImages:                     'No images available'
// menus.js - selectFields
, titleFieldVisibility:         'Field Visibility'
// menus.js - showAllRecordData
, titleRecordProperties:        'Record Properties'
// menus.js - showColumnData
, titleColumnSummary:           'Column Summary'
// menus.js - showCellText
, titleSelectedCellText:        'Selected Cell Text'
// menus.js - showMap
, titleNoMapData:               'No Mappable Data'
, txtNoMapData:                 'Sorry, this result set does not contain mappable data.'
, titleGoogleMaps:              'Google Maps'
, txtSpecies:                   'Species'
, txtLat:                       'Latitude'
, txtLong:                      'Longititude'
, txtLocationNotes:             'Location Notes'
// menus.js - tagClickHandler
, titleNoSelection:             'No selection detected!'
, txtNoSelection:               'Please select a cell and try again.'
// menus.js - resultsToolbar - left
, mTagging:                     'Tagging'
, mTag:                         'Tag all records'
, mUntag:                       'Clear all tags'
, mTagFilter:                   'Tag all like selection'
, mUntagFilter:                 'Untag all like selection'
, mTagHighlight:                'Highlight tagged records'
, isaz:                         'Sort A-Z on selected column.'
, isza:                         'Sort Z-A on selected column.'
, iemail:                       'Email your comments to data owner.'
, ifields:                      'Select visible results columns.'
, izoomcell:                    'View text for current selected field'
, iwrap:                        'Wrap/Unwrap cell contents'
, izoomfields:                  'View all data for current row.'
, ianalysis:                    'Summarise selected column.'
, ifilter:                      'Add filter for current cell value.'
, iimagefilter:                 'Show records with images only'
, iexcel:                       'Download results to excel file'
, noExcel:                      'Sorry, downloading is not enabled for this group'
, igooglemap:                   'Map collections with Google maps'
, igooglemaptagged:             'Show tagged only'
, igooglemapfiltered:           'Respect current filters'
, imatch:                       'Show record Matches.'
			// menus.js - resultsToolbar - right
, searchThePlantlist:           'Search The Plant List for selected species.'
, searchCRIA:                   'Run CRIA query on selected record.'
, searchIPNI:                   'Run IPNI query on selected record.'
, searchEdinburghOnline:        'Run Edinburgh Online query on selected record.'
, searchGoogle1:                'Run Google query on selected record.'
, searchGoogle2:                'Run Google Images query on selected record.'
, searchGBIF:                   'Run GBIF query on selected record.'
, searchHarvard1:               'Open Harvard University Herbaria search page.'
, searchHarvard2:               'Run Harvard University collector names query on selected record.'
, searchKewEPIC:                'Run Kew Electronic Plant Information Centre (ePIC) query on selected record.'
, searchSID:                    'Run Kew Seed Information Database (SID) query on selected record.'
, searchTROPICOS:               'Run Missouri Botanical Garden (TROPICOS) query on selected record.'
, searchNYBG:                   'NYBG - New York Botanic Garden query on selected record.'
, searchVFH:                    'Run Virtual Field Herbarium (VFH) query on selected record.'
, searchAPD:                    'Run African Plants Database (APD) query on selected record.'
, searchMultimap:               'Run MultiMap query on selected record.'
// profile.js - displayEmailForm
, profileFormTitle:             'Retrieve Profile'
, profileLabelEmail:            'Email Address'
, profileSend:                  'Send My Profile'
// profile.js - requestProfile
, profileTitleSuccess:          'Profile Request'
, profileTxtSuccess:            'Your registered profile has been sent to the e-mail address provided.'
, profileTitleFail:             'Sorry, your profile request has failed'
, profileTxtFail1:              'An internal error has prevented us from sending your profile.'
, profileTxtFail2:              'This error has been logged and will be addressed by the site administrator. ' +
								'In the meantime you can attempt to link to a different section of the site ' +
								'or try again later. We appreciate your patience.'
, profileTxtFail3:              'Error Detail'
// registration.js - CheckEmailAddress
, regWaitTitle:                 'Checking Registrations'
, regWaitMsg:                   'Searching Registration Database...'
, regErrMsgTitle1:              'Registration'
, regErrMsgTitle2:              'Whoops!'
, regErrMsg2:                   'The entered e-mail address may be incorrect. Please check and try again.'
, regErrMsgTitle3:              'Connection Failure'
, regErrMsg3:                   'A connection could not be established with the server. Please try again later.'
// registration.js - displayEmailForm
, regFormTitle:                 'BRAHMS Registration'
, regLabelEmail:                'Email Address'
// registration.js - displayRegistrationForm
, regLabelForename:             'Forename'
, regLabelSurname:              'Surname'
, regLabelTitle:                'Title'
, regLabelOrganization:         'Organization'
, regLabelAddress1:             'Address 1'
, regLabelAddress2:             'Address 2'
, regLabelCity:                 'City'
, regLabelState:                'State/Prov.'
, regLabelZip:                  'Zip/Postcode'
, regLabelWorkPhone:            'Work Phone'
, regLabelFax:                  'Fax'
, regLabelEmail:                'Email'
, regLabelProjectName:          'Project Name'
, regLabelConsent:              'I wish to be kept informed about software updates and occasional BRAHMS related information.'
, txtRegister:                  'Register'
, txtRegistering:               'Registering'
, txtTransmitting:              'Transmitting your details...'
, regTitleSuccess:              'Thank you for registering!'
, regMsgSuccess:                'An e-mail message containing your initial username and password along with information ' +
								'about applying for BRAHMS and BRAHMS online member facilities and/or obtaining a BRAHMS  ' +
								'software activation key has been sent to the e-mail address provided.'
, regTitleFail:                 'Sorry, registration has failed'
, regErrMggMissing:             'Some required information is missing, please check the form and try again.'
// resources.js - GRID  stuff
, cmheaderCategory:             'Category'
, cmheaderResource:             'Resource'
, cmheaderResourceDescription:  'Resource Description'
, resourceGridEmptyTxt:         'This group does not currently have any associated resources.'
, resourceGridGroupFile:        'File'
, resourceGridGroupFiles:       'Files'
// searches.js - initForm
, initSearchingTxt:             'searching'
, initTermsRequired:            'Please enter one or more search terms'
// searches.js - autosearch
, autoNoTxt:                    'no text'
, autoTop:                      'Top'
, autoRecord:                   'record'
, autoRecords:                  'records'
, autoShown:                    'shown'
, autoFound:                    'found'
, autoNoMatchingRecords:        'No Matching Records'
, autoZeroMatches:              '0 matches found'
// results.js - FieldDefsFailure
, resFieldDefsFailure:          'Failed to retrieve the data field definitions for displaying the search results.'
// results.js - tagAll/tagByValue
, resTagDataFailure:            'Failed to retrieve data for the tag store.'
// results.js - ColumnModelFailure
, resColumnModelFailure:        'Failed to retrieve the column model for displaying the search result.'
// results.js - FilterDefsFailure
, resFilterDefsFailure:         'Failed to retrieve any filter definitions for the current search.'
// results.js - createResultsTable - pagers
, resPagerNoRecords:            'No records to display'
, resPagerRecordCountTemplate: 'Displaying records {0} - {1} of {2}'
// results.js - createResultsTable - multi sort
, resSortButtonRemoveTxt:       'Remove'
, resSortBarIntro:              'Sorting order'
// results.js - createResultsTable - grid
, resGridEmptyText:             'No Matching Records Found'
, resGridTtbDisplay:            'Display'
, resGridTtbRPP:                'records per page'
		},

		'es': {
			emptyText: ''
			, txtReset: 'Reajustar'
			, txtClose: 'Cerrar'
			, txtCancel: 'Cancelar'
			, txtClear: 'Borrar'
			, txtNext: 'Próximo'
			, txtBack: 'Regresar'
			, noData: 'No hay datos disponibles.'
			// countries.js
			, chooseCountry: 'Elija un país...'
			// homepage.js
			, homeQuickSearch: 'Por favor introduzca uno o más caracteres en los que buscar.'
			// news.js
			, chooseDate: 'Elija una fecha...'
			// pubgroups.js
			, pubGroupsGridTitle: 'Publicado BRAHMS Online Bases de datos'
		, cmPubParentGroupHeader: 'Websites'
		, cmPubGroupHeader: 'Website'
		, cmPubGroupNotesHeader: 'Notes'
		, cmPubServerHeader: 'Server'
		, cmPubContactHeader: 'Contact'
			// menus.js - displayThumbs
			, titleThumbnails: 'Imagen en miniatura'
			, viewHR: 'Ver la versión de alta resolución'
			, noImages: 'No hay imágenes disponibles'
			// menus.js - selectFields
			, titleFieldVisibility: 'Visibilidad de datos de campo'
			// menus.js - showAllRecordData
			, titleRecordProperties: 'Registre las propiedades'
			// menus.js - showColumnData
			, titleColumnSummary: 'Resumen de columnas'
			// menus.js - showCellText
			, titleSelectedCellText: 'Texto seleccionado de la célula'
			// menus.js - showMap
			, titleNoMapData: 'No hay datos cartografiables'
			, txtNoMapData: 'Lo sentimos, este conjunto de resultados no contiene datos de representación cartográfica.'
			, titleGoogleMaps: 'Google Maps'
			, txtSpecies: 'Especies'
			, txtLat: 'Latitud'
			, txtLong: 'Longititude'
			, txtLocationNotes: 'Localización Notas'
			// menus.js - tagClickHandler
			, titleNoSelection: 'No hay ninguna selección detectado!'
			, txtNoSelection: 'Por favor, seleccione una celda y vuelve a intentarlo.'
			// menus.js - resultsToolbar - left
			, mTagging: 'Etiquetado'
			, mTag: 'Etiqueta todos los registros'
			, mUntag: 'Borrar todas las etiquetas'
			, mTagFilter: 'Etiqueta la selección de todos, como'
			, mUntagFilter: 'GANUPT selección como todos los'
			, mTagHighlight: 'Resalte \'a los registros'
			, isaz: 'Ordenar A-Z en la columna seleccionada.'
			, isza: 'Ordenar Z-A en la columna seleccionada'
			, iemail: 'Envíe sus comentarios a los datos de sus.'
			, ifields: 'Seleccione resultados visibles columnas.'
			, izoomcell: 'Ver texto para el campo seleccionado en ese momento.'
			, iwrap: 'Wrap / Desenvuelva contenido de la celda.'
			, izoomfields: 'Ver todos los datos para la fila actual.'
			, ianalysis: 'Resumir la columna seleccionada.'
			, ifilter: 'Añadir filtro para valor de la celda actual.'
			, iimagefilter: 'Mostrar registros con sólo imágenes.'
			, iexcel: 'Descargar resultados de archivo de Excel.'
			, noExcel: 'Lo sentimos, la descarga no está habilitada para este grupo.'
			, igooglemap: 'Mapa colecciones de mapas de Google.'
			, imatch: 'Mostrar Partidos registro.'
			// menus.js - resultsToolbar - right
			, searchThePlantlist: 'Search The Plant List for selected species.'
			, searchCRIA: 'Ejecutar consulta en CRIA registro seleccionado.'
			, searchIPNI: 'Ejecutar consulta en IPNI registro seleccionado.'
			, searchEdinburghOnline: 'Ejecutar consulta en Edinburgh Online registro seleccionado.'
			, searchGoogle1: 'Ejecutar consulta en Google registro seleccionado.'
			, searchGoogle2: 'Ejecutar Google Imágenes consulta en registro seleccionado.'
			, searchGBIF: 'Ejecutar consulta en GBIF registro seleccionado.'
			, searchHarvard1: 'Abrir la Universidad de Harvard Herbaria página de búsqueda.'
			, searchHarvard2: 'Ejecutar Harvard colector Universidad nombres consulta en registro seleccionado.'
			, searchKewEPIC: 'Ejecutar consulta en Kew Electronic Plant Information Centre (ePIC) registro seleccionado.'
			, searchSID: 'Ejecutar consulta en Kew Seed Information Database (SID) registro seleccionado.'
			, searchTROPICOS: 'Ejecutar consulta en Missouri Botanical Garden (TROPICOS) registro seleccionado.'
			, searchNYBG: 'Ejecutar consulta en NYBG - New York Botanic Garden registro seleccionado.'
			, searchVFH: 'Ejecutar consulta en Virtual Field Herbarium (VFH) registro seleccionado.'
			, searchAPD: 'Ejecutar consulta en African Plants Database (APD) registro seleccionado.'
			, searchMultimap: 'Ejecutar consulta en MultiMap registro seleccionado.'
			// profile.js - displayEmailForm
			, profileFormTitle: 'Recuperar perfile'
			, profileLabelEmail: 'Dirección de correo electrónico'
			, profileSend: 'Enviar mi perfil'
			// profile.js - requestProfile
			, profileTitleSuccess: 'Solicitud de perfil'
			, profileTxtSuccess: 'Su perfil registrado ha sido enviada a la dirección de correo electrónico proporcionada.'
			, profileTitleFail: 'Lo sentimos, su solicitud no ha perfil'
			, profileTxtFail1: 'Un error interno nos ha impedido el envío de tu perfil.'
			, profileTxtFail2: 'Este error ha sido registrado y será dirigida por el administrador del sitio. ' +
							   'Mientras tanto puedes intentar vincular a una sección diferente del sitio ' +
							   'o inténtelo de nuevo más tarde. Gracias por tu paciencia.'
			, profileTxtFail3: 'Información de errores'
			// registration.js - CheckEmailAddress
			, regWaitTitle: 'Comprobación de los registros'
			, regWaitMsg: 'Búsqueda de bases de datos de registro...'
			, regErrMsgTitle1: 'Registro'
			, regErrMsgTitle2: '¡Epa!'
			, regErrMsg2: 'La dirección introducida por e-mail puede ser incorrecta. Por favor, revise y vuelva a intentarlo.'
			, regErrMsgTitle3: 'Falla de conexión'
			, regErrMsg3: 'Una conexión no se pudo establecer con el servidor. Por favor, inténtelo de nuevo más tarde.'
			// registration.js - displayEmailForm
			, regFormTitle: 'BRAHMS Registro'
			, regLabelEmail: 'Dirección de correo electrónico'
			// registration.js - displayRegistrationForm
			, regLabelForename: 'Nombre'
			, regLabelSurname: 'Apellido'
			, regLabelTitle: 'Título'
			, regLabelOrganization: 'Organización'
			, regLabelAddress1: 'Dirección 1'
			, regLabelAddress2: 'Dirección 2'
			, regLabelCity: 'Ciudad'
			, regLabelState: 'Estado/Prov.'
			, regLabelZip: 'Zip/Código postal'
			, regLabelWorkPhone: 'Teléfono de trabajo'
			, regLabelFax: 'Fax'
			, regLabelEmail: 'Correo electrónico'
			, regLabelProjectName: 'Nombre del proyecto'
			, regLabelConsent: 'Deseo recibir información sobre actualizaciones de software y BRAHMS ocasionales información relacionada.'
			, txtRegister: 'Registro'
			, txtRegistering: 'El registro de'
			, txtTransmitting: 'Transmisión de los datos de su...'
			, regTitleSuccess: 'Gracias por registrarse!'
			, regMsgSuccess: 'Un mensaje de correo electrónico que contiene su nombre de usuario y la contraseña inicial junto ' +
							 ' con la información que soliciten BRAHMS e instalaciones BRAHMS miembro en línea y / o la obtención de una clave de ' +
							 'activación BRAHMS ha sido enviada a la dirección de correo electrónico proporcionada.'
			, regTitleFail: 'Lo sentimos, el registro no ha'
			, regErrMggMissing: 'Parte de la información que falte, por favor revise la forma y vuelve a intentarlo.'
			// resources.js - GRID  stuff
			, cmheaderCategory: 'Categoría'
			, cmheaderResource: 'Recurso'
			, cmheaderResourceDescription: 'Descripción de los recursos'
			, resourceGridEmptyTxt: 'Este grupo no tiene actualmente los recursos asociados.'
			, resourceGridGroupFile: 'Archivo'
			, resourceGridGroupFiles: 'Archivos'
			// searches.js - initForm
			, initSearchingTxt: 'búsqueda'
			, initTermsRequired: 'Por favor, introduzca uno o más términos de búsqueda.'
			// searches.js - autosearch
			, autoNoTxt: 'no hay texto'
			, autoTop: 'Top'
			, autoRecord: 'registro'
			, autoRecords: 'registros'
			, autoShown: 'mostrados'
			, autoFound: 'encontrados'
			, autoNoMatchingRecords: 'No hay registros coincidentes'
			, autoZeroMatches: '0 coincidencias encontradas'
			// results.js - FieldDefsFailure
			, resFieldDefsFailure: 'Error al recuperar las definiciones de campo de datos para mostrar los resultados de búsqueda.'
			// results.js - tagAll/tagByValue
			, resTagDataFailure: 'Error al recuperar datos para el almacén de etiqueta'
			// results.js - ColumnModelFailure
			, resColumnModelFailure: 'No se ha podido recuperar el modelo de columna para mostrar el resultado de la búsqueda.'
			// results.js - FilterDefsFailure
			, resFilterDefsFailure: 'No se ha podido recuperar ninguna definición de filtro para la búsqueda actual.'
			// results.js - createResultsTable - pagers
			, resPagerNoRecords: 'No hay registros para mostrar'
			, resPagerRecordCountTemplate: 'Mostrar registros {0} - {1} de {2}'
			// results.js - createResultsTable - multi sort
			, resSortButtonRemoveTxt: 'Eliminar'
			, resSortBarIntro: 'Clasificación para'
			// results.js - createResultsTable - grid
			, resGridEmptyText: 'No hay registros coincidentes'
			, resGridTtbDisplay: 'Mostrar'
			, resGridTtbRPP: 'registros por página'
		}
	},
	code = 'en_GB',
	defaultCode = 'en_GB';

	return {

		setLanguageCode: function (newCode) {
			code = (newCode || defaultCode).replace('-', '_');
		},
		getLanguageCode: function () {
			return code.replace('_', '-');
		},
		getLocaleString: function (key) {
			var d = dictionary[code] || dictionary[defaultCode];
			if (d) {
				return (d[key]) || (d[key]) || '{Locale key "' + key + '" not found}';
			} else {
				return '???'
			}
		}
	};
} ());
