ADD: Localization of some messages

This commit is contained in:
Alexander Koblov 2007-12-01 12:58:01 +00:00
commit 70e197e4a8
8 changed files with 713 additions and 416 deletions

View file

@ -1804,7 +1804,7 @@ begin
if (ActiveFrame.pnlFile.PanelMode in [pmVFS, pmArchive]) and
(NotActiveFrame.pnlFile.PanelMode in [pmVFS, pmArchive]) then
begin
ShowMessage('Function not supported!');
ShowMessage(rsMsgErrNotSupported);
Exit;
end;
@ -2817,7 +2817,7 @@ begin
DebugLn('Chdir to:',sDir);
if not SetCurrentDir(sDir) then
begin
msgError(Format('ChDir to [%s] failed!',[sDir]));
msgError(Format(rsMsgChDirFailed, [sDir]));
end
else
begin

View file

@ -98,6 +98,86 @@ msgstr ""
msgid "Disk is not available"
msgstr ""
#: ulng.rsmsgchdirfailed
msgid "ChDir to [\%s] failed!"
msgstr ""
#: ulng.rsmsgnofreespacecont
msgid "No enough free space on target drive, Continue?"
msgstr ""
#: ulng.rsmsgnofreespaceretry
msgid "No enough free space on target drive, Retry?"
msgstr ""
#: ulng.rsmsgsellocnextvol
msgid "Please select location of next volume"
msgstr ""
#: ulng.rsmsgnextvolunpack
msgid "Next volume will be unpacked"
msgstr ""
#: ulng.rsmsgerrendarchive
msgid "No more files in archive"
msgstr ""
#: ulng.rsmsgerrnomemory
msgid "Not enough memory"
msgstr ""
#: ulng.rsmsgerrbaddata
msgid "Data is bad"
msgstr ""
#: ulng.rsmsgerrbadarchive
msgid "CRC error in archive data"
msgstr ""
#: ulng.rsmsgerrunknownformat
msgid "Archive format unknown"
msgstr ""
#: ulng.rsmsgerreopen
msgid "Cannot open existing file"
msgstr ""
#: ulng.rsmsgerrecreate
msgid "Cannot create file"
msgstr ""
#: ulng.rsmsgerreclose
msgid "Error closing file"
msgstr ""
#: ulng.rsmsgerreread
msgid "Error reading from file"
msgstr ""
#: ulng.rsmsgerrewrite
msgid "Error writing to file"
msgstr ""
#: ulng.rsmsgerrsmallbuf
msgid "Buffer too small"
msgstr ""
#: ulng.rsmsgerreaborted
msgid "Function aborted by user"
msgstr ""
#: ulng.rsmsgerrnofiles
msgid "No files found"
msgstr ""
#: ulng.rsmsgerrtoomanyfiles
msgid "Too many files to pack"
msgstr ""
#: ulng.rsmsgerrnotsupported
msgid "Function not supported!"
msgstr ""
#: ulng.rssaveposition
msgid "&Save position"
msgstr ""
@ -118,6 +198,14 @@ msgstr ""
msgid "Move file(s)"
msgstr ""
#: ulng.rsdlgpack
msgid "Packing..."
msgstr ""
#: ulng.rsdlgextract
msgid "Extracting..."
msgstr ""
#: ulng.rsviewabouttext
msgid "Internal Viewer of Double Commander."
msgstr ""
@ -1662,3 +1750,11 @@ msgstr ""
msgid "S&mall icons"
msgstr ""
#: ulng.rsmsgnofreespacecont
msgid "No enough free space on target drive, Continue'"
msgstr ""
#:
msgid "?"
msgstr ""

View file

