fpspreadsheet: Workbook.AddWorksheet creates a "duplicate workwheet" error message if new worksheet already exists. Update German translation.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@6553 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz 2018-07-09 17:49:54 +00:00
parent 4cdb95d86c
commit 25b83a1948
7 changed files with 52 additions and 28 deletions

View File

@ -8,7 +8,7 @@ msgstr ""
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.0.4\n" "X-Generator: Poedit 2.0.6\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Language: de\n" "Language: de\n"
@ -26,7 +26,7 @@ msgstr "Verwendung eines Dezimaltrennzeichens in \"%s\" wird angenommen."
#: fpsstrings.rsbadquotes #: fpsstrings.rsbadquotes
msgid "Unterminated string" msgid "Unterminated string"
msgstr "Begrenzungszeichen des Strings fehlt." msgstr "Begrenzungszeichen des Strings fehlt.."
#: fpsstrings.rsblack #: fpsstrings.rsblack
msgid "black" msgid "black"
@ -58,7 +58,7 @@ msgstr "Spalten-Stil nicht gefunden."
#: fpsstrings.rscommaexpected #: fpsstrings.rscommaexpected
msgid "Expected comma (,) at position %d, but got %s" msgid "Expected comma (,) at position %d, but got %s"
msgstr "Komma erwartet an Position %d, aber %s gefunden." msgstr "Komma erwartet an Position %d, aber %s gefunden"
#: fpsstrings.rscyan #: fpsstrings.rscyan
msgid "cyan" msgid "cyan"
@ -92,6 +92,10 @@ msgstr "Der Druckbereich \"%s\" benötigt ein anderes Arbeitsblatt."
msgid "An identifier with name \"%s\" already exists." msgid "An identifier with name \"%s\" already exists."
msgstr "Ein Bezeichner mit dem Namen \"%s\" existiert bereits." msgstr "Ein Bezeichner mit dem Namen \"%s\" existiert bereits."
#: fpsstrings.rsduplicateworksheetname
msgid "Duplicate worksheet \"%s\"."
msgstr "Doppelter Arbeitsblattname \"%s\"."
#: fpsstrings.rsemptyhyperlink #: fpsstrings.rsemptyhyperlink
msgid "The hyperlink is not specified." msgid "The hyperlink is not specified."
msgstr "Der Hyperlink ist nicht angegeben." msgstr "Der Hyperlink ist nicht angegeben."
@ -154,7 +158,7 @@ msgstr "Kopfzeile"
#: fpsstrings.rsillegalodscellrange #: fpsstrings.rsillegalodscellrange
msgid "Illegal structure of an OpenDocument cell range." msgid "Illegal structure of an OpenDocument cell range."
msgstr "" msgstr "Ungültiger Aufbau einen OpenDocument-Zellbereichs."
#: fpsstrings.rsimageformatnotsupported #: fpsstrings.rsimageformatnotsupported
msgid "Image format not supported." msgid "Image format not supported."
@ -182,7 +186,7 @@ msgstr "Ungültige(s) Zeichen im Zellkommentar \"%s\"."
#: fpsstrings.rsinvaliddatetimeformat #: fpsstrings.rsinvaliddatetimeformat
msgid "Trying to use an incompatible date/time format." msgid "Trying to use an incompatible date/time format."
msgstr "Versuch ein inkompabibles Datum/Zeit-Format zu verwenden" msgstr "Versuch ein inkompabibles Datum/Zeit-Format zu verwenden."
#: fpsstrings.rsinvalidextension #: fpsstrings.rsinvalidextension
msgid "Attempting to save a spreadsheet by extension, but the extension %s is not valid." msgid "Attempting to save a spreadsheet by extension, but the extension %s is not valid."
@ -190,7 +194,7 @@ msgstr "Versuch, das Format ein Arbeitsbuches anhand der Dateiendung zu erkennen
#: fpsstrings.rsinvalidfloat #: fpsstrings.rsinvalidfloat
msgid "%s is not a valid floating-point value" msgid "%s is not a valid floating-point value"
msgstr "%s ist kein gültiger Gleitkomma-Wert." msgstr "%s ist kein gültiger Gleitkomma-Wert"
#: fpsstrings.rsinvalidfontindex #: fpsstrings.rsinvalidfontindex
msgid "Invalid font index" msgid "Invalid font index"
@ -206,11 +210,11 @@ msgstr "Unerwartetes Zeichen in Zahl: %s"
#: fpsstrings.rsinvalidnumberformat #: fpsstrings.rsinvalidnumberformat
msgid "Trying to use an incompatible number format." msgid "Trying to use an incompatible number format."
msgstr "Versuch ein inkompatibles Zahlenformat zu verwenden" msgstr "Versuch ein inkompatibles Zahlenformat zu verwenden."
#: fpsstrings.rsinvalidresultcharacter #: fpsstrings.rsinvalidresultcharacter
msgid "\"%s\" is not a valid return type indicator" msgid "\"%s\" is not a valid return type indicator"
msgstr "\"%s\" ist kein gültiger Indikator für einen Ergebnistyp." msgstr "\"%s\" ist kein gültiger Indikator für einen Ergebnistyp"
#: fpsstrings.rsinvalidresulttype #: fpsstrings.rsinvalidresulttype
msgid "Invalid result type: %s" msgid "Invalid result type: %s"
@ -218,7 +222,7 @@ msgstr "Ungültiger Ergebnistyp: %s"
#: fpsstrings.rsinvalidspreadsheetfile #: fpsstrings.rsinvalidspreadsheetfile
msgid "\"%s\" is not a valid spreadsheet file" msgid "\"%s\" is not a valid spreadsheet file"
msgstr "\"%s\" ist keine gültige Spreadsheet-Datei." msgstr "\"%s\" ist keine gültige Spreadsheet-Datei"
#: fpsstrings.rsinvalidworksheetname #: fpsstrings.rsinvalidworksheetname
msgid "\"%s\" is not a valid worksheet name." msgid "\"%s\" is not a valid worksheet name."
@ -226,7 +230,7 @@ msgstr "\"%s\" ist kein gültiger Name für ein Arbeitsblatt."
#: fpsstrings.rsleftbracketexpected #: fpsstrings.rsleftbracketexpected
msgid "Expected left bracket at position %d, but got %s" msgid "Expected left bracket at position %d, but got %s"
msgstr "Linke Klammer erwartet an Position %d, aber %s gefunden." msgstr "Linke Klammer erwartet an Position %d, aber %s gefunden"
#: fpsstrings.rslocalfilehyperlinkabs #: fpsstrings.rslocalfilehyperlinkabs
msgid "The hyperlink \"%s\" points to a local file. In case of an absolute path the protocol \"file:\" must be specified." msgid "The hyperlink \"%s\" points to a local file. In case of an absolute path the protocol \"file:\" must be specified."
@ -282,11 +286,11 @@ msgstr "Der Hyperlink \"%s\" ist keine gültiger URI."
#: fpsstrings.rsnovalidnumberformatstring #: fpsstrings.rsnovalidnumberformatstring
msgid "No valid number format string." msgid "No valid number format string."
msgstr "Kein gültiges Zahlenformat" msgstr "Kein gültiges Zahlenformat."
#: fpsstrings.rsnovariable #: fpsstrings.rsnovariable
msgid "Identifier %s is not a variable" msgid "Identifier %s is not a variable"
msgstr "Der Bezeichnis %s ist keine Variable." msgstr "Der Bezeichner %s ist keine Variable"
#: fpsstrings.rsodshyperlinksoftextcellsonly #: fpsstrings.rsodshyperlinksoftextcellsonly
msgid "Cell %s: OpenDocument supports hyperlinks for text cells only." msgid "Cell %s: OpenDocument supports hyperlinks for text cells only."
@ -330,20 +334,19 @@ msgstr "purpur"
#: fpsstrings.rsreadernotfound #: fpsstrings.rsreadernotfound
msgid "Reader not found for file \"%s\"" msgid "Reader not found for file \"%s\""
msgstr "Lese-Prozedur nicht gefunden für Datei \"%s\"." msgstr "Lese-Prozedur nicht gefunden für Datei \"%s\""
#: fpsstrings.rsred #: fpsstrings.rsred
msgid "red" msgid "red"
msgstr "rot" msgstr "rot"
#: fpsstrings.rsrightbracketexpected #: fpsstrings.rsrightbracketexpected
#, fuzzy,badformat
msgid "Expected right bracket at position %d, but got %s" msgid "Expected right bracket at position %d, but got %s"
msgstr "Rechte Klammer erwartet an Position, aber %s gefunden." msgstr "Rechte Klammer erwartet an Position %d, aber %s gefunden"
#: fpsstrings.rsrightsquarebracketexpected #: fpsstrings.rsrightsquarebracketexpected
msgid "Expected right square bracket at positon %d, but got %s" msgid "Expected right square bracket at positon %d, but got %s"
msgstr "" msgstr "Rechte eckige Klammer erwartet an Position %d, aber %s wurde gefunden"
#: fpsstrings.rsrowstylenotfound #: fpsstrings.rsrowstylenotfound
msgid "Row style not found." msgid "Row style not found."
@ -391,7 +394,7 @@ msgstr "Interner Fehler: Unbekannter Vergleich"
#: fpsstrings.rsunknowndatatype #: fpsstrings.rsunknowndatatype
msgid "Unknown data type." msgid "Unknown data type."
msgstr "Unbekannter Datentyp" msgstr "Unbekannter Datentyp."
#: fpsstrings.rsunknowndelimiter #: fpsstrings.rsunknowndelimiter
msgid "Unknown delimiter character: \"%s\"" msgid "Unknown delimiter character: \"%s\""
@ -399,7 +402,7 @@ msgstr "Unbekanntes Trennzeichen: \"%s\""
#: fpsstrings.rsunknownerrortype #: fpsstrings.rsunknownerrortype
msgid "Unknown error type." msgid "Unknown error type."
msgstr "Unbekannter Fehler-Typ" msgstr "Unbekannter Fehler-Typ."
#: fpsstrings.rsunknownidentifier #: fpsstrings.rsunknownidentifier
msgid "Unknown identifier: %s" msgid "Unknown identifier: %s"
@ -423,7 +426,7 @@ msgstr "Schlecht terminierter Ausdruck. Symbol gefunden an Position %d : %s"
#: fpsstrings.rsutf8textexpectedbutansifoundincell #: fpsstrings.rsutf8textexpectedbutansifoundincell
msgid "Expected UTF8 text, but probably ANSI text found in cell %s." msgid "Expected UTF8 text, but probably ANSI text found in cell %s."
msgstr "In Zelle %s UTF8-Text erwartet, aber wahrscheinlich ANSI-Text gefunden" msgstr "In Zelle %s UTF8-Text erwartet, aber wahrscheinlich ANSI-Text gefunden."
#: fpsstrings.rswhite #: fpsstrings.rswhite
msgid "white" msgid "white"
@ -431,7 +434,7 @@ msgstr "weiß"
#: fpsstrings.rsworksheetnotfound #: fpsstrings.rsworksheetnotfound
msgid "Worksheet \"%s\" not found." msgid "Worksheet \"%s\" not found."
msgstr "Arbeitsblatt \"%s\" nicht gefunden" msgstr "Arbeitsblatt \"%s\" nicht gefunden."
#: fpsstrings.rsworksheetnotfound1 #: fpsstrings.rsworksheetnotfound1
msgid "Worksheet not found." msgid "Worksheet not found."
@ -444,4 +447,3 @@ msgstr "Die Datei kann nicht geschrieben werden, weil der Name des Arbeitsblatte
#: fpsstrings.rsyellow #: fpsstrings.rsyellow
msgid "yellow" msgid "yellow"
msgstr "gelb" msgstr "gelb"

