unit usetlanguage;

{$mode delphi}

interface

uses
  Classes, SysUtils,
  LResources,  LCLTranslator;

(*

Esta unidad permite realizar el cambio de idioma buscando en la misma carpeta
con el nombre del ejecutable un archivo con extensión .mo

Incluir esta unidade en el archivo del proyecto.

*)

procedure ChangeLanguage( new_LangId: string );

// retorna el identificador de dos caracteres 'es', 'en'
function idioma: string;

implementation

uses
  uauxiliares;

var
   langID: string;

function archiLangId: string;
begin
  result:= ExtractFileDir(ParamStr(0))+DirectorySeparator+'language_id.txt';
end;

procedure SetLanguage;
var
  f: textfile;
  archi: string;

begin
  langID:= '';
  archi:= archiLangId;
  if fileexists( archi ) then
  begin
    assignfile( f, archi );
    reset( f );
    readln( f, langID );
    closefile( f );
    langID:= trim( langID );
  end
  else
    LangId:= '';

  if LangID = 'en' then
      uauxiliares.setSeparadoresGlobales;
  SetDefaultLang( LangID, '', false);

end;


procedure ChangeLanguage( new_LangId: string );
var
  archi: string;
  f: textfile;
begin
  archi:= archiLangId;
  assignfile( f, archi );
  rewrite( f );
  writeln( f, new_langId );
  closefile( f );
  SetLanguage;
end;


function idioma: string;
begin
  result:= langID;
end;

initialization
 SetLanguage;
end.

