Created a new /share/rent-due/ page to display rent payment information separately from utility bills. Changes: - Created /share/rent-due/[id]/ page structure with RentViewPage component - Created ViewRentCard component to display rent amount and payment info - Added uploadRentProofOfPayment action for tenant proof upload - Added translation keys for rent-specific labels (en/hr) - Updated rent email templates to link to /share/rent-due/ instead of /share/bills-due/ - Updated documentation to reflect new URL structure The rent page displays: - Rent amount - IBAN or Revolut payment information with QR/barcode - Rent proof of payment upload (when enabled) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
631 lines
45 KiB
JSON
631 lines
45 KiB
JSON
{
|
||
"Index": {
|
||
"title": "Welcome!"
|
||
},
|
||
"account-page": {
|
||
"title": "User account",
|
||
"goto-home-button-label": "Back to home",
|
||
"goto-settings-button-label": "User Settings",
|
||
"logout-button-label": "Logout"
|
||
},
|
||
"PageFooter": {
|
||
"app-description": "Helping you to stay on top of your utility bills",
|
||
"links": {
|
||
"home": "Home",
|
||
"privacy-policy": "Privacy Policy",
|
||
"terms-of-service": "Terms of Service"
|
||
}
|
||
},
|
||
"login-page": {
|
||
"main-card": {
|
||
"title": "Bill management made easy<indigo> for landlords</indigo>",
|
||
"text": "<p>The best part of renting out an apartment or house is when the <strong>rent hits your account</strong>. Dealing with utility bills, though? <strong>Not so much.</strong></p><p>Bills show up one by one, <strong>papers start piling up</strong>, and suddenly you're sorting, checking what came in, what's paid, and what's still outstanding...</p><p>Then you've got to gather everything, send it to the tenant, and keep track of whether they paid. <strong>It's boring, and it needs you to be annoyingly precise.</strong></p>",
|
||
"go-to-app": "Go to the App",
|
||
"in-app-browser-warning": "<strong>WARNING!</strong> We detected that the website is opened in an in-app browser. This may cause issues with this web application. <hint>Please open the web application in a regular web browser (rezije.app) 😉</hint>",
|
||
"image-url": "/man-burried-under-paper-400.png",
|
||
"image-alt": "Man buried under papers",
|
||
"video-url": "/welcome-demo-vp9-25fps-1500bps.webm",
|
||
"video-title": "Demo of basic steps in the application"
|
||
},
|
||
"card-1": {
|
||
"title": "Can it get better?",
|
||
"text": "<p>You're in luck - <strong>rezije.app</strong> is a free tool built to <strong>solve exactly these problems</strong>!</p><p>This tool will enable you to easily and <strong>clearly track due and paid bills</strong>. All digital, efficient, and meticulous!</p><p>In addition, this tool offers the possibility of <strong>automatic sending</strong> of monthly statements to tenants, which includes a barcode for quick <strong>payment of rent and utilities to your IBAN or Revolut.</strong></p>",
|
||
"video-url": "/kopiranje-mjeseca-demo.webm",
|
||
"image-url": "/robot-sorting-papers-400.png",
|
||
"image-alt": "Robot sorting papers",
|
||
"video-title": "Demo of month copying"
|
||
},
|
||
"card-2": {
|
||
"title": "What do I need to get started?",
|
||
"text": "<p>All you need is a <strong>Gmail account to sign in</strong> and you can start using the tool right away!</p><p>You don't need to fill out registration forms or confirm your email address - it's a <strong>turnkey solution!</strong></p>"
|
||
},
|
||
"sign-in-button": "Sign in with",
|
||
"disclaimer": "<disclaimer><bold>Note:</bold> by signing in to this web application, you accept the <linkTermsOfService>Terms of Service</linkTermsOfService> and <linkPrivacyPolicy>Privacy Policy</linkPrivacyPolicy>.</disclaimer>"
|
||
},
|
||
"home-page": {
|
||
"add-location-button": {
|
||
"tooltip": "Add a new realestate"
|
||
},
|
||
"add-month-button": {
|
||
"tooltip": "Add next mont"
|
||
},
|
||
"multi-bill-edit-button": {
|
||
"tooltip": "Multi Bills Edit"
|
||
},
|
||
"location-card": {
|
||
"edit-card-tooltip": "Edit realestate",
|
||
"add-bill-button-tooltip": "Add a new bill",
|
||
"total-due-label": "Total due:",
|
||
"total-payed-label": "Total payed:",
|
||
"link-copy-message": "Link copied to clipboard",
|
||
"monthly-statement-legend": "Monthly statement",
|
||
"seen-by-tenant-label": "seen by tenant",
|
||
"download-proof-of-payment-label": "proof-of-payment.PDF",
|
||
"email-status": {
|
||
"unverified": "tenant email not verified",
|
||
"verification-pending": "waiting for tenant to verify email",
|
||
"verification-failed": "email verification failed",
|
||
"unsubscribed": "tenant unsubscribed from receiving emails"
|
||
},
|
||
"payment-info-header": "You can pay the utility bills for this month using the following information:",
|
||
"payment-amount-label": "Amount:",
|
||
"payment-recipient-label": "Recipient:",
|
||
"payment-recipient-address-label": "Recipient address:",
|
||
"payment-recipient-city-label": "Recipient city:",
|
||
"payment-iban-label": "IBAN:",
|
||
"payment-model-label": "Payment model:",
|
||
"payment-reference-label": "Reference number:",
|
||
"payment-purpose-code-label": "Purpose code:",
|
||
"payment-description-label": "Payment description:",
|
||
"upload-proof-of-payment-legend": "Proof of payment",
|
||
"upload-proof-of-payment-label": "Here you can upload proof of payment:",
|
||
"revolut-link-text": "Pay with Revolut",
|
||
"rent-amount-label": "Rent amount:",
|
||
"upload-rent-proof-of-payment-legend": "Rent proof of payment",
|
||
"upload-rent-proof-of-payment-label": "Here you can upload rent proof of payment:"
|
||
},
|
||
"month-card": {
|
||
"total-due-label": "Monthly due total:",
|
||
"total-payed-label": "Monthly payed total:",
|
||
"print-codes-tooltip": "Print 2D codes",
|
||
"print-codes-label": "Print codes"
|
||
},
|
||
"print-preview": {
|
||
"title": "2D Barcode Print Preview",
|
||
"barcodes-found": "barcodes found",
|
||
"barcode-singular": "barcode found",
|
||
"print-button": "Print Barcodes",
|
||
"print-footer": "Generated on {date} • rezije.app Print System",
|
||
"table-header-index": "#",
|
||
"table-header-bill-info": "Bill Information",
|
||
"table-header-barcode": "2D Barcode",
|
||
"empty-state-title": "No Barcode Data Found",
|
||
"empty-state-message": "No bills with 2D barcodes found for {yearMonth}"
|
||
},
|
||
"user-settings-saved-message": "User settings updated successfully",
|
||
"bill-saved-message": "Bill saved successfully",
|
||
"bill-deleted-message": "Bill deleted successfully",
|
||
"location-saved-message": "Location saved successfully",
|
||
"location-deleted-message": "Location deleted successfully",
|
||
"bill-multi-edit-save-success-message": "Changes saved successfully",
|
||
"bill-multi-edit-save-error-message": "Error saving changes",
|
||
"bill-multi-edit-load-error-message": "Error loading data"
|
||
},
|
||
"bill-delete-form": {
|
||
"text": "Please confirm deletion of bill \"<strong>{bill_name}</strong>\" at \"<strong>{location_name}</strong>\".",
|
||
"cancel-button": "Cancel",
|
||
"confirm-button": "Confirm",
|
||
"delete-in-subsequent-months": "Also delete in all subsequent months",
|
||
"warning-title": "Warning",
|
||
"warning-message": "This operation cannot be undone and will delete the bill in all future months!"
|
||
},
|
||
"bill-edit-form": {
|
||
"bill-name-placeholder": "bill name",
|
||
"paid-checkbox": "Paid",
|
||
"scanning-pdf": "🕵️♂️ Scanning document for 2D codes ...",
|
||
"multiple-barcode-results-notification": "✅ Multiple 2D barcodes found. Pick the one which you want to use:",
|
||
"payed-amount": "Amount",
|
||
"barcode-disclaimer": "After scanning the code make sure the information is correct.<br></br>We are not liable in case of an incorrect payment.",
|
||
"notes-placeholder": "notes",
|
||
"save-button": "Save",
|
||
"cancel-button": "Cancel",
|
||
"delete-tooltip": "Delete bill",
|
||
"add-to-subsequent-months": "Add to all subsequent months",
|
||
"validation": {
|
||
"bill-name-required": "Bill name is required",
|
||
"payed-amount-required": "Payed amount is required",
|
||
"not-a-number": "Not a number",
|
||
"negative-number": "Value must be a positive number",
|
||
"form-error-message": "Form validation error. Please check the form and try again."
|
||
},
|
||
"attachment": "Attachment",
|
||
"back-button": "Back",
|
||
"billed-to-legend": "Who bears the cost?",
|
||
"billed-to-tenant-option": "👤 the tenant bears this cost",
|
||
"billed-to-landlord-option": "🔑 the landlord bears this cost",
|
||
"billed-to-info": "This option is intended for cases where part of the utility costs are not charged to the tenant. If 'the landlord bears this cost' is selected, this bill will not be included in the monthly statement shown to the tenant.",
|
||
"upload-proof-of-payment-legend": "Proof of payment",
|
||
"upload-proof-of-payment-label": "Here you can upload proof of payment:"
|
||
},
|
||
"location-delete-form": {
|
||
"text": "Please confirm deletion of realestate \"<strong>{name}</strong>\".",
|
||
"cancel-button": "Cancel",
|
||
"confirm-button": "Confirm",
|
||
"delete-in-subsequent-months": "Also delete in all subsequent months",
|
||
"warning-title": "Warning",
|
||
"warning-message": "This operation cannot be undone and will delete the location in all future months!"
|
||
},
|
||
"location-edit-form": {
|
||
"location-name-legend": "Realestate name",
|
||
"location-name-placeholder": "enter realestate name",
|
||
"notes-placeholder": "notes",
|
||
"proof-of-payment-attachment-type--legend": "Proof of Payment",
|
||
"proof-of-payment-attachment-type--info": "Here you can choose how the tenant can provide proof of payment for utilities. Select the option that best matches the payment arrangement you have agreed upon.",
|
||
"proof-of-payment-attachment-type--option--label": "Tenant provides ...",
|
||
"proof-of-payment-attachment-type--option--none": "⛔ attaching proof of payment disabled",
|
||
"proof-of-payment-attachment-type--option--none--tooltip": "The selected option means that the tenant will not be able to upload proof of payment attachments",
|
||
"proof-of-payment-attachment-type--option--combined": "📦 a single proof of payment for all bills",
|
||
"proof-of-payment-attachment-type--option--combined--tooltip": "The selected option is useful if you pay all utilities on behalf of the tenant, and the tenant reimburses you for this cost",
|
||
"proof-of-payment-attachment-type--option--combined--hint": "💡 with the selected option you might also want to activate <strong>payment instructions</strong> - see above",
|
||
"proof-of-payment-attachment-type--option--per-bill": "✂️ separate proof of payment for each bill",
|
||
"proof-of-payment-attachment-type--option--per-bill--tooltip": "The selected option is useful if the tenant pays utilities directly to individual service providers",
|
||
"tenant-payment-instructions-legend": "PAYMENT INSTRUCTIONS",
|
||
"tenant-payment-instructions-code-info": "When the tenant opens the link to the statement for the given month, the application can show payment instructions for utility costs to your IBAN, as well as a 2D code they can scan.",
|
||
"tenant-payment-instructions-method--legend": "Show payment instructions to tenant:",
|
||
"tenant-payment-instructions-method--none": "⛔ do not show payment instructions",
|
||
"tenant-payment-instructions-method--iban": "🏛️ payment via IBAN",
|
||
"tenant-payment-instructions-method--iban-disabled": "payment via IBAN - disabled in app settings",
|
||
"tenant-payment-instructions-method--revolut": "🅡 payment via Revolut",
|
||
"tenant-payment-instructions-method--revolut-disabled": "payment via Revolut - disabled in app settings",
|
||
"tenant-payment-instructions-method--disabled-message": "This option is unavailable because it is not enabled in the application settings.",
|
||
"iban-payment--form-title": "Payment information for IBAN",
|
||
"iban-payment--tenant-name-label": "Tenant First and Last Name",
|
||
"iban-payment--tenant-name-placeholder": "enter tenant's first and last name",
|
||
"iban-payment--tenant-street-label": "Tenant Street and House Number",
|
||
"iban-payment--tenant-street-placeholder": "enter tenant's street",
|
||
"iban-payment--tenant-town-label": "Tenant Postal Code and Town",
|
||
"iban-payment--tenant-town-placeholder": "enter tenant's town",
|
||
"auto-utility-bill-forwarding-legend": "Automatic utility bill forwarding",
|
||
"auto-utility-bill-forwarding-info": "This option enables automatic forwarding of utility bills to the tenant via email according to the selected forwarding strategy.",
|
||
"auto-utility-bill-forwarding-toggle-label": "forward utility bills to tenant automatically",
|
||
"utility-bill-forwarding-strategy-label": "Forward utility bills when ...",
|
||
"utility-bill-forwarding-when-payed": "all items are marked as paid",
|
||
"utility-bill-forwarding-when-attached": "a bill (PDF) is attached to all items",
|
||
"auto-rent-notification-legend": "Automatic rent notification",
|
||
"auto-rent-notification-info": "This option enables automatic sending of monthly rent bill to the tenant via email on the specified day of the month.",
|
||
"auto-rent-notification-toggle-label": "send rent notification to tenant automatically",
|
||
"rent-due-day-label": "Day of month when rent is due",
|
||
"rent-amount-label": "Monthly rent amount",
|
||
"rent-amount-placeholder": "enter rent amount",
|
||
"tenant-email-legend": "TENANT EMAIL",
|
||
"tenant-email-label": "Send tenant notifications to e-mail address:",
|
||
"tenant-email-placeholder": "enter tenant's email",
|
||
"email-status": {
|
||
"reset-button-label": "Reset",
|
||
"new": "a new e-mail address will need to be verified by the tenant",
|
||
"unverified": "this e-mail address will need to be verified by the tenant",
|
||
"verification-pending": "waiting for tenant to verify this email address",
|
||
"verification-failed": "email verification failed",
|
||
"verified": "this e-mail address has been verified",
|
||
"unsubscribed": "tenant unsubscribed this address from receiving emails"
|
||
},
|
||
"notification-language-label": "Send tenant notifications in language:",
|
||
"notification-language-option-hr": "Croatian (Hrvatski)",
|
||
"notification-language-option-en": "English",
|
||
"warning-missing-tenant-names": "Warning: Tenant first and last name are missing. The 2D barcode will not be displayed to the tenant when they open the shared link until both fields are filled in.",
|
||
"save-button": "Save",
|
||
"cancel-button": "Cancel",
|
||
"delete-tooltip": "Delete realestate",
|
||
"scope-legend": "Update scope",
|
||
"add-to-subsequent-months": "add to all subsequent months",
|
||
"update-scope-info": "Location records for each month are stored separately. Please choose which records you want to update.",
|
||
"update-scope-legend": "I want to update the following records:",
|
||
"update-option-placeholder": "👉 choose one of available options",
|
||
"update-current-month": "current month only",
|
||
"update-subsequent-months": "current and all future months",
|
||
"update-all-months": "ALL months (past and future)",
|
||
"validation": {
|
||
"location-name-required": "Relaestate name is required",
|
||
"tenant-name-required": "tenant name is missing",
|
||
"tenant-street-required": "tenant street is missing",
|
||
"tenant-town-required": "tenant town is missing",
|
||
"tenant-email-required": "tenant email is missing",
|
||
"tenant-email-invalid": "email address is invalid",
|
||
"rent-amount-required": "rent amount is required when rent notification is enabled",
|
||
"rent-amount-integer": "rent amount must be a whole number (no decimal places)",
|
||
"rent-amount-positive": "rent amount must be a positive number",
|
||
"update-scope-required": "please select which records to update",
|
||
"validation-failed": "Validation failed. Please check the form and try again."
|
||
}
|
||
},
|
||
"user-settings-form": {
|
||
"title": "User settings",
|
||
"iban-payment-instructions--legend": "Payment to Your IBAN",
|
||
"iban-payment-instructions--intro-title": "What does this option do?",
|
||
"iban-payment-instructions--intro-message": "By activating this option, the monthly statement sent to the tenant will contain payment details and a 2D barcode allowing a direct payment to your bank account.",
|
||
"iban-payment-instructions--toggle-label": "enable IBAN payment instructions",
|
||
"iban-form-title": "Payment Information for IBAN",
|
||
"iban-owner-name-label": "Your First and Last Name",
|
||
"iban-owner-name-placeholder": "enter your first and last name",
|
||
"iban-owner-street-label": "Your Street and House Number",
|
||
"iban-owner-street-placeholder": "enter your street and house number",
|
||
"iban-owner-town-label": "Your Postal Code and Town",
|
||
"iban-owner-town-placeholder": "enter your postal code and town",
|
||
"iban-owner-iban-label": "IBAN",
|
||
"iban-owner-iban-placeholder": "enter your IBAN for receiving payments",
|
||
"revolut-form-title": "Payment Information for Revolut",
|
||
"revolut-payment-instructions--legend": "Payment to Your Revolut Profile",
|
||
"revolut-payment-instructions--intro-title": "What does this option do?",
|
||
"revolut-payment-instructions--intro-message": "By activating this option, the monthly statement sent to the tenant will contain a link allowing a direct payment to your Revolut account.",
|
||
"revolut-payment-instructions--toggle-label": "enable Revolut payment instructions",
|
||
"revolut-profile-label": "Revolut profile name",
|
||
"revolut-profile-placeholder": "enter your Revolut profile name for receiving payments",
|
||
"revolut-profile-tooltip": "You can find your Revolut profile name in the Revolut app under your user profile. It is displayed below your name and starts with the '@' symbol (e.g., '@john123').",
|
||
"revolut-profile--test-link-label": "Test your Revolut link:",
|
||
"revolut-profile--test-link-text": "Pay with Revolut",
|
||
"payment-additional-notes": "IMPORTANT: For the payment instructions to be displayed to the tenant, you must also enable this option in the property's settings.",
|
||
"general-settings-legend": "General Settings",
|
||
"currency-label": "Currency",
|
||
"save-button": "Save",
|
||
"cancel-button": "Cancel",
|
||
"validation": {
|
||
"owner-name-required": "Name is mandatory",
|
||
"owner-street-required": "Street is mandatory",
|
||
"owner-town-required": "Town is mandatory",
|
||
"owner-iban-required": "Valid IBAN is mandatory",
|
||
"owner-iban-invalid": "Invalid IBAN format. Please enter a valid IBAN",
|
||
"currency-required": "Currency is mandatory",
|
||
"owner-revolut-profile-required": "Revolut profile name is mandatory",
|
||
"owner-revolut-profile-invalid": "Invalid Revolut profile format. Must start with '@' and contain only English letters and numbers (e.g., '@john123')",
|
||
"validation-failed": "Validation failed. Please check the form and try again."
|
||
}
|
||
},
|
||
"info-box": {
|
||
"default-title": "What is this option for?"
|
||
},
|
||
"multi-bill-edit": {
|
||
"title": "Multi Bill Edit",
|
||
"loading-message": "Loading...",
|
||
"error-title": "Error",
|
||
"no-locations-title": "No Locations",
|
||
"no-locations-message": "No locations found for the selected month",
|
||
"no-bills-message": "No bills",
|
||
"set-all-as-paid-button": "Mark all as paid",
|
||
"set-all-as-unpaid-button": "Mark all as unpaid",
|
||
"save-button": "Save",
|
||
"saving-button": "Saving...",
|
||
"cancel-button": "Cancel",
|
||
"back-to-home-button": "Back to Home",
|
||
"save-error-message": "Error saving changes"
|
||
},
|
||
"terms-of-service-page": {
|
||
"title": "Terms of Service for the Utility Bill Tracking Web App \"rezije.app\"",
|
||
"meta": {
|
||
"effective-date": "{{EFFECTIVE_DATE}}",
|
||
"last-updated": "{{LAST_UPDATED_DATE}}",
|
||
"provider": {
|
||
"name": "{{SERVICE_PROVIDER_NAME}}",
|
||
"address": "{{ADDRESS}}",
|
||
"oib": "{{TAX_ID_OR_REGISTRATION_NUMBER}}",
|
||
"email": "support@rezije.app"
|
||
},
|
||
"data-hosting": "EU",
|
||
"analytics": "Self-hosted web analytics"
|
||
},
|
||
"section-1": {
|
||
"heading": "1. Introduction",
|
||
"content": "These Terms of Service (\"Terms\") govern your access to and use of the utility bill tracking web application (the \"Application\"). The service provider is \"rezije.app\" (\"we\", \"us\", \"our\"). By accessing or using the Application, you confirm that you have read, understood, and agree to be bound by these Terms. If you do not agree to these Terms, do not use the Application."
|
||
},
|
||
"section-2": {
|
||
"heading": "2. Definitions",
|
||
"item-1": "<strong>\"User\"</strong> means any person who accesses or uses the Application.",
|
||
"item-2": "<strong>\"Account\"</strong> means a user account created via Google OAuth.",
|
||
"item-3": "<strong>\"User Content\"</strong> means any data you enter into or upload to the Application (e.g., billing locations, account names, amounts, dates, documents, photos, PDFs).",
|
||
"item-4": "<strong>\"Service\"</strong> means the Application's features and functionality, including storing, displaying, and organizing utility-related data and generating/displaying 2D barcodes."
|
||
},
|
||
"section-3": {
|
||
"heading": "3. Eligibility and Registration",
|
||
"item-1": "<strong>Age</strong>: You must be at least 18 years old (or the age of majority under applicable law) to use the Application.",
|
||
"item-2": "<strong>Registration</strong>: Access to the Application requires creating an Account via Google OAuth. We do not control Google's authentication process.",
|
||
"item-3": "<strong>Accuracy</strong>: You agree to provide accurate and up-to-date information where applicable.",
|
||
"item-4": "<strong>Account Security</strong>: You are responsible for all activity conducted through your Account. You agree to notify us promptly if you suspect any unauthorized access."
|
||
},
|
||
"section-4": {
|
||
"heading": "4. Scope and Purpose of the Service",
|
||
"paragraph-1": "The Application is a tool for personal tracking and organization of utility bill data. We do not provide financial, tax, or legal advice, and we do not guarantee the Application is fit for any specific purpose.",
|
||
"paragraph-2": "We may add, change, or remove features over time. Certain features may be experimental or in beta."
|
||
},
|
||
"section-5": {
|
||
"heading": "5. User Content and Rights",
|
||
"item-1": "<strong>Ownership</strong>: You retain all rights to the User Content you enter into or upload to the Application.",
|
||
"item-2": "<strong>License to Provide the Service</strong>: You grant us a non-exclusive, time-limited (for the duration of your use of the Service), royalty-free license—transferable only to our processors/subcontractors—to use, process, store, back up, and display your User Content solely to provide, maintain, and improve the Service.",
|
||
"item-3": "<strong>Your Responsibility</strong>: You are responsible for the legality, accuracy, and rights associated with your User Content (e.g., you have the right to upload documents).",
|
||
"item-4": "<strong>Prohibited Content</strong>: You must not upload content that violates applicable laws or third-party rights."
|
||
},
|
||
"section-6": {
|
||
"heading": "6. Privacy, Cookies, and Data Protection",
|
||
"paragraph-1": "Personal data processing is governed by our <strong>Privacy Policy</strong> (the \"Privacy Policy\"), which forms an integral part of these Terms.",
|
||
"paragraph-2": "The Application is hosted on infrastructure located within the European Union. Data is processed and stored in the EU unless explicitly stated otherwise in the Privacy Policy.",
|
||
"paragraph-3": "To measure usage and improve the Service, we use <strong>self-hosted web analytics</strong> (on our own server) for aggregated analytics (e.g., traffic, page views, session duration). We do not use analytics for advertising purposes or to build marketing profiles of users.",
|
||
"paragraph-4": "The Application may use cookies and/or similar technologies necessary for functionality (e.g., login/session and security). Analytics cookies, if used, are described in the Privacy Policy (including purpose, duration, and options for managing settings).",
|
||
"paragraph-5": "If you upload documents containing personal data of third parties, you are responsible for ensuring a lawful basis for such processing and for providing any required notices to those individuals, where applicable."
|
||
},
|
||
"section-7": {
|
||
"heading": "7. 2D Barcodes and Information Accuracy",
|
||
"paragraph-1": "The Application may generate or display 2D barcodes (e.g., for payment). Such content may be created based on information you provide and/or derived from documents you upload.",
|
||
"paragraph-2": "<strong>You are responsible</strong> for verifying the accuracy, completeness, and relevance of information in 2D barcodes before using them, including before initiating transactions or payments.",
|
||
"paragraph-3": "We do not guarantee that all barcodes will be accepted by all banking applications or payment systems, nor that the content will always match the format expected by a third party."
|
||
},
|
||
"section-8": {
|
||
"heading": "8. Acceptable Use and Prohibited Conduct",
|
||
"intro": "You agree not to use the Application in any way that:",
|
||
"item-1": "violates any law, regulation, or third-party rights;",
|
||
"item-2": "is harmful, fraudulent, deceptive, threatening, harassing, defamatory, obscene, or otherwise inappropriate;",
|
||
"item-3": "attempts unauthorized access to systems, accounts, or other users' data;",
|
||
"item-4": "introduces malicious code (viruses, malware), performs automated data extraction (scraping) without authorization, or interferes with the Application's operation;",
|
||
"item-5": "bypasses security measures or access restrictions;",
|
||
"item-6": "uses the Application to provide services to third parties in a manner not intended by the Service (e.g., resale) without our prior written consent."
|
||
},
|
||
"section-9": {
|
||
"heading": "9. Fees and Subscriptions (if applicable)",
|
||
"paragraph-1": "The basic version of the Application may be free, and certain features may be available for a fee (\"Paid Features\"). Pricing, duration, and billing terms will be displayed before you activate Paid Features.",
|
||
"paragraph-2": "Where applicable, subscriptions may automatically renew until you cancel, in accordance with the terms presented at purchase and applicable consumer protection laws."
|
||
},
|
||
"section-10": {
|
||
"heading": "10. Third-Party Services and Integrations",
|
||
"item-1": "<strong>Google OAuth</strong>: Login and authentication rely on Google's services. We are not responsible for the availability or security of Google services, and Google's terms and policies apply.",
|
||
"item-2": "<strong>Hosting</strong>: We host the Service on infrastructure within the European Union. We may use infrastructure and technical service providers (\"Processors\") solely for hosting, maintenance, and security, as described in the Privacy Policy.",
|
||
"item-3": "<strong>Analytics</strong>: We use self-hosted web analytics (our own server). Analytics data is used solely to improve the Service, as described in the Privacy Policy.",
|
||
"item-4": "<strong>Links</strong>: The Application may contain links to third-party websites. We do not control and are not responsible for their content."
|
||
},
|
||
"section-11": {
|
||
"heading": "11. Availability, Maintenance, and Backups",
|
||
"paragraph-1": "We strive to keep the Application available, but we do not guarantee uninterrupted, timely, secure, or error-free operation. We may perform maintenance, upgrades, or emergency work from time to time.",
|
||
"paragraph-2": "We may create backups for business continuity. Backups are stored within the EU unless explicitly stated otherwise in the Privacy Policy.",
|
||
"paragraph-3": "We will implement reasonable technical and organizational safeguards, but no system is 100% secure. By using the Application, you accept this risk.",
|
||
"paragraph-4": "We recommend that users keep their own copies of important documents as needed."
|
||
},
|
||
"section-12": {
|
||
"heading": "12. Intellectual Property",
|
||
"paragraph-1": "The Application, including its design, code, databases, visual identity, and texts (excluding User Content), is protected by copyright and/or other intellectual property rights and belongs to us or our licensors.",
|
||
"paragraph-2": "You do not acquire any ownership rights in the Application. Copying, decompiling, reverse engineering, or distributing the Application is prohibited unless expressly permitted by law."
|
||
},
|
||
"section-13": {
|
||
"heading": "13. Termination, Account Deletion, and Data Retention",
|
||
"paragraph-1": "You may stop using the Application at any time. To delete your Account or data, use the available options in the Application (if any) or contact us at <emailLink>support@rezije.app</emailLink>.",
|
||
"paragraph-2": "We may suspend or terminate access to the Application without prior notice if we reasonably suspect a breach of these Terms, abuse, or if necessary for security or legal compliance.",
|
||
"paragraph-3": "After Account deletion, User Content may be deleted or anonymized within a reasonable time, unless we are required to retain certain data for legal compliance, dispute resolution, or enforcement of these Terms (as further described in the Privacy Policy)."
|
||
},
|
||
"section-14": {
|
||
"heading": "14. Disclaimer of Warranties",
|
||
"paragraph-1": "The Application is provided \"AS IS\" and \"AS AVAILABLE\". To the maximum extent permitted by law, we disclaim all warranties of any kind, whether express or implied, including implied warranties of merchantability, fitness for a particular purpose, and non-infringement.",
|
||
"paragraph-2": "We do not warrant that the Application will meet your requirements, be compatible with all devices or integrations, or that any data (including 2D barcodes) will be accurate or error-free."
|
||
},
|
||
"section-15": {
|
||
"heading": "15. Limitation of Liability",
|
||
"paragraph-1": "To the maximum extent permitted by law, we will not be liable for any indirect, incidental, special, consequential, or punitive damages, or any loss of profits, revenue, data, use, goodwill, or other intangible losses, arising out of or related to your use of, or inability to use, the Application.",
|
||
"paragraph-2": "The limitations in this section do not apply to liability that cannot be excluded or limited under applicable law (e.g., willful misconduct or gross negligence, and other mandatory consumer rights under applicable law).",
|
||
"paragraph-3": "In particular, we are not liable for damages resulting from the use of information in 2D barcodes if the user did not verify its accuracy before the transaction, nor for actions of third parties (banks, payment apps, bill issuers)."
|
||
},
|
||
"section-16": {
|
||
"heading": "16. Indemnification",
|
||
"content": "To the extent permitted by law, you agree to indemnify and hold us harmless from any claims, damages, liabilities, losses, and expenses (including reasonable attorneys' fees) arising out of your breach of these Terms, misuse of the Application, or violation of third-party rights through your User Content."
|
||
},
|
||
"section-17": {
|
||
"heading": "17. Force Majeure",
|
||
"content": "We will not be liable for any delay or failure to perform resulting from causes beyond our reasonable control (e.g., network failures, third-party service outages, natural disasters, war, strikes, epidemics, or actions of governmental authorities)."
|
||
},
|
||
"section-18": {
|
||
"heading": "18. Governing Law and Dispute Resolution",
|
||
"paragraph-1": "These Terms are governed by and construed in accordance with the laws of the Republic of Croatia, without regard to conflict of law provisions.",
|
||
"paragraph-2": "If you are a consumer, nothing in these Terms affects your mandatory rights under applicable consumer protection laws.",
|
||
"paragraph-3": "The parties will try to resolve disputes amicably. If an amicable resolution is not possible, the competent court in {{PLACE_OF_JURISDICTION}} shall have jurisdiction."
|
||
},
|
||
"section-19": {
|
||
"heading": "19. Changes to the Terms",
|
||
"content": "We reserve the right to modify or replace these Terms at any time. If changes are material, we will use reasonable efforts to provide at least 10 days' prior notice before they take effect. By continuing to use the Application after the effective date of the updated Terms, you agree to the revised Terms."
|
||
},
|
||
"section-20": {
|
||
"heading": "20. Severability and Assignment",
|
||
"item-1": "<strong>Severability</strong>: If any provision of these Terms is held invalid or unenforceable, the remaining provisions will remain in full force and effect.",
|
||
"item-2": "<strong>Assignment</strong>: We may assign our rights and obligations under these Terms to a third party (e.g., in connection with a reorganization or sale), subject to applicable law. You may not assign your rights or obligations without our prior written consent."
|
||
},
|
||
"section-21": {
|
||
"heading": "21. Entire Agreement",
|
||
"content": "These Terms (together with the Privacy Policy) constitute the entire agreement between you and us regarding your use of the Application and supersede all prior or contemporaneous understandings, whether written or oral, relating to the subject matter of these Terms."
|
||
},
|
||
"section-22": {
|
||
"heading": "22. Contact",
|
||
"content": "If you have any questions about these Terms, please contact us at <emailLink>support@rezije.app</emailLink>."
|
||
}
|
||
},
|
||
"email-verify-page": {
|
||
"title": "Verify Your Email Address",
|
||
"about": {
|
||
"title": "About rezije.app",
|
||
"description": "rezije.app is a utility bills tracking application that helps landlords manage their properties and notify tenants about rent and utility bills."
|
||
},
|
||
"why": {
|
||
"title": "Why did you receive this email?",
|
||
"description": "Your landlord has configured the application to send rent due and/or utility bills notifications to your email address. To start receiving these notifications, you need to verify your email address."
|
||
},
|
||
"what-happens": {
|
||
"title": "What happens after verification?",
|
||
"description": "After you verify your email address, you will receive notifications when rent is due and/or when utility bills are ready, depending on your landlord's configuration. Notifications are sent up to twice per month."
|
||
},
|
||
"opt-out": {
|
||
"title": "Don't want to receive emails?",
|
||
"description": "You can ignore this email if you don't want to receive notifications. You can also unsubscribe at any time using the link included in every notification email."
|
||
},
|
||
"button": {
|
||
"verify": "Verify Email Address",
|
||
"verifying": "Verifying..."
|
||
},
|
||
"success": {
|
||
"title": "Email Verified!",
|
||
"message": "Your email address has been successfully verified. You are now subscribed to receive notifications related to rent and/or utility bills."
|
||
},
|
||
"error": {
|
||
"title": "Verification Failed",
|
||
"unknown": "An error occurred during verification. Please try again or contact your landlord."
|
||
},
|
||
"not-allowed": {
|
||
"title": "Action not possible",
|
||
"message": "The selected action cannot be performed or the passed information is invalid."
|
||
}
|
||
},
|
||
"email-unsubscribe-page": {
|
||
"title": "Unsubscribe from Email Notifications",
|
||
"about": {
|
||
"title": "About rezije.app",
|
||
"description": "rezije.app is a utility bills tracking application that helps landlords manage their properties and notify tenants about rent and utility bills."
|
||
},
|
||
"why": {
|
||
"title": "Why are you receiving emails?",
|
||
"description": "Your landlord has configured the application to send rent due and/or utility bills notifications to your email address."
|
||
},
|
||
"what-happens": {
|
||
"title": "What happens after unsubscribing?",
|
||
"description": "After you unsubscribe, you will no longer receive any rent due or utility bill notifications via email. Your landlord will need to contact you through other means."
|
||
},
|
||
"button": {
|
||
"unsubscribe": "Confirm Unsubscribe",
|
||
"unsubscribing": "Unsubscribing..."
|
||
},
|
||
"success": {
|
||
"title": "Successfully Unsubscribed",
|
||
"message": "You have been unsubscribed from email notifications. You will no longer receive rent or utility bill reminders."
|
||
},
|
||
"error": {
|
||
"title": "Unsubscribe Failed",
|
||
"unknown": "An error occurred while unsubscribing. Please try again or contact your landlord."
|
||
},
|
||
"not-allowed": {
|
||
"title": "Action not possible",
|
||
"message": "The selected action cannot be performed or the passed information is invalid."
|
||
}
|
||
},
|
||
"privacy-policy-page": {
|
||
"title": "Privacy Policy for the Utility Bill Tracking Web App",
|
||
"meta": {
|
||
"effective-date": "{{EFFECTIVE_DATE}}",
|
||
"last-updated": "{{LAST_UPDATED_DATE}}",
|
||
"controller": {
|
||
"name": "rezije.app",
|
||
"address": "{{ADDRESS}}",
|
||
"contact-email": "support@rezije.app"
|
||
},
|
||
"data-hosting": "EU",
|
||
"analytics": "Self-hosted web analytics (cookie-less)",
|
||
"backup-retention-days": 7,
|
||
"processors": "No additional processors other than the EU infrastructure/hosting provider."
|
||
},
|
||
|
||
"section-1": {
|
||
"heading": "1. Introduction",
|
||
"content": "This Privacy Policy (\"Policy\") explains how rezije.app (\"we\", \"us\", \"our\") collects, uses, and protects personal data in connection with the use of the utility bill tracking web application (the \"Application\"). This Policy applies to personal data of users of the Application."
|
||
},
|
||
|
||
"section-2": {
|
||
"heading": "2. Data Controller and Contact",
|
||
"paragraph-1": "The data controller for personal data processed in connection with the Application is rezije.app. The Application is published and maintained by a private individual (not a company).",
|
||
"paragraph-2": "For privacy-related questions and to exercise your rights, you can contact us at <emailLink>support@rezije.app</emailLink>."
|
||
},
|
||
|
||
"section-3": {
|
||
"heading": "3. Personal Data We Collect",
|
||
"intro": "We may collect the following categories of data:",
|
||
"item-1": "<strong>Account data (Google OAuth)</strong>: your email address and the identifier (OAuth ID) assigned by Google, and other basic data necessary for authentication and account management.",
|
||
"item-2": "<strong>Data you enter in the Application</strong>: billing locations, account names, amounts, dates, notes, and any other data you voluntarily enter.",
|
||
"item-3": "<strong>Uploaded documents</strong>: documents and files you upload (e.g., bills, PDFs, photos). Such documents may contain personal data (yours or third parties'), depending on their content.",
|
||
"item-4": "<strong>Technical data and logs</strong>: basic technical data required for operation and security (e.g., login logs, error logs, and security event logs).",
|
||
"item-5": "<strong>Aggregated analytics data (cookie-less)</strong>: aggregated usage data (e.g., visit counts, page views, session duration) collected via self-hosted web analytics that does not use cookies."
|
||
},
|
||
|
||
"section-4": {
|
||
"heading": "4. How We Use Your Data and Legal Bases",
|
||
"intro": "We process personal data only when we have a lawful basis, for the following purposes:",
|
||
"item-1": "<strong>Providing and maintaining the Service</strong> (performance of a contract / steps prior to entering into a contract): enabling login, providing Application features, storing and displaying your data.",
|
||
"item-2": "<strong>Security and abuse prevention</strong> (legitimate interests): protecting the Application, detecting and preventing fraud, incidents, and unauthorized access.",
|
||
"item-3": "<strong>Improving the Application</strong> (legitimate interests): analyzing aggregated usage to improve performance and user experience.",
|
||
"item-4": "<strong>User communications</strong> (legitimate interests and/or performance of a contract): sending account-related communications, security notices, and important updates about the Application or this Policy.",
|
||
"item-5": "<strong>Legal obligations</strong> (legal obligation): retaining and disclosing data where necessary to comply with applicable law or lawful requests by authorities."
|
||
},
|
||
|
||
"section-5": {
|
||
"heading": "5. Cookies and Similar Technologies",
|
||
"paragraph-1": "The Application uses cookies and/or similar technologies that are necessary for functionality (e.g., authentication/session and security).",
|
||
"paragraph-2": "For analytics, we use <strong>cookie-less</strong>, self-hosted web analytics. We do not use analytics for advertising purposes or to build marketing profiles of users."
|
||
},
|
||
|
||
"section-6": {
|
||
"heading": "6. Hosting and Processing Location (EU)",
|
||
"content": "The Application is hosted on infrastructure located within the European Union. Data is processed and stored in the EU."
|
||
},
|
||
|
||
"section-7": {
|
||
"heading": "7. Data Sharing and Recipients",
|
||
"intro": "We do not sell your personal data. We may share data only in the following cases:",
|
||
"item-1": "<strong>EU infrastructure/hosting provider</strong>: we use an infrastructure/hosting provider to operate, keep available, and secure the Application. That provider may have technical access to data only to the extent necessary to deliver the service and under confidentiality obligations.",
|
||
"item-2": "<strong>Authentication</strong>: login via Google OAuth involves exchanging data necessary for authentication with Google, in accordance with Google’s policies.",
|
||
"item-3": "<strong>Legal requirements</strong>: where necessary to comply with law, a court order, or a lawful request by authorities, or to protect our rights and the safety of users."
|
||
},
|
||
|
||
"section-8": {
|
||
"heading": "8. Transfers Outside the EU/EEA",
|
||
"content": "As a rule, we do not transfer personal data outside the EU/EEA as part of operating the Application. However, certain processing related to Google OAuth is performed in accordance with Google’s policies and may involve transfers outside the EU/EEA. In such cases, Google’s safeguards and rules apply."
|
||
},
|
||
|
||
"section-9": {
|
||
"heading": "9. Security",
|
||
"content": "We implement reasonable technical and organizational measures to protect personal data against unauthorized access, loss, misuse, and disclosure. However, no method of transmission or storage is completely secure, and we cannot guarantee absolute security."
|
||
},
|
||
|
||
"section-10": {
|
||
"heading": "10. Data Retention",
|
||
"intro": "We retain data only as long as necessary for the purposes for which it was collected:",
|
||
"item-1": "<strong>Account data</strong>: while your account is active and until the account is deleted, unless retention is required to comply with legal obligations or resolve disputes.",
|
||
"item-2": "<strong>Data you enter and uploaded documents</strong>: until you delete them or until the account is deleted, with a reasonable period for technical removal from active systems.",
|
||
"item-3": "<strong>Technical logs</strong>: retained for a limited time for security and diagnostics and then deleted or anonymized, unless longer retention is needed to investigate an incident or comply with legal obligations.",
|
||
"item-4": "<strong>Backups</strong>: backups are retained for up to 7 days and then automatically overwritten or deleted. Due to the nature of backups, deleted data may remain in backups until the retention period expires."
|
||
},
|
||
|
||
"section-11": {
|
||
"heading": "11. Your Rights (GDPR)",
|
||
"intro": "Depending on applicable law, you may have the following rights:",
|
||
"item-1": "<strong>Right of access</strong>: request confirmation whether we process your data and obtain a copy.",
|
||
"item-2": "<strong>Right to rectification</strong>: request correction of inaccurate data or completion of incomplete data.",
|
||
"item-3": "<strong>Right to erasure</strong> (\"right to be forgotten\"): request deletion of your data where the conditions are met.",
|
||
"item-4": "<strong>Right to restriction</strong>: request restriction of processing in certain cases.",
|
||
"item-5": "<strong>Right to data portability</strong>: request your data in a structured, commonly used, machine-readable format, where applicable.",
|
||
"item-6": "<strong>Right to object</strong>: object to processing based on legitimate interests, including analytics, where applicable.",
|
||
"item-7": "<strong>Right to withdraw consent</strong>: if processing is based on consent, you may withdraw it at any time (withdrawal does not affect the lawfulness of processing before withdrawal)."
|
||
},
|
||
|
||
"section-12": {
|
||
"heading": "12. How to Exercise Your Rights",
|
||
"content": "To exercise your rights, contact us at <emailLink>support@rezije.app</emailLink>. To protect personal data, we may request additional information to verify your identity before responding to your request."
|
||
},
|
||
|
||
"section-13": {
|
||
"heading": "13. Right to Lodge a Complaint",
|
||
"content": "If you believe that the processing of your personal data violates applicable law, you have the right to lodge a complaint with a supervisory authority. In the Republic of Croatia, the supervisory authority is the Croatian Personal Data Protection Agency (AZOP)."
|
||
},
|
||
|
||
"section-14": {
|
||
"heading": "14. Children’s Privacy",
|
||
"content": "The Application is not intended for persons under 18 years of age, and we do not knowingly collect personal data from children. If you become aware that a child has provided us with personal data, please contact us so we can take appropriate measures."
|
||
},
|
||
|
||
"section-15": {
|
||
"heading": "15. Changes to This Policy",
|
||
"content": "We may update this Policy from time to time to reflect changes in our practices or to comply with law. If we make material changes, we will notify you via a notice in the Application and/or by email (sent to the address associated with your account) before the changes take effect."
|
||
},
|
||
|
||
"section-16": {
|
||
"heading": "16. Contact",
|
||
"content": "If you have any questions about this Privacy Policy, please contact us at <emailLink>support@rezije.app</emailLink>."
|
||
}
|
||
}
|
||
}
|