Utilizando la unidad Translations y lafunción TranslateUnitResourceStrings.
En nuestra unidad principal del proyecto debemos incluir la unidad Translations de la manera habitual:
uses Translations
Luego podemos definir un procedimiento privado dentro del formulario de la misma unidad principal de esta forma:
private
procedure Traducir;
Lo implementamos:
procedure TForm1.Traducir;
var
Lang, FallbackLang: string;
begin
Lang := 'es';
FallBackLang := '';
TranslateUnitResourceStrings('LclStrConsts','lclstrconsts.es.po', Lang, FallbackLang);
TranslateUnitResourceStrings('lr_const','lr_const.es.po', Lang, FallbackLang);
TranslateUnitResourceStrings('printer4lazstrconst','printer4lazstrconst.es.po', Lang, FallbackLang);
end;
Aclaraciones:
lclstrconsts.es.po: ya viene incluído con Lazarus, traduce los diálogos y botones.
lr_const.es.po: Solo si se utiliza LazReports, el archivo está incluido en el paquete.
printer4lazstrconst.es.po: es para traducir los diálogos de impresión, que no están traducidos en Lazarus 1.6, por lo que lo traduje y lo posteé en el foro de Lazarus para que lo agreguen, desconozco si está incuído en versiones posteriores a la 1.6, por ende es probable que si no se posee el archivo printer4lazstrconst.es.po o bien puede tirar un error o simplemente no traducir.
Finalmente debemos hacer la llamada al procedimiento, sino, no pasa nada:
procedure TForm1.FormCreate(Sender: TObject);
begin
Traducir;
end;
Si esto no funciona de la forma esperada hay dos opciones: una es estudiar a fondo el tema empezando por la wiki: http://wiki.freepascal.org/Translations_/_i18n_/_localizations_for_programs/es . La otra es copiando esos 3 archivos en la carpeta de nuestro proyecto y listo.
Los dos primeros archivos, como ya dije, vienen incluídos, por lo tanto solo hay que encontrarlos y copiarlos.
En esta carpeta están los 3 archivos, si se está usando la versión 1.6 de Lazarus se pueden usar sin problemas todos. Para el caso de los diálogos de impresora, pueden usarse de manera segura en versiones 1.6 y anteriores.
No hay comentarios:
Publicar un comentario