diff --git a/ePublishing/Footnotes.xba b/ePublishing/Footnotes.xba index d5be11c..4aa30ae 100644 --- a/ePublishing/Footnotes.xba +++ b/ePublishing/Footnotes.xba @@ -1,6 +1,6 @@ -sub footMark1 +sub footMark2 End Sub Sub openFootNotesDialog @@ -14,7 +14,17 @@ Sub openFootNotesDialog dialog.getControl("configText3").setText(getTranslation("configText3")) dialog.getControl("configText4").setText(getTranslation("configText4")) dialog.getControl("configText5").setText(getTranslation("configText5")) + dialog.getControl("notesTypeLabel").setText(getTranslation("FootnotesConfigDialogNotesTypeLabel")) + dialog.getControl("PerPageRangeLabel").setText(getTranslation("FootnotesConfigDialogNotesPerPageRangeLabel")) + + dialog.getControl("groupByPages").Model.Label = getTranslation("FootnotesConfigDialogNotesPerPage") + dialog.getControl("groupByHeadings").Model.Label = getTranslation("FootnotesConfigDialogNotesByHeadingsLabel") dialog.Title = getTranslation("footnotesConfigDialogTitle") + Dim nCount As Integer + nCount = dialog.getControl("lb_notes_types").getItemCount() + dialog.getControl("lb_notes_types").addItem( getTranslation("FootnotesConfigDialogFootnotesName"), nCount ) + dialog.getControl("lb_notes_types").addItem( getTranslation("FootnotesConfigDialogEndnotesName"), nCount + 1 ) + dialog.getControl("lb_notes_types").selectItemPos( 0, True ) dialog.setVisible(true) Select Case dialog.Execute() Case 1 @@ -27,22 +37,36 @@ End Sub Sub setFootnotesNumberingFrom(dialog) Dim statusIndicator as Object Dim targetLevel As Integer + Dim stringLevelInput As String + Dim stringPageRangeInput As String + Dim noteType As Integer statusIndicator = ThisComponent.getCurrentController.statusIndicator dialog.setVisible(false) doNotTrack - targetLevel = dialog.getControl("level").Value + stringLevelInput = dialog.getControl("level").getText + stringPageRangeInput = dialog.getControl("pageRange").getText + noteType = dialog.getControl("lb_notes_types").getSelectedItemPos() + If (stringLevelInput <> "") Then + targetLevel = CInt(stringLevelInput) + If targetLevel > -1 AND targetLevel < 11 Then + statusIndicator.Start(getTranslation("statusNumberingInProcess"),100) + setFootnotesNumberingLevel(targetLevel,noteType) + Else + MsgBox getTranslation("numberingInputOutOfRange") + EndIf + EndIf - If targetLevel > -1 AND targetLevel < 11 Then + If (stringPageRangeInput <> "") Then + statusIndicator.Start(getTranslation("statusNumberingInProcess"),100) - setFootnotesNumberingLevel(targetLevel) - Else - MsgBox getTranslation("numberingInputOutOfRange") + setNotesPaginatedNumbering(noteType, pageArray) + EndIf statusIndicator.end() End Sub -Sub setFootnotesNumberingLevel(level) +Sub setFootnotesNumberingLevel(level As Integer,noteType As Integer) Dim enum1Element As Object Dim enum1 As Object Dim enum2 As Object @@ -50,7 +74,7 @@ Sub setFootnotesNumberingLevel(level) Dim curNum As Integer Dim footnoteText As Object Dim label As String - Dim labelNum As Integer + Dim labelNum As Long Dim i As Integer Dim cell As Object Dim cellEnum As Object @@ -72,7 +96,8 @@ Sub setFootnotesNumberingLevel(level) enum2 = enum1Element.createEnumeration While enum2.hasMoreElements thisPortion = enum2.nextElement - If thisPortion.TextPortionType = "Footnote" Then + If isTargetNote(thisPortion, noteType) Then + footnoteText = thisPortion.Footnote label = footnoteText.getLabel If label = "" Then @@ -81,7 +106,7 @@ Sub setFootnotesNumberingLevel(level) curNum = curNum + 1 EndIf Else - labelNum = CInt(label) + labelNum = CLng(label) If labelNum > 0 Then If level < 1 Then footnoteText.setLabel("") @@ -107,7 +132,7 @@ Sub setFootnotesNumberingLevel(level) cellEnum2 = cellEnumElement.createEnumeration While cellEnum2.hasMoreElements thisPortion = cellEnum2.nextElement - If thisPortion.TextPortionType = "Footnote" Then + If isTargetNote(thisPortion, noteType) Then footnoteText = thisPortion.Footnote label = footnoteText.getLabel If label = "" Then @@ -116,7 +141,7 @@ Sub setFootnotesNumberingLevel(level) curNum = curNum + 1 EndIf Else - labelNum = CInt(label) + labelNum = CLng(label) If labelNum > 0 Then If level < 1 Then footnoteText.setLabel("") @@ -137,6 +162,24 @@ Sub setFootnotesNumberingLevel(level) MsgBox getTranslation("statusNumberingFinished") End Sub +Function isTargetNote(portion As Object, noteType As Integer) As Boolean + If ( portion.TextPortionType = "Footnote" And isEndNote(portion) = CBool(noteType) ) Then + isTargetNote = true + Else + isTargetNote = false + EndIf +End Function + + + +Function isEndNote(portion As Object) As Boolean + If (IsEmpty(portion.Start.EndNote)) Then + isEndNote = false + Else + isEndNote = true + EndIf +End Function + Private Sub doNotTrack Dim dispatcher As Object Dim document As Object diff --git a/ePublishing/FootnotesConfig.xdl b/ePublishing/FootnotesConfig.xdl index 9dac140..34ffa79 100644 --- a/ePublishing/FootnotesConfig.xdl +++ b/ePublishing/FootnotesConfig.xdl @@ -1,20 +1,30 @@ - + - - + + - - - - - - - - + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ePublishing/Translations.xba b/ePublishing/Translations.xba index 740eb63..0468733 100644 --- a/ePublishing/Translations.xba +++ b/ePublishing/Translations.xba @@ -253,6 +253,24 @@ Function getRussian(identifier As String) As String Case "OutlineLinksFinished" getRussian = "Создание ссылок в оглавлении завершено. Если этому сообщению предшествовали предупреждения об ошибках, то после исправления ошибок запустите создание ссылок заново." Exit Function + Case "FootnotesConfigDialogFootnotesName" + getRussian = "Обычные сноски" + Exit Function + Case "FootnotesConfigDialogEndnotesName" + getRussian = "Концевые сноски" + Exit Function + Case "FootnotesConfigDialogNotesTypeLabel" + getRussian = "Настроить" + Exit Function + Case "FootnotesConfigDialogNotesByHeadingsLabel" + getRussian = "По заголовкам" + Exit Function + Case "FootnotesConfigDialogNotesPerPage" + getRussian = "По страницам" + Exit Function + Case "FootnotesConfigDialogNotesPerPageRangeLabel" + getRussian = "Введите диапазон страниц" + Exit Function Case Else getRussian = "Перевод не найден" End Select @@ -486,6 +504,24 @@ Function getEnglish(identifier As String) As String Case "OutlineLinksFinished" getEnglish = "Creating links in the table of contents is complete. If this message was preceded by error warnings, then after correcting the errors, restart creating links in table of contents." Exit Function + Case "FootnotesConfigDialogFootnotesName" + getEnglish = "Footnotes" + Exit Function + Case "FootnotesConfigDialogEndnotesName" + getEnglish = "Endnotes" + Exit Function + Case "FootnotesConfigDialogNotesTypeLabel" + getEnglish = "Set" + Exit Function + Case "FootnotesConfigDialogNotesByHeadingsLabel" + getEnglish = "Per chapter" + Exit Function + Case "FootnotesConfigDialogNotesPerPage" + getEnglish = "Per page" + Exit Function + Case "FootnotesConfigDialogNotesPerPageRangeLabel" + getEnglish = "Enter the page range " + Exit Function Case Else getEnglish = "No translation" End Select @@ -718,6 +754,24 @@ Function getFrench(identifier As String) As String Case "OutlineLinksFinished" getFrench = "La création de liens dans la table des matières est terminée. Si ce message a été précédé d'avertissements d'erreur, après avoir corrigé les erreurs, recommencez à créer des liens." Exit Function + Case "FootnotesConfigDialogFootnotesName" + getFrench = "Notes de bas de page " + Exit Function + Case "FootnotesConfigDialogEndnotesName" + getFrench = "Notes de fin " + Exit Function + Case "FootnotesConfigDialogNotesTypeLabel" + getFrench = "Ensemble " + Exit Function + Case "FootnotesConfigDialogNotesByHeadingsLabel" + getFrench = "Par chapitre" + Exit Function + Case "FootnotesConfigDialogNotesPerPage" + getFrench = "Par page " + Exit Function + Case "FootnotesConfigDialogNotesPerPageRangeLabel" + getFrench = "Entrez la plage de pages " + Exit Function Case Else getFrench = "No translation" End Select @@ -950,6 +1004,24 @@ Function getCroatian(identifier As String) As String Case "OutlineLinksFinished" getCroatian = "Stvaranje veza u sadržaju je završeno. Ako su ovoj poruci prethodila upozorenja o pogrešci, počnite stvarati veze nakon ispravljanja pogrešaka." Exit Function + Case "FootnotesConfigDialogFootnotesName" + getCroatian = "Fusnote " + Exit Function + Case "FootnotesConfigDialogEndnotesName" + getCroatian = "Bilješke " + Exit Function + Case "FootnotesConfigDialogNotesTypeLabel" + getCroatian = "Postavi" + Exit Function + Case "FootnotesConfigDialogNotesByHeadingsLabel" + getCroatian = "Po poglavlju" + Exit Function + Case "FootnotesConfigDialogNotesPerPage" + getCroatian = "Po stranici " + Exit Function + Case "FootnotesConfigDialogNotesPerPageRangeLabel" + getCroatian = "Unesite raspon stranica " + Exit Function Case Else getCroatian = "No translation" End Select @@ -1182,6 +1254,24 @@ Function getSerbian(identifier As String) As String Case "OutlineLinksFinished" getSerbian = "Стварање веза у табели садржаја је завршено. Ако су овој поруци претходила упозорења о грешци, након исправљања грешака поново почните стварати везе." Exit Function + Case "FootnotesConfigDialogFootnotesName" + getSerbian = "Фусноте" + Exit Function + Case "FootnotesConfigDialogEndnotesName" + getSerbian = "Енднотес " + Exit Function + Case "FootnotesConfigDialogNotesTypeLabel" + getSerbian = "Комплет" + Exit Function + Case "FootnotesConfigDialogNotesByHeadingsLabel" + getSerbian = "По поглављу" + Exit Function + Case "FootnotesConfigDialogNotesPerPage" + getSerbian = "По страни " + Exit Function + Case "FootnotesConfigDialogNotesPerPageRangeLabel" + getSerbian = "Унесите опсег страница " + Exit Function Case Else getSerbian = "No translation" End Select @@ -1414,6 +1504,24 @@ Function getBosnian(identifier As String) As String Case "OutlineLinksFinished" getBosnian = "Stvaranje veza u sadržaju je završeno. Ako su ovoj poruci prethodila upozorenja o pogrešci, počnite stvarati veze nakon ispravljanja pogrešaka." Exit Function + Case "FootnotesConfigDialogFootnotesName" + getBosnian = "Fusnote " + Exit Function + Case "FootnotesConfigDialogEndnotesName" + getBosnian = "Bilješke " + Exit Function + Case "FootnotesConfigDialogNotesTypeLabel" + getBosnian = "Set" + Exit Function + Case "FootnotesConfigDialogNotesByHeadingsLabel" + getBosnian = "Po poglavlju" + Exit Function + Case "FootnotesConfigDialogNotesPerPage" + getBosnian = "Po stranici " + Exit Function + Case "FootnotesConfigDialogNotesPerPageRangeLabel" + getBosnian = "Unesite raspon stranica " + Exit Function Case Else getBosnian = "No translation" End Select diff --git a/translations.ods b/translations.ods index c5c781c..d74185b 100644 Binary files a/translations.ods and b/translations.ods differ