fpspreadsheet: Activate i16n for translation of strings. Add German translation. Some cleanup (hints & warnings).

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@4592 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz 2016-03-24 22:37:10 +00:00
parent e5df478a82
commit 313853b6e3
22 changed files with 1396 additions and 222 deletions

View File

@ -70,6 +70,9 @@ type
DateMode: TDateMode; // R/W
end;
const
STR_FILEFORMAT_SYLK = 'SYLK';
var
{@@ Default settings for reading/writing of SYLK files }
SYLKSettings: TSYLKSettings = (
@ -83,7 +86,7 @@ var
implementation
uses
fpsStrings, fpsRegFileFormats, fpsUtils, fpsNumFormat;
fpsRegFileFormats, fpsUtils, fpsNumFormat;
{==============================================================================}
{ TsSYLKReader }
@ -253,7 +256,7 @@ begin
TryStrToFloat(sval, val, FPointSeparatorSettings) then
begin
for col := col1-1 to col2-1 do
FWorksheet.WriteColWidth(col, val);
FWorksheet.WriteColWidth(col, val, suChars);
end;
end;
end;
@ -663,7 +666,7 @@ initialization
sfidSYLK := RegisterSpreadFormat(sfUser,
TsSYLKReader, TsSYLKWriter,
rsFileFormatSYLK, 'SYLK', ['.slk', '.sylk']
STR_FILEFORMAT_SYLK, 'SYLK', ['.slk', '.sylk']
);
end.

View File

@ -93,7 +93,7 @@ implementation
uses
DateUtils, LConvEncoding, Math,
fpsStrings, fpsRegFileFormats, fpsUtils, fpsNumFormat;
fpsRegFileFormats, fpsUtils, fpsNumFormat;
function LineEndingAsString(ALineEnding: TsCSVLineEnding): String;
begin
@ -448,7 +448,7 @@ initialization
// Registers this reader / writer in fpSpreadsheet
sfidCSV := RegisterSpreadFormat(sfCSV,
TsCSVReader, TsCSVWriter,
rsFileFormatCSV, 'CSV', [STR_COMMA_SEPARATED_EXTENSION, '.txt']
STR_FILEFORMAT_CSV, 'CSV', [STR_COMMA_SEPARATED_EXTENSION, '.txt']
);
end.

View File

@ -278,7 +278,7 @@ type
destructor Destroy; override;
property Operand: TsExprNode read FOperand;
end;
(*
{ TsNotExprNode }
TsNotExprNode = class(TsUnaryOperationExprNode)
protected
@ -289,7 +289,7 @@ type
procedure Check; override;
function NodeType: TsResultType; override;
end;
*)
(*
{ TsConvertExprNode }
TsConvertExprNode = class(TsUnaryOperationExprNode)
@ -836,7 +836,7 @@ const
implementation
uses
typinfo, math, lazutf8, dateutils, fpsutils, fpsfunc;
typinfo, math, lazutf8, dateutils, fpsutils, fpsfunc, fpsStrings;
const
cNull = #0;
@ -850,43 +850,6 @@ const
Symbols = Delimiters;
WordDelimiters = WhiteSpace + Symbols;
resourcestring
SBadQuotes = 'Unterminated string';
SUnknownDelimiter = 'Unknown delimiter character: "%s"';
SErrUnknownCharacter = 'Unknown character at pos %d: "%s"';
SErrUnexpectedEndOfExpression = 'Unexpected end of expression';
SErrUnknownComparison = 'Internal error: Unknown comparison';
SErrBracketExpected = 'Expected ) bracket at position %d, but got %s';
SerrUnknownTokenAtPos = 'Unknown token at pos %d : %s';
SErrLeftBracketExpected = 'Expected ( bracket at position %d, but got %s';
SErrInvalidFloat = '%s is not a valid floating-point value';
SErrUnknownIdentifier = 'Unknown identifier: %s';
SErrInExpression = 'Cannot evaluate: error in expression';
SErrInExpressionEmpty = 'Cannot evaluate: empty expression';
SErrCommaExpected = 'Expected comma (,) at position %d, but got %s';
SErrInvalidNumberChar = 'Unexpected character in number : %s';
SErrInvalidNumber = 'Invalid numerical value : %s';
SErrInvalidCell = 'No valid cell address specification : %s';
SErrInvalidCellRange = 'No valid cell range specification : %s';
SErrNoOperand = 'No operand for unary operation %s';
{ -- currently not used:
SErrNoLeftOperand = 'No left operand for binary operation %s';
SErrNoRightOperand = 'No left operand for binary operation %s';
SErrNoNegation = 'Cannot negate expression of type %s: %s';
SErrNoUPlus = 'Cannot perform unary plus operation on type %s: %s';
SErrTypesDoNotMatch = 'Type mismatch: %s<>%s for expressions "%s" and "%s".';
SErrNoNodeToCheck = 'Internal error: No node to check !';
SInvalidNodeType = 'Node type (%s) not in allowed types (%s) for expression: %s';
}
SErrNoNOTOperation = 'Cannot perform NOT operation on expression of type %s: %s';
SErrNoPercentOperation = 'Cannot perform percent operation on expression of type %s: %s';
SErrUnterminatedExpression = 'Badly terminated expression. Found token at position %d : %s';
SErrDuplicateIdentifier = 'An identifier with name "%s" already exists.';
SErrInvalidResultCharacter = '"%s" is not a valid return type indicator';
ErrInvalidArgumentCount = 'Invalid argument count for function %s';
SErrInvalidResultType = 'Invalid result type: %s';
SErrNotVariable = 'Identifier %s is not a variable';
SErrCircularReference = 'Circular reference found when calculating worksheet formula in cell %s';
{ ---------------------------------------------------------------------
Auxiliary functions
@ -924,7 +887,7 @@ begin
'C' : Result := rtCell;
'?' : Result := rtAny;
else
RaiseParserError(SErrInvalidResultCharacter, [C]);
RaiseParserError(rsInvalidResultCharacter, [C]);
end;
end;
@ -995,7 +958,7 @@ begin
')' : Result := ttRight;
// ',' : Result := ttComma;
else
ScanError(Format(SUnknownDelimiter, [D]));
ScanError(Format(rsUnknownDelimiter, [D]));
end;
end;
@ -1056,13 +1019,13 @@ begin
or ((FToken <> '') and (C in ['+', '-']) and (prevC = 'E'))
)
then
ScanError(Format(SErrInvalidNumberChar, [C]));
ScanError(Format(rsInvalidNumberChar, [C]));
FToken := FToken+C;
prevC := Upcase(C);
C := NextPos;
end;
if not TryStrToFloat(FToken, X, FParser.FFormatSettings) then
ScanError(Format(SErrInvalidNumber, [FToken]));
ScanError(Format(rsInvalidNumber, [FToken]));
Result := ttNumber;
end;
@ -1081,7 +1044,7 @@ begin
while (C <> ']') do
begin
case C of
cNull: ScanError(SErrUnexpectedEndOfExpression);
cNull: ScanError(rsUnexpectedEndOfExpression);
'.' : ; // ignore
':' : begin isRange := true; FToken := FToken + C; end;
else FToken := FToken + C;
@ -1128,7 +1091,7 @@ begin
C := NextPos;
end;
if (C = cNull) then
ScanError(SBadQuotes);
ScanError(rsBadQuotes);
Result := ttString;
FTokenType := Result;
NextPos;
@ -1164,7 +1127,7 @@ begin
else if IsAlpha(C) or (C = '$') then
Result := DoIdentifier
else
ScanError(Format(SErrUnknownCharacter, [FPos, C]));
ScanError(Format(rsUnknownCharacter, [FPos, C]));
FTokenType := Result;
end;
@ -1266,14 +1229,14 @@ end;
procedure TsExpressionParser.CheckEOF;
begin
if (TokenType = ttEOF) then
ParserError(SErrUnexpectedEndOfExpression);
ParserError(rsUnexpectedEndOfExpression);
end;
procedure TsExpressionParser.CheckResultType(const Res: TsExpressionResult;
AType: TsResultType); inline;
begin
if (Res.ResultType <> AType) then
RaiseParserError(SErrInvalidResultType, [ResultTypeName(Res.ResultType)]);
RaiseParserError(rsInvalidResultType, [ResultTypeName(Res.ResultType)]);
end;
procedure TsExpressionParser.Clear;
@ -1346,9 +1309,9 @@ end;
procedure TsExpressionParser.EvaluateExpression(out Result: TsExpressionResult);
begin
if (FExpression = '') then
ParserError(SErrInExpressionEmpty);
ParserError(rsExpressionEmpty);
if not Assigned(FExprNode) then
ParserError(SErrInExpression);
ParserError(rsErrorInExpression);
FExprNode.GetNodeValue(Result);
end;
@ -1480,7 +1443,7 @@ begin
ttEqual : C := TsEqualExprNode;
ttNotEqual : C := TsNotEqualExprNode;
else
ParserError(SErrUnknownComparison)
ParserError(rsUnknownComparison)
end;
Result := C.Create(self, Result, right);
end;
@ -1602,7 +1565,7 @@ begin
if (TokenType <> ttRight) then begin
currToken := CurrentToken;
if TokenType = ttEOF then currToken := 'end of formula';
ParserError(Format(SErrBracketExpected, [SCanner.Pos, currToken]));
ParserError(Format(rsRightBracketExpected, [SCanner.Pos, currToken]));
end;
GetToken;
except
@ -1642,7 +1605,7 @@ begin
if TryStrToFloat(CurrentToken, X, FFormatSettings) then
Result := TsConstExprNode.CreateFloat(self, X)
else
ParserError(Format(SErrInvalidFloat, [CurrentToken]));
ParserError(Format(rsInvalidFloat, [CurrentToken]));
end;
end
else if (TokenType = ttTrue) then
@ -1658,13 +1621,13 @@ begin
else if (TokenType = ttError) then
Result := TsConstExprNode.CreateError(self, CurrentToken)
else if not (TokenType in [ttIdentifier]) then
ParserError(Format(SerrUnknownTokenAtPos, [Scanner.Pos, CurrentToken]))
ParserError(Format(rsUnknownTokenAtPos, [Scanner.Pos, CurrentToken]))
else
begin
token := Uppercase(CurrentToken);
ID := self.IdentifierByName(token);
if (ID = nil) then
ParserError(Format(SErrUnknownIdentifier, [token]));
ParserError(Format(rsUnknownIdentifier, [token]));
if (ID.IdentifierType in [itFunctionCallBack, itFunctionHandler]) then
begin
lCount := ID.ArgumentCount;
@ -1672,10 +1635,10 @@ begin
begin
GetToken;
if (TokenType <> ttLeft) then
ParserError(Format(SErrLeftBracketExpected, [Scanner.Pos, CurrentOrEOFToken]));
ParserError(Format(rsLeftBracketExpected, [Scanner.Pos, CurrentOrEOFToken]));
GetToken;
if (TokenType <> ttRight) then
ParserError(Format(SErrBracketExpected, [Scanner.Pos, CurrentOrEOFToken]));
ParserError(Format(rsRightBracketExpected, [Scanner.Pos, CurrentOrEOFToken]));
SetLength(Args, 0);
end;
end
@ -1688,7 +1651,7 @@ begin
begin
GetToken;
if (TokenType <> ttLeft) then
ParserError(Format(SErrLeftBracketExpected, [Scanner.Pos, CurrentOrEofToken]));
ParserError(Format(rsLeftBracketExpected, [Scanner.Pos, CurrentOrEofToken]));
SetLength(Args, abs(lCount));
AI := 0;
try
@ -1714,11 +1677,11 @@ begin
begin
if (TokenType <> ttListSep) then
if (AI < abs(lCount)) then
ParserError(Format(SErrCommaExpected, [Scanner.Pos, CurrentOrEofToken]))
ParserError(Format(rsCommaExpected, [Scanner.Pos, CurrentOrEofToken]))
end;
until (AI = lCount) or (((lCount < 0) or optional) and (TokenType = ttRight));
if TokenType <> ttRight then
ParserError(Format(SErrBracketExpected, [Scanner.Pos, CurrentOrEofToken]));
ParserError(Format(rsRightBracketExpected, [Scanner.Pos, CurrentOrEofToken]));
if AI < abs(lCount) then
SetLength(Args, AI);
except
@ -1749,7 +1712,7 @@ end;
function TsExpressionParser.ResultType: TsResultType;
begin
if not Assigned(FExprNode) then
ParserError(SErrInExpression);
ParserError(rsErrorInExpression);
Result := FExprNode.NodeType;;
end;
@ -1805,7 +1768,7 @@ begin
GetToken;
FExprNode := Level1;
if (TokenType <> ttEOF) then
ParserError(Format(SErrUnterminatedExpression, [Scanner.Pos, CurrentToken]));
ParserError(Format(rsUnterminatedExpression, [Scanner.Pos, CurrentToken]));
FExprNode.Check;
end;
end;
@ -1935,7 +1898,7 @@ procedure TsExpressionParser.SetRPNFormula(const AFormula: TsRPNFormula);
ID := self.IdentifierByName(AFormula[AIndex].FuncName);
if ID = nil then
begin
ParserError(Format(SErrUnknownIdentifier,[AFormula[AIndex].FuncName]));
ParserError(Format(rsUnknownIdentifier, [AFormula[AIndex].FuncName]));
dec(AIndex);
end else
begin
@ -2122,7 +2085,7 @@ function TsExprIdentifierDefs.IdentifierByName(const AName: ShortString
begin
Result := FindIdentifier(AName);
if (Result = nil) then
RaiseParserError(SErrUnknownIdentifier, [AName]);
RaiseParserError(rsUnknownIdentifier, [AName]);
end;
function TsExprIdentifierDefs.IndexOfIdentifier(const AName: ShortString): Integer;
@ -2194,13 +2157,13 @@ end;
procedure TsExprIdentifierDef.CheckResultType(const AType: TsResultType);
begin
if (FValue.ResultType <> AType) then
RaiseParserError(SErrInvalidResultType, [ResultTypeName(AType)])
RaiseParserError(rsInvalidResultType, [ResultTypeName(AType)])
end;
procedure TsExprIdentifierDef.CheckVariable;
begin
if Identifiertype <> itVariable then
RaiseParserError(SErrNotVariable, [Name]);
RaiseParserError(rsNoVariable, [Name]);
end;
function TsExprIdentifierDef.GetAsBoolean: Boolean;
@ -2341,7 +2304,7 @@ begin
exit;
if (AValue <> '') then
if Assigned(Collection) and (TsExprIdentifierDefs(Collection).IndexOfIdentifier(AValue) <> -1) then
RaiseParserError(SErrDuplicateIdentifier,[AValue]);
RaiseParserError(rsDuplicateIdentifier,[AValue]);
FName := AValue;
end;
@ -2537,7 +2500,7 @@ end;
procedure TsUnaryOperationExprNode.Check;
begin
if not Assigned(Operand) then
RaiseParserError(SErrNoOperand, [Self.ClassName]);
RaiseParserError(rsNoOperand, [Self.ClassName]);
end;
@ -2840,7 +2803,7 @@ const
begin
inherited;
if not (Operand.NodeType in AllowedTokens) then
RaiseParserError(SErrNoPercentOperation, [ResultTypeName(Operand.NodeType), Operand.AsString])
RaiseParserError(rsNoPercentOperation, [ResultTypeName(Operand.NodeType), Operand.AsString])
end;
procedure TsPercentExprNode.GetNodeValue(out Result: TsExpressionResult);
@ -2887,7 +2850,7 @@ begin
Result := Operand.NodeValue;
end;
(*
{ TsNotExprNode }
function TsNotExprNode.AsRPNItem(ANext: PRPNItem): PRPNItem;
@ -2924,7 +2887,7 @@ function TsNotExprNode.NodeType: TsResultType;
begin
Result := Operand.NodeType;
end;
*)
{ TsBooleanResultExprNode }
@ -3459,7 +3422,7 @@ begin
begin
for i:=Length(FArgumentNodes)+1 to FID.ArgumentCount do
if not FID.IsOptionalArgument(i) then
RaiseParserError(ErrInvalidArgumentCount, [FID.Name]);
RaiseParserError(rsInvalidArgumentCount, [FID.Name]);
end;
for i := 0 to Length(FArgumentNodes)-1 do
@ -3618,7 +3581,7 @@ begin
csNotCalculated:
Worksheet.CalcFormula(cell);
csCalculating:
raise ECalcEngine.CreateFmt(SErrCircularReference, [GetCellString(cell^.Row, cell^.Col)]);
raise ECalcEngine.CreateFmt(rsCircularReference, [GetCellString(cell^.Row, cell^.Col)]);
end;
Result.ResultType := rtCell;
@ -3706,7 +3669,7 @@ begin
csNotCalculated:
FWorksheet.CalcFormula(cell);
csCalculating:
raise ECalcEngine.Create(SErrCircularReference);
raise ECalcEngine.Create(rsCircularReference);
end;
end;

View File

@ -1710,7 +1710,7 @@ begin
Result := StringResult('v');
end else
if stype = 'width' then
Result := FloatResult(Args[1].Worksheet.GetColWidth(c1))
Result := FloatResult(Args[1].Worksheet.GetColWidth(c1, suChars))
else
Result := ErrorResult(errWrongType);
end;

View File

@ -142,7 +142,7 @@ implementation
uses
LConvEncoding, LazUTF8, URIParser, StrUtils, Math,
fpsStrings, fpsRegFileFormats, fpsUtils, fpsXMLCommon, fpsNumFormat;
fpsRegFileFormats, fpsUtils, fpsXMLCommon, fpsNumFormat;
const
MIN_FONTSIZE = 6;
@ -1909,7 +1909,7 @@ initialization
// Registers this reader / writer in fpSpreadsheet
sfidHTML := RegisterSpreadFormat(sfHTML,
TsHTMLReader, TsHTMLWriter,
rsFileFormatHTML, 'HTML', [STR_HTML_EXTENSION, '.htm']
STR_FILEFORMAT_HTML, 'HTML', [STR_HTML_EXTENSION, '.htm']
);

View File

@ -5596,11 +5596,11 @@ begin
if AValue then
begin
StrValue := 'true';
DisplayStr := rsTRUE;
DisplayStr := STR_TRUE;
end else
begin
strValue := 'false';
DisplayStr := rsFALSE;
DisplayStr := STR_FALSE;
end;
// Hyperlink
@ -6976,7 +6976,7 @@ initialization
// Registers this reader / writer in fpSpreadsheet
sfidOpenDocument := RegisterSpreadFormat(sfOpenDocument,
TsSpreadOpenDocReader, TsSpreadOpenDocWriter,
rsFileFormatOpenDocument, 'ODS', [STR_OPENDOCUMENT_CALC_EXTENSION]
STR_FILEFORMAT_OPENDOCUMENT, 'ODS', [STR_OPENDOCUMENT_CALC_EXTENSION]
);
end.

View File

@ -2578,19 +2578,10 @@ begin
end;
cctBool:
Result := StrUtils.IfThen(BoolValue, rsTRUE, rsFALSE);
Result := StrUtils.IfThen(BoolValue, STR_TRUE, STR_FALSE);
cctError:
case TsErrorValue(ErrorValue) of
errEmptyIntersection : Result := rsErrEmptyIntersection;
errDivideByZero : Result := rsErrDivideByZero;
errWrongType : Result := rsErrWrongType;
errIllegalRef : Result := rsErrIllegalRef;
errWrongName : Result := rsErrWrongName;
errOverflow : Result := rsErrOverflow;
errArgError : Result := rsErrArgError;
errFormulaNotSupported: Result := rsErrFormulaNotSupported;
end;
Result := GetErrorValueStr(TsErrorValue(ErrorValue));
else // blank --> display hyperlink target if available
Result := '';
@ -3413,7 +3404,7 @@ var
img: TsImage;
obj: TsEmbeddedObj;
colW, rowH: Double;
totH, totW: Double;
totH: Double;
r, c: Integer;
w_px, h_px: Integer;
totH_px, rowH_px: Integer;
@ -7403,7 +7394,7 @@ begin
// The file could not be opened successfully --> Error.
if not success then
raise Exception.CreateFmt(rsNoValidSpreadsheetFile, [AFileName]);
raise Exception.CreateFmt(rsInvalidSpreadsheetFile, [AFileName]);
end;
{@@ ----------------------------------------------------------------------------
@ -7427,7 +7418,7 @@ begin
end;
end;
if not success then
raise Exception.CreateFmt(rsNoValidSpreadsheetFile, [AFileName]);
raise Exception.CreateFmt(rsInvalidSpreadsheetFile, [AFileName]);
end;
{@@ ----------------------------------------------------------------------------

View File

@ -708,7 +708,9 @@ implementation
uses
Types, LCLType, LCLIntf, LCLProc, Math, StrUtils,
fpCanvas, fpsStrings, fpsUtils, fpsVisualUtils, fpsNumFormat, fpsHTMLUtils;
fpCanvas,
fpsStrings, fpsUtils, fpsVisualUtils, fpsHTMLUtils,
fpsNumFormat;
const
{@@ Default number of columns prepared for a new empty worksheet }

View File

@ -6,40 +6,28 @@ unit fpsStrings;
{$mode delphi}{$H+}
{$endif}
interface
resourcestring
rsDefaultSheetName = 'Sheet%d';
// File formats
rsFileFormatExcel2 = 'Excel 2.1';
rsFileFormatExcel5 = 'Excel 5';
rsFileFormatExcel8 = 'Excel 97-2003';
rsFileFormatExcelXML = 'Excel XP/2003 XML';
rsFileFormatExcelXLSX = 'Excel 2007+ XML';
rsFileFormatOpenDocument = 'OpenDocument';
rsFileFormatSYLK = 'SYLK';
rsFileFormatCSV = 'CSV';
rsFileFormatHTML = 'HTML';
rsFileFormatWikiTablePipes = 'WikiTable (Pipes)';
rsFileFormatWikiTableWikiMedia = 'WikiTable (WikiMedia)';
rsFiles = 'files';
// Files & file formats
rsAllSpreadsheetFiles = 'All spreadsheet files';
rsAllExcelFiles = 'All Excel files';
// Reading / writing
rsCannotReadFile = 'Cannot read file "%s".' + LineEnding + 'Wrong, unknown or defective file format?';
rsCannotReadFile = 'Cannot read file "%s". Wrong, unknown or defective file format?';
rsDefectiveInternalFileStructure = 'Defective internal structure of %s file.';
rsFileAlreadyExists = 'File "%s" already exists.';
rsFileFormatNotSupported = 'File format of "%s" not supported.';
rsFileNotFound = 'File "%s" not found.';
rsFiles = 'files';
rsFileStructureError = 'File structure error in %s record, position %d.';
rsIndexInSSTOutOfRange = 'Index %d in SST out of range (0-%d).';
rsInvalidExtension = 'Attempting to save a spreadsheet by extension, ' +
'but the extension %s is not valid.';
rsInvalidSpreadsheetFile = '"%s" is not a valid spreadsheet file';
rsReaderNotFound = 'Reader not found for file "%s"';
rsUnsupportedReadFormat = 'Tried to read a spreadsheet using an unsupported format';
rsUnsupportedWriteFormat = 'Tried to write a spreadsheet using an unsupported format';
rsNoValidSpreadsheetFile = '"%s" is not a valid spreadsheet file';
rsUnknownSpreadsheetFormat = 'unknown format';
rsReaderNotFound = 'Reader not found for file "%s"';
rsExportFileIsRequired = 'Export file name is required';
rsFPSExportDescription = 'Spreadsheet file';
rsMultipleSheetsOnlyWithRestorePosition = 'Export to multiple sheets is possible '+
'only if position is restored.';
// File format limitations
rsMaxRowsExceeded = 'This workbook contains %d rows, but the selected ' +
'file format does not support more than %d rows.';
rsMaxColsExceeded = 'This workbook contains %d columns, but the selected ' +
@ -47,60 +35,19 @@ resourcestring
rsTooManyPaletteColors = 'This workbook contains more colors (%d) than ' +
'supported by the file format (%d). The additional colors are replaced by '+
'the best-matching palette colors.';
rsInvalidExtension = 'Attempting to save a spreadsheet by extension, ' +
'but the extension %s is not valid.';
rsInvalidFontIndex = 'Invalid font index';
rsInvalidNumberFormat = 'Trying to use an incompatible number format.';
rsInvalidDateTimeFormat = 'Trying to use an incompatible date/time format.';
rsNoValidNumberFormatString = 'No valid number format string.';
rsIsNoValidNumberFormatString = '%s is not a valid number format string.';
rsTruncateTooLongCellText = 'Text value exceeds the %d character limit in ' +
'cell %s and has been truncated.';
// Cells
rsInvalidCharacterInCell = 'Invalid character(s) in cell %s.';
rsNoValidCellAddress = '"%s" is not a valid cell address.';
rsNoValidCellRangeAddress = '"%s" is not a valid cell range address.';
rsNoValidCellRangeOrCellAddress = '"%s" is not a valid cell or cell range address.';
rsSpecifyNumberOfParams = 'Specify number of parameters for function %s';
rsIncorrectParamCount = 'Funtion %s requires at least %d and at most %d parameters.';
rsCircularReference = 'Circular reference found when calculating worksheet formulas';
rsFileNotFound = 'File "%s" not found.';
rsFileFormatNotSupported = 'File format of "%s" not supported.';
rsImageFormatNotSupported = 'Image format not supported.';
rsFileAlreadyExists = 'File "%s" already exists.';
rsWorksheetNotFound = 'Worksheet "%s" not found.';
rsWorksheetNotFound1 = 'Worksheet not found.';
rsInvalidWorksheetName = '"%s" is not a valid worksheet name.';
rsDefectiveInternalStructure = 'Defective internal structure of %s file.';
rsFileStructureError = 'File structure error in %s record, position %d.';
rsUnknownDataType = 'Unknown data type.';
rsUnknownErrorType = 'Unknown error type.';
rsTruncateTooLongCellText = 'Text value exceeds %d character limit in cell %s '+
'and has been truncated.';
rsColumnStyleNotFound = 'Column style not found.';
rsRowStyleNotFound = 'Row style not found.';
rsInvalidCharacterInCell = 'Invalid character(s) in cell %s.';
rsInvalidCharacterInCellComment = 'Invalid character(s) in cell comment "%s".';
rsUTF8TextExpectedButANSIFoundInCell = 'Expected UTF8 text but probably ANSI '+
'text found in cell %s.';
rsIndexInSSTOutOfRange = 'Index %d in SST out of range (0-%d).';
rsAmbiguousDecThouSeparator = 'Assuming usage of decimal separator in "%s".';
rsUTF8TextExpectedButANSIFoundInCell = 'Expected UTF8 text, '+
'but probably ANSI text found in cell %s.';
// Code page
rsCodePageNotSupported = 'Code page "%s" is not supported. Using "cp1252" (Latin 1) instead.';
rsFormulaNotSupported = 'The formula in cell %s is not supported by this file format: %s';
rsCannotSortMerged = 'The cell range cannot be sorted because it contains merged cells.';
// Hyperlinks
rsNoValidHyperlinkInternal = 'The hyperlink "%s" is not a valid cell address.';
rsNoValidHyperlinkURI = 'The hyperlink "%s" is not a valid URI.';
rsLocalFileHyperlinkAbs = 'The hyperlink "%s" points to a local file. ' +
'In case of an absolute path the protocol "file:" must be specified.';
rsEmptyHyperlink = 'The hyperlink is not specified.';
rsODSHyperlinksOfTextCellsOnly = 'Cell %s: OpenDocument supports hyperlinks for text cells only.';
rsStdHyperlinkTooltip = 'Hold the left mouse button down for a short time to activate the hyperlink.';
// PageLayout
rsDifferentSheetPrintRange = 'Print range "%s" requires a different worksheet.';
rsFooter = 'Footer';
rsHeader = 'Header';
rsIncorrectPositionOfImageInHeaderFooter = 'Incorrect position of %%G code in %s';
rsOnlyOneHeaderFooterImageAllowed = 'Only one image per %s section allowed.';
// Colors
rsAqua = 'aqua';
@ -163,20 +110,109 @@ resourcestring
rsTransparent = 'transparent';
rsPaletteIndex = 'Palette index %d';
rsTRUE = 'TRUE'; // wp: Do we really want to translate these strings?
rsFALSE = 'FALSE';
rsErrEmptyIntersection = '#NULL!';
rsErrDivideByZero = '#DIV/0!';
rsErrWrongType = '#VALUE!';
rsErrIllegalRef = '#REF!';
rsErrWrongName = '#NAME?';
rsErrOverflow = '#NUM!';
rsErrArgError = '#N/A';
rsErrFormulaNotSupported = '<FORMULA?>';
// Columns
rsColumnStyleNotFound = 'Column style not found.';
// Comments
rsInvalidCharacterInCellComment = 'Invalid character(s) in cell comment "%s".';
// Expression parser
// These strings are mostly taken or adapted from fpexprpars
rsBadQuotes = 'Unterminated string';
rsCircularReference = 'Circular reference found when calculating worksheet '+
'formula in cell %s';
rsCommaExpected = 'Expected comma (,) at position %d, but got %s';
rsDuplicateIdentifier = 'An identifier with name "%s" already exists.';
rsErrorInExpression = 'Cannot evaluate: error in expression';
rsExpressionEmpty = 'Cannot evaluate: empty expression';
rsInvalidArgumentCount = 'Invalid argument count for function %s';
rsInvalidFloat = '%s is not a valid floating-point value';
rsInvalidNumber = 'Invalid numerical value : %s';
rsInvalidNumberChar = 'Unexpected character in number : %s';
rsInvalidResultCharacter = '"%s" is not a valid return type indicator';
rsInvalidResultType = 'Invalid result type: %s';
rsLeftBracketExpected = 'Expected left bracket at position %d, but got %s';
rsNoOperand = 'No operand for unary operation %s';
rsNoPercentOperation = 'Cannot perform percent operation on expression ' +
'of type %s: %s';
rsNoVariable = 'Identifier %s is not a variable';
rsRightBracketExpected = 'Expected right bracket at position %d, but got %s';
rsUnexpectedEndOfExpression = 'Unexpected end of expression';
rsUnknownCharacter = 'Unknown character at pos %d: "%s"';
rsUnknownComparison = 'Internal error: Unknown comparison';
rsUnknownDelimiter = 'Unknown delimiter character: "%s"';
rsUnknownIdentifier = 'Unknown identifier: %s';
rsUnknownTokenAtPos = 'Unknown token at pos %d : %s';
rsUnterminatedExpression = 'Badly terminated expression. Found token at '+
'position %d : %s';
{ -- currently not used:
SErrNoLeftOperand = 'No left operand for binary operation %s';
SErrNoRightOperand = 'No left operand for binary operation %s';
SErrNoNegation = 'Cannot negate expression of type %s: %s';
SErrNoUPlus = 'Cannot perform unary plus operation on type %s: %s';
SErrTypesDoNotMatch = 'Type mismatch: %s<>%s for expressions "%s" and "%s".';
SErrNoNodeToCheck = 'Internal error: No node to check !';
SInvalidNodeType = 'Node type (%s) not in allowed types (%s) for expression: %s';
SErrNoNOTOperation = 'Cannot perform NOT operation on expression of type %s: %s';
}
// Format
rsAmbiguousDecThouSeparator = 'Assuming usage of decimal separator in "%s".';
rsInvalidDateTimeFormat = 'Trying to use an incompatible date/time format.';
rsInvalidFontIndex = 'Invalid font index';
rsInvalidNumberFormat = 'Trying to use an incompatible number format.';
rsNoValidNumberFormatString = 'No valid number format string.';
// Formulas
rsFormulaNotSupported = 'The formula in cell %s is not supported by this file format: %s';
rsUnknownDataType = 'Unknown data type.';
rsUnknownErrorType = 'Unknown error type.';
// Hyperlinks
rsEmptyHyperlink = 'The hyperlink is not specified.';
rsLocalFileHyperlinkAbs = 'The hyperlink "%s" points to a local file. ' +
'In case of an absolute path the protocol "file:" must be specified.';
rsNoValidHyperlinkInternal = 'The hyperlink "%s" is not a valid cell address.';
rsNoValidHyperlinkURI = 'The hyperlink "%s" is not a valid URI.';
rsODSHyperlinksOfTextCellsOnly = 'Cell %s: OpenDocument supports hyperlinks '+
'for text cells only.';
rsStdHyperlinkTooltip = 'Hold the left mouse button down for a short time '+
'to activate the hyperlink.';
// Images
rsImageFormatNotSupported = 'Image format not supported.';
// PageLayout
rsDifferentSheetPrintRange = 'Print range "%s" requires a different worksheet.';
rsFooter = 'Footer';
rsHeader = 'Header';
rsIncorrectPositionOfImageInHeaderFooter = 'Incorrect position of %%G code in %s';
rsOnlyOneHeaderFooterImageAllowed = 'Only one image per %s section allowed.';
// Rows
rsRowStyleNotFound = 'Row style not found.';
// Sorting
rsCannotSortMerged = 'The cell range cannot be sorted because it contains merged cells.';
// Worksheets
rsDefaultSheetName = 'Sheet%d';
rsInvalidWorksheetName = '"%s" is not a valid worksheet name.';
rsWorksheetNotFound = 'Worksheet "%s" not found.';
rsWorksheetNotFound1 = 'Worksheet not found.';
// WorksheetGrid
rsOperationExceedsColCount = 'This operation exceeds the range of defined grid columns.';
rsOperationExceedsRowCount = 'This operation exceeds the range of defined grid rows.';
// Export
rsExportFileIsRequired = 'Export file name is required.';
rsFPSExportDescription = 'Spreadsheet file';
rsMultipleSheetsOnlyWithRestorePosition = 'Export to multiple sheets is possible '+
'only if position is restored.';
implementation
end.

View File

@ -47,6 +47,27 @@ type
end;
const
{@@ Explanatory name of sfBiff2 file format }
STR_FILEFORMAT_EXCEL_2 = 'Excel 2.1';
{@@ Explanatory name of sfBiff5 file format }
STR_FILEFORMAT_EXCEL_5 = 'Excel 5';
{@@ Explanatory name of sfBiff8 file format }
STR_FILEFORMAT_EXCEL_8 = 'Excel 97-2003';
{@@ Explanatory name of sfExcelXML file format }
STR_FILEFORMAT_EXCEL_XML = 'Excel XP/2003 XML';
{@@ Explanatory name of sfOOXLM file format }
STR_FILEFORMAT_EXCEL_XLSX = 'Excel 2007+ XML';
{@@ Explanatory name of sfOpenDocument file format }
STR_FILEFORMAT_OPENDOCUMENT = 'OpenDocument';
{@@ Explanatory name of sfCSV file format }
STR_FILEFORMAT_CSV = 'CSV';
{@@ Explanatory name of sfHTML file format }
STR_FILEFORMAT_HTML = 'HTML';
{@@ Explanatory name of sfWikiTablePipes file format }
STR_FILEFORMAT_WIKITABLE_PIPES = 'WikiTable (Pipes)';
{@@ Explanatory name of sfWikiTableWikiMedia file format }
STR_FILEFORMAT_WIKITABLE_WIKIMEDIA = 'WikiTable (WikiMedia)';
{@@ Default binary <b>Excel</b> file extension (<= Excel 97) }
STR_EXCEL_EXTENSION = '.xls';
{@@ Default xml <b>Excel</v> file extension (Excel XP, 2003) }
@ -64,6 +85,23 @@ const
{@@ Default extension of <b>wikitable files</b> in <b>wikimedia</b> format }
STR_WIKITABLE_WIKIMEDIA_EXTENSION = '.wikitable_wikimedia';
{@@ String for boolean value TRUE }
STR_TRUE = 'TRUE';
{@@ String for boolean value FALSE }
STR_FALSE = 'FALSE';
{@@ Error values }
STR_ERR_EMPTY_INTERSECTION = '#NULL!';
STR_ERR_DIVIDE_BY_ZERO = '#DIV/0!';
STR_ERR_WRONG_TYPE = '#VALUE!';
STR_ERR_ILLEGAL_REF = '#REF!';
STR_ERR_WRONG_NAME = '#NAME?';
STR_ERR_OVERFLOW = '#NUM!';
STR_ERR_ARG_ERROR = '#N/A';
// No Excel errors
STR_ERR_FORMULA_NOT_SUPPORTED= '<FMLA?>';
STR_ERR_UNKNOWN = '#UNKNWON!';
{@@ Maximum count of worksheet columns}
MAX_COL_COUNT = 65535;

View File

@ -856,10 +856,10 @@ begin
for j := j1 to Length(AStr) do
begin
if AStr[j] in ['A'..'Z'] then
ACol := ACol * INT_NUM_LETTERS + ord(AStr[j]) - ord('A') + 1
ACol := LongInt(ACol) * INT_NUM_LETTERS + ord(AStr[j]) - ord('A') + 1
else
if AStr[j] in ['a'..'z'] then
ACol := ACol * INT_NUM_LETTERS + ord(AStr[j]) - ord('a') + 1
ACol := LongInt(ACol) * INT_NUM_LETTERS + ord(AStr[j]) - ord('a') + 1
else
exit;
end;
@ -1046,16 +1046,16 @@ function TryStrToErrorValue(AErrorStr: String; out AErr: TsErrorValue): boolean;
begin
Result := true;
case AErrorStr of
'#NULL!' : AErr := errEmptyIntersection;
'#DIV/0!' : AErr := errDivideByZero;
'#VALUE!' : AErr := errWrongType;
'#REF!' : AErr := errIllegalRef;
'#NAME?' : AErr := errWrongName;
'#NUM!' : AErr := errOverflow;
'#N/A' : AErr := errArgError;
'#FORMULA?': AErr := errFormulaNotSupported;
'' : AErr := errOK;
else Result := false;
STR_ERR_EMPTY_INTERSECTION : AErr := errEmptyIntersection; // #NULL!
STR_ERR_DIVIDE_BY_ZERO : AErr := errDivideByZero; // #DIV/0!
STR_ERR_WRONG_TYPE : AErr := errWrongType; // #VALUE!
STR_ERR_ILLEGAL_REF : AErr := errIllegalRef; // #REF!
STR_ERR_WRONG_NAME : AErr := errWrongName; // #NAME?
STR_ERR_OVERFLOW : AErr := errOverflow; // #NUM!
STR_ERR_ARG_ERROR : AErr := errArgError; // #N/A
STR_ERR_FORMULA_NOT_SUPPORTED : AErr := errFormulaNotSupported; // #FMLA?
'' : AErr := errOK;
else Result := false;
end;
end;
@ -1068,17 +1068,17 @@ end;
function GetErrorValueStr(AErrorValue: TsErrorValue): String;
begin
case AErrorValue of
errOK : Result := '';
errEmptyIntersection : Result := '#NULL!';
errDivideByZero : Result := '#DIV/0!';
errWrongType : Result := '#VALUE!';
errIllegalRef : Result := '#REF!';
errWrongName : Result := '#NAME?';
errOverflow : Result := '#NUM!';
errArgError : Result := '#N/A';
errOK : Result := '';
errEmptyIntersection : Result := STR_ERR_EMPTY_INTERSECTION; // #NULL!
errDivideByZero : Result := STR_ERR_DIVIDE_BY_ZERO; // #DIV/0!
errWrongType : Result := STR_ERR_WRONG_TYPE; // #VALUE!
errIllegalRef : Result := STR_ERR_ILLEGAL_REF; // #REF!
errWrongName : Result := STR_ERR_WRONG_NAME; // #NAME?
errOverflow : Result := STR_ERR_OVERFLOW; // #NUM!
errArgError : Result := STR_ERR_ARG_ERROR; // #N/A
// --- no Excel errors --
errFormulaNotSupported : Result := '#FORMULA?';
else Result := '#UNKNOWN ERROR';
errFormulaNotSupported : Result := STR_ERR_FORMULA_NOT_SUPPORTED; // #FMLA?
else Result := STR_ERR_UNKNOWN; // #UNKNOWN!
end;
end;

View File

@ -44,7 +44,7 @@ unit fpszipper;
Interface
Uses
zipper;
{%H-}zipper;
Implementation
End.

View File

@ -0,0 +1,573 @@
msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Project-Id-Version: laz_fpspreadsheet\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.8.7\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Language: de\n"
#: fpsstrings.rsallexcelfiles
msgid "All Excel files"
msgstr "Alle Excel-Dateien"
#: fpsstrings.rsallspreadsheetfiles
msgid "All spreadsheet files"
msgstr "Alle Spreadsheet-Dateien"
#: fpsstrings.rsambiguousdecthouseparator
msgid "Assuming usage of decimal separator in \"%s\"."
msgstr "Verwendung eines Dezimaltrennzeichens in \"%s\" wird angenommen."
#: fpsstrings.rsaqua
msgid "aqua"
msgstr "wasserblau"
#: fpsstrings.rsbadquotes
msgid "Unterminated string"
msgstr "Begrenzungszeichen des Strings fehlt."
#: fpsstrings.rsbeige
msgid "beige"
msgstr "beige"
#: fpsstrings.rsblack
msgid "black"
msgstr "schwarz"
#: fpsstrings.rsblue
msgid "blue"
msgstr "balu"
#: fpsstrings.rsbluegray
msgid "blue gray"
msgstr "blaugrau"
#: fpsstrings.rsbrown
msgid "brown"
msgstr "braun"
#: fpsstrings.rscannotreadfile
msgid "Cannot read file \"%s\". Wrong, unknown or defective file format?"
msgstr "Kann Datei \"%s\" nicht lesen. Falsches, unbekanntes oder defektes Dateiformat?"
#: fpsstrings.rscannotsortmerged
msgid "The cell range cannot be sorted because it contains merged cells."
msgstr "Der Zellbereich kann nicht sortiert werden, weil er verbundene Zellen enthält."
#: fpsstrings.rscircularreference
msgid "Circular reference found when calculating worksheet formula in cell %s"
msgstr "Zirkulär-Referenz gefunden beim Berechnen der Formel in Zelle %s"
#: fpsstrings.rscodepagenotsupported
msgid "Code page \"%s\" is not supported. Using \"cp1252\" (Latin 1) instead."
msgstr "Code-Seite \"%s\" wird nicht unterstützt. Verwende stattdessen \"cp1252\" (Latin 1)."
#: fpsstrings.rscolumnstylenotfound
msgid "Column style not found."
msgstr "Spalten-Stil nicht gefunden."
#: fpsstrings.rscommaexpected
msgid "Expected comma (,) at position %d, but got %s"
msgstr "Komma erwartet an Position %d, aber %s gefunden."
#: fpsstrings.rscoral
msgid "coral"
msgstr "korall"
#: fpsstrings.rscyan
msgid "cyan"
msgstr "cyan"
#: fpsstrings.rsdarkblue
msgid "dark blue"
msgstr "dunkelblau"
#: fpsstrings.rsdarkgreen
msgid "dark green"
msgstr "dunkelgrün"
#: fpsstrings.rsdarkpurple
msgid "dark purple"
msgstr "dunkelpurpur"
#: fpsstrings.rsdarkred
msgid "dark red"
msgstr "dunkelrot"
#: fpsstrings.rsdarkteal
msgid "dark teal"
msgstr "dunkel-türkis"
#: fpsstrings.rsdefaultsheetname
msgid "Sheet%d"
msgstr "Tabelle%d"
#: fpsstrings.rsdefectiveinternalfilestructure
msgid "Defective internal structure of %s file."
msgstr "Defekte innere Struktur der %s Datei."
#: fpsstrings.rsdifferentsheetprintrange
msgid "Print range \"%s\" requires a different worksheet."
msgstr "Der Druckbereich \"%s\" benötigt ein anderes Arbeitsblatt."
#: fpsstrings.rsduplicateidentifier
msgid "An identifier with name \"%s\" already exists."
msgstr "Ein Bezeichner mit dem Namen \"%s\" existiert bereits."
#: fpsstrings.rsemptyhyperlink
msgid "The hyperlink is not specified."
msgstr "Der Hyperlink ist nicht angegeben."
#: fpsstrings.rserrorinexpression
msgid "Cannot evaluate: error in expression"
msgstr "Fehler im Ausdruck"
#: fpsstrings.rsexportfileisrequired
msgid "Export file name is required."
msgstr "Export-Dateiname erforderlich."
#: fpsstrings.rsexpressionempty
msgid "Cannot evaluate: empty expression"
msgstr "Leerer Ausdruck"
#: fpsstrings.rsfilealreadyexists
msgid "File \"%s\" already exists."
msgstr "Datei \"%s\" existiert bereits."
#: fpsstrings.rsfileformatnotsupported
msgid "File format of \"%s\" not supported."
msgstr "Dateiformat von \"%s\" nicht unterstützt."
#: fpsstrings.rsfilenotfound
msgid "File \"%s\" not found."
msgstr "Datei \"%s\" nicht gefunden."
#: fpsstrings.rsfiles
msgid "files"
msgstr "Dateien"
#: fpsstrings.rsfilestructureerror
msgid "File structure error in %s record, position %d."
msgstr "Dateistruktur-Fehler im Datensatz %s an Position %d."
#: fpsstrings.rsfooter
msgid "Footer"
msgstr "Fußzeile"
#: fpsstrings.rsformulanotsupported
msgid "The formula in cell %s is not supported by this file format: %s"
msgstr "Die Formel in Zelle %s wird in diesem Dateiformat nicht unterstützt: %s"
#: fpsstrings.rsfpsexportdescription
msgid "Spreadsheet file"
msgstr "Spreadsheet-Datei"
#: fpsstrings.rsgold
msgid "gold"
msgstr "golden"
#: fpsstrings.rsgray
msgid "gray"
msgstr "grau"
#: fpsstrings.rsgray10pct
msgid "10% gray"
msgstr "10% grau"
#: fpsstrings.rsgray20pct
msgid "20% gray"
msgstr "20% grau"
#: fpsstrings.rsgray25pct
msgid "25% gray"
msgstr "25% grau"
#: fpsstrings.rsgray40pct
msgid "40% gray"
msgstr "40% grau"
#: fpsstrings.rsgray50pct
msgid "50% gray"
msgstr "50% grau"
#: fpsstrings.rsgray80pct
msgid "80% gray"
msgstr "80% grau"
#: fpsstrings.rsgreen
msgid "green"
msgstr "grün"
#: fpsstrings.rsheader
msgid "Header"
msgstr "Kopfzeile"
#: fpsstrings.rsiceblue
msgid "ice blue"
msgstr "eisblau"
#: fpsstrings.rsimageformatnotsupported
msgid "Image format not supported."
msgstr "Bild-Format nicht unterstützt."
#: fpsstrings.rsincorrectpositionofimageinheaderfooter
msgid "Incorrect position of %%G code in %s"
msgstr "Falsche Position des %%G-Codes in %s"
#: fpsstrings.rsindexinsstoutofrange
msgid "Index %d in SST out of range (0-%d)."
msgstr "Index %d in der SST liegt außerhalb des gültigen Bereichs (0-%d)."
#: fpsstrings.rsindigo
msgid "indigo"
msgstr "indigo"
#: fpsstrings.rsinvalidargumentcount
msgid "Invalid argument count for function %s"
msgstr "Ungültige Anzahl von Argumenten für die Funktion %s"
#: fpsstrings.rsinvalidcharacterincell
msgid "Invalid character(s) in cell %s."
msgstr "Ungültige(s) Zeichen in Zelle %s."
#: fpsstrings.rsinvalidcharacterincellcomment
msgid "Invalid character(s) in cell comment \"%s\"."
msgstr "Ungültige(s) Zeichen im Zellkommentar \"%s\"."
#: fpsstrings.rsinvaliddatetimeformat
msgid "Trying to use an incompatible date/time format."
msgstr "Versuch ein inkompabibles Datum/Zeit-Format zu verwenden"
#: fpsstrings.rsinvalidextension
msgid "Attempting to save a spreadsheet by extension, but the extension %s is not valid."
msgstr "Versuch, das Format ein Arbeitsbuches anhand der Dateiendung zu erkennen, aber die Endung %s ist nicht gültig. "
#: fpsstrings.rsinvalidfloat
msgid "%s is not a valid floating-point value"
msgstr "%s ist kein gültiger Gleitkomma-Wert."
#: fpsstrings.rsinvalidfontindex
msgid "Invalid font index"
msgstr "Ungültiger Font-Index"
#: fpsstrings.rsinvalidnumber
msgid "Invalid numerical value : %s"
msgstr "Ungültiger Zahlenwert: %s"
#: fpsstrings.rsinvalidnumberchar
msgid "Unexpected character in number : %s"
msgstr "Unerwartetes Zeichen in Zahl: %s"
#: fpsstrings.rsinvalidnumberformat
msgid "Trying to use an incompatible number format."
msgstr "Versuch ein inkompatibles Zahlenformat zu verwenden"
#: fpsstrings.rsinvalidresultcharacter
msgid "\"%s\" is not a valid return type indicator"
msgstr "\"%s\" ist kein gültiger Indikator für einen Ergebnistyp."
#: fpsstrings.rsinvalidresulttype
msgid "Invalid result type: %s"
msgstr "Ungültiger Ergebnistyp: %s"
#: fpsstrings.rsinvalidspreadsheetfile
msgid "\"%s\" is not a valid spreadsheet file"
msgstr "\"%s\" ist keine gültige Spreadsheet-Datei."
#: fpsstrings.rsinvalidworksheetname
msgid "\"%s\" is not a valid worksheet name."
msgstr "\"%s\" ist kein gültiger Name für ein Arbeitsblatt."
#: fpsstrings.rsivory
msgid "ivory"
msgstr "elfenbein"
#: fpsstrings.rslavander
msgid "lavander"
msgstr "lavendel"
#: fpsstrings.rsleftbracketexpected
msgid "Expected left bracket at position %d, but got %s"
msgstr "Linke Klammer erwartet an Position %d, aber %s gefunden."
#: fpsstrings.rslightblue
msgid "light blue"
msgstr "hellblau"
#: fpsstrings.rslightgreen
msgid "light green"
msgstr "hellgrün"
#: fpsstrings.rslightorange
msgid "light orange"
msgstr "hell-orange"
#: fpsstrings.rslightturquoise
msgid "light turquoise"
msgstr "hell-türkis"
#: fpsstrings.rslightyellow
msgid "light yellow"
msgstr "hellgelb"
#: fpsstrings.rslime
msgid "lime"
msgstr "hellgrün-limone"
#: fpsstrings.rslocalfilehyperlinkabs
msgid "The hyperlink \"%s\" points to a local file. In case of an absolute path the protocol \"file:\" must be specified."
msgstr "Der Hyperlink \"%s\" bezieht sich auf eine lokale Datei. Bei einem absoluten Pfad muss das Protokoll \"file:\" angegeben werden."
#: fpsstrings.rsmagenta
msgid "magenta"
msgstr "magenta"
#: fpsstrings.rsmaxcolsexceeded
msgid "This workbook contains %d columns, but the selected file format does not support more than %d columns."
msgstr "Das Arbeitsbuch enthält %d Spalten, aber das ausgewählte Dateiformat unterstützt höchstens %d Spalten."
#: fpsstrings.rsmaxrowsexceeded
msgid "This workbook contains %d rows, but the selected file format does not support more than %d rows."
msgstr "Das Arbeitsbuch enthält %d Zeilen, aber das ausgewählte Dateiformat untersützt höchstens %d Zeilen."
#: fpsstrings.rsmultiplesheetsonlywithrestoreposition
msgid "Export to multiple sheets is possible only if position is restored."
msgstr "Ein Export in mehrere Arbeitsblätter is nur dann möglich, wenn die Position wiederhergestellt wird."
#: fpsstrings.rsnavy
msgid "navy"
msgstr "marine-blau"
#: fpsstrings.rsnooperand
msgid "No operand for unary operation %s"
msgstr "Kein Operand für die unäre Operation %s"
#: fpsstrings.rsnopercentoperation
msgid "Cannot perform percent operation on expression of type %s: %s"
msgstr "Prozent-Operation kann an dem Ausdruck vom Typ %s nicht ausgeführt werden: %s"
#: fpsstrings.rsnotdefined
msgid "not defined"
msgstr "Nicht definiert"
#: fpsstrings.rsnovalidcelladdress
msgid "\"%s\" is not a valid cell address."
msgstr "\"%s\" ist keine gültige Zell-Adresse."
#: fpsstrings.rsnovalidcellrangeaddress
msgid "\"%s\" is not a valid cell range address."
msgstr "\"%s\" ist keine gültige Adresse für einen Zellbereich."
#: fpsstrings.rsnovalidcellrangeorcelladdress
msgid "\"%s\" is not a valid cell or cell range address."
msgstr "\"%s\" ist keine gültige Adresse für eine Zelle oder einen Zellbereich."
#: fpsstrings.rsnovalidhyperlinkinternal
msgid "The hyperlink \"%s\" is not a valid cell address."
msgstr "Der Hyperlink \"%s\" bezieht sich auf keine gültige Zelladresse."
#: fpsstrings.rsnovalidhyperlinkuri
msgid "The hyperlink \"%s\" is not a valid URI."
msgstr "Der Hyperlink \"%s\" ist keine gültiger URI."
#: fpsstrings.rsnovalidnumberformatstring
msgid "No valid number format string."
msgstr "Kein gültiges Zahlenformat"
#: fpsstrings.rsnovariable
msgid "Identifier %s is not a variable"
msgstr "Der Bezeichnis %s ist keine Variable."
#: fpsstrings.rsoceanblue
msgid "ocean blue"
msgstr "Meerblau"
#: fpsstrings.rsodshyperlinksoftextcellsonly
msgid "Cell %s: OpenDocument supports hyperlinks for text cells only."
msgstr "Zelle %s: Das OpenDocument-Format unterstützt Hyperlinks nur für Text-Zellen."
#: fpsstrings.rsolive
msgid "olive"
msgstr "oliv"
#: fpsstrings.rsolivegreen
msgid "olive green"
msgstr "olivgrün"
#: fpsstrings.rsonlyoneheaderfooterimageallowed
msgid "Only one image per %s section allowed."
msgstr "Nur ein Bild ist erlaubt pro %s Abschnitt."
#: fpsstrings.rsoperationexceedscolcount
msgid "This operation exceeds the range of defined grid columns."
msgstr "Diese Operation überschreitet den Bereich der definierten Spalten."
#: fpsstrings.rsoperationexceedsrowcount
msgid "This operation exceeds the range of defined grid rows."
msgstr "Diese Operation überschreitet den Bereich der definierten Zeilen."
#: fpsstrings.rsorange
msgid "orange"
msgstr "orange"
#: fpsstrings.rspaleblue
msgid "pale blue"
msgstr "blassblau"
#: fpsstrings.rspaletteindex
msgid "Palette index %d"
msgstr "Palettenindex %d"
#: fpsstrings.rsperiwinkle
msgid "periwinkle"
msgstr "lavendelblau"
#: fpsstrings.rspink
msgid "pink"
msgstr "pink"
#: fpsstrings.rsplum
msgid "plum"
msgstr "pflaume"
#: fpsstrings.rspurple
msgid "purple"
msgstr "purpur"
#: fpsstrings.rsreadernotfound
msgid "Reader not found for file \"%s\""
msgstr "Lese-Prozedur nicht gefunden für Datei \"%s\"."
#: fpsstrings.rsred
msgid "red"
msgstr "rot"
#: fpsstrings.rsrightbracketexpected
msgid "Expected right bracket at position %d, but got %s"
msgstr "Rechte Klammer erwartet an Position, aber %s gefunden."
#: fpsstrings.rsrose
msgid "rose"
msgstr "rosa"
#: fpsstrings.rsrowstylenotfound
msgid "Row style not found."
msgstr "Zeilenstil nicht gefunden."
#: fpsstrings.rsseagreen
msgid "sea green"
msgstr "seegrün"
#: fpsstrings.rssilver
msgid "silver"
msgstr "silber"
#: fpsstrings.rsskyblue
msgid "sky blue"
msgstr "himmelblau"
#: fpsstrings.rsstdhyperlinktooltip
msgid "Hold the left mouse button down for a short time to activate the hyperlink."
msgstr "Halten Sie die linke Maustaste für kurze Zeit gedrückt, um den Hyperlink zu aktivieren."
#: fpsstrings.rstan
msgid "tan"
msgstr "hautfarben"
#: fpsstrings.rsteal
msgid "teal"
msgstr "türkis"
#: fpsstrings.rstoomanypalettecolors
msgid "This workbook contains more colors (%d) than supported by the file format (%d). The additional colors are replaced by the best-matching palette colors."
msgstr "Das Arbeitsbuch enthält mehr Farben (%d) als vom Dateiformat unterstützt (%d). Die zusätzlichen Farben werden durch ersetzt durch die nächsten Palettenfarben."
#: fpsstrings.rstransparent
msgid "transparent"
msgstr "transparent"
#: fpsstrings.rstruncatetoolongcelltext
msgid "Text value exceeds the %d character limit in cell %s and has been truncated."
msgstr "Der Text überschreitet die Grenze von %d Zeichen in Zelle %s und wurde abgeschnitten."
#: fpsstrings.rsunexpectedendofexpression
msgid "Unexpected end of expression"
msgstr "Unerwartetes Ende des Ausdrucks"
#: fpsstrings.rsunknowncharacter
msgid "Unknown character at pos %d: \"%s\""
msgstr "Unerwartetes Zeichen an Positon %d: \"%s\""
#: fpsstrings.rsunknowncomparison
msgid "Internal error: Unknown comparison"
msgstr "Interner Fehler: Unbekannter Vergleich"
#: fpsstrings.rsunknowndatatype
msgid "Unknown data type."
msgstr "Unbekannter Datentyp"
#: fpsstrings.rsunknowndelimiter
msgid "Unknown delimiter character: \"%s\""
msgstr "Unbekanntes Trennzeichen: \"%s\""
#: fpsstrings.rsunknownerrortype
msgid "Unknown error type."
msgstr "Unbekannter Fehler-Typ"
#: fpsstrings.rsunknownidentifier
msgid "Unknown identifier: %s"
msgstr "Unbekannter Bezeichner: %s"
#: fpsstrings.rsunknowntokenatpos
msgid "Unknown token at pos %d : %s"
msgstr "Unbekanntes Symbol an Position %d: %s"
#: fpsstrings.rsunsupportedreadformat
msgid "Tried to read a spreadsheet using an unsupported format"
msgstr "Versuch ein Spreadsheet mit einem nicht unterstützten Format zu lesen"
#: fpsstrings.rsunsupportedwriteformat
msgid "Tried to write a spreadsheet using an unsupported format"
msgstr "Versuch eine Spreadsheet mit einem nicht unterstützten Format zu schreiben"
#: fpsstrings.rsunterminatedexpression
msgid "Badly terminated expression. Found token at position %d : %s"
msgstr "Schlecht terminierter Ausdruck. Symbol gefunden an Position %d : %s"
#: fpsstrings.rsutf8textexpectedbutansifoundincell
msgid "Expected UTF8 text, but probably ANSI text found in cell %s."
msgstr "In Zelle %s UTF8-Text erwartet, aber wahrscheinlich ANSI-Text gefunden"
#: fpsstrings.rsverydarkgreen
msgid "very dark green"
msgstr "sehr dunkles Grün"
#: fpsstrings.rsviolet
msgid "violet"
msgstr "violett"
#: fpsstrings.rswheat
msgid "wheat"
msgstr "weizen"
#: fpsstrings.rswhite
msgid "white"
msgstr "weiß"
#: fpsstrings.rsworksheetnotfound
msgid "Worksheet \"%s\" not found."
msgstr "Arbeitsblatt \"%s\" nicht gefunden"
#: fpsstrings.rsworksheetnotfound1
msgid "Worksheet not found."
msgstr "Arbeitsblatt nicht gefunden."
#: fpsstrings.rsyellow
msgid "yellow"
msgstr "gelb"

View File

@ -0,0 +1,563 @@
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
#: fpsstrings.rsallexcelfiles
msgid "All Excel files"
msgstr ""
#: fpsstrings.rsallspreadsheetfiles
msgid "All spreadsheet files"
msgstr ""
#: fpsstrings.rsambiguousdecthouseparator
msgid "Assuming usage of decimal separator in \"%s\"."
msgstr ""
#: fpsstrings.rsaqua
msgid "aqua"
msgstr ""
#: fpsstrings.rsbadquotes
msgid "Unterminated string"
msgstr ""
#: fpsstrings.rsbeige
msgid "beige"
msgstr ""
#: fpsstrings.rsblack
msgid "black"
msgstr ""
#: fpsstrings.rsblue
msgid "blue"
msgstr ""
#: fpsstrings.rsbluegray
msgid "blue gray"
msgstr ""
#: fpsstrings.rsbrown
msgid "brown"
msgstr ""
#: fpsstrings.rscannotreadfile
msgid "Cannot read file \"%s\". Wrong, unknown or defective file format?"
msgstr ""
#: fpsstrings.rscannotsortmerged
msgid "The cell range cannot be sorted because it contains merged cells."
msgstr ""
#: fpsstrings.rscircularreference
msgid "Circular reference found when calculating worksheet formula in cell %s"
msgstr ""
#: fpsstrings.rscodepagenotsupported
msgid "Code page \"%s\" is not supported. Using \"cp1252\" (Latin 1) instead."
msgstr ""
#: fpsstrings.rscolumnstylenotfound
msgid "Column style not found."
msgstr ""
#: fpsstrings.rscommaexpected
msgid "Expected comma (,) at position %d, but got %s"
msgstr ""
#: fpsstrings.rscoral
msgid "coral"
msgstr ""
#: fpsstrings.rscyan
msgid "cyan"
msgstr ""
#: fpsstrings.rsdarkblue
msgid "dark blue"
msgstr ""
#: fpsstrings.rsdarkgreen
msgid "dark green"
msgstr ""
#: fpsstrings.rsdarkpurple
msgid "dark purple"
msgstr ""
#: fpsstrings.rsdarkred
msgid "dark red"
msgstr ""
#: fpsstrings.rsdarkteal
msgid "dark teal"
msgstr ""
#: fpsstrings.rsdefaultsheetname
msgid "Sheet%d"
msgstr ""
#: fpsstrings.rsdefectiveinternalfilestructure
msgid "Defective internal structure of %s file."
msgstr ""
#: fpsstrings.rsdifferentsheetprintrange
msgid "Print range \"%s\" requires a different worksheet."
msgstr ""
#: fpsstrings.rsduplicateidentifier
msgid "An identifier with name \"%s\" already exists."
msgstr ""
#: fpsstrings.rsemptyhyperlink
msgid "The hyperlink is not specified."
msgstr ""
#: fpsstrings.rserrorinexpression
msgid "Cannot evaluate: error in expression"
msgstr ""
#: fpsstrings.rsexportfileisrequired
msgid "Export file name is required."
msgstr ""
#: fpsstrings.rsexpressionempty
msgid "Cannot evaluate: empty expression"
msgstr ""
#: fpsstrings.rsfilealreadyexists
msgid "File \"%s\" already exists."
msgstr ""
#: fpsstrings.rsfileformatnotsupported
msgid "File format of \"%s\" not supported."
msgstr ""
#: fpsstrings.rsfilenotfound
msgid "File \"%s\" not found."
msgstr ""
#: fpsstrings.rsfiles
msgid "files"
msgstr ""
#: fpsstrings.rsfilestructureerror
msgid "File structure error in %s record, position %d."
msgstr ""
#: fpsstrings.rsfooter
msgid "Footer"
msgstr ""
#: fpsstrings.rsformulanotsupported
msgid "The formula in cell %s is not supported by this file format: %s"
msgstr ""
#: fpsstrings.rsfpsexportdescription
msgid "Spreadsheet file"
msgstr ""
#: fpsstrings.rsgold
msgid "gold"
msgstr ""
#: fpsstrings.rsgray
msgid "gray"
msgstr ""
#: fpsstrings.rsgray10pct
msgid "10% gray"
msgstr ""
#: fpsstrings.rsgray20pct
msgid "20% gray"
msgstr ""
#: fpsstrings.rsgray25pct
msgid "25% gray"
msgstr ""
#: fpsstrings.rsgray40pct
msgid "40% gray"
msgstr ""
#: fpsstrings.rsgray50pct
msgid "50% gray"
msgstr ""
#: fpsstrings.rsgray80pct
msgid "80% gray"
msgstr ""
#: fpsstrings.rsgreen
msgid "green"
msgstr ""
#: fpsstrings.rsheader
msgid "Header"
msgstr ""
#: fpsstrings.rsiceblue
msgid "ice blue"
msgstr ""
#: fpsstrings.rsimageformatnotsupported
msgid "Image format not supported."
msgstr ""
#: fpsstrings.rsincorrectpositionofimageinheaderfooter
msgid "Incorrect position of %%G code in %s"
msgstr ""
#: fpsstrings.rsindexinsstoutofrange
msgid "Index %d in SST out of range (0-%d)."
msgstr ""
#: fpsstrings.rsindigo
msgid "indigo"
msgstr ""
#: fpsstrings.rsinvalidargumentcount
msgid "Invalid argument count for function %s"
msgstr ""
#: fpsstrings.rsinvalidcharacterincell
msgid "Invalid character(s) in cell %s."
msgstr ""
#: fpsstrings.rsinvalidcharacterincellcomment
msgid "Invalid character(s) in cell comment \"%s\"."
msgstr ""
#: fpsstrings.rsinvaliddatetimeformat
msgid "Trying to use an incompatible date/time format."
msgstr ""
#: fpsstrings.rsinvalidextension
msgid "Attempting to save a spreadsheet by extension, but the extension %s is not valid."
msgstr ""
#: fpsstrings.rsinvalidfloat
msgid "%s is not a valid floating-point value"
msgstr ""
#: fpsstrings.rsinvalidfontindex
msgid "Invalid font index"
msgstr ""
#: fpsstrings.rsinvalidnumber
msgid "Invalid numerical value : %s"
msgstr ""
#: fpsstrings.rsinvalidnumberchar
msgid "Unexpected character in number : %s"
msgstr ""
#: fpsstrings.rsinvalidnumberformat
msgid "Trying to use an incompatible number format."
msgstr ""
#: fpsstrings.rsinvalidresultcharacter
msgid "\"%s\" is not a valid return type indicator"
msgstr ""
#: fpsstrings.rsinvalidresulttype
msgid "Invalid result type: %s"
msgstr ""
#: fpsstrings.rsinvalidspreadsheetfile
msgid "\"%s\" is not a valid spreadsheet file"
msgstr ""
#: fpsstrings.rsinvalidworksheetname
msgid "\"%s\" is not a valid worksheet name."
msgstr ""
#: fpsstrings.rsivory
msgid "ivory"
msgstr ""
#: fpsstrings.rslavander
msgid "lavander"
msgstr ""
#: fpsstrings.rsleftbracketexpected
msgid "Expected left bracket at position %d, but got %s"
msgstr ""
#: fpsstrings.rslightblue
msgid "light blue"
msgstr ""
#: fpsstrings.rslightgreen
msgid "light green"
msgstr ""
#: fpsstrings.rslightorange
msgid "light orange"
msgstr ""
#: fpsstrings.rslightturquoise
msgid "light turquoise"
msgstr ""
#: fpsstrings.rslightyellow
msgid "light yellow"
msgstr ""
#: fpsstrings.rslime
msgid "lime"
msgstr ""
#: fpsstrings.rslocalfilehyperlinkabs
msgid "The hyperlink \"%s\" points to a local file. In case of an absolute path the protocol \"file:\" must be specified."
msgstr ""
#: fpsstrings.rsmagenta
msgid "magenta"
msgstr ""
#: fpsstrings.rsmaxcolsexceeded
msgid "This workbook contains %d columns, but the selected file format does not support more than %d columns."
msgstr ""
#: fpsstrings.rsmaxrowsexceeded
msgid "This workbook contains %d rows, but the selected file format does not support more than %d rows."
msgstr ""
#: fpsstrings.rsmultiplesheetsonlywithrestoreposition
msgid "Export to multiple sheets is possible only if position is restored."
msgstr ""
#: fpsstrings.rsnavy
msgid "navy"
msgstr ""
#: fpsstrings.rsnooperand
msgid "No operand for unary operation %s"
msgstr ""
#: fpsstrings.rsnopercentoperation
msgid "Cannot perform percent operation on expression of type %s: %s"
msgstr ""
#: fpsstrings.rsnotdefined
msgid "not defined"
msgstr ""
#: fpsstrings.rsnovalidcelladdress
msgid "\"%s\" is not a valid cell address."
msgstr ""
#: fpsstrings.rsnovalidcellrangeaddress
msgid "\"%s\" is not a valid cell range address."
msgstr ""
#: fpsstrings.rsnovalidcellrangeorcelladdress
msgid "\"%s\" is not a valid cell or cell range address."
msgstr ""
#: fpsstrings.rsnovalidhyperlinkinternal
msgid "The hyperlink \"%s\" is not a valid cell address."
msgstr ""
#: fpsstrings.rsnovalidhyperlinkuri
msgid "The hyperlink \"%s\" is not a valid URI."
msgstr ""
#: fpsstrings.rsnovalidnumberformatstring
msgid "No valid number format string."
msgstr ""
#: fpsstrings.rsnovariable
msgid "Identifier %s is not a variable"
msgstr ""
#: fpsstrings.rsoceanblue
msgid "ocean blue"
msgstr ""
#: fpsstrings.rsodshyperlinksoftextcellsonly
msgid "Cell %s: OpenDocument supports hyperlinks for text cells only."
msgstr ""
#: fpsstrings.rsolive
msgid "olive"
msgstr ""
#: fpsstrings.rsolivegreen
msgid "olive green"
msgstr ""
#: fpsstrings.rsonlyoneheaderfooterimageallowed
msgid "Only one image per %s section allowed."
msgstr ""
#: fpsstrings.rsoperationexceedscolcount
msgid "This operation exceeds the range of defined grid columns."
msgstr ""
#: fpsstrings.rsoperationexceedsrowcount
msgid "This operation exceeds the range of defined grid rows."
msgstr ""
#: fpsstrings.rsorange
msgid "orange"
msgstr ""
#: fpsstrings.rspaleblue
msgid "pale blue"
msgstr ""
#: fpsstrings.rspaletteindex
msgid "Palette index %d"
msgstr ""
#: fpsstrings.rsperiwinkle
msgid "periwinkle"
msgstr ""
#: fpsstrings.rspink
msgid "pink"
msgstr ""
#: fpsstrings.rsplum
msgid "plum"
msgstr ""
#: fpsstrings.rspurple
msgid "purple"
msgstr ""
#: fpsstrings.rsreadernotfound
msgid "Reader not found for file \"%s\""
msgstr ""
#: fpsstrings.rsred
msgid "red"
msgstr ""
#: fpsstrings.rsrightbracketexpected
msgid "Expected right bracket at position %d, but got %s"
msgstr ""
#: fpsstrings.rsrose
msgid "rose"
msgstr ""
#: fpsstrings.rsrowstylenotfound
msgid "Row style not found."
msgstr ""
#: fpsstrings.rsseagreen
msgid "sea green"
msgstr ""
#: fpsstrings.rssilver
msgid "silver"
msgstr ""
#: fpsstrings.rsskyblue
msgid "sky blue"
msgstr ""
#: fpsstrings.rsstdhyperlinktooltip
msgid "Hold the left mouse button down for a short time to activate the hyperlink."
msgstr ""
#: fpsstrings.rstan
msgid "tan"
msgstr ""
#: fpsstrings.rsteal
msgid "teal"
msgstr ""
#: fpsstrings.rstoomanypalettecolors
msgid "This workbook contains more colors (%d) than supported by the file format (%d). The additional colors are replaced by the best-matching palette colors."
msgstr ""
#: fpsstrings.rstransparent
msgid "transparent"
msgstr ""
#: fpsstrings.rstruncatetoolongcelltext
msgid "Text value exceeds the %d character limit in cell %s and has been truncated."
msgstr ""
#: fpsstrings.rsunexpectedendofexpression
msgid "Unexpected end of expression"
msgstr ""
#: fpsstrings.rsunknowncharacter
msgid "Unknown character at pos %d: \"%s\""
msgstr ""
#: fpsstrings.rsunknowncomparison
msgid "Internal error: Unknown comparison"
msgstr ""
#: fpsstrings.rsunknowndatatype
msgid "Unknown data type."
msgstr ""
#: fpsstrings.rsunknowndelimiter
msgid "Unknown delimiter character: \"%s\""
msgstr ""
#: fpsstrings.rsunknownerrortype
msgid "Unknown error type."
msgstr ""
#: fpsstrings.rsunknownidentifier
msgid "Unknown identifier: %s"
msgstr ""
#: fpsstrings.rsunknowntokenatpos
msgid "Unknown token at pos %d : %s"
msgstr ""
#: fpsstrings.rsunsupportedreadformat
msgid "Tried to read a spreadsheet using an unsupported format"
msgstr ""
#: fpsstrings.rsunsupportedwriteformat
msgid "Tried to write a spreadsheet using an unsupported format"
msgstr ""
#: fpsstrings.rsunterminatedexpression
msgid "Badly terminated expression. Found token at position %d : %s"
msgstr ""
#: fpsstrings.rsutf8textexpectedbutansifoundincell
msgid "Expected UTF8 text, but probably ANSI text found in cell %s."
msgstr ""
#: fpsstrings.rsverydarkgreen
msgid "very dark green"
msgstr ""
#: fpsstrings.rsviolet
msgid "violet"
msgstr ""
#: fpsstrings.rswheat
msgid "wheat"
msgstr ""
#: fpsstrings.rswhite
msgid "white"
msgstr ""
#: fpsstrings.rsworksheetnotfound
msgid "Worksheet \"%s\" not found."
msgstr ""
#: fpsstrings.rsworksheetnotfound1
msgid "Worksheet not found."
msgstr ""
#: fpsstrings.rsyellow
msgid "yellow"
msgstr ""

View File

@ -212,6 +212,11 @@ This package is all you need if you don't want graphical components (like grids
<UnitName Value="fpsImages"/>
</Item45>
</Files>
<i18n>
<EnableI18N Value="True"/>
<OutDir Value="languages"/>
<EnableI18NForLFM Value="True"/>
</i18n>
<RequiredPkgs Count="2">
<Item1>
<PackageName Value="LazUtils"/>

View File

@ -628,12 +628,12 @@ initialization
// Registers this reader / writer in fpSpreadsheet
sfidWikiTable_Pipes := RegisterSpreadFormat( sfWikiTable_Pipes,
TsWikiTable_PipesReader, nil,
rsFileFormatWikiTablePipes, 'WIKITABLE_PIPES', [STR_WIKITABLE_PIPES_EXTENSION]
STR_FILEFORMAT_WIKITABLE_PIPES, 'WIKITABLE_PIPES', [STR_WIKITABLE_PIPES_EXTENSION]
);
sfidWikiTable_WikiMedia := RegisterSpreadFormat(sfWikiTable_WikiMedia,
nil, TsWikiTable_WikiMediaWriter,
rsFileFormatWikiTableWikiMedia, 'WIKITABLE_WIKIMEDIA', [STR_WIKITABLE_WIKIMEDIA_EXTENSION]
STR_FILEFORMAT_WIKITABLE_WIKIMEDIA, 'WIKITABLE_WIKIMEDIA', [STR_WIKITABLE_WIKIMEDIA_EXTENSION]
);
end.

View File

@ -2044,7 +2044,7 @@ initialization
sfidExcel2 := RegisterSpreadFormat(sfExcel2,
TsSpreadBIFF2Reader, TsSpreadBIFF2Writer,
rsFileFormatExcel2, 'BIFF2', [STR_EXCEL_EXTENSION]
STR_FILEFORMAT_EXCEL_2, 'BIFF2', [STR_EXCEL_EXTENSION]
);
MakeLEPalette(PALETTE_BIFF2);

View File

@ -1405,7 +1405,7 @@ begin
idx := FWorkbook.GetWorksheetIndex(AWorksheet);
{ BIFF record header }
WriteBIFFHeader(AStream, INT_EXCEL_ID_DEFINEDNAME, 14 + Length(AName) + memstream.Size);
WriteBIFFHeader(AStream, INT_EXCEL_ID_DEFINEDNAME, 14 + Length(AName) + Word(memstream.Size));
{ Option flags: built-in defined names only }
AStream.WriteWord(WordToLE($0020));
@ -1935,7 +1935,7 @@ begin
begin
if (AFormatRecord^.Background.FgColor = scTransparent)
then dw1 := dw1 or (SYS_DEFAULT_FOREGROUND_COLOR and $0000007F)
else dw1 := dw1 or (PaletteIndex(AFormatRecord^.Background.FgColor) and $0000007F);
else dw1 := LongInt(dw1) or (PaletteIndex(AFormatRecord^.Background.FgColor) and $0000007F);
if AFormatRecord^.Background.BgColor = scTransparent
then dw1 := dw1 or (SYS_DEFAULT_BACKGROUND_COLOR shl 7)
else dw1 := dw1 or (PaletteIndex(AFormatRecord^.Background.BgColor) shl 7);
@ -1974,7 +1974,7 @@ initialization
sfidExcel5 := RegisterSpreadFormat(sfExcel5,
TsSpreadBIFF5Reader, TsSpreadBIFF5Writer,
rsFileFormatExcel5, 'BIFF5', [STR_EXCEL_EXTENSION]
STR_FILEFORMAT_EXCEL_5, 'BIFF5', [STR_EXCEL_EXTENSION]
);
MakeLEPalette(PALETTE_BIFF5);

View File

@ -3736,7 +3736,7 @@ initialization
// Registers this reader / writer in fpSpreadsheet
sfidExcel8 := RegisterSpreadFormat(sfExcel8,
TsSpreadBIFF8Reader, TsSpreadBIFF8Writer,
rsFileFormatExcel8, 'BIFF8', [STR_EXCEL_EXTENSION]
STR_FILEFORMAT_EXCEL_8, 'BIFF8', [STR_EXCEL_EXTENSION]
);
// Converts the palette to litte-endian

View File

@ -527,7 +527,7 @@ procedure WriteMSOHeader(AStream: TStream; AType, AVersion, AInstance: Word;
var
rec: TsMSOHeader;
begin
rec.Version_Instance := WordToLE((AVersion and $000F) + AInstance shl 4); //and $FFF0) shr 4);
rec.Version_Instance := WordToLE((AVersion and $000F) {%H-}+ AInstance shl 4);
// To do: How to handle Version_Instance on big-endian machines?
// Version_Instance combines bits 0..3 for "version" and 4..15 for "instance"
rec.RecordType := WordToLE(AType);

View File

@ -851,7 +851,7 @@ initialization
// Registers this reader / writer in fpSpreadsheet
sfidExcelXML := RegisterSpreadFormat(sfExcelXML,
nil, TsSpreadExcelXMLWriter,
rsFileFormatExcelXML, 'ExcelXML', [STR_XML_EXCEL_EXTENSION]
STR_FILEFORMAT_EXCEL_XML, 'ExcelXML', [STR_XML_EXCEL_EXTENSION]
);
end.

View File

@ -2037,7 +2037,7 @@ begin
XMLStream := CreateXMLStream;
try
if not UnzipToStream(AStream, OOXML_PATH_XL_WORKBOOK, XMLStream) then
raise Exception.CreateFmt(rsDefectiveInternalStructure, ['xlsx']);
raise Exception.CreateFmt(rsDefectiveInternalFileStructure, ['xlsx']);
ReadXMLStream(Doc, XMLStream);
ReadFileVersion(Doc.DocumentElement.FindNode('fileVersion'));
ReadDateMode(Doc.DocumentElement.FindNode('workbookPr'));
@ -2172,7 +2172,7 @@ begin
XMLStream := CreateXMLStream;
try
if not UnzipToStream(AStream, OOXML_PATH_XL_WORKBOOK, XMLStream) then
raise Exception.CreateFmt(rsDefectiveInternalStructure, ['xlsx']);
raise Exception.CreateFmt(rsDefectiveInternalFileStructure, ['xlsx']);
ReadXMLStream(Doc, XMLStream);
ReadDefinedNames(Doc.DocumentElement.FindNode('definedNames'));
FreeAndNil(Doc);
@ -4705,7 +4705,7 @@ initialization
// Registers this reader / writer on fpSpreadsheet
sfidOOXML := RegisterSpreadFormat(sfOOXML,
TsSpreadOOXMLReader, TsSpreadOOXMLWriter,
rsFileFormatExcelXLSX, 'OOXML', [STR_OOXML_EXCEL_EXTENSION]
STR_FILEFORMAT_EXCEL_XLSX, 'OOXML', [STR_OOXML_EXCEL_EXTENSION]
);
end.