Pull to refresh

Comments 13

Много таких систем есть. У CrowdIn что-то похожее: https://support.crowdin.com/in-context-localization/

спасибо за ссылку! посмотрел, я про них не знал. действительно, частично похоже - сам редактор, но у них таки традиционный перевод текстов из отдельных файлов (ресурсных), просто они добавили возможность предпросмотра через подмену текстов + JS код. у них для этого требуется целое окружение отдельное поднять, чтобы там работали переводчики - то есть они на реальном сайте (хоть может и не production) работают. у меня - от каждой страницы сохраняется snapshot, рендер, включая все CSS зависимости. как результат, ничего дополнительного делать не надо вообще - с первых же дней страницы появляются в онлайн-редакторе. намного проще и удобнее, мне кажется. другой очень большой минус - навигация ручная у них. так как это настоящий реальный сайт, то чтобы проверить как на странице X пользователь Y что-то видит - надо воссоздать весь сценарий, и так каждый раз. а у меня - все состояния и сценарии поведения заранее определены и по ним можно бесконечно туда-сюда переходить :)

Есть же сервисы переводов которые делают то же самое + переводы

я не нашел - подскажете? все что я нашел, и что мне скидывают другие - это облачные сервисы по работе с файлами переводом (ресурсные файлы с текстами). это как бы хорошо, но просто небольшое улучшение по сравнению со старым обычным i18n. я же предлагаю вообще отказаться от таких ресурсных файлов, и решение полезно не только для переводов - даже для среднего размера проекта с одним языком уже становится проблемой уследить за "что мы там говорим" на сотне разных страниц и в имейлах.

Этих я уже посмотрел :) У них все намного проще, примитивнее, и много надо делать вручную (допустим закачивать скриншоты). Это скорее просто админка для работы с существующими файлами, обертка вокруг старой технологии

что если на проекте spa, фронтенд отделён от бэкенда?

ничего не меняется совершенно - такой же предосмотр, такое же редактирование прямо в контексте рендера. просто тексты в JS коде оборачиваются в функцию/компонент

Денис у вас получился действительно хороший продукт с точки зрения функционала и удобства. Желаю вам успеха в завоевании рынка. Будет здорово если добавите материалы как это всё работает c JS, так сказать инструкция для разработчиков.

Интересное решение, делал что похожее, только попроще. Работает ли решение если тексты хранятся в базе данных? И возможно ли подружить как то с git?

Да - если тексты хранятся в базе, то они попадут в специальную функцию уже как финальный текст, никакой разницы не будет - как будто сразу из файла было. Насчет git - есть идея сделать фичу, где время от времени автоматически создается pull-request со всеми заменами. Что может быть вариантом работы для тех, кто не доверяет внешней системы - тут перед деплоем все возвращается к себе в репо.

Идея действительно хорошая, удачи в продвижении продукта.

Обыкновенно объем текста интерфейса невелик, поэтому я сделал проще поделил текст на категории страниц сайта, например: blog, product, cart и пр., отдельной категорией "site" - общий текст для страниц, также категории для специфичных подгружаемых модулей. поместил всё в БД на разных языках. Почему в БД? возможно это особенность моего хостинга, а возможно это общая тенденция - но запрос к базе данных выполняется на порядок быстрее чем считывается файл с теми же данными. В админке написал на js переводчик используя яндекс транслейт апи - в основном даже править не надо - нажал translate all и готово. В коде примерно так выглядит : "echo $page->getWord('product', 'similar_products')" - сразу на языке страницы выводит и загружает в память целую категорию - чтобы не плодить запросы. Для пользователей вариант очень удобен оказался, при затратах 1-2мс. И текста в коде нет.
У вас мне понравилась идея править прямо в продукте, но есть небольшой подводный камень, что на другом языке нужно отдельно править, а часто могут забыть или сделать это не одновременно. Но в моем способе, почти та же проблема - отдельно нужно смотреть или "не полез дизайн".

Sign up to leave a comment.

Articles