diff --git a/Redaction/Clean.xba b/Redaction/Clean.xba index 630f6cc..2011ebb 100644 --- a/Redaction/Clean.xba +++ b/Redaction/Clean.xba @@ -1,6 +1,6 @@ -Sub mark53 +Sub mark54 End Sub @@ -367,6 +367,8 @@ Private Sub removeUserPageStyles End Sub Private Sub fixFrequentMistakes + Dim config As Object + config = initRedactionConfiguration() Dim NBSP As String Dim space As String NBSP = " " @@ -383,48 +385,51 @@ Private Sub fixFrequentMistakes AskAndReplace("^$","") 'Не должно быть пробелов перед знаками пунктуации .,;:?!)]}»¡¿”‘’ AskAndReplace("[:space:]+(?=[\.,;:?!\)\]\}»¡¿”‘’])","") - 'Между словом том и цифрой должен быть неразрывный пробел, а не обычный - AskAndReplace("(?<=\b[тТ](ом|\.))\ (?=[:digit:])",NBSP) - 'Между словом серия и цифрой должен быть неразрывный пробел, а не обычный - AskAndReplace("(?<=\b[сС](ерия|\.))\ +(?=[:digit:])",NBSP) - 'Между словом часть и цифрой должен быть неразрывный пробел, а не обычный - AskAndReplace("(?<=\b[чЧ](асть|\.))\ +(?=[:digit:])",NBSP) - 'Между числом и "г." должен быть неразрывный пробел, а не обычный - AskAndReplace("(?<=[0-9])[:space:]*г(?=\.)",NBSP & "г") - 'Между инициалами и Фамилией должен быть неразрывный пробел, а не обычный - 'А.[м/б пробел]А.Иванов -> А.[м/б пробел]А. Иванов - AskAndReplace("(?<=[:upper:]\.[:space:]?[:upper:])\.[:space:]?(?=[:upper:][:lower:]{1,30})","." & NBSP) - ' А.[пробел]А.Иванов -> А.А. Иванов - AskAndReplace("(?<=[:upper:])\.[:space:](?=[:upper:]\.[:space:][:upper:][:lower:]{1,30})",".") - 'Между Фамилией и инициалами должен быть неразрывный пробел, а не обычный - 'Иванов А.[м/б пробел]А. -> Иванов А.А. - AskAndReplace("(?<=[:upper:][:lower:]{1,30}[:space:][:upper:])\.[:space:]?(?=[:upper:]\.)",".") - - 'Не должно быть пробелов после скобок [({ и кавычек «„ + 'Не должно быть пробелов после скобок [({ и кавычек «„ AskAndReplace("(?<=[\(\[\{«„])[:space:]","") - 'Между "и" и "т." должен быть неразрывный пробел, а не обычный - AskAndReplace("(?<=\bи)\ (?=т\.)",NBSP) - 'Между "т." и "е./н./д./п./к." не должно быть пробела - AskAndReplace("(?<=\bт)\.[:space:]?(?=[ендпк]\.)",".") - - 'Между буквами среднее тире должно обрамляться пробелами + 'Между буквами среднее тире должно обрамляться пробелами AskAndReplace("(?<=[:alpha:])–(?=[:alpha:])",NBSP & "–" & NBSP) 'Между буквами дефис-минус, цифровое тире и длинное тире заменяется на среднее тире AskAndReplace("(?<=[:alpha:][:space:])[-‒—](?=[:space:][:alpha:])","–") 'Между двумя цифрами и тире между ними не долнжо быть пробелов. А также тире должно быть цифровым - AskAndReplace("(?<=[:digit:])(?:[:space:])?[-‒–—](?:[:space:])?(?=[:digit:])","‒") - + AskAndReplace("(?<=[:digit:])(?:[:space:])?[-‒–—](?:[:space:])?(?=[:digit:])","‒") 'Между двумя римскими цифрами и тире между ними не долнжо быть пробелов. А также тире должно быть средним AskAndReplace("(?<=[MDCLXVI])(?:[:space:])?[-‒–—](?:[:space:])?(?=[MDCLXVI])","–") - 'Между буквой и угловой открывающейся скобкой должен быть пробел AskAndReplace("(?<=[:alpha:])<(?=…>)",space & "<") 'Между угловой закрывающейся скобкой и буквой должен быть пробел - AskAndReplace("(?<=<…)>(?=[:alpha:])",">" & space) - AskAndReplace("[ий][\u0306]+","й") - AskAndReplace("[ИЙ][\u0306]+","Й") - AskAndReplace("[её][\u0308]+","ё") - AskAndReplace("[ЕЁ][\u0308]+","Ё") + AskAndReplace("(?<=<…)>(?=[:alpha:])",">" & space) + + If config.getPropertyValue("fixes_russian_iph") = "true" Then + 'между N. Y. не должно быть пробела + AskAndReplace("(?<=N\.)[:space:](?=Y\.)","") + 'Между словом том и цифрой должен быть неразрывный пробел, а не обычный + AskAndReplace("(?<=\b[тТ](ом|\.))\ (?=[:digit:])",NBSP) + 'Между словом серия и цифрой должен быть неразрывный пробел, а не обычный + AskAndReplace("(?<=\b[сС](ерия|\.))\ +(?=[:digit:])",NBSP) + 'Между словом часть и цифрой должен быть неразрывный пробел, а не обычный + AskAndReplace("(?<=\b[чЧ](асть|\.))\ +(?=[:digit:])",NBSP) + 'Между числом и "г." должен быть неразрывный пробел, а не обычный + AskAndReplace("(?<=[0-9])[:space:]*г(?=\.)",NBSP & "г") + 'Между инициалами и Фамилией должен быть неразрывный пробел, а не обычный + 'А.[м/б пробел]А.Иванов -> А.[м/б пробел]А. Иванов + AskAndReplace("(?<=[:upper:]\.[:space:]?[:upper:])\.[:space:]?(?=[:upper:][:lower:]{1,30})","." & NBSP) + ' А.[пробел]А.Иванов -> А.А. Иванов + AskAndReplace("(?<=[:upper:])\.[:space:](?=[:upper:]\.[:space:][:upper:][:lower:]{1,30})",".") + 'Между Фамилией и инициалами должен быть неразрывный пробел, а не обычный + 'Иванов А.[м/б пробел]А. -> Иванов А.А. + AskAndReplace("(?<=[:upper:][:lower:]{1,30}[:space:][:upper:])\.[:space:]?(?=[:upper:]\.)",".") + 'Между "и" и "т." должен быть неразрывный пробел, а не обычный + AskAndReplace("(?<=\bи)\ (?=т\.)",NBSP) + 'Между "т." и "е./н./д./п./к." не должно быть пробела + AskAndReplace("(?<=\bт)\.[:space:]?(?=[ендпк]\.)",".") + AskAndReplace("[ий][\u0306]+","й") + AskAndReplace("[ИЙ][\u0306]+","Й") + AskAndReplace("[её][\u0308]+","ё") + AskAndReplace("[ЕЁ][\u0308]+","Ё") + + EndIf + End Sub Private Sub loadArticleStyles diff --git a/Redaction/ConfigDialog.xdl b/Redaction/ConfigDialog.xdl index c259a3b..2d1b792 100644 --- a/Redaction/ConfigDialog.xdl +++ b/Redaction/ConfigDialog.xdl @@ -1,10 +1,11 @@ - + - - + + - + + \ No newline at end of file diff --git a/Redaction/Configuration.xba b/Redaction/Configuration.xba index 1c17768..dd6655f 100644 --- a/Redaction/Configuration.xba +++ b/Redaction/Configuration.xba @@ -13,6 +13,7 @@ Function initRedactionConfiguration() reg = regFactory.createPropertySetRegistry(redactionExtensionName) redactionProps = reg.openPropertySet(redactionExtensionName, TRUE) + redactionProps.addProperty("fixes_russian_iph", 128, "true") redactionProps.addProperty("complexity", 128, "user") exceptionHandler: Resume Next @@ -26,11 +27,19 @@ End Function Private Sub setConfigFromDialog(dialog As Object) Dim config As Object config = initRedactionConfiguration() + If dialog.getControl("CB_complexity").state = 1 Then config.setPropertyValue("complexity", "makerUp") Else config.setPropertyValue("complexity", "user") EndIf + + If dialog.getControl("cb_russian_fixes_iph").state = 1 Then + config.setPropertyValue("fixes_russian_iph", "true") + Else + config.setPropertyValue("fixes_russian_iph", "false") + EndIf + End Sub Private Sub loadConfigToDialog(dialog As Object) @@ -41,6 +50,13 @@ Private Sub loadConfigToDialog(dialog As Object) Else dialog.getControl("CB_complexity").state = 0 EndIf + + If config.getPropertyValue("fixes_russian_iph") = "true" Then + dialog.getControl("cb_russian_fixes_iph").state = 1 + Else + dialog.getControl("cb_russian_fixes_iph").state = 0 + EndIf + End Sub @@ -50,6 +66,7 @@ Private Sub configurationDialog dialog = CreateUnoDialog(DialogLibraries.Redaction.ConfigDialog) loadConfigToDialog(dialog) dialog.getControl("CB_complexity").Label = getTranslation("dialogConfigComplexity") + dialog.getControl("cb_russian_fixes_iph").Label = getTranslation("dialogRussianFixesIPH") dialog.Title = getTranslation("dialogConfigTitle") dialog.getControl("OK").Label = getTranslation("buttonYes") dialog.getControl("CANCEL").Label = getTranslation("buttonStop") diff --git a/Redaction/Translations.xba b/Redaction/Translations.xba index 37a3e7b..0435dd0 100644 --- a/Redaction/Translations.xba +++ b/Redaction/Translations.xba @@ -200,6 +200,9 @@ Function getRussian(identifier As String) As String Case "dialogConfigTitle" getRussian = "Настройка чистки и проверки" Exit Function + Case "dialogRussianFixesIPH" + getRussian = "Исправления для текстов на русском" + Exit Function Case Else getRussian = "Перевод не найден" End Select @@ -263,8 +266,8 @@ Function getEnglish(identifier As String) As String getEnglish = "Remove page break at document start" Exit Function Case "advancedMenuFixMistakes" - getEnglish = "Remove frequent mistakes" - Exit Function + getEnglish = "Fix frequent mistakes" + Exit Function Case "advancedMenuConfigAnchors" getEnglish = "Configure image anchors for digital publications" Exit Function @@ -382,6 +385,9 @@ Function getEnglish(identifier As String) As String Case "dialogConfigTitle" getEnglish = "Clean and validation configuration" Exit Function + Case "dialogRussianFixesIPH" + getEnglish = "Corrections for texts in Russian" + Exit Function Case Else getEnglish = "No translation" End Select @@ -563,6 +569,9 @@ Function getCroatian(identifier As String) As String Case "dialogConfigTitle" getCroatian = "Podešavanje čišćenja i provjere" Exit Function + Case "dialogRussianFixesIPH" + getCroatian = "Ispravci za tekstove na ruskom" + Exit Function Case Else getCroatian = "No translation" End Select @@ -744,6 +753,9 @@ Function getSerbian(identifier As String) As String Case "dialogConfigTitle" getSerbian = "Подешавање чишћења и провере" Exit Function + Case "dialogRussianFixesIPH" + getSerbian = "Исправци за текстове на руском" + Exit Function Case Else getSerbian = "No translation" End Select @@ -925,6 +937,9 @@ Function getBosnian(identifier As String) As String Case "dialogConfigTitle" getBosnian = "Podešavanje čišćenja i provjere" Exit Function + Case "dialogRussianFixesIPH" + getBosnian = "Ispravci za tekstove na ruskom" + Exit Function Case Else getBosnian = "No translation" End Select diff --git a/cleanandvalidate.update.xml b/cleanandvalidate.update.xml index 56a30ba..14e13d5 100644 --- a/cleanandvalidate.update.xml +++ b/cleanandvalidate.update.xml @@ -2,9 +2,9 @@ - + - + diff --git a/description.xml b/description.xml index 1a23052..19aa501 100644 --- a/description.xml +++ b/description.xml @@ -3,7 +3,7 @@ xmlns:dep="http://openoffice.org/extensions/description/2006" xmlns:xlink="http://www.w3.org/1999/xlink"> - + Cleaning and validation documents for publishing in html and epub with pagination diff --git a/releasenotes.txt b/releasenotes.txt index 01baae7..348444b 100644 --- a/releasenotes.txt +++ b/releasenotes.txt @@ -1,3 +1,4 @@ +0.7.12 Transaltions update, fix for mistakes added 0.7.11 Serbian, Croatian, Bosnian translations added 0.7.9 Translations improved 0.7.5 Small fix for frequent mistakes macro diff --git a/translations.ods b/translations.ods index be5a3e2..9471dda 100644 Binary files a/translations.ods and b/translations.ods differ