Работа с языком документа
Две функции и два оператора позволяют задавать или изменять язык редактируемого документа. Отмечу, что важность применения программ проверки орфографии и грамматики возрастает, кроме того документы часто бывают двух- либо многоязычными.
Функция CountLanguages() возвращает число поддерживаемых в данной версии WinWord языков. Это легко увидеть вставив в макрокоманду строку:
Print CountLanguages()
Оператор Language имеет три различных формы использования. Первая форма:
Language язык$
позволяет указать конкретный язык для выделенного фрагмента текста. Этим будут пользоваться программы проверки орфографии и грамматики. Например, оператор
Language "Русский"
пометит выделенный участок документа, как текст на русском языке. Это на самом деле эквивалентно выбору в меню Сервис
пункта Язык и Русский в списке поддерживаемых языков. Просто вручную делать это более одного раза утомительно. Хотя в локализованной версии WinWord названия языков в диалоговом окне даны по-русски, в операторе их следует задавать в оригинальном написании.
Каждый язык в этом списке имеет свой порядковый номер, поэтому вторая форма этого оператора (Language индекс) использует в качестве операнда не название языка, а его номер в списке и функцию, для получения названия языка по его номеру. Так приведённому выше оператору соответствует:
Language Language$(23).
Третья форма – разновидность второй – отменяет лингвистическую проверку текста. Она эквивалентна выбору самой первой строки, (без проверки), в списке языков.
Language
"0"
И наконец, рассмотрим функцию Language$(индекс). Если индекс равен 0 или опущен, то Language$() вернёт признак языка первого символа выделенного участка или символа слева от точки вставки (если нет выделения текста). Если индекс не равен нулю (он может меняться от 1 до CountLanguages), то возвращается название языка из списка поддерживаемых национальных языков. Следующая макрокоманда выведет в активный документ этот список. Его элементы (номер и название) можно будет использовать в операторе Language.
Sub MAIN
For i = 1 To CountLanguages()
Insert Str$(i) + Chr$(9) + Language$(i)
InsertPara
Next
End Sub
1 0
2 Dansk
3 Deutsch
4 Deutsch (Schweiz)
5 English (AUS)
6 English (UK)
7 English (US)
8 Espaсol
9 Franзais
10 Canadien Franзais
11 Italiano
12 Nederlands
13 Nederlands (voorkeur)
14 Norsk Bokmеl
15 Norsk Nynorsk
16 Portuguкs (BR)
17 Portuguкs (POR)
18 Suomi
19 Svenska
20 Catalа
21 ЕллзнйкЬ
22 Tьrkзe
23 Русский
24 Иeљtina
25 Magyar
26 Polski
27 Slovenian
28 Словацкий
29 Euskera
30 Bahasa Malaysia
Последний оператор из этой группы ToolsLanguage позволяет установить выбранный язык в качестве языка, используемого по умолчанию, т. е. записать его в шаблон normal.sty:
ToolsLanguage .Language = "Русский", .Default
Если необязательный операнд .Default отсутствует, то в остальном этот оператор похож на оператор Language.
CopyFormat
FontSubstitution
FormatAddrFonts
FormatChangeCase
FormatDefineStyleFont
FormatDefineStyleLang
FormatFont
FormatRetAddrFonts
PasteFormat
ResetChar, ResetChar()
ShrinkFont
Оператор NormalFontSpacing
Восстанавливает кернинг выделенных символов к Normal, если их текущий кернинг был расширен или сжат.
Оператор NormalFontPosition
Восстанавливает выбранные символы к базовой линии, если они были подняты или понижены.