From 978e459eb3f79853adf0dea0a8118f259e5cfa6e Mon Sep 17 00:00:00 2001 From: Sergey Poznyakoff Date: Sat, 18 Jun 2011 17:21:37 +0300 Subject: Improve conj. * data/dbverb.struct: Use utf8_bin collation for the `verb' column in all tables. * data/irregular-verbs.xml: Update. * po/POTFILES.in: Add conj.scm4. * po/pl.po: Update. * src/cgi-bin/conj.scm4: Try to fix some common input errors. Look up the verb in the dictionary. If there are no tones in the input word, look it up in the dictionary using the "soundslike" method. * style.css: Add h2.verb class. --- data/dbverb.struct | 8 ++-- data/irregular-verbs.xml | 5 +++ po/POTFILES.in | 1 + po/pl.po | 68 +++++++++++++++++++++++--------- po/ru.po | 66 ++++++++++++++++++++++--------- po/uk.po | 66 ++++++++++++++++++++++--------- src/cgi-bin/conj.scm4 | 84 ++++++++++++++++++++++++++++++++++++++-- src/ellinika/conjugator.scm | 1 - src/ellinika/tests/conj/uelv.scm | 1 + style.css | 4 ++ 10 files changed, 241 insertions(+), 63 deletions(-) diff --git a/data/dbverb.struct b/data/dbverb.struct index c3ce606..399d685 100644 --- a/data/dbverb.struct +++ b/data/dbverb.struct @@ -256,7 +256,7 @@ INSERT INTO participle VALUES DROP TABLE IF EXISTS verbclass; CREATE TABLE verbclass( - verb varchar(128), -- REL 10 + verb varchar(128) collate 'utf8_bin', -- REL 10 conj char(32), -- REL 9 INDEX(verb), INDEX(conj) @@ -264,7 +264,7 @@ CREATE TABLE verbclass( DROP TABLE IF EXISTS verbtense; CREATE TABLE verbtense( - verb varchar(128), -- REL 10 + verb varchar(128) collate 'utf8_bin', -- REL 10 voice enum('act','pas'), mood enum('ind','sub','imp'), tense varchar(128), @@ -275,7 +275,7 @@ CREATE TABLE verbtense( DROP TABLE IF EXISTS individual_verb; CREATE TABLE individual_verb( - verb varchar(128), + verb varchar(128) collate 'utf8_bin', voice enum('act','pas'), mood enum('ind','sub','imp'), tense varchar(128), @@ -285,7 +285,7 @@ CREATE TABLE individual_verb( DROP TABLE IF EXISTS irregular_root; CREATE TABLE irregular_root( - verb varchar(128), + verb varchar(128) collate 'utf8_bin', voice enum('act','pas'), -- Ενεργητηκή/Μεσοπαθητική thema char(32), -- enum('pres','aor','sub'), -- Αόριστος/Υποτακτική root varchar(128) diff --git a/data/irregular-verbs.xml b/data/irregular-verbs.xml index ac0e7a5..e69f97c 100644 --- a/data/irregular-verbs.xml +++ b/data/irregular-verbs.xml @@ -119,6 +119,11 @@ θέλω A + + + η + + θέλησ diff --git a/po/POTFILES.in b/po/POTFILES.in index 7dd8433..1664cdb 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -1,2 +1,3 @@ src/cgi-bin/dict.scm4 src/cgi-bin/nea.scm4 +src/cgi-bin/conj.scm4 \ No newline at end of file diff --git a/po/pl.po b/po/pl.po index 5911fc5..d73b4b6 100644 --- a/po/pl.po +++ b/po/pl.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: Ellinika 1.0\n" "Report-Msgid-Bugs-To: gray@gnu.org\n" -"POT-Creation-Date: 2011-06-04 20:44+0300\n" -"PO-Revision-Date: 2006-03-25 00:19+0200\n" +"POT-Creation-Date: 2011-06-18 17:11+0300\n" +"PO-Revision-Date: 2011-06-18 17:13+0300\n" "Last-Translator: Sergey Poznyakoff \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" @@ -18,52 +18,52 @@ msgstr "" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" -#: src/cgi-bin/dict.scm4:38 +#: src/cgi-bin/dict.scm4:40 src/cgi-bin/conj.scm4:43 msgid "ΣΦΆΛΜΑ: σύνδεση με το λέξικο απέτυχε." msgstr "BŁĄD: nie można podłączyć się do słownika." -#: src/cgi-bin/dict.scm4:135 +#: src/cgi-bin/dict.scm4:95 msgid "και" msgstr "i" -#: src/cgi-bin/dict.scm4:139 +#: src/cgi-bin/dict.scm4:99 msgid "ή" msgstr "albo" -#: src/cgi-bin/dict.scm4:150 +#: src/cgi-bin/dict.scm4:110 msgid "Εισάγετε τη λέξη" msgstr "Podaj słowo" -#: src/cgi-bin/dict.scm4:166 +#: src/cgi-bin/dict.scm4:126 msgid "Συμπληρωματικοί όροι" msgstr "Dodatkowe warunki" -#: src/cgi-bin/dict.scm4:172 +#: src/cgi-bin/dict.scm4:132 msgid "Επιλέξτε το μέρος του λόγου" msgstr "Wybierz część mowy" -#: src/cgi-bin/dict.scm4:247 +#: src/cgi-bin/dict.scm4:207 msgid "Αναζήτηση" msgstr "Szukaj" -#: src/cgi-bin/dict.scm4:354 +#: src/cgi-bin/dict.scm4:314 src/cgi-bin/conj.scm4:289 #, lisp-format msgid "Συγγνώμη, η λέξη \"~A\" δεν βρέθηκε στο λέξικο." msgstr "Słowa \"~A\" nie znaleziono w słowniku." -#: src/cgi-bin/dict.scm4:510 +#: src/cgi-bin/dict.scm4:462 msgid "Αντώνυμο: " msgstr "Antonim: " -#: src/cgi-bin/dict.scm4:510 +#: src/cgi-bin/dict.scm4:462 msgid "Αντώνυμα: " msgstr "Antonimy: " -#: src/cgi-bin/dict.scm4:519 +#: src/cgi-bin/dict.scm4:470 msgid "Βλέπετε επίσης " msgstr "Patrz także " -#: src/cgi-bin/dict.scm4:585 +#: src/cgi-bin/dict.scm4:540 msgid "λέξη" msgid_plural "λέξεις" msgstr[0] "słowo" @@ -74,23 +74,53 @@ msgstr[2] "słów" msgid "ΣΦΆΛΜΑ: σύνδεση με την βάση δεδομένων απέτυχε." msgstr "BŁĄD: nie można podłączyć się do bazy danych." -#: src/cgi-bin/nea.scm4:78 src/cgi-bin/nea.scm4:308 +#: src/cgi-bin/nea.scm4:78 src/cgi-bin/nea.scm4:303 msgid "Κάμια καταχώρηση" msgstr "Brak wpisu" -#: src/cgi-bin/nea.scm4:201 +#: src/cgi-bin/nea.scm4:196 msgid "Κανένα νέα" msgstr "Żadnych nowości" -#: src/cgi-bin/nea.scm4:212 +#: src/cgi-bin/nea.scm4:207 #, lisp-format msgid "Εγγραφείς ~A - ~A" msgstr "Wpisy ~A - ~A" -#: src/cgi-bin/nea.scm4:257 +#: src/cgi-bin/nea.scm4:252 msgid "Προηγούμενες" msgstr "Poprzednie" -#: src/cgi-bin/nea.scm4:271 +#: src/cgi-bin/nea.scm4:266 msgid "Ερχόμενες" msgstr "Następne" + +#: src/cgi-bin/conj.scm4:59 +msgid "Εισάγετε το ρήμα" +msgstr "Podaj czasownik" + +#: src/cgi-bin/conj.scm4:74 +msgid "Κλίση" +msgstr "Koniugacja" + +#: src/cgi-bin/conj.scm4:252 +msgid "δεν βρέθηκε στο λέξικο" +msgstr "nie znaleziono w słowniku" + +#: src/cgi-bin/conj.scm4:266 +msgid "Μη έγκυρη είσοδος" +msgstr "Niepoprawne wejście" + +#: src/cgi-bin/conj.scm4:312 +msgid "" +"Στην λέξη εισαγωγής δεν υπάρχει τόνος. Μήπος θέλατε να κλίσετε ένα απ'αυτά " +"τα ρήματα:" +msgstr "" +"W tym słowie brak akcentów. Czy chodziło Ci o jeden z następujących\n" +"rzeczowników:" + +#: src/cgi-bin/conj.scm4:345 +msgid "" +"Αυτή η λέξη δεν είναι ρήμα στο πρώτο ενικό πρόσωπο της οριστικής του " +"ενεστώτα." +msgstr "Podane słowo nie jest rzeczownikiem w formie 1.os. liczby pojedynczej." diff --git a/po/ru.po b/po/ru.po index 75f9885..41a7896 100644 --- a/po/ru.po +++ b/po/ru.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Ellinika 1.0\n" "Report-Msgid-Bugs-To: gray@gnu.org\n" -"POT-Creation-Date: 2011-06-04 20:44+0300\n" +"POT-Creation-Date: 2011-06-18 17:11+0300\n" "PO-Revision-Date: 2006-03-17 21:42+0200\n" "Last-Translator: Sergey Poznyakoff , 2004.\n" "Language-Team: Russian \n" @@ -19,52 +19,52 @@ msgstr "" "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "\n" -#: src/cgi-bin/dict.scm4:38 +#: src/cgi-bin/dict.scm4:40 src/cgi-bin/conj.scm4:43 msgid "ΣΦΆΛΜΑ: σύνδεση με το λέξικο απέτυχε." msgstr "ОШИБКА: не удалось подключится к словарю." -#: src/cgi-bin/dict.scm4:135 +#: src/cgi-bin/dict.scm4:95 msgid "και" msgstr "И" -#: src/cgi-bin/dict.scm4:139 +#: src/cgi-bin/dict.scm4:99 msgid "ή" msgstr "ИЛИ" -#: src/cgi-bin/dict.scm4:150 +#: src/cgi-bin/dict.scm4:110 msgid "Εισάγετε τη λέξη" msgstr "Введите слово" -#: src/cgi-bin/dict.scm4:166 +#: src/cgi-bin/dict.scm4:126 msgid "Συμπληρωματικοί όροι" msgstr "Дополнительные условия" -#: src/cgi-bin/dict.scm4:172 +#: src/cgi-bin/dict.scm4:132 msgid "Επιλέξτε το μέρος του λόγου" msgstr "Выберите часть речи" -#: src/cgi-bin/dict.scm4:247 +#: src/cgi-bin/dict.scm4:207 msgid "Αναζήτηση" msgstr "Поиск" -#: src/cgi-bin/dict.scm4:354 +#: src/cgi-bin/dict.scm4:314 src/cgi-bin/conj.scm4:289 #, lisp-format msgid "Συγγνώμη, η λέξη \"~A\" δεν βρέθηκε στο λέξικο." msgstr "Извините, слово \"~A\" не найдено в словаре." -#: src/cgi-bin/dict.scm4:510 +#: src/cgi-bin/dict.scm4:462 msgid "Αντώνυμο: " msgstr "Антоним: " -#: src/cgi-bin/dict.scm4:510 +#: src/cgi-bin/dict.scm4:462 msgid "Αντώνυμα: " msgstr "Антонимы: " -#: src/cgi-bin/dict.scm4:519 +#: src/cgi-bin/dict.scm4:470 msgid "Βλέπετε επίσης " msgstr "См. также " -#: src/cgi-bin/dict.scm4:585 +#: src/cgi-bin/dict.scm4:540 msgid "λέξη" msgid_plural "λέξεις" msgstr[0] "слово" @@ -75,23 +75,53 @@ msgstr[2] "слов" msgid "ΣΦΆΛΜΑ: σύνδεση με την βάση δεδομένων απέτυχε." msgstr "ОШИБКА: не удалось подключится к базе данных." -#: src/cgi-bin/nea.scm4:78 src/cgi-bin/nea.scm4:308 +#: src/cgi-bin/nea.scm4:78 src/cgi-bin/nea.scm4:303 msgid "Κάμια καταχώρηση" msgstr "Нет статьи" -#: src/cgi-bin/nea.scm4:201 +#: src/cgi-bin/nea.scm4:196 msgid "Κανένα νέα" msgstr "Никаких новостей" -#: src/cgi-bin/nea.scm4:212 +#: src/cgi-bin/nea.scm4:207 #, lisp-format msgid "Εγγραφείς ~A - ~A" msgstr "Записи ~A - ~A" -#: src/cgi-bin/nea.scm4:257 +#: src/cgi-bin/nea.scm4:252 msgid "Προηγούμενες" msgstr "Предыдущие" -#: src/cgi-bin/nea.scm4:271 +#: src/cgi-bin/nea.scm4:266 msgid "Ερχόμενες" msgstr "Следующие" + +#: src/cgi-bin/conj.scm4:59 +#, fuzzy +msgid "Εισάγετε το ρήμα" +msgstr "Введите слово" + +#: src/cgi-bin/conj.scm4:74 +msgid "Κλίση" +msgstr "" + +#: src/cgi-bin/conj.scm4:252 +#, fuzzy +msgid "δεν βρέθηκε στο λέξικο" +msgstr "Извините, слово \"~A\" не найдено в словаре." + +#: src/cgi-bin/conj.scm4:266 +msgid "Μη έγκυρη είσοδος" +msgstr "" + +#: src/cgi-bin/conj.scm4:312 +msgid "" +"Στην λέξη εισαγωγής δεν υπάρχει τόνος. Μήπος θέλατε να κλίσετε ένα απ'αυτά " +"τα ρήματα:" +msgstr "" + +#: src/cgi-bin/conj.scm4:345 +msgid "" +"Αυτή η λέξη δεν είναι ρήμα στο πρώτο ενικό πρόσωπο της οριστικής του " +"ενεστώτα." +msgstr "" diff --git a/po/uk.po b/po/uk.po index a4fe80f..100ce42 100644 --- a/po/uk.po +++ b/po/uk.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Ellinika 1.0\n" "Report-Msgid-Bugs-To: gray@gnu.org\n" -"POT-Creation-Date: 2011-06-04 20:44+0300\n" +"POT-Creation-Date: 2011-06-18 17:11+0300\n" "PO-Revision-Date: 2006-03-24 19:25+0200\n" "Last-Translator: Sergey Poznyakoff \n" "Language-Team: Ukrainian \n" @@ -18,52 +18,52 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: src/cgi-bin/dict.scm4:38 +#: src/cgi-bin/dict.scm4:40 src/cgi-bin/conj.scm4:43 msgid "ΣΦΆΛΜΑ: σύνδεση με το λέξικο απέτυχε." msgstr "ПОМИЛКА: Не вдалося встановити з'єднання зі словником." -#: src/cgi-bin/dict.scm4:135 +#: src/cgi-bin/dict.scm4:95 msgid "και" msgstr "і" -#: src/cgi-bin/dict.scm4:139 +#: src/cgi-bin/dict.scm4:99 msgid "ή" msgstr "або" -#: src/cgi-bin/dict.scm4:150 +#: src/cgi-bin/dict.scm4:110 msgid "Εισάγετε τη λέξη" msgstr "Введіть слово" -#: src/cgi-bin/dict.scm4:166 +#: src/cgi-bin/dict.scm4:126 msgid "Συμπληρωματικοί όροι" msgstr "Додаткові умови" -#: src/cgi-bin/dict.scm4:172 +#: src/cgi-bin/dict.scm4:132 msgid "Επιλέξτε το μέρος του λόγου" msgstr "Виберіть частину мови" -#: src/cgi-bin/dict.scm4:247 +#: src/cgi-bin/dict.scm4:207 msgid "Αναζήτηση" msgstr "Пошук" -#: src/cgi-bin/dict.scm4:354 +#: src/cgi-bin/dict.scm4:314 src/cgi-bin/conj.scm4:289 #, lisp-format msgid "Συγγνώμη, η λέξη \"~A\" δεν βρέθηκε στο λέξικο." msgstr "Пробачте, слова \"~A\" у словнику немає." -#: src/cgi-bin/dict.scm4:510 +#: src/cgi-bin/dict.scm4:462 msgid "Αντώνυμο: " msgstr "Антоним:" -#: src/cgi-bin/dict.scm4:510 +#: src/cgi-bin/dict.scm4:462 msgid "Αντώνυμα: " msgstr "Антоними:" -#: src/cgi-bin/dict.scm4:519 +#: src/cgi-bin/dict.scm4:470 msgid "Βλέπετε επίσης " msgstr "Див. також " -#: src/cgi-bin/dict.scm4:585 +#: src/cgi-bin/dict.scm4:540 msgid "λέξη" msgid_plural "λέξεις" msgstr[0] "слово" @@ -74,23 +74,53 @@ msgstr[2] "слів" msgid "ΣΦΆΛΜΑ: σύνδεση με την βάση δεδομένων απέτυχε." msgstr "ПОМИЛКА: Не вдалося встановити з'єднання з базою даних." -#: src/cgi-bin/nea.scm4:78 src/cgi-bin/nea.scm4:308 +#: src/cgi-bin/nea.scm4:78 src/cgi-bin/nea.scm4:303 msgid "Κάμια καταχώρηση" msgstr "Немає записів" -#: src/cgi-bin/nea.scm4:201 +#: src/cgi-bin/nea.scm4:196 msgid "Κανένα νέα" msgstr "Жодних новин" -#: src/cgi-bin/nea.scm4:212 +#: src/cgi-bin/nea.scm4:207 #, lisp-format msgid "Εγγραφείς ~A - ~A" msgstr "Записи ~A - ~A" -#: src/cgi-bin/nea.scm4:257 +#: src/cgi-bin/nea.scm4:252 msgid "Προηγούμενες" msgstr "Попередні" -#: src/cgi-bin/nea.scm4:271 +#: src/cgi-bin/nea.scm4:266 msgid "Ερχόμενες" msgstr "Наступні" + +#: src/cgi-bin/conj.scm4:59 +#, fuzzy +msgid "Εισάγετε το ρήμα" +msgstr "Введіть слово" + +#: src/cgi-bin/conj.scm4:74 +msgid "Κλίση" +msgstr "" + +#: src/cgi-bin/conj.scm4:252 +#, fuzzy +msgid "δεν βρέθηκε στο λέξικο" +msgstr "Пробачте, слова \"~A\" у словнику немає." + +#: src/cgi-bin/conj.scm4:266 +msgid "Μη έγκυρη είσοδος" +msgstr "" + +#: src/cgi-bin/conj.scm4:312 +msgid "" +"Στην λέξη εισαγωγής δεν υπάρχει τόνος. Μήπος θέλατε να κλίσετε ένα απ'αυτά " +"τα ρήματα:" +msgstr "" + +#: src/cgi-bin/conj.scm4:345 +msgid "" +"Αυτή η λέξη δεν είναι ρήμα στο πρώτο ενικό πρόσωπο της οριστικής του " +"ενεστώτα." +msgstr "" diff --git a/src/cgi-bin/conj.scm4 b/src/cgi-bin/conj.scm4 index 42b8405..7f7d347 100644 --- a/src/cgi-bin/conj.scm4 +++ b/src/cgi-bin/conj.scm4 @@ -23,6 +23,7 @@ (ice-9 rdelim) (ice-9 optargs) (xmltools dict) + (ellinika config) (ellinika elmorph) (ellinika tenses) (ellinika conjugator) @@ -64,7 +65,7 @@ ifelse(IFACE,[CGI],(cgi:init)) (if value (begin (display " value=\"") - (display (cgi-protect-quotes (ellinika:translate-input value))) + (display (cgi-protect-quotes value)) (display "\"")))) (display " /> @@ -232,6 +233,24 @@ ifelse(IFACE,[CGI],(cgi:init)) (define (show-conjugation verb) (catch #t (lambda () + (let ((descr (ellinika:sql-query + "SELECT articles.meaning\ + FROM dict,articles\ + WHERE dict.word=~Q AND dict.ident=articles.ident\ + AND articles.lang=~Q AND (dict.pos & 1048576) = 1048576\ + ORDER BY articles.subindex\ + LIMIT 1" + verb + (language-code target-language)))) + (cond + ((and descr (not (null? descr))) + (format #t "

~A - ~A

" + verb (caar descr))) + (else + (format #t "

~A - (~A)

" + verb + (_ "δεν βρέθηκε στο λέξικο"))))) + (for-each (lambda (voice) (show-conjugation:voice voice)) @@ -244,7 +263,7 @@ ifelse(IFACE,[CGI],(cgi:init)) (subkey fmtstr fmtargs) (case subkey ((conjugator-error-input) - (error-message "Invalid input")) + (error-message (_ "Μη έγκυρη είσοδος"))) (else (error-message "CONJUGATOR ERROR: ~A ~A" subkey (apply format #f fmtstr fmtargs)))))) @@ -265,10 +284,69 @@ ifelse(IFACE,[CGI],(cgi:init)) (show-conjugation:voice voice)) (conjugate-all verb))) +(define (search-failure key) + (display "

") + (format #t (_"Συγγνώμη, η λέξη \"~A\" δεν βρέθηκε στο λέξικο.") key) + (display "

")) + +(define (display-cross-reference word) + (display "") + (display word) + (display "")) + +(define (show-best-matches key) + (let ((result (ellinika:sql-query + "SELECT DISTINCT word\ + FROM dict\ + WHERE sound LIKE ~Q\ + AND (pos & 1048576) = 1048576 ORDER BY 1" + (ellinika:sounds-like key)))) + (cond + ((null? result) + (search-failure key)) + (else + (format #t + "

~A

" + (_ "Στην λέξη εισαγωγής δεν υπάρχει τόνος. Μήπος θέλατε να κλίσετε ένα απ'αυτά τα ρήματα:")) + (display "") + (let* ((result-length (length result)) + (lim (1+ (quotient result-length match-list-columns)))) + (do ((i 0 (1+ i))) + ((= i lim) #f) + (display "") + (do ((j i (+ j lim))) + ((>= j result-length) #f) + (display "")) + (display ""))) + (display "
") + (display-cross-reference (car (list-ref result j))) + (display "
"))))) + + (define (do-conj) (let ((keyval (cgi:value "key"))) (if (and keyval (not (string-null? keyval))) - (show-conjugation (ellinika:translate-input keyval))))) + (let ((input (ellinika:translate-input + (let ((keyval keyval)) + (cond + ((string-suffix? "o'" keyval) + (string-set! keyval + (- (string-length keyval) 2) #\v)) + ((string-suffix? "o" keyval) + (string-set! keyval + (- (string-length keyval) 1) #\v))) + keyval)))) + (cond + ((not (elstr-suffix? input "ω" "ώ" "ομαι" "αμαι")) + (format #t + "

~A

" + (_ "Αυτή η λέξη δεν είναι ρήμα στο πρώτο ενικό πρόσωπο της οριστικής του ενεστώτα."))) + ((= (elstr-accented-syllable input) 0) + (show-best-matches input)) + (else + (show-conjugation input))))))) (define (print-footnote id sign text) (format #t "

~A  ~A

~%" diff --git a/src/ellinika/conjugator.scm b/src/ellinika/conjugator.scm index 069d641..8b689a4 100644 --- a/src/ellinika/conjugator.scm +++ b/src/ellinika/conjugator.scm @@ -538,7 +538,6 @@ AND i.tense=\"~A\" AND i.ident=f.ident" (else (list-head conj 6)))) - (define-public (conjugation:class conj) (cond ((not conj) diff --git a/src/ellinika/tests/conj/uelv.scm b/src/ellinika/tests/conj/uelv.scm index 9c031eb..1ac1f0c 100644 --- a/src/ellinika/tests/conj/uelv.scm +++ b/src/ellinika/tests/conj/uelv.scm @@ -1,3 +1,4 @@ (use-modules ((ellinika test-conjugation))) (test-conjugation:verb "θέλω") +;(test-conjugation:tense "θέλω" "act" "ind" "Παρατατικός") \ No newline at end of file diff --git a/style.css b/style.css index b5b4972..98bb205 100644 --- a/style.css +++ b/style.css @@ -481,3 +481,7 @@ img.ellinika-img { margin-left: auto; margin-right: auto; } + +h2.verb { + text-decoration: underline; +} -- cgit v1.2.1