Обсуждение шаблона:Lang

Материал из Викитеки — свободной библиотеки
Перейти к навигации Перейти к поиску

Стиль для Шаблон:Lang[править]

Перенесено со страницы Обсуждение:Реальный словарь классических древностей

@Lozman: возможно ли добавить в Шаблон:Lang параметр style или size/размер, как у ряда др. шаблонов? В РСКД размер греч.шрифтов в скане меньше обычного шрифта. Сейчас уменьшаю с помощью шаблона-обёртки {{РСКД-греч.}}, но кажется это монструозное название и лишняя сущность. --Vladis13 (обсуждение) 02:17, 5 ноября 2017 (UTC)

Это можно сделать средствами CSS (CSS-класс для древнегреческого называется lang-grc), тогда в статьях вообще ничего менять не придётся. -- Sergey kudryavtsev (обсуждение) 07:36, 5 ноября 2017 (UTC)
А как это сделать? Пробовал, но wiki-движок не принимает тэг «style» для переназначения стиля: <style>.lang-grc {font-size: 200%;}</style>. — Вот, он открытым текстом показывается, в код не идёт. --Vladis13 (обсуждение) 22:16, 6 ноября 2017 (UTC)
Я имел ввиду: внести изменения в MediaWiki:Common.css (т.е. для всех статей разом). А тег «style» в вики-разметке вроде бы из-за безопасности запрещают использовать. -- Sergey kudryavtsev (обсуждение) 15:39, 21 ноября 2017 (UTC)
@Vladis13: Перетащите из en.wikisource шаблон Greek, он как раз и предназначен для таких шрифтов (ср. en:1911 Encyclopædia Britannica/Autopsy, en:1911 Encyclopædia Britannica/Autolycus of Pitane, en:1911 Encyclopædia Britannica/Automorphism и т.д.). А шаблоны {{РСКД-греч.}}, {{El1}}, {{El2}} можно снести/заменить шаблоном Greek — лучше один универсальный шаблон вместо кучи. Глобальные вещи вроде Lang или lang-grc трогать, на мой взгляд, нежелательно. PS. РСКД/Анталкидов мир — это что? Ratte (обсуждение) 11:43, 5 ноября 2017 (UTC)
Тут ряд непоняток. en:Template:Greek — для монотонической орфографии, т. е. без диакритики (при этом в его справке почему-то все примеры с диакритикой, отличается только стилем шрифта). Для РСКД, и вообще древнегреческого, нужна диакритика, для неё в англовике шаблон en:Template:Polytonic, который подставляет шрифты из списка en:Template:Polytonic fonts (в руВТ аналог {{polytonic fonts}}). Никакой разницы между этими шаблонами не вижу, как и смысла в них.
Вот эти шрифты. Зачеркнул те которых нет у меня на Windows 10 в стандартной поставке (точнее у меня названия unicode-шрифтов дополнены словом «обычный», надеюсь они и есть):

'SBL BibLit', 'SBL Greek', Athena, 'Foulis Greek', Cardo, 'Gentium Plus', Gentium /*мелкий*/, 'Palatino Linotype' /*среднемелкий*/, 'Arial Unicode MS', 'Lucida Sans Unicode', 'Lucida Grande', Code2000, serif /*мелкий, добавляется шаблоном*/

В шаблоне {{El1}} проблема, что первые из имеющихся в списке этих политонических шрифтов — мелкие, поэтому автор шаблона искусствено увеличил размер шрифта в шаблоне. Больше этот шаблон ничего не делает. Если у читателя нет этих шрифтов, то выберутся следующие по списку, которые большие, и тогда это увеличение шрифта поломает дизайн. — Костыльный шаблон, работающий только в конфигурации компьютера одного участника.
Стандартный шаблон {{lang}} делает следующий порядок шрифтов для «grc», их размер примерно равномелкий, т.ч. в этом плане шаблон для греч.языка универсальный, хотя только для Windows:

Cambria, 'Palatino Linotype', Athena, Gentium, Code2000, serif

