Utilizamos cookies propias y de terceros. Al navegar entendemos que aceptas el uso de cookies. +Info.
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Usuario
· Wiki

Proyecto AjpdSoft: Foros

AjpdSoft :: Ver tema - Traducir recursos del QuantumGrid de DevExpress
Foros de discusión Buscar Perfil FAQ Iniciar sesión
Information Traducir recursos del QuantumGrid de DevExpress

Publicar nuevo tema Responder al tema
Foros de discusión » Borland Delphi, Codegear Delphi .Net   
Ver tema anterior :: Ver tema siguiente
AutorMensaje
varios
Magnífico usuario


Registrado: Oct 10, 2006
Mensajes: 2092

Asunto: Traducir recursos del QuantumGrid de DevExpress Responder citando

Quisiera saber si se pueden traducir las opciones que aparecen en inglés en el componente ExpressQuantumGrid de la empresa Developer Express Inc. Por ejemplo, al desplegar un filtro aparece "Custom, Blank, All, etc", o en la ventana de filtro personalizado aparece "Equal, Not Equal, Greater or Equal, etc". También en la ventana de "Column Selector", etc.
MensajePublicado:
Vie Feb 02, 2007 6:13 pm
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: Traducir recursos del QuantumGrid de DevExpress Responder citando



Anuncios



varios escribió:
Quisiera saber si se pueden traducir las opciones que aparecen en inglés en el componente ExpressQuantumGrid de la empresa Developer Express Inc. Por ejemplo, al desplegar un filtro aparece "Custom, Blank, All, etc", o en la ventana de filtro personalizado aparece "Equal, Not Equal, Greater or Equal, etc". También en la ventana de "Column Selector", etc.



Efectivamente, dichos recursos son perfectamente traducibles. Para ello tienes que seguir los siguientes pasos:

* En la carpeta de instalación del componente, normalmente:

C:\Archivos de programa\Developer Express Inc\ExpressQuantumGrid

accedes a la carpeta de la versión de Delphi para la que lo hayas instalado y accedes a la carpeta "Sources": Delphi 6\Sources

en esta carpeta hay varios ficheros que deberás abrir, uno de ellos es: dxGrFCmn.pas, que contiene algo así como:

Código:

{*******************************************************************}
{                                                                   }
{       Developer Express Visual Component Library                  }
{       ExpressQuantumGrid filter common                            }
{                                                                   }
{       Copyright (c) 1998-2001 Developer Express Inc.              }
{       ALL RIGHTS RESERVED                                         }
{                                                                   }
{   The entire contents of this file is protected by U.S. and       }
{   International Copyright Laws. Unauthorized reproduction,        }
{   reverse-engineering, and distribution of all or any portion of  }
{   the code contained in this file is strictly prohibited and may  }
{   result in severe civil and criminal penalties and will be       }
{   prosecuted to the maximum extent possible under the law.        }
{                                                                   }
{   RESTRICTIONS                                                    }
{                                                                   }
{   THIS SOURCE CODE AND ALL RESULTING INTERMEDIATE FILES           }
{   (DCU, OBJ, DLL, ETC.) ARE CONFIDENTIAL AND PROPRIETARY TRADE    }
{   SECRETS OF DEVELOPER EXPRESS INC. THE REGISTERED DEVELOPER IS   }
{   LICENSED TO DISTRIBUTE THE EXPRESSGRID AND ALL ACCOMPANYING VCL }
{   CONTROLS AS PART OF AN EXECUTABLE PROGRAM ONLY.                 }
{                                                                   }
{   THE SOURCE CODE CONTAINED WITHIN THIS FILE AND ALL RELATED      }
{   FILES OR ANY PORTION OF ITS CONTENTS SHALL AT NO TIME BE        }
{   COPIED, TRANSFERRED, SOLD, DISTRIBUTED, OR OTHERWISE MADE       }
{   AVAILABLE TO OTHER INDIVIDUALS WITHOUT EXPRESS WRITTEN CONSENT  }
{   AND PERMISSION FROM DEVELOPER EXPRESS INC.                      }
{                                                                   }
{   CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON       }
{   ADDITIONAL RESTRICTIONS.                                        }
{                                                                   }
{*******************************************************************}

unit dxGrFCmn;

interface

{$I dxTLVer.inc}

type
  TdxDBGridOperatorType = (gotEqual, gotNotEqual,
    gotGreater, gotGreaterEqual, gotLess,  gotLessEqual,
    gotBlank, gotNonBlank);
  TdxDBGridOperatorTypes = set of TdxDBGridOperatorType;
 
