Редко такие развёрнутые статьи про интернационализацию попадаются, особенно от больших компаний, за это спасибо, поэтому задам несколько вопросов с которыми сам сталкивался, интересно узнать почему вы именно такой выбор/решение сделали.
В тексте написано, что вы используете функцию t() для переводов, но не упоминается ни какая библиотека интернационализации, вы самописную/доработанную библиотеку для интернационализации использовали? Были ли у вас какие-нибудь ограничения на использование тех или иных библиотек и экосистем интернационализации? Исследовали ли вы какие на момент выбора существуют системы/библиотеки локализации? т.к. судя по статье вы наткнулись на большинство из проблем интернационализации, таких как одинаковые ключи с разным контекстом, необходимость автоматически генерировать ключи, разделение на неймспейсы, локальные особенности интернационализации, особенно интересно были про даты в узбекском, локализации которых нет в Хроме. Когда вы изначально начинали интернационализацию, вы ставили удобство локализации и его процесса, или это было необходимо зло, которое нужно добавить в систему, не сломав ничего по пути? :)
И поделюсь знаниями: на данный момент, есть два больших фреймворка/платформы, для интернационализации: i18next - очень массивный фреймворк для всего что связано с интернационализацией, можно добавть интернационализацию везде, начиная с бекенда, заканчивая нативными приложениями. Для разных применений есть специализированные библиотеки (фронтенд/бекенд/нативные приложения/cli mode). Так же есть платный сервис хранения и управления локализациями, locize.com, с множественными фишками, типа версионированния переводом, объединения, автоматического перевода, привлечения переводчиков для перевода текстов, cdn для переводов и переводов текстов прямо с dev/prod сайта, при подключении дополнительного плагина. tolgee - целая платформа для интернационализации. Предоставляет как библиотеки для локализации, так и саму платформу для управления переводами, которую можно захостить у себя. Для фронта есть библиотеки для всех популярных фреймворков и библиотек, включая поддержку SSR. Есть отдельный SDK для Android. Для задания контекста используется международный формат ICU https://docs.tolgee.io/platform/translation_process/icu_message_format. Систему управления переводами можно захостить у себя и подключить cdn для переводов, который будет автоматически обновляться после сохранения переводов. Есть ещё киллер-фича, перевод текстов сразу с dev/prod сайта, без добавления каких-либо плагинов в сборку, через расширение для Хрома. https://docs.tolgee.io/js-sdk
А теперь можно посмотреть на https://vuex.vuejs.org и плакать горькими слезами от того, как криво это сделано в redux.
Но redux, как начало очень сильно помог. Но чем дальше, тем больше об будет мешать, вот моё мнение.
Буллшит размером с бычью голову. Тут и експерт и большой руководмтель, который помогает разжигать на стороне. Ничему время людей не учит. Ну, эволюция сделает своё дело.
Ну ёлы-палы, у вас же столько подобных факапов было и с переполнение диска тоже. Плохо когда отделы почти не общаются друг с другом :(
Очень обидно, что такие баги у вас случаются.
Во, как раз вспомнил. Иногда сильно возбуждённый садишься за работу, после длительного обеда или после совещания-прогулки, например, работать лень, лазаешь то в твиттер, то ещё куда. А включишь не громко музыку и она будто поглощает излишнюю энергию, или перенаправляет её, потом вводит в транс и вперёд :)
Да ну. Я работал в компании, в которой температуру строго держали около 18градусов.
Это блаженство, я скажу вам, когда едешь на работу в +30 и духоту, а на работе тебя ждут прохладные +18 и свежий воздух ^__^ и потом ты из окна на всех смотриш как на… гриль, да :)
Но потом ушёл от туда, по независящим от этого причинам, пороботал в другой организации и теперь работаю из дома.
Но тот опыт был очень запоминающимся.
Редко такие развёрнутые статьи про интернационализацию попадаются, особенно от больших компаний, за это спасибо, поэтому задам несколько вопросов с которыми сам сталкивался, интересно узнать почему вы именно такой выбор/решение сделали.
В тексте написано, что вы используете функцию t() для переводов, но не упоминается ни какая библиотека интернационализации, вы самописную/доработанную библиотеку для интернационализации использовали?
Были ли у вас какие-нибудь ограничения на использование тех или иных библиотек и экосистем интернационализации?
Исследовали ли вы какие на момент выбора существуют системы/библиотеки локализации? т.к. судя по статье вы наткнулись на большинство из проблем интернационализации, таких как одинаковые ключи с разным контекстом, необходимость автоматически генерировать ключи, разделение на неймспейсы, локальные особенности интернационализации, особенно интересно были про даты в узбекском, локализации которых нет в Хроме.
Когда вы изначально начинали интернационализацию, вы ставили удобство локализации и его процесса, или это было необходимо зло, которое нужно добавить в систему, не сломав ничего по пути? :)
И поделюсь знаниями: на данный момент, есть два больших фреймворка/платформы, для интернационализации:
i18next - очень массивный фреймворк для всего что связано с интернационализацией, можно добавть интернационализацию везде, начиная с бекенда, заканчивая нативными приложениями. Для разных применений есть специализированные библиотеки (фронтенд/бекенд/нативные приложения/cli mode). Так же есть платный сервис хранения и управления локализациями, locize.com, с множественными фишками, типа версионированния переводом, объединения, автоматического перевода, привлечения переводчиков для перевода текстов, cdn для переводов и переводов текстов прямо с dev/prod сайта, при подключении дополнительного плагина.
tolgee - целая платформа для интернационализации. Предоставляет как библиотеки для локализации, так и саму платформу для управления переводами, которую можно захостить у себя. Для фронта есть библиотеки для всех популярных фреймворков и библиотек, включая поддержку SSR. Есть отдельный SDK для Android. Для задания контекста используется международный формат ICU https://docs.tolgee.io/platform/translation_process/icu_message_format.
Систему управления переводами можно захостить у себя и подключить cdn для переводов, который будет автоматически обновляться после сохранения переводов.
Есть ещё киллер-фича, перевод текстов сразу с dev/prod сайта, без добавления каких-либо плагинов в сборку, через расширение для Хрома. https://docs.tolgee.io/js-sdk
У google flights был график для отслеживаемых рейсов, но они его потом прикрыли. Теперь только через почту можно мониторить :)
Вы же знаете, что Eric Elliott знатный тролль и набрасывать, да?)
А теперь можно посмотреть на https://vuex.vuejs.org и плакать горькими слезами от того, как криво это сделано в redux.
Но redux, как начало очень сильно помог. Но чем дальше, тем больше об будет мешать, вот моё мнение.
Очень обидно, что такие баги у вас случаются.
Это блаженство, я скажу вам, когда едешь на работу в +30 и духоту, а на работе тебя ждут прохладные +18 и свежий воздух ^__^ и потом ты из окна на всех смотриш как на… гриль, да :)
Но потом ушёл от туда, по независящим от этого причинам, пороботал в другой организации и теперь работаю из дома.
Но тот опыт был очень запоминающимся.