В ВП: w:Шаблон:Lang не меняет шрифты. А Шаблон:Lang-grc/w:Шаблон:Lang-grc2 ставит примерно эти же мелкие шрифты, увеличивая размер до 105 %, т. е. до размеров обычного шрифта.
Ещё проблема, что на Linux, и всех мобильных устройствах (с Android — веткой Linux и проприентных от Apple) обычно нет стандартных шрифтов Windows, а если есть аналоги то они отличны. Например, на Android от Sumsung (нормальная хоть и устаревшая модель) у меня только шрифты Droid и Roboto. Доустановка шрифтов на большинстве гаджетов невозможна (надо рутировать, сиречь взламывать, устройство, что огромная дыра в безопасности, и мало кто умеет это, это риск убить само устройство, и далеко не все взламываются). На Linux тоже пришлось «танцевать с бубном» чтобы добавить шрифты из Windows, но все ровно, русские буквы-ДО (ять и т. д.) и греческие с диакритикой показываются у меня в ВТ размером в 2 раза больше обычных.
На Андроид греч. буквы не показываются (upd: частично исправлено в Android 4.3, полностью в 5), скриншоты: англовики (оригинал), статья РСКД, словник РСКД. Про стандартный шрифт Roboto на Android так и написано, что греч. поддерживается частично. По теме: «Как заставить Android отображать древнегреческие символы», советуются программы, но они кстати все кривоватые, и могут требовать тот самый рут. (upd: В интернетах пишут, что единственно поддержка установки доп. шрифтов есть у Samsung, особенно в моделях Galaxy, а также у LG. Как раз имею Galaxy, к тому же рутованый; проверил все 3 из советующихся везде приложений: HiFont, FontFix, iFont - все кривые, шрифты не устанавливаются. Т.е. зависит от модели и версии прошивки.)
Суммируя. В англовике корявый шаблон с кроссплатформенными конфликтами, путаной документацией, и непонятным отличием шаблонов Greek от Polytonic. Шаблоны рувики {{El1}}/{{El2}} скопированы из англовики без проверки, имеют теже проблемы; и второй только делает шрифт жирным, что можно было бы решить добавив параметр для смены стиля в шаблон lang. В статье «Как заставить Android отображать древнегреческие символы» рекомендуются порядок шрифтов «Free Sans, Arial Unicode MS, UbuntuMono» — вероятно можно добавить их в список, не проверял. --Vladis13 (обсуждение) 02:29, 7 ноября 2017 (UTC)
А наш {{polytonic}} чем не устраивает? Он разве полностью аналогичен Greek? Можно было бы подпилить для ваших нужд. Плюс тенденция других развитых разделов — максимально пользоваться шаблонами и минимально — HTML/CSS тегами, которые еще не у всех фурычат как надо. Ratte (обсуждение) 22:26, 7 ноября 2017 (UTC)
Действительно, шрифты в шаблонах чуть разные, спасибо что заметили, сделаю табличку сравнения. Эти шаблоны и есть обёртки html/css тэгов, проблем кроссбраузерности со шрифтами нет, насколько я знаю. --Vladis13 (обсуждение) 00:26, 9 ноября 2017 (UTC)
Вопросов собственно два: 1) выбор шрифта для для древнегреческого (polytonic) текста и 2) масштабирование этого текста. Выбор шрифта всегда проблема, т.к. сильно зависит от системы и платформы (даже с Андроидом ситуация в новых моделях получше: те же страницы у меня на Samsung J7: [1], [2], [3]). Какие шрифты добавлять в font-family — дело десятое, в конце концов в большинстве случаев выберется serif, которого, как правило, и достаточно. Но суть вопроса — не в выборе шрифта, а в коррекции его размера в соответствии с конкретными потребностями; это и следует обсуждать. Соответственно, дальше остаются вопросы: 1) нужно ли греческий масштабировать всегда и 2) нужно ли его масштабировать конкретно в РСКД? Первый вопрос упирается в тот факт, что разные шрифты на экране выглядят как более, так и менее крупно (что показано на примере выше); применять к ним одинаковый масштаб коррекции без учета реально используемого шрифта нецелесообразно. Конкретно по РСКД: мне пока непонятно, какая сермяжная правда стоит за использованием там именно такого мелкого шрифта. Что хотели этим донести до читателя? Если это несет смысловую нагрузку, то масштабирование шрифта оправдано и нам следует его воспроизводить у нас. Но может оказаться (и мне кажется вполне вероятным), что был просто выбран имевшийся в типографии шрифт, который оказался мельче кириллицы; в этом случае такая дотошность представляется излишней. Итого мое мнение: глобальные спец. шаблоны El1, El2, Greek, Polytonic — не нужны, следует использовать единый шаблон Lang с настройкой через MediaWiki:Common.css, без масштабирования. Локальные шаблоны с масштабированием типа РСКД-греч. возможны, но только если их использование концептуально оправдано, чего я в данном случае не вижу. — Lozman (talk) 15:31, 8 ноября 2017 (UTC)
Да, на Android проблема была частично исправлена в Android 4.3, полностью в 5.. Хотя, в этих же шрифтах (Roboto, Droid, Noto) на Linux диактрика по прежнему кривая.
«Какие шрифты добавлять в font-family — дело десятое, в конце концов в большинстве случаев выберется serif, которого, как правило, и достаточно.» — Для исправленного Android да. Но не для десктопов. "Serif" переводится как «засечки», "sans-serif" - "без засечек, рубленный шрифт". Т. е. если в операционке нет шрифтов списка font-family, то используется шрифт по-умолчанию с засечками из настроек браузера. Так, в Chromium (и его ветках вроде Chrome, Opera, Yandex-браузер) — это «Times New Roman», который не поддерживает нормальные яти и греч. политонические шрифты. Но при этом в операционке может быть корректный шрифт DejaVu, но не будет использоваться, ибо не указан.
"применять к ним одинаковый масштаб коррекции без учета реально используемого шрифта нецелесообразно. [...] следует использовать единый шаблон Lang с настройкой через MediaWiki:Common.css, без масштабирования." - примерно так и сделано в Википедии. Там шаблон Lang не имеет перенастройки шрифта, только ставит атрибут lang="grc" (нигде в Вики не использующийся), а шаблон lang-grc ставит равномелкие шрифты (palatino linotype, new athena unicode, athena, gentium, code2000, serif), размер которых чуть увеличивается через font-size. Хотя все ровно мельче обычных европейских шрифтов (см. например первую строку в w:Греция). И в ВП для политонических древнегреческих и монотонических современных греч. - одинаковые шрифты (w:Шаблон:Lang-grc2 и w:Шаблон:Lang-el2). Настройка через class и MediaWiki:Common.css в Википедии не используется. Текущий MediaWiki:Common.css Викитеки:
/* Греческий */
.lang-grc,
.lang-el {
	font-family: Cambria, Palatino Linotype, Athena, Gentium, Code2000, serif;
	font-size: 110%;
}
.greek {
	font-family: Cambria, Palatino Linotype, Athena, Gentium, Code2000, serif;
}
Кстати, наборы шрифтов идентичные, но первый выравнивает до среднего размера, а второй почему-то нет.
"нужно ли его масштабировать конкретно в РСКД?" - думаю да, должен выделятся, иначе визуально сливается с русским текстом. Выделяют размером почти везде: в Википедии, в сканах РСКД, в сканах "Сочинения Платона", Библия с подстрочным переводом: [4], [5]. На ancientrome.ru размером и курсивом [6]. --Vladis13 (обсуждение) 02:40, 9 ноября 2017 (UTC)
«следует использовать единый шаблон Lang с настройкой через MediaWiki:Common.css, без масштабирования. Локальные шаблоны с масштабированием типа РСКД-греч. возможны.» — А смысл делать «lang» без настройки стиля, и к нему пачку обёрток для каждого проекта с настроками размера и стиля курсив/жирный? Тогда уж неизменяемый Lang, и один общий шаблон-обёртку с настройкой этих параметров. Хотя было бы проще добавить эти параметры в сам Lang. Т. е. «size/размер/small/мелкий» и «жирный/курсив/bold/italic», вроде {{lang|grc|слово|size=80%|стиль=bi}} для bold-italic, или {{lang|grc|слово|мелкий=да}}. --Vladis13 (обсуждение) 07:33, 9 ноября 2017 (UTC)
Шаблон Lang маркирует часть текста определенным языковым маркером, навешивание на него несвойственных ему функций форматирования я считаю неправильным подходом. Мне вот что придумалось: можно ведь добавить какой-то специальный класс в <div class='text'>, которым обернут текст статей РСКД (в модуле), напр. <div class='text greek-small'>, и добавить правило CSS .greek-small .lang-grc { font-size: smaller; }; после чего достаточно будет просто помечать греческий текст в статьях РСКД шаблоном Lang, и он будет сразу отображаться как надо — а другие страницы это не затронет. По-моему, это Profit )) — Lozman (talk) 16:47, 17 ноября 2017 (UTC)
Извините за все мои многобукв. Согласен, что лишние параметры не нужны. И лучше определить шрифты для класса .grc в MediaWiki:Common.css, тем более там это уже есть, т.е. имеем замещение класса, потенциально глючным определением. Большое спасибо, этот способ попробую. --Vladis13 (обсуждение) 17:07, 17 ноября 2017 (UTC)
В тесте работает отлично. --Vladis13 (обсуждение) 00:55, 20 ноября 2017 (UTC)