View File

@ -81,6 +81,10 @@ msgstr ""
msgid "An identifier with name \"%s\" already exists." msgid "An identifier with name \"%s\" already exists."
msgstr "" msgstr ""
#: fpsstrings.rsduplicateworksheetname
msgid "Duplicate worksheet \"%s\"."
msgstr ""
#: fpsstrings.rsemptyhyperlink #: fpsstrings.rsemptyhyperlink
msgid "The hyperlink is not specified." msgid "The hyperlink is not specified."
msgstr "" msgstr ""

View File

@ -91,6 +91,10 @@ msgstr "A(z) \"%s\" nyomtatási tartományhoz szükség van egy másik munkalapr
msgid "An identifier with name \"%s\" already exists." msgid "An identifier with name \"%s\" already exists."
msgstr "Már létezik egy azonosító \"%s\" névvel." msgstr "Már létezik egy azonosító \"%s\" névvel."
#: fpsstrings.rsduplicateworksheetname
msgid "Duplicate worksheet \"%s\"."
msgstr ""
#: fpsstrings.rsemptyhyperlink #: fpsstrings.rsemptyhyperlink
msgid "The hyperlink is not specified." msgid "The hyperlink is not specified."
msgstr "A hiperhivatkozás nincs megadva." msgstr "A hiperhivatkozás nincs megadva."

View File

@ -81,6 +81,10 @@ msgstr ""
msgid "An identifier with name \"%s\" already exists." msgid "An identifier with name \"%s\" already exists."
msgstr "" msgstr ""
#: fpsstrings.rsduplicateworksheetname
msgid "Duplicate worksheet \"%s\"."
msgstr ""
#: fpsstrings.rsemptyhyperlink #: fpsstrings.rsemptyhyperlink
msgid "The hyperlink is not specified." msgid "The hyperlink is not specified."
msgstr "" msgstr ""

View File

@ -81,6 +81,10 @@ msgstr "Диапазон печати \"%s\" требует раличных т
msgid "An identifier with name \"%s\" already exists." msgid "An identifier with name \"%s\" already exists."
msgstr "Переменная с именем \"%s\" уже существует." msgstr "Переменная с именем \"%s\" уже существует."
#: fpsstrings.rsduplicateworksheetname
msgid "Duplicate worksheet \"%s\"."
msgstr ""
#: fpsstrings.rsemptyhyperlink #: fpsstrings.rsemptyhyperlink
msgid "The hyperlink is not specified." msgid "The hyperlink is not specified."
msgstr "Гиперссылка не указана." msgstr "Гиперссылка не указана."

View File

@ -8743,8 +8743,12 @@ end;
-------------------------------------------------------------------------------} -------------------------------------------------------------------------------}
function TsWorkbook.AddWorksheet(AName: string; function TsWorkbook.AddWorksheet(AName: string;
ReplaceDuplicateName: Boolean = false): TsWorksheet; ReplaceDuplicateName: Boolean = false): TsWorksheet;
var
msg: String;
begin begin
// Check worksheet name // Check worksheet name
if not ReplaceDuplicateName and (GetWorksheetByName(AName) <> nil) then
raise EFPSpreadsheet.CreateFmt(rsDuplicateWorksheetName, [AName]);
if not ValidWorksheetName(AName, ReplaceDuplicateName) then if not ValidWorksheetName(AName, ReplaceDuplicateName) then
raise EFPSpreadsheet.CreateFmt(rsInvalidWorksheetName, [AName]); raise EFPSpreadsheet.CreateFmt(rsInvalidWorksheetName, [AName]);
@ -9094,11 +9098,12 @@ end;
function TsWorkbook.ValidWorksheetName(var AName: String; function TsWorkbook.ValidWorksheetName(var AName: String;
ReplaceDuplicateName: Boolean = false): Boolean; ReplaceDuplicateName: Boolean = false): Boolean;
// see: http://stackoverflow.com/questions/451452/valid-characters-for-excel-sheet-names // see: http://stackoverflow.com/questions/451452/valid-characters-for-excel-sheet-names
const
INVALID_CHARS: set of char = ['[', ']', ':', '*', '?', '/', '\'];
var var
INVALID_CHARS: array [0..6] of char = ('[', ']', ':', '*', '?', '/', '\');
var
i: Integer;
unique: Boolean; unique: Boolean;
ch: char;
i: Integer;
begin begin
Result := false; Result := false;
@ -9113,8 +9118,8 @@ begin
exit; exit;
} }
// Name must not contain any of the INVALID_CHARS // Name must not contain any of the INVALID_CHARS
for i:=0 to High(INVALID_CHARS) do for ch in AName do
if UTF8Pos(INVALID_CHARS[i], AName) > 0 then if ch in INVALID_CHARS then
exit; exit;
// Name must be unique // Name must be unique

View File

@ -167,6 +167,7 @@ resourcestring
// Worksheets // Worksheets
rsDefaultSheetName = 'Sheet%d'; rsDefaultSheetName = 'Sheet%d';
rsDuplicateWorksheetName = 'Duplicate worksheet "%s".';
rsInvalidWorksheetName = '"%s" is not a valid worksheet name.'; rsInvalidWorksheetName = '"%s" is not a valid worksheet name.';
rsWorksheetNotFound = 'Worksheet "%s" not found.'; rsWorksheetNotFound = 'Worksheet "%s" not found.';
rsWorksheetNotFound1 = 'Worksheet not found.'; rsWorksheetNotFound1 = 'Worksheet not found.';