[Lazarus-es] (sin asunto)

hfiandor hfiandor en ceniai.inf.cu
Mie Jun 1 06:53:17 CEST 2016


Estimado Cuello:

 

Muchas gracias por su respuesta.

 

A continuación le copio mi .lpr

 

program Contratos;

{Version 10}

{$mode objfpc}{$H+}

 

uses

  {$IFDEF UNIX}{$IFDEF UseCThreads}

  cthreads,

  {$ENDIF}{$ENDIF}

  Interfaces, // this includes the LCL widgetset

  Forms, sqlite3laz, uSeleccion, upassword_1, ulicencia, uPortada,

  uLecturaEscritura, uFinal, uanimador, udm, ufondo, uvarios, uvariables,

  uFecha, uAreaEjecutiva, uactividades, uactivas, uClientes, uNegocios,

  uTerminados, uServicios, uNSA_x_Area, uNoComenzados, uNegSerAct, uTerAuxiliar,

  uNSAAuxiliar, uNegAuxiliar, uAuxiliar_2, uAuxiliar_1, uvales_insmed_aux,

  uvales_InsMed, uHacerListado_insmed_aux, uInsertarEjecutadas,

  uhacerlistado_NSA_aux, uestadocuenta_2, uEC_auxiliar, uVerFacturas_1;

 

{$R *.res}

 

begin

  TranslateLCL;

  RequireDerivedFormResource := True;

  Application.Initialize;

  Application.CreateForm(TfDM, fDM);

  Application.CreateForm(Tffondo, ffondo);

  Application.Run;

end.

 

Como puede observer, escribo al inicio del begin …  end la sentencia “TranslateLCL”, cuyo procedure está en una unit  (uVarios) que uso para los procedure comunes, y que transcribo a continuación:

 

procedure TranslateLCL;

var

  PODirectory, Lang, FallbackLang: String;

begin

  //PODirectory:='e:\lazarus\lcl\languages\';

  PODirectory:='d:\lazarus\lcl\languages\';

  Lang:='es';

  FallbackLang:='';

  LCLGetLanguageIDs(Lang,FallbackLang); // in unit LCLProc

  Translations.TranslateUnitResourceStrings('LCLStrConsts',

                      PODirectory+'lclstrconsts.%s.po',Lang,FallbackLang);

  // ... add here a TranslateUnitResourceStrings call for every po file ...

 

  TranslateUnitResourceStrings('LCLStrConsts','languages/lclstrconsts.%s.po','es','');

  TranslateUnitResourceStrings('Lr_const','languages/lr_const.%s.po','es','');

end;

 

He añadido las dos últimas líneas, y al compilar, compiló bien, sin “quejarse”. Cuando no las tenía, compilaba igual y parece que trabajaba bien, en mi PC.

 

En esta unit uVarios si se llama a la unit Translation como verá

uses

  SysUtils, Classes,{Graphics,} Controls, {Forms,} Math,

  Dialogs, Buttons, uvariables, {printers,}

  translations, LCLProc;

 

 

 

Al llevar el .exe para otra máquina, allí no está el  PODirectory:='d:\lazarus\lcl\languages\'; y por tanto, no puede hacer este procedure.

 

Ya investigué y la unit translations pertenece a un paquete. No se recomienda incorporarla como una unit independiene al Proyecto (Ctrl+F11).

 

Si no entendí mal, lo que usted me sugiere es escribir “a mano” la palabra “Translations” en el uses del .lpr, pudiera ser después de “Forms”, por ejemplo.

Para que en otra máquina esto se lea, tendría que copiar la unit Translations en la PC del cliente. Cierto o no?

 

¿Sería necesario incluir las dos líneas  

TranslateUnitResourceStrings('LCLStrConsts','languages/lclstrconsts.%s.po','es','');

TranslateUnitResourceStrings('Lr_const','languages/lr_const.%s.po','es','');

en el begin … end del .lpr?

 

Espero me perdone mi torpeza, pero es la primera vez que hago algo con esto.

 

Saludos

Ing. Héctor F. Fiandor Rosario

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20160601/b12492fd/attachment.html>


More information about the Lazarus-es mailing list