@ -130,6 +130,86 @@ msgstr "Удалить \%s"
msgid "Disk is not available"
msgstr "Диск не доступен"
#: ulng.rsmsgchdirfailed
msgid "ChDir to [\%s] failed!"
msgstr "Переход в каталог [\%s] не удался!"
#: ulng.rsmsgnofreespacecont
msgid "No enough free space on target drive, Continue?"
msgstr "Недостаточно места на получателе. Продолжить?"
#: ulng.rsmsgnofreespaceretry
msgid "No enough free space on target drive, Retry?"
msgstr "Недостаточно места на получателе. Повторить?"
#: ulng.rsmsgsellocnextvol
msgid "Please select location of next volume"
msgstr "Укажите путь к следующему тому"
#: ulng.rsmsgnextvolunpack
msgid "Next volume will be unpacked"
msgstr "Следующий том будет распакован"
#: ulng.rsmsgerrendarchive
msgid "No more files in archive"
msgstr "В архиве нет больше файлов"
#: ulng.rsmsgerrnomemory
msgid "Not enough memory"
msgstr "Не достаточно памяти"
#: ulng.rsmsgerrbaddata
msgid "Data is bad"
msgstr "Данные повреждены"
#: ulng.rsmsgerrbadarchive
msgid "CRC error in archive data"
msgstr "Контрольная сумма не совпадает, архив повреждён."
#: ulng.rsmsgerrunknownformat
msgid "Archive format unknown"
msgstr "Архив повреждён или имеет неизвестный формат."
#: ulng.rsmsgerreopen
msgid "Cannot open existing file"
msgstr "Не могу открыть файл"
#: ulng.rsmsgerrecreate
msgid "Cannot create file"
msgstr "Не могу создать файл"
#: ulng.rsmsgerreclose
msgid "Error closing file"
msgstr "Не могу закрыть файл"
#: ulng.rsmsgerreread
msgid "Error reading from file"
msgstr "Ошибка чтения из файла"
#: ulng.rsmsgerrewrite
msgid "Error writing to file"
msgstr "Ошибка записи в файл"
#: ulng.rsmsgerrsmallbuf
msgid "Buffer too small"
msgstr "Буфер слишком маленький"
#: ulng.rsmsgerreaborted
msgid "Function aborted by user"
msgstr "Прервано пользователем."
#: ulng.rsmsgerrnofiles
msgid "No files found"
msgstr "Файлы не найдены"
#: ulng.rsmsgerrtoomanyfiles
msgid "Too many files to pack"
msgstr "Слишком много файлов"
#: ulng.rsmsgerrnotsupported
msgid "Function not supported!"
msgstr "Функция не поддерживается!"
#: ulng.rssaveposition
msgid "&Save position"
msgstr "Сохранить позицию"
@ -150,6 +230,14 @@ msgstr "Копировать файл(ы)"
msgid "Move file(s)"
msgstr "Переместить файл(ы)"
#: ulng.rsdlgpack
msgid "Packing..."
msgstr "Упаковка..."
#: ulng.rsdlgextract
msgid "Extracting..."
msgstr "Распаковка..."
#: ulng.rsviewabouttext
msgid "Internal Viewer of Double Commander."
msgstr "Внутренний просмоторщик Double Commander."

579
uLng.rst
View file