Таблица поддержки шрифтами букв ДО и греческих политонических[править]

Колонки сортирующиеся.

font курсивный ять корректный греч.политоника С засечками (serif) Windows 10 WindowsXP LinuxUbuntu Android
DejaVu Serif (размер крупнее) + (v2.35)[1] + + + + + -
Cambria (в Linux скриншот, скриншот в Firefox) + +(W) -(L) + + -  - [2] -
Times New Roman (в Linux скриншот) +(W) -(L) +(W) -(L) + + +  - [2] -
Times (указан в class «text» ВТ, вероятно шрифт Mac OS) ? ? - - - -
palatino linotype + + + + - -
Roboto, Droid (размер крупнее), Noto[3] * [4] * [4] - - * *
Ubuntu + + - - - + -
FreeSerif (без пробела в названии) + + + - - + -
FreeSans - + - - - + -
Liberation Serif (свобод.аналог MS-шрифтов Cambria,Times New Roman, Arial) - - + - - + -
athena (коверкает латинский шрифт!) - - - - - -
athena unicode (new athena unicode, мелкий, в Chrome заметно уменьшает латынь) - + - - - -
code2000 ? ? - - - -
gentium ? ? - - - -
Verdana - + - + + - [2] -
Courier, Courier New - - + + - [2] -
Georgia - - + + - [2] -
Arial + + - + +  - [2] -
Tahoma - + - +  - [2] -
Lucida Console - - + - -
MS Serif - - + - -
Calibri - - -  - [2] -
  1. DejaVu v2.35 есть в Ubuntu 16.04, в 14 — v.2.34 без поддержки этих букв.
  2. а б в г д е ё ж нет в поставке Linux, старая версия без норм. поддержки курсивных ять и греч.политоники устанавливается вручную (свободная лицензия MS)
  3. Noto появился в Android старше 4.3 или в 5. В Linux Ubuntu 14 есть Droid, нет Noto и Roboto.
  4. а б на Android проблема была частично исправлена в Android 4.3, полностью в 5. Хотя, в этих же шрифтах (Roboto, Droid, Noto) на Linux диактрика по прежнему кривая.
  • Итого видно, что корректно поддерживают греческий и дополнительно буквы ДО:
