Без качване, 100% локално, без акаунт

Статия

Думи, символи и регистър: как всъщност работи броенето на текст

Броенето на текст звучи като единствената задача, в която компютърът не може да сгреши, а все пак два инструмента спокойно могат да върнат различни числа за един и същ абзац, едно емоджи може да ви струва 70 символа от SMS-а, а "280 символа" в X не означават точно това, което изглежда. Зад ежедневни задачи като писане в рамките на лимит, преименуване на променливи или запълване на макет стоят няколко правила, които си струва да се знаят. Тази статия ги разглежда едно по едно, използвайки малките текстови инструменти на този сайт като работни примери.

Какво се брои за дума

Повечето броячи, включително нашият, определят думата така, както са го правили машинописките: поредица от видими символи между интервали или нови редове. Само това правило вече обяснява по-голямата част от разминаванията. Английското "state-of-the-art" една дума ли е, или четири? При разделяне по интервали е една. Числата, URL адресите и имейл адресите също се броят всеки за по една дума. Тази конвенция се разпада за езици, писани без интервали: в китайския или японския няма интервали, по които да се разделя, така че "брой думи" няма особен смисъл и е по-добре да се работи с брой символи. Оценките за време за четене добавят още една конвенция отгоре: нашият брояч на думи дели броя думи на 200 думи в минута, обичайна средна скорост за тихо четене при възрастни, така че резултатът трябва да се приема като ориентир за планиране, а не като обещание.

Един символ не винаги е един знак

Броенето на символи е по-неясно, защото текстът в Unicode има слоеве. Това, което възприемате като един символ (графема), в действителност може да е изградено от няколко кодови точки, а всяка кодова точка заема една или две от 16-битовите единици, които брои свойството length на JavaScript. Емоджито с широка усмивка е една графема, но две такива единици, затова наивен брояч ще покаже 2. Семейно емоджи, съставено от няколко емоджита на хора, е една графема, пет кодови точки и осем единици. Дори обикновен текст има този проблем: "café" може да се съхранява с é като една кодова точка или като e, последвано от комбиниращ ударен знак, еднакво на екрана, но различно при броене. Затова два брояча не съвпадат: те измерват различни слоеве. Правилата за групиране на кодовите точки в символи, възприемани от потребителя, са стандартизирани в приложението на Unicode за сегментиране на текст (UAX #29), и коректно изградените броячи го следват.

Три низа, измерени на три нива на Unicode: емоджито с широка усмивка е 1 графема и 2 единици UTF-16, семейното емоджи е 1 графема, 5 кодови точки и 8 единици, а разложеното café е 4 графеми, но 5 кодови точки

Лимитите, заради които всъщност броите

Именно при лимитите на символите броенето се превръща в пари. Едно SMS съобщение носи 160 символа в компактната азбука GSM-7, но само един символ извън нея (емоджи или буква, липсваща в тази азбука) превключва цялото съобщение към UCS-2 и лимитът пада до 70; дългите съобщения се разделят на части от по 153 или 67 символа, всяка тарифирана отделно. X позволява 280 символа на публикация, но им дава различна тежест: всеки URL се брои за 23 символа независимо от реалната си дължина, а повечето емоджита и символи от CJK (китайски, японски, корейски) се броят за 2. Резултатите от търсене имат по-меки лимити: Google съкращава заглавия и описания според ширината в пиксели, така че познатите цифри 60 символа за заглавие и 155 за описание са по-скоро работна конвенция, отколкото гаранция. Когато лимитът наистина има значение, бройте по същите правила, които използва платформата, и оставяйте запас.

Регистърът е конвенция и всеки стил си има място

Промяната на регистъра звучи като дреболия, докато не се сблъскате с конвенциите, натрупани върху нея. Става дума за текст на латиница: идентификатори в код или заглавия на английски. В прозата има Title Case, предпочитан от американските заглавия на новини, и sentence case, предпочитан от повечето европейски стилови ръководства. Кодът има свои собствени семейства: camelCase за променливи в JavaScript и Java, PascalCase за имена на класове и компоненти, snake_case в Python и бази данни, SCREAMING_SNAKE_CASE за константи и kebab-case за CSS класове, имена на файлове и URL slug-ове, където малките букви избягват класическия капан с връзки, различаващи се само по регистър. Ръчното преобразуване на шепа идентификатори не е проблем; преобразуването на списък от осемдесет е начин да се родят печатни грешки. Конверторът на регистър прилага това преобразуване механично, включително тънкостите като какво да се прави с абревиатурите и вече съществуващите разделители.

Фразата user profile page, записана в шест стила на регистър: camelCase, PascalCase, snake_case, SCREAMING_SNAKE_CASE, kebab-case и Title Case

Запълващ текст и файлове, които телефонът ви отказва да отвори

Още две задачи допълват този набор. Оформленията се оценяват с примерен текст, защото истинските изречения привличат вниманието към смисъла си; lorem ipsum работи точно защото е почти, но не съвсем, четлив латински. Нашият генератор го произвежда по абзаци, изречения или думи, така че макетът може да се запълни до реалистична дължина, вместо да се повтаря един и същ поставен блок. А когато някой изпрати файл .md, .json, .csv или .log, който телефонът отказва да отвори, текстов визуализатор, работещ в браузъра, го показва без да е нужно да се инсталира редактор или файлът да се препраща към някакъв сайт за конвертиране. Всичко описано дотук, включително броенето, работи изцяло във вашия браузър: текстът никога не напуска устройството ви, а това има по-голямо значение от обичайното, когато измервате чернова, договор или лог, пълен с вътрешни пътища.

Инструменти от тази статия

Често задавани въпроси

Колко думи се побират на една страница?

Издателските конвенции говорят за около 500 думи за страница с единичен интервал и около 250 за страница с двоен интервал, при предположение за стандартен 12-пунктов шрифт на хартия A4 или letter. Реалните документи се отклоняват от тези числа при всяка промяна на шрифта, полетата или заглавията, затова заданията и предаваните работи все по-често задават брой думи вместо брой страници. Ако вече разполагате с текста, пребройте го директно и пропуснете оценката; конвенциите за страници са полезни само преди текстът да съществува.

Какво всъщност означава lorem ipsum?

Това е разбъркан латински, а не безсмислица. Стандартният откъс е изрязан и разбъркан наново от De finibus bonorum et malorum на Цицерон, философски текст от 45 г. пр. Хр.; фрагментът "dolorem ipsum" означава "самата болка". Разбъркването е и същината: текстът изглежда като естествен език, с правдоподобна дължина на думите и ритъм на изреченията, но се съпротивлява да бъде прочетен, така че зрителят преценява оформлението, а не съдържанието. Съвременното му разпространение обикновено се приписва на прехвърлящите се листове Letraset през 60-те години на XX век и на софтуера за настолно издателство през 80-те.

Защо една платформа брои по-малко символи от моя брояч?

Защото платформите броят с тегла, зададени от самите тях. X започва от 280, но тарифира всеки URL като 23 символа, а повечето емоджита и символи от CJK като по 2. SMS шлюзовете превключват цялото съобщение от 160-символната азбука GSM-7 към 70-символния режим UCS-2 веднага щом само един символ го изисква. И всяка платформа може да брои кодови единици вместо графеми, така че само едно семейно емоджи може да изяде 8 от лимита. Когато числото на бутона не съвпада с вашия брояч, правилата на платформата печелят; пишете със запас или проверявайте с вградения брояч на самата платформа, преди да изпратите.

Източници