feat(miniapp): improve billing settings controls

This commit is contained in:
2026-03-12 11:37:57 +04:00
parent 4c19ee798d
commit a50b826b40
7 changed files with 358 additions and 25 deletions

View File

@@ -180,14 +180,14 @@ export const dictionary = {
billingCycleStatus: 'Current cycle currency: {currency}',
billingCycleOpenHint: 'Open a cycle before entering rent and utility bills.',
billingCyclePeriod: 'Cycle period',
manageCycleAction: 'Manage cycle',
manageCycleAction: 'Edit cycle rent',
cycleEditorBody:
'Keep the billing cycle controls in one focused editor instead of a long page.',
'Change the rent for the current cycle only. Keep billing settings for the long-term default.',
openCycleAction: 'Open cycle',
openingCycle: 'Opening cycle…',
closeCycleAction: 'Close cycle',
closingCycle: 'Closing cycle…',
saveCycleRentAction: 'Save current cycle rent',
saveCycleRentAction: 'Save cycle rent',
savingCycleRent: 'Saving rent…',
utilityCategoryLabel: 'Utility category',
utilityAmount: 'Utility amount',
@@ -197,14 +197,27 @@ export const dictionary = {
deleteUtilityBillAction: 'Delete',
deletingUtilityBill: 'Deleting utility bill…',
utilityBillsEmpty: 'No utility bills recorded for this cycle yet.',
currencyLabel: 'Currency',
rentAmount: 'Rent amount',
defaultRentAmount: 'Default rent',
defaultRentHint:
'New current cycles start from this rent unless you override a specific month.',
currentCycleRentLabel: 'Current cycle rent',
currentCycleRentHint:
'Only use this when the current month needs a different rent from the default.',
currentCycleRentEmpty: 'No rent saved for this cycle yet.',
currentCycleUsesDefaultRent: 'Using the default rent',
currentCycleOverrideRent: 'Cycle override active',
rentDueDay: 'Rent due day',
rentWarningDay: 'Rent warning day',
utilitiesDueDay: 'Utilities due day',
utilitiesReminderDay: 'Utilities reminder day',
timezone: 'Timezone',
timezoneHint: 'Use an IANA timezone like Asia/Tbilisi.',
timezoneInvalidHint: 'Pick a valid IANA timezone such as Asia/Tbilisi.',
manageSettingsAction: 'Manage settings',
billingSettingsEditorBody: 'Household billing defaults live here when you need to change them.',
billingSettingsEditorBody:
'Household defaults live here. New current cycles start from these values.',
saveSettingsAction: 'Save settings',
savingSettings: 'Saving settings…',
utilityCategoriesTitle: 'Utility categories',
@@ -441,18 +454,19 @@ export const dictionary = {
paymentBalanceAdjustmentUtilities: 'Зачитывать через коммуналку',
paymentBalanceAdjustmentRent: 'Зачитывать через аренду',
paymentBalanceAdjustmentSeparate: 'Держать покупки отдельно',
billingCycleTitle: 'Текущий billing cycle',
billingCycleTitle: 'Текущий расчётный цикл',
billingCycleEmpty: 'Нет открытого цикла',
billingCycleStatus: 'Валюта текущего цикла: {currency}',
billingCycleOpenHint: 'Открой цикл перед тем, как вносить аренду и коммунальные счета.',
billingCyclePeriod: 'Период цикла',
manageCycleAction: 'Управлять циклом',
cycleEditorBody: 'Все действия по циклу собраны в отдельном окне, а не растянуты по странице.',
manageCycleAction: 'Изменить аренду цикла',
cycleEditorBody:
'Меняй аренду только для текущего цикла. Долгосрочное значение по умолчанию остаётся в настройках.',
openCycleAction: 'Открыть цикл',
openingCycle: 'Открываем цикл…',
closeCycleAction: 'Закрыть цикл',
closingCycle: 'Закрываем цикл…',
saveCycleRentAction: 'Сохранить аренду для цикла',
saveCycleRentAction: 'Сохранить аренду цикла',
savingCycleRent: 'Сохраняем аренду…',
utilityCategoryLabel: 'Категория коммуналки',
utilityAmount: 'Сумма коммуналки',
@@ -462,14 +476,27 @@ export const dictionary = {
deleteUtilityBillAction: 'Удалить',
deletingUtilityBill: 'Удаляем счёт…',
utilityBillsEmpty: 'Для этого цикла пока нет коммунальных счетов.',
currencyLabel: 'Валюта',
rentAmount: 'Сумма аренды',
defaultRentAmount: 'Аренда по умолчанию',
defaultRentHint:
'Новые текущие циклы стартуют с этой суммой, если для конкретного месяца нет переопределения.',
currentCycleRentLabel: 'Аренда текущего цикла',
currentCycleRentHint:
'Используй это только когда в текущем месяце аренда отличается от значения по умолчанию.',
currentCycleRentEmpty: 'Для этого цикла аренда пока не задана.',
currentCycleUsesDefaultRent: 'Используется аренда по умолчанию',
currentCycleOverrideRent: 'Есть переопределение для цикла',
rentDueDay: 'День оплаты аренды',
rentWarningDay: 'День напоминания по аренде',
utilitiesDueDay: 'День оплаты коммуналки',
utilitiesReminderDay: 'День напоминания по коммуналке',
timezone: 'Часовой пояс',
timezoneHint: 'Используй IANA-таймзону, например Asia/Tbilisi.',
timezoneInvalidHint: 'Выбери корректную IANA-таймзону, например Asia/Tbilisi.',
manageSettingsAction: 'Управлять настройками',
billingSettingsEditorBody: 'Основные правила биллинга собраны в отдельном окне.',
billingSettingsEditorBody:
'Здесь живут значения по умолчанию для household. Новые текущие циклы стартуют отсюда.',
saveSettingsAction: 'Сохранить настройки',
savingSettings: 'Сохраняем настройки…',
utilityCategoriesTitle: 'Категории коммуналки',
@@ -491,11 +518,10 @@ export const dictionary = {
adminsTitle: 'Админы',
adminsBody:
'Повышай доверенных участников, чтобы они могли управлять биллингом и подтверждениями.',
displayNameLabel: 'Имя в household',
displayNameLabel: 'Имя в доме',
displayNameHint: 'Это имя будет видно в балансе, леджере и ответах ассистента.',
manageProfileAction: 'Редактировать профиль',
profileEditorBody:
'Своё имя для household лучше менять в отдельном окне, а не на самой странице.',
profileEditorBody: 'Своё имя для дома лучше менять в отдельном окне, а не на самой странице.',
memberEditorBody: 'Статус, политика и админские действия по участнику собраны в одном окне.',
editMemberAction: 'Редактировать участника',
saveMemberChangesAction: 'Сохранить изменения',