Comments 7
Минималистично API это, конечно, хорошо, но
Какие инструменты для переводчиков вы предлагаете?
Как происходит плурализация? (1 яблоко, 2 яблока, 5 яблок / 1 apple, 2 apples, 5 apples)
Как насчет локализации чисел? (1 000,15 vs 1,000.15)
И падежи ещё (1 яблоком, 2 яблоками), я сейчас страдаю от их отсутствия в gettext
Имхо, падежи не меняются диамически, они не зависят от подставляемых данных. Вы просто формируете фразу сразу в нужном падеже. Но да, так мы ограничены в динамической сборке из кусков
Подставляемые данные зависят от падежей. А среднестатистический англоязычный разработчик часто забывает, что в других языках падежей бывает больше чем в английском, и в итоге из какого-нибудь «%s угостил %s %d %s» мы получаем «Вася угостил Петя 1 яблоко»
Ах да, попутно и про род можно вспомнить, а то какое-нибудь «Получен 1 яблоко» тоже не круто
По сопровождению translation.json файлов и их наполнению я использую плагины в ide и отдельные приложения предназначенные чисто для этих целей.
Плюрализации в этой библиотеки нет, возможно в будущем я добавлю ее. В проектах 90% случаев плюрализация скорее всего Вам не понадобится. Если рассматривать пример с яблоками, можно переназвать это как: "Яблок: {n} шт."
Для плюрализации, чтобы это хорошо работало нужно учитывать большое количество факторов: род (мужской, женский, средний), число (множественное, единственное), контест в предложении, падежи, ешё это в разных языках это все по разному. В итоге Вы откажитесь от этой затеи и придете к нейтральным словам (предложениям).
По локализации чисел, валют, дат, номеров телефонов здесь я могу предложить использовать сторонние библиотеки, например locale (https://metanit.com/python/tutorial/6.3.php)
Это ваша библиотека? Ни одной звезды, 4 коммита за все время. Вы тогда хотя бы скажите об этом, а то выглядит не очень безопасно.
Интернационализация Python-проектов modern-i18n