Mission of code
Provide a way of sorting strings in natural alphabet order for any non-English alphabets. Because I was crying bitterly on the results of the standard PHP sort - they are alogical (from user's POV), unnatural and uncomfortable: f.e such order of tags just drive me nuts
Code: Select all
[50] => АИ
[49] => Анонс
[92] => История
[47] => Крестный Батька
[48] => ПА
[51] => Россия
[53] => СССР
[52] => Сэй Алек
[54] => Тарковский
[55] => Яндекс
[57] => агрегатор
[58] => алармизм
[56] => аудио
[61] => байки
[62] => биология
[63] => блоги
[64] => боевик
[60] => бред
[59] => бусидо
[65] => важно
[66] => гарнитуры
[67] => генетика
[68] => детектив
[69] => журналамеры
[70] => злое
[72] => идиотизмы
[71] => история России
[74] => котовое
[73] => кулинарное
[77] => масскульт
[81] => меломанское
[79] => миниатюра
[78] => мифы
[80] => мониторы
[75] => музыка
[76] => мысли
[82] => на злобу дня
[83] => наблюдения
[84] => новость
[89] => парадоксы
[90] => погодное
[91] => попаданцы
[88] => программизмы
[87] => профессиональное
[85] => псевдолитература
[86] => публицистика
[35] => рейтинги
[36] => религия
[37] => реплики
[34] => русопятство
[33] => русский язык
[20] => сериалы
[16] => стандарты
[17] => стиль разработки
[18] => столик
[19] => столик-трансформер
[27] => телефоны
[26] => типографика
[25] => триллер
[29] => фантастика
[30] => филология
[31] => фото
[28] => фразы
[32] => цитаты
[24] => шутки
[22] => экономика
[21] => эссе
[23] => я.ру
Code: Select all
[50] => АИ
[49] => Анонс
[57] => агрегатор
[58] => алармизм
[56] => аудио
[61] => байки
[62] => биология
[63] => блоги
[64] => боевик
[60] => бред
[59] => бусидо
[65] => важно
[66] => гарнитуры
[67] => генетика
[68] => детектив
[69] => журналамеры
[70] => злое
[92] => История
[72] => идиотизмы
[71] => история России
[47] => Крестный Батька
[74] => котовое
[73] => кулинарное
[77] => масскульт
[81] => меломанское
[79] => миниатюра
[78] => мифы
[80] => мониторы
[75] => музыка
[76] => мысли
[83] => наблюдения
[82] => на злобу дня
[84] => новость
[48] => ПА
[89] => парадоксы
[90] => погодное
[91] => попаданцы
[88] => программизмы
[87] => профессиональное
[85] => псевдолитература
[86] => публицистика
[51] => Россия
[35] => рейтинги
[36] => религия
[37] => реплики
[34] => русопятство
[33] => русский язык
[53] => СССР
[52] => Сэй Алек
[20] => сериалы
[16] => стандарты
[17] => стиль разработки
[18] => столик
[19] => столик-трансформер
[54] => Тарковский
[27] => телефоны
[26] => типографика
[25] => триллер
[29] => фантастика
[30] => филология
[31] => фото
[28] => фразы
[32] => цитаты
[24] => шутки
[22] => экономика
[21] => эссе
[55] => Яндекс
[23] => я.ру
Always, where sort in order or mothertongue is preferred:
tags-list, category-list in block for sorting "Category", etc
Implementation
UDF for u(a|k)sort()
Implementation details
lang/UTF-8/serendipity_lang_*.inc.php (ru in example)
Code: Select all
...
/* full alphabet - digits, english, local in both cases */
$alphabet = '0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZzАаБб...';
...
Code: Select all
class utf_8_alphabet
{
if (isset($GLOBALS['alphabet'])) {
static $order = $GLOBALS['alphabet'];
} else {
static $order = '0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz';
}
// everything else is sorted at the end
static function cmp($a, $b) {
before array output