TpLENGUAJE

De Pragma Wiki
Ir a la navegación Ir a la búsqueda

Introducción

El objeto TpLENGUAJE (Manejo de traducciones de lenguajes) administra las traducciones de lenguajes documentadoos en LENGUAJES.

Se instancia en TprxADOClientDM.

Identidad

  • Ancestro: TComponent
  • Carpeta: C:\DevelopPrx\pPRAGMA
  • Archivo: pLENGUAJE_unit.pas

Declaración

type
  TpLENGUAJE = class(TComponent)
  private
    FQuery: TprxADOQuery;
    FLenguaje: String;

    FTextos: TStringList;
    FTextosT: TStringList;
  protected
    procedure   Lenguaje_Set(aValue: String);

    property    Query: TprxADOQuery read FQuery write FQuery;

    property    Textos: TStringList read FTextos write FTextos;
    property    TextosT: TStringList read FTextosT write FTextosT;
  public
    constructor Create(AOwner: TComponent); override;
    destructor  Destroy; override;

    function    Traducir(aTexto: String): String; overload;

    property    Lenguaje: String read FLenguaje write Lenguaje_Set;
  published
  end;

variable FLenguaje

La variable FLenguaje guarda el lenguaje asociado al usuario.

Su declaración es:

  private
    FLenguaje: String;
<pre>

Pero tiene un métido de acceso definido como:
<pre>
  public
    property    Lenguaje: String read FLenguaje write Lenguaje_Set;

La función Lenguaje_Set se describe en la implementación.

Implementación

procedure Lenguaje_Set(aValue: String)

Este procedimiento se ejecuta cuando se asigna la variable FLenguaje y carga todos los textos del diccionario, más su traducción en el lenguaje informado en el argumento.

El código es:

procedure TpLENGUAJE.Lenguaje_Set(aValue: String);
begin
  FLenguaje := aValue;

  Textos.Clear;
  TextosT.Clear;

  Query.SQLX.Clear;
  Query.SQLX.Add('SELECT');
  Query.SQLX.Add('pLENGUAJE_TRADUCCION.FTEXTO');
  Query.SQLX.Add(', pLENGUAJE_TRADUCCION.FTRADUCCION');
  Query.SQLX.Add('FROM');
  Query.SQLX.Add('pLENGUAJE_TRADUCCION');
  Query.SQLX.Add('WHERE');
  Query.SQLX.Add('pLENGUAJE_TRADUCCION.FLENGUAJE = ' + Q(FLenguaje));
  Query.SQLX.Add('ORDER BY 1');

  Query.Select(Query.SQLX);

  while Query.Eof = False do
        begin
        Textos.Add(Query.FieldByName('FTEXTO').AsString);
        TextosT.Add(Query.FieldByName('FTRADUCCION').AsString);

        Query.Next;
        end;
end;

function Traducir(aTexto: String): String

Busca la traducción de un texto, si la encuentra la retorna, sino retorna el mismo texto.