FreeSerif, DejaVu Serif (шрифт v2.35 в Ubuntu 16.04), Palatino Linotype. Без засечек (sans-serif): Arial, Ubuntu. - Их (лучше всего Free, DejaVu) стоит установить "по умолчанию" в браузере в Linux.
Если не предполагается обёртывать шрифтом буквы ДО, то доп. шрифты:
без засечек (sans-serif): Verdana, Tahoma, FreeSans. с засечками нестандартный: Athena unicode.
Лучше убрать никому неизвестные и вероятно плохо отображающие ДО и другие символы:
athena, new athena unicode, gentium, 'SBL BibLit', 'SBL Greek', 'Foulis Greek', Cardo, 'Gentium Plus', 'Lucida Grande', Code2000. --Vladis13 (обсуждение) 07:14, 9 ноября 2017 (UTC)
@Vladis13: Ещё хорошо бы оценить качество кернинга "специфических" букв и диакритических знаков. Например, у Arial кернинг для ударения над ятем совсем не-айс: ѣ́хать. -- Sergey kudryavtsev (обсуждение) 15:52, 21 ноября 2017 (UTC)
Скриншот сравнение шрифтов в Linux Ubuntu 16, с ударениями над ять. --Vladis13 (обсуждение) 18:16, 21 ноября 2017 (UTC)
В Windows к сожалению стандартный Cambria тоже не корректно показывает греч. диакритику: ὍμηροςГомер», надеюсь видно, пишу из Linux). Диакритика должная быть перед буквой, показывается за и под ней, и эта проблема почти в каждой фразе на древнегреческом, ибо эта диакритика общеупотребляемая. --Vladis13 (обсуждение) 18:16, 21 ноября 2017 (UTC)

