mirror of
https://github.com/TandoorRecipes/recipes.git
synced 2025-12-30 13:40:01 -05:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
81547563c6 | ||
|
|
c107f2f497 | ||
|
|
5fea2131cd | ||
|
|
d671df30a3 |
@@ -8,17 +8,17 @@ msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-08-01 15:04+0200\n"
|
||||
"PO-Revision-Date: 2023-05-01 07:55+0000\n"
|
||||
"Last-Translator: axeron2036 <admin@axeron2036.ru>\n"
|
||||
"PO-Revision-Date: 2024-11-12 17:58+0000\n"
|
||||
"Last-Translator: Владислав <vlad@kelonmyosa.ru>\n"
|
||||
"Language-Team: Russian <http://translate.tandoor.dev/projects/tandoor/"
|
||||
"recipes-backend/ru/>\n"
|
||||
"Language: ru\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 4.15\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 5.6.2\n"
|
||||
|
||||
#: .\cookbook\forms.py:45
|
||||
msgid ""
|
||||
@@ -454,17 +454,17 @@ msgstr ""
|
||||
#: .\cookbook\models.py:455 .\cookbook\templates\base.html:114
|
||||
#: .\cookbook\templates\meal_plan.html:7
|
||||
msgid "Meal-Plan"
|
||||
msgstr ""
|
||||
msgstr "План питания"
|
||||
|
||||
#: .\cookbook\models.py:456 .\cookbook\templates\base.html:122
|
||||
#: .\cookbook\views\views.py:459
|
||||
msgid "Books"
|
||||
msgstr "Книги"
|
||||
msgstr "Книги рецептов"
|
||||
|
||||
#: .\cookbook\models.py:457 .\cookbook\templates\base.html:118
|
||||
#: .\cookbook\views\views.py:460
|
||||
msgid "Shopping"
|
||||
msgstr ""
|
||||
msgstr "Покупки"
|
||||
|
||||
#: .\cookbook\models.py:752
|
||||
msgid " is part of a recipe step and cannot be deleted"
|
||||
@@ -929,7 +929,7 @@ msgstr ""
|
||||
|
||||
#: .\cookbook\templates\base.html:110 .\cookbook\templates\index.html:87
|
||||
msgid "Recipes"
|
||||
msgstr ""
|
||||
msgstr "Рецепты"
|
||||
|
||||
#: .\cookbook\templates\base.html:161 .\cookbook\views\lists.py:120
|
||||
msgid "Foods"
|
||||
|
||||
@@ -347,41 +347,42 @@ def system(request):
|
||||
migration_info[key]['total'] = len(migration_info[key]['unapplied_migrations']) + len(migration_info[key]['applied_migrations'])
|
||||
|
||||
# API endpoint logging
|
||||
r = redis.StrictRedis(
|
||||
host=settings.REDIS_HOST,
|
||||
port=settings.REDIS_PORT,
|
||||
password='',
|
||||
username='',
|
||||
db=settings.REDIS_DATABASES['STATS'],
|
||||
)
|
||||
if settings.REDIS_HOST:
|
||||
r = redis.StrictRedis(
|
||||
host=settings.REDIS_HOST,
|
||||
port=settings.REDIS_PORT,
|
||||
password='',
|
||||
username='',
|
||||
db=settings.REDIS_DATABASES['STATS'],
|
||||
)
|
||||
|
||||
api_stats = [['Endpoint', 'Total']]
|
||||
api_space_stats = [['User', 'Total']]
|
||||
total_stats = ['All', int(r.get('api:request-count'))]
|
||||
api_stats = [['Endpoint', 'Total']]
|
||||
api_space_stats = [['User', 'Total']]
|
||||
total_stats = ['All', int(r.get('api:request-count'))]
|
||||
|
||||
for i in range(0, 6):
|
||||
d = (date.today() - timedelta(days=i)).isoformat()
|
||||
api_stats[0].append(d)
|
||||
api_space_stats[0].append(d)
|
||||
total_stats.append(int(r.get(f'api:request-count:{d}')) if r.get(f'api:request-count:{d}') else 0)
|
||||
|
||||
api_stats.append(total_stats)
|
||||
|
||||
for x in r.zrange('api:endpoint-request-count', 0, -1, withscores=True, desc=True):
|
||||
endpoint = x[0].decode('utf-8')
|
||||
endpoint_stats = [endpoint, x[1]]
|
||||
for i in range(0, 6):
|
||||
d = (date.today() - timedelta(days=i)).isoformat()
|
||||
endpoint_stats.append(r.zscore(f'api:endpoint-request-count:{d}', endpoint))
|
||||
api_stats.append(endpoint_stats)
|
||||
api_stats[0].append(d)
|
||||
api_space_stats[0].append(d)
|
||||
total_stats.append(int(r.get(f'api:request-count:{d}')) if r.get(f'api:request-count:{d}') else 0)
|
||||
|
||||
for x in r.zrange('api:space-request-count', 0, 20, withscores=True, desc=True):
|
||||
s = x[0].decode('utf-8')
|
||||
space_stats = [Space.objects.get(pk=s).name, x[1]]
|
||||
for i in range(0, 6):
|
||||
d = (date.today() - timedelta(days=i)).isoformat()
|
||||
space_stats.append(r.zscore(f'api:space-request-count:{d}', s))
|
||||
api_space_stats.append(space_stats)
|
||||
api_stats.append(total_stats)
|
||||
|
||||
for x in r.zrange('api:endpoint-request-count', 0, -1, withscores=True, desc=True):
|
||||
endpoint = x[0].decode('utf-8')
|
||||
endpoint_stats = [endpoint, x[1]]
|
||||
for i in range(0, 6):
|
||||
d = (date.today() - timedelta(days=i)).isoformat()
|
||||
endpoint_stats.append(r.zscore(f'api:endpoint-request-count:{d}', endpoint))
|
||||
api_stats.append(endpoint_stats)
|
||||
|
||||
for x in r.zrange('api:space-request-count', 0, 20, withscores=True, desc=True):
|
||||
s = x[0].decode('utf-8')
|
||||
space_stats = [Space.objects.get(pk=s).name, x[1]]
|
||||
for i in range(0, 6):
|
||||
d = (date.today() - timedelta(days=i)).isoformat()
|
||||
space_stats.append(r.zscore(f'api:space-request-count:{d}', s))
|
||||
api_space_stats.append(space_stats)
|
||||
|
||||
return render(
|
||||
request, 'system.html', {
|
||||
|
||||
@@ -363,5 +363,115 @@
|
||||
"recipe_property_info": "Вы также можете добавить свойства к продуктам, чтобы автоматически рассчитывать их на основе вашего рецепта!",
|
||||
"open_data_help_text": "Проект Tandoor Open Data предоставляет предоставленные сообществом данные для Tandoor. Это поле заполняется автоматически при импорте и допускает обновления в будущем.",
|
||||
"Open_Data_Import": "Открыть импорт данных",
|
||||
"property_type_fdc_hint": "Только типы свойств с FDC ID могут автоматически получать данные из базы данных FDC"
|
||||
"property_type_fdc_hint": "Только типы свойств с FDC ID могут автоматически получать данные из базы данных FDC",
|
||||
"Pin": "Закрепить",
|
||||
"Import Recipe": "Импортировать рецепт",
|
||||
"Create Recipe": "Создать рецепт",
|
||||
"Manage_Emails": "Управление электронной почтой",
|
||||
"Change_Password": "Изменить пароль",
|
||||
"API": "API",
|
||||
"Disable": "Отключить",
|
||||
"Enable": "Включить",
|
||||
"Disabled": "Отключено",
|
||||
"Foods": "Продукты",
|
||||
"Nav_Color": "Цвет навигации",
|
||||
"Ingredient Overview": "Обзор ингредиентов",
|
||||
"Export_Not_Yet_Supported": "Экспорт пока не поддерживается",
|
||||
"Last_name": "Фамилия",
|
||||
"Default_Unit": "Единица измерения по умолчанию",
|
||||
"Decimals": "Десятки",
|
||||
"Hours": "Часы",
|
||||
"Day": "День",
|
||||
"Days": "Дни",
|
||||
"Hour": "Час",
|
||||
"download_csv": "Скачать CSV",
|
||||
"Cosmetic": "Косметические",
|
||||
"Account": "Аккаунт",
|
||||
"Import_Supported": "Импорт поддерживается",
|
||||
"g": "грамм [г] (метрическая единица, вес)",
|
||||
"sql_debug": "Отладка SQL",
|
||||
"Import_Result_Info": "{imported} из {total} рецептов были импортированы",
|
||||
"total": "всего",
|
||||
"Copy Token": "Копировать токен",
|
||||
"SupermarketName": "Название супермаркета",
|
||||
"Plural": "Множественное",
|
||||
"plural_short": "множественное",
|
||||
"in_shopping": "В списке покупок",
|
||||
"App": "Приложение",
|
||||
"Message": "Сообщение",
|
||||
"Export_Supported": "Экспорт поддерживается",
|
||||
"Import_Not_Yet_Supported": "Импорт пока не поддерживается",
|
||||
"filter_to_supermarket_desc": "По умолчанию список покупок фильтруется таким образом, чтобы в него включались только категории для выбранного супермаркета.",
|
||||
"Toggle": "Переключить",
|
||||
"OrderInformation": "Объекты упорядочены от меньшего к большему.",
|
||||
"Website": "Веб-сайт",
|
||||
"Welcome": "Добро пожаловать",
|
||||
"SuccessClipboard": "Список покупок скопирован в буфер обмена",
|
||||
"First_name": "Имя",
|
||||
"Create Food": "Создать продукт",
|
||||
"UnpinnedConfirmation": "{recipe} откреплен.",
|
||||
"show_ingredient_overview": "Отобразить список всех ингредиентов в начале рецепта.",
|
||||
"Username": "Имя пользователя",
|
||||
"Undo": "Отменить",
|
||||
"NoMoreUndo": "Нет изменений, которые можно было бы отменить.",
|
||||
"Delete_All": "Удалить всё",
|
||||
"Input": "Ввод",
|
||||
"Copy Link": "Копировать ссылку",
|
||||
"Shopping_input_placeholder": "Например: Картофель/100 Картофелин/100 г Картофеля",
|
||||
"created_by": "Создано",
|
||||
"Use_Fractions": "Использовать дроби",
|
||||
"Language": "Язык",
|
||||
"Theme": "Тема",
|
||||
"ShowRecentlyCompleted": "Показать недавно завершенные элементы",
|
||||
"ShoppingBackgroundSyncWarning": "Плохая сеть, ожидание синхронизации...",
|
||||
"Seconds": "Секунды",
|
||||
"Users": "Пользователи",
|
||||
"Invites": "Приглашения",
|
||||
"CategoryName": "Название категории",
|
||||
"CategoryInstruction": "Перетаскивайте категории, чтобы изменить порядок отображения категорий в списке покупок.",
|
||||
"shopping_recent_days": "Недавние дни",
|
||||
"download_pdf": "Скачать PDF",
|
||||
"csv_delim_help": "Разделитель, используемый для экспорта в формате CSV.",
|
||||
"csv_delim_label": "Разделитель CSV",
|
||||
"copy_to_clipboard": "Копировать в буфер обмена",
|
||||
"copy_markdown_table": "Копировать как таблицу Markdown",
|
||||
"Unpin": "Открепить",
|
||||
"PinnedConfirmation": "{recipe} закреплен.",
|
||||
"QuickEntry": "Быстрый вход",
|
||||
"today_recipes": "Сегодняшние рецепты",
|
||||
"Created": "Создано",
|
||||
"Updated": "Обновлено",
|
||||
"Error": "Ошибка",
|
||||
"filter": "Фильтр",
|
||||
"Logo": "Логотип",
|
||||
"Show_Logo": "Показать логотип",
|
||||
"Comments_setting": "Показать комментарии",
|
||||
"Click_To_Edit": "Нажмите, чтобы изменить",
|
||||
"search_no_recipes": "Не удалось найти ни одного рецепта!",
|
||||
"search_import_help_text": "Импортировать рецепт с внешнего веб-сайта или приложения.",
|
||||
"search_create_help_text": "Создать новый рецепт непосредственно в Tandoor.",
|
||||
"New_Supermarket_Category": "Создать новую категорию супермаркетов",
|
||||
"Datatype": "Тип данных",
|
||||
"kg": "килограмм [кг] (метрическая единица, вес)",
|
||||
"ounce": "унция [oz] (вес)",
|
||||
"pound": "фунт (вес)",
|
||||
"Original_Text": "Исходный текст",
|
||||
"Properties": "Свойства",
|
||||
"Property": "Свойство",
|
||||
"StartDate": "Дата начала",
|
||||
"EndDate": "Дата окончания",
|
||||
"Second": "Секунда",
|
||||
"DefaultPage": "Начальная страница",
|
||||
"ml": "миллилитр [мл] (метрическая единица, объём)",
|
||||
"l": "литр [л] (метрическая единица, объем)",
|
||||
"Choose_Category": "Выбрать категорию",
|
||||
"Back": "Назад",
|
||||
"Use_Plural_Unit_Always": "Всегда используйте форму множественного числа для обозначения единицы измерения",
|
||||
"CustomImageHelp": "Загрузите изображение, которое будет отображаться в обзоре пространства.",
|
||||
"CustomNavLogoHelp": "Загрузите изображение, которое будет использоваться в качестве логотипа панели навигации.",
|
||||
"CustomLogos": "Пользовательские логотипы",
|
||||
"plan_share_desc": "Выбранным пользователям будет автоматически предоставлен доступ к новым записям в Плане Питания.",
|
||||
"CustomTheme": "Пользовательская тема",
|
||||
"CustomThemeHelp": "Измените стили выбранной темы, загрузив собственный CSS-файл.",
|
||||
"Learn_More": "Узнать больше"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user