diff --git a/adminer/include/lang.inc.php b/adminer/include/lang.inc.php
index 71e3e97d..84fce5e5 100644
--- a/adminer/include/lang.inc.php
+++ b/adminer/include/lang.inc.php
@@ -14,6 +14,7 @@ $langs = array(
'et' => 'Eesti', // Priit Kallas
'fa' => 'فارسی', // mojtaba barghbani - Iran - mbarghbani@gmail.com, Nima Amini - http://nimlog.com
'fr' => 'Français', // Francis Gagné, Aurélien Royer
+ 'gl' => 'Galego', // Eduardo Penabad Ramos
'hu' => 'Magyar', // Borsos Szilárd (Borsosfi) - http://www.borsosfi.hu, info@borsosfi.hu
'id' => 'Bahasa Indonesia', // Ivan Lanin - http://ivan.lanin.org
'it' => 'Italiano', // Alessandro Fiorotto, Paolo Asperti
diff --git a/adminer/lang/gl.inc.php b/adminer/lang/gl.inc.php
new file mode 100644
index 00000000..aa643054
--- /dev/null
+++ b/adminer/lang/gl.inc.php
@@ -0,0 +1,293 @@
+ 'Conectar',
+ 'Logout successful.' => 'Pechouse a sesión con éxito.',
+ 'Invalid credentials.' => 'Credenciais (usuario e/ou contrasinal) inválidos.',
+ 'Server' => 'Servidor',
+ 'Username' => 'Usuario',
+ 'Password' => 'Contrasinal',
+ 'Select database' => 'Seleccionar Base de datos',
+ 'Invalid database.' => 'Base de datos incorrecta.',
+ 'Create new database' => 'Crear nova base de datos',
+ 'Table has been dropped.' => 'Eliminouse a táboa.',
+ 'Table has been altered.' => 'Modificouse a táboa.',
+ 'Table has been created.' => 'Creouse a táboa.',
+ 'Alter table' => 'Modificar táboa',
+ 'Create table' => 'Crear táboa',
+ 'Table name' => 'Nome da táboa',
+ 'engine' => 'motor',
+ 'collation' => 'xogo de caracteres (collation)',
+ 'Column name' => 'Nome da columna',
+ 'Type' => 'Tipo',
+ 'Length' => 'Lonxitude',
+ 'Auto Increment' => 'Incremento automático',
+ 'Options' => 'Opcións',
+ 'Save' => 'Gardar',
+ 'Drop' => 'Eliminar',
+ 'Database has been dropped.' => 'Eliminouse a base de datos.',
+ 'Database has been created.' => 'Creouse a base de datos.',
+ 'Database has been renamed.' => 'Renomeouse a base de datos.',
+ 'Database has been altered.' => 'Modificouse a base de datos.',
+ 'Alter database' => 'Modificar Base de datos',
+ 'Create database' => 'Crear Base de datos',
+ 'SQL command' => 'Comando SQL',
+ 'Logout' => 'Pechar sesión',
+ 'database' => 'base de datos',
+ 'Use' => 'Usar',
+ 'No tables.' => 'Nengunha táboa.',
+ 'select' => 'selecciona',
+ 'Item has been deleted.' => 'Eliminouse o elemento.',
+ 'Item has been updated.' => 'Modificouse o elemento.',
+ 'Item%s has been inserted.' => 'Inseríuse o elemento%s.',
+ 'Edit' => 'Editar',
+ 'Insert' => 'Inserir',
+ 'Save and insert next' => 'Guardar e inserir seguinte',
+ 'Delete' => 'Borrar',
+ 'Database' => 'Base de datos',
+ 'Routines' => 'Rutinas',
+ 'Indexes have been altered.' => 'Alteráronse os índices.',
+ 'Indexes' => 'Índices',
+ 'Alter indexes' => 'Modificar índices',
+ 'Add next' => 'Engadir seguinte',
+ 'Language' => 'Lingua',
+ 'Select' => 'Seleccionar',
+ 'New item' => 'Novo elemento',
+ 'Search' => 'Buscar',
+ 'Sort' => 'Ordenar',
+ 'descending' => 'descendente',
+ 'Limit' => 'Límite',
+ 'No rows.' => 'Nengún resultado.',
+ 'Action' => 'Acción',
+ 'edit' => 'editar',
+ 'Page' => 'Páxina',
+ 'Query executed OK, %d row(s) affected.' => array('Consulta executada, %d fila afectada.', 'Consulta executada, %d filas afectadas.'),
+ 'Error in query' => 'Erro na consulta',
+ 'Execute' => 'Executar',
+ 'Table' => 'Táboa',
+ 'Foreign keys' => 'Chaves externas',
+ 'Triggers' => 'Disparadores',
+ 'View' => 'Vista',
+ 'Unable to select the table' => 'No é posible seleccionar a táboa',
+ 'Invalid CSRF token. Send the form again.' => 'Token CSRF inválido. Envíe de novo os datos do formulario.',
+ 'Comment' => 'Comentario',
+ 'Default values' => 'Valores predeterminados',
+ '%d byte(s)' => array('%d byte', '%d bytes'),
+ 'No commands to execute.' => 'Non hai comandos para executar.',
+ 'Unable to upload a file.' => 'Non é posible importar o ficheiro.',
+ 'File upload' => 'Importar ficheiro',
+ 'File uploads are disabled.' => 'Importación de ficheiros deshablilitada.',
+ 'Routine has been called, %d row(s) affected.' => array('Chamouse á rutina, %d fila afectada.', 'Chamouse á rutina, %d filas afectadas.'),
+ 'Call' => 'Chamar',
+ 'No extension' => 'Non ten extensión',
+ 'None of the supported PHP extensions (%s) are available.' => 'Ningunha das extensións PHP soportadas (%s) está dispoñible.',
+ 'Session support must be enabled.' => 'As sesións deben estar habilitadas.',
+ 'Session expired, please login again.' => 'Caducou a sesión, por favor acceda de novo.',
+ 'Text length' => 'Lonxitud do texto',
+ 'Foreign key has been dropped.' => 'Eliminouse a chave externa.',
+ 'Foreign key has been altered.' => 'Modificouse a chave externa.',
+ 'Foreign key has been created.' => 'Creouse a chave externa.',
+ 'Foreign key' => 'Chave externa',
+ 'Target table' => 'táboa de destino',
+ 'Change' => 'Cambiar',
+ 'Source' => 'Orixe',
+ 'Target' => 'Destino',
+ 'Add column' => 'Engadir columna',
+ 'Alter' => 'Modificar',
+ 'Add foreign key' => 'Engadir chave externa',
+ 'ON DELETE' => 'AO BORRAR (ON DELETE)',
+ 'ON UPDATE' => 'AO ACTUALIZAR (ON UPDATE)',
+ 'Index Type' => 'Tipo de índice',
+ 'Column (length)' => 'Columna (lonxitude)',
+ 'View has been dropped.' => 'Eliminouse a vista.',
+ 'View has been altered.' => 'Modificouse a vista.',
+ 'View has been created.' => 'Creouse a vista.',
+ 'Alter view' => 'Modificar vista',
+ 'Create view' => 'Crear vista',
+ 'Name' => 'Nome',
+ 'Process list' => 'Lista de procesos',
+ '%d process(es) have been killed.' => array('%d proceso foi detido.', '%d procesos foron detidos.'),
+ 'Kill' => 'Deter',
+ 'Parameter name' => 'Nome de Parámetro',
+ 'Database schema' => 'Esquema de base de datos',
+ 'Create procedure' => 'Crear procedemento',
+ 'Create function' => 'Crear función',
+ 'Routine has been dropped.' => 'Eliminouse o procedemento.',
+ 'Routine has been altered.' => 'Alterouse o procedemento.',
+ 'Routine has been created.' => 'Creouse o procedemento.',
+ 'Alter function' => 'Modificar Función',
+ 'Alter procedure' => 'Modificar procedemento',
+ 'Return type' => 'Tipo de valor devolto',
+ 'Add trigger' => 'Engadir disparador',
+ 'Trigger has been dropped.' => 'Eliminouse o disparador.',
+ 'Trigger has been altered.' => 'Modificouse o disparador.',
+ 'Trigger has been created.' => 'Creouse o disparador.',
+ 'Alter trigger' => 'Modificar Disparador',
+ 'Create trigger' => 'Crear Disparador',
+ 'Time' => 'Tempo',
+ 'Event' => 'Evento',
+ '%s version: %s through PHP extension %s' => 'Versión %s: %s a través da extensión de PHP %s',
+ '%d row(s)' => array('%d fila', '%d filas'),
+ 'Remove' => 'Eliminar',
+ 'Are you sure?' => 'Está seguro?',
+ 'Privileges' => 'Privilexios',
+ 'Create user' => 'Crear Usuario',
+ 'User has been dropped.' => 'Eliminouse o usuario.',
+ 'User has been altered.' => 'Modificouse o usuario.',
+ 'User has been created.' => 'Creouse o usuario.',
+ 'Hashed' => 'Hashed',
+ 'Column' => 'Columna',
+ 'Routine' => 'Rutina',
+ 'Grant' => 'Conceder',
+ 'Revoke' => 'Revocar',
+ 'Too big POST data. Reduce the data or increase the %s configuration directive.' => 'Datos POST demasiado grandes. Reduza os datos ou aumente a directiva de configuración %s.',
+ 'Logged as: %s' => 'Conectado como: %s',
+ 'Move up' => 'Mover arriba',
+ 'Move down' => 'Mover abaixo',
+ 'Functions' => 'Funcións',
+ 'Aggregation' => 'Agregados',
+ 'Export' => 'Exportar',
+ 'Output' => 'Salida',
+ 'open' => 'abrir',
+ 'save' => 'gardar',
+ 'Format' => 'Formato',
+ 'Tables' => 'Táboas',
+ 'Data' => 'Datos',
+ 'Event has been dropped.' => 'Eliminouse o evento.',
+ 'Event has been altered.' => 'Modificouse o evento.',
+ 'Event has been created.' => 'Creouse o evento.',
+ 'Alter event' => 'Modificar Evento',
+ 'Create event' => 'Crear Evento',
+ 'At given time' => 'No tempo indicado',
+ 'Every' => 'Cada',
+ 'Events' => 'Eventos',
+ 'Schedule' => 'Axenda',
+ 'Start' => 'Inicio',
+ 'End' => 'Fin',
+ 'Status' => 'Estado',
+ 'On completion preserve' => 'Ao completar manter',
+ 'Tables and views' => 'táboas e vistas',
+ 'Data Length' => 'Lonxitude de datos',
+ 'Index Length' => 'Lonxitude de índice',
+ 'Data Free' => 'Espazo dispoñible',
+ 'Collation' => 'Xogo de caracteres (collation)',
+ 'Analyze' => 'Analizar',
+ 'Optimize' => 'Optimizar',
+ 'Check' => 'Comprobar',
+ 'Repair' => 'Reparar',
+ 'Truncate' => 'Baleirar',
+ 'Tables have been truncated.' => 'Baleiráronse as táboas.',
+ 'Rows' => 'Filas',
+ ',' => ' ',
+ '0123456789' => '0123456789',
+ 'Tables have been moved.' => 'Movéronse as táboas.',
+ 'Move to other database' => 'Mover a outra base de datos',
+ 'Move' => 'Mover',
+ 'Engine' => 'Motor',
+ 'Save and continue edit' => 'Gardar se seguir editando',
+ 'original' => 'orixinal',
+ 'Tables have been dropped.' => 'Elimináronse as táboas.',
+ '%d item(s) have been affected.' => array('%d elemento afectado.', '%d elementos afectados.'),
+ 'whole result' => 'resultado completo',
+ 'Clone' => 'Clonar',
+ 'Maximum number of allowed fields exceeded. Please increase %s.' => 'Excedida o número máximo de campos permitidos. Por favor aumente %s.',
+ 'Partition by' => 'Particionar por',
+ 'Partitions' => 'Particións',
+ 'Partition name' => 'Nome da Partición',
+ 'Values' => 'Valores',
+ '%d row(s) have been imported.' => array('%d fila importada.', '%d filas importadas.'),
+ 'anywhere' => 'onde sexa',
+ 'Import' => 'Importar',
+ 'Stop on error' => 'Parar en caso de erro',
+ '%.3f s' => '%.3f s',
+ '$1-$3-$5' => '$5/$3/$1',
+ '[yyyy]-mm-dd' => 'dd/mm/[aaaa]',
+ 'History' => 'Histórico',
+ 'Variables' => 'Variables',
+ 'Source and target columns must have the same data type, there must be an index on the target columns and referenced data must exist.' => 'As columnas de orixe e destino deben ser do mesmo tipo, debe existir un índice nas columnas de destino e os datos referenciados deben existir.',
+ 'Relations' => 'Relacins',
+ 'Run file' => 'Executar ficheiro',
+ 'Clear' => 'Baleirar',
+ 'Maximum allowed file size is %sB.' => 'O tamaño máximo de ficheiro permitido é de %sB.',
+ 'Numbers' => 'Números',
+ 'Date and time' => 'Data e hora',
+ 'Strings' => 'Cadea',
+ 'Binary' => 'Binario',
+ 'Lists' => 'Listas',
+ 'Editor' => 'Editor',
+ 'E-mail' => 'Email',
+ 'From' => 'De',
+ 'Subject' => 'Asunto',
+ 'Send' => 'Enviar',
+ '%d e-mail(s) have been sent.' => array('%d email enviado.', '%d emails enviados.'),
+ 'Webserver file %s' => 'Ficheiro de servidor web %s',
+ 'File does not exist.' => 'O ficheiro non existe.',
+ '%d in total' => '%d en total',
+ 'Permanent login' => 'Permanecer conectado',
+ 'Databases have been dropped.' => 'Elimináronse as bases de datos.',
+ 'Search data in tables' => 'Buscar datos en táboas',
+ 'Schema' => 'Esquema',
+ 'Alter schema' => 'Modificar esquema',
+ 'Create schema' => 'Crear esquema',
+ 'Schema has been dropped.' => 'Eliminouse o esquema.',
+ 'Schema has been created.' => 'Creouse o esquema.',
+ 'Schema has been altered.' => 'Modificouse o esquema.',
+ 'Sequences' => 'Secuencias',
+ 'Create sequence' => 'Crear secuencias',
+ 'Alter sequence' => 'Modificar secuencia',
+ 'Sequence has been dropped.' => 'Eliminouse a secuencia.',
+ 'Sequence has been created.' => 'Creouse a secuencia.',
+ 'Sequence has been altered.' => 'Modificaouse a secuencia.',
+ 'User types' => 'Tipos definidos polo usuario',
+ 'Create type' => 'Crear tipo',
+ 'Alter type' => 'Modificar tipo',
+ 'Type has been dropped.' => 'Eliminouse o tipo.',
+ 'Type has been created.' => 'Creouse o tipo.',
+ 'Ctrl+click on a value to modify it.' => 'Ctrl+clic sobre o valor para editalo.',
+ 'Use edit link to modify this value.' => 'Use a ligazón de edición para modificar este valor.',
+ 'last' => 'último',
+ 'From server' => 'Desde o servidor',
+ 'System' => 'Sistema',
+ 'Select data' => 'Seleccionar datos',
+ 'Show structure' => 'Amosar estructura',
+ 'empty' => 'baleiro',
+ 'Network' => 'Rede',
+ 'Geometry' => 'Xeometría',
+ 'File exists.' => 'O ficheiro xa existe.',
+ 'Attachments' => 'Adxuntos',
+ '%d query(s) executed OK.' => array('%d consulta executada correctamente.', '%d consultas executadas correctamente.'),
+ 'Show only errors' => 'Amosar só erros',
+ 'Refresh' => 'Refrescar',
+ 'Invalid schema.' => 'Esquema inválido.',
+ 'Please use one of the extensions %s.' => 'Por favor use unha das extensións %s.',
+ 'now' => 'agora',
+ 'ltr' => 'ltr',
+ 'Tables have been copied.' => 'Copiáronse as táboas.',
+ 'Copy' => 'Copiar',
+ 'Permanent link' => 'Ligazón permanente',
+ 'Edit all' => 'Editar todo',
+ 'HH:MM:SS' => 'HH:MM:SS',
+ 'Tables have been optimized.' => 'Optimizáronse as táboas',
+ 'Materialized View' => 'Vista materializada',
+ 'Vacuum' => 'Baleirar',
+ 'Selected' => 'Selección',
+ 'Create materialized view' => 'Crear vista materializada',
+ 'File must be in UTF-8 encoding.' => 'O ficheiro ten que estar codificado con UTF-8',
+ 'Modify' => 'Modificar',
+ 'Loading' => 'Cargando',
+ 'Load more data' => 'Cargar máis datos',
+ '%d / ' => array('%d / ','%d / '),
+ 'Limit rows' => 'Limitar filas',
+ 'Default value' => 'Valor por defecto',
+ 'Full table scan' => 'Escaneo completo da táboa',
+ 'Too many unsuccessful logins, try again in %d minute(s).' => array('Demasiados intentos de conexión, intentao de novo en %d minuto', 'Demasiados intentos de conexión, intentao de novo en %d minutos'),
+ 'Master password expired. Implement %s method to make it permanent.' => 'O contrasinal principal caducou. Implementa o método %s para facelo permanente.',
+ 'If you did not send this request from Adminer then close this page.' => 'Se non enviaches esta petición dende o Adminer entón pecha esta páxina',
+ 'You can upload a big SQL file via FTP and import it from server.' => 'Podes subir un ficheiro SQL de gran tamaño vía FTP e importalo dende o servidor',
+ 'Size' => 'Tamaño',
+ 'Compute' => 'Calcular',
+ 'You are offline.' => 'Non tes conexión',
+ 'You have no privileges to update this table.' => 'Non tes privilexios para actualizar esta táboa',
+ 'Saving' => 'Gardando',
+ 'yes' => 'si',
+ 'no' => 'non',
+);
diff --git a/changes.txt b/changes.txt
index d4f9627a..19cf1a73 100644
--- a/changes.txt
+++ b/changes.txt
@@ -1,5 +1,6 @@
Adminer 4.2.3-dev:
Greek translation
+Galician translation
Adminer 4.2.2 (released 2015-08-05):
Fix XSS in alter table (found by HP Fortify)