resourcestring
  dxSFilterOperatorEqual = 'equals';
  dxSFilterOperatorNotEqual = 'does not equal';
  dxSFilterOperatorGreater = 'is greater than';
  dxSFilterOperatorGreaterEqual = 'is greater than or equal to';
  dxSFilterOperatorLess = 'is less than';
  dxSFilterOperatorLessEqual = 'is less than or equal to';
  dxSFilterOperatorBlanks = 'blanks';
  dxSFilterOperatorNonBlanks = 'non blanks';
  dxSFilterInvalidValue = 'Invalid value';
  dxSFilterStatusCloseButtonHint = 'Clear Filter';
  dxSFilterBoxAllCaption = '(All)';
  dxSFilterBoxCustomCaption = '(Custom...)';
  dxSFilterBoxBlanksCaption = '(Blanks)';
  dxSFilterBoxNonBlanksCaption = '(NonBlanks)';

implementation

end.



que traducido puede quedar algo así como:

Código:

unit dxGrFCmn;

interface

{$I dxTLVer.inc}

type
  TdxDBGridOperatorType = (gotEqual, gotNotEqual,
    gotGreater, gotGreaterEqual, gotLess,  gotLessEqual,
    gotBlank, gotNonBlank);
  TdxDBGridOperatorTypes = set of TdxDBGridOperatorType;
 
resourcestring
  dxSFilterOperatorEqual = 'Igual a';
  dxSFilterOperatorNotEqual = 'Distinto de';
  dxSFilterOperatorGreater = 'Mayor que';
  dxSFilterOperatorGreaterEqual = 'Mayor o igual que';
  dxSFilterOperatorLess = 'Menor que';
  dxSFilterOperatorLessEqual = 'Menor o igual que';
  dxSFilterOperatorBlanks = 'Vacío';
  dxSFilterOperatorNonBlanks = 'No vacío';
  dxSFilterInvalidValue = 'Valor no válido';
  dxSFilterStatusCloseButtonHint = 'Quitar filtro';
  dxSFilterBoxAllCaption = '(Todos)';
  dxSFilterBoxCustomCaption = '(Personalizado...)';
  dxSFilterBoxBlanksCaption = '(Vacío)';
  dxSFilterBoxNonBlanksCaption = '(No vacío)';

implementation

end.



Volviendo a compilar las aplicaciones que utilicen este componente verás que estos recursos ya te aparecen traducidos.

