Задать вопрос
  • Как работают переводы на другие языки в играх?

    @Mercury13
    Программист на «си с крестами» и не только
    А теперь расскажу как человек, который давно и плотно интересуется локализацией, но в глаза Unity не видел.
    Локализация ДОЛЖНА храниться в простенькой базе «ключ-значение», это может быть INI, CSV, XML или что-то ещё. А то часто бывают половинчатые решения, когда общие строки локализуются, а прописанные где-то в скриптах — через зад (StarCraft первый). Или одна и та же строка служит и ключом чего-то, и выводимой локализованной строкой (Atreides/Ordos/Harkonnen в Dune II).

    Существуют два основных подхода к локализации.

    1. Есть так называемый «основной» язык, прописанный ПРЯМО в EXE-файле, ПРЯМО в скриптах игры и так далее. Локализация имеет вид
    «Open»,cmd → «Открыть»
    «The door is locked.»,level1 → «Дверь закрыта.»

    Как вы видите, ключ состоит из двух частей: строки-оригинала и уточнения. Если ключ совпадает, а уточнение — нет, берём строку без уточнения, а если и таковой нет — то что угодно. А если и ключ не совпадает — берём непереведённую.

    Адепты этого подхода — Gettext и Qt.

    2. Даже первый язык наравне с остальными.
    Cmd.Open → «Открыть»
    Level1.Locked → «Дверь закрыта.»

    Вариант 2.1: первый язык (обычно английский) используется как резервный, если локализации не нашлось.

    Сам я в пользу второго подхода, но он сложнее.

    САМАЯ простая база ключ-значение, чаще всего использовавшаяся на Java ME, где с памятью швах,— это простой линейный массив.
    [0] Открыть
    [1] Дверь закрыта.
    Всё преобразование из человекочитаемых идентификаторов S_CMD_OPEN в номера происходит на машине разработчика, генерацией файла
    constexpr unsigned S_CMD_OPEN = 0;

    Какой из методов брать?
    1. Насколько много локализации?
    2. Есть ли скрипты, GUI-формы и прочие ресурсы, способные содержать строки локализации?
    3. Насколько много больших текстов?
    4. Если программа параллельно разрабатывается и переводится: насколько тексты стабильны? Первый подход совершенно не выдерживает ситуации, когда исходные тексты меняются.
    5. Возможны ли неофициальные локализации? Метод 2 без уточнения 2.1, если программа «живая», исключает их.
    6. Что поддерживается вашим движком из коробки?
    7. Локализация встроена изначально, или приходится переводить неготовую к этому прогу?
    8. Насколько много интерфейса? У интерфейса есть противная фишка: нужно расщеплять строки, то есть давать одинаковым строкам разный ID (Open=«Открыть», «Открыто» и т.д.), и первый поход по умолчанию объединяет, второй по умолчанию расщепляет.

    И ма-ахонький апдейт. Есть ещё такое понятие, как сегмент — кусок МЕНЬШЕ локализуемого текста. То есть сегменты есть только на уровне комплекта локализации, в экспортированных текстах они склеиваются в единый текст. Обычно предложение или абзац. Сегментация используется в переводе больших текстов, особенно в интерфейсах, с такими целями.
    • Существуют тексты-«козы», которые могут найтись в памяти переводов. Например: «Серп и молот символизирует крестьян и рабочих. Осторожно, в вашем законодательстве эта символика может быть запрещена.»
    • Из-за недостатков интерфейса проги перевода можно пропустить целое предложение. Да, бывает!
    • В «живых» программах — можно помечать плохо переведённым кусок меньший, чем целый текст.
    (Живой я называю программу, которая параллельно разрабатывается и переводится. Благо методика «аджайл» предполагает частые небольшие выпуски.)
    Ответ написан
    Комментировать
  • Как работают переводы на другие языки в играх?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    перевод игры лежит в отдельном файле(например json и хранит в себе каждую строчку текста, которая применяется в игре), и потом в коде запрашивать нужную строку из файла и брать от туда значение текста для последующего применения на сцене

    Да, так оно и работает.

    или есть способы попроще

    Проще уже некуда.
    Ответ написан
    4 комментария
  • В какой контейнер ставить сертификат Lent`Encrypt в NGINX-front или NGINX-backend?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Во первых для вашего определения того, что вы называете "фронт" есть официальный термин - реверс прокси.
    И конечно же сертификаты должны быть на нем.
    Ответ написан
    Комментировать
  • Как определить кодировку страницы или текста на python?

    iglebov
    @iglebov
    Backend-разработчик
    Похожий вопрос рассматривался здесь:
    https://stackoverflow.com/questions/436220/how-to-...

    Может помочь модуль chardet.

    Пример работы модуля из документации:
    >>> import urllib.request
    >>> rawdata = urllib.request.urlopen('http://yahoo.co.jp/').read()
    >>> import chardet
    >>> chardet.detect(rawdata)
    {'encoding': 'EUC-JP', 'confidence': 0.99}
    Ответ написан
    Комментировать
  • Я столкнулся с мошенничеством. Что делать?

    CityCat4
    @CityCat4 Куратор тега Информационная безопасность
    Жил да был черный кот за углом...
    Ну, во-первых - где был запрос - в браузере или системный? Во-вторых, и в браузере и в системе есть возможность посмотреть разрешения, выданные приложению (или сайту).
    Ответ написан
    Комментировать
  • Какого производителя телекоммуникационного оборудования выбрать?

    CityCat4
    @CityCat4 Куратор тега Сетевое оборудование
    Жил да был черный кот за углом...
    Элтекс ( и пр. отечественные вендоры), MikroTik, TP-link, D-link не рассматриваются в принципе.

    Я вижу в этом политические моменты или я ошибаюсь? Вы всерьез считаете, что китайцы (а все перечисленные, кроме Vector - это "Вектор Технологии" из г. Орел что ли?) будут сильно лучше микротика или тайваньского D-Link-а? У которого вообще говоря и промышленные решения есть?

    Я понимаю, если бы сказали "рассмативаем только отечественного производителя". а тут "рассматриваем только китайского производителя". Здесь я вижу скрытый нетехнический момент, который может больно ударить.

    Второе. При таких обьемах обычно нанимают интегратора. Это уже вполне приличная промышленная поставка - за нее любой интегратор возьмется с визгом. Он, по крайней мере, не будет страдать вот такой вот фигней и будет нести ответственность за выбор.
    Ответ написан
    7 комментариев
  • Какого производителя телекоммуникационного оборудования выбрать?

    anthtml
    @anthtml
    Системный администратор программист радиолюбитель
    Около 1000 гигабитных точек доступа Wi-fi
    Порядка 60 48-портовых коммутаторов

    Не проще ли скинуть такой проект интегратору под ключ?
    Потому как на 1000 точек по любому нужно радиоанализ расчитывать.
    А так Huawei как замена кошки, но опять же его проще через интеграторов протянуть как готовое настроенное решение.
    Ответ написан
    3 комментария
  • Как хранить и показывать локальные файлы в CRM (frontend + backend)?

    Adamos
    @Adamos
    Хранить файлы в БД - это либо очень узкий кейс с файлами меньше 4 кб, либо некомпетентность.
    В БД хранится информация о файлах.
    Сами файлы складываются в папочку storage под хэшированным именем, а в БД хранится:
    - их настоящее имя и расширение (возможно, тип)
    - доступ (публичный или через скрипт после авторизации)
    - принадлежность (не автор, а объект в бизнес-логике, которому этот файл принадлежит)
    - ну, и та техническая информация, которая требуется (вот тут автор, время, правки etc.)
    Соответственно, для фронта бэком генерируются ссылки на нужные файлы, публичные - прямые, непубличные - на роутер, который их обработает.
    Ответ написан
    9 комментариев
  • Что можно использовать вместо фриланс хабра?

    @r10d10
    Kwork
    FL.ru
    Профи.ру
    ХедХантер,
    Авито
    Фриланс чаты в ТГ

    ...из наших вроде всё
    Ответ написан
    1 комментарий
  • Где найди диапазоны IP дата-центров?

    ValdikSS
    @ValdikSS
    Такие базы формируют поставщики GeoIP-данных, как один из дополнительных атрибутов.
    https://support.maxmind.com/hc/en-us/articles/4408...
    Ответ написан
    Комментировать
  • Можно ли использовать чужой алгоритм в составе своих?

    1. В России алгоритмы не патентуются.
    Защищены только конкретные реализации (исходный код или железка, которая этот алгоритм реализует).

    2. Текст на этом сайте распространяется под cc-by-sa, так что ты можешь спокойно скопировать оттуда текст, если соблюдешь условия

    3. Если ты реализуешь этот алгоритм на каком-нибудь ЯП по человеческому описанию с сайта, то это уже будет новое произведение, а не производное => даже ссылка на оригинал не нужна.
    Ответ написан
    Комментировать
  • Можно ли использовать чужой алгоритм в составе своих?

    @rPman
    Внизу странички есть лицензия
    Материалы распространяются под CC BY-SA
    https://creativecommons.org/share-your-work/cclicenses/

    Алгоритмы в россии не патентуются, в отличии от их реализации в программе.
    Система патентования запутанная, сложная.. но просто математические выкрутасы точно не патентуются. Тем более тема однозначно не подходит для коммерческой реализации,.. вот если кто то создаст на основе этого алгоритма крутую железку, которая будет в 2 раза быстрее перемножать числа, тогда да, вот ЭТУ реализацию можно патентовать
    Ответ написан
    1 комментарий
  • Ip-адрес 0.0.0.0?

    CityCat4
    @CityCat4 Куратор тега Сетевое оборудование
    Жил да был черный кот за углом...
    или можно что-то сделать?

    Дом.сру известен своей наглостью во впаривании чего бы то ни было. Скорее всего хотят развести на покупку у них роутера. Адрес 0.0.0.0 означает, что нет никакого адреса (технически - это "все адреса"), то есть адрес роутер не получил.
    Звоните в саппорт, пусть помогут в настройке роутера или пришлют инженера. Не стесняйтесь немного борзануть - к сожалению, дом.сру часто не понимает нормального языка :(
    Ответ написан
    6 комментариев
  • Сборка python файла с расширением pyw в exe файл??

    @Drno
    слишком длинный путь к файлу - ограничение обычно 255 символов
    а вообще - надо размещать проекты без кирилицы в путях, без пробелов и называть на англицком
    Ответ написан
    6 комментариев
  • Сборка python файла с расширением pyw в exe файл??

    @dim5x
    ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
    Перенести сборку в папку с не таким длинным названием: D:\Yandex....(+100500 символов).
    Не использовать папку/файл с таким длинным названием.
    Ответ написан
    5 комментариев
  • В чём смысл делать приложения-прокладки?

    @Everything_is_bad
    Зачем нужны такие программы? В чём смысл такой разработки?
    но ты его минимум захотел установить, у тебя были альтернативы?
    Ответ написан
    Комментировать
  • В чём смысл делать приложения-прокладки?

    Пользователь хочет приложение в отдельном окне и с ярлыком на рабочем столе.
    Разработчики не хотят тратить ресурсы на его разработку.
    Вот и заворачивают веб приложение в пакет.
    Ответ написан
    Комментировать
  • Можно ли как-то скрыть пути API запросов, или это вообще не нужно?

    @d-stream
    Готовые решения - не подаю, но...
    Не нужно. Это сродни операции замены человекопонятных имён переменных, полей и классов на рандомные комбинации букв i,I и тп aka обфускации. "защитой" должен заниматься другой слой например тот же самый jwt как носитель билета доступа, выдачу которого и проверку легитимности осуществляют другие механизмы (аутентификация, авторизация и т.п.)
    Ответ написан
    Комментировать
  • Что нужно сделать студенту чтобы захостить проект?

    Проект не планируется на широкий охват.

    Не важно, что планируется. Количество пользователей вообще в законах не упоминается.
    Если у тебя интерфейс сделан так, чтобы возможен был "неопределённый круг лиц" (например возможность зарегистироваться), то ты уже по определению будешь ОРИ и обязан будешь о себе уведомить, иначе штраф.

    должным образом шифруется и защищается.

    С точки зрения закона - скорее всего нет. То что ты не зарегистрировал себя как оператор ПД, не составил все нужные регламенты, не купил сертифицированные СКЗИ и так далее - это уже основание, что ты неправильно хранишь данные.

    Собираются следующие данные: username, password, email и история сообщений

    В сообщении пользователь может отправить все свои ПД и вот ты уже и оператор ПД, а значит обязан соблюдать ФЗ об обработке ПД.
    Даже ip адреса сейчас являются "техническими ПД" и при сочетании с другими данными позволяют идентифицировать человека, а раз у тебя веб-сервис, то ip адреса ты обрабатывать будешь по определению.

    Если в твой месенджер сможет хоть какими-то окольными путями зайти хотябы один гражданин РФ и сможет отправить сообщение со своими ПД, то тогда ты уже нарушишь закон.

    Так что ответственность при создании месенджера - это вопрос рвения спецслужб и того, на сколько сильно ты спрятал его.

    Можно, конечно, очень сильно снизить шансы на любое преследование:
    1. Никому и никогда не говорить про то что ты сделал свой месенджер
    2. Блокировать любые запросы по geoip, чтобы из россии нельзя было открыть твой сайт
    3. Регистрировать домен анонимно и за крипту, будто ты какой-то наркобарон (или вообще не регистрировать домен).
    4. Хоститься также за крипту где-нибудь на карибах, без KYC со стороны хостера.
    5. Подключаться к своему хостингу только через цепочку проксей/впнов (и чтобы каждый прокси был у совсем разных провайдеров в разных юрисдикциях, которые, желательно, не сотрудничают с россией и/или интерполом)
    6. Трафик с месенджером шифровать и обфусцировать, чтобы он вообще совсем не выглядел как трафик меседжера.
    (например сделать протокол как для какой-нибудь игры типа agario и при помощи методов стеганографии прятать текст сообщений во вполне обычные с виду события в рамках игры, типа небольшой дрожи играбельного персонажа из стороны в сторону при движении). Для надёжности - сделать заглушку с такой игрой, чтобы эксперт со стороны ничего странного не увидел (а реальный интерфейс чата распространяй отдельно)

    Тогда в принципе можно будет уйти от ответственности, так как расследование заглохнет, если, конечно, ты реально нигде не спалишься. (например в рамках какого-нибудь другого угловного/административного дела у тебя могут конфисковать компьютер и найти исходники твоего меседжера и креды от хостинга)
    Ответ написан
    2 комментария