PDA

Ver la Versión Completa : Traduciendo lclstrconsts.pas


Robert01
06-02-2008, 20:52:05
Hola, estoy traduciendo al castellano un archivo de lazarus para obtener todos los mensajes, los botones de mnesajes, etc en castellano.

Si alguien puede corregir algo, o agregar algo de lo que falta se lo agradeceré. Hay varias partes que faltan todavía


{ $Id: lclstrconsts.pas 11592 2007-07-22 14:17:13Z tombo $ }
{
/***************************************************************************
lclstrconsts.pas
----------------
This unit contains all resource strings of the LCL (not interfaces)


***************************************************************************/

*****************************************************************************
* *
* This file is part of the Lazarus Component Library (LCL) *
* *
* See the file COPYING.modifiedLGPL, included in this distribution, *
* for details about the copyright. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
* *
*****************************************************************************
}
unit LCLStrConsts;

{$mode objfpc}{$H+}

interface

ResourceString
// common Delphi strings
SNoMDIForm = 'No MDI form present.';

// message/input dialog buttons
rsMbYes = '&Si';
rsMbNo = '&No';
rsMbOK = '&Aceptar';
rsMbCancel = 'Cancelar';
rsMbAbort = 'Terminar';
rsMbRetry = '&ReIntentar';
rsMbIgnore = '&Ignorar';
rsMbAll = '&Todo';
rsMbNoToAll = 'No a todo';
rsMbYesToAll = 'Si a &todo';
rsMbHelp = '&Ayuda';
rsMbClose = '&Cerrar';

rsMtWarning = 'Advertencia';
rsMtError = 'Error';
rsMtInformation = 'Información';
rsMtConfirmation = 'Confirmación';
rsMtCustom = 'Personalizar';

// file dialog
rsfdOpenFile = 'Abrir un archivo existente';
rsfdOverwriteFile = 'sobreescribir archivo ?';
rsfdFileAlreadyExists = 'El(los) archivo "%s" ya existe "%n". Sobreescribir ?';
rsfdPathMustExist = 'El camino debe existir';
rsfdPathNoExist = 'El (los) camino "%s" no existen.';
rsfdFileMustExist = 'El archivo debe existir';
rsfdDirectoryMustExist = 'El directorio debe existir';
rsfdFileNotExist = 'El (los) archivo "%s" no existe "%n".';
rsfdDirectoryNotExist = 'El (los) directorio "%s" no existe "%n".';
rsFind = 'Find';
rsfdFileReadOnlyTitle = 'El archivo no es writable';
rsfdFileReadOnly = 'El (los) archivo "%s" no es (son) escribible "%s".';
rsfdFileSaveAs = 'Guardar archivo como';
rsAllFiles = 'Todos los archivos (%s)|%s|%s';
rsfdSelectDirectory = 'Seleccionar directorio';
rsDirectory = '&Directorio';

// Select color dialog
rsSelectcolorTitle = 'Seleccionar color';

// Select font dialog
rsSelectFontTitle = 'Seleccionar fuente';
rsFindMore = 'Encontrar más';
rsReplace = 'Remplazar';
rsReplaceAll = 'Remplazar todo';

// gtk interface
rsWarningUnremovedPaintMessages = ' Advertencia: Hay %s unremoved LM_'
+'PAINT/LM_GtkPAINT message links left.';
rsWarningUnreleasedDCsDump = ' WARNING: There are %d unreleased DCs, a '
+'detailed dump follows:';
rsWarningUnreleasedGDIObjectsDump = ' WARNING: There are %d unreleased '
+'GDIObjects, a detailed dump follows:';
rsWarningUnreleasedMessagesInQueue = ' WARNING: There are %d messages left '
+'in the queue! I''ll free them';
rsWarningUnreleasedTimerInfos = ' WARNING: There are %d TimerInfo '
+'structures left, I''ll free them';
rsFileInformation = 'File information';
rsgtkFilter = 'Filter:';
rsgtkHistory = 'History:';
rsDefaultFileInfoValue = 'permissions user group size date time';
rsBlank = 'Blank';
rsUnableToLoadDefaultFont = 'Incapáz de cargar la fuente por defecto';
rsFileInfoFileNotFound = '(file not found: "%s")';
rsgtkOptionNoTransient = '--lcl-no-transient Do not set transient order for'
+' modal forms';
rsgtkOptionModule = '--gtk-module module Load the specified module at '
+'startup.';
rsgOptionFatalWarnings = '--g-fatal-warnings Warnings and errors '
+'generated by Gtk+/GDK will halt the application.';
rsgtkOptionDebug = '--gtk-debug flags Turn on specific Gtk+ trace/'
+'debug messages.';
rsgtkOptionNoDebug = '--gtk-no-debug flags Turn off specific Gtk+ trace/'
+'debug messages.';
rsgdkOptionDebug = '--gdk-debug flags Turn on specific GDK trace/debug '
+'messages.';
rsgdkOptionNoDebug = '--gdk-no-debug flags Turn off specific GDK trace/'
+'debug messages.';
rsgtkOptionDisplay = '--display h:s:d Connect to the specified X '
+'server, where "h" is the hostname, "s" is the server number (usually 0), '
+'and "d" is the display number (typically omitted). If --display is not '
+'specified, the DISPLAY environment variable is used.';
rsgtkOptionSync = '--sync Call XSynchronize (display, True) '
+'after the Xserver connection has been established. This makes debugging '
+'X protocol errors easier, because X request buffering will be disabled '
+'and X errors will be received immediatey after the protocol request that '
+'generated the error has been processed by the X server.';
rsgtkOptionNoXshm = '--no-xshm Disable use of the X Shared '
+'Memory Extension.';
rsgtkOptionName = '--name programe Set program name to "progname". '
+'If not specified, program name will be set to ParamStr(0).';
rsgtkOptionClass = '--class classname Following Xt conventions, the '
+'class of a program is the program name with the initial character '
+'capitalized. For example, the classname for gimp is "Gimp". If --class '
+'is specified, the class of the program will be set to "classname".';

// win32 interface
rsWin32Warning = 'Advertencia:';
rsWin32Error = 'Error:';

// StringHashList, LResource, Menus, ExtCtrls, ImgList, Spin
// StdCtrls, Calendar, CustomTimer, Forms, Grids, LCLProc, Controls, ComCtrls,
// ExtDlgs, EditBtn, Masks
sInvalidActionRegistration = 'Invalid action registration';
sInvalidActionUnregistration = 'Invalid action unregistration';
sInvalidActionEnumeration = 'Invalid action enumeration';
sInvalidActionCreation = 'Invalid action creation';
sMenuNotFound = 'Sub-menu is not in menu';
sMenuIndexError = 'Índice de Menu fuera de rango';
sMenuItemIsNil = 'MenuItem is nil';
sNoTimers = 'Ningún timer disponible';
sInvalidIndex = 'Índice de ImageList no válido';
sInvalidImageSize = 'Tamaño de imagen no válido';
sDuplicateMenus = 'Duplicate menus';
sCannotFocus = 'No puede tener el foco una ventana a deshabilitada o invisible';
sInvalidCharSet = 'The char set in mask "%s" is not valid!';

rsListMustBeEmpty = 'La lista debe estar vacía';
rsInvalidPropertyValue = 'Valor de propiedad inválido';
rsPropertyDoesNotExist = 'La %s propiedad %es no existe %n';
rsInvalidStreamFormat = 'Invalid stream format';
rsErrorReadingProperty = 'Error reading %s%s%s: %s';
rsInvalidFormObjectStream = 'invalid Form object stream';
rsScrollBarOutOfRange = 'Propiedad ScrollBar fuera de rango';
rsInvalidDate = 'Invalid Date : %s';
rsInvalidDateRangeHint = 'Invalid Date: %s. Must be between %s and %s';
rsErrorOccurredInAtAddressFrame = 'Error occurred in %s at %sAddress %s%s'
+' Frame %s';
rsException = 'Exception';
rsFormStreamingError = 'Form streaming "%s" error: %s';
rsFixedColsTooBig = 'FixedCols no pueden ser >= ColCount';
rsFixedRowsTooBig = 'FixedRows no pueden ser >= RowCount';
rsGridFileDoesNotExists = 'El archivo de grilla no existe';
rsNotAValidGridFile = 'Archivo de grilla no válido';
rsIndexOutOfRange = 'Índices de celda fuera de rango [Col=%d Row=%d]';
rsGridIndexOutOfRange = 'Índices de grilla fuera de rango.';
rsERRORInLCL = 'ERROR in LCL: ';
rsCreatingGdbCatchableError = 'Creating gdb catchable error:';
rsAControlCanNotHaveItselfAsParent = 'A control can''t have itself as parent';
lisLCLResourceSNotFound = 'Resource %s not found';
rsErrorCreatingDeviceContext = 'Error creating device context for %s.%s';
rsIndexOutOfBounds = '%s Index %d out of bounds 0-%d';
rsUnknownPictureExtension = 'Unknown picture extension';
rsBitmaps = 'Bitmaps';
rsPixmap = 'Pixmap';
rsPortableNetworkGraphic = 'Portable Network Graphic';
rsIcon = 'Icon';
rsUnsupportedClipboardFormat = 'Unsupported clipboard format: %s';
rsGroupIndexCannotBeLessThanPrevious = 'GroupIndex cannot be less than a '
+'previous menu item''s GroupIndex';
rsIsAlreadyAssociatedWith = '%s is already associated with %s';
rsCanvasDoesNotAllowDrawing = 'Canvas no permite dibujar';
rsUnsupportedBitmapFormat = 'Bitmap de formato no soportado.';
rsErrorWhileSavingBitmap = 'Error al guardar bitmap.';
rsNoWidgetSet = 'No widgetset object. '
+'Plz check if the unit "interfaces" was added to the programs uses clause.';
rsPressOkToIgnoreAndRiskDataCorruptionPressCancelToK = '%s%sPress Ok to '
+'ignore and risk data corruption.%sPress Cancel to kill the program.';
rsCanNotFocus = 'Can not focus';
rsListIndexExceedsBounds = 'Índice de lista excede los límites (%d)';
rsResourceNotFound = 'Recurso %s no encontrado';
rsCalculator = 'Calculadora';
rsError = 'Error';
rsPickDate = 'Seleccionar fecha';
rsSize = ' tamaño ';
rsModified = ' modificado ';

// I'm not sure if in all languages the Dialog texts for a button
// have the same meaning as a key
// So every VK gets its own constant
ifsVK_UNKNOWN = 'Unknown';
ifsVK_LBUTTON = 'Botón izquierdo del ratón';
ifsVK_RBUTTON = 'Botón derecho del ratón';
ifsVK_CANCEL = 'Cancelar'; //= dlgCancel
ifsVK_MBUTTON = 'Mouse Button Middle';
ifsVK_BACK = 'Retroceso';
ifsVK_TAB = 'Tabulador';
ifsVK_CLEAR = 'Clear';
ifsVK_RETURN = 'Return';
ifsVK_SHIFT = 'Shift';
ifsVK_CONTROL = 'Control';
ifsVK_MENU = 'Menu';
ifsVK_PAUSE = 'Pausa';
ifsVK_CAPITAL = 'Mayúsculas';
ifsVK_KANA = 'Kana';
ifsVK_JUNJA = 'Junja';
ifsVK_FINAL = 'Final';
ifsVK_HANJA = 'Hanja';
ifsVK_ESCAPE = 'Escape';
ifsVK_CONVERT = 'Convertir';
ifsVK_NONCONVERT = 'No convertir';
ifsVK_ACCEPT = 'Aceptar';
ifsVK_MODECHANGE = 'Mode Change';
ifsVK_SPACE = 'Espacio';
ifsVK_PRIOR = 'Anterior';
ifsVK_NEXT = 'Siguiente';
ifsVK_END = 'Fin';
ifsVK_HOME = 'Inicio';
ifsVK_LEFT = 'Izquierda';
ifsVK_UP = 'Arriba';
ifsVK_RIGHT = 'Derecha';
ifsVK_DOWN = 'Abajo'; //= dlgdownword
ifsVK_SELECT = 'Select'; //= lismenuselect
ifsVK_PRINT = 'Imprimir';
ifsVK_EXECUTE = 'Ejecutar';
ifsVK_SNAPSHOT = 'Snapshot';
ifsVK_INSERT = 'Insertar';
ifsVK_DELETE = 'Borrar'; //= dlgeddelete
ifsVK_HELP = 'Ayuda';
ifsCtrl = 'Ctrl';
ifsAlt = 'Alt';
rsWholeWordsOnly = 'Sólo palabras completas';
rsCaseSensitive = 'Case sensitive';
rsText = 'Text';
rsDirection = 'Dirección';
rsForward = 'Forward';
rsBackward = 'Backward';
ifsVK_LWIN = 'left windows key';
ifsVK_RWIN = 'right windows key';
ifsVK_APPS = 'application key';
ifsVK_NUMPAD = 'Numpad %d';
ifsVK_NUMLOCK = 'Numlock';
ifsVK_SCROLL = 'Scroll';

// docking
rsDocking = 'Docking';

// help
rsHelpHelpNodeHasNoHelpDatabase = 'Help node %s%s%s has no Help Database';
rsHelpThereIsNoViewerForHelpType = 'There is no viewer for help type %s%s%s';
rsHelpHelpDatabaseDidNotFoundAViewerForAHelpPageOfType = 'Help Database %s%'
+'s%s did not found a viewer for a help page of type %s';
rsHelpAlreadyRegistered = '%s: Already registered';
rsHelpNotRegistered = '%s: Not registered';
rsHelpHelpDatabaseNotFound = 'Help Database %s%s%s not found';
rsHelpHelpKeywordNotFoundInDatabase = 'Help keyword %s%s%s not found in '
+'Database %s%s%s.';
rsHelpHelpKeywordNotFound = 'Help keyword %s%s%s not found.';
rsHelpHelpContextNotFoundInDatabase = 'contexto %s de ayuda no encontrada en '
+'Database %s%s%s.';
rsHelpHelpContextNotFound = 'Help context %s not found.';
rsHelpNoHelpFoundForSource = 'No help found for line %d, column %d of %s.';
rsHelpNoHelpNodesAvailable = 'No help nodes available';
rsHelpError = 'Help Error';
rsHelpDatabaseNotFound = 'Help Database not found';
rsHelpContextNotFound = 'Help Context not found';
rsHelpViewerNotFound = 'Help Viewer not found';
rsHelpNotFound = 'Help not found';
rsHelpViewerError = 'Error de visor de ayuda';
rsHelpSelectorError = 'Error de selector de ayuda';
rsUnknownErrorPleaseReportThisBug = 'Error desconocido, por favor reporte este bug';

hhsHelpTheHelpDatabaseWasUnableToFindFile = 'The help database %s%s%s was '
+'unable to find file %s%s%s.';
hhsHelpTheMacroSInBrowserParamsWillBeReplacedByTheURL = 'The macro %s in '
+'BrowserParams will be replaced by the URL.';
hhsHelpNoHTMLBrowserFoundPleaseDefineOneInHelpConfigureHe = 'No HTML '
+'Browser found.%sPlease define one in Help -> Configure Help -> Viewers';
hhsHelpNoHTMLBrowserFound = 'Incapáz de encontrar un navegador HTML.';
hhsHelpBrowserNotFound = 'Navegador %e%s no encontrado %s%.';
hhsHelpBrowserNotExecutable = 'Navegador %e%s no ejecutable %s.';
hhsHelpErrorWhileExecuting = 'Error al ejecutar %s%s%s:%s%s';

implementation

end.




saludos

Ñuño Martínez
07-02-2008, 11:41:21
No voy a poner todo, así que estate atento:

SNoMDIForm = 'No hay formulario MDI.'; <---- Ayudita...

rsMbYes = '&Sí'; <---- Olvidaste el acento.
rsMbRetry = '&Reintentar'; <---- Yo preferiría "Intentar de nuevo" :rolleyes:
rsMbYesToAll = 'Sí a &todo'; <---- De nuevo el acento.

rsfdOverwriteFile = '¿Sobreescribir el archivo ?'; <---- Olvidaste el signo de interrogación.
rsfdFileAlreadyExists = 'El(los) archivo "%s" ya existe "%n". ¿Sobreescribir?'; <------ De nuevo.
rsfdPathMustExist = 'La ruta debe existir'; <----- Sí, "path" es camino, pero "ruta" es más correcto en este caso.
rsfdPathNoExist = 'La (las) ruta "%s" no existen.'; <---- Idem.
rsfdFileMustExist = 'El archivo debe existir'; <--- Me gusta más la expresión "ha de" en lugar de "debe", pero eso ya es cuestión de gustos.
rsfdDirectoryMustExist = 'El directorio debe existir'; <---- Idem que el anterior.
rsfdFileReadOnlyTitle = 'El archivo es sólo para lectura'; <--- Creo que así está mejor.
rsfdFileReadOnly = 'El (los) archivo "%s" es (son) sólo para lectura "%s".'; <--- ¿"escribible"?

rsSelectcolorTitle = 'Seleccione el color'; <---- El infinitivo apenas se utiliza en castellano, aunque depende del contexto. Deberíamos saber exactamente dónde aparece este texto. (Sé que me he dejado algunos infinitivos más arriba, pero creo que los anteriores son para menús, donde sí podría utilizarse el infinitivo.)

rsSelectFontTitle = 'Seleccione la tipografía'; <---- "Font" es "fuente" sólo si se refiere a fuente de agua, manantial o a origen de algo. En este caso es "Tipografía".

sMenuIndexError = 'El índice del menú está fuera de rango'; <---- Olvidaste el acento. Así mismo creo que poner el verbo es conveniente.
sNoTimers = 'No hay temporizadores disponibles'; <---- También serviría "cronómetro" (salvo que haga referencia al objeto TTimer, en cuyo caso seguiría siendo "Timer"). De todas formas, insisto en que yo pondría más verbos y más artículos.
sInvalidIndex = 'El índice para la lista de imágenes no es válido'; <---- Idem que anterior.
sInvalidImageSize = 'El tamaño de la imagen no es válido'; <----
sDuplicateMenus = 'Duplicate menus'; <---- Duda: ¿"Menús duplicados" o "Duplicar menús"?
sCannotFocus = 'Las ventanas deshabilitadas u ocultas no pueden tener el foco de entrada'; <----- Sutil, pero ahora está más claro, ¿a que sí?

rsListMustBeEmpty = 'La lista debe estar vacía'; <--- Otra vez "ha de"... ;)
rsInvalidPropertyValue = 'El valor de la propiedad no es válido'; <---- Los inválidos van en silla de ruedas ;)
rsGridFileDoesNotExists = 'El archivo de la tabla no existe'; <---- La "grilla" es la esposa del grillo, al menos en mi pueblo :p ;). De todas formas no sé a qué puede referirse con "Grid file". ¿Tal vez debería ser "rejilla"? :confused:
rsNotAValidGridFile = 'El archivo de(o "para", que no es lo mismo) la tabla no válido'; <--- Idem que el anterior.
rsIndexOutOfRange = 'Los índices de la celda están fuera del rango [Col=%d Row=%d]';<--- Los yankis tienden a ahorrarse los artículos, pero nosotros los utilizamos siempre.
rsGridIndexOutOfRange = 'Los índices de tabla están fuera de rango.'; <---- De nuevo la esposa del grillo dando guerra...
rsBitmaps = 'Bitmaps'; <--- Este y el Pixmap no los traduzcas.
rsPixmap = 'Pixmap';
rsPortableNetworkGraphic = 'Portable Network Graphic'; <--- Este tampoco.
rsIcon = 'Icono'; <--- Este sí, hay que traducirlo.
rsCanvasDoesNotAllowDrawing = 'El lienzo no permite dibujar'; <----- Lienzo es una bonita palabra.
rsUnsupportedBitmapFormat = 'No se detectó un formato de imagen soportado.'; <---- En mi opinión, aquí sí hay que traducir "Bitmap".
rsErrorWhileSavingBitmap = 'Error al guardar la imagen.'; <----- Aquí también.
rsListIndexExceedsBounds = 'El índice de lista excede los límites (%d)'; <--- ¿Porqué tanto miedo a utilizar los artículos?
rsResourceNotFound = 'No encuentro el recurso %s'; <--- Mejor así, ¿no?
rsPickDate = 'Seleccione una fecha'; <---- Mejor así, ¿no?

// I'm not sure if in all languages the Dialog texts for a button
// have the same meaning as a key
// So every VK gets its own constant
<--- Es decir, que no está seguro de si debería o no traducirse. Yo tampoco. --->
ifsVK_MBUTTON = 'Botón central del ratón'; <--- Está claro, ¿no?
ifsVK_MENU = 'Menú'; <---- Acentoooo...

rsHelpHelpContextNotFoundInDatabase = 'No se encontró el contexto %s de ayuda en '
+'la base de datos %s%s%s.'; <----- Database <-> Base de datos.
rsHelpViewerError = 'Error en el visor de la ayuda'; <---- Faltaban los complementos.
rsHelpSelectorError = 'Error en el selector de la ayuda'; <---- Idem.
rsUnknownErrorPleaseReportThisBug = 'Error desconocido, por favor reporte este fallo.'; <---- Bug <-> fallo, error de programación.
hhsHelpNoHTMLBrowserFound = 'Incapaz de encontrar un navegador HTML.'; <--- Aquí sobra el acento. Bueno, más o menos está. Que conste que casi todo son preferencias personales totalmente discutibles.

Robert01
08-02-2008, 00:00:56
Gracias por tu colaboración, solo traduje una parte porque hay otras partes del archivo que al ser traducidas dan error.
Lo probé en windows y en kubuntu y los mensajes de diálogos salen en castellano, por lo menos.
Lo puse en el foro de lazarus (http://www,lazarus.freepascal.org), espero que alguno lo termine de traducir.

Saludos

Ñuño Martínez
08-02-2008, 09:19:27
Buena idea lo de ponerlo en el foro de Lazarus. Ahí la gente tiene más experiencia y seguro que aciertan más.

sakuragi
12-02-2008, 05:54:37
buena iniciatiba, ahi que checarlo.

saludos

MAXIUM
12-02-2008, 16:41:29
Excelente aporte

Robert01
12-02-2008, 23:50:08
Hola

Si van a probarlo les advierto que hay muchos errores, en este link (http://www.lazarus.freepascal.org/index.php?name=PNphpBB2&file=viewtopic&t=2851) está corregido un poco. Unos compañeros del foro de lazarus platean otra forma de hacer las mismas cosas.
En lo que respecta a los mensajes y botones está bien.

La parte del código que está abajo de donde dice:
// win32 interface

es la que permite mensajes en tiempo de diseño bajo windows, supongo que lo que sigue
a gtk servirá para lo mismo en linux

Saludos