diff --git a/components/fpspreadsheet/languages/fpsstrings.de.po b/components/fpspreadsheet/languages/fpsstrings.de.po index f3cee3b4b..df6f5d2a8 100644 --- a/components/fpspreadsheet/languages/fpsstrings.de.po +++ b/components/fpspreadsheet/languages/fpsstrings.de.po @@ -8,7 +8,7 @@ msgstr "" "Language-Team: \n" "MIME-Version: 1.0\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" "Language: de\n" @@ -26,7 +26,7 @@ msgstr "Verwendung eines Dezimaltrennzeichens in \"%s\" wird angenommen." #: fpsstrings.rsbadquotes msgid "Unterminated string" -msgstr "Begrenzungszeichen des Strings fehlt." +msgstr "Begrenzungszeichen des Strings fehlt.." #: fpsstrings.rsblack msgid "black" @@ -58,7 +58,7 @@ 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." +msgstr "Komma erwartet an Position %d, aber %s gefunden" #: fpsstrings.rscyan msgid "cyan" @@ -92,6 +92,10 @@ msgstr "Der Druckbereich \"%s\" benötigt ein anderes Arbeitsblatt." msgid "An identifier with name \"%s\" already exists." msgstr "Ein Bezeichner mit dem Namen \"%s\" existiert bereits." +#: fpsstrings.rsduplicateworksheetname +msgid "Duplicate worksheet \"%s\"." +msgstr "Doppelter Arbeitsblattname \"%s\"." + #: fpsstrings.rsemptyhyperlink msgid "The hyperlink is not specified." msgstr "Der Hyperlink ist nicht angegeben." @@ -154,7 +158,7 @@ msgstr "Kopfzeile" #: fpsstrings.rsillegalodscellrange msgid "Illegal structure of an OpenDocument cell range." -msgstr "" +msgstr "Ungültiger Aufbau einen OpenDocument-Zellbereichs." #: fpsstrings.rsimageformatnotsupported msgid "Image format not supported." @@ -182,15 +186,15 @@ 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" +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. " +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." +msgstr "%s ist kein gültiger Gleitkomma-Wert" #: fpsstrings.rsinvalidfontindex msgid "Invalid font index" @@ -206,11 +210,11 @@ msgstr "Unerwartetes Zeichen in Zahl: %s" #: fpsstrings.rsinvalidnumberformat msgid "Trying to use an incompatible number format." -msgstr "Versuch ein inkompatibles Zahlenformat zu verwenden" +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." +msgstr "\"%s\" ist kein gültiger Indikator für einen Ergebnistyp" #: fpsstrings.rsinvalidresulttype msgid "Invalid result type: %s" @@ -218,7 +222,7 @@ msgstr "Ungültiger Ergebnistyp: %s" #: fpsstrings.rsinvalidspreadsheetfile 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 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 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 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 msgid "No valid number format string." -msgstr "Kein gültiges Zahlenformat" +msgstr "Kein gültiges Zahlenformat." #: fpsstrings.rsnovariable msgid "Identifier %s is not a variable" -msgstr "Der Bezeichnis %s ist keine Variable." +msgstr "Der Bezeichner %s ist keine Variable" #: fpsstrings.rsodshyperlinksoftextcellsonly msgid "Cell %s: OpenDocument supports hyperlinks for text cells only." @@ -314,7 +318,7 @@ msgstr "Palettenindex %d" #: fpsstrings.rspasswordremoved_biff2 msgid "Password removed (BIFF2 requires matching workbook and worksheet passwords)" -msgstr "Das Passwort wurde entfernt (BIFF2 erfordert übereinstimmende Passwörter von Workbook und Worksheet " +msgstr "Das Passwort wurde entfernt (BIFF2 erfordert übereinstimmende Passwörter von Workbook und Worksheet" #: fpsstrings.rspasswordremoved_excel msgid "Password removed (Hashing algorithm not compatible with Excel)" @@ -330,20 +334,19 @@ msgstr "purpur" #: fpsstrings.rsreadernotfound 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 msgid "red" msgstr "rot" #: fpsstrings.rsrightbracketexpected -#, fuzzy,badformat 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 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 msgid "Row style not found." @@ -391,7 +394,7 @@ msgstr "Interner Fehler: Unbekannter Vergleich" #: fpsstrings.rsunknowndatatype msgid "Unknown data type." -msgstr "Unbekannter Datentyp" +msgstr "Unbekannter Datentyp." #: fpsstrings.rsunknowndelimiter msgid "Unknown delimiter character: \"%s\"" @@ -399,7 +402,7 @@ msgstr "Unbekanntes Trennzeichen: \"%s\"" #: fpsstrings.rsunknownerrortype msgid "Unknown error type." -msgstr "Unbekannter Fehler-Typ" +msgstr "Unbekannter Fehler-Typ." #: fpsstrings.rsunknownidentifier msgid "Unknown identifier: %s" @@ -423,7 +426,7 @@ 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" +msgstr "In Zelle %s UTF8-Text erwartet, aber wahrscheinlich ANSI-Text gefunden." #: fpsstrings.rswhite msgid "white" @@ -431,7 +434,7 @@ msgstr "weiß" #: fpsstrings.rsworksheetnotfound msgid "Worksheet \"%s\" not found." -msgstr "Arbeitsblatt \"%s\" nicht gefunden" +msgstr "Arbeitsblatt \"%s\" nicht gefunden." #: fpsstrings.rsworksheetnotfound1 msgid "Worksheet not found." @@ -444,4 +447,3 @@ msgstr "Die Datei kann nicht geschrieben werden, weil der Name des Arbeitsblatte #: fpsstrings.rsyellow msgid "yellow" msgstr "gelb" - diff --git a/components/fpspreadsheet/languages/fpsstrings.fi.po b/components/fpspreadsheet/languages/fpsstrings.fi.po index 5aae3ad71..ed8596542 100644 --- a/components/fpspreadsheet/languages/fpsstrings.fi.po +++ b/components/fpspreadsheet/languages/fpsstrings.fi.po @@ -81,6 +81,10 @@ msgstr "" msgid "An identifier with name \"%s\" already exists." msgstr "" +#: fpsstrings.rsduplicateworksheetname +msgid "Duplicate worksheet \"%s\"." +msgstr "" + #: fpsstrings.rsemptyhyperlink msgid "The hyperlink is not specified." msgstr "" diff --git a/components/fpspreadsheet/languages/fpsstrings.hu.po b/components/fpspreadsheet/languages/fpsstrings.hu.po index 802e2f34c..8a67d0778 100644 --- a/components/fpspreadsheet/languages/fpsstrings.hu.po +++ b/components/fpspreadsheet/languages/fpsstrings.hu.po @@ -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." msgstr "Már létezik egy azonosító \"%s\" névvel." +#: fpsstrings.rsduplicateworksheetname +msgid "Duplicate worksheet \"%s\"." +msgstr "" + #: fpsstrings.rsemptyhyperlink msgid "The hyperlink is not specified." msgstr "A hiperhivatkozás nincs megadva." diff --git a/components/fpspreadsheet/languages/fpsstrings.po b/components/fpspreadsheet/languages/fpsstrings.po index 16f4bc772..6771e4803 100644 --- a/components/fpspreadsheet/languages/fpsstrings.po +++ b/components/fpspreadsheet/languages/fpsstrings.po @@ -81,6 +81,10 @@ msgstr "" msgid "An identifier with name \"%s\" already exists." msgstr "" +#: fpsstrings.rsduplicateworksheetname +msgid "Duplicate worksheet \"%s\"." +msgstr "" + #: fpsstrings.rsemptyhyperlink msgid "The hyperlink is not specified." msgstr "" diff --git a/components/fpspreadsheet/languages/fpsstrings.ru.po b/components/fpspreadsheet/languages/fpsstrings.ru.po index ae72da2cb..dd4f595fa 100644 --- a/components/fpspreadsheet/languages/fpsstrings.ru.po +++ b/components/fpspreadsheet/languages/fpsstrings.ru.po @@ -81,6 +81,10 @@ msgstr "Диапазон печати \"%s\" требует раличных т msgid "An identifier with name \"%s\" already exists." msgstr "Переменная с именем \"%s\" уже существует." +#: fpsstrings.rsduplicateworksheetname +msgid "Duplicate worksheet \"%s\"." +msgstr "" + #: fpsstrings.rsemptyhyperlink msgid "The hyperlink is not specified." msgstr "Гиперссылка не указана." diff --git a/components/fpspreadsheet/source/common/fpspreadsheet.pas b/components/fpspreadsheet/source/common/fpspreadsheet.pas index 3537ed0e0..bf490cb32 100644 --- a/components/fpspreadsheet/source/common/fpspreadsheet.pas +++ b/components/fpspreadsheet/source/common/fpspreadsheet.pas @@ -8743,8 +8743,12 @@ end; -------------------------------------------------------------------------------} function TsWorkbook.AddWorksheet(AName: string; ReplaceDuplicateName: Boolean = false): TsWorksheet; +var + msg: String; begin // Check worksheet name + if not ReplaceDuplicateName and (GetWorksheetByName(AName) <> nil) then + raise EFPSpreadsheet.CreateFmt(rsDuplicateWorksheetName, [AName]); if not ValidWorksheetName(AName, ReplaceDuplicateName) then raise EFPSpreadsheet.CreateFmt(rsInvalidWorksheetName, [AName]); @@ -9094,11 +9098,12 @@ end; function TsWorkbook.ValidWorksheetName(var AName: String; ReplaceDuplicateName: Boolean = false): Boolean; // see: http://stackoverflow.com/questions/451452/valid-characters-for-excel-sheet-names +const + INVALID_CHARS: set of char = ['[', ']', ':', '*', '?', '/', '\']; var - INVALID_CHARS: array [0..6] of char = ('[', ']', ':', '*', '?', '/', '\'); -var - i: Integer; unique: Boolean; + ch: char; + i: Integer; begin Result := false; @@ -9113,8 +9118,8 @@ begin exit; } // Name must not contain any of the INVALID_CHARS - for i:=0 to High(INVALID_CHARS) do - if UTF8Pos(INVALID_CHARS[i], AName) > 0 then + for ch in AName do + if ch in INVALID_CHARS then exit; // Name must be unique diff --git a/components/fpspreadsheet/source/common/fpsstrings.pas b/components/fpspreadsheet/source/common/fpsstrings.pas index f8b4e0330..64ef81b16 100644 --- a/components/fpspreadsheet/source/common/fpsstrings.pas +++ b/components/fpspreadsheet/source/common/fpsstrings.pas @@ -167,6 +167,7 @@ resourcestring // Worksheets rsDefaultSheetName = 'Sheet%d'; + rsDuplicateWorksheetName = 'Duplicate worksheet "%s".'; rsInvalidWorksheetName = '"%s" is not a valid worksheet name.'; rsWorksheetNotFound = 'Worksheet "%s" not found.'; rsWorksheetNotFound1 = 'Worksheet not found.';