Корректные шрифты для Linux[править]

@Lozman, Sergey kudryavtsev: Предлагаю исправить массовую проблему с отображением букв в Linux, просто добавив его шрифт в список. (Обновив {{lang}} как обсуждали выше.) Скриншоты этого безобразия: Liberation, DejaVu. Текущие шрифты в MediaWiki:Common.css:

div.text {font-family: Cambria, Times New Roman, Times, serif;}
.oldspell, .oldspell-indent {font-family: Cambria, Palatino Linotype, serif;}
.lang-grc, .lang-el {font-family: Cambria, Palatino Linotype, Athena, Gentium, Code2000, serif;}

По-сути, список абсурдный. — Вначале перечислены стандартные шрифты Windows, они есть у всех, поэтому последующие никогда не будут использованы (включая никому неизвестные нестандартные Athena, Gentium, Code2000). Т.е. у всех пользователей Windows всегда будет использоваться только Cambria. Но при этом в списке нет шрифтов Linux. Зачем обновлять классы "oldspell" и "text"? — В ВТ почти нигде не используется шаблон:lang для специального выделения слов на иностранных языках, пишется всё подряд, например. Поэтому шрифт должен корректно отображать все буквы и диакритику: русские ударения, греч.политонику и латинь из расширенного диапазона, и русские буквы ДО.

Предлагаю FreeSerif (скриншот), практически идентичный тому как ВТ отображается в Windows:

div.text {font-family: Cambria, Times New Roman, Times, FreeSerif, serif;}
.oldspell, .oldspell-indent {font-family: Cambria, Palatino Linotype, FreeSerif, serif;}
.lang-grc, .lang-el {font-family: Cambria, Palatino Linotype, FreeSerif, Athena Unicode, Gentium, Code2000, serif;}

--Vladis13 (обсуждение) 17:29, 25 ноября 2017 (UTC)

Yes check.svg Сделано. — Lozman (talk) 22:09, 27 ноября 2017 (UTC)

class "oldspell"[править]

Но оптимизацию «языковых» классов следует продолжить. Вероятно, стоит выкинуть маргинальные шрифты, перечисленные выше. Также неплохо бы расформировать классы oldspell и oldspell-indent (или объединить с аналогичными классами без oldspell, типа text или indent). К lang-grc и lang-el присоединить класс greek, за которым никакой особой сермяжной правды не стои́т (по-хорошему, его бы тоже сто́ило вывести из употребления). — Lozman (talk) 22:09, 27 ноября 2017 (UTC)

Спасибо. Согласен, о маргинальных шрифтах, смысла и возможности применения их нет.
Класс «greek» нигде не применяется кроме шаблона {{Lang-grc2}}, который тоже нигде не применяется. И не понятно, почему слова через шаблон «lang-grc» пишутся с размером 110 %, а через «lang-grc2» — обычным (мелоковато-греческим) кеглем. Размер должен быть тот же, разница шаблонов только в приставке «др.-греч.» перед словом.
Да, «.oldspell-indent p» — дубль «.indent p» + «.oldspell».
.indent p {
	text-indent: 1.6em;
	margin-bottom: 0;
	margin-top: 0;
	text-align: justify;
}
.oldspell,
.oldspell-indent {
	font-family: Cambria, Palatino Linotype, FreeSerif, serif;
}
.oldspell-indent p {
	text-indent: 1.6em;
	margin-bottom: 0;
	margin-top: 0;
	text-align: justify;
}
.text p {
	text-indent: 1.6em;
	line-height: normal;
}
Дублируется ещё ниже:
/* ПИ Страница */
.ns-104 .mw-parser-output > p,
.ns-104 .oldspell > p {
	text-indent: 1.6em; 
	margin-bottom: 0; 
	margin-top: 0; 
	text-align: justify;
}
// и указан в двух параграфах далее, там не понятно.
«.oldspell» добавляет только шрифты. У .text и .oldspell в списке шрифтов на первом месте Cambria, все ровно он будет показываться всегда. На втором месте у .text — шрифт Times New Roman, который тоже корректен для ДО. Поэтому в .text и .oldspell разницы в общем нет. Для Linux шрифт добавили. Для Mac OS (включая IPad/IPhone) — незнаю, это вроде их шрифт Times, он указан в .text, и вроде тоже старый и проблем иметь не должен.
--Vladis13 (обсуждение) 22:38, 28 ноября 2017 (UTC)