Локализация приложений для китайского рынка-2. Блок-листы
В предыдущей теме я лишь сделал краткий обзор требований к разработчику, который хочет выпустить свое приложение на рынке КНР. Из всех полученных вопросов два основных касались именно блок-листов и вывода денег из Китая. Первый пункт я и хочу рассмотреть более подробно.禁 — значит «запрещено«Естественно, такие вопросы следует начинать изучать с нормативно-правовой базы. Одним из главных документов на эту тематику является 文化部令第49号 — 网络游戏暂行管理办法(Указ Министерства Культуры КНР №49 «Временные меры по регулированию и управлению онлайн-играми»). В статье 9 перечислено то содержимое, которое недопустимо в онлайн-играх: «Статья 9. В онлайн-играх не должно быть следующего содержимого:1) Нарушающего основные принципы Конституции КНР;2) Создающего угрозу национальному единству, суверенитету и территориальной целостности КНР;3) Разглашающего государственную тайну, ставящего под угрозу национальную безопасность или наносящего вред национальной чести и интересам;4) Подстрекающего к этнической ненависти или дискриминации по этническому признаку, подрывающего национальное единство, либо ущемлящего национальные обычаи и привычки;5) Содействущего культам и суевериям;6) Распространяющего слухи, которые нарушают общественный порядок, подрывают социальную стабильность;7) Распространяющего непристойности, порнографию, азартные игры, насилие или подстрекающего к преступлениям;8) Оскорбляющего, содержащего клевету по отношению к другим лицам и ущемляющего их законные права и интересы;9) Противоречащего общественной морали;10) Другого содержимое, запрещенного нормами законов, административными и государственными установлениями.Все более-менее здраво и разумно. Не будем дискутировать о целесообразности подобных ограничений, а поговорим на тему, как подойти к технической реализации этой задачи.Сразу же небольшая ремарка — если у вас большой проект, от которого ожидается большая отдача, дальнейший текст для вас смысла не имеет и вам лучше сразу приобрести энтерпрайз-решение, в котором все это давно реализовано на высшем уровне, базы обновляются ежедневно, а техподдержка добра и лояльна. Например, такие продукты предлагает 古尼 — их «Система контроля общественных настроений» действительно шикарна и включает в себя все, что только возможно, две невозможных функции и и одну невероятную. Правда обойдется вам это решение в 150.000 юаней единоразово + 20.000 юаней ежегодно. Есть и другие фирмы, но ценовой диапазон примерно одинаков.Если же у вас небольшой проект, то следующий текст для Вас.Согласно законодательству КНР, весь создаваемый пользователем контент должен цензурироваться. Пользователь может создавать следующий контент:1) текстовый (ники, сообщения другим игрокам)2) графический (аватары)3) видео
Итак, пункт первый — цензурирование текстового контентаВ самой реализации невозможности набора (сохранения) определенных слов и предложений нет ничего сложного. Но это на первый взгляд. Вы, как и 100% иностранцев понятия не имеют о том, какие именно слова и предложения необходимо блокировать. Ничего сложного, такие таблицы легко находятся на китайских форумах разработчиков, ищутся по запросу 敏感词库 (база чувствительных слов и выражений) и сразу же скачиваются в формате XLS или XML, а они легко встраиваются в любой блок-лист.Сложности начинаются потом.Во-первых, любой житель КНР понимает и может читать как традиционные иероглифы, так и упрощенные. Но в системе Unicode один и тот же иероглиф в традиционной и упрощенной форме — два разных символа. Соответственно, вам необходимо либо раздувать базу вдвое-втрое простым путем конвертации упрощенных в традиционные (то есть вместо одной записи «правительство неспособно» будет две — «政府无能 и 政府無能)либо же на лету конвертировать одни в другие и сопоставлять с базой. Исходники подобных проектов по конвертации ищутся по запросу 简繁转换工具代码Во-вторых, для набора текста на компьютере\телефоне житель КНР в 95% случаев использует пиньин. Пиньин использует фонетическую транскрипцию записи иероглифов и вы выбираете нужный вам по системе, очень похожей на Т9. То есть, для того, чтобы набрать предыдущую фразу, необходимо напечатать следующее: и выбрать первый вариант. При создании блок-листа это вызывает определенные сложности. Ведь если заменить 无 на wu, то смысл фразы (政府无能) останется полностью понятным — kak есJIu 6bI написать вот так. То есть надо либо применять конвертор иероглифов в транскрипцию на лету и сопоставлять с базой, либо же раздувать базу еще в несколько раз (добавлять значения 政府无neng, zheng府无能 и т.д.) Это не считая того, что иероглифы можно маскировать похожими буквами с диакритическими знаками (это вообще-то тональности, но к теме не имеет ни малейшего отношения — wǔ, wù, wú, wū)В-третьих, надо учитывать местные хитрости. Как обойти блок-лист на русском, примерно представляют все. В китайском это одновременно и проще и сложнее. Допустим, 政府(правительство) можно записать как 正夂广付 — при этом носитель языка легко поймет смысл, но система уже его не заблокирует. Для этого тоже существуют определенные решения, основанные на эвристике и сопоставлении элементов иероглифов — сначала ищется 字根库(база иероглифических элементов), а потом в ней кропотливо прописываются связи между ними и возможные комбинации их между собой. Опять же, не надо забывать, что это все необходимо делать как для традиционных форм, так и для упрощенных.В-четвертых, базу необходимо постоянно обновлять, так как местные светлые головы тоже не дремлют и постоянно выискивают новые способы контроля.
Блокировка графического контентаТут все немного сложнее и без конечного модератора все-таки не обойтись, но упростить ему работу можно (и даже нужно).Во-первых, на картинках так же может содержаться текстовая информация. Для этого необходимо подключить любой OCR-модуль и связать его с текстовой базой из пункта вышеВо-вторых, существует несколько десятков стилей написания иероглифов. Но задача облегчается тем, что любой иероглиф в написании с использованием определенного стиля письма будет легко определяться. Для этого мы идем на любой сайт-конвертор (вроде этого, парсим его базу данных и назначаем каждому иероглифу соответствие. Например, вышеприведенная фраза о правительстве в стиле 迷你简黄草 будет выглядеть так: А в стиле中国龙新草体 вот так: Соответственно, нужно по сути создать для каждого иероглифа в базе свою картинку и назначить ей соответствие с пунктом в блок-листе.В-третьих, необходимо использовать уже имеющиеся наработки по блокировке картинок явно порнографического характера, еженедельно читать новости и добавлять фотографии из новостей в таблицу блокировки уже графического контента (по анализу соответствий изображений наработок огромное количество во всем мире) и т.д. Полностью модераторов от работы это не избавит, но облегчит ее изрядно.Ну, а реализация автоматического цензурирования видеозаписей настолько громоздка и труд по ее созданию своими силами настолько неподьемен, что эту функцию вообще проще отключить. Ну, или озаботиться ручной премодерацией всех видеозаписей.Собственно, реализация первых двух пунктов процентов на 90% защитит вас от громкого вылета с китайского рынка и даст вам пропуск во все уважаемые местные магазины приложений.Это только базовые действия. В статье они рассмотрены очень поверхностно, в статье не рассмотрен процесс фильтрации контента, который из приложения отправляется на сторонние ресурсы (соцсети, микроблоги и т.д), не рассмотрен процесс фильтрации файлов на наличие запрещенного контента и еще сотни пунктов. Вот более-менее упрощенная схема того, как работает решение Goonie. После нашей собственной реализации подобного я теперь понимаю, за что они требуют деньги-)Спасибо за внимание. Я надеюсь, было интересно.P.S. Пример базового текстового блок-листа на 3.500 строк (вдруг кому-то интересно) находится по ссылке