* A continuación vamos a traducir la ventana de "Filtro personalizado", abriendo el propio formulario con Delphi, está en la misma ubicación que el fichero anterior y se llama "dxGrFDlg.pas", nos abrirá el formulario de "Custom AutoFilter", en este caso traduciremos los componentes que lo necesiten (el caption del formulario, el label inicial, el caption del grupo, el "and" y "or", etc:

- Donde aparece "Show rows where:" podríamos traducir por "Mostrar columnas que cumplan:".
- "And" y "Or" por "Y" y "O" respectivamente.
- "OK" por "Aceptar", "Cancel" por "Cancelar".
- "Use ? to represent any single character" por "Use ? para representar un carácter cualquiera".
- "Use * to represent any series of characters" por "Use * para representar cualquier cadena de caracteres".
- En el caption del "fmCustomDialog" donde aparece "Custom AutoFilter" pondremos, por ejemplo: "Filtro personalizado".


Una vez traducidos los componentes del formulario "dxGrFDlg.pas" guardaremos el fichero. Recompilando las aplicaciones debería aparecer correctamente traducido.




* Otro de los ficheros que podemos traducir (si lo utilizamos) es "dxGridMenus.pas", ubicado en:

C:\Archivos de programa\Developer Express Inc\ExpressQuantumGrid\Delphi 6\Demos\DemoUtils




Código:

unit dxGridMenus;

interface

uses Classes, Forms, Menus, Windows, dxDBGrid, dxTL, dxDBCtrl;

type
  TdxCustomDBGridPopupMenu = class
  private
    fPopupMenu: TPopupMenu;
    fGridColumn: TdxDBGridColumn;
  protected
    procedure CreateMenuItems; virtual; abstract;
    procedure BeforePopup; virtual;

    function AddSubMenuItem(AMenuItem: TMenuItem; ACaption: String; AOnClick: TNotifyEvent; ATag: Integer): TMenuItem;
    function AddMenuItem(ACaption: String; AOnClick: TNotifyEvent; ATag: Integer): TMenuItem;
  public
    constructor Create;
    destructor Destroy; override;
    procedure Popup(AGridColumn: TdxDBGridColumn; X, Y: Integer); virtual;
    procedure PopupFromCursor(AGridColumn: TdxDBGridColumn);
  end;

  TdxDBGridHeaderPopupMenu = class(TdxCustomDBGridPopupMenu)
  private
    fSortAscendingItem: TMenuItem;
    fSortDescendingItem: TMenuItem;
    fGroupByColumn: TMenuItem;
    fColumnSelector: TMenuItem;
    fHeaderAlignmentItems: Array[TAlignment] of TMenuItem;


...


implementation

uses DB, SysUtils;

const
  StSortAscending = 'Sort &Ascending';
  StSortDescending = 'Sort &Descending';
  StGroupByThisColumn = '&Group By This Column';
  StRemoveThisColumn = '&Remove This Column';
  StColumnSelector = 'Column &Selector...';
  StAlignment = '&Alignment';
  StAlignments : Array[TAlignment] of String = ('Align &Left', 'Align &Right', 'Align &Center');
  StBestFit = 'Best &Fit';
  StBestFitAllColumns = 'Best Fit (All Columns)';
  StSummaryItems: Array[TdxSummaryType] of String = ('None', 'Summary', 'Minimum', 'Maximum', 'Count', 'Average');

{TdxDBGridPopupMenu}
constructor TdxCustomDBGridPopupMenu.Create;
begin
  inherited Create;
  fPopupMenu := TPopupMenu.Create(nil);
  CreateMenuItems;
end;

destructor TdxCustomDBGridPopupMenu.Destroy;
begin
  fPopupMenu.Free;
  inherited Destroy;
end;

...





y quedará algo así después de la traducción (mostramos sólo la porción de código que hemos traducido):

Código:

uses DB, SysUtils;

const
  StSortAscending = 'Ordenar acendente';
  StSortDescending = 'Ordenar descendente';
  StGroupByThisColumn = 'Agrupar por esta columna';
  StRemoveThisColumn = 'Ocultar esta columna';
  StColumnSelector = 'Selector de columnas...';
  StAlignment = '&Alineamiento';
  StAlignments : Array[TAlignment] of String = ('Alinear a la izquierda', 'Alinear a la derecha', 'Alinear al centro');
  StBestFit = 'Ajuste automático';
  StBestFitAllColumns = 'Ajuste automático (Todas las columnas)';
  StSummaryItems: Array[TdxSummaryType] of String = ('Ninguno', 'Sumario', 'Mínimo', 'Máximo', 'Contar', 'Media');





* Otro de los ficheros que debemos traducir es "dxTLStr.rc", ubicado en:

C:\Archivos de programa\Developer Express Inc\ExpressQuantumGrid\Delphi 6\Sources


con el contenido:

Código:

/*
   dxTLStr.rc
   Developer Express Visual Component Library
   Express grid string resource
*/

STRINGTABLE
{
// dxTreeList & dxDBgrid strings
  38801, "Invalid Owner TdxTreeListNode"
  38802, "Customize"
  38803, "Confirm";
  38804, "Delete record?"
  38805, "Delete all selected records?"
  38806, "%s: Column by Field ''%s'' not found"
  38807, "Drag a column header here to group by that column"
  38808, "Dataset in edit or insert mode"

  38809, "    Bands    "
  38810, "   Headers   "
  38811, "DefaultFields property should be set to False"
  38812, "Invalidate group name!"
  38813, "Invalidate group name: duplicate!"
}



quedará algo así:

Código:

/*
   dxTLStr.rc
   Developer Express Visual Component Library
   Express grid string resource
*/

STRINGTABLE
{
// dxTreeList & dxDBgrid strings
  38801, "Nodo no válido para TdxTreeListNode"
  38802, "Personalizado"
  38803, "Confirmación";
  38804, "¿Desea eliminar el registro actual?"
  38805, "¿Desea eliminar todos los registros seleccionados?"
  38806, "%s: Columna por campo ''%s'' no encontrado"
  38807, "Arrastre una columna aquí para agrupar"
  38808, "Tabla en modo edición o inserción"
  38809, "    Banda    "
  38810, "   Encabezado   "
  38811, "La propiedad DefaultFields debe estar a False"
  38812, "Nombre de grupo no válido"
  38813, "Nombre de grupo no válido: duplicado"
}



Este tipo de fichero .rc es necesario compilarlo desde fuera de Delphi, para ello utilizaremos una utilidad que incluye Delphi en su directorio de instalación ...Borland\Delphi6\Bin, llamada "brc32.exe". Desde "Inicio" - "Ejecutar" introduciremos "cmd" y pulsaremos INTRO, en la ventana de comandos que nos aparece escribiremos:

Código:
brc32 -r "C:\Archivos de programa\Developer Express Inc\ExpressQuantumGrid\Delphi 6\Sources\dxtlstr.rc"


(teniendo en cuenta que la ruta de instalación del componente puede ser diferente).
MensajePublicado:
Sab Feb 03, 2007 3:08 pm
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: Traducir recursos del QuantumGrid de DevExpress Responder citando



Anuncios



También se puede traducir este otro fichero de recursos:

C:\Archivos de programa\Developer Express Inc\ExpressInplaceEditors\Delphi 6\Sources\dxEdStr.rc

El contenido original:

Código:

/*
   dxEdStr.rc
   Developer Express Visual Component Library
   Express inplace editors strings resource
*/

STRINGTABLE
{
  //dxGrClms strings
  38901, "True"
  38902, "False"
  38903, "Today"
  38904, "Clear"

  // blob edit buttons
  38905,  "&OK"
  38906,  "&Cancel"
  38907,  "&Close"

  38908,  "Cu&t"
  38909,  "&Copy"
  38910,  "&Paste"
  38911,  "&Delete"
  38912,  "&Save to file..."
  38913,  "&Load from file..."

  38914,  "Cu&t"
  38915,  "&Copy"
  38916,  "&Paste"
  38917,  "&Delete"
  38918,  "&Load..."
  38919,  "&Save To..."

  38920,  "Cut"
  38921,  "Copy"
  38922,  "Paste"
  38923,  "Delete"
  38924,  "Load from file..."
  38925,  "Save to file..."

  38926,  "Toolbox"

  38927,  "Invalid Date"

  38928,  "TODAY"
  38929,  "YESTERDAY"
  38930,  "TOMORROW"
  38931,  "SUNDAY"
  38932,  "MONDAY"
  38933,  "TUESDAY"
  38934,  "WEDNESDAY"
  38935,  "THURSDAY"
  38936,  "FRIDAY"
  38937,  "SATURDAY"
  38938,  "FIRST"
  38939,  "SECOND"
  38940,  "THIRD"
  38941,  "FOURTH"
  38942,  "FIFTH"
  38943,  "SIXTH"
  38944,  "SEVENTH"
  38945,  "BOM"
  38946,  "EOM"
  38947,  "NOW"

  38948, "Invalid input value. Use escape key to abandon changes"

  38949, "&Undo"
  38950, "&Redo"
  38952, "Cu&t"
  38953, "&Copy"
  38954, "&Paste"
  38955, "&Delete"
  38956, "Select &All"
}


Una propuesta de traducción:

Código:

/*
   dxEdStr.rc
   Developer Express Visual Component Library
   Express inplace editors strings resource
*/

STRINGTABLE
{
  //dxGrClms strings
  38901, "Verdadero"
  38902, "Falso"
  38903, "Hoy"
  38904, "Limpiar"

  // blob edit buttons
  38905,  "&Aceptar"
  38906,  "&Cancelar"
  38907,  "&Cerrar"

  38908,  "Cortar"
  38909,  "&Copiar"
  38910,  "&Pegar"
  38911,  "&Eliminar"
  38912,  "&Guardar en fichero..."
  38913,  "&Abrir de fichero..."

  38914,  "Cortar"
  38915,  "&Copiar"
  38916,  "&Pegar"
  38917,  "&Eliminar"
  38918,  "&Abrir..."
  38919,  "&Guardar..."

  38920,  "Cortar"
  38921,  "Copiar"
  38922,  "Pegar"
  38923,  "Eliminar"
  38924,  "Abrir desde fichero..."
  38925,  "Guardar en fichero..."

  38926,  "Toolbox"

  38927,  "Fecha no válida"

  38928,  "HOY"
  38929,  "AYER"
  38930,  "MAÑANA"
  38931,  "DOMINGO"
  38932,  "LUNES"
  38933,  "MARTES"
  38934,  "MIÉRCOLES"
  38935,  "JUEVES"
  38936,  "VIERNES"
  38937,  "SÁBADO"
  38938,  "PRIMERO"
  38939,  "SEGUNDO"
  38940,  "TERCERO"
  38941,  "CUARTO"
  38942,  "QUINTO"
  38943,  "SEXTO"
  38944,  "SÉPTIMO"
  38945,  "BOM"
  38946,  "EOM"
  38947,  "AHORA"

  38948, "Valor introducido no válido. Pules Escape para cancelar los cambios"

  38949, "&Deshacer"
  38950, "&Rehacer"
  38952, "Cortar"
  38953, "&Copiar"
  38954, "&Pegar"
  38955, "&Eliminar"
  38956, "Seleccionar todo"
}
MensajePublicado:
Dom Feb 15, 2009 9:36 pm
Top of PageVer perfil de usuario
Mostrar mensajes de anteriores:   
Todas las horas son GMT - 1 Horas
Publicar nuevo tema Responder al tema
Foros de discusión » Borland Delphi, Codegear Delphi .Net  

Cambiar a:  
Key
  Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro
Este sitio web NO CONTIENE malware, todos los programas con código fuente aquí. Autor: Alonso Javier Pérez Díaz Google+ Síguenos en Google+