@ -1,245 +1,334 @@
# hash value = 27011843
ulng.rsmsgnotdelete='Can not delete file %s'
# hash value = 182862975
ulng.rsmsgfileexistsrwrt='File %s exists, overwrite?'
# hash value = 118870367
ulng.rsmsgfilechangedsave='File %s changed, save?'
# hash value = 211209061
ulng.rsmsgnewfile='New file'
# hash value = 81412991
ulng.rsmsgdelfldr='Delete %d selected files/directories?'
# hash value = 214258367
ulng.rsmsgdelsel='Delete selected "%s"?'
# hash value = 173207295
ulng.rsmsgcpfldr='Copy %d selected files/directories?'
# hash value = 73979967
ulng.rsmsgcpsel='Copy selected "%s"?'
# hash value = 197963407
ulng.rsmsgrenfldr='Rename/move %d selected files/directories?'
# hash value = 170601359
ulng.rsmsgrensel='Rename/move selected "%s"?'
# hash value = 7982881
ulng.rsmsgerrforcedir='Can not create directory %s!'
# hash value = 181428339
ulng.rsmsgselected='Selected %s of %s in %d of %d files'
# hash value = 175792867
ulng.rsmsgpopuphotadd='&Add %s'
# hash value = 80561893
ulng.rsmsgpopuphotcnf='&Configure'
# hash value = 209920523
ulng.rsdlgbuttons='&OK;&No;&Yes;&Cancel;&None;&Append;&Rewrite;Rewrite &A'+
'll;&Skip;S&kip All;All;'
# hash value = 123445971
ulng.rsspacemsg='Files:%d, Dirs:%d, Size: %d bytes'
# hash value = 189133881
ulng.rsselectdir='Select a directory'
# hash value = 172030507
ulng.rsmarkplus='Select mask'
# hash value = 104921723
ulng.rsmarkminus='Unselect mask'
# hash value = 105111082
ulng.rsmaskinput='Input mask:'
# hash value = 40857827
ulng.rsfreemsg='Free %s from %s bytes'
# hash value = 99205601
ulng.rsmsgerrdirexists='Directory %s exists!'
# hash value = 46716931
ulng.rsmsgpopuphotdelete='&Delete %s'
# hash value = 156458901
ulng.rsmsgdisknotavail='Disk is not available'
# hash value = 254598078
ulng.rssaveposition='&Save position'
# hash value = 227702798
ulng.rspositionsaved='Position saved.'
# hash value = 15654041
ulng.rsdlgdel='Delete file(s)'
# hash value = 140772409
ulng.rsdlgcp='Copy file(s)'
# hash value = 163887161
ulng.rsdlgmv='Move file(s)'
# hash value = 83818318
ulng.rsviewabouttext='Internal Viewer of Double Commander.'
# hash value = 346165
ulng.rscolname='Name'
# hash value = 19700
ulng.rscolext='Ext'
# hash value = 368901
ulng.rscolsize='Size'
# hash value = 305317
ulng.rscoldate='Date'
# hash value = 297906
ulng.rscolattr='Attr'
# hash value = 206743977
ulng.rspropsyes='Yes (%s)'
# hash value = 1359
ulng.rspropsno='No'
# hash value = 146472345
ulng.rspropsfolder='Directory'
# hash value = 315429
ulng.rspropsfile='File'
# hash value = 211174565
ulng.rspropsspchrdev='Special character device'
# hash value = 115368965
ulng.rspropsspblkdev='Special block device'
# hash value = 190986325
ulng.rspropsnmdpipe='Named pipe'
# hash value = 72792635
ulng.rspropssymlink='Symbolic link'
# hash value = 94740932
ulng.rspropssocket='Socket'
# hash value = 163751173
ulng.rspropsunknowntype='Unknown type'
# hash value = 256729658
ulng.rscomparediffs='Number of changes:'
# hash value = 82729700
ulng.rsfindscaned='Scanned: %d'
# hash value = 199229956
ulng.rsfindwherebeg='Begin at'
# hash value = 66127969
ulng.rsfinddirnoex='Directory %s does not exist!'
# hash value = 48267678
ulng.rssymerrcreate='Error creating symlink.'
# hash value = 110806206
ulng.rsharderrcreate='Error creating hardlink.'
# hash value = 22755589
ulng.rslinkmsgok='Linker complete'
# hash value = 26614778
ulng.rssplitseldir='Select directory:'
# hash value = 147785361
ulng.rsspliterrfilesize='Incorrect file size format!'
# hash value = 255677985
ulng.rsspliterrdirectory='Unable to create target directory!'
# hash value = 228356289
ulng.rsspliterrsplitfile='Unable to split the file!'
# hash value = 146321370
ulng.rssplitmsgcreated='Created:'
# hash value = 7999626
ulng.rssplitmsgsize='size:'
# hash value = 80370564
ulng.rseditnewfile='new.txt'
# hash value = 201759301
ulng.rseditnewopen='Open file'
# hash value = 46419594
ulng.rseditnewfilename='Filename:'
# hash value = 27011843
ulng.rsmsgnotdelete='Can not delete file %s'
# hash value = 182862975
ulng.rsmsgfileexistsrwrt='File %s exists, overwrite?'
# hash value = 118870367
ulng.rsmsgfilechangedsave='File %s changed, save?'
# hash value = 211209061
ulng.rsmsgnewfile='New file'
# hash value = 81412991
ulng.rsmsgdelfldr='Delete %d selected files/directories?'
# hash value = 214258367
ulng.rsmsgdelsel='Delete selected "%s"?'
# hash value = 173207295
ulng.rsmsgcpfldr='Copy %d selected files/directories?'
# hash value = 73979967
ulng.rsmsgcpsel='Copy selected "%s"?'
# hash value = 197963407
ulng.rsmsgrenfldr='Rename/move %d selected files/directories?'
# hash value = 170601359
ulng.rsmsgrensel='Rename/move selected "%s"?'
# hash value = 7982881
ulng.rsmsgerrforcedir='Can not create directory %s!'
# hash value = 181428339
ulng.rsmsgselected='Selected %s of %s in %d of %d files'
# hash value = 175792867
ulng.rsmsgpopuphotadd='&Add %s'
# hash value = 80561893
ulng.rsmsgpopuphotcnf='&Configure'
# hash value = 209920523
ulng.rsdlgbuttons='&OK;&No;&Yes;&Cancel;&None;&Append;&Rewrite;Rewrite &A'+
'll;&Skip;S&kip All;All;'
# hash value = 123445971
ulng.rsspacemsg='Files:%d, Dirs:%d, Size: %d bytes'
# hash value = 189133881
ulng.rsselectdir='Select a directory'
# hash value = 172030507
ulng.rsmarkplus='Select mask'
# hash value = 104921723
ulng.rsmarkminus='Unselect mask'
# hash value = 105111082
ulng.rsmaskinput='Input mask:'
# hash value = 40857827
ulng.rsfreemsg='Free %s from %s bytes'
# hash value = 99205601
ulng.rsmsgerrdirexists='Directory %s exists!'
# hash value = 46716931
ulng.rsmsgpopuphotdelete='&Delete %s'
# hash value = 156458901
ulng.rsmsgdisknotavail='Disk is not available'
# hash value = 44601553
ulng.rsmsgchdirfailed='ChDir to [%s] failed!'
# hash value = 184740991
ulng.rsmsgnofreespacecont='No enough free space on target drive, Continue'+
'?'
# hash value = 175592239
ulng.rsmsgnofreespaceretry='No enough free space on target drive, Retry?'
# hash value = 61082373
ulng.rsmsgsellocnextvol='Please select location of next volume'
# hash value = 235022180
ulng.rsmsgnextvolunpack='Next volume will be unpacked'
# hash value = 167300325
ulng.rsmsgerrendarchive='No more files in archive'
# hash value = 186252633
ulng.rsmsgerrnomemory='Not enough memory'
# hash value = 122675780
ulng.rsmsgerrbaddata='Data is bad'
# hash value = 201274225
ulng.rsmsgerrbadarchive='CRC error in archive data'
# hash value = 65752782
ulng.rsmsgerrunknownformat='Archive format unknown'
# hash value = 142972053
ulng.rsmsgerreopen='Cannot open existing file'
# hash value = 142873285
ulng.rsmsgerrecreate='Cannot create file'
# hash value = 117060069
ulng.rsmsgerreclose='Error closing file'
# hash value = 160140661
ulng.rsmsgerreread='Error reading from file'
# hash value = 81442165
ulng.rsmsgerrewrite='Error writing to file'
# hash value = 230348428
ulng.rsmsgerrsmallbuf='Buffer too small'
# hash value = 61952658
ulng.rsmsgerreaborted='Function aborted by user'
# hash value = 67268052
ulng.rsmsgerrnofiles='No files found'
# hash value = 46550939
ulng.rsmsgerrtoomanyfiles='Too many files to pack'
# hash value = 197641441
ulng.rsmsgerrnotsupported='Function not supported!'
# hash value = 254598078
ulng.rssaveposition='&Save position'
# hash value = 227702798
ulng.rspositionsaved='Position saved.'
# hash value = 15654041
ulng.rsdlgdel='Delete file(s)'
# hash value = 140772409
ulng.rsdlgcp='Copy file(s)'
# hash value = 163887161
ulng.rsdlgmv='Move file(s)'
# hash value = 33687726
ulng.rsdlgpack='Packing...'
# hash value = 102705390
ulng.rsdlgextract='Extracting...'
# hash value = 83818318
ulng.rsviewabouttext='Internal Viewer of Double Commander.'
# hash value = 346165
ulng.rscolname='Name'
# hash value = 19700
ulng.rscolext='Ext'
# hash value = 368901
ulng.rscolsize='Size'
# hash value = 305317
ulng.rscoldate='Date'
# hash value = 297906
ulng.rscolattr='Attr'
# hash value = 206743977
ulng.rspropsyes='Yes (%s)'
# hash value = 1359
ulng.rspropsno='No'
# hash value = 146472345
ulng.rspropsfolder='Directory'
# hash value = 315429
ulng.rspropsfile='File'
# hash value = 211174565
ulng.rspropsspchrdev='Special character device'
# hash value = 115368965
ulng.rspropsspblkdev='Special block device'
# hash value = 190986325
ulng.rspropsnmdpipe='Named pipe'
# hash value = 72792635
ulng.rspropssymlink='Symbolic link'
# hash value = 94740932
ulng.rspropssocket='Socket'
# hash value = 163751173
ulng.rspropsunknowntype='Unknown type'
# hash value = 256729658
ulng.rscomparediffs='Number of changes:'
# hash value = 82729700
ulng.rsfindscaned='Scanned: %d'
# hash value = 199229956
ulng.rsfindwherebeg='Begin at'
# hash value = 66127969
ulng.rsfinddirnoex='Directory %s does not exist!'
# hash value = 48267678
ulng.rssymerrcreate='Error creating symlink.'
# hash value = 110806206
ulng.rsharderrcreate='Error creating hardlink.'
# hash value = 22755589
ulng.rslinkmsgok='Linker complete'
# hash value = 26614778
ulng.rssplitseldir='Select directory:'
# hash value = 147785361
ulng.rsspliterrfilesize='Incorrect file size format!'
# hash value = 255677985
ulng.rsspliterrdirectory='Unable to create target directory!'
# hash value = 228356289
ulng.rsspliterrsplitfile='Unable to split the file!'
# hash value = 146321370
ulng.rssplitmsgcreated='Created:'
# hash value = 7999626
ulng.rssplitmsgsize='size:'
# hash value = 80370564
ulng.rseditnewfile='new.txt'
# hash value = 201759301
ulng.rseditnewopen='Open file'
# hash value = 46419594
ulng.rseditnewfilename='Filename:'

