Ира Туманова написала об автоматизации подготовки перевода интерфейса в многоязычном продукте.
— Каждая текстовая строка в коде заменяется ключом. Основные решения: i18next, Lingui и FormatJS;
— ICU MessageFormat — синтаксис для форматирования сообщений, который позволяет разработчикам учитывать сложности человеческого языка;
— Значения ключей (текстовые строки на разных языках) хранятся в специальных файлах, откуда система берёт текст для заданного языка;
— Translation management system позволяет управлять переводами: смотреть статус ключа, на какие языки он уже переведён. Интересные TMS: Lokalise, Phrase, Crowdin, POEditor;
— Доделав фичу, разработчик запускает скрипт экстракции ключей из кода в TMS и создаёт задачу для переводчиков (со ссылками на ключи);
— Чтобы минимизировать человеческий фактор, в Яндекс Go процесс запускается сам при Pull Request в основную ветку;
— После того, как переводчики подготовят переводы, надо забрать их из TMS обратно в файлы локализации;
— В Яндекс Go это происходит автоматически по крону каждый день в 5 утра: скрипт по TMS API запрашивает все новые переводы, раскладывает данные по файлам, создаёт Pull Request с изменениями;
— Плюс добавили проверку на дубликаты, чтобы случайно не слить два Pull Request с одинаковыми ключами;
— Разработчики в среднем заводили 2,5 задачи в день на переводы. Это порядка 20 минут на задачи и последующее обновление файлов переводов. Немного, но выбивало из рабочего потока.
#localization
— Каждая текстовая строка в коде заменяется ключом. Основные решения: i18next, Lingui и FormatJS;
— ICU MessageFormat — синтаксис для форматирования сообщений, который позволяет разработчикам учитывать сложности человеческого языка;
— Значения ключей (текстовые строки на разных языках) хранятся в специальных файлах, откуда система берёт текст для заданного языка;
— Translation management system позволяет управлять переводами: смотреть статус ключа, на какие языки он уже переведён. Интересные TMS: Lokalise, Phrase, Crowdin, POEditor;
— Доделав фичу, разработчик запускает скрипт экстракции ключей из кода в TMS и создаёт задачу для переводчиков (со ссылками на ключи);
— Чтобы минимизировать человеческий фактор, в Яндекс Go процесс запускается сам при Pull Request в основную ветку;
— После того, как переводчики подготовят переводы, надо забрать их из TMS обратно в файлы локализации;
— В Яндекс Go это происходит автоматически по крону каждый день в 5 утра: скрипт по TMS API запрашивает все новые переводы, раскладывает данные по файлам, создаёт Pull Request с изменениями;
— Плюс добавили проверку на дубликаты, чтобы случайно не слить два Pull Request с одинаковыми ключами;
— Разработчики в среднем заводили 2,5 задачи в день на переводы. Это порядка 20 минут на задачи и последующее обновление файлов переводов. Немного, но выбивало из рабочего потока.
#localization
Хабр
Как мы потеряли 3500 ключей и вновь нашли их: локализуем приложение без ручного труда
Когда цифровой продукт выходит на международный рынок, перевод интерфейса становится одной из ключевых задач для команды разработки. Казалось бы, всё просто: передал фразы...
👍4🔥2❤1
Forwarded from britanka.media
Долгожданный апдейт: программы Британки по дизайну теперь доступны в онлайн-формате.
Семь самых востребованных направлений: от декорирования и дизайна интерьера до моды и современной живописи теперь можно пройти в любой точке мира, в нашем виртуальном кампусе.
В онлайн-программы мы заложили все, что помогает выпускникам Британки стать востребованными в индустрии: работу над реальными задачами и постоянную обратную связь от преподавателей-практиков, живые вебинары и комьюнити, где легко найти своих.
Узнать подробнее о программах, которые доступны в новом формате, можно на сайте в разделе Онлайн-программы
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍3
Рауль Фламинцяну написал о четырёх паттернах выделения объектов в общем потоке.
— Флажок — красная ленточка в картотеке. Нужен для привлечения внимания к объекту. Пример: флажок в почтовом клиенте Outlook позволяет не терять важные сообщения в папке «Входящие»;
— Закрепление — булавка на пробковой доске. Полезно, чтобы объект был под рукой, пока в этом есть необходимость. Пример: закрепление сообщений в групповых чатах (с адресом, где пройдёт вечеринка);
— Сохранение на потом — тумбочка. Позволяет отложить заинтересовавший объект, чтобы уделить ему время потом, когда будет возможность. Пример: плейлист «Смотреть позже» на Ютубе;
— Ничто на тумбочке не остаётся навсегда, а если долго там лежит, начинает восприниматься как долг. Отдельный вызов: проектировать сохранение на потом так, чтобы этот долг со временем закрывать;
— Избранное — книжная полка. Позволяет отметить какой-то объект как значимый, чтобы проще обратиться к нему в будущем и даже просто для того, чтобы коллекция вас характеризовала.
In English.
— Флажок — красная ленточка в картотеке. Нужен для привлечения внимания к объекту. Пример: флажок в почтовом клиенте Outlook позволяет не терять важные сообщения в папке «Входящие»;
— Закрепление — булавка на пробковой доске. Полезно, чтобы объект был под рукой, пока в этом есть необходимость. Пример: закрепление сообщений в групповых чатах (с адресом, где пройдёт вечеринка);
— Сохранение на потом — тумбочка. Позволяет отложить заинтересовавший объект, чтобы уделить ему время потом, когда будет возможность. Пример: плейлист «Смотреть позже» на Ютубе;
— Ничто на тумбочке не остаётся навсегда, а если долго там лежит, начинает восприниматься как долг. Отдельный вызов: проектировать сохранение на потом так, чтобы этот долг со временем закрывать;
— Избранное — книжная полка. Позволяет отметить какой-то объект как значимый, чтобы проще обратиться к нему в будущем и даже просто для того, чтобы коллекция вас характеризовала.
In English.
uprock.webflow.io
Закрепление – это не сохранение. Сохранение – это не добавление в избранное. Добавление в избранное – это не отметка. — читайте…
Исследование UX-шаблонов: «Закрепить», «Избранное», «Сохранить на потом» и «Пометки о срочности». . читайте полезные статьи о дизайне в блоге UPROCK
❤2👍1
Антон Черногоров написал о будущем интерфейсов b2b-продуктов.
— Раньше они отражали внутреннее устройство систем, состоявших из ролей, прав, справочников, статусов и прочего, что нужно для выполнения задач;
— Экраны получались функциональными, но не помогали выполнять задачи или принимать решения;
— Считалось, что с таким интерфейсом не будет работать случайный человек и непонятность можно компенсировать обучением;
— В итоге люди запоминали, где что лежит, учились обходить неудобные сценарии, заводили рядом эксельку, писали себе инструкции;
— Что изменилось: привыкнув пользоваться классными b2c-продуктами, сотрудники ещё сильнее страдают, SaaS стал доступнее и выросла конкуренция, бизнес стал внимательнее считать деньги (а плохой интерфейс снижает эффективность работы сотрудников);
— Хороший b2b-интерфейс даёт чувство контроля: эксперту даёт скорость, а новичка не бросает без опор, объясняет, зачем нужны именно эти данные, о последствиях предупреждает до действия, помогает исправить ошибку, подсвечивает важное, говорит по-человечески там, где техническая точность бесполезна;
— Чего ждать в будущих b2b-продуктах: таблицы станут функциональнее, формы из набора полей превратятся в сценарии, пустые, ошибочные и промежуточные состояния перестанут быть техническими заглушками, навигация будет строиться вокруг рабочих контуров, а не базы данных;
— ИИ будет активно помогать. Например, выводить на дашборд не все данные, а только то, что требует внимания, объясняет причинно-следственные связи и помогает принять решение;
— Метрики: Cognitive load, Error rate, Time to task, eLTV, eNPS, CSAT, Cost per hire;
— Для этого надо разбираться в механике продукта: кто принимает решение и какие данные нужны, где возникает риск и какие ошибки стоят денег, где пользователь теряет контекст, какие операции повторяются ежедневно, какие роли видят систему по-разному, где пользователя надо ускорить и где затормозить.
#b2b
— Раньше они отражали внутреннее устройство систем, состоявших из ролей, прав, справочников, статусов и прочего, что нужно для выполнения задач;
— Экраны получались функциональными, но не помогали выполнять задачи или принимать решения;
— Считалось, что с таким интерфейсом не будет работать случайный человек и непонятность можно компенсировать обучением;
— В итоге люди запоминали, где что лежит, учились обходить неудобные сценарии, заводили рядом эксельку, писали себе инструкции;
— Что изменилось: привыкнув пользоваться классными b2c-продуктами, сотрудники ещё сильнее страдают, SaaS стал доступнее и выросла конкуренция, бизнес стал внимательнее считать деньги (а плохой интерфейс снижает эффективность работы сотрудников);
— Хороший b2b-интерфейс даёт чувство контроля: эксперту даёт скорость, а новичка не бросает без опор, объясняет, зачем нужны именно эти данные, о последствиях предупреждает до действия, помогает исправить ошибку, подсвечивает важное, говорит по-человечески там, где техническая точность бесполезна;
— Чего ждать в будущих b2b-продуктах: таблицы станут функциональнее, формы из набора полей превратятся в сценарии, пустые, ошибочные и промежуточные состояния перестанут быть техническими заглушками, навигация будет строиться вокруг рабочих контуров, а не базы данных;
— ИИ будет активно помогать. Например, выводить на дашборд не все данные, а только то, что требует внимания, объясняет причинно-следственные связи и помогает принять решение;
— Метрики: Cognitive load, Error rate, Time to task, eLTV, eNPS, CSAT, Cost per hire;
— Для этого надо разбираться в механике продукта: кто принимает решение и какие данные нужны, где возникает риск и какие ошибки стоят денег, где пользователь теряет контекст, какие операции повторяются ежедневно, какие роли видят систему по-разному, где пользователя надо ускорить и где затормозить.
#b2b
❤17👍6🔥4❤🔥1👏1