diff --git a/press-n-post b/press-n-post index ec28925..dbcae67 100755 --- a/press-n-post +++ b/press-n-post @@ -5,8 +5,6 @@ package require Img package require fileutil package require platform -# TODO: Определение языка по классу символов, использованных в названии - #---------------------------------------------------------------------- # # Copyright (C) 2019, Maxim Lihachev, @@ -76,7 +74,7 @@ namespace eval pdf { category: Исследования pages: year: - language: RUS + language: $::pdf::language filesize: $::pdf::tags(File Size) pdf: $::pdf::file tags: @@ -131,6 +129,26 @@ namespace eval pdf { } } + # Определение языка по названию + proc guess_language {title} { + # Базовый набор символов + set eng {[a-z[:space:][:punct:]]} + + switch -nocase -regexp $title "^${eng}*\[äöüß]+${eng}*" { + set lang DEU + } "^${eng}*\[àâæçéèêëîïôœùûüÿ]+${eng}*" { + set lang FRA + } "^${eng}*\[а-яћџђљњčćžđš]+${eng}*" { + set lang SRB + } "^${eng}*\[а-я]+${eng}*" { + set lang RUS + } "^${eng}+" { + set lang ENG + } default { + set lang RUS + } + } + # Получение информации о PDF-файле proc load {filename} { set file_basename [file rootname [file tail $filename]] @@ -152,6 +170,7 @@ namespace eval pdf { set ::pdf::file_rootname [file rootname $filename] set ::pdf::title $title set ::pdf::authors [authors_list $authors] + set ::pdf::language [guess_language $file_basename] set ::pdf::canonical_authors [canonical_authors $authors] read_tags