View file

@ -58,7 +58,7 @@ begin
GetDiskFreeSpace(sDstPath, iFreeDiskSize, iTotalDiskSize);
if pr^.iSize > iFreeDiskSize then
begin
case MsgBoxForThread(Self, 'No enough free space on target drive, Continue?', [msmbYes, msmbNo,msmbSkip], msmbYes, msmbNo) of // TODO: Localize
case MsgBoxForThread(Self, rsMsgNoFreeSpaceCont, [msmbYes, msmbNo,msmbSkip], msmbYes, msmbNo) of
mmrNo:
Exit;
mmrSkip:
@ -193,7 +193,7 @@ begin
{Check disk free space}
GetDiskFreeSpace(sDstPath, iFreeDiskSize, iTotalDiskSize);
if cBlockSize > iFreeDiskSize then
case MsgBoxForThread(Self, 'No enough free space on target drive, Retry?', [msmbYes, msmbNo,msmbSkip], msmbYes, msmbNo) of // TODO: Localize
case MsgBoxForThread(Self, rsMsgNoFreeSpaceRetry, [msmbYes, msmbNo,msmbSkip], msmbYes, msmbNo) of
mmrYes:
bRetry := True;
mmrNo:
@ -222,7 +222,7 @@ begin
{Check disk free space}
GetDiskFreeSpace(sDstPath, iFreeDiskSize, iTotalDiskSize);
if (src.Size+iDstBeg-dst.size) > iFreeDiskSize then
case MsgBoxForThread(Self, 'No enough free space on target drive, Retry?', [msmbYes, msmbNo,msmbSkip], msmbYes, msmbNo) of // TODO: Localize
case MsgBoxForThread(Self, rsMsgNoFreeSpaceRetry, [msmbYes, msmbNo,msmbSkip], msmbYes, msmbNo) of
mmrYes:
bRetry := True;
mmrNo:

312
ulng.pas
View file

@ -1,144 +1,168 @@
{
Double Commander
-------------------------------------------------------------------------
Localization core unit
Copyright (C) 2007 Koblov Alexander (Alexx2000@mail.ru)
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
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. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
}
unit uLng;
{$mode objfpc}{$H+}
interface
uses
LResources;
resourcestring
rsMsgNotDelete = 'Can not delete file %s';
rsMsgFileExistsRwrt = 'File %s exists, overwrite?';
rsMsgFileChangedSave = 'File %s changed, save?';
rsMsgNewFile = 'New file';
rsMsgDelFlDr = 'Delete %d selected files/directories?';
rsMsgDelSel = 'Delete selected "%s"?';
rsMsgCpFlDr = 'Copy %d selected files/directories?';
rsMsgCpSel = 'Copy selected "%s"?';
rsMsgRenFlDr = 'Rename/move %d selected files/directories?';
rsMsgRenSel = 'Rename/move selected "%s"?';
rsMsgErrForceDir = 'Can not create directory %s!';
rsMsgSelected = 'Selected %s of %s in %d of %d files';
rsMsgPopUpHotAdd = '&Add %s';
rsMsgPopUpHotCnf = '&Configure';
rsDlgButtons = '&OK;&No;&Yes;&Cancel;&None;&Append;&Rewrite;Rewrite &All;&Skip;S&kip All;All;';
rsSpaceMsg = 'Files:%d, Dirs:%d, Size: %d bytes';
rsSelectDir = 'Select a directory';
rsMarkPlus = 'Select mask';
rsMarkMinus = 'Unselect mask';
rsMaskInput = 'Input mask:';
rsFreeMsg = 'Free %s from %s bytes';
rsMsgErrDirExists = 'Directory %s exists!';
rsMsgPopUpHotDelete = '&Delete %s';
rsMsgDiskNotAvail = 'Disk is not available';
rsSavePosition = '&Save position';
rsPositionSaved = 'Position saved.';
//File operations dialog
rsDlgDel = 'Delete file(s)';
rsDlgCp = 'Copy file(s)';
rsDlgMv = 'Move file(s)';
// Viewer
rsViewAboutText = 'Internal Viewer of Double Commander.';
//Column in TListView
rsColName = 'Name';
rsColExt = 'Ext';
rsColSize = 'Size';
rsColDate = 'Date';
rsColAttr = 'Attr';
// File properties dialog
rsPropsYes = 'Yes (%s)';
rsPropsNo = 'No';
rsPropsFolder = 'Directory';
rsPropsFile = 'File';
rsPropsSpChrDev = 'Special character device';
rsPropsSpBlkDev = 'Special block device';
rsPropsNmdPipe = 'Named pipe';
rsPropsSymLink = 'Symbolic link';
rsPropsSocket = 'Socket';
rsPropsUnknownType = 'Unknown type';
//Compare by content Dialog
rsCompareDiffs = 'Number of changes:';
// Find files dialog
rsFindScaned = 'Scanned: %d';
rsFindWhereBeg = 'Begin at';
rsFindDirNoEx = 'Directory %s does not exist!';
// Symlink dialog
rsSymErrCreate = 'Error creating symlink.';
// Hardlink dialog
rsHardErrCreate = 'Error creating hardlink.';
// Linker dialog
rsLinkMsgOK = 'Linker complete';
// Splitter dialog
rsSplitSelDir = 'Select directory:';
rsSplitErrFileSize = 'Incorrect file size format!';
rsSplitErrDirectory = 'Unable to create target directory!';
rsSplitErrSplitFile = 'Unable to split the file!';
rsSplitMsgCreated = 'Created:';
rsSplitMsgSize = 'size:';
// Edit
rsEditNewFile = 'new.txt';
rsEditNewOpen = 'Open file';
rsEditNewFileName = 'Filename:';
procedure lngLoadLng(const sFileName:String);
procedure DoLoadLng;
implementation
uses
Classes, SysUtils, GetText, Translations, uGlobs, uGlobsPaths, uTranslator, LCLProc;
procedure lngLoadLng(const sFileName:String);
var
Lang, FallbackLang : String;
begin
{ Localization }
if sFileName = 'doublecmd.po' then Exit; // default english interface
DebugLn('Loading lng file: ' + gpLngDir + sFileName);
gPOFileName := sFileName;
if not FileExists(gpLngDir + gPOFileName) then
begin
gPOFileName := 'doublecmd.%s.po';
GetLanguageIDs(Lang, FallbackLang);
gPOFileName := Format(gPOFileName,[FallbackLang]);
end;
if not FileExists(gpLngDir + gPOFileName) then
begin
gPOFileName := Format(gPOFileName,[Lang]);
end;
if FileExists(gpLngDir + gPOFileName) then
begin
Translations.TranslateUnitResourceStrings('uLng', gpLngDir + gPOFileName);
LRSTranslator := TTranslator.Create(gpLngDir + gPOFileName);
end;
end;
procedure DoLoadLng;
begin
lngLoadLng(gPOFileName);
end;
end.
{
Double Commander
-------------------------------------------------------------------------
Localization core unit
Copyright (C) 2007 Koblov Alexander (Alexx2000@mail.ru)
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
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. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
}
unit uLng;
{$mode objfpc}{$H+}
interface
uses
LResources;
resourcestring
rsMsgNotDelete = 'Can not delete file %s';
rsMsgFileExistsRwrt = 'File %s exists, overwrite?';
rsMsgFileChangedSave = 'File %s changed, save?';
rsMsgNewFile = 'New file';
rsMsgDelFlDr = 'Delete %d selected files/directories?';
rsMsgDelSel = 'Delete selected "%s"?';
rsMsgCpFlDr = 'Copy %d selected files/directories?';
rsMsgCpSel = 'Copy selected "%s"?';
rsMsgRenFlDr = 'Rename/move %d selected files/directories?';
rsMsgRenSel = 'Rename/move selected "%s"?';
rsMsgErrForceDir = 'Can not create directory %s!';
rsMsgSelected = 'Selected %s of %s in %d of %d files';
rsMsgPopUpHotAdd = '&Add %s';
rsMsgPopUpHotCnf = '&Configure';
rsDlgButtons = '&OK;&No;&Yes;&Cancel;&None;&Append;&Rewrite;Rewrite &All;&Skip;S&kip All;All;';
rsSpaceMsg = 'Files:%d, Dirs:%d, Size: %d bytes';
rsSelectDir = 'Select a directory';
rsMarkPlus = 'Select mask';
rsMarkMinus = 'Unselect mask';
rsMaskInput = 'Input mask:';
rsFreeMsg = 'Free %s from %s bytes';
rsMsgErrDirExists = 'Directory %s exists!';
rsMsgPopUpHotDelete = '&Delete %s';
rsMsgDiskNotAvail = 'Disk is not available';
rsMsgChDirFailed = 'ChDir to [%s] failed!';
rsMsgNoFreeSpaceCont = 'No enough free space on target drive, Continue?';
rsMsgNoFreeSpaceRetry = 'No enough free space on target drive, Retry?';
// wcx module messages
rsMsgSelLocNextVol = 'Please select location of next volume';
rsMsgNextVolUnpack = 'Next volume will be unpacked';
// wcx module errors messages
rsMsgErrEndArchive = 'No more files in archive';
rsMsgErrNoMemory = 'Not enough memory';
rsMsgErrBadData = 'Data is bad';
rsMsgErrBadArchive = 'CRC error in archive data';
rsMsgErrUnknownFormat = 'Archive format unknown';
rsMsgErrEOpen = 'Cannot open existing file';
rsMsgErrECreate = 'Cannot create file';
rsMsgErrEClose = 'Error closing file';
rsMsgErrERead = 'Error reading from file';
rsMsgErrEWrite = 'Error writing to file';
rsMsgErrSmallBuf = 'Buffer too small';
rsMsgErrEAborted = 'Function aborted by user';
rsMsgErrNoFiles = 'No files found';
rsMsgErrTooManyFiles = 'Too many files to pack';
rsMsgErrNotSupported = 'Function not supported!';
rsSavePosition = '&Save position';
rsPositionSaved = 'Position saved.';
//File operations dialog
rsDlgDel = 'Delete file(s)';
rsDlgCp = 'Copy file(s)';
rsDlgMv = 'Move file(s)';
rsDlgPack = 'Packing...';
rsDlgExtract = 'Extracting...';
// Viewer
rsViewAboutText = 'Internal Viewer of Double Commander.';
//Column in TListView
rsColName = 'Name';
rsColExt = 'Ext';
rsColSize = 'Size';
rsColDate = 'Date';
rsColAttr = 'Attr';
// File properties dialog
rsPropsYes = 'Yes (%s)';
rsPropsNo = 'No';
rsPropsFolder = 'Directory';
rsPropsFile = 'File';
rsPropsSpChrDev = 'Special character device';
rsPropsSpBlkDev = 'Special block device';
rsPropsNmdPipe = 'Named pipe';
rsPropsSymLink = 'Symbolic link';
rsPropsSocket = 'Socket';
rsPropsUnknownType = 'Unknown type';
//Compare by content Dialog
rsCompareDiffs = 'Number of changes:';
// Find files dialog
rsFindScaned = 'Scanned: %d';
rsFindWhereBeg = 'Begin at';
rsFindDirNoEx = 'Directory %s does not exist!';
// Symlink dialog
rsSymErrCreate = 'Error creating symlink.';
// Hardlink dialog
rsHardErrCreate = 'Error creating hardlink.';
// Linker dialog
rsLinkMsgOK = 'Linker complete';
// Splitter dialog
rsSplitSelDir = 'Select directory:';
rsSplitErrFileSize = 'Incorrect file size format!';
rsSplitErrDirectory = 'Unable to create target directory!';
rsSplitErrSplitFile = 'Unable to split the file!';
rsSplitMsgCreated = 'Created:';
rsSplitMsgSize = 'size:';
// Edit
rsEditNewFile = 'new.txt';
rsEditNewOpen = 'Open file';
rsEditNewFileName = 'Filename:';
procedure lngLoadLng(const sFileName:String);
procedure DoLoadLng;
implementation
uses
Classes, SysUtils, GetText, Translations, uGlobs, uGlobsPaths, uTranslator, LCLProc;
procedure lngLoadLng(const sFileName:String);
var
Lang, FallbackLang : String;
begin
{ Localization }
if sFileName = 'doublecmd.po' then Exit; // default english interface
DebugLn('Loading lng file: ' + gpLngDir + sFileName);
gPOFileName := sFileName;
if not FileExists(gpLngDir + gPOFileName) then
begin
gPOFileName := 'doublecmd.%s.po';
GetLanguageIDs(Lang, FallbackLang);
gPOFileName := Format(gPOFileName,[FallbackLang]);
end;
if not FileExists(gpLngDir + gPOFileName) then
begin
gPOFileName := Format(gPOFileName,[Lang]);
end;
if FileExists(gpLngDir + gPOFileName) then
begin
Translations.TranslateUnitResourceStrings('uLng', gpLngDir + gPOFileName);
LRSTranslator := TTranslator.Create(gpLngDir + gPOFileName);
end;
end;
procedure DoLoadLng;
begin
lngLoadLng(gPOFileName);
end;
end.

View file

@ -67,7 +67,7 @@ begin
GetDiskFreeSpace(sDstPath, iFreeDiskSize, iTotalDiskSize);
if pr^.iSize > iFreeDiskSize then
begin
case MsgBoxForThread(Self, 'No enough free space on target drive, Continue?', [msmbYes, msmbNo,msmbSkip], msmbYes, msmbNo) of // TODO: Localize
case MsgBoxForThread(Self, rsMsgNoFreeSpaceCont, [msmbYes, msmbNo,msmbSkip], msmbYes, msmbNo) of
mmrNo:
Exit;
mmrSkip:

View file

@ -213,21 +213,21 @@ var
sErrorMsg : String;
begin
case iErrorMsg of
E_END_ARCHIVE : sErrorMsg := 'No more files in archive';
E_NO_MEMORY : sErrorMsg := 'Not enough memory';
E_BAD_DATA : sErrorMsg := 'Data is bad';
E_BAD_ARCHIVE : sErrorMsg := 'CRC error in archive data';
E_UNKNOWN_FORMAT : sErrorMsg := 'Archive format unknown';
E_EOPEN : sErrorMsg := 'Cannot open existing file';
E_ECREATE : sErrorMsg := 'Cannot create file';
E_ECLOSE : sErrorMsg := 'Error closing file';
E_EREAD : sErrorMsg := 'Error reading from file';
E_EWRITE : sErrorMsg := 'Error writing to file';
E_SMALL_BUF : sErrorMsg := 'Buffer too small';
E_EABORTED : sErrorMsg := 'Function aborted by user';
E_NO_FILES : sErrorMsg := 'No files found';
E_TOO_MANY_FILES : sErrorMsg := 'Too many files to pack';
E_NOT_SUPPORTED : sErrorMsg := 'Function not supported';
E_END_ARCHIVE : sErrorMsg := rsMsgErrEndArchive;
E_NO_MEMORY : sErrorMsg := rsMsgErrNoMemory;
E_BAD_DATA : sErrorMsg := rsMsgErrBadData;
E_BAD_ARCHIVE : sErrorMsg := rsMsgErrBadArchive;
E_UNKNOWN_FORMAT : sErrorMsg := rsMsgErrUnknownFormat;
E_EOPEN : sErrorMsg := rsMsgErrEOpen;
E_ECREATE : sErrorMsg := rsMsgErrECreate;
E_ECLOSE : sErrorMsg := rsMsgErrEClose;
E_EREAD : sErrorMsg := rsMsgErrERead;
E_EWRITE : sErrorMsg := rsMsgErrEWrite;
E_SMALL_BUF : sErrorMsg := rsMsgErrSmallBuf;
E_EABORTED : sErrorMsg := rsMsgErrEAborted;
E_NO_FILES : sErrorMsg := rsMsgErrNoFiles;
E_TOO_MANY_FILES : sErrorMsg := rsMsgErrTooManyFiles;
E_NOT_SUPPORTED : sErrorMsg := rsMsgErrNotSupported;
end;
ShowMessage(sErrorMsg);
end;
@ -236,9 +236,9 @@ function ChangeVolProc(ArcName : Pchar; Mode:Longint):Longint; stdcall;
begin
case Mode of
PK_VOL_ASK:
ArcName := PChar(InputBox ('Double Commander', 'Please select location of next volume', ArcName)); // TODO: localize
ArcName := PChar(InputBox ('Double Commander', rsMsgSelLocNextVol, ArcName));
PK_VOL_NOTIFY:
ShowMessage('Next volume will be unpacked'); // TODO: localize
ShowMessage(rsMsgNextVolUnpack);
end;
end;
@ -689,7 +689,7 @@ begin
FFileOpDlg.Show;
FFileOpDlg.iProgress1Max:=100;
FFileOpDlg.iProgress2Max:=100;
FFileOpDlg.Caption := 'Extracting...'; //TODO: Localize
FFileOpDlg.Caption := rsDlgExtract;
FFileList := flSrcList;
FDstPath := sDstPath;
@ -717,7 +717,7 @@ begin
FFileOpDlg.Show;
FFileOpDlg.iProgress1Max:=100;
FFileOpDlg.iProgress2Max:=100;
FFileOpDlg.Caption := 'Packing...'; //TODO: Localize
FFileOpDlg.Caption := rsDlgPack;
FFileList := flSrcList;
FDstPath := sDstName;
@ -745,7 +745,7 @@ begin
FFileOpDlg.Show;
FFileOpDlg.iProgress1Max:=100;
FFileOpDlg.iProgress2Max:=100;
FFileOpDlg.Caption := 'Extracting...'; //TODO: Localize
FFileOpDlg.Caption := rsDlgExtract;
FFileList := flSrcList;
FDstPath := sDstPath;
@ -773,7 +773,7 @@ begin
FFileOpDlg.Show;
FFileOpDlg.iProgress1Max:=100;
FFileOpDlg.iProgress2Max:=100;
FFileOpDlg.Caption := 'Packing...'; //TODO: Localize
FFileOpDlg.Caption := rsDlgPack;
FFileList := flSrcList;
FDstPath := sDstName;