
msgid ""
msgstr ""
"Project-Id-Version:  TimeTracker\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-04-29 07:57+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: fi\n"
"Language-Team: fi <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.14.0\n"

#: app/__init__.py:867 app/__init__.py:899
msgid "Your session expired or the page was open too long. Please try again."
msgstr "Istunto on vanhentunut tai sivu oli auki liian kauan. Yritä uudelleen."

#: app/routes/admin.py:613 app/utils/decorators.py:20
msgid "Administrator access required"
msgstr "Järjestelmänvalvojan käyttöoikeudet vaaditaan"

#: app/routes/admin.py:825
msgid "User creation is disabled in demo mode."
msgstr ""

#: app/routes/admin.py:833 app/routes/admin.py:905 app/routes/kiosk.py:118
msgid "Username is required"
msgstr "Käyttäjätunnus vaaditaan"

#: app/routes/admin.py:839
msgid "User already exists"
msgstr "Käyttäjä on jo olemassa"

#: app/routes/admin.py:849 app/routes/admin.py:943
msgid "Default 'user' role not found. Please run 'flask seed_permissions_cmd' first."
msgstr ""

#: app/routes/admin.py:873
msgid "Could not create user due to a database error. Please check server logs."
msgstr "Käyttäjää ei voitu luoda tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/admin.py:877
#, python-format
msgid "User \"%(username)s\" created successfully"
msgstr "Käyttäjän \"%(username)s\" luominen onnistui"

#: app/routes/admin.py:917
msgid "Username already exists"
msgstr "Käyttäjätunnus on jo olemassa"

#: app/routes/admin.py:928
msgid "Please select a client when enabling client portal access."
msgstr "Valitse asiakas, kun otat asiakasportaalin käyttöön."

#: app/routes/admin.py:960 app/routes/auth.py:258 app/routes/auth.py:394
#: app/routes/auth.py:516 app/routes/auth.py:795 app/routes/auth.py:887
#: app/routes/client_portal.py:387 app/templates/auth/change_password.html:28
msgid "Password must be at least 8 characters long."
msgstr "Salasanan tulee olla vähintään 8 merkkiä pitkä."

#: app/routes/admin.py:970 app/routes/auth.py:261 app/routes/auth.py:799
#: app/routes/auth.py:891 app/routes/client_portal.py:391
msgid "Passwords do not match."
msgstr "Salasanat eivät täsmää."

#: app/routes/admin.py:1023
msgid "Could not update user due to a database error. Please check server logs."
msgstr "Käyttäjää ei voitu päivittää tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/admin.py:1033
#, python-format
msgid "Password reset successfully for user \"%(username)s\""
msgstr ""

#: app/routes/admin.py:1035
#, python-format
msgid "User \"%(username)s\" updated successfully"
msgstr "Käyttäjän \"%(username)s\" päivitys onnistui"

#: app/routes/admin.py:1054
msgid "Cannot delete the last administrator"
msgstr "Viimeistä järjestelmänvalvojaa ei voi poistaa"

#: app/routes/admin.py:1059
msgid "Cannot delete user with existing time entries"
msgstr "Ei voi poistaa käyttäjää, jolla on olemassa olevia aikamerkintöjä"

#: app/routes/admin.py:1078
msgid "Could not delete user due to a database error. Please check server logs."
msgstr "Käyttäjää ei voitu poistaa tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/admin.py:1081
#, python-format
msgid "User \"%(username)s\" deleted successfully"
msgstr "Käyttäjän \"%(username)s\" poistaminen onnistui"

#: app/routes/admin.py:1150
msgid "Telemetry has been enabled. Thank you for helping us improve!"
msgstr "Telemetria on otettu käyttöön. Kiitos, että autat meitä parantamaan!"

#: app/routes/admin.py:1152
msgid "Detailed analytics has been disabled. Anonymous base telemetry remains active."
msgstr ""

#: app/routes/admin.py:1196
msgid "Invalid locked client selection."
msgstr ""

#: app/routes/admin.py:1207
msgid "Selected locked client does not exist or is not active."
msgstr ""

#: app/routes/admin.py:1241
#, python-format
msgid "Cannot disable '%(module)s' because the following modules depend on it: %(dependents)s"
msgstr ""

#: app/routes/admin.py:1264
msgid "Could not update module visibility due to a database error. Please check server logs."
msgstr ""

#: app/routes/admin.py:1274
msgid "Module visibility updated successfully"
msgstr ""

#: app/routes/admin.py:1331 app/routes/setup.py:42
#, python-format
msgid "Invalid timezone: %(timezone)s"
msgstr "Virheellinen aikavyöhyke: %(timezone)s"

#: app/routes/admin.py:1378
#, python-format
msgid "Invalid invoice number pattern: %(reason)s"
msgstr ""

#: app/routes/admin.py:1543
msgid "Could not update settings due to a database error. Please check server logs."
msgstr "Asetuksia ei voitu päivittää tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/admin.py:1578
msgid "Settings updated successfully"
msgstr "Asetukset päivitetty onnistuneesti"

#: app/routes/admin.py:1631 app/routes/admin.py:1644 app/routes/user.py:249
#: app/routes/user.py:261 app/routes/user.py:288 app/routes/user.py:301
#: app/templates/admin/settings.html:766
msgid "Invalid code."
msgstr ""

#: app/routes/admin.py:1649 app/routes/user.py:202 app/routes/user.py:306
msgid "Error saving settings"
msgstr "Virhe asetusten tallentamisessa"

#: app/routes/admin.py:1753 app/routes/admin.py:2103
msgid "Invalid template JSON format. Please try again."
msgstr ""

#: app/routes/admin.py:1795 app/routes/admin.py:2152
msgid "Error: Template JSON is empty. Please try saving again."
msgstr ""

#: app/routes/admin.py:1807 app/routes/admin.py:2164
msgid "Error: Template JSON is invalid. Please try saving again."
msgstr ""

#: app/routes/admin.py:1817 app/routes/admin.py:2174
msgid "Error: Template JSON is not valid JSON. Please try saving again."
msgstr ""

#: app/routes/admin.py:1850 app/routes/admin.py:2188
msgid "Could not update PDF layout due to a database error."
msgstr "PDF-asettelua ei voitu päivittää tietokantavirheen vuoksi."

#: app/routes/admin.py:1860 app/routes/admin.py:2196
msgid "PDF layout updated successfully"
msgstr "PDF-asettelu päivitetty onnistuneesti"

#: app/routes/admin.py:1866 app/routes/admin.py:2202
msgid "PDF layout saved but template JSON verification failed. Please check the template."
msgstr ""

#: app/routes/admin.py:1996 app/routes/admin.py:2311
msgid "Could not reset PDF layout due to a database error."
msgstr "PDF-asettelua ei voitu nollata tietokantavirheen vuoksi."

#: app/routes/admin.py:1998 app/routes/admin.py:2313
msgid "PDF layout reset to defaults"
msgstr "PDF-asettelu palautettu oletusasetuksiin"

#: app/routes/admin.py:2329 app/routes/admin.py:2440
msgid "Invalid page size"
msgstr ""

#: app/routes/admin.py:2335 app/routes/admin.py:2446
msgid "Template not found for this page size"
msgstr ""

#: app/routes/admin.py:2372 app/routes/admin.py:2483
msgid "No file uploaded"
msgstr ""

#: app/routes/admin.py:2377 app/routes/admin.py:2488 app/routes/clients.py:1269
#: app/routes/comments.py:291 app/routes/expenses.py:1270
#: app/routes/invoices.py:1615 app/routes/projects.py:2028
#: app/routes/quotes.py:1132 app/routes/quotes.py:1994
#: app/routes/team_chat.py:481
msgid "No file selected"
msgstr "Tiedostoa ei ole valittu"

#: app/routes/admin.py:2387 app/routes/admin.py:2498
msgid "Invalid template JSON format. Missing 'page' property."
msgstr ""

#: app/routes/admin.py:2413 app/routes/admin.py:2524
msgid "Could not import template due to a database error."
msgstr ""

#: app/routes/admin.py:2415 app/routes/admin.py:2526
msgid "Template imported successfully"
msgstr ""

#: app/routes/admin.py:2420 app/routes/admin.py:2531
#, python-format
msgid "Invalid JSON file: %(error)s"
msgstr ""

#: app/routes/admin.py:2424 app/routes/admin.py:2535
#, python-format
msgid "Error importing template: %(error)s"
msgstr ""

#: app/routes/admin.py:2704
msgid "Invoice not found"
msgstr ""

#: app/routes/admin.py:3342 app/routes/quotes.py:495
msgid "Quote not found"
msgstr ""

#: app/routes/admin.py:3878 app/routes/admin.py:3883
msgid "No logo file selected"
msgstr "Logotiedostoa ei ole valittu"

#: app/routes/admin.py:3900 app/routes/auth.py:826
msgid "Invalid image file."
msgstr "Virheellinen kuvatiedosto."

#: app/routes/admin.py:3929
msgid "Could not save logo due to a database error. Please check server logs."
msgstr "Logoa ei voitu tallentaa tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/admin.py:3933
msgid "Company logo uploaded successfully! You can see it in the \"Current Company Logo\" section above. It will appear on invoices and PDF documents."
msgstr "Yrityksen logon lataus onnistui! Näet sen yllä olevassa \"Nykyinen yrityksen logo\" -osiossa. Se näkyy laskuissa ja PDF-dokumenteissa."

#: app/routes/admin.py:3939
msgid "Invalid file type. Allowed types: PNG, JPG, JPEG, GIF, SVG, WEBP"
msgstr "Virheellinen tiedostotyyppi. Sallitut tyypit: PNG, JPG, JPEG, GIF, SVG, WEBP"

#: app/routes/admin.py:3963
msgid "Could not remove logo due to a database error. Please check server logs."
msgstr "Logoa ei voitu poistaa tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/admin.py:3965
msgid "Company logo removed successfully. Upload a new logo in the section below if needed."
msgstr "Yrityksen logon poisto onnistui. Lataa tarvittaessa uusi logo alla olevaan osioon."

#: app/routes/admin.py:3967
msgid "No logo to remove"
msgstr "Ei poistettavaa logoa"

#: app/routes/admin.py:4097
msgid "Backup failed: archive not created"
msgstr "Varmuuskopiointi epäonnistui: arkistoa ei luotu"

#: app/routes/admin.py:4102
#, python-format
msgid "Backup failed: %(error)s"
msgstr "Varmuuskopiointi epäonnistui: %(error)s"

#: app/routes/admin.py:4114 app/routes/admin.py:4135
msgid "Invalid file type"
msgstr "Virheellinen tiedostotyyppi"

#: app/routes/admin.py:4121 app/routes/admin.py:4146
msgid "Backup file not found"
msgstr "Varmuuskopiotiedostoa ei löydy"

#: app/routes/admin.py:4144
#, python-format
msgid "Backup \"%(filename)s\" deleted successfully"
msgstr "Varmuuskopio \"%(filename)s\" poistettiin onnistuneesti"

#: app/routes/admin.py:4148
#, python-format
msgid "Failed to delete backup: %(error)s"
msgstr "Varmuuskopion poistaminen epäonnistui: %(error)s"

#: app/routes/admin.py:4167
msgid "Invalid file type. Please select a .zip backup archive."
msgstr "Virheellinen tiedostotyyppi. Valitse .zip-varmuuskopioarkisto."

#: app/routes/admin.py:4171
msgid "Backup file not found."
msgstr "Varmuuskopiotiedostoa ei löydy."

#: app/routes/admin.py:4182
msgid "Invalid file type. Please upload a .zip backup archive."
msgstr "Virheellinen tiedostotyyppi. Lataa .zip-varmuuskopioarkisto."

#: app/routes/admin.py:4189
msgid "No backup file provided"
msgstr "Varmuuskopiotiedostoa ei ole toimitettu"

#: app/routes/admin.py:4224
msgid "Restore started. You can monitor progress on this page."
msgstr "Palautus aloitettu. Voit seurata edistymistä tällä sivulla."

#: app/routes/admin.py:4362
#, fuzzy
msgid "OIDC is not enabled. Set AUTH_METHOD to \"oidc\", \"both\", or \"all\"."
msgstr "OIDC ei ole käytössä. Aseta AUTH_METHOD arvoksi \"oidc\" tai \"molemmat\"."

#: app/routes/admin.py:4367
msgid "OIDC_ISSUER is not configured"
msgstr "OIDC_ISSUER ei ole määritetty"

#: app/routes/admin.py:4375
#, python-format
msgid "✗ Failed to parse issuer URL: %(error)s"
msgstr ""

#: app/routes/admin.py:4379
msgid "Testing DNS resolution with multiple strategies..."
msgstr ""

#: app/routes/admin.py:4402
#, python-format
msgid "✓ DNS resolution successful using %(strategy)s strategy: %(ip)s"
msgstr ""

#: app/routes/admin.py:4407
#, python-format
msgid "✗ DNS resolution failed using %(strategy)s strategy: %(error)s"
msgstr ""

#: app/routes/admin.py:4417
msgid "ℹ Docker environment detected - internal service names may be available"
msgstr ""

#: app/routes/admin.py:4441
#, python-format
msgid "✓ Discovery document fetched successfully from %(url)s"
msgstr "✓ Löytöasiakirja haettu onnistuneesti osoitteesta %(url)s"

#: app/routes/admin.py:4446
#, python-format
msgid "✓ DNS strategy used: %(strategy)s"
msgstr ""

#: app/routes/admin.py:4452
#, python-format
msgid "✗ Failed to fetch discovery document: %(error)s"
msgstr "✗ Löytöasiakirjan nouto epäonnistui: %(error)s"

#: app/routes/admin.py:4457
#, python-format
msgid "✗ Unexpected error: %(error)s"
msgstr "✗ Odottamaton virhe: %(error)s"

#: app/routes/admin.py:4463
msgid "✗ Failed to retrieve discovery document"
msgstr ""

#: app/routes/admin.py:4470
msgid "✓ OAuth client is registered in application"
msgstr "✓ OAuth-asiakas on rekisteröity sovellukseen"

#: app/routes/admin.py:4473
msgid "✗ OAuth client is not registered"
msgstr "✗ OAuth-asiakasta ei ole rekisteröity"

#: app/routes/admin.py:4476
#, python-format
msgid "✗ Failed to create OAuth client: %(error)s"
msgstr "✗ OAuth-asiakkaan luominen epäonnistui: %(error)s"

#: app/routes/admin.py:4483
#, python-format
msgid "✓ %(endpoint)s: %(url)s"
msgstr "✓ %(endpoint)s: %(url)s"

#: app/routes/admin.py:4485
#, python-format
msgid "✗ Missing %(endpoint)s in discovery document"
msgstr "✗ Löytöasiakirjasta puuttuu %(endpoint)s"

#: app/routes/admin.py:4492
#, python-format
msgid "✓ Scope \"%(scope)s\" is supported by provider"
msgstr "✓ Palveluntarjoaja tukee laajuutta \"%(scope)s\"."

#: app/routes/admin.py:4498
#, python-format
msgid "⚠ Scope \"%(scope)s\" may not be supported by provider (supported: %(supported)s)"
msgstr "⚠ Palveluntarjoaja ei ehkä tue laajuutta \"%(scope)s\" (tuettu: %(supported)s)"

#: app/routes/admin.py:4506
#, python-format
msgid "ℹ Provider supports claims: %(claims)s"
msgstr "ℹ Palveluntarjoaja tukee vaatimuksia: %(claims)s"

#: app/routes/admin.py:4519
#, python-format
msgid "✓ Configured %(claim_type)s claim \"%(claim_name)s\" is supported"
msgstr "✓ Määritetty %(claim_type)s-vaatimus \"%(claim_name)s\" on tuettu"

#: app/routes/admin.py:4528
#, python-format
msgid "⚠ Configured %(claim_type)s claim \"%(claim_name)s\" not in supported claims list (may still work)"
msgstr "⚠ Määritetty %(claim_type)s-vaatimus \"%(claim_name)s\" ei ole tuettujen vaatimusten luettelossa (voi silti toimia)"

#: app/routes/admin.py:4536
msgid "OIDC configuration test completed"
msgstr "OIDC-määritystesti valmis"

#: app/routes/admin.py:5334 app/routes/admin.py:5448
#: app/routes/link_templates.py:42 app/routes/link_templates.py:98
#: app/routes/quotes.py:1433 app/routes/quotes.py:1518
#: app/routes/time_entry_templates.py:57 app/routes/time_entry_templates.py:167
msgid "Template name is required"
msgstr "Mallin nimi vaaditaan"

#: app/routes/admin.py:5340 app/templates/admin/email_templates/create.html:104
#: app/templates/admin/email_templates/edit.html:121
#, fuzzy
msgid "HTML template content is required"
msgstr "Mallin nimi vaaditaan"

#: app/routes/admin.py:5348 app/routes/admin.py:5454
msgid "A template with this name already exists"
msgstr "Tämän niminen malli on jo olemassa"

#: app/routes/admin.py:5368
msgid "Could not create email template due to a database error."
msgstr "Sähköpostimallia ei voitu luoda tietokantavirheen vuoksi."

#: app/routes/admin.py:5373
msgid "Email template created successfully"
msgstr "Sähköpostimallin luominen onnistui"

#: app/routes/admin.py:5470
msgid "Could not update email template due to a database error."
msgstr "Sähköpostimallia ei voitu päivittää tietokantavirheen vuoksi."

#: app/routes/admin.py:5473
msgid "Email template updated successfully"
msgstr "Sähköpostimallin päivitys onnistui"

#: app/routes/admin.py:5491
msgid "Cannot delete template that is in use by invoices or recurring invoices"
msgstr "Laskujen tai toistuvien laskujen käytössä olevaa mallia ei voi poistaa"

#: app/routes/admin.py:5496
msgid "Could not delete email template due to a database error."
msgstr "Sähköpostimallia ei voitu poistaa tietokantavirheen vuoksi."

#: app/routes/admin.py:5498
#, python-format
msgid "Email template \"%(name)s\" deleted successfully"
msgstr "Sähköpostimallin \"%(name)s\" poistaminen onnistui"

#: app/routes/api.py:1325
msgid "Task name and project are required"
msgstr ""

#: app/routes/api.py:1335 app/routes/tasks.py:438
msgid "Selected project does not exist or is inactive"
msgstr "Valittua projektia ei ole olemassa tai se ei ole aktiivinen"

#: app/routes/api.py:1358 app/routes/invoices_refactored.py:222
#: app/routes/invoices_refactored.py:261
#: app/routes/projects_refactored_example.py:193 app/routes/tasks.py:273
#: app/routes/timer.py:193 app/routes/timer_refactored.py:51
#: app/routes/timer_refactored.py:127
msgid "message"
msgstr "viesti"

#: app/routes/api.py:1394
#, python-format
msgid "Task \"%(name)s\" created successfully"
msgstr ""

#: app/routes/audit_logs.py:27
msgid "Audit logs table does not exist. Please run: flask db upgrade"
msgstr "Tarkastuslokitaulukkoa ei ole olemassa. Suorita: flask db upgrade"

#: app/routes/auth.py:147 app/templates/auth/change_password.html:8
msgid "You must change your password before continuing."
msgstr ""

#: app/routes/auth.py:155
msgid "Administrator accounts must enable two-factor authentication."
msgstr ""

#: app/routes/auth.py:162 app/routes/auth.py:1505
#, python-format
msgid "Welcome back, %(username)s!"
msgstr "Tervetuloa takaisin, %(username)s!"

#: app/routes/auth.py:178
msgid "Password reset is not available for this authentication method."
msgstr ""

#: app/routes/auth.py:182 app/routes/auth.py:240
msgid "Demo mode: password reset is disabled."
msgstr ""

#: app/routes/auth.py:189
msgid "If an account matches what you entered and email is configured, you'll receive a reset link shortly."
msgstr ""

#: app/routes/auth.py:213
#, fuzzy
msgid "Reset your TimeTracker password"
msgstr "Aseta salasanasi"

#: app/routes/auth.py:214
#, python-format
msgid ""
"A password reset was requested for your account.\n"
"\n"
"Use this link to set a new password:\n"
"%(url)s\n"
"\n"
"If you did not request this, you can ignore this email."
msgstr ""

#: app/routes/auth.py:246
#, fuzzy
msgid "This reset link is invalid or has expired. Please request a new one."
msgstr "Virheellinen tai vanhentunut salasanan määritystunnus. Pyydä uusi."

#: app/routes/auth.py:250
#, fuzzy
msgid "Password reset is not available for this account."
msgstr "Asiakasportaali ei ole käytössä tälle asiakkaalle."

#: app/routes/auth.py:270
msgid "Your password has been updated. You can now sign in."
msgstr ""

#: app/routes/auth.py:274
#, fuzzy
msgid "Could not reset password due to a database error."
msgstr "Salasanaa ei voitu asettaa tietokantavirheen vuoksi."

#: app/routes/auth.py:336
msgid "Invalid username format"
msgstr ""

#: app/routes/auth.py:349
msgid "Only the demo account can be used. Please use the credentials shown below."
msgstr ""

#: app/routes/auth.py:357 app/routes/auth.py:465 app/routes/auth.py:483
#: app/routes/kiosk.py:132
msgid "Password is required"
msgstr ""

#: app/routes/auth.py:363 app/routes/auth.py:439 app/routes/auth.py:471
#: app/routes/auth.py:496 app/routes/kiosk.py:123 app/routes/kiosk.py:136
msgid "Invalid username or password"
msgstr ""

#: app/routes/auth.py:391
msgid "Password is required to create an account."
msgstr ""

#: app/routes/auth.py:425
msgid "Could not create your account due to a database error. Please try again later."
msgstr "Tiliäsi ei voitu luoda tietokantavirheen vuoksi. Yritä myöhemmin uudelleen."

#: app/routes/auth.py:435 app/routes/auth.py:1387
msgid "Welcome! Your account has been created."
msgstr "Tervetuloa! Tilisi on luotu."

#: app/routes/auth.py:441
msgid "User not found. Please contact an administrator."
msgstr "Käyttäjää ei löydy. Ota yhteyttä järjestelmänvalvojaan."

#: app/routes/auth.py:449
msgid "Could not update your account role due to a database error."
msgstr "Tilin roolia ei voitu päivittää tietokantavirheen vuoksi."

#: app/routes/auth.py:455 app/routes/auth.py:1434
msgid "Account is disabled. Please contact an administrator."
msgstr "Tili on poistettu käytöstä. Ota yhteyttä järjestelmänvalvojaan."

#: app/routes/auth.py:506
msgid "No password is set for your account. Please enter a password to set one and log in."
msgstr ""

#: app/routes/auth.py:525
msgid "Could not set password due to a database error. Please try again."
msgstr ""

#: app/routes/auth.py:528
msgid "Password has been set. You are now logged in."
msgstr ""

#: app/routes/auth.py:537
msgid "Unexpected error during login. Please try again or check server logs."
msgstr "Odottamaton virhe kirjautumisen aikana. Yritä uudelleen tai tarkista palvelimen lokit."

#: app/routes/auth.py:551 app/routes/auth.py:558
#, fuzzy
msgid "Your login session expired. Please sign in again."
msgstr "Istunto on vanhentunut tai sivu oli auki liian kauan. Yritä uudelleen."

#: app/routes/auth.py:572 app/routes/auth.py:616 app/routes/auth.py:644
#, fuzzy
msgid "Invalid authentication code."
msgstr "Todennusmenetelmä"

#: app/routes/auth.py:625
#, fuzzy
msgid "Two-factor authentication enabled."
msgstr "Todennusmenetelmä"

#: app/routes/auth.py:628
#, fuzzy
msgid "Could not enable two-factor authentication due to a database error."
msgstr "Tiliäsi ei voitu luoda tietokantavirheen vuoksi."

#: app/routes/auth.py:654
#, fuzzy
msgid "Two-factor authentication disabled."
msgstr "Todennusmenetelmä"

#: app/routes/auth.py:657
#, fuzzy
msgid "Could not disable two-factor authentication due to a database error."
msgstr "Tilin roolia ei voitu päivittää tietokantavirheen vuoksi."

#: app/routes/auth.py:727
#, python-format
msgid "Goodbye, %(username)s!"
msgstr "Hyvästi, %(username)s!"

#: app/routes/auth.py:815
msgid "Invalid avatar file type. Allowed: PNG, JPG, JPEG, GIF, WEBP"
msgstr "Virheellinen avatar-tiedostotyyppi. Sallittu: PNG, JPG, JPEG, GIF, WEBP"

#: app/routes/auth.py:840
msgid "Failed to save avatar on server."
msgstr "Avatarin tallentaminen palvelimelle epäonnistui."

#: app/routes/auth.py:859
msgid "Profile updated successfully"
msgstr "Profiilin päivitys onnistui"

#: app/routes/auth.py:862
msgid "Could not update your profile due to a database error."
msgstr "Profiiliasi ei voitu päivittää tietokantavirheen vuoksi."

#: app/routes/auth.py:873
msgid "Password cannot be changed here for your account."
msgstr ""

#: app/routes/auth.py:883
msgid "New password is required"
msgstr ""

#: app/routes/auth.py:897
msgid "Current password is required"
msgstr ""

#: app/routes/auth.py:901
msgid "Current password is incorrect"
msgstr ""

#: app/routes/auth.py:911
msgid "Password changed successfully. You can now continue."
msgstr ""

#: app/routes/auth.py:915
msgid "Could not update password due to a database error."
msgstr ""

#: app/routes/auth.py:938
msgid "Avatar removed"
msgstr "Avatar poistettu"

#: app/routes/auth.py:941
msgid "Failed to remove avatar."
msgstr "Avatarin poistaminen epäonnistui."

#: app/routes/auth.py:981 app/routes/auth.py:1339
msgid "Demo mode: only the demo account can be used. Please use the credentials on the login page."
msgstr ""

#: app/routes/auth.py:1052
#, python-format
msgid "Failed to connect to Single Sign-On provider. Please contact an administrator. Error: %(error)s"
msgstr ""

#: app/routes/auth.py:1061
#, python-format
msgid "Cannot connect to Single Sign-On provider. DNS resolution may be failing. Please contact an administrator. Error: %(error)s"
msgstr ""

#: app/routes/auth.py:1070 app/routes/auth.py:1111
msgid "Single Sign-On is not configured yet. Please contact an administrator."
msgstr "Kertakirjautumista ei ole vielä määritetty. Ota yhteyttä järjestelmänvalvojaan."

#: app/routes/auth.py:1131
msgid "Single Sign-On is not configured."
msgstr "Kertakirjautumista ei ole määritetty."

#: app/routes/auth.py:1156
msgid "SSO failed: encrypted or unsupported ID tokens. Disable ID token encryption on your provider (e.g. in Authentik, leave the Encryption Key empty)."
msgstr ""

#: app/routes/auth.py:1169
msgid "SSO failed. If this repeats, check session cookie and proxy configuration."
msgstr ""

#: app/routes/auth.py:1312
msgid "Authentication failed: missing issuer or subject claim. Please check OIDC configuration."
msgstr "Todennus epäonnistui: myöntäjä- tai aihevaatimus puuttuu. Tarkista OIDC-asetukset."

#: app/routes/auth.py:1347
msgid "User account does not exist and self-registration is disabled."
msgstr "Käyttäjätiliä ei ole olemassa ja itserekisteröinti on poistettu käytöstä."

#: app/routes/auth.py:1391
msgid "Could not create your account due to a database error."
msgstr "Tiliäsi ei voitu luoda tietokantavirheen vuoksi."

#: app/routes/auth.py:1511
msgid "Unexpected error during SSO login. Please try again or contact support."
msgstr "Odottamaton virhe SSO-kirjautumisen aikana. Yritä uudelleen tai ota yhteyttä tukeen."

#: app/routes/budget_alerts.py:332
msgid "You do not have access to this project."
msgstr "Sinulla ei ole pääsyä tähän projektiin."

#: app/routes/budget_alerts.py:339
msgid "This project does not have a budget set."
msgstr "Tälle hankkeelle ei ole asetettu budjettia."

#: app/routes/calendar.py:217
msgid "Event created successfully"
msgstr "Tapahtuma luotu onnistuneesti"

#: app/routes/calendar.py:298
msgid "Event updated successfully"
msgstr "Tapahtuman päivitys onnistui"

#: app/routes/calendar.py:316
msgid "You do not have permission to delete this event."
msgstr "Sinulla ei ole lupaa poistaa tätä tapahtumaa."

#: app/routes/calendar.py:324
msgid "Failed to delete event"
msgstr "Tapahtuman poistaminen epäonnistui"

#: app/routes/calendar.py:329 app/routes/calendar.py:332
msgid "Event deleted successfully"
msgstr "Tapahtuman poistaminen onnistui"

#: app/routes/calendar.py:337
#, python-format
msgid "Error deleting event: %(error)s"
msgstr "Virhe poistettaessa tapahtumaa: %(error)s"

#: app/routes/calendar.py:364
msgid "Event moved successfully"
msgstr "Tapahtuma siirrettiin onnistuneesti"

#: app/routes/calendar.py:398
msgid "Event resized successfully"
msgstr "Tapahtuman koon muuttaminen onnistui"

#: app/routes/calendar.py:415
msgid "You do not have permission to view this event."
msgstr "Sinulla ei ole lupaa tarkastella tätä tapahtumaa."

#: app/routes/calendar.py:466
msgid "You do not have permission to edit this event."
msgstr "Sinulla ei ole lupaa muokata tätä tapahtumaa."

#: app/routes/client_notes.py:23 app/routes/clients.py:67
#: app/routes/clients.py:71
msgid "Clients module is disabled by the administrator."
msgstr ""

#: app/routes/client_notes.py:40 app/routes/client_notes.py:86
msgid "Note content cannot be empty"
msgstr "Huomautuksen sisältö ei voi olla tyhjä"

#: app/routes/client_notes.py:51
msgid "Note added successfully"
msgstr "Huomautus lisätty onnistuneesti"

#: app/routes/client_notes.py:53
msgid "Error adding note"
msgstr "Virhe muistiinpanon lisäämisessä"

#: app/routes/client_notes.py:56 app/routes/client_notes.py:58
#, python-format
msgid "Error adding note: %(error)s"
msgstr "Virhe lisättäessä huomautusta: %(error)s"

#: app/routes/client_notes.py:72 app/routes/client_notes.py:118
msgid "Note does not belong to this client"
msgstr "Huomautus ei kuulu tälle asiakkaalle"

#: app/routes/client_notes.py:77
msgid "You do not have permission to edit this note"
msgstr "Sinulla ei ole lupaa muokata tätä muistiinpanoa"

#: app/routes/client_notes.py:92 app/templates/clients/view.html:565
#: app/templates/clients/view.html:570
msgid "Error updating note"
msgstr "Virhe muistiinpanon päivittämisessä"

#: app/routes/client_notes.py:99
msgid "Note updated successfully"
msgstr "Huomautus päivitetty onnistuneesti"

#: app/routes/client_notes.py:103 app/routes/client_notes.py:105
#, python-format
msgid "Error updating note: %(error)s"
msgstr "Virhe päivitettäessä huomautusta: %(error)s"

#: app/routes/client_notes.py:123
msgid "You do not have permission to delete this note"
msgstr "Sinulla ei ole lupaa poistaa tätä muistiinpanoa"

#: app/routes/client_notes.py:132
msgid "Error deleting note"
msgstr "Virhe muistiinpanon poistamisessa"

#: app/routes/client_notes.py:139
msgid "Note deleted successfully"
msgstr "Huomautus poistettu onnistuneesti"

#: app/routes/client_notes.py:142
#, python-format
msgid "Error deleting note: %(error)s"
msgstr "Virhe poistettaessa huomautusta: %(error)s"

#: app/routes/client_portal.py:64 app/routes/client_portal.py:71
#: app/routes/client_portal.py:200 app/routes/client_portal.py:228
#: app/routes/client_portal.py:237 app/routes/client_portal.py:241
#: app/routes/client_portal.py:266
msgid "Please log in to access the client portal."
msgstr "Kirjaudu sisään päästäksesi asiakasportaaliin."

#: app/routes/client_portal.py:79 app/templates/errors/403.html:13
msgid "Access Denied"
msgstr "Käyttö estetty"

#: app/routes/client_portal.py:80 app/templates/errors/403.html:3
msgid "403 Forbidden"
msgstr "403 Kielletty"

#: app/routes/client_portal.py:81
msgid "You don't have permission to access this resource. Client portal access may not be enabled for your account."
msgstr ""

#: app/routes/client_portal.py:85
msgid "Your account may not have client portal access enabled"
msgstr ""

#: app/routes/client_portal.py:86
msgid "Your account may be inactive"
msgstr ""

#: app/routes/client_portal.py:87
msgid "You may not be assigned to a client"
msgstr ""

#: app/routes/client_portal.py:105 app/templates/errors/404.html:3
#: app/templates/errors/404.html:14
msgid "Page Not Found"
msgstr "Sivua ei löydy"

#: app/routes/client_portal.py:106
msgid "404 Not Found"
msgstr ""

#: app/routes/client_portal.py:107 app/templates/errors/404.html:17
msgid "The page you're looking for doesn't exist or has been moved."
msgstr "Etsimääsi sivua ei ole olemassa tai se on siirretty."

#: app/routes/client_portal.py:125 app/templates/errors/500.html:3
#: app/templates/errors/500.html:14
msgid "Server Error"
msgstr "Palvelinvirhe"

#: app/routes/client_portal.py:126
msgid "500 Internal Server Error"
msgstr ""

#: app/routes/client_portal.py:127
msgid "An unexpected error occurred. Please try again later or contact support if the problem persists."
msgstr ""

#: app/routes/client_portal.py:204
msgid "Client portal access is not enabled for your account."
msgstr "Asiakasportaalin käyttöoikeus ei ole käytössä tililläsi."

#: app/routes/client_portal.py:209
msgid "Your client account is inactive."
msgstr "Asiakastilisi ei ole aktiivinen."

#: app/routes/client_portal.py:329
msgid "Username and password are required."
msgstr "Käyttäjätunnus ja salasana vaaditaan."

#: app/routes/client_portal.py:336
msgid "Invalid username or password."
msgstr "Virheellinen käyttäjätunnus tai salasana."

#: app/routes/client_portal.py:343
#, python-format
msgid "Welcome, %(client_name)s!"
msgstr "Tervetuloa, %(client_name)s!"

#: app/routes/client_portal.py:357
msgid "You have been logged out."
msgstr "Sinut on kirjattu ulos."

#: app/routes/client_portal.py:367
msgid "Invalid or missing password setup token."
msgstr "Virheellinen tai puuttuu salasanan määritystunnus."

#: app/routes/client_portal.py:374
msgid "Invalid or expired password setup token. Please request a new one."
msgstr "Virheellinen tai vanhentunut salasanan määritystunnus. Pyydä uusi."

#: app/routes/client_portal.py:383 app/routes/integrations.py:563
msgid "Password is required."
msgstr "Salasana vaaditaan."

#: app/routes/client_portal.py:399
msgid "Could not set password due to a database error."
msgstr "Salasanaa ei voitu asettaa tietokantavirheen vuoksi."

#: app/routes/client_portal.py:402
msgid "Password set successfully! You can now log in to the portal."
msgstr "Salasana asetettu onnistuneesti! Voit nyt kirjautua sisään portaaliin."

#: app/routes/client_portal.py:428 app/routes/client_portal.py:564
#: app/routes/client_portal.py:590 app/routes/client_portal.py:669
msgid "Unable to load client portal data."
msgstr "Asiakasportaalin tietoja ei voi ladata."

#: app/routes/client_portal.py:525
msgid "widget_ids must be a list"
msgstr ""

#: app/routes/client_portal.py:528
#, python-format
msgid "Invalid widget id(s): %(ids)s"
msgstr ""

#: app/routes/client_portal.py:530
msgid "widget_order must be a list"
msgstr ""

#: app/routes/client_portal.py:534
#, python-format
msgid "Invalid widget id(s) in order: %(ids)s"
msgstr ""

#: app/routes/client_portal.py:620 app/routes/client_portal.py:1114
msgid "Invoice not found."
msgstr "Laskua ei löydy."

#: app/routes/client_portal.py:653 app/routes/client_portal.py:1018
#: app/routes/client_portal.py:1063
msgid "Quote not found."
msgstr "Lainausta ei löytynyt."

#: app/routes/client_portal.py:718 app/routes/client_portal.py:752
#: app/routes/client_portal.py:844
msgid "Issue reporting is not available."
msgstr ""

#: app/routes/client_portal.py:769 app/routes/issues.py:189
#: app/routes/issues.py:338
msgid "Title is required."
msgstr ""

#: app/routes/client_portal.py:786 app/routes/integrations.py:1096
#: app/routes/integrations.py:1234 app/routes/issues.py:200
msgid "Invalid project selected."
msgstr ""

#: app/routes/client_portal.py:815 app/routes/issues.py:218
msgid "Could not create issue due to a database error."
msgstr ""

#: app/routes/client_portal.py:828
msgid "Issue reported successfully. We will review it shortly."
msgstr ""

#: app/routes/client_portal.py:850
msgid "Issue not found."
msgstr ""

#: app/routes/client_portal.py:916 app/routes/client_portal.py:936
#: app/routes/client_portal.py:976 app/routes/invoice_approvals.py:124
msgid "Approval not found."
msgstr ""

#: app/routes/client_portal.py:946 app/routes/client_portal.py:991
msgid "No contact found for approval."
msgstr ""

#: app/routes/client_portal.py:955
msgid "Time entry approved successfully."
msgstr ""

#: app/routes/client_portal.py:957
#, python-format
msgid "Error approving time entry: %(error)s"
msgstr ""

#: app/routes/client_portal.py:981
msgid "Rejection reason is required."
msgstr ""

#: app/routes/client_portal.py:998
msgid "Time entry rejected."
msgstr ""

#: app/routes/client_portal.py:1000
#, python-format
msgid "Error rejecting time entry: %(error)s"
msgstr ""

#: app/routes/client_portal.py:1022
msgid "This quote cannot be accepted."
msgstr ""

#: app/routes/client_portal.py:1049
msgid "Quote accepted successfully. We will contact you shortly."
msgstr ""

#: app/routes/client_portal.py:1067
msgid "This quote cannot be rejected."
msgstr ""

#: app/routes/client_portal.py:1097
msgid "Quote rejected. We appreciate your feedback."
msgstr ""

#: app/routes/client_portal.py:1119
msgid "This invoice is already paid."
msgstr ""

#: app/routes/client_portal.py:1127
msgid "Online payment is not currently available. Please contact us for payment instructions."
msgstr ""

#: app/routes/client_portal.py:1134 app/routes/payment_gateways.py:122
msgid "Payment gateway not yet supported."
msgstr ""

#: app/routes/client_portal.py:1151
msgid "Project not found."
msgstr ""

#: app/routes/client_portal.py:1157
msgid "Comment cannot be empty."
msgstr ""

#: app/routes/client_portal.py:1167
msgid "No contact found for commenting."
msgstr ""

#: app/routes/client_portal.py:1180
msgid "Comment added successfully."
msgstr ""

#: app/routes/client_portal.py:1259
#, python-format
msgid "Marked %(count)d notifications as read."
msgstr ""

#: app/routes/client_portal.py:1357
msgid "Attachment not found or access denied."
msgstr ""

#: app/routes/client_portal.py:1382
#, fuzzy
msgid "Unable to load report data."
msgstr "Asiakasportaalin tietoja ei voi ladata."

#: app/routes/client_portal.py:1415
#, fuzzy
msgid "Client Report"
msgstr "Asiakasportaali"

#: app/routes/client_portal.py:1415 app/templates/client_portal/reports.html:15
#, fuzzy, python-format
msgid "Last %(days)s days"
msgstr "Viimeiset 7 päivää"

#: app/routes/client_portal.py:1417
#: app/templates/inventory/purchase_orders/view.html:182
#: app/templates/inventory/stock_items/view.html:271
#: app/templates/inventory/suppliers/view.html:171
#: app/templates/inventory/warehouses/view.html:165
#: app/templates/reports/builder.html:53 app/templates/reports/builder.html:411
#: app/templates/reports/builder.html:584
#: app/templates/reports/custom_view.html:61
#: app/templates/reports/unpaid_hours_report.html:42
msgid "Summary"
msgstr "Yhteenveto"

#: app/routes/client_portal.py:1418 app/templates/admin/dashboard.html:114
#: app/templates/analytics/dashboard.html:43
#: app/templates/analytics/dashboard_improved.html:35
#: app/templates/analytics/mobile_dashboard.html:31
#: app/templates/budget/project_detail.html:189
#: app/templates/client_portal/projects.html:46
#: app/templates/client_portal/reports.html:24
#: app/templates/client_portal/reports.html:91
#: app/templates/client_portal/widgets/stats.html:18
#: app/templates/clients/edit.html:184 app/templates/projects/dashboard.html:53
#: app/templates/projects/time_entries_overview.html:22
#: app/templates/reports/index.html:26
#: app/templates/reports/unpaid_hours_report.html:74
#: app/templates/reports/unpaid_hours_report.html:91
#: app/templates/timer/time_entries_overview.html:22
#: app/templates/user/profile.html:45
msgid "Total Hours"
msgstr "Tunteja yhteensä"

#: app/routes/client_portal.py:1420 app/templates/client_portal/reports.html:37
msgid "Total Invoiced"
msgstr ""

#: app/routes/client_portal.py:1421
#: app/templates/client_portal/invoices.html:40
#: app/templates/client_portal/reports.html:50
#: app/templates/invoices/list.html:131
#: app/templates/timer/_time_entries_list.html:164
#: app/templates/timer/edit_timer.html:360
#: app/templates/timer/edit_timer.html:481
#: app/templates/timer/time_entries_overview.html:105
#: app/templates/timer/time_entries_overview.html:198
#: app/templates/timer/view_timer.html:136
#: app/templates/timer/view_timer.html:140 app/utils/i18n_helpers.py:66
#: app/utils/i18n_helpers.py:78
msgid "Paid"
msgstr "Maksettu"

#: app/routes/client_portal.py:1422 app/templates/admin/pdf_layout.html:1892
#: app/templates/admin/quote_pdf_layout.html:1698
#: app/templates/client_portal/invoice_detail.html:97
#: app/templates/client_portal/reports.html:63
#: app/templates/client_portal/widgets/stats.html:42
#: app/templates/invoices/edit.html:368
msgid "Outstanding"
msgstr "Erinomaista"

#: app/routes/client_portal.py:1424 app/templates/analytics/dashboard.html:101
#: app/templates/analytics/dashboard_improved.html:168
#: app/templates/email/weekly_summary.html:104
msgid "Hours by Project"
msgstr "Tunnit projektin mukaan"

#: app/routes/client_portal.py:1425 app/routes/reports.py:1017
#: app/templates/admin/dashboard.html:335 app/templates/approvals/view.html:35
#: app/templates/audit_logs/list.html:112 app/templates/audit_logs/view.html:89
#: app/templates/budget/dashboard.html:116
#: app/templates/calendar/event_detail.html:88
#: app/templates/calendar/event_form.html:116
#: app/templates/client_portal/approvals.html:119
#: app/templates/client_portal/issue_detail.html:63
#: app/templates/client_portal/new_issue.html:41
#: app/templates/client_portal/reports.html:89
#: app/templates/client_portal/reports.html:220
#: app/templates/client_portal/time_entries.html:24
#: app/templates/client_portal/time_entries.html:63
#: app/templates/client_portal/widgets/time_entries.html:21
#: app/templates/clients/view.html:350
#: app/templates/components/offline_indicator.html:87
#: app/templates/expenses/list.html:330 app/templates/gantt/view.html:28
#: app/templates/inventory/movements/list.html:40
#: app/templates/invoices/create.html:17
#: app/templates/invoices/pdf_default.html:76 app/templates/issues/edit.html:60
#: app/templates/issues/list.html:61 app/templates/issues/list.html:95
#: app/templates/issues/list.html:112 app/templates/issues/new.html:54
#: app/templates/issues/view.html:132
#: app/templates/kanban/create_column.html:39
#: app/templates/kiosk/dashboard.html:303 app/templates/main/dashboard.html:335
#: app/templates/main/dashboard.html:344 app/templates/main/dashboard.html:733
#: app/templates/main/search.html:33 app/templates/mileage/gps.html:18
#: app/templates/recurring_invoices/list.html:24
#: app/templates/recurring_invoices/list.html:38
#: app/templates/recurring_tasks/form.html:35
#: app/templates/recurring_tasks/list.html:31
#: app/templates/recurring_tasks/list.html:47
#: app/templates/reports/builder.html:94 app/templates/reports/index.html:225
#: app/templates/reports/index.html:233
#: app/templates/reports/iterative_view.html:44
#: app/templates/reports/iterative_view.html:55
#: app/templates/reports/time_entries_report.html:35
#: app/templates/reports/time_entries_report.html:106
#: app/templates/reports/time_entries_report.html:120
#: app/templates/reports/unpaid_hours_report.html:120
#: app/templates/reports/user_report.html:76
#: app/templates/tasks/_kanban.html:1245
#: app/templates/tasks/_tasks_list.html:48 app/templates/tasks/create.html:46
#: app/templates/tasks/edit.html:53 app/templates/tasks/edit.html:201
#: app/templates/tasks/my_tasks.html:149
#: app/templates/timer/bulk_entry.html:101
#: app/templates/timer/calendar.html:148 app/templates/timer/calendar.html:858
#: app/templates/timer/calendar.html:863
#: app/templates/timer/edit_timer.html:229
#: app/templates/timer/manual_entry.html:62
#: app/templates/timer/time_entries_overview.html:89
#: app/templates/timer/timer_page.html:138
#: app/templates/timer/view_timer.html:71 app/utils/pdf_generator.py:1143
msgid "Project"
msgstr "Projekti"

#: app/routes/client_portal.py:1425 app/routes/client_portal.py:1432
#: app/templates/admin/dashboard.html:506
#: app/templates/analytics/dashboard.html:221
#: app/templates/analytics/dashboard_improved.html:215
#: app/templates/analytics/mobile_dashboard.html:161
#: app/templates/budget/project_detail.html:206
#: app/templates/client_portal/reports.html:186
#: app/templates/main/dashboard.html:499
#: app/templates/projects/dashboard.html:454
#: app/templates/projects/dashboard.html:488
#: app/templates/projects/time_entries_overview.html:70
#: app/templates/projects/time_entries_overview.html:81
#: app/templates/reports/iterative_view.html:46
#: app/templates/reports/iterative_view.html:57
#: app/templates/reports/summary.html:43 app/templates/reports/summary.html:86
msgid "Hours"
msgstr "Tuntia"

#: app/routes/client_portal.py:1425 app/templates/admin/dashboard.html:129
#: app/templates/analytics/dashboard.html:48
#: app/templates/analytics/dashboard_improved.html:44
#: app/templates/client_portal/reports.html:92
#: app/templates/reports/index.html:27
#: app/templates/timer/time_entries_overview.html:23
msgid "Billable Hours"
msgstr "Laskutettavat tunnit"

#: app/routes/client_portal.py:1431
#, fuzzy
msgid "Time by Date"
msgstr "Aikaväli"

#: app/routes/client_portal.py:1432 app/routes/reports.py:1013
#: app/templates/admin/dashboard.html:337
#: app/templates/analytics/dashboard.html:222
#: app/templates/analytics/dashboard_improved.html:216
#: app/templates/analytics/mobile_dashboard.html:162
#: app/templates/approvals/view.html:57
#: app/templates/client_portal/approvals.html:141
#: app/templates/client_portal/quote_detail.html:35
#: app/templates/client_portal/quotes.html:27
#: app/templates/client_portal/quotes.html:43
#: app/templates/client_portal/reports.html:185
#: app/templates/client_portal/reports.html:219
#: app/templates/client_portal/time_entries.html:62
#: app/templates/client_portal/widgets/time_entries.html:20
#: app/templates/clients/view.html:349
#: app/templates/contacts/communication_form.html:52
#: app/templates/expenses/dashboard.html:187
#: app/templates/expenses/list.html:296
#: app/templates/inventory/adjustments/list.html:56
#: app/templates/inventory/adjustments/list.html:67
#: app/templates/inventory/movements/list.html:54
#: app/templates/inventory/movements/list.html:68
#: app/templates/inventory/reports/movement_history.html:70
#: app/templates/inventory/reports/movement_history.html:84
#: app/templates/inventory/stock_items/history.html:62
#: app/templates/inventory/stock_items/history.html:75
#: app/templates/inventory/stock_items/view.html:239
#: app/templates/inventory/stock_items/view.html:249
#: app/templates/inventory/transfers/list.html:38
#: app/templates/inventory/transfers/list.html:53
#: app/templates/inventory/warehouses/view.html:129
#: app/templates/inventory/warehouses/view.html:139
#: app/templates/invoices/edit.html:164
#: app/templates/invoices/pdf_default.html:123
#: app/templates/main/dashboard.html:337 app/templates/main/dashboard.html:366
#: app/templates/payments/list.html:157 app/templates/projects/add_cost.html:50
#: app/templates/projects/edit_cost.html:57 app/templates/quotes/create.html:98
#: app/templates/quotes/edit.html:146 app/templates/quotes/pdf_default.html:57
#: app/templates/reports/index.html:227 app/templates/reports/index.html:235
#: app/templates/reports/iterative_view.html:42
#: app/templates/reports/iterative_view.html:53
#: app/templates/reports/time_entries_report.html:102
#: app/templates/reports/time_entries_report.html:116
#: app/templates/reports/unpaid_hours_report.html:122
#: app/templates/reports/user_report.html:74 app/templates/tasks/view.html:75
#: app/templates/timer/_time_entries_list.html:34
#: app/templates/timer/_time_entries_list.html:57
#: app/utils/pdf_generator_fallback.py:291
#: app/utils/pdf_generator_fallback.py:555
msgid "Date"
msgstr "Päivämäärä"

#: app/routes/client_portal_customization.py:50
#: app/routes/recurring_tasks.py:81 app/routes/time_approvals.py:48
#: app/routes/webhooks.py:103 app/routes/webhooks.py:126
#: app/routes/webhooks.py:169 app/routes/workflows.py:95
#: app/routes/workflows.py:116 app/routes/workforce.py:147
#: app/routes/workforce.py:169 app/routes/workforce.py:228
#: app/routes/workforce.py:251 app/routes/workforce.py:278
#: app/routes/workforce.py:331 app/routes/workforce.py:355
#: app/routes/workforce.py:398 app/routes/workforce.py:419
#: app/routes/workforce.py:565 app/routes/workforce.py:614
msgid "Access denied"
msgstr "Käyttö estetty"

#: app/routes/client_portal_customization.py:111
msgid "File too large. Maximum 5MB."
msgstr ""

#: app/routes/client_portal_customization.py:139
msgid "Portal customization updated successfully"
msgstr ""

#: app/routes/clients.py:89
msgid "Search query is too long. Maximum 200 characters."
msgstr ""

#: app/routes/clients.py:255 app/routes/clients.py:256
msgid "You do not have permission to create clients"
msgstr "Sinulla ei ole lupaa luoda asiakkaita"

#: app/routes/clients.py:285 app/routes/clients.py:601
msgid "Client name is required"
msgstr "Asiakkaan nimi vaaditaan"

#: app/routes/clients.py:296 app/routes/clients.py:610
msgid "A client with this name already exists"
msgstr "Tämänniminen asiakas on jo olemassa"

#: app/routes/clients.py:307
msgid "Invalid email address"
msgstr ""

#: app/routes/clients.py:316 app/routes/clients.py:620 app/routes/offers.py:92
#: app/routes/offers.py:224 app/routes/projects.py:349
#: app/routes/projects.py:953 app/routes/quotes.py:197
msgid "Invalid hourly rate format"
msgstr "Virheellinen tuntihinnan muoto"

#: app/routes/clients.py:325 app/routes/clients.py:631
msgid "Prepaid hours must be a positive number."
msgstr "Ennakkomaksutuntien on oltava positiivinen luku."

#: app/routes/clients.py:337 app/routes/clients.py:645
msgid "Prepaid reset day must be between 1 and 28."
msgstr "Prepaid-nollauspäivän on oltava välillä 1–28."

#: app/routes/clients.py:359 app/routes/clients.py:364
#: app/routes/clients.py:686 app/routes/projects.py:433
#: app/routes/projects.py:1048
#, python-format
msgid "Custom field '%(field)s' is required"
msgstr ""

#: app/routes/clients.py:389
msgid "Could not create client due to a database error. Please check server logs."
msgstr "Asiakasohjelmaa ei voitu luoda tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/clients.py:439 app/routes/clients.py:580
#, fuzzy
msgid "You do not have access to this client."
msgstr "Sinulla ei ole pääsyä tähän projektiin."

#: app/routes/clients.py:585
msgid "You do not have permission to edit clients"
msgstr "Sinulla ei ole lupaa muokata asiakkaita"

#: app/routes/clients.py:660
msgid "Portal username is required when enabling portal access."
msgstr "Portaalin käyttäjätunnus vaaditaan portaalin käyttöönoton yhteydessä."

#: app/routes/clients.py:669
msgid "This portal username is already in use by another client."
msgstr "Tämä portaalin käyttäjätunnus on jo toisen asiakkaan käytössä."

#: app/routes/clients.py:719
msgid "Could not update client due to a database error. Please check server logs."
msgstr "Asiakasohjelmaa ei voitu päivittää tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/clients.py:742
msgid "You do not have permission to send portal emails"
msgstr "Sinulla ei ole lupaa lähettää portaalisähköposteja"

#: app/routes/clients.py:747
msgid "Client portal is not enabled for this client."
msgstr "Asiakasportaali ei ole käytössä tälle asiakkaalle."

#: app/routes/clients.py:751
msgid "Portal username is not set for this client."
msgstr "Portaalin käyttäjätunnusta ei ole asetettu tälle asiakkaalle."

#: app/routes/clients.py:755
msgid "Client email address is not set. Cannot send password setup email."
msgstr "Asiakkaan sähköpostiosoitetta ei ole asetettu. Salasanan asetussähköpostia ei voi lähettää."

#: app/routes/clients.py:762
msgid "Could not generate password setup token due to a database error."
msgstr "Salasanan määritystunnusta ei voitu luoda tietokantavirheen vuoksi."

#: app/routes/clients.py:777
#, python-format
msgid "Password setup email sent successfully to %(email)s"
msgstr "Salasanan asetussähköposti lähetetty onnistuneesti osoitteeseen %(email)s"

#: app/routes/clients.py:788
msgid "Email server is not configured. Please configure email settings in Admin → Email Configuration or set MAIL_SERVER environment variable."
msgstr "Sähköpostipalvelinta ei ole määritetty. Määritä sähköpostiasetukset kohdassa Admin → Email Configuration tai aseta MAIL_SERVER-ympäristömuuttuja."

#: app/routes/clients.py:795
msgid "Failed to send password setup email. Please check email configuration and server logs for details."
msgstr "Salasanan asetussähköpostin lähettäminen epäonnistui. Tarkista sähköpostin määritykset ja palvelimen lokit saadaksesi lisätietoja."

#: app/routes/clients.py:802
#, python-format
msgid "An error occurred while sending the email: %(error)s"
msgstr "Sähköpostia lähetettäessä tapahtui virhe: %(error)s"

#: app/routes/clients.py:815
msgid "You do not have permission to archive clients"
msgstr "Sinulla ei ole lupaa arkistoida asiakkaita"

#: app/routes/clients.py:819
msgid "Client is already inactive"
msgstr "Asiakas on jo epäaktiivinen"

#: app/routes/clients.py:844
msgid "You do not have permission to activate clients"
msgstr "Sinulla ei ole lupaa aktivoida asiakkaita"

#: app/routes/clients.py:848
msgid "Client is already active"
msgstr "Asiakas on jo aktiivinen"

#: app/routes/clients.py:874 app/routes/clients.py:931
msgid "You do not have permission to delete clients"
msgstr "Sinulla ei ole lupaa poistaa asiakkaita"

#: app/routes/clients.py:879
msgid "Cannot delete client with existing projects. Please delete all projects first."
msgstr ""

#: app/routes/clients.py:886
msgid "Cannot delete client with existing invoices. Please delete all invoices first before deleting the client."
msgstr ""

#: app/routes/clients.py:904
msgid "Could not delete client due to a database error. Please check server logs."
msgstr "Asiakasohjelmaa ei voitu poistaa tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/clients.py:937
msgid "No clients selected for deletion"
msgstr "Poistettavia asiakkaita ei ole valittu"

#: app/routes/clients.py:987
msgid "Could not delete clients due to a database error. Please check server logs."
msgstr "Asiakkaita ei voitu poistaa tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/clients.py:1007
msgid "No clients were deleted"
msgstr "Asiakkaita ei poistettu"

#: app/routes/clients.py:1018
msgid "You do not have permission to change client status"
msgstr "Sinulla ei ole lupaa muuttaa asiakkaan tilaa"

#: app/routes/clients.py:1025
msgid "No clients selected"
msgstr "Asiakkaita ei ole valittu"

#: app/routes/clients.py:1029 app/routes/projects.py:1354
#: app/routes/tasks.py:632
msgid "Invalid status"
msgstr "Virheellinen tila"

#: app/routes/clients.py:1060
msgid "Could not update client status due to a database error. Please check server logs."
msgstr "Asiakkaan tilaa ei voitu päivittää tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/clients.py:1077
msgid "No clients were updated"
msgstr "Asiakkaita ei ole päivitetty"

#: app/routes/clients.py:1264 app/routes/comments.py:286
#: app/routes/expenses.py:1264 app/routes/invoices.py:1608
#: app/routes/projects.py:2023 app/routes/quotes.py:1127
#: app/routes/quotes.py:1987 app/routes/team_chat.py:477
msgid "No file provided"
msgstr "Ei tiedostoa"

#: app/routes/clients.py:1273 app/routes/comments.py:295
#: app/routes/projects.py:2032 app/routes/quotes.py:1136
msgid "File type not allowed"
msgstr "Tiedostotyyppiä ei sallita"

#: app/routes/clients.py:1282 app/routes/comments.py:304
#: app/routes/projects.py:2041 app/routes/quotes.py:1145
msgid "File size exceeds maximum allowed size (10 MB)"
msgstr "Tiedoston koko ylittää suurimman sallitun koon (10 Mt)"

#: app/routes/clients.py:1319 app/routes/clients.py:1335
#: app/routes/comments.py:337 app/routes/projects.py:2078
#: app/routes/projects.py:2094 app/routes/quotes.py:1191
msgid "Could not upload attachment due to a database error. Please check server logs."
msgstr "Liitettä ei voitu ladata tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/clients.py:1332 app/routes/projects.py:2091
msgid "The attachments feature requires a database migration. Please run: flask db upgrade"
msgstr ""

#: app/routes/clients.py:1357 app/routes/comments.py:354
#: app/routes/projects.py:2116 app/routes/quotes.py:1212
msgid "Attachment uploaded successfully"
msgstr "Liite lähetetty onnistuneesti"

#: app/routes/clients.py:1376 app/routes/comments.py:369
#: app/routes/projects.py:2135 app/routes/quotes.py:1236
#: app/routes/team_chat.py:424
msgid "File not found"
msgstr "Tiedostoa ei löydy"

#: app/routes/clients.py:1408 app/routes/projects.py:2169
#: app/routes/quotes.py:1275
msgid "Could not delete attachment due to a database error. Please check server logs."
msgstr "Liitettä ei voitu poistaa tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/clients.py:1418 app/routes/comments.py:402
#: app/routes/projects.py:2184 app/routes/quotes.py:1285
msgid "Attachment deleted successfully"
msgstr "Liitteen poistaminen onnistui"

#: app/routes/comments.py:30 app/routes/comments.py:117
msgid "Comment content cannot be empty"
msgstr "Kommentin sisältö ei voi olla tyhjä"

#: app/routes/comments.py:34
msgid "Comment must be associated with a project, task, or quote"
msgstr "Kommentin on liityttävä projektiin, tehtävään tai tarjoukseen"

#: app/routes/comments.py:40
msgid "Comment cannot be associated with multiple targets"
msgstr "Kommenttia ei voi liittää useisiin kohteisiin"

#: app/routes/comments.py:64
msgid "Invalid parent comment"
msgstr "Virheellinen vanhemman kommentti"

#: app/routes/comments.py:83
msgid "Comment added successfully"
msgstr "Kommentti lisätty onnistuneesti"

#: app/routes/comments.py:85
msgid "Error adding comment"
msgstr "Virhe kommentin lisäämisessä"

#: app/routes/comments.py:88
#, python-format
msgid "Error adding comment: %(error)s"
msgstr "Virhe lisättäessä kommenttia: %(error)s"

#: app/routes/comments.py:109
msgid "You do not have permission to edit this comment"
msgstr "Sinulla ei ole lupaa muokata tätä kommenttia"

#: app/routes/comments.py:126
msgid "Comment updated successfully"
msgstr "Kommentin päivitys onnistui"

#: app/routes/comments.py:139
#, python-format
msgid "Error updating comment: %(error)s"
msgstr "Virhe päivitettäessä kommenttia: %(error)s"

#: app/routes/comments.py:152
msgid "You do not have permission to delete this comment"
msgstr "Sinulla ei ole lupaa poistaa tätä kommenttia"

#: app/routes/comments.py:167
msgid "Comment deleted successfully"
msgstr "Kommentin poistaminen onnistui"

#: app/routes/comments.py:180
#, python-format
msgid "Error deleting comment: %(error)s"
msgstr "Virhe poistettaessa kommenttia: %(error)s"

#: app/routes/comments.py:274
msgid "You do not have permission to add attachments to this comment"
msgstr ""

#: app/routes/comments.py:350
#, python-format
msgid "Error uploading attachment: %(error)s"
msgstr ""

#: app/routes/comments.py:386 app/routes/quotes.py:1258
msgid "You do not have permission to delete this attachment"
msgstr "Sinulla ei ole lupaa poistaa tätä liitettä"

#: app/routes/comments.py:404
msgid "Error deleting attachment"
msgstr ""

#: app/routes/comments.py:406
#, python-format
msgid "Error deleting attachment: %(error)s"
msgstr ""

#: app/routes/contacts.py:62
msgid "Contact created successfully"
msgstr "Yhteystietojen luominen onnistui"

#: app/routes/contacts.py:66
#, python-format
msgid "Error creating contact: %(error)s"
msgstr "Virhe luotaessa yhteystietoa: %(error)s"

#: app/routes/contacts.py:109
msgid "Contact updated successfully"
msgstr "Yhteystietojen päivitys onnistui"

#: app/routes/contacts.py:113
#, python-format
msgid "Error updating contact: %(error)s"
msgstr "Virhe päivitettäessä yhteystietoa: %(error)s"

#: app/routes/contacts.py:129
msgid "Contact deleted successfully"
msgstr "Yhteyshenkilön poistaminen onnistui"

#: app/routes/contacts.py:132
#, python-format
msgid "Error deleting contact: %(error)s"
msgstr "Virhe poistettaessa yhteystietoa: %(error)s"

#: app/routes/contacts.py:146
msgid "Contact set as primary"
msgstr "Yhteyshenkilö asetettu ensisijaiseksi"

#: app/routes/contacts.py:149
#, python-format
msgid "Error setting primary contact: %(error)s"
msgstr "Virhe ensisijaisen yhteyshenkilön asettamisessa: %(error)s"

#: app/routes/contacts.py:192
msgid "Communication recorded successfully"
msgstr "Viestintä tallennettu onnistuneesti"

#: app/routes/contacts.py:196
#, python-format
msgid "Error recording communication: %(error)s"
msgstr "Virhe tallennettaessa viestintää: %(error)s"

#: app/routes/custom_field_definitions.py:44
#: app/routes/custom_field_definitions.py:101 app/routes/link_templates.py:54
#: app/routes/link_templates.py:110
msgid "Field key is required"
msgstr ""

#: app/routes/custom_field_definitions.py:48
#: app/routes/custom_field_definitions.py:105 app/routes/kanban.py:240
msgid "Label is required"
msgstr "Tunniste vaaditaan"

#: app/routes/custom_field_definitions.py:53
#: app/routes/custom_field_definitions.py:110
msgid "Field key must contain only letters, numbers, and underscores"
msgstr ""

#: app/routes/custom_field_definitions.py:59
#: app/routes/custom_field_definitions.py:118
msgid "A custom field definition with this key already exists"
msgstr ""

#: app/routes/custom_field_definitions.py:75
msgid "Could not create custom field definition due to a database error."
msgstr ""

#: app/routes/custom_field_definitions.py:78
msgid "Custom field definition created successfully"
msgstr ""

#: app/routes/custom_field_definitions.py:131
msgid "Could not update custom field definition due to a database error."
msgstr ""

#: app/routes/custom_field_definitions.py:134
msgid "Custom field definition updated successfully"
msgstr ""

#: app/routes/custom_field_definitions.py:167
msgid "Could not remove custom field from clients due to a database error."
msgstr ""

#: app/routes/custom_field_definitions.py:174
msgid "Could not delete custom field definition due to a database error."
msgstr ""

#: app/routes/custom_field_definitions.py:178
#, python-format
msgid "Custom field definition deleted successfully. The field was removed from %(count)d client(s)."
msgstr ""

#: app/routes/custom_field_definitions.py:185
msgid "Custom field definition deleted successfully"
msgstr ""

#: app/routes/custom_reports.py:43 app/routes/custom_reports.py:661
msgid "You do not have permission to edit this report."
msgstr ""

#: app/routes/custom_reports.py:164
#, python-format
msgid "Report %(action)s successfully"
msgstr ""

#: app/routes/custom_reports.py:192
msgid "You do not have permission to view this report."
msgstr ""

#: app/routes/custom_reports.py:699
msgid "You do not have permission to delete this report view."
msgstr ""

#: app/routes/custom_reports.py:710
#, python-format
msgid "Cannot delete report view: it is used in %(count)d scheduled report(s)."
msgstr ""

#: app/routes/custom_reports.py:716
#, python-format
msgid "Report view \"%(name)s\" deleted successfully."
msgstr ""

#: app/routes/custom_reports.py:718
msgid "Could not delete report view due to a database error"
msgstr ""

#: app/routes/deals.py:107 app/routes/deals.py:192
msgid "Invalid deal value"
msgstr "Virheellinen tarjouksen arvo"

#: app/routes/deals.py:144
msgid "Deal created successfully"
msgstr "Kauppa luotu onnistuneesti"

#: app/routes/deals.py:148
#, python-format
msgid "Error creating deal: %(error)s"
msgstr "Virhe tarjouksen luomisessa: %(error)s"

#: app/routes/deals.py:224
msgid "Deal updated successfully"
msgstr "Sopimuksen päivitys onnistui"

#: app/routes/deals.py:228
#, python-format
msgid "Error updating deal: %(error)s"
msgstr "Virhe päivitettäessä sopimusta: %(error)s"

#: app/routes/deals.py:258
msgid "Deal closed as won"
msgstr "Kauppa suljettiin voitettuna"

#: app/routes/deals.py:261 app/routes/deals.py:289
#, python-format
msgid "Error closing deal: %(error)s"
msgstr "Virhe suljettaessa sopimusta: %(error)s"

#: app/routes/deals.py:286
msgid "Deal closed as lost"
msgstr "Kauppa päättyi menetettynä"

#: app/routes/deals.py:326 app/routes/leads.py:339
msgid "Activity recorded successfully"
msgstr "Toiminnan tallennus onnistui"

#: app/routes/deals.py:330 app/routes/leads.py:343
#, python-format
msgid "Error recording activity: %(error)s"
msgstr "Virhe tallennettaessa toimintaa: %(error)s"

#: app/routes/expense_categories.py:53 app/routes/expense_categories.py:143
msgid "Category name is required"
msgstr "Luokan nimi vaaditaan"

#: app/routes/expense_categories.py:88
msgid "Expense category created successfully"
msgstr "Kululuokka luotu onnistuneesti"

#: app/routes/expense_categories.py:93 app/routes/expense_categories.py:100
msgid "Error creating expense category"
msgstr "Virhe luotaessa kululuokkaa"

#: app/routes/expense_categories.py:174
msgid "Expense category updated successfully"
msgstr "Kululuokan päivitys onnistui"

#: app/routes/expense_categories.py:179 app/routes/expense_categories.py:186
msgid "Error updating expense category"
msgstr "Virhe kululuokan päivittämisessä"

#: app/routes/expense_categories.py:203
msgid "Expense category deactivated successfully"
msgstr "Kululuokka deaktivoitu onnistuneesti"

#: app/routes/expense_categories.py:207 app/routes/expense_categories.py:213
msgid "Error deactivating expense category"
msgstr "Virhe kululuokan deaktivoinnissa"

#: app/routes/expenses.py:286
msgid "Title is required"
msgstr "Otsikko vaaditaan"

#: app/routes/expenses.py:290
msgid "Category is required"
msgstr "Luokka vaaditaan"

#: app/routes/expenses.py:294
msgid "Amount is required"
msgstr "Määrä vaaditaan"

#: app/routes/expenses.py:298
msgid "Expense date is required"
msgstr "Kulutuspäivä vaaditaan"

#: app/routes/expenses.py:305 app/routes/expenses.py:555
#: app/routes/expenses.py:1388 app/routes/mileage.py:362
#: app/routes/per_diem.py:312 app/routes/projects.py:1618
#: app/routes/projects.py:1689 app/routes/reports.py:129
#: app/routes/reports.py:189 app/routes/reports.py:369
#: app/routes/reports.py:696 app/routes/reports.py:882
#: app/routes/reports.py:964 app/routes/reports.py:1005
#: app/routes/reports.py:1075 app/routes/reports.py:1155
#: app/routes/reports.py:1252 app/routes/reports.py:1427
#: app/routes/reports.py:1506 app/routes/reports.py:1657
#: app/routes/reports.py:1753 app/routes/timer.py:1703
#: app/routes/weekly_goals.py:89 app/templates/timer/calendar.html:1152
msgid "Invalid date format"
msgstr "Virheellinen päivämäärän muoto"

#: app/routes/expenses.py:313 app/routes/expenses.py:563
#: app/routes/expenses.py:1396 app/routes/projects.py:1611
#: app/routes/projects.py:1682
msgid "Invalid amount format"
msgstr "Virheellinen summan muoto"

#: app/routes/expenses.py:333 app/routes/issues.py:184
#: app/routes/mileage.py:373 app/routes/per_diem.py:368
#: app/routes/recurring_invoices.py:100 app/routes/timer.py:122
#: app/routes/timer.py:1362
msgid "Selected project does not match the locked client."
msgstr ""

#: app/routes/expenses.py:372 app/routes/expenses.py:632
msgid "Error saving receipt file. Please check directory permissions."
msgstr ""

#: app/routes/expenses.py:375 app/routes/expenses.py:635
msgid "Error uploading receipt file."
msgstr ""

#: app/routes/expenses.py:403
msgid "Expense created successfully"
msgstr "Kulu luotu onnistuneesti"

#: app/routes/expenses.py:418 app/routes/expenses.py:423
#: app/routes/expenses.py:1443 app/routes/expenses.py:1448
msgid "Error creating expense"
msgstr "Virhe kuluja luotaessa"

#: app/routes/expenses.py:435
msgid "You do not have permission to view this expense"
msgstr "Sinulla ei ole lupaa tarkastella tätä kulua"

#: app/routes/expenses.py:507
msgid "You do not have permission to edit this expense"
msgstr "Sinulla ei ole lupaa muokata tätä kulua"

#: app/routes/expenses.py:512
msgid "Cannot edit approved or reimbursed expenses"
msgstr "Hyväksyttyjä tai korvattuja kuluja ei voi muokata"

#: app/routes/expenses.py:548 app/routes/expenses.py:1381
#: app/routes/mileage.py:355 app/routes/per_diem.py:304
#: app/routes/per_diem.py:764 app/routes/per_diem.py:820
msgid "Please fill in all required fields"
msgstr "Täytä kaikki pakolliset kentät"

#: app/routes/expenses.py:640
msgid "Expense updated successfully"
msgstr "Kulujen päivitys onnistui"

#: app/routes/expenses.py:645 app/routes/expenses.py:650
msgid "Error updating expense"
msgstr "Virhe kulujen päivittämisessä"

#: app/routes/expenses.py:662
msgid "You do not have permission to delete this expense"
msgstr "Sinulla ei ole lupaa poistaa tätä kulua"

#: app/routes/expenses.py:667
msgid "Cannot delete approved or invoiced expenses"
msgstr "Hyväksyttyjä tai laskutettuja kuluja ei voi poistaa"

#: app/routes/expenses.py:684
msgid "Expense deleted successfully"
msgstr "Kulu poistettu onnistuneesti"

#: app/routes/expenses.py:688 app/routes/expenses.py:692
msgid "Error deleting expense"
msgstr "Virhe kulujen poistamisessa"

#: app/routes/expenses.py:704
msgid "No expenses selected for deletion"
msgstr "Poistettavia kuluja ei ole valittu"

#: app/routes/expenses.py:752
msgid "Could not delete expenses due to a database error. Please check server logs."
msgstr "Kuluja ei voitu poistaa tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/expenses.py:757
#, python-format
msgid "Successfully deleted %(count)d expense(s)"
msgstr "%(count)d kulu(tta) poistettu onnistuneesti"

#: app/routes/expenses.py:761
#, python-format
msgid "Skipped %(count)d expense(s): %(errors)s"
msgstr "Ohitettu %(count)d kulu(tta): %(errors)s"

#: app/routes/expenses.py:775
msgid "No expenses selected"
msgstr "Kuluja ei ole valittu"

#: app/routes/expenses.py:781 app/routes/invoices.py:834
#: app/routes/mileage.py:631 app/routes/payments.py:544
#: app/routes/per_diem.py:617 app/routes/tasks.py:918
msgid "Invalid status value"
msgstr "Virheellinen tila-arvo"

#: app/routes/expenses.py:811
msgid "Could not update expenses due to a database error"
msgstr "Kuluja ei voitu päivittää tietokantavirheen vuoksi"

#: app/routes/expenses.py:815
#, python-format
msgid "Successfully updated %(count)d expense(s) to %(status)s"
msgstr "%(count)d kulu(t) päivitetty onnistuneesti arvoon %(status)s"

#: app/routes/expenses.py:824
#, fuzzy, python-format
msgid "Skipped %(count)d expense(s): %(summary)s"
msgstr "Ohitettu %(count)d kulu(tta): %(errors)s"

#: app/routes/expenses.py:826
#, python-format
msgid "Skipped %(count)d expense(s) (no permission)"
msgstr "Ohitettu %(count)d kulu(tta) (ei lupaa)"

#: app/routes/expenses.py:836
msgid "Only administrators can approve expenses"
msgstr "Vain järjestelmänvalvojat voivat hyväksyä kulut"

#: app/routes/expenses.py:842
msgid "Only pending expenses can be approved"
msgstr "Vain odottavat kulut voidaan hyväksyä"

#: app/routes/expenses.py:850
msgid "Expense approved successfully"
msgstr "Kulu hyväksytty"

#: app/routes/expenses.py:854 app/routes/expenses.py:858
msgid "Error approving expense"
msgstr "Virhe kulujen hyväksymisessä"

#: app/routes/expenses.py:868
msgid "Only administrators can reject expenses"
msgstr "Vain järjestelmänvalvojat voivat hylätä kulut"

#: app/routes/expenses.py:874
msgid "Only pending expenses can be rejected"
msgstr "Vain odottavat kulut voidaan hylätä"

#: app/routes/expenses.py:880 app/routes/mileage.py:735
#: app/routes/per_diem.py:709 app/routes/quotes.py:1389
#: app/routes/time_approvals.py:92 app/routes/workforce.py:173
msgid "Rejection reason is required"
msgstr "Hylkäämisen syy vaaditaan"

#: app/routes/expenses.py:886
msgid "Expense rejected"
msgstr "Kulutus hylätty"

#: app/routes/expenses.py:890 app/routes/expenses.py:894
msgid "Error rejecting expense"
msgstr "Virhe kulujen hylkäämisessä"

#: app/routes/expenses.py:904
msgid "Only administrators can mark expenses as reimbursed"
msgstr "Vain ylläpitäjät voivat merkitä kulut korvatuiksi"

#: app/routes/expenses.py:910
msgid "Only approved expenses can be marked as reimbursed"
msgstr "Vain hyväksytyt kulut voidaan merkitä korvatuiksi"

#: app/routes/expenses.py:914
msgid "This expense is not marked as reimbursable"
msgstr "Tätä kulua ei ole merkitty korvattavaksi"

#: app/routes/expenses.py:921
msgid "Expense marked as reimbursed"
msgstr "Kulut merkitty korvatuksi"

#: app/routes/expenses.py:925 app/routes/expenses.py:929
msgid "Error marking expense as reimbursed"
msgstr "Virhe merkittäessä kuluja korvatuiksi"

#: app/routes/expenses.py:1260
msgid "OCR is not available. Please contact your administrator."
msgstr "OCR ei ole käytettävissä. Ota yhteyttä järjestelmänvalvojaasi."

#: app/routes/expenses.py:1274
msgid "Invalid file type. Allowed types: png, jpg, jpeg, gif, pdf"
msgstr "Virheellinen tiedostotyyppi. Sallitut tyypit: png, jpg, jpeg, gif, pdf"

#: app/routes/expenses.py:1329
msgid "Receipt scanned successfully! You can now create an expense with the extracted data."
msgstr "Kuitti skannattu onnistuneesti! Voit nyt luoda kuluja poimituista tiedoista."

#: app/routes/expenses.py:1334
msgid "Error scanning receipt. Please try again or enter the expense manually."
msgstr "Virhe skannattaessa kuittia. Yritä uudelleen tai syötä kulut manuaalisesti."

#: app/routes/expenses.py:1347
msgid "No scanned receipt data found. Please scan a receipt first."
msgstr "Skannattuja kuittitietoja ei löytynyt. Skannaa ensin kuitti."

#: app/routes/expenses.py:1434
msgid "Expense created successfully from scanned receipt"
msgstr "Kulu luotu onnistuneesti skannatusta kuitista"

#: app/routes/integrations.py:67
#, fuzzy
msgid "Permission denied."
msgstr "Käyttöoikeuksia ei ole määritetty."

#: app/routes/integrations.py:105 app/routes/integrations.py:1372
msgid "Integration provider not available."
msgstr ""

#: app/routes/integrations.py:111 app/templates/integrations/manage.html:665
msgid "Trello integration must be configured by an administrator."
msgstr ""

#: app/routes/integrations.py:132
msgid "Only administrators can set up global integrations."
msgstr ""

#: app/routes/integrations.py:154 app/routes/integrations.py:275
msgid "Could not initialize connector."
msgstr ""

#: app/routes/integrations.py:185
msgid "Google Calendar OAuth credentials need to be configured first. Redirecting to setup..."
msgstr ""

#: app/routes/integrations.py:189
msgid "Google Calendar integration needs to be configured by an administrator first."
msgstr ""

#: app/routes/integrations.py:191
msgid "OAuth credentials not configured. Please configure them first."
msgstr ""

#: app/routes/integrations.py:194
msgid "Integration not configured. Please ask an administrator to set up OAuth credentials."
msgstr ""

#: app/routes/integrations.py:210
#, python-format
msgid "Authorization failed: %(error)s"
msgstr ""

#: app/routes/integrations.py:214
msgid "Authorization code not received."
msgstr ""

#: app/routes/integrations.py:225 app/routes/integrations.py:509
#: app/routes/integrations.py:809 app/routes/integrations.py:857
#: app/routes/integrations.py:898 app/routes/integrations.py:923
#: app/routes/integrations.py:952
msgid "Integration not found."
msgstr ""

#: app/routes/integrations.py:262
msgid "Invalid state parameter. Please try connecting again."
msgstr ""

#: app/routes/integrations.py:297
msgid "Integration connected successfully!"
msgstr ""

#: app/routes/integrations.py:302
#, python-format
msgid "Integration connected but connection test failed: %(message)s"
msgstr ""

#: app/routes/integrations.py:312
#, python-format
msgid "Error connecting integration: %(error)s"
msgstr ""

#: app/routes/integrations.py:366 app/routes/integrations.py:1399
msgid "Only administrators can configure global integrations."
msgstr ""

#: app/routes/integrations.py:379
msgid "Trello API Key is required."
msgstr ""

#: app/routes/integrations.py:385
msgid "Trello API Secret is required for new setup."
msgstr ""

#: app/routes/integrations.py:411
msgid "OAuth Client ID is required."
msgstr ""

#: app/routes/integrations.py:417
msgid "OAuth Client Secret is required for new setup."
msgstr ""

#: app/routes/integrations.py:473
msgid "GitLab Instance URL must be a valid URL (e.g., https://gitlab.com)."
msgstr ""

#: app/routes/integrations.py:476
msgid "GitLab Instance URL format is invalid."
msgstr ""

#: app/routes/integrations.py:492
msgid "Integration credentials updated successfully."
msgstr ""

#: app/routes/integrations.py:495
msgid "Users can now connect their Google Calendar. They will be automatically redirected to Google for authorization."
msgstr ""

#: app/routes/integrations.py:502
msgid "Failed to update credentials."
msgstr ""

#: app/routes/integrations.py:506
#, fuzzy
msgid "Invalid action for this integration."
msgstr "REST API integraatioita varten"

#: app/routes/integrations.py:513
#, fuzzy
msgid "Linear API key is required."
msgstr "Asiakkaan nimi vaaditaan"

#: app/routes/integrations.py:527
msgid "Linear API key saved. Use Sync to import issues as tasks."
msgstr ""

#: app/routes/integrations.py:529
msgid "Could not save API key."
msgstr ""

#: app/routes/integrations.py:536
msgid "This action is only available for CalDAV integrations."
msgstr ""

#: app/routes/integrations.py:542 app/routes/integrations.py:594
msgid "Integration not found. Please connect the integration first."
msgstr ""

#: app/routes/integrations.py:550 app/routes/integrations.py:1084
msgid "Username is required."
msgstr ""

#: app/routes/integrations.py:556 app/routes/integrations.py:1086
msgid "Password is required for new setup."
msgstr ""

#: app/routes/integrations.py:578
msgid "CalDAV credentials updated successfully."
msgstr ""

#: app/routes/integrations.py:584
#, python-format
msgid "Failed to update CalDAV credentials: %(message)s"
msgstr ""

#: app/routes/integrations.py:644
#, python-format
msgid "Invalid number for field %(field)s"
msgstr ""

#: app/routes/integrations.py:651 app/routes/integrations.py:673
#, python-format
msgid "Field %(field)s is required"
msgstr ""

#: app/routes/integrations.py:664 app/routes/integrations.py:1451
#, python-format
msgid "Invalid JSON for field %(field)s"
msgstr ""

#: app/routes/integrations.py:697
msgid "Integration configuration updated successfully."
msgstr ""

#: app/routes/integrations.py:700
msgid "Failed to update configuration."
msgstr ""

#: app/routes/integrations.py:879
msgid "Connection test successful!"
msgstr ""

#: app/routes/integrations.py:881
#, python-format
msgid "Connection test failed: %(message)s"
msgstr ""

#: app/routes/integrations.py:904
msgid "Integration deleted successfully."
msgstr ""

#: app/routes/integrations.py:932
msgid "Integration reset successfully. You can now reconfigure it."
msgstr ""

#: app/routes/integrations.py:957
msgid "Connector not available."
msgstr ""

#: app/routes/integrations.py:975
#, python-format
msgid "Sync completed successfully. %(details)s"
msgstr ""

#: app/routes/integrations.py:979
#, python-format
msgid "Sync failed: %(message)s"
msgstr ""

#: app/routes/integrations.py:1001
#, python-format
msgid "Error during sync: %(error)s"
msgstr ""

#: app/routes/integrations.py:1051
msgid "Either server URL or calendar URL is required."
msgstr ""

#: app/routes/integrations.py:1060
msgid "Server URL must be a valid URL (e.g., https://mail.example.com/dav)."
msgstr ""

#: app/routes/integrations.py:1062 app/routes/integrations.py:1225
msgid "Server URL format is invalid."
msgstr ""

#: app/routes/integrations.py:1070
msgid "Calendar URL must be a valid URL."
msgstr ""

#: app/routes/integrations.py:1072
msgid "Calendar URL format is invalid."
msgstr ""

#: app/routes/integrations.py:1094 app/routes/integrations.py:1232
msgid "Selected project not found or is not active."
msgstr ""

#: app/routes/integrations.py:1101
msgid "Lookback days must be between 1 and 365."
msgstr ""

#: app/routes/integrations.py:1103 app/routes/integrations.py:1241
msgid "Lookback days must be a valid number."
msgstr ""

#: app/routes/integrations.py:1148
#, python-format
msgid "Failed to save credentials: %(message)s"
msgstr ""

#: app/routes/integrations.py:1164
msgid "CalDAV integration configured successfully."
msgstr ""

#: app/routes/integrations.py:1167
msgid "Failed to save CalDAV configuration."
msgstr ""

#: app/routes/integrations.py:1218
msgid "ActivityWatch server URL is required."
msgstr ""

#: app/routes/integrations.py:1223
msgid "Server URL must be a valid URL (e.g., http://localhost:5600)."
msgstr ""

#: app/routes/integrations.py:1239
msgid "Lookback days must be between 1 and 90."
msgstr ""

#: app/routes/integrations.py:1276
msgid "ActivityWatch integration configured successfully."
msgstr ""

#: app/routes/integrations.py:1282
#, python-format
msgid "Configuration saved but connection test failed: %(message)s"
msgstr ""

#: app/routes/integrations.py:1288
msgid "Failed to save ActivityWatch configuration."
msgstr ""

#: app/routes/integrations.py:1365
msgid "Setup wizard not available for this integration."
msgstr ""

#: app/routes/integrations.py:1378
msgid "Connector class not found."
msgstr ""

#: app/routes/integrations.py:1512
msgid "Integration configured successfully!"
msgstr ""

#: app/routes/integrations.py:1519
msgid "Failed to save configuration."
msgstr ""

#: app/routes/integrations.py:1535
msgid "OAuth Setup"
msgstr ""

#: app/routes/integrations.py:1535 app/routes/integrations.py:1541
msgid "Connection Test"
msgstr ""

#: app/routes/integrations.py:1535 app/routes/integrations.py:1537
#: app/routes/integrations.py:1538 app/routes/integrations.py:1539
#: app/routes/integrations.py:1540
msgid "Sync Config"
msgstr ""

#: app/routes/integrations.py:1535 app/templates/admin/modules.html:179
#: app/templates/admin/modules.html:221
#: app/templates/admin/oidc_setup_wizard.html:41
#: app/templates/admin/pdf_layout.html:1909
#: app/templates/admin/quote_pdf_layout.html:1715
msgid "Advanced"
msgstr "Edistynyt"

#: app/routes/integrations.py:1535 app/routes/integrations.py:1536
#: app/routes/integrations.py:1537 app/routes/integrations.py:1538
#: app/routes/integrations.py:1539 app/routes/integrations.py:1540
#: app/routes/integrations.py:1541 app/routes/integrations.py:1542
#: app/routes/integrations.py:1543
#: app/templates/analytics/dashboard_improved.html:224
#: app/templates/tasks/create.html:73 app/templates/tasks/create.html:86
#: app/templates/tasks/create.html:477 app/templates/tasks/edit.html:82
#: app/templates/tasks/edit.html:657 app/templates/tasks/my_tasks.html:74
#: app/templates/tasks/my_tasks.html:133 app/utils/i18n_helpers.py:18
#: app/utils/i18n_helpers.py:30
msgid "Review"
msgstr "Arvostelu"

#: app/routes/integrations.py:1536
msgid "Instance"
msgstr ""

#: app/routes/integrations.py:1536 app/routes/integrations.py:1537
#: app/routes/integrations.py:1538 app/routes/integrations.py:1539
#: app/routes/integrations.py:1540 app/routes/integrations.py:1542
#: app/routes/integrations.py:1543
msgid "OAuth"
msgstr ""

#: app/routes/integrations.py:1536 app/routes/integrations.py:1539
#: app/templates/integrations/wizard_github.html:50
#: app/templates/integrations/wizard_github.html:197
msgid "Repositories"
msgstr ""

#: app/routes/integrations.py:1536
msgid "Sync Settings"
msgstr ""

#: app/routes/integrations.py:1537 app/templates/leads/list.html:51
#: app/templates/leads/list.html:65 app/templates/leads/view.html:43
#: app/templates/setup/initial_setup.html:135
msgid "Company"
msgstr "Yritys"

#: app/routes/integrations.py:1537 app/routes/integrations.py:1538
msgid "Mappings"
msgstr ""

#: app/routes/integrations.py:1538
msgid "Tenant"
msgstr ""

#: app/routes/integrations.py:1539 app/templates/admin/webhooks/form.html:7
#: app/templates/admin/webhooks/list.html:7
#: app/templates/admin/webhooks/list.html:12
#: app/templates/admin/webhooks/view.html:7 app/templates/base.html:1079
msgid "Webhooks"
msgstr "Webhooks"

#: app/routes/integrations.py:1540
msgid "Workspace"
msgstr ""

#: app/routes/integrations.py:1540 app/templates/admin/oidc_user_detail.html:61
#: app/templates/analytics/mobile_dashboard.html:49
#: app/templates/auth/login.html:37 app/templates/base.html:602
#: app/templates/client_portal/base.html:257
#: app/templates/client_portal/base.html:342
#: app/templates/client_portal/dashboard.html:76
#: app/templates/client_portal/project_comments.html:9
#: app/templates/client_portal/projects.html:4
#: app/templates/client_portal/projects.html:9
#: app/templates/client_portal/projects.html:14
#: app/templates/client_portal/widgets/projects.html:8
#: app/templates/components/activity_feed_widget.html:23
#: app/templates/components/offline_indicator.html:84
#: app/templates/integrations/wizard_asana.html:110
#: app/templates/integrations/wizard_gitlab.html:148
#: app/templates/integrations/wizard_jira.html:134
#: app/templates/partials/_bottom_nav.html:78
#: app/templates/partials/_bottom_nav.html:82
#: app/templates/projects/add_cost.html:11
#: app/templates/projects/edit_cost.html:11
#: app/templates/projects/time_entries_overview.html:8
#: app/templates/projects/view.html:6 app/templates/reports/builder.html:367
#: app/templates/reports/unpaid_hours_report.html:76
#: app/templates/reports/unpaid_hours_report.html:97
msgid "Projects"
msgstr "Projektit"

#: app/routes/integrations.py:1541
msgid "API Keys"
msgstr ""

#: app/routes/integrations.py:1542 app/routes/integrations.py:1543
#: app/templates/admin/integrations/setup.html:100
#: app/templates/integrations/manage.html:151
#: app/templates/integrations/wizard_microsoft_teams.html:18
#: app/templates/integrations/wizard_microsoft_teams.html:82
#: app/templates/integrations/wizard_outlook_calendar.html:18
#: app/templates/integrations/wizard_outlook_calendar.html:82
#: app/templates/integrations/wizard_xero.html:43
#: app/templates/integrations/wizard_xero.html:179
msgid "Tenant ID"
msgstr ""

#: app/routes/integrations.py:1554
#, python-format
msgid "%(name)s Setup Wizard"
msgstr ""

#: app/routes/integrations.py:1555
#, python-format
msgid "Guided step-by-step configuration for %(name)s"
msgstr ""

#: app/routes/integrations.py:1593
msgid "Integration not found"
msgstr ""

#: app/routes/integrations.py:1598
msgid "Connector not available"
msgstr ""

#: app/routes/inventory.py:190
msgid "SKU is required"
msgstr ""

#: app/routes/inventory.py:194
msgid "Name is required"
msgstr ""

#: app/routes/inventory.py:201
#, python-format
msgid "Invalid SKU: %(error)s"
msgstr ""

#: app/routes/inventory.py:208
#, python-format
msgid "Invalid name: %(error)s"
msgstr ""

#: app/routes/inventory.py:214 app/routes/inventory.py:448
msgid "SKU already exists. Please use a different SKU."
msgstr "SKU on jo olemassa. Käytä toista SKU:ta."

#: app/routes/inventory.py:294
msgid "Stock item created successfully."
msgstr "Varastotuotteen luominen onnistui."

#: app/routes/inventory.py:299
#, python-format
msgid "Error creating stock item: %(error)s"
msgstr "Virhe luotaessa varastotuotetta: %(error)s"

#: app/routes/inventory.py:565
msgid "Stock item updated successfully."
msgstr "Varastotuotteen päivitys onnistui."

#: app/routes/inventory.py:570
#, python-format
msgid "Error updating stock item: %(error)s"
msgstr "Virhe päivitettäessä varastossa olevaa tuotetta: %(error)s"

#: app/routes/inventory.py:590
msgid "Cannot delete stock item with existing stock or movement history."
msgstr "Ei voi poistaa varastonimikettä, jolla on olemassa oleva varasto- tai liikehistoria."

#: app/routes/inventory.py:598
msgid "Stock item deleted successfully."
msgstr "Varastotuotteen poistaminen onnistui."

#: app/routes/inventory.py:602
#, python-format
msgid "Error deleting stock item: %(error)s"
msgstr "Virhe varastotuotteen poistamisessa: %(error)s"

#: app/routes/inventory.py:640 app/routes/inventory.py:710
msgid "Warehouse code already exists. Please use a different code."
msgstr "Varastokoodi on jo olemassa. Käytä eri koodia."

#: app/routes/inventory.py:659
msgid "Warehouse created successfully."
msgstr "Varaston luominen onnistui."

#: app/routes/inventory.py:664
#, python-format
msgid "Error creating warehouse: %(error)s"
msgstr "Virhe luotaessa varastoa: %(error)s"

#: app/routes/inventory.py:726
msgid "Warehouse updated successfully."
msgstr "Varaston päivitys onnistui."

#: app/routes/inventory.py:731
#, python-format
msgid "Error updating warehouse: %(error)s"
msgstr "Virhe varaston päivityksessä: %(error)s"

#: app/routes/inventory.py:747
msgid "Cannot delete warehouse with existing stock. Please transfer or remove all stock first."
msgstr "Ei voida poistaa varastoa olemassa olevan varaston kanssa. Siirrä tai poista ensin kaikki varastot."

#: app/routes/inventory.py:755
msgid "Warehouse deleted successfully."
msgstr "Varaston poistaminen onnistui."

#: app/routes/inventory.py:759
#, python-format
msgid "Error deleting warehouse: %(error)s"
msgstr "Virhe varaston poistamisessa: %(error)s"

#: app/routes/inventory.py:945 app/routes/inventory.py:1027
msgid "Stock item is not trackable. Devaluation requires trackable items."
msgstr ""

#: app/routes/inventory.py:947
msgid "Devaluation quantity must be positive"
msgstr ""

#: app/routes/inventory.py:951 app/routes/inventory.py:1031
msgid "Stock item must have a default cost to perform devaluation"
msgstr ""

#: app/routes/inventory.py:956
msgid "Devaluation percent is required when using percent method"
msgstr ""

#: app/routes/inventory.py:960 app/routes/inventory.py:1040
msgid "Invalid devaluation percent value"
msgstr ""

#: app/routes/inventory.py:962 app/routes/inventory.py:1042
msgid "Devaluation percent cannot be negative"
msgstr ""

#: app/routes/inventory.py:964 app/routes/inventory.py:1044
msgid "Devaluation percent cannot exceed 100%"
msgstr ""

#: app/routes/inventory.py:968
msgid "New unit cost is required when using fixed cost method"
msgstr ""

#: app/routes/inventory.py:972 app/routes/inventory.py:1054
msgid "Invalid unit cost value"
msgstr ""

#: app/routes/inventory.py:974 app/routes/inventory.py:1056
msgid "Unit cost cannot be negative"
msgstr ""

#: app/routes/inventory.py:976 app/routes/inventory.py:1058
msgid "Invalid devaluation method"
msgstr ""

#: app/routes/inventory.py:984 app/routes/inventory.py:1070
#: app/routes/inventory.py:1084
#, python-format
msgid "Devaluation cost (%(devalued)s) cannot be greater than original cost (%(original)s)"
msgstr ""

#: app/routes/inventory.py:998
#, python-format
msgid "Insufficient stock to devalue. Available: %(available)s, Requested: %(requested)s"
msgstr ""

#: app/routes/inventory.py:1013
msgid "Stock devaluation recorded successfully."
msgstr ""

#: app/routes/inventory.py:1020
msgid "Return movements must use a positive quantity"
msgstr ""

#: app/routes/inventory.py:1022
msgid "Waste movements must use a negative quantity"
msgstr ""

#: app/routes/inventory.py:1036
msgid "Devaluation percent is required when devaluation is enabled"
msgstr ""

#: app/routes/inventory.py:1050
msgid "New unit cost is required when devaluation is enabled"
msgstr ""

#: app/routes/inventory.py:1098
#, python-format
msgid "Insufficient stock to waste. Available: %(available)s, Requested: %(requested)s"
msgstr ""

#: app/routes/inventory.py:1120
#, python-format
msgid "Failed to devalue stock before waste: %(error)s"
msgstr ""

#: app/routes/inventory.py:1142
#, python-format
msgid "Failed to record movement: %(error)s"
msgstr ""

#: app/routes/inventory.py:1156
msgid "Return movement recorded successfully with devaluation applied."
msgstr ""

#: app/routes/inventory.py:1158
msgid "Waste movement recorded successfully with devaluation applied."
msgstr ""

#: app/routes/inventory.py:1160
msgid "Stock movement recorded successfully."
msgstr "Osakeliikkeen tallennus onnistui."

#: app/routes/inventory.py:1166
#, python-format
msgid "Error: %(error)s"
msgstr ""

#: app/routes/inventory.py:1170
#, python-format
msgid "Error recording stock movement: %(error)s"
msgstr "Virhe tallennettaessa varastoliikettä: %(error)s"

#: app/routes/inventory.py:1242
msgid "Source and destination warehouses must be different."
msgstr "Lähde- ja kohdevarastojen on oltava erilaisia."

#: app/routes/inventory.py:1255
msgid "Insufficient stock available in source warehouse."
msgstr "Lähdevarastossa ei ole riittävästi varastoa."

#: app/routes/inventory.py:1271
msgid "Stock item not found."
msgstr ""

#: app/routes/inventory.py:1274
msgid "Source warehouse not found."
msgstr ""

#: app/routes/inventory.py:1277
msgid "Destination warehouse not found."
msgstr ""

#: app/routes/inventory.py:1320
msgid "Stock transfer completed successfully."
msgstr "Varaston siirto onnistui."

#: app/routes/inventory.py:1325
#, python-format
msgid "Error creating transfer: %(error)s"
msgstr "Virhe luotaessa siirtoa: %(error)s"

#: app/routes/inventory.py:1425
msgid "Stock adjustment recorded successfully."
msgstr "Varaston oikaisu tallennettu onnistuneesti."

#: app/routes/inventory.py:1430
#, python-format
msgid "Error recording adjustment: %(error)s"
msgstr "Virhe tallennuksen säätö: %(error)s"

#: app/routes/inventory.py:1574
msgid "Reservation fulfilled successfully."
msgstr "Varaus suoritettu onnistuneesti."

#: app/routes/inventory.py:1577
#, python-format
msgid "Error fulfilling reservation: %(error)s"
msgstr "Virhe varauksen täyttämisessä: %(error)s"

#: app/routes/inventory.py:1595
msgid "Reservation cancelled successfully."
msgstr "Varaus peruutettu onnistuneesti."

#: app/routes/inventory.py:1598
#, python-format
msgid "Error cancelling reservation: %(error)s"
msgstr "Virhe peruutettaessa varausta: %(error)s"

#: app/routes/inventory.py:1642
#, python-format
msgid "Supplier with code '%(code)s' already exists"
msgstr ""

#: app/routes/inventory.py:1666
msgid "Supplier created successfully."
msgstr "Toimittaja luotiin onnistuneesti."

#: app/routes/inventory.py:1671
#, python-format
msgid "Error creating supplier: %(error)s"
msgstr "Virhe luotaessa toimittajaa: %(error)s"

#: app/routes/inventory.py:1715
msgid "Supplier code already exists. Please use a different code."
msgstr "Toimittajakoodi on jo olemassa. Käytä eri koodia."

#: app/routes/inventory.py:1736
msgid "Supplier updated successfully."
msgstr "Toimittaja päivitetty onnistuneesti."

#: app/routes/inventory.py:1741
#, python-format
msgid "Error updating supplier: %(error)s"
msgstr "Virhe päivitettäessä toimittajaa: %(error)s"

#: app/routes/inventory.py:1757
msgid "Cannot delete supplier with associated stock items. Remove items first."
msgstr "Toimittajaa ja siihen liittyviä varastotuotteita ei voi poistaa. Poista kohteet ensin."

#: app/routes/inventory.py:1766
msgid "Supplier deleted successfully."
msgstr "Toimittajan poistaminen onnistui."

#: app/routes/inventory.py:1769
#, python-format
msgid "Error deleting supplier: %(error)s"
msgstr "Virhe toimittajan poistamisessa: %(error)s"

#: app/routes/inventory.py:1817
#, fuzzy
msgid "Supplier is required."
msgstr "Otsikko vaaditaan"

#: app/routes/inventory.py:1822
#, fuzzy
msgid "Supplier not found."
msgstr "Toimittajia ei löytynyt."

#: app/routes/inventory.py:1827
#, fuzzy
msgid "Order date is required."
msgstr "Roolin nimi vaaditaan"

#: app/routes/inventory.py:1908
#, fuzzy
msgid "Could not create purchase order due to a database error."
msgstr "Roolia ei voitu luoda tietokantavirheen vuoksi"

#: app/routes/inventory.py:1916
msgid "Purchase order created successfully."
msgstr "Ostotilauksen luominen onnistui."

#: app/routes/inventory.py:1921
#, python-format
msgid "Error creating purchase order: %(error)s"
msgstr "Virhe luotaessa ostotilausta: %(error)s"

#: app/routes/inventory.py:1966
msgid "Cannot edit a purchase order that has been received."
msgstr "Vastaanotettua ostotilausta ei voi muokata."

#: app/routes/inventory.py:2038
#, fuzzy
msgid "Could not update purchase order due to a database error."
msgstr "Roolia ei voitu päivittää tietokantavirheen vuoksi"

#: app/routes/inventory.py:2042
msgid "Purchase order updated successfully."
msgstr "Ostotilauksen päivitys onnistui."

#: app/routes/inventory.py:2047
#, python-format
msgid "Error updating purchase order: %(error)s"
msgstr "Virhe päivitettäessä ostotilausta: %(error)s"

#: app/routes/inventory.py:2079
#, fuzzy
msgid "Could not update purchase order status due to a database error."
msgstr "Käyttäjärooleja ei voitu päivittää tietokantavirheen vuoksi"

#: app/routes/inventory.py:2083
msgid "Purchase order marked as sent."
msgstr "Ostotilaus merkitty lähetetyksi."

#: app/routes/inventory.py:2086
#, python-format
msgid "Error sending purchase order: %(error)s"
msgstr "Virhe lähetettäessä ostotilausta: %(error)s"

#: app/routes/inventory.py:2103
#, fuzzy
msgid "Could not cancel purchase order due to a database error."
msgstr "Roolia ei voitu luoda tietokantavirheen vuoksi"

#: app/routes/inventory.py:2107
msgid "Purchase order cancelled successfully."
msgstr "Ostotilaus peruutettu onnistuneesti."

#: app/routes/inventory.py:2110
#, python-format
msgid "Error cancelling purchase order: %(error)s"
msgstr "Virhe ostotilauksen peruuttamisessa: %(error)s"

#: app/routes/inventory.py:2125
msgid "Cannot delete a purchase order that has been received. Cancel it instead."
msgstr "Vastaanotettua ostotilausta ei voi poistaa. Peruuta sen sijaan."

#: app/routes/inventory.py:2131
#, fuzzy
msgid "Could not delete purchase order due to a database error."
msgstr "Roolia ei voitu poistaa tietokantavirheen vuoksi"

#: app/routes/inventory.py:2135
msgid "Purchase order deleted successfully."
msgstr "Ostotilauksen poistaminen onnistui."

#: app/routes/inventory.py:2139
#, python-format
msgid "Error deleting purchase order: %(error)s"
msgstr "Virhe poistettaessa ostotilausta: %(error)s"

#: app/routes/inventory.py:2175
#, fuzzy
msgid "Could not receive purchase order due to a database error."
msgstr "Roolia ei voitu luoda tietokantavirheen vuoksi"

#: app/routes/inventory.py:2179
msgid "Purchase order marked as received and stock updated."
msgstr "Ostotilaus merkitty vastaanotetuksi ja varasto päivitetty."

#: app/routes/inventory.py:2182
#, python-format
msgid "Error receiving purchase order: %(error)s"
msgstr "Virhe ostotilauksen vastaanottamisessa: %(error)s"

#: app/routes/invoice_approvals.py:31
msgid "An approval request is already pending for this invoice."
msgstr ""

#: app/routes/invoice_approvals.py:44
#: app/templates/invoice_approvals/request.html:49
msgid "Please select at least one approver."
msgstr ""

#: app/routes/invoice_approvals.py:52
msgid "Approval request created successfully."
msgstr ""

#: app/routes/invoice_approvals.py:83
msgid "Invoice approved successfully."
msgstr ""

#: app/routes/invoice_approvals.py:100
msgid "Please provide a reason for rejection."
msgstr ""

#: app/routes/invoice_approvals.py:107
msgid "Invoice approval rejected."
msgstr ""

#: app/routes/invoices.py:112
msgid "Project, client name, and due date are required"
msgstr "Projekti, asiakkaan nimi ja eräpäivä vaaditaan"

#: app/routes/invoices.py:118 app/routes/tasks.py:238 app/routes/tasks.py:461
msgid "Invalid due date format"
msgstr "Virheellinen eräpäivän muoto"

#: app/routes/invoices.py:124 app/routes/offers.py:108 app/routes/offers.py:240
#: app/routes/quotes.py:225 app/routes/quotes.py:544
#: app/routes/recurring_invoices.py:88
msgid "Invalid tax rate format"
msgstr "Virheellinen veroprosentin muoto"

#: app/routes/invoices.py:130
msgid "Selected project not found"
msgstr "Valittua projektia ei löydy"

#: app/routes/invoices.py:187
msgid "Could not create invoice due to a database error. Please check server logs."
msgstr "Laskua ei voitu luoda tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/invoices.py:259
msgid "You do not have permission to view this invoice"
msgstr "Sinulla ei ole lupaa tarkastella tätä laskua"

#: app/routes/invoices.py:305
msgid "Company Tax ID (VAT) is missing in Admin → Settings → Company Branding."
msgstr ""

#: app/routes/invoices.py:309
msgid "Sender Endpoint ID is missing in Admin → Settings → Peppol e-Invoicing."
msgstr ""

#: app/routes/invoices.py:313
msgid "Sender Scheme ID is missing in Admin → Settings → Peppol e-Invoicing."
msgstr ""

#: app/routes/invoices.py:319
msgid "Client Peppol Endpoint ID is missing. Add peppol_endpoint_id to the client's custom fields."
msgstr ""

#: app/routes/invoices.py:323
msgid "Client Peppol Scheme ID is missing. Add peppol_scheme_id to the client's custom fields."
msgstr ""

#: app/routes/invoices.py:327
msgid "Invoice has no linked client; buyer PEPPOL identifiers cannot be checked."
msgstr ""

#: app/routes/invoices.py:334 app/routes/invoices.py:341
msgid "Could not verify PEPPOL compliance; check configuration."
msgstr ""

#: app/routes/invoices.py:391 app/routes/invoices.py:894
msgid "You do not have permission to edit this invoice"
msgstr "Sinulla ei ole lupaa muokata tätä laskua"

#: app/routes/invoices.py:553 app/routes/quotes.py:902
#: app/routes/quotes.py:1008
#, python-format
msgid "Warning: Could not reserve stock for item %(item)s: %(error)s"
msgstr "Varoitus: Ei voitu varata varastoa tuotteelle %(item)s: %(error)s"

#: app/routes/invoices.py:561
msgid "Could not update invoice due to a database error. Please check server logs."
msgstr "Laskua ei voitu päivittää tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/invoices.py:568
msgid "Invoice updated successfully"
msgstr "Laskun päivitys onnistui"

#: app/routes/invoices.py:715
#, python-format
msgid "Warning: Could not reduce stock for item %(item)s: %(error)s"
msgstr "Varoitus: Tuotteen %(item)s varastoa ei voitu vähentää: %(error)s"

#: app/routes/invoices.py:745
msgid "You do not have permission to delete this invoice"
msgstr "Sinulla ei ole lupaa poistaa tätä laskua"

#: app/routes/invoices.py:749
#, fuzzy
msgid "Only draft invoices can be deleted."
msgstr "Vain lainausluonnoksia voidaan muokata"

#: app/routes/invoices.py:755
msgid "Could not delete invoice due to a database error. Please check server logs."
msgstr "Laskua ei voitu poistaa tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/invoices.py:769
msgid "No invoices selected for deletion"
msgstr "Poistettavia laskuja ei ole valittu"

#: app/routes/invoices.py:806
msgid "Could not delete invoices due to a database error. Please check server logs."
msgstr "Laskuja ei voitu poistaa tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/invoices.py:828
msgid "No invoices selected"
msgstr "Laskuja ei ole valittu"

#: app/routes/invoices.py:872
msgid "Could not update invoices due to a database error"
msgstr "Laskuja ei voitu päivittää tietokantavirheen vuoksi"

#: app/routes/invoices.py:905
msgid "No time entries, costs, expenses, or extra goods selected"
msgstr "Ei valittuja aikamerkintöjä, kuluja, kuluja tai ylimääräisiä tuotteita"

#: app/routes/invoices.py:1009
msgid "Could not generate items due to a database error. Please check server logs."
msgstr "Ei voitu luoda kohteita tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/invoices.py:1021
msgid "Invoice items generated successfully from time entries and costs"
msgstr "Aikakirjauksista ja kuluista luotu onnistuneesti laskutuskohteet"

#: app/routes/invoices.py:1024
#, python-format
msgid "Applied %(hours)s prepaid hours for %(client)s before billing overages."
msgstr "Käytettiin %(hours)s ennakkoon maksettua tuntia %(client)s:lle ennen laskutusylijäämiä."

#: app/routes/invoices.py:1064 app/routes/invoices.py:1115
#: app/routes/invoices.py:1167
msgid "You do not have permission to export this invoice"
msgstr "Sinulla ei ole lupaa viedä tätä laskua"

#: app/routes/invoices.py:1130
#, python-format
msgid "Cannot generate UBL: %(msg)s"
msgstr ""

#: app/routes/invoices.py:1134
#, python-format
msgid "UBL export failed: %(msg)s"
msgstr ""

#: app/routes/invoices.py:1216
#, python-format
msgid "Factur-X embedding is enabled but failed: %(err)s. Export aborted so the PDF does not ship without embedded XML."
msgstr ""

#: app/routes/invoices.py:1228 app/routes/invoices.py:1290
#, python-format
msgid "PDF/A-3 normalization failed: %(err)s. Export aborted."
msgstr ""

#: app/routes/invoices.py:1241
#, python-format
msgid "veraPDF validation reported issues: %(summary)s"
msgstr ""

#: app/routes/invoices.py:1243
#, python-format
msgid "veraPDF: %(summary)s"
msgstr ""

#: app/routes/invoices.py:1285
#, python-format
msgid "Factur-X embedding is enabled but failed: %(err)s. Export aborted."
msgstr ""

#: app/routes/invoices.py:1307
#, python-format
msgid "PDF generation failed: %(err)s. Fallback also failed: %(fb)s"
msgstr "PDF:n luominen epäonnistui: %(err)s. Myös varatoimi epäonnistui: %(fb)s"

#: app/routes/invoices.py:1321
msgid "You do not have permission to duplicate this invoice"
msgstr "Sinulla ei ole lupaa kopioida tätä laskua"

#: app/routes/invoices.py:1348
msgid "Could not duplicate invoice due to a database error. Please check server logs."
msgstr "Laskua ei voitu kopioida tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/invoices.py:1379
msgid "Could not finalize duplicated invoice due to a database error. Please check server logs."
msgstr "Kaksinkertaista laskua ei voitu viimeistellä tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/invoices.py:1594
msgid "You do not have permission to upload images to this invoice"
msgstr ""

#: app/routes/invoices.py:1621 app/routes/quotes.py:2000
msgid "File type not allowed. Only images are allowed"
msgstr ""

#: app/routes/invoices.py:1635 app/routes/quotes.py:2014
msgid "File size exceeds maximum allowed size (5 MB)"
msgstr ""

#: app/routes/invoices.py:1683 app/routes/quotes.py:2062
msgid "Could not upload image due to a database error. Please check server logs."
msgstr ""

#: app/routes/invoices.py:1707 app/routes/quotes.py:2086
#: app/templates/main/dashboard.html:1606
#: app/templates/timer/edit_timer.html:871
#: app/templates/timer/manual_entry.html:1045
msgid "Image uploaded successfully"
msgstr ""

#: app/routes/invoices.py:1759
msgid "You do not have permission to delete images from this invoice"
msgstr ""

#: app/routes/invoices.py:1776 app/routes/quotes.py:2157
msgid "Could not delete image due to a database error. Please check server logs."
msgstr ""

#: app/routes/invoices.py:1794 app/routes/quotes.py:2175
msgid "Image deleted successfully"
msgstr ""

#: app/routes/invoices_refactored.py:220
msgid "Invoice marked as sent"
msgstr "Lasku merkitty lähetetyksi"

#: app/routes/invoices_refactored.py:259
msgid "Invoice marked as paid"
msgstr "Lasku merkitty maksetuksi"

#: app/routes/issues.py:166
msgid "You do not have permission to create issues."
msgstr ""

#: app/routes/issues.py:193
msgid "Client is required."
msgstr ""

#: app/routes/issues.py:221
msgid "Issue created successfully."
msgstr ""

#: app/routes/issues.py:270
msgid "You do not have permission to view this issue."
msgstr ""

#: app/routes/issues.py:325
msgid "You do not have permission to edit this issue."
msgstr ""

#: app/routes/issues.py:345
msgid "Project must belong to the same client."
msgstr ""

#: app/routes/issues.py:367
msgid "Could not update issue due to a database error."
msgstr ""

#: app/routes/issues.py:370
msgid "Issue updated successfully."
msgstr ""

#: app/routes/issues.py:398
msgid "Please select a task."
msgstr ""

#: app/routes/issues.py:403
msgid "Issue linked to task successfully."
msgstr ""

#: app/routes/issues.py:420
msgid "Please select a project."
msgstr ""

#: app/routes/issues.py:429
msgid "Task created from issue successfully."
msgstr ""

#: app/routes/issues.py:445
msgid "Status is required."
msgstr ""

#: app/routes/issues.py:464
msgid "Issue status updated successfully."
msgstr ""

#: app/routes/issues.py:481
msgid "Issue assigned successfully."
msgstr ""

#: app/routes/issues.py:483
msgid "Could not assign issue."
msgstr ""

#: app/routes/issues.py:497
msgid "Priority is required."
msgstr ""

#: app/routes/issues.py:502
msgid "Issue priority updated successfully."
msgstr ""

#: app/routes/issues.py:515
msgid "Only administrators can delete issues."
msgstr ""

#: app/routes/issues.py:523
msgid "Could not delete issue due to a database error."
msgstr ""

#: app/routes/issues.py:526
msgid "Issue deleted successfully."
msgstr ""

#: app/routes/kanban.py:136
msgid "Key and label are required"
msgstr "Avain ja tarra vaaditaan"

#: app/routes/kanban.py:189
msgid "Could not create column due to a database error. Please check server logs."
msgstr "Saraketta ei voitu luoda tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/kanban.py:261
msgid "Could not update column due to a database error. Please check server logs."
msgstr "Saraketta ei voitu päivittää tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/kanban.py:299
msgid "System columns cannot be deleted"
msgstr "Järjestelmäsarakkeita ei voi poistaa"

#: app/routes/kanban.py:335
msgid "Could not delete column due to a database error. Please check server logs."
msgstr "Saraketta ei voitu poistaa tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/kanban.py:385
msgid "Could not toggle column due to a database error. Please check server logs."
msgstr "Saraketta ei voitu vaihtaa tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/kiosk.py:35 app/routes/kiosk.py:95
msgid "Kiosk mode is not enabled. Please contact an administrator."
msgstr ""

#: app/routes/kiosk.py:140
msgid "No password is set for this account. Please set a password in your profile first."
msgstr ""

#: app/routes/kiosk.py:179
msgid "You have been logged out"
msgstr ""

#: app/routes/kiosk.py:326
msgid "Stock adjustment recorded successfully"
msgstr ""

#: app/routes/kiosk.py:437
msgid "Stock transfer completed successfully"
msgstr ""

#: app/routes/kiosk.py:503
msgid "Timer started successfully"
msgstr ""

#: app/routes/kiosk.py:528 app/routes/timer_refactored.py:164
msgid "Timer stopped successfully"
msgstr "Ajastin pysähtyi onnistuneesti"

#: app/routes/leads.py:112
msgid "Lead created successfully"
msgstr "Liidi luotu onnistuneesti"

#: app/routes/leads.py:116
#, python-format
msgid "Error creating lead: %(error)s"
msgstr "Virhe luotaessa liidia: %(error)s"

#: app/routes/leads.py:166
msgid "Lead updated successfully"
msgstr "Liidin päivitys onnistui"

#: app/routes/leads.py:170
#, python-format
msgid "Error updating lead: %(error)s"
msgstr "Virhe päivitettäessä liidia: %(error)s"

#: app/routes/leads.py:182 app/routes/leads.py:237
msgid "Lead has already been converted"
msgstr "Lyijy on jo muunnettu"

#: app/routes/leads.py:221
msgid "Lead converted to client successfully"
msgstr "Liidi muutettu asiakkaaksi onnistuneesti"

#: app/routes/leads.py:225 app/routes/leads.py:276
#, python-format
msgid "Error converting lead: %(error)s"
msgstr "Virhe muunnettaessa johtoa: %(error)s"

#: app/routes/leads.py:272
msgid "Lead converted to deal successfully"
msgstr "Liidi muutettu kaupaksi onnistuneesti"

#: app/routes/leads.py:299
msgid "Lead marked as lost"
msgstr "Lyijy merkitty kadonneeksi"

#: app/routes/leads.py:302
#, python-format
msgid "Error marking lead as lost: %(error)s"
msgstr "Virhe merkittäessä johtoa kadonneeksi: %(error)s"

#: app/routes/link_templates.py:46 app/routes/link_templates.py:102
msgid "URL template is required"
msgstr ""

#: app/routes/link_templates.py:50 app/routes/link_templates.py:106
#, python-brace-format
msgid "URL template must contain {value} or %value% placeholder"
msgstr ""

#: app/routes/link_templates.py:71
msgid "Could not create link template due to a database error."
msgstr ""

#: app/routes/link_templates.py:74
msgid "Link template created successfully"
msgstr ""

#: app/routes/link_templates.py:124
msgid "Could not update link template due to a database error."
msgstr ""

#: app/routes/link_templates.py:127
msgid "Link template updated successfully"
msgstr ""

#: app/routes/link_templates.py:142
msgid "Could not delete link template due to a database error."
msgstr ""

#: app/routes/link_templates.py:144
msgid "Link template deleted successfully"
msgstr ""

#: app/routes/main.py:236
msgid "You have been using TimeTracker for a week or more. If it fits your workflow, consider supporting continued development."
msgstr ""

#: app/routes/main.py:244
msgid "You have tracked a solid amount of time today. If TimeTracker makes your day easier, you can support the project in a click."
msgstr ""

#: app/routes/mileage.py:303 app/routes/per_diem.py:257
#: app/routes/reports.py:572 app/routes/timer.py:2956
#, python-format
msgid "PDF export failed: %(error)s"
msgstr ""

#: app/routes/mileage.py:407
msgid "Mileage entry created successfully"
msgstr "Ajokilometrit luotiin onnistuneesti"

#: app/routes/mileage.py:416 app/routes/mileage.py:421
msgid "Error creating mileage entry"
msgstr "Virhe luotaessa mittarilukematietoa"

#: app/routes/mileage.py:434
msgid "You do not have permission to view this mileage entry"
msgstr "Sinulla ei ole lupaa tarkastella tätä mittarilukematietoa"

#: app/routes/mileage.py:453
msgid "You do not have permission to edit this mileage entry"
msgstr "Sinulla ei ole lupaa muokata tätä mittarilukematietoa"

#: app/routes/mileage.py:458
msgid "Cannot edit approved or reimbursed mileage entries"
msgstr "Ei voi muokata hyväksyttyjä tai korvattuja kilometrimääriä"

#: app/routes/mileage.py:503
msgid "Mileage entry updated successfully"
msgstr "Ajokilometrit päivitetty onnistuneesti"

#: app/routes/mileage.py:508 app/routes/mileage.py:513
msgid "Error updating mileage entry"
msgstr "Virhe päivitettäessä mittarilukematietoa"

#: app/routes/mileage.py:526
msgid "You do not have permission to delete this mileage entry"
msgstr "Sinulla ei ole lupaa poistaa tätä mittarilukematietoa"

#: app/routes/mileage.py:533
msgid "Mileage entry deleted successfully"
msgstr "Ajokilometrimerkintä poistettu onnistuneesti"

#: app/routes/mileage.py:537 app/routes/mileage.py:541
msgid "Error deleting mileage entry"
msgstr "Virhe poistettaessa mittarilukematietoa"

#: app/routes/mileage.py:554
msgid "No mileage entries selected for deletion"
msgstr "Poistettavia kilometrimerkintöjä ei ole valittu"

#: app/routes/mileage.py:585
msgid "Could not delete mileage entries due to a database error. Please check server logs."
msgstr "Ajokilometrejä ei voitu poistaa tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/mileage.py:594
#, python-format
msgid "Successfully deleted %(count)d mileage entr%(plural)s"
msgstr "%(count)d mittarilukema entr%(plural)s poistettu onnistuneesti"

#: app/routes/mileage.py:608
#, python-format
msgid "Skipped %(count)d mileage entr%(plural)s: %(errors)s"
msgstr "Ohitettu %(count)d mittarilukema %(plural)s: %(errors)s"

#: app/routes/mileage.py:625
msgid "No mileage entries selected"
msgstr "Kilometrejä ei ole valittu"

#: app/routes/mileage.py:658
msgid "Could not update mileage entries due to a database error"
msgstr "Ajokilometrejä ei voitu päivittää tietokantavirheen vuoksi"

#: app/routes/mileage.py:662
#, python-format
msgid "Successfully updated %(count)d mileage entr%(plural)s to %(status)s"
msgstr "%(count)d mittarilukema entr%(plural)s päivitetty onnistuneesti arvoon %(status)s"

#: app/routes/mileage.py:673
#, python-format
msgid "Skipped %(count)d mileage entr%(plural)s (no permission)"
msgstr "Ohitettu %(count)d mittarilukema %(plural)s (ei lupaa)"

#: app/routes/mileage.py:690
msgid "Only administrators can approve mileage entries"
msgstr "Vain ylläpitäjät voivat hyväksyä ajokilometrejä"

#: app/routes/mileage.py:696
msgid "Only pending mileage entries can be approved"
msgstr "Vain vireillä olevat kilometrimäärät voidaan hyväksyä"

#: app/routes/mileage.py:704
msgid "Mileage entry approved successfully"
msgstr "Kilometrimerkintä hyväksytty"

#: app/routes/mileage.py:708 app/routes/mileage.py:712
msgid "Error approving mileage entry"
msgstr "Virhe ajokilometrimerkinnän hyväksymisessä"

#: app/routes/mileage.py:723
msgid "Only administrators can reject mileage entries"
msgstr "Vain järjestelmänvalvojat voivat hylätä kilometrimerkintöjä"

#: app/routes/mileage.py:729
msgid "Only pending mileage entries can be rejected"
msgstr "Vain vireillä olevat kilometrimerkinnät voidaan hylätä"

#: app/routes/mileage.py:741
msgid "Mileage entry rejected"
msgstr "Kilometrimerkintä hylätty"

#: app/routes/mileage.py:745 app/routes/mileage.py:749
msgid "Error rejecting mileage entry"
msgstr "Virhe evättäessä kilometrimäärää"

#: app/routes/mileage.py:760
msgid "Only administrators can mark mileage entries as reimbursed"
msgstr "Vain ylläpitäjät voivat merkitä kilometrimerkinnät hyvitetyiksi"

#: app/routes/mileage.py:766
msgid "Only approved mileage entries can be marked as reimbursed"
msgstr "Vain hyväksytyt kilometrimäärät voidaan merkitä hyvitetyiksi"

#: app/routes/mileage.py:773
msgid "Mileage entry marked as reimbursed"
msgstr "Kilometrimerkintä merkitty hyvitetyksi"

#: app/routes/mileage.py:777 app/routes/mileage.py:781
msgid "Error marking mileage entry as reimbursed"
msgstr "Virhe merkittäessä kilometrimerkintää hyvitetyksi"

#: app/routes/offers.py:69 app/routes/quotes.py:156
msgid "Quote title and client are required"
msgstr "Tarjouksen nimi ja asiakas vaaditaan"

#: app/routes/offers.py:75 app/routes/quotes.py:168
msgid "Selected client not found"
msgstr "Valittua asiakasta ei löydy"

#: app/routes/offers.py:84 app/routes/offers.py:216 app/routes/quotes.py:183
msgid "Invalid total amount format"
msgstr "Virheellinen kokonaissumman muoto"

#: app/routes/offers.py:100 app/routes/offers.py:232 app/routes/quotes.py:211
msgid "Invalid estimated hours format"
msgstr "Virheellinen arvioitu tuntimuoto"

#: app/routes/offers.py:117 app/routes/offers.py:249 app/routes/quotes.py:263
#: app/routes/quotes.py:572
msgid "Invalid date format for valid until"
msgstr "Virheellinen päivämäärämuoto voimassa olevalle asti"

#: app/routes/offers.py:163 app/routes/quotes.py:450
msgid "Could not create quote due to a database error. Please check server logs."
msgstr "Lainausta ei voitu luoda tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/offers.py:172 app/routes/quotes.py:465
msgid "Quote created successfully"
msgstr "Lainaus luotu onnistuneesti"

#: app/routes/offers.py:195 app/routes/quotes.py:519
msgid "Only draft quotes can be edited"
msgstr "Vain lainausluonnoksia voidaan muokata"

#: app/routes/offers.py:265 app/routes/quotes.py:833
msgid "Could not update quote due to a database error. Please check server logs."
msgstr "Lainausta ei voitu päivittää tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/offers.py:271 app/routes/quotes.py:845
msgid "Quote updated successfully"
msgstr "Lainaus päivitetty onnistuneesti"

#: app/routes/offers.py:285 app/routes/quotes.py:868
msgid "Only draft quotes can be sent"
msgstr "Vain tarjousluonnoksia voidaan lähettää"

#: app/routes/offers.py:291 app/routes/quotes.py:908
msgid "Could not send quote due to a database error. Please check server logs."
msgstr "Tarjousta ei voitu lähettää tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/offers.py:297 app/routes/quotes.py:928
msgid "Quote sent successfully"
msgstr "Lainaus lähetetty onnistuneesti"

#: app/routes/offers.py:309 app/routes/quotes.py:940
msgid "This quote cannot be accepted"
msgstr "Tätä lainausta ei voida hyväksyä"

#: app/routes/offers.py:340 app/routes/quotes.py:971
#, python-format
msgid "Could not accept quote: %(error)s"
msgstr "Tarjousta ei voitu hyväksyä: %(error)s"

#: app/routes/offers.py:345 app/routes/quotes.py:1014
msgid "Could not accept quote due to a database error. Please check server logs."
msgstr "Tarjousta ei voitu hyväksyä tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/offers.py:357 app/routes/quotes.py:1040
msgid "Quote accepted and project created successfully"
msgstr "Tarjous hyväksytty ja projekti luotu onnistuneesti"

#: app/routes/offers.py:371 app/routes/quotes.py:1054
msgid "This quote cannot be rejected"
msgstr "Tätä lainausta ei voi hylätä"

#: app/routes/offers.py:377 app/routes/quotes.py:1060
#, python-format
msgid "Could not reject quote: %(error)s"
msgstr "Lainausta ei voitu hylätä: %(error)s"

#: app/routes/offers.py:381 app/routes/quotes.py:1064 app/routes/quotes.py:1399
msgid "Could not reject quote due to a database error. Please check server logs."
msgstr "Tarjousta ei voitu hylätä tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/offers.py:387 app/routes/quotes.py:1070
msgid "Quote rejected"
msgstr "Lainaus hylätty"

#: app/routes/offers.py:400 app/routes/quotes.py:1083
msgid "Only draft or rejected quotes can be deleted"
msgstr "Vain luonnokset tai hylätyt lainaukset voidaan poistaa"

#: app/routes/offers.py:407 app/routes/quotes.py:1090
msgid "Could not delete quote due to a database error. Please check server logs."
msgstr "Lainausta ei voitu poistaa tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/offers.py:413 app/routes/quotes.py:1096
msgid "Quote deleted successfully"
msgstr "Lainaus poistettu onnistuneesti"

#: app/routes/payment_gateways.py:61
msgid "Payment gateway created successfully."
msgstr ""

#: app/routes/payment_gateways.py:81
msgid "No payment gateway configured. Please contact an administrator."
msgstr ""

#: app/routes/payment_gateways.py:97
msgid "Stripe API key not configured."
msgstr ""

#: app/routes/payment_gateways.py:225
msgid "Payment processed successfully."
msgstr ""

#: app/routes/payments.py:52
msgid "Invalid from date format"
msgstr "Virheellinen päivämäärämuoto"

#: app/routes/payments.py:59
msgid "Invalid to date format"
msgstr "Virheellinen päivämäärämuoto"

#: app/routes/payments.py:132
msgid "You do not have permission to view this payment"
msgstr "Sinulla ei ole lupaa tarkastella tätä maksua"

#: app/routes/payments.py:158
msgid "Invoice, amount, and payment date are required"
msgstr "Lasku, summa ja maksupäivä vaaditaan"

#: app/routes/payments.py:165
msgid "Selected invoice not found"
msgstr "Valittua laskua ei löydy"

#: app/routes/payments.py:171
msgid "You do not have permission to add payments to this invoice"
msgstr "Sinulla ei ole oikeutta lisätä maksuja tähän laskuun"

#: app/routes/payments.py:178 app/routes/payments.py:348
msgid "Payment amount must be greater than zero"
msgstr "Maksun summan on oltava suurempi kuin nolla"

#: app/routes/payments.py:182 app/routes/payments.py:351
msgid "Invalid payment amount"
msgstr "Virheellinen maksusumma"

#: app/routes/payments.py:190 app/routes/payments.py:358
msgid "Invalid payment date format"
msgstr "Virheellinen maksupäivän muoto"

#: app/routes/payments.py:200 app/routes/payments.py:367
msgid "Gateway fee cannot be negative"
msgstr "Yhdyskäytävämaksu ei voi olla negatiivinen"

#: app/routes/payments.py:204 app/routes/payments.py:370
msgid "Invalid gateway fee amount"
msgstr "Virheellinen yhdyskäytävämaksun määrä"

#: app/routes/payments.py:278
msgid "Could not create payment due to a database error. Please check server logs."
msgstr "Maksua ei voitu luoda tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/payments.py:325
msgid "You do not have permission to edit this payment"
msgstr "Sinulla ei ole lupaa muokata tätä maksua"

#: app/routes/payments.py:407
msgid "Could not update payment due to a database error. Please check server logs."
msgstr "Maksua ei voitu päivittää tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/payments.py:417
msgid "Payment updated successfully"
msgstr "Maksu päivitetty onnistuneesti"

#: app/routes/payments.py:433
msgid "You do not have permission to delete this payment"
msgstr "Sinulla ei ole lupaa poistaa tätä maksua"

#: app/routes/payments.py:453
msgid "Could not delete payment due to a database error. Please check server logs."
msgstr "Maksua ei voitu poistaa tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/payments.py:459
msgid "Payment deleted successfully"
msgstr "Maksun poistaminen onnistui"

#: app/routes/payments.py:471
msgid "No payments selected for deletion"
msgstr "Poistettavia maksuja ei ole valittu"

#: app/routes/payments.py:516
msgid "Could not delete payments due to a database error. Please check server logs."
msgstr "Maksuja ei voitu poistaa tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/payments.py:538
msgid "No payments selected"
msgstr "Maksuja ei ole valittu"

#: app/routes/payments.py:589
msgid "Could not update payments due to a database error"
msgstr "Maksuja ei voitu päivittää tietokantavirheen vuoksi"

#: app/routes/per_diem.py:316
msgid "Start date must be before end date"
msgstr "Aloituspäivän on oltava ennen lopetuspäivää"

#: app/routes/per_diem.py:352
msgid "No per diem rate found for this location. Please configure rates first."
msgstr "Tästä sijainnista ei löytynyt päivärahaa. Määritä hinnat ensin."

#: app/routes/per_diem.py:408
msgid "Per diem claim created successfully"
msgstr "Päivärahavaatimus luotu onnistuneesti"

#: app/routes/per_diem.py:417 app/routes/per_diem.py:422
msgid "Error creating per diem claim"
msgstr "Virhe luotaessa päivärahavaatimusta"

#: app/routes/per_diem.py:435
msgid "You do not have permission to view this per diem claim"
msgstr "Sinulla ei ole lupaa tarkastella tätä päivärahavaatimusta"

#: app/routes/per_diem.py:454
msgid "You do not have permission to edit this per diem claim"
msgstr "Sinulla ei ole lupaa muokata tätä päivärahavaatimusta"

#: app/routes/per_diem.py:459
msgid "Cannot edit approved or reimbursed per diem claims"
msgstr "Ei voi muokata hyväksyttyjä tai korvattuja päivärahavaatimuksia"

#: app/routes/per_diem.py:501
msgid "Per diem claim updated successfully"
msgstr "Päivärahavaatimus päivitetty onnistuneesti"

#: app/routes/per_diem.py:506 app/routes/per_diem.py:511
msgid "Error updating per diem claim"
msgstr "Virhe päivitettäessä päivärahavaatimusta"

#: app/routes/per_diem.py:524
msgid "You do not have permission to delete this per diem claim"
msgstr "Sinulla ei ole lupaa poistaa tätä päivärahavaatimusta"

#: app/routes/per_diem.py:531
msgid "Per diem claim deleted successfully"
msgstr "Päivärahavaatimus poistettu onnistuneesti"

#: app/routes/per_diem.py:535 app/routes/per_diem.py:539
msgid "Error deleting per diem claim"
msgstr "Virhe päivärahahakemuksen poistamisessa"

#: app/routes/per_diem.py:552
msgid "No per diem claims selected for deletion"
msgstr "Päivärahavaatimuksia ei ole valittu poistettavaksi"

#: app/routes/per_diem.py:583
msgid "Could not delete per diem claims due to a database error. Please check server logs."
msgstr "Päivärahavaatimuksia ei voitu poistaa tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/per_diem.py:591
#, python-format
msgid "Successfully deleted %(count)d per diem claim(s)"
msgstr "%(count)d päivärahavaatimus(tta) poistettu onnistuneesti"

#: app/routes/per_diem.py:595
#, python-format
msgid "Skipped %(count)d per diem claim(s): %(errors)s"
msgstr "Ohitettu %(count)d päivärahavaatimus(t): %(errors)s"

#: app/routes/per_diem.py:611
msgid "No per diem claims selected"
msgstr "Päivärahavaatimuksia ei ole valittu"

#: app/routes/per_diem.py:644
msgid "Could not update per diem claims due to a database error"
msgstr "Päivärahavaatimuksia ei voitu päivittää tietokantavirheen vuoksi"

#: app/routes/per_diem.py:648
#, python-format
msgid "Successfully updated %(count)d per diem claim(s) to %(status)s"
msgstr "%(count)d päivärahavaatimus(t) päivitetty onnistuneesti arvoon %(status)s"

#: app/routes/per_diem.py:653
#, python-format
msgid "Skipped %(count)d per diem claim(s) (no permission)"
msgstr "Ohitettu %(count)d päivärahavaatimus(ta) (ei lupaa)"

#: app/routes/per_diem.py:664
msgid "Only administrators can approve per diem claims"
msgstr "Vain ylläpitäjät voivat hyväksyä päivärahahakemukset"

#: app/routes/per_diem.py:670
msgid "Only pending per diem claims can be approved"
msgstr "Vain vireillä olevat päivärahahakemukset voidaan hyväksyä"

#: app/routes/per_diem.py:678
msgid "Per diem claim approved successfully"
msgstr "Päivärahahakemus hyväksytty"

#: app/routes/per_diem.py:682 app/routes/per_diem.py:686
msgid "Error approving per diem claim"
msgstr "Virhe päivärahahakemuksen hyväksymisessä"

#: app/routes/per_diem.py:697
msgid "Only administrators can reject per diem claims"
msgstr "Vain ylläpitäjät voivat hylätä päivärahahakemukset"

#: app/routes/per_diem.py:703
msgid "Only pending per diem claims can be rejected"
msgstr "Vain vireillä olevat päivärahahakemukset voidaan hylätä"

#: app/routes/per_diem.py:715
msgid "Per diem claim rejected"
msgstr "Päivärahavaatimus hylätty"

#: app/routes/per_diem.py:719 app/routes/per_diem.py:723
msgid "Error rejecting per diem claim"
msgstr "Virhe päivärahahakemuksen hylkäämisessä"

#: app/routes/per_diem.py:789
msgid "Per diem rate created successfully"
msgstr "Päivärahan luominen onnistui"

#: app/routes/per_diem.py:793 app/routes/per_diem.py:798
msgid "Error creating per diem rate"
msgstr "Virhe luotaessa päivärahaa"

#: app/routes/per_diem.py:847
msgid "Per diem rate updated successfully"
msgstr "Päivämäärän päivitys onnistui"

#: app/routes/per_diem.py:852 app/routes/per_diem.py:857
msgid "Error updating per diem rate"
msgstr "Virhe päivitettäessä päivärahaa"

#: app/routes/per_diem.py:877
#, python-format
msgid "Cannot delete rate: It is being used by %(count)d per diem claim(s). Deactivate it instead."
msgstr "Korkoa ei voi poistaa: %(count)d päivärahavaatimuksen käyttää sitä. Sen sijaan deaktivoi se."

#: app/routes/per_diem.py:888
msgid "Per diem rate deleted successfully"
msgstr "Päivämäärän poistaminen onnistui"

#: app/routes/per_diem.py:892 app/routes/per_diem.py:896
msgid "Error deleting per diem rate"
msgstr "Virhe päivärahaa poistettaessa"

#: app/routes/permissions.py:66 app/routes/permissions.py:137
#: app/routes/permissions.py:226 app/routes/permissions.py:275
#: app/routes/permissions.py:302 app/utils/permissions.py:42
#: app/utils/permissions.py:74
msgid "You do not have permission to access this page"
msgstr "Sinulla ei ole lupaa käyttää tätä sivua"

#: app/routes/permissions.py:76 app/routes/permissions.py:149
msgid "Role name is required"
msgstr "Roolin nimi vaaditaan"

#: app/routes/permissions.py:86 app/routes/permissions.py:170
msgid "A role with this name already exists"
msgstr "Tämän niminen rooli on jo olemassa"

#: app/routes/permissions.py:109
msgid "Could not create role due to a database error"
msgstr "Roolia ei voitu luoda tietokantavirheen vuoksi"

#: app/routes/permissions.py:117
msgid "Role created successfully"
msgstr "Rooli luotiin onnistuneesti"

#: app/routes/permissions.py:159 app/templates/admin/roles/form.html:39
msgid "System role names cannot be changed"
msgstr ""

#: app/routes/permissions.py:197
msgid "Could not update role due to a database error"
msgstr "Roolia ei voitu päivittää tietokantavirheen vuoksi"

#: app/routes/permissions.py:205
msgid "Role updated successfully"
msgstr "Roolin päivitys onnistui"

#: app/routes/permissions.py:242
msgid "You do not have permission to perform this action"
msgstr "Sinulla ei ole lupaa suorittaa tätä toimintoa"

#: app/routes/permissions.py:249
msgid "System roles cannot be deleted"
msgstr "Järjestelmärooleja ei voi poistaa"

#: app/routes/permissions.py:254
msgid "Cannot delete role that is assigned to users. Please reassign users first."
msgstr "Käyttäjille määritettyä roolia ei voi poistaa. Määritä ensin käyttäjät uudelleen."

#: app/routes/permissions.py:261
msgid "Could not delete role due to a database error"
msgstr "Roolia ei voitu poistaa tietokantavirheen vuoksi"

#: app/routes/permissions.py:264
#, python-format
msgid "Role \"%(name)s\" deleted successfully"
msgstr "Rooli \"%(name)s\" poistettiin onnistuneesti"

#: app/routes/permissions.py:320
msgid "Only Super Admins can assign the super_admin role"
msgstr ""

#: app/routes/permissions.py:328
msgid "Only Super Admins can remove the admin role from themselves"
msgstr ""

#: app/routes/permissions.py:334
msgid "Only Super Admins can remove the admin role from other users"
msgstr ""

#: app/routes/permissions.py:355
msgid "Could not update user roles due to a database error"
msgstr "Käyttäjärooleja ei voitu päivittää tietokantavirheen vuoksi"

#: app/routes/permissions.py:358
msgid "User roles updated successfully"
msgstr "Käyttäjäroolien päivitys onnistui"

#: app/routes/project_templates.py:163
msgid "Template created successfully."
msgstr ""

#: app/routes/project_templates.py:182 app/routes/project_templates.py:202
#: app/routes/project_templates.py:307
msgid "Template not found."
msgstr ""

#: app/routes/project_templates.py:187
msgid "You do not have permission to view this template."
msgstr ""

#: app/routes/project_templates.py:206
msgid "You do not have permission to edit this template."
msgstr ""

#: app/routes/project_templates.py:270
msgid "Template updated successfully."
msgstr ""

#: app/routes/project_templates.py:289
msgid "Template deleted successfully."
msgstr ""

#: app/routes/project_templates.py:317
msgid "Please select a client."
msgstr ""

#: app/routes/project_templates.py:347
msgid "Project created from template successfully."
msgstr ""

#: app/routes/projects.py:339 app/routes/projects.py:940
msgid "Project name and client are required"
msgstr "Projektin nimi ja asiakas vaaditaan"

#: app/routes/projects.py:363 app/routes/projects.py:970
msgid "Invalid budget amount"
msgstr "Virheellinen budjettisumma"

#: app/routes/projects.py:376 app/routes/projects.py:985
msgid "Invalid budget threshold percent (0-100)"
msgstr "Virheellinen budjetin kynnysprosentti (0–100)"

#: app/routes/projects.py:449
msgid "Could not save project due to a database error"
msgstr ""

#: app/routes/projects.py:569 app/routes/projects_refactored_example.py:113
msgid "Project not found"
msgstr "Projektia ei löydy"

#: app/routes/projects.py:1068
msgid "Could not update project due to a database error"
msgstr ""

#: app/routes/projects.py:1113
msgid "You do not have permission to archive projects"
msgstr "Sinulla ei ole lupaa arkistoida projekteja"

#: app/routes/projects.py:1121
msgid "Project is already archived"
msgstr "Projekti on jo arkistoitu"

#: app/routes/projects.py:1155
msgid "You do not have permission to unarchive projects"
msgstr "Sinulla ei ole lupaa poistaa projekteja arkistosta"

#: app/routes/projects.py:1159 app/routes/projects.py:1219
msgid "Project is already active"
msgstr "Projekti on jo aktiivinen"

#: app/routes/projects.py:1192
msgid "You do not have permission to deactivate projects"
msgstr "Sinulla ei ole lupaa poistaa projekteja käytöstä"

#: app/routes/projects.py:1196
msgid "Project is already inactive"
msgstr "Projekti on jo epäaktiivinen"

#: app/routes/projects.py:1215
msgid "You do not have permission to activate projects"
msgstr "Sinulla ei ole lupaa aktivoida projekteja"

#: app/routes/projects.py:1239
msgid "Cannot delete project with existing time entries"
msgstr "Projektia, jossa on olemassa olevia aikamerkintöjä, ei voi poistaa"

#: app/routes/projects.py:1259
msgid "Could not delete project due to a database error. Please check server logs."
msgstr "Projektia ei voitu poistaa tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/projects.py:1272
msgid "You do not have permission to delete projects"
msgstr "Sinulla ei ole lupaa poistaa projekteja"

#: app/routes/projects.py:1278
msgid "No projects selected for deletion"
msgstr "Poistettavia projekteja ei ole valittu"

#: app/routes/projects.py:1317
msgid "Could not delete projects due to a database error. Please check server logs."
msgstr "Projekteja ei voitu poistaa tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/projects.py:1331
msgid "No projects were deleted"
msgstr "Projekteja ei poistettu"

#: app/routes/projects.py:1342
msgid "You do not have permission to change project status"
msgstr "Sinulla ei ole lupaa muuttaa projektin tilaa"

#: app/routes/projects.py:1350
msgid "No projects selected"
msgstr "Ei valittuja projekteja"

#: app/routes/projects.py:1413
msgid "Could not update project status due to a database error. Please check server logs."
msgstr "Projektin tilaa ei voitu päivittää tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/projects.py:1430
msgid "No projects were updated"
msgstr "Projekteja ei ole päivitetty"

#: app/routes/projects.py:1448 app/routes/projects.py:1449
msgid "Project is already in favorites"
msgstr "Projekti on jo suosikeissa"

#: app/routes/projects.py:1471 app/routes/projects.py:1472
msgid "Project added to favorites"
msgstr "Projekti lisätty suosikkeihin"

#: app/routes/projects.py:1476 app/routes/projects.py:1477
msgid "Failed to add project to favorites"
msgstr "Projektin lisääminen suosikkeihin epäonnistui"

#: app/routes/projects.py:1493 app/routes/projects.py:1494
msgid "Project is not in favorites"
msgstr "Projekti ei ole suosikeissa"

#: app/routes/projects.py:1516 app/routes/projects.py:1517
msgid "Project removed from favorites"
msgstr "Projekti poistettu suosikeista"

#: app/routes/projects.py:1521 app/routes/projects.py:1522
msgid "Failed to remove project from favorites"
msgstr "Projektin poistaminen suosikeista epäonnistui"

#: app/routes/projects.py:1602 app/routes/projects.py:1673
msgid "Description, category, amount, and date are required"
msgstr "Kuvaus, luokka, määrä ja päivämäärä vaaditaan"

#: app/routes/projects.py:1636
msgid "Could not add cost due to a database error. Please check server logs."
msgstr "Kustannuksia ei voitu lisätä tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/projects.py:1639
msgid "Cost added successfully"
msgstr "Kustannukset lisätty onnistuneesti"

#: app/routes/projects.py:1654 app/routes/projects.py:1721
msgid "Cost not found"
msgstr "Hintaa ei löytynyt"

#: app/routes/projects.py:1659
msgid "You do not have permission to edit this cost"
msgstr "Sinulla ei ole lupaa muokata tätä hintaa"

#: app/routes/projects.py:1703
msgid "Could not update cost due to a database error. Please check server logs."
msgstr "Kustannuksia ei voitu päivittää tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/projects.py:1706
msgid "Cost updated successfully"
msgstr "Hinta päivitetty onnistuneesti"

#: app/routes/projects.py:1726
msgid "You do not have permission to delete this cost"
msgstr "Sinulla ei ole lupaa poistaa tätä hintaa"

#: app/routes/projects.py:1731
msgid "Cannot delete cost that has been invoiced"
msgstr "Laskutettua kulua ei voi poistaa"

#: app/routes/projects.py:1737
msgid "Could not delete cost due to a database error. Please check server logs."
msgstr "Kustannuksia ei voitu poistaa tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/projects.py:1830 app/routes/projects.py:1905
msgid "Name and unit price are required"
msgstr "Nimi ja yksikköhinta vaaditaan"

#: app/routes/projects.py:1839 app/routes/projects.py:1914
msgid "Invalid quantity format"
msgstr "Virheellinen määrän muoto"

#: app/routes/projects.py:1848 app/routes/projects.py:1923
msgid "Invalid unit price format"
msgstr "Virheellinen yksikköhinnan muoto"

#: app/routes/projects.py:1867
msgid "Could not add extra good due to a database error. Please check server logs."
msgstr "Ei voitu lisätä ylimääräistä hyvää tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/projects.py:1870
msgid "Extra good added successfully"
msgstr "Erittäin hyvä lisätty onnistuneesti"

#: app/routes/projects.py:1885 app/routes/projects.py:1956
msgid "Extra good not found"
msgstr "Erittäin hyvää ei löytynyt"

#: app/routes/projects.py:1890
msgid "You do not have permission to edit this extra good"
msgstr "Sinulla ei ole lupaa muokata tätä ylimääräistä tuotetta"

#: app/routes/projects.py:1938
msgid "Could not update extra good due to a database error. Please check server logs."
msgstr "Ei voitu päivittää erityisen hyvin tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/projects.py:1941
msgid "Extra good updated successfully"
msgstr "Erittäin hyvä päivitys onnistuneesti"

#: app/routes/projects.py:1961
msgid "You do not have permission to delete this extra good"
msgstr "Sinulla ei ole lupaa poistaa tätä ylimääräistä tuotetta"

#: app/routes/projects.py:1966
msgid "Cannot delete extra good that has been added to an invoice"
msgstr "Laskuun lisättyä ylimääräistä tuotetta ei voi poistaa"

#: app/routes/projects.py:1972
msgid "Could not delete extra good due to a database error. Please check server logs."
msgstr "Erityistä hyvää ei voitu poistaa tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/projects_refactored_example.py:190
msgid "Project created successfully"
msgstr "Projekti luotu onnistuneesti"

#: app/routes/quotes.py:248 app/routes/quotes.py:562
msgid "Invalid discount amount format"
msgstr "Virheellinen alennussumman muoto"

#: app/routes/quotes.py:866
msgid "Quote must be approved before it can be sent"
msgstr "Tarjous on hyväksyttävä ennen kuin se voidaan lähettää"

#: app/routes/quotes.py:874
#, python-format
msgid "Cannot send quote: %(error)s"
msgstr "Tarjousta ei voi lähettää: %(error)s"

#: app/routes/quotes.py:1115
msgid "You do not have permission to upload attachments to this quote"
msgstr "Sinulla ei ole lupaa ladata liitteitä tähän lainaukseen"

#: app/routes/quotes.py:1229
msgid "You do not have permission to download this attachment"
msgstr "Sinulla ei ole lupaa ladata tätä liitettä"

#: app/routes/quotes.py:1298
msgid "You do not have permission to request approval for this quote"
msgstr "Sinulla ei ole lupaa pyytää hyväksyntää tälle tarjoukselle"

#: app/routes/quotes.py:1302 app/routes/quotes.py:1340
#: app/routes/quotes.py:1380
msgid "This quote does not require approval"
msgstr "Tämä tarjous ei vaadi hyväksyntää"

#: app/routes/quotes.py:1308
#, python-format
msgid "Cannot request approval: %(error)s"
msgstr "Ei voida pyytää hyväksyntää: %(error)s"

#: app/routes/quotes.py:1312
msgid "Could not request approval due to a database error. Please check server logs."
msgstr "Ei voitu pyytää hyväksyntää tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/quotes.py:1328
msgid "Approval requested successfully"
msgstr "Hyväksyntäpyyntö onnistui"

#: app/routes/quotes.py:1344 app/routes/quotes.py:1384
msgid "This quote is not pending approval"
msgstr "Tämä tarjous ei odota hyväksyntää"

#: app/routes/quotes.py:1352
#, python-format
msgid "Cannot approve quote: %(error)s"
msgstr "Tarjousta ei voida hyväksyä: %(error)s"

#: app/routes/quotes.py:1356
msgid "Could not approve quote due to a database error. Please check server logs."
msgstr "Tarjousta ei voitu hyväksyä tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/quotes.py:1368
msgid "Quote approved successfully"
msgstr "Tarjous hyväksytty"

#: app/routes/quotes.py:1395
#, python-format
msgid "Cannot reject quote: %(error)s"
msgstr "Tarjousta ei voi hylätä: %(error)s"

#: app/routes/quotes.py:1411
msgid "Quote approval rejected"
msgstr "Lainauksen hyväksyntä hylätty"

#: app/routes/quotes.py:1488
msgid "Could not create template due to a database error. Please check server logs."
msgstr "Mallia ei voitu luoda tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/quotes.py:1494
msgid "Template created successfully"
msgstr "Malli luotiin onnistuneesti"

#: app/routes/quotes.py:1507
msgid "Quote ID is required"
msgstr ""

#: app/routes/quotes.py:1513
msgid "You do not have permission to create a template from this quote"
msgstr "Sinulla ei ole lupaa luoda mallia tästä lainauksesta"

#: app/routes/quotes.py:1555
msgid "Could not save template due to a database error. Please check server logs."
msgstr "Mallia ei voitu tallentaa tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/quotes.py:1561
msgid "Template saved successfully"
msgstr "Malli tallennettu onnistuneesti"

#: app/routes/quotes.py:1578
msgid "You do not have permission to export this quote"
msgstr "Sinulla ei ole lupaa viedä tätä tarjousta"

#: app/routes/quotes.py:1649
#, python-format
msgid "Error generating PDF: %(error)s"
msgstr "Virhe PDF:n luomisessa: %(error)s"

#: app/routes/quotes.py:1673
msgid "Recipient email address is required"
msgstr "Vastaanottajan sähköpostiosoite vaaditaan"

#: app/routes/quotes.py:1691
#, python-format
msgid "Quote sent successfully to %(email)s"
msgstr "Tarjous lähetetty onnistuneesti osoitteeseen %(email)s"

#: app/routes/quotes.py:1708
#, python-format
msgid "Failed to send quote: %(error)s"
msgstr "Tarjouksen lähettäminen epäonnistui: %(error)s"

#: app/routes/quotes.py:1714
#, python-format
msgid "Error sending email: %(error)s"
msgstr "Virhe lähetettäessä sähköpostia: %(error)s"

#: app/routes/quotes.py:1733
msgid "You do not have permission to duplicate this quote"
msgstr "Sinulla ei ole lupaa kopioida tätä lainausta"

#: app/routes/quotes.py:1771
msgid "Could not duplicate quote due to a database error. Please check server logs."
msgstr "Lainausta ei voitu kopioida tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/quotes.py:1796
msgid "Could not finalize duplicated quote due to a database error. Please check server logs."
msgstr "Kopioitua tarjousta ei voitu viimeistellä tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/quotes.py:1799
#, python-format
msgid "Quote %(quote_number)s created as duplicate"
msgstr "Lainaus %(quote_number)s luotiin kaksoiskappaleena"

#: app/routes/quotes.py:1824
msgid "Please select an action and at least one quote"
msgstr "Valitse toiminto ja vähintään yksi tarjous"

#: app/routes/quotes.py:1830
msgid "Invalid quote IDs"
msgstr "Virheelliset lainaustunnukset"

#: app/routes/quotes.py:1839
msgid "No quotes found or you do not have permission"
msgstr "Lainauksia ei löytynyt tai sinulla ei ole lupaa"

#: app/routes/quotes.py:1905
#, python-format
msgid "Duplicated %(count)d quote(s)"
msgstr "Kopioitu %(count)d lainaus"

#: app/routes/quotes.py:1907
#, python-format
msgid "Failed to duplicate %(count)d quote(s)"
msgstr "%(count)d lainauksen kopiointi epäonnistui"

#: app/routes/quotes.py:1909
msgid "Error duplicating quotes"
msgstr "Virhe lainausmerkkien kopioinnissa"

#: app/routes/quotes.py:1924
#, python-format
msgid "Marked %(count)d quote(s) as sent"
msgstr "%(count)d lainaus merkittiin lähetetyksi"

#: app/routes/quotes.py:1926
#, python-format
msgid "Could not mark %(count)d quote(s) as sent"
msgstr "%(count)d lainausta ei voitu merkitä lähetetyksi"

#: app/routes/quotes.py:1928
msgid "Error updating quotes"
msgstr "Virhe tarjousten päivittämisessä"

#: app/routes/quotes.py:1944
#, python-format
msgid "Deleted %(count)d quote(s)"
msgstr "%(count)d lainaus poistettu"

#: app/routes/quotes.py:1946
#, python-format
msgid "Could not delete %(count)d quote(s) (may be in use)"
msgstr "Ei voitu poistaa %(count)d lainausta (saattaa olla käytössä)"

#: app/routes/quotes.py:1948
msgid "Error deleting quotes"
msgstr "Virhe lainausmerkkejä poistettaessa"

#: app/routes/quotes.py:1951
msgid "Invalid action"
msgstr "Virheellinen toiminto"

#: app/routes/quotes.py:1973
msgid "You do not have permission to upload images to this quote"
msgstr ""

#: app/routes/quotes.py:2140
msgid "You do not have permission to delete images from this quote"
msgstr ""

#: app/routes/recurring_invoices.py:68
msgid "Name, project, client, frequency, and next run date are required"
msgstr "Nimi, projekti, asiakas, taajuus ja seuraava suorituspäivä ovat pakollisia"

#: app/routes/recurring_invoices.py:74
msgid "Invalid next run date format"
msgstr "Virheellinen seuraavan suorituspäivän muoto"

#: app/routes/recurring_invoices.py:82
msgid "Invalid end date format"
msgstr "Virheellinen lopetuspäivän muoto"

#: app/routes/recurring_invoices.py:95
msgid "Selected project or client not found"
msgstr "Valittua projektia tai asiakasta ei löydy"

#: app/routes/recurring_invoices.py:137
msgid "Could not create recurring invoice due to a database error. Please check server logs."
msgstr "Toistuvaa laskua ei voitu luoda tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/recurring_invoices.py:173
msgid "You do not have permission to view this recurring invoice"
msgstr "Sinulla ei ole lupaa tarkastella tätä toistuvaa laskua"

#: app/routes/recurring_invoices.py:191
msgid "You do not have permission to edit this recurring invoice"
msgstr "Sinulla ei ole lupaa muokata tätä toistuvaa laskua"

#: app/routes/recurring_invoices.py:216
msgid "Could not update recurring invoice due to a database error. Please check server logs."
msgstr "Toistuvaa laskua ei voitu päivittää tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/recurring_invoices.py:224
msgid "Recurring invoice updated successfully"
msgstr "Toistuvan laskun päivitys onnistui"

#: app/routes/recurring_invoices.py:251
msgid "You do not have permission to delete this recurring invoice"
msgstr "Sinulla ei ole lupaa poistaa tätä toistuvaa laskua"

#: app/routes/recurring_invoices.py:257
msgid "Could not delete recurring invoice due to a database error. Please check server logs."
msgstr "Toistuvaa laskua ei voitu poistaa tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/recurring_tasks.py:64
msgid "Recurring task created successfully"
msgstr ""

#: app/routes/reports.py:134 app/routes/reports.py:208
#: app/routes/reports.py:860 app/routes/timer.py:2266
msgid "You do not have permission to view other users' time entries"
msgstr ""

#: app/routes/reports.py:387 app/routes/reports.py:959
#: app/routes/reports.py:1000 app/routes/reports.py:1093
#: app/routes/reports.py:1176 app/routes/reports.py:1270
#: app/routes/reports.py:1445
msgid "You do not have permission to export other users' time entries"
msgstr ""

#: app/routes/reports.py:1014 app/templates/main/dashboard.html:706
#: app/templates/main/search.html:34 app/templates/mileage/gps.html:31
#: app/templates/projects/_kanban_tailwind.html:78
#: app/templates/projects/time_entries_overview.html:68
#: app/templates/projects/time_entries_overview.html:79
#: app/templates/reports/time_entries_report.html:103
#: app/templates/reports/time_entries_report.html:117
#: app/templates/tasks/view.html:14 app/templates/timer/calendar.html:868
#: app/templates/timer/time_entries_export_pdf.html:14
msgid "Start"
msgstr "Aloita"

#: app/routes/reports.py:1015 app/templates/main/search.html:35
#: app/templates/projects/time_entries_overview.html:69
#: app/templates/projects/time_entries_overview.html:80
#: app/templates/timer/calendar.html:872
#: app/templates/timer/time_entries_export_pdf.html:15
msgid "End"
msgstr "Loppu"

#: app/routes/reports.py:1016 app/templates/reports/user_report.html:78
msgid "Duration (hours)"
msgstr ""

#: app/routes/reports.py:1018 app/templates/approvals/view.html:52
#: app/templates/audit_logs/view.html:95
#: app/templates/calendar/event_detail.html:104
#: app/templates/calendar/event_form.html:129
#: app/templates/clients/view.html:351
#: app/templates/components/offline_indicator.html:78
#: app/templates/kiosk/dashboard.html:331 app/templates/main/dashboard.html:750
#: app/templates/projects/_kanban_tailwind.html:30
#: app/templates/projects/time_entries_overview.html:71
#: app/templates/projects/time_entries_overview.html:82
#: app/templates/reports/time_entries_report.html:57
#: app/templates/reports/time_entries_report.html:107
#: app/templates/reports/time_entries_report.html:121
#: app/templates/reports/unpaid_hours_report.html:121
#: app/templates/reports/user_report.html:77
#: app/templates/timer/_time_entries_list.html:39
#: app/templates/timer/_time_entries_list.html:80
#: app/templates/timer/calendar.html:158 app/templates/timer/calendar.html:811
#: app/templates/timer/calendar.html:866
#: app/templates/timer/manual_entry.html:79
#: app/templates/timer/time_entries_export_pdf.html:17
#: app/templates/timer/timer_page.html:160
#: app/templates/timer/view_timer.html:91
msgid "Task"
msgstr "Tehtävä"

#: app/routes/reports.py:1019 app/templates/admin/pdf_layout.html:1864
#: app/templates/admin/quote_pdf_layout.html:1670
#: app/templates/admin/salesman_email_mappings.html:124
#: app/templates/approvals/view.html:62
#: app/templates/client_portal/invoice_detail.html:123
#: app/templates/clients/view.html:354 app/templates/contacts/form.html:84
#: app/templates/contacts/view.html:70 app/templates/deals/form.html:102
#: app/templates/deals/view.html:112
#: app/templates/inventory/adjustments/form.html:50
#: app/templates/inventory/movements/form.html:108
#: app/templates/inventory/purchase_orders/form.html:55
#: app/templates/inventory/purchase_orders/view.html:75
#: app/templates/inventory/stock_items/form.html:81
#: app/templates/inventory/suppliers/form.html:73
#: app/templates/inventory/suppliers/view.html:99
#: app/templates/inventory/transfers/form.html:54
#: app/templates/inventory/warehouses/form.html:48
#: app/templates/inventory/warehouses/view.html:69
#: app/templates/invoices/create.html:51 app/templates/invoices/edit.html:46
#: app/templates/kiosk/dashboard.html:347 app/templates/leads/form.html:88
#: app/templates/leads/view.html:115 app/templates/main/dashboard.html:760
#: app/templates/main/search.html:37 app/templates/projects/add_cost.html:76
#: app/templates/projects/edit_cost.html:83
#: app/templates/reports/iterative_view.html:47
#: app/templates/reports/iterative_view.html:58
#: app/templates/reports/time_entries_report.html:108
#: app/templates/reports/time_entries_report.html:122
#: app/templates/reports/unpaid_hours_report.html:124
#: app/templates/reports/user_report.html:79 app/templates/tasks/view.html:78
#: app/templates/timer/_time_entries_list.html:41
#: app/templates/timer/_time_entries_list.html:107
#: app/templates/timer/bulk_entry.html:189
#: app/templates/timer/calendar.html:187 app/templates/timer/calendar.html:879
#: app/templates/timer/edit_timer.html:337
#: app/templates/timer/edit_timer.html:448
#: app/templates/timer/manual_entry.html:140
#: app/templates/timer/time_entries_export_pdf.html:19
#: app/templates/timer/timer_page.html:169
#: app/templates/timer/view_timer.html:46
#: app/templates/weekly_goals/create.html:83
#: app/templates/weekly_goals/edit.html:98
#: app/templates/weekly_goals/view.html:163
msgid "Notes"
msgstr "Huomautuksia"

#: app/routes/reports.py:1020 app/templates/reports/time_entries_report.html:68
#: app/templates/reports/time_entries_report.html:109
#: app/templates/reports/time_entries_report.html:123
#, fuzzy
msgid "Billed"
msgstr "Laskutettava"

#: app/routes/reports.py:1021 app/templates/approvals/view.html:44
#: app/templates/audit_logs/list.html:114 app/templates/audit_logs/view.html:92
#: app/templates/calendar/event_detail.html:120
#: app/templates/calendar/event_form.html:142
#: app/templates/client_portal/invoice_detail.html:23
#: app/templates/client_portal/project_comments.html:51
#: app/templates/client_portal/quote_detail.html:23
#: app/templates/client_portal/set_password.html:41
#: app/templates/deals/form.html:30 app/templates/deals/list.html:51
#: app/templates/deals/list.html:65 app/templates/deals/view.html:36
#: app/templates/issues/list.html:57 app/templates/issues/list.html:94
#: app/templates/issues/list.html:111 app/templates/issues/new.html:37
#: app/templates/issues/view.html:126 app/templates/issues/view.html:156
#: app/templates/leads/convert_to_deal.html:29
#: app/templates/main/dashboard.html:742 app/templates/main/help.html:196
#: app/templates/project_templates/create_project.html:21
#: app/templates/projects/_projects_list.html:79
#: app/templates/projects/create.html:32 app/templates/projects/edit.html:30
#: app/templates/projects/list.html:160
#: app/templates/quotes/_quotes_list.html:35
#: app/templates/quotes/_quotes_list.html:52
#: app/templates/quotes/accept.html:22 app/templates/quotes/create.html:32
#: app/templates/quotes/edit.html:36 app/templates/quotes/view.html:84
#: app/templates/recurring_invoices/list.html:25
#: app/templates/recurring_invoices/list.html:41
#: app/templates/reports/iterative_view.html:43
#: app/templates/reports/iterative_view.html:54
#: app/templates/reports/time_entries_report.html:46
#: app/templates/reports/time_entries_report.html:110
#: app/templates/reports/time_entries_report.html:124
#: app/templates/reports/unpaid_hours_report.html:73
#: app/templates/reports/unpaid_hours_report.html:85
#: app/templates/reports/user_report.html:81
#: app/templates/timer/manual_entry.html:71
#: app/templates/timer/time_entries_overview.html:98
#: app/templates/timer/timer_page.html:149
#: app/templates/timer/view_timer.html:81
msgid "Client"
msgstr "Asiakas"

#: app/routes/reports.py:1024 app/templates/admin/dashboard.html:334
#: app/templates/admin/oidc_debug.html:152
#: app/templates/admin/oidc_user_detail.html:26
#: app/templates/audit_logs/list.html:35 app/templates/audit_logs/list.html:76
#: app/templates/audit_logs/list.html:90
#: app/templates/client_portal/reports.html:222
#: app/templates/client_portal/time_entries.html:64
#: app/templates/client_portal/widgets/time_entries.html:22
#: app/templates/clients/view.html:352 app/templates/deals/view.html:193
#: app/templates/deals/view.html:203 app/templates/expenses/list.html:329
#: app/templates/integrations/health.html:41
#: app/templates/inventory/adjustments/list.html:61
#: app/templates/inventory/adjustments/list.html:82
#: app/templates/inventory/movements/list.html:62
#: app/templates/inventory/movements/list.html:145
#: app/templates/inventory/reports/movement_history.html:78
#: app/templates/inventory/reports/movement_history.html:165
#: app/templates/inventory/stock_items/history.html:69
#: app/templates/inventory/stock_items/history.html:151
#: app/templates/inventory/transfers/list.html:43
#: app/templates/inventory/transfers/list.html:70
#: app/templates/projects/time_entries_overview.html:73
#: app/templates/projects/time_entries_overview.html:90
#: app/templates/reports/iterative_view.html:45
#: app/templates/reports/iterative_view.html:56
#: app/templates/reports/time_entries_report.html:24
#: app/templates/reports/unpaid_hours_report.html:119
#: app/templates/reports/user_report.html:75 app/templates/tasks/view.html:77
#: app/templates/timer/_time_entries_list.html:36
#: app/templates/timer/_time_entries_list.html:63
#: app/templates/timer/edit_timer.html:533
#: app/templates/timer/time_entries_overview.html:67
#: app/templates/timer/view_timer.html:118 app/templates/user/profile.html:23
#: app/templates/workforce/dashboard.html:21
#: app/templates/workforce/dashboard.html:208
msgid "User"
msgstr "Käyttäjä"

#: app/routes/reports.py:1038 app/templates/admin/email_support.html:183
#: app/templates/admin/settings.html:413 app/templates/base.html:395
#: app/templates/integrations/health.html:46
#: app/templates/integrations/view.html:32
#: app/templates/integrations/wizard_jira.html:253
#: app/templates/inventory/stock_items/view.html:113
#: app/templates/kanban/columns.html:79
#: app/templates/project_templates/view.html:40
#: app/templates/reports/time_entries_report.html:72
#: app/templates/reports/time_entries_report.html:123
#: app/templates/timer/calendar.html:885
msgid "Yes"
msgstr "Kyllä"

#: app/routes/reports.py:1038 app/templates/admin/email_support.html:185
#: app/templates/admin/settings.html:413 app/templates/base.html:396
#: app/templates/integrations/health.html:48
#: app/templates/integrations/view.html:43
#: app/templates/integrations/wizard_jira.html:253
#: app/templates/inventory/stock_items/view.html:115
#: app/templates/kanban/columns.html:81
#: app/templates/project_templates/view.html:40
#: app/templates/reports/time_entries_report.html:73
#: app/templates/reports/time_entries_report.html:123
#: app/templates/timer/calendar.html:885
msgid "No"
msgstr "Ei"

#: app/routes/salesman_reports.py:27
msgid "You do not have permission to access this page."
msgstr ""

#: app/routes/saved_filters.py:248
msgid "Could not delete filter due to a database error"
msgstr "Suodatinta ei voitu poistaa tietokantavirheen vuoksi"

#: app/routes/scheduled_reports.py:104
msgid "Error loading scheduled reports. Please check the logs."
msgstr ""

#: app/routes/scheduled_reports.py:129 app/routes/scheduled_reports.py:195
msgid "Please fill in all required fields."
msgstr ""

#: app/routes/scheduled_reports.py:133 app/routes/scheduled_reports.py:200
msgid "Please specify a custom field name when enabling report iteration."
msgstr ""

#: app/routes/scheduled_reports.py:151
msgid "Scheduled report created successfully."
msgstr ""

#: app/routes/scheduled_reports.py:168
msgid "Scheduled report deleted successfully."
msgstr ""

#: app/routes/scheduled_reports.py:250 app/routes/scheduled_reports.py:355
msgid "Permission denied"
msgstr ""

#: app/routes/scheduled_reports.py:305
msgid "You do not have permission to fix this schedule."
msgstr ""

#: app/routes/scheduled_reports.py:313
msgid "Scheduled report deleted: saved view no longer exists."
msgstr ""

#: app/routes/scheduled_reports.py:327
msgid "Scheduled report deactivated: invalid configuration."
msgstr ""

#: app/routes/scheduled_reports.py:334
msgid "Scheduled report deactivated: could not parse configuration."
msgstr ""

#: app/routes/scheduled_reports.py:340
msgid "Scheduled report validated and reactivated."
msgstr ""

#: app/routes/scheduled_reports.py:359
msgid "Saved report view not found"
msgstr ""

#: app/routes/settings.py:46
msgid "Your preferences are managed on the main Settings page."
msgstr ""

#: app/routes/setup.py:107
#, fuzzy
msgid "Could not save settings. Please check server logs."
msgstr "Asetuksia ei voitu päivittää tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/setup.py:125
msgid "Setup complete! Thank you for helping us improve TimeTracker."
msgstr "Asennus valmis! Kiitos, että autat meitä parantamaan TimeTrackeria."

#: app/routes/setup.py:127
msgid "Setup complete! Detailed analytics is disabled; anonymous base telemetry remains active."
msgstr ""

#: app/routes/setup.py:129
msgid "Google Calendar OAuth credentials have been configured."
msgstr ""

#: app/routes/tasks.py:191
msgid "Project and task name are required"
msgstr "Projektin ja tehtävän nimi vaaditaan"

#: app/routes/tasks.py:200 app/routes/tasks.py:422
#, python-format
msgid "Invalid task name: %(error)s"
msgstr ""

#: app/routes/tasks.py:208
msgid "Selected project does not exist"
msgstr "Valittua projektia ei ole olemassa"

#: app/routes/tasks.py:331
msgid "Task not found"
msgstr ""

#: app/routes/tasks.py:336
msgid "You do not have access to this task"
msgstr "Sinulla ei ole pääsyä tähän tehtävään"

#: app/routes/tasks.py:395
msgid "You can only edit tasks you created"
msgstr "Voit muokata vain luomiasi tehtäviä"

#: app/routes/tasks.py:415
msgid "Task name is required"
msgstr "Tehtävän nimi on pakollinen"

#: app/routes/tasks.py:434
msgid "Project is required"
msgstr "Projekti vaaditaan"

#: app/routes/tasks.py:525
msgid "Could not update status due to a database error. Please check server logs."
msgstr "Tilaa ei voitu päivittää tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/tasks.py:588
msgid "Could not update task due to a database error. Please check server logs."
msgstr "Tehtävää ei voitu päivittää tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/tasks.py:626
msgid "You do not have permission to update this task"
msgstr "Sinulla ei ole lupaa päivittää tätä tehtävää"

#: app/routes/tasks.py:736
msgid "You can only update tasks you created"
msgstr "Voit päivittää vain luomiasi tehtäviä"

#: app/routes/tasks.py:757
msgid "You can only assign tasks you created"
msgstr "Voit määrittää vain itse luomiasi tehtäviä"

#: app/routes/tasks.py:763
msgid "Selected user does not exist"
msgstr "Valittua käyttäjää ei ole olemassa"

#: app/routes/tasks.py:770
msgid "Task unassigned"
msgstr "Tehtävää ei ole määritetty"

#: app/routes/tasks.py:783
msgid "You can only delete tasks you created"
msgstr "Voit poistaa vain luomiasi tehtäviä"

#: app/routes/tasks.py:788
msgid "Cannot delete task with existing time entries"
msgstr "Tehtävää ei voi poistaa olemassa olevilla aikamerkinnöillä"

#: app/routes/tasks.py:809
msgid "Could not delete task due to a database error. Please check server logs."
msgstr "Tehtävää ei voitu poistaa tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/tasks.py:831
msgid "No tasks selected for deletion"
msgstr "Poistettavia tehtäviä ei ole valittu"

#: app/routes/tasks.py:893
msgid "Could not delete tasks due to a database error. Please check server logs."
msgstr "Tehtäviä ei voitu poistaa tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/tasks.py:914 app/routes/tasks.py:989 app/routes/tasks.py:990
#: app/routes/tasks.py:1068 app/routes/tasks.py:1069 app/routes/tasks.py:1137
#: app/routes/tasks.py:1196
msgid "No tasks selected"
msgstr "Tehtäviä ei ole valittu"

#: app/routes/tasks.py:962 app/routes/tasks.py:1030 app/routes/tasks.py:1105
msgid "Could not update tasks due to a database error"
msgstr "Tehtäviä ei voitu päivittää tietokantavirheen vuoksi"

#: app/routes/tasks.py:995
#, fuzzy
msgid "Due date is required (YYYY-MM-DD)"
msgstr "Anna uusi eräpäivä (VVVV-KK-PP):"

#: app/routes/tasks.py:996
#, fuzzy
msgid "Due date is required"
msgstr "Kulutuspäivä vaaditaan"

#: app/routes/tasks.py:1005 app/routes/tasks.py:1006
#, fuzzy
msgid "Invalid date format. Use YYYY-MM-DD"
msgstr "Virheellinen päivämäärän muoto"

#: app/routes/tasks.py:1029 app/routes/tasks.py:1104
#, fuzzy
msgid "Database error"
msgstr "Tietokannan tuki"

#: app/routes/tasks.py:1040 app/routes/tasks.py:1115
#, fuzzy, python-format
msgid "Updated %(count)s task(s)"
msgstr "Kopioitu %(count)d lainaus"

#: app/routes/tasks.py:1040 app/routes/tasks.py:1115
#, fuzzy
msgid "No tasks updated"
msgstr "Tehtäviä ei löytynyt"

#: app/routes/tasks.py:1046
#, fuzzy, python-format
msgid "Successfully updated %(count)s task(s) due date to %(date)s"
msgstr "%(count)d kulu(t) päivitetty onnistuneesti arvoon %(status)s"

#: app/routes/tasks.py:1050
#, fuzzy, python-format
msgid "Skipped %(count)s task(s) (no permission)"
msgstr "Ohitettu %(count)d kulu(tta) (ei lupaa)"

#: app/routes/tasks.py:1074 app/routes/tasks.py:1075
msgid "Invalid priority value"
msgstr "Virheellinen prioriteettiarvo"

#: app/routes/tasks.py:1141
msgid "No user selected for assignment"
msgstr "Käyttäjää ei ole valittu tehtävään"

#: app/routes/tasks.py:1147
msgid "Invalid user selected"
msgstr "Virheellinen käyttäjä valittu"

#: app/routes/tasks.py:1174
msgid "Could not assign tasks due to a database error"
msgstr "Tehtäviä ei voitu määrittää tietokantavirheen vuoksi"

#: app/routes/tasks.py:1200
msgid "No project selected"
msgstr "Projektia ei ole valittu"

#: app/routes/tasks.py:1206 app/routes/timer.py:116 app/routes/timer.py:434
#: app/routes/timer.py:823 app/routes/timer.py:1639
msgid "Invalid project selected"
msgstr "Virheellinen projekti valittu"

#: app/routes/tasks.py:1251
msgid "Could not move tasks due to a database error"
msgstr "Tehtäviä ei voitu siirtää tietokantavirheen vuoksi"

#: app/routes/tasks.py:1484
msgid "Only administrators can view all overdue tasks"
msgstr "Vain järjestelmänvalvojat voivat tarkastella kaikkia myöhässä olevia tehtäviä"

#: app/routes/team_chat.py:58 app/routes/team_chat.py:106
#: app/routes/team_chat.py:413 app/routes/team_chat.py:451
msgid "You don't have access to this channel"
msgstr ""

#: app/routes/team_chat.py:113
msgid "Message cannot be empty"
msgstr ""

#: app/routes/team_chat.py:133
msgid "Attachment data was invalid; message sent without attachment."
msgstr ""

#: app/routes/team_chat.py:406
msgid "Invalid message"
msgstr ""

#: app/routes/team_chat.py:417
msgid "No attachment found"
msgstr ""

#: app/routes/team_chat.py:496
msgid "Invalid filename"
msgstr ""

#: app/routes/team_chat.py:507
msgid "Server error: Could not create upload directory"
msgstr ""

#: app/routes/team_chat.py:515
msgid "Server error: Could not save file"
msgstr ""

#: app/routes/team_chat.py:556
msgid "Cannot create direct message with yourself"
msgstr ""

#: app/routes/team_chat.py:559
msgid "User is not active"
msgstr ""

#: app/routes/time_approvals.py:73
msgid "Time entry approved"
msgstr ""

#: app/routes/time_approvals.py:101
msgid "Time entry rejected"
msgstr ""

#: app/routes/time_approvals.py:127
msgid "Approval requested"
msgstr ""

#: app/routes/time_approvals.py:147
msgid "Approval cancelled"
msgstr ""

#: app/routes/time_entry_templates.py:93
msgid "Could not create template due to a database error"
msgstr "Mallia ei voitu luoda tietokantavirheen vuoksi"

#: app/routes/time_entry_templates.py:205
msgid "Could not update template due to a database error"
msgstr "Mallia ei voitu päivittää tietokantavirheen vuoksi"

#: app/routes/time_entry_templates.py:248
msgid "Could not delete template due to a database error"
msgstr "Mallia ei voitu poistaa tietokantavirheen vuoksi"

#: app/routes/timer.py:105
msgid "Either a project or a client is required"
msgstr ""

#: app/routes/timer.py:127 app/routes/timer.py:440 app/routes/timer.py:2042
msgid "Cannot start timer for an archived project. Please unarchive the project first."
msgstr "Arkistoidun projektin ajastinta ei voi käynnistää. Poista projektin arkisto ensin."

#: app/routes/timer.py:131 app/routes/timer.py:444 app/routes/timer.py:2045
msgid "Cannot start timer for an inactive project"
msgstr "Ei voi käynnistää ajastinta ei-aktiiviselle projektille"

#: app/routes/timer.py:139
msgid "Selected task is invalid for the chosen project"
msgstr "Valittu tehtävä on virheellinen valitulle projektille"

#: app/routes/timer.py:153
msgid "Invalid client selected"
msgstr ""

#: app/routes/timer.py:159
msgid "Tasks can only be selected for project-based timers"
msgstr ""

#: app/routes/timer.py:167 app/routes/timer.py:356 app/routes/timer.py:449
#, fuzzy
msgid "You do not have access to this project"
msgstr "Sinulla ei ole pääsyä tähän projektiin."

#: app/routes/timer.py:171
#, fuzzy
msgid "You do not have access to this client"
msgstr "Sinulla ei ole pääsyä tähän tehtävään"

#: app/routes/timer.py:177 app/routes/timer.py:341 app/routes/timer.py:455
msgid "You already have an active timer. Stop it before starting a new one."
msgstr "Sinulla on jo aktiivinen ajastin. Lopeta se ennen kuin aloitat uuden."

#: app/routes/timer.py:219 app/routes/timer.py:382 app/routes/timer.py:470
msgid "Could not start timer due to a database error. Please check server logs."
msgstr "Ei voitu käynnistää ajastinta tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/timer.py:267 app/routes/timer.py:272 app/routes/timer.py:1048
#: app/routes/timer.py:1055 app/routes/timer.py:2148
#: app/templates/admin/oidc_user_detail.html:30
#: app/templates/client_portal/project_comments.html:55
#: app/templates/invoice_approvals/list.html:56
#: app/templates/invoice_approvals/view.html:43
#: app/templates/invoice_approvals/view.html:50
#: app/templates/invoice_approvals/view.html:73
#: app/templates/reports/scheduled.html:38
msgid "Unknown"
msgstr "Tuntematon"

#: app/routes/timer.py:326
msgid "Timer started"
msgstr ""

#: app/routes/timer.py:346
msgid "Template must have a project to start a timer"
msgstr "Mallissa on oltava projekti ajastimen käynnistämiseksi"

#: app/routes/timer.py:352
msgid "Cannot start timer for this project"
msgstr "Tämän projektin ajastinta ei voi käynnistää"

#: app/routes/timer.py:533
msgid "No active timer to stop"
msgstr "Ei aktiivista pysäytysajastinta"

#: app/routes/timer.py:623 app/templates/issues/edit.html:62
#: app/templates/issues/new.html:56 app/templates/main/dashboard.html:91
#: app/templates/recurring_tasks/list.html:53
#: app/templates/timer/timer_page.html:59 app/templates/user/profile.html:60
#: app/templates/user/profile.html:98
msgid "No project"
msgstr "Ei projektia"

#: app/routes/timer.py:634
#, python-format
msgid "Cannot stop timer: %(error)s"
msgstr ""

#: app/routes/timer.py:639
msgid "Could not stop timer due to an error. Please try again or contact support if the problem persists."
msgstr ""

#: app/routes/timer.py:651
#, fuzzy
msgid "No active timer to pause"
msgstr "Ei aktiivista pysäytysajastinta"

#: app/routes/timer.py:655
#, fuzzy
msgid "Timer paused"
msgstr "Ajastin pysähtyi"

#: app/routes/timer.py:660
#, fuzzy
msgid "Could not pause timer. Please try again."
msgstr "Asiakasta ei voitu luoda. Yritä uudelleen."

#: app/routes/timer.py:676
#, fuzzy
msgid "No active timer to resume"
msgstr "Ei aktiivista pysäytysajastinta"

#: app/routes/timer.py:680 app/routes/timer.py:2202
msgid "Timer resumed"
msgstr ""

#: app/routes/timer.py:685
#, fuzzy
msgid "Could not resume timer. Please try again."
msgstr "Asiakasta ei voitu luoda. Yritä uudelleen."

#: app/routes/timer.py:701
#, fuzzy
msgid "No active timer to adjust"
msgstr "Ei aktiivista pysäytysajastinta"

#: app/routes/timer.py:707
#, fuzzy
msgid "Invalid adjustment value"
msgstr "Virheellinen tila-arvo"

#: app/routes/timer.py:779
msgid "You can only edit your own timers"
msgstr "Voit muokata vain omia ajastimia"

#: app/routes/timer.py:841
msgid "Invalid task selected for the chosen project"
msgstr "Virheellinen tehtävä valittu valitulle projektille"

#: app/routes/timer.py:869
msgid "Start time cannot be in the future"
msgstr "Aloitusaika ei voi olla tulevaisuudessa"

#: app/routes/timer.py:877
msgid "Invalid start date/time format"
msgstr "Virheellinen aloituspäivän/kellonajan muoto"

#: app/routes/timer.py:894 app/routes/timer.py:1423 app/templates/base.html:415
#: app/templates/timer/manual_entry.html:648
msgid "End time must be after start time"
msgstr "Päättymisajan on oltava alkamisajan jälkeen"

#: app/routes/timer.py:902
msgid "Invalid end date/time format"
msgstr "Virheellinen lopetuspäivän/ajan muoto"

#: app/routes/timer.py:961
msgid "Timer updated successfully"
msgstr "Ajastimen päivitys onnistui"

#: app/routes/timer.py:979
msgid "You do not have permission to view this time entry"
msgstr ""

#: app/routes/timer.py:1034
msgid "You can only delete your own timers"
msgstr "Voit poistaa vain omat ajastimesi"

#: app/routes/timer.py:1039
msgid "Cannot delete an active timer"
msgstr "Aktiivista ajastinta ei voi poistaa"

#: app/routes/timer.py:1085 app/routes/timer.py:1092
msgid "Could not delete timer due to a database error. Please check server logs."
msgstr "Ajastimen poistaminen epäonnistui tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/timer.py:1147 app/routes/timer.py:2983
msgid "No time entries selected"
msgstr ""

#: app/routes/timer.py:1153 app/routes/timer.py:2995
msgid "Invalid entry IDs"
msgstr ""

#: app/routes/timer.py:1159 app/routes/timer.py:3001
#: app/templates/client_portal/time_entries.html:167
#: app/templates/client_portal/widgets/time_entries.html:68
msgid "No time entries found"
msgstr ""

#: app/routes/timer.py:1195
#, python-format
msgid "Successfully deleted %(count)d time entry/entries"
msgstr ""

#: app/routes/timer.py:1198 app/routes/timer.py:3055
#, python-format
msgid "Skipped %(count)d time entry/entries (no permission or active timer)"
msgstr ""

#: app/routes/timer.py:1309 app/templates/timer/manual_entry.html:622
msgid "Please provide either start/end date+time or a worked time duration (HH:MM)."
msgstr ""

#: app/routes/timer.py:1334
msgid "Either a project or a client must be selected"
msgstr ""

#: app/routes/timer.py:1394
msgid "Invalid date/time format"
msgstr "Virheellinen päivämäärän/ajan muoto"

#: app/routes/timer.py:1501
#, python-format
msgid "Manual entry created for %(project)s - %(task)s"
msgstr ""

#: app/routes/timer.py:1504
#, python-format
msgid "Manual entry created for %(target)s"
msgstr ""

#: app/routes/timer.py:1628
msgid "All fields are required"
msgstr "Kaikki kentät ovat pakollisia"

#: app/routes/timer.py:1649
msgid "Cannot create time entries for an archived project. Please unarchive the project first."
msgstr "Arkistoidulle projektille ei voi luoda aikamerkintöjä. Poista projektin arkisto ensin."

#: app/routes/timer.py:1657
msgid "Cannot create time entries for an inactive project"
msgstr "Ei voi luoda aikamerkintöjä ei-aktiiviselle projektille"

#: app/routes/timer.py:1669
msgid "Invalid task selected"
msgstr "Virheellinen tehtävä valittu"

#: app/routes/timer.py:1685
msgid "End date must be after or equal to start date"
msgstr "Päättymispäivän on oltava aloituspäivämäärää myöhempi tai yhtä suuri kuin se"

#: app/routes/timer.py:1695
msgid "Date range cannot exceed 31 days"
msgstr "Ajanjakso ei saa ylittää 31 päivää"

#: app/routes/timer.py:1725
msgid "Invalid time format"
msgstr "Virheellinen ajan muoto"

#: app/routes/timer.py:1747
msgid "No valid dates found in the selected range"
msgstr "Valitulta alueelta ei löytynyt kelvollisia päivämääriä"

#: app/routes/timer.py:1813
msgid "Could not create bulk entries due to a database error. Please check server logs."
msgstr "Joukkomerkintöjä ei voitu luoda tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/timer.py:1832
msgid "An error occurred while creating bulk entries. Please try again."
msgstr "Joukkomerkintöjä luotaessa tapahtui virhe. Yritä uudelleen."

#: app/routes/timer.py:1961
msgid "You can only duplicate your own timers"
msgstr "Voit kopioida vain omia ajastimesi"

#: app/routes/timer.py:2019
msgid "You can only resume your own timers"
msgstr "Voit jatkaa vain omia ajastimiasi"

#: app/routes/timer.py:2038
msgid "Project no longer exists"
msgstr "Projektia ei ole enää olemassa"

#: app/routes/timer.py:2064
msgid "Client no longer exists or is inactive"
msgstr ""

#: app/routes/timer.py:2070
msgid "Timer is not linked to a project or client"
msgstr ""

#: app/routes/timer.py:2098
msgid "Could not resume timer due to a database error. Please check server logs."
msgstr "Ajastimen käynnistämistä ei voitu jatkaa tietokantavirheen vuoksi. Tarkista palvelimen lokit."

#: app/routes/timer.py:2149
msgid "Resumed timer"
msgstr ""

#: app/routes/timer.py:2987
msgid "Invalid paid status"
msgstr ""

#: app/routes/timer.py:3042
msgid "Could not update time entries due to a database error. Please check server logs."
msgstr ""

#: app/routes/timer.py:3046
#, python-format
msgid "Successfully marked %(count)d time entry/entries as %(status)s"
msgstr ""

#: app/routes/timer.py:3049
msgid "paid"
msgstr ""

#: app/routes/timer.py:3049
msgid "unpaid"
msgstr ""

#: app/routes/user.py:114
msgid "Invalid timezone selected"
msgstr "Virheellinen aikavyöhyke valittu"

#: app/routes/user.py:169
msgid "Standard hours per day must be between 0.5 and 24"
msgstr "Vuorokauden normaalituntien on oltava 0,5–24"

#: app/routes/user.py:182
#, fuzzy
msgid "Standard hours per week must be between 1 and 168"
msgstr "Vuorokauden normaalituntien on oltava 0,5–24"

#: app/routes/user.py:200
msgid "Settings saved successfully"
msgstr "Asetukset tallennettu onnistuneesti"

#: app/routes/user.py:205
#, python-format
msgid "Error saving settings: %(error)s"
msgstr "Virhe tallennettaessa asetuksia: %(error)s"

#: app/routes/user.py:244
msgid "This instance is already licensed."
msgstr ""

#: app/routes/user.py:265
#, fuzzy
msgid "License activated. Thank you for supporting TimeTracker!"
msgstr "Kiitos, että valitsit TimeTrackerin!"

#: app/routes/user.py:267
#, fuzzy
msgid "Error saving settings."
msgstr "Virhe asetusten tallentamisessa"

#: app/routes/user.py:360
msgid "Preferences updated"
msgstr "Asetukset päivitetty"

#: app/routes/user.py:409
msgid "Language updated successfully"
msgstr "Kielen päivitys onnistui"

#: app/routes/user.py:411 app/routes/user.py:440
msgid "Invalid language"
msgstr "Virheellinen kieli"

#: app/routes/user.py:434
#, python-format
msgid "Language updated to %(language)s"
msgstr "Kieleksi päivitetty %(language)s"

#: app/routes/webhooks.py:41
msgid "Webhook name is required"
msgstr "Webhook-nimi vaaditaan"

#: app/routes/webhooks.py:47
msgid "Webhook URL is required"
msgstr "Webhookin URL-osoite vaaditaan"

#: app/routes/webhooks.py:55
msgid "At least one event must be selected"
msgstr "Vähintään yksi tapahtuma on valittava"

#: app/routes/webhooks.py:81
msgid "Webhook created successfully"
msgstr "Webhook luotiin onnistuneesti"

#: app/routes/webhooks.py:85
msgid "Error creating webhook"
msgstr "Virhe luotaessa webhookia"

#: app/routes/webhooks.py:88
#, python-format
msgid "Error creating webhook: %(error)s"
msgstr "Virhe luotaessa webhookia: %(error)s"

#: app/routes/webhooks.py:150
msgid "Webhook updated successfully"
msgstr "Webhookin päivitys onnistui"

#: app/routes/webhooks.py:154
#, python-format
msgid "Error updating webhook: %(error)s"
msgstr "Virhe päivitettäessä webhookia: %(error)s"

#: app/routes/webhooks.py:175
msgid "Webhook deleted successfully"
msgstr "Webhookin poistaminen onnistui"

#: app/routes/webhooks.py:178
#, python-format
msgid "Error deleting webhook: %(error)s"
msgstr "Virhe poistettaessa webhookia: %(error)s"

#: app/routes/weekly_goals.py:80 app/routes/weekly_goals.py:224
msgid "Please enter a valid target hours (greater than 0)"
msgstr "Anna kelvollinen tavoitetunnit (suurempi kuin 0)"

#: app/routes/weekly_goals.py:101
msgid "A goal already exists for this week. Please edit the existing goal instead."
msgstr "Tälle viikolle on jo tavoite. Muokkaa nykyistä tavoitetta sen sijaan."

#: app/routes/weekly_goals.py:116
msgid "Weekly time goal created successfully!"
msgstr "Viikoittainen aikatavoite luotu onnistuneesti!"

#: app/routes/weekly_goals.py:132
msgid "Failed to create goal. Please try again."
msgstr "Tavoitteen luominen epäonnistui. Yritä uudelleen."

#: app/routes/weekly_goals.py:147
msgid "You do not have permission to view this goal"
msgstr "Sinulla ei ole lupaa tarkastella tätä tavoitetta"

#: app/routes/weekly_goals.py:208
msgid "You do not have permission to edit this goal"
msgstr "Sinulla ei ole lupaa muokata tätä tavoitetta"

#: app/routes/weekly_goals.py:245
msgid "Weekly time goal updated successfully!"
msgstr "Viikoittainen aikatavoite päivitetty onnistuneesti!"

#: app/routes/weekly_goals.py:262
msgid "Failed to update goal. Please try again."
msgstr "Tavoitteen päivittäminen epäonnistui. Yritä uudelleen."

#: app/routes/weekly_goals.py:277
msgid "You do not have permission to delete this goal"
msgstr "Sinulla ei ole lupaa poistaa tätä tavoitetta"

#: app/routes/weekly_goals.py:285
msgid "Weekly time goal deleted successfully"
msgstr "Viikoittainen aikatavoitteen poistaminen onnistui"

#: app/routes/weekly_goals.py:295
msgid "Failed to delete goal. Please try again."
msgstr "Tavoitteen poistaminen epäonnistui. Yritä uudelleen."

#: app/routes/workflows.py:58
msgid "Workflow created successfully"
msgstr ""

#: app/routes/workflows.py:63 app/routes/workflows.py:139
msgid "Task Status Changes"
msgstr ""

#: app/routes/workflows.py:64 app/routes/workflows.py:140
msgid "Task Created"
msgstr ""

#: app/routes/workflows.py:65 app/routes/workflows.py:141
msgid "Task Completed"
msgstr ""

#: app/routes/workflows.py:66 app/routes/workflows.py:142
msgid "Time Logged"
msgstr ""

#: app/routes/workflows.py:67 app/routes/workflows.py:143
msgid "Deadline Approaching"
msgstr ""

#: app/routes/workflows.py:68 app/routes/workflows.py:144
msgid "Budget Threshold Reached"
msgstr ""

#: app/routes/workflows.py:69
msgid "Invoice Created"
msgstr ""

#: app/routes/workflows.py:70
msgid "Invoice Paid"
msgstr ""

#: app/routes/workflows.py:74 app/routes/workflows.py:148
msgid "Log Time Entry"
msgstr ""

#: app/routes/workflows.py:75 app/routes/workflows.py:149
msgid "Send Notification"
msgstr ""

#: app/routes/workflows.py:76 app/routes/workflows.py:150
#: app/templates/expenses/list.html:234 app/templates/invoices/list.html:140
#: app/templates/payments/list.html:253 app/templates/per_diem/list.html:183
#: app/templates/tasks/list.html:177
msgid "Update Status"
msgstr "Päivitä tila"

#: app/routes/workflows.py:77 app/routes/workflows.py:151
msgid "Assign Task"
msgstr ""

#: app/routes/workflows.py:78 app/templates/issues/view.html:80
#: app/templates/tasks/create.html:4 app/templates/tasks/create.html:16
#: app/templates/tasks/create.html:139
msgid "Create Task"
msgstr "Luo tehtävä"

#: app/routes/workflows.py:79
msgid "Update Project"
msgstr ""

#: app/routes/workflows.py:80 app/templates/invoices/edit.html:10
#: app/templates/invoices/view.html:519 app/templates/quotes/view.html:41
#: app/templates/quotes/view.html:480
msgid "Send Email"
msgstr "Lähetä Sähköposti"

#: app/routes/workflows.py:81
msgid "Trigger Webhook"
msgstr ""

#: app/routes/workflows.py:135
msgid "Workflow updated successfully"
msgstr ""

#: app/routes/workflows.py:175
msgid "Workflow deleted successfully"
msgstr ""

#: app/routes/workforce.py:121
#, python-format
msgid "Timesheet period ready: %(start)s to %(end)s"
msgstr ""

#: app/routes/workforce.py:136
msgid "Timesheet period submitted"
msgstr ""

#: app/routes/workforce.py:158
msgid "Timesheet period approved"
msgstr ""

#: app/routes/workforce.py:180
#, fuzzy
msgid "Timesheet period rejected"
msgstr "Valitse Projekti"

#: app/routes/workforce.py:191
#, fuzzy
msgid "Only admins can close periods"
msgstr "Vain järjestelmänvalvojat voivat hylätä kilometrimerkintöjä"

#: app/routes/workforce.py:202
msgid "Timesheet period closed"
msgstr ""

#: app/routes/workforce.py:243
#, fuzzy
msgid "Timesheet policy updated"
msgstr "WebSocketin live-päivitykset"

#: app/routes/workforce.py:257
#, fuzzy
msgid "Name and code are required"
msgstr "Nimi ja yksikköhinta vaaditaan"

#: app/routes/workforce.py:270
#, fuzzy
msgid "Leave type created"
msgstr "Asiakas luotu"

#: app/routes/workforce.py:303
#, fuzzy
msgid "Leave type and date range are required"
msgstr "Avain ja tarra vaaditaan"

#: app/routes/workforce.py:320
msgid "Time-off request submitted"
msgstr ""

#: app/routes/workforce.py:344
#, fuzzy
msgid "Time-off request approved"
msgstr "Pyydä hyväksyntää"

#: app/routes/workforce.py:368
#, fuzzy
msgid "Time-off request rejected"
msgstr "Lainaus hylätty"

#: app/routes/workforce.py:405
#, fuzzy
msgid "Name and date range are required"
msgstr "Nimi ja yksikköhinta vaaditaan"

#: app/routes/workforce.py:411
#, fuzzy
msgid "Holiday created"
msgstr "Tuntihinta"

#: app/routes/workforce.py:441
msgid "Start date and end date are required for payroll export"
msgstr ""

#: app/routes/workforce.py:505
msgid "Start date and end date are required for capacity export"
msgstr ""

#: app/templates/_components.html:213
msgid "remaining"
msgstr "jäljellä"

#: app/templates/admin/webhooks/list.html:68
#: app/templates/admin/webhooks/view.html:114 app/templates/base.html:378
#: app/templates/integrations/health.html:60
#: app/templates/integrations/view.html:53
#: app/templates/integrations/view.html:84
#: app/templates/kanban/columns.html:226 app/templates/reports/builder.html:772
msgid "Success"
msgstr "Menestys"

#: app/templates/admin/email_support.html:401
#: app/templates/admin/email_support.html:500 app/templates/base.html:379
#: app/templates/integrations/health.html:64
#: app/templates/integrations/view.html:55
#: app/templates/integrations/view.html:86
#: app/templates/main/dashboard.html:691 app/templates/reports/builder.html:792
#: app/templates/reports/builder.html:806
#: app/templates/reports/scheduled.html:71
#: app/templates/timer/manual_entry.html:400
#: app/templates/timer/manual_entry.html:412
#: app/templates/timer/manual_entry.html:444
#: app/templates/timer/manual_entry.html:533
#: app/templates/timer/manual_entry.html:560
#: app/templates/timer/manual_entry.html:583
#: app/templates/timer/manual_entry.html:598
#: app/templates/timer/manual_entry.html:624
#: app/templates/timer/manual_entry.html:650
#: app/templates/timer/timer_page.html:364
msgid "Error"
msgstr "Virhe"

#: app/templates/base.html:380 app/templates/budget/dashboard.html:161
#: app/templates/budget/project_detail.html:67
#: app/templates/main/dashboard.html:1616 app/templates/projects/view.html:287
#: app/templates/timer/edit_timer.html:881
#: app/templates/timer/manual_entry.html:1055 app/utils/i18n_helpers.py:275
#: app/utils/i18n_helpers.py:281
msgid "Warning"
msgstr "Varoitus"

#: app/templates/base.html:381 app/templates/calendar/event_detail.html:170
#: app/templates/quotes/view.html:404
msgid "Information"
msgstr "Tiedot"

#: app/templates/admin/salesman_email_mappings.html:51
#: app/templates/analytics/dashboard.html:208
#: app/templates/analytics/dashboard_improved.html:200
#: app/templates/analytics/mobile_dashboard.html:148
#: app/templates/base.html:384
#: app/templates/components/activity_feed_widget.html:237
#: app/templates/components/ui.html:275
#: app/templates/import_export/index.html:128
#: app/templates/import_export/index.html:202
#: app/templates/main/dashboard.html:180 app/templates/main/dashboard.html:201
#: app/templates/main/dashboard.html:222
#: app/templates/reports/unpaid_hours_report.html:64
#: app/templates/timer/calendar.html:678
msgid "Loading..."
msgstr "Ladataan..."

#: app/templates/admin/email_support.html:342 app/templates/base.html:385
#: app/templates/client_notes/edit.html:115
#: app/templates/client_portal/dashboard.html:135
#: app/templates/comments/_comments_section.html:169
#: app/templates/comments/edit.html:112 app/templates/reports/builder.html:674
#: app/templates/settings/keyboard_shortcuts.html:469
msgid "Saving..."
msgstr "Tallennetaan..."

#: app/templates/base.html:386
msgid "Deleting..."
msgstr "Poistetaan..."

#: app/templates/admin/api_tokens.html:461
#: app/templates/admin/api_tokens.html:494
#: app/templates/admin/custom_field_definitions/form.html:66
#: app/templates/admin/email_templates/create.html:120
#: app/templates/admin/email_templates/edit.html:137
#: app/templates/admin/email_templates/list.html:80
#: app/templates/admin/integrations/setup.html:162
#: app/templates/admin/ldap_setup_wizard.html:265
#: app/templates/admin/link_templates/form.html:72
#: app/templates/admin/oidc_setup_wizard.html:316
#: app/templates/admin/pdf_layout.html:4409
#: app/templates/admin/pdf_layout.html:7736
#: app/templates/admin/quote_pdf_layout.html:3928
#: app/templates/admin/quote_pdf_layout.html:7176
#: app/templates/admin/roles/form.html:149
#: app/templates/admin/roles/list.html:215
#: app/templates/admin/salesman_email_mappings.html:145
#: app/templates/admin/settings.html:716 app/templates/admin/users.html:124
#: app/templates/admin/users/roles.html:57
#: app/templates/admin/webhooks/form.html:128
#: app/templates/approvals/list.html:138 app/templates/approvals/view.html:157
#: app/templates/auth/change_password.html:37 app/templates/base.html:387
#: app/templates/calendar/event_detail.html:194
#: app/templates/calendar/event_form.html:237
#: app/templates/chat/channel.html:268 app/templates/chat/index.html:122
#: app/templates/client_notes/edit.html:83
#: app/templates/client_portal/dashboard.html:88
#: app/templates/client_portal/new_issue.html:82
#: app/templates/client_portal/quote_detail.html:168
#: app/templates/clients/create.html:108 app/templates/clients/edit.html:143
#: app/templates/clients/view.html:238 app/templates/clients/view.html:461
#: app/templates/clients/view.html:598 app/templates/clients/view.html:634
#: app/templates/comments/_comment.html:120
#: app/templates/comments/_comment.html:140
#: app/templates/comments/_comment.html:164
#: app/templates/comments/_comments_section.html:44
#: app/templates/comments/edit.html:83
#: app/templates/contacts/communication_form.html:82
#: app/templates/contacts/form.html:99
#: app/templates/deals/activity_form.html:63 app/templates/deals/form.html:112
#: app/templates/expenses/view.html:401
#: app/templates/import_export/index.html:239
#: app/templates/import_export/index.html:277
#: app/templates/integrations/activitywatch_setup.html:148
#: app/templates/integrations/caldav_setup.html:202
#: app/templates/integrations/wizard_base.html:55
#: app/templates/inventory/adjustments/form.html:56
#: app/templates/inventory/movements/form.html:114
#: app/templates/inventory/purchase_orders/form.html:101
#: app/templates/inventory/stock_items/form.html:134
#: app/templates/inventory/suppliers/form.html:85
#: app/templates/inventory/transfers/form.html:60
#: app/templates/inventory/warehouses/form.html:60
#: app/templates/invoice_approvals/list.html:85
#: app/templates/invoice_approvals/request.html:38
#: app/templates/invoices/edit.html:286 app/templates/invoices/edit.html:670
#: app/templates/invoices/generate_from_time.html:136
#: app/templates/invoices/list.html:171 app/templates/invoices/view.html:383
#: app/templates/issues/edit.html:86 app/templates/issues/new.html:80
#: app/templates/kanban/columns.html:162
#: app/templates/kanban/create_column.html:86
#: app/templates/kanban/edit_column.html:88
#: app/templates/leads/activity_form.html:63
#: app/templates/leads/convert_to_client.html:35
#: app/templates/leads/convert_to_deal.html:63
#: app/templates/leads/form.html:103 app/templates/main/dashboard.html:790
#: app/templates/payment_gateways/create.html:79
#: app/templates/payment_gateways/pay.html:35
#: app/templates/per_diem/rates_list.html:113
#: app/templates/project_templates/create.html:106
#: app/templates/project_templates/create_project.html:66
#: app/templates/project_templates/edit.html:136
#: app/templates/projects/add_cost.html:98
#: app/templates/projects/add_good.html:68
#: app/templates/projects/archive.html:82
#: app/templates/projects/create.html:137
#: app/templates/projects/create.html:307 app/templates/projects/edit.html:128
#: app/templates/projects/edit_cost.html:105
#: app/templates/projects/edit_good.html:68
#: app/templates/projects/view.html:365 app/templates/quotes/accept.html:54
#: app/templates/quotes/create.html:262 app/templates/quotes/edit.html:348
#: app/templates/quotes/view.html:304 app/templates/quotes/view.html:385
#: app/templates/quotes/view.html:477 app/templates/quotes/view.html:551
#: app/templates/quotes/view.html:569 app/templates/quotes/view.html:581
#: app/templates/recurring_tasks/form.html:128
#: app/templates/reports/builder.html:220 app/templates/reports/index.html:492
#: app/templates/reports/schedule_form.html:100
#: app/templates/settings/keyboard_shortcuts.html:484
#: app/templates/tasks/create.html:138 app/templates/tasks/edit.html:146
#: app/templates/tasks/list.html:216 app/templates/tasks/list.html:423
#: app/templates/timer/calendar.html:204 app/templates/timer/calendar.html:829
#: app/templates/timer/calendar.html:1119
#: app/templates/timer/time_entries_overview.html:181
#: app/templates/timer/time_entries_overview.html:207
#: app/templates/user/settings.html:494
#: app/templates/weekly_goals/create.html:125
#: app/templates/weekly_goals/edit.html:112
msgid "Cancel"
msgstr "Peruuttaa"

#: app/templates/base.html:388
msgid "Confirm"
msgstr "Vahvistaa"

#: app/templates/admin/pdf_layout.html:2361
#: app/templates/admin/quote_pdf_layout.html:2133
#: app/templates/approvals/list.html:129 app/templates/approvals/view.html:148
#: app/templates/base.html:389 app/templates/base.html:1427
#: app/templates/base.html:1504 app/templates/calendar/view.html:148
#: app/templates/chat/index.html:101
#: app/templates/components/support_modal.html:18
#: app/templates/invoices/list.html:155 app/templates/invoices/view.html:367
#: app/templates/kanban/columns.html:143 app/templates/main/dashboard.html:707
#: app/templates/partials/_bottom_nav.html:18
#: app/templates/projects/create.html:267 app/templates/quotes/view.html:447
#: app/templates/tasks/_kanban.html:1363 app/templates/timer/calendar.html:234
#: app/templates/timer/calendar.html:259
#: app/templates/workforce/dashboard.html:87
msgid "Close"
msgstr "Lähellä"

#: app/templates/admin/custom_field_definitions/form.html:67
#: app/templates/admin/link_templates/form.html:73
#: app/templates/admin/salesman_email_mappings.html:148
#: app/templates/admin/webhooks/form.html:125 app/templates/base.html:390
#: app/templates/calendar/view.html:112
#: app/templates/client_portal/dashboard.html:91
#: app/templates/comments/_comment.html:137
#: app/templates/inventory/stock_items/form.html:137
#: app/templates/inventory/suppliers/form.html:88
#: app/templates/inventory/warehouses/form.html:63
#: app/templates/recurring_tasks/form.html:130
#: app/templates/reports/builder.html:69 app/templates/reports/builder.html:221
msgid "Save"
msgstr "Tallentaa"

#: app/templates/admin/api_tokens.html:493
#: app/templates/admin/custom_field_definitions/list.html:67
#: app/templates/admin/email_templates/list.html:83
#: app/templates/admin/link_templates/list.html:71
#: app/templates/admin/roles/list.html:149
#: app/templates/admin/roles/list.html:214 app/templates/admin/users.html:83
#: app/templates/admin/users.html:123 app/templates/base.html:391
#: app/templates/calendar/event_detail.html:26
#: app/templates/calendar/event_detail.html:193
#: app/templates/calendar/view.html:154 app/templates/clients/view.html:278
#: app/templates/clients/view.html:280 app/templates/clients/view.html:512
#: app/templates/clients/view.html:633 app/templates/comments/_comment.html:41
#: app/templates/comments/_comment.html:85 app/templates/expenses/view.html:400
#: app/templates/integrations/view.html:156 app/templates/issues/view.html:16
#: app/templates/issues/view.html:19 app/templates/kanban/columns.html:103
#: app/templates/per_diem/rates_list.html:80
#: app/templates/per_diem/rates_list.html:112
#: app/templates/projects/goods.html:81 app/templates/projects/view.html:405
#: app/templates/projects/view.html:407
#: app/templates/quotes/_quotes_list.html:15 app/templates/quotes/list.html:368
#: app/templates/quotes/view.html:331 app/templates/quotes/view.html:356
#: app/templates/quotes/view.html:584
#: app/templates/reports/saved_views_list.html:69
#: app/templates/reports/scheduled.html:100
#: app/templates/saved_filters/list.html:51 app/templates/tasks/list.html:422
#: app/templates/time_entry_templates/list.html:44
#: app/templates/time_entry_templates/view.html:144
#: app/templates/timer/_time_entries_list.html:21
#: app/templates/timer/calendar.html:232 app/templates/timer/calendar.html:829
#: app/templates/timer/calendar.html:991 app/templates/timer/calendar.html:1118
#: app/templates/timer/time_entries_overview.html:184
#: app/templates/weekly_goals/edit.html:115
#: app/templates/weekly_goals/edit.html:117
#: app/templates/workforce/dashboard.html:94
#: app/templates/workforce/dashboard.html:193
#: app/templates/workforce/dashboard.html:267
#: app/templates/workforce/dashboard.html:292
msgid "Delete"
msgstr "Poistaa"

#: app/templates/admin/custom_field_definitions/form.html:8
#: app/templates/admin/custom_field_definitions/list.html:62
#: app/templates/admin/link_templates/form.html:8
#: app/templates/admin/link_templates/list.html:66
#: app/templates/admin/roles/list.html:144 app/templates/admin/users.html:77
#: app/templates/admin/webhooks/view.html:18 app/templates/base.html:392
#: app/templates/calendar/event_detail.html:22
#: app/templates/calendar/view.html:151 app/templates/clients/edit.html:10
#: app/templates/clients/view.html:504 app/templates/comments/_comment.html:36
#: app/templates/contacts/list.html:59 app/templates/deals/view.html:14
#: app/templates/kanban/columns.html:93 app/templates/leads/view.html:14
#: app/templates/per_diem/rates_list.html:70
#: app/templates/project_templates/list.html:60
#: app/templates/project_templates/view.html:17
#: app/templates/quotes/view.html:328 app/templates/quotes/view.html:353
#: app/templates/recurring_invoices/view.html:16
#: app/templates/reports/iterative_view.html:19
#: app/templates/reports/saved_views_list.html:64
#: app/templates/tasks/edit.html:16 app/templates/tasks/overdue.html:74
#: app/templates/timer/_time_entries_list.html:182
#: app/templates/timer/calendar.html:239 app/templates/timer/calendar.html:818
#: app/templates/timer/calendar.html:988 app/templates/timer/view_timer.html:17
#: app/templates/weekly_goals/index.html:196
#: app/templates/weekly_goals/view.html:26
msgid "Edit"
msgstr "Muokata"

#: app/templates/base.html:393
msgid "Add"
msgstr "Lisätä"

#: app/templates/admin/settings.html:715 app/templates/base.html:394
#: app/templates/inventory/purchase_orders/form.html:153
#: app/templates/inventory/stock_items/form.html:120
#: app/templates/inventory/stock_items/form.html:171
#: app/templates/quotes/_edit_quote_form_scripts.html:204
#: app/templates/quotes/_edit_quote_form_scripts.html:239
#: app/templates/quotes/edit.html:171 app/templates/quotes/edit.html:229
#: app/templates/reports/builder.html:433
msgid "Remove"
msgstr "Poistaa"

#: app/templates/admin/settings.html:828 app/templates/admin/users.html:108
#: app/templates/base.html:397 app/templates/integrations/health.html:78
#: app/templates/inventory/stock_levels/warehouse.html:77
msgid "OK"
msgstr "OK"

#: app/templates/base.html:400
msgid "Are you sure you want to delete this?"
msgstr "Haluatko varmasti poistaa tämän?"

#: app/templates/base.html:401
msgid "You have unsaved changes. Are you sure you want to leave?"
msgstr "Sinulla on tallentamattomia muutoksia. Oletko varma, että haluat lähteä?"

#: app/templates/base.html:402
msgid "Operation failed"
msgstr "Toiminto epäonnistui"

#: app/templates/base.html:403
msgid "Operation completed successfully"
msgstr "Toiminto suoritettu onnistuneesti"

#: app/templates/base.html:404
msgid "No items selected"
msgstr "Ei valittuja kohteita"

#: app/templates/base.html:405
msgid "Invalid input"
msgstr "Virheellinen syöte"

#: app/templates/base.html:406
msgid "This field is required"
msgstr "Tämä kenttä on pakollinen"

#: app/templates/base.html:407 app/templates/kiosk/base.html:103
#: app/templates/user/profile.html:62
msgid "No active timer"
msgstr "Ei aktiivista ajastinta"

#: app/templates/base.html:408
msgid "Timer stopped"
msgstr "Ajastin pysähtyi"

#: app/templates/base.html:409
msgid "Failed to stop timer"
msgstr "Ajastimen pysäyttäminen epäonnistui"

#: app/templates/base.html:410
msgid "Error stopping timer"
msgstr "Virhe pysäytettäessä ajastinta"

#: app/templates/base.html:411
msgid "No form to save"
msgstr "Ei tallennettavaa lomaketta"

#: app/templates/base.html:412
msgid "No timer found"
msgstr "Ajasinta ei löytynyt"

#: app/templates/base.html:413
msgid "Timer stopped due to inactivity"
msgstr "Ajastin pysähtyi epäaktiivisuuden vuoksi"

#: app/templates/base.html:414 app/templates/main/dashboard.html:689
#: app/templates/timer/manual_entry.html:531
#: app/templates/timer/timer_page.html:362
msgid "Please select either a project or a client"
msgstr ""

#: app/templates/base.html:477
msgid "Skip to content"
msgstr "Siirry sisältöön"

#: app/templates/base.html:480
#, fuzzy
msgid "Main navigation"
msgstr "Mobiilinavigointi"

#: app/templates/base.html:502 app/templates/timer/calendar.html:277
msgid "Navigation"
msgstr "Navigointi"

#: app/templates/base.html:507 app/templates/base.html:508
#: app/templates/base.html:1222
#, fuzzy
msgid "Open command palette"
msgstr "Komentopaletti"

#: app/templates/base.html:512
#, fuzzy
msgid "Commands"
msgstr "Kommentit"

#: app/templates/base.html:519
msgid "Toggle sidebar"
msgstr "Vaihda sivupalkki"

#: app/templates/base.html:525 app/templates/base.html:527
#: app/templates/client_portal/base.html:254
#: app/templates/client_portal/base.html:339
#: app/templates/main/dashboard.html:28 app/templates/main/dashboard.html:29
#: app/templates/main/donate.html:8 app/templates/partials/_bottom_nav.html:60
#: app/templates/partials/_bottom_nav.html:64
#: app/templates/projects/view.html:35
msgid "Dashboard"
msgstr "Kojelauta"

#: app/templates/base.html:531 app/templates/base.html:533
#: app/templates/base.html:1253 app/templates/kiosk/base.html:155
#: app/templates/main/dashboard.html:38
#: app/templates/partials/_bottom_nav.html:66
#: app/templates/partials/_bottom_nav.html:70
#: app/templates/tasks/overdue.html:76 app/templates/timer/timer_page.html:7
#: app/templates/timer/timer_page.html:12
msgid "Timer"
msgstr "Ajastin"

#: app/templates/base.html:537 app/templates/base.html:539
#: app/templates/main/dashboard.html:250
#: app/templates/partials/_bottom_nav.html:72
#: app/templates/partials/_bottom_nav.html:76
#, fuzzy
msgid "Time entries"
msgstr "Aikamerkinnät"

#: app/templates/base.html:544 app/templates/base.html:546
#: app/templates/base.html:733 app/templates/base.html:902
#: app/templates/base.html:1479 app/templates/budget/dashboard.html:17
#: app/templates/client_portal/base.html:293
#: app/templates/client_portal/base.html:372
#: app/templates/client_portal/reports.html:4
#: app/templates/client_portal/reports.html:9
#: app/templates/client_portal/reports.html:14
#: app/templates/components/support_modal.html:33
#: app/templates/partials/_bottom_nav.html:46
#: app/templates/reports/index.html:7 app/templates/reports/index.html:12
#: app/templates/reports/week_in_review.html:6
msgid "Reports"
msgstr "Raportit"

#: app/templates/base.html:552 app/templates/base.html:554
#: app/templates/calendar/view.html:12 app/templates/calendar/view.html:17
#: app/templates/timer/calendar.html:3 app/templates/timer/calendar.html:23
msgid "Calendar"
msgstr "Kalenteri"

#: app/templates/base.html:562 app/templates/main/help.html:181
msgid "Calendar View"
msgstr "Kalenterinäkymä"

#: app/templates/base.html:567 app/templates/base.html:930
#: app/templates/integrations/list.html:4
#: app/templates/integrations/wizard_base.html:8
#: app/templates/setup/initial_setup.html:202
msgid "Integrations"
msgstr ""

#: app/templates/admin/modules.html:172 app/templates/admin/modules.html:214
#: app/templates/auth/login.html:34 app/templates/base.html:574
#: app/templates/base.html:576 app/templates/main/about.html:29
#: app/templates/main/help.html:27 app/templates/main/help.html:108
#: app/templates/main/help.html:266 app/templates/timer/manual_entry.html:7
msgid "Time Tracking"
msgstr "Ajan seuranta"

#: app/templates/base.html:596
#, fuzzy
msgid "Time Approvals"
msgstr "Pyydä hyväksyntää"

#: app/templates/base.html:608 app/templates/project_templates/list.html:4
msgid "Project Templates"
msgstr ""

#: app/templates/base.html:615 app/templates/gantt/view.html:4
msgid "Gantt Chart"
msgstr ""

#: app/templates/base.html:621 app/templates/calendar/view.html:80
#: app/templates/calendar/view.html:97 app/templates/calendar/view.html:98
#: app/templates/calendar/view.html:108
#: app/templates/components/activity_feed_widget.html:27
#: app/templates/components/offline_indicator.html:75
#: app/templates/integrations/wizard_asana.html:116
#: app/templates/reports/builder.html:368 app/templates/tasks/create.html:16
#: app/templates/tasks/edit.html:16 app/templates/tasks/overdue.html:8
#: app/templates/tasks/view.html:47
msgid "Tasks"
msgstr "Tehtävät"

#: app/templates/base.html:627 app/templates/client_portal/base.html:273
#: app/templates/client_portal/base.html:358
#: app/templates/client_portal/issue_detail.html:9
#: app/templates/client_portal/issues.html:4
#: app/templates/client_portal/issues.html:9
#: app/templates/client_portal/new_issue.html:9
#: app/templates/integrations/wizard_github.html:100
#: app/templates/integrations/wizard_gitlab.html:136
msgid "Issues"
msgstr ""

#: app/templates/base.html:634 app/templates/kanban/board.html:9
#: app/templates/kanban/board.html:55 app/templates/main/help.html:31
#: app/templates/main/help.html:346 app/templates/tasks/_kanban.html:9
msgid "Kanban Board"
msgstr "Kanbanin hallitus"

#: app/templates/base.html:641 app/templates/weekly_goals/index.html:8
msgid "Weekly Goals"
msgstr "Viikoittaiset tavoitteet"

#: app/templates/base.html:647
msgid "Workforce"
msgstr ""

#: app/templates/base.html:653 app/templates/base.html:1117
msgid "Time Entry Templates"
msgstr "Ajansyöttömallit"

#: app/templates/admin/modules.html:174 app/templates/admin/modules.html:216
#: app/templates/base.html:661 app/templates/base.html:663
msgid "CRM"
msgstr "CRM"

#: app/templates/base.html:675 app/templates/clients/create.html:10
#: app/templates/clients/edit.html:10 app/templates/clients/view.html:53
#: app/templates/components/activity_feed_widget.html:43
#: app/templates/partials/_bottom_nav.html:38
msgid "Clients"
msgstr "Asiakkaat"

#: app/templates/base.html:682 app/templates/integrations/wizard_xero.html:102
msgid "Contacts"
msgstr ""

#: app/templates/base.html:683
msgid "via Clients"
msgstr ""

#: app/templates/base.html:690 app/templates/deals/activity_form.html:8
#: app/templates/deals/view.html:8
msgid "Deals"
msgstr ""

#: app/templates/base.html:697 app/templates/leads/activity_form.html:8
#: app/templates/leads/convert_to_client.html:8
#: app/templates/leads/convert_to_deal.html:8 app/templates/leads/view.html:8
msgid "Leads"
msgstr ""

#: app/templates/base.html:704 app/templates/client_portal/quote_detail.html:9
#: app/templates/client_portal/quotes.html:4
#: app/templates/client_portal/quotes.html:9
#: app/templates/client_portal/quotes.html:14
msgid "Quotes"
msgstr "Lainausmerkit"

#: app/templates/admin/modules.html:175 app/templates/admin/modules.html:217
#: app/templates/base.html:715
msgid "Finance & Expenses"
msgstr "Rahoitus ja kulut"

#: app/templates/base.html:740
msgid "All Reports"
msgstr ""

#: app/templates/base.html:746 app/templates/reports/index.html:201
msgid "Report Builder"
msgstr ""

#: app/templates/base.html:751 app/templates/reports/builder.html:17
msgid "Saved Views"
msgstr ""

#: app/templates/base.html:758 app/templates/reports/index.html:159
#: app/templates/reports/index.html:214 app/templates/reports/index.html:262
#: app/templates/reports/scheduled.html:4
msgid "Scheduled Reports"
msgstr "Aikataulutetut raportit"

#: app/templates/base.html:768 app/templates/client_portal/base.html:260
#: app/templates/client_portal/base.html:345
#: app/templates/client_portal/invoice_detail.html:9
#: app/templates/client_portal/invoices.html:4
#: app/templates/client_portal/invoices.html:9
#: app/templates/client_portal/invoices.html:14
#: app/templates/components/activity_feed_widget.html:39
#: app/templates/integrations/wizard_quickbooks.html:101
#: app/templates/integrations/wizard_xero.html:84
#: app/templates/invoices/create.html:8 app/templates/invoices/edit.html:13
#: app/templates/invoices/view.html:46
#: app/templates/partials/_bottom_nav.html:30
#: app/templates/reports/builder.html:369
msgid "Invoices"
msgstr "Laskut"

#: app/templates/base.html:775
msgid "Invoice Approvals"
msgstr ""

#: app/templates/base.html:782 app/templates/payment_gateways/list.html:4
msgid "Payment Gateways"
msgstr ""

#: app/templates/base.html:789 app/templates/recurring_invoices/list.html:6
#: app/templates/recurring_invoices/list.html:11
msgid "Recurring Invoices"
msgstr "Toistuvat laskut"

#: app/templates/base.html:796
#: app/templates/integrations/wizard_quickbooks.html:113
#: app/templates/integrations/wizard_xero.html:96
msgid "Payments"
msgstr "Maksut"

#: app/templates/base.html:803
#: app/templates/integrations/wizard_quickbooks.html:107
#: app/templates/integrations/wizard_xero.html:90
#: app/templates/invoices/edit.html:148 app/templates/invoices/edit.html:338
#: app/templates/main/help.html:33 app/templates/reports/builder.html:370
msgid "Expenses"
msgstr "Kulut"

#: app/templates/base.html:810
msgid "Mileage"
msgstr "Kilometrimäärä"

#: app/templates/base.html:817
msgid "Per Diem"
msgstr "Päivärahat"

#: app/templates/base.html:824 app/templates/budget/dashboard.html:7
msgid "Budget Alerts"
msgstr "Budjettihälytykset"

#: app/templates/admin/modules.html:176 app/templates/admin/modules.html:218
#: app/templates/base.html:835
msgid "Inventory"
msgstr "Varasto"

#: app/templates/base.html:851 app/templates/inventory/suppliers/view.html:174
msgid "Stock Items"
msgstr "Varastotuotteet"

#: app/templates/base.html:856
msgid "Warehouses"
msgstr "Varastot"

#: app/templates/base.html:861 app/templates/inventory/stock_items/form.html:98
#: app/templates/inventory/stock_items/view.html:60
msgid "Suppliers"
msgstr "Toimittajat"

#: app/templates/base.html:867
msgid "Purchase Orders"
msgstr "Ostotilaukset"

#: app/templates/base.html:872 app/templates/inventory/warehouses/view.html:79
msgid "Stock Levels"
msgstr "Varastotasot"

#: app/templates/base.html:877
msgid "Stock Movements"
msgstr "Osakeliikkeet"

#: app/templates/base.html:882
msgid "Transfers"
msgstr "Siirrot"

#: app/templates/base.html:887
msgid "Adjustments"
msgstr "Säädöt"

#: app/templates/base.html:892
msgid "Reservations"
msgstr "Varaukset"

#: app/templates/base.html:897
msgid "Low Stock Alerts"
msgstr "Alhaisen varaston varoitukset"

#: app/templates/admin/modules.html:177 app/templates/admin/modules.html:219
#: app/templates/analytics/dashboard.html:8
#: app/templates/analytics/mobile_dashboard.html:3
#: app/templates/analytics/mobile_dashboard.html:20 app/templates/base.html:912
#: app/templates/main/about.html:38
msgid "Analytics"
msgstr "Analytics"

#: app/templates/admin/modules.html:178 app/templates/admin/modules.html:220
#: app/templates/base.html:920
msgid "Tools & Data"
msgstr "Työkalut ja tiedot"

#: app/templates/base.html:937
msgid "Import / Export"
msgstr "Tuo / Vie"

#: app/templates/base.html:944
msgid "Saved Filters"
msgstr "Tallennetut suodattimet"

#: app/templates/admin/custom_field_definitions/form.html:6
#: app/templates/admin/custom_field_definitions/list.html:6
#: app/templates/admin/ldap_setup_wizard.html:8
#: app/templates/admin/link_templates/form.html:6
#: app/templates/admin/link_templates/list.html:6
#: app/templates/admin/modules.html:15 app/templates/admin/oidc_debug.html:8
#: app/templates/admin/oidc_debug.html:152
#: app/templates/admin/oidc_setup_wizard.html:8
#: app/templates/admin/oidc_user_detail.html:26
#: app/templates/admin/permissions/list.html:6
#: app/templates/admin/roles/list.html:6
#: app/templates/admin/salesman_email_mappings.html:4
#: app/templates/admin/webhooks/form.html:6
#: app/templates/admin/webhooks/list.html:6
#: app/templates/admin/webhooks/view.html:6 app/templates/base.html:955
#: app/templates/comments/_comment.html:19 app/templates/user/profile.html:21
msgid "Admin"
msgstr "Admin"

#: app/templates/base.html:963
msgid "Admin Dashboard"
msgstr "Admin Dashboard"

#: app/templates/admin/settings.html:145 app/templates/base.html:973
#: app/templates/main/help.html:569
msgid "User Management"
msgstr "Käyttäjien hallinta"

#: app/templates/base.html:980
msgid "Manage Users"
msgstr ""

#: app/templates/admin/permissions/list.html:7
#: app/templates/admin/roles/list.html:7 app/templates/admin/roles/list.html:12
#: app/templates/admin/user_form.html:123 app/templates/base.html:987
msgid "Roles & Permissions"
msgstr "Roolit ja käyttöoikeudet"

#: app/templates/base.html:1000
msgid "PDF Templates"
msgstr "PDF-malleja"

#: app/templates/base.html:1006
msgid "Invoice PDF"
msgstr "Lasku PDF"

#: app/templates/base.html:1011
msgid "Quote PDF"
msgstr "Lainaus PDF"

#: app/templates/base.html:1023 app/templates/main/help.html:65
msgid "System Settings"
msgstr "Järjestelmäasetukset"

#: app/templates/admin/ldap_setup_wizard.html:9 app/templates/base.html:1030
#: app/templates/partials/_bottom_nav.html:54 app/templates/user/license.html:2
#: app/templates/user/profile.html:31 app/templates/user/settings.html:2
#: app/templates/user/settings.html:7
msgid "Settings"
msgstr "Asetukset"

#: app/templates/admin/modules.html:15 app/templates/base.html:1035
msgid "Module Management"
msgstr ""

#: app/templates/admin/email_support.html:18
#: app/templates/admin/salesman_email_mappings.html:86
#: app/templates/base.html:1040
msgid "Email Configuration"
msgstr "Sähköpostiasetukset"

#: app/templates/base.html:1045
msgid "Email Templates"
msgstr "Sähköpostimallit"

#: app/templates/admin/oidc_debug.html:9
#: app/templates/admin/oidc_setup_wizard.html:9 app/templates/base.html:1052
msgid "OIDC Settings"
msgstr "OIDC-asetukset"

#: app/templates/base.html:1065
msgid "Security & Access"
msgstr ""

#: app/templates/base.html:1072
msgid "API Tokens"
msgstr "API-tunnukset"

#: app/templates/audit_logs/list.html:4 app/templates/audit_logs/list.html:8
#: app/templates/audit_logs/list.html:13 app/templates/base.html:1086
msgid "Audit Logs"
msgstr "Tarkastuslokit"

#: app/templates/base.html:1098
msgid "Data Management"
msgstr ""

#: app/templates/base.html:1105
msgid "Expense Categories"
msgstr "Kulujen luokat"

#: app/templates/base.html:1110
msgid "Per Diem Rates"
msgstr "Päivärahat"

#: app/templates/base.html:1122 app/templates/clients/create.html:78
#: app/templates/clients/edit.html:72 app/templates/clients/view.html:133
#: app/templates/projects/create.html:107 app/templates/projects/edit.html:98
#: app/templates/projects/view.html:160
msgid "Custom Fields"
msgstr ""

#: app/templates/admin/link_templates/form.html:7
#: app/templates/admin/link_templates/list.html:7
#: app/templates/admin/link_templates/list.html:12 app/templates/base.html:1127
msgid "Link Templates"
msgstr ""

#: app/templates/base.html:1140
msgid "System Maintenance"
msgstr ""

#: app/templates/base.html:1147 app/templates/main/about.html:250
#: app/templates/main/help.html:783 app/templates/main/help.html:825
msgid "System Info"
msgstr "Järjestelmätiedot"

#: app/templates/base.html:1154
msgid "Backups"
msgstr "Varmuuskopiot"

#: app/templates/base.html:1161
msgid "Telemetry"
msgstr ""

#: app/templates/base.html:1178 app/templates/main/about.html:3
#: app/templates/main/about.html:8 app/templates/main/about.html:12
msgid "About"
msgstr "Noin"

#: app/templates/base.html:1184 app/templates/base.html:1255
#: app/templates/clients/create.html:117 app/templates/main/help.html:3
#: app/templates/main/help.html:8 app/templates/main/help.html:12
#: app/templates/timer/calendar.html:337
msgid "Help"
msgstr "Auttaa"

#: app/templates/base.html:1189
#, fuzzy
msgid "Open support options"
msgstr "Vientiasetukset"

#: app/templates/base.html:1191 app/templates/base.html:1264
#: app/templates/base.html:1266 app/templates/base.html:1329
#: app/templates/components/support_modal.html:9
#: app/templates/main/about.html:46 app/templates/main/donate.html:2
#: app/templates/main/help.html:836 app/templates/user/settings.html:26
msgid "Support TimeTracker"
msgstr "Tuki TimeTracker"

#: app/templates/base.html:1211
#, fuzzy
msgid "Open sidebar"
msgstr "Vaihda sivupalkki"

#: app/templates/base.html:1219 app/templates/base.html:1220
#: app/templates/components/multi_select.html:68
#: app/templates/inventory/stock_items/list.html:21
#: app/templates/inventory/suppliers/list.html:21
#: app/templates/issues/list.html:31 app/templates/leads/list.html:22
#: app/templates/main/search.html:3 app/templates/quotes/list.html:74
#: app/templates/tasks/my_tasks.html:115
#: app/templates/timer/time_entries_overview.html:118
msgid "Search"
msgstr "Haku"

#: app/templates/admin/oidc_user_detail.html:29 app/templates/base.html:1229
#: app/templates/user/settings.html:215
msgid "Theme"
msgstr "Teema"

#: app/templates/base.html:1234
#, fuzzy
msgid "Theme options"
msgstr "Suodatinvalinnat"

#: app/templates/base.html:1235 app/templates/user/settings.html:220
msgid "Light"
msgstr "Kevyt"

#: app/templates/base.html:1236 app/templates/kanban/create_column.html:68
#: app/templates/kanban/edit_column.html:60
#: app/templates/user/settings.html:221
msgid "Dark"
msgstr "Tumma"

#: app/templates/admin/roles/list.html:132
#: app/templates/admin/users/roles.html:36 app/templates/base.html:1237
#: app/templates/deals/view.html:204 app/templates/kanban/columns.html:54
#: app/templates/kanban/columns.html:86
#: app/templates/setup/initial_setup.html:165
msgid "System"
msgstr "Järjestelmä"

#: app/templates/base.html:1244
msgid "Open chat"
msgstr ""

#: app/templates/base.html:1250 app/templates/base.html:1458
#: app/templates/kiosk/dashboard.html:353 app/templates/main/dashboard.html:58
#: app/templates/main/dashboard.html:59 app/templates/main/dashboard.html:704
#: app/templates/tasks/_kanban.html:60 app/templates/tasks/edit.html:285
#: app/templates/tasks/my_tasks.html:341
msgid "Start Timer"
msgstr "Käynnistä ajastin"

#: app/templates/base.html:1251 app/templates/mileage/gps.html:32
#: app/templates/reports/time_entries_report.html:104
#: app/templates/reports/time_entries_report.html:118
#, fuzzy
msgid "Stop"
msgstr "to"

#: app/templates/admin/settings.html:516 app/templates/base.html:1259
#: app/templates/base.html:1491 app/templates/base.html:1493
#: app/templates/base.html:1498 app/templates/base.html:1501
#, fuzzy
msgid "AI Helper"
msgstr "Näytä Ohje"

#: app/templates/base.html:1273
msgid "Change language"
msgstr "Vaihda kieli"

#: app/templates/base.html:1278 app/templates/user/settings.html:227
msgid "Language"
msgstr "Kieli"

#: app/templates/base.html:1294
msgid "User menu"
msgstr "Käyttäjävalikko"

#: app/templates/base.html:1308
#, fuzzy
msgid "Supporter"
msgstr "Tukea"

#: app/templates/base.html:1314 app/templates/base.html:1320
msgid "Guest"
msgstr "Vieras"

#: app/templates/base.html:1323
msgid "My Profile"
msgstr "Oma profiili"

#: app/templates/base.html:1324
msgid "My Settings"
msgstr "Omat asetukset"

#: app/templates/base.html:1326 app/templates/invoices/edit.html:255
#: app/templates/invoices/edit.html:615 app/templates/main/dashboard.html:648
#: app/templates/projects/add_good.html:34
#: app/templates/projects/edit_good.html:34
#: app/templates/quotes/_edit_quote_form_scripts.html:223
#: app/templates/quotes/edit.html:222 app/templates/user/license.html:2
#: app/templates/user/license.html:7
msgid "License"
msgstr "Lisenssi"

#: app/templates/base.html:1329
msgid "Donate or get a supporter license"
msgstr ""

#: app/templates/base.html:1331 app/templates/client_portal/base.html:302
#: app/templates/client_portal/base.html:379 app/templates/kiosk/base.html:129
msgid "Logout"
msgstr "Kirjaudu ulos"

#: app/templates/base.html:1364 app/templates/base.html:2459
#: app/templates/main/dashboard.html:635 app/templates/main/help.html:843
#: app/templates/reports/index.html:20
msgid "Enjoying TimeTracker?"
msgstr "Pidätkö TimeTrackerista?"

#: app/templates/base.html:1367
msgid "Support independent development — licenses are supporter badges, not paywalls."
msgstr ""

#: app/templates/base.html:1374 app/templates/main/about.html:212
#, fuzzy
msgid "Support / Get key"
msgstr "Tuki TimeTracker"

#: app/templates/base.html:1381
msgid "Buy Me a Coffee"
msgstr ""

#: app/templates/base.html:1388 app/utils/i18n_helpers.py:115
#: app/utils/i18n_helpers.py:131
msgid "PayPal"
msgstr "PayPal"

#: app/templates/base.html:1391
#, fuzzy
msgid "Support / License"
msgstr "Tarvikkeet"

#: app/templates/base.html:1395 app/templates/base.html:1431
msgid "Dismiss"
msgstr "Hylkää"

#: app/templates/base.html:1408
msgid "Built by an independent developer"
msgstr ""

#: app/templates/base.html:1417
#, fuzzy
msgid "Software update"
msgstr "Aloituspäivämäärä"

#: app/templates/base.html:1425
#, fuzzy
msgid "Read more"
msgstr "Lataa lisää"

#: app/templates/base.html:1430
#, fuzzy
msgid "View Release"
msgstr "Näytä tehtävä"

#: app/templates/base.html:1432
msgid "Don't show again for this version"
msgstr ""

#: app/templates/base.html:1447
#, fuzzy
msgid "Quick actions dock"
msgstr "Nopeat toiminnot"

#: app/templates/admin/custom_field_definitions/list.html:29
#: app/templates/admin/custom_field_definitions/list.html:59
#: app/templates/admin/link_templates/list.html:30
#: app/templates/admin/link_templates/list.html:63
#: app/templates/admin/oidc_debug.html:140
#: app/templates/admin/oidc_user_detail.html:87
#: app/templates/admin/roles/list.html:96
#: app/templates/admin/salesman_email_mappings.html:44
#: app/templates/admin/salesman_email_mappings.html:217
#: app/templates/admin/webhooks/list.html:29
#: app/templates/admin/webhooks/list.html:72
#: app/templates/audit_logs/list.html:81 app/templates/audit_logs/list.html:160
#: app/templates/base.html:1454 app/templates/base.html:1482
#: app/templates/base.html:1484 app/templates/budget/dashboard.html:122
#: app/templates/client_portal/invoices.html:76
#: app/templates/client_portal/quote_detail.html:129
#: app/templates/client_portal/quotes.html:31
#: app/templates/client_portal/quotes.html:65
#: app/templates/components/ui.html:526 app/templates/contacts/list.html:32
#: app/templates/contacts/list.html:56 app/templates/deals/list.html:56
#: app/templates/deals/list.html:80 app/templates/expenses/dashboard.html:222
#: app/templates/expenses/list.html:337
#: app/templates/integrations/health.html:29
#: app/templates/integrations/view.html:114
#: app/templates/inventory/low_stock/list.html:28
#: app/templates/inventory/low_stock/list.html:44
#: app/templates/inventory/purchase_orders/list.html:56
#: app/templates/inventory/purchase_orders/list.html:90
#: app/templates/inventory/reports/low_stock.html:36
#: app/templates/inventory/reports/low_stock.html:57
#: app/templates/inventory/reservations/list.html:47
#: app/templates/inventory/reservations/list.html:100
#: app/templates/inventory/stock_items/list.html:56
#: app/templates/inventory/stock_items/list.html:94
#: app/templates/inventory/suppliers/list.html:47
#: app/templates/inventory/suppliers/list.html:81
#: app/templates/inventory/warehouses/list.html:27
#: app/templates/inventory/warehouses/list.html:54
#: app/templates/issues/list.html:100 app/templates/issues/list.html:134
#: app/templates/kanban/columns.html:55 app/templates/leads/list.html:56
#: app/templates/leads/list.html:84 app/templates/main/dashboard.html:338
#: app/templates/main/dashboard.html:367 app/templates/main/search.html:39
#: app/templates/payment_gateways/list.html:29
#: app/templates/payment_gateways/list.html:55
#: app/templates/payments/list.html:172
#: app/templates/projects/_projects_list.html:126
#: app/templates/projects/goods.html:45 app/templates/projects/goods.html:75
#: app/templates/projects/list.html:207 app/templates/projects/view.html:434
#: app/templates/projects/view.html:479
#: app/templates/quotes/_quotes_list.html:39
#: app/templates/quotes/_quotes_list.html:76 app/templates/quotes/view.html:191
#: app/templates/recurring_invoices/list.html:29
#: app/templates/recurring_invoices/list.html:59
#: app/templates/recurring_invoices/view.html:113
#: app/templates/recurring_tasks/list.html:35
#: app/templates/recurring_tasks/list.html:79
#: app/templates/reports/saved_views_list.html:32
#: app/templates/reports/saved_views_list.html:59
#: app/templates/reports/scheduled.html:31
#: app/templates/reports/scheduled.html:79
#: app/templates/tasks/_tasks_list.html:99 app/templates/tasks/view.html:79
#: app/templates/timer/_time_entries_list.html:45
#: app/templates/timer/_time_entries_list.html:177
#: app/templates/timer/calendar.html:317
msgid "Actions"
msgstr "Toiminnot"

#: app/templates/base.html:1462 app/templates/reports/index.html:247
#: app/templates/timer/_time_entries_list.html:201
#: app/templates/timer/_time_entries_list.html:208
#: app/templates/timer/manual_entry.html:8
#: app/templates/timer/manual_entry.html:162
msgid "Log Time"
msgstr "Lokiaika"

#: app/templates/base.html:1466 app/templates/tasks/my_tasks.html:20
msgid "New Task"
msgstr "Uusi tehtävä"

#: app/templates/base.html:1471
#, fuzzy
msgid "New Project"
msgstr "Näytä projekti"

#: app/templates/base.html:1475
#, fuzzy
msgid "New Client"
msgstr "Muokkaa asiakasta"

#: app/templates/base.html:1491
#, fuzzy
msgid "Open AI Helper"
msgstr "Toiminto epäonnistui"

#: app/templates/base.html:1502
msgid "Ask about your tracked work, summaries, gaps, and next actions."
msgstr ""

#: app/templates/base.html:1508
#, fuzzy
msgid "Context included"
msgstr "Sopimus päättynyt"

#: app/templates/base.html:1509
#, fuzzy
msgid "Loading context preview..."
msgstr "Logon esikatselu"

#: app/templates/base.html:1515
msgid "Ask: What did I work on this week? Draft a time entry from these notes..."
msgstr ""

#: app/templates/base.html:1518
#, fuzzy
msgid "Send"
msgstr "Loppu"

#: app/templates/base.html:2450
msgid "Amazing! You've tracked over 100 hours"
msgstr ""

#: app/templates/base.html:2451 app/templates/base.html:2454
#: app/templates/base.html:2457 app/templates/base.html:2460
msgid "Support updates and new features — or remove prompts with a key"
msgstr ""

#: app/templates/base.html:2453
msgid "Great progress! You've logged 50+ entries"
msgstr ""

#: app/templates/base.html:2456
msgid "Thanks for using TimeTracker!"
msgstr ""

#: app/templates/admin/api_tokens.html:129
msgid "Create API Token"
msgstr "Luo API-tunnus"

#: app/templates/admin/api_tokens.html:356
msgid "Your API Token"
msgstr "API-tunnuksesi"

#: app/templates/admin/api_tokens.html:368
msgid "Usage Examples"
msgstr "Käyttöesimerkkejä"

#: app/templates/admin/api_tokens.html:457
msgid "Are you sure you want to"
msgstr "Oletko varma, että haluat"

#: app/templates/admin/api_tokens.html:457
msgid "deactivate"
msgstr "deaktivoida"

#: app/templates/admin/api_tokens.html:457
msgid "activate"
msgstr "aktivoida"

#: app/templates/admin/api_tokens.html:457
msgid "this token?"
msgstr "tämä merkki?"

#: app/templates/admin/api_tokens.html:459
msgid "Deactivate Token"
msgstr "Poista Token käytöstä"

#: app/templates/admin/api_tokens.html:459
msgid "Activate Token"
msgstr "Aktivoi Token"

#: app/templates/admin/api_tokens.html:460 app/templates/kanban/columns.html:98
msgid "Deactivate"
msgstr "Poista käytöstä"

#: app/templates/admin/api_tokens.html:460 app/templates/clients/view.html:35
#: app/templates/clients/view.html:37 app/templates/kanban/columns.html:98
#: app/templates/projects/view.html:61 app/templates/projects/view.html:64
msgid "Activate"
msgstr "Aktivoida"

#: app/templates/admin/api_tokens.html:490
msgid "Are you sure you want to delete this token? This action cannot be undone."
msgstr "Haluatko varmasti poistaa tämän tunnuksen? Tätä toimintoa ei voi kumota."

#: app/templates/admin/api_tokens.html:492
msgid "Delete Token"
msgstr "Poista Token"

#: app/templates/admin/backups.html:28
#: app/templates/import_export/index.html:185
#: app/templates/import_export/index.html:189
msgid "Create Backup"
msgstr "Luo varmuuskopio"

#: app/templates/admin/backups.html:47 app/templates/admin/restore.html:11
#: app/templates/import_export/index.html:114
msgid "Restore Backup"
msgstr "Palauta varmuuskopio"

#: app/templates/admin/backups.html:61
msgid "Existing Backups"
msgstr "Olemassa olevat varmuuskopiot"

#: app/templates/admin/backups.html:124
msgid "Important Information"
msgstr "Tärkeää tietoa"

#: app/templates/admin/backups.html:178
msgid "Confirm Deletion"
msgstr "Vahvista poisto"

#: app/templates/admin/clear_cache.html:6
msgid "Clear Cache"
msgstr "Tyhjennä välimuisti"

#: app/templates/admin/clear_cache.html:15
msgid "ServiceWorker Status"
msgstr "Palvelutyöntekijän tila"

#: app/templates/admin/clear_cache.html:23
msgid "Clear All Caches"
msgstr "Tyhjennä kaikki välimuistit"

#: app/templates/admin/clear_cache.html:35
msgid "ServiceWorker Actions"
msgstr "Palvelutyöntekijän toimet"

#: app/templates/admin/clear_cache.html:49
msgid "Manual Hard Refresh"
msgstr "Manuaalinen Hard Refresh"

#: app/templates/admin/dashboard.html:24
msgid "Total Users"
msgstr ""

#: app/templates/admin/dashboard.html:26 app/templates/admin/dashboard.html:56
#: app/templates/audit_logs/list.html:59 app/templates/reports/index.html:26
#: app/templates/reports/index.html:27
msgid "All time"
msgstr "Koko ajan"

#: app/templates/admin/dashboard.html:39 app/templates/admin/dashboard.html:430
#: app/templates/reports/index.html:29
msgid "Active Users"
msgstr ""

#: app/templates/admin/dashboard.html:41 app/templates/admin/dashboard.html:71
#: app/templates/reports/index.html:28 app/templates/reports/index.html:29
msgid "Currently active"
msgstr ""

#: app/templates/admin/dashboard.html:54 app/templates/clients/edit.html:176
msgid "Total Projects"
msgstr "Projekteja yhteensä"

#: app/templates/admin/dashboard.html:69
#: app/templates/analytics/dashboard.html:53
#: app/templates/client_portal/widgets/stats.html:6
#: app/templates/clients/edit.html:180 app/templates/reports/index.html:28
msgid "Active Projects"
msgstr "Aktiiviset projektit"

#: app/templates/admin/dashboard.html:84
msgid "Total Entries"
msgstr ""

#: app/templates/admin/dashboard.html:86
msgid "Time entries logged"
msgstr ""

#: app/templates/admin/dashboard.html:99
msgid "Active Timers"
msgstr ""

#: app/templates/admin/dashboard.html:101
msgid "Currently running"
msgstr ""

#: app/templates/admin/dashboard.html:116
msgid "All time tracked"
msgstr ""

#: app/templates/admin/dashboard.html:131
msgid "Billable time"
msgstr ""

#: app/templates/admin/dashboard.html:146
msgid "User Activity (30 Days)"
msgstr ""

#: app/templates/admin/dashboard.html:157
msgid "Project Status"
msgstr ""

#: app/templates/admin/dashboard.html:168
msgid "Time Entry Trends (30 Days)"
msgstr ""

#: app/templates/admin/dashboard.html:180
msgid "System Health"
msgstr ""

#: app/templates/admin/dashboard.html:189 app/templates/main/about.html:147
msgid "Database"
msgstr "Tietokanta"

#: app/templates/admin/dashboard.html:190
#: app/templates/admin/integrations/setup.html:191
#: app/templates/integrations/list.html:127
#: app/templates/integrations/manage.html:552
#: app/templates/integrations/view.html:31
#: app/templates/integrations/view.html:42
#: app/templates/integrations/wizard_trello.html:92
msgid "Connected"
msgstr ""

#: app/templates/admin/dashboard.html:200
msgid "OIDC Authentication"
msgstr ""

#: app/templates/admin/dashboard.html:202
msgid "Configured"
msgstr ""

#: app/templates/admin/dashboard.html:202
#: app/templates/integrations/list.html:51
msgid "Not Configured"
msgstr ""

#: app/templates/admin/dashboard.html:214
#: app/templates/admin/oidc_debug.html:128
msgid "OIDC Users"
msgstr "OIDC-käyttäjät"

#: app/templates/admin/dashboard.html:215
#: app/templates/admin/roles/list.html:123
#: app/templates/admin/settings.html:827
msgid "users"
msgstr "käyttäjiä"

#: app/templates/admin/dashboard.html:226
msgid "Admin Sections"
msgstr "Järjestelmänvalvojan osiot"

#: app/templates/admin/dashboard.html:327
#: app/templates/components/activity_feed_widget.html:6
#: app/templates/main/dashboard.html:592
#: app/templates/projects/dashboard.html:242
#: app/templates/user/profile.html:131
msgid "Recent Activity"
msgstr "Viimeaikainen toiminta"

#: app/templates/admin/dashboard.html:336 app/templates/approvals/view.html:30
#: app/templates/calendar/event_detail.html:57
#: app/templates/client_portal/approvals.html:130
#: app/templates/client_portal/reports.html:221
#: app/templates/client_portal/time_entries.html:66
#: app/templates/client_portal/widgets/time_entries.html:23
#: app/templates/clients/view.html:353 app/templates/main/dashboard.html:336
#: app/templates/main/dashboard.html:361 app/templates/main/search.html:36
#: app/templates/reports/index.html:226 app/templates/reports/index.html:234
#: app/templates/reports/time_entries_report.html:105
#: app/templates/reports/time_entries_report.html:119
#: app/templates/reports/unpaid_hours_report.html:123
#: app/templates/tasks/view.html:76
#: app/templates/timer/_time_entries_list.html:40
#: app/templates/timer/_time_entries_list.html:89
#: app/templates/timer/calendar.html:876
#: app/templates/timer/time_entries_export_pdf.html:18
#: app/templates/timer/view_timer.html:41
msgid "Duration"
msgstr "Kesto"

#: app/templates/admin/dashboard.html:352
#: app/templates/client_portal/activity_feed.html:60
#: app/templates/client_portal/approvals.html:90
#: app/templates/client_portal/approvals.html:121
#: app/templates/client_portal/approvals.html:143
#: app/templates/client_portal/notifications.html:96
#: app/templates/client_portal/project_comments.html:59
#: app/templates/client_portal/quotes.html:51
#: app/templates/client_portal/reports.html:102
#: app/templates/client_portal/reports.html:230
#: app/templates/client_portal/reports.html:236
#: app/templates/client_portal/reports.html:250
#: app/templates/client_portal/time_entries.html:90
#: app/templates/client_portal/time_entries.html:101
#: app/templates/client_portal/widgets/time_entries.html:37
#: app/templates/client_portal/widgets/time_entries.html:45
#: app/templates/clients/view.html:388 app/templates/main/dashboard.html:358
#: app/templates/main/search.html:51 app/templates/timer/calendar.html:847
#: app/templates/timer/calendar.html:851 app/templates/timer/calendar.html:864
#: app/templates/timer/manual_entry.html:33 app/templates/user/profile.html:77
msgid "N/A"
msgstr "Ei käytössä"

#: app/templates/admin/email_support.html:6
msgid "Email Configuration & Testing"
msgstr "Sähköpostin määritys ja testaus"

#: app/templates/admin/email_support.html:7
msgid "Configure and test email delivery"
msgstr "Määritä ja testaa sähköpostin toimitusta"

#: app/templates/admin/email_support.html:11
msgid "Back to Admin"
msgstr "Takaisin järjestelmänvalvojaan"

#: app/templates/admin/email_support.html:23
msgid "Configure email settings here to save them in the database."
msgstr "Määritä sähköpostiasetukset tässä tallentaaksesi ne tietokantaan."

#: app/templates/admin/email_support.html:31
msgid "Enable Database Email Configuration"
msgstr "Ota tietokannan sähköpostin määritys käyttöön"

#: app/templates/admin/email_support.html:37
#: app/templates/admin/email_support.html:168
msgid "Mail Server"
msgstr "Postipalvelin"

#: app/templates/admin/email_support.html:43
msgid "Mail Port"
msgstr "Postin portti"

#: app/templates/admin/email_support.html:51
#: app/templates/admin/email_support.html:190
msgid "Use TLS"
msgstr "Käytä TLS:ää"

#: app/templates/admin/email_support.html:55
#: app/templates/admin/email_support.html:194
msgid "Use SSL"
msgstr "Käytä SSL:ää"

#: app/templates/admin/email_support.html:61
#: app/templates/admin/email_support.html:176
#: app/templates/admin/oidc_debug.html:134
#: app/templates/admin/oidc_user_detail.html:23
#: app/templates/auth/login.html:51 app/templates/auth/login.html:57
#: app/templates/client_portal/login.html:48
#: app/templates/client_portal/set_password.html:42
#: app/templates/integrations/caldav_setup.html:77
#: app/templates/integrations/manage.html:235
#: app/templates/kiosk/login.html:116 app/templates/user/settings.html:49
msgid "Username"
msgstr "Käyttäjätunnus"

#: app/templates/admin/email_support.html:68 app/templates/auth/login.html:52
#: app/templates/auth/login.html:64 app/templates/auth/login.html:67
#: app/templates/client_portal/login.html:54
#: app/templates/client_portal/set_password.html:50
#: app/templates/integrations/caldav_setup.html:93
#: app/templates/integrations/manage.html:251
#: app/templates/kiosk/login.html:136 app/templates/kiosk/login.html:146
msgid "Password"
msgstr "Salasana"

#: app/templates/admin/email_support.html:71
msgid "Leave empty to keep current"
msgstr "Jätä tyhjäksi pitääksesi ajan tasalla"

#: app/templates/admin/email_support.html:76
#: app/templates/admin/email_support.html:198
msgid "Default Sender"
msgstr "Oletuslähettäjä"

#: app/templates/admin/email_support.html:82
#, fuzzy
msgid "Test recipient email"
msgstr "Vastaanottajan sähköposti"

#: app/templates/admin/email_support.html:84
msgid "Used to prefill “Send Test Email” and invoice template test sends."
msgstr ""

#: app/templates/admin/email_support.html:91
#: app/templates/admin/email_support.html:376
#: app/templates/integrations/activitywatch_setup.html:145
#: app/templates/integrations/caldav_setup.html:199
#: app/templates/integrations/manage.html:520
msgid "Save Configuration"
msgstr "Tallenna asetukset"

#: app/templates/admin/email_support.html:94
#: app/templates/admin/pdf_layout.html:1715
#: app/templates/admin/pdf_layout.html:7735
#: app/templates/admin/quote_pdf_layout.html:1525
#: app/templates/admin/quote_pdf_layout.html:7175
#: app/templates/components/ui.html:838
#: app/templates/integrations/health.html:107
#: app/templates/integrations/view.html:150
#: app/templates/projects/time_entries_overview.html:40
#: app/templates/settings/keyboard_shortcuts.html:484
#: app/templates/timer/bulk_entry.html:90
msgid "Reset"
msgstr "Nollaa"

#: app/templates/admin/email_support.html:106
msgid "Email Configuration Status"
msgstr "Sähköpostin määritystila"

#: app/templates/admin/email_support.html:108
#: app/templates/analytics/dashboard.html:20
#: app/templates/analytics/dashboard_improved.html:22
#: app/templates/budget/dashboard.html:18
#: app/templates/components/persistent_chat_widget.html:34
#: app/templates/gantt/view.html:46
msgid "Refresh"
msgstr "Päivitä"

#: app/templates/admin/email_support.html:118
msgid "Email is configured!"
msgstr "Sähköposti on määritetty!"

#: app/templates/admin/email_support.html:119
msgid "Your email settings are properly set up."
msgstr "Sähköpostiasetukset on määritetty oikein."

#: app/templates/admin/email_support.html:128
msgid "Email is not configured"
msgstr "Sähköpostia ei ole määritetty"

#: app/templates/admin/email_support.html:129
msgid "Please configure email settings using the form above."
msgstr "Määritä sähköpostiasetukset käyttämällä yllä olevaa lomaketta."

#: app/templates/admin/email_support.html:139
msgid "Configuration Errors"
msgstr "Asetusvirheet"

#: app/templates/admin/email_support.html:153
msgid "Configuration Warnings"
msgstr "Määritysvaroitukset"

#: app/templates/admin/email_support.html:165
msgid "Current Email Settings"
msgstr "Nykyiset sähköpostiasetukset"

#: app/templates/admin/email_support.html:172
#: app/templates/admin/ldap_setup_wizard.html:66
#: app/templates/admin/settings.html:416
msgid "Port"
msgstr "Portti"

#: app/templates/admin/email_support.html:180
msgid "Password Set"
msgstr "Salasana Aseta"

#: app/templates/admin/email_support.html:208
#: app/templates/admin/email_support.html:225
#: app/templates/admin/email_support.html:475
msgid "Send Test Email"
msgstr "Lähetä testisähköposti"

#: app/templates/admin/email_support.html:213
msgid "Recipient Email Address"
msgstr "Vastaanottajan sähköpostiosoite"

#: app/templates/admin/email_support.html:235
msgid "Configuration Guide"
msgstr "Asetusopas"

#: app/templates/admin/email_support.html:238
msgid "Common SMTP Providers"
msgstr "Yleiset SMTP-palveluntarjoajat"

#: app/templates/admin/email_support.html:240
msgid "Requires app password"
msgstr "Vaatii sovelluksen salasanan"

#: app/templates/admin/email_support.html:249
msgid "Important Notes"
msgstr "Tärkeitä huomautuksia"

#: app/templates/admin/email_support.html:252
msgid "Gmail requires an App Password if 2FA is enabled"
msgstr "Gmail vaatii sovelluksen salasanan, jos 2FA on käytössä"

#: app/templates/admin/email_support.html:253
msgid "Restart the application after changing email settings"
msgstr "Käynnistä sovellus uudelleen sähköpostiasetusten muuttamisen jälkeen"

#: app/templates/admin/email_support.html:254
msgid "Check firewall rules if emails are not sending"
msgstr "Tarkista palomuurisäännöt, jos sähköpostit eivät lähetä"

#: app/templates/admin/email_support.html:255
msgid "For production, use a dedicated email service like SendGrid or Amazon SES"
msgstr "Käytä tuotannossa erillistä sähköpostipalvelua, kuten SendGrid tai Amazon SES"

#: app/templates/admin/email_support.html:307
msgid "password is set"
msgstr "salasana on asetettu"

#: app/templates/admin/email_support.html:310
msgid "no password set"
msgstr "salasanaa ei ole asetettu"

#: app/templates/admin/email_support.html:372
msgid "Failed to save configuration. Please try again."
msgstr "Määrityksen tallentaminen epäonnistui. Yritä uudelleen."

#: app/templates/admin/email_support.html:390
#: app/templates/admin/email_support.html:489
msgid "Success!"
msgstr "Menestys!"

#: app/templates/admin/email_support.html:428
msgid "Failed to refresh status. Please try again."
msgstr "Tilan päivittäminen epäonnistui. Yritä uudelleen."

#: app/templates/admin/email_support.html:443
msgid "Please enter a valid email address"
msgstr "Anna kelvollinen sähköpostiosoite"

#: app/templates/admin/email_support.html:449
msgid "Sending..."
msgstr "Lähetetään..."

#: app/templates/admin/email_support.html:471
msgid "Failed to send test email. Please check your configuration."
msgstr "Testisähköpostin lähettäminen epäonnistui. Tarkista kokoonpanosi."

#: app/templates/admin/ldap_setup_wizard.html:4
#: app/templates/admin/ldap_setup_wizard.html:10
#: app/templates/admin/ldap_setup_wizard.html:15
msgid "LDAP Setup Wizard"
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:16
#, fuzzy
msgid "Guided configuration for LDAP authentication (environment variables)"
msgstr "Määritä OIDC käyttämällä näitä ympäristömuuttujia:"

#: app/templates/admin/ldap_setup_wizard.html:31
#, fuzzy
msgid "Server"
msgstr "Palvelu"

#: app/templates/admin/ldap_setup_wizard.html:36
msgid "Bind"
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:41
#: app/templates/admin/roles/list.html:94
#: app/templates/components/activity_feed_widget.html:47
msgid "Users"
msgstr "Käyttäjät"

#: app/templates/admin/ldap_setup_wizard.html:46
#, fuzzy
msgid "Groups"
msgstr "Ryhmät väittävät"

#: app/templates/admin/ldap_setup_wizard.html:51
#: app/templates/admin/oidc_setup_wizard.html:46
msgid "Finalize"
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:57
msgid "Step 1: Server and TLS"
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:60
#, fuzzy
msgid "LDAP host"
msgstr "Kadonnut"

#: app/templates/admin/ldap_setup_wizard.html:73
#, fuzzy
msgid "Use SSL (LDAPS)"
msgstr "Käytä SSL:ää"

#: app/templates/admin/ldap_setup_wizard.html:77
#, fuzzy
msgid "StartTLS"
msgstr "Aloita"

#: app/templates/admin/ldap_setup_wizard.html:81
#, fuzzy
msgid "Connection timeout (seconds)"
msgstr "Aikakatkaisu (sekuntia)"

#: app/templates/admin/ldap_setup_wizard.html:86
msgid "TLS CA certificate file"
msgstr ""

#: app/templates/admin/email_templates/edit.html:27
#: app/templates/admin/email_templates/view.html:29
#: app/templates/admin/integrations/setup.html:100
#: app/templates/admin/ldap_setup_wizard.html:86
#: app/templates/admin/ldap_setup_wizard.html:127
#: app/templates/admin/ldap_setup_wizard.html:167
#: app/templates/admin/ldap_setup_wizard.html:179
#: app/templates/admin/ldap_setup_wizard.html:185
#: app/templates/admin/oidc_setup_wizard.html:193
#: app/templates/admin/oidc_setup_wizard.html:206
#: app/templates/admin/oidc_setup_wizard.html:251
#: app/templates/admin/salesman_email_mappings.html:124
#: app/templates/integrations/activitywatch_setup.html:51
#: app/templates/integrations/activitywatch_setup.html:100
#: app/templates/integrations/caldav_setup.html:60
#: app/templates/integrations/caldav_setup.html:130
#: app/templates/integrations/manage.html:151
#: app/templates/integrations/wizard_asana.html:65
#: app/templates/integrations/wizard_github.html:50
#: app/templates/integrations/wizard_github.html:144
#: app/templates/integrations/wizard_gitlab.html:81
#: app/templates/integrations/wizard_gitlab.html:199
#: app/templates/integrations/wizard_jira.html:86
#: app/templates/integrations/wizard_microsoft_teams.html:18
#: app/templates/integrations/wizard_outlook_calendar.html:18
#: app/templates/integrations/wizard_quickbooks.html:145
#: app/templates/integrations/wizard_xero.html:128
#: app/templates/setup/initial_setup.html:152
#: app/templates/setup/initial_setup.html:156
#: app/templates/setup/initial_setup.html:202
msgid "optional"
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:95
msgid "Step 2: Service bind account"
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:98
msgid "Bind DN"
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:104
#, fuzzy
msgid "Bind password"
msgstr "Salasana"

#: app/templates/admin/ldap_setup_wizard.html:107
#, fuzzy
msgid "Enter bind password"
msgstr "Kirjoita salasanasi"

#: app/templates/admin/ldap_setup_wizard.html:110
msgid "A bind password is already set in the environment. Enter it again here to test or generate configuration."
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:118
msgid "Step 3: User directory and attributes"
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:121
#: app/templates/admin/settings.html:425
#, fuzzy
msgid "Base DN"
msgstr "Viimeisen perusteella"

#: app/templates/admin/ldap_setup_wizard.html:127
msgid "User subtree (relative to base)"
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:133
#, fuzzy
msgid "User object class"
msgstr "Käytä projektin tuntihintoja"

#: app/templates/admin/ldap_setup_wizard.html:140
#, fuzzy
msgid "Login attribute"
msgstr "Lokiaika"

#: app/templates/admin/ldap_setup_wizard.html:145
#, fuzzy
msgid "Email attribute"
msgstr "Sähköpostiosoite"

#: app/templates/admin/ldap_setup_wizard.html:150
#, fuzzy
msgid "First name attribute"
msgstr "Etunimi"

#: app/templates/admin/ldap_setup_wizard.html:155
#, fuzzy
msgid "Last name attribute"
msgstr "Sukunimi"

#: app/templates/admin/ldap_setup_wizard.html:164
#, fuzzy
msgid "Step 4: Groups and authentication mode"
msgstr "Todennusmenetelmä"

#: app/templates/admin/ldap_setup_wizard.html:167
msgid "Group subtree (relative to base)"
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:173
#, fuzzy
msgid "Group object class"
msgstr "Huippuprojektit"

#: app/templates/admin/ldap_setup_wizard.html:179
#: app/templates/admin/settings.html:437
#, fuzzy
msgid "Admin group (CN)"
msgstr "Admin Group"

#: app/templates/admin/ldap_setup_wizard.html:185
#: app/templates/admin/settings.html:441
msgid "Required group (CN)"
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:190
#, fuzzy
msgid "AUTH_METHOD"
msgstr "Todennusmenetelmä"

#: app/templates/admin/ldap_setup_wizard.html:193
#, fuzzy
msgid "LDAP only"
msgstr "Vain aktiivinen"

#: app/templates/admin/ldap_setup_wizard.html:194
msgid "All (local + OIDC + LDAP)"
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:197
msgid "Use \"All\" only if you also configure local and OIDC sign-in; AUTH_METHOD=all enables every method."
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:204
#, fuzzy
msgid "Step 5: Test and generate configuration"
msgstr "Testaa kokoonpano"

#: app/templates/admin/ldap_setup_wizard.html:209
msgid "Test the service bind and user search, then generate .env snippets to copy into your deployment."
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:214
#, fuzzy
msgid "Test connection"
msgstr "Testaa kokoonpano"

#: app/templates/admin/ldap_setup_wizard.html:221
msgid "Generate environment variable lines for your .env file or Docker Compose."
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:225
#, fuzzy
msgid "Generate configuration"
msgstr "Testaa kokoonpano"

#: app/templates/admin/ldap_setup_wizard.html:230
#, fuzzy
msgid "Environment variables (.env)"
msgstr "Ympäristömuuttujien viite"

#: app/templates/admin/ldap_setup_wizard.html:233
#: app/templates/admin/ldap_setup_wizard.html:242
#: app/templates/admin/oidc_setup_wizard.html:283
#: app/templates/admin/oidc_setup_wizard.html:292
#: app/templates/admin/settings.html:180
msgid "Copy"
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:239
#: app/templates/admin/oidc_setup_wizard.html:289
msgid "Docker Compose"
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:250
msgid "Add these variables to your environment or Compose file, restart the application, then confirm under Settings → LDAP."
msgstr ""

#: app/templates/admin/ldap_setup_wizard.html:258
#: app/templates/admin/oidc_setup_wizard.html:309
#: app/templates/components/ui.html:85
#: app/templates/integrations/wizard_base.html:48
#: app/templates/issues/list.html:152 app/templates/main/search.html:95
#: app/templates/project_templates/list.html:100
#: app/templates/reports/time_entries_report.html:148
#: app/templates/tasks/my_tasks.html:358
#: app/templates/timer/_time_entries_list.html:229
msgid "Previous"
msgstr "Edellinen"

#: app/templates/admin/ldap_setup_wizard.html:262
#: app/templates/admin/oidc_setup_wizard.html:313
#: app/templates/components/ui.html:99
#: app/templates/integrations/wizard_base.html:52
#: app/templates/issues/list.html:159 app/templates/main/search.html:105
#: app/templates/project_templates/list.html:108
#: app/templates/reports/time_entries_report.html:151
#: app/templates/setup/initial_setup.html:285
#: app/templates/tasks/my_tasks.html:384
#: app/templates/timer/_time_entries_list.html:247
msgid "Next"
msgstr "Seuraavaksi"

#: app/templates/admin/modules.html:39
#, fuzzy
msgid "Feature Module Load Status"
msgstr "Ominaisuuden käyttötilastot"

#: app/templates/admin/modules.html:41
msgid "This reflects which optional feature modules successfully loaded when the server started."
msgstr ""

#: app/templates/admin/modules.html:45
#, fuzzy
msgid "Optional loaded:"
msgstr "Valinnainen kuponkikoodi"

#: app/templates/admin/modules.html:47
#, fuzzy
msgid "Attention needed"
msgstr "Huomiota vaaditaan"

#: app/templates/admin/modules.html:56
#, fuzzy
msgid "Module"
msgstr "mobiili"

#: app/templates/admin/modules.html:57
msgid "Blueprint"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:28
#: app/templates/admin/custom_field_definitions/list.html:52
#: app/templates/admin/link_templates/list.html:29
#: app/templates/admin/link_templates/list.html:56
#: app/templates/admin/modules.html:58 app/templates/admin/oidc_debug.html:29
#: app/templates/admin/oidc_user_detail.html:27
#: app/templates/admin/pdf_layout.html:1828
#: app/templates/admin/quote_pdf_layout.html:1638
#: app/templates/admin/salesman_email_mappings.html:41
#: app/templates/admin/salesman_email_mappings.html:212
#: app/templates/admin/webhooks/list.html:27
#: app/templates/admin/webhooks/list.html:58
#: app/templates/admin/webhooks/view.html:32
#: app/templates/admin/webhooks/view.html:102
#: app/templates/admin/webhooks/view.html:112
#: app/templates/approvals/list.html:99 app/templates/approvals/view.html:74
#: app/templates/budget/dashboard.html:121
#: app/templates/budget/project_detail.html:70
#: app/templates/client_portal/invoice_detail.html:36
#: app/templates/client_portal/invoices.html:75
#: app/templates/client_portal/issue_detail.html:39
#: app/templates/client_portal/quote_detail.html:39
#: app/templates/client_portal/quotes.html:30
#: app/templates/client_portal/quotes.html:55
#: app/templates/client_portal/reports.html:90
#: app/templates/contacts/communication_form.html:57
#: app/templates/deals/activity_form.html:34 app/templates/deals/list.html:22
#: app/templates/deals/view.html:53 app/templates/expenses/dashboard.html:203
#: app/templates/expenses/list.html:316 app/templates/integrations/view.html:20
#: app/templates/integrations/wizard_trello.html:71
#: app/templates/inventory/purchase_orders/list.html:21
#: app/templates/inventory/purchase_orders/list.html:54
#: app/templates/inventory/purchase_orders/list.html:74
#: app/templates/inventory/purchase_orders/view.html:34
#: app/templates/inventory/reports/turnover.html:49
#: app/templates/inventory/reports/turnover.html:64
#: app/templates/inventory/reservations/list.html:20
#: app/templates/inventory/reservations/list.html:44
#: app/templates/inventory/reservations/list.html:78
#: app/templates/inventory/stock_items/list.html:55
#: app/templates/inventory/stock_items/list.html:87
#: app/templates/inventory/stock_items/view.html:100
#: app/templates/inventory/stock_items/view.html:181
#: app/templates/inventory/stock_items/view.html:202
#: app/templates/inventory/stock_levels/warehouse.html:52
#: app/templates/inventory/stock_levels/warehouse.html:71
#: app/templates/inventory/suppliers/list.html:25
#: app/templates/inventory/suppliers/list.html:46
#: app/templates/inventory/suppliers/list.html:74
#: app/templates/inventory/suppliers/view.html:30
#: app/templates/inventory/warehouses/list.html:26
#: app/templates/inventory/warehouses/list.html:47
#: app/templates/inventory/warehouses/view.html:30
#: app/templates/invoices/edit.html:309
#: app/templates/invoices/pdf_default.html:59 app/templates/issues/edit.html:37
#: app/templates/issues/list.html:36 app/templates/issues/list.html:96
#: app/templates/issues/list.html:113 app/templates/issues/view.html:95
#: app/templates/kanban/columns.html:52
#: app/templates/leads/activity_form.html:34 app/templates/leads/form.html:60
#: app/templates/leads/list.html:26 app/templates/leads/list.html:53
#: app/templates/leads/list.html:73 app/templates/leads/view.html:81
#: app/templates/main/help.html:198 app/templates/mileage/gps.html:44
#: app/templates/payment_gateways/list.html:27
#: app/templates/payment_gateways/list.html:41
#: app/templates/payments/list.html:159
#: app/templates/projects/_kanban_tailwind.html:30
#: app/templates/projects/_projects_list.html:86
#: app/templates/projects/goods.html:44 app/templates/projects/goods.html:66
#: app/templates/projects/list.html:167 app/templates/projects/view.html:275
#: app/templates/projects/view.html:430 app/templates/projects/view.html:449
#: app/templates/quotes/_quotes_list.html:37
#: app/templates/quotes/_quotes_list.html:60 app/templates/quotes/list.html:78
#: app/templates/quotes/pdf_default.html:61 app/templates/quotes/view.html:68
#: app/templates/recurring_invoices/list.html:28
#: app/templates/recurring_invoices/list.html:52
#: app/templates/recurring_invoices/view.html:110
#: app/templates/recurring_tasks/list.html:34
#: app/templates/recurring_tasks/list.html:71
#: app/templates/reports/scheduled.html:30
#: app/templates/reports/scheduled.html:68
#: app/templates/tasks/_kanban.html:1227
#: app/templates/tasks/_tasks_list.html:68 app/templates/tasks/edit.html:78
#: app/templates/tasks/my_tasks.html:128
#: app/templates/timer/_time_entries_list.html:44
#: app/templates/timer/_time_entries_list.html:161
#: app/templates/timer/calendar.html:857
#: app/templates/timer/time_entries_overview.html:196
#: app/templates/weekly_goals/edit.html:83
#: app/templates/weekly_goals/view.html:55
#: app/templates/workforce/dashboard.html:64
#: app/templates/workforce/dashboard.html:175 app/utils/pdf_generator.py:1129
msgid "Status"
msgstr "Status"

#: app/templates/admin/modules.html:59 app/templates/admin/oidc_debug.html:157
#: app/templates/admin/webhooks/view.html:25
#: app/templates/budget/dashboard.html:172
#: app/templates/client_portal/error.html:32
#: app/templates/client_portal/issue_detail.html:36
#: app/templates/integrations/view.html:96 app/templates/issues/view.html:92
#: app/templates/projects/view.html:234
#: app/templates/timer/manual_entry.html:136
msgid "Details"
msgstr "Yksityiskohdat"

#: app/templates/admin/modules.html:70
#, fuzzy
msgid "Loaded"
msgstr "Lataa lisää"

#: app/templates/admin/modules.html:74
#: app/templates/admin/webhooks/list.html:69
#: app/templates/admin/webhooks/view.html:80
#: app/templates/admin/webhooks/view.html:116
#: app/templates/weekly_goals/edit.html:90
#: app/templates/weekly_goals/index.html:51
#: app/templates/weekly_goals/index.html:180
#: app/templates/weekly_goals/view.html:71 app/utils/i18n_helpers.py:223
#: app/utils/i18n_helpers.py:235 app/utils/i18n_helpers.py:246
#: app/utils/i18n_helpers.py:257
msgid "Failed"
msgstr "Epäonnistui"

#: app/templates/admin/modules.html:82 app/templates/main/dashboard.html:290
msgid "—"
msgstr ""

#: app/templates/admin/modules.html:101
msgid "Client Lock (optional)"
msgstr ""

#: app/templates/admin/modules.html:103
msgid "If set, all client selectors across the app will auto-select this client and prevent changes."
msgstr ""

#: app/templates/admin/modules.html:106
msgid "Locked Client"
msgstr ""

#: app/templates/admin/modules.html:108
msgid "None (no lock)"
msgstr ""

#: app/templates/admin/modules.html:120
msgid "Module Visibility"
msgstr ""

#: app/templates/admin/modules.html:122
msgid "Disable modules to hide them from all users. Disabled modules will not appear in the sidebar. Core modules (Dashboard, Projects, Timer, etc.) are always enabled and cannot be disabled."
msgstr ""

#: app/templates/admin/modules.html:127 app/templates/admin/modules.html:229
msgid "Enable All"
msgstr ""

#: app/templates/admin/modules.html:130 app/templates/admin/modules.html:233
msgid "Disable All"
msgstr ""

#: app/templates/admin/modules.html:148
msgid "Total Modules:"
msgstr ""

#: app/templates/admin/modules.html:152
msgid "Enabled:"
msgstr ""

#: app/templates/admin/modules.html:156
msgid "Disabled:"
msgstr ""

#: app/templates/admin/modules.html:165
msgid "Search modules..."
msgstr ""

#: app/templates/admin/modules.html:169
#: app/templates/inventory/reports/valuation.html:32
#: app/templates/inventory/stock_items/list.html:27
#: app/templates/inventory/stock_levels/list.html:31
#: app/templates/inventory/stock_levels/warehouse.html:23
#: app/templates/project_templates/list.html:24
msgid "All Categories"
msgstr "Kaikki luokat"

#: app/templates/admin/modules.html:173 app/templates/admin/modules.html:215
#: app/templates/main/about.html:32 app/templates/main/help.html:28
#: app/templates/main/help.html:190
msgid "Project Management"
msgstr "Projektinhallinta"

#: app/templates/admin/modules.html:186
msgid "Show disabled only"
msgstr ""

#: app/templates/admin/modules.html:190
msgid "Show with dependencies"
msgstr ""

#: app/templates/admin/modules.html:200
msgid "Warning: Disabling these modules will also affect dependent modules:"
msgstr ""

#: app/templates/admin/modules.html:263 app/templates/admin/oidc_debug.html:32
#: app/templates/admin/settings.html:525
#: app/templates/integrations/list.html:47
#: app/templates/integrations/list.html:87
msgid "Enabled"
msgstr "Käytössä"

#: app/templates/admin/modules.html:265 app/templates/admin/oidc_debug.html:34
#: app/templates/admin/settings.html:526
msgid "Disabled"
msgstr "Ei käytössä"

#: app/templates/admin/modules.html:274
msgid "Depends on:"
msgstr ""

#: app/templates/admin/modules.html:301
msgid "Disabling \"Reports\" hides the whole Reports submenu including Report Builder and Scheduled Reports."
msgstr ""

#: app/templates/admin/modules.html:305 app/templates/auth/edit_profile.html:81
#: app/templates/client_notes/edit.html:86 app/templates/comments/edit.html:80
#: app/templates/invoices/edit.html:287 app/templates/issues/edit.html:83
#: app/templates/kanban/edit_column.html:91
#: app/templates/projects/edit.html:129
#: app/templates/projects/edit_good.html:69
#: app/templates/timer/edit_timer.html:393
#: app/templates/timer/edit_timer.html:514
#: app/templates/weekly_goals/edit.html:122
msgid "Save Changes"
msgstr "Tallenna muutokset"

#: app/templates/admin/modules.html:310
msgid "No modules available."
msgstr ""

#: app/templates/admin/modules.html:320
#: app/templates/contacts/communication_form.html:33
#: app/templates/deals/activity_form.html:27
#: app/templates/leads/activity_form.html:27
msgid "Note"
msgstr "Huom"

#: app/templates/admin/modules.html:322
msgid "All modules are enabled by default."
msgstr ""

#: app/templates/admin/modules.html:323
msgid "Core modules cannot be disabled as they are required for the application to function."
msgstr ""

#: app/templates/admin/modules.html:324
msgid "Disabling a module affects all users system-wide. Disabled modules will not appear in the navigation sidebar."
msgstr ""

#: app/templates/admin/modules.html:538
msgid "Enable all modules?"
msgstr ""

#: app/templates/admin/modules.html:547
msgid "Disable all modules? This may affect functionality."
msgstr ""

#: app/templates/admin/modules.html:573
msgid "Disable"
msgstr ""

#: app/templates/admin/modules.html:573
msgid "module(s) in this category?"
msgstr ""

#: app/templates/admin/modules.html:618
msgid "Validation errors:"
msgstr ""

#: app/templates/admin/oidc_debug.html:4 app/templates/admin/oidc_debug.html:14
msgid "OIDC Debug Dashboard"
msgstr "OIDC Debug Dashboard"

#: app/templates/admin/oidc_debug.html:15
msgid "Inspect configuration, provider metadata and OIDC users"
msgstr "Tarkista kokoonpano, palveluntarjoajan metatiedot ja OIDC-käyttäjät"

#: app/templates/admin/oidc_debug.html:17
#: app/templates/admin/oidc_setup_wizard.html:10
#: app/templates/integrations/list.html:58
#: app/templates/integrations/list.html:98
#: app/templates/integrations/list.html:155
#: app/templates/integrations/wizard_base.html:10
msgid "Setup Wizard"
msgstr ""

#: app/templates/admin/oidc_debug.html:17
msgid "Test Configuration"
msgstr "Testaa kokoonpano"

#: app/templates/admin/oidc_debug.html:25
msgid "OIDC Configuration"
msgstr "OIDC-kokoonpano"

#: app/templates/admin/oidc_debug.html:39
msgid "Auth Method"
msgstr "Todennusmenetelmä"

#: app/templates/admin/oidc_debug.html:43
msgid "Issuer"
msgstr "Liikkeeseenlaskija"

#: app/templates/admin/oidc_debug.html:44
#: app/templates/admin/oidc_debug.html:48
#: app/templates/admin/oidc_debug.html:73
#: app/templates/admin/oidc_debug.html:74
#: app/templates/integrations/health.html:86
#: app/templates/integrations/list.html:91
msgid "Not configured"
msgstr "Ei määritetty"

#: app/templates/admin/oidc_debug.html:47
#: app/templates/admin/oidc_setup_wizard.html:70
#: app/templates/payment_gateways/create.html:60
msgid "Client ID"
msgstr "Asiakastunnus"

#: app/templates/admin/oidc_debug.html:51
#: app/templates/admin/oidc_setup_wizard.html:83
#: app/templates/payment_gateways/create.html:64
msgid "Client Secret"
msgstr "Asiakkaan salaisuus"

#: app/templates/admin/oidc_debug.html:52
msgid "Set"
msgstr "Sarja"

#: app/templates/admin/oidc_debug.html:52
#: app/templates/admin/oidc_user_detail.html:39
#: app/templates/admin/oidc_user_detail.html:40
#: app/templates/integrations/wizard_asana.html:191
#: app/templates/integrations/wizard_jira.html:255
#: app/templates/integrations/wizard_quickbooks.html:224
#: app/templates/integrations/wizard_xero.html:207
msgid "Not set"
msgstr "Ei asetettu"

#: app/templates/admin/oidc_debug.html:55
#: app/templates/admin/oidc_setup_wizard.html:238
msgid "Redirect URI"
msgstr "Uudelleenohjaus URI"

#: app/templates/admin/oidc_debug.html:56
#: app/templates/admin/oidc_debug.html:75
msgid "Auto-generated"
msgstr "Luotu automaattisesti"

#: app/templates/admin/oidc_debug.html:59
#: app/templates/admin/oidc_debug.html:109
#: app/templates/admin/oidc_setup_wizard.html:225
msgid "Scopes"
msgstr "Soveltamisalat"

#: app/templates/admin/oidc_debug.html:67
msgid "Claim Mapping"
msgstr "Vaatimusten kartoitus"

#: app/templates/admin/oidc_debug.html:69
#: app/templates/admin/oidc_setup_wizard.html:141
msgid "Username Claim"
msgstr "Käyttäjätunnusvaatimus"

#: app/templates/admin/oidc_debug.html:70
#: app/templates/admin/oidc_setup_wizard.html:154
msgid "Email Claim"
msgstr "Sähköpostivaatimus"

#: app/templates/admin/oidc_debug.html:71
#: app/templates/admin/oidc_setup_wizard.html:167
msgid "Full Name Claim"
msgstr "Koko nimen väite"

#: app/templates/admin/oidc_debug.html:72
#: app/templates/admin/oidc_setup_wizard.html:180
msgid "Groups Claim"
msgstr "Ryhmät väittävät"

#: app/templates/admin/oidc_debug.html:73
#: app/templates/admin/oidc_setup_wizard.html:193
msgid "Admin Group"
msgstr "Admin Group"

#: app/templates/admin/oidc_debug.html:74
#: app/templates/admin/oidc_setup_wizard.html:206
msgid "Admin Emails"
msgstr "Admin sähköpostit"

#: app/templates/admin/oidc_debug.html:75
msgid "Post-Logout URI"
msgstr "Uloskirjautumisen jälkeinen URI"

#: app/templates/admin/oidc_debug.html:83
#: app/templates/admin/oidc_setup_wizard.html:128
msgid "Provider Metadata"
msgstr "Palveluntarjoajan metatiedot"

#: app/templates/admin/oidc_debug.html:86
msgid "Error loading metadata:"
msgstr "Virhe ladattaessa metatietoja:"

#: app/templates/admin/oidc_debug.html:89
#: app/templates/admin/oidc_debug.html:118
msgid "Discovery endpoint:"
msgstr "Löytämisen päätepiste:"

#: app/templates/admin/oidc_debug.html:93
msgid "Successfully loaded provider metadata"
msgstr "Palveluntarjoajan metatietojen lataus onnistui"

#: app/templates/admin/oidc_debug.html:97
msgid "Endpoints"
msgstr "Päätepisteet"

#: app/templates/admin/oidc_debug.html:99
msgid "Authorization"
msgstr "Valtuutus"

#: app/templates/admin/oidc_debug.html:100
msgid "Token"
msgstr "Token"

#: app/templates/admin/oidc_debug.html:101
msgid "UserInfo"
msgstr "Käyttäjätiedot"

#: app/templates/admin/oidc_debug.html:102
msgid "End Session"
msgstr "Lopeta istunto"

#: app/templates/admin/oidc_debug.html:103
msgid "JWKS URI"
msgstr "JWKS URI"

#: app/templates/admin/oidc_debug.html:107
msgid "Supported Features"
msgstr "Tuetut ominaisuudet"

#: app/templates/admin/oidc_debug.html:110
msgid "Response Types"
msgstr "Vastaustyypit"

#: app/templates/admin/oidc_debug.html:111
msgid "Grant Types"
msgstr "Apurahatyypit"

#: app/templates/admin/oidc_debug.html:112
msgid "Auth Methods"
msgstr "Todennusmenetelmät"

#: app/templates/admin/oidc_debug.html:113
#: app/templates/admin/oidc_setup_wizard.html:36
msgid "Claims"
msgstr "Väitteet"

#: app/templates/admin/oidc_debug.html:121
msgid "Provider metadata not loaded. Click \"Test Configuration\" to fetch."
msgstr "Palveluntarjoajan metatietoja ei ladattu. Napsauta \"Testaa kokoonpano\" hakeaksesi."

#: app/templates/admin/oidc_debug.html:135
#: app/templates/admin/oidc_user_detail.html:24
#: app/templates/admin/pdf_layout.html:1796
#: app/templates/admin/quote_pdf_layout.html:1606
#: app/templates/clients/create.html:47 app/templates/clients/edit.html:54
#: app/templates/contacts/communication_form.html:30
#: app/templates/contacts/form.html:37 app/templates/contacts/list.html:29
#: app/templates/contacts/list.html:47 app/templates/contacts/view.html:33
#: app/templates/deals/activity_form.html:29
#: app/templates/inventory/suppliers/form.html:40
#: app/templates/inventory/suppliers/list.html:44
#: app/templates/inventory/suppliers/list.html:60
#: app/templates/inventory/suppliers/view.html:53
#: app/templates/invoices/pdf_default.html:45
#: app/templates/leads/activity_form.html:29 app/templates/leads/form.html:40
#: app/templates/leads/list.html:52 app/templates/leads/list.html:66
#: app/templates/leads/view.html:49 app/templates/projects/create.html:292
#: app/templates/quotes/pdf_default.html:45
#: app/templates/setup/initial_setup.html:147 app/utils/pdf_generator.py:1117
msgid "Email"
msgstr "Sähköposti"

#: app/templates/admin/oidc_debug.html:136
#: app/templates/admin/oidc_user_detail.html:25
#: app/templates/user/settings.html:58
msgid "Full Name"
msgstr "Koko nimi"

#: app/templates/admin/oidc_debug.html:137
#: app/templates/admin/oidc_user_detail.html:26
#: app/templates/contacts/form.html:62 app/templates/contacts/list.html:31
#: app/templates/contacts/list.html:55 app/templates/contacts/view.html:59
msgid "Role"
msgstr "Rooli"

#: app/templates/admin/oidc_debug.html:138
#: app/templates/admin/oidc_user_detail.html:31
#: app/templates/auth/profile.html:58
msgid "Last Login"
msgstr "Viimeisin kirjautuminen"

#: app/templates/admin/oidc_debug.html:139
msgid "OIDC Subject"
msgstr "OIDC Aihe"

#: app/templates/admin/custom_field_definitions/list.html:56
#: app/templates/admin/link_templates/list.html:60
#: app/templates/admin/oidc_debug.html:148
#: app/templates/admin/oidc_user_detail.html:27
#: app/templates/admin/webhooks/list.html:62
#: app/templates/admin/webhooks/view.html:37
#: app/templates/calendar/integrations.html:40
#: app/templates/clients/view.html:321 app/templates/integrations/view.html:25
#: app/templates/inventory/stock_items/list.html:91
#: app/templates/inventory/stock_items/view.html:105
#: app/templates/inventory/suppliers/list.html:78
#: app/templates/inventory/suppliers/view.html:35
#: app/templates/inventory/warehouses/list.html:51
#: app/templates/inventory/warehouses/view.html:35
#: app/templates/kanban/columns.html:74
#: app/templates/payment_gateways/list.html:45
#: app/templates/projects/view.html:121
#: app/templates/recurring_tasks/list.html:76
#: app/templates/reports/scheduled.html:76
#: app/templates/timer/calendar.html:975 app/utils/i18n_helpers.py:51
#: app/utils/i18n_helpers.py:57 app/utils/i18n_helpers.py:287
#: app/utils/i18n_helpers.py:293
msgid "Inactive"
msgstr "Ei-aktiivinen"

#: app/templates/admin/oidc_debug.html:153
#: app/templates/admin/oidc_user_detail.html:31
#: app/templates/integrations/manage.html:604
msgid "Never"
msgstr "Ei koskaan"

#: app/templates/admin/oidc_debug.html:166
msgid "No users have logged in via OIDC yet."
msgstr "Yksikään käyttäjä ei ole vielä kirjautunut OIDC:n kautta."

#: app/templates/admin/oidc_debug.html:172
msgid "Environment Variables Reference"
msgstr "Ympäristömuuttujien viite"

#: app/templates/admin/oidc_debug.html:173
msgid "Configure OIDC using these environment variables:"
msgstr "Määritä OIDC käyttämällä näitä ympäristömuuttujia:"

#: app/templates/admin/oidc_debug.html:178
msgid "Variable"
msgstr "Muuttuva"

#: app/templates/admin/custom_field_definitions/form.html:36
#: app/templates/admin/link_templates/form.html:30
#: app/templates/admin/oidc_debug.html:179
#: app/templates/admin/roles/form.html:47
#: app/templates/admin/roles/list.html:92
#: app/templates/admin/webhooks/form.html:29
#: app/templates/calendar/event_detail.html:66
#: app/templates/calendar/event_form.html:30 app/templates/chat/index.html:111
#: app/templates/client_portal/approvals.html:151
#: app/templates/client_portal/invoice_detail.html:57
#: app/templates/client_portal/invoice_detail.html:66
#: app/templates/client_portal/issue_detail.html:23
#: app/templates/client_portal/new_issue.html:33
#: app/templates/client_portal/quote_detail.html:57
#: app/templates/client_portal/quote_detail.html:69
#: app/templates/client_portal/quote_detail.html:78
#: app/templates/client_portal/time_entries.html:67
#: app/templates/client_portal/widgets/time_entries.html:24
#: app/templates/clients/create.html:32 app/templates/clients/create.html:136
#: app/templates/clients/edit.html:31 app/templates/deals/activity_form.html:54
#: app/templates/deals/form.html:97 app/templates/deals/view.html:105
#: app/templates/inventory/purchase_orders/form.html:78
#: app/templates/inventory/purchase_orders/form.html:147
#: app/templates/inventory/purchase_orders/view.html:91
#: app/templates/inventory/purchase_orders/view.html:110
#: app/templates/inventory/stock_items/form.html:31
#: app/templates/inventory/stock_items/view.html:45
#: app/templates/inventory/suppliers/form.html:32
#: app/templates/inventory/suppliers/view.html:41
#: app/templates/invoices/edit.html:74 app/templates/invoices/edit.html:161
#: app/templates/invoices/edit.html:176 app/templates/invoices/edit.html:233
#: app/templates/invoices/edit.html:248 app/templates/invoices/edit.html:608
#: app/templates/invoices/pdf_default.html:88 app/templates/issues/edit.html:30
#: app/templates/issues/new.html:30 app/templates/issues/view.html:31
#: app/templates/leads/activity_form.html:54
#: app/templates/leads/convert_to_deal.html:54 app/templates/main/help.html:197
#: app/templates/project_templates/create.html:25
#: app/templates/project_templates/edit.html:25
#: app/templates/project_templates/view.html:30
#: app/templates/projects/add_cost.html:28
#: app/templates/projects/add_good.html:24
#: app/templates/projects/create.html:52 app/templates/projects/create.html:283
#: app/templates/projects/edit.html:48 app/templates/projects/edit_cost.html:35
#: app/templates/projects/edit_good.html:24
#: app/templates/projects/time_entries_overview.html:72
#: app/templates/projects/time_entries_overview.html:83
#: app/templates/quotes/_edit_quote_form_scripts.html:199
#: app/templates/quotes/_edit_quote_form_scripts.html:233
#: app/templates/quotes/create.html:41 app/templates/quotes/create.html:64
#: app/templates/quotes/create.html:95 app/templates/quotes/create.html:126
#: app/templates/quotes/edit.html:46 app/templates/quotes/edit.html:69
#: app/templates/quotes/edit.html:143 app/templates/quotes/edit.html:158
#: app/templates/quotes/edit.html:200 app/templates/quotes/edit.html:216
#: app/templates/quotes/pdf_default.html:95 app/templates/quotes/view.html:61
#: app/templates/quotes/view.html:102
#: app/templates/recurring_tasks/form.html:47
#: app/templates/tasks/_kanban.html:1253 app/templates/tasks/create.html:34
#: app/templates/tasks/edit.html:41 app/utils/pdf_generator.py:1154
#: app/utils/pdf_generator_fallback.py:240
#: app/utils/pdf_generator_fallback.py:575
msgid "Description"
msgstr "Kuvaus"

#: app/templates/admin/oidc_debug.html:180 app/templates/user/settings.html:297
msgid "Example"
msgstr "Esimerkki"

#: app/templates/admin/oidc_debug.html:184
msgid "Authentication method"
msgstr "Todennusmenetelmä"

#: app/templates/admin/oidc_debug.html:185
msgid "OIDC provider issuer URL"
msgstr "OIDC-palveluntarjoajan myöntäjän URL-osoite"

#: app/templates/admin/oidc_debug.html:186
msgid "Client ID from OIDC provider"
msgstr "Asiakastunnus OIDC-palveluntarjoajalta"

#: app/templates/admin/oidc_debug.html:187
msgid "Client secret from OIDC provider"
msgstr "Asiakkaan salaisuus OIDC-palveluntarjoajalta"

#: app/templates/admin/oidc_debug.html:188
msgid "Callback URL (optional, auto-generated)"
msgstr "Takaisinsoitto-URL-osoite (valinnainen, automaattisesti luotu)"

#: app/templates/admin/oidc_debug.html:189
msgid "Requested scopes"
msgstr "Pyydetyt laajuudet"

#: app/templates/admin/oidc_debug.html:190
msgid "Claim containing username"
msgstr "Vaatimus sisältää käyttäjänimen"

#: app/templates/admin/oidc_debug.html:191
msgid "Claim containing email"
msgstr "Vaatimus, joka sisältää sähköpostin"

#: app/templates/admin/oidc_debug.html:192
msgid "Claim containing full name"
msgstr "Väite, joka sisältää koko nimen"

#: app/templates/admin/oidc_debug.html:193
msgid "Claim containing groups"
msgstr "Ryhmiä sisältävä vaatimus"

#: app/templates/admin/oidc_debug.html:194
msgid "Group name for admin role (optional)"
msgstr "Järjestelmänvalvojan roolin ryhmän nimi (valinnainen)"

#: app/templates/admin/oidc_debug.html:195
msgid "Comma-separated admin emails (optional)"
msgstr "Pilkuilla erotetut järjestelmänvalvojan sähköpostit (valinnainen)"

#: app/templates/admin/oidc_setup_wizard.html:4
#: app/templates/admin/oidc_setup_wizard.html:15
msgid "OIDC Setup Wizard"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:16
msgid "Guided step-by-step configuration for OpenID Connect authentication"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:26
msgid "Basic Config"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:31
#: app/templates/admin/oidc_setup_wizard.html:125
#: app/templates/integrations/activitywatch_setup.html:161
#: app/templates/integrations/caldav_setup.html:210
#: app/templates/integrations/caldav_setup.html:215
#: app/templates/integrations/manage.html:624
#: app/templates/integrations/view.html:137
#: app/templates/integrations/wizard_jira.html:76
#: app/templates/integrations/wizard_trello.html:53
msgid "Test Connection"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:53
msgid "Step 1: Basic Configuration"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:57
msgid "OIDC Issuer URL"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:64
msgid "The base URL of your OIDC provider (e.g., https://auth.example.com or https://login.microsoftonline.com/tenant-id/v2.0)"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:77
msgid "The client ID from your OIDC provider"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:87
msgid "Enter client secret"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:89
msgid "The client secret from your OIDC provider"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:95
#: app/templates/admin/oidc_user_detail.html:41
msgid "Authentication Method"
msgstr "Todennusmenetelmä"

#: app/templates/admin/oidc_setup_wizard.html:100
msgid "OIDC Only"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:100
msgid "SSO login only, no local passwords"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:103
msgid "Both"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:103
msgid "SSO and local password authentication"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:107
msgid "Choose whether to allow only OIDC login or both OIDC and local password authentication"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:115
#: app/templates/integrations/wizard_jira.html:66
#: app/templates/integrations/wizard_trello.html:43
msgid "Step 2: Test Connection"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:120
msgid "Click \"Test Connection\" to verify DNS resolution and metadata endpoint accessibility."
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:137
msgid "Step 3: Claim Mapping"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:148
msgid "Claim name containing the username (default: preferred_username)"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:161
msgid "Claim name containing the email address (default: email)"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:174
msgid "Claim name containing the full name (default: name)"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:187
msgid "Claim name containing user groups (default: groups, optional)"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:200
msgid "Group name that grants admin access (optional)"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:213
msgid "Comma-separated list of email addresses that grant admin access (optional)"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:221
#: app/templates/integrations/wizard_jira.html:152
msgid "Step 4: Advanced Settings"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:232
msgid "Space-separated list of OIDC scopes (default: openid profile email)"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:245
msgid "OAuth callback URL (usually auto-generated, but can be customized)"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:251
msgid "Post-Logout Redirect URI"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:258
msgid "URL to redirect to after logout (optional, only if your provider supports end_session_endpoint)"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:266
msgid "Step 5: Generate Configuration"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:271
msgid "Click \"Generate Configuration\" to create environment variable configuration."
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:275
msgid "Generate Configuration"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:280
msgid "Environment Variables (.env file)"
msgstr ""

#: app/templates/admin/oidc_setup_wizard.html:300
msgid "Copy the configuration above and add it to your environment variables or Docker Compose file, then restart the application."
msgstr ""

#: app/templates/admin/oidc_user_detail.html:3
#: app/templates/admin/oidc_user_detail.html:8
msgid "OIDC User Details"
msgstr "OIDC:n käyttäjätiedot"

#: app/templates/admin/oidc_user_detail.html:9
msgid "Profile and OIDC identity for this user"
msgstr "Tämän käyttäjän profiili ja OIDC-identiteetti"

#: app/templates/admin/oidc_user_detail.html:13
msgid "Back to OIDC Debug"
msgstr "Takaisin OIDC Debugiin"

#: app/templates/admin/oidc_user_detail.html:21
msgid "User Profile"
msgstr "Käyttäjäprofiili"

#: app/templates/admin/custom_field_definitions/form.html:59
#: app/templates/admin/custom_field_definitions/list.html:54
#: app/templates/admin/link_templates/form.html:64
#: app/templates/admin/link_templates/list.html:58
#: app/templates/admin/oidc_user_detail.html:27
#: app/templates/admin/oidc_user_detail.html:71
#: app/templates/admin/salesman_email_mappings.html:133
#: app/templates/admin/webhooks/form.html:106
#: app/templates/admin/webhooks/list.html:60
#: app/templates/admin/webhooks/view.html:35
#: app/templates/calendar/integrations.html:38
#: app/templates/clients/view.html:320
#: app/templates/integrations/health.html:24
#: app/templates/integrations/view.html:23
#: app/templates/inventory/stock_items/form.html:87
#: app/templates/inventory/stock_items/list.html:89
#: app/templates/inventory/stock_items/view.html:103
#: app/templates/inventory/suppliers/form.html:79
#: app/templates/inventory/suppliers/list.html:76
#: app/templates/inventory/suppliers/view.html:33
#: app/templates/inventory/warehouses/form.html:54
#: app/templates/inventory/warehouses/list.html:49
#: app/templates/inventory/warehouses/view.html:33
#: app/templates/kanban/columns.html:72
#: app/templates/kanban/edit_column.html:80
#: app/templates/payment_gateways/list.html:43
#: app/templates/projects/view.html:120
#: app/templates/recurring_tasks/list.html:76
#: app/templates/reports/scheduled.html:74 app/templates/tasks/_kanban.html:98
#: app/templates/timer/calendar.html:975
#: app/templates/weekly_goals/edit.html:88
#: app/templates/weekly_goals/index.html:176
#: app/templates/weekly_goals/view.html:69 app/utils/i18n_helpers.py:51
#: app/utils/i18n_helpers.py:57 app/utils/i18n_helpers.py:244
#: app/utils/i18n_helpers.py:255 app/utils/i18n_helpers.py:287
#: app/utils/i18n_helpers.py:293
msgid "Active"
msgstr "Aktiivinen"

#: app/templates/admin/oidc_user_detail.html:28
msgid "Preferred Language"
msgstr "Ensisijainen kieli"

#: app/templates/admin/oidc_user_detail.html:30
#: app/templates/reports/user_report.html:89
msgid "Created At"
msgstr "Luotu klo"

#: app/templates/admin/oidc_user_detail.html:37
msgid "OIDC Information"
msgstr "OIDC tiedot"

#: app/templates/admin/oidc_user_detail.html:39
msgid "OIDC Issuer"
msgstr "OIDC:n liikkeeseenlaskija"

#: app/templates/admin/oidc_user_detail.html:40
msgid "OIDC Subject (sub)"
msgstr "OIDC-aihe (ala)"

#: app/templates/admin/oidc_user_detail.html:41
msgid "Local"
msgstr "Paikallinen"

#: app/templates/admin/oidc_user_detail.html:45
msgid "This user was created or linked via OIDC. The issuer and subject are used to uniquely identify the user across login sessions."
msgstr "Tämä käyttäjä luotiin tai linkitettiin OIDC:n kautta. Myöntäjää ja aihetta käytetään käyttäjän yksilöimiseen kirjautumisistuntojen aikana."

#: app/templates/admin/oidc_user_detail.html:49
msgid "This user has no OIDC information. They may have been created manually or via self-registration without OIDC."
msgstr "Tällä käyttäjällä ei ole OIDC-tietoja. Ne on voitu luoda manuaalisesti tai rekisteröitymällä itse ilman OIDC:tä."

#: app/templates/admin/oidc_user_detail.html:57
msgid "Activity Statistics"
msgstr "Toimintatilastot"

#: app/templates/admin/oidc_user_detail.html:65
#: app/templates/calendar/view.html:84 app/templates/calendar/view.html:101
#: app/templates/calendar/view.html:102 app/templates/calendar/view.html:109
#: app/templates/client_portal/base.html:263
#: app/templates/client_portal/base.html:348
#: app/templates/client_portal/projects.html:59
#: app/templates/client_portal/time_entries.html:4
#: app/templates/client_portal/time_entries.html:9
#: app/templates/client_portal/time_entries.html:14
#: app/templates/components/activity_feed_widget.html:31
#: app/templates/components/offline_indicator.html:63
#: app/templates/integrations/wizard_jira.html:142
#: app/templates/projects/time_entries_overview.html:4
#: app/templates/reports/builder.html:366
#: app/templates/timer/time_entries_overview.html:9
#: app/templates/timer/view_timer.html:8
msgid "Time Entries"
msgstr "Aikamerkinnät"

#: app/templates/admin/link_templates/list.html:52
#: app/templates/admin/oidc_user_detail.html:73
#: app/templates/integrations/wizard_asana.html:194
#: app/templates/integrations/wizard_github.html:228
#: app/templates/integrations/wizard_gitlab.html:252
#: app/templates/integrations/wizard_jira.html:257
#: app/templates/integrations/wizard_quickbooks.html:227
#: app/templates/integrations/wizard_xero.html:210
#: app/templates/invoices/edit.html:98 app/templates/invoices/edit.html:106
#: app/templates/invoices/edit.html:505 app/templates/invoices/edit.html:516
#: app/templates/mileage/gps.html:20
#: app/templates/quotes/_edit_quote_form_scripts.html:62
#: app/templates/quotes/_edit_quote_form_scripts.html:73
#: app/templates/quotes/edit.html:93 app/templates/quotes/edit.html:99
msgid "None"
msgstr "Ei mitään"

#: app/templates/admin/oidc_user_detail.html:76
#: app/templates/kiosk/dashboard.html:288 app/templates/user/profile.html:57
msgid "Active Timer"
msgstr "Aktiivinen ajastin"

#: app/templates/admin/oidc_user_detail.html:80
msgid "Tasks Created"
msgstr "Tehtävät luotu"

#: app/templates/admin/oidc_user_detail.html:89
msgid "Edit User"
msgstr "Muokkaa käyttäjää"

#: app/templates/admin/oidc_user_detail.html:90
msgid "View All Users"
msgstr "Näytä kaikki käyttäjät"

#: app/templates/admin/pdf_layout.html:3
#, fuzzy
msgid "PDF Invoice Designer"
msgstr "PDF-lainaussuunnittelija"

#: app/templates/admin/pdf_layout.html:1649
#, fuzzy
msgid "Visual Invoice Designer"
msgstr "Visuaalinen lainaussuunnittelija"

#: app/templates/admin/pdf_layout.html:1652
#, fuzzy
msgid "Drag and drop elements to design your invoice layout"
msgstr "Suunnittele tarjousasettelu vetämällä ja pudottamalla elementtejä"

#: app/templates/admin/pdf_layout.html:1661
#: app/templates/admin/quote_pdf_layout.html:1472
msgid "How to use:"
msgstr "Käyttöohjeet:"

#: app/templates/admin/pdf_layout.html:1662
#: app/templates/admin/quote_pdf_layout.html:1473
msgid "Click elements from the left sidebar to add them to the canvas. Click elements to select and customize them in the properties panel. Use the alignment tools and keyboard shortcuts for faster editing."
msgstr "Napsauta elementtejä vasemmasta sivupalkista lisätäksesi ne kankaalle. Napsauta elementtejä valitaksesi ja mukauttaaksesi niitä ominaisuuspaneelissa. Käytä kohdistustyökaluja ja pikanäppäimiä nopeuttaaksesi muokkausta."

#: app/templates/admin/pdf_layout.html:1665
#: app/templates/admin/quote_pdf_layout.html:1476
msgid "Keyboard Shortcuts:"
msgstr "Pikanäppäimet:"

#: app/templates/admin/pdf_layout.html:1676
msgid "Help: Items Table, Expenses Table & Saving"
msgstr ""

#: app/templates/admin/pdf_layout.html:1679
#, fuzzy
msgid "Items Table:"
msgstr "Lainauskohteiden taulukko"

#: app/templates/admin/pdf_layout.html:1679
msgid "Displays time entries, extra goods, and expenses. Add from Invoice Data in the sidebar. Uses"
msgstr ""

#: app/templates/admin/pdf_layout.html:1680
#, fuzzy
msgid "Expenses Table:"
msgstr "Kulut Välisumma"

#: app/templates/admin/pdf_layout.html:1680
msgid "Optional separate table for expenses. Add from Invoice Data in the sidebar."
msgstr ""

#: app/templates/admin/pdf_layout.html:1681
#: app/templates/admin/quote_pdf_layout.html:1491
#, fuzzy
msgid "Saving:"
msgstr "Tallennetaan..."

#: app/templates/admin/pdf_layout.html:1681
msgid "Click \"Save Design\" to persist. If tables disappear after save, try Reset to restore defaults, then re-add tables."
msgstr ""

#: app/templates/admin/pdf_layout.html:1682
#: app/templates/admin/quote_pdf_layout.html:1492
#: app/templates/admin/salesman_email_mappings.html:138
msgid "Preview:"
msgstr ""

#: app/templates/admin/pdf_layout.html:1682
msgid "Use \"Generate Preview\" to see how the PDF will look with real invoice data."
msgstr ""

#: app/templates/admin/pdf_layout.html:1683
#: app/templates/admin/quote_pdf_layout.html:1493
#, fuzzy
msgid "See"
msgstr "Sarja"

#: app/templates/admin/pdf_layout.html:1683
#: app/templates/admin/quote_pdf_layout.html:1493
#, fuzzy
msgid "for full documentation."
msgstr "Dokumentaatio"

#: app/templates/admin/pdf_layout.html:1690
#: app/templates/admin/pdf_layout.html:4407
#: app/templates/admin/quote_pdf_layout.html:1500
#: app/templates/admin/quote_pdf_layout.html:3926
msgid "Clear Canvas"
msgstr "Kirkas kangas"

#: app/templates/admin/pdf_layout.html:1693
#: app/templates/admin/quote_pdf_layout.html:1503
msgid "Generate Preview"
msgstr "Luo esikatselu"

#: app/templates/admin/pdf_layout.html:1696
#: app/templates/admin/quote_pdf_layout.html:1506
msgid "Save Design"
msgstr "Tallenna malli"

#: app/templates/admin/pdf_layout.html:1699
#: app/templates/admin/quote_pdf_layout.html:1509
msgid "View Code"
msgstr "Näytä koodi"

#: app/templates/admin/pdf_layout.html:1702
#: app/templates/admin/quote_pdf_layout.html:1512
msgid "Export JSON"
msgstr ""

#: app/templates/admin/pdf_layout.html:1705
#: app/templates/admin/quote_pdf_layout.html:1515
msgid "Import JSON"
msgstr ""

#: app/templates/admin/pdf_layout.html:1710
#: app/templates/admin/quote_pdf_layout.html:1520
msgid "Snap to Grid (10px)"
msgstr "Kiinnitä ruudukkoon (10px)"

#: app/templates/admin/pdf_layout.html:1726
#: app/templates/admin/quote_pdf_layout.html:1536
msgid "Toolbox"
msgstr "Työkalulaatikko"

#: app/templates/admin/pdf_layout.html:1731
#: app/templates/admin/quote_pdf_layout.html:1541
msgid "Search elements & variables..."
msgstr "Hakuelementit ja muuttujat..."

#: app/templates/admin/pdf_layout.html:1737
#: app/templates/admin/quote_pdf_layout.html:1547
msgid "Elements"
msgstr "Elementit"

#: app/templates/admin/pdf_layout.html:1740
#: app/templates/admin/quote_pdf_layout.html:1550
msgid "Variables"
msgstr "Muuttujat"

#: app/templates/admin/pdf_layout.html:1749
#: app/templates/admin/quote_pdf_layout.html:1559
msgid "Basic Elements"
msgstr "Peruselementit"

#: app/templates/admin/pdf_layout.html:1752
#: app/templates/admin/quote_pdf_layout.html:1562
msgid "Custom Text"
msgstr "Mukautettu teksti"

#: app/templates/admin/pdf_layout.html:1756
#: app/templates/admin/quote_pdf_layout.html:1566
msgid "Text"
msgstr "Teksti"

#: app/templates/admin/pdf_layout.html:1760
#: app/templates/admin/quote_pdf_layout.html:1570
msgid "Heading"
msgstr "Otsikko"

#: app/templates/admin/pdf_layout.html:1764
#: app/templates/admin/quote_pdf_layout.html:1574
msgid "Line"
msgstr "Linja"

#: app/templates/admin/pdf_layout.html:1768
#: app/templates/admin/quote_pdf_layout.html:1578
msgid "Rectangle"
msgstr "Suorakulmio"

#: app/templates/admin/pdf_layout.html:1772
#: app/templates/admin/quote_pdf_layout.html:1582
msgid "Circle"
msgstr "Ympyrä"

#: app/templates/admin/pdf_layout.html:1777
#: app/templates/admin/quote_pdf_layout.html:1587
msgid "Company Info"
msgstr "Yrityksen tiedot"

#: app/templates/admin/pdf_layout.html:1780
#: app/templates/admin/quote_pdf_layout.html:1590
#: app/templates/admin/settings.html:611 app/templates/admin/settings.html:632
#: app/templates/invoices/pdf_default.html:37
#: app/templates/quotes/pdf_default.html:37
msgid "Company Logo"
msgstr "Yrityksen logo"

#: app/templates/admin/email_templates/create.html:52
#: app/templates/admin/email_templates/edit.html:69
#: app/templates/admin/pdf_layout.html:1784
#: app/templates/admin/quote_pdf_layout.html:1594
#: app/templates/admin/settings.html:211 app/templates/leads/form.html:35
msgid "Company Name"
msgstr "Yrityksen nimi"

#: app/templates/admin/pdf_layout.html:1788
#: app/templates/admin/quote_pdf_layout.html:1598
msgid "Company Details"
msgstr "Yrityksen tiedot"

#: app/templates/admin/pdf_layout.html:1792
#: app/templates/admin/quote_pdf_layout.html:1602
#: app/templates/clients/create.html:71 app/templates/clients/edit.html:65
#: app/templates/contacts/form.html:79 app/templates/contacts/view.html:64
#: app/templates/inventory/suppliers/form.html:48
#: app/templates/inventory/suppliers/view.html:69
#: app/templates/inventory/warehouses/form.html:32
#: app/templates/inventory/warehouses/view.html:41
#: app/templates/main/help.html:245 app/templates/projects/create.html:302
#: app/templates/setup/initial_setup.html:143
msgid "Address"
msgstr "Osoite"

#: app/templates/admin/pdf_layout.html:1800
#: app/templates/admin/quote_pdf_layout.html:1610
#: app/templates/clients/create.html:67 app/templates/clients/edit.html:61
#: app/templates/contacts/form.html:42 app/templates/contacts/list.html:30
#: app/templates/contacts/list.html:54 app/templates/contacts/view.html:37
#: app/templates/inventory/suppliers/form.html:44
#: app/templates/inventory/suppliers/list.html:45
#: app/templates/inventory/suppliers/list.html:67
#: app/templates/inventory/suppliers/view.html:61
#: app/templates/invoices/pdf_default.html:45 app/templates/leads/form.html:45
#: app/templates/leads/view.html:55 app/templates/projects/create.html:298
#: app/templates/quotes/pdf_default.html:45
#: app/templates/setup/initial_setup.html:152 app/utils/pdf_generator.py:1117
msgid "Phone"
msgstr "Puhelin"

#: app/templates/admin/pdf_layout.html:1804
#: app/templates/admin/quote_pdf_layout.html:1614
#: app/templates/inventory/suppliers/form.html:52
#: app/templates/inventory/suppliers/view.html:75
#: app/templates/invoices/pdf_default.html:46
#: app/templates/quotes/pdf_default.html:46
#: app/templates/setup/initial_setup.html:156 app/utils/pdf_generator.py:1118
msgid "Website"
msgstr "Verkkosivusto"

#: app/templates/admin/pdf_layout.html:1808
#: app/templates/admin/quote_pdf_layout.html:1618
#: app/templates/inventory/suppliers/form.html:56
#: app/templates/inventory/suppliers/view.html:83
#: app/templates/invoices/pdf_default.html:48
#: app/templates/quotes/pdf_default.html:48
msgid "Tax ID"
msgstr "Verotunnus"

#: app/templates/admin/pdf_layout.html:1813
#, fuzzy
msgid "Invoice Data"
msgstr "Laskun tiedot"

#: app/templates/admin/email_templates/create.html:49
#: app/templates/admin/email_templates/edit.html:66
#: app/templates/admin/pdf_layout.html:1816
#: app/templates/client_portal/invoices.html:71
#: app/templates/payment_gateways/pay.html:11
#: app/templates/payments/view.html:155
#: app/templates/recurring_invoices/view.html:97
#: app/templates/recurring_invoices/view.html:107
#: app/templates/timer/edit_timer.html:366
#: app/templates/timer/edit_timer.html:487
msgid "Invoice Number"
msgstr "Laskun numero"

#: app/templates/admin/pdf_layout.html:1820
#, fuzzy
msgid "Invoice Date"
msgstr "Laskutettu"

#: app/templates/admin/pdf_layout.html:1824
#: app/templates/admin/quote_pdf_layout.html:1634
#: app/templates/client_portal/invoice_detail.html:35
#: app/templates/client_portal/invoices.html:73
#: app/templates/deals/activity_form.html:46
#: app/templates/invoices/create.html:35 app/templates/invoices/edit.html:30
#: app/templates/invoices/pdf_default.html:58
#: app/templates/leads/activity_form.html:46
#: app/templates/payment_gateways/pay.html:19
#: app/templates/tasks/_kanban.html:132 app/templates/tasks/_kanban.html:1271
#: app/templates/tasks/_tasks_list.html:78 app/templates/tasks/create.html:93
#: app/templates/tasks/edit.html:101 app/utils/pdf_generator.py:1128
msgid "Due Date"
msgstr "Eräpäivä"

#: app/templates/admin/pdf_layout.html:1832
#: app/templates/admin/quote_pdf_layout.html:1642
msgid "Client Info"
msgstr "Asiakastiedot"

#: app/templates/admin/pdf_layout.html:1836
#: app/templates/admin/quote_pdf_layout.html:1646
#: app/templates/clients/create.html:20 app/templates/clients/create.html:120
#: app/templates/clients/edit.html:20 app/templates/import_export/index.html:69
#: app/templates/invoices/create.html:27 app/templates/invoices/edit.html:22
#: app/templates/projects/create.html:274
msgid "Client Name"
msgstr "Asiakkaan nimi"

#: app/templates/admin/pdf_layout.html:1840
#: app/templates/admin/quote_pdf_layout.html:1650
#: app/templates/invoices/create.html:39 app/templates/invoices/edit.html:38
msgid "Client Address"
msgstr "Asiakkaan osoite"

#: app/templates/admin/pdf_layout.html:1844
#, fuzzy
msgid "Items Table"
msgstr "Lainauskohteiden taulukko"

#: app/templates/admin/pdf_layout.html:1848
#, fuzzy
msgid "Expenses Table"
msgstr "Kulut Välisumma"

#: app/templates/admin/pdf_layout.html:1852
#: app/templates/admin/quote_pdf_layout.html:1658
#: app/templates/client_portal/invoice_detail.html:82
#: app/templates/client_portal/quote_detail.html:103
#: app/templates/inventory/purchase_orders/form.html:93
#: app/templates/inventory/purchase_orders/view.html:122
#: app/templates/invoices/edit.html:346 app/templates/quotes/view.html:129
msgid "Subtotal"
msgstr "Välisumma"

#: app/templates/admin/pdf_layout.html:1856
#: app/templates/admin/quote_pdf_layout.html:1662
#: app/templates/client_portal/invoice_detail.html:87
#: app/templates/client_portal/quote_detail.html:108
#: app/templates/inventory/purchase_orders/view.html:133
#: app/templates/invoices/edit.html:351 app/templates/quotes/view.html:155
#: app/utils/pdf_generator_fallback.py:620
msgid "Tax"
msgstr "Verottaa"

#: app/templates/admin/pdf_layout.html:1860
#: app/templates/admin/quote_pdf_layout.html:1666
#: app/templates/inventory/purchase_orders/list.html:55
#: app/templates/inventory/purchase_orders/list.html:87
#: app/templates/inventory/purchase_orders/view.html:189
#: app/templates/invoices/pdf_default.html:91
#: app/templates/payments/list.html:28 app/templates/projects/goods.html:21
#: app/templates/quotes/accept.html:27 app/templates/quotes/pdf_default.html:98
#: app/utils/pdf_generator.py:1157 app/utils/pdf_generator_fallback.py:240
msgid "Total Amount"
msgstr "Kokonaismäärä"

#: app/templates/admin/pdf_layout.html:1868
#: app/templates/admin/quote_pdf_layout.html:1674
#: app/templates/client_portal/invoice_detail.html:130
#: app/templates/invoices/create.html:55 app/templates/invoices/edit.html:50
msgid "Terms"
msgstr "Ehdot"

#: app/templates/admin/pdf_layout.html:1873
#: app/templates/admin/quote_pdf_layout.html:1679
msgid "Payment & Project"
msgstr "Maksu ja projekti"

#: app/templates/admin/pdf_layout.html:1876
#: app/templates/admin/quote_pdf_layout.html:1682
msgid "Payment Date"
msgstr "Maksupäivä"

#: app/templates/admin/pdf_layout.html:1880
#: app/templates/admin/quote_pdf_layout.html:1686
msgid "Payment Method"
msgstr "Maksutapa"

#: app/templates/admin/pdf_layout.html:1884
#: app/templates/admin/quote_pdf_layout.html:1690
#: app/templates/analytics/dashboard_improved.html:136
msgid "Payment Status"
msgstr "Maksun tila"

#: app/templates/admin/pdf_layout.html:1888
#: app/templates/admin/quote_pdf_layout.html:1694
#: app/templates/invoices/edit.html:364
msgid "Amount Paid"
msgstr "Maksettu summa"

#: app/templates/admin/pdf_layout.html:1896
#: app/templates/admin/quote_pdf_layout.html:1702
#: app/templates/project_templates/create_project.html:26
#: app/templates/projects/create.html:22 app/templates/projects/edit.html:22
#: app/templates/quotes/accept.html:48
msgid "Project Name"
msgstr "Projektin nimi"

#: app/templates/admin/pdf_layout.html:1900
#: app/templates/admin/quote_pdf_layout.html:1706
#: app/templates/invoices/create.html:31 app/templates/invoices/edit.html:26
msgid "Client Email"
msgstr "Asiakkaan sähköposti"

#: app/templates/admin/pdf_layout.html:1904
#: app/templates/admin/quote_pdf_layout.html:1710
msgid "Client Phone"
msgstr "Asiakas puhelin"

#: app/templates/admin/pdf_layout.html:1912
#: app/templates/admin/quote_pdf_layout.html:1718
msgid "QR Code"
msgstr "QR-koodi"

#: app/templates/admin/pdf_layout.html:1916
#: app/templates/admin/quote_pdf_layout.html:1722
#: app/templates/inventory/stock_items/form.html:49
#: app/templates/inventory/stock_items/view.html:40
msgid "Barcode"
msgstr "Viivakoodi"

#: app/templates/admin/pdf_layout.html:1920
#: app/templates/admin/quote_pdf_layout.html:1726
msgid "Page Number"
msgstr "Sivunumero"

#: app/templates/admin/pdf_layout.html:1924
#: app/templates/admin/quote_pdf_layout.html:1730
msgid "Current Date"
msgstr "Nykyinen päivämäärä"

#: app/templates/admin/pdf_layout.html:1928
#: app/templates/admin/quote_pdf_layout.html:1734
msgid "Watermark"
msgstr "Vesileima"

#: app/templates/admin/pdf_layout.html:1932
#: app/templates/admin/quote_pdf_layout.html:1738
msgid "Bank Info"
msgstr "Pankkitiedot"

#: app/templates/admin/pdf_layout.html:1936
#: app/templates/admin/quote_pdf_layout.html:1742
#: app/templates/deals/form.html:66
#: app/templates/inventory/purchase_orders/form.html:46
#: app/templates/inventory/stock_items/form.html:53
#: app/templates/inventory/suppliers/form.html:64
#: app/templates/inventory/suppliers/view.html:94
#: app/templates/invoices/edit.html:325 app/templates/leads/form.html:79
#: app/templates/projects/add_cost.html:64
#: app/templates/projects/add_good.html:55
#: app/templates/projects/edit_cost.html:71
#: app/templates/projects/edit_good.html:55
#: app/templates/quotes/create.html:160 app/templates/quotes/edit.html:259
#: app/templates/setup/initial_setup.html:127
msgid "Currency"
msgstr "Valuutta"

#: app/templates/admin/pdf_layout.html:1940
#: app/templates/admin/quote_pdf_layout.html:1746
msgid "Decorative Image"
msgstr ""

#: app/templates/admin/pdf_layout.html:1948
#, fuzzy
msgid "Invoice Fields"
msgstr "Laskun erät"

#: app/templates/admin/pdf_layout.html:1951
#, fuzzy
msgid "Invoice number"
msgstr "Laskun numero"

#: app/templates/admin/pdf_layout.html:1955
#, fuzzy
msgid "Invoice status (draft/sent/paid/overdue)"
msgstr "Tarjouksen tila (luonnos / lähetetty / maksettu / myöhässä)"

#: app/templates/admin/pdf_layout.html:1959
#: app/templates/admin/quote_pdf_layout.html:1765
msgid "Issue date"
msgstr "Julkaisupäivä"

#: app/templates/admin/pdf_layout.html:1963
#: app/templates/admin/quote_pdf_layout.html:1769
msgid "Due date"
msgstr "Eräpäivä"

#: app/templates/admin/pdf_layout.html:1967
#: app/templates/admin/quote_pdf_layout.html:1773
msgid "Subtotal amount"
msgstr "Välisumma"

#: app/templates/admin/pdf_layout.html:1971
#: app/templates/admin/quote_pdf_layout.html:1777
msgid "Tax rate (%)"
msgstr "Veroprosentti (%)"

#: app/templates/admin/pdf_layout.html:1975
#: app/templates/admin/quote_pdf_layout.html:1781
msgid "Tax amount"
msgstr "Veron määrä"

#: app/templates/admin/pdf_layout.html:1979
#: app/templates/admin/quote_pdf_layout.html:1785
msgid "Total amount"
msgstr "Kokonaismäärä"

#: app/templates/admin/pdf_layout.html:1983
#: app/templates/admin/quote_pdf_layout.html:1789
msgid "Currency code (EUR, USD, etc)"
msgstr "Valuuttakoodi (EUR, USD jne.)"

#: app/templates/admin/pdf_layout.html:1987
#, fuzzy
msgid "Invoice notes"
msgstr "Laskun erät"

#: app/templates/admin/pdf_layout.html:1991
#: app/templates/admin/quote_pdf_layout.html:1797
msgid "Terms & conditions"
msgstr "Ehdot"

#: app/templates/admin/pdf_layout.html:1996
#: app/templates/admin/quote_pdf_layout.html:1802
msgid "Client Fields"
msgstr "Asiakaskentät"

#: app/templates/admin/pdf_layout.html:1999
#: app/templates/admin/quote_pdf_layout.html:1805
msgid "Client company name"
msgstr "Asiakkaan yrityksen nimi"

#: app/templates/admin/pdf_layout.html:2003
#: app/templates/admin/quote_pdf_layout.html:1809
msgid "Client email address"
msgstr "Asiakkaan sähköpostiosoite"

#: app/templates/admin/pdf_layout.html:2007
#: app/templates/admin/quote_pdf_layout.html:1813
msgid "Client full address"
msgstr "Asiakkaan täydellinen osoite"

#: app/templates/admin/pdf_layout.html:2011
#: app/templates/admin/quote_pdf_layout.html:1817
msgid "Client contact person"
msgstr "Asiakkaan yhteyshenkilö"

#: app/templates/admin/pdf_layout.html:2015
#: app/templates/admin/quote_pdf_layout.html:1821
msgid "Client phone number"
msgstr "Asiakkaan puhelinnumero"

#: app/templates/admin/pdf_layout.html:2020
#: app/templates/admin/quote_pdf_layout.html:1826
msgid "Payment Fields"
msgstr "Maksukentät"

#: app/templates/admin/pdf_layout.html:2023
#, fuzzy
msgid "Payment status"
msgstr "Maksun tila"

#: app/templates/admin/pdf_layout.html:2027
#, fuzzy
msgid "Payment date"
msgstr "Maksupäivä"

#: app/templates/admin/pdf_layout.html:2031
#: app/templates/admin/quote_pdf_layout.html:1837
msgid "Payment method"
msgstr "Maksutapa"

#: app/templates/admin/pdf_layout.html:2035
#: app/templates/admin/quote_pdf_layout.html:1841
msgid "Payment reference number"
msgstr "Maksun viitenumero"

#: app/templates/admin/pdf_layout.html:2039
#: app/templates/admin/quote_pdf_layout.html:1845
msgid "Amount paid"
msgstr "Maksettu summa"

#: app/templates/admin/pdf_layout.html:2043
#: app/templates/admin/quote_pdf_layout.html:1849
msgid "Outstanding amount"
msgstr "Erinomaista määrää"

#: app/templates/admin/pdf_layout.html:2047
#: app/templates/admin/quote_pdf_layout.html:1853
msgid "Payment notes"
msgstr "Maksutiedot"

#: app/templates/admin/pdf_layout.html:2052
#: app/templates/admin/quote_pdf_layout.html:1858
msgid "Project Fields"
msgstr "Projektikentät"

#: app/templates/admin/pdf_layout.html:2055
#: app/templates/admin/quote_pdf_layout.html:1861
#: app/templates/quotes/accept.html:49
msgid "Project name"
msgstr "Projektin nimi"

#: app/templates/admin/pdf_layout.html:2059
#: app/templates/admin/quote_pdf_layout.html:1865
msgid "Project code"
msgstr "Projektin koodi"

#: app/templates/admin/pdf_layout.html:2063
#: app/templates/admin/quote_pdf_layout.html:1869
msgid "Project description"
msgstr "Projektin kuvaus"

#: app/templates/admin/pdf_layout.html:2067
#: app/templates/admin/quote_pdf_layout.html:1873
msgid "Project billing reference"
msgstr "Projektin laskutusviite"

#: app/templates/admin/pdf_layout.html:2072
#: app/templates/admin/quote_pdf_layout.html:1878
msgid "Company/Settings Fields"
msgstr "Yritys/Asetuskentät"

#: app/templates/admin/pdf_layout.html:2075
#: app/templates/admin/quote_pdf_layout.html:1881
msgid "Your company name"
msgstr "Yrityksesi nimi"

#: app/templates/admin/pdf_layout.html:2079
#: app/templates/admin/quote_pdf_layout.html:1885
msgid "Your company address"
msgstr "Yrityksesi osoite"

#: app/templates/admin/pdf_layout.html:2083
#: app/templates/admin/quote_pdf_layout.html:1889
msgid "Your company email"
msgstr "Yrityksesi sähköpostiosoite"

#: app/templates/admin/pdf_layout.html:2087
#: app/templates/admin/quote_pdf_layout.html:1893
msgid "Your company phone"
msgstr "Yrityksesi puhelin"

#: app/templates/admin/pdf_layout.html:2091
#: app/templates/admin/quote_pdf_layout.html:1897
msgid "Your company website"
msgstr "Yrityksesi verkkosivusto"

#: app/templates/admin/pdf_layout.html:2095
#: app/templates/admin/quote_pdf_layout.html:1901
msgid "Your tax ID number"
msgstr "Verotunnuksesi"

#: app/templates/admin/pdf_layout.html:2099
#: app/templates/admin/quote_pdf_layout.html:1905
msgid "Your bank account info"
msgstr "Pankkitilisi tiedot"

#: app/templates/admin/pdf_layout.html:2103
#: app/templates/admin/quote_pdf_layout.html:1909
msgid "Default invoice terms"
msgstr "Laskun oletusehdot"

#: app/templates/admin/pdf_layout.html:2107
#: app/templates/admin/quote_pdf_layout.html:1913
msgid "Default invoice notes"
msgstr "Oletuslaskun huomautukset"

#: app/templates/admin/pdf_layout.html:2112
#: app/templates/admin/quote_pdf_layout.html:1918
msgid "Date/Time Fields"
msgstr "Päivämäärä/aika -kentät"

#: app/templates/admin/pdf_layout.html:2115
#: app/templates/admin/quote_pdf_layout.html:1921
msgid "Current date"
msgstr "Nykyinen päivämäärä"

#: app/templates/admin/pdf_layout.html:2119
#, fuzzy
msgid "Invoice creation date"
msgstr "Lainauksen luomispäivämäärä"

#: app/templates/admin/pdf_layout.html:2123
#, fuzzy
msgid "Invoice last update date"
msgstr "Lainaus viimeisin päivityspäivä"

#: app/templates/admin/pdf_layout.html:2128
#, fuzzy
msgid "Invoice Items Loop"
msgstr "Laskun erät"

#: app/templates/admin/pdf_layout.html:2131
msgid "All items (time + extra goods + expenses)"
msgstr ""

#: app/templates/admin/pdf_layout.html:2135
#, fuzzy
msgid "Time-based items only"
msgstr "Aikaperusteiset palvelut ja tuntityö"

#: app/templates/admin/pdf_layout.html:2139
#: app/templates/admin/quote_pdf_layout.html:1941
#: app/templates/quotes/_edit_quote_form_scripts.html:172
#: app/templates/quotes/edit.html:106
msgid "Item description"
msgstr "Tuotteen kuvaus"

#: app/templates/admin/pdf_layout.html:2143
#: app/templates/admin/quote_pdf_layout.html:1945
msgid "Item quantity"
msgstr "Tavaran määrä"

#: app/templates/admin/pdf_layout.html:2147
#: app/templates/admin/quote_pdf_layout.html:1949
msgid "Item unit price"
msgstr "Tuotteen yksikköhinta"

#: app/templates/admin/pdf_layout.html:2151
#: app/templates/admin/quote_pdf_layout.html:1953
msgid "Item total amount"
msgstr "Tuotteen kokonaismäärä"

#: app/templates/admin/pdf_layout.html:2155
#: app/templates/admin/quote_pdf_layout.html:1957
msgid "End loop"
msgstr "Lopeta silmukka"

#: app/templates/admin/pdf_layout.html:2159
#, fuzzy
msgid "Extra Goods Loop"
msgstr "Lisätavarat"

#: app/templates/admin/pdf_layout.html:2162
#, fuzzy
msgid "Loop through extra goods only"
msgstr "Projektin lisätavarat"

#: app/templates/admin/pdf_layout.html:2166
#, fuzzy
msgid "Good name"
msgstr "Roolin nimi"

#: app/templates/admin/pdf_layout.html:2170
#, fuzzy
msgid "Good total amount"
msgstr "Kokonaismäärä"

#: app/templates/admin/pdf_layout.html:2182
#: app/templates/admin/quote_pdf_layout.html:1969
msgid "Design Canvas"
msgstr "Design Canvas"

#: app/templates/admin/pdf_layout.html:2186
#: app/templates/admin/quote_pdf_layout.html:1973
msgid "Page Size:"
msgstr "Sivun koko:"

#: app/templates/admin/pdf_layout.html:2208
#: app/templates/admin/pdf_layout.html:2317
#: app/templates/admin/quote_pdf_layout.html:1995
#: app/templates/admin/quote_pdf_layout.html:2089
msgid "Zoom In"
msgstr "Lähennä"

#: app/templates/admin/pdf_layout.html:2211
#: app/templates/admin/pdf_layout.html:2310
#: app/templates/admin/quote_pdf_layout.html:1998
#: app/templates/admin/quote_pdf_layout.html:2082
msgid "Zoom Out"
msgstr "Loitonna"

#: app/templates/admin/pdf_layout.html:2215
#: app/templates/admin/quote_pdf_layout.html:2002
msgid "Delete Selected"
msgstr "Poista valitut"

#: app/templates/admin/pdf_layout.html:2228
#: app/templates/admin/quote_pdf_layout.html:2015
msgid "Properties"
msgstr "Ominaisuudet"

#: app/templates/admin/pdf_layout.html:2235
#, fuzzy
msgid "Warnings"
msgstr "Varoitus"

#: app/templates/admin/pdf_layout.html:2237
#, fuzzy
msgid "Refresh warnings"
msgstr "Päivitä sivu"

#: app/templates/admin/pdf_layout.html:2242
#, fuzzy
msgid "No warnings"
msgstr "Varoitus"

#: app/templates/admin/pdf_layout.html:2249
#: app/templates/admin/quote_pdf_layout.html:2021
msgid "Template Settings"
msgstr ""

#: app/templates/admin/pdf_layout.html:2253
#: app/templates/admin/quote_pdf_layout.html:2025
#: app/templates/user/settings.html:432
msgid "Date Format"
msgstr "Päivämäärän muoto"

#: app/templates/admin/pdf_layout.html:2259
#: app/templates/admin/quote_pdf_layout.html:2031
#, python-format
msgid "Use strftime format (e.g., %d.%m.%Y for 12.09.2025)"
msgstr ""

#: app/templates/admin/pdf_layout.html:2264
#: app/templates/admin/quote_pdf_layout.html:2036
msgid "Select an element to edit its properties"
msgstr "Valitse elementti muokataksesi sen ominaisuuksia"

#: app/templates/admin/pdf_layout.html:2276
#: app/templates/admin/pdf_layout.html:2369
#: app/templates/admin/quote_pdf_layout.html:2048
#: app/templates/admin/quote_pdf_layout.html:2141
msgid "PDF Preview"
msgstr "PDF-esikatselu"

#: app/templates/admin/pdf_layout.html:2281
#: app/templates/admin/pdf_layout.html:2282
#: app/templates/admin/quote_pdf_layout.html:2053
#: app/templates/admin/quote_pdf_layout.html:2054
msgid "Page Size"
msgstr ""

#: app/templates/admin/pdf_layout.html:2292
#: app/templates/admin/quote_pdf_layout.html:2064
msgid "Refresh Preview"
msgstr ""

#: app/templates/admin/pdf_layout.html:2295
#: app/templates/admin/pdf_layout.html:4901
#: app/templates/admin/quote_pdf_layout.html:2067
#: app/templates/admin/quote_pdf_layout.html:4439
#: app/templates/kiosk/base.html:121
msgid "Toggle Fullscreen"
msgstr ""

#: app/templates/admin/pdf_layout.html:2300
#: app/templates/admin/quote_pdf_layout.html:2072
msgid "Close Preview"
msgstr ""

#: app/templates/admin/pdf_layout.html:2314
#: app/templates/admin/quote_pdf_layout.html:2086
msgid "Zoom Level"
msgstr ""

#: app/templates/admin/pdf_layout.html:2320
#: app/templates/admin/quote_pdf_layout.html:2092
msgid "Reset Zoom"
msgstr ""

#: app/templates/admin/pdf_layout.html:2325
#: app/templates/admin/quote_pdf_layout.html:2097
msgid "Fit to Width"
msgstr ""

#: app/templates/admin/pdf_layout.html:2326
#: app/templates/admin/quote_pdf_layout.html:2098
msgid "Fit Width"
msgstr ""

#: app/templates/admin/pdf_layout.html:2328
#: app/templates/admin/quote_pdf_layout.html:2100
msgid "Fit to Height"
msgstr ""

#: app/templates/admin/pdf_layout.html:2329
#: app/templates/admin/quote_pdf_layout.html:2101
msgid "Fit Height"
msgstr ""

#: app/templates/admin/pdf_layout.html:2331
#: app/templates/admin/pdf_layout.html:2332
#: app/templates/admin/quote_pdf_layout.html:2103
#: app/templates/admin/quote_pdf_layout.html:2104
msgid "Actual Size"
msgstr ""

#: app/templates/admin/pdf_layout.html:2343
#: app/templates/admin/quote_pdf_layout.html:2115
msgid "Generating preview..."
msgstr ""

#: app/templates/admin/pdf_layout.html:2354
#: app/templates/admin/quote_pdf_layout.html:2126
msgid "Preview Error"
msgstr ""

#: app/templates/admin/pdf_layout.html:2358
#: app/templates/admin/quote_pdf_layout.html:2130
msgid "Retry"
msgstr ""

#: app/templates/admin/pdf_layout.html:2391
#: app/templates/admin/quote_pdf_layout.html:2163
msgid "Generated Code"
msgstr "Luotu koodi"

#: app/templates/admin/pdf_layout.html:3717
#: app/templates/admin/pdf_layout.html:4229
#: app/templates/admin/quote_pdf_layout.html:3267
#: app/templates/admin/quote_pdf_layout.html:3752
msgid "Change Image"
msgstr ""

#: app/templates/admin/pdf_layout.html:3717
#: app/templates/admin/quote_pdf_layout.html:3267
msgid "Upload Image"
msgstr ""

#: app/templates/admin/pdf_layout.html:3724
#: app/templates/admin/quote_pdf_layout.html:3274
msgid "Remove Image"
msgstr ""

#: app/templates/admin/pdf_layout.html:4173
#: app/templates/admin/quote_pdf_layout.html:3702
msgid "Only image files (PNG, JPG, JPEG, GIF, WEBP) are allowed"
msgstr ""

#: app/templates/admin/pdf_layout.html:4179
#: app/templates/admin/quote_pdf_layout.html:3708
msgid "File size must be less than 5MB"
msgstr ""

#: app/templates/admin/pdf_layout.html:4192
#: app/templates/admin/quote_pdf_layout.html:3718
#: app/templates/chat/channel.html:316
msgid "Uploading..."
msgstr ""

#: app/templates/admin/pdf_layout.html:4215
#: app/templates/admin/quote_pdf_layout.html:3740
msgid "Error: Image update function not found"
msgstr ""

#: app/templates/admin/pdf_layout.html:4218
#: app/templates/admin/pdf_layout.html:4223
#: app/templates/admin/quote_pdf_layout.html:3743
#: app/templates/admin/quote_pdf_layout.html:3748
msgid "Failed to upload image"
msgstr ""

#: app/templates/admin/pdf_layout.html:4247
#: app/templates/admin/quote_pdf_layout.html:3766
msgid "Are you sure you want to remove this image?"
msgstr ""

#: app/templates/admin/pdf_layout.html:4405
#: app/templates/admin/quote_pdf_layout.html:3924
msgid "Clear all elements?"
msgstr "Poistetaanko kaikki elementit?"

#: app/templates/admin/pdf_layout.html:4408
#: app/templates/admin/quote_pdf_layout.html:3927
#: app/templates/audit_logs/list.html:63
#: app/templates/components/multi_select.html:116
#: app/templates/tasks/my_tasks.html:181
#: app/templates/timer/bulk_entry.html:226 app/templates/timer/calendar.html:80
#: app/templates/timer/manual_entry.html:161
msgid "Clear"
msgstr "Selkeä"

#: app/templates/admin/pdf_layout.html:4898
#: app/templates/admin/quote_pdf_layout.html:4436
msgid "Exit Fullscreen"
msgstr ""

#: app/templates/admin/pdf_layout.html:5034
#: app/templates/admin/quote_pdf_layout.html:4572
msgid "Failed to load preview. Please try again."
msgstr ""

#: app/templates/admin/pdf_layout.html:5106
#: app/templates/admin/quote_pdf_layout.html:4648
msgid "Changing page size will reload the preview with the template for that size. Continue?"
msgstr ""

#: app/templates/admin/pdf_layout.html:5158
#: app/templates/admin/quote_pdf_layout.html:4703
msgid "Preview functionality is currently unavailable. Please check the browser console for errors."
msgstr ""

#: app/templates/admin/pdf_layout.html:7732
#: app/templates/admin/quote_pdf_layout.html:7172
msgid "Reset to defaults?"
msgstr "Palautetaanko oletusasetukset?"

#: app/templates/admin/pdf_layout.html:7734
#: app/templates/admin/quote_pdf_layout.html:7174
msgid "Reset PDF Layout"
msgstr "Palauta PDF-asettelu"

#: app/templates/admin/pdf_layout.html:7770
#: app/templates/admin/quote_pdf_layout.html:7210
msgid "Error importing template"
msgstr ""

#: app/templates/admin/quote_pdf_layout.html:3
msgid "PDF Quote Designer"
msgstr "PDF-lainaussuunnittelija"

#: app/templates/admin/quote_pdf_layout.html:1460
msgid "Visual Quote Designer"
msgstr "Visuaalinen lainaussuunnittelija"

#: app/templates/admin/quote_pdf_layout.html:1463
msgid "Drag and drop elements to design your quote layout"
msgstr "Suunnittele tarjousasettelu vetämällä ja pudottamalla elementtejä"

#: app/templates/admin/quote_pdf_layout.html:1487
#, fuzzy
msgid "Help: Quote Items Table & Saving"
msgstr "Lainauskohteiden taulukko"

#: app/templates/admin/quote_pdf_layout.html:1490
#, fuzzy
msgid "Quote Items Table:"
msgstr "Lainauskohteiden taulukko"

#: app/templates/admin/quote_pdf_layout.html:1490
msgid "Displays quote line items. Add from Invoice Data in the sidebar."
msgstr ""

#: app/templates/admin/quote_pdf_layout.html:1491
msgid "Click \"Save Design\" to persist. If the table disappears after save, try Reset to restore defaults, then re-add the Items Table."
msgstr ""

#: app/templates/admin/quote_pdf_layout.html:1492
msgid "Use \"Generate Preview\" to see how the PDF will look with real quote data."
msgstr ""

#: app/templates/admin/quote_pdf_layout.html:1623
msgid "Quote Data"
msgstr "Lainaustiedot"

#: app/templates/admin/quote_pdf_layout.html:1626
#: app/templates/client_portal/quotes.html:25
#: app/templates/client_portal/quotes.html:37
#: app/templates/quotes/_quotes_list.html:33
#: app/templates/quotes/_quotes_list.html:50
msgid "Quote Number"
msgstr "Lainausnumero"

#: app/templates/admin/quote_pdf_layout.html:1630
msgid "Quote Date"
msgstr "Lainauspäivämäärä"

#: app/templates/admin/quote_pdf_layout.html:1654
msgid "Quote Items Table"
msgstr "Lainauskohteiden taulukko"

#: app/templates/admin/quote_pdf_layout.html:1754
msgid "Quote Fields"
msgstr "Lainauskentät"

#: app/templates/admin/quote_pdf_layout.html:1757
msgid "Quote number"
msgstr "Lainausnumero"

#: app/templates/admin/quote_pdf_layout.html:1761
msgid "Quote status (draft/sent/paid/overdue)"
msgstr "Tarjouksen tila (luonnos / lähetetty / maksettu / myöhässä)"

#: app/templates/admin/quote_pdf_layout.html:1793
msgid "Quote notes"
msgstr "Lainaus muistiinpanoja"

#: app/templates/admin/quote_pdf_layout.html:1829
msgid "Quote status"
msgstr "Lainauksen tila"

#: app/templates/admin/quote_pdf_layout.html:1833
msgid "Quote accepted date"
msgstr "Tarjouksen hyväksymispäivämäärä"

#: app/templates/admin/quote_pdf_layout.html:1925
msgid "Quote creation date"
msgstr "Lainauksen luomispäivämäärä"

#: app/templates/admin/quote_pdf_layout.html:1929
msgid "Quote last update date"
msgstr "Lainaus viimeisin päivityspäivä"

#: app/templates/admin/quote_pdf_layout.html:1934
msgid "Quote Items Loop"
msgstr "Lainauskohteet Loop"

#: app/templates/admin/quote_pdf_layout.html:1937
msgid "Loop through invoice items"
msgstr "Selaa laskun kohteita"

#: app/templates/admin/quote_pdf_layout.html:5971
msgid "Align Left"
msgstr "Tasaa vasemmalle"

#: app/templates/admin/quote_pdf_layout.html:5974
msgid "Center Horizontally"
msgstr "Keskitä vaakasuunnassa"

#: app/templates/admin/quote_pdf_layout.html:5977
msgid "Align Right"
msgstr "Kohdista oikealle"

#: app/templates/admin/quote_pdf_layout.html:5980
msgid "Align Top"
msgstr "Kohdista yläosa"

#: app/templates/admin/quote_pdf_layout.html:5983
msgid "Center Vertically"
msgstr "Keskitä pystysuunnassa"

#: app/templates/admin/quote_pdf_layout.html:5986
msgid "Align Bottom"
msgstr "Tasaa alas"

#: app/templates/admin/salesman_email_mappings.html:4
msgid "Salesman Email Mappings"
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:21
msgid "Email Mappings"
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:23
msgid "Add Mapping"
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:32
#: app/templates/admin/salesman_email_mappings.html:74
#: app/templates/admin/salesman_email_mappings.html:201
msgid "Salesman Initial"
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:35
#: app/templates/admin/salesman_email_mappings.html:206
#: app/templates/user/settings.html:66
msgid "Email Address"
msgstr "Sähköpostiosoite"

#: app/templates/admin/salesman_email_mappings.html:38
#: app/templates/admin/salesman_email_mappings.html:209
msgid "Pattern/Domain"
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:63
#: app/templates/admin/salesman_email_mappings.html:230
msgid "Add Email Mapping"
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:78
msgid "1-20 letters only"
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:80
msgid "The salesman initial from client custom fields (e.g., MM for Max Mustermann)"
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:92
msgid "Direct Email Address"
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:101
#, python-brace-format
msgid "Pattern (e.g., {value}@test.de)"
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:110
msgid "Domain (e.g., test.de)"
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:116
#, python-brace-format
msgid "Will generate: {initial}@domain"
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:127
msgid "Additional notes about this mapping"
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:192
msgid "No mappings configured. Click \"Add Mapping\" to create one."
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:242
msgid "Edit Email Mapping"
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:366
#: app/templates/admin/salesman_email_mappings.html:370
msgid "Error saving mapping"
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:375
msgid "Are you sure you want to delete this mapping?"
msgstr ""

#: app/templates/admin/salesman_email_mappings.html:394
#: app/templates/admin/salesman_email_mappings.html:398
msgid "Error deleting mapping"
msgstr ""

#: app/templates/admin/settings.html:117
#, fuzzy
msgid "Time Entry Requirements"
msgstr "Ajansyöttömallit"

#: app/templates/admin/settings.html:119
msgid "Optionally require users to provide task and description when logging worked time. Enforced across web, mobile, and desktop."
msgstr ""

#: app/templates/admin/settings.html:124
msgid "Require task selection when logging time (project-based entries only)"
msgstr ""

#: app/templates/admin/settings.html:128
msgid "Require description when logging time"
msgstr ""

#: app/templates/admin/settings.html:131
msgid "Minimum description length (characters)"
msgstr ""

#: app/templates/admin/settings.html:133
msgid "Minimum number of characters required in the description field."
msgstr ""

#: app/templates/admin/settings.html:136
msgid "Default daily working hours (for new users)"
msgstr ""

#: app/templates/admin/settings.html:138
msgid "Used as the standard hours per day for overtime calculation when new users are created. Existing users keep their own setting."
msgstr ""

#: app/templates/admin/settings.html:159
msgid "Support visibility"
msgstr ""

#: app/templates/admin/settings.html:161
msgid "Remove donate and support prompts for all users with a one-time key (€25, one key per instance)."
msgstr ""

#: app/templates/admin/settings.html:164
msgid "Copy your System ID below and use it when buying the key."
msgstr ""

#: app/templates/admin/settings.html:165
#, fuzzy
msgid "Buy key"
msgstr "Avain"

#: app/templates/admin/settings.html:165
#, fuzzy
msgid "— key sent by email."
msgstr "Lähetä Sähköposti"

#: app/templates/admin/settings.html:166
msgid "Paste the code below and click Verify."
msgstr ""

#: app/templates/admin/settings.html:170 app/templates/main/about.html:220
#: app/templates/main/donate.html:50 app/templates/main/donate.html:138
#, fuzzy
msgid "Get key"
msgstr "Avain"

#: app/templates/admin/settings.html:176
msgid "Step 1: System ID"
msgstr ""

#: app/templates/admin/settings.html:183
msgid "Use this ID when purchasing your key."
msgstr ""

#: app/templates/admin/settings.html:189
msgid "Supporter instance: prompts are minimized; support entry points remain available."
msgstr ""

#: app/templates/admin/settings.html:195
msgid "Step 3: Paste code"
msgstr ""

#: app/templates/admin/settings.html:196
#, fuzzy
msgid "Enter code from email"
msgstr "Koodi, nimi, sähköposti"

#: app/templates/admin/settings.html:199
msgid "Verify and hide for everyone"
msgstr ""

#: app/templates/admin/settings.html:208
msgid "Company Branding"
msgstr "Yrityksen brändäys"

#: app/templates/admin/settings.html:243
msgid "Invoice Defaults"
msgstr "Laskun oletusasetukset"

#: app/templates/admin/settings.html:391
msgid "Backup Settings"
msgstr "Varmuuskopiointiasetukset"

#: app/templates/admin/settings.html:406
#: app/templates/integrations/list.html:74
msgid "LDAP"
msgstr ""

#: app/templates/admin/settings.html:408
msgid "LDAP authentication is configured with environment variables. Values below are read-only."
msgstr ""

#: app/templates/admin/settings.html:412
#, fuzzy
msgid "Enabled for auth"
msgstr "Käytössä"

#: app/templates/admin/settings.html:416
#, fuzzy
msgid "Host"
msgstr "Kadonnut"

#: app/templates/admin/settings.html:420 app/templates/admin/settings.html:421
#, fuzzy
msgid "SSL"
msgstr "Käytä SSL:ää"

#: app/templates/admin/settings.html:420 app/templates/admin/settings.html:422
#, fuzzy
msgid "TLS"
msgstr "Käytä TLS:ää"

#: app/templates/admin/settings.html:421 app/templates/admin/settings.html:422
#: app/templates/quotes/view.html:217 app/templates/quotes/view.html:224
msgid "on"
msgstr "päällä"

#: app/templates/admin/settings.html:421 app/templates/admin/settings.html:422
#, fuzzy
msgid "off"
msgstr "/"

#: app/templates/admin/settings.html:429
#, fuzzy
msgid "User DN"
msgstr "Käyttäjävalikko"

#: app/templates/admin/settings.html:433
#, fuzzy
msgid "User login attribute"
msgstr "Nopeammat latausajat"

#: app/templates/admin/settings.html:447
#, fuzzy
msgid "Test LDAP Connection"
msgstr "Ehdot"

#: app/templates/admin/settings.html:455
msgid "Export Settings"
msgstr "Vie asetukset"

#: app/templates/admin/settings.html:470 app/templates/kiosk/base.html:6
msgid "Kiosk Mode"
msgstr ""

#: app/templates/admin/settings.html:475
msgid "Enable Kiosk Mode"
msgstr ""

#: app/templates/admin/settings.html:479
msgid "Kiosk mode provides a simplified interface for warehouse operations with barcode scanning and time tracking. Access at"
msgstr ""

#: app/templates/admin/settings.html:484
msgid "Auto-Logout Timeout (Minutes)"
msgstr ""

#: app/templates/admin/settings.html:488
msgid "Default Movement Type"
msgstr ""

#: app/templates/admin/settings.html:490
#: app/templates/inventory/movements/form.html:32
#: app/templates/inventory/movements/list.html:24
#: app/templates/inventory/reports/movement_history.html:42
#: app/templates/inventory/stock_items/history.html:34
msgid "Adjustment"
msgstr "Säätö"

#: app/templates/admin/settings.html:491
#: app/templates/inventory/movements/form.html:33
#: app/templates/inventory/movements/list.html:25
#: app/templates/inventory/reports/movement_history.html:43
#: app/templates/inventory/stock_items/history.html:35
#: app/templates/kiosk/base.html:151
msgid "Transfer"
msgstr "Siirtää"

#: app/templates/admin/settings.html:492
#: app/templates/inventory/movements/form.html:34
#: app/templates/inventory/movements/list.html:26
#: app/templates/inventory/reports/movement_history.html:44
#: app/templates/inventory/stock_items/history.html:36
msgid "Sale"
msgstr "Myynti"

#: app/templates/admin/settings.html:493
#: app/templates/inventory/movements/form.html:35
#: app/templates/inventory/movements/list.html:27
#: app/templates/inventory/reports/movement_history.html:45
#: app/templates/inventory/stock_items/history.html:37
msgid "Rent"
msgstr "Vuokraus"

#: app/templates/admin/settings.html:494
#: app/templates/inventory/movements/form.html:36
#: app/templates/inventory/movements/list.html:28
#: app/templates/inventory/reports/movement_history.html:46
#: app/templates/inventory/stock_items/history.html:38
msgid "Purchase"
msgstr "Ostaa"

#: app/templates/admin/settings.html:500
msgid "Allow Camera-Based Barcode Scanning"
msgstr ""

#: app/templates/admin/settings.html:506
msgid "Require Reason for Stock Adjustments"
msgstr ""

#: app/templates/admin/settings.html:518
msgid "Configure the shared server-side AI helper for the web app, desktop app, and API clients. Hosted provider keys stay on the server."
msgstr ""

#: app/templates/admin/settings.html:522
#, fuzzy
msgid "Availability"
msgstr "Saatavilla"

#: app/templates/admin/settings.html:524
#, fuzzy
msgid "Use environment default"
msgstr "Laskun oletusasetukset"

#: app/templates/admin/settings.html:524
#, fuzzy
msgid "currently"
msgstr "Valuutta"

#: app/templates/admin/settings.html:530
#: app/templates/integrations/health.html:22
#: app/templates/payment_gateways/create.html:26
#: app/templates/payment_gateways/list.html:26
#: app/templates/payment_gateways/list.html:38
msgid "Provider"
msgstr ""

#: app/templates/admin/settings.html:537
#, fuzzy
msgid "Base URL"
msgstr "Kuvan URL-osoite"

#: app/templates/admin/settings.html:539
msgid "For Ollama, this is the URL from the Flask server to Ollama."
msgstr ""

#: app/templates/admin/settings.html:542
#, fuzzy
msgid "Model"
msgstr "Koodi"

#: app/templates/admin/settings.html:546
#, fuzzy
msgid "Hosted API key"
msgstr "Luo API-tunnus"

#: app/templates/admin/settings.html:547
#, fuzzy
msgid "Stored; leave blank to keep"
msgstr "Jätä tyhjäksi, jos haluat säilyttää nykyisen salasanan"

#: app/templates/admin/settings.html:547
msgid "Only required for hosted providers"
msgstr ""

#: app/templates/admin/settings.html:551
msgid "Clear stored API key"
msgstr ""

#: app/templates/admin/settings.html:557
#, fuzzy
msgid "Timeout seconds"
msgstr "Aikakatkaisu (sekuntia)"

#: app/templates/admin/settings.html:561
#, fuzzy
msgid "Context limit"
msgstr "Sisältötyyppi"

#: app/templates/admin/settings.html:566
#, fuzzy
msgid "System prompt"
msgstr "Järjestelmän rooli"

#: app/templates/admin/settings.html:571
#, fuzzy
msgid "Test AI connection"
msgstr "Ehdot"

#: app/templates/admin/settings.html:580
msgid "Privacy & Analytics"
msgstr "Yksityisyys & Analytics"

#: app/templates/admin/settings.html:604 app/templates/user/settings.html:497
msgid "Save Settings"
msgstr "Tallenna asetukset"

#: app/templates/admin/settings.html:649
msgid "Upload New Logo"
msgstr "Lataa uusi logo"

#: app/templates/admin/settings.html:663
msgid "Logo Preview"
msgstr "Logon esikatselu"

#: app/templates/admin/settings.html:712
msgid "Are you sure you want to remove the company logo?"
msgstr "Haluatko varmasti poistaa yrityksen logon?"

#: app/templates/admin/settings.html:714
msgid "Remove Logo"
msgstr "Poista logo"

#: app/templates/admin/settings.html:731
msgid "Copied"
msgstr ""

#: app/templates/admin/settings.html:745
msgid "Please enter a code."
msgstr ""

#: app/templates/admin/settings.html:760
msgid "Success. Donate UI is now hidden for everyone. Reload the page to see the change."
msgstr ""

#: app/templates/admin/settings.html:772 app/templates/admin/settings.html:835
#, fuzzy
msgid "Request failed."
msgstr "Pyydä hyväksyntää"

#: app/templates/admin/settings.html:815 app/templates/admin/settings.html:848
#, fuzzy
msgid "Testing connection..."
msgstr "Testaa kokoonpano"

#: app/templates/admin/settings.html:831
#, fuzzy
msgid "Connection failed."
msgstr "Toiminto epäonnistui"

#: app/templates/admin/settings.html:859
msgid "AI connection succeeded."
msgstr ""

#: app/templates/admin/settings.html:862 app/templates/admin/settings.html:866
#, fuzzy
msgid "AI connection failed."
msgstr "Toiminto epäonnistui"

#: app/templates/admin/telemetry.html:8
msgid "Telemetry & Analytics Dashboard"
msgstr "Telemetrian ja analyysin hallintapaneeli"

#: app/templates/admin/telemetry.html:50
#: app/templates/setup/initial_setup.html:268
msgid "Admin → Settings"
msgstr "Järjestelmänvalvoja → Asetukset"

#: app/templates/admin/user_form.html:60
msgid "Password Reset"
msgstr ""

#: app/templates/admin/user_form.html:67
#: app/templates/auth/edit_profile.html:69
msgid "Leave blank to keep current password"
msgstr "Jätä tyhjäksi, jos haluat säilyttää nykyisen salasanan"

#: app/templates/admin/user_form.html:84 app/templates/clients/edit.html:102
#: app/templates/email/client_portal_password_setup.html:72
msgid "Client Portal Access"
msgstr "Asiakasportaalin käyttö"

#: app/templates/admin/user_form.html:107
msgid "Assigned Clients (Subcontractor)"
msgstr ""

#: app/templates/admin/user_form.html:112
#, fuzzy
msgid "Assigned clients"
msgstr "Määritä roolit"

#: app/templates/admin/user_form.html:118
msgid "Hold Ctrl/Cmd to select multiple clients."
msgstr ""

#: app/templates/admin/users.html:34
msgid "Admin Access"
msgstr "Järjestelmänvalvojan käyttöoikeudet"

#: app/templates/admin/users.html:56
msgid "Migrate to new role system"
msgstr "Siirrä uuteen roolijärjestelmään"

#: app/templates/admin/users.html:57
msgid "Migrate"
msgstr "Siirrä"

#: app/templates/admin/users.html:80
msgid "Roles"
msgstr "Roolit"

#: app/templates/admin/users.html:93
msgid "No users found."
msgstr "Käyttäjiä ei löytynyt."

#: app/templates/admin/users.html:104
#, python-brace-format
msgid "Cannot delete user \"{name}\" because they have {count} time entries. Users with existing time entries cannot be deleted."
msgstr "Käyttäjää \"{name}\" ei voi poistaa, koska hänellä on {count} aikamerkintää. Käyttäjiä, joilla on olemassa olevia aikamerkintöjä, ei voida poistaa."

#: app/templates/admin/users.html:107
msgid "Cannot Delete User"
msgstr "Käyttäjää ei voi poistaa"

#: app/templates/admin/users.html:119
#, python-brace-format
msgid "Are you sure you want to delete user \"{name}\"? This action cannot be undone."
msgstr "Haluatko varmasti poistaa käyttäjän \"{name}\"? Tätä toimintoa ei voi kumota."

#: app/templates/admin/users.html:122
msgid "Delete User"
msgstr "Poista käyttäjä"

#: app/templates/admin/custom_field_definitions/form.html:7
#: app/templates/admin/custom_field_definitions/list.html:7
#: app/templates/admin/custom_field_definitions/list.html:12
msgid "Custom Field Definitions"
msgstr ""

#: app/templates/admin/custom_field_definitions/form.html:8
#: app/templates/admin/custom_field_definitions/form.html:67
#: app/templates/admin/link_templates/form.html:8
#: app/templates/admin/link_templates/form.html:73
#: app/templates/chat/index.html:124 app/templates/main/dashboard.html:791
#: app/templates/timer/calendar.html:206
msgid "Create"
msgstr ""

#: app/templates/admin/custom_field_definitions/form.html:13
msgid "Edit Custom Field Definition"
msgstr ""

#: app/templates/admin/custom_field_definitions/form.html:13
msgid "Create Custom Field Definition"
msgstr ""

#: app/templates/admin/custom_field_definitions/form.html:14
msgid "Define a global custom field that can be used across all clients"
msgstr ""

#: app/templates/admin/custom_field_definitions/form.html:24
#: app/templates/admin/custom_field_definitions/list.html:24
#: app/templates/admin/custom_field_definitions/list.html:35
#: app/templates/admin/link_templates/form.html:42
#: app/templates/admin/link_templates/list.html:26
#: app/templates/admin/link_templates/list.html:45
msgid "Field Key"
msgstr ""

#: app/templates/admin/custom_field_definitions/form.html:25
#: app/templates/admin/link_templates/form.html:43
msgid "e.g., debtor_number"
msgstr ""

#: app/templates/admin/custom_field_definitions/form.html:26
msgid "Unique identifier for this field (letters, numbers, and underscores only). Cannot be changed after creation."
msgstr ""

#: app/templates/admin/custom_field_definitions/form.html:30
#: app/templates/admin/custom_field_definitions/list.html:25
#: app/templates/admin/custom_field_definitions/list.html:38
#: app/templates/kanban/columns.html:49
msgid "Label"
msgstr "Label"

#: app/templates/admin/custom_field_definitions/form.html:31
msgid "e.g., Debtor Number"
msgstr ""

#: app/templates/admin/custom_field_definitions/form.html:32
msgid "Display name shown in client forms"
msgstr ""

#: app/templates/admin/custom_field_definitions/form.html:37
msgid "Optional help text for this field"
msgstr ""

#: app/templates/admin/custom_field_definitions/form.html:42
#: app/templates/admin/link_templates/form.html:56
msgid "Display Order"
msgstr ""

#: app/templates/admin/custom_field_definitions/form.html:44
#: app/templates/admin/link_templates/form.html:58
msgid "Lower numbers appear first"
msgstr ""

#: app/templates/admin/custom_field_definitions/form.html:50
#: app/templates/admin/custom_field_definitions/list.html:26
#: app/templates/admin/custom_field_definitions/list.html:44
msgid "Mandatory"
msgstr ""

#: app/templates/admin/custom_field_definitions/form.html:52
msgid "Required field - clients must fill this in"
msgstr ""

#: app/templates/admin/custom_field_definitions/form.html:61
msgid "Only active fields are shown in client forms"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:13
msgid "Manage global custom field definitions for clients"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:15
#: app/templates/admin/custom_field_definitions/list.html:82
msgid "Create Custom Field"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:27
#: app/templates/admin/custom_field_definitions/list.html:51
#: app/templates/admin/link_templates/list.html:28
#: app/templates/admin/link_templates/list.html:55
#: app/templates/quotes/create.html:61 app/templates/quotes/create.html:93
#: app/templates/quotes/create.html:124 app/templates/quotes/edit.html:66
#: app/templates/quotes/edit.html:141 app/templates/quotes/edit.html:198
msgid "Order"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:46
msgid "Required"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:48
#: app/templates/invoices/edit.html:748 app/templates/invoices/list.html:135
#: app/templates/invoices/view.html:514 app/templates/kiosk/dashboard.html:331
#: app/templates/kiosk/dashboard.html:347
#: app/templates/projects/archive.html:41
#: app/templates/timer/time_entries_overview.html:202
#: app/templates/timer/timer_page.html:160
#: app/templates/timer/timer_page.html:169
msgid "Optional"
msgstr "Valinnainen"

#: app/templates/admin/custom_field_definitions/list.html:80
msgid "No custom field definitions found."
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:89
msgid "How Custom Field Definitions Work"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:91
msgid "Custom field definitions allow you to create global fields that can be used across all clients. This eliminates the need to recreate the same custom fields for each client."
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:92
msgid "Features:"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:94
msgid "Define custom fields once and use them for all clients"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:95
msgid "Mark fields as mandatory to ensure they are always filled"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:96
msgid "Control field order and visibility"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:97
msgid "Link templates can be assigned to make field values clickable"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:99
#: app/templates/admin/link_templates/list.html:96
msgid "Example:"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:101
msgid "Create a field definition with key \"debtor_number\" and label \"Debtor Number\""
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:102
msgid "Mark it as mandatory if required"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:103
msgid "When creating or editing a client, this field will automatically appear"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:104
msgid "Create a link template to make the value clickable (e.g., https://erp.example.com/customer/%value%)"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:119
#, python-format
msgid "Warning: %(count)d client(s) have a value for this custom field. Deleting this field definition will remove the field value from all %(count)d client(s). Are you sure you want to delete the custom field definition \"%(label)s\"?"
msgstr ""

#: app/templates/admin/custom_field_definitions/list.html:123
msgid "Are you sure you want to delete this custom field definition?"
msgstr ""

#: app/templates/admin/email_templates/create.html:38
#: app/templates/admin/email_templates/edit.html:55
msgid "Set as default template"
msgstr "Aseta oletusmalliksi"

#: app/templates/admin/email_templates/create.html:46
#: app/templates/admin/email_templates/edit.html:63
#: app/templates/admin/email_templates/view.html:75
msgid "HTML Template"
msgstr "HTML-malli"

#: app/templates/admin/email_templates/create.html:55
#: app/templates/admin/email_templates/edit.html:72
#: app/templates/invoices/edit.html:748 app/templates/invoices/view.html:514
msgid "Custom Message"
msgstr "Mukautettu viesti"

#: app/templates/admin/email_templates/create.html:58
#: app/templates/admin/email_templates/edit.html:75
msgid "More Variables"
msgstr "Lisää muuttujia"

#: app/templates/admin/email_templates/create.html:121
#: app/templates/project_templates/create.html:107
#: app/templates/project_templates/list.html:118
msgid "Create Template"
msgstr "Luo malli"

#: app/templates/admin/email_templates/create.html:130
#: app/templates/admin/email_templates/edit.html:147
msgid "Available Variables"
msgstr "Saatavilla olevat muuttujat"

#: app/templates/admin/email_templates/create.html:137
#: app/templates/admin/email_templates/edit.html:154
msgid "Invoice Variables"
msgstr "Laskun muuttujat"

#: app/templates/admin/email_templates/create.html:160
#: app/templates/admin/email_templates/edit.html:177
msgid "Other Variables"
msgstr "Muut muuttujat"

#: app/templates/admin/email_templates/edit.html:19
#: app/templates/admin/email_templates/edit.html:31
#: app/templates/admin/email_templates/view.html:21
#: app/templates/admin/email_templates/view.html:33
#, fuzzy
msgid "Send test email"
msgstr "Lähetä testisähköposti"

#: app/templates/admin/email_templates/edit.html:20
msgid "Sends the saved template (save changes first). Uses the same rendering as a real invoice email. Default recipient can be set under Admin → Email Configuration."
msgstr ""

#: app/templates/admin/email_templates/edit.html:23
#: app/templates/admin/email_templates/view.html:25
#, fuzzy
msgid "Recipient"
msgstr "Vastaanottajan sähköposti"

#: app/templates/admin/email_templates/edit.html:27
#: app/templates/admin/email_templates/view.html:29
#, fuzzy
msgid "Invoice ID"
msgstr "Laskutettu"

#: app/templates/admin/email_templates/edit.html:138
#: app/templates/project_templates/edit.html:137
msgid "Update Template"
msgstr "Päivitä malli"

#: app/templates/admin/email_templates/edit.html:622
#: app/templates/admin/email_templates/view.html:130
#, fuzzy
msgid "Failed to send test email."
msgstr "Lähetä testisähköposti"

#: app/templates/admin/email_templates/list.html:63
msgid "No email templates found."
msgstr "Sähköpostimalleja ei löytynyt."

#: app/templates/admin/email_templates/list.html:64
msgid "Create your first email template to customize invoice emails."
msgstr "Luo ensimmäinen sähköpostimallisi mukauttaaksesi laskusähköpostiviestejä."

#: app/templates/admin/email_templates/list.html:66
msgid "Create Email Template"
msgstr "Luo sähköpostimalli"

#: app/templates/admin/email_templates/list.html:75
msgid "Delete Email Template"
msgstr "Poista sähköpostimalli"

#: app/templates/admin/email_templates/list.html:77
#: app/templates/quotes/list.html:368
#: app/templates/timer/time_entries_overview.html:388
msgid "Are you sure you want to delete"
msgstr "Haluatko varmasti poistaa"

#: app/templates/admin/email_templates/list.html:77
#: app/templates/invoices/list.html:161 app/templates/invoices/view.html:373
#: app/templates/kanban/columns.html:149
#: app/templates/timer/time_entries_overview.html:388
msgid "This action cannot be undone."
msgstr "Tätä toimintoa ei voi kumota."

#: app/templates/admin/email_templates/view.html:22
msgid "Uses the same rendering as a real invoice email. Set a default address under Admin → Email Configuration (Test recipient email)."
msgstr ""

#: app/templates/admin/email_templates/view.html:40
msgid "Template Information"
msgstr "Mallin tiedot"

#: app/templates/admin/integrations/list.html:4
msgid "Integration Setup"
msgstr ""

#: app/templates/admin/integrations/list.html:21
msgid "Configure OAuth credentials for each integration. Global integrations are shared across all users."
msgstr ""

#: app/templates/admin/integrations/list.html:34
#: app/templates/integrations/health.html:39
#: app/templates/integrations/list.html:136
#: app/templates/integrations/manage.html:561
msgid "Global"
msgstr ""

#: app/templates/admin/integrations/list.html:38
msgid "Per User"
msgstr ""

#: app/templates/admin/integrations/setup.html:4
#: app/templates/admin/integrations/setup.html:15
#: app/templates/integrations/list.html:167
msgid "Setup"
msgstr ""

#: app/templates/admin/integrations/setup.html:29
#: app/templates/integrations/manage.html:79
#: app/templates/integrations/wizard_trello.html:18
msgid "Trello API Key"
msgstr ""

#: app/templates/admin/integrations/setup.html:36
#: app/templates/integrations/manage.html:86
msgid "Get from https://trello.com/app-key"
msgstr ""

#: app/templates/admin/integrations/setup.html:39
#: app/templates/integrations/manage.html:89
msgid "Get your API key from"
msgstr ""

#: app/templates/admin/integrations/setup.html:45
#: app/templates/integrations/manage.html:95
#: app/templates/integrations/wizard_trello.html:28
msgid "Trello API Secret"
msgstr ""

#: app/templates/admin/integrations/setup.html:52
#: app/templates/admin/integrations/setup.html:91
msgid "Leave empty to keep current value"
msgstr ""

#: app/templates/admin/integrations/setup.html:54
#: app/templates/integrations/manage.html:104
msgid "Get your API secret from"
msgstr ""

#: app/templates/admin/integrations/setup.html:55
#: app/templates/integrations/manage.html:105
msgid "(shown after generating API key)"
msgstr ""

#: app/templates/admin/integrations/setup.html:62
msgid "After saving API Key and Secret, you can connect Trello using OAuth flow. The token will be generated automatically during connection."
msgstr ""

#: app/templates/admin/integrations/setup.html:72
#: app/templates/admin/integrations/setup.html:79
#: app/templates/integrations/manage.html:122
#: app/templates/integrations/manage.html:129
msgid "OAuth Client ID"
msgstr ""

#: app/templates/admin/integrations/setup.html:85
#: app/templates/integrations/manage.html:135
#: app/templates/integrations/manage.html:141
msgid "OAuth Client Secret"
msgstr ""

#: app/templates/admin/integrations/setup.html:93
#: app/templates/integrations/manage.html:144
msgid "Required for new setup. Leave empty to keep existing secret."
msgstr ""

#: app/templates/admin/integrations/setup.html:107
msgid "Leave empty for \"common\" (multi-tenant)"
msgstr ""

#: app/templates/admin/integrations/setup.html:109
#: app/templates/integrations/manage.html:160
#: app/templates/integrations/wizard_microsoft_teams.html:25
#: app/templates/integrations/wizard_outlook_calendar.html:25
msgid "Leave empty to use \"common\" (multi-tenant). Enter your Azure AD tenant ID for single-tenant apps."
msgstr ""

#: app/templates/admin/integrations/setup.html:117
#: app/templates/integrations/manage.html:168
#: app/templates/integrations/wizard_gitlab.html:11
msgid "GitLab Instance URL"
msgstr ""

#: app/templates/admin/integrations/setup.html:127
#: app/templates/integrations/manage.html:178
#: app/templates/integrations/wizard_gitlab.html:18
msgid "URL of your GitLab instance. Use \"https://gitlab.com\" for GitLab.com or your self-hosted GitLab URL."
msgstr ""

#: app/templates/admin/integrations/setup.html:134
#: app/templates/integrations/manage.html:186
#: app/templates/integrations/wizard_asana.html:36
#: app/templates/integrations/wizard_github.html:36
#: app/templates/integrations/wizard_gitlab.html:64
#: app/templates/integrations/wizard_jira.html:53
#: app/templates/integrations/wizard_microsoft_teams.html:64
#: app/templates/integrations/wizard_outlook_calendar.html:64
msgid "OAuth Redirect URI"
msgstr ""

#: app/templates/admin/integrations/setup.html:136
#: app/templates/integrations/manage.html:188
msgid "Add this URL as an authorized redirect URI in your OAuth app settings:"
msgstr ""

#: app/templates/admin/integrations/setup.html:144
#: app/templates/integrations/manage.html:196
msgid "Automatic Connection Flow"
msgstr ""

#: app/templates/admin/integrations/setup.html:147
#: app/templates/integrations/manage.html:199
msgid "After you save these credentials, users can click \"Connect Google Calendar\""
msgstr ""

#: app/templates/admin/integrations/setup.html:148
#: app/templates/integrations/manage.html:200
msgid "They will be automatically redirected to Google OAuth"
msgstr ""

#: app/templates/admin/integrations/setup.html:149
#: app/templates/integrations/manage.html:201
msgid "No manual credential entry needed - fully automatic!"
msgstr ""

#: app/templates/admin/integrations/setup.html:150
#: app/templates/integrations/manage.html:202
msgid "Each user connects their own Google Calendar account"
msgstr ""

#: app/templates/admin/integrations/setup.html:159
#: app/templates/integrations/manage.html:212
#: app/templates/integrations/manage.html:270
msgid "Save Credentials"
msgstr ""

#: app/templates/admin/integrations/setup.html:170
msgid "How Google Calendar Works"
msgstr ""

#: app/templates/admin/integrations/setup.html:174
msgid "After you save the OAuth credentials above, users can connect their Google Calendar by clicking \"Connect Google Calendar\" on the Integrations page."
msgstr ""

#: app/templates/admin/integrations/setup.html:178
msgid "They will be automatically redirected to Google to authorize access - no manual credential entry needed!"
msgstr ""

#: app/templates/admin/integrations/setup.html:182
msgid "Each user connects their own Google Calendar account (per-user integration)."
msgstr ""

#: app/templates/admin/integrations/setup.html:188
#: app/templates/integrations/manage.html:578
#: app/templates/integrations/manage.html:589
msgid "Connection Status"
msgstr ""

#: app/templates/admin/integrations/setup.html:194
msgid "View Integration"
msgstr ""

#: app/templates/admin/integrations/setup.html:200
msgid "Next Steps"
msgstr ""

#: app/templates/admin/integrations/setup.html:202
msgid "After saving credentials, connect the integration:"
msgstr ""

#: app/templates/admin/integrations/setup.html:205
msgid "Connect Integration"
msgstr ""

#: app/templates/admin/link_templates/form.html:13
msgid "Edit Link Template"
msgstr ""

#: app/templates/admin/link_templates/form.html:13
#: app/templates/admin/link_templates/list.html:15
#: app/templates/admin/link_templates/list.html:86
msgid "Create Link Template"
msgstr ""

#: app/templates/admin/link_templates/form.html:14
msgid "Configure URL template for client custom fields"
msgstr ""

#: app/templates/admin/link_templates/form.html:24
#: app/templates/project_templates/create.html:20
#: app/templates/project_templates/edit.html:20
msgid "Template Name"
msgstr ""

#: app/templates/admin/link_templates/form.html:25
msgid "e.g., ERP System Link"
msgstr ""

#: app/templates/admin/link_templates/form.html:26
msgid "A descriptive name for this link template"
msgstr ""

#: app/templates/admin/link_templates/form.html:31
msgid "Optional description"
msgstr ""

#: app/templates/admin/link_templates/form.html:35
#: app/templates/admin/link_templates/list.html:25
#: app/templates/admin/link_templates/list.html:42
msgid "URL Template"
msgstr ""

#: app/templates/admin/link_templates/form.html:36
msgid "https://example.com/customer/%value%"
msgstr ""

#: app/templates/admin/link_templates/form.html:37
#, python-brace-format
msgid "URL with {value} or %value% placeholder. Examples: https://erp.example.com/customer/{value} or https://erp.example.com/customer/%value%"
msgstr ""

#: app/templates/admin/link_templates/form.html:44
msgid "The key in the client custom_fields JSON to use"
msgstr ""

#: app/templates/admin/link_templates/form.html:48
#: app/templates/admin/link_templates/list.html:27
#: app/templates/admin/link_templates/list.html:48
#: app/templates/kanban/columns.html:50
msgid "Icon"
msgstr "Kuvake"

#: app/templates/admin/link_templates/form.html:49
msgid "fas fa-link"
msgstr ""

#: app/templates/admin/link_templates/form.html:50
msgid "Font Awesome icon class (e.g., fas fa-link)"
msgstr ""

#: app/templates/admin/link_templates/form.html:66
msgid "Only active templates are shown on client pages"
msgstr ""

#: app/templates/admin/link_templates/list.html:13
msgid "Manage URL templates for client custom fields"
msgstr ""

#: app/templates/admin/link_templates/list.html:24
#: app/templates/admin/link_templates/list.html:36
#: app/templates/admin/webhooks/form.html:23
#: app/templates/admin/webhooks/list.html:24
#: app/templates/admin/webhooks/list.html:35
#: app/templates/contacts/list.html:27 app/templates/contacts/list.html:38
#: app/templates/inventory/stock_items/form.html:27
#: app/templates/inventory/stock_items/list.html:50
#: app/templates/inventory/stock_items/list.html:63
#: app/templates/inventory/suppliers/form.html:28
#: app/templates/inventory/suppliers/list.html:42
#: app/templates/inventory/suppliers/list.html:54
#: app/templates/inventory/warehouses/form.html:28
#: app/templates/inventory/warehouses/list.html:23
#: app/templates/inventory/warehouses/list.html:34
#: app/templates/invoices/edit.html:232 app/templates/leads/list.html:50
#: app/templates/leads/list.html:62 app/templates/main/help.html:195
#: app/templates/payment_gateways/list.html:25
#: app/templates/payment_gateways/list.html:35
#: app/templates/projects/_projects_list.html:78
#: app/templates/projects/add_good.html:19
#: app/templates/projects/edit_good.html:19
#: app/templates/projects/goods.html:39 app/templates/projects/goods.html:51
#: app/templates/projects/list.html:159 app/templates/projects/view.html:428
#: app/templates/projects/view.html:440
#: app/templates/quotes/_edit_quote_form_scripts.html:232
#: app/templates/quotes/create.html:125 app/templates/quotes/edit.html:199
#: app/templates/quotes/edit.html:215
#: app/templates/recurring_invoices/list.html:23
#: app/templates/recurring_invoices/list.html:35
#: app/templates/recurring_tasks/list.html:30
#: app/templates/recurring_tasks/list.html:41
#: app/templates/reports/saved_views_list.html:27
#: app/templates/reports/saved_views_list.html:38
#: app/templates/tasks/_tasks_list.html:47
#: app/templates/workforce/dashboard.html:254
msgid "Name"
msgstr "Nimi"

#: app/templates/admin/link_templates/list.html:68
msgid "Are you sure you want to delete this link template?"
msgstr ""

#: app/templates/admin/link_templates/list.html:84
msgid "No link templates found."
msgstr ""

#: app/templates/admin/link_templates/list.html:93
msgid "How Link Templates Work"
msgstr ""

#: app/templates/admin/link_templates/list.html:95
msgid "Link templates allow you to create quick links to external systems (like ERP systems) using values from client custom fields."
msgstr ""

#: app/templates/admin/link_templates/list.html:98
msgid "Create a custom field called \"debtor_number\" on a client"
msgstr ""

#: app/templates/admin/link_templates/list.html:99
msgid "Create a link template with URL:"
msgstr ""

#: app/templates/admin/link_templates/list.html:100
msgid "Set the field key to \"debtor_number\""
msgstr ""

#: app/templates/admin/link_templates/list.html:101
msgid "When viewing the client, a link will appear that opens the ERP system with the correct customer ID"
msgstr ""

#: app/templates/admin/link_templates/list.html:103
msgid "URL Template Format:"
msgstr ""

#: app/templates/admin/link_templates/list.html:103
#, python-brace-format
msgid "Use {value} as a placeholder for the custom field value."
msgstr ""

#: app/templates/admin/permissions/list.html:8
#: app/templates/admin/permissions/list.html:13
msgid "System Permissions"
msgstr "Järjestelmän käyttöoikeudet"

#: app/templates/admin/permissions/list.html:14
msgid "All available permissions in the system"
msgstr "Kaikki järjestelmässä käytettävissä olevat käyttöoikeudet"

#: app/templates/admin/permissions/list.html:16
#: app/templates/admin/roles/form.html:10 app/templates/admin/roles/view.html:9
msgid "Back to Roles"
msgstr "Takaisin Rooleihin"

#: app/templates/admin/permissions/list.html:24
#: app/templates/admin/roles/list.html:113
#: app/templates/admin/users/roles.html:44
msgid "permissions"
msgstr "luvat"

#: app/templates/admin/permissions/list.html:38
msgid "No description available"
msgstr "Kuvausta ei ole saatavilla"

#: app/templates/admin/permissions/list.html:53
msgid "About Permissions"
msgstr "Tietoja käyttöoikeuksista"

#: app/templates/admin/permissions/list.html:55
msgid "Permissions define what actions users can perform in the system. These permissions are assigned to roles, and roles are assigned to users. This provides a flexible and granular access control system."
msgstr "Käyttöoikeudet määrittelevät, mitä toimintoja käyttäjät voivat suorittaa järjestelmässä. Nämä käyttöoikeudet on määritetty rooleille ja roolit käyttäjille. Tämä tarjoaa joustavan ja yksityiskohtaisen kulunvalvontajärjestelmän."

#: app/templates/admin/roles/form.html:17
#: app/templates/admin/roles/view.html:20
msgid "Edit Role"
msgstr "Muokkaa roolia"

#: app/templates/admin/roles/form.html:19
msgid "Create New Role"
msgstr "Luo uusi rooli"

#: app/templates/admin/roles/form.html:26
#: app/templates/admin/roles/list.html:91
msgid "Role Name"
msgstr "Roolin nimi"

#: app/templates/admin/roles/form.html:41
msgid "A unique name for this role"
msgstr "Ainutlaatuinen nimi tälle roolille"

#: app/templates/admin/roles/form.html:55
msgid "Optional description of this role"
msgstr "Valinnainen kuvaus tästä roolista"

#: app/templates/admin/roles/form.html:59
#: app/templates/admin/roles/list.html:93
#: app/templates/admin/roles/view.html:76
msgid "Permissions"
msgstr "Käyttöoikeudet"

#: app/templates/admin/roles/form.html:60
msgid "Select the permissions this role should have:"
msgstr "Valitse käyttöoikeudet, jotka tällä roolilla pitäisi olla:"

#: app/templates/admin/roles/form.html:75
#: app/templates/admin/roles/form.html:112
msgid "Toggle All"
msgstr "Vaihda kaikki päälle"

#: app/templates/admin/roles/form.html:99
msgid "Module visibility"
msgstr ""

#: app/templates/admin/roles/form.html:101
msgid "Select which modules should be hidden for this role. Hidden modules will not appear in the navigation and cannot be accessed directly."
msgstr ""

#: app/templates/admin/roles/form.html:124
msgid "Hide"
msgstr ""

#: app/templates/admin/roles/form.html:143
msgid "Update Role"
msgstr "Päivitä rooli"

#: app/templates/admin/roles/form.html:145
#: app/templates/admin/roles/list.html:18
msgid "Create Role"
msgstr "Luo rooli"

#: app/templates/admin/roles/list.html:13
msgid "Manage roles and their permissions"
msgstr "Hallitse rooleja ja niiden käyttöoikeuksia"

#: app/templates/admin/roles/list.html:17
msgid "View Permissions"
msgstr "Näytä käyttöoikeudet"

#: app/templates/admin/roles/list.html:32
msgid "Total Roles"
msgstr "Roolit yhteensä"

#: app/templates/admin/roles/list.html:46
msgid "System Roles"
msgstr "Järjestelmän roolit"

#: app/templates/admin/roles/list.html:60
msgid "Custom Roles"
msgstr "Mukautetut roolit"

#: app/templates/admin/roles/list.html:74
#: app/templates/admin/roles/view.html:48
msgid "Assigned Users"
msgstr "Määritetyt käyttäjät"

#: app/templates/admin/roles/list.html:95
#: app/templates/admin/roles/view.html:30
#: app/templates/contacts/communication_form.html:28
#: app/templates/deals/activity_form.html:25
#: app/templates/inventory/movements/list.html:57
#: app/templates/inventory/movements/list.html:79
#: app/templates/inventory/reports/movement_history.html:73
#: app/templates/inventory/reports/movement_history.html:95
#: app/templates/inventory/reservations/list.html:42
#: app/templates/inventory/reservations/list.html:64
#: app/templates/inventory/stock_items/history.html:64
#: app/templates/inventory/stock_items/history.html:81
#: app/templates/inventory/stock_items/view.html:240
#: app/templates/inventory/stock_items/view.html:250
#: app/templates/inventory/warehouses/view.html:131
#: app/templates/inventory/warehouses/view.html:145
#: app/templates/leads/activity_form.html:25
#: app/templates/workforce/dashboard.html:120
msgid "Type"
msgstr "Tyyppi"

#: app/templates/admin/roles/list.html:105
msgid "Default role"
msgstr "Oletusrooli"

#: app/templates/admin/roles/list.html:123
msgid "user"
msgstr "käyttäjä"

#: app/templates/admin/roles/list.html:126
msgid "No users"
msgstr "Ei käyttäjiä"

#: app/templates/admin/roles/list.html:136 app/templates/kanban/columns.html:88
msgid "Custom"
msgstr "Mukautettu"

#: app/templates/admin/roles/list.html:142
#: app/templates/admin/roles/view.html:65
#: app/templates/budget/dashboard.html:92
#: app/templates/client_portal/invoices.html:135
#: app/templates/client_portal/quotes.html:67
#: app/templates/contacts/list.html:58 app/templates/deals/list.html:81
#: app/templates/integrations/health.html:99 app/templates/issues/list.html:136
#: app/templates/leads/list.html:85
#: app/templates/projects/_kanban_tailwind.html:79
#: app/templates/projects/view.html:480
#: app/templates/quotes/_quotes_list.html:77
#: app/templates/reports/saved_views_list.html:61
#: app/templates/tasks/overdue.html:72
#: app/templates/timer/_time_entries_list.html:179
#: app/templates/weekly_goals/index.html:191
msgid "View"
msgstr "Näytä"

#: app/templates/admin/roles/list.html:159
msgid "Permissions for"
msgstr "Käyttöoikeudet kohteelle"

#: app/templates/admin/roles/list.html:187
msgid "No permissions assigned."
msgstr "Käyttöoikeuksia ei ole määritetty."

#: app/templates/admin/roles/list.html:194
msgid "No roles found."
msgstr "Rooleja ei löytynyt."

#: app/templates/admin/roles/list.html:202
msgid "About Roles & Permissions"
msgstr "Tietoja rooleista ja käyttöoikeuksista"

#: app/templates/admin/roles/list.html:204
msgid "Roles are collections of permissions that can be assigned to users. System roles are predefined and cannot be deleted or renamed, but custom roles can be created for your specific needs."
msgstr "Roolit ovat käyttöoikeuskokoelmia, jotka voidaan määrittää käyttäjille. Järjestelmän roolit ovat ennalta määritettyjä, eikä niitä voi poistaa tai nimetä uudelleen, mutta mukautettuja rooleja voidaan luoda tarpeitasi varten."

#: app/templates/admin/roles/list.html:211
msgid "Are you sure you want to delete the role"
msgstr "Haluatko varmasti poistaa roolin"

#: app/templates/admin/roles/list.html:213
msgid "Delete Role"
msgstr "Poista rooli"

#: app/templates/admin/roles/view.html:16
#: app/templates/client_portal/widgets/projects.html:28
msgid "No description"
msgstr "Ei kuvausta"

#: app/templates/admin/roles/view.html:27
msgid "Role Information"
msgstr "Roolitiedot"

#: app/templates/admin/roles/view.html:34
msgid "System Role"
msgstr "Järjestelmän rooli"

#: app/templates/admin/roles/view.html:38
msgid "Custom Role"
msgstr "Mukautettu rooli"

#: app/templates/admin/roles/view.html:44
msgid "Total Permissions"
msgstr "Kaikki käyttöoikeudet"

#: app/templates/admin/roles/view.html:52 app/templates/audit_logs/list.html:47
#: app/templates/audit_logs/list.html:117
#: app/templates/budget/dashboard.html:86
#: app/templates/budget/project_detail.html:279
#: app/templates/calendar/event_detail.html:172
#: app/templates/client_portal/issue_detail.html:83
#: app/templates/deals/view.html:93
#: app/templates/inventory/purchase_orders/view.html:195
#: app/templates/inventory/stock_items/view.html:182
#: app/templates/inventory/stock_items/view.html:213
#: app/templates/issues/list.html:99 app/templates/issues/list.html:133
#: app/templates/issues/view.html:165 app/templates/leads/view.html:107
#: app/templates/project_templates/view.html:94
#: app/templates/quotes/_quotes_list.html:38
#: app/templates/quotes/_quotes_list.html:73 app/templates/quotes/view.html:408
#: app/templates/reports/saved_views_list.html:30
#: app/templates/reports/saved_views_list.html:53
#: app/templates/tasks/_kanban.html:1335 app/templates/tasks/edit.html:263
#: app/templates/timer/edit_timer.html:528
msgid "Created"
msgstr "Luotu"

#: app/templates/admin/roles/view.html:59
msgid "Users with this Role"
msgstr "Käyttäjät, joilla on tämä rooli"

#: app/templates/admin/roles/view.html:70
msgid "No users assigned to this role yet."
msgstr "Tälle roolille ei ole vielä määritetty käyttäjiä."

#: app/templates/admin/roles/view.html:110
msgid "This role has no permissions assigned."
msgstr "Tälle roolille ei ole määritetty käyttöoikeuksia."

#: app/templates/admin/users/roles.html:10
msgid "Back to User"
msgstr "Takaisin käyttäjälle"

#: app/templates/admin/users/roles.html:15
msgid "Manage Roles for"
msgstr "Hallinnoi rooleja"

#: app/templates/admin/users/roles.html:20
msgid "Assign Roles"
msgstr "Määritä roolit"

#: app/templates/admin/users/roles.html:22
msgid "Select the roles this user should have. Users inherit all permissions from their assigned roles."
msgstr "Valitse roolit, jotka tällä käyttäjällä tulisi olla. Käyttäjät perivät kaikki käyttöoikeudet heille määritetyiltä rooleilta."

#: app/templates/admin/users/roles.html:54
msgid "Update Roles"
msgstr "Päivitä roolit"

#: app/templates/admin/users/roles.html:65
msgid "Current Effective Permissions"
msgstr "Nykyiset voimassa olevat käyttöoikeudet"

#: app/templates/admin/users/roles.html:67
msgid "These are all the permissions the user currently has through their roles:"
msgstr "Nämä ovat kaikki käyttöoikeudet, jotka käyttäjällä on tällä hetkellä rooliensa kautta:"

#: app/templates/admin/users/roles.html:80
msgid "No permissions (assign roles to grant permissions)"
msgstr "Ei käyttöoikeuksia (määritä rooleja lupien myöntämiseen)"

#: app/templates/admin/webhooks/form.html:8
#: app/templates/admin/webhooks/form.html:13
#: app/templates/admin/webhooks/list.html:15
msgid "Create Webhook"
msgstr "Luo Webhook"

#: app/templates/admin/webhooks/form.html:8
#: app/templates/admin/webhooks/form.html:13
msgid "Edit Webhook"
msgstr "Muokkaa Webhookia"

#: app/templates/admin/webhooks/form.html:14
msgid "Configure webhook for integrations"
msgstr "Määritä webhook integraatioita varten"

#: app/templates/admin/webhooks/form.html:36
#: app/templates/integrations/wizard_github.html:176
msgid "Webhook URL"
msgstr "Webhookin URL-osoite"

#: app/templates/admin/webhooks/form.html:40
msgid "The URL where webhook events will be sent"
msgstr "URL-osoite, johon webhook-tapahtumat lähetetään"

#: app/templates/admin/webhooks/form.html:45
#: app/templates/admin/webhooks/list.html:26
#: app/templates/admin/webhooks/list.html:44
#: app/templates/admin/webhooks/view.html:46
#: app/templates/calendar/view.html:76 app/templates/calendar/view.html:93
#: app/templates/calendar/view.html:94 app/templates/calendar/view.html:107
msgid "Events"
msgstr "Tapahtumat"

#: app/templates/admin/webhooks/form.html:58
msgid "Select which events should trigger this webhook"
msgstr "Valitse, mitkä tapahtumat käynnistävät tämän webhookin"

#: app/templates/admin/webhooks/form.html:64
#: app/templates/admin/webhooks/view.html:42
msgid "HTTP Method"
msgstr "HTTP-menetelmä"

#: app/templates/admin/webhooks/form.html:74
msgid "Content Type"
msgstr "Sisältötyyppi"

#: app/templates/admin/webhooks/form.html:83
msgid "Max Retries"
msgstr "Max Uudelleenyritykset"

#: app/templates/admin/webhooks/form.html:89
msgid "Retry Delay (seconds)"
msgstr "Uudelleenyrityksen viive (sekuntia)"

#: app/templates/admin/webhooks/form.html:95
msgid "Timeout (seconds)"
msgstr "Aikakatkaisu (sekuntia)"

#: app/templates/admin/webhooks/form.html:116
msgid "Regenerate Secret"
msgstr "Luo salaisuus uudelleen"

#: app/templates/admin/webhooks/form.html:118
msgid "Warning: Regenerating the secret will invalidate the current secret"
msgstr "Varoitus: Salaisuuden uudelleen luominen mitätöi nykyisen salaisuuden"

#: app/templates/admin/webhooks/list.html:13
msgid "Manage webhook integrations"
msgstr "Hallinnoi webhook-integraatioita"

#: app/templates/admin/webhooks/list.html:25
#: app/templates/admin/webhooks/list.html:41
#: app/templates/admin/webhooks/view.html:28
msgid "URL"
msgstr "URL-osoite"

#: app/templates/admin/webhooks/list.html:28
#: app/templates/admin/webhooks/list.html:65
#: app/templates/admin/webhooks/view.html:69
msgid "Statistics"
msgstr "Tilastot"

#: app/templates/admin/webhooks/list.html:67
#: app/templates/client_portal/invoice_detail.html:60
#: app/templates/client_portal/invoice_detail.html:69
#: app/templates/client_portal/invoice_detail.html:92
#: app/templates/client_portal/quote_detail.html:72
#: app/templates/client_portal/quote_detail.html:90
#: app/templates/client_portal/quote_detail.html:113
#: app/templates/inventory/purchase_orders/form.html:81
#: app/templates/inventory/purchase_orders/view.html:138
#: app/templates/inventory/stock_items/view.html:223
#: app/templates/inventory/stock_levels/item.html:63
#: app/templates/invoices/edit.html:356
#: app/templates/invoices/generate_from_time.html:123
#: app/templates/projects/goods.html:43 app/templates/projects/goods.html:65
#: app/templates/quotes/create.html:68 app/templates/quotes/edit.html:73
#: app/templates/quotes/view.html:105 app/templates/quotes/view.html:160
#: app/templates/reports/iterative_view.html:64
#: app/utils/pdf_generator_fallback.py:575
msgid "Total"
msgstr "Kokonais"

#: app/templates/admin/webhooks/list.html:90
msgid "No webhooks configured"
msgstr "Webhookeja ei ole määritetty"

#: app/templates/admin/webhooks/list.html:92
msgid "Create Your First Webhook"
msgstr "Luo ensimmäinen Webhook"

#: app/templates/admin/webhooks/view.html:14
msgid "Webhook details"
msgstr "Webhook-tiedot"

#: app/templates/admin/webhooks/view.html:17
#: app/templates/integrations/health.html:103
msgid "Test"
msgstr "Testata"

#: app/templates/admin/webhooks/view.html:57
msgid "Secret"
msgstr "Salaisuus"

#: app/templates/admin/webhooks/view.html:60
msgid "(truncated)"
msgstr "(typistetty)"

#: app/templates/admin/webhooks/view.html:72
msgid "Total Deliveries"
msgstr "Toimitukset yhteensä"

#: app/templates/admin/webhooks/view.html:76
msgid "Successful"
msgstr "Onnistunut"

#: app/templates/admin/webhooks/view.html:85
msgid "Last Delivery"
msgstr "Viimeinen toimitus"

#: app/templates/admin/webhooks/view.html:95
msgid "Recent Deliveries"
msgstr "Viimeaikaiset toimitukset"

#: app/templates/admin/webhooks/view.html:101
#: app/templates/admin/webhooks/view.html:111
#: app/templates/calendar/event_form.html:106
msgid "Event"
msgstr "Tapahtuma"

#: app/templates/admin/webhooks/view.html:103
#: app/templates/admin/webhooks/view.html:123
msgid "Attempt"
msgstr "Yrittää"

#: app/templates/admin/webhooks/view.html:104
#: app/templates/admin/webhooks/view.html:124
msgid "Response"
msgstr "Vastaus"

#: app/templates/admin/webhooks/view.html:105
#: app/templates/admin/webhooks/view.html:132
#: app/templates/client_portal/time_entries.html:65
msgid "Time"
msgstr "Aika"

#: app/templates/admin/webhooks/view.html:118
msgid "Retrying"
msgstr "Yritetään uudelleen"

#: app/templates/admin/webhooks/view.html:139
msgid "No deliveries yet"
msgstr "Ei toimituksia vielä"

#: app/templates/admin/webhooks/view.html:145
msgid "Send a test webhook event?"
msgstr "Lähetetäänkö webhook-testitapahtuma?"

#: app/templates/admin/webhooks/view.html:158
msgid "Test webhook sent successfully!"
msgstr "Test webhook lähetetty onnistuneesti!"

#: app/templates/admin/webhooks/view.html:161
msgid "Error:"
msgstr "Virhe:"

#: app/templates/admin/webhooks/view.html:161
#: app/templates/reports/scheduled.html:156
msgid "Unknown error"
msgstr "Tuntematon virhe"

#: app/templates/admin/webhooks/view.html:165
msgid "Error sending test webhook:"
msgstr "Virhe lähetettäessä testi webhookia:"

#: app/templates/analytics/dashboard.html:4
#: app/templates/analytics/dashboard.html:30
#: app/templates/analytics/dashboard_improved.html:3
#: app/templates/analytics/dashboard_improved.html:8
msgid "Analytics Dashboard"
msgstr "Analyticsin hallintapaneeli"

#: app/templates/analytics/dashboard.html:14
#: app/templates/analytics/dashboard_improved.html:13
#: app/templates/audit_logs/list.html:55
msgid "Last 7 days"
msgstr "Viimeiset 7 päivää"

#: app/templates/analytics/dashboard.html:15
#: app/templates/analytics/dashboard_improved.html:14
#: app/templates/audit_logs/list.html:56 app/templates/reports/index.html:39
#: app/templates/reports/index.html:47 app/templates/reports/index.html:55
msgid "Last 30 days"
msgstr "Viimeiset 30 päivää"

#: app/templates/analytics/dashboard.html:16
#: app/templates/analytics/dashboard_improved.html:15
#: app/templates/audit_logs/list.html:57
msgid "Last 90 days"
msgstr "Viimeiset 90 päivää"

#: app/templates/analytics/dashboard.html:17
#: app/templates/analytics/dashboard_improved.html:16
#: app/templates/audit_logs/list.html:58
msgid "Last year"
msgstr "Viime vuonna"

#: app/templates/analytics/dashboard.html:22
#, fuzzy
msgid "Export all charts as PNG"
msgstr "Vie JSON-muodossa"

#: app/templates/analytics/dashboard.html:23
#, fuzzy
msgid "Export Charts"
msgstr "Vie CSV"

#: app/templates/analytics/dashboard.html:31
msgid "Key metrics and insights about your time tracking"
msgstr "Tärkeimmät tiedot ja oivallukset ajan seurannasta"

#: app/templates/analytics/dashboard.html:58
#: app/templates/analytics/dashboard_improved.html:62
msgid "Avg Daily Hours"
msgstr "Keskimääräiset päivittäiset tunnit"

#: app/templates/analytics/dashboard.html:63
#, fuzzy
msgid "Regular"
msgstr "Palata"

#: app/templates/analytics/dashboard.html:63
#, fuzzy
msgid "Overtime"
msgstr "Aika"

#: app/templates/analytics/dashboard.html:73
#: app/templates/analytics/dashboard_improved.html:83
msgid "Daily Hours Trend"
msgstr "Päivittäinen tuntitrendi"

#: app/templates/analytics/dashboard.html:85
#: app/templates/analytics/mobile_dashboard.html:85
msgid "Billable vs Non-Billable"
msgstr "Laskutettava vs ei-laskutettava"

#: app/templates/analytics/dashboard.html:113
#: app/templates/analytics/dashboard_improved.html:172
msgid "Weekly Trends"
msgstr "Viikon trendit"

#: app/templates/analytics/dashboard.html:129
#, fuzzy
msgid "Hours Forecast"
msgstr "tuntia ennen"

#: app/templates/analytics/dashboard.html:131
msgid "Next 7 days based on 7-day average"
msgstr ""

#: app/templates/analytics/dashboard.html:146
#, fuzzy
msgid "Daily Regular vs Overtime"
msgstr "Maksut ajan mittaan"

#: app/templates/analytics/dashboard.html:162
#: app/templates/analytics/dashboard_improved.html:180
#: app/templates/analytics/mobile_dashboard.html:115
msgid "Hours by Time of Day"
msgstr "Tuntia kellonajan mukaan"

#: app/templates/analytics/dashboard.html:174
msgid "Project Efficiency"
msgstr "Projektin tehokkuus"

#: app/templates/analytics/dashboard.html:191
#: app/templates/analytics/dashboard_improved.html:191
#: app/templates/analytics/mobile_dashboard.html:131
msgid "User Performance"
msgstr "Käyttäjän suorituskyky"

#: app/templates/analytics/dashboard.html:219
#: app/templates/analytics/dashboard_improved.html:213
#: app/templates/analytics/mobile_dashboard.html:159
msgid "Failed to load charts. Please try again."
msgstr "Kaavioiden lataaminen epäonnistui. Yritä uudelleen."

#: app/templates/analytics/dashboard.html:220
#: app/templates/analytics/dashboard_improved.html:214
#: app/templates/analytics/mobile_dashboard.html:160
msgid "Failed to refresh charts. Please try again."
msgstr "Kaavioiden päivittäminen epäonnistui. Yritä uudelleen."

#: app/templates/analytics/dashboard.html:223
#: app/templates/analytics/dashboard_improved.html:217
#: app/templates/analytics/mobile_dashboard.html:163
msgid "Hour of Day"
msgstr "Päivän tunti"

#: app/templates/analytics/dashboard.html:224
#: app/templates/analytics/dashboard_improved.html:218
#: app/templates/analytics/mobile_dashboard.html:164
msgid "Revenue"
msgstr "Tulot"

#: app/templates/analytics/dashboard.html:499
#, fuzzy
msgid "Forecast"
msgstr "Nollaa"

#: app/templates/analytics/dashboard.html:745
msgid "Charts exported. Check your downloads."
msgstr ""

#: app/templates/analytics/dashboard.html:745
#: app/templates/analytics/dashboard_improved.html:19
#: app/templates/timer/calendar.html:49
msgid "Export"
msgstr "Viedä"

#: app/templates/analytics/dashboard_improved.html:9
msgid "Key metrics and actionable insights"
msgstr "Tärkeimmät mittarit ja käyttökelpoiset oivallukset"

#: app/templates/analytics/dashboard_improved.html:36
msgid "vs previous period"
msgstr "edelliseen kauteen verrattuna"

#: app/templates/analytics/dashboard_improved.html:45
msgid "of total"
msgstr "kokonaismäärästä"

#: app/templates/analytics/dashboard_improved.html:53
#: app/templates/analytics/dashboard_improved.html:154
msgid "Potential Revenue"
msgstr "Mahdolliset tulot"

#: app/templates/analytics/dashboard_improved.html:54
msgid "Avg rate:"
msgstr "Keskimääräinen hinta:"

#: app/templates/analytics/dashboard_improved.html:59
#: app/templates/budget/project_detail.html:165
msgid "Trend"
msgstr "Trendi"

#: app/templates/analytics/dashboard_improved.html:63
msgid "active projects"
msgstr "aktiivisia projekteja"

#: app/templates/analytics/dashboard_improved.html:70
msgid "Insights & Recommendations"
msgstr "Näkemyksiä ja suosituksia"

#: app/templates/analytics/dashboard_improved.html:86
msgid "Cumulative"
msgstr "Kumulatiivinen"

#: app/templates/analytics/dashboard_improved.html:94
msgid "Billable Distribution"
msgstr "Laskutettava jakelu"

#: app/templates/analytics/dashboard_improved.html:104
msgid "Task Status Overview"
msgstr "Tehtävän tilan yleiskatsaus"

#: app/templates/analytics/dashboard_improved.html:110
msgid "Tasks Completed"
msgstr "Tehtävät suoritettu"

#: app/templates/analytics/dashboard_improved.html:114
#: app/templates/analytics/dashboard_improved.html:222
#: app/templates/client_portal/issues.html:31 app/templates/issues/edit.html:40
#: app/templates/issues/list.html:40 app/templates/issues/view.html:101
#: app/templates/tasks/create.html:72 app/templates/tasks/create.html:86
#: app/templates/tasks/create.html:476 app/templates/tasks/edit.html:81
#: app/templates/tasks/edit.html:656 app/templates/tasks/my_tasks.html:57
#: app/templates/tasks/my_tasks.html:132 app/utils/i18n_helpers.py:17
#: app/utils/i18n_helpers.py:29
msgid "In Progress"
msgstr "Käynnissä"

#: app/templates/analytics/dashboard_improved.html:118
#: app/templates/analytics/dashboard_improved.html:223
#: app/templates/tasks/create.html:71 app/templates/tasks/create.html:86
#: app/templates/tasks/create.html:475 app/templates/tasks/edit.html:80
#: app/templates/tasks/edit.html:655 app/templates/tasks/my_tasks.html:40
#: app/templates/tasks/my_tasks.html:131 app/utils/i18n_helpers.py:16
#: app/utils/i18n_helpers.py:28
msgid "To Do"
msgstr "Tehtävää"

#: app/templates/analytics/dashboard_improved.html:124
msgid "Revenue by Project"
msgstr "Tulot projektin mukaan"

#: app/templates/analytics/dashboard_improved.html:132
msgid "Payments Over Time"
msgstr "Maksut ajan mittaan"

#: app/templates/analytics/dashboard_improved.html:144
msgid "Payment Methods"
msgstr "Maksutavat"

#: app/templates/analytics/dashboard_improved.html:148
msgid "Revenue vs Payments"
msgstr "Tulot vs maksut"

#: app/templates/analytics/dashboard_improved.html:158
msgid "Collection Rate"
msgstr "Keräysprosentti"

#: app/templates/analytics/dashboard_improved.html:184
msgid "Project Completion Rate"
msgstr "Projektin valmistumisaste"

#: app/templates/analytics/dashboard_improved.html:219
#: app/templates/analytics/mobile_dashboard.html:40
#: app/templates/main/dashboard.html:555 app/templates/main/help.html:204
#: app/templates/project_templates/view.html:39
#: app/templates/projects/_projects_list.html:95
#: app/templates/projects/add_good.html:62 app/templates/projects/edit.html:61
#: app/templates/projects/edit_good.html:62
#: app/templates/projects/goods.html:70 app/templates/projects/list.html:176
#: app/templates/reports/user_report.html:83
#: app/templates/reports/week_in_review.html:30
#: app/templates/tasks/edit.html:175
#: app/templates/timer/_time_entries_list.html:173
#: app/templates/timer/bulk_entry.html:207
#: app/templates/timer/calendar.html:199 app/templates/timer/calendar.html:883
#: app/templates/timer/edit_timer.html:322
#: app/templates/timer/edit_timer.html:469
#: app/templates/timer/manual_entry.html:153
#: app/templates/timer/time_entries_overview.html:113
#: app/templates/timer/view_timer.html:122
#: app/templates/timer/view_timer.html:126 app/templates/user/profile.html:110
msgid "Billable"
msgstr "Laskutettava"

#: app/templates/analytics/dashboard_improved.html:220
msgid "Non-Billable"
msgstr "Ei laskutettavissa"

#: app/templates/analytics/dashboard_improved.html:221
#: app/templates/contacts/communication_form.html:59
#: app/templates/deals/activity_form.html:36
#: app/templates/leads/activity_form.html:36
#: app/templates/tasks/_kanban.html:1346 app/templates/tasks/edit.html:266
#: app/templates/tasks/my_tasks.html:91 app/templates/weekly_goals/edit.html:89
#: app/templates/weekly_goals/index.html:39
#: app/templates/weekly_goals/index.html:172
#: app/templates/weekly_goals/view.html:67 app/utils/i18n_helpers.py:222
#: app/utils/i18n_helpers.py:234 app/utils/i18n_helpers.py:245
#: app/utils/i18n_helpers.py:256
msgid "Completed"
msgstr "Valmis"

#: app/templates/analytics/dashboard_improved.html:225
#: app/templates/contacts/communication_form.html:62
#: app/templates/inventory/purchase_orders/list.html:28
#: app/templates/inventory/purchase_orders/list.html:84
#: app/templates/inventory/purchase_orders/view.html:45
#: app/templates/inventory/reservations/list.html:25
#: app/templates/inventory/reservations/list.html:84
#: app/templates/issues/edit.html:43 app/templates/issues/list.html:43
#: app/templates/issues/view.html:104 app/templates/projects/archive.html:68
#: app/templates/tasks/create.html:75 app/templates/tasks/create.html:86
#: app/templates/tasks/create.html:479 app/templates/tasks/edit.html:84
#: app/templates/tasks/edit.html:659 app/templates/tasks/my_tasks.html:135
#: app/templates/weekly_goals/edit.html:91
#: app/templates/weekly_goals/view.html:73 app/utils/i18n_helpers.py:20
#: app/utils/i18n_helpers.py:32 app/utils/i18n_helpers.py:68
#: app/utils/i18n_helpers.py:80 app/utils/i18n_helpers.py:247
#: app/utils/i18n_helpers.py:258
msgid "Cancelled"
msgstr "Peruutettu"

#: app/templates/analytics/dashboard_improved.html:226
msgid "Completion Rate (%)"
msgstr "Valmistumisaste (%)"

#: app/templates/analytics/mobile_dashboard.html:20
msgid "Mobile insights overview"
msgstr "Mobiilitilastojen yleiskatsaus"

#: app/templates/analytics/mobile_dashboard.html:58
msgid "Daily Avg"
msgstr "Päivittäinen keskim"

#: app/templates/analytics/mobile_dashboard.html:70
msgid "Daily Hours"
msgstr "Päivittäiset tunnit"

#: app/templates/analytics/mobile_dashboard.html:100
msgid "Top Projects"
msgstr "Huippuprojektit"

#: app/templates/approvals/list.html:4 app/templates/approvals/list.html:8
#: app/templates/approvals/list.html:13 app/templates/approvals/view.html:8
#: app/templates/client_portal/approvals.html:4
#: app/templates/client_portal/approvals.html:14
msgid "Time Entry Approvals"
msgstr ""

#: app/templates/approvals/list.html:14
#: app/templates/client_portal/approvals.html:15
msgid "Review and approve time entries"
msgstr ""

#: app/templates/approvals/list.html:23
#: app/templates/client_portal/widgets/pending_actions.html:9
#: app/templates/invoice_approvals/list.html:4
msgid "Pending Approvals"
msgstr ""

#: app/templates/approvals/list.html:33 app/templates/approvals/list.html:95
#: app/templates/client_portal/approvals.html:86
#: app/templates/components/offline_indicator.html:66
#: app/templates/invoices/generate_from_time.html:39
#: app/templates/invoices/generate_from_time.html:57
#: app/templates/timer/view_timer.html:4 app/templates/timer/view_timer.html:14
msgid "Time Entry"
msgstr "Ajan sisääntulo"

#: app/templates/approvals/list.html:37 app/templates/approvals/view.html:86
#: app/templates/invoice_approvals/list.html:31
msgid "Requested by"
msgstr ""

#: app/templates/approvals/list.html:38 app/templates/approvals/view.html:31
#: app/templates/client_portal/approvals.html:132
#: app/templates/project_templates/view.html:74
#: app/templates/projects/time_entries_overview.html:60
#: app/templates/reports/iterative_view.html:33
#: app/templates/reports/iterative_view.html:65
#: app/templates/reports/iterative_view.html:80
#: app/templates/reports/time_entries_report.html:85
#: app/templates/reports/unpaid_hours_report.html:92
#: app/templates/tasks/edit.html:243 app/templates/tasks/edit.html:255
#: app/templates/timer/calendar.html:877 app/templates/user/settings.html:349
#: app/templates/user/settings.html:364
msgid "hours"
msgstr "tuntia"

#: app/templates/approvals/list.html:46 app/templates/approvals/view.html:46
#: app/templates/client_portal/time_entries.html:88
#: app/templates/clients/view.html:377 app/templates/main/dashboard.html:89
#: app/templates/main/dashboard.html:354 app/templates/main/search.html:49
#: app/templates/timer/manual_entry.html:29
#: app/templates/timer/timer_page.html:57
#: app/templates/weekly_goals/view.html:186
msgid "Direct"
msgstr ""

#: app/templates/approvals/list.html:54 app/templates/approvals/view.html:132
#: app/templates/invoice_approvals/list.html:39
#: app/templates/invoice_approvals/view.html:108
#: app/templates/quotes/view.html:209 app/templates/quotes/view.html:550
#: app/templates/workforce/dashboard.html:76
#: app/templates/workforce/dashboard.html:181
msgid "Approve"
msgstr "Hyväksyä"

#: app/templates/approvals/list.html:58 app/templates/approvals/list.html:140
#: app/templates/approvals/view.html:136 app/templates/approvals/view.html:159
#: app/templates/invoice_approvals/list.html:43
#: app/templates/invoice_approvals/list.html:86
#: app/templates/invoice_approvals/view.html:112
#: app/templates/quotes/view.html:210 app/templates/quotes/view.html:252
#: app/templates/quotes/view.html:568 app/templates/workforce/dashboard.html:81
#: app/templates/workforce/dashboard.html:186
msgid "Reject"
msgstr "Hylätä"

#: app/templates/approvals/list.html:75
msgid "No pending approvals"
msgstr ""

#: app/templates/approvals/list.html:76
msgid "All time entries have been reviewed."
msgstr ""

#: app/templates/approvals/list.html:85
msgid "My Requests"
msgstr ""

#: app/templates/approvals/list.html:116
msgid "No pending requests"
msgstr ""

#: app/templates/approvals/list.html:117
msgid "You have no time entry approval requests."
msgstr ""

#: app/templates/approvals/list.html:128 app/templates/approvals/view.html:147
msgid "Reject Time Entry"
msgstr ""

#: app/templates/approvals/list.html:134 app/templates/approvals/view.html:153
msgid "Reason for rejection"
msgstr ""

#: app/templates/approvals/view.html:4 app/templates/approvals/view.html:9
#: app/templates/approvals/view.html:14
#: app/templates/invoice_approvals/view.html:3
#: app/templates/invoice_approvals/view.html:8
msgid "Approval Details"
msgstr ""

#: app/templates/approvals/view.html:15
msgid "Review time entry approval request"
msgstr ""

#: app/templates/approvals/view.html:23
#: app/templates/reports/unpaid_hours_report.html:114
#: app/templates/timer/calendar.html:217 app/templates/timer/calendar.html:799
#: app/templates/timer/calendar.html:803
msgid "Time Entry Details"
msgstr ""

#: app/templates/approvals/view.html:26 app/templates/timer/edit_timer.html:538
msgid "Entry ID"
msgstr ""

#: app/templates/approvals/view.html:71
msgid "Approval Information"
msgstr ""

#: app/templates/approvals/view.html:90
msgid "Requested at"
msgstr ""

#: app/templates/approvals/view.html:95 app/templates/quotes/view.html:215
msgid "Approved by"
msgstr "Hyväksynyt"

#: app/templates/approvals/view.html:101
#: app/templates/invoice_approvals/view.html:88
msgid "Approved at"
msgstr ""

#: app/templates/approvals/view.html:107
#, fuzzy
msgid "Request comment"
msgstr "Lähetä kommentti"

#: app/templates/approvals/view.html:113
#, fuzzy
msgid "Approval comment"
msgstr "Lähetä kommentti"

#: app/templates/approvals/view.html:119
#, fuzzy
msgid "Rejection reason"
msgstr "Hylkäämisen syy"

#: app/templates/audit_logs/list.html:14
msgid "Track who changed what and when"
msgstr "Seuraa kuka muutti mitä ja milloin"

#: app/templates/audit_logs/list.html:19
#: app/templates/projects/time_entries_overview.html:28
#: app/templates/reports/builder.html:83
#: app/templates/timer/time_entries_overview.html:31
msgid "Filters"
msgstr "Suodattimet"

#: app/templates/audit_logs/list.html:22
msgid "Entity Type"
msgstr "Entiteettityyppi"

#: app/templates/audit_logs/list.html:24
#: app/templates/inventory/movements/list.html:23
#: app/templates/inventory/reports/movement_history.html:41
#: app/templates/inventory/stock_items/history.html:33
#: app/templates/tasks/my_tasks.html:162
msgid "All Types"
msgstr "Kaikki tyypit"

#: app/templates/audit_logs/list.html:31 app/templates/audit_logs/list.html:32
msgid "Entity ID"
msgstr "Entiteetin tunnus"

#: app/templates/audit_logs/list.html:37
#: app/templates/reports/time_entries_report.html:27
#: app/templates/timer/time_entries_overview.html:69
msgid "All Users"
msgstr "Kaikki käyttäjät"

#: app/templates/audit_logs/list.html:44 app/templates/audit_logs/list.html:77
#: app/templates/audit_logs/list.html:97 app/templates/deals/view.html:194
#: app/templates/deals/view.html:206
#: app/templates/inventory/purchase_orders/form.html:84
#: app/templates/invoices/edit.html:77 app/templates/invoices/edit.html:165
#: app/templates/invoices/edit.html:238 app/templates/quotes/create.html:99
#: app/templates/quotes/create.html:131 app/templates/quotes/edit.html:147
#: app/templates/quotes/edit.html:205
msgid "Action"
msgstr "Toiminta"

#: app/templates/audit_logs/list.html:46
msgid "All Actions"
msgstr "Kaikki toiminnot"

#: app/templates/audit_logs/list.html:48 app/templates/deals/view.html:97
#: app/templates/reports/saved_views_list.html:31
#: app/templates/reports/saved_views_list.html:56
#: app/templates/tasks/edit.html:264
msgid "Updated"
msgstr "Päivitetty"

#: app/templates/audit_logs/list.html:49
msgid "Deleted"
msgstr "Poistettu"

#: app/templates/audit_logs/list.html:53
msgid "Time Range"
msgstr "Aikaväli"

#: app/templates/audit_logs/list.html:64
#: app/templates/client_portal/time_entries.html:50
#: app/templates/deals/list.html:39
#: app/templates/inventory/adjustments/list.html:43
#: app/templates/inventory/movements/list.html:45
#: app/templates/inventory/purchase_orders/list.html:41
#: app/templates/inventory/reports/movement_history.html:57
#: app/templates/inventory/reports/turnover.html:29
#: app/templates/inventory/reports/valuation.html:39
#: app/templates/inventory/reservations/list.html:30
#: app/templates/inventory/stock_items/history.html:49
#: app/templates/inventory/stock_items/list.html:40
#: app/templates/inventory/stock_levels/list.html:38
#: app/templates/inventory/stock_levels/warehouse.html:36
#: app/templates/inventory/suppliers/list.html:32
#: app/templates/inventory/transfers/list.html:29
#: app/templates/leads/list.html:39
#: app/templates/project_templates/list.html:37
#: app/templates/reports/time_entries_report.html:78
#: app/templates/workforce/dashboard.html:36
msgid "Filter"
msgstr "Suodattaa"

#: app/templates/audit_logs/list.html:75 app/templates/audit_logs/list.html:87
#: app/templates/deals/view.html:192 app/templates/deals/view.html:202
msgid "Timestamp"
msgstr "Aikaleima"

#: app/templates/audit_logs/list.html:78 app/templates/audit_logs/list.html:100
msgid "Entity"
msgstr "Entiteetti"

#: app/templates/audit_logs/list.html:79 app/templates/audit_logs/list.html:133
#: app/templates/deals/view.html:195 app/templates/deals/view.html:207
msgid "Field"
msgstr "Ala"

#: app/templates/audit_logs/list.html:80 app/templates/audit_logs/list.html:140
#: app/templates/budget/project_detail.html:171
#: app/templates/clients/view.html:30 app/templates/deals/view.html:196
#: app/templates/deals/view.html:210 app/templates/projects/view.html:54
#: app/templates/tasks/view.html:21
msgid "Change"
msgstr "Muuttaa"

#: app/templates/audit_logs/list.html:129 app/templates/audit_logs/view.html:76
#: app/templates/inventory/adjustments/form.html:46
#: app/templates/inventory/adjustments/list.html:60
#: app/templates/inventory/adjustments/list.html:81
#: app/templates/inventory/movements/form.html:104
#: app/templates/inventory/movements/list.html:61
#: app/templates/inventory/movements/list.html:144
#: app/templates/inventory/reports/movement_history.html:77
#: app/templates/inventory/reports/movement_history.html:164
#: app/templates/inventory/stock_items/history.html:68
#: app/templates/inventory/stock_items/history.html:150
#: app/templates/inventory/stock_items/view.html:243
#: app/templates/inventory/stock_items/view.html:259
#: app/templates/inventory/warehouses/view.html:133
#: app/templates/inventory/warehouses/view.html:153
#: app/templates/kiosk/dashboard.html:192
#: app/templates/workforce/dashboard.html:80
#: app/templates/workforce/dashboard.html:185
msgid "Reason"
msgstr "Syy"

#: app/templates/audit_logs/view.html:22
msgid "Change Information"
msgstr "Muuta tietoja"

#: app/templates/audit_logs/view.html:85
msgid "Entity Context"
msgstr ""

#: app/templates/audit_logs/view.html:98
msgid "TimeEntry Created"
msgstr ""

#: app/templates/audit_logs/view.html:107
msgid "Entry Owner"
msgstr ""

#: app/templates/audit_logs/view.html:119
msgid "Field Change Details"
msgstr ""

#: app/templates/audit_logs/view.html:144
msgid "Full Entity State"
msgstr ""

#: app/templates/audit_logs/view.html:148
msgid "Before Change"
msgstr ""

#: app/templates/audit_logs/view.html:161
msgid "After Change"
msgstr ""

#: app/templates/audit_logs/view.html:178
msgid "Request Information"
msgstr "Pyydä tietoja"

#: app/templates/auth/change_password.html:8
msgid "Update your password."
msgstr ""

#: app/templates/auth/change_password.html:21
msgid "Current Password"
msgstr ""

#: app/templates/auth/change_password.html:26
msgid "New Password"
msgstr ""

#: app/templates/auth/change_password.html:31
msgid "Confirm New Password"
msgstr ""

#: app/templates/auth/change_password.html:39
msgid "Change Password"
msgstr ""

#: app/templates/auth/edit_profile.html:87 app/templates/main/about.html:156
msgid "Security"
msgstr "Turvallisuus"

#: app/templates/auth/edit_profile.html:89
msgid "Manage two-factor authentication for your account."
msgstr ""

#: app/templates/auth/edit_profile.html:92 app/templates/auth/two_factor.html:6
#: app/templates/auth/two_factor_setup.html:3
#: app/templates/auth/two_factor_setup.html:8
#, fuzzy
msgid "Two-factor authentication"
msgstr "OIDC/SSO (yrityksen todennus)"

#: app/templates/auth/edit_profile.html:183
msgid "Please fill both password fields or leave both empty"
msgstr ""

#: app/templates/auth/edit_profile.html:193
#: app/templates/client_portal/set_password.html:55
msgid "Password must be at least 8 characters long"
msgstr "Salasanan tulee olla vähintään 8 merkkiä pitkä"

#: app/templates/auth/edit_profile.html:202
msgid "Passwords do not match"
msgstr ""

#: app/templates/auth/forgot_password.html:6
#, fuzzy
msgid "Forgot password"
msgstr "Portaalin salasana"

#: app/templates/auth/forgot_password.html:19
#, fuzzy
msgid "Reset your password"
msgstr "Aseta salasanasi"

#: app/templates/auth/forgot_password.html:21
msgid "Enter your username or email address. If an account matches and email is configured, we will send you a reset link."
msgstr ""

#: app/templates/auth/forgot_password.html:27
#, fuzzy
msgid "Username or email"
msgstr "Ei käyttäjätunnuksia tai sähköpostiosoitteita"

#: app/templates/auth/forgot_password.html:30
msgid "your-username or you@example.com"
msgstr ""

#: app/templates/auth/forgot_password.html:32
#, fuzzy
msgid "Send reset link"
msgstr "Lähetä testisähköposti"

#: app/templates/auth/forgot_password.html:35
#: app/templates/auth/reset_password.html:40
#: app/templates/auth/two_factor.html:35
#, fuzzy
msgid "Back to sign in"
msgstr "Takaisin järjestelmänvalvojaan"

#: app/templates/auth/login.html:6 app/templates/errors/403.html:27
msgid "Login"
msgstr "Kirjaudu sisään"

#: app/templates/auth/login.html:31 app/templates/setup/initial_setup.html:32
msgid "Track time. Stay organized."
msgstr "Seuraa aikaa. Pysy järjestyksessä."

#: app/templates/auth/login.html:47
msgid "Sign in to your account"
msgstr "Kirjaudu tilillesi"

#: app/templates/auth/login.html:50
#, fuzzy
msgid "Demo credentials"
msgstr "Tuotteen tiedot"

#: app/templates/auth/login.html:72
#, fuzzy
msgid "Forgot your password?"
msgstr "Aseta salasanasi"

#: app/templates/auth/login.html:79
#, fuzzy
msgid "LDAP authentication is enabled"
msgstr "Todennusmenetelmä"

#: app/templates/auth/login.html:82 app/templates/client_portal/login.html:60
#: app/templates/kiosk/login.html:153
msgid "Sign in"
msgstr "Kirjaudu sisään"

#: app/templates/auth/login.html:85
msgid "Use the demo credentials above."
msgstr ""

#: app/templates/auth/login.html:87
msgid "Tip: Enter a new username to create your account."
msgstr "Vinkki: Luo tili antamalla uusi käyttäjätunnus."

#: app/templates/auth/login.html:96
msgid "Or continue with"
msgstr "Tai jatka eteenpäin"

#: app/templates/auth/login.html:101
msgid "Single Sign-On"
msgstr "Kertakirjautuminen"

#: app/templates/auth/profile.html:6
msgid "Edit Profile"
msgstr "Muokkaa profiilia"

#: app/templates/auth/profile.html:53 app/templates/user/profile.html:75
msgid "Member Since"
msgstr "Jäsen vuodesta"

#: app/templates/auth/emails/password_reset.html:12
#: app/templates/auth/reset_password.html:6
#, fuzzy
msgid "Reset password"
msgstr "Aseta salasana"

#: app/templates/auth/reset_password.html:19
#, fuzzy
msgid "Choose a new password"
msgstr "Aseta salasana"

#: app/templates/auth/reset_password.html:21
#, fuzzy
msgid "Enter a new password for your account."
msgstr "Aseta salasana asiakasportaalitilillesi"

#: app/templates/auth/reset_password.html:27
#, fuzzy
msgid "New password"
msgstr "Aseta salasana"

#: app/templates/auth/reset_password.html:30
#, fuzzy
msgid "At least 8 characters"
msgstr "Salasanan tulee olla vähintään 8 merkkiä pitkä"

#: app/templates/auth/reset_password.html:32
#, fuzzy
msgid "Confirm password"
msgstr "Vahvista salasana"

#: app/templates/auth/reset_password.html:35
#, fuzzy
msgid "Repeat your new password"
msgstr "Aseta salasanasi"

#: app/templates/auth/reset_password.html:37
#, fuzzy
msgid "Update password"
msgstr "Aseta salasana"

#: app/templates/auth/two_factor.html:19
#, fuzzy
msgid "Enter authentication code"
msgstr "Todennusmenetelmä"

#: app/templates/auth/two_factor.html:21
msgid "Open your authenticator app and enter the 6-digit code."
msgstr ""

#: app/templates/auth/two_factor.html:27
#: app/templates/inventory/suppliers/list.html:41
#: app/templates/inventory/suppliers/list.html:53
#: app/templates/inventory/suppliers/view.html:26
#: app/templates/inventory/warehouses/list.html:22
#: app/templates/inventory/warehouses/list.html:33
#: app/templates/inventory/warehouses/view.html:26
#: app/templates/workforce/dashboard.html:255
msgid "Code"
msgstr "Koodi"

#: app/templates/auth/two_factor.html:32
msgid "Verify"
msgstr ""

#: app/templates/auth/two_factor_setup.html:10
msgid "Add an extra layer of security to your account using a TOTP authenticator app (Google Authenticator, Authy, 1Password, etc.)."
msgstr ""

#: app/templates/auth/two_factor_setup.html:18
#, fuzzy
msgid "Two-factor authentication is enabled for your account."
msgstr "Asiakasportaalin käyttöoikeus ei ole käytössä tililläsi."

#: app/templates/auth/two_factor_setup.html:26
msgid "Enter a current code to disable"
msgstr ""

#: app/templates/auth/two_factor_setup.html:29
#, fuzzy
msgid "Disable 2FA"
msgstr "Ei käytössä"

#: app/templates/auth/two_factor_setup.html:34
msgid "Two-factor authentication is currently disabled."
msgstr ""

#: app/templates/auth/two_factor_setup.html:40
msgid "A secret will be generated when you enable 2FA."
msgstr ""

#: app/templates/auth/two_factor_setup.html:44
msgid "1) Add to your authenticator app"
msgstr ""

#: app/templates/auth/two_factor_setup.html:46
msgid "If you cannot scan a QR code, you can manually enter this secret:"
msgstr ""

#: app/templates/auth/two_factor_setup.html:52
msgid "Provisioning URI:"
msgstr ""

#: app/templates/auth/two_factor_setup.html:63
msgid "2) Verify and enable"
msgstr ""

#: app/templates/auth/two_factor_setup.html:64
#, fuzzy
msgid "Enter the 6-digit code"
msgstr "Luotu koodi"

#: app/templates/auth/two_factor_setup.html:67
#, fuzzy
msgid "Enable 2FA"
msgstr "Käytössä"

#: app/templates/auth/emails/password_reset.html:9
msgid "A password reset was requested for your TimeTracker account."
msgstr ""

#: app/templates/auth/emails/password_reset.html:16
msgid "If the button does not work, copy and paste this link into your browser:"
msgstr ""

#: app/templates/auth/emails/password_reset.html:20
msgid "If you did not request this, you can ignore this email."
msgstr ""

#: app/templates/budget/dashboard.html:12
msgid "Budget Alerts & Forecasting"
msgstr "Budjettihälytykset ja ennusteet"

#: app/templates/budget/dashboard.html:13
msgid "Monitor project budgets and forecast completion"
msgstr "Tarkkaile projektin budjetteja ja ennakoi valmistumista"

#: app/templates/budget/dashboard.html:30
msgid "Unacknowledged Alerts"
msgstr "Hyväksymättömät hälytykset"

#: app/templates/budget/dashboard.html:39
msgid "Critical Alerts"
msgstr "Kriittiset hälytykset"

#: app/templates/budget/dashboard.html:48
msgid "Projects with Budgets"
msgstr "Projektit budjeteilla"

#: app/templates/budget/dashboard.html:57
msgid "Warning Alerts"
msgstr "Varoitusilmoitukset"

#: app/templates/budget/dashboard.html:66
#: app/templates/budget/project_detail.html:259
msgid "Active Alerts"
msgstr "Aktiiviset hälytykset"

#: app/templates/budget/dashboard.html:96
#: app/templates/budget/project_detail.html:284
msgid "Acknowledge"
msgstr "Tunnusta"

#: app/templates/budget/dashboard.html:110
msgid "Project Budget Status"
msgstr "Projektin budjetin tila"

#: app/templates/budget/dashboard.html:117
#: app/templates/projects/_projects_list.html:109
#: app/templates/projects/dashboard.html:130
#: app/templates/projects/dashboard.html:373
#: app/templates/projects/list.html:190
msgid "Budget"
msgstr "Budjetti"

#: app/templates/budget/dashboard.html:118
#: app/templates/budget/project_detail.html:39
#: app/templates/projects/dashboard.html:373
#: app/templates/projects/view.html:264
msgid "Consumed"
msgstr "Kulutettu"

#: app/templates/budget/dashboard.html:119
#: app/templates/budget/project_detail.html:48
#: app/templates/main/dashboard.html:437
#: app/templates/projects/dashboard.html:134
#: app/templates/projects/dashboard.html:373
#: app/templates/projects/view.html:268
#: app/templates/workforce/dashboard.html:123
msgid "Remaining"
msgstr "Jäljellä"

#: app/templates/budget/dashboard.html:120 app/templates/projects/view.html:433
#: app/templates/projects/view.html:473 app/templates/tasks/_kanban.html:112
#: app/templates/tasks/_kanban.html:1281
#: app/templates/tasks/_tasks_list.html:93 app/templates/tasks/edit.html:159
#: app/templates/tasks/my_tasks.html:312 app/templates/tasks/overdue.html:62
#: app/templates/weekly_goals/index.html:95
#: app/templates/weekly_goals/index.html:205
#: app/templates/weekly_goals/view.html:82
msgid "Progress"
msgstr "Edistyminen"

#: app/templates/budget/dashboard.html:137 app/templates/projects/view.html:271
msgid "over"
msgstr "yli"

#: app/templates/budget/dashboard.html:153
#: app/templates/budget/project_detail.html:48
#: app/templates/budget/project_detail.html:65 app/utils/i18n_helpers.py:268
msgid "Over Budget"
msgstr "Yli budjetin"

#: app/templates/budget/dashboard.html:157
#: app/templates/budget/project_detail.html:66
#: app/templates/projects/view.html:283 app/utils/i18n_helpers.py:275
#: app/utils/i18n_helpers.py:281
msgid "Critical"
msgstr "Kriittinen"

#: app/templates/budget/dashboard.html:165
#: app/templates/budget/project_detail.html:68
#: app/templates/projects/view.html:291
msgid "Healthy"
msgstr "Terve"

#: app/templates/budget/dashboard.html:180
#: app/templates/budget/dashboard.html:197
msgid "No projects with budgets found"
msgstr "Budjetteja sisältäviä projekteja ei löytynyt"

#: app/templates/budget/dashboard.html:237
#: app/templates/budget/project_detail.html:409
msgid "Alert acknowledged successfully"
msgstr "Hälytys kuitattu onnistuneesti"

#: app/templates/budget/dashboard.html:242
#: app/templates/budget/project_detail.html:414
msgid "Failed to acknowledge alert"
msgstr "Hälytyksen kuittaus epäonnistui"

#: app/templates/budget/project_detail.html:8
msgid "Budget Analysis & Forecasting"
msgstr "Budjetin analyysi ja ennustaminen"

#: app/templates/budget/project_detail.html:13
msgid "Back to Dashboard"
msgstr "Takaisin hallintapaneeliin"

#: app/templates/budget/project_detail.html:17
#: app/templates/projects/_projects_list.html:146
#: app/templates/projects/list.html:228 app/templates/quotes/view.html:182
msgid "View Project"
msgstr "Näytä projekti"

#: app/templates/budget/project_detail.html:30
#: app/templates/projects/view.html:260
msgid "Total Budget"
msgstr "Kokonaisbudjetti"

#: app/templates/budget/project_detail.html:80
msgid "Burn Rate Analysis"
msgstr "Palamisnopeuden analyysi"

#: app/templates/budget/project_detail.html:85
msgid "Daily Burn Rate"
msgstr "Päivittäinen palamisnopeus"

#: app/templates/budget/project_detail.html:89
msgid "Weekly Burn Rate"
msgstr "Viikoittainen palamisnopeus"

#: app/templates/budget/project_detail.html:93
msgid "Monthly Burn Rate"
msgstr "Kuukausittainen palamisprosentti"

#: app/templates/budget/project_detail.html:97
msgid "Period Total"
msgstr "Jakso yhteensä"

#: app/templates/budget/project_detail.html:103
msgid "Based on last"
msgstr "Viimeisen perusteella"

#: app/templates/budget/project_detail.html:103
#: app/templates/inventory/suppliers/view.html:141
msgid "days"
msgstr "päivää"

#: app/templates/budget/project_detail.html:108
msgid "No burn rate data available"
msgstr "Palamisnopeustietoja ei ole saatavilla"

#: app/templates/budget/project_detail.html:117
msgid "Completion Estimate"
msgstr "Valmistumisarvio"

#: app/templates/budget/project_detail.html:122
msgid "Estimated Completion Date"
msgstr "Arvioitu valmistumispäivä"

#: app/templates/budget/project_detail.html:128
msgid "days remaining"
msgstr "päivää jäljellä"

#: app/templates/budget/project_detail.html:133
msgid "Confidence Level"
msgstr "Luottamustaso"

#: app/templates/budget/project_detail.html:149
msgid "No completion estimate available"
msgstr "Valmistumisarviota ei ole saatavilla"

#: app/templates/budget/project_detail.html:160
msgid "Cost Trend Analysis"
msgstr "Kustannustrendianalyysi"

#: app/templates/budget/project_detail.html:168
msgid "Average"
msgstr "Keskimäärin"

#: app/templates/budget/project_detail.html:185
msgid "Resource Allocation"
msgstr "Resurssien allokointi"

#: app/templates/budget/project_detail.html:193
msgid "Total Cost"
msgstr "Kokonaiskustannukset"

#: app/templates/budget/project_detail.html:197
#: app/templates/client_portal/projects.html:73
#: app/templates/main/help.html:205
#: app/templates/project_templates/create_project.html:36
#: app/templates/project_templates/view.html:44
#: app/templates/projects/create.html:71 app/templates/projects/edit.html:65
#: app/templates/quotes/accept.html:33
msgid "Hourly Rate"
msgstr "Tuntihinta"

#: app/templates/budget/project_detail.html:205
msgid "Team Member"
msgstr "Joukkueen jäsen"

#: app/templates/budget/project_detail.html:207
#: app/templates/budget/project_detail.html:314
#: app/templates/budget/project_detail.html:344
#: app/templates/inventory/purchase_orders/form.html:149
msgid "Cost"
msgstr "Maksaa"

#: app/templates/budget/project_detail.html:208
msgid "Hours %"
msgstr "Tuntia %"

#: app/templates/budget/project_detail.html:209
msgid "Cost %"
msgstr "Hinta %"

#: app/templates/budget/project_detail.html:210
#: app/templates/clients/view.html:586
#: app/templates/components/support_modal.html:29
#: app/templates/projects/time_entries_overview.html:23
#: app/templates/timer/time_entries_overview.html:25
msgid "Entries"
msgstr "merkinnät"

#: app/templates/calendar/event_detail.html:41
msgid "Date & Time"
msgstr "Päivämäärä ja aika"

#: app/templates/calendar/event_detail.html:77
#: app/templates/calendar/event_form.html:94
#: app/templates/inventory/stock_items/view.html:133
#: app/templates/inventory/stock_items/view.html:152
#: app/templates/inventory/stock_levels/item.html:27
#: app/templates/inventory/stock_levels/item.html:44
#: app/templates/inventory/stock_levels/list.html:52
#: app/templates/inventory/stock_levels/list.html:72
#: app/templates/inventory/warehouses/view.html:89
#: app/templates/inventory/warehouses/view.html:109
msgid "Location"
msgstr "Sijainti"

#: app/templates/calendar/event_detail.html:136
#: app/templates/calendar/event_form.html:109
#: app/templates/calendar/event_form.html:155
msgid "Reminder"
msgstr "Muistutus"

#: app/templates/calendar/event_detail.html:139
msgid "minutes before"
msgstr "minuuttia ennen"

#: app/templates/calendar/event_detail.html:141
msgid "hours before"
msgstr "tuntia ennen"

#: app/templates/calendar/event_detail.html:143
msgid "days before"
msgstr "päivää ennen"

#: app/templates/calendar/event_detail.html:155
#: app/templates/timer/calendar.html:43
msgid "Recurring"
msgstr "Toistuva"

#: app/templates/calendar/event_detail.html:159
msgid "Until"
msgstr "Kunnes"

#: app/templates/calendar/event_detail.html:173
#: app/templates/client_portal/issue_detail.html:89
#: app/templates/issues/view.html:171
msgid "Last Updated"
msgstr "Viimeksi päivitetty"

#: app/templates/calendar/event_detail.html:182
msgid "Back to Calendar"
msgstr "Takaisin kalenteriin"

#: app/templates/calendar/event_detail.html:191
msgid "Delete Event"
msgstr "Poista tapahtuma"

#: app/templates/calendar/event_detail.html:192
msgid "Are you sure you want to delete this event? This action cannot be undone."
msgstr "Haluatko varmasti poistaa tämän tapahtuman? Tätä toimintoa ei voi kumota."

#: app/templates/calendar/event_form.html:2
#: app/templates/calendar/event_form.html:10
msgid "Edit Event"
msgstr "Muokkaa tapahtumaa"

#: app/templates/calendar/event_form.html:2
#: app/templates/calendar/event_form.html:10
#: app/templates/calendar/view.html:49 app/templates/timer/calendar.html:40
msgid "New Event"
msgstr "Uusi Tapahtuma"

#: app/templates/calendar/event_form.html:19
#: app/templates/client_portal/new_issue.html:26
#: app/templates/client_portal/quote_detail.html:34
#: app/templates/client_portal/quotes.html:26
#: app/templates/client_portal/quotes.html:42
#: app/templates/contacts/form.html:52 app/templates/contacts/list.html:28
#: app/templates/contacts/list.html:46 app/templates/contacts/view.html:48
#: app/templates/expenses/dashboard.html:190
#: app/templates/expenses/list.html:297 app/templates/invoices/edit.html:160
#: app/templates/issues/edit.html:24 app/templates/issues/list.html:93
#: app/templates/issues/list.html:106 app/templates/issues/new.html:24
#: app/templates/leads/form.html:50 app/templates/leads/view.html:61
#: app/templates/quotes/_edit_quote_form_scripts.html:198
#: app/templates/quotes/_quotes_list.html:34
#: app/templates/quotes/_quotes_list.html:51
#: app/templates/quotes/accept.html:18 app/templates/quotes/create.html:36
#: app/templates/quotes/create.html:94 app/templates/quotes/edit.html:32
#: app/templates/quotes/edit.html:142 app/templates/quotes/edit.html:157
#: app/templates/timer/calendar.html:850
#: app/utils/pdf_generator_fallback.py:552
msgid "Title"
msgstr "Otsikko"

#: app/templates/calendar/event_form.html:40 app/templates/gantt/view.html:37
#: app/templates/import_export/index.html:225
#: app/templates/import_export/index.html:263
#: app/templates/projects/time_entries_overview.html:31
#: app/templates/reports/builder.html:86
#: app/templates/reports/time_entries_report.html:12
#: app/templates/timer/bulk_entry.html:137
#: app/templates/timer/calendar.html:166
#: app/templates/timer/edit_timer.html:260
#: app/templates/timer/manual_entry.html:97
#: app/templates/timer/time_entries_overview.html:79
msgid "Start Date"
msgstr "Aloituspäivämäärä"

#: app/templates/calendar/event_form.html:50
#: app/templates/reports/user_report.html:86
#: app/templates/timer/bulk_entry.html:170
#: app/templates/timer/calendar.html:170
#: app/templates/timer/edit_timer.html:268
#: app/templates/timer/manual_entry.html:107
#: app/templates/timer/view_timer.html:28
msgid "Start Time"
msgstr "Aloitusaika"

#: app/templates/calendar/event_form.html:61 app/templates/gantt/view.html:41
#: app/templates/import_export/index.html:230
#: app/templates/import_export/index.html:268
#: app/templates/projects/time_entries_overview.html:35
#: app/templates/recurring_tasks/form.html:79
#: app/templates/reports/builder.html:90
#: app/templates/reports/time_entries_report.html:18
#: app/templates/timer/bulk_entry.html:141
#: app/templates/timer/calendar.html:177
#: app/templates/timer/edit_timer.html:280
#: app/templates/timer/manual_entry.html:101
#: app/templates/timer/time_entries_overview.html:83
msgid "End Date"
msgstr "Päättymispäivämäärä"

#: app/templates/calendar/event_form.html:71
#: app/templates/reports/user_report.html:87
#: app/templates/timer/bulk_entry.html:179
#: app/templates/timer/calendar.html:181
#: app/templates/timer/edit_timer.html:288
#: app/templates/timer/manual_entry.html:111
#: app/templates/timer/view_timer.html:34
msgid "End Time"
msgstr "Päättymisaika"

#: app/templates/calendar/event_form.html:88
msgid "All Day Event"
msgstr "Koko päivän tapahtuma"

#: app/templates/calendar/event_form.html:104
msgid "Event Type"
msgstr "Tapahtuman tyyppi"

#: app/templates/calendar/event_form.html:107
#: app/templates/contacts/communication_form.html:32
#: app/templates/deals/activity_form.html:30
#: app/templates/leads/activity_form.html:30
msgid "Meeting"
msgstr "Kokous"

#: app/templates/calendar/event_form.html:108
msgid "Appointment"
msgstr "Nimittäminen"

#: app/templates/calendar/event_form.html:110
msgid "Deadline"
msgstr "Määräaika"

#: app/templates/calendar/event_form.html:118
#: app/templates/calendar/event_form.html:131
#: app/templates/calendar/event_form.html:144
msgid "-- None --"
msgstr "-- Ei yhtään --"

#: app/templates/calendar/event_form.html:157
msgid "No reminder"
msgstr "Ei muistutusta"

#: app/templates/calendar/event_form.html:158
msgid "5 minutes before"
msgstr "5 minuuttia ennen"

#: app/templates/calendar/event_form.html:159
msgid "15 minutes before"
msgstr "15 minuuttia ennen"

#: app/templates/calendar/event_form.html:160
msgid "30 minutes before"
msgstr "30 minuuttia ennen"

#: app/templates/calendar/event_form.html:161
msgid "1 hour before"
msgstr "1 tunti ennen"

#: app/templates/calendar/event_form.html:162
msgid "1 day before"
msgstr "1 päivää ennen"

#: app/templates/calendar/event_form.html:168
#: app/templates/kanban/columns.html:51
#: app/templates/kanban/create_column.html:60
#: app/templates/kanban/edit_column.html:52
msgid "Color"
msgstr "Väri"

#: app/templates/calendar/event_form.html:175
msgid "Choose a color for this event"
msgstr "Valitse väri tälle tapahtumalle"

#: app/templates/calendar/event_form.html:187
msgid "Private Event"
msgstr "Yksityinen Tapahtuma"

#: app/templates/calendar/event_form.html:189
msgid "Private events are only visible to you"
msgstr "Yksityistapahtumat näkyvät vain sinulle"

#: app/templates/calendar/event_form.html:194
msgid "Recurring Event"
msgstr "Toistuva tapahtuma"

#: app/templates/calendar/event_form.html:203
msgid "This is a recurring event"
msgstr "Tämä on toistuva tapahtuma"

#: app/templates/calendar/event_form.html:209
msgid "Recurrence Pattern"
msgstr "Toistuva kuvio"

#: app/templates/calendar/event_form.html:216
msgid "Use RRULE format (e.g., FREQ=WEEKLY;BYDAY=MO,WE,FR)"
msgstr "Käytä RRULE-muotoa (esim. FREQ=WEEKLY;BYDAY=MO,WE,FR)"

#: app/templates/calendar/event_form.html:220
msgid "Recurrence End Date"
msgstr "Toistumisen lopetuspäivämäärä"

#: app/templates/calendar/event_form.html:234
msgid "Update Event"
msgstr "Päivitä tapahtuma"

#: app/templates/calendar/event_form.html:234
msgid "Create Event"
msgstr "Luo tapahtuma"

#: app/templates/calendar/integrations.html:4
msgid "Calendar Integrations"
msgstr ""

#: app/templates/calendar/integrations.html:56
msgid "Last synced"
msgstr ""

#: app/templates/calendar/integrations.html:71
msgid "Manage Integration"
msgstr ""

#: app/templates/calendar/integrations.html:78
msgid "Are you sure you want to disconnect this integration?"
msgstr ""

#: app/templates/calendar/integrations.html:78
msgid "Disconnect"
msgstr ""

#: app/templates/calendar/integrations.html:91
msgid "No Calendar Integrations"
msgstr ""

#: app/templates/calendar/integrations.html:92
msgid "Connect your calendar to automatically sync time entries and events."
msgstr ""

#: app/templates/calendar/integrations.html:93
#: app/templates/integrations/manage.html:714
msgid "Connect Google Calendar"
msgstr ""

#: app/templates/calendar/integrations.html:99
msgid "How Calendar Integration Works"
msgstr ""

#: app/templates/calendar/integrations.html:101
msgid "Time entries are automatically synced to your calendar"
msgstr ""

#: app/templates/calendar/integrations.html:102
msgid "Calendar events can be converted to time entries"
msgstr ""

#: app/templates/calendar/integrations.html:103
msgid "Bidirectional sync keeps everything in sync"
msgstr ""

#: app/templates/calendar/view.html:18
msgid "View and manage your events, tasks, and time entries"
msgstr "Tarkastele ja hallinnoi tapahtumia, tehtäviä ja aikamerkintöjä"

#: app/templates/calendar/view.html:31 app/templates/timer/calendar.html:32
#: app/templates/user/settings.html:475
msgid "Day"
msgstr "Päivä"

#: app/templates/calendar/view.html:36
#: app/templates/reports/week_in_review.html:21
#: app/templates/timer/calendar.html:33 app/templates/user/settings.html:476
#: app/templates/weekly_goals/index.html:79
msgid "Week"
msgstr "Viikko"

#: app/templates/calendar/view.html:41 app/templates/timer/calendar.html:34
#: app/templates/user/settings.html:477
msgid "Month"
msgstr "Kuukausi"

#: app/templates/calendar/view.html:62 app/templates/reports/index.html:76
#: app/templates/timer/calendar.html:29
msgid "Today"
msgstr "Tänään"

#: app/templates/calendar/view.html:90
msgid "Calendar colors"
msgstr ""

#: app/templates/calendar/view.html:106
msgid "Legend"
msgstr ""

#: app/templates/calendar/view.html:123
msgid "Loading calendar..."
msgstr "Ladataan kalenteria..."

#: app/templates/calendar/view.html:133 app/templates/timer/calendar.html:807
msgid "Event Details"
msgstr "Tapahtuman tiedot"

#: app/templates/calendar/view.html:136 app/templates/timer/calendar.html:220
#: app/templates/timer/calendar.html:818
msgid "Go to all details"
msgstr ""

#: app/templates/chat/channel.html:4 app/templates/chat/channel.html:8
#: app/templates/chat/index.html:4 app/templates/chat/index.html:8
#: app/templates/chat/index.html:13
msgid "Team Chat"
msgstr ""

#: app/templates/chat/channel.html:15
msgid "Team chat channel"
msgstr ""

#: app/templates/chat/channel.html:56
#: app/templates/components/persistent_chat_widget.html:107
msgid "Type a message..."
msgstr ""

#: app/templates/chat/channel.html:75
msgid "Channel Info"
msgstr ""

#: app/templates/chat/channel.html:84
msgid "Members"
msgstr ""

#: app/templates/chat/channel.html:126
msgid "Channel Settings"
msgstr ""

#: app/templates/chat/channel.html:252
msgid "Upload Attachment"
msgstr ""

#: app/templates/chat/channel.html:259
msgid "Select File"
msgstr ""

#: app/templates/chat/channel.html:261
msgid "Maximum file size: 10 MB"
msgstr ""

#: app/templates/chat/channel.html:264
msgid "Selected:"
msgstr ""

#: app/templates/chat/channel.html:271 app/templates/clients/view.html:208
#: app/templates/clients/view.html:235 app/templates/comments/_comment.html:117
#: app/templates/projects/view.html:335 app/templates/projects/view.html:362
msgid "Upload"
msgstr ""

#: app/templates/chat/channel.html:303
msgid "Please select a file"
msgstr ""

#: app/templates/chat/channel.html:309
msgid "File size exceeds 10 MB limit"
msgstr ""

#: app/templates/chat/channel.html:348 app/templates/chat/channel.html:355
msgid "Failed to upload attachment"
msgstr ""

#: app/templates/chat/index.html:14
msgid "Communicate with your team"
msgstr ""

#: app/templates/chat/index.html:22
#: app/templates/components/persistent_chat_widget.html:53
msgid "Channels"
msgstr ""

#: app/templates/chat/index.html:48
#: app/templates/components/persistent_chat_widget.html:58
msgid "Direct Messages"
msgstr ""

#: app/templates/chat/index.html:89
#: app/templates/components/persistent_chat_widget.html:71
msgid "Select a channel to start chatting"
msgstr ""

#: app/templates/chat/index.html:100
msgid "Create Channel"
msgstr ""

#: app/templates/chat/index.html:107
msgid "Channel Name"
msgstr ""

#: app/templates/chat/index.html:117
msgid "Private channel"
msgstr ""

#: app/templates/client_notes/edit.html:3
#: app/templates/client_notes/edit.html:9
msgid "Edit Client Note"
msgstr "Muokkaa asiakasmuistiota"

#: app/templates/client_notes/edit.html:12 app/templates/clients/edit.html:8
msgid "Back to Client"
msgstr "Takaisin asiakkaalle"

#: app/templates/client_notes/edit.html:24
msgid "Client:"
msgstr "Asiakas:"

#: app/templates/client_notes/edit.html:38
msgid "Created on"
msgstr "Luotu"

#: app/templates/client_notes/edit.html:41 app/templates/comments/edit.html:58
msgid "Last edited on"
msgstr "Viimeksi muokattu"

#: app/templates/client_notes/edit.html:54 app/templates/clients/view.html:435
msgid "Note Content"
msgstr "Huomautus Sisältö"

#: app/templates/client_notes/edit.html:64
msgid "Internal note visible only to your team."
msgstr "Sisäinen huomautus näkyy vain tiimillesi."

#: app/templates/client_notes/edit.html:77 app/templates/clients/view.html:453
msgid "Mark as important"
msgstr "Merkitse tärkeäksi"

#: app/templates/client_portal/activity_feed.html:4
#: app/templates/client_portal/activity_feed.html:9
#: app/templates/client_portal/activity_feed.html:14
msgid "Activity Feed"
msgstr ""

#: app/templates/client_portal/activity_feed.html:4
#: app/templates/client_portal/activity_feed.html:8
#: app/templates/client_portal/approvals.html:4
#: app/templates/client_portal/approvals.html:8
#: app/templates/client_portal/base.html:6
#: app/templates/client_portal/base.html:13
#: app/templates/client_portal/base.html:20
#: app/templates/client_portal/base.html:240
#: app/templates/client_portal/base.html:324
#: app/templates/client_portal/dashboard.html:4
#: app/templates/client_portal/dashboard.html:8
#: app/templates/client_portal/dashboard.html:13
#: app/templates/client_portal/documents.html:4
#: app/templates/client_portal/documents.html:8
#: app/templates/client_portal/error.html:4
#: app/templates/client_portal/invoice_detail.html:4
#: app/templates/client_portal/invoice_detail.html:8
#: app/templates/client_portal/invoices.html:4
#: app/templates/client_portal/invoices.html:8
#: app/templates/client_portal/issue_detail.html:4
#: app/templates/client_portal/issue_detail.html:8
#: app/templates/client_portal/issues.html:4
#: app/templates/client_portal/issues.html:8
#: app/templates/client_portal/login.html:31
#: app/templates/client_portal/login.html:38
#: app/templates/client_portal/new_issue.html:4
#: app/templates/client_portal/new_issue.html:8
#: app/templates/client_portal/notifications.html:4
#: app/templates/client_portal/notifications.html:8
#: app/templates/client_portal/project_comments.html:4
#: app/templates/client_portal/project_comments.html:8
#: app/templates/client_portal/projects.html:4
#: app/templates/client_portal/projects.html:8
#: app/templates/client_portal/quote_detail.html:4
#: app/templates/client_portal/quote_detail.html:8
#: app/templates/client_portal/quotes.html:4
#: app/templates/client_portal/quotes.html:8
#: app/templates/client_portal/reports.html:4
#: app/templates/client_portal/reports.html:8
#: app/templates/client_portal/set_password.html:6
#: app/templates/client_portal/set_password.html:29
#: app/templates/client_portal/time_entries.html:4
#: app/templates/client_portal/time_entries.html:8
msgid "Client Portal"
msgstr "Asiakasportaali"

#: app/templates/client_portal/activity_feed.html:15
msgid "Recent project activities"
msgstr ""

#: app/templates/client_portal/activity_feed.html:69
#, fuzzy
msgid "View details"
msgstr "Näytä tiedot"

#: app/templates/client_portal/activity_feed.html:83
msgid "No Activity"
msgstr ""

#: app/templates/client_portal/activity_feed.html:85
msgid "No recent activity to display. Activity will appear here as projects are updated and time entries are logged."
msgstr ""

#: app/templates/client_portal/approvals.html:9
#: app/templates/client_portal/base.html:266
#: app/templates/client_portal/base.html:351
msgid "Approvals"
msgstr ""

#: app/templates/client_portal/approvals.html:30
#: app/templates/contacts/communication_form.html:60
#: app/templates/deals/activity_form.html:37
#: app/templates/integrations/view.html:57
#: app/templates/integrations/view.html:88
#: app/templates/leads/activity_form.html:37 app/utils/i18n_helpers.py:142
#: app/utils/i18n_helpers.py:153 app/utils/i18n_helpers.py:220
#: app/utils/i18n_helpers.py:232
msgid "Pending"
msgstr "Odottaa"

#: app/templates/client_portal/approvals.html:43 app/utils/i18n_helpers.py:143
#: app/utils/i18n_helpers.py:154
msgid "Approved"
msgstr "Hyväksytty"

#: app/templates/client_portal/approvals.html:53
#: app/templates/quotes/_quotes_list.html:68 app/templates/quotes/list.html:84
#: app/templates/quotes/view.html:77 app/utils/i18n_helpers.py:144
#: app/utils/i18n_helpers.py:155
msgid "Rejected"
msgstr "Hylätty"

#: app/templates/client_portal/approvals.html:63
#: app/templates/client_portal/invoices.html:30
#: app/templates/client_portal/issues.html:23
#: app/templates/client_portal/notifications.html:31
#: app/templates/components/multi_select.html:82
#: app/templates/components/multi_select.html:206
#: app/templates/inventory/movements/list.html:37
#: app/templates/inventory/purchase_orders/list.html:23
#: app/templates/inventory/reservations/list.html:22
#: app/templates/inventory/suppliers/list.html:28
#: app/templates/issues/list.html:38 app/templates/issues/list.html:49
#: app/templates/issues/list.html:63 app/templates/issues/list.html:72
#: app/templates/quotes/list.html:80
#: app/templates/reports/time_entries_report.html:71
#: app/templates/timer/time_entries_overview.html:104
#: app/templates/timer/time_entries_overview.html:112
msgid "All"
msgstr "Kaikki"

#: app/templates/client_portal/approvals.html:90
msgid "Requested on"
msgstr ""

#: app/templates/client_portal/approvals.html:160
msgid "Request Comment"
msgstr ""

#: app/templates/client_portal/approvals.html:172
#: app/templates/client_portal/notifications.html:108
#: app/templates/integrations/manage.html:634
#: app/templates/tasks/my_tasks.html:330
#: app/templates/weekly_goals/index.html:122
msgid "View Details"
msgstr "Näytä tiedot"

#: app/templates/client_portal/approvals.html:186
msgid "No Approvals"
msgstr ""

#: app/templates/client_portal/approvals.html:189
msgid "You have no pending time entry approvals. All caught up!"
msgstr ""

#: app/templates/client_portal/approvals.html:191
msgid "No approvals found for this status."
msgstr ""

#: app/templates/client_portal/base.html:277
#: app/templates/client_portal/base.html:362
#: app/templates/client_portal/notifications.html:4
#: app/templates/client_portal/notifications.html:9
#: app/templates/client_portal/notifications.html:14
msgid "Notifications"
msgstr ""

#: app/templates/client_portal/base.html:284
#: app/templates/partials/_bottom_nav.html:17
#: app/templates/partials/_bottom_nav.html:84
#: app/templates/partials/_bottom_nav.html:88
#: app/templates/projects/view.html:49
msgid "More"
msgstr ""

#: app/templates/client_portal/base.html:290
#: app/templates/client_portal/base.html:369
#: app/templates/client_portal/documents.html:4
#: app/templates/client_portal/documents.html:9
#: app/templates/client_portal/documents.html:14
msgid "Documents"
msgstr ""

#: app/templates/client_portal/base.html:296
#: app/templates/client_portal/base.html:375 app/templates/deals/view.html:143
#: app/templates/leads/view.html:136
msgid "Activity"
msgstr ""

#: app/templates/client_portal/base.html:307
msgid "Toggle menu"
msgstr ""

#: app/templates/client_portal/base.html:418
#, fuzzy
msgid "Approval update"
msgstr "Hyväksyntätila"

#: app/templates/client_portal/base.html:418
#, fuzzy
msgid "A time entry approval was requested."
msgstr "Hyväksyntää pyydetty"

#: app/templates/client_portal/base.html:418
#, fuzzy
msgid "An approval was updated."
msgstr "Projekteja ei ole päivitetty"

#: app/templates/client_portal/dashboard.html:14
#, python-format
msgid "Welcome, %(client_name)s"
msgstr "Tervetuloa, %(client_name)s"

#: app/templates/client_portal/dashboard.html:21
#: app/templates/client_portal/dashboard.html:67
#, fuzzy
msgid "Customize dashboard"
msgstr "Mukauta pikakuvakkeita"

#: app/templates/client_portal/dashboard.html:68
msgid "Choose which widgets to show and their order."
msgstr ""

#: app/templates/client_portal/dashboard.html:74
#, fuzzy
msgid "Statistics cards"
msgstr "Tilastot"

#: app/templates/client_portal/dashboard.html:75
#, fuzzy
msgid "Pending actions"
msgstr "Järjestelmänvalvojan osiot"

#: app/templates/client_portal/dashboard.html:77
#, fuzzy
msgid "Recent invoices"
msgstr "Viimeaikaiset laskut"

#: app/templates/client_portal/dashboard.html:78
#, fuzzy
msgid "Recent time entries"
msgstr "Viimeaikaiset aikamerkinnät"

#: app/templates/client_portal/dashboard.html:127
#, fuzzy
msgid "Select at least one widget."
msgstr "Valitse asiakas..."

#: app/templates/client_portal/dashboard.html:147
#, fuzzy
msgid "Failed to save."
msgstr "Ajastimen pysäyttäminen epäonnistui"

#: app/templates/client_portal/documents.html:15
msgid "View and download project documents"
msgstr ""

#: app/templates/client_portal/documents.html:41
msgid "Client Document"
msgstr ""

#: app/templates/client_portal/documents.html:67
msgid "Download"
msgstr ""

#: app/templates/client_portal/documents.html:80
msgid "No Documents"
msgstr ""

#: app/templates/client_portal/documents.html:82
msgid "No documents have been shared with you yet. Documents will appear here once they are uploaded and made visible to clients."
msgstr ""

#: app/templates/client_portal/error.html:18
msgid "An error occurred"
msgstr ""

#: app/templates/client_portal/error.html:47 app/templates/errors/400.html:23
#: app/templates/errors/403.html:24 app/templates/errors/404.html:21
#: app/templates/errors/500.html:24 app/templates/errors/generic.html:24
#: app/templates/errors/generic.html:42 app/templates/main/help.html:538
msgid "Go to Dashboard"
msgstr "Siirry Dashboardiin"

#: app/templates/client_portal/error.html:52
msgid "Login to Client Portal"
msgstr ""

#: app/templates/client_portal/error.html:59 app/templates/errors/400.html:26
#: app/templates/errors/404.html:24 app/templates/errors/generic.html:28
#: app/templates/errors/generic.html:45
msgid "Go Back"
msgstr "Mene takaisin"

#: app/templates/client_portal/error.html:69
msgid "If you believe you should have access to the client portal, please contact your administrator or use the login link above."
msgstr ""

#: app/templates/client_portal/invoice_detail.html:16
#: app/templates/client_portal/invoice_detail.html:33
#: app/templates/payments/create.html:44
msgid "Invoice Details"
msgstr "Laskun tiedot"

#: app/templates/client_portal/invoice_detail.html:34
#: app/templates/client_portal/invoices.html:72
#: app/templates/invoices/edit.html:305
#: app/templates/invoices/pdf_default.html:57
#: app/templates/recurring_invoices/view.html:108
#: app/utils/pdf_generator.py:1127
msgid "Issue Date"
msgstr "Julkaisupäivämäärä"

#: app/templates/client_portal/invoice_detail.html:45
#, python-format
msgid "This invoice is %(days)d days overdue."
msgstr "Tämä lasku on %(days)d päivää myöhässä."

#: app/templates/client_portal/invoice_detail.html:52
#: app/templates/invoices/edit.html:60 app/utils/pdf_generator_fallback.py:237
msgid "Invoice Items"
msgstr "Laskun erät"

#: app/templates/client_portal/invoice_detail.html:58
#: app/templates/client_portal/invoice_detail.html:67
#: app/templates/client_portal/quote_detail.html:70
#: app/templates/client_portal/quote_detail.html:88
#: app/templates/inventory/adjustments/list.html:59
#: app/templates/inventory/adjustments/list.html:78
#: app/templates/inventory/movements/form.html:62
#: app/templates/inventory/movements/list.html:58
#: app/templates/inventory/movements/list.html:102
#: app/templates/inventory/reports/movement_history.html:74
#: app/templates/inventory/reports/movement_history.html:118
#: app/templates/inventory/reports/valuation.html:61
#: app/templates/inventory/reports/valuation.html:81
#: app/templates/inventory/reservations/list.html:41
#: app/templates/inventory/reservations/list.html:63
#: app/templates/inventory/stock_items/history.html:65
#: app/templates/inventory/stock_items/history.html:104
#: app/templates/inventory/stock_items/view.html:178
#: app/templates/inventory/stock_items/view.html:189
#: app/templates/inventory/stock_items/view.html:242
#: app/templates/inventory/stock_items/view.html:256
#: app/templates/inventory/transfers/form.html:50
#: app/templates/inventory/transfers/list.html:42
#: app/templates/inventory/transfers/list.html:69
#: app/templates/inventory/warehouses/view.html:132
#: app/templates/inventory/warehouses/view.html:150
#: app/templates/invoices/edit.html:75 app/templates/invoices/edit.html:118
#: app/templates/invoices/edit.html:120 app/templates/invoices/edit.html:541
#: app/templates/kiosk/dashboard.html:172
#: app/templates/kiosk/dashboard.html:263
#: app/templates/projects/add_good.html:45
#: app/templates/projects/edit_good.html:45
#: app/templates/projects/goods.html:41 app/templates/projects/goods.html:63
#: app/templates/quotes/pdf_default.html:96 app/templates/quotes/view.html:103
#: app/utils/pdf_generator_fallback.py:575
msgid "Quantity"
msgstr "Määrä"

#: app/templates/client_portal/invoice_detail.html:59
#: app/templates/client_portal/invoice_detail.html:68
#: app/templates/client_portal/quote_detail.html:71
#: app/templates/client_portal/quote_detail.html:89
#: app/templates/invoices/edit.html:76 app/templates/invoices/edit.html:124
#: app/templates/invoices/edit.html:544
#: app/templates/invoices/pdf_default.html:90
#: app/templates/projects/add_good.html:50
#: app/templates/projects/edit_good.html:50
#: app/templates/projects/goods.html:42 app/templates/projects/goods.html:64
#: app/templates/quotes/pdf_default.html:97 app/templates/quotes/view.html:104
#: app/utils/pdf_generator.py:1156 app/utils/pdf_generator_fallback.py:240
#: app/utils/pdf_generator_fallback.py:575
msgid "Unit Price"
msgstr "Yksikköhinta"

#: app/templates/client_portal/invoice_detail.html:111
#: app/templates/payment_gateways/pay.html:3
#: app/templates/payment_gateways/pay.html:8
msgid "Pay Invoice"
msgstr ""

#: app/templates/client_portal/invoice_detail.html:115
#: app/templates/invoices/create.html:6
msgid "Back to Invoices"
msgstr "Takaisin laskuihin"

#: app/templates/client_portal/invoices.html:15
#, python-format
msgid "Invoices for %(client_name)s"
msgstr "Laskut kohteelle %(client_name)s"

#: app/templates/client_portal/invoices.html:50
#: app/templates/invoices/_invoices_list.html:79
#: app/templates/timer/_time_entries_list.html:168
#: app/templates/timer/time_entries_overview.html:106
#: app/templates/timer/time_entries_overview.html:199
#: app/templates/timer/view_timer.html:144 app/utils/i18n_helpers.py:88
#: app/utils/i18n_helpers.py:99
msgid "Unpaid"
msgstr "Palkaton"

#: app/templates/client_portal/invoices.html:60
#: app/templates/invoices/list.html:132 app/templates/tasks/_kanban.html:103
#: app/templates/tasks/overdue.html:35 app/utils/i18n_helpers.py:67
#: app/utils/i18n_helpers.py:79
msgid "Overdue"
msgstr "Myöhässä"

#: app/templates/client_portal/invoices.html:74
#: app/templates/client_portal/quotes.html:29
#: app/templates/client_portal/quotes.html:54
#: app/templates/expenses/dashboard.html:200
#: app/templates/expenses/list.html:310 app/templates/invoices/edit.html:163
#: app/templates/invoices/edit.html:193 app/templates/payments/list.html:147
#: app/templates/projects/add_cost.html:58
#: app/templates/projects/dashboard.html:375
#: app/templates/projects/edit_cost.html:65
#: app/templates/quotes/_quotes_list.html:36
#: app/templates/quotes/_quotes_list.html:53
#: app/templates/quotes/create.html:97 app/templates/quotes/edit.html:145
#: app/templates/recurring_invoices/view.html:109
msgid "Amount"
msgstr "Määrä"

#: app/templates/client_portal/invoices.html:103
msgid "days overdue"
msgstr "päivää myöhässä"

#: app/templates/client_portal/invoices.html:153
#: app/templates/client_portal/widgets/invoices.html:45
msgid "No invoices found"
msgstr ""

#: app/templates/client_portal/invoices.html:155
msgid "No paid invoices"
msgstr ""

#: app/templates/client_portal/invoices.html:157
msgid "No unpaid invoices"
msgstr ""

#: app/templates/client_portal/invoices.html:159
msgid "No overdue invoices"
msgstr ""

#: app/templates/client_portal/invoices.html:164
msgid "There are no invoices available at this time. Invoices will appear here once they are created."
msgstr ""

#: app/templates/client_portal/invoices.html:166
msgid "There are no invoices matching this filter. Try selecting a different status."
msgstr ""

#: app/templates/client_portal/invoices.html:173
msgid "View All Invoices"
msgstr ""

#: app/templates/client_portal/issue_detail.html:16
#: app/templates/issues/view.html:8
#, python-format
msgid "Issue #%(id)s"
msgstr ""

#: app/templates/client_portal/issue_detail.html:29
msgid "No description provided."
msgstr ""

#: app/templates/client_portal/issue_detail.html:51
#: app/templates/client_portal/new_issue.html:52
#: app/templates/issues/edit.html:48 app/templates/issues/list.html:47
#: app/templates/issues/list.html:97 app/templates/issues/list.html:123
#: app/templates/issues/new.html:42 app/templates/issues/view.html:111
#: app/templates/project_templates/create.html:79
#: app/templates/project_templates/edit.html:82
#: app/templates/project_templates/edit.html:108
#: app/templates/projects/view.html:429 app/templates/projects/view.html:441
#: app/templates/recurring_tasks/form.html:91
#: app/templates/tasks/_kanban.html:1235
#: app/templates/tasks/_tasks_list.html:60 app/templates/tasks/create.html:59
#: app/templates/tasks/edit.html:69 app/templates/tasks/my_tasks.html:139
msgid "Priority"
msgstr "Prioriteetti"

#: app/templates/client_portal/issue_detail.html:70
#: app/templates/issues/view.html:41
msgid "Linked Task"
msgstr ""

#: app/templates/client_portal/issue_detail.html:77
#: app/templates/issues/edit.html:70 app/templates/issues/list.html:70
#: app/templates/issues/list.html:98 app/templates/issues/list.html:132
#: app/templates/issues/new.html:64 app/templates/issues/view.html:138
#: app/templates/tasks/_kanban.html:1263
msgid "Assigned To"
msgstr ""

#: app/templates/client_portal/issue_detail.html:96
#: app/templates/client_portal/issues.html:35 app/templates/issues/edit.html:41
#: app/templates/issues/list.html:41 app/templates/issues/view.html:102
#: app/templates/issues/view.html:178
msgid "Resolved"
msgstr ""

#: app/templates/client_portal/issue_detail.html:107
#: app/templates/issues/view.html:189
msgid "Back to Issues"
msgstr ""

#: app/templates/client_portal/issues.html:14
msgid "Issue Reports"
msgstr ""

#: app/templates/client_portal/issues.html:15
#, python-format
msgid "Report and track issues for %(client_name)s"
msgstr ""

#: app/templates/client_portal/issues.html:27 app/templates/deals/list.html:24
#: app/templates/issues/edit.html:39 app/templates/issues/list.html:39
#: app/templates/issues/view.html:100
msgid "Open"
msgstr "Avata"

#: app/templates/client_portal/issues.html:39 app/templates/issues/edit.html:42
#: app/templates/issues/list.html:42 app/templates/issues/view.html:103
msgid "Closed"
msgstr ""

#: app/templates/client_portal/issues.html:43
#: app/templates/client_portal/new_issue.html:4
#: app/templates/client_portal/new_issue.html:10
#: app/templates/client_portal/new_issue.html:15
msgid "Report New Issue"
msgstr ""

#: app/templates/client_portal/issues.html:93
msgid "No issues found."
msgstr ""

#: app/templates/client_portal/login.html:6
msgid "Client Portal Login"
msgstr "Asiakasportaaliin kirjautuminen"

#: app/templates/client_portal/login.html:32
msgid "View your projects and invoices"
msgstr "Tarkastele projektejasi ja laskujasi"

#: app/templates/client_portal/login.html:40
msgid "Sign in to Client Portal"
msgstr "Kirjaudu sisään asiakasportaaliin"

#: app/templates/client_portal/login.html:41
msgid "Enter your portal credentials to access your projects and invoices"
msgstr "Anna portaalin tunnistetiedot päästäksesi käsiksi projekteihisi ja laskuihisi"

#: app/templates/client_portal/login.html:51
#: app/templates/clients/edit.html:124
msgid "portal_username"
msgstr "portaalin_käyttäjänimi"

#: app/templates/client_portal/login.html:57
#: app/templates/client_portal/set_password.html:53
msgid "Enter your password"
msgstr "Kirjoita salasanasi"

#: app/templates/client_portal/new_issue.html:16
msgid "Report a bug or issue you've encountered"
msgstr ""

#: app/templates/client_portal/new_issue.html:29
msgid "Brief description of the issue"
msgstr ""

#: app/templates/client_portal/new_issue.html:36
msgid "Detailed description of the issue, steps to reproduce, etc."
msgstr ""

#: app/templates/client_portal/new_issue.html:44
#: app/templates/main/dashboard.html:735
#: app/templates/timer/manual_entry.html:64
#: app/templates/timer/timer_page.html:141
msgid "Select a project (optional)"
msgstr ""

#: app/templates/client_portal/new_issue.html:55
#: app/templates/issues/edit.html:50 app/templates/issues/list.html:50
#: app/templates/issues/new.html:44 app/templates/issues/view.html:116
#: app/templates/project_templates/create.html:81
#: app/templates/project_templates/edit.html:84
#: app/templates/project_templates/edit.html:110
#: app/templates/recurring_tasks/form.html:93
#: app/templates/tasks/create.html:61 app/templates/tasks/create.html:82
#: app/templates/tasks/create.html:470 app/templates/tasks/edit.html:71
#: app/templates/tasks/edit.html:650 app/templates/tasks/my_tasks.html:142
#: app/utils/i18n_helpers.py:39 app/utils/i18n_helpers.py:45
msgid "Low"
msgstr "Matala"

#: app/templates/client_portal/new_issue.html:56
#: app/templates/issues/edit.html:51 app/templates/issues/list.html:51
#: app/templates/issues/new.html:45 app/templates/issues/view.html:117
#: app/templates/project_templates/create.html:82
#: app/templates/project_templates/edit.html:85
#: app/templates/project_templates/edit.html:111
#: app/templates/recurring_tasks/form.html:94
#: app/templates/tasks/create.html:62 app/templates/tasks/create.html:82
#: app/templates/tasks/create.html:471 app/templates/tasks/edit.html:72
#: app/templates/tasks/edit.html:651 app/templates/tasks/my_tasks.html:143
#: app/utils/i18n_helpers.py:39 app/utils/i18n_helpers.py:45
msgid "Medium"
msgstr "Keskikokoinen"

#: app/templates/client_portal/new_issue.html:57
#: app/templates/issues/edit.html:52 app/templates/issues/list.html:52
#: app/templates/issues/new.html:46 app/templates/issues/view.html:118
#: app/templates/project_templates/create.html:83
#: app/templates/project_templates/edit.html:86
#: app/templates/project_templates/edit.html:112
#: app/templates/recurring_tasks/form.html:95
#: app/templates/tasks/create.html:63 app/templates/tasks/create.html:82
#: app/templates/tasks/create.html:472 app/templates/tasks/edit.html:73
#: app/templates/tasks/edit.html:652 app/templates/tasks/my_tasks.html:144
#: app/utils/i18n_helpers.py:39 app/utils/i18n_helpers.py:45
msgid "High"
msgstr "Korkea"

#: app/templates/client_portal/new_issue.html:58
#: app/templates/issues/edit.html:53 app/templates/issues/list.html:53
#: app/templates/issues/new.html:47 app/templates/issues/view.html:119
#: app/templates/recurring_tasks/form.html:96
#: app/templates/tasks/create.html:64 app/templates/tasks/create.html:82
#: app/templates/tasks/create.html:473 app/templates/tasks/edit.html:74
#: app/templates/tasks/edit.html:653 app/templates/tasks/my_tasks.html:145
#: app/utils/i18n_helpers.py:39 app/utils/i18n_helpers.py:45
msgid "Urgent"
msgstr "Kiireellinen"

#: app/templates/client_portal/new_issue.html:65
msgid "Your Name"
msgstr ""

#: app/templates/client_portal/new_issue.html:68
msgid "Your name (optional)"
msgstr ""

#: app/templates/client_portal/new_issue.html:72
msgid "Your Email"
msgstr ""

#: app/templates/client_portal/new_issue.html:75
msgid "Your email (optional)"
msgstr ""

#: app/templates/client_portal/new_issue.html:85
msgid "Submit Issue"
msgstr ""

#: app/templates/client_portal/notifications.html:15
msgid "Stay updated on your projects and invoices"
msgstr ""

#: app/templates/client_portal/notifications.html:41
#: app/templates/client_portal/widgets/pending_actions.html:24
msgid "Unread"
msgstr ""

#: app/templates/client_portal/notifications.html:56
msgid "Mark All as Read"
msgstr ""

#: app/templates/client_portal/notifications.html:120
msgid "Mark as read"
msgstr ""

#: app/templates/client_portal/notifications.html:140
msgid "No Notifications"
msgstr ""

#: app/templates/client_portal/notifications.html:143
msgid "You have no unread notifications. All caught up!"
msgstr ""

#: app/templates/client_portal/notifications.html:145
msgid "You have no notifications yet. Notifications will appear here when there are updates to your projects or invoices."
msgstr ""

#: app/templates/client_portal/project_comments.html:4
#: app/templates/client_portal/project_comments.html:16
msgid "Project Comments"
msgstr ""

#: app/templates/client_portal/project_comments.html:11
#: app/templates/comments/_comments_section.html:6
#: app/templates/quotes/view.html:274
msgid "Comments"
msgstr "Kommentit"

#: app/templates/client_portal/project_comments.html:22
#: app/templates/comments/_comments_section.html:12
#: app/templates/quotes/view.html:280
msgid "Add Comment"
msgstr "Lisää kommentti"

#: app/templates/client_portal/project_comments.html:26
#: app/templates/comments/_comments_section.html:28
#: app/templates/quotes/view.html:290
msgid "Your Comment"
msgstr "Sinun kommenttisi"

#: app/templates/client_portal/project_comments.html:29
msgid "Enter your comment..."
msgstr ""

#: app/templates/client_portal/project_comments.html:33
#: app/templates/comments/_comments_section.html:41
#: app/templates/quotes/view.html:301
msgid "Post Comment"
msgstr "Lähetä kommentti"

#: app/templates/client_portal/project_comments.html:72
msgid "No Comments"
msgstr ""

#: app/templates/client_portal/project_comments.html:73
msgid "Be the first to comment on this project."
msgstr ""

#: app/templates/client_portal/project_comments.html:81
#: app/templates/projects/create.html:11
msgid "Back to Projects"
msgstr "Takaisin Projekteihin"

#: app/templates/client_portal/projects.html:15
#, python-format
msgid "Projects for %(client_name)s"
msgstr "Projektit käyttäjälle %(client_name)s"

#: app/templates/client_portal/projects.html:85
msgid "View Time Entries"
msgstr ""

#: app/templates/client_portal/projects.html:99
#: app/templates/client_portal/widgets/projects.html:41
msgid "No projects found"
msgstr ""

#: app/templates/client_portal/projects.html:101
msgid "There are no projects available at this time. Projects will appear here once they are created and assigned to your account."
msgstr ""

#: app/templates/client_portal/quote_detail.html:16
#: app/templates/client_portal/quote_detail.html:33
#: app/templates/quotes/accept.html:15 app/templates/quotes/pdf_default.html:78
#: app/templates/quotes/view.html:57
msgid "Quote Details"
msgstr "Lainauksen tiedot"

#: app/templates/client_portal/quote_detail.html:37
#: app/templates/client_portal/quotes.html:28
#: app/templates/client_portal/quotes.html:44
#: app/templates/quotes/create.html:168 app/templates/quotes/edit.html:267
#: app/templates/quotes/pdf_default.html:59 app/templates/quotes/view.html:413
#: app/utils/pdf_generator_fallback.py:562
msgid "Valid Until"
msgstr "Voimassa asti"

#: app/templates/client_portal/quote_detail.html:50
msgid "This quote has expired."
msgstr "Tämä lainaus on vanhentunut."

#: app/templates/client_portal/quote_detail.html:64
#: app/templates/quotes/view.html:97
msgid "Quote Items"
msgstr "Lainauskohteet"

#: app/templates/client_portal/quote_detail.html:86
#: app/templates/inventory/reports/low_stock.html:30
#: app/templates/inventory/reports/low_stock.html:47
#: app/templates/inventory/reports/turnover.html:45
#: app/templates/inventory/reports/turnover.html:60
#: app/templates/inventory/reports/valuation.html:59
#: app/templates/inventory/reports/valuation.html:79
#: app/templates/inventory/stock_items/form.html:23
#: app/templates/inventory/stock_items/list.html:49
#: app/templates/inventory/stock_items/list.html:62
#: app/templates/inventory/stock_items/view.html:28
#: app/templates/inventory/stock_levels/warehouse.html:46
#: app/templates/inventory/stock_levels/warehouse.html:63
#: app/templates/inventory/warehouses/view.html:85
#: app/templates/inventory/warehouses/view.html:100
#: app/templates/invoices/edit.html:237 app/templates/invoices/edit.html:266
#: app/templates/invoices/edit.html:626
#: app/templates/invoices/pdf_default.html:139
#: app/templates/quotes/_edit_quote_form_scripts.html:237
#: app/templates/quotes/create.html:130 app/templates/quotes/edit.html:204
#: app/templates/quotes/edit.html:228 app/templates/quotes/pdf_default.html:107
#: app/templates/quotes/view.html:119 app/utils/pdf_generator.py:1273
#: app/utils/pdf_generator_reportlab.py:639
msgid "SKU"
msgstr "SKU"

#: app/templates/client_portal/quote_detail.html:122
msgid "Terms & Conditions"
msgstr "Ehdot"

#: app/templates/client_portal/quote_detail.html:135
msgid "Are you sure you want to accept this quote?"
msgstr ""

#: app/templates/client_portal/quote_detail.html:137
#: app/templates/quotes/accept.html:3 app/templates/quotes/accept.html:8
#: app/templates/quotes/view.html:248
msgid "Accept Quote"
msgstr "Hyväksy tarjous"

#: app/templates/client_portal/quote_detail.html:144
#: app/templates/client_portal/quote_detail.html:155
#: app/templates/client_portal/quote_detail.html:172
#: app/templates/quotes/view.html:252 app/templates/quotes/view.html:254
msgid "Reject Quote"
msgstr "Hylkää lainaus"

#: app/templates/client_portal/quote_detail.html:148
#: app/templates/quotes/view.html:15
msgid "Back to Quotes"
msgstr "Takaisin lainauksiin"

#: app/templates/client_portal/quote_detail.html:159
msgid "Reason (optional)"
msgstr ""

#: app/templates/client_portal/quote_detail.html:162
msgid "Please provide a reason for rejecting this quote..."
msgstr ""

#: app/templates/client_portal/quotes.html:15
#, python-format
msgid "Quotes for %(client_name)s"
msgstr "Lainaukset asiakkaalle %(client_name)s"

#: app/templates/client_portal/quotes.html:48
#: app/templates/integrations/health.html:74
#: app/templates/inventory/reservations/list.html:26
#: app/templates/inventory/reservations/list.html:86
#: app/templates/inventory/reservations/list.html:94
#: app/templates/kiosk/dashboard.html:202
#: app/templates/quotes/_quotes_list.html:70 app/templates/quotes/list.html:85
#: app/templates/quotes/view.html:79 app/templates/quotes/view.html:417
msgid "Expired"
msgstr "Vanhentunut"

#: app/templates/client_portal/quotes.html:76
msgid "No quotes found."
msgstr "Lainauksia ei löytynyt."

#: app/templates/client_portal/reports.html:15
msgid "Project and invoice summaries"
msgstr ""

#: app/templates/client_portal/reports.html:26
#: app/templates/client_portal/widgets/stats.html:20
#: app/templates/components/support_modal.html:25
#: app/templates/main/donate.html:173
msgid "Hours tracked"
msgstr ""

#: app/templates/client_portal/reports.html:81
#, fuzzy
msgid "Project progress"
msgstr "Projektikoodi"

#: app/templates/client_portal/reports.html:93
#, fuzzy
msgid "Est. / Budget"
msgstr "Yli budjetin"

#: app/templates/client_portal/reports.html:136
msgid "No project hours data available."
msgstr ""

#: app/templates/client_portal/reports.html:149
#, fuzzy
msgid "Task summary"
msgstr "Yhteenveto"

#: app/templates/client_portal/reports.html:153
#, fuzzy, python-format
msgid "Total tasks: %(count)s"
msgstr "Kokonaismäärä"

#: app/templates/client_portal/reports.html:164
#, fuzzy
msgid "No tasks yet."
msgstr "Tehtäviä ei ole valittu"

#: app/templates/client_portal/reports.html:178
#, fuzzy
msgid "Time by date (last 30 days)"
msgstr "Ei toimintaa viimeisen 30 päivän aikana."

#: app/templates/client_portal/reports.html:211
msgid "Recent Time Entries (Last 30 Days)"
msgstr ""

#: app/templates/client_portal/reports.html:263
msgid "No recent time entries."
msgstr ""

#: app/templates/client_portal/set_password.html:6
#: app/templates/client_portal/set_password.html:63
msgid "Set Password"
msgstr "Aseta salasana"

#: app/templates/client_portal/set_password.html:30
msgid "Set your password to get started"
msgstr "Aloita määrittämällä salasanasi"

#: app/templates/client_portal/set_password.html:34
#: app/templates/email/client_portal_password_setup.html:97
msgid "Set Your Password"
msgstr "Aseta salasanasi"

#: app/templates/client_portal/set_password.html:36
msgid "Set a password for your client portal account"
msgstr "Aseta salasana asiakasportaalitilillesi"

#: app/templates/client_portal/set_password.html:57
msgid "Confirm Password"
msgstr "Vahvista salasana"

#: app/templates/client_portal/set_password.html:60
msgid "Confirm your password"
msgstr "Vahvista salasanasi"

#: app/templates/client_portal/time_entries.html:15
#, python-format
msgid "Time entries for %(client_name)s projects"
msgstr "%(client_name)s-projektien aikamerkinnät"

#: app/templates/client_portal/time_entries.html:27
#: app/templates/gantt/view.html:30 app/templates/reports/builder.html:96
#: app/templates/reports/time_entries_report.html:38
#: app/templates/tasks/my_tasks.html:151 app/templates/timer/calendar.html:62
#: app/templates/timer/time_entries_overview.html:91
msgid "All Projects"
msgstr "Kaikki projektit"

#: app/templates/client_portal/time_entries.html:35
msgid "From Date"
msgstr "Päivämäärästä alkaen"

#: app/templates/client_portal/time_entries.html:42
msgid "To Date"
msgstr "Päivämäärään"

#: app/templates/client_portal/time_entries.html:148
msgid "Total entries"
msgstr "Tuloksia yhteensä"

#: app/templates/client_portal/time_entries.html:154
#: app/templates/clients/view.html:409 app/templates/clients/view.html:588
#: app/templates/reports/week_in_review.html:26
#: app/templates/timer/bulk_entry.html:337
msgid "Total hours"
msgstr "Tunteja yhteensä"

#: app/templates/client_portal/time_entries.html:170
msgid "No time entries match your current filters. Try adjusting your filter criteria."
msgstr ""

#: app/templates/client_portal/time_entries.html:172
msgid "There are no time entries available at this time. Time entries will appear here once they are logged for your projects."
msgstr ""

#: app/templates/client_portal/time_entries.html:179
#: app/templates/timer/time_entries_overview.html:37
#: app/templates/timer/time_entries_overview.html:38
msgid "Clear Filters"
msgstr ""

#: app/templates/client_portal/widgets/invoices.html:8
msgid "Recent Invoices"
msgstr "Viimeaikaiset laskut"

#: app/templates/client_portal/widgets/invoices.html:11
#: app/templates/client_portal/widgets/pending_actions.html:29
#: app/templates/client_portal/widgets/projects.html:11
#: app/templates/client_portal/widgets/time_entries.html:11
msgid "View All"
msgstr "Näytä kaikki"

#: app/templates/client_portal/widgets/invoices.html:46
msgid "Invoices will appear here once they are created"
msgstr ""

#: app/templates/client_portal/widgets/pending_actions.html:8
msgid "Action Required"
msgstr ""

#: app/templates/client_portal/widgets/pending_actions.html:10
msgid "Time entries awaiting your review"
msgstr ""

#: app/templates/client_portal/widgets/pending_actions.html:14
msgid "Review Now"
msgstr ""

#: app/templates/client_portal/widgets/pending_actions.html:23
msgid "New Updates"
msgstr ""

#: app/templates/client_portal/widgets/pending_actions.html:25
msgid "Notifications waiting for you"
msgstr ""

#: app/templates/client_portal/widgets/projects.html:42
msgid "Projects will appear here once they are created"
msgstr ""

#: app/templates/client_portal/widgets/stats.html:8
msgid "Total active"
msgstr ""

#: app/templates/client_portal/widgets/stats.html:30
msgid "Total Invoices"
msgstr "Laskut yhteensä"

#: app/templates/client_portal/widgets/stats.html:32
msgid "All invoices"
msgstr ""

#: app/templates/client_portal/widgets/time_entries.html:8
#: app/templates/user/profile.html:89
msgid "Recent Time Entries"
msgstr "Viimeaikaiset aikamerkinnät"

#: app/templates/client_portal/widgets/time_entries.html:69
msgid "Time entries will appear here once they are logged"
msgstr ""

#: app/templates/clients/_clients_list.html:7
#: app/templates/expenses/list.html:171 app/templates/expenses/list.html:250
#: app/templates/projects/_projects_list.html:18
#: app/templates/projects/list.html:99
#: app/templates/reports/export_form.html:196
#: app/templates/reports/export_form.html:329
#: app/templates/reports/time_entries_report.html:93
#: app/templates/tasks/_tasks_list.html:7
msgid "Export to CSV"
msgstr "Vie CSV-muotoon"

#: app/templates/clients/create.html:4 app/templates/clients/create.html:10
#: app/templates/clients/create.html:109 app/templates/projects/create.html:266
#: app/templates/projects/create.html:308
msgid "Create Client"
msgstr "Luo asiakas"

#: app/templates/clients/create.html:8
msgid "Back to Clients"
msgstr "Takaisin asiakkaisiin"

#: app/templates/clients/create.html:10
msgid "Add a new client to manage related projects and billing."
msgstr "Lisää uusi asiakas hallinnoimaan liittyviä projekteja ja laskutusta."

#: app/templates/clients/create.html:21 app/templates/clients/edit.html:21
#: app/templates/projects/create.html:275
msgid "Enter client name"
msgstr "Anna asiakkaan nimi"

#: app/templates/clients/create.html:24 app/templates/clients/create.html:124
#: app/templates/clients/edit.html:24
#: app/templates/project_templates/create.html:52
#: app/templates/project_templates/edit.html:52
#: app/templates/projects/create.html:278
msgid "Default Hourly Rate"
msgstr "Oletustuntihinta"

#: app/templates/clients/create.html:25 app/templates/clients/edit.html:25
#: app/templates/projects/create.html:72 app/templates/projects/create.html:279
msgid "e.g. 75.00"
msgstr "esim. 75.00"

#: app/templates/clients/create.html:26 app/templates/clients/edit.html:26
msgid "This rate will be automatically filled when creating projects for this client"
msgstr "Tämä hinta täytetään automaattisesti luotaessa projekteja tälle asiakkaalle"

#: app/templates/clients/create.html:33 app/templates/projects/create.html:53
#: app/templates/projects/edit.html:49 app/templates/tasks/create.html:35
msgid "Supports Markdown"
msgstr "Tukee Markdownia"

#: app/templates/clients/create.html:36 app/templates/clients/edit.html:32
#: app/templates/projects/create.html:284
msgid "Brief description of the client or project scope"
msgstr "Lyhyt kuvaus tilaajan tai projektin laajuudesta"

#: app/templates/clients/create.html:43 app/templates/clients/edit.html:50
#: app/templates/inventory/suppliers/form.html:36
#: app/templates/inventory/suppliers/list.html:43
#: app/templates/inventory/suppliers/list.html:59
#: app/templates/inventory/suppliers/view.html:47
#: app/templates/inventory/warehouses/form.html:36
#: app/templates/inventory/warehouses/list.html:24
#: app/templates/inventory/warehouses/list.html:39
#: app/templates/inventory/warehouses/view.html:47
#: app/templates/main/help.html:243 app/templates/projects/create.html:288
msgid "Contact Person"
msgstr "Yhteyshenkilö"

#: app/templates/clients/create.html:44 app/templates/clients/edit.html:51
#: app/templates/projects/create.html:289
msgid "Primary contact name"
msgstr "Ensisijaisen yhteyshenkilön nimi"

#: app/templates/clients/create.html:48 app/templates/clients/edit.html:55
#: app/templates/projects/create.html:293
msgid "contact@client.com"
msgstr "contact@client.com"

#: app/templates/clients/create.html:54 app/templates/clients/edit.html:37
msgid "Monthly Prepaid Hours"
msgstr "Kuukausittaiset prepaid-tunnit"

#: app/templates/clients/create.html:55 app/templates/clients/edit.html:38
msgid "e.g. 50"
msgstr "esim. 50"

#: app/templates/clients/create.html:56 app/templates/clients/edit.html:39
msgid "Leave empty if this client has no prepaid allocation."
msgstr "Jätä tyhjäksi, jos asiakkaalla ei ole ennakkoon maksettua varausta."

#: app/templates/clients/create.html:59 app/templates/clients/edit.html:42
msgid "Prepaid Reset Day"
msgstr "Prepaid Reset Day"

#: app/templates/clients/create.html:61 app/templates/clients/edit.html:44
msgid "Day of the month when prepaid hours reset (1-28)."
msgstr "Kuukauden päivä, jolloin prepaid-tunnit nollataan (1-28)."

#: app/templates/clients/create.html:68 app/templates/clients/edit.html:62
msgid "+1 (555) 123-4567"
msgstr "+1 (555) 123-4567"

#: app/templates/clients/create.html:72 app/templates/clients/edit.html:66
msgid "Client address"
msgstr "Asiakkaan osoite"

#: app/templates/clients/create.html:80 app/templates/clients/edit.html:74
msgid "These custom fields are defined globally and available for all clients."
msgstr ""

#: app/templates/clients/create.html:94 app/templates/clients/edit.html:88
#: app/templates/projects/create.html:123 app/templates/projects/edit.html:114
msgid "Enter value"
msgstr ""

#: app/templates/clients/create.html:121
msgid "Choose a clear, descriptive name for the client organization."
msgstr "Valitse selkeä, kuvaava nimi asiakasorganisaatiolle."

#: app/templates/clients/create.html:125
msgid "Set the standard hourly rate for this client. This will automatically populate when creating new projects."
msgstr "Aseta tälle asiakkaalle vakiotuntihinta. Tämä täyttää automaattisesti uusia projekteja luotaessa."

#: app/templates/clients/create.html:128 app/templates/contacts/view.html:25
#: app/templates/leads/view.html:39
msgid "Contact Information"
msgstr "Yhteystiedot"

#: app/templates/clients/create.html:129
msgid "Add contact details for easy communication and record keeping."
msgstr "Lisää yhteystiedot helpottaaksesi viestintää ja kirjaamista."

#: app/templates/clients/create.html:132 app/templates/clients/view.html:176
msgid "Prepaid Hours"
msgstr "Prepaid-tunnit"

#: app/templates/clients/create.html:133
msgid "Configure monthly included hours and the reset day if this client has a retainer or prepaid bundle."
msgstr "Määritä kuukausittaiset tunnit ja nollauspäivä, jos tällä asiakkaalla on säilytin tai ennakkoon maksettu paketti."

#: app/templates/clients/create.html:137
msgid "Provide context about the client relationship or typical project types."
msgstr "Anna konteksti asiakassuhteesta tai tyypillisistä projektityypeistä."

#: app/templates/clients/edit.html:4 app/templates/clients/edit.html:10
#: app/templates/clients/view.html:9
msgid "Edit Client"
msgstr "Muokkaa asiakasta"

#: app/templates/clients/edit.html:104
msgid "Enable portal access for this client. Clients can log in with their own credentials to view projects, invoices, and time entries."
msgstr "Salli portaalin käyttö tälle asiakkaalle. Asiakkaat voivat kirjautua sisään omilla tunnuksillaan nähdäkseen projekteja, laskuja ja aikamerkintöjä."

#: app/templates/clients/edit.html:109
msgid "Enable Client Portal"
msgstr "Ota asiakasportaali käyttöön"

#: app/templates/clients/edit.html:115
msgid "Enable Issue Reporting"
msgstr ""

#: app/templates/clients/edit.html:118
msgid "Allow clients to report bugs and issues through the portal"
msgstr ""

#: app/templates/clients/edit.html:123
msgid "Portal Username"
msgstr "Portaalin käyttäjätunnus"

#: app/templates/clients/edit.html:125
msgid "Unique username for portal login"
msgstr "Ainutlaatuinen käyttäjätunnus portaaliin kirjautumiseen"

#: app/templates/clients/edit.html:128
msgid "Portal Password"
msgstr "Portaalin salasana"

#: app/templates/clients/edit.html:129
#: app/templates/integrations/caldav_setup.html:99
#: app/templates/integrations/manage.html:257
msgid "Leave empty to keep current password"
msgstr "Jätä tyhjäksi säilyttääksesi nykyisen salasanan"

#: app/templates/clients/edit.html:130
msgid "Set a new password or leave empty to keep current"
msgstr "Aseta uusi salasana tai jätä tyhjäksi pysyäksesi ajan tasalla"

#: app/templates/clients/edit.html:135
msgid "Current portal username"
msgstr "Nykyinen portaalin käyttäjätunnus"

#: app/templates/clients/edit.html:144
msgid "Update Client"
msgstr "Päivitä asiakas"

#: app/templates/clients/edit.html:153
msgid "Send Password Setup Email"
msgstr "Lähetä salasanan asetussähköposti"

#: app/templates/clients/edit.html:157
#, python-format
msgid "Send an email to %(email)s with a link to set their portal password."
msgstr "Lähetä sähköposti osoitteeseen %(email)s, jossa on linkki portaalin salasanan asettamiseen."

#: app/templates/clients/edit.html:163
msgid "Email address is required to send password setup email. Please set the client email address above."
msgstr "Sähköpostiosoite vaaditaan salasanan asetussähköpostin lähettämiseen. Aseta asiakkaan sähköpostiosoite yllä."

#: app/templates/clients/edit.html:172
msgid "Client Statistics"
msgstr "Asiakastilastot"

#: app/templates/clients/edit.html:188
msgid "Est. Total Cost"
msgstr "Arvioitu Kokonaiskustannukset"

#: app/templates/clients/list.html:19
msgid "Filter Clients"
msgstr "Suodata asiakkaat"

#: app/templates/clients/list.html:20 app/templates/expenses/list.html:66
#: app/templates/invoices/list.html:33 app/templates/mileage/list.html:68
#: app/templates/payments/list.html:46 app/templates/per_diem/list.html:56
#: app/templates/projects/list.html:20 app/templates/quotes/list.html:67
#: app/templates/tasks/list.html:34 app/templates/tasks/my_tasks.html:107
msgid "Toggle Filters"
msgstr "Vaihda suodattimet"

#: app/templates/clients/list.html:77 app/templates/clients/list.html:106
#: app/templates/expenses/list.html:445 app/templates/expenses/list.html:474
#: app/templates/invoices/list.html:304 app/templates/invoices/list.html:333
#: app/templates/mileage/list.html:326 app/templates/mileage/list.html:355
#: app/templates/payments/list.html:281 app/templates/payments/list.html:310
#: app/templates/per_diem/list.html:365 app/templates/per_diem/list.html:394
#: app/templates/projects/list.html:459 app/templates/projects/list.html:488
#: app/templates/quotes/list.html:116 app/templates/quotes/list.html:143
#: app/templates/tasks/list.html:456 app/templates/tasks/list.html:485
#: app/templates/tasks/my_tasks.html:608 app/templates/tasks/my_tasks.html:638
msgid "Hide Filters"
msgstr "Piilota suodattimet"

#: app/templates/clients/list.html:84 app/templates/clients/list.html:100
#: app/templates/expenses/list.html:452 app/templates/expenses/list.html:468
#: app/templates/invoices/list.html:311 app/templates/invoices/list.html:327
#: app/templates/mileage/list.html:333 app/templates/mileage/list.html:349
#: app/templates/payments/list.html:288 app/templates/payments/list.html:304
#: app/templates/per_diem/list.html:372 app/templates/per_diem/list.html:388
#: app/templates/projects/list.html:466 app/templates/projects/list.html:482
#: app/templates/quotes/list.html:122 app/templates/quotes/list.html:138
#: app/templates/tasks/list.html:463 app/templates/tasks/list.html:479
#: app/templates/tasks/my_tasks.html:615 app/templates/tasks/my_tasks.html:632
msgid "Show Filters"
msgstr "Näytä suodattimet"

#: app/templates/clients/view.html:24
msgid "Assign a project to direct time entries before invoicing."
msgstr ""

#: app/templates/clients/view.html:24
#, fuzzy
msgid "No billable unbilled time for this client."
msgstr "Tälle projektille ei löytynyt laskuttamattomia aikamerkintöjä."

#: app/templates/clients/view.html:25
#, fuzzy
msgid "No unbilled time"
msgstr "Laskuttamattomat aikamerkinnät"

#: app/templates/clients/view.html:25 app/templates/clients/view.html:596
#, fuzzy
msgid "Invoice unbilled time"
msgstr "Laskun erät"

#: app/templates/clients/view.html:30
msgid "Mark client as Inactive?"
msgstr "Merkitäänkö asiakas ei-aktiiviseksi?"

#: app/templates/clients/view.html:30
msgid "Change Client Status"
msgstr "Muuta asiakkaan tilaa"

#: app/templates/clients/view.html:32 app/templates/projects/view.html:57
msgid "Mark Inactive"
msgstr "Merkitse ei-aktiiviseksi"

#: app/templates/clients/view.html:35
msgid "Activate client?"
msgstr "Aktivoi asiakas?"

#: app/templates/clients/view.html:35
msgid "Activate Client"
msgstr "Aktivoi asiakas"

#: app/templates/clients/view.html:44
msgid "Delete Client"
msgstr "Poista asiakas"

#: app/templates/clients/view.html:53
#, fuzzy
msgid "Client details and associated projects."
msgstr "Aktiiviset projektit kokonaisuudessaan"

#: app/templates/clients/view.html:62 app/templates/integrations/list.html:162
msgid "Manage"
msgstr "Hallitse"

#: app/templates/clients/view.html:76 app/templates/contacts/form.html:65
#: app/templates/contacts/list.html:42
msgid "Primary"
msgstr "Ensisijainen"

#: app/templates/clients/view.html:87
msgid "more contact(s)"
msgstr "lisää yhteystietoja"

#: app/templates/clients/view.html:92
msgid "No contacts yet"
msgstr "Ei vielä yhteystietoja"

#: app/templates/clients/view.html:94
msgid "Add Contact"
msgstr "Lisää yhteystieto"

#: app/templates/clients/view.html:100
msgid "Legacy Contact Info"
msgstr "Vanhat yhteystiedot"

#: app/templates/clients/view.html:178
#, python-format
msgid "Plan includes %(hours)s hours per cycle. Resets on day %(day)s."
msgstr "Suunnitelmaan sisältyy %(hours)s tuntia sykliä kohden. Nollautuu päivänä %(day)s."

#: app/templates/clients/view.html:182
msgid "Current cycle start"
msgstr "Nykyisen syklin aloitus"

#: app/templates/clients/view.html:186
msgid "Remaining hours"
msgstr "Jäljellä olevat tunnit"

#: app/templates/clients/view.html:187 app/templates/clients/view.html:191
#: app/templates/invoices/generate_from_time.html:30
#: app/templates/invoices/generate_from_time.html:39
#: app/templates/invoices/generate_from_time.html:57
#: app/templates/projects/view.html:468 app/templates/tasks/_tasks_list.html:88
#: app/templates/tasks/edit.html:170 app/templates/tasks/edit.html:172
#: app/templates/tasks/edit.html:175 app/templates/tasks/view.html:155
msgid "h"
msgstr "h"

#: app/templates/clients/view.html:190
msgid "Consumed this cycle"
msgstr "Kulutettu tämä sykli"

#: app/templates/clients/view.html:201 app/templates/projects/view.html:328
msgid "Attachments"
msgstr ""

#: app/templates/clients/view.html:219 app/templates/projects/view.html:346
msgid "File"
msgstr ""

#: app/templates/clients/view.html:221 app/templates/projects/view.html:348
msgid "Max size: 10 MB. Allowed: images, PDFs, documents, spreadsheets, archives"
msgstr ""

#: app/templates/clients/view.html:224 app/templates/projects/view.html:351
msgid "Description (optional)"
msgstr ""

#: app/templates/clients/view.html:225
msgid "e.g., Contract, Agreement, etc."
msgstr ""

#: app/templates/clients/view.html:230 app/templates/projects/view.html:357
msgid "Visible to client in portal"
msgstr ""

#: app/templates/clients/view.html:272 app/templates/projects/view.html:399
#: app/templates/quotes/view.html:322
msgid "Client Visible"
msgstr "Asiakas näkyvissä"

#: app/templates/clients/view.html:278 app/templates/comments/_comment.html:83
#: app/templates/projects/view.html:405
msgid "Are you sure you want to delete this attachment?"
msgstr ""

#: app/templates/clients/view.html:278 app/templates/projects/view.html:405
msgid "Delete Attachment"
msgstr ""

#: app/templates/clients/view.html:288 app/templates/projects/view.html:415
msgid "No attachments yet"
msgstr ""

#: app/templates/clients/view.html:322 app/templates/projects/view.html:122
#: app/utils/i18n_helpers.py:51 app/utils/i18n_helpers.py:57
msgid "Archived"
msgstr "Arkistoitu"

#: app/templates/clients/view.html:343
msgid "Recent Hours History"
msgstr ""

#: app/templates/clients/view.html:408
#, python-format
msgid "Showing last %(count)s entries"
msgstr ""

#: app/templates/clients/view.html:414
msgid "No recent time entries found."
msgstr ""

#: app/templates/clients/view.html:424
#: app/templates/inventory/purchase_orders/form.html:59
#: app/templates/quotes/create.html:248 app/templates/quotes/edit.html:334
msgid "Internal Notes"
msgstr "Sisäiset huomautukset"

#: app/templates/clients/view.html:426
msgid "Add Note"
msgstr "Lisää huomautus"

#: app/templates/clients/view.html:442
msgid "Add an internal note about this client..."
msgstr "Lisää sisäinen huomautus tästä asiakkaasta..."

#: app/templates/clients/view.html:458
msgid "Save Note"
msgstr "Tallenna muistiinpano"

#: app/templates/clients/view.html:482 app/templates/comments/_comment.html:29
msgid "edited"
msgstr "muokattu"

#: app/templates/clients/view.html:491
msgid "Important"
msgstr "Tärkeää"

#: app/templates/clients/view.html:500
msgid "Unmark"
msgstr "Poista merkintä"

#: app/templates/clients/view.html:500
msgid "Mark Important"
msgstr "Merkitse tärkeäksi"

#: app/templates/clients/view.html:527
msgid "No notes yet. Add a note to keep track of important information about this client."
msgstr "Ei muistiinpanoja vielä. Lisää muistiinpano, jotta voit seurata tätä asiakasta koskevia tärkeitä tietoja."

#: app/templates/clients/view.html:590
#, fuzzy
msgid "Estimated total"
msgstr "Arvioitu arvo"

#: app/templates/clients/view.html:594
#, fuzzy
msgid "Create a draft invoice?"
msgstr "Luo lasku"

#: app/templates/clients/view.html:597
#, fuzzy
msgid "Create invoice"
msgstr "Luo lasku"

#: app/templates/clients/view.html:615 app/templates/clients/view.html:621
#, fuzzy
msgid "Could not create invoice."
msgstr "Luo lasku"

#: app/templates/clients/view.html:630
msgid "Are you sure you want to delete this note?"
msgstr "Haluatko varmasti poistaa tämän muistiinpanon?"

#: app/templates/clients/view.html:632
msgid "Delete Note"
msgstr "Poista huomautus"

#: app/templates/comments/_comment.html:28
msgid "Edited on"
msgstr "Muokattu"

#: app/templates/comments/_comment.html:45
#: app/templates/comments/_comment.html:161 app/templates/quotes/view.html:370
#: app/templates/quotes/view.html:384
msgid "Reply"
msgstr "Vastata"

#: app/templates/comments/_comment.html:103
msgid "Add Attachment"
msgstr ""

#: app/templates/comments/_comment.html:114
msgid "Max 10 MB. Images, PDFs, documents, spreadsheets, archives"
msgstr ""

#: app/templates/comments/_comment.html:157
msgid "Write your reply..."
msgstr "Kirjoita vastauksesi..."

#: app/templates/comments/_comment.html:184
msgid "Replies are too deeply nested to display."
msgstr ""

#: app/templates/comments/_comment.html:193
msgid "Comment nesting too deep to display."
msgstr ""

#: app/templates/comments/_comments_section.html:30
#: app/templates/quotes/view.html:291
msgid "Share your thoughts, updates, or questions..."
msgstr "Jaa ajatuksesi, päivityksesi tai kysymyksesi..."

#: app/templates/comments/_comments_section.html:32
#: app/templates/comments/edit.html:74
msgid "You can use line breaks to format your comment."
msgstr "Voit muotoilla kommenttisi rivinvaihtojen avulla."

#: app/templates/comments/_comments_section.html:34
msgid "Add Image"
msgstr "Lisää kuva"

#: app/templates/comments/_comments_section.html:73
msgid "No comments yet"
msgstr "Ei vielä kommentteja"

#: app/templates/comments/_comments_section.html:74
msgid "Start the conversation by adding the first comment."
msgstr "Aloita keskustelu lisäämällä ensimmäinen kommentti."

#: app/templates/comments/_comments_section.html:76
msgid "Add First Comment"
msgstr "Lisää ensimmäinen kommentti"

#: app/templates/comments/edit.html:3 app/templates/comments/edit.html:12
msgid "Edit Comment"
msgstr "Muokkaa kommenttia"

#: app/templates/comments/edit.html:15 app/templates/invoices/edit.html:7
#: app/templates/setup/initial_setup.html:279
#: app/templates/setup/initial_setup.html:280
#: app/templates/timer/bulk_entry.html:71
#: app/templates/timer/bulk_entry.html:219
#: app/templates/timer/edit_timer.html:386
#: app/templates/timer/edit_timer.html:507
#: app/templates/weekly_goals/view.html:30
msgid "Back"
msgstr "Takaisin"

#: app/templates/comments/edit.html:26
msgid "Editing comment on:"
msgstr "Muokataan kommenttia:"

#: app/templates/comments/edit.html:54
msgid "Originally posted on"
msgstr "Alunperin lähetetty"

#: app/templates/comments/edit.html:70
msgid "Comment Content"
msgstr "Kommentoi sisältöä"

#: app/templates/components/activity_feed_widget.html:18
msgid "All Activities"
msgstr "Kaikki aktiviteetit"

#: app/templates/components/activity_feed_widget.html:35
msgid "Time Templates"
msgstr "Aikamallit"

#: app/templates/components/activity_feed_widget.html:103
#: app/templates/components/activity_feed_widget.html:306
#: app/templates/main/dashboard.html:623
#: app/templates/projects/dashboard.html:267
#: app/templates/user/profile.html:153
msgid "No recent activity"
msgstr "Ei viimeaikaista toimintaa"

#: app/templates/components/activity_feed_widget.html:104
#: app/templates/components/activity_feed_widget.html:307
msgid "Activity will appear here as you work"
msgstr "Toiminta näkyy tässä työskennellessäsi"

#: app/templates/components/activity_feed_widget.html:111
#: app/templates/components/activity_feed_widget.html:296
#: app/templates/components/activity_feed_widget.html:334
msgid "Load More"
msgstr "Lataa lisää"

#: app/templates/components/activity_feed_widget.html:327
msgid "Failed to load activities"
msgstr "Toimintojen lataaminen epäonnistui"

#: app/templates/components/chat_user_selector.html:6
msgid "Start a Chat"
msgstr ""

#: app/templates/components/chat_user_selector.html:17
msgid "Search users..."
msgstr ""

#: app/templates/components/chat_user_selector.html:26
msgid "Loading users..."
msgstr ""

#: app/templates/components/chat_user_selector.html:32
#: app/templates/components/chat_user_selector.html:116
msgid "Failed to load users"
msgstr ""

#: app/templates/components/chat_user_selector.html:43
msgid "No users found"
msgstr ""

#: app/templates/components/chat_user_selector.html:213
msgid "Starting chat..."
msgstr ""

#: app/templates/components/chat_user_selector.html:270
msgid "Failed to start chat"
msgstr ""

#: app/templates/components/client_select.html:8
#: app/templates/components/client_select.html:13
#: app/templates/components/client_select.html:17
#: app/templates/projects/create.html:35 app/templates/projects/edit.html:33
msgid "Client (auto-selected)"
msgstr ""

#: app/templates/components/client_select.html:20
#: app/templates/projects/create.html:38 app/templates/projects/edit.html:36
msgid "Select a client..."
msgstr "Valitse asiakas..."

#: app/templates/components/client_select.html:20
msgid "Select a client (optional)"
msgstr ""

#: app/templates/components/multi_select.html:47
#: app/templates/components/multi_select.html:209
msgid "Selected"
msgstr ""

#: app/templates/components/multi_select.html:67
msgid "Search..."
msgstr ""

#: app/templates/components/multi_select.html:80
msgid "Select all"
msgstr ""

#: app/templates/components/multi_select.html:105
msgid "No items available"
msgstr ""

#: app/templates/components/multi_select.html:122
#: app/templates/projects/time_entries_overview.html:39
#: app/templates/reports/index.html:94
msgid "Apply"
msgstr ""

#: app/templates/components/offline_indicator.html:10
#: app/templates/integrations/manage.html:630
#: app/templates/integrations/view.html:143
msgid "Sync Now"
msgstr ""

#: app/templates/components/offline_indicator.html:18
msgid "Pending Sync"
msgstr ""

#: app/templates/components/offline_indicator.html:24
#: app/templates/components/offline_indicator.html:56
msgid "No pending items"
msgstr ""

#: app/templates/components/offline_indicator.html:29
msgid "Sync All"
msgstr ""

#: app/templates/components/offline_indicator.html:96
msgid "Error loading queue"
msgstr ""

#: app/templates/components/persistent_chat_widget.html:9
msgid "Toggle chat"
msgstr ""

#: app/templates/components/persistent_chat_widget.html:21
msgid "Chat"
msgstr ""

#: app/templates/components/persistent_chat_widget.html:27
msgid "Start new chat"
msgstr ""

#: app/templates/components/persistent_chat_widget.html:41
msgid "Minimize chat"
msgstr ""

#: app/templates/components/persistent_chat_widget.html:90
msgid "View full"
msgstr ""

#: app/templates/components/persistent_chat_widget.html:331
msgid "Failed to load messages"
msgstr ""

#: app/templates/components/persistent_chat_widget.html:341
msgid "No messages yet"
msgstr ""

#: app/templates/components/persistent_chat_widget.html:403
#: app/templates/components/persistent_chat_widget.html:409
msgid "Failed to send message"
msgstr ""

#: app/templates/components/support_modal.html:12
msgid "Thank you for being a supporter. Sharing the app helps others discover it too."
msgstr ""

#: app/templates/components/support_modal.html:14
msgid "TimeTracker is free and built independently. If it helps you, consider supporting its development."
msgstr ""

#: app/templates/components/support_modal.html:37
msgid "Trusted by teams and freelancers who want simple, reliable time tracking."
msgstr ""

#: app/templates/components/support_modal.html:40
#: app/templates/components/support_modal.html:41
#: app/templates/components/support_modal.html:42
#: app/templates/main/about.html:215 app/templates/main/dashboard.html:653
#: app/templates/main/donate.html:34 app/templates/main/donate.html:43
#, fuzzy
msgid "Donate"
msgstr "Tehty"

#: app/templates/components/support_modal.html:46
#: app/templates/user/license.html:28
msgid "Buy license (€25)"
msgstr ""

#: app/templates/components/support_modal.html:48
#, fuzzy
msgid "Love TimeTracker? Share it"
msgstr "TimeTrackerin ohjekeskus"

#: app/templates/components/support_modal.html:51
msgid "A license is a supporter badge — it does not lock features. You keep full access either way."
msgstr ""

#: app/templates/components/ui.html:52
msgid "Home"
msgstr "Kotiin"

#: app/templates/components/ui.html:79
#: app/templates/reports/time_entries_report.html:142
#, fuzzy
msgid "Pagination"
msgstr "Tiedot"

#: app/templates/components/ui.html:81
#: app/templates/timer/_time_entries_list.html:224
#, python-format
msgid "Showing %(start)s to %(end)s of %(total)s entries"
msgstr ""

#: app/templates/components/ui.html:750
msgid "Click to upload or drag and drop"
msgstr ""

#: app/templates/contacts/communication_form.html:31
#: app/templates/deals/activity_form.html:28
#: app/templates/leads/activity_form.html:28
msgid "Call"
msgstr "Soittaa"

#: app/templates/contacts/communication_form.html:34
msgid "Message"
msgstr "Viesti"

#: app/templates/contacts/communication_form.html:39
msgid "Direction"
msgstr "Suunta"

#: app/templates/contacts/communication_form.html:41
msgid "Outbound"
msgstr "Lähtevä"

#: app/templates/contacts/communication_form.html:42
msgid "Inbound"
msgstr "Saapuva"

#: app/templates/contacts/communication_form.html:47
#: app/templates/deals/activity_form.html:50
#: app/templates/leads/activity_form.html:50 app/templates/quotes/view.html:459
msgid "Subject"
msgstr "Aihe"

#: app/templates/contacts/communication_form.html:61
#: app/templates/deals/activity_form.html:38
#: app/templates/leads/activity_form.html:38
msgid "Scheduled"
msgstr "Aikataulutettu"

#: app/templates/contacts/communication_form.html:67
msgid "Follow-up Date"
msgstr "Seurantapäivämäärä"

#: app/templates/contacts/communication_form.html:72
msgid "Content/Notes"
msgstr "Sisältö/huomautukset"

#: app/templates/contacts/communication_form.html:79
msgid "Save Communication"
msgstr "Tallenna viestintä"

#: app/templates/contacts/form.html:27 app/templates/leads/form.html:25
msgid "First Name"
msgstr "Etunimi"

#: app/templates/contacts/form.html:32 app/templates/leads/form.html:30
msgid "Last Name"
msgstr "Sukunimi"

#: app/templates/contacts/form.html:47 app/templates/contacts/view.html:42
#: app/templates/main/about.html:157
msgid "Mobile"
msgstr "mobiili"

#: app/templates/contacts/form.html:57 app/templates/contacts/view.html:54
msgid "Department"
msgstr "osasto"

#: app/templates/contacts/form.html:64 app/templates/deals/form.html:40
#: app/templates/deals/view.html:42
msgid "Contact"
msgstr "Ota yhteyttä"

#: app/templates/contacts/form.html:66
msgid "Billing"
msgstr "Laskutus"

#: app/templates/contacts/form.html:67
msgid "Technical"
msgstr "Tekninen"

#: app/templates/contacts/form.html:74
msgid "Set as primary contact"
msgstr "Aseta ensisijaiseksi yhteyshenkilöksi"

#: app/templates/contacts/form.html:89 app/templates/leads/form.html:93
#: app/templates/leads/view.html:122 app/templates/main/search.html:38
#: app/templates/project_templates/create.html:35
#: app/templates/project_templates/edit.html:35
#: app/templates/project_templates/view.html:112
#: app/templates/reports/user_report.html:82
#: app/templates/tasks/_kanban.html:1299
#: app/templates/tasks/_tasks_list.html:32
#: app/templates/tasks/_tasks_list.html:49 app/templates/tasks/create.html:119
#: app/templates/tasks/edit.html:127 app/templates/tasks/list.html:45
#: app/templates/tasks/my_tasks.html:123 app/templates/tasks/view.html:139
#: app/templates/timer/_time_entries_list.html:42
#: app/templates/timer/_time_entries_list.html:122
#: app/templates/timer/bulk_entry.html:198
#: app/templates/timer/calendar.html:192 app/templates/timer/calendar.html:880
#: app/templates/timer/edit_timer.html:348
#: app/templates/timer/edit_timer.html:460
#: app/templates/timer/manual_entry.html:148
#: app/templates/timer/time_entries_export_pdf.html:20
#: app/templates/timer/view_timer.html:52
msgid "Tags"
msgstr "Tunnisteet"

#: app/templates/contacts/form.html:96
msgid "Save Contact"
msgstr "Tallenna yhteystieto"

#: app/templates/contacts/list.html:63
msgid "Set Primary"
msgstr "Aseta ensisijainen"

#: app/templates/contacts/list.html:76
msgid "No contacts found"
msgstr "Yhteystietoja ei löytynyt"

#: app/templates/contacts/list.html:78
msgid "Add First Contact"
msgstr "Lisää ensimmäinen yhteystieto"

#: app/templates/contacts/view.html:29
msgid "Primary Contact"
msgstr "Ensisijainen yhteyshenkilö"

#: app/templates/contacts/view.html:81
msgid "Communication History"
msgstr "Viestintähistoria"

#: app/templates/contacts/view.html:83
msgid "Add Communication"
msgstr "Lisää viestintä"

#: app/templates/contacts/view.html:104
msgid "No communications recorded"
msgstr "Viestintää ei tallennettu"

#: app/templates/deals/activity_form.html:4
#: app/templates/deals/activity_form.html:10
#: app/templates/deals/activity_form.html:15
#: app/templates/deals/activity_form.html:60 app/templates/deals/view.html:15
#: app/templates/deals/view.html:145 app/templates/leads/activity_form.html:4
#: app/templates/leads/activity_form.html:10
#: app/templates/leads/activity_form.html:15
#: app/templates/leads/activity_form.html:60 app/templates/leads/view.html:15
#: app/templates/leads/view.html:138
msgid "Add Activity"
msgstr ""

#: app/templates/deals/activity_form.html:42
#: app/templates/leads/activity_form.html:42
#, fuzzy
msgid "Activity Date"
msgstr "Aktivoida"

#: app/templates/deals/activity_form.html:51
#: app/templates/leads/activity_form.html:51
msgid "Brief subject or title"
msgstr ""

#: app/templates/deals/form.html:25 app/templates/deals/list.html:50
#: app/templates/deals/list.html:62 app/templates/leads/convert_to_deal.html:25
msgid "Deal Name"
msgstr "Sopimuksen nimi"

#: app/templates/deals/form.html:32 app/templates/leads/convert_to_deal.html:31
msgid "Select Client"
msgstr "Valitse Asiakas"

#: app/templates/deals/form.html:42
msgid "Select Contact"
msgstr "Valitse Yhteystiedot"

#: app/templates/deals/form.html:52 app/templates/deals/list.html:30
#: app/templates/deals/list.html:52 app/templates/deals/list.html:66
#: app/templates/deals/view.html:47
#: app/templates/invoice_approvals/list.html:32
#: app/templates/invoice_approvals/view.html:70
#: app/templates/leads/convert_to_deal.html:38
msgid "Stage"
msgstr "Vaihe"

#: app/templates/deals/form.html:61
msgid "Deal Value"
msgstr "Sopimuksen arvo"

#: app/templates/deals/form.html:75 app/templates/leads/convert_to_deal.html:46
msgid "Win Probability"
msgstr "Voiton todennäköisyys"

#: app/templates/deals/form.html:80 app/templates/leads/convert_to_deal.html:50
msgid "Expected Close Date"
msgstr "Odotettu sulkemispäivä"

#: app/templates/deals/form.html:86 app/templates/deals/view.html:126
msgid "Related Quote"
msgstr "Aiheeseen liittyvä lainaus"

#: app/templates/deals/form.html:88
msgid "Select Quote"
msgstr "Valitse Lainaus"

#: app/templates/deals/form.html:109
msgid "Save Deal"
msgstr "Tallenna tarjous"

#: app/templates/deals/list.html:25
msgid "Won"
msgstr "Voitti"

#: app/templates/deals/list.html:26
msgid "Lost"
msgstr "Kadonnut"

#: app/templates/deals/list.html:32
msgid "All Stages"
msgstr "Kaikki vaiheet"

#: app/templates/deals/list.html:53 app/templates/deals/list.html:71
#: app/templates/deals/view.html:60
msgid "Value"
msgstr "Arvo"

#: app/templates/deals/list.html:54 app/templates/deals/list.html:78
#: app/templates/deals/view.html:65
msgid "Probability"
msgstr "Todennäköisyys"

#: app/templates/deals/list.html:55 app/templates/deals/list.html:79
#: app/templates/deals/view.html:70
msgid "Expected Close"
msgstr "Odotettu sulkeutuva"

#: app/templates/deals/list.html:91
msgid "No deals found"
msgstr "Tarjouksia ei löytynyt"

#: app/templates/deals/list.html:93
msgid "Create First Deal"
msgstr "Luo ensimmäinen tarjous"

#: app/templates/deals/view.html:16
msgid "Pipeline"
msgstr ""

#: app/templates/deals/view.html:32
msgid "Deal Information"
msgstr ""

#: app/templates/deals/view.html:76
msgid "Actual Close"
msgstr ""

#: app/templates/deals/view.html:82 app/templates/leads/view.html:102
msgid "Owner"
msgstr ""

#: app/templates/deals/view.html:88
msgid "Related Lead"
msgstr ""

#: app/templates/deals/view.html:119
msgid "Loss Reason"
msgstr ""

#: app/templates/deals/view.html:133 app/templates/quotes/view.html:179
msgid "Related Project"
msgstr "Aiheeseen liittyvä projekti"

#: app/templates/deals/view.html:158 app/templates/leads/view.html:151
msgid "by"
msgstr ""

#: app/templates/deals/view.html:171 app/templates/leads/view.html:164
msgid "No activities recorded yet"
msgstr ""

#: app/templates/deals/view.html:173 app/templates/leads/view.html:166
msgid "Add first activity"
msgstr ""

#: app/templates/deals/view.html:180
#, fuzzy
msgid "History"
msgstr "Maalihistoria"

#: app/templates/deals/view.html:183
#, fuzzy
msgid "View full history"
msgstr "Näytä täydelliset tiedot"

#: app/templates/deals/view.html:226
msgid "No change history yet"
msgstr ""

#: app/templates/email/comment_mention.html:70
msgid "You Were Mentioned"
msgstr "Sinut Mainittiin"

#: app/templates/email/comment_mention.html:90
msgid "View Task & Reply"
msgstr "Näytä tehtävä ja vastaus"

#: app/templates/email/invoice.html:63
#: app/templates/inventory/movements/list.html:38
#: app/templates/invoice_approvals/list.html:27
#: app/templates/invoice_approvals/request.html:9
#: app/templates/invoice_approvals/view.html:10
#: app/templates/invoices/pdf_default.html:5
#: app/templates/payments/list.html:142 app/utils/pdf_generator.py:1032
#: app/utils/pdf_generator.py:1042
msgid "Invoice"
msgstr "Laskuttaa"

#: app/templates/email/overdue_invoice.html:65
msgid "Invoice Overdue"
msgstr "Lasku erääntynyt"

#: app/templates/email/overdue_invoice.html:106
#: app/templates/invoice_approvals/view.html:13
#: app/templates/invoices/view.html:46
msgid "View Invoice"
msgstr "Näytä lasku"

#: app/templates/email/quote.html:63
#: app/templates/inventory/movements/list.html:39
#: app/templates/quotes/pdf_default.html:5 app/utils/pdf_generator.py:2310
msgid "Quote"
msgstr "Lainata"

#: app/templates/email/quote_approval_rejected.html:74
msgid "Quote Approval Rejected"
msgstr "Tarjouksen hyväksyntä hylätty"

#: app/templates/email/quote_approval_rejected.html:98
#: app/templates/email/quote_approved.html:84
#: app/templates/email/quote_expired.html:83
#: app/templates/email/quote_expiring.html:93
#: app/templates/email/quote_sent.html:81
msgid "View Quote"
msgstr "Näytä lainaus"

#: app/templates/email/quote_approval_request.html:67
msgid "Approval Requested"
msgstr "Hyväksyntää pyydetty"

#: app/templates/email/quote_approval_request.html:83
msgid "Review Quote"
msgstr "Tarkista lainaus"

#: app/templates/email/quote_approved.html:67
msgid "Quote Approved"
msgstr "Lainaus hyväksytty"

#: app/templates/email/quote_expired.html:67
msgid "Quote Expired"
msgstr "Lainaus vanhentunut"

#: app/templates/email/quote_expiring.html:74
msgid "Quote Expiring Soon"
msgstr "Lainaus vanhenee pian"

#: app/templates/email/quote_sent.html:67
msgid "Quote Sent"
msgstr "Lainaus lähetetty"

#: app/templates/email/task_assigned.html:71
msgid "Task Assignment"
msgstr "Tehtävän määritys"

#: app/templates/email/task_assigned.html:117 app/templates/tasks/edit.html:280
msgid "View Task"
msgstr "Näytä tehtävä"

#: app/templates/email/test_email.html:115
msgid "Test Details"
msgstr "Testin tiedot"

#: app/templates/email/weekly_summary.html:89
msgid "Your Weekly Summary"
msgstr "Viikkoyhteenveto"

#: app/templates/errors/400.html:3
msgid "400 Bad Request"
msgstr "400 Huono pyyntö"

#: app/templates/errors/400.html:13
msgid "Invalid Request"
msgstr "Virheellinen pyyntö"

#: app/templates/errors/400.html:15
msgid "The request you made is invalid or contains errors. This could be due to:"
msgstr "Tekemäsi pyyntö on virheellinen tai sisältää virheitä. Tämä voi johtua seuraavista:"

#: app/templates/errors/400.html:18
msgid "Missing or invalid form data"
msgstr "Lomaketiedot puuttuvat tai ovat virheellisiä"

#: app/templates/errors/400.html:19
msgid "Malformed request parameters"
msgstr "Väärin muotoillut pyyntöparametrit"

#: app/templates/errors/403.html:15
msgid "You don't have permission to access this resource. This could be due to:"
msgstr "Sinulla ei ole lupaa käyttää tätä resurssia. Tämä voi johtua seuraavista:"

#: app/templates/errors/403.html:18
msgid "Insufficient privileges"
msgstr "Riittämättömät oikeudet"

#: app/templates/errors/403.html:19
msgid "Not logged in"
msgstr "Ei kirjautunut sisään"

#: app/templates/errors/403.html:20
msgid "Resource access restrictions"
msgstr "Resurssien käyttörajoitukset"

#: app/templates/errors/500.html:17
msgid "Something went wrong on our end. Please try again later."
msgstr "Jotain meni vikaan meidän päässämme. Yritä myöhemmin uudelleen."

#: app/templates/errors/500.html:21
msgid "Try Again"
msgstr "Yritä uudelleen"

#: app/templates/errors/generic.html:17
msgid "An error occurred while processing your request."
msgstr "Pyyntöäsi käsiteltäessä tapahtui virhe."

#: app/templates/errors/generic.html:32
msgid "Refresh Page"
msgstr "Päivitä sivu"

#: app/templates/errors/generic.html:36
msgid "Go to Login"
msgstr "Siirry kohtaan Kirjautuminen"

#: app/templates/expense_categories/form.html:34
msgid "e.g., Travel, Meals, Office Supplies"
msgstr "esim. matkat, ruokailut, toimistotarvikkeet"

#: app/templates/expense_categories/form.html:44
msgid "e.g., TRAVEL, MEALS"
msgstr "esim. MATKAT, Ateriat"

#: app/templates/expense_categories/form.html:54
msgid "Brief description of this category..."
msgstr "Lyhyt kuvaus tästä kategoriasta..."

#: app/templates/expense_categories/form.html:73
msgid "e.g., fa-plane, fa-utensils"
msgstr "esim. fa-taso, fa-astiat"

#: app/templates/expense_categories/form.html:142
msgid "e.g., 19.00"
msgstr "esim. 19.00"

#: app/templates/expenses/dashboard.html:195
#: app/templates/expenses/list.html:305
#: app/templates/inventory/reports/valuation.html:30
#: app/templates/inventory/reports/valuation.html:60
#: app/templates/inventory/reports/valuation.html:80
#: app/templates/inventory/stock_items/form.html:35
#: app/templates/inventory/stock_items/list.html:25
#: app/templates/inventory/stock_items/list.html:51
#: app/templates/inventory/stock_items/list.html:68
#: app/templates/inventory/stock_items/view.html:32
#: app/templates/inventory/stock_levels/list.html:29
#: app/templates/inventory/stock_levels/warehouse.html:21
#: app/templates/inventory/stock_levels/warehouse.html:47
#: app/templates/inventory/stock_levels/warehouse.html:64
#: app/templates/invoices/edit.html:162 app/templates/invoices/edit.html:234
#: app/templates/invoices/pdf_default.html:142
#: app/templates/kiosk/dashboard.html:123
#: app/templates/project_templates/create.html:30
#: app/templates/project_templates/edit.html:30
#: app/templates/project_templates/list.html:22
#: app/templates/projects/add_cost.html:37
#: app/templates/projects/add_good.html:29
#: app/templates/projects/edit_cost.html:44
#: app/templates/projects/edit_good.html:29
#: app/templates/projects/goods.html:40 app/templates/projects/goods.html:60
#: app/templates/quotes/create.html:96 app/templates/quotes/create.html:127
#: app/templates/quotes/edit.html:144 app/templates/quotes/edit.html:201
#: app/utils/pdf_generator.py:1276 app/utils/pdf_generator_reportlab.py:642
msgid "Category"
msgstr "Luokka"

#: app/templates/expenses/form.html:23
#: app/templates/inventory/purchase_orders/form.html:25
#: app/templates/quotes/create.html:28 app/templates/quotes/edit.html:28
#: app/templates/recurring_tasks/form.html:26
msgid "Basic Information"
msgstr "Perustiedot"

#: app/templates/expenses/form.html:33
msgid "e.g., Flight to Berlin"
msgstr "esim. lento Berliiniin"

#: app/templates/expenses/form.html:42
msgid "Additional details about the expense..."
msgstr "Lisätietoa kuluista..."

#: app/templates/expenses/form.html:52
#, fuzzy
msgid "Select Category"
msgstr "Luokka"

#: app/templates/expenses/form.html:75
#, fuzzy
msgid "Amount Details"
msgstr "Maksutiedot"

#: app/templates/expenses/form.html:124
#, fuzzy
msgid "Association"
msgstr "Sijainti"

#: app/templates/expenses/form.html:158 app/templates/payments/view.html:21
msgid "Payment Details"
msgstr "Maksutiedot"

#: app/templates/expenses/form.html:192
msgid "e.g., Lufthansa"
msgstr "esim. Lufthansa"

#: app/templates/expenses/form.html:201
#, fuzzy
msgid "Receipt & Additional Information"
msgstr "Lisätietoja"

#: app/templates/expenses/form.html:222
msgid "Receipt/Invoice Number"
msgstr "Kuitin/laskun numero"

#: app/templates/expenses/form.html:226
msgid "e.g., INV-2024-001"
msgstr "esim. INV-2024-001"

#: app/templates/expenses/form.html:237
msgid "e.g., conference, client-meeting, urgent"
msgstr "esim. kokous, asiakastapaaminen, kiireellinen"

#: app/templates/expenses/form.html:246 app/templates/mileage/form.html:238
#: app/templates/per_diem/form.html:190
msgid "Additional notes..."
msgstr "Lisähuomautuksia..."

#: app/templates/expenses/form.html:254
#, fuzzy
msgid "Options"
msgstr "Valinnainen"

#: app/templates/expenses/list.html:65
msgid "Filter Expenses"
msgstr "Suodatuskulut"

#: app/templates/expenses/list.html:203
msgid "Delete Selected Expenses"
msgstr "Poista valitut kulut"

#: app/templates/expenses/list.html:223
msgid "Change Status for Selected Expenses"
msgstr "Muuta valittujen kulujen tilaa"

#: app/templates/expenses/view.html:252
msgid "Associated With"
msgstr "Liittyy"

#: app/templates/expenses/view.html:348
msgid "Reject Expense"
msgstr "Hylkää kulut"

#: app/templates/expenses/view.html:357
msgid "Explain why this expense is being rejected..."
msgstr "Selitä, miksi tämä kulu hylätään..."

#: app/templates/expenses/view.html:397
msgid "Are you sure you want to delete this expense?"
msgstr "Haluatko varmasti poistaa tämän kulun?"

#: app/templates/expenses/view.html:399
msgid "Delete Expense"
msgstr "Poista kulut"

#: app/templates/gantt/view.html:13 app/templates/kanban/board.html:15
msgid "Add task"
msgstr ""

#: app/templates/import_export/index.html:4
#: app/templates/import_export/index.html:13
msgid "Import/Export Data"
msgstr "Tuo/Vie tiedot"

#: app/templates/import_export/index.html:8
msgid "Import/Export"
msgstr "Tuo/Vie"

#: app/templates/import_export/index.html:14
msgid "Import data from other time trackers or export your data for GDPR compliance and backups"
msgstr "Tuo tietoja muista aikaseurantalaitteista tai vie tietosi GDPR-yhteensopivuutta ja varmuuskopioita varten"

#: app/templates/import_export/index.html:24
msgid "Import Data"
msgstr "Tuo tiedot"

#: app/templates/import_export/index.html:29
msgid "CSV Import - Time Entries"
msgstr ""

#: app/templates/import_export/index.html:30
msgid "Import time entries from a CSV file"
msgstr "Tuo aikamerkinnät CSV-tiedostosta"

#: app/templates/import_export/index.html:34
#: app/templates/import_export/index.html:53
msgid "Choose CSV File"
msgstr "Valitse CSV-tiedosto"

#: app/templates/import_export/index.html:38
#: app/templates/import_export/index.html:57
msgid "Download Template"
msgstr "Lataa malli"

#: app/templates/import_export/index.html:48
msgid "CSV Import - Clients"
msgstr ""

#: app/templates/import_export/index.html:49
msgid "Import clients with custom fields and multiple contacts from a CSV file"
msgstr ""

#: app/templates/import_export/index.html:63
msgid "Skip duplicate clients"
msgstr ""

#: app/templates/import_export/index.html:66
msgid "Use these fields for duplicate detection:"
msgstr ""

#: app/templates/import_export/index.html:72
msgid "Custom fields (comma-separated):"
msgstr ""

#: app/templates/import_export/index.html:73
msgid "e.g., debtor_number, erp_id"
msgstr ""

#: app/templates/import_export/index.html:75
msgid "Example: Enter \"debtor_number\" to detect duplicates by debtor number only (not by name)"
msgstr ""

#: app/templates/import_export/index.html:85
#: app/templates/import_export/index.html:211
msgid "Import from Toggl Track"
msgstr "Tuo Toggl Trackista"

#: app/templates/import_export/index.html:86
msgid "Import time entries from Toggl Track"
msgstr "Tuo aikamerkinnät Toggl Trackista"

#: app/templates/import_export/index.html:89
msgid "Import from Toggl"
msgstr "Tuo Togglista"

#: app/templates/import_export/index.html:97
#: app/templates/import_export/index.html:101
#: app/templates/import_export/index.html:249
msgid "Import from Harvest"
msgstr "Tuonti Harvestista"

#: app/templates/import_export/index.html:98
msgid "Import time entries from Harvest"
msgstr "Tuo aikamerkinnät Harvestista"

#: app/templates/import_export/index.html:110
msgid "Restore from Backup"
msgstr "Palauta varmuuskopiosta"

#: app/templates/import_export/index.html:111
msgid "Restore data from a JSON or ZIP backup file"
msgstr ""

#: app/templates/import_export/index.html:125
msgid "Import History"
msgstr "Tuo historia"

#: app/templates/import_export/index.html:137
msgid "Export Data"
msgstr "Vie tiedot"

#: app/templates/import_export/index.html:142
msgid "Full Data Export (GDPR)"
msgstr "Full Data Export (GDPR)"

#: app/templates/import_export/index.html:143
msgid "Export all your personal data"
msgstr "Vie kaikki henkilötietosi"

#: app/templates/import_export/index.html:147
msgid "Export as JSON"
msgstr "Vie JSON-muodossa"

#: app/templates/import_export/index.html:150
msgid "Export as ZIP"
msgstr "Vie ZIP-muodossa"

#: app/templates/import_export/index.html:160
msgid "Filtered Export"
msgstr "Suodatettu vienti"

#: app/templates/import_export/index.html:161
msgid "Export specific data with filters"
msgstr "Vie tiettyjä tietoja suodattimilla"

#: app/templates/import_export/index.html:164
msgid "Export with Filters"
msgstr "Vie suodattimilla"

#: app/templates/import_export/index.html:172
msgid "Export Clients"
msgstr ""

#: app/templates/import_export/index.html:173
msgid "Export all clients with custom fields and contacts to CSV"
msgstr ""

#: app/templates/import_export/index.html:176
msgid "Export Clients to CSV"
msgstr ""

#: app/templates/import_export/index.html:186
msgid "Create a full database backup"
msgstr "Luo koko tietokannan varmuuskopio"

#: app/templates/import_export/index.html:199
msgid "Export History"
msgstr "Vie historiaa"

#: app/templates/import_export/index.html:215
#: app/templates/import_export/index.html:258
msgid "API Token"
msgstr "API-tunnus"

#: app/templates/import_export/index.html:220
msgid "Workspace ID"
msgstr "Työtilan tunnus"

#: app/templates/import_export/index.html:236
#: app/templates/import_export/index.html:274
msgid "Import"
msgstr "Tuoda"

#: app/templates/import_export/index.html:253
msgid "Account ID"
msgstr "Tilin tunnus"

#: app/templates/integrations/activitywatch_setup.html:4
#: app/templates/integrations/activitywatch_setup.html:14
msgid "ActivityWatch Setup"
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:15
msgid "Import window and web activity from ActivityWatch (aw-server) as automatic time entries"
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:25
#: app/templates/integrations/caldav_setup.html:25
msgid "Server Connection"
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:29
msgid "ActivityWatch Server URL"
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:39
msgid "Base URL of your aw-server (no trailing slash). aw-server must be running and reachable from this server."
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:40
msgid "Use http://localhost:5600 if TimeTracker runs on the same machine."
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:47
#: app/templates/integrations/caldav_setup.html:126
msgid "Import Settings"
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:51
#: app/templates/integrations/caldav_setup.html:130
msgid "Default Project"
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:57
#: app/templates/integrations/caldav_setup.html:136
msgid "No project (import without project)"
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:66
msgid "Assign imported activity events to this project. Leave empty to import without a project."
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:72
#: app/templates/integrations/caldav_setup.html:153
msgid "No active projects found. Events will be imported without a project."
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:73
#: app/templates/integrations/caldav_setup.html:154
msgid "You can create a project later and assign events to it."
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:76
#: app/templates/integrations/caldav_setup.html:157
msgid "Create a project"
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:84
#: app/templates/integrations/caldav_setup.html:165
msgid "Lookback Days"
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:94
msgid "How many days back to import on full sync (1–90, default: 7)."
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:100
msgid "Bucket IDs"
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:108
msgid "Comma-separated or JSON array. Leave empty to use all aw-watcher-window_* and aw-watcher-web_* buckets."
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:119
#: app/templates/integrations/caldav_setup.html:186
msgid "Enable automatic sync"
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:122
msgid "Automatically sync activity on a schedule. You can also trigger manual syncs."
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:128
#: app/templates/integrations/wizard_asana.html:128
#: app/templates/integrations/wizard_github.html:155
#: app/templates/integrations/wizard_gitlab.html:174
#: app/templates/integrations/wizard_jira.html:168
#: app/templates/integrations/wizard_quickbooks.html:125
#: app/templates/integrations/wizard_xero.html:108
msgid "Sync Schedule"
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:133
#: app/templates/integrations/wizard_asana.html:131
#: app/templates/integrations/wizard_github.html:158
#: app/templates/integrations/wizard_gitlab.html:178
#: app/templates/integrations/wizard_jira.html:173
#: app/templates/integrations/wizard_quickbooks.html:128
#: app/templates/integrations/wizard_xero.html:111
msgid "Manual only"
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:134
#: app/templates/integrations/wizard_asana.html:132
#: app/templates/integrations/wizard_github.html:159
#: app/templates/integrations/wizard_gitlab.html:179
#: app/templates/integrations/wizard_jira.html:176
#: app/templates/integrations/wizard_quickbooks.html:129
#: app/templates/integrations/wizard_xero.html:112
msgid "Every hour"
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:135
#: app/templates/integrations/wizard_asana.html:133
#: app/templates/integrations/wizard_github.html:160
#: app/templates/integrations/wizard_gitlab.html:180
#: app/templates/integrations/wizard_jira.html:179
#: app/templates/integrations/wizard_quickbooks.html:130
#: app/templates/integrations/wizard_xero.html:113
#: app/templates/recurring_tasks/form.html:60
#: app/templates/reports/index.html:485
#: app/templates/reports/schedule_form.html:47
msgid "Daily"
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:156
msgid "Test & Sync"
msgstr ""

#: app/templates/integrations/activitywatch_setup.html:158
msgid "After saving, you can test the connection and run a sync from the integration page."
msgstr ""

#: app/templates/integrations/caldav_setup.html:4
#: app/templates/integrations/caldav_setup.html:14
msgid "CalDAV Calendar Setup"
msgstr ""

#: app/templates/integrations/caldav_setup.html:15
msgid "Connect to a CalDAV server (e.g., Zimbra) to import calendar events as time entries"
msgstr ""

#: app/templates/integrations/caldav_setup.html:29
msgid "CalDAV Server URL"
msgstr ""

#: app/templates/integrations/caldav_setup.html:29
msgid "optional if calendar URL is provided"
msgstr ""

#: app/templates/integrations/caldav_setup.html:38
msgid "Base URL of your CalDAV server. Used for calendar discovery."
msgstr ""

#: app/templates/integrations/caldav_setup.html:39
msgid "Example: https://mail.example.com/dav for Zimbra"
msgstr ""

#: app/templates/integrations/caldav_setup.html:45
msgid "Calendar URL"
msgstr ""

#: app/templates/integrations/caldav_setup.html:45
msgid "optional if server URL is provided"
msgstr ""

#: app/templates/integrations/caldav_setup.html:54
msgid "Direct URL to your calendar collection. If provided, server URL is only used for discovery."
msgstr ""

#: app/templates/integrations/caldav_setup.html:60
msgid "Calendar Name"
msgstr ""

#: app/templates/integrations/caldav_setup.html:67
msgid "My Calendar"
msgstr ""

#: app/templates/integrations/caldav_setup.html:73
msgid "Authentication"
msgstr ""

#: app/templates/integrations/caldav_setup.html:87
#: app/templates/integrations/manage.html:245
msgid "Your CalDAV username (usually your email address)."
msgstr ""

#: app/templates/integrations/caldav_setup.html:102
#: app/templates/integrations/manage.html:260
msgid "Your CalDAV password or app-specific password."
msgstr ""

#: app/templates/integrations/caldav_setup.html:104
#: app/templates/integrations/manage.html:262
msgid "Leave empty to keep your current password."
msgstr ""

#: app/templates/integrations/caldav_setup.html:116
msgid "Verify SSL certificate"
msgstr ""

#: app/templates/integrations/caldav_setup.html:119
msgid "Uncheck only if using a self-signed certificate."
msgstr ""

#: app/templates/integrations/caldav_setup.html:145
msgid "Calendar events will be imported as time entries. If a project is selected, events will be assigned to that project."
msgstr ""

#: app/templates/integrations/caldav_setup.html:146
msgid "If an event title contains a project name, that project will be used instead."
msgstr ""

#: app/templates/integrations/caldav_setup.html:147
msgid "If no project is selected, events will be imported without a project."
msgstr ""

#: app/templates/integrations/caldav_setup.html:175
msgid "How many days back to import events from (default: 90)."
msgstr ""

#: app/templates/integrations/caldav_setup.html:189
msgid "Automatically sync calendar events every hour. You can still trigger manual syncs."
msgstr ""

#: app/templates/integrations/caldav_setup.html:212
msgid "After saving, you can test the connection and discover available calendars."
msgstr ""

#: app/templates/integrations/health.html:4
#, fuzzy
msgid "Integration Health"
msgstr "Aika integraatio"

#: app/templates/integrations/health.html:23
#: app/templates/reports/builder.html:185
#: app/templates/reports/saved_views_list.html:28
#: app/templates/reports/saved_views_list.html:41
msgid "Scope"
msgstr ""

#: app/templates/integrations/health.html:25
#, fuzzy
msgid "Last sync"
msgstr "Viime vuonna"

#: app/templates/integrations/health.html:26
#, fuzzy
msgid "Last status"
msgstr "Päivitä tila"

#: app/templates/integrations/health.html:27
#, fuzzy
msgid "Credentials"
msgstr "Yksityiskohdat"

#: app/templates/integrations/health.html:28
#, fuzzy
msgid "Last error"
msgstr "Viime vuonna"

#: app/templates/integrations/health.html:62 app/utils/i18n_helpers.py:224
#: app/utils/i18n_helpers.py:236
msgid "Partial"
msgstr "Osittainen"

#: app/templates/integrations/health.html:76
#, fuzzy
msgid "Needs refresh"
msgstr "Päivitä"

#: app/templates/integrations/health.html:82
#: app/templates/integrations/manage.html:581
msgid "Expires"
msgstr ""

#: app/templates/integrations/health.html:105
msgid "Reset this integration? This removes stored OAuth tokens."
msgstr ""

#: app/templates/integrations/list.html:20
msgid "Connect your Time Tracker with external services. Configure integrations below to sync data, automate workflows, and enhance productivity."
msgstr ""

#: app/templates/integrations/list.html:34
msgid "OIDC / Single Sign-On"
msgstr ""

#: app/templates/integrations/list.html:36
msgid "Configure OpenID Connect authentication for Single Sign-On (SSO) with your identity provider"
msgstr ""

#: app/templates/integrations/list.html:76
msgid "Configure directory authentication via environment variables; use the wizard to build a working .env snippet and test connectivity."
msgstr ""

#: app/templates/integrations/list.html:131
#: app/templates/integrations/manage.html:556
msgid "Not Connected"
msgstr ""

#: app/templates/integrations/list.html:141
msgid "Synced"
msgstr ""

#: app/templates/integrations/list.html:146
msgid "Not Set Up"
msgstr ""

#: app/templates/integrations/list.html:164
#: app/templates/integrations/manage.html:716
msgid "Connect"
msgstr ""

#: app/templates/integrations/manage.html:4
#: app/templates/integrations/view.html:3
msgid "Integration"
msgstr ""

#: app/templates/integrations/manage.html:26
msgid "Guided Setup Wizard"
msgstr ""

#: app/templates/integrations/manage.html:29
msgid "Use our step-by-step wizard to configure this integration easily."
msgstr ""

#: app/templates/integrations/manage.html:34
msgid "Launch Setup Wizard"
msgstr ""

#: app/templates/integrations/manage.html:43
#, fuzzy
msgid "Linear API Key"
msgstr "Luo API-tunnus"

#: app/templates/integrations/manage.html:50
msgid "Personal API Key"
msgstr ""

#: app/templates/integrations/manage.html:54
msgid "Create at linear.app/settings/api"
msgstr ""

#: app/templates/integrations/manage.html:57
msgid "From Linear: Settings → API → Personal API keys"
msgstr ""

#: app/templates/integrations/manage.html:60
#, fuzzy
msgid "Save API Key"
msgstr "Luo API-tunnus"

#: app/templates/integrations/manage.html:68
msgid "OAuth Credentials Setup"
msgstr ""

#: app/templates/integrations/manage.html:101
#: app/templates/integrations/manage.html:141
#, fuzzy
msgid "Stored; leave empty to keep"
msgstr "Jätä tyhjäksi pitääksesi ajan tasalla"

#: app/templates/integrations/manage.html:101
#, fuzzy
msgid "Enter API secret"
msgstr "Luo salaisuus uudelleen"

#: app/templates/integrations/manage.html:112
msgid "After saving API Key and Secret, you can connect Trello using OAuth flow."
msgstr ""

#: app/templates/integrations/manage.html:158
msgid "Use \"common\" for multi-tenant, or leave empty for common"
msgstr ""

#: app/templates/integrations/manage.html:223
msgid "CalDAV Authentication"
msgstr ""

#: app/templates/integrations/manage.html:226
msgid "CalDAV uses username and password authentication (not OAuth). Update your credentials below."
msgstr ""

#: app/templates/integrations/manage.html:281
msgid "Integration Configuration"
msgstr ""

#: app/templates/integrations/manage.html:284
msgid "Configure sync settings, data mappings, and other integration options."
msgstr ""

#: app/templates/integrations/manage.html:530
msgid "Connection Management"
msgstr ""

#: app/templates/integrations/manage.html:539
#: app/templates/integrations/view.html:119
msgid "Connector Error"
msgstr ""

#: app/templates/integrations/manage.html:566
msgid "Sync OK"
msgstr ""

#: app/templates/integrations/manage.html:570
msgid "Sync Error"
msgstr ""

#: app/templates/integrations/manage.html:583
msgid "No expiration"
msgstr ""

#: app/templates/integrations/manage.html:590
msgid "Not connected"
msgstr ""

#: app/templates/integrations/manage.html:596
#: app/templates/integrations/manage.html:603
#: app/templates/integrations/view.html:48
msgid "Last Sync"
msgstr ""

#: app/templates/integrations/manage.html:613
#: app/templates/integrations/view.html:65
msgid "Last Error"
msgstr ""

#: app/templates/integrations/manage.html:643
msgid "CalDAV uses username/password authentication. Click below to set up your CalDAV connection."
msgstr ""

#: app/templates/integrations/manage.html:646
msgid "Setup CalDAV Integration"
msgstr ""

#: app/templates/integrations/manage.html:653
msgid "ActivityWatch imports window and web activity from your local aw-server. Click below to configure."
msgstr ""

#: app/templates/integrations/manage.html:656
msgid "Setup ActivityWatch Integration"
msgstr ""

#: app/templates/integrations/manage.html:671
msgid "OAuth credentials are configured. You can now connect Trello."
msgstr ""

#: app/templates/integrations/manage.html:674
msgid "Connect Trello"
msgstr ""

#: app/templates/integrations/manage.html:681
msgid "Please configure Trello API key and token in the OAuth Credentials Setup section above."
msgstr ""

#: app/templates/integrations/manage.html:693
msgid "Please configure OAuth credentials in the section above before connecting."
msgstr ""

#: app/templates/integrations/manage.html:700
#: app/templates/integrations/manage.html:725
msgid "OAuth credentials need to be configured by an administrator first."
msgstr ""

#: app/templates/integrations/manage.html:706
msgid "Connect your Google Calendar account. You will be redirected to Google for authorization."
msgstr ""

#: app/templates/integrations/manage.html:708
msgid "Connect this integration. You will be redirected to the provider for authorization."
msgstr ""

#: app/templates/integrations/view.html:11
msgid "Back to Integrations"
msgstr ""

#: app/templates/integrations/view.html:17
msgid "Integration Status"
msgstr ""

#: app/templates/integrations/view.html:36
msgid "Token Expires"
msgstr ""

#: app/templates/integrations/view.html:74
msgid "Sync History"
msgstr ""

#: app/templates/integrations/view.html:107
msgid "No sync events yet"
msgstr ""

#: app/templates/integrations/view.html:123
msgid "Configure CalDAV Integration"
msgstr ""

#: app/templates/integrations/view.html:127
msgid "Configure ActivityWatch"
msgstr ""

#: app/templates/integrations/view.html:147
msgid "Are you sure you want to reset this integration? This will remove all credentials and configuration."
msgstr ""

#: app/templates/integrations/view.html:153
msgid "Are you sure you want to delete this integration? This action cannot be undone."
msgstr ""

#: app/templates/integrations/view.html:161
#: app/templates/integrations/view.html:165
msgid "Edit Configuration"
msgstr ""

#: app/templates/integrations/wizard_asana.html:6
#: app/templates/integrations/wizard_github.html:6
msgid "Step 1: OAuth Setup"
msgstr ""

#: app/templates/integrations/wizard_asana.html:12
msgid "Create an Asana app in Settings → Apps → Manage Developer Apps."
msgstr ""

#: app/templates/integrations/wizard_asana.html:18
msgid "Asana OAuth Client ID"
msgstr ""

#: app/templates/integrations/wizard_asana.html:22
#: app/templates/integrations/wizard_github.html:22
#: app/templates/integrations/wizard_gitlab.html:50
#: app/templates/integrations/wizard_jira.html:23
#: app/templates/integrations/wizard_microsoft_teams.html:50
#: app/templates/integrations/wizard_outlook_calendar.html:50
#: app/templates/integrations/wizard_quickbooks.html:22
#: app/templates/integrations/wizard_xero.html:22
msgid "Enter OAuth Client ID"
msgstr ""

#: app/templates/integrations/wizard_asana.html:27
msgid "Asana OAuth Client Secret"
msgstr ""

#: app/templates/integrations/wizard_asana.html:31
#: app/templates/integrations/wizard_github.html:31
#: app/templates/integrations/wizard_gitlab.html:59
#: app/templates/integrations/wizard_jira.html:35
#: app/templates/integrations/wizard_microsoft_teams.html:59
#: app/templates/integrations/wizard_outlook_calendar.html:59
#: app/templates/integrations/wizard_quickbooks.html:31
#: app/templates/integrations/wizard_xero.html:31
msgid "Enter OAuth Client Secret"
msgstr ""

#: app/templates/integrations/wizard_asana.html:46
msgid "Step 2: Workspace Selection"
msgstr ""

#: app/templates/integrations/wizard_asana.html:50
#: app/templates/integrations/wizard_asana.html:163
msgid "Workspace GID"
msgstr ""

#: app/templates/integrations/wizard_asana.html:57
msgid "Find your workspace GID in Asana workspace settings or API"
msgstr ""

#: app/templates/integrations/wizard_asana.html:65
msgid "Step 3: Project Selection"
msgstr ""

#: app/templates/integrations/wizard_asana.html:69
msgid "Project GIDs"
msgstr ""

#: app/templates/integrations/wizard_asana.html:76
msgid "Comma-separated list of specific project GIDs to sync. Leave empty to sync all projects in the workspace."
msgstr ""

#: app/templates/integrations/wizard_asana.html:84
msgid "Step 4: Sync Configuration"
msgstr ""

#: app/templates/integrations/wizard_asana.html:87
#: app/templates/integrations/wizard_asana.html:167
#: app/templates/integrations/wizard_github.html:77
#: app/templates/integrations/wizard_github.html:201
#: app/templates/integrations/wizard_gitlab.html:112
#: app/templates/integrations/wizard_gitlab.html:225
#: app/templates/integrations/wizard_jira.html:98
#: app/templates/integrations/wizard_jira.html:217
#: app/templates/integrations/wizard_quickbooks.html:78
#: app/templates/integrations/wizard_quickbooks.html:200
#: app/templates/integrations/wizard_xero.html:61
#: app/templates/integrations/wizard_xero.html:183
msgid "Sync Direction"
msgstr ""

#: app/templates/integrations/wizard_asana.html:91
msgid "Asana → TimeTracker (Import only)"
msgstr ""

#: app/templates/integrations/wizard_asana.html:94
msgid "TimeTracker → Asana (Export only)"
msgstr ""

#: app/templates/integrations/wizard_asana.html:97
#: app/templates/integrations/wizard_github.html:87
#: app/templates/integrations/wizard_gitlab.html:123
#: app/templates/integrations/wizard_jira.html:109
#: app/templates/integrations/wizard_quickbooks.html:88
#: app/templates/integrations/wizard_xero.html:71
msgid "Bidirectional (Two-way sync)"
msgstr ""

#: app/templates/integrations/wizard_asana.html:103
#: app/templates/integrations/wizard_asana.html:171
#: app/templates/integrations/wizard_github.html:93
#: app/templates/integrations/wizard_github.html:205
#: app/templates/integrations/wizard_gitlab.html:129
#: app/templates/integrations/wizard_gitlab.html:229
#: app/templates/integrations/wizard_jira.html:118
#: app/templates/integrations/wizard_jira.html:221
#: app/templates/integrations/wizard_quickbooks.html:94
#: app/templates/integrations/wizard_quickbooks.html:204
#: app/templates/integrations/wizard_xero.html:77
#: app/templates/integrations/wizard_xero.html:187
msgid "Items to Sync"
msgstr ""

#: app/templates/integrations/wizard_asana.html:122
msgid "Subtasks"
msgstr ""

#: app/templates/integrations/wizard_asana.html:141
#: app/templates/integrations/wizard_github.html:169
#: app/templates/integrations/wizard_gitlab.html:190
#: app/templates/integrations/wizard_jira.html:159
#: app/templates/integrations/wizard_jira.html:225
#: app/templates/integrations/wizard_quickbooks.html:138
#: app/templates/integrations/wizard_xero.html:121
msgid "Auto Sync"
msgstr ""

#: app/templates/integrations/wizard_asana.html:148
msgid "Sync Completed Tasks"
msgstr ""

#: app/templates/integrations/wizard_asana.html:155
#: app/templates/integrations/wizard_github.html:189
#: app/templates/integrations/wizard_gitlab.html:213
#: app/templates/integrations/wizard_jira.html:203
#: app/templates/integrations/wizard_quickbooks.html:188
#: app/templates/integrations/wizard_xero.html:171
msgid "Step 5: Review & Save"
msgstr ""

#: app/templates/integrations/wizard_asana.html:159
#: app/templates/integrations/wizard_github.html:193
#: app/templates/integrations/wizard_gitlab.html:217
#: app/templates/integrations/wizard_microsoft_teams.html:78
#: app/templates/integrations/wizard_quickbooks.html:192
#: app/templates/integrations/wizard_trello.html:63
#: app/templates/integrations/wizard_xero.html:175
msgid "Review your configuration and click \"Finish\" to save."
msgstr ""

#: app/templates/integrations/wizard_asana.html:188
#: app/templates/integrations/wizard_github.html:222
#: app/templates/integrations/wizard_gitlab.html:246
#: app/templates/integrations/wizard_jira.html:245
#: app/templates/integrations/wizard_microsoft_teams.html:99
#: app/templates/integrations/wizard_outlook_calendar.html:99
#: app/templates/integrations/wizard_quickbooks.html:221
#: app/templates/integrations/wizard_trello.html:89
#: app/templates/integrations/wizard_xero.html:204
#: app/templates/setup/initial_setup.html:288
msgid "Finish"
msgstr ""

#: app/templates/integrations/wizard_base.html:27
msgid "Step"
msgstr ""

#: app/templates/integrations/wizard_github.html:12
msgid "Create a GitHub OAuth App in Settings → Developer settings → OAuth Apps."
msgstr ""

#: app/templates/integrations/wizard_github.html:18
msgid "GitHub OAuth Client ID"
msgstr ""

#: app/templates/integrations/wizard_github.html:27
msgid "GitHub OAuth Client Secret"
msgstr ""

#: app/templates/integrations/wizard_github.html:46
msgid "Step 2: Repository Selection"
msgstr ""

#: app/templates/integrations/wizard_github.html:57
msgid "Comma-separated list of repositories (e.g., \"octocat/Hello-World\"). Leave empty to sync all accessible repositories."
msgstr ""

#: app/templates/integrations/wizard_github.html:66
#: app/templates/integrations/wizard_gitlab.html:97
#: app/templates/integrations/wizard_jira.html:192
msgid "Create Projects"
msgstr ""

#: app/templates/integrations/wizard_github.html:74
#: app/templates/integrations/wizard_jira.html:82
#: app/templates/integrations/wizard_quickbooks.html:75
#: app/templates/integrations/wizard_xero.html:58
msgid "Step 3: Sync Configuration"
msgstr ""

#: app/templates/integrations/wizard_github.html:81
msgid "GitHub → TimeTracker (Import only)"
msgstr ""

#: app/templates/integrations/wizard_github.html:84
msgid "TimeTracker → GitHub (Export only)"
msgstr ""

#: app/templates/integrations/wizard_github.html:106
msgid "Pull Requests"
msgstr ""

#: app/templates/integrations/wizard_github.html:112
msgid "Projects (Repositories)"
msgstr ""

#: app/templates/integrations/wizard_github.html:118
#: app/templates/integrations/wizard_gitlab.html:154
msgid "Issue States to Sync"
msgstr ""

#: app/templates/integrations/wizard_github.html:125
#: app/templates/integrations/wizard_gitlab.html:161
msgid "Open Issues"
msgstr ""

#: app/templates/integrations/wizard_github.html:131
#: app/templates/integrations/wizard_gitlab.html:167
msgid "Closed Issues"
msgstr ""

#: app/templates/integrations/wizard_github.html:140
msgid "Step 4: Webhook Setup"
msgstr ""

#: app/templates/integrations/wizard_github.html:144
#: app/templates/integrations/wizard_gitlab.html:199
#: app/templates/payment_gateways/create.html:49
msgid "Webhook Secret"
msgstr ""

#: app/templates/integrations/wizard_github.html:148
#: app/templates/integrations/wizard_gitlab.html:203
msgid "Enter webhook secret"
msgstr ""

#: app/templates/integrations/wizard_github.html:150
msgid "Secret token for verifying webhook signatures. Configure this in your GitHub repository webhook settings."
msgstr ""

#: app/templates/integrations/wizard_github.html:161
#: app/templates/integrations/wizard_gitlab.html:181
#: app/templates/integrations/wizard_jira.html:182
#: app/templates/recurring_tasks/form.html:61
#: app/templates/reports/index.html:486
#: app/templates/reports/schedule_form.html:48
msgid "Weekly"
msgstr ""

#: app/templates/integrations/wizard_github.html:172
msgid "Automatically sync when webhooks are received from GitHub"
msgstr ""

#: app/templates/integrations/wizard_github.html:178
msgid "Add this URL as a webhook in your GitHub repository settings:"
msgstr ""

#: app/templates/integrations/wizard_github.html:225
msgid "All repositories"
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:6
msgid "Step 1: Instance Configuration"
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:26
msgid "You can use GitLab.com or your self-hosted GitLab instance."
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:34
#: app/templates/integrations/wizard_microsoft_teams.html:34
#: app/templates/integrations/wizard_outlook_calendar.html:34
msgid "Step 2: OAuth Setup"
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:40
msgid "Configure OAuth credentials. Create an application in GitLab Settings → Applications."
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:46
msgid "GitLab OAuth Client ID"
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:55
msgid "GitLab OAuth Client Secret"
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:66
msgid "Add this URL as an authorized redirect URI in your GitLab application settings:"
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:77
msgid "Step 3: Repository Selection"
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:81
msgid "Repository IDs"
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:88
msgid "Comma-separated list of GitLab project IDs to sync. Leave empty to sync all accessible projects."
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:101
msgid "Automatically create projects in TimeTracker from GitLab projects"
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:108
msgid "Step 4: Sync Settings"
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:117
msgid "GitLab → TimeTracker (Import only)"
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:120
msgid "TimeTracker → GitLab (Export only)"
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:142
msgid "Merge Requests"
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:194
msgid "Automatically sync when webhooks are received from GitLab"
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:205
msgid "Secret token for verifying webhook signatures"
msgstr ""

#: app/templates/integrations/wizard_gitlab.html:221
msgid "Instance URL"
msgstr ""

#: app/templates/integrations/wizard_jira.html:6
msgid "Step 1: OAuth Setup & Basic Configuration"
msgstr ""

#: app/templates/integrations/wizard_jira.html:12
msgid "First, configure OAuth credentials for Jira. You can get these from Atlassian Developer Console."
msgstr ""

#: app/templates/integrations/wizard_jira.html:18
msgid "Jira OAuth Client ID"
msgstr ""

#: app/templates/integrations/wizard_jira.html:25
msgid "Get this from Atlassian Developer Console"
msgstr ""

#: app/templates/integrations/wizard_jira.html:31
msgid "Jira OAuth Client Secret"
msgstr ""

#: app/templates/integrations/wizard_jira.html:41
msgid "Jira Instance URL"
msgstr ""

#: app/templates/integrations/wizard_jira.html:48
msgid "Your Jira Cloud or Server URL (e.g., https://your-domain.atlassian.net)"
msgstr ""

#: app/templates/integrations/wizard_jira.html:55
msgid "Add this URL as an authorized redirect URI in your Jira OAuth app settings:"
msgstr ""

#: app/templates/integrations/wizard_jira.html:71
msgid "Click \"Test Connection\" to verify that Jira is accessible and OAuth credentials are correct."
msgstr ""

#: app/templates/integrations/wizard_jira.html:86
msgid "JQL Query"
msgstr ""

#: app/templates/integrations/wizard_jira.html:92
msgid "Jira Query Language query to filter issues to sync. Leave empty to sync all assigned issues."
msgstr ""

#: app/templates/integrations/wizard_jira.html:103
msgid "Jira → TimeTracker (Import only)"
msgstr ""

#: app/templates/integrations/wizard_jira.html:106
msgid "TimeTracker → Jira (Export only)"
msgstr ""

#: app/templates/integrations/wizard_jira.html:113
msgid "Choose how data flows between Jira and TimeTracker"
msgstr ""

#: app/templates/integrations/wizard_jira.html:126
msgid "Issues (Tasks)"
msgstr ""

#: app/templates/integrations/wizard_jira.html:163
msgid "Automatically sync when webhooks are received from Jira"
msgstr ""

#: app/templates/integrations/wizard_jira.html:196
msgid "Automatically create projects in TimeTracker from Jira projects"
msgstr ""

#: app/templates/integrations/wizard_jira.html:208
msgid "Review your configuration below. Click \"Finish\" to save and complete the setup."
msgstr ""

#: app/templates/integrations/wizard_jira.html:213
msgid "Jira URL"
msgstr ""

#: app/templates/integrations/wizard_jira.html:265
#: app/templates/integrations/wizard_trello.html:100
msgid "Please test the connection before proceeding."
msgstr ""

#: app/templates/integrations/wizard_jira.html:277
msgid "Please enter Jira URL first."
msgstr ""

#: app/templates/integrations/wizard_microsoft_teams.html:6
#: app/templates/integrations/wizard_outlook_calendar.html:6
msgid "Step 1: Tenant ID Configuration"
msgstr ""

#: app/templates/integrations/wizard_microsoft_teams.html:12
#: app/templates/integrations/wizard_outlook_calendar.html:12
msgid "Enter your Azure AD tenant ID. Use \"common\" for multi-tenant apps or leave empty for default."
msgstr ""

#: app/templates/integrations/wizard_microsoft_teams.html:40
#: app/templates/integrations/wizard_outlook_calendar.html:40
msgid "Configure OAuth credentials from Azure AD App Registrations."
msgstr ""

#: app/templates/integrations/wizard_microsoft_teams.html:46
msgid "Microsoft Teams OAuth Client ID"
msgstr ""

#: app/templates/integrations/wizard_microsoft_teams.html:55
msgid "Microsoft Teams OAuth Client Secret"
msgstr ""

#: app/templates/integrations/wizard_microsoft_teams.html:74
#: app/templates/integrations/wizard_outlook_calendar.html:74
#: app/templates/integrations/wizard_trello.html:59
msgid "Step 3: Review & Save"
msgstr ""

#: app/templates/integrations/wizard_outlook_calendar.html:46
msgid "Outlook Calendar OAuth Client ID"
msgstr ""

#: app/templates/integrations/wizard_outlook_calendar.html:55
msgid "Outlook Calendar OAuth Client Secret"
msgstr ""

#: app/templates/integrations/wizard_outlook_calendar.html:78
msgid "Review your configuration and click \"Finish\" to save. After saving, users can connect their Outlook Calendar accounts."
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:6
#: app/templates/integrations/wizard_xero.html:6
msgid "Step 1: OAuth Connection"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:12
msgid "Configure OAuth credentials from Intuit Developer Dashboard."
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:18
msgid "QuickBooks OAuth Client ID"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:27
msgid "QuickBooks OAuth Client Secret"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:38
msgid "After saving OAuth credentials, you will need to connect your QuickBooks account via OAuth."
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:46
msgid "Step 2: Company Selection"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:50
msgid "Company ID (Realm ID)"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:57
msgid "Find your company ID (realm ID) in QuickBooks after connecting via OAuth."
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:65
msgid "Use Sandbox"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:68
msgid "Use QuickBooks sandbox environment for testing"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:82
msgid "QuickBooks → TimeTracker (Import only)"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:85
msgid "TimeTracker → QuickBooks (Export only)"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:119
msgid "Customers"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:145
#: app/templates/integrations/wizard_xero.html:128
msgid "Step 4: Account Mappings"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:149
msgid "Default Expense Account ID"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:156
msgid "QuickBooks account ID to use for expenses when no mapping is configured"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:162
msgid "Customer Mappings"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:162
#: app/templates/integrations/wizard_quickbooks.html:174
#: app/templates/integrations/wizard_xero.html:145
#: app/templates/integrations/wizard_xero.html:157
msgid "JSON"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:168
msgid "Map TimeTracker client IDs to QuickBooks customer IDs (JSON format)"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:174
#: app/templates/integrations/wizard_xero.html:157
msgid "Account Mappings"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:180
msgid "Map TimeTracker expense category IDs to QuickBooks account IDs (JSON format)"
msgstr ""

#: app/templates/integrations/wizard_quickbooks.html:196
msgid "Company ID"
msgstr ""

#: app/templates/integrations/wizard_trello.html:6
msgid "Step 1: API Keys Setup"
msgstr ""

#: app/templates/integrations/wizard_trello.html:12
msgid "Get your API key and secret from"
msgstr ""

#: app/templates/integrations/wizard_trello.html:23
msgid "Enter API Key"
msgstr ""

#: app/templates/integrations/wizard_trello.html:32
msgid "Enter API Secret"
msgstr ""

#: app/templates/integrations/wizard_trello.html:34
msgid "Generate a token after creating the API key"
msgstr ""

#: app/templates/integrations/wizard_trello.html:48
msgid "Click \"Test Connection\" to verify that your Trello API credentials are correct."
msgstr ""

#: app/templates/integrations/wizard_trello.html:67
#: app/templates/payment_gateways/create.html:39
msgid "API Key"
msgstr ""

#: app/templates/integrations/wizard_trello.html:72
msgid "Not tested"
msgstr ""

#: app/templates/integrations/wizard_trello.html:92
msgid "Connection failed"
msgstr ""

#: app/templates/integrations/wizard_xero.html:12
msgid "Configure OAuth credentials from Xero Developer Portal."
msgstr ""

#: app/templates/integrations/wizard_xero.html:18
msgid "Xero OAuth Client ID"
msgstr ""

#: app/templates/integrations/wizard_xero.html:27
msgid "Xero OAuth Client Secret"
msgstr ""

#: app/templates/integrations/wizard_xero.html:39
msgid "Step 2: Tenant Selection"
msgstr ""

#: app/templates/integrations/wizard_xero.html:50
msgid "Find your tenant ID (organisation ID) in Xero after connecting via OAuth."
msgstr ""

#: app/templates/integrations/wizard_xero.html:65
msgid "Xero → TimeTracker (Import only)"
msgstr ""

#: app/templates/integrations/wizard_xero.html:68
msgid "TimeTracker → Xero (Export only)"
msgstr ""

#: app/templates/integrations/wizard_xero.html:132
msgid "Default Expense Account Code"
msgstr ""

#: app/templates/integrations/wizard_xero.html:139
msgid "Xero account code to use for expenses when no mapping is configured"
msgstr ""

#: app/templates/integrations/wizard_xero.html:145
msgid "Contact Mappings"
msgstr ""

#: app/templates/integrations/wizard_xero.html:151
msgid "Map TimeTracker client IDs to Xero Contact IDs (JSON format)"
msgstr ""

#: app/templates/integrations/wizard_xero.html:163
msgid "Map TimeTracker expense category IDs to Xero account codes (JSON format)"
msgstr ""

#: app/templates/inventory/adjustments/form.html:23
#: app/templates/inventory/adjustments/list.html:30
#: app/templates/inventory/movements/form.html:44
#: app/templates/inventory/purchase_orders/form.html:77
#: app/templates/inventory/reports/movement_history.html:30
#: app/templates/inventory/transfers/form.html:23
msgid "Stock Item"
msgstr "Varastotuote"

#: app/templates/inventory/adjustments/form.html:25
#: app/templates/inventory/movements/form.html:46
#: app/templates/inventory/purchase_orders/form.html:122
#: app/templates/inventory/transfers/form.html:25
msgid "Select Item"
msgstr "Valitse kohde"

#: app/templates/inventory/adjustments/form.html:32
#: app/templates/inventory/adjustments/list.html:21
#: app/templates/inventory/adjustments/list.html:58
#: app/templates/inventory/adjustments/list.html:73
#: app/templates/inventory/low_stock/list.html:22
#: app/templates/inventory/low_stock/list.html:34
#: app/templates/inventory/movements/form.html:53
#: app/templates/inventory/movements/list.html:56
#: app/templates/inventory/movements/list.html:74
#: app/templates/inventory/purchase_orders/form.html:82
#: app/templates/inventory/reports/low_stock.html:31
#: app/templates/inventory/reports/low_stock.html:48
#: app/templates/inventory/reports/movement_history.html:21
#: app/templates/inventory/reports/movement_history.html:72
#: app/templates/inventory/reports/movement_history.html:90
#: app/templates/inventory/reports/valuation.html:21
#: app/templates/inventory/reports/valuation.html:57
#: app/templates/inventory/reports/valuation.html:69
#: app/templates/inventory/reservations/list.html:40
#: app/templates/inventory/reservations/list.html:58
#: app/templates/inventory/stock_items/history.html:22
#: app/templates/inventory/stock_items/history.html:63
#: app/templates/inventory/stock_items/history.html:76
#: app/templates/inventory/stock_items/view.html:129
#: app/templates/inventory/stock_items/view.html:139
#: app/templates/inventory/stock_items/view.html:241
#: app/templates/inventory/stock_items/view.html:255
#: app/templates/inventory/stock_levels/item.html:23
#: app/templates/inventory/stock_levels/item.html:34
#: app/templates/inventory/stock_levels/list.html:20
#: app/templates/inventory/stock_levels/list.html:47
#: app/templates/inventory/stock_levels/list.html:58
#: app/templates/kiosk/dashboard.html:150 app/templates/quotes/create.html:63
#: app/templates/quotes/edit.html:68
msgid "Warehouse"
msgstr "Varasto"

#: app/templates/inventory/adjustments/form.html:34
#: app/templates/inventory/movements/form.html:55
#: app/templates/inventory/purchase_orders/form.html:131
#: app/templates/invoices/edit.html:105 app/templates/quotes/edit.html:98
msgid "Select Warehouse"
msgstr "Valitse Varasto"

#: app/templates/inventory/adjustments/form.html:41
msgid "Adjustment Quantity"
msgstr "Säätömäärä"

#: app/templates/inventory/adjustments/form.html:43
msgid "Use positive values to increase stock, negative values to decrease"
msgstr "Käytä positiivisia arvoja lisätäksesi varastoa ja negatiivisia arvoja pienentääksesi"

#: app/templates/inventory/adjustments/form.html:47
msgid "e.g., Physical count correction, Damage, Found items"
msgstr "esim. fyysisen laskennan korjaus, vauriot, löydetyt kohteet"

#: app/templates/inventory/adjustments/form.html:51
msgid "Additional details about this adjustment"
msgstr "Lisätietoja tästä säädöstä"

#: app/templates/inventory/adjustments/form.html:59
msgid "Record Adjustment"
msgstr "Record Adjustment"

#: app/templates/inventory/adjustments/list.html:23
#: app/templates/inventory/reports/movement_history.html:23
#: app/templates/inventory/reports/valuation.html:23
#: app/templates/inventory/stock_items/history.html:24
#: app/templates/inventory/stock_levels/list.html:22
msgid "All Warehouses"
msgstr "Kaikki varastot"

#: app/templates/inventory/adjustments/list.html:32
#: app/templates/inventory/reports/movement_history.html:32
msgid "All Items"
msgstr "Kaikki kohteet"

#: app/templates/inventory/adjustments/list.html:39
#: app/templates/inventory/reports/movement_history.html:53
#: app/templates/inventory/reports/turnover.html:21
#: app/templates/inventory/stock_items/history.html:45
#: app/templates/inventory/transfers/list.html:21
msgid "Date From"
msgstr "Päivämäärä alkaen"

#: app/templates/inventory/adjustments/list.html:46
#: app/templates/inventory/reports/movement_history.html:60
#: app/templates/inventory/reports/turnover.html:25
#: app/templates/inventory/stock_items/history.html:52
#: app/templates/inventory/transfers/list.html:25
msgid "Date To"
msgstr "Päivämäärä -"

#: app/templates/inventory/adjustments/list.html:57
#: app/templates/inventory/adjustments/list.html:68
#: app/templates/inventory/low_stock/list.html:23
#: app/templates/inventory/low_stock/list.html:35
#: app/templates/inventory/movements/list.html:55
#: app/templates/inventory/movements/list.html:69
#: app/templates/inventory/purchase_orders/view.html:90
#: app/templates/inventory/purchase_orders/view.html:101
#: app/templates/inventory/reports/low_stock.html:29
#: app/templates/inventory/reports/low_stock.html:42
#: app/templates/inventory/reports/movement_history.html:71
#: app/templates/inventory/reports/movement_history.html:85
#: app/templates/inventory/reports/turnover.html:44
#: app/templates/inventory/reports/turnover.html:55
#: app/templates/inventory/reports/valuation.html:58
#: app/templates/inventory/reports/valuation.html:74
#: app/templates/inventory/reservations/list.html:39
#: app/templates/inventory/reservations/list.html:53
#: app/templates/inventory/stock_levels/list.html:48
#: app/templates/inventory/stock_levels/list.html:59
#: app/templates/inventory/stock_levels/warehouse.html:45
#: app/templates/inventory/stock_levels/warehouse.html:58
#: app/templates/inventory/suppliers/view.html:114
#: app/templates/inventory/suppliers/view.html:125
#: app/templates/inventory/transfers/list.html:39
#: app/templates/inventory/transfers/list.html:54
#: app/templates/inventory/warehouses/view.html:84
#: app/templates/inventory/warehouses/view.html:95
#: app/templates/inventory/warehouses/view.html:130
#: app/templates/inventory/warehouses/view.html:140
msgid "Item"
msgstr "Tuote"

#: app/templates/inventory/adjustments/list.html:87
msgid "No adjustments found."
msgstr "Säätöjä ei löytynyt."

#: app/templates/inventory/low_stock/list.html:24
#: app/templates/inventory/low_stock/list.html:40
#: app/templates/inventory/stock_items/view.html:130
#: app/templates/inventory/stock_items/view.html:144
#: app/templates/inventory/stock_levels/list.html:49
#: app/templates/inventory/stock_levels/list.html:64
#: app/templates/inventory/warehouses/view.html:86
#: app/templates/inventory/warehouses/view.html:101
msgid "On Hand"
msgstr "Kädessä"

#: app/templates/inventory/low_stock/list.html:25
#: app/templates/inventory/low_stock/list.html:41
#: app/templates/inventory/reports/low_stock.html:33
#: app/templates/inventory/reports/low_stock.html:54
#: app/templates/inventory/stock_items/form.html:69
#: app/templates/inventory/stock_items/view.html:91
#: app/templates/inventory/stock_levels/warehouse.html:51
#: app/templates/inventory/stock_levels/warehouse.html:70
msgid "Reorder Point"
msgstr "Järjestä piste uudelleen"

#: app/templates/inventory/low_stock/list.html:26
#: app/templates/inventory/low_stock/list.html:42
#: app/templates/inventory/reports/low_stock.html:34
#: app/templates/inventory/reports/low_stock.html:55
msgid "Shortfall"
msgstr "Vaje"

#: app/templates/inventory/low_stock/list.html:27
#: app/templates/inventory/low_stock/list.html:43
msgid "Reorder Qty"
msgstr "Uudelleentilausmäärä"

#: app/templates/inventory/low_stock/list.html:55
msgid "No low stock alerts. All items are above reorder point."
msgstr "Ei varoituksia alhaisista varastoista. Kaikki tuotteet ovat uudelleenjärjestelypisteen yläpuolella."

#: app/templates/inventory/movements/form.html:20
msgid "Use a positive quantity (items coming back)"
msgstr ""

#: app/templates/inventory/movements/form.html:21
msgid "Use a negative quantity (items written off)"
msgstr ""

#: app/templates/inventory/movements/form.html:22
msgid "Quantity to revalue (positive)"
msgstr ""

#: app/templates/inventory/movements/form.html:23
#: app/templates/inventory/movements/form.html:64
msgid "Use positive values for additions, negative for removals"
msgstr "Käytä positiivisia arvoja lisäyksiin, negatiivisia poistoihin"

#: app/templates/inventory/movements/form.html:24
msgid "Return requires a positive quantity."
msgstr ""

#: app/templates/inventory/movements/form.html:25
msgid "Waste requires a negative quantity."
msgstr ""

#: app/templates/inventory/movements/form.html:26
msgid "Devaluation requires a trackable item with a default cost."
msgstr ""

#: app/templates/inventory/movements/form.html:30
#: app/templates/inventory/movements/list.html:21
#: app/templates/inventory/reports/movement_history.html:39
#: app/templates/inventory/stock_items/history.html:31
msgid "Movement Type"
msgstr "Liikkeen tyyppi"

#: app/templates/inventory/movements/form.html:37
#: app/templates/inventory/movements/list.html:29
#: app/templates/inventory/reports/movement_history.html:47
#: app/templates/inventory/stock_items/history.html:39
msgid "Return"
msgstr "Palata"

#: app/templates/inventory/movements/form.html:38
#: app/templates/inventory/movements/list.html:30
#: app/templates/inventory/reports/movement_history.html:48
#: app/templates/inventory/stock_items/history.html:40
msgid "Waste"
msgstr "Jätettä"

#: app/templates/inventory/movements/form.html:39
#: app/templates/inventory/movements/form.html:73
#: app/templates/inventory/movements/list.html:31
#: app/templates/inventory/reports/movement_history.html:49
#: app/templates/inventory/stock_items/history.html:41
#: app/templates/inventory/stock_items/view.html:180
#: app/templates/inventory/stock_items/view.html:191
msgid "Devaluation"
msgstr ""

#: app/templates/inventory/movements/form.html:41
msgid "You can apply devaluation below to record returned or wasted items at a reduced cost."
msgstr ""

#: app/templates/inventory/movements/form.html:74
msgid "Devalue items without creating a new stock item"
msgstr ""

#: app/templates/inventory/movements/form.html:78
msgid "Apply devaluation"
msgstr ""

#: app/templates/inventory/movements/form.html:84
#: app/templates/payments/list.html:158
msgid "Method"
msgstr ""

#: app/templates/inventory/movements/form.html:86
msgid "Percent off default cost"
msgstr ""

#: app/templates/inventory/movements/form.html:87
msgid "Fixed new unit cost"
msgstr ""

#: app/templates/inventory/movements/form.html:92
msgid "Percent"
msgstr ""

#: app/templates/inventory/movements/form.html:94
msgid "Example: 30 = reduce cost by 30%"
msgstr ""

#: app/templates/inventory/movements/form.html:98
msgid "New Unit Cost"
msgstr ""

#: app/templates/inventory/movements/form.html:105
msgid "e.g., Physical count correction"
msgstr "esim. fyysisen laskennan korjaus"

#: app/templates/inventory/movements/form.html:117
msgid "Record Movement"
msgstr "Record Movement"

#: app/templates/inventory/movements/list.html:35
msgid "Reference Type"
msgstr "Viitetyyppi"

#: app/templates/inventory/movements/list.html:41
#: app/templates/timer/edit_timer.html:312
#: app/templates/timer/edit_timer.html:435
msgid "Manual"
msgstr "Manuaalinen"

#: app/templates/inventory/movements/list.html:59
#: app/templates/inventory/movements/list.html:105
#: app/templates/inventory/purchase_orders/form.html:80
#: app/templates/inventory/purchase_orders/view.html:94
#: app/templates/inventory/purchase_orders/view.html:115
#: app/templates/inventory/reports/movement_history.html:75
#: app/templates/inventory/reports/movement_history.html:121
#: app/templates/inventory/reports/valuation.html:62
#: app/templates/inventory/reports/valuation.html:82
#: app/templates/inventory/stock_items/form.html:113
#: app/templates/inventory/stock_items/form.html:164
#: app/templates/inventory/stock_items/history.html:66
#: app/templates/inventory/stock_items/history.html:107
#: app/templates/inventory/stock_items/view.html:179
#: app/templates/inventory/stock_items/view.html:190
#: app/templates/inventory/suppliers/view.html:116
#: app/templates/inventory/suppliers/view.html:131
msgid "Unit Cost"
msgstr "Yksikköhinta"

#: app/templates/inventory/movements/list.html:60
#: app/templates/inventory/movements/list.html:127
#: app/templates/inventory/reports/movement_history.html:76
#: app/templates/inventory/reports/movement_history.html:143
#: app/templates/inventory/reservations/list.html:43
#: app/templates/inventory/reservations/list.html:65
#: app/templates/inventory/stock_items/history.html:67
#: app/templates/inventory/stock_items/history.html:129
msgid "Reference"
msgstr "Viite"

#: app/templates/inventory/movements/list.html:97
#: app/templates/inventory/reports/movement_history.html:113
#: app/templates/inventory/stock_items/history.html:99
#: app/templates/inventory/stock_items/view.html:205
msgid "Devalued"
msgstr ""

#: app/templates/inventory/movements/list.html:150
msgid "No stock movements found."
msgstr "Osakeliikettä ei löytynyt."

#: app/templates/inventory/purchase_orders/form.html:29
#: app/templates/inventory/purchase_orders/list.html:32
#: app/templates/inventory/purchase_orders/list.html:51
#: app/templates/inventory/purchase_orders/list.html:67
#: app/templates/inventory/purchase_orders/view.html:50
msgid "Supplier"
msgstr "Toimittaja"

#: app/templates/inventory/purchase_orders/form.html:31
#: app/templates/inventory/stock_items/form.html:107
#: app/templates/inventory/stock_items/form.html:155
msgid "Select Supplier"
msgstr "Valitse Toimittaja"

#: app/templates/inventory/purchase_orders/form.html:38
#: app/templates/inventory/purchase_orders/list.html:52
#: app/templates/inventory/purchase_orders/list.html:72
#: app/templates/inventory/purchase_orders/view.html:58
msgid "Order Date"
msgstr "Tilauspäivämäärä"

#: app/templates/inventory/purchase_orders/form.html:42
msgid "Expected Delivery Date"
msgstr "Arvioitu toimituspäivä"

#: app/templates/inventory/purchase_orders/form.html:56
msgid "Notes visible to supplier"
msgstr "Huomautukset näkyvät toimittajalle"

#: app/templates/inventory/purchase_orders/form.html:60
msgid "Internal notes (not visible to supplier)"
msgstr "Sisäiset huomautukset (ei näy toimittajalle)"

#: app/templates/inventory/purchase_orders/form.html:69
#: app/templates/inventory/purchase_orders/view.html:85
#: app/templates/invoices/edit.html:334
msgid "Items"
msgstr "Tuotteet"

#: app/templates/inventory/purchase_orders/form.html:72
#: app/templates/invoices/edit.html:66
msgid "Add Item"
msgstr "Lisää kohde"

#: app/templates/inventory/purchase_orders/form.html:79
#: app/templates/inventory/purchase_orders/form.html:148
#: app/templates/invoices/edit.html:235 app/templates/invoices/edit.html:260
#: app/templates/invoices/edit.html:620 app/templates/quotes/create.html:65
#: app/templates/quotes/create.html:128 app/templates/quotes/edit.html:70
#: app/templates/quotes/edit.html:108 app/templates/quotes/edit.html:202
msgid "Qty"
msgstr "Määrä"

#: app/templates/inventory/purchase_orders/form.html:83
#: app/templates/inventory/purchase_orders/form.html:152
#: app/templates/inventory/stock_items/form.html:112
#: app/templates/inventory/stock_items/form.html:163
#: app/templates/inventory/suppliers/view.html:115
#: app/templates/inventory/suppliers/view.html:130
msgid "Supplier SKU"
msgstr "Toimittaja SKU"

#: app/templates/inventory/purchase_orders/form.html:104
msgid "Create Purchase Order"
msgstr "Luo ostotilaus"

#: app/templates/inventory/purchase_orders/list.html:24
#: app/templates/inventory/purchase_orders/list.html:76
#: app/templates/inventory/purchase_orders/view.html:37
#: app/templates/invoices/list.html:129
#: app/templates/quotes/_quotes_list.html:62 app/templates/quotes/list.html:81
#: app/templates/quotes/view.html:71 app/utils/i18n_helpers.py:64
#: app/utils/i18n_helpers.py:76
msgid "Draft"
msgstr "Luonnos"

#: app/templates/inventory/purchase_orders/list.html:25
#: app/templates/inventory/purchase_orders/list.html:78
#: app/templates/inventory/purchase_orders/view.html:39
#: app/templates/invoices/list.html:130
#: app/templates/quotes/_quotes_list.html:64 app/templates/quotes/list.html:82
#: app/templates/quotes/view.html:73 app/utils/i18n_helpers.py:65
#: app/utils/i18n_helpers.py:77
msgid "Sent"
msgstr "Lähetetty"

#: app/templates/inventory/purchase_orders/list.html:26
#: app/templates/inventory/purchase_orders/list.html:80
#: app/templates/inventory/purchase_orders/view.html:41
msgid "Confirmed"
msgstr "Vahvistettu"

#: app/templates/inventory/purchase_orders/list.html:27
#: app/templates/inventory/purchase_orders/list.html:82
#: app/templates/inventory/purchase_orders/view.html:43
#: app/templates/inventory/purchase_orders/view.html:162
msgid "Received"
msgstr "Vastaanotettu"

#: app/templates/inventory/purchase_orders/list.html:34
msgid "All Suppliers"
msgstr "Kaikki toimittajat"

#: app/templates/inventory/purchase_orders/list.html:50
#: app/templates/inventory/purchase_orders/list.html:62
#: app/templates/inventory/purchase_orders/view.html:30
msgid "PO Number"
msgstr "PO-numero"

#: app/templates/inventory/purchase_orders/list.html:53
#: app/templates/inventory/purchase_orders/list.html:73
#: app/templates/inventory/purchase_orders/view.html:63
msgid "Expected Delivery"
msgstr "Odotettu toimitus"

#: app/templates/inventory/purchase_orders/list.html:99
msgid "No purchase orders found."
msgstr "Ostotilauksia ei löytynyt."

#: app/templates/inventory/purchase_orders/view.html:19
msgid "Are you sure you want to cancel this purchase order?"
msgstr "Haluatko varmasti peruuttaa tämän ostotilauksen?"

#: app/templates/inventory/purchase_orders/view.html:20
msgid "Are you sure you want to delete this purchase order?"
msgstr "Haluatko varmasti poistaa tämän ostotilauksen?"

#: app/templates/inventory/purchase_orders/view.html:27
msgid "Purchase Order Details"
msgstr "Ostotilauksen tiedot"

#: app/templates/inventory/purchase_orders/view.html:69
#: app/templates/inventory/purchase_orders/view.html:153
msgid "Received Date"
msgstr "Vastaanottopäivämäärä"

#: app/templates/inventory/purchase_orders/view.html:92
#: app/templates/inventory/purchase_orders/view.html:111
msgid "Quantity Ordered"
msgstr "Tilattu määrä"

#: app/templates/inventory/purchase_orders/view.html:93
#: app/templates/inventory/purchase_orders/view.html:112
msgid "Quantity Received"
msgstr "Vastaanotettu määrä"

#: app/templates/inventory/purchase_orders/view.html:95
#: app/templates/inventory/purchase_orders/view.html:116
msgid "Line Total"
msgstr "Rivi yhteensä"

#: app/templates/inventory/purchase_orders/view.html:127
msgid "Shipping"
msgstr "Toimitus"

#: app/templates/inventory/purchase_orders/view.html:149
msgid "Receive Purchase Order"
msgstr "Vastaanota ostotilaus"

#: app/templates/inventory/purchase_orders/view.html:167
msgid "Mark as Received"
msgstr "Merkitse vastaanotetuksi"

#: app/templates/inventory/purchase_orders/view.html:174
msgid "No items in this purchase order."
msgstr "Tässä ostotilauksessa ei ole tuotteita."

#: app/templates/inventory/purchase_orders/view.html:185
#: app/templates/inventory/reports/dashboard.html:21
#: app/templates/inventory/warehouses/view.html:168
msgid "Total Items"
msgstr "Tuotteita yhteensä"

#: app/templates/inventory/reports/dashboard.html:33
msgid "Total Warehouses"
msgstr "Varastot yhteensä"

#: app/templates/inventory/reports/dashboard.html:45
msgid "Total Inventory Value"
msgstr "Varaston kokonaisarvo"

#: app/templates/inventory/reports/dashboard.html:57
msgid "Low Stock Items"
msgstr "Alhaiset tuotteet"

#: app/templates/inventory/reports/dashboard.html:68
msgid "Available Reports"
msgstr "Saatavilla olevat raportit"

#: app/templates/inventory/reports/dashboard.html:72
msgid "Stock Valuation"
msgstr "Osakkeen arvostus"

#: app/templates/inventory/reports/dashboard.html:73
msgid "View inventory value by warehouse"
msgstr "Tarkastele varaston arvoa varastoittain"

#: app/templates/inventory/reports/dashboard.html:78
msgid "Movement History"
msgstr "Liikehistoria"

#: app/templates/inventory/reports/dashboard.html:79
msgid "Detailed movement log"
msgstr "Yksityiskohtainen liikeloki"

#: app/templates/inventory/reports/dashboard.html:84
msgid "Turnover Analysis"
msgstr "Liikevaihdon analyysi"

#: app/templates/inventory/reports/dashboard.html:85
msgid "Inventory turnover rates"
msgstr "Varaston kiertonopeus"

#: app/templates/inventory/reports/dashboard.html:90
msgid "Low Stock Report"
msgstr "Alhainen varastoraportti"

#: app/templates/inventory/reports/dashboard.html:91
msgid "Items below reorder point"
msgstr "Kohteet uudelleenjärjestyskohdan alapuolella"

#: app/templates/inventory/reports/low_stock.html:22
#, python-format
msgid "Found %(count)s items below their reorder point."
msgstr "Löytyi %(count)s kohdetta niiden uudelleenjärjestelypisteen alapuolelta."

#: app/templates/inventory/reports/low_stock.html:32
#: app/templates/inventory/reports/low_stock.html:53
#: app/templates/inventory/stock_levels/item.html:24
#: app/templates/inventory/stock_levels/item.html:39
#: app/templates/inventory/stock_levels/warehouse.html:48
#: app/templates/inventory/stock_levels/warehouse.html:65
msgid "Quantity On Hand"
msgstr "Määrä käsillä"

#: app/templates/inventory/reports/low_stock.html:35
#: app/templates/inventory/reports/low_stock.html:56
#: app/templates/inventory/stock_items/form.html:73
#: app/templates/inventory/stock_items/view.html:95
msgid "Reorder Quantity"
msgstr "Tilaa määrä uudelleen"

#: app/templates/inventory/reports/low_stock.html:59
msgid "Create PO"
msgstr "Luo ostotilaus"

#: app/templates/inventory/reports/low_stock.html:69
msgid "All Stock Levels are Good"
msgstr "Kaikki varastotasot ovat hyviä"

#: app/templates/inventory/reports/low_stock.html:70
msgid "No items are currently below their reorder point."
msgstr "Yksikään kohde ei ole tällä hetkellä tilauspisteensä alapuolella."

#: app/templates/inventory/reports/movement_history.html:170
msgid "No movements found."
msgstr "Liikkeitä ei löytynyt."

#: app/templates/inventory/reports/turnover.html:37
msgid "Turnover rate indicates how many times inventory is sold and replaced in a year. Higher rates indicate faster-moving items."
msgstr "Kiertonopeus kertoo kuinka monta kertaa varasto myydään ja vaihdetaan vuoden aikana. Korkeammat hinnat tarkoittavat nopeammin liikkuvia kohteita."

#: app/templates/inventory/reports/turnover.html:46
#: app/templates/inventory/reports/turnover.html:61
msgid "Total Sold"
msgstr "Yhteensä myyty"

#: app/templates/inventory/reports/turnover.html:47
#: app/templates/inventory/reports/turnover.html:62
msgid "Avg Stock Level"
msgstr "Keskimääräinen varastotaso"

#: app/templates/inventory/reports/turnover.html:48
#: app/templates/inventory/reports/turnover.html:63
msgid "Turnover Rate"
msgstr "Liikevaihto"

#: app/templates/inventory/reports/turnover.html:66
msgid "Fast Moving"
msgstr "Nopeasti liikkuva"

#: app/templates/inventory/reports/turnover.html:68
#: app/templates/inventory/stock_items/view.html:209
msgid "Normal"
msgstr "Normaali"

#: app/templates/inventory/reports/turnover.html:70
msgid "Slow Moving"
msgstr "Hidas Liikkuminen"

#: app/templates/inventory/reports/turnover.html:72
msgid "Very Slow"
msgstr "Erittäin hidas"

#: app/templates/inventory/reports/turnover.html:79
msgid "No sales data found for the selected period."
msgstr "Valitulle ajanjaksolle ei löytynyt myyntitietoja."

#: app/templates/inventory/reports/valuation.html:46
msgid "Inventory Valuation"
msgstr "Varaston arvostus"

#: app/templates/inventory/reports/valuation.html:48
#: app/templates/inventory/reports/valuation.html:63
#: app/templates/inventory/reports/valuation.html:83
#: app/templates/inventory/reports/valuation.html:95
#: app/templates/quotes/list.html:25
msgid "Total Value"
msgstr "Kokonaisarvo"

#: app/templates/inventory/reports/valuation.html:88
msgid "No items found with cost information."
msgstr "Kustannustiedoilla varustettuja tuotteita ei löytynyt."

#: app/templates/inventory/reservations/list.html:23
#: app/templates/inventory/reservations/list.html:80
#: app/templates/inventory/stock_items/view.html:131
#: app/templates/inventory/stock_items/view.html:145
#: app/templates/inventory/stock_levels/list.html:50
#: app/templates/inventory/stock_levels/list.html:65
#: app/templates/inventory/warehouses/view.html:87
#: app/templates/inventory/warehouses/view.html:102
msgid "Reserved"
msgstr "Varattu"

#: app/templates/inventory/reservations/list.html:24
#: app/templates/inventory/reservations/list.html:82
msgid "Fulfilled"
msgstr "Täytetty"

#: app/templates/inventory/reservations/list.html:45
#: app/templates/inventory/reservations/list.html:89
msgid "Reserved At"
msgstr "Varattu klo"

#: app/templates/inventory/reservations/list.html:46
#: app/templates/inventory/reservations/list.html:90
msgid "Expires At"
msgstr "Päättyy klo"

#: app/templates/inventory/reservations/list.html:104
msgid "Fulfill this reservation?"
msgstr "Täytä tämä varaus?"

#: app/templates/inventory/reservations/list.html:110
msgid "Cancel this reservation?"
msgstr "Perutaanko tämä varaus?"

#: app/templates/inventory/reservations/list.html:120
msgid "No reservations found."
msgstr "Varauksia ei löytynyt."

#: app/templates/inventory/stock_items/form.html:45
#: app/templates/inventory/stock_items/list.html:52
#: app/templates/inventory/stock_items/list.html:69
#: app/templates/inventory/stock_items/view.html:36
#: app/templates/kiosk/dashboard.html:132
#: app/templates/quotes/_edit_quote_form_scripts.html:174
#: app/templates/quotes/create.html:66 app/templates/quotes/edit.html:71
#: app/templates/quotes/edit.html:109
msgid "Unit"
msgstr "Yksikkö"

#: app/templates/inventory/stock_items/form.html:61
#: app/templates/inventory/stock_items/view.html:50
msgid "Default Cost"
msgstr "Oletushinta"

#: app/templates/inventory/stock_items/form.html:65
#: app/templates/inventory/stock_items/view.html:54
msgid "Default Price"
msgstr "Oletushinta"

#: app/templates/inventory/stock_items/form.html:77
msgid "Image URL"
msgstr "Kuvan URL-osoite"

#: app/templates/inventory/stock_items/form.html:91
msgid "Track Inventory"
msgstr "Seuraa varastoa"

#: app/templates/inventory/stock_items/form.html:99
msgid "Manage multiple suppliers for this item with different pricing."
msgstr "Hallitse useita tämän tuotteen toimittajia eri hinnoilla."

#: app/templates/inventory/stock_items/form.html:114
#: app/templates/inventory/stock_items/form.html:165
#: app/templates/inventory/suppliers/view.html:117
#: app/templates/inventory/suppliers/view.html:138
msgid "MOQ"
msgstr "MOQ"

#: app/templates/inventory/stock_items/form.html:115
#: app/templates/inventory/stock_items/form.html:166
msgid "Lead Time (days)"
msgstr "Toimitusaika (päiviä)"

#: app/templates/inventory/stock_items/form.html:118
#: app/templates/inventory/stock_items/form.html:169
#: app/templates/inventory/stock_items/view.html:71
#: app/templates/inventory/suppliers/view.html:119
#: app/templates/inventory/suppliers/view.html:146
#: app/templates/inventory/suppliers/view.html:149
msgid "Preferred"
msgstr "Suositeltava"

#: app/templates/inventory/stock_items/form.html:129
msgid "Add Supplier"
msgstr "Lisää toimittaja"

#: app/templates/inventory/stock_items/history.html:156
msgid "No movement history found for this item."
msgstr "Tälle tuotteelle ei löytynyt liikehistoriaa."

#: app/templates/inventory/stock_items/list.html:22
msgid "SKU, Name, Barcode..."
msgstr "SKU, nimi, viivakoodi..."

#: app/templates/inventory/stock_items/list.html:36
#: app/templates/inventory/suppliers/list.html:27
msgid "Active Only"
msgstr "Vain aktiivinen"

#: app/templates/inventory/stock_items/list.html:53
#: app/templates/inventory/stock_items/list.html:70
msgid "Total Qty"
msgstr "Kokonaismäärä"

#: app/templates/inventory/stock_items/list.html:54
#: app/templates/inventory/stock_items/list.html:77
#: app/templates/inventory/stock_items/view.html:132
#: app/templates/inventory/stock_items/view.html:146
#: app/templates/inventory/stock_levels/item.html:26
#: app/templates/inventory/stock_levels/item.html:41
#: app/templates/inventory/stock_levels/list.html:51
#: app/templates/inventory/stock_levels/list.html:66
#: app/templates/inventory/stock_levels/warehouse.html:50
#: app/templates/inventory/stock_levels/warehouse.html:67
#: app/templates/inventory/warehouses/view.html:88
#: app/templates/inventory/warehouses/view.html:103
#: app/templates/workforce/dashboard.html:212
msgid "Available"
msgstr "Saatavilla"

#: app/templates/inventory/stock_items/list.html:81
#: app/templates/inventory/stock_items/view.html:149
#: app/templates/inventory/stock_levels/list.html:69
#: app/templates/inventory/stock_levels/warehouse.html:73
#: app/templates/inventory/warehouses/view.html:106
msgid "Low Stock"
msgstr "Alhainen varasto"

#: app/templates/inventory/stock_items/list.html:108
msgid "No stock items found."
msgstr "Varastotuotteita ei löytynyt."

#: app/templates/inventory/stock_items/view.html:25
msgid "Item Details"
msgstr "Tuotteen tiedot"

#: app/templates/inventory/stock_items/view.html:110
msgid "Trackable"
msgstr "Jäljitettävä"

#: app/templates/inventory/stock_items/view.html:125
msgid "Stock Levels by Warehouse"
msgstr "Varastotason varastotasot"

#: app/templates/inventory/stock_items/view.html:163
msgid "Stock Breakdown by Valuation"
msgstr ""

#: app/templates/inventory/stock_items/view.html:164
msgid "Detailed breakdown showing remaining stock with different devaluation rates"
msgstr ""

#: app/templates/inventory/stock_items/view.html:198
msgid "No devaluation"
msgstr ""

#: app/templates/inventory/stock_items/view.html:235
#: app/templates/inventory/warehouses/view.html:125
msgid "Recent Stock Movements"
msgstr "Viimeaikaiset osakeliikkeet"

#: app/templates/inventory/stock_items/view.html:275
msgid "Total On Hand"
msgstr "Total On Hand"

#: app/templates/inventory/stock_items/view.html:279
msgid "Total Reserved"
msgstr "Yhteensä varattu"

#: app/templates/inventory/stock_items/view.html:283
msgid "Total Available"
msgstr "Yhteensä saatavilla"

#: app/templates/inventory/stock_items/view.html:289
msgid "Low Stock Alert"
msgstr "Alhaisen varaston hälytys"

#: app/templates/inventory/stock_items/view.html:295
msgid "This item is not trackable."
msgstr "Tämä kohde ei ole jäljitettävissä."

#: app/templates/inventory/stock_items/view.html:302
msgid "Active Reservations"
msgstr "Aktiiviset varaukset"

#: app/templates/inventory/stock_levels/item.html:25
#: app/templates/inventory/stock_levels/item.html:40
#: app/templates/inventory/stock_levels/warehouse.html:49
#: app/templates/inventory/stock_levels/warehouse.html:66
msgid "Quantity Reserved"
msgstr "Määrä varattu"

#: app/templates/inventory/stock_levels/item.html:28
#: app/templates/inventory/stock_levels/item.html:45
msgid "Last Counted"
msgstr "Viimeksi laskettu"

#: app/templates/inventory/stock_levels/item.html:56
msgid "No stock found for this item in any warehouse."
msgstr "Tälle tuotteelle ei löytynyt varastoa mistään varastosta."

#: app/templates/inventory/stock_levels/list.html:77
msgid "No stock levels found."
msgstr "Varastotasoja ei löytynyt."

#: app/templates/inventory/stock_levels/warehouse.html:32
msgid "Low Stock Only"
msgstr "Vain vähissä varastossa"

#: app/templates/inventory/stock_levels/warehouse.html:75
msgid "Oversold"
msgstr "Ylimyyty"

#: app/templates/inventory/stock_levels/warehouse.html:84
msgid "No stock items found in this warehouse."
msgstr "Varastotuotteita ei löytynyt tästä varastosta."

#: app/templates/inventory/suppliers/form.html:23
msgid "Supplier Code"
msgstr "Toimittajakoodi"

#: app/templates/inventory/suppliers/form.html:25
msgid "Unique code for this supplier (e.g., SUP-001)"
msgstr "Tämän toimittajan yksilöllinen koodi (esim. SUP-001)"

#: app/templates/inventory/suppliers/form.html:60
#: app/templates/inventory/suppliers/view.html:89
#: app/templates/quotes/create.html:177 app/templates/quotes/create.html:180
#: app/templates/quotes/edit.html:276 app/templates/quotes/edit.html:279
#: app/templates/quotes/pdf_default.html:85 app/templates/quotes/view.html:89
msgid "Payment Terms"
msgstr "Maksuehdot"

#: app/templates/inventory/suppliers/form.html:61
msgid "e.g., Net 30, Net 60"
msgstr "esim. Net 30, Net 60"

#: app/templates/inventory/suppliers/list.html:22
msgid "Code, name, email"
msgstr "Koodi, nimi, sähköposti"

#: app/templates/inventory/suppliers/list.html:95
msgid "No suppliers found."
msgstr "Toimittajia ei löytynyt."

#: app/templates/inventory/suppliers/view.html:23
msgid "Supplier Details"
msgstr "Toimittajan tiedot"

#: app/templates/inventory/suppliers/view.html:109
msgid "Stock Items from this Supplier"
msgstr "Varastotuotteet tältä toimittajalta"

#: app/templates/inventory/suppliers/view.html:118
#: app/templates/inventory/suppliers/view.html:139
msgid "Lead Time"
msgstr "Toimitusaika"

#: app/templates/inventory/suppliers/view.html:163
msgid "No stock items associated with this supplier."
msgstr "Tähän toimittajaan ei ole liitetty varastotuotteita."

#: app/templates/inventory/suppliers/view.html:178
msgid "Preferred Items"
msgstr "Ensisijaiset kohteet"

#: app/templates/inventory/transfers/form.html:32
#: app/templates/inventory/transfers/list.html:40
#: app/templates/inventory/transfers/list.html:59
#: app/templates/kiosk/dashboard.html:229
msgid "From Warehouse"
msgstr "Varastosta"

#: app/templates/inventory/transfers/form.html:34
msgid "Select Source Warehouse"
msgstr "Valitse Lähdevarasto"

#: app/templates/inventory/transfers/form.html:41
#: app/templates/inventory/transfers/list.html:41
#: app/templates/inventory/transfers/list.html:64
#: app/templates/kiosk/dashboard.html:246
msgid "To Warehouse"
msgstr "Varastoon"

#: app/templates/inventory/transfers/form.html:43
msgid "Select Destination Warehouse"
msgstr "Valitse kohdevarasto"

#: app/templates/inventory/transfers/form.html:55
msgid "Optional notes about this transfer"
msgstr "Valinnaisia ​​huomautuksia tästä siirrosta"

#: app/templates/inventory/transfers/form.html:63
msgid "Create Transfer"
msgstr "Luo siirto"

#: app/templates/inventory/transfers/list.html:77
msgid "No transfers found."
msgstr "Siirtoja ei löytynyt."

#: app/templates/inventory/warehouses/form.html:23
msgid "Warehouse Code"
msgstr "Varaston koodi"

#: app/templates/inventory/warehouses/form.html:25
msgid "Unique code for this warehouse (e.g., WH-001)"
msgstr "Tämän varaston yksilöllinen koodi (esim. WH-001)"

#: app/templates/inventory/warehouses/form.html:40
#: app/templates/inventory/warehouses/list.html:25
#: app/templates/inventory/warehouses/list.html:40
#: app/templates/inventory/warehouses/view.html:53
msgid "Contact Email"
msgstr "Yhteydenotto Sähköposti"

#: app/templates/inventory/warehouses/form.html:44
#: app/templates/inventory/warehouses/view.html:61
msgid "Contact Phone"
msgstr "Yhteydenotto Puhelin"

#: app/templates/inventory/warehouses/list.html:68
msgid "No warehouses found."
msgstr "Varastoja ei löytynyt."

#: app/templates/inventory/warehouses/view.html:23
msgid "Warehouse Details"
msgstr "Varaston tiedot"

#: app/templates/inventory/warehouses/view.html:118
msgid "No stock items in this warehouse."
msgstr "Tässä varastossa ei ole varastossa olevia tuotteita."

#: app/templates/inventory/warehouses/view.html:172
msgid "Total Quantity"
msgstr "Kokonaismäärä"

#: app/templates/invoice_approvals/list.html:51
msgid "Current Approver"
msgstr ""

#: app/templates/invoice_approvals/list.html:54
msgid "You"
msgstr ""

#: app/templates/invoice_approvals/list.html:67
msgid "No Pending Approvals"
msgstr ""

#: app/templates/invoice_approvals/list.html:68
msgid "You have no invoices awaiting your approval."
msgstr ""

#: app/templates/invoice_approvals/list.html:77
msgid "Reject Invoice Approval"
msgstr ""

#: app/templates/invoice_approvals/list.html:81
msgid "Reason for Rejection"
msgstr ""

#: app/templates/invoice_approvals/list.html:82
msgid "Please provide a reason for rejecting this invoice..."
msgstr ""

#: app/templates/invoice_approvals/request.html:3
#: app/templates/invoice_approvals/request.html:8
msgid "Request Invoice Approval"
msgstr ""

#: app/templates/invoice_approvals/request.html:11
msgid "Back to Invoice"
msgstr ""

#: app/templates/invoice_approvals/request.html:19
msgid "Select Approvers"
msgstr ""

#: app/templates/invoice_approvals/request.html:20
msgid "Select one or more users who need to approve this invoice. Approvals will be processed in order."
msgstr ""

#: app/templates/invoice_approvals/request.html:39
#: app/templates/invoices/view.html:140 app/templates/quotes/view.html:202
msgid "Request Approval"
msgstr "Pyydä hyväksyntää"

#: app/templates/invoice_approvals/view.html:19
#: app/templates/invoices/view.html:107 app/templates/quotes/view.html:196
msgid "Approval Status"
msgstr "Hyväksyntätila"

#: app/templates/invoice_approvals/view.html:31
msgid "Requested By"
msgstr ""

#: app/templates/invoice_approvals/view.html:36
msgid "Requested At"
msgstr ""

#: app/templates/invoice_approvals/view.html:42
msgid "Approved By"
msgstr ""

#: app/templates/invoice_approvals/view.html:49
msgid "Rejected By"
msgstr ""

#: app/templates/invoice_approvals/view.html:54
#: app/templates/quotes/view.html:564
msgid "Rejection Reason"
msgstr "Hylkäämisen syy"

#: app/templates/invoice_approvals/view.html:64
msgid "Approval Stages"
msgstr ""

#: app/templates/invoice_approvals/view.html:100
#: app/templates/invoices/edit.html:376 app/templates/main/help.html:536
#: app/templates/reports/index.html:166 app/templates/tasks/edit.html:275
msgid "Quick Actions"
msgstr "Nopeat toiminnot"

#: app/templates/invoice_approvals/view.html:116
msgid "Waiting for approval from another user."
msgstr ""

#: app/templates/invoices/_invoices_list.html:9
#: app/templates/payments/list.html:96
#: app/templates/reports/export_form.html:196
#: app/templates/reports/export_form.html:329
#: app/templates/reports/summary.html:12
#: app/templates/reports/task_report.html:55
#: app/templates/reports/time_entries_report.html:89
#: app/templates/reports/user_report.html:56
msgid "Export to Excel"
msgstr "Vie Exceliin"

#: app/templates/invoices/_invoices_list.html:83 app/utils/i18n_helpers.py:89
#: app/utils/i18n_helpers.py:100
msgid "Partially Paid"
msgstr "Osittain maksettu"

#: app/templates/invoices/_invoices_list.html:87 app/utils/i18n_helpers.py:90
#: app/utils/i18n_helpers.py:101
msgid "Fully Paid"
msgstr "Täysin maksettu"

#: app/templates/invoices/create.html:8 app/templates/invoices/create.html:60
#: app/templates/main/help.html:448
msgid "Create Invoice"
msgstr "Luo lasku"

#: app/templates/invoices/create.html:8
msgid "Generate a new invoice for a project and client"
msgstr "Luo uusi lasku projektille ja asiakkaalle"

#: app/templates/invoices/create.html:19 app/templates/issues/view.html:68
#: app/templates/recurring_tasks/form.html:37
#: app/templates/tasks/create.html:48 app/templates/tasks/edit.html:56
msgid "Select a project"
msgstr "Valitse projekti"

#: app/templates/invoices/create.html:24
msgid "Selecting a project will auto-fill client details"
msgstr "Projektin valitseminen täyttää asiakkaan tiedot automaattisesti"

#: app/templates/invoices/create.html:43 app/templates/invoices/edit.html:42
msgid "Buyer reference (PEPPOL BT-10)"
msgstr ""

#: app/templates/invoices/create.html:44 app/templates/invoices/edit.html:43
msgid "Optional; used in PEPPOL UBL"
msgstr ""

#: app/templates/invoices/create.html:47 app/templates/invoices/edit.html:34
#: app/templates/quotes/create.html:156 app/templates/quotes/edit.html:255
msgid "Tax Rate (%)"
msgstr "Veroprosentti (%)"

#: app/templates/invoices/create.html:67
#: app/templates/invoices/generate_from_time.html:173
msgid "Tips"
msgstr "Vinkkejä"

#: app/templates/invoices/create.html:69
msgid "Choose the correct project to auto-fill client details."
msgstr "Valitse oikea projekti asiakkaan tietojen automaattista täyttämistä varten."

#: app/templates/invoices/create.html:70
msgid "You can customize notes and terms before sending the invoice."
msgstr "Voit muokata huomautuksia ja ehtoja ennen laskun lähettämistä."

#: app/templates/invoices/edit.html:13
msgid "Edit Invoice"
msgstr "Muokkaa laskua"

#: app/templates/invoices/edit.html:13
msgid "Update invoice details, items, and terms"
msgstr "Päivitä laskun tiedot, tuotteet ja ehdot"

#: app/templates/invoices/edit.html:63
msgid "Time-based services and hourly work"
msgstr "Aikaperusteiset palvelut ja tuntityö"

#: app/templates/invoices/edit.html:72
msgid "Project / Stock Item"
msgstr ""

#: app/templates/invoices/edit.html:73
msgid "Task / Warehouse"
msgstr ""

#: app/templates/invoices/edit.html:92
msgid "Project hours"
msgstr ""

#: app/templates/invoices/edit.html:97 app/templates/quotes/edit.html:92
msgid "Select Stock Item"
msgstr "Valitse varastotuote"

#: app/templates/invoices/edit.html:114 app/templates/invoices/edit.html:538
msgid "e.g., Web Development Services"
msgstr "esim. Web-kehityspalvelut"

#: app/templates/invoices/edit.html:118
msgid "Quantity is from logged hours and cannot be edited"
msgstr ""

#: app/templates/invoices/edit.html:127 app/templates/invoices/edit.html:547
#: app/templates/quotes/_edit_quote_form_scripts.html:178
#: app/templates/quotes/edit.html:113
msgid "Remove item"
msgstr "Poista kohde"

#: app/templates/invoices/edit.html:137
msgid "Items Subtotal"
msgstr "Kohteet Välisumma"

#: app/templates/invoices/edit.html:151
msgid "Billable expenses such as travel, meals, and materials"
msgstr "Laskutettavat kulut, kuten matkat, ateriat ja materiaalit"

#: app/templates/invoices/edit.html:154
msgid "Add Expense"
msgstr "Lisää kuluja"

#: app/templates/invoices/edit.html:173
msgid "e.g., Travel to Client Meeting"
msgstr "esim. matkustaa asiakaskokoukseen"

#: app/templates/invoices/edit.html:173
msgid "Linked expense - title cannot be edited"
msgstr "Linkitetty kulu - otsikkoa ei voi muokata"

#: app/templates/invoices/edit.html:176
msgid "Linked expense - description cannot be edited"
msgstr "Linkitetty kulu - kuvausta ei voi muokata"

#: app/templates/invoices/edit.html:179
msgid "Linked expense - category cannot be edited"
msgstr "Linkitetty kulu – luokkaa ei voi muokata"

#: app/templates/invoices/edit.html:180 app/templates/projects/add_cost.html:40
#: app/templates/projects/edit_cost.html:47
#: app/templates/quotes/_edit_quote_form_scripts.html:185
#: app/templates/quotes/edit.html:161 app/utils/i18n_helpers.py:164
#: app/utils/i18n_helpers.py:181
msgid "Travel"
msgstr "Matkustaa"

#: app/templates/invoices/edit.html:181
#: app/templates/quotes/_edit_quote_form_scripts.html:186
#: app/templates/quotes/edit.html:162 app/utils/i18n_helpers.py:165
#: app/utils/i18n_helpers.py:182
msgid "Meals"
msgstr "Ateriat"

#: app/templates/invoices/edit.html:182 app/utils/i18n_helpers.py:166
#: app/utils/i18n_helpers.py:183
msgid "Accommodation"
msgstr "Majoitus"

#: app/templates/invoices/edit.html:183
#: app/templates/quotes/_edit_quote_form_scripts.html:187
#: app/templates/quotes/edit.html:163 app/utils/i18n_helpers.py:167
#: app/utils/i18n_helpers.py:184
msgid "Supplies"
msgstr "Tarvikkeet"

#: app/templates/invoices/edit.html:184 app/utils/i18n_helpers.py:168
#: app/utils/i18n_helpers.py:185
msgid "Software"
msgstr "Ohjelmisto"

#: app/templates/invoices/edit.html:185 app/templates/projects/add_cost.html:43
#: app/templates/projects/edit_cost.html:50
#: app/templates/quotes/_edit_quote_form_scripts.html:189
#: app/templates/quotes/edit.html:165 app/utils/i18n_helpers.py:169
#: app/utils/i18n_helpers.py:186
msgid "Equipment"
msgstr "Laitteet"

#: app/templates/invoices/edit.html:186 app/templates/projects/add_cost.html:42
#: app/templates/projects/edit_cost.html:49
#: app/templates/quotes/_edit_quote_form_scripts.html:188
#: app/templates/quotes/edit.html:164 app/utils/i18n_helpers.py:170
#: app/utils/i18n_helpers.py:187
msgid "Services"
msgstr "Palvelut"

#: app/templates/invoices/edit.html:187 app/utils/i18n_helpers.py:171
#: app/utils/i18n_helpers.py:188
msgid "Marketing"
msgstr "Markkinointi"

#: app/templates/invoices/edit.html:188 app/utils/i18n_helpers.py:172
#: app/utils/i18n_helpers.py:189
msgid "Training"
msgstr "Koulutus"

#: app/templates/invoices/edit.html:189 app/templates/invoices/edit.html:256
#: app/templates/invoices/edit.html:616 app/templates/kiosk/dashboard.html:203
#: app/templates/projects/add_cost.html:45
#: app/templates/projects/add_good.html:35
#: app/templates/projects/edit_cost.html:52
#: app/templates/projects/edit_good.html:35
#: app/templates/quotes/_edit_quote_form_scripts.html:190
#: app/templates/quotes/_edit_quote_form_scripts.html:224
#: app/templates/quotes/edit.html:166 app/templates/quotes/edit.html:223
#: app/utils/i18n_helpers.py:118 app/utils/i18n_helpers.py:134
#: app/utils/i18n_helpers.py:173 app/utils/i18n_helpers.py:190
msgid "Other"
msgstr "Muut"

#: app/templates/invoices/edit.html:193
msgid "Linked expense - amount cannot be edited"
msgstr "Linkitetty kulu – summaa ei voi muokata"

#: app/templates/invoices/edit.html:196
msgid "Linked expense - date cannot be edited"
msgstr "Linkitetty kulu - päivämäärää ei voi muokata"

#: app/templates/invoices/edit.html:199
msgid "Unlink expense from invoice"
msgstr "Poista kulujen linkitys laskusta"

#: app/templates/invoices/edit.html:209
msgid "Expenses Subtotal"
msgstr "Kulut Välisumma"

#: app/templates/invoices/edit.html:220 app/templates/invoices/view.html:203
#: app/templates/projects/goods.html:6
msgid "Extra Goods"
msgstr "Lisätavarat"

#: app/templates/invoices/edit.html:223
msgid "Products, materials, licenses, and other goods"
msgstr "Tuotteet, materiaalit, lisenssit ja muut tavarat"

#: app/templates/invoices/edit.html:226 app/templates/projects/add_good.html:69
#: app/templates/projects/goods.html:11
msgid "Add Good"
msgstr "Lisää Hyvä"

#: app/templates/invoices/edit.html:236 app/templates/invoices/edit.html:263
#: app/templates/invoices/edit.html:623 app/templates/quotes/create.html:67
#: app/templates/quotes/create.html:129 app/templates/quotes/edit.html:72
#: app/templates/quotes/edit.html:110 app/templates/quotes/edit.html:203
msgid "Price"
msgstr "Hinta"

#: app/templates/invoices/edit.html:245 app/templates/invoices/edit.html:605
msgid "e.g., Software License"
msgstr "esim. ohjelmistolisenssi"

#: app/templates/invoices/edit.html:252 app/templates/invoices/edit.html:612
#: app/templates/projects/add_good.html:31
#: app/templates/projects/edit_good.html:31
#: app/templates/quotes/_edit_quote_form_scripts.html:220
#: app/templates/quotes/edit.html:219
msgid "Product"
msgstr "Tuote"

#: app/templates/invoices/edit.html:253 app/templates/invoices/edit.html:613
#: app/templates/projects/add_good.html:32
#: app/templates/projects/edit_good.html:32
#: app/templates/quotes/_edit_quote_form_scripts.html:221
#: app/templates/quotes/edit.html:220
msgid "Service"
msgstr "Palvelu"

#: app/templates/invoices/edit.html:254 app/templates/invoices/edit.html:614
#: app/templates/projects/add_good.html:33
#: app/templates/projects/edit_good.html:33
#: app/templates/quotes/_edit_quote_form_scripts.html:222
#: app/templates/quotes/edit.html:221
msgid "Material"
msgstr "Materiaali"

#: app/templates/invoices/edit.html:269 app/templates/invoices/edit.html:629
msgid "Remove good"
msgstr "Poista hyvä"

#: app/templates/invoices/edit.html:279
msgid "Goods Subtotal"
msgstr "Tavaran välisumma"

#: app/templates/invoices/edit.html:297
msgid "Live Preview"
msgstr "Live-esikatselu"

#: app/templates/invoices/edit.html:317
msgid "Payment"
msgstr "Maksu"

#: app/templates/invoices/edit.html:342
msgid "Goods"
msgstr "Tavarat"

#: app/templates/invoices/edit.html:378
msgid "Generate from Time/Costs"
msgstr "Luo ajan/kustannusten perusteella"

#: app/templates/invoices/edit.html:379 app/templates/invoices/view.html:40
msgid "Record Payment"
msgstr "Kirjaa maksu"

#: app/templates/invoices/edit.html:380 app/templates/invoices/view.html:17
#: app/templates/mileage/list.html:66 app/templates/per_diem/list.html:54
#: app/templates/quotes/view.html:37 app/templates/reports/summary.html:9
#: app/templates/timer/time_entries_overview.html:54
#: app/templates/timer/time_entries_overview.html:56
msgid "Export PDF"
msgstr "Vie PDF"

#: app/templates/invoices/edit.html:381 app/templates/mileage/list.html:63
#: app/templates/per_diem/list.html:51
#: app/templates/timer/time_entries_overview.html:45
#: app/templates/timer/time_entries_overview.html:47
msgid "Export CSV"
msgstr "Vie CSV"

#: app/templates/invoices/edit.html:382
msgid "Duplicate Invoice"
msgstr "Kaksoislasku"

#: app/templates/invoices/edit.html:666
msgid "Are you sure you want to unlink this expense from the invoice?"
msgstr "Haluatko varmasti poistaa tämän kulun linkityksen laskusta?"

#: app/templates/invoices/edit.html:668
msgid "Unlink Expense"
msgstr "Poista kulujen linkitys"

#: app/templates/invoices/edit.html:669
msgid "Unlink"
msgstr "Poista linkitys"

#: app/templates/invoices/edit.html:720
msgid "Please add at least one item, expense, or extra good to the invoice"
msgstr "Lisää laskuun vähintään yksi tuote, kulu tai lisähyödyke"

#: app/templates/invoices/generate_from_time.html:6
msgid "Generate from Time, Costs & Goods"
msgstr "Luo aikaa, kustannuksia ja tavaroita"

#: app/templates/invoices/generate_from_time.html:7
msgid "Select unbilled time entries, project costs, and extra goods to add to this invoice"
msgstr "Valitse laskuttamattomat aikakirjaukset, projektikustannukset ja lisätavarat, jotka lisätään tähän laskuun"

#: app/templates/invoices/generate_from_time.html:9
msgid "Back to Edit"
msgstr "Takaisin Muokkaa"

#: app/templates/invoices/generate_from_time.html:19
msgid "Unbilled Time Entries"
msgstr "Laskuttamattomat aikamerkinnät"

#: app/templates/invoices/generate_from_time.html:31
#: app/templates/projects/dashboard.html:290
#: app/templates/projects/time_entries_overview.html:61
#: app/templates/reports/iterative_view.html:32
#: app/templates/reports/time_entries_report.html:85
msgid "entries"
msgstr "merkinnät"

#: app/templates/invoices/generate_from_time.html:67
msgid "No unbilled time entries found for this project."
msgstr "Tälle projektille ei löytynyt laskuttamattomia aikamerkintöjä."

#: app/templates/invoices/generate_from_time.html:72
msgid "Uninvoiced Project Costs"
msgstr "Laskuttamattomat projektikustannukset"

#: app/templates/invoices/generate_from_time.html:86
msgid "No uninvoiced costs found for this project."
msgstr "Tästä projektista ei löytynyt laskuttamattomia kuluja."

#: app/templates/invoices/generate_from_time.html:91
msgid "Uninvoiced Billable Expenses"
msgstr "Laskuttamattomat laskutettavat kulut"

#: app/templates/invoices/generate_from_time.html:101
#: app/templates/invoices/pdf_default.html:120
#: app/utils/pdf_generator_fallback.py:289
msgid "Vendor"
msgstr "Myyjä"

#: app/templates/invoices/generate_from_time.html:109
msgid "No uninvoiced billable expenses found for this project."
msgstr "Tästä projektista ei löytynyt laskuttamattomia laskutettavia kuluja."

#: app/templates/invoices/generate_from_time.html:114
msgid "Project Extra Goods"
msgstr "Projektin lisätavarat"

#: app/templates/invoices/generate_from_time.html:131
msgid "No extra goods found for this project."
msgstr "Tähän projektiin ei löytynyt ylimääräisiä tuotteita."

#: app/templates/invoices/generate_from_time.html:137
msgid "Add Selected to Invoice"
msgstr "Lisää valitut laskuun"

#: app/templates/invoices/generate_from_time.html:145
msgid "Selection Summary"
msgstr "Valinnan yhteenveto"

#: app/templates/invoices/generate_from_time.html:146
msgid "Total available hours"
msgstr "Käytettävissä olevat tunnit yhteensä"

#: app/templates/invoices/generate_from_time.html:147
msgid "Total available costs"
msgstr "Käytettävissä olevat kokonaiskustannukset"

#: app/templates/invoices/generate_from_time.html:148
msgid "Total available expenses"
msgstr "Käytettävissä olevat kulut yhteensä"

#: app/templates/invoices/generate_from_time.html:149
msgid "Total available goods"
msgstr "Saatavilla olevat tavarat yhteensä"

#: app/templates/invoices/generate_from_time.html:152
msgid "Prepaid Hours Overview"
msgstr "Ennakkomaksutuntien yleiskatsaus"

#: app/templates/invoices/generate_from_time.html:154
#, python-format
msgid "Plan includes %(hours)s hours per cycle (resets on day %(day)s)."
msgstr "Suunnitelmaan sisältyy %(hours)s tuntia sykliä kohden (nollautuu päivänä %(day)s)."

#: app/templates/invoices/generate_from_time.html:161
#, python-format
msgid "Consumed: %(consumed)s h • Remaining: %(remaining)s h"
msgstr "Kulutus: %(consumed)s h • Jäljellä: %(remaining)s h"

#: app/templates/invoices/generate_from_time.html:166
msgid "No prepaid usage recorded for selected period yet."
msgstr "Valitulle ajanjaksolle ei ole vielä tallennettu prepaid-käyttöä."

#: app/templates/invoices/generate_from_time.html:175
msgid "You can select multiple time entries, costs, expenses, and extra goods."
msgstr "Voit valita useita aikamerkintöjä, kustannuksia, kuluja ja lisätuotteita."

#: app/templates/invoices/generate_from_time.html:176
msgid "Time entries are grouped by task or project at item creation."
msgstr "Aikamerkinnät ryhmitellään tehtävän tai projektin mukaan kohteita luotaessa."

#: app/templates/invoices/generate_from_time.html:177
msgid "Costs and extra goods are added as individual invoice items."
msgstr "Kustannukset ja lisätavarat lisätään yksittäisinä laskuerinä."

#: app/templates/invoices/generate_from_time.html:178
msgid "Expenses are linked to the invoice and appear in a separate section."
msgstr "Kulut on linkitetty laskuun ja näkyvät erillisessä osiossa."

#: app/templates/invoices/generate_from_time.html:194
msgid "Please select at least one time entry, cost, expense, or extra good"
msgstr "Valitse vähintään yksi kertaluonteinen merkintä, hinta, kulu tai lisähyödyke"

#: app/templates/invoices/list.html:32
msgid "Filter Invoices"
msgstr "Suodata laskut"

#: app/templates/invoices/list.html:72
msgid "Invoice number or client"
msgstr "Laskun numero tai asiakas"

#: app/templates/invoices/list.html:105
msgid "Delete Selected Invoices"
msgstr "Poista valitut laskut"

#: app/templates/invoices/list.html:125
msgid "Change Status for Selected Invoices"
msgstr "Muuta valittujen laskujen tilaa"

#: app/templates/invoices/list.html:126 app/templates/invoices/list.html:128
msgid "Select Status"
msgstr ""

#: app/templates/invoices/list.html:135
#: app/templates/timer/time_entries_overview.html:202
#: app/templates/timer/view_timer.html:151
msgid "Invoice Reference"
msgstr ""

#: app/templates/invoices/list.html:136
msgid "e.g., Payment confirmation number"
msgstr ""

#: app/templates/invoices/list.html:153 app/templates/invoices/list.html:176
#: app/templates/invoices/view.html:365 app/templates/invoices/view.html:388
msgid "Delete Invoice"
msgstr "Poista lasku"

#: app/templates/invoices/list.html:161 app/templates/invoices/view.html:373
#: app/templates/kanban/columns.html:149
msgid "Warning:"
msgstr "Varoitus:"

#: app/templates/invoices/list.html:164 app/templates/invoices/view.html:376
msgid "Are you sure you want to delete invoice"
msgstr "Haluatko varmasti poistaa laskun?"

#: app/templates/invoices/list.html:166 app/templates/invoices/view.html:378
msgid "All invoice items, extra goods, and payment records associated with this invoice will be permanently deleted."
msgstr "Kaikki tähän laskuun liittyvät laskutuotteet, lisätuotteet ja maksutietueet poistetaan pysyvästi."

#: app/templates/invoices/pdf_default.html:54 app/utils/pdf_generator.py:1124
#: app/utils/pdf_generator_fallback.py:167
msgid "INVOICE"
msgstr "LASKUTTAA"

#: app/templates/invoices/pdf_default.html:56 app/utils/pdf_generator.py:1126
msgid "Invoice #"
msgstr "Lasku nro"

#: app/templates/invoices/pdf_default.html:66 app/utils/pdf_generator.py:1137
msgid "Bill To"
msgstr "Bill To"

#: app/templates/invoices/pdf_default.html:89 app/utils/pdf_generator.py:1155
#: app/utils/pdf_generator_fallback.py:240
msgid "Quantity (Hours)"
msgstr "Määrä (tuntia)"

#: app/templates/invoices/pdf_default.html:101
#, python-format
msgid "Generated from %(num)d time entries"
msgstr "Luotu %(num)d aikamerkinnästä"

#: app/templates/invoices/pdf_default.html:117
#: app/utils/pdf_generator_fallback.py:287
msgid "Expense"
msgstr "Kustannukset"

#: app/templates/invoices/pdf_default.html:153
#: app/templates/quotes/pdf_default.html:117
#: app/utils/pdf_generator_fallback.py:305
#: app/utils/pdf_generator_fallback.py:616
msgid "Subtotal:"
msgstr "Välisumma:"

#: app/templates/invoices/pdf_default.html:158
#: app/templates/quotes/pdf_default.html:140
#: app/utils/pdf_generator_fallback.py:312
#, python-format
msgid "Tax (%(rate).2f%%):"
msgstr "Vero (%(rate).2f%%):"

#: app/templates/invoices/pdf_default.html:163
#: app/templates/quotes/pdf_default.html:145
#: app/utils/pdf_generator_fallback.py:317
msgid "Total Amount:"
msgstr "Kokonaismäärä:"

#: app/templates/invoices/pdf_default.html:174 app/utils/pdf_generator.py:1347
#: app/utils/pdf_generator_fallback.py:377
msgid "Notes:"
msgstr "Huomautuksia:"

#: app/templates/invoices/pdf_default.html:180 app/utils/pdf_generator.py:1357
#: app/utils/pdf_generator_fallback.py:382
msgid "Terms:"
msgstr "Ehdot:"

#: app/templates/invoices/pdf_default.html:189
#: app/templates/quotes/pdf_default.html:171 app/utils/pdf_generator.py:1378
#: app/utils/pdf_generator_fallback.py:394
msgid "Payment Information:"
msgstr "Maksutiedot:"

#: app/templates/invoices/pdf_default.html:192
#: app/templates/quotes/pdf_default.html:162
#: app/templates/quotes/pdf_default.html:175 app/utils/pdf_generator.py:1175
#: app/utils/pdf_generator_fallback.py:399
#: app/utils/pdf_generator_fallback.py:652
msgid "Terms & Conditions:"
msgstr "Ehdot:"

#: app/templates/invoices/view.html:32
msgid "Download UBL"
msgstr ""

#: app/templates/invoices/view.html:37
msgid "Pay Online"
msgstr ""

#: app/templates/invoices/view.html:77
msgid "Payment Reference"
msgstr ""

#: app/templates/invoices/view.html:122
msgid "PEPPOL compliance: the following are missing"
msgstr ""

#: app/templates/invoices/view.html:135
msgid "Invoice Approval"
msgstr ""

#: app/templates/invoices/view.html:136
msgid "Request approval before sending this invoice to the client."
msgstr ""

#: app/templates/invoices/view.html:260 app/templates/invoices/view.html:349
msgid "Payment History"
msgstr "Maksuhistoria"

#: app/templates/invoices/view.html:497
msgid "Send Invoice via Email"
msgstr "Lähetä lasku sähköpostitse"

#: app/templates/issues/edit.html:13 app/templates/issues/view.html:12
msgid "Edit Issue"
msgstr ""

#: app/templates/issues/edit.html:72 app/templates/issues/new.html:66
#: app/templates/issues/view.html:74 app/templates/issues/view.html:143
#: app/templates/recurring_tasks/form.html:108
#: app/templates/tasks/create.html:108 app/templates/tasks/edit.html:116
#: app/templates/tasks/overdue.html:54
msgid "Unassigned"
msgstr "Ei määritetty"

#: app/templates/issues/list.html:15 app/templates/issues/list.html:166
#: app/templates/issues/new.html:77
msgid "Create Issue"
msgstr ""

#: app/templates/issues/list.html:28
msgid "Filter Issues"
msgstr ""

#: app/templates/issues/list.html:33
msgid "Search by title or description"
msgstr ""

#: app/templates/issues/list.html:80 app/templates/tasks/my_tasks.html:178
msgid "Apply Filters"
msgstr ""

#: app/templates/issues/list.html:155 app/templates/main/search.html:101
#: app/templates/project_templates/list.html:104
#: app/templates/reports/time_entries_report.html:144
#: app/utils/pdf_generator_fallback.py:665
msgid "Page"
msgstr "Sivu"

#: app/templates/issues/list.html:155 app/templates/main/search.html:101
#: app/templates/project_templates/list.html:104
#: app/templates/projects/dashboard.html:57
#: app/templates/reports/time_entries_report.html:144
msgid "of"
msgstr "/"

#: app/templates/issues/list.html:169
#, fuzzy
msgid "No issues found"
msgstr "Käyttäjiä ei löytynyt."

#: app/templates/issues/list.html:170
msgid "No issues match your filters. Create an issue or adjust your filters."
msgstr ""

#: app/templates/issues/new.html:13
msgid "Create New Issue"
msgstr ""

#: app/templates/issues/view.html:16
msgid "Are you sure you want to delete this issue?"
msgstr ""

#: app/templates/issues/view.html:16
msgid "Delete Issue"
msgstr ""

#: app/templates/issues/view.html:38 app/templates/main/help.html:30
#: app/templates/main/help.html:279
msgid "Task Management"
msgstr "Tehtävien hallinta"

#: app/templates/issues/view.html:49
msgid "Link to existing task"
msgstr ""

#: app/templates/issues/view.html:53
msgid "Select a task"
msgstr ""

#: app/templates/issues/view.html:59
msgid "Link"
msgstr ""

#: app/templates/issues/view.html:64
msgid "Create new task from this issue"
msgstr ""

#: app/templates/issues/view.html:154
msgid "Submitted By"
msgstr ""

#: app/templates/kanban/board.html:5
msgid "Kanban"
msgstr "Kanban"

#: app/templates/kanban/board.html:47 app/templates/tasks/_kanban.html:14
msgid "Manage Columns"
msgstr "Hallitse sarakkeita"

#: app/templates/kanban/board.html:56
msgid "Drag tasks between columns to update their status"
msgstr "Päivitä niiden tila vetämällä tehtäviä sarakkeiden välillä"

#: app/templates/kanban/board.html:61
msgid "Kanban board"
msgstr "Kanban-levy"

#: app/templates/kanban/board.html:113
msgid "moved to"
msgstr "siirretty"

#: app/templates/kanban/board.html:147
#: app/templates/projects/_kanban_tailwind.html:86
msgid "No tasks in this column."
msgstr "Ei tehtäviä tässä sarakkeessa."

#: app/templates/kanban/columns.html:2 app/templates/kanban/columns.html:18
msgid "Manage Kanban Columns"
msgstr "Hallitse Kanban-sarakkeita"

#: app/templates/kanban/columns.html:20
msgid "Customize your kanban board columns and task states"
msgstr "Mukauta kanban-taulusi sarakkeita ja tehtävätiloja"

#: app/templates/kanban/columns.html:25 app/templates/timer/edit_timer.html:407
msgid "Project:"
msgstr "Projekti:"

#: app/templates/kanban/columns.html:27
msgid "Global Columns"
msgstr "Globaalit sarakkeet"

#: app/templates/kanban/columns.html:35
msgid "Add Column"
msgstr "Lisää sarake"

#: app/templates/kanban/columns.html:44
msgid "Kanban columns list"
msgstr "Kanban-sarakkeiden luettelo"

#: app/templates/kanban/columns.html:48
msgid "Key"
msgstr "Avain"

#: app/templates/kanban/columns.html:53
msgid "Complete?"
msgstr "Täydellinen?"

#: app/templates/kanban/columns.html:62
msgid "Drag to reorder"
msgstr "Järjestä uudelleen vetämällä"

#: app/templates/kanban/columns.html:93
msgid "Edit column"
msgstr "Muokkaa saraketta"

#: app/templates/kanban/columns.html:96
msgid "Toggle active state"
msgstr "Vaihda aktiivinen tila"

#: app/templates/kanban/columns.html:118
msgid "No kanban columns found. Create your first column to get started."
msgstr "Kanban-sarakkeita ei löytynyt. Aloita luomalla ensimmäinen sarake."

#: app/templates/kanban/columns.html:124
msgid "Tips:"
msgstr "Vinkkejä:"

#: app/templates/kanban/columns.html:126
msgid "Drag and drop rows to reorder columns"
msgstr "Järjestä sarakkeita uudelleen vetämällä ja pudottamalla rivejä"

#: app/templates/kanban/columns.html:127
msgid "System columns (todo, in_progress, done) cannot be deleted but can be customized"
msgstr "Järjestelmäsarakkeita (todo, in_progress, done) ei voi poistaa, mutta niitä voidaan mukauttaa"

#: app/templates/kanban/columns.html:128
msgid "Columns marked as \"Complete\" will mark tasks as completed when dragged to that column"
msgstr "\"Valmis\"-merkityt sarakkeet merkitsevät tehtävät suoritetuiksi, kun ne vedetään kyseiseen sarakkeeseen"

#: app/templates/kanban/columns.html:129
msgid "Inactive columns are hidden from the kanban board but tasks with that status remain accessible"
msgstr "Ei-aktiiviset sarakkeet piilotetaan kanban-levyltä, mutta tehtävät, joilla on tämä tila, ovat edelleen käytettävissä"

#: app/templates/kanban/columns.html:141
msgid "Delete Kanban Column"
msgstr "Poista Kanban-sarake"

#: app/templates/kanban/columns.html:152
msgid "Are you sure you want to delete the column?"
msgstr "Haluatko varmasti poistaa sarakkeen?"

#: app/templates/kanban/columns.html:154
msgid "Key:"
msgstr "Avain:"

#: app/templates/kanban/columns.html:157
msgid "Note: Tasks with this status will remain accessible but the column will no longer appear on the kanban board."
msgstr "Huomautus: Tässä tilassa olevat tehtävät ovat edelleen käytettävissä, mutta sarake ei enää näy kanban-taululla."

#: app/templates/kanban/columns.html:167
msgid "Delete Column"
msgstr "Poista sarake"

#: app/templates/kanban/columns.html:226 app/templates/kanban/columns.html:228
msgid "Columns reordered successfully"
msgstr "Sarakkeiden uudelleenjärjestäminen onnistui"

#: app/templates/kanban/columns.html:247
msgid "Failed to reorder columns. Please try again."
msgstr "Sarakkeiden uudelleenjärjestäminen epäonnistui. Yritä uudelleen."

#: app/templates/kanban/create_column.html:2
#: app/templates/kanban/create_column.html:10
msgid "Create Kanban Column"
msgstr "Luo Kanban-sarake"

#: app/templates/kanban/create_column.html:12
msgid "Add a new column to your kanban board"
msgstr "Lisää uusi sarake kanban-taulullesi"

#: app/templates/kanban/create_column.html:23
msgid "Create Kanban Column form"
msgstr "Luo Kanban-sarakelomake"

#: app/templates/kanban/create_column.html:26
#: app/templates/kanban/edit_column.html:34
msgid "Column Label"
msgstr "Sarakkeen etiketti"

#: app/templates/kanban/create_column.html:27
msgid "e.g., In Review, Blocked, Testing"
msgstr "esim. Tarkistuksessa, Estetty, Testataan"

#: app/templates/kanban/create_column.html:28
#: app/templates/kanban/edit_column.html:36
msgid "The display name shown on the kanban board"
msgstr "Kanban-taululla näkyvä näyttönimi"

#: app/templates/kanban/create_column.html:32
#: app/templates/kanban/edit_column.html:23
msgid "Column Key"
msgstr "Sarakeavain"

#: app/templates/kanban/create_column.html:33
msgid "e.g., in_review, blocked, testing"
msgstr "esim. in_review, estetty, testaus"

#: app/templates/kanban/create_column.html:34
msgid "Unique identifier (lowercase, no spaces, use underscores). Auto-generated from label if empty."
msgstr "Yksilöllinen tunniste (pienet kirjaimet, ei välilyöntejä, käytä alaviivoja). Luodaan automaattisesti etiketistä, jos se on tyhjä."

#: app/templates/kanban/create_column.html:41
msgid "Global (for all projects)"
msgstr "Maailmanlaajuinen (kaikille projekteille)"

#: app/templates/kanban/create_column.html:46
msgid "Select a project to create project-specific columns, or leave as Global for all projects"
msgstr "Valitse projekti, jos haluat luoda projektikohtaisia ​​sarakkeita, tai jätä kaikille projekteille Global"

#: app/templates/kanban/create_column.html:52
#: app/templates/kanban/edit_column.html:41
msgid "Icon Class"
msgstr "Ikoniluokka"

#: app/templates/kanban/create_column.html:55
#: app/templates/kanban/edit_column.html:44
msgid "Font Awesome icon class"
msgstr "Font Awesome icon class"

#: app/templates/kanban/create_column.html:56
#: app/templates/kanban/edit_column.html:45
msgid "Browse icons"
msgstr "Selaa kuvakkeita"

#: app/templates/kanban/create_column.html:62
#: app/templates/kanban/edit_column.html:54
msgid "Primary (Blue)"
msgstr "Ensisijainen (sininen)"

#: app/templates/kanban/create_column.html:63
#: app/templates/kanban/edit_column.html:55
msgid "Secondary (Gray)"
msgstr "Toissijainen (harmaa)"

#: app/templates/kanban/create_column.html:64
#: app/templates/kanban/edit_column.html:56
msgid "Success (Green)"
msgstr "Menestys (vihreä)"

#: app/templates/kanban/create_column.html:65
#: app/templates/kanban/edit_column.html:57
msgid "Danger (Red)"
msgstr "Vaara (punainen)"

#: app/templates/kanban/create_column.html:66
#: app/templates/kanban/edit_column.html:58
msgid "Warning (Yellow)"
msgstr "Varoitus (keltainen)"

#: app/templates/kanban/create_column.html:67
#: app/templates/kanban/edit_column.html:59
msgid "Info (Cyan)"
msgstr "Tiedot (syaani)"

#: app/templates/kanban/create_column.html:70
#: app/templates/kanban/edit_column.html:62
msgid "Bootstrap color class for styling"
msgstr "Bootstrap-väriluokka muotoiluun"

#: app/templates/kanban/create_column.html:78
#: app/templates/kanban/edit_column.html:70
msgid "Mark as Complete State"
msgstr "Merkitse valmiiksi tilaksi"

#: app/templates/kanban/create_column.html:79
#: app/templates/kanban/edit_column.html:71
msgid "Tasks moved to this column will be marked as completed"
msgstr "Tähän sarakkeeseen siirretyt tehtävät merkitään suoritetuiksi"

#: app/templates/kanban/create_column.html:89
msgid "Create Column"
msgstr "Luo sarake"

#: app/templates/kanban/create_column.html:97
msgid "Note:"
msgstr "Huomautus:"

#: app/templates/kanban/create_column.html:97
msgid "The column will be added at the end of the board. You can reorder columns later from the management page."
msgstr "Sarake lisätään taulun loppuun. Voit järjestää sarakkeita uudelleen myöhemmin hallintasivulta."

#: app/templates/kanban/edit_column.html:2
#: app/templates/kanban/edit_column.html:10
msgid "Edit Kanban Column"
msgstr "Muokkaa Kanban-saraketta"

#: app/templates/kanban/edit_column.html:12
msgid "Modify column settings"
msgstr "Muokkaa sarakeasetuksia"

#: app/templates/kanban/edit_column.html:20
msgid "Edit Kanban Column form"
msgstr "Muokkaa Kanban-sarakelomaketta"

#: app/templates/kanban/edit_column.html:25
msgid "The key cannot be changed after creation"
msgstr "Avainta ei voi muuttaa luomisen jälkeen"

#: app/templates/kanban/edit_column.html:27
msgid "This is a project-specific column"
msgstr "Tämä on projektikohtainen kolumni"

#: app/templates/kanban/edit_column.html:29
msgid "This is a global column (for all projects)"
msgstr "Tämä on maailmanlaajuinen sarake (kaikille projekteille)"

#: app/templates/kanban/edit_column.html:48
#: app/templates/reports/builder.html:66 app/templates/tasks/create.html:80
#: app/templates/tasks/edit.html:89 app/templates/timer/bulk_entry.html:154
msgid "Preview"
msgstr "Esikatselu"

#: app/templates/kanban/edit_column.html:81
msgid "Inactive columns are hidden from the kanban board"
msgstr "Ei-aktiiviset sarakkeet on piilotettu kanban-taululta"

#: app/templates/kanban/edit_column.html:100
msgid "System Column:"
msgstr "Järjestelmäsarake:"

#: app/templates/kanban/edit_column.html:100
msgid "This is a system column. You can customize its appearance but cannot delete it."
msgstr "Tämä on järjestelmäsarake. Voit muokata sen ulkoasua, mutta et voi poistaa sitä."

#: app/templates/kiosk/base.html:112
msgid "Keyboard Shortcuts (Press ?)"
msgstr ""

#: app/templates/kiosk/base.html:112
msgid "Show keyboard shortcuts"
msgstr ""

#: app/templates/kiosk/base.html:116 app/templates/kiosk/login.html:72
msgid "Toggle dark mode"
msgstr "Tumma tila päälle/pois"

#: app/templates/kiosk/base.html:127
msgid "Logout from kiosk mode"
msgstr ""

#: app/templates/kiosk/base.html:143
msgid "Scan"
msgstr ""

#: app/templates/kiosk/base.html:147
msgid "Adjust Stock"
msgstr ""

#: app/templates/kiosk/dashboard.html:10
msgid "Close keyboard shortcuts"
msgstr ""

#: app/templates/kiosk/dashboard.html:43
msgid "Scan Barcode or Enter SKU"
msgstr ""

#: app/templates/kiosk/dashboard.html:45
msgid "Use a barcode scanner or type the SKU manually"
msgstr ""

#: app/templates/kiosk/dashboard.html:55
msgid "Scan barcode or enter SKU..."
msgstr ""

#: app/templates/kiosk/dashboard.html:58
msgid "Barcode or SKU input"
msgstr ""

#: app/templates/kiosk/dashboard.html:64
msgid "Use Camera to Scan"
msgstr ""

#: app/templates/kiosk/dashboard.html:65
msgid "Open camera scanner"
msgstr ""

#: app/templates/kiosk/dashboard.html:91
msgid "Close camera scanner"
msgstr ""

#: app/templates/kiosk/dashboard.html:93
msgid "Close Camera"
msgstr ""

#: app/templates/kiosk/dashboard.html:174
msgid "Decrease quantity"
msgstr ""

#: app/templates/kiosk/dashboard.html:183
msgid "Adjustment quantity"
msgstr ""

#: app/templates/kiosk/dashboard.html:185
msgid "Increase quantity"
msgstr ""

#: app/templates/kiosk/dashboard.html:198
msgid "Kiosk adjustment"
msgstr ""

#: app/templates/kiosk/dashboard.html:199
msgid "Physical count"
msgstr ""

#: app/templates/kiosk/dashboard.html:200
msgid "Found"
msgstr ""

#: app/templates/kiosk/dashboard.html:201
msgid "Damaged"
msgstr ""

#: app/templates/kiosk/dashboard.html:211
msgid "Apply stock adjustment"
msgstr ""

#: app/templates/kiosk/dashboard.html:213
msgid "Apply Adjustment"
msgstr ""

#: app/templates/kiosk/dashboard.html:218
msgid "Undo last adjustment"
msgstr ""

#: app/templates/kiosk/dashboard.html:220
msgid "Undo Last Adjustment"
msgstr ""

#: app/templates/kiosk/dashboard.html:271
msgid "Transfer quantity"
msgstr ""

#: app/templates/kiosk/dashboard.html:275
msgid "Transfer stock"
msgstr ""

#: app/templates/kiosk/dashboard.html:277
msgid "Transfer Stock"
msgstr ""

#: app/templates/kiosk/dashboard.html:295
msgid "Stop timer"
msgstr ""

#: app/templates/kiosk/dashboard.html:297 app/templates/tasks/_kanban.html:51
#: app/templates/tasks/my_tasks.html:336 app/templates/timer/timer_page.html:90
msgid "Stop Timer"
msgstr "Pysäytä ajastin"

#: app/templates/kiosk/dashboard.html:309
msgid "Select project..."
msgstr ""

#: app/templates/kiosk/dashboard.html:315
msgid "No projects available"
msgstr ""

#: app/templates/kiosk/dashboard.html:321
msgid "No active projects found. Please create a project first."
msgstr ""

#: app/templates/kiosk/dashboard.html:337
#: app/templates/kiosk/dashboard.html:400 app/templates/main/dashboard.html:684
#: app/templates/main/dashboard.html:752
#: app/templates/timer/bulk_entry.html:333
#: app/templates/timer/calendar.html:160 app/templates/timer/calendar.html:681
#: app/templates/timer/calendar.html:691 app/templates/timer/calendar.html:700
#: app/templates/timer/calendar.html:705
#: app/templates/timer/manual_entry.html:81
#: app/templates/timer/manual_entry.html:347
#: app/templates/timer/timer_page.html:163
#: app/templates/timer/timer_page.html:263
msgid "No task"
msgstr "Ei tehtävää"

#: app/templates/kiosk/dashboard.html:343
msgid "Tasks will load after selecting a project"
msgstr ""

#: app/templates/kiosk/dashboard.html:348 app/templates/main/dashboard.html:692
#: app/templates/main/dashboard.html:762
msgid "What are you working on?"
msgstr "Mitä sinä työskentelet?"

#: app/templates/kiosk/dashboard.html:351
msgid "Start timer"
msgstr ""

#: app/templates/kiosk/dashboard.html:369
msgid "Recent Items"
msgstr ""

#: app/templates/kiosk/login.html:6
msgid "Kiosk Login"
msgstr ""

#: app/templates/kiosk/login.html:40
msgid "Quick access for warehouse operations"
msgstr ""

#: app/templates/kiosk/login.html:46
msgid "Barcode scanning"
msgstr ""

#: app/templates/kiosk/login.html:52
msgid "Stock management"
msgstr ""

#: app/templates/kiosk/login.html:58
msgid "Time tracking"
msgstr ""

#: app/templates/kiosk/login.html:68
msgid "Sign in to Kiosk Mode"
msgstr ""

#: app/templates/kiosk/login.html:69
msgid "Select your username to continue"
msgstr ""

#: app/templates/kiosk/login.html:72
msgid "Toggle Theme"
msgstr ""

#: app/templates/kiosk/login.html:98
msgid "Select User"
msgstr ""

#: app/templates/kiosk/login.html:126
msgid "your-username"
msgstr ""

#: app/templates/kiosk/login.html:159
msgid "Standard Login"
msgstr ""

#: app/templates/leads/convert_to_client.html:4
#: app/templates/leads/convert_to_client.html:10
#: app/templates/leads/convert_to_client.html:15
#: app/templates/leads/convert_to_client.html:32
#: app/templates/leads/view.html:17
msgid "Convert to Client"
msgstr ""

#: app/templates/leads/convert_to_client.html:21
msgid "This will create a new client and primary contact from this lead, then mark the lead as converted."
msgstr ""

#: app/templates/leads/convert_to_client.html:23
#, fuzzy
msgid "Lead summary"
msgstr "Yhteenveto"

#: app/templates/leads/convert_to_deal.html:4
#: app/templates/leads/convert_to_deal.html:10
#: app/templates/leads/convert_to_deal.html:15
#: app/templates/leads/convert_to_deal.html:60 app/templates/leads/view.html:18
msgid "Convert to Deal"
msgstr ""

#: app/templates/leads/form.html:55 app/templates/leads/list.html:35
#: app/templates/leads/list.html:55 app/templates/leads/list.html:83
#: app/templates/leads/view.html:67 app/templates/reports/user_report.html:84
#: app/templates/timer/calendar.html:889
#: app/templates/timer/edit_timer.html:309
#: app/templates/timer/view_timer.html:181
msgid "Source"
msgstr "Lähde"

#: app/templates/leads/form.html:56
msgid "Website, referral, ad..."
msgstr "Verkkosivusto, viittaus, mainos..."

#: app/templates/leads/form.html:69
msgid "Lead Score"
msgstr "Lead Score"

#: app/templates/leads/form.html:74 app/templates/leads/view.html:96
msgid "Estimated Value"
msgstr "Arvioitu arvo"

#: app/templates/leads/form.html:100
msgid "Save Lead"
msgstr "Tallenna lyijy"

#: app/templates/leads/list.html:23
msgid "Name, company, email..."
msgstr "Nimi, yritys, sähköposti..."

#: app/templates/leads/list.html:28 app/templates/tasks/my_tasks.html:130
msgid "All Statuses"
msgstr "Kaikki tilat"

#: app/templates/leads/list.html:36
msgid "Website, referral..."
msgstr "Verkkosivusto, suositus..."

#: app/templates/leads/list.html:54 app/templates/leads/list.html:78
#: app/templates/leads/view.html:87
msgid "Score"
msgstr "Pisteet"

#: app/templates/leads/list.html:95
msgid "No leads found"
msgstr "Johtoja ei löytynyt"

#: app/templates/leads/list.html:97
msgid "Create First Lead"
msgstr "Luo ensimmäinen liidi"

#: app/templates/leads/view.html:19
msgid "Mark this lead as lost?"
msgstr ""

#: app/templates/leads/view.html:21
msgid "Mark Lost"
msgstr ""

#: app/templates/leads/view.html:30
msgid "Lead"
msgstr ""

#: app/templates/leads/view.html:72
msgid "No contact details yet"
msgstr ""

#: app/templates/leads/view.html:78
msgid "Lead Details"
msgstr ""

#: app/templates/main/about.html:9
msgid "Professional time tracking and project management"
msgstr "Ammattimainen ajanseuranta ja projektinhallinta"

#: app/templates/main/about.html:24
msgid "A comprehensive web-based time tracking application built with Flask, featuring project management, client organization, task management, invoicing, and advanced analytics."
msgstr "Flaskilla rakennettu kattava web-pohjainen ajanseurantasovellus, joka sisältää projektinhallinnan, asiakasorganisaation, tehtävienhallinnan, laskutuksen ja edistyneen analytiikan."

#: app/templates/main/about.html:35 app/templates/main/help.html:32
msgid "Invoicing"
msgstr "Laskutus"

#: app/templates/main/about.html:45
msgid "TimeTracker is free and open source. You can donate or buy a supporter license — features are never locked."
msgstr ""

#: app/templates/main/about.html:55 app/templates/main/help.html:111
msgid "Smart Timers"
msgstr "Älykkäät ajastimet"

#: app/templates/main/about.html:57
msgid "Real-time tracking with idle detection and live updates"
msgstr "Reaaliaikainen seuranta käyttämättömän toiminnan havaitsemisen ja reaaliaikaisten päivitysten avulla"

#: app/templates/main/about.html:62 app/templates/main/help.html:29
#: app/templates/main/help.html:236
msgid "Client Management"
msgstr "Asiakashallinta"

#: app/templates/main/about.html:64
msgid "Organize clients with contacts, rates, and project relations"
msgstr "Järjestä asiakkaita kontaktien, hintojen ja projektisuhteiden avulla"

#: app/templates/main/about.html:69
msgid "Task System"
msgstr "Tehtäväjärjestelmä"

#: app/templates/main/about.html:71
msgid "Break down projects into tasks with progress tracking"
msgstr "Jaa projektit tehtäviin edistymisen seurannan avulla"

#: app/templates/main/about.html:76
msgid "PDF Invoices"
msgstr "PDF-laskut"

#: app/templates/main/about.html:78
msgid "Generate professional invoices from tracked time"
msgstr "Luo ammattimaisia ​​laskuja seuratusta ajasta"

#: app/templates/main/about.html:85 app/templates/main/help.html:427
msgid "Core Features"
msgstr "Ydinominaisuudet"

#: app/templates/main/about.html:87
msgid "Start/stop timers with project and task association"
msgstr "Käynnistys/pysäytysajastimet projekti- ja tehtäväyhteydellä"

#: app/templates/main/about.html:88
msgid "Manual time entry with notes and tags"
msgstr "Manuaalinen ajansyöttö muistiinpanoilla ja tunnisteilla"

#: app/templates/main/about.html:89
msgid "Client and project organization"
msgstr "Asiakas- ja projektiorganisaatio"

#: app/templates/main/about.html:90
msgid "Role-based access and user profiles"
msgstr "Roolipohjaiset käyttöoikeudet ja käyttäjäprofiilit"

#: app/templates/main/about.html:94
msgid "Advanced Features"
msgstr "Lisäominaisuudet"

#: app/templates/main/about.html:96
msgid "Branded PDF invoicing with tax and payment tracking"
msgstr "Brändätty PDF-laskutus vero- ja maksuseurannalla"

#: app/templates/main/about.html:97
msgid "Visual analytics and detailed reporting"
msgstr "Visuaalinen analytiikka ja yksityiskohtainen raportointi"

#: app/templates/main/about.html:98
msgid "REST API for integrations"
msgstr "REST API integraatioita varten"

#: app/templates/main/about.html:99
msgid "PWA capabilities and mobile-friendly UI"
msgstr "PWA-ominaisuudet ja mobiiliystävällinen käyttöliittymä"

#: app/templates/main/about.html:106
msgid "Platform Support"
msgstr "Alustan tuki"

#: app/templates/main/about.html:109
msgid "Web Application"
msgstr "Web-sovellus"

#: app/templates/main/about.html:111
msgid "Desktop browsers (Chrome, Firefox, Safari, Edge)"
msgstr "Työpöytäselaimet (Chrome, Firefox, Safari, Edge)"

#: app/templates/main/about.html:112
msgid "Mobile responsive design"
msgstr "Mobiiliresponsiivinen muotoilu"

#: app/templates/main/about.html:113
msgid "Progressive Web App (PWA)"
msgstr "Progressiivinen verkkosovellus (PWA)"

#: app/templates/main/about.html:114
msgid "Touch-friendly tablet interface"
msgstr "Kosketusystävällinen tabletin käyttöliittymä"

#: app/templates/main/about.html:118
msgid "Operating Systems"
msgstr "Käyttöjärjestelmät"

#: app/templates/main/about.html:120
msgid "Windows, macOS, Linux"
msgstr "Windows, macOS, Linux"

#: app/templates/main/about.html:121
msgid "Android and iOS (browser)"
msgstr "Android ja iOS (selain)"

#: app/templates/main/about.html:122
msgid "Raspberry Pi support"
msgstr "Raspberry Pi -tuki"

#: app/templates/main/about.html:123
msgid "Dockerized deployment"
msgstr "Telakoitu käyttöönotto"

#: app/templates/main/about.html:127
msgid "Database Support"
msgstr "Tietokannan tuki"

#: app/templates/main/about.html:129
msgid "PostgreSQL (recommended)"
msgstr "PostgreSQL (suositus)"

#: app/templates/main/about.html:130
msgid "SQLite (dev/test)"
msgstr "SQLite (kehittäjä/testi)"

#: app/templates/main/about.html:131
msgid "Automatic migrations with Flask-Migrate"
msgstr "Automaattiset siirrot Flask-Migraten avulla"

#: app/templates/main/about.html:132
msgid "Backup and restoration tools"
msgstr "Varmuuskopiointi- ja palautustyökalut"

#: app/templates/main/about.html:140
msgid "Technical Specifications"
msgstr "Tekniset tiedot"

#: app/templates/main/about.html:143
msgid "Technology Stack"
msgstr "Teknologiapino"

#: app/templates/main/about.html:145
msgid "Backend"
msgstr "Backend"

#: app/templates/main/about.html:146
msgid "Frontend"
msgstr "Käyttöliittymä"

#: app/templates/main/about.html:148
msgid "Deployment"
msgstr "Käyttöönotto"

#: app/templates/main/about.html:152
msgid "Key Capabilities"
msgstr "Tärkeimmät ominaisuudet"

#: app/templates/main/about.html:154
msgid "Real-time"
msgstr "Reaaliaikainen"

#: app/templates/main/about.html:155
msgid "i18n"
msgstr "i18n"

#: app/templates/main/about.html:165
msgid "Open Source & Community"
msgstr "Avoin lähdekoodi ja yhteisö"

#: app/templates/main/about.html:168
msgid "Open Source Benefits"
msgstr "Avoimen lähdekoodin edut"

#: app/templates/main/about.html:170
msgid "Full source code available on GitHub"
msgstr "Täysi lähdekoodi saatavilla GitHubista"

#: app/templates/main/about.html:171
msgid "Licensed under GPL v3.0"
msgstr "Lisensoitu GPL v3.0:lla"

#: app/templates/main/about.html:172
msgid "Community-driven development"
msgstr "Yhteisölähtöinen kehitys"

#: app/templates/main/about.html:173
msgid "Transparent issue tracking and bug reports"
msgstr "Läpinäkyvä ongelmien seuranta ja virheraportit"

#: app/templates/main/about.html:177
msgid "Deployment Options"
msgstr "Käyttöönottovaihtoehdot"

#: app/templates/main/about.html:179
msgid "Docker images (GHCR)"
msgstr "Docker-kuvat (GHCR)"

#: app/templates/main/about.html:180
msgid "Self-hosted deployment with full control"
msgstr "Itseisännöity käyttöönotto täydellä ohjauksella"

#: app/templates/main/about.html:181
msgid "Cloud-ready with Compose configs"
msgstr "Pilvikäyttöön valmis Compose-kokoonpanoilla"

#: app/templates/main/about.html:187
msgid "View on GitHub"
msgstr "Katso GitHubissa"

#: app/templates/main/about.html:191 app/templates/main/donate.html:201
#, fuzzy
msgid "Support updates"
msgstr "Tuetut ominaisuudet"

#: app/templates/main/about.html:205 app/templates/main/donate.html:17
msgid "Support TimeTracker Development"
msgstr ""

#: app/templates/main/about.html:208
msgid "TimeTracker is free and open-source. Support updates and new features — or remove prompts with a one-time key."
msgstr ""

#: app/templates/main/about.html:219 app/templates/main/donate.html:49
msgid "Remove prompts with a one-time key."
msgstr ""

#: app/templates/main/about.html:230
msgid "Getting Help & Resources"
msgstr "Apua ja resursseja"

#: app/templates/main/about.html:236 app/templates/main/help.html:767
msgid "Documentation"
msgstr "Dokumentaatio"

#: app/templates/main/about.html:237
msgid "Step-by-step guides for all features."
msgstr "Vaiheittaiset oppaat kaikille ominaisuuksille."

#: app/templates/main/about.html:239
msgid "View Help"
msgstr "Näytä Ohje"

#: app/templates/main/about.html:246
msgid "System Information"
msgstr "Järjestelmätiedot"

#: app/templates/main/about.html:247
msgid "Status, versions, and configuration details."
msgstr "Tila, versiot ja kokoonpanotiedot."

#: app/templates/main/about.html:253
msgid "Admin access required"
msgstr "Järjestelmänvalvojan käyttöoikeudet vaaditaan"

#: app/templates/main/about.html:260 app/templates/main/help.html:777
msgid "Community Support"
msgstr "Yhteisön tuki"

#: app/templates/main/about.html:261
msgid "Report issues, request features, contribute."
msgstr "Ilmoita ongelmista, pyydä ominaisuuksia, osallistu."

#: app/templates/main/about.html:263
msgid "GitHub Issues"
msgstr "GitHub-ongelmat"

#: app/templates/main/dashboard.html:16
#, python-format
msgid "Logged %(duration)s on %(project)s"
msgstr ""

#: app/templates/main/dashboard.html:22 app/templates/main/dashboard.html:241
#, fuzzy
msgid "View time entries"
msgstr "Näytä kaikkien aikojen merkinnät"

#: app/templates/main/dashboard.html:29
msgid "Here's a quick overview of your work."
msgstr "Tässä on nopea yleiskatsaus työstäsi."

#: app/templates/main/dashboard.html:43
#, fuzzy
msgid "Start timer with same project, task and notes as last entry"
msgstr "Käynnistys/pysäytysajastimet projekti- ja tehtäväyhteydellä"

#: app/templates/main/dashboard.html:44
#, fuzzy
msgid "Repeat last"
msgstr "Luotu klo"

#: app/templates/main/dashboard.html:46
#, fuzzy
msgid "Start timer with last project and notes?"
msgstr "Käynnistys/pysäytysajastimet projekti- ja tehtäväyhteydellä"

#: app/templates/main/dashboard.html:53 app/templates/main/dashboard.html:54
#: app/templates/reports/builder.html:24
msgid "Quick start"
msgstr ""

#: app/templates/main/dashboard.html:70
#, fuzzy
msgid "Paused"
msgstr "Tauko"

#: app/templates/main/dashboard.html:73 app/templates/timer/edit_timer.html:296
#: app/templates/timer/manual_entry.html:122
#: app/templates/timer/timer_page.html:95
#, fuzzy
msgid "Break"
msgstr "Takaisin"

#: app/templates/main/dashboard.html:78 app/templates/timer/edit_timer.html:425
msgid "Running"
msgstr ""

#: app/templates/main/dashboard.html:81
msgid "Break so far"
msgstr ""

#: app/templates/main/dashboard.html:95
msgid "Started at"
msgstr "Alkoi klo"

#: app/templates/main/dashboard.html:98
msgid "Elapsed"
msgstr ""

#: app/templates/main/dashboard.html:102
#, fuzzy
msgid "Adjust time"
msgstr "Säätö"

#: app/templates/main/dashboard.html:106
msgid "Subtract 15 min"
msgstr ""

#: app/templates/main/dashboard.html:107
msgid "Subtract 5 min"
msgstr ""

#: app/templates/main/dashboard.html:108
#, fuzzy
msgid "Add 5 min"
msgstr "Admin"

#: app/templates/main/dashboard.html:109
#, fuzzy
msgid "Add 15 min"
msgstr "Admin"

#: app/templates/main/dashboard.html:118
#, fuzzy
msgid "Resume timer"
msgstr "Älykkäät ajastimet"

#: app/templates/main/dashboard.html:119 app/templates/main/dashboard.html:145
#: app/templates/timer/timer_page.html:76
#, fuzzy
msgid "Resume"
msgstr "Nollaa"

#: app/templates/main/dashboard.html:125
msgid "Pause timer (break time will be counted on resume)"
msgstr ""

#: app/templates/main/dashboard.html:126 app/templates/tasks/view.html:21
#: app/templates/timer/timer_page.html:83
msgid "Pause"
msgstr "Tauko"

#: app/templates/main/dashboard.html:132
msgid "Stop and save current time"
msgstr ""

#: app/templates/main/dashboard.html:133
msgid "Stop & save"
msgstr ""

#: app/templates/main/dashboard.html:140
msgid "No active timer."
msgstr "Ei aktiivista ajastinta."

#: app/templates/main/dashboard.html:142
msgid "Resume your last session or use the buttons above to repeat last / start a new timer."
msgstr ""

#: app/templates/main/dashboard.html:144
#, fuzzy
msgid "Resume last session"
msgstr "Lopeta istunto"

#: app/templates/main/dashboard.html:149
msgid "Click \"Start Timer\" above to begin tracking your time."
msgstr ""

#: app/templates/main/dashboard.html:161
msgid "Today's Hours"
msgstr ""

#: app/templates/main/dashboard.html:169 app/templates/main/dashboard.html:193
#, fuzzy
msgid "overtime"
msgstr "Aika"

#: app/templates/main/dashboard.html:186
msgid "Week's Hours"
msgstr ""

#: app/templates/main/dashboard.html:207
msgid "Month's Hours"
msgstr ""

#: app/templates/main/dashboard.html:214
#, fuzzy
msgid "Overtime (YTD)"
msgstr "Ylityöasetukset"

#: app/templates/main/dashboard.html:227
msgid "If this saved you even 1 hour, consider supporting ❤️"
msgstr ""

#: app/templates/main/dashboard.html:227
msgid "Start tracking to see your productivity insights here."
msgstr ""

#: app/templates/main/dashboard.html:227 app/templates/main/dashboard.html:237
msgid "Loading insights…"
msgstr ""

#: app/templates/main/dashboard.html:233
#, fuzzy
msgid "Value insights"
msgstr "Kohdista oikealle"

#: app/templates/main/dashboard.html:234
#, fuzzy
msgid "Your tracked time at a glance"
msgstr "Seuraa aikaa. Pysy järjestyksessä."

#: app/templates/main/dashboard.html:246
#, fuzzy
msgid "Total hours tracked"
msgstr "Työtunteja yhteensä"

#: app/templates/main/dashboard.html:254
#, fuzzy
msgid "Active days"
msgstr "Aktiiviset hälytykset"

#: app/templates/main/dashboard.html:259
msgid "Hours per day (last 7 days)"
msgstr ""

#: app/templates/main/dashboard.html:260
msgid "Hours per day last seven days"
msgstr ""

#: app/templates/main/dashboard.html:264
msgid "Most productive day"
msgstr ""

#: app/templates/main/dashboard.html:268
msgid "Avg session length"
msgstr ""

#: app/templates/main/dashboard.html:273
#, fuzzy
msgid "Estimated value tracked"
msgstr "Arvioitu arvo"

#: app/templates/main/dashboard.html:283 app/templates/main/dashboard.html:296
msgid "This week vs last week"
msgstr ""

#: app/templates/main/dashboard.html:284 app/templates/main/dashboard.html:297
msgid "Hours per day (Mon–today vs same days last week)"
msgstr ""

#: app/templates/main/dashboard.html:285
#, fuzzy
msgid "hrs this week"
msgstr "Aikakirjaukset tällä viikolla"

#: app/templates/main/dashboard.html:286
msgid "vs last week"
msgstr ""

#: app/templates/main/dashboard.html:287
#, fuzzy
msgid "This week"
msgstr "Viikko"

#: app/templates/main/dashboard.html:288
#, fuzzy
msgid "Last week"
msgstr "Viime vuonna"

#: app/templates/main/dashboard.html:289
msgid "Could not load comparison."
msgstr ""

#: app/templates/main/dashboard.html:313
msgid "This week and last week hours by day"
msgstr ""

#: app/templates/main/dashboard.html:327 app/templates/reports/index.html:221
msgid "Recent Entries"
msgstr "Viimeaikaiset merkinnät"

#: app/templates/main/dashboard.html:329
#, fuzzy
msgid "View all"
msgstr "Näytä kaikki"

#: app/templates/main/dashboard.html:369 app/templates/main/search.html:66
#: app/templates/tasks/view.html:81
msgid "Resume - Start a new timer with same properties"
msgstr "Jatka - Käynnistä uusi ajastin samoilla ominaisuuksilla"

#: app/templates/main/dashboard.html:372 app/templates/main/search.html:70
#: app/templates/tasks/view.html:84
msgid "Edit entry"
msgstr "Muokkaa merkintää"

#: app/templates/main/dashboard.html:375
msgid "Duplicate entry"
msgstr "Päällekkäinen merkintä"

#: app/templates/main/dashboard.html:382 app/templates/main/search.html:77
#: app/templates/tasks/view.html:91
msgid "Delete entry"
msgstr "Poista merkintä"

#: app/templates/main/dashboard.html:396
msgid "No recent entries found."
msgstr "Viimeaikaisia ​​merkintöjä ei löytynyt."

#: app/templates/main/dashboard.html:397 app/templates/reports/index.html:245
msgid "Start tracking time to see entries here."
msgstr ""

#: app/templates/main/dashboard.html:419
msgid "Weekly Goal"
msgstr "Viikkotavoite"

#: app/templates/main/dashboard.html:441
msgid "Days Left"
msgstr "Päiviä jäljellä"

#: app/templates/main/dashboard.html:448
msgid "Need"
msgstr "Tarve"

#: app/templates/main/dashboard.html:448
msgid "to reach goal"
msgstr "tavoitteen saavuttamiseksi"

#: app/templates/main/dashboard.html:459
msgid "No Weekly Goal"
msgstr "Ei viikkotavoitetta"

#: app/templates/main/dashboard.html:462
msgid "Set a weekly time goal to track your progress"
msgstr "Aseta viikoittainen aikatavoite seurataksesi edistymistäsi"

#: app/templates/main/dashboard.html:466
#: app/templates/weekly_goals/create.html:129
#: app/templates/weekly_goals/index.html:146
msgid "Create Goal"
msgstr "Luo tavoite"

#: app/templates/main/dashboard.html:480
#, fuzzy
msgid "Time by project (last 7 days)"
msgstr "Parhaat projektit (30 päivää)"

#: app/templates/main/dashboard.html:482
#, fuzzy
msgid "View report"
msgstr "Käyttäjäraportti"

#: app/templates/main/dashboard.html:486
#, fuzzy
msgid "Time distribution by project for the last 7 days"
msgstr "Aikajakauman ympyräkaaviot"

#: app/templates/main/dashboard.html:525
#, fuzzy
msgid "No time logged in the last 7 days."
msgstr "Ei toimintaa viimeisen 30 päivän aikana."

#: app/templates/main/dashboard.html:526
#, fuzzy
msgid "Start tracking to see distribution here."
msgstr "Aloita ajan seuranta"

#: app/templates/main/dashboard.html:537
msgid "Top Projects (30 days)"
msgstr "Parhaat projektit (30 päivää)"

#: app/templates/main/dashboard.html:575
msgid "No activity in the last 30 days."
msgstr "Ei toimintaa viimeisen 30 päivän aikana."

#: app/templates/main/dashboard.html:576
msgid "Start tracking time on projects to see them here."
msgstr ""

#: app/templates/main/dashboard.html:596
msgid "Live"
msgstr ""

#: app/templates/main/dashboard.html:638
#, python-format
msgid "You have tracked %(hours)s hours"
msgstr ""

#: app/templates/main/dashboard.html:639
#, fuzzy, python-format
msgid "You have created %(count)s entries"
msgstr "Kopioitu %(count)d lainaus"

#: app/templates/main/dashboard.html:641
#, fuzzy, python-format
msgid "Reports generated: %(n)s"
msgstr "Virhe PDF:n luomisessa: %(error)s"

#: app/templates/main/dashboard.html:645
msgid "Thank you for supporting development. Sharing TimeTracker still helps a lot."
msgstr ""

#: app/templates/main/dashboard.html:647
#, fuzzy
msgid "Share & support"
msgstr "Alustan tuki"

#: app/templates/main/dashboard.html:651
msgid "If this saves you time, consider supporting development — everything stays free and open."
msgstr ""

#: app/templates/main/dashboard.html:654
msgid "Buy License (€25)"
msgstr ""

#: app/templates/main/dashboard.html:685
msgid "Create new task..."
msgstr ""

#: app/templates/main/dashboard.html:686
msgid "Loading tasks..."
msgstr ""

#: app/templates/main/dashboard.html:687
msgid "Enter new task name:"
msgstr ""

#: app/templates/main/dashboard.html:688
msgid "Failed to create task: "
msgstr ""

#: app/templates/main/dashboard.html:690
msgid "Please complete creating the task or select an existing task"
msgstr ""

#: app/templates/main/dashboard.html:698
#: app/templates/timer/manual_entry.html:558
msgid "A task must be selected when logging time for a project"
msgstr ""

#: app/templates/main/dashboard.html:699
#: app/templates/timer/manual_entry.html:581
msgid "A description is required when logging time"
msgstr ""

#: app/templates/main/dashboard.html:700
#: app/templates/timer/manual_entry.html:45
#, fuzzy, python-format
msgid "Description must be at least %(min)s characters"
msgstr "Salasanan tulee olla vähintään 8 merkkiä pitkä"

#: app/templates/main/dashboard.html:715
#, fuzzy
msgid "Quick start with a template"
msgstr "Pika-aloitusopas"

#: app/templates/main/dashboard.html:726
#, fuzzy
msgid "All templates"
msgstr "Sähköpostimallit"

#: app/templates/main/dashboard.html:745
#: app/templates/timer/manual_entry.html:74
#: app/templates/timer/timer_page.html:153
msgid "Select either a project or a client"
msgstr ""

#: app/templates/main/dashboard.html:750
#: app/templates/timer/bulk_entry.html:117
#: app/templates/timer/manual_entry.html:79
msgid "Task (optional)"
msgstr "Tehtävä (valinnainen)"

#: app/templates/main/dashboard.html:756
msgid "Select a project first to load tasks, or choose \"Create new task...\" to add one"
msgstr ""

#: app/templates/main/dashboard.html:760
msgid "Notes (optional)"
msgstr "Huomautuksia (valinnainen)"

#: app/templates/main/dashboard.html:767
#, fuzzy
msgid "Tags (optional)"
msgstr "Tehtävä (valinnainen)"

#: app/templates/main/dashboard.html:768
#, fuzzy
msgid "e.g. meeting, dev, admin"
msgstr "esim. kokous, kehitys, järjestelmänvalvoja"

#: app/templates/main/dashboard.html:775
msgid "Comma-separated; recent tags shown as suggestions."
msgstr ""

#: app/templates/main/dashboard.html:784
msgid "Enter a name for the new task."
msgstr ""

#: app/templates/main/dashboard.html:785
#: app/templates/project_templates/create.html:76
#: app/templates/project_templates/edit.html:79
#: app/templates/project_templates/edit.html:105
msgid "Task name"
msgstr ""

#: app/templates/main/dashboard.html:793
msgid "Create task"
msgstr ""

#: app/templates/main/dashboard.html:936
msgid "Task name is required."
msgstr ""

#: app/templates/main/dashboard.html:1546
#: app/templates/timer/edit_timer.html:811
#: app/templates/timer/manual_entry.html:985
msgid "No valid image files selected. Please select PNG, JPG, GIF, or WebP images."
msgstr ""

#: app/templates/main/dashboard.html:1558
#: app/templates/timer/edit_timer.html:823
#: app/templates/timer/manual_entry.html:997
msgid "Uploading"
msgstr ""

#: app/templates/main/dashboard.html:1558
#: app/templates/main/dashboard.html:1605
#: app/templates/timer/edit_timer.html:823
#: app/templates/timer/edit_timer.html:870
#: app/templates/timer/manual_entry.html:997
#: app/templates/timer/manual_entry.html:1044
msgid "images"
msgstr ""

#: app/templates/main/dashboard.html:1559
#: app/templates/timer/edit_timer.html:824
#: app/templates/timer/manual_entry.html:998
msgid "Uploading image"
msgstr ""

#: app/templates/main/dashboard.html:1605
#: app/templates/timer/edit_timer.html:870
#: app/templates/timer/manual_entry.html:1044
msgid "Successfully uploaded"
msgstr ""

#: app/templates/main/dashboard.html:1616
#: app/templates/timer/edit_timer.html:881
#: app/templates/timer/manual_entry.html:1055
msgid "image(s) failed to upload"
msgstr ""

#: app/templates/main/dashboard.html:1625
#: app/templates/timer/edit_timer.html:890
#: app/templates/timer/manual_entry.html:1064
msgid "Failed to upload images. Please try again."
msgstr ""

#: app/templates/main/dashboard.html:1637
#: app/templates/timer/edit_timer.html:902
#: app/templates/timer/manual_entry.html:1076
msgid "Failed to upload images. Please check your connection and try again."
msgstr ""

#: app/templates/main/donate.html:10
msgid "Support Development"
msgstr "Tukea kehitystä"

#: app/templates/main/donate.html:20
msgid "Donate to support development — or get a key to remove prompts"
msgstr ""

#: app/templates/main/donate.html:22
msgid "Support updates and keep TimeTracker free for everyone"
msgstr ""

#: app/templates/main/donate.html:29 app/templates/main/donate.html:114
#: app/templates/main/donate.html:275
msgid "Remove prompts with key"
msgstr ""

#: app/templates/main/donate.html:59
msgid "Why Your Support Matters"
msgstr ""

#: app/templates/main/donate.html:63
msgid "TimeTracker is a free, open-source project built with passion and dedication. Your donations directly support:"
msgstr ""

#: app/templates/main/donate.html:70
msgid "Server Infrastructure"
msgstr ""

#: app/templates/main/donate.html:72
msgid "Hosting, databases, and CDN costs to keep TimeTracker fast and reliable"
msgstr ""

#: app/templates/main/donate.html:80
msgid "Feature Development"
msgstr ""

#: app/templates/main/donate.html:82
msgid "New features, improvements, and bug fixes based on your feedback"
msgstr ""

#: app/templates/main/donate.html:90
msgid "Security & Maintenance"
msgstr ""

#: app/templates/main/donate.html:92
msgid "Regular security updates, dependency maintenance, and performance optimization"
msgstr ""

#: app/templates/main/donate.html:100
msgid "Internationalization"
msgstr ""

#: app/templates/main/donate.html:102
msgid "Translation support, localization, and making TimeTracker accessible worldwide"
msgstr ""

#: app/templates/main/donate.html:117
msgid "One key per instance; key sent by email after payment (€25 one-time). No subscription."
msgstr ""

#: app/templates/main/donate.html:122
msgid "Copy your System ID from Admin → Settings → Support visibility."
msgstr ""

#: app/templates/main/donate.html:126
msgid "Buy a key at the link below; you’ll receive it by email."
msgstr ""

#: app/templates/main/donate.html:130
msgid "Paste the code in Admin → Settings → Support visibility and verify."
msgstr ""

#: app/templates/main/donate.html:148
msgid "Your TimeTracker Journey"
msgstr ""

#: app/templates/main/donate.html:155
msgid "Days using TimeTracker"
msgstr ""

#: app/templates/main/donate.html:164
msgid "Time entries tracked"
msgstr ""

#: app/templates/main/donate.html:179
msgid "Thank you for being part of the TimeTracker community!"
msgstr ""

#: app/templates/main/donate.html:188
msgid "How to Support"
msgstr ""

#: app/templates/main/donate.html:191
msgid "Every contribution, no matter the size, makes a difference. Your support helps ensure TimeTracker remains free and continues to evolve."
msgstr ""

#: app/templates/main/donate.html:207
msgid "You'll be redirected to Buy Me a Coffee where you can choose your contribution amount"
msgstr ""

#: app/templates/main/donate.html:215
msgid "The Impact of Your Support"
msgstr ""

#: app/templates/main/donate.html:220
msgid "Enables faster development cycles and quicker feature releases"
msgstr ""

#: app/templates/main/donate.html:224
msgid "Supports better documentation and user guides"
msgstr ""

#: app/templates/main/donate.html:228
msgid "Helps maintain high-quality code and security standards"
msgstr ""

#: app/templates/main/donate.html:232
msgid "Keeps TimeTracker free and accessible for everyone"
msgstr ""

#: app/templates/main/donate.html:241
msgid "Other Ways to Help"
msgstr ""

#: app/templates/main/donate.html:250
msgid "Contribute on GitHub"
msgstr ""

#: app/templates/main/donate.html:252
msgid "Report bugs, suggest features, or submit code"
msgstr ""

#: app/templates/main/donate.html:261
msgid "Help Others"
msgstr ""

#: app/templates/main/donate.html:263
msgid "Share your knowledge in the community"
msgstr ""

#: app/templates/main/donate.html:277
msgid "One-time key per instance; no subscription"
msgstr ""

#: app/templates/main/help.html:9
msgid "Complete documentation and user guide"
msgstr "Täydellinen dokumentaatio ja käyttöopas"

#: app/templates/main/help.html:20
msgid "Quick Navigation"
msgstr "Pikanavigointi"

#: app/templates/main/help.html:23
msgid "Filter sections..."
msgstr "Suodata osiot..."

#: app/templates/main/help.html:26
msgid "Quick Start"
msgstr "Pika-aloitus"

#: app/templates/main/help.html:34 app/templates/main/help.html:471
msgid "Reports & Analytics"
msgstr "Raportit ja analyysit"

#: app/templates/main/help.html:35 app/templates/main/help.html:521
msgid "Productivity Features"
msgstr "Tuottavuusominaisuudet"

#: app/templates/main/help.html:37
msgid "Admin Features"
msgstr "Järjestelmänvalvojan ominaisuudet"

#: app/templates/main/help.html:39 app/templates/main/help.html:653
msgid "Mobile Usage"
msgstr "Mobiilikäyttö"

#: app/templates/main/help.html:40 app/templates/main/help.html:698
#, fuzzy
msgid "API Documentation"
msgstr "Dokumentaatio"

#: app/templates/main/help.html:41
msgid "Troubleshooting"
msgstr "Vianetsintä"

#: app/templates/main/help.html:50
msgid "TimeTracker Help Center"
msgstr "TimeTrackerin ohjekeskus"

#: app/templates/main/help.html:51
msgid "Everything you need to know to get the most out of TimeTracker"
msgstr "Kaikki mitä sinun tulee tietää saadaksesi kaiken irti TimeTrackerista"

#: app/templates/main/help.html:55
msgid "Start Tracking Time"
msgstr "Aloita ajan seuranta"

#: app/templates/main/help.html:58
msgid "View Projects"
msgstr "Näytä projektit"

#: app/templates/main/help.html:61
msgid "Generate Reports"
msgstr "Luo raportteja"

#: app/templates/main/help.html:69
#, fuzzy
msgid "API Docs"
msgstr "API-tunnukset"

#: app/templates/main/help.html:72
msgid "Restart Product Tour"
msgstr ""

#: app/templates/main/help.html:79
msgid "Quick Start Guide"
msgstr "Pika-aloitusopas"

#: app/templates/main/help.html:82
msgid "For New Users"
msgstr "Uusille käyttäjille"

#: app/templates/main/help.html:84
msgid "Log in with your username (no password required)"
msgstr "Kirjaudu sisään käyttäjätunnuksellasi (salasanaa ei vaadita)"

#: app/templates/main/help.html:85
msgid "Explore the dashboard to see your overview"
msgstr "Tutustu hallintapaneeliin nähdäksesi yleiskatsauksen"

#: app/templates/main/help.html:86
msgid "Start your first timer on an existing project"
msgstr "Aloita ensimmäinen ajastin olemassa olevasta projektista"

#: app/templates/main/help.html:87
msgid "View your time entries in reports"
msgstr "Tarkastele aikamerkintöjäsi raporteissa"

#: app/templates/main/help.html:91
msgid "For Administrators"
msgstr "Järjestelmänvalvojille"

#: app/templates/main/help.html:93
msgid "Set up clients in the Client Management section"
msgstr "Määritä asiakkaat Asiakashallinta-osiossa"

#: app/templates/main/help.html:94
msgid "Create projects and assign them to clients"
msgstr "Luo projekteja ja anna ne asiakkaille"

#: app/templates/main/help.html:95
msgid "Configure system settings (timezone, currency, etc.)"
msgstr "Määritä järjestelmäasetukset (aikavyöhyke, valuutta jne.)"

#: app/templates/main/help.html:96
msgid "Manage users and permissions"
msgstr "Hallinnoi käyttäjiä ja käyttöoikeuksia"

#: app/templates/main/help.html:102 app/templates/main/help.html:370
#: app/templates/main/help.html:515
msgid "Pro Tip:"
msgstr "Provinkki:"

#: app/templates/main/help.html:102
msgid "Use the mobile-friendly interface to track time on the go. The timer continues running even if you close your browser!"
msgstr "Käytä mobiiliystävällistä käyttöliittymää seurataksesi aikaa liikkeellä ollessasi. Ajastin jatkaa toimintaansa, vaikka suljet selaimen!"

#: app/templates/main/help.html:112
msgid "Real-time tracking with automatic idle detection and WebSocket updates"
msgstr "Reaaliaikainen seuranta automaattisella joutokäynnin tunnistuksella ja WebSocket-päivityksillä"

#: app/templates/main/help.html:115 app/templates/timer/calendar.html:890
msgid "Manual Entry"
msgstr "Manuaalinen syöttö"

#: app/templates/main/help.html:116
msgid "Log time manually with custom start and end times"
msgstr "Kirjaa aika manuaalisesti mukautetuilla aloitus- ja lopetusajoilla"

#: app/templates/main/help.html:121
msgid "Starting a Timer"
msgstr "Ajastimen käynnistäminen"

#: app/templates/main/help.html:123
msgid "Click the timer icon in the header (round button) to start or stop from any page"
msgstr ""

#: app/templates/main/help.html:124
#, fuzzy
msgid "Or navigate to the Timer page or dashboard"
msgstr "Siirry Ajastin-sivulle tai kojelautaan"

#: app/templates/main/help.html:125
msgid "Select a project from the dropdown"
msgstr "Valitse projekti avattavasta valikosta"

#: app/templates/main/help.html:126
msgid "Optionally select a task for more detailed tracking"
msgstr "Valinnaisesti voit valita tehtävän tarkempaa seurantaa varten"

#: app/templates/main/help.html:127
msgid "Add notes about what you're working on (optional)"
msgstr "Lisää muistiinpanoja tekemästäsi työstä (valinnainen)"

#: app/templates/main/help.html:128
msgid "Add tags separated by commas (optional)"
msgstr "Lisää tunnisteet pilkuilla erotettuina (valinnainen)"

#: app/templates/main/help.html:129
msgid "Click \"Start Timer\""
msgstr "Napsauta \"Aloita ajastin\""

#: app/templates/main/help.html:133
msgid "Timer Features"
msgstr "Ajastimen ominaisuudet"

#: app/templates/main/help.html:135
msgid "Real-time duration display"
msgstr "Reaaliaikainen keston näyttö"

#: app/templates/main/help.html:136
msgid "Pause and Stop on the dashboard — Pause saves your time so you can resume later"
msgstr ""

#: app/templates/main/help.html:137
msgid "Resume last session with one click (same project/task/notes)"
msgstr ""

#: app/templates/main/help.html:138
msgid "Quick time adjustment (−15 / −5 / +5 / +15 min) while the timer is running"
msgstr ""

#: app/templates/main/help.html:139
msgid "Continues running if browser closes"
msgstr "Jatkuu, jos selain sulkeutuu"

#: app/templates/main/help.html:140
msgid "Automatic idle detection (configurable)"
msgstr "Automaattinen tyhjäkäynnin tunnistus (konfiguroitavissa)"

#: app/templates/main/help.html:141
msgid "One active timer per user (configurable)"
msgstr "Yksi aktiivinen ajastin käyttäjää kohti (konfiguroitavissa)"

#: app/templates/main/help.html:142
msgid "WebSocket live updates"
msgstr "WebSocketin live-päivitykset"

#: app/templates/main/help.html:147
msgid "Manual Time Entry"
msgstr "Manuaalinen ajansyöttö"

#: app/templates/main/help.html:148
msgid "Create time entries manually when you need to record time spent away from the computer or adjust existing entries."
msgstr "Luo aikamerkintöjä manuaalisesti, kun haluat tallentaa tietokoneen ulkopuolella vietettyä aikaa tai muuttaa olemassa olevia merkintöjä."

#: app/templates/main/help.html:151
msgid "Required Information"
msgstr "Vaaditut tiedot"

#: app/templates/main/help.html:153
msgid "Project selection"
msgstr "Projektin valinta"

#: app/templates/main/help.html:154
msgid "Start date and time"
msgstr "Aloituspäivämäärä ja -aika"

#: app/templates/main/help.html:155
msgid "End date and time"
msgstr "Päättymispäivämäärä ja -aika"

#: app/templates/main/help.html:159
msgid "Optional Information"
msgstr "Valinnaiset tiedot"

#: app/templates/main/help.html:161
msgid "Task assignment"
msgstr "Tehtävätehtävä"

#: app/templates/main/help.html:162
msgid "Description/notes"
msgstr "Kuvaus/huomautukset"

#: app/templates/main/help.html:163
msgid "Tags for categorization"
msgstr "Tunnisteet luokittelua varten"

#: app/templates/main/help.html:164
msgid "Billable status override"
msgstr "Laskutettavan tilan ohitus"

#: app/templates/main/help.html:170
msgid "Advanced Time Entry Features"
msgstr "Kehittyneet ajansyöttöominaisuudet"

#: app/templates/main/help.html:173
msgid "Bulk Entry"
msgstr "Joukkopääsy"

#: app/templates/main/help.html:174
msgid "Create multiple time entries for consecutive days with the same project and duration. Perfect for regular work patterns."
msgstr "Luo useita aikamerkintöjä peräkkäisille päiville samalla projektilla ja kestolla. Täydellinen tavallisiin työmalleihin."

#: app/templates/main/help.html:177
msgid "Templates"
msgstr "Mallit"

#: app/templates/main/help.html:178
msgid "Save frequently used time entries as templates for quick reuse. Saves project, task, and notes."
msgstr "Tallenna usein käytetyt aikamerkinnät malleiksi nopeaa uudelleenkäyttöä varten. Tallentaa projektin, tehtävän ja muistiinpanot."

#: app/templates/main/help.html:182
msgid "Visualize your time entries on a calendar. Drag-and-drop to reschedule or click dates to add entries."
msgstr "Visualisoi aikamerkinnäsi kalenteriin. Vedä ja pudota ajastaaksesi uudelleen tai napsauta päivämääriä lisätäksesi merkintöjä."

#: app/templates/main/help.html:193
msgid "Project Information"
msgstr "Hankkeen tiedot"

#: app/templates/main/help.html:195
msgid "Descriptive project name"
msgstr "Kuvaava projektin nimi"

#: app/templates/main/help.html:196
msgid "Associated client organization"
msgstr "Liittynyt asiakasorganisaatio"

#: app/templates/main/help.html:197
msgid "Project details and scope"
msgstr "Hankkeen tiedot ja laajuus"

#: app/templates/main/help.html:198
msgid "Active, completed, or archived"
msgstr "Aktiivinen, valmis tai arkistoitu"

#: app/templates/main/help.html:202
msgid "Billing Information"
msgstr "Laskutustiedot"

#: app/templates/main/help.html:204
msgid "Whether time should be tracked for billing"
msgstr "Pitääkö laskutusta varten seurata aikaa"

#: app/templates/main/help.html:205
msgid "Rate for billable time calculations"
msgstr "Laskutettavan ajan laskelmien hinta"

#: app/templates/main/help.html:206 app/templates/projects/create.html:78
#: app/templates/projects/edit.html:72
msgid "Billing Reference"
msgstr "Laskutusviite"

#: app/templates/main/help.html:206
msgid "PO number or billing code"
msgstr "PO-numero tai laskutuskoodi"

#: app/templates/main/help.html:213
msgid "Project Operations"
msgstr "Projektitoiminnot"

#: app/templates/main/help.html:215
msgid "Create new projects with client relationships"
msgstr "Luo uusia projekteja asiakassuhteiden kanssa"

#: app/templates/main/help.html:216
msgid "Edit existing projects to update details"
msgstr "Muokkaa olemassa olevia projekteja päivittääksesi tiedot"

#: app/templates/main/help.html:217
msgid "Archive projects to hide from timers (preserves data)"
msgstr "Arkistoi projektit piilottaaksesi ajastimia (säilyttää tiedot)"

#: app/templates/main/help.html:218
msgid "Delete projects (removes all associated time entries)"
msgstr "Poista projektit (poistaa kaikki liittyvät aikamerkinnät)"

#: app/templates/main/help.html:222
msgid "Best Practices"
msgstr "Parhaat käytännöt"

#: app/templates/main/help.html:224
msgid "Use descriptive project names"
msgstr "Käytä kuvaavia projektinimiä"

#: app/templates/main/help.html:225
msgid "Set accurate hourly rates for billing"
msgstr "Aseta tarkat tuntihinnat laskutukseen"

#: app/templates/main/help.html:226
msgid "Archive instead of delete when possible"
msgstr "Arkistoi poistamisen sijaan, jos mahdollista"

#: app/templates/main/help.html:227
msgid "Use billing references for external tracking"
msgstr "Käytä laskutusviitteitä ulkoiseen seurantaan"

#: app/templates/main/help.html:237
msgid "The client management system helps organize your work by client organizations, preventing errors and streamlining project creation."
msgstr "Asiakashallintajärjestelmä auttaa organisoimaan työsi asiakasorganisaatioittain, ehkäisemään virheitä ja virtaviivaistamaan projektien luomista."

#: app/templates/main/help.html:240
msgid "Client Information"
msgstr "Asiakastiedot"

#: app/templates/main/help.html:242
msgid "Organization Name"
msgstr "Organisaation nimi"

#: app/templates/main/help.html:242
msgid "Company or client name"
msgstr "Yrityksen tai asiakkaan nimi"

#: app/templates/main/help.html:243
msgid "Primary contact details"
msgstr "Ensisijaiset yhteystiedot"

#: app/templates/main/help.html:244
msgid "Email & Phone"
msgstr "Sähköposti & Puhelin"

#: app/templates/main/help.html:244
msgid "Contact information"
msgstr "Yhteystiedot"

#: app/templates/main/help.html:245
msgid "Business address"
msgstr "Yrityksen osoite"

#: app/templates/main/help.html:249
msgid "Benefits"
msgstr "Edut"

#: app/templates/main/help.html:251
msgid "Dropdown selection prevents typos"
msgstr "Pudotusvalikon valinta estää kirjoitusvirheet"

#: app/templates/main/help.html:252
msgid "Default rates auto-populate projects"
msgstr "Oletushinnat täyttävät projektit automaattisesti"

#: app/templates/main/help.html:253
msgid "Consistent client naming"
msgstr "Asiakkaan johdonmukainen nimeäminen"

#: app/templates/main/help.html:254
msgid "Easier project organization"
msgstr "Helpompi projektin organisointi"

#: app/templates/main/help.html:261
msgid "Project Count"
msgstr "Projektien määrä"

#: app/templates/main/help.html:262
msgid "Total and active projects"
msgstr "Aktiiviset projektit kokonaisuudessaan"

#: app/templates/main/help.html:267
msgid "Total hours worked"
msgstr "Työtunteja yhteensä"

#: app/templates/main/help.html:271
msgid "Cost Estimation"
msgstr "Kustannusarvio"

#: app/templates/main/help.html:272
msgid "Estimated billing amounts"
msgstr "Arvioidut laskutussummat"

#: app/templates/main/help.html:280
msgid "Break down projects into manageable tasks with detailed tracking and progress monitoring."
msgstr "Jaa projektit hallittaviin tehtäviin yksityiskohtaisen seurannan ja edistymisen seurannan avulla."

#: app/templates/main/help.html:283
msgid "Task Properties"
msgstr "Tehtävän ominaisuudet"

#: app/templates/main/help.html:285
msgid "Name & Description"
msgstr "Nimi & Kuvaus"

#: app/templates/main/help.html:285
msgid "Clear task identification"
msgstr "Selkeä tehtäväntunnistus"

#: app/templates/main/help.html:286
msgid "Priority Levels"
msgstr "Prioriteettitasot"

#: app/templates/main/help.html:286
msgid "Low, Medium, High, Urgent"
msgstr "Matala, keskitaso, korkea, kiireellinen"

#: app/templates/main/help.html:287
msgid "Due Dates"
msgstr "Eräpäivät"

#: app/templates/main/help.html:287
msgid "Deadline tracking"
msgstr "Määräajan seuranta"

#: app/templates/main/help.html:288
msgid "Assignment"
msgstr "Tehtävä"

#: app/templates/main/help.html:288
msgid "Task ownership"
msgstr "Tehtävän omistajuus"

#: app/templates/main/help.html:292
msgid "Status Tracking"
msgstr "Tilan seuranta"

#: app/templates/main/help.html:294
msgid "To Do - Not started"
msgstr "Tehtävä - Ei aloitettu"

#: app/templates/main/help.html:295
msgid "In Progress - Currently working"
msgstr "Käynnissä - Tällä hetkellä töissä"

#: app/templates/main/help.html:296
msgid "Review - Ready for review"
msgstr "Arvostelu – valmis tarkastettavaksi"

#: app/templates/main/help.html:297
msgid "Done - Completed"
msgstr "Valmis - Valmis"

#: app/templates/main/help.html:298
msgid "Cancelled - Not needed"
msgstr "Peruutettu – ei tarvita"

#: app/templates/main/help.html:304
msgid "Time Tracking Features"
msgstr "Aikaseurantaominaisuudet"

#: app/templates/main/help.html:306
msgid "Start timers directly from tasks"
msgstr "Käynnistä ajastimet suoraan tehtävistä"

#: app/templates/main/help.html:307
msgid "Link time entries to specific tasks"
msgstr "Linkitä aikamerkinnät tiettyihin tehtäviin"

#: app/templates/main/help.html:308
msgid "Track estimated vs actual hours"
msgstr "Seuraa arvioituja ja todellisia tunteja"

#: app/templates/main/help.html:309
msgid "Monitor task progress automatically"
msgstr "Seuraa tehtävän edistymistä automaattisesti"

#: app/templates/main/help.html:313
msgid "Task Views"
msgstr "Tehtävänäkymät"

#: app/templates/main/help.html:315
msgid "My Tasks - Your assigned tasks"
msgstr "Omat tehtävät – sinulle määrätyt tehtävät"

#: app/templates/main/help.html:316
msgid "All Tasks - Complete task list"
msgstr "Kaikki tehtävät - Täydellinen tehtäväluettelo"

#: app/templates/main/help.html:317
msgid "Overdue Tasks - Past due items"
msgstr "Erääntyneet tehtävät - Erääntyneet erät"

#: app/templates/main/help.html:318
msgid "Project Tasks - Tasks within projects"
msgstr "Projektitehtävät - Tehtävät projekteissa"

#: app/templates/main/help.html:324
msgid "Collaboration Features"
msgstr "Yhteistyöominaisuudet"

#: app/templates/main/help.html:326
msgid "Task Comments - Threaded discussions on tasks"
msgstr "Tehtävien kommentit – tehtävistä keskusteluja"

#: app/templates/main/help.html:327
msgid "Markdown Support - Rich formatting in descriptions"
msgstr "Markdown-tuki – Rikas muotoilu kuvauksissa"

#: app/templates/main/help.html:328
msgid "User Mentions - Tag team members (if enabled)"
msgstr "Käyttäjämaininnat – Tag-tiimin jäsenet (jos käytössä)"

#: app/templates/main/help.html:329
msgid "File Attachments - Attach files to tasks (if enabled)"
msgstr "Tiedostoliitteet – Liitä tiedostoja tehtäviin (jos käytössä)"

#: app/templates/main/help.html:333
msgid "Markdown Formatting"
msgstr "Markdown-muotoilu"

#: app/templates/main/help.html:334
msgid "Task and project descriptions support Markdown:"
msgstr "Tehtävä- ja projektikuvaukset tukevat Markdownia:"

#: app/templates/main/help.html:336
msgid "**Bold**, *Italic*, ~~Strikethrough~~"
msgstr "**Lihavoitu**, *Kursivoitu*, ~~Yliviivattu~~"

#: app/templates/main/help.html:337
msgid "# Headings, - Lists, [Links](url)"
msgstr "# otsikot, - luettelot, [linkit](url)"

#: app/templates/main/help.html:338
msgid "```code blocks```, tables, images"
msgstr "```koodilohkot```, taulukot, kuvat"

#: app/templates/main/help.html:347
msgid "Visualize your workflow with a drag-and-drop Kanban board for intuitive task management."
msgstr "Visualisoi työnkulkusi vetämällä ja pudottamalla Kanban-levyllä intuitiivista tehtävienhallintaa varten."

#: app/templates/main/help.html:350
msgid "Board Features"
msgstr "Lautan ominaisuudet"

#: app/templates/main/help.html:352
msgid "Customizable columns matching task statuses"
msgstr "Muokattavat sarakkeet, jotka vastaavat tehtävien tiloja"

#: app/templates/main/help.html:353
msgid "Drag-and-drop tasks between columns"
msgstr "Vedä ja pudota tehtäviä sarakkeiden välillä"

#: app/templates/main/help.html:354
msgid "Filter by project, user, or priority"
msgstr "Suodata projektin, käyttäjän tai prioriteetin mukaan"

#: app/templates/main/help.html:355
msgid "Quick search across all tasks"
msgstr "Nopea haku kaikista tehtävistä"

#: app/templates/main/help.html:359
msgid "Using the Kanban Board"
msgstr "Kanban-taulun käyttö"

#: app/templates/main/help.html:361
msgid "Access from the Tasks menu or project page"
msgstr "Pääsy Tehtävät-valikosta tai projektisivulta"

#: app/templates/main/help.html:362
msgid "Drag tasks to different columns to change status"
msgstr "Muuta tilaa vetämällä tehtäviä eri sarakkeisiin"

#: app/templates/main/help.html:363
msgid "Click on a task card to view/edit details"
msgstr "Napsauta tehtäväkorttia nähdäksesi/muokkaaksesi tietoja"

#: app/templates/main/help.html:364
msgid "Use filters to focus on specific work"
msgstr "Käytä suodattimia keskittyäksesi tiettyyn työhön"

#: app/templates/main/help.html:370
msgid "The Kanban board is perfect for sprint planning and daily standups. Each column represents a stage in your workflow!"
msgstr "Kanban-lauta sopii erinomaisesti sprintin suunnitteluun ja päivittäiseen standupiin. Jokainen sarake edustaa työnkulkusi vaihetta!"

#: app/templates/main/help.html:376
msgid "Expense Tracking"
msgstr "Kulujen seuranta"

#: app/templates/main/help.html:377
msgid "Track business expenses, manage receipts, and handle reimbursements efficiently."
msgstr "Seuraa liiketoiminnan kuluja, hallitse kuitteja ja käsittele korvauksia tehokkaasti."

#: app/templates/main/help.html:380
msgid "Expense Features"
msgstr "Kustannusominaisuudet"

#: app/templates/main/help.html:382
msgid "Categorize expenses (travel, meals, supplies, etc.)"
msgstr "Luokittele kulut (matkat, ateriat, tarvikkeet jne.)"

#: app/templates/main/help.html:383
msgid "Attach receipt images and documents"
msgstr "Liitä kuitin kuvia ja asiakirjoja"

#: app/templates/main/help.html:384
msgid "Track amounts, tax, and payment methods"
msgstr "Seuraa summia, veroja ja maksutapoja"

#: app/templates/main/help.html:385
msgid "Approval workflow for expense requests"
msgstr "Hyväksyntätyönkulku kulupyyntöjä varten"

#: app/templates/main/help.html:389
msgid "Billing & Reimbursement"
msgstr "Laskutus ja hyvitys"

#: app/templates/main/help.html:391
msgid "Mark expenses as billable to clients"
msgstr "Merkitse kulut asiakkaille laskutettaviksi"

#: app/templates/main/help.html:392
msgid "Include expenses in client invoices"
msgstr "Sisällytä kulut asiakkaan laskuihin"

#: app/templates/main/help.html:393
msgid "Track reimbursement status"
msgstr "Seuraa korvauksen tilaa"

#: app/templates/main/help.html:394
msgid "Link expenses to specific projects"
msgstr "Yhdistä kulut tiettyihin projekteihin"

#: app/templates/main/help.html:401
msgid "Record Expense"
msgstr "Kirjaa kulut"

#: app/templates/main/help.html:402
msgid "Enter details and upload receipt"
msgstr "Anna tiedot ja lähetä kuitti"

#: app/templates/main/help.html:406
msgid "Submit for Approval"
msgstr "Lähetä hyväksyttäväksi"

#: app/templates/main/help.html:407
msgid "Admin reviews and approves"
msgstr "Järjestelmänvalvoja arvioi ja hyväksyy"

#: app/templates/main/help.html:411
msgid "Invoice/Reimburse"
msgstr "Lasku/palautus"

#: app/templates/main/help.html:412
msgid "Add to invoice or reimburse"
msgstr "Lisää laskuun tai hyvitä"

#: app/templates/main/help.html:416 app/templates/main/help.html:463
msgid "Track Payment"
msgstr "Seuraa maksua"

#: app/templates/main/help.html:417
msgid "Monitor reimbursement status"
msgstr "Seuraa korvauksen tilaa"

#: app/templates/main/help.html:424
msgid "Professional Invoicing"
msgstr "Ammattimainen laskutus"

#: app/templates/main/help.html:429
msgid "Professional PDF generation"
msgstr "Ammattimainen PDF-sukupolvi"

#: app/templates/main/help.html:430
msgid "Company branding and logos"
msgstr "Yrityksen brändäys ja logot"

#: app/templates/main/help.html:431
msgid "Automatic invoice numbering"
msgstr "Automaattinen laskujen numerointi"

#: app/templates/main/help.html:432
msgid "Tax calculations"
msgstr "Verolaskelmat"

#: app/templates/main/help.html:436
msgid "Time Integration"
msgstr "Aika integraatio"

#: app/templates/main/help.html:438
msgid "Generate from time entries"
msgstr "Luo aikamerkinnöistä"

#: app/templates/main/help.html:439
msgid "Smart grouping by task/project"
msgstr "Älykäs ryhmittely tehtävän/projektin mukaan"

#: app/templates/main/help.html:440
msgid "Prevent double-billing"
msgstr "Vältä kaksoislaskutus"

#: app/templates/main/help.html:441
msgid "Use project hourly rates"
msgstr "Käytä projektin tuntihintoja"

#: app/templates/main/help.html:449
msgid "Set up client and project details"
msgstr "Määritä asiakas- ja projektitiedot"

#: app/templates/main/help.html:453
msgid "Add Items"
msgstr "Lisää kohteita"

#: app/templates/main/help.html:454
msgid "Generate from time or add manually"
msgstr "Luo ajoissa tai lisää manuaalisesti"

#: app/templates/main/help.html:458
msgid "Review & Send"
msgstr "Tarkista & Lähetä"

#: app/templates/main/help.html:459
msgid "Export PDF and update status"
msgstr "Vie PDF ja päivitä tila"

#: app/templates/main/help.html:464
msgid "Monitor status and payments"
msgstr "Seuraa tilaa ja maksuja"

#: app/templates/main/help.html:474
msgid "Standard Reports"
msgstr "Vakioraportit"

#: app/templates/main/help.html:476
msgid "Project Report - Time breakdown by project"
msgstr "Projektiraportti - Aikajakauma projekteittain"

#: app/templates/main/help.html:477
msgid "User Report - Individual performance metrics"
msgstr "Käyttäjäraportti – Yksittäiset tehokkuusmittarit"

#: app/templates/main/help.html:478
msgid "Summary Report - Key metrics and trends"
msgstr "Yhteenvetoraportti – Tärkeimmät tiedot ja trendit"

#: app/templates/main/help.html:479
msgid "Time Entry Report - Detailed time logs"
msgstr "Aikakirjausraportti - Yksityiskohtaiset aikalokit"

#: app/templates/main/help.html:483
msgid "Export Options"
msgstr "Vientiasetukset"

#: app/templates/main/help.html:485
msgid "CSV Export - For external analysis"
msgstr "CSV-vienti - Ulkoiseen analyysiin"

#: app/templates/main/help.html:486
msgid "Configurable delimiters"
msgstr "Muokattavat erottimet"

#: app/templates/main/help.html:487
msgid "Custom date ranges"
msgstr "Muokatut ajanjaksot"

#: app/templates/main/help.html:488
msgid "Filtered data export"
msgstr "Suodatetun tiedon vienti"

#: app/templates/main/help.html:494
msgid "Filter Options"
msgstr "Suodatinvalinnat"

#: app/templates/main/help.html:496
msgid "Date Range - Custom start and end dates"
msgstr "Ajanjakso - Mukautetut aloitus- ja lopetuspäivät"

#: app/templates/main/help.html:497
msgid "Project - Filter by specific projects"
msgstr "Projekti - Suodata tiettyjen projektien mukaan"

#: app/templates/main/help.html:498
msgid "User - Filter by team members"
msgstr "Käyttäjä - Suodata tiimin jäsenten mukaan"

#: app/templates/main/help.html:499
msgid "Client - Filter by client organization"
msgstr "Asiakas - Suodata asiakasorganisaation mukaan"

#: app/templates/main/help.html:500
msgid "Saved Filters - Save frequently used filters"
msgstr "Tallennetut suodattimet - Tallenna usein käytetyt suodattimet"

#: app/templates/main/help.html:504
msgid "Visual Analytics"
msgstr "Visuaalinen analytiikka"

#: app/templates/main/help.html:506
msgid "Interactive bar charts"
msgstr "Interaktiiviset pylväskaaviot"

#: app/templates/main/help.html:507
msgid "Time distribution pie charts"
msgstr "Aikajakauman ympyräkaaviot"

#: app/templates/main/help.html:508
msgid "Trend analysis over time"
msgstr "Trendianalyysi ajan mittaan"

#: app/templates/main/help.html:509
msgid "Mobile-optimized charts"
msgstr "Mobiilioptimoidut kaaviot"

#: app/templates/main/help.html:515
msgid "Use Saved Filters to quickly access your most common report views. Save filters for weekly reviews, monthly billing, or specific project tracking!"
msgstr "Käytä tallennettuja suodattimia päästäksesi nopeasti yleisimpiin raporttinäkymiin. Tallenna suodattimet viikoittaisia ​​arvioita, kuukausilaskutusta tai tiettyä projektiseurantaa varten!"

#: app/templates/main/help.html:522
msgid "Boost your efficiency with keyboard shortcuts, command palette, and automation features."
msgstr "Paranna tehokkuuttasi pikanäppäimillä, komentopaletilla ja automaatioominaisuuksilla."

#: app/templates/main/help.html:525
msgid "Command Palette"
msgstr "Komentopaletti"

#: app/templates/main/help.html:526
msgid "Access any feature instantly without leaving the keyboard"
msgstr "Käytä mitä tahansa ominaisuutta välittömästi poistumatta näppäimistöstä"

#: app/templates/main/help.html:529
msgid "Opening the Command Palette"
msgstr "Komentopaletin avaaminen"

#: app/templates/main/help.html:531
msgid "Press the question mark key"
msgstr "Paina kysymysmerkkinäppäintä"

#: app/templates/main/help.html:532
msgid "Quick search"
msgstr "Pikahaku"

#: app/templates/main/help.html:539
msgid "Go to Projects"
msgstr "Siirry kohtaan Projektit"

#: app/templates/main/help.html:540
msgid "Go to Tasks"
msgstr "Siirry kohtaan Tehtävät"

#: app/templates/main/help.html:541
msgid "New Time Entry"
msgstr "Uusi aikamerkintä"

#: app/templates/main/help.html:549 app/templates/timer/calendar.html:271
msgid "Keyboard Shortcuts"
msgstr "Pikanäppäimet"

#: app/templates/main/help.html:550
msgid "Navigate faster with keyboard-driven commands. Press Shift+? to see all shortcuts."
msgstr "Navigoi nopeammin näppäimistöohjattujen komentojen avulla. Paina Shift+? nähdäksesi kaikki pikakuvakkeet."

#: app/templates/main/help.html:553
msgid "Global Search"
msgstr "Maailmanlaajuinen haku"

#: app/templates/main/help.html:554
msgid "Quickly find projects, tasks, clients, and time entries from anywhere in the app."
msgstr "Löydä nopeasti projekteja, tehtäviä, asiakkaita ja aikamerkintöjä mistä tahansa sovelluksesta."

#: app/templates/main/help.html:557
msgid "Email Notifications"
msgstr "Sähköposti-ilmoitukset"

#: app/templates/main/help.html:558
msgid "Get notified about task assignments, overdue invoices, and weekly summaries via email."
msgstr "Saat sähköpostiisi ilmoituksen tehtävätehtävistä, erääntyneistä laskuista ja viikoittaisista yhteenvedoista."

#: app/templates/main/help.html:566
msgid "Administrator Features"
msgstr "Järjestelmänvalvojan ominaisuudet"

#: app/templates/main/help.html:571
msgid "Create new users with flexible authentication"
msgstr "Luo uusia käyttäjiä joustavalla todennuksella"

#: app/templates/main/help.html:572
msgid "Assign custom roles with specific permissions"
msgstr "Määritä mukautettuja rooleja tietyillä käyttöoikeuksilla"

#: app/templates/main/help.html:573
msgid "Activate/deactivate user accounts"
msgstr "Aktivoi/deaktivoi käyttäjätilit"

#: app/templates/main/help.html:574
msgid "View user statistics and activity"
msgstr "Tarkastele käyttäjätilastoja ja toimintaa"

#: app/templates/main/help.html:575
msgid "Generate API tokens for users"
msgstr "Luo API-tunnuksia käyttäjille"

#: app/templates/main/help.html:579
msgid "Access Control"
msgstr "Kulunvalvonta"

#: app/templates/main/help.html:581
msgid "Granular role-based permissions system"
msgstr "Yksityiskohtainen roolipohjainen käyttöoikeusjärjestelmä"

#: app/templates/main/help.html:582
msgid "Custom roles with fine-grained access"
msgstr "Mukautetut roolit, joissa on tarkat käyttöoikeudet"

#: app/templates/main/help.html:583
msgid "User data access controls"
msgstr "Käyttäjätietojen käyttöoikeudet"

#: app/templates/main/help.html:584
msgid "OIDC/SSO integration (Azure AD, Authelia, etc.)"
msgstr "OIDC/SSO-integraatio (Azure AD, Authelia jne.)"

#: app/templates/main/help.html:585
msgid "API token management for integrations"
msgstr "API-tunnusten hallinta integraatioita varten"

#: app/templates/main/help.html:591
msgid "Authentication Methods"
msgstr "Todennusmenetelmät"

#: app/templates/main/help.html:593
msgid "Username-only (simple internal use)"
msgstr "Vain käyttäjätunnus (yksinkertainen sisäinen käyttö)"

#: app/templates/main/help.html:594
msgid "OIDC/SSO (enterprise authentication)"
msgstr "OIDC/SSO (yrityksen todennus)"

#: app/templates/main/help.html:595
msgid "Both methods simultaneously"
msgstr "Molemmat menetelmät samanaikaisesti"

#: app/templates/main/help.html:596
msgid "Automatic role assignment via groups"
msgstr "Automaattinen roolin jako ryhmien kautta"

#: app/templates/main/help.html:600
msgid "Role & Permission Management"
msgstr "Rooli- ja lupahallinta"

#: app/templates/main/help.html:602
msgid "Create custom roles beyond Admin/User"
msgstr "Luo mukautettuja rooleja järjestelmänvalvojan/käyttäjän lisäksi"

#: app/templates/main/help.html:603
msgid "Set granular permissions per feature"
msgstr "Määritä yksityiskohtaiset käyttöoikeudet ominaisuudelle"

#: app/templates/main/help.html:604
msgid "Assign users to multiple roles"
msgstr "Määritä käyttäjille useita rooleja"

#: app/templates/main/help.html:605
msgid "View and manage all permissions"
msgstr "Tarkastele ja hallinnoi kaikkia käyttöoikeuksia"

#: app/templates/main/help.html:611
msgid "General Settings"
msgstr "Yleiset asetukset"

#: app/templates/main/help.html:613
msgid "Timezone and locale settings"
msgstr "Aikavyöhyke- ja alueasetukset"

#: app/templates/main/help.html:614
msgid "Currency configuration"
msgstr "Valuutan määritys"

#: app/templates/main/help.html:615
msgid "Time rounding rules"
msgstr "Ajan pyöristyssäännöt"

#: app/templates/main/help.html:616
msgid "Self-registration settings"
msgstr "Itserekisteröinnin asetukset"

#: app/templates/main/help.html:620
msgid "Timer Settings"
msgstr "Ajastinasetukset"

#: app/templates/main/help.html:622
msgid "Idle timeout configuration"
msgstr "Idle timeout -määritys"

#: app/templates/main/help.html:623
msgid "Single active timer mode"
msgstr "Yksi aktiivinen ajastintila"

#: app/templates/main/help.html:624
msgid "Timer display preferences"
msgstr "Ajastimen näyttöasetukset"

#: app/templates/main/help.html:625
msgid "Notification settings"
msgstr "Ilmoitusasetukset"

#: app/templates/main/help.html:631
msgid "Database Management"
msgstr "Tietokannan hallinta"

#: app/templates/main/help.html:633
msgid "Create manual database backups"
msgstr "Luo manuaaliset tietokannan varmuuskopiot"

#: app/templates/main/help.html:634
msgid "View database migration status"
msgstr "Näytä tietokannan siirron tila"

#: app/templates/main/help.html:635
msgid "Monitor database performance"
msgstr "Tarkkaile tietokannan suorituskykyä"

#: app/templates/main/help.html:636
msgid "Clean up old data and logs"
msgstr "Siivoa vanhat tiedot ja lokit"

#: app/templates/main/help.html:640
msgid "System Monitoring"
msgstr "Järjestelmän valvonta"

#: app/templates/main/help.html:642
msgid "View system information and health"
msgstr "Tarkastele järjestelmän tietoja ja kuntoa"

#: app/templates/main/help.html:643
msgid "Monitor application performance"
msgstr "Tarkkaile sovelluksen suorituskykyä"

#: app/templates/main/help.html:644
msgid "Review system logs and errors"
msgstr "Tarkista järjestelmän lokit ja virheet"

#: app/templates/main/help.html:656
msgid "Mobile-Friendly Features"
msgstr "Mobiiliystävälliset ominaisuudet"

#: app/templates/main/help.html:658
msgid "Optimized for phones and tablets"
msgstr "Optimoitu puhelimille ja tableteille"

#: app/templates/main/help.html:659
msgid "Touch-friendly interface"
msgstr "Kosketusystävällinen käyttöliittymä"

#: app/templates/main/help.html:660
msgid "Adaptive layouts for all screen sizes"
msgstr "Mukautuvat asettelut kaikille näyttökokoille"

#: app/templates/main/help.html:661
msgid "High contrast for outdoor visibility"
msgstr "Korkea kontrasti ulkonäkyvyyden takaamiseksi"

#: app/templates/main/help.html:665
msgid "Mobile Navigation"
msgstr "Mobiilinavigointi"

#: app/templates/main/help.html:667
msgid "Bottom tab bar for easy access"
msgstr "Alempi välilehtipalkki helpottaa pääsyä"

#: app/templates/main/help.html:668
msgid "Quick access to dashboard"
msgstr "Nopea pääsy kojelautaan"

#: app/templates/main/help.html:669
msgid "One-tap time logging"
msgstr "Ajan kirjaaminen yhdellä napautuksella"

#: app/templates/main/help.html:670
msgid "Mobile-optimized reports"
msgstr "Mobiilioptimoidut raportit"

#: app/templates/main/help.html:676
msgid "Installation"
msgstr "Asennus"

#: app/templates/main/help.html:678
msgid "Open TimeTracker in your mobile browser"
msgstr "Avaa TimeTracker mobiiliselaimessa"

#: app/templates/main/help.html:679
msgid "Look for \"Add to Home Screen\" option"
msgstr "Etsi \"Lisää aloitusnäyttöön\" -vaihtoehto"

#: app/templates/main/help.html:680
msgid "Follow browser-specific installation prompts"
msgstr "Noudata selainkohtaisia ​​asennusohjeita"

#: app/templates/main/help.html:681
msgid "Launch from your home screen like a native app"
msgstr "Käynnistä aloitusnäytöltäsi kuin natiivisovellus"

#: app/templates/main/help.html:685
msgid "PWA Benefits"
msgstr "PWA:n edut"

#: app/templates/main/help.html:687
msgid "Offline capability for basic functions"
msgstr "Offline-ominaisuus perustoimintoihin"

#: app/templates/main/help.html:688
msgid "Faster loading times"
msgstr "Nopeammat latausajat"

#: app/templates/main/help.html:689
msgid "Native app-like experience"
msgstr "Natiivisovelluksen kaltainen kokemus"

#: app/templates/main/help.html:690
msgid "Push notifications (where supported)"
msgstr "Push-ilmoitukset (jos tuettu)"

#: app/templates/main/help.html:699
msgid "TimeTracker provides a REST API for integration with other tools, mobile apps, and custom workflows."
msgstr ""

#: app/templates/main/help.html:701
#, fuzzy
msgid "Interactive Swagger UI at"
msgstr "Interaktiiviset pylväskaaviot"

#: app/templates/main/help.html:702
#, fuzzy
msgid "OpenAPI 3.0 specification at"
msgstr "Tekniset tiedot"

#: app/templates/main/help.html:703
msgid "Bearer token or X-API-Key authentication"
msgstr ""

#: app/templates/main/help.html:704
msgid "Projects, time entries, tasks, clients, invoices, and more"
msgstr ""

#: app/templates/main/help.html:707
#, fuzzy
msgid "Open API Documentation"
msgstr "Dokumentaatio"

#: app/templates/main/help.html:713
msgid "Troubleshooting & FAQ"
msgstr "Vianetsintä ja UKK"

#: app/templates/main/help.html:716
msgid "What happens if I forget to stop my timer?"
msgstr "Mitä tapahtuu, jos unohdan pysäyttää ajastimen?"

#: app/templates/main/help.html:717
msgid "The timer will continue running until you stop it manually. You can see your active timer on the dashboard and timer page. The timer persists even if you close your browser or restart your device. If idle detection is enabled, the timer may pause automatically after the configured timeout period."
msgstr "Ajastin jatkaa toimintaansa, kunnes pysäytät sen manuaalisesti. Näet aktiivisen ajastimesi kojelaudassa ja ajastinsivulla. Ajastin säilyy, vaikka suljet selaimen tai käynnistät laitteen uudelleen. Jos tyhjäkäynnin tunnistus on käytössä, ajastin voi pysähtyä automaattisesti määritetyn aikakatkaisujakson jälkeen."

#: app/templates/main/help.html:720
msgid "Can I edit time entries after they're created?"
msgstr "Voinko muokata aikamerkintöjä niiden luomisen jälkeen?"

#: app/templates/main/help.html:721
msgid "Yes, you can edit any time entry by clicking the edit button in the time entry list. You can modify the project, start/end times, notes, tags, billable status, and task assignment. Admins can edit all time entries, while regular users can only edit their own entries."
msgstr "Kyllä, voit muokata mitä tahansa aikamerkintää napsauttamalla muokkauspainiketta aikamerkintäluettelossa. Voit muokata projektia, aloitus- ja lopetusaikoja, muistiinpanoja, tunnisteita, laskutettavaa tilaa ja tehtävän määritystä. Järjestelmänvalvojat voivat muokata kaikkia aikamerkintöjä, kun taas tavalliset käyttäjät voivat muokata vain omia merkintöjään."

#: app/templates/main/help.html:724
msgid "How do I track time for multiple projects?"
msgstr "Kuinka seuraan useiden projektien aikaa?"

#: app/templates/main/help.html:725
msgid "By default, you can only have one active timer at a time. To switch projects, stop your current timer and start a new one for the different project. Alternatively, you can create manual time entries for past work or configure the system to allow multiple active timers (admin setting)."
msgstr "Oletuksena sinulla voi olla vain yksi aktiivinen ajastin kerrallaan. Vaihda projektia pysäyttämällä nykyinen ajastin ja käynnistämällä uusi eri projektille. Vaihtoehtoisesti voit luoda manuaalisia aikamerkintöjä menneille töille tai määrittää järjestelmän sallimaan useita aktiivisia ajastimia (järjestelmänvalvojan asetus)."

#: app/templates/main/help.html:728
msgid "How do I export my time data?"
msgstr "Kuinka voin viedä aikatietoni?"

#: app/templates/main/help.html:729
msgid "Go to the Reports page and use the \"Export CSV\" feature. You can apply filters to export specific data, or export all time entries. The CSV file includes all time entry details and can be opened in Excel or other spreadsheet applications. You can also configure the delimiter for different regional standards."
msgstr "Siirry Raportit-sivulle ja käytä Vie CSV -ominaisuutta. Voit käyttää suodattimia viedäksesi tiettyjä tietoja tai viedäksesi kaikki aikamerkinnät. CSV-tiedosto sisältää kaikki aikatiedot, ja se voidaan avata Excelissä tai muissa taulukkolaskentaohjelmissa. Voit myös määrittää erottimen eri aluestandardeille."

#: app/templates/main/help.html:732
msgid "What's the difference between billable and non-billable time?"
msgstr "Mitä eroa on laskutettavalla ja ei-laskutettavalla ajalla?"

#: app/templates/main/help.html:733
msgid "Billable time is tracked for client billing purposes and can have an hourly rate associated with it. Non-billable time is for internal work that doesn't get charged to clients. You can mark individual time entries as billable or non-billable, and projects can have default billable settings. This distinction is crucial for accurate invoicing and profitability analysis."
msgstr "Laskutettavaa aikaa seurataan asiakkaan laskutusta varten ja siihen voi liittyä tuntihinta. Ei-laskutettava aika on tarkoitettu sisäisiin töihin, joita ei veloiteta asiakkailta. Voit merkitä yksittäisiä aikamerkintöjä laskutettaviksi tai ei-laskutettaviksi, ja projekteissa voi olla laskutettavat oletusasetukset. Tämä erottelu on ratkaisevan tärkeää tarkan laskutuksen ja kannattavuusanalyysin kannalta."

#: app/templates/main/help.html:736
msgid "How do I create an invoice from my time entries?"
msgstr "Kuinka luon laskun aikamerkinnöistäni?"

#: app/templates/main/help.html:737
msgid "Navigate to Invoices → Create Invoice, set up the client and project details, then use \"Generate from Time Entries\" to automatically create invoice items from your tracked time. You can filter by date range and project, and the system will group time entries intelligently. Review the generated items and export as a professional PDF."
msgstr "Siirry kohtaan Laskut → Luo lasku, määritä asiakas- ja projektitiedot ja käytä sitten \"Luo aikamerkinnöistä\" luodaksesi automaattisesti laskukohteita seuranneesta ajasta. Voit suodattaa ajanjakson ja projektin mukaan, ja järjestelmä ryhmittelee aikamerkinnät älykkäästi. Tarkista luodut kohteet ja vie ne ammattimaisena PDF-tiedostona."

#: app/templates/main/help.html:740
msgid "Can I use TimeTracker on my mobile device?"
msgstr "Voinko käyttää TimeTrackeria mobiililaitteellani?"

#: app/templates/main/help.html:741
msgid "Yes! TimeTracker is fully responsive and works great on mobile devices. You can install it as a Progressive Web App (PWA) for a native-like experience. The mobile interface includes a bottom tab bar for easy navigation and touch-optimized controls for time tracking on the go."
msgstr "Kyllä! TimeTracker on täysin reagoiva ja toimii erinomaisesti mobiililaitteissa. Voit asentaa sen Progressive Web App -sovelluksena (PWA) saadaksesi alkuperäisen kaltaisen kokemuksen. Mobiilikäyttöliittymä sisältää välilehtipalkin, joka helpottaa navigointia, ja kosketusoptimoidut säätimet ajan seurantaan liikkeellä ollessasi."

#: app/templates/main/help.html:744
msgid "How do I use the command palette and keyboard shortcuts?"
msgstr "Kuinka käytän komentopalettia ja pikanäppäimiä?"

#: app/templates/main/help.html:745
msgid "Press the question mark key (?) to open the command palette. From there, you can type to search for any action or navigation target. Use keyboard sequences like \"g d\" for Dashboard, \"g p\" for Projects, or \"n e\" for New Entry. Press Shift+? to see all available shortcuts. Press Ctrl+K (or Cmd+K on Mac) for quick search."
msgstr "Avaa komentopaletti painamalla kysymysmerkkinäppäintä (?). Sieltä voit etsiä mitä tahansa toimintoa tai navigointikohdetta kirjoittamalla. Käytä näppäimistösarjoja, kuten \"g d\" Dashboardille, \"g p\" projekteille tai \"n e\" New Entrylle. Paina Shift+? nähdäksesi kaikki käytettävissä olevat pikakuvakkeet. Pikahakua varten paina Ctrl+K (tai Cmd+K Macissa)."

#: app/templates/main/help.html:748
msgid "How do I create bulk time entries for multiple days?"
msgstr "Kuinka luon joukkoaikamerkintöjä useille päiville?"

#: app/templates/main/help.html:749
msgid "Navigate to Work → Bulk Time Entry. Select your project, choose a date range, set your daily start and end times, and optionally skip weekends. The system will create identical time entries for each day in the range. This is perfect for logging regular work patterns or filling in past time when you worked consistent hours."
msgstr "Siirry kohtaan Työ → Joukkoaikasyöttö. Valitse projektisi, valitse ajanjakso, aseta päivittäiset alkamis- ja päättymisajat ja halutessasi ohita viikonloput. Järjestelmä luo identtiset aikamerkinnät jokaiselle alueen päivälle. Tämä sopii mainiosti säännöllisten työtapojen kirjaamiseen tai menneiden työaikojen täyttämiseen, kun olet työskennellyt tasaisin väliajoin."

#: app/templates/main/help.html:752
msgid "What are time entry templates and how do I use them?"
msgstr "Mitä ovat ajansyöttömallit ja miten niitä käytetään?"

#: app/templates/main/help.html:753
msgid "Time entry templates let you save frequently used time entry configurations. When creating a manual time entry, check \"Save as Template\" to save the project, task, and notes. Later, when creating new entries, you can select a template to quickly fill in these details. Templates are personal and only visible to you."
msgstr "Ajansyöttömallien avulla voit tallentaa usein käytetyt ajansyöttökokoonpanot. Kun luot manuaalista aikamerkintää, valitse \"Tallenna mallina\" tallentaaksesi projektin, tehtävän ja muistiinpanot. Myöhemmin, kun luot uusia merkintöjä, voit valita mallin täyttääksesi nämä tiedot nopeasti. Mallit ovat henkilökohtaisia ​​ja näkyvät vain sinulle."

#: app/templates/main/help.html:756
msgid "How do I track expenses and add them to invoices?"
msgstr "Kuinka seuraan kuluja ja lisään ne laskuihin?"

#: app/templates/main/help.html:757
msgid "Go to Expenses → New Expense to record business expenses. Upload receipt images, categorize the expense, and mark it as billable if needed. When creating invoices, you can include these expenses as line items. Expenses support approval workflows, reimbursement tracking, and can be linked to specific projects."
msgstr "Siirry kohtaan Kulut → Uusi kulu kirjataksesi liiketoiminnan kulut. Lataa kuittikuvat, luokittele kulu ja merkitse se tarvittaessa laskutettavaksi. Kun luot laskuja, voit sisällyttää nämä kulut rivikohtiin. Kulut tukevat hyväksynnän työnkulkuja, korvausten seurantaa, ja ne voidaan linkittää tiettyihin projekteihin."

#: app/templates/main/help.html:760
msgid "Can I use Markdown in descriptions?"
msgstr "Voinko käyttää Markdownia kuvauksissa?"

#: app/templates/main/help.html:761
msgid "Yes! Project and task descriptions support full Markdown formatting. You can use bold, italic, headings, lists, links, code blocks, tables, and images. This allows you to create rich, well-formatted documentation directly in your projects and tasks. The Markdown editor includes a preview mode and supports dark theme."
msgstr "Kyllä! Projektien ja tehtävien kuvaukset tukevat täyttä Markdown-muotoilua. Voit käyttää lihavointia, kursiivia, otsikoita, luetteloita, linkkejä, koodilohkoja, taulukoita ja kuvia. Näin voit luoda monipuolista, hyvin muotoiltua dokumentaatiota suoraan projekteihin ja tehtäviin. Markdown-editori sisältää esikatselutilan ja tukee tummaa teemaa."

#: app/templates/main/help.html:764
msgid "Where can I get additional help?"
msgstr "Mistä saan lisäapua?"

#: app/templates/main/help.html:768
msgid "This help page covers most common questions and features. For complete documentation:"
msgstr ""

#: app/templates/main/help.html:770
msgid "Complete Documentation Index"
msgstr ""

#: app/templates/main/help.html:771
msgid "Getting Started Guide"
msgstr ""

#: app/templates/main/help.html:772
msgid "Product Overview & Features"
msgstr ""

#: app/templates/main/help.html:773
msgid "Changelog"
msgstr ""

#: app/templates/main/help.html:778
msgid "Report issues and request features on"
msgstr "Ilmoita ongelmista ja pyydä ominaisuuksia käyttöön"

#: app/templates/main/help.html:783
msgid "As an admin, you can access additional system information and diagnostics in the"
msgstr "Järjestelmänvalvojana voit käyttää järjestelmän lisätietoja ja diagnostiikkaa"

#: app/templates/main/help.html:783
msgid "section."
msgstr "osio."

#: app/templates/main/help.html:785
msgid "Admin documentation:"
msgstr ""

#: app/templates/main/help.html:785
msgid "Administrator Guide"
msgstr ""

#: app/templates/main/help.html:795
msgid "Still Need Help?"
msgstr "Tarvitsetko edelleen apua?"

#: app/templates/main/help.html:796
msgid "Can't find what you're looking for? Here are additional resources:"
msgstr "Etkö löydä etsimääsi? Tässä on lisäresursseja:"

#: app/templates/main/help.html:801
msgid "Complete Documentation"
msgstr ""

#: app/templates/main/help.html:805
msgid "Documentation Index"
msgstr ""

#: app/templates/main/help.html:808
msgid "Getting Started"
msgstr ""

#: app/templates/main/help.html:811
msgid "Feature Guides"
msgstr ""

#: app/templates/main/help.html:815
msgid "Admin Documentation"
msgstr ""

#: app/templates/main/help.html:829
msgid "GitHub Repository"
msgstr "GitHub-arkisto"

#: app/templates/main/help.html:832
msgid "Report Issue"
msgstr "Ilmoita ongelmasta"

#: app/templates/main/help.html:843
msgid "Donations and licenses fund development; nothing is paywalled."
msgstr ""

#: app/templates/main/help.html:844 app/templates/reports/index.html:21
#, fuzzy
msgid "Open support"
msgstr "Tukea"

#: app/templates/main/search.html:11
msgid "Search Results"
msgstr "Hakutulokset"

#: app/templates/main/search.html:14
msgid "Search notes or tags"
msgstr "Hae muistiinpanoja tai tunnisteita"

#: app/templates/main/search.html:25
msgid "Results"
msgstr "Tulokset"

#: app/templates/main/search.html:75
msgid "Are you sure you want to delete this time entry? This action cannot be undone."
msgstr "Haluatko varmasti poistaa tämän aikamerkinnän? Tätä toimintoa ei voi kumota."

#: app/templates/main/search.html:115
msgid "No results found"
msgstr "Tuloksia ei löytynyt"

#: app/templates/main/search.html:116
msgid "Try a different query or check your spelling."
msgstr "Kokeile toista kyselyä tai tarkista oikeinkirjoitus."

#: app/templates/mileage/form.html:56
msgid "e.g., Client meeting, Site visit"
msgstr "esim. asiakastapaaminen, sivustokäynti"

#: app/templates/mileage/form.html:65
msgid "Additional details..."
msgstr "Lisätietoja..."

#: app/templates/mileage/form.html:84
msgid "e.g., Office, Home"
msgstr "esim. toimisto, koti"

#: app/templates/mileage/form.html:94
msgid "e.g., Client site, Airport"
msgstr "esim. asiakassivusto, lentokenttä"

#: app/templates/mileage/form.html:125
msgid "e.g., 12345"
msgstr "esim. 12345"

#: app/templates/mileage/form.html:135
msgid "e.g., 12400"
msgstr "esim. 12400"

#: app/templates/mileage/form.html:185
msgid "e.g., VW Golf"
msgstr "esim VW Golf"

#: app/templates/mileage/form.html:195
msgid "e.g., ABC-123"
msgstr "esim. ABC-123"

#: app/templates/mileage/gps.html:2 app/templates/mileage/gps.html:7
#, fuzzy
msgid "GPS Mileage Tracking"
msgstr "Ajan seuranta"

#: app/templates/mileage/gps.html:8
#, fuzzy
msgid "Back to Mileage"
msgstr "Takaisin Rooleihin"

#: app/templates/mileage/gps.html:13
msgid "Use your device GPS to record route points, calculate distance, and convert the track into an expense."
msgstr ""

#: app/templates/mileage/gps.html:27
#, fuzzy
msgid "Rate per km"
msgstr "Päivämäärä alkaen"

#: app/templates/mileage/gps.html:37
#, fuzzy
msgid "Add Point"
msgstr "Lisää huomautus"

#: app/templates/mileage/gps.html:38
#, fuzzy
msgid "Create Expense from Track"
msgstr "Kulujen seuranta"

#: app/templates/mileage/gps.html:43
#, fuzzy
msgid "Track ID"
msgstr "Seurattu"

#: app/templates/mileage/gps.html:44 app/templates/mileage/gps.html:82
#, fuzzy
msgid "Idle"
msgstr "Otsikko"

#: app/templates/mileage/gps.html:47
msgid "Distance (km)"
msgstr ""

#: app/templates/mileage/gps.html:48
msgid "Distance (miles)"
msgstr ""

#: app/templates/mileage/gps.html:82
#, fuzzy
msgid "Tracking"
msgstr "Ajan seuranta"

#: app/templates/mileage/gps.html:125
#, fuzzy
msgid "GPS tracking started"
msgstr "Aloita ajan seuranta"

#: app/templates/mileage/gps.html:136
#, fuzzy
msgid "Track point added"
msgstr "Seuraa maksua"

#: app/templates/mileage/gps.html:151
#, fuzzy
msgid "GPS tracking stopped"
msgstr "Aloita ajan seuranta"

#: app/templates/mileage/gps.html:165
#, fuzzy
msgid "Expense created"
msgstr "Kulutus hylätty"

#: app/templates/mileage/list.html:59
msgid "Filter Mileage"
msgstr "Suodattimen kilometrimäärä"

#: app/templates/mileage/list.html:61 app/templates/per_diem/list.html:49
#: app/templates/timer/time_entries_overview.html:33
msgid "Exports use current filters"
msgstr ""

#: app/templates/mileage/list.html:78
msgid "Purpose, location..."
msgstr "Tarkoitus, sijainti..."

#: app/templates/mileage/view.html:247
msgid "Optional approval notes..."
msgstr "Valinnaiset hyväksymistiedot..."

#: app/templates/mileage/view.html:256 app/templates/per_diem/view.html:103
msgid "Rejection reason (required)"
msgstr "Hylkäämisen syy (pakollinen)"

#: app/templates/partials/_bottom_nav.html:24
#, fuzzy
msgid "More navigation"
msgstr "Mobiilinavigointi"

#: app/templates/partials/_bottom_nav.html:59
#, fuzzy
msgid "Main"
msgstr "Sähköposti"

#: app/templates/partials/_command_palette.html:40
msgid "Type a command or search..."
msgstr "Kirjoita komento tai hae..."

#: app/templates/payment_gateways/create.html:3
#: app/templates/payment_gateways/create.html:8
msgid "Configure Payment Gateway"
msgstr ""

#: app/templates/payment_gateways/create.html:9
msgid "Set up payment processing for online invoice payments"
msgstr ""

#: app/templates/payment_gateways/create.html:11
msgid "Back to Gateways"
msgstr ""

#: app/templates/payment_gateways/create.html:20
msgid "Gateway Name"
msgstr ""

#: app/templates/payment_gateways/create.html:21
msgid "e.g., Stripe Production"
msgstr ""

#: app/templates/payment_gateways/create.html:22
msgid "A descriptive name for this gateway configuration"
msgstr ""

#: app/templates/payment_gateways/create.html:28
msgid "Select provider..."
msgstr ""

#: app/templates/payment_gateways/create.html:36
msgid "Stripe Configuration"
msgstr ""

#: app/templates/payment_gateways/create.html:41
msgid "Your Stripe secret key"
msgstr ""

#: app/templates/payment_gateways/create.html:44
msgid "Publishable Key"
msgstr ""

#: app/templates/payment_gateways/create.html:46
msgid "Your Stripe publishable key"
msgstr ""

#: app/templates/payment_gateways/create.html:51
msgid "Webhook signing secret for verifying webhook events"
msgstr ""

#: app/templates/payment_gateways/create.html:57
msgid "PayPal Configuration"
msgstr ""

#: app/templates/payment_gateways/create.html:73
#: app/templates/payment_gateways/list.html:50
msgid "Test Mode"
msgstr ""

#: app/templates/payment_gateways/create.html:75
msgid "Enable test mode for development and testing"
msgstr ""

#: app/templates/payment_gateways/create.html:80
msgid "Save Gateway"
msgstr ""

#: app/templates/payment_gateways/list.html:28
#: app/templates/payment_gateways/list.html:48
msgid "Mode"
msgstr ""

#: app/templates/payment_gateways/list.html:52
msgid "Production"
msgstr ""

#: app/templates/payment_gateways/list.html:70
msgid "Add Gateway"
msgstr ""

#: app/templates/payment_gateways/list.html:74
msgid "No Payment Gateways"
msgstr ""

#: app/templates/payment_gateways/list.html:75
msgid "Configure a payment gateway to enable online invoice payments."
msgstr ""

#: app/templates/payment_gateways/pay.html:15
msgid "Amount Due"
msgstr ""

#: app/templates/payment_gateways/pay.html:31
msgid "You will be redirected to a secure payment page to complete your payment."
msgstr ""

#: app/templates/payment_gateways/pay.html:37
msgid "Continue to Payment"
msgstr ""

#: app/templates/payment_gateways/pay.html:46
msgid "Payment gateway not yet supported. Please contact support."
msgstr ""

#: app/templates/payments/create.html:7
msgid "Record New Payment"
msgstr "Tallenna uusi maksu"

#: app/templates/payments/list.html:24 app/templates/reports/index.html:38
msgid "Total Payments"
msgstr "Maksut yhteensä"

#: app/templates/payments/list.html:37 app/templates/reports/index.html:54
msgid "Gateway Fees"
msgstr "Yhdyskäytävämaksut"

#: app/templates/payments/list.html:45
msgid "Filter Payments"
msgstr "Suodata maksut"

#: app/templates/payments/list.html:141
#, fuzzy
msgid "ID"
msgstr "Maksettu"

#: app/templates/payments/list.html:222
msgid "Delete Selected Payments"
msgstr "Poista valitut maksut"

#: app/templates/payments/list.html:242
msgid "Change Status for Selected Payments"
msgstr "Muuta valittujen maksujen tilaa"

#: app/templates/payments/view.html:151
msgid "Related Invoice"
msgstr "Asiaan liittyvä lasku"

#: app/templates/per_diem/form.html:35
msgid "e.g., Business trip to Berlin"
msgstr "esim. työmatka Berliiniin"

#: app/templates/per_diem/form.html:63 app/templates/per_diem/rate_form.html:41
msgid "e.g., DE, US, GB"
msgstr "esim. DE, US, GB"

#: app/templates/per_diem/form.html:74 app/templates/per_diem/rate_form.html:52
msgid "e.g., Berlin"
msgstr "esim Berliini"

#: app/templates/per_diem/list.html:47
msgid "Filter Claims"
msgstr "Suodata väitteet"

#: app/templates/per_diem/list.html:152
msgid "Delete Selected Claims"
msgstr "Poista valitut vaatimukset"

#: app/templates/per_diem/list.html:172
msgid "Change Status for Selected Claims"
msgstr "Muuta valittujen vaatimusten tilaa"

#: app/templates/per_diem/rate_form.html:162
msgid "Additional notes about this rate..."
msgstr "Lisähuomautuksia tästä hinnasta..."

#: app/templates/per_diem/rates_list.html:110
#: app/templates/per_diem/rates_list.html:121
msgid "Are you sure you want to delete this per diem rate?"
msgstr "Haluatko varmasti poistaa tämän päivärahan?"

#: app/templates/per_diem/rates_list.html:111
msgid "Delete Per Diem Rate"
msgstr "Poista päivärahoitus"

#: app/templates/project_templates/create.html:3
#: app/templates/project_templates/create.html:8
msgid "Create Project Template"
msgstr ""

#: app/templates/project_templates/create.html:9
msgid "Create a reusable template for quick project setup"
msgstr ""

#: app/templates/project_templates/create.html:11
msgid "Back to Templates"
msgstr ""

#: app/templates/project_templates/create.html:21
msgid "e.g., Web Development Project"
msgstr ""

#: app/templates/project_templates/create.html:26
msgid "Describe what this template is used for..."
msgstr ""

#: app/templates/project_templates/create.html:31
msgid "e.g., Web Development, Marketing"
msgstr ""

#: app/templates/project_templates/create.html:36
#: app/templates/timer/calendar.html:193
msgid "Comma-separated tags"
msgstr ""

#: app/templates/project_templates/create.html:41
#: app/templates/project_templates/edit.html:41
#: app/templates/project_templates/view.html:36
msgid "Project Configuration"
msgstr ""

#: app/templates/project_templates/create.html:47
#: app/templates/project_templates/edit.html:47
#: app/templates/projects/create.html:66
msgid "Billable Project"
msgstr "Laskutettava projekti"

#: app/templates/project_templates/create.html:57
#: app/templates/project_templates/create.html:87
#: app/templates/project_templates/edit.html:57
#: app/templates/project_templates/edit.html:90
#: app/templates/project_templates/edit.html:116
#: app/templates/project_templates/view.html:50
#: app/templates/recurring_tasks/form.html:101
#: app/templates/tasks/create.html:98 app/templates/tasks/edit.html:106
msgid "Estimated Hours"
msgstr "Arvioidut tunnit"

#: app/templates/project_templates/create.html:62
#: app/templates/project_templates/edit.html:62
#: app/templates/project_templates/view.html:56
#: app/templates/projects/create.html:85 app/templates/projects/edit.html:78
msgid "Budget Amount"
msgstr "Budjetin summa"

#: app/templates/project_templates/create.html:69
#: app/templates/project_templates/create_project.html:48
#: app/templates/project_templates/edit.html:69
#: app/templates/project_templates/view.html:65
msgid "Template Tasks"
msgstr ""

#: app/templates/project_templates/create.html:70
#: app/templates/project_templates/edit.html:70
msgid "Tasks will be created when a project is created from this template"
msgstr ""

#: app/templates/project_templates/create.html:75
#: app/templates/project_templates/edit.html:78
#: app/templates/project_templates/edit.html:104
#: app/templates/tasks/create.html:26 app/templates/tasks/edit.html:31
msgid "Task Name"
msgstr ""

#: app/templates/project_templates/create.html:94
#: app/templates/project_templates/edit.html:124
msgid "Add Task"
msgstr ""

#: app/templates/project_templates/create.html:101
#: app/templates/project_templates/edit.html:131
msgid "Make this template public (visible to all users)"
msgstr ""

#: app/templates/project_templates/create_project.html:4
#: app/templates/project_templates/create_project.html:9
msgid "Create Project from Template"
msgstr ""

#: app/templates/project_templates/create_project.html:10
msgid "Using template:"
msgstr ""

#: app/templates/project_templates/create_project.html:12
#: app/templates/project_templates/edit.html:11
msgid "Back to Template"
msgstr ""

#: app/templates/project_templates/create_project.html:28
msgid "Leave empty to use template name"
msgstr ""

#: app/templates/project_templates/create_project.html:33
msgid "Override Settings (Optional)"
msgstr ""

#: app/templates/project_templates/create_project.html:40
#: app/templates/projects/create.html:27 app/templates/projects/edit.html:26
#: app/templates/projects/view.html:104
msgid "Project Code"
msgstr "Projektikoodi"

#: app/templates/project_templates/create_project.html:49
msgid "The following tasks will be created:"
msgstr ""

#: app/templates/project_templates/create_project.html:67
#: app/templates/project_templates/list.html:85
#: app/templates/project_templates/view.html:21
#: app/templates/projects/create.html:3 app/templates/projects/create.html:8
#: app/templates/projects/create.html:138 app/templates/quotes/accept.html:41
msgid "Create Project"
msgstr "Luo projekti"

#: app/templates/project_templates/edit.html:3
#: app/templates/project_templates/edit.html:8
msgid "Edit Project Template"
msgstr ""

#: app/templates/project_templates/edit.html:94
#: app/templates/project_templates/edit.html:162
msgid "Remove Task"
msgstr ""

#: app/templates/project_templates/list.html:33
msgid "Show Public Templates"
msgstr ""

#: app/templates/project_templates/list.html:74
msgid "uses"
msgstr ""

#: app/templates/project_templates/list.html:78
#: app/templates/project_templates/view.html:11
#: app/templates/reports/builder.html:189
msgid "Public"
msgstr ""

#: app/templates/project_templates/list.html:124
msgid "No Templates Found"
msgstr ""

#: app/templates/project_templates/list.html:125
msgid "Create your first project template to quickly set up new projects with pre-configured settings and tasks."
msgstr ""

#: app/templates/project_templates/view.html:3
msgid "Project Template"
msgstr ""

#: app/templates/project_templates/view.html:91
msgid "Template Info"
msgstr ""

#: app/templates/project_templates/view.html:98
msgid "Usage Count"
msgstr ""

#: app/templates/project_templates/view.html:103
msgid "Last Used"
msgstr ""

#: app/templates/projects/_kanban_tailwind.html:4
msgid "Kanban board columns"
msgstr "Kanban-taulupylväät"

#: app/templates/projects/_kanban_tailwind.html:16
msgid "Add task to this column"
msgstr ""

#: app/templates/projects/_kanban_tailwind.html:20
msgid "Edit swimlane"
msgstr "Muokkaa uimarataa"

#: app/templates/projects/_kanban_tailwind.html:26
msgid "Column"
msgstr "Sarake"

#: app/templates/projects/_projects_list.html:9
#: app/templates/projects/list.html:90
msgid "List View"
msgstr "Luettelonäkymä"

#: app/templates/projects/_projects_list.html:12
#: app/templates/projects/list.html:93
msgid "Grid View"
msgstr "Ruudukkonäkymä"

#: app/templates/projects/_projects_list.html:102
#: app/templates/projects/list.html:183
#, fuzzy
msgid "Rate"
msgstr "Päivämäärä"

#: app/templates/projects/_projects_list.html:152
#: app/templates/projects/edit.html:3 app/templates/projects/edit.html:8
#: app/templates/projects/list.html:234 app/templates/projects/view.html:18
msgid "Edit Project"
msgstr "Muokkaa projektia"

#: app/templates/projects/add_cost.html:3
#: app/templates/projects/add_cost.html:13
#: app/templates/projects/add_cost.html:101
#, fuzzy
msgid "Add Cost"
msgstr "Lisää huomautus"

#: app/templates/projects/add_cost.html:20
#, fuzzy
msgid "Add Cost to Project"
msgstr "Takaisin projektiin"

#: app/templates/projects/add_cost.html:30
#: app/templates/projects/edit_cost.html:37
#, fuzzy
msgid "e.g., Travel expenses to client site"
msgstr "esim. matkustaa asiakaskokoukseen"

#: app/templates/projects/add_cost.html:31
#: app/templates/projects/edit_cost.html:38
#, fuzzy
msgid "Brief description of the cost"
msgstr "Lyhyt kuvaus tästä kategoriasta..."

#: app/templates/projects/add_cost.html:39
#: app/templates/projects/edit_cost.html:46
#, fuzzy
msgid "Select category"
msgstr "Luokka"

#: app/templates/projects/add_cost.html:41
#: app/templates/projects/edit_cost.html:48
#, fuzzy
msgid "Materials"
msgstr "Materiaali"

#: app/templates/projects/add_cost.html:44
#: app/templates/projects/edit_cost.html:51
#, fuzzy
msgid "Software/Licenses"
msgstr "esim. ohjelmistolisenssi"

#: app/templates/projects/add_cost.html:78
#: app/templates/projects/edit_cost.html:85
#, fuzzy
msgid "Additional details about this cost"
msgstr "Lisätietoja tästä säädöstä"

#: app/templates/projects/add_cost.html:87
#: app/templates/projects/edit_cost.html:94
#, fuzzy
msgid "Billable to client"
msgstr "Takaisin asiakkaalle"

#: app/templates/projects/add_cost.html:90
#: app/templates/projects/edit_cost.html:97
msgid "If checked, this cost will be included in invoices"
msgstr ""

#: app/templates/projects/add_good.html:6
msgid "Add Extra Good"
msgstr "Lisää Extra Good"

#: app/templates/projects/add_good.html:7
msgid "Add a product or service to"
msgstr "Lisää tuote tai palvelu"

#: app/templates/projects/add_good.html:9
#: app/templates/projects/dashboard.html:9 app/templates/projects/edit.html:11
#: app/templates/projects/edit_good.html:9 app/templates/projects/goods.html:10
#: app/templates/projects/time_entries_overview.html:18
msgid "Back to Project"
msgstr "Takaisin projektiin"

#: app/templates/projects/add_good.html:40
#: app/templates/projects/edit_good.html:40
msgid "SKU/Product Code"
msgstr "SKU/tuotekoodi"

#: app/templates/projects/archive.html:24
msgid "What happens when you archive a project?"
msgstr "Mitä tapahtuu, kun arkistoit projektin?"

#: app/templates/projects/archive.html:26
msgid "The project will be hidden from active project lists"
msgstr "Projekti piilotetaan aktiivisten projektien luetteloista"

#: app/templates/projects/archive.html:27
msgid "No new time entries can be added to this project"
msgstr "Tähän projektiin ei voi lisätä uusia aikamerkintöjä"

#: app/templates/projects/archive.html:28
msgid "Existing data and time entries are preserved"
msgstr "Olemassa olevat tiedot ja aikamerkinnät säilyvät"

#: app/templates/projects/archive.html:29
msgid "You can unarchive the project later if needed"
msgstr "Voit tarvittaessa purkaa projektin arkistoinnin myöhemmin"

#: app/templates/projects/archive.html:41
msgid "Reason for Archiving"
msgstr "Syy arkistointiin"

#: app/templates/projects/archive.html:48
msgid "e.g., Project completed, Client contract ended, Project cancelled, etc."
msgstr "esim. projekti valmis, asiakassopimus päättynyt, projekti peruttu jne."

#: app/templates/projects/archive.html:51
msgid "Adding a reason helps with project organization and future reference."
msgstr "Syyn lisääminen helpottaa projektin organisointia ja tulevaa viittausta."

#: app/templates/projects/archive.html:58
msgid "Quick Select"
msgstr "Pikavalinta"

#: app/templates/projects/archive.html:61
msgid "Project completed successfully"
msgstr "Projekti suoritettu onnistuneesti"

#: app/templates/projects/archive.html:62
msgid "Project Completed"
msgstr "Projekti valmis"

#: app/templates/projects/archive.html:64
msgid "Client contract ended"
msgstr "Asiakassopimus päättyi"

#: app/templates/projects/archive.html:65 app/templates/projects/list.html:570
msgid "Contract Ended"
msgstr "Sopimus päättynyt"

#: app/templates/projects/archive.html:67
msgid "Project cancelled by client"
msgstr "Asiakas peruutti projektin"

#: app/templates/projects/archive.html:70
msgid "Project on hold indefinitely"
msgstr "Projekti keskeytetty toistaiseksi"

#: app/templates/projects/archive.html:71
msgid "On Hold"
msgstr "Pidossa"

#: app/templates/projects/archive.html:73
msgid "Maintenance period ended"
msgstr "Huoltojakso päättyi"

#: app/templates/projects/archive.html:74
msgid "Maintenance Ended"
msgstr "Huolto päättynyt"

#: app/templates/projects/archive.html:85
msgid "Archive Project"
msgstr "Arkistoprojekti"

#: app/templates/projects/create.html:9
msgid "Set up a new project to organize your work and track time effectively"
msgstr "Järjestä työsi ja seuraa aikaa tehokkaasti luomalla uusi projekti"

#: app/templates/projects/create.html:23
msgid "Enter a descriptive project name"
msgstr "Anna kuvaava projektin nimi"

#: app/templates/projects/create.html:24
msgid "Choose a clear, descriptive name that explains the project scope"
msgstr "Valitse selkeä, kuvaava nimi, joka selittää projektin laajuuden"

#: app/templates/projects/create.html:28 app/templates/projects/edit.html:27
msgid "Short code, e.g., ABC"
msgstr "Lyhyt koodi, esim. ABC"

#: app/templates/projects/create.html:29
msgid "Optional: Short tag shown on Kanban cards"
msgstr "Valinnainen: Lyhyt tunniste näkyy Kanban-korteissa"

#: app/templates/projects/create.html:45 app/templates/projects/edit.html:42
msgid "Create new client"
msgstr "Luo uusi asiakas"

#: app/templates/projects/create.html:56
msgid "Provide detailed information about the project, objectives, and deliverables..."
msgstr "Anna yksityiskohtaista tietoa projektista, tavoitteista ja suorituksista..."

#: app/templates/projects/create.html:59
msgid "Optional: Add context, objectives, or specific requirements for the project"
msgstr "Valinnainen: Lisää kontekstia, tavoitteita tai erityisiä vaatimuksia projektille"

#: app/templates/projects/create.html:68
msgid "Enable billing for this project"
msgstr "Ota tämän projektin laskutus käyttöön"

#: app/templates/projects/create.html:73 app/templates/projects/edit.html:67
msgid "Leave empty for non-billable projects"
msgstr "Jätä tyhjäksi ei-laskutettaville projekteille"

#: app/templates/projects/create.html:79
msgid "PO number, contract reference, etc."
msgstr "PO-numero, sopimusviite jne."

#: app/templates/projects/create.html:80
msgid "Optional: Add a reference number or identifier for billing purposes"
msgstr "Valinnainen: Lisää viitenumero tai tunniste laskutusta varten"

#: app/templates/projects/create.html:86 app/templates/projects/edit.html:79
msgid "e.g. 10000.00"
msgstr "esim. 10 000,00"

#: app/templates/projects/create.html:87
msgid "Optional: Set a total project budget to monitor spend"
msgstr "Valinnainen: Aseta projektin kokonaisbudjetti kulutuksen seurantaa varten"

#: app/templates/projects/create.html:90 app/templates/projects/edit.html:82
msgid "Alert Threshold (%)"
msgstr "Varoituskynnys (%)"

#: app/templates/projects/create.html:92
msgid "Notify when consumed budget exceeds this threshold"
msgstr "Ilmoita, kun kulutettu budjetti ylittää tämän kynnyksen"

#: app/templates/projects/create.html:97 app/templates/projects/edit.html:88
#: app/templates/tasks/create.html:128 app/templates/tasks/edit.html:136
msgid "Gantt color"
msgstr ""

#: app/templates/projects/create.html:102 app/templates/projects/edit.html:93
msgid "Optional: Color for this project on the Gantt chart. Pick or enter a hex code (e.g. #3b82f6)."
msgstr ""

#: app/templates/projects/create.html:109 app/templates/projects/edit.html:100
msgid "These custom fields are defined globally and available for all projects."
msgstr ""

#: app/templates/projects/create.html:146
msgid "Project Creation Tips"
msgstr "Vinkkejä projektin luomiseen"

#: app/templates/projects/create.html:148 app/templates/tasks/create.html:155
msgid "Clear Naming"
msgstr "Tyhjennä nimeäminen"

#: app/templates/projects/create.html:148
msgid "Use descriptive names that clearly indicate the project's purpose"
msgstr "Käytä kuvaavia nimiä, jotka osoittavat selvästi projektin tarkoituksen"

#: app/templates/projects/create.html:149
msgid "Billing Setup"
msgstr "Laskutusasetukset"

#: app/templates/projects/create.html:149
msgid "Set appropriate hourly rates based on project complexity and client budget"
msgstr "Aseta sopivat tuntihinnat projektin monimutkaisuuden ja asiakkaan budjetin mukaan"

#: app/templates/projects/create.html:150
msgid "Detailed Description"
msgstr "Yksityiskohtainen kuvaus"

#: app/templates/projects/create.html:150
msgid "Include project objectives, deliverables, and key requirements"
msgstr "Sisällytä projektin tavoitteet, suoritteet ja keskeiset vaatimukset"

#: app/templates/projects/create.html:151
msgid "Client Selection"
msgstr "Asiakkaan valinta"

#: app/templates/projects/create.html:151
msgid "Choose the right client to ensure proper project organization"
msgstr "Valitse oikea asiakas varmistaaksesi oikean projektin organisoinnin"

#: app/templates/projects/create.html:437
#: app/templates/projects/create.html:498 app/templates/reports/index.html:527
msgid "Creating..."
msgstr "Luodaan..."

#: app/templates/projects/create.html:517
msgid "Could not create client. Please try again."
msgstr "Asiakasta ei voitu luoda. Yritä uudelleen."

#: app/templates/projects/create.html:526
#: app/templates/projects/create.html:547
msgid "Client created"
msgstr "Asiakas luotu"

#: app/templates/projects/create.html:551
msgid "Network error while creating client"
msgstr "Verkkovirhe asiakasta luotaessa"

#: app/templates/projects/dashboard.html:19
msgid "Project Dashboard & Analytics"
msgstr "Project Dashboard & Analytics"

#: app/templates/projects/dashboard.html:27 app/templates/projects/view.html:13
msgid "Entries Overview"
msgstr ""

#: app/templates/projects/dashboard.html:33 app/templates/projects/view.html:41
msgid "Budget Analysis"
msgstr "Budjettianalyysi"

#: app/templates/projects/dashboard.html:37
msgid "All Time"
msgstr "Kaikki aika"

#: app/templates/projects/dashboard.html:38
msgid "Last 7 Days"
msgstr "Viimeiset 7 päivää"

#: app/templates/projects/dashboard.html:39
msgid "Last 30 Days"
msgstr "Viimeiset 30 päivää"

#: app/templates/projects/dashboard.html:40
msgid "Last 3 Months"
msgstr "Viimeiset 3 kuukautta"

#: app/templates/projects/dashboard.html:41
msgid "Last Year"
msgstr "Viime vuonna"

#: app/templates/projects/dashboard.html:57
msgid "estimated"
msgstr "arvioitu"

#: app/templates/projects/dashboard.html:71
#: app/templates/projects/view.html:247
msgid "Budget Used"
msgstr "Käytetty budjetti"

#: app/templates/projects/dashboard.html:75
msgid "of budget"
msgstr "budjetista"

#: app/templates/projects/dashboard.html:89
msgid "Tasks Complete"
msgstr "Tehtävät suoritettu"

#: app/templates/projects/dashboard.html:92
msgid "completion"
msgstr "valmistuminen"

#: app/templates/projects/dashboard.html:105
msgid "Team Members"
msgstr "Joukkueen jäsenet"

#: app/templates/projects/dashboard.html:107
msgid "contributing"
msgstr "myötävaikuttaa"

#: app/templates/projects/dashboard.html:122
msgid "Budget vs. Actual"
msgstr "Budjetti vs. todellinen"

#: app/templates/projects/dashboard.html:144
msgid "No budget set for this project"
msgstr "Tälle projektille ei ole asetettu budjettia"

#: app/templates/projects/dashboard.html:154
msgid "Task Status Distribution"
msgstr "Tehtävän tilan jakelu"

#: app/templates/projects/dashboard.html:172
msgid "No tasks created yet"
msgstr "Tehtäviä ei ole vielä luotu"

#: app/templates/projects/dashboard.html:185
msgid "Team Member Contributions"
msgstr "Ryhmän jäsenten panokset"

#: app/templates/projects/dashboard.html:209
msgid "No time entries recorded yet"
msgstr "Aikamerkintöjä ei ole vielä tallennettu"

#: app/templates/projects/dashboard.html:219
msgid "Time Tracking Timeline"
msgstr "Aikaseurannan aikajana"

#: app/templates/projects/dashboard.html:229
msgid "Select a time period to view timeline"
msgstr "Valitse ajanjakso nähdäksesi aikajanan"

#: app/templates/projects/dashboard.html:277
msgid "Team Member Details"
msgstr "Joukkueen jäsentiedot"

#: app/templates/projects/dashboard.html:294
msgid "tasks"
msgstr "tehtäviä"

#: app/templates/projects/dashboard.html:312
msgid "No team members have logged time yet"
msgstr "Yksikään tiimin jäsen ei ole vielä kirjannut aikaa"

#: app/templates/projects/dashboard.html:325
msgid "Attention Required"
msgstr "Huomiota vaaditaan"

#: app/templates/projects/dashboard.html:327
msgid "task(s) are overdue"
msgstr "tehtävä(t) on myöhässä"

#: app/templates/projects/edit_cost.html:3
#: app/templates/projects/edit_cost.html:13
#: app/templates/projects/edit_cost.html:20
#, fuzzy
msgid "Edit Cost"
msgstr "Yksikköhinta"

#: app/templates/projects/edit_cost.html:27
msgid "This cost has been invoiced. Changes may affect existing invoices."
msgstr ""

#: app/templates/projects/edit_cost.html:108
#, fuzzy
msgid "Update Cost"
msgstr "Päivitä roolit"

#: app/templates/projects/edit_good.html:6
msgid "Edit Extra Good"
msgstr "Edit Extra Good"

#: app/templates/projects/goods.html:7
msgid "Manage products and services for this project"
msgstr "Hallinnoi tämän projektin tuotteita ja palveluita"

#: app/templates/projects/goods.html:17
msgid "Total Goods"
msgstr "Tavarat yhteensä"

#: app/templates/projects/goods.html:25
msgid "Billable Amount"
msgstr "Laskutettava summa"

#: app/templates/projects/goods.html:29
msgid "Categories"
msgstr "Luokat"

#: app/templates/projects/goods.html:68
msgid "Invoiced"
msgstr "Laskutettu"

#: app/templates/projects/goods.html:72
#: app/templates/reports/week_in_review.html:34
#: app/templates/timer/time_entries_overview.html:114
#: app/templates/timer/view_timer.html:130
msgid "Non-billable"
msgstr "Ei laskutettavissa"

#: app/templates/projects/goods.html:81
msgid "Are you sure you want to delete this extra good?"
msgstr "Haluatko varmasti poistaa tämän ylimääräisen tuotteen?"

#: app/templates/projects/goods.html:81
msgid "Delete Extra Good"
msgstr "Poista Extra Good"

#: app/templates/projects/goods.html:98
msgid "No extra goods found for this project"
msgstr "Tähän projektiin ei löytynyt ylimääräisiä tuotteita"

#: app/templates/projects/goods.html:99
msgid "Add Your First Good"
msgstr "Lisää ensimmäinen tavarasi"

#: app/templates/projects/goods.html:105
msgid "Breakdown by Category"
msgstr "Jaottelu kategorioiden mukaan"

#: app/templates/projects/goods.html:111
msgid "item(s)"
msgstr "tuote(t)"

#: app/templates/projects/list.html:19
msgid "Filter Projects"
msgstr "Suodata projektit"

#: app/templates/projects/time_entries_overview.html:10
#: app/templates/projects/time_entries_overview.html:15
#: app/templates/timer/time_entries_overview.html:5
#: app/templates/timer/time_entries_overview.html:14
msgid "Time Entries Overview"
msgstr ""

#: app/templates/projects/time_entries_overview.html:24
msgid "Days"
msgstr ""

#: app/templates/projects/time_entries_overview.html:48
msgid "No time entries found for this project in the selected period."
msgstr ""

#: app/templates/projects/view.html:54
msgid "Mark project as Inactive?"
msgstr "Merkitäänkö projekti ei-aktiiviseksi?"

#: app/templates/projects/view.html:54
msgid "Change Project Status"
msgstr "Muuta projektin tilaa"

#: app/templates/projects/view.html:61
msgid "Activate project?"
msgstr "Aktivoi projekti?"

#: app/templates/projects/view.html:61
msgid "Activate Project"
msgstr "Aktivoi projekti"

#: app/templates/projects/view.html:72
msgid "Archive"
msgstr "Arkisto"

#: app/templates/projects/view.html:75
msgid "Unarchive project?"
msgstr "Poistetaanko projekti arkistosta?"

#: app/templates/projects/view.html:75
msgid "Unarchive Project"
msgstr "Poista projekti arkistosta"

#: app/templates/projects/view.html:75 app/templates/projects/view.html:78
msgid "Unarchive"
msgstr "Poista arkistosta"

#: app/templates/projects/view.html:87
msgid "Delete Project"
msgstr "Poista projekti"

#: app/templates/projects/view.html:133
msgid "Archive Information"
msgstr "Arkiston tiedot"

#: app/templates/projects/view.html:136
msgid "Archived on:"
msgstr "Arkistoitu:"

#: app/templates/projects/view.html:141
msgid "Archived by:"
msgstr "Arkistointi:"

#: app/templates/projects/view.html:147
msgid "Reason:"
msgstr "Syy:"

#: app/templates/projects/view.html:208
msgid "Quick Links"
msgstr ""

#: app/templates/projects/view.html:230
msgid "Budget Overview"
msgstr "Budjetin yleiskatsaus"

#: app/templates/projects/view.html:279
msgid "Over"
msgstr "Yli"

#: app/templates/projects/view.html:304
msgid "View Full Budget Analysis"
msgstr "Näytä koko budjettianalyysi"

#: app/templates/projects/view.html:352
msgid "e.g., Contract, Specification, etc."
msgstr ""

#: app/templates/projects/view.html:424
msgid "Tasks for this project"
msgstr "Tehtävät tälle projektille"

#: app/templates/projects/view.html:431 app/templates/projects/view.html:458
#: app/templates/timer/calendar.html:854
msgid "Due"
msgstr "Erääntynyt"

#: app/templates/projects/view.html:432 app/templates/projects/view.html:466
#: app/templates/tasks/_kanban.html:1324
#: app/templates/tasks/_tasks_list.html:36
#: app/templates/tasks/_tasks_list.html:86 app/templates/tasks/edit.html:172
#: app/templates/tasks/view.html:154
msgid "Estimated"
msgstr "Arvioitu"

#: app/templates/projects/view.html:485
msgid "No tasks for this project."
msgstr "Ei tehtäviä tälle projektille."

#: app/templates/quotes/_edit_quote_form_scripts.html:16
#: app/templates/quotes/edit.html:82 app/templates/quotes/edit.html:154
#: app/templates/quotes/edit.html:212
#, fuzzy
msgid "Move up"
msgstr "siirretty"

#: app/templates/quotes/_edit_quote_form_scripts.html:17
#: app/templates/quotes/edit.html:83 app/templates/quotes/edit.html:155
#: app/templates/quotes/edit.html:213
#, fuzzy
msgid "Move down"
msgstr "siirretty"

#: app/templates/quotes/_edit_quote_form_scripts.html:166
#: app/templates/quotes/edit.html:87
#, fuzzy
msgid "Manual entry"
msgstr "Manuaalinen syöttö"

#: app/templates/quotes/_edit_quote_form_scripts.html:167
#: app/templates/quotes/edit.html:88
#, fuzzy
msgid "From stock"
msgstr "Alhainen varasto"

#: app/templates/quotes/_quotes_list.html:12 app/templates/quotes/list.html:366
#: app/templates/quotes/view.html:24 app/templates/timer/calendar.html:236
#: app/templates/timer/edit_timer.html:389
#: app/templates/timer/edit_timer.html:510
msgid "Duplicate"
msgstr "Kopioi"

#: app/templates/quotes/_quotes_list.html:13 app/templates/quotes/list.html:367
msgid "Mark as Sent"
msgstr "Merkitse lähetetyksi"

#: app/templates/quotes/_quotes_list.html:66 app/templates/quotes/list.html:83
#: app/templates/quotes/view.html:75
msgid "Accepted"
msgstr "Hyväksytty"

#: app/templates/quotes/_quotes_list.html:88
msgid "Create Your First Quote"
msgstr "Luo ensimmäinen lainaus"

#: app/templates/quotes/_quotes_list.html:92
msgid "Learn More"
msgstr "Lisätietoja"

#: app/templates/quotes/accept.html:11
msgid "Back to Quote"
msgstr "Takaisin lainaukseen"

#: app/templates/quotes/accept.html:42
msgid "Accepting this quote will create a new project with the budget from the quote."
msgstr "Tämän tarjouksen hyväksyminen luo uuden projektin tarjouksen budjetilla."

#: app/templates/quotes/accept.html:50
msgid "The project will be created with the budget from the quote"
msgstr "Projekti luodaan tarjouksen budjetilla"

#: app/templates/quotes/accept.html:55
msgid "Accept Quote & Create Project"
msgstr "Hyväksy tarjous ja luo projekti"

#: app/templates/quotes/create.html:5 app/templates/quotes/create.html:265
msgid "Create Quote"
msgstr "Luo tarjous"

#: app/templates/quotes/create.html:37 app/templates/quotes/edit.html:33
msgid "Quote title"
msgstr "Lainaus otsikko"

#: app/templates/quotes/create.html:42 app/templates/quotes/edit.html:47
msgid "Quote description"
msgstr "Lainauskuvaus"

#: app/templates/quotes/create.html:51 app/templates/quotes/edit.html:56
#, fuzzy
msgid "Quote line items"
msgstr "Lainauskohteet"

#: app/templates/quotes/create.html:54 app/templates/quotes/edit.html:59
msgid "Services, labor, and catalog lines"
msgstr ""

#: app/templates/quotes/create.html:57 app/templates/quotes/edit.html:62
#, fuzzy
msgid "Add line"
msgstr "Määräaika"

#: app/templates/quotes/create.html:62 app/templates/quotes/edit.html:67
#: app/templates/quotes/edit.html:86
#, fuzzy
msgid "Line type"
msgstr "Sisältötyyppi"

#: app/templates/quotes/create.html:63 app/templates/quotes/edit.html:68
#, fuzzy
msgid "Stock"
msgstr "Alhainen varasto"

#: app/templates/quotes/create.html:73 app/templates/quotes/edit.html:120
#, fuzzy
msgid "Line items subtotal"
msgstr "Kohteet Välisumma"

#: app/templates/quotes/create.html:83 app/templates/quotes/edit.html:131
#, fuzzy
msgid "Costs"
msgstr "Maksaa"

#: app/templates/quotes/create.html:86 app/templates/quotes/edit.html:134
#, fuzzy
msgid "One-off costs (e.g. travel, materials)"
msgstr "esim. MATKAT, Ateriat"

#: app/templates/quotes/create.html:89 app/templates/quotes/edit.html:137
#, fuzzy
msgid "Add cost"
msgstr "Lisää huomautus"

#: app/templates/quotes/create.html:104 app/templates/quotes/edit.html:177
#, fuzzy
msgid "Costs subtotal"
msgstr "Kohteet Välisumma"

#: app/templates/quotes/create.html:114 app/templates/quotes/edit.html:188
#, fuzzy
msgid "Extra goods"
msgstr "Lisätavarat"

#: app/templates/quotes/create.html:117 app/templates/quotes/edit.html:191
#, fuzzy
msgid "Products, licenses, hardware"
msgstr "Tuotteet, materiaalit, lisenssit ja muut tavarat"

#: app/templates/quotes/create.html:120 app/templates/quotes/edit.html:194
#, fuzzy
msgid "Add good"
msgstr "Lisää Hyvä"

#: app/templates/quotes/create.html:136 app/templates/quotes/edit.html:235
#, fuzzy
msgid "Goods subtotal"
msgstr "Tavaran välisumma"

#: app/templates/quotes/create.html:144 app/templates/quotes/edit.html:243
#, fuzzy
msgid "Subtotal (all quote lines)"
msgstr "Lainauksia yhteensä"

#: app/templates/quotes/create.html:152 app/templates/quotes/edit.html:251
msgid "Financial Details"
msgstr "Taloudelliset tiedot"

#: app/templates/quotes/create.html:182 app/templates/quotes/edit.html:281
msgid "Select payment terms"
msgstr "Valitse maksuehdot"

#: app/templates/quotes/create.html:183 app/templates/quotes/edit.html:282
msgid "Due on Receipt"
msgstr "Erääntyy kuitti"

#: app/templates/quotes/create.html:191 app/templates/quotes/edit.html:290
msgid "Or enter custom payment terms"
msgstr "Tai syötä mukautetut maksuehdot"

#: app/templates/quotes/create.html:193 app/templates/quotes/edit.html:292
msgid "Use custom terms"
msgstr "Käytä mukautettuja termejä"

#: app/templates/quotes/create.html:201 app/templates/quotes/edit.html:300
#: app/templates/quotes/pdf_default.html:123 app/templates/quotes/view.html:135
msgid "Discount"
msgstr "Alennus"

#: app/templates/quotes/create.html:205 app/templates/quotes/edit.html:304
msgid "Discount Type"
msgstr "Alennustyyppi"

#: app/templates/quotes/create.html:207 app/templates/quotes/edit.html:306
msgid "No Discount"
msgstr "Ei alennusta"

#: app/templates/quotes/create.html:208 app/templates/quotes/edit.html:307
msgid "Percentage (%)"
msgstr "prosenttiosuus (%)"

#: app/templates/quotes/create.html:209 app/templates/quotes/edit.html:308
msgid "Fixed Amount"
msgstr "Kiinteä määrä"

#: app/templates/quotes/create.html:213 app/templates/quotes/edit.html:312
msgid "Discount Amount"
msgstr "Alennussumma"

#: app/templates/quotes/create.html:214 app/templates/quotes/edit.html:313
msgid "0.00"
msgstr "0,00"

#: app/templates/quotes/create.html:219 app/templates/quotes/edit.html:318
msgid "Coupon Code"
msgstr "Kuponkikoodi"

#: app/templates/quotes/create.html:220 app/templates/quotes/edit.html:319
msgid "Optional coupon code"
msgstr "Valinnainen kuponkikoodi"

#: app/templates/quotes/create.html:223 app/templates/quotes/edit.html:322
msgid "Discount Reason"
msgstr "Alennuksen syy"

#: app/templates/quotes/create.html:224 app/templates/quotes/edit.html:323
msgid "Reason for discount"
msgstr "Syy alennukseen"

#: app/templates/quotes/create.html:232
msgid "Approval Workflow"
msgstr "Hyväksynnän työnkulku"

#: app/templates/quotes/create.html:237
msgid "Requires approval before sending"
msgstr "Vaatii hyväksynnän ennen lähettämistä"

#: app/templates/quotes/create.html:245 app/templates/quotes/edit.html:331
msgid "Additional Information"
msgstr "Lisätietoja"

#: app/templates/quotes/create.html:249 app/templates/quotes/edit.html:335
msgid "Internal notes (not visible to client)"
msgstr "Sisäiset huomautukset (ei näy asiakkaalle)"

#: app/templates/quotes/create.html:250 app/templates/quotes/edit.html:336
msgid "These notes are only visible to your team"
msgstr "Nämä muistiinpanot näkyvät vain tiimillesi"

#: app/templates/quotes/create.html:253 app/templates/quotes/edit.html:339
#: app/templates/quotes/view.html:171
msgid "Terms and Conditions"
msgstr "Ehdot"

#: app/templates/quotes/create.html:254 app/templates/quotes/edit.html:340
msgid "Terms and conditions"
msgstr "Ehdot"

#: app/templates/quotes/create.html:255 app/templates/quotes/edit.html:341
msgid "These terms will be visible to the client"
msgstr "Nämä ehdot näkyvät asiakkaalle"

#: app/templates/quotes/edit.html:4 app/templates/quotes/view.html:19
msgid "Edit Quote"
msgstr "Muokkaa lainausta"

#: app/templates/quotes/edit.html:41
msgid "Client cannot be changed"
msgstr "Asiakasta ei voi vaihtaa"

#: app/templates/quotes/edit.html:351
msgid "Update Quote"
msgstr "Päivitä lainaus"

#: app/templates/quotes/list.html:21
msgid "Total Quotes"
msgstr "Lainauksia yhteensä"

#: app/templates/quotes/list.html:29
msgid "Acceptance Rate"
msgstr "Hyväksymisprosentti"

#: app/templates/quotes/list.html:33
msgid "Avg Quote Value"
msgstr "Keskimääräinen tarjouksen arvo"

#: app/templates/quotes/list.html:40
msgid "Quotes by Status"
msgstr "Lainaukset Statusin mukaan"

#: app/templates/quotes/list.html:51
msgid "Top Clients by Quotes"
msgstr "Parhaat asiakkaat lainausten mukaan"

#: app/templates/quotes/list.html:66
msgid "Filter Quotes"
msgstr "Suodata lainaukset"

#: app/templates/quotes/list.html:75
msgid "Search quotes..."
msgstr "Hae lainauksia..."

#: app/templates/quotes/list.html:366
msgid "Are you sure you want to duplicate"
msgstr "Haluatko varmasti kopioida"

#: app/templates/quotes/list.html:366 app/templates/quotes/list.html:368
msgid "quote(s)?"
msgstr "lainausmerkit)?"

#: app/templates/quotes/list.html:367
msgid "Are you sure you want to mark"
msgstr "Haluatko varmasti merkitä"

#: app/templates/quotes/list.html:367
msgid "quote(s) as sent?"
msgstr "lainaukset lähetettyinä?"

#: app/templates/quotes/pdf_default.html:54
#: app/utils/pdf_generator_fallback.py:531
msgid "QUOTE"
msgstr "LAINATA"

#: app/templates/quotes/pdf_default.html:56
msgid "Quote #"
msgstr "Lainaus #"

#: app/templates/quotes/pdf_default.html:68
msgid "Quote For"
msgstr "Lainaus For"

#: app/templates/quotes/pdf_default.html:134
msgid "Subtotal After Discount:"
msgstr "Välisumma alennuksen jälkeen:"

#: app/templates/quotes/pdf_default.html:156
#: app/utils/pdf_generator_fallback.py:647
msgid "Description:"
msgstr "Kuvaus:"

#: app/templates/quotes/view.html:149
msgid "Subtotal After Discount"
msgstr "Välisumma alennuksen jälkeen"

#: app/templates/quotes/view.html:198
msgid "Approval not yet requested"
msgstr "Hyväksyntää ei ole vielä pyydetty"

#: app/templates/quotes/view.html:206
msgid "Pending approval"
msgstr "Odottaa hyväksyntää"

#: app/templates/quotes/view.html:222
msgid "Rejected by"
msgstr "Hylkäsi"

#: app/templates/quotes/view.html:233
msgid "Request Approval Again"
msgstr "Pyydä hyväksyntää uudelleen"

#: app/templates/quotes/view.html:243
msgid "Send Quote"
msgstr "Lähetä tarjous"

#: app/templates/quotes/view.html:252
msgid "Are you sure you want to reject this quote?"
msgstr "Haluatko varmasti hylätä tämän lainauksen?"

#: app/templates/quotes/view.html:261 app/templates/quotes/view.html:578
msgid "Delete Quote"
msgstr "Poista lainaus"

#: app/templates/quotes/view.html:296
msgid "Internal comment (not visible to client)"
msgstr "Sisäinen kommentti (ei näy asiakkaalle)"

#: app/templates/quotes/view.html:320 app/templates/quotes/view.html:347
#: app/templates/quotes/view.html:380
msgid "Internal"
msgstr "Sisäinen"

#: app/templates/quotes/view.html:329 app/templates/quotes/view.html:354
msgid "Are you sure you want to delete this comment?"
msgstr "Haluatko varmasti poistaa tämän kommentin?"

#: app/templates/quotes/view.html:376
msgid "Write a reply..."
msgstr "Kirjoita vastaus..."

#: app/templates/quotes/view.html:395
msgid "No comments yet. Start the conversation by adding the first comment."
msgstr "Ei vielä kommentteja. Aloita keskustelu lisäämällä ensimmäinen kommentti."

#: app/templates/quotes/view.html:424
msgid "Sent At"
msgstr "Lähetetty klo"

#: app/templates/quotes/view.html:430
msgid "Accepted At"
msgstr "Hyväksytty klo"

#: app/templates/quotes/view.html:445
msgid "Send Quote via Email"
msgstr "Lähetä tarjous sähköpostitse"

#: app/templates/quotes/view.html:453
msgid "Recipient Email"
msgstr "Vastaanottajan sähköposti"

#: app/templates/quotes/view.html:461
#, python-format
msgid "Quote %(quote_number)s"
msgstr "Lainaus %(quote_number)s"

#: app/templates/quotes/view.html:465
msgid "Custom Message (Optional)"
msgstr "Muokattu viesti (valinnainen)"

#: app/templates/quotes/view.html:468
msgid "Add a custom message to the email..."
msgstr "Lisää mukautettu viesti sähköpostiin..."

#: app/templates/quotes/view.html:472
msgid "Attach PDF"
msgstr "Liitä PDF"

#: app/templates/quotes/view.html:542
msgid "Approve Quote"
msgstr "Hyväksy tarjous"

#: app/templates/quotes/view.html:546
msgid "Notes (Optional)"
msgstr "Huomautukset (valinnainen)"

#: app/templates/quotes/view.html:547
msgid "Add approval notes..."
msgstr "Lisää hyväksyntähuomautuksia..."

#: app/templates/quotes/view.html:560
msgid "Reject Quote Approval"
msgstr "Hylkää tarjouksen hyväksyminen"

#: app/templates/quotes/view.html:565
msgid "Please provide a reason for rejection..."
msgstr "Kerro hylkäämisen syy..."

#: app/templates/quotes/view.html:579
msgid "Are you sure you want to delete this quote? This action cannot be undone."
msgstr "Haluatko varmasti poistaa tämän lainauksen? Tätä toimintoa ei voi kumota."

#: app/templates/recurring_invoices/create.html:120
#: app/templates/recurring_invoices/list.html:15
msgid "Create Recurring Invoice"
msgstr "Luo toistuva lasku"

#: app/templates/recurring_invoices/edit.html:111
msgid "Update Recurring Invoice"
msgstr "Päivitä toistuva lasku"

#: app/templates/recurring_invoices/list.html:12
msgid "Automate invoice generation for subscription-based billing"
msgstr "Automatisoi laskujen luonti tilausperusteista laskutusta varten"

#: app/templates/recurring_invoices/list.html:26
#: app/templates/recurring_invoices/list.html:44
#: app/templates/recurring_tasks/form.html:58
#: app/templates/recurring_tasks/list.html:32
#: app/templates/recurring_tasks/list.html:56
#: app/templates/reports/index.html:483
#: app/templates/reports/schedule_form.html:44
#: app/templates/reports/scheduled.html:28
#: app/templates/reports/scheduled.html:58
msgid "Frequency"
msgstr "Taajuus"

#: app/templates/recurring_invoices/list.html:27
#: app/templates/recurring_invoices/list.html:49
#: app/templates/recurring_tasks/list.html:33
#: app/templates/recurring_tasks/list.html:64
#: app/templates/reports/scheduled.html:29
#: app/templates/reports/scheduled.html:61
msgid "Next Run"
msgstr "Seuraava juoksu"

#: app/templates/recurring_invoices/view.html:17
msgid "Generate Now"
msgstr "Luo nyt"

#: app/templates/recurring_invoices/view.html:22
#: app/templates/time_entry_templates/view.html:24
msgid "Template Details"
msgstr "Mallin tiedot"

#: app/templates/recurring_invoices/view.html:53
msgid "Invoice Settings"
msgstr "Laskuasetukset"

#: app/templates/recurring_invoices/view.html:92
msgid "Recently Generated Invoices"
msgstr "Äskettäin luodut laskut"

#: app/templates/recurring_tasks/form.html:4
msgid "Recurring Task"
msgstr ""

#: app/templates/recurring_tasks/form.html:8
#: app/templates/recurring_tasks/list.html:4
#: app/templates/recurring_tasks/list.html:8
#: app/templates/recurring_tasks/list.html:13
msgid "Recurring Tasks"
msgstr ""

#: app/templates/recurring_tasks/form.html:9
#: app/templates/recurring_tasks/form.html:14
#: app/templates/recurring_tasks/list.html:20
msgid "Create Recurring Task"
msgstr ""

#: app/templates/recurring_tasks/form.html:9
#: app/templates/recurring_tasks/form.html:14
msgid "Edit Recurring Task"
msgstr ""

#: app/templates/recurring_tasks/form.html:15
msgid "Set up automated task creation"
msgstr ""

#: app/templates/recurring_tasks/form.html:29
msgid "Task Name Template"
msgstr ""

#: app/templates/recurring_tasks/form.html:30
msgid "e.g., Weekly Team Meeting"
msgstr ""

#: app/templates/recurring_tasks/form.html:31
msgid "This will be used as the base name for created tasks"
msgstr ""

#: app/templates/recurring_tasks/form.html:55
msgid "Schedule"
msgstr ""

#: app/templates/recurring_tasks/form.html:62
#: app/templates/reports/index.html:487
#: app/templates/reports/schedule_form.html:49
msgid "Monthly"
msgstr ""

#: app/templates/recurring_tasks/form.html:63
msgid "Yearly"
msgstr ""

#: app/templates/recurring_tasks/form.html:68
msgid "Interval"
msgstr ""

#: app/templates/recurring_tasks/form.html:70
msgid "Repeat every N periods (e.g., every 2 weeks)"
msgstr ""

#: app/templates/recurring_tasks/form.html:74
msgid "Next Run Date"
msgstr ""

#: app/templates/recurring_tasks/form.html:81
msgid "Optional: Stop creating tasks after this date"
msgstr ""

#: app/templates/recurring_tasks/form.html:88
msgid "Task Settings"
msgstr ""

#: app/templates/recurring_tasks/form.html:106
#: app/templates/tasks/create.html:106 app/templates/tasks/edit.html:114
msgid "Assign To"
msgstr "Määritä"

#: app/templates/recurring_tasks/form.html:120
msgid "Auto-assign to creator"
msgstr ""

#: app/templates/recurring_tasks/list.html:14
msgid "Automated task creation templates"
msgstr ""

#: app/templates/recurring_tasks/list.html:68
#: app/templates/reports/scheduled.html:65
msgid "Not scheduled"
msgstr ""

#: app/templates/recurring_tasks/list.html:84
msgid "Are you sure you want to delete this recurring task?"
msgstr ""

#: app/templates/recurring_tasks/list.html:101
msgid "No recurring tasks"
msgstr ""

#: app/templates/recurring_tasks/list.html:102
msgid "Create recurring task templates to automatically generate tasks on a schedule."
msgstr ""

#: app/templates/reports/builder.html:4
#: app/templates/reports/custom_view.html:49
#: app/templates/reports/custom_view.html:97
msgid "Edit Report"
msgstr ""

#: app/templates/reports/builder.html:4
msgid "Custom Report Builder"
msgstr ""

#: app/templates/reports/builder.html:26
msgid "Unpaid time entries"
msgstr ""

#: app/templates/reports/builder.html:28
msgid "Time entries, unpaid only, last 30 days"
msgstr ""

#: app/templates/reports/builder.html:29
msgid "Data Sources"
msgstr ""

#: app/templates/reports/builder.html:38
msgid "Components"
msgstr ""

#: app/templates/reports/builder.html:40
#, fuzzy
msgid "Add table to report"
msgstr "Saatavilla olevat raportit"

#: app/templates/reports/builder.html:41 app/templates/reports/builder.html:407
msgid "Table"
msgstr ""

#: app/templates/reports/builder.html:43
#, fuzzy
msgid "Add chart to report"
msgstr "Vakioraportit"

#: app/templates/reports/builder.html:44 app/templates/reports/builder.html:408
#: app/templates/reports/custom_view.html:77
msgid "Chart"
msgstr ""

#: app/templates/reports/builder.html:46
msgid "Add doughnut chart to report"
msgstr ""

#: app/templates/reports/builder.html:47 app/templates/reports/builder.html:409
msgid "Doughnut Chart"
msgstr ""

#: app/templates/reports/builder.html:49
msgid "Add bar chart to report"
msgstr ""

#: app/templates/reports/builder.html:50 app/templates/reports/builder.html:410
msgid "Bar Chart"
msgstr ""

#: app/templates/reports/builder.html:52
#, fuzzy
msgid "Add summary to report"
msgstr "Yhteenvetoraportti"

#: app/templates/reports/builder.html:63
msgid "Report Canvas"
msgstr ""

#: app/templates/reports/builder.html:74
#, fuzzy
msgid "Report canvas"
msgstr "Kirkas kangas"

#: app/templates/reports/builder.html:76 app/templates/reports/builder.html:249
#: app/templates/reports/builder.html:400
#: app/templates/reports/builder.html:459
msgid "Drag data sources and components here to build your report"
msgstr ""

#: app/templates/reports/builder.html:103
msgid "Advanced Filters"
msgstr ""

#: app/templates/reports/builder.html:111
msgid "Unpaid Hours Only"
msgstr ""

#: app/templates/reports/builder.html:115
msgid "Unpaid = billable, not yet on any invoice."
msgstr ""

#: app/templates/reports/builder.html:124
msgid "Custom Field"
msgstr ""

#: app/templates/reports/builder.html:127
msgid "No Filter"
msgstr ""

#: app/templates/reports/builder.html:135
msgid "Field Value"
msgstr ""

#: app/templates/reports/builder.html:138
msgid "e.g., MM, PB"
msgstr ""

#: app/templates/reports/builder.html:140
msgid "Enter the value to filter by (e.g., salesman initial)"
msgstr ""

#: app/templates/reports/builder.html:154
msgid "Report Preview"
msgstr ""

#: app/templates/reports/builder.html:162
msgid "Loading preview..."
msgstr ""

#: app/templates/reports/builder.html:178
msgid "Save Report"
msgstr ""

#: app/templates/reports/builder.html:181
msgid "Report Name"
msgstr ""

#: app/templates/reports/builder.html:182
msgid "My Custom Report"
msgstr ""

#: app/templates/reports/builder.html:187
msgid "Private"
msgstr ""

#: app/templates/reports/builder.html:188
msgid "Team"
msgstr ""

#: app/templates/reports/builder.html:199
#: app/templates/reports/saved_views_list.html:47
msgid "Iterative Report Generation"
msgstr ""

#: app/templates/reports/builder.html:203
msgid "Generate one report per custom field value (e.g., one report per salesman)"
msgstr ""

#: app/templates/reports/builder.html:206
#: app/templates/reports/schedule_form.html:78
msgid "Custom Field Name"
msgstr ""

#: app/templates/reports/builder.html:208
msgid "Select Field"
msgstr ""

#: app/templates/reports/builder.html:214
msgid "Select the custom field to iterate over (e.g., \"salesman\")"
msgstr ""

#: app/templates/reports/builder.html:467
#: app/templates/reports/builder.html:689
msgid "Please select a data source first"
msgstr ""

#: app/templates/reports/builder.html:559
msgid "Failed to generate preview"
msgstr ""

#: app/templates/reports/builder.html:567
msgid "Unknown error occurred"
msgstr ""

#: app/templates/reports/builder.html:568
msgid "Error loading preview"
msgstr ""

#: app/templates/reports/builder.html:619
msgid "No data found for the selected filters"
msgstr ""

#: app/templates/reports/builder.html:681
msgid "Please enter a report name"
msgstr ""

#: app/templates/reports/builder.html:768
msgid "Report created successfully!"
msgstr ""

#: app/templates/reports/builder.html:769
msgid "Report updated successfully!"
msgstr ""

#: app/templates/reports/builder.html:790
msgid "Failed to save report"
msgstr ""

#: app/templates/reports/builder.html:804
msgid "Error saving report"
msgstr ""

#: app/templates/reports/custom_view.html:4
msgid "Custom Report"
msgstr ""

#: app/templates/reports/custom_view.html:26
msgid "Data Table"
msgstr ""

#: app/templates/reports/custom_view.html:52
msgid "No data found"
msgstr ""

#: app/templates/reports/custom_view.html:53
msgid "This report has no data matching the current filters. Try adjusting your date range or filters."
msgstr ""

#: app/templates/reports/custom_view.html:72
msgid "No summary data available."
msgstr ""

#: app/templates/reports/custom_view.html:81
msgid "No data available for chart."
msgstr ""

#: app/templates/reports/custom_view.html:92
msgid "No components configured"
msgstr ""

#: app/templates/reports/custom_view.html:94
msgid "This report has no components configured. Please edit the report to add components."
msgstr ""

#: app/templates/reports/export_form.html:9
#, fuzzy
msgid "Export Time Entries"
msgstr "Viimeaikaiset aikamerkinnät"

#: app/templates/reports/export_form.html:24
msgid "Use the filters below to customize your export. Choose CSV or Excel format. All filters are optional - leave blank to include all entries within the date range."
msgstr ""

#: app/templates/reports/export_form.html:36
#: app/templates/reports/export_form.html:38
#, fuzzy
msgid "Export format"
msgstr "Vie muoto"

#: app/templates/reports/export_form.html:175
msgid "e.g., development, meeting, urgent"
msgstr "esim. kehitys, tapaaminen, kiireellinen"

#: app/templates/reports/export_form.html:191
#, fuzzy
msgid "Reset Filters"
msgstr "Tallennetut suodattimet"

#: app/templates/reports/export_form.html:209
msgid "CSV / Excel"
msgstr ""

#: app/templates/reports/export_form.html:217
msgid "The file will be downloaded with a filename indicating the date range and applied filters."
msgstr ""

#: app/templates/reports/export_form.html:341
#, fuzzy
msgid "Please select both start and end dates."
msgstr "Ajanjakso - Mukautetut aloitus- ja lopetuspäivät"

#: app/templates/reports/export_form.html:347
#, fuzzy
msgid "Start date must be before or equal to end date."
msgstr "Aloituspäivän on oltava ennen lopetuspäivää"

#: app/templates/reports/index.html:13
msgid "View comprehensive reports and analytics for your time tracking data"
msgstr ""

#: app/templates/reports/index.html:20
msgid "Support development or get a supporter license — the app stays free for everyone."
msgstr ""

#: app/templates/reports/index.html:46
#, fuzzy
msgid "Payments Received"
msgstr "Maksukentät"

#: app/templates/reports/index.html:62
#, fuzzy
msgid "Net Received"
msgstr "Vastaanotettu"

#: app/templates/reports/index.html:63
#, fuzzy
msgid "After fees"
msgstr "Yhdyskäytävämaksut"

#: app/templates/reports/index.html:69
msgid "Date Range & Comparison"
msgstr "Ajanjakso ja vertailu"

#: app/templates/reports/index.html:73
msgid "Quick Date Ranges"
msgstr "Nopeat päivämääräalueet"

#: app/templates/reports/index.html:79
#, fuzzy
msgid "This Week"
msgstr "Viikko"

#: app/templates/reports/index.html:82
#, fuzzy
msgid "This Month"
msgstr "Kuukausi"

#: app/templates/reports/index.html:85
#, fuzzy
msgid "This Year"
msgstr "Viime vuonna"

#: app/templates/reports/index.html:89
#, fuzzy
msgid "Custom Range"
msgstr "Muokatut ajanjaksot"

#: app/templates/reports/index.html:102
msgid "Comparison View"
msgstr ""

#: app/templates/reports/index.html:107
#: app/templates/reports/week_in_review.html:7
#: app/templates/reports/week_in_review.html:12
#, fuzzy
msgid "Week in Review"
msgstr "Live-esikatselu"

#: app/templates/reports/index.html:108
msgid "This week's hours, top projects, billable vs non-billable"
msgstr ""

#: app/templates/reports/index.html:116
msgid "This Month vs Last Month"
msgstr ""

#: app/templates/reports/index.html:117
msgid "Compare current month with previous month"
msgstr ""

#: app/templates/reports/index.html:125
msgid "This Year vs Last Year"
msgstr ""

#: app/templates/reports/index.html:126
msgid "Compare current year with previous year"
msgstr ""

#: app/templates/reports/index.html:137
msgid "Comparison Results"
msgstr "Vertailutulokset"

#: app/templates/reports/index.html:146
msgid "Export Reports"
msgstr "Vie raportit"

#: app/templates/reports/index.html:149
msgid "Export Format"
msgstr "Vie muoto"

#: app/templates/reports/index.html:155
#, fuzzy
msgid "Export Report"
msgstr "Vie raportit"

#: app/templates/reports/index.html:162
#, fuzzy
msgid "Manage Scheduled Reports"
msgstr "Aikataulutetut raportit"

#: app/templates/reports/index.html:169
#, fuzzy
msgid "CSV Export"
msgstr "CSV-tuonti"

#: app/templates/reports/index.html:172
#, fuzzy
msgid "Excel Export"
msgstr "Viedä"

#: app/templates/reports/index.html:180
msgid "Report Types"
msgstr ""

#: app/templates/reports/index.html:183
#: app/templates/reports/project_report.html:5
msgid "Project Report"
msgstr ""

#: app/templates/reports/index.html:186
#: app/templates/reports/user_report.html:5
msgid "User Report"
msgstr "Käyttäjäraportti"

#: app/templates/reports/index.html:189 app/templates/reports/summary.html:6
msgid "Summary Report"
msgstr "Yhteenvetoraportti"

#: app/templates/reports/index.html:192
#: app/templates/reports/task_report.html:5
msgid "Task Report"
msgstr "Tehtäväraportti"

#: app/templates/reports/index.html:195
#: app/templates/reports/time_entries_report.html:5
#, fuzzy
msgid "Time Entries Report"
msgstr "Aikamerkinnät"

#: app/templates/reports/index.html:198
#: app/templates/reports/unpaid_hours_report.html:6
msgid "Unpaid Hours Report"
msgstr ""

#: app/templates/reports/index.html:207
msgid "Report Management"
msgstr ""

#: app/templates/reports/index.html:210
#: app/templates/reports/saved_views_list.html:4
msgid "Saved Report Views"
msgstr ""

#: app/templates/reports/index.html:211
msgid "View and manage your saved report configurations"
msgstr ""

#: app/templates/reports/index.html:215
msgid "Manage automated report delivery via email"
msgstr ""

#: app/templates/reports/index.html:244
#, fuzzy
msgid "No recent entries."
msgstr "Viimeaikaiset merkinnät"

#: app/templates/reports/index.html:269 app/templates/reports/index.html:435
#, fuzzy
msgid "No scheduled reports yet."
msgstr "Aikataulutetut raportit"

#: app/templates/reports/index.html:273
#, fuzzy
msgid "Add Scheduled Report"
msgstr "Aikataulutetut raportit"

#: app/templates/reports/index.html:366
#, fuzzy
msgid "Please set a date range"
msgstr "Muokatut ajanjaksot"

#: app/templates/reports/index.html:451
msgid "You need to create a saved report view first. Please create one from the reports page."
msgstr ""

#: app/templates/reports/index.html:463
#: app/templates/reports/schedule_form.html:3
#: app/templates/reports/schedule_form.html:8
#: app/templates/reports/scheduled.html:116
msgid "Schedule Report"
msgstr ""

#: app/templates/reports/index.html:470
#: app/templates/reports/schedule_form.html:20
msgid "Report View"
msgstr ""

#: app/templates/reports/index.html:472
msgid "Select a report view..."
msgstr ""

#: app/templates/reports/index.html:477 app/templates/reports/scheduled.html:27
#: app/templates/reports/scheduled.html:50
msgid "Recipients"
msgstr ""

#: app/templates/reports/index.html:480
msgid "Comma-separated email addresses"
msgstr ""

#: app/templates/reports/index.html:495
#: app/templates/reports/schedule_form.html:101
msgid "Create Schedule"
msgstr ""

#: app/templates/reports/index.html:506
msgid "Failed to load report views"
msgstr ""

#: app/templates/reports/index.html:543
msgid "Scheduled report created successfully"
msgstr ""

#: app/templates/reports/index.html:546 app/templates/reports/index.html:553
msgid "Failed to create scheduled report"
msgstr ""

#: app/templates/reports/index.html:571 app/templates/reports/index.html:576
msgid "Failed to update schedule"
msgstr ""

#: app/templates/reports/index.html:581 app/templates/reports/scheduled.html:98
msgid "Are you sure you want to delete this scheduled report?"
msgstr ""

#: app/templates/reports/index.html:596
msgid "Scheduled report deleted successfully"
msgstr ""

#: app/templates/reports/index.html:599 app/templates/reports/index.html:604
msgid "Failed to delete scheduled report"
msgstr ""

#: app/templates/reports/iterative_view.html:4
msgid "Iterative Report"
msgstr ""

#: app/templates/reports/iterative_view.html:17
#, python-format
msgid "Iterative Report - One report per %(field_name)s value"
msgstr ""

#: app/templates/reports/iterative_view.html:74
msgid "Summary by Client"
msgstr ""

#: app/templates/reports/iterative_view.html:90
#, python-format
msgid "No data found for this %(field_name)s value"
msgstr ""

#: app/templates/reports/iterative_view.html:99
#, python-format
msgid "No unique values found for custom field \"%(field_name)s\""
msgstr ""

#: app/templates/reports/project_report.html:85
#: app/templates/reports/user_report.html:157
#, fuzzy
msgid "No data for the selected period."
msgstr "Valitulle ajanjaksolle ei löytynyt myyntitietoja."

#: app/templates/reports/project_report.html:86
msgid "Try a different date range or ensure time has been logged on projects."
msgstr ""

#: app/templates/reports/saved_views_list.html:29
#: app/templates/reports/saved_views_list.html:44
msgid "Features"
msgstr ""

#: app/templates/reports/saved_views_list.html:48
msgid "Iterative"
msgstr ""

#: app/templates/reports/saved_views_list.html:67
msgid "Are you sure you want to delete this report view?"
msgstr ""

#: app/templates/reports/saved_views_list.html:83
msgid "No Saved Report Views"
msgstr ""

#: app/templates/reports/saved_views_list.html:84
msgid "Create and save report configurations to use them in scheduled reports."
msgstr ""

#: app/templates/reports/saved_views_list.html:85
msgid "Create Report"
msgstr ""

#: app/templates/reports/schedule_form.html:9
msgid "Set up automated email delivery for reports"
msgstr ""

#: app/templates/reports/schedule_form.html:11
msgid "Back to Scheduled Reports"
msgstr ""

#: app/templates/reports/schedule_form.html:22
msgid "Select a saved report view..."
msgstr ""

#: app/templates/reports/schedule_form.html:27
msgid "Select a saved report view to schedule"
msgstr ""

#: app/templates/reports/schedule_form.html:32
msgid "Email Recipients"
msgstr ""

#: app/templates/reports/schedule_form.html:34
msgid "email1@example.com, email2@example.com"
msgstr ""

#: app/templates/reports/schedule_form.html:36
msgid "Enter one or more email addresses separated by commas. These recipients will receive the scheduled report via email."
msgstr ""

#: app/templates/reports/schedule_form.html:39
msgid "When using Mapping or Template, these are used as fallback if no address is found for a value."
msgstr ""

#: app/templates/reports/schedule_form.html:46
msgid "Select frequency..."
msgstr ""

#: app/templates/reports/schedule_form.html:50
msgid "Custom (Cron)"
msgstr ""

#: app/templates/reports/schedule_form.html:57
msgid "Use previous calendar month as date range"
msgstr ""

#: app/templates/reports/schedule_form.html:59
msgid "For monthly runs: report will use the first and last day of the previous month."
msgstr ""

#: app/templates/reports/schedule_form.html:63
msgid "Cron Expression"
msgstr ""

#: app/templates/reports/schedule_form.html:65
msgid "Cron format: minute hour day month weekday"
msgstr ""

#: app/templates/reports/schedule_form.html:70
msgid "Report Iteration (Optional)"
msgstr ""

#: app/templates/reports/schedule_form.html:74
msgid "Split report by custom field value"
msgstr ""

#: app/templates/reports/schedule_form.html:80
msgid "The custom field name to iterate over (e.g., \"salesman\"). A separate report will be generated for each unique value."
msgstr ""

#: app/templates/reports/schedule_form.html:83
msgid "Email distribution"
msgstr ""

#: app/templates/reports/schedule_form.html:85
msgid "All reports to recipients below"
msgstr ""

#: app/templates/reports/schedule_form.html:86
msgid "Per value: SalesmanEmailMapping table"
msgstr ""

#: app/templates/reports/schedule_form.html:87
msgid "Per value: email from template"
msgstr ""

#: app/templates/reports/schedule_form.html:91
msgid "Recipient email template"
msgstr ""

#: app/templates/reports/schedule_form.html:93
#, python-brace-format
msgid "Use {value} for the value (e.g. KF); {value}@test.de yields KF@test.de. Use {value_lower} for lowercase, e.g. {value_lower}@test.de yields kf@test.de."
msgstr ""

#: app/templates/reports/scheduled.html:26
#: app/templates/reports/scheduled.html:37
msgid "Report"
msgstr ""

#: app/templates/reports/scheduled.html:41
msgid "Split by"
msgstr ""

#: app/templates/reports/scheduled.html:46
msgid "Distribution"
msgstr ""

#: app/templates/reports/scheduled.html:54
msgid "Template"
msgstr ""

#: app/templates/reports/scheduled.html:70
msgid "Invalid: saved view not found"
msgstr ""

#: app/templates/reports/scheduled.html:86
msgid "Trigger report now (for testing)"
msgstr ""

#: app/templates/reports/scheduled.html:93
msgid "Fix or remove invalid schedule"
msgstr ""

#: app/templates/reports/scheduled.html:114
msgid "No Scheduled Reports"
msgstr ""

#: app/templates/reports/scheduled.html:115
msgid "Create scheduled reports to automatically receive reports via email."
msgstr ""

#: app/templates/reports/scheduled.html:152
msgid "Report triggered successfully!"
msgstr ""

#: app/templates/reports/scheduled.html:153
msgid "Report sent to recipients."
msgstr ""

#: app/templates/reports/scheduled.html:156
msgid "Error triggering report:"
msgstr ""

#: app/templates/reports/scheduled.html:161
msgid "Error triggering report. Please check the console for details."
msgstr ""

#: app/templates/reports/summary.html:27
#, fuzzy
msgid "Time by project (last 30 days)"
msgstr "Parhaat projektit (30 päivää)"

#: app/templates/reports/summary.html:30
#, fuzzy
msgid "Time distribution by project"
msgstr "Aikajakauman ympyräkaaviot"

#: app/templates/reports/summary.html:65 app/templates/reports/summary.html:130
#, fuzzy
msgid "No project data for the last 30 days."
msgstr "Ei toimintaa viimeisen 30 päivän aikana."

#: app/templates/reports/summary.html:70
msgid "Daily trend (last 14 days)"
msgstr ""

#: app/templates/reports/summary.html:73
#, fuzzy
msgid "Daily hours trend"
msgstr "Päivittäinen tuntitrendi"

#: app/templates/reports/summary.html:108
#, fuzzy
msgid "No trend data."
msgstr "Lainaustiedot"

#: app/templates/reports/summary.html:114
#, fuzzy
msgid "Top Projects (Last 30 Days)"
msgstr "Parhaat projektit (30 päivää)"

#: app/templates/reports/task_report.html:102
#, fuzzy
msgid "No tasks with logged time for the selected period."
msgstr "Valitulle ajanjaksolle ei löytynyt myyntitietoja."

#: app/templates/reports/task_report.html:103
msgid "Try a different date range or log time on tasks."
msgstr ""

#: app/templates/reports/time_entries_report.html:49
#, fuzzy
msgid "All Clients"
msgstr "Asiakkaat"

#: app/templates/reports/time_entries_report.html:60
#: app/templates/timer/calendar.html:69 app/templates/timer/calendar.html:569
#, fuzzy
msgid "All Tasks"
msgstr "Näytä kaikki tehtävät"

#: app/templates/reports/time_entries_report.html:136
#, fuzzy
msgid "No time entries found for the selected filters."
msgstr "Valitulle ajanjaksolle ei löytynyt myyntitietoja."

#: app/templates/reports/unpaid_hours_report.html:45
msgid "Total Unpaid Hours"
msgstr ""

#: app/templates/reports/unpaid_hours_report.html:49
#: app/templates/reports/unpaid_hours_report.html:75
#: app/templates/reports/unpaid_hours_report.html:94
msgid "Estimated Amount"
msgstr ""

#: app/templates/reports/unpaid_hours_report.html:53
msgid "Clients with Unpaid Hours"
msgstr ""

#: app/templates/reports/unpaid_hours_report.html:61
msgid "Unpaid Hours by Client"
msgstr ""

#: app/templates/reports/unpaid_hours_report.html:151
msgid "No unpaid hours found for the selected period."
msgstr ""

#: app/templates/reports/user_report.html:69
#: app/templates/reports/user_report.html:94
msgid "Export entries (Excel)"
msgstr ""

#: app/templates/reports/user_report.html:70
msgid "Select columns:"
msgstr ""

#: app/templates/reports/user_report.html:88
msgid "Duration (formatted)"
msgstr ""

#: app/templates/reports/user_report.html:158
#, fuzzy
msgid "Try a different date range or ensure time has been logged."
msgstr "Kokeile toista kyselyä tai tarkista oikeinkirjoitus."

#: app/templates/reports/user_report.html:174
msgid "About Overtime Tracking"
msgstr ""

#: app/templates/reports/week_in_review.html:13
msgid "This week's time summary and top projects"
msgstr ""

#: app/templates/reports/week_in_review.html:17
#, fuzzy
msgid "Back to Reports"
msgstr "Takaisin Rooleihin"

#: app/templates/reports/week_in_review.html:38
#, fuzzy, python-format
msgid "%(count)s time entries logged this week."
msgstr "Aikakirjaukset tällä viikolla"

#: app/templates/reports/week_in_review.html:43
#, fuzzy
msgid "Top projects this week"
msgstr "Huippuprojektit"

#: app/templates/reports/week_in_review.html:54
#, fuzzy
msgid "No time logged this week yet."
msgstr "Tälle viikolle ei ole vielä tallennettu aikamerkintöjä"

#: app/templates/saved_filters/list.html:46
msgid "Apply filter"
msgstr "Käytä suodatinta"

#: app/templates/saved_filters/list.html:51
msgid "Are you sure you want to delete this filter?"
msgstr ""

#: app/templates/saved_filters/list.html:51
msgid "Delete Filter"
msgstr "Poista suodatin"

#: app/templates/saved_filters/list.html:93
#, fuzzy
msgid "Go to Reports"
msgstr "Alhainen varastoraportti"

#: app/templates/saved_filters/list.html:96
#, fuzzy
msgid "No saved filters yet"
msgstr "Tallennetut suodattimet"

#: app/templates/saved_filters/list.html:97
msgid "Save filters from Reports or Tasks pages for quick access."
msgstr ""

#: app/templates/settings/keyboard_shortcuts.html:227
msgid "Customize Shortcuts"
msgstr "Mukauta pikakuvakkeita"

#: app/templates/settings/keyboard_shortcuts.html:235
msgid "Search shortcuts..."
msgstr "Haun pikanäppäimet..."

#: app/templates/settings/keyboard_shortcuts.html:246
#, fuzzy
msgid "Save changes"
msgstr "Tallenna muutokset"

#: app/templates/settings/keyboard_shortcuts.html:384
msgid "Press keys..."
msgstr ""

#: app/templates/settings/keyboard_shortcuts.html:444
msgid "Click then press a key combination"
msgstr ""

#: app/templates/settings/keyboard_shortcuts.html:444
#, fuzzy
msgid "Click to record"
msgstr "Järjestä uudelleen vetämällä"

#: app/templates/settings/keyboard_shortcuts.html:445
#, fuzzy
msgid "Revert"
msgstr "Nollaa"

#: app/templates/settings/keyboard_shortcuts.html:457
msgid "Conflict: the same key is assigned to multiple actions."
msgstr ""

#: app/templates/settings/keyboard_shortcuts.html:473
#, fuzzy
msgid "Failed to save"
msgstr "Ajastimen pysäyttäminen epäonnistui"

#: app/templates/settings/keyboard_shortcuts.html:477
msgid "Shortcuts saved."
msgstr ""

#: app/templates/settings/keyboard_shortcuts.html:478
#, fuzzy
msgid "Failed to save shortcuts."
msgstr "Tilan päivittäminen epäonnistui"

#: app/templates/settings/keyboard_shortcuts.html:483
msgid "This will reset all keyboard shortcuts to their default values. Continue?"
msgstr "Tämä palauttaa kaikki pikanäppäimet oletusarvoihinsa. Jatkaa?"

#: app/templates/settings/keyboard_shortcuts.html:484
msgid "Reset to Defaults"
msgstr "Palauta oletusarvoihin"

#: app/templates/settings/keyboard_shortcuts.html:484
#, fuzzy
msgid "Reset all shortcuts to defaults?"
msgstr "Palautetaanko oletusasetukset?"

#: app/templates/settings/keyboard_shortcuts.html:489
#, fuzzy
msgid "Failed to reset"
msgstr "Avatarin poistaminen epäonnistui."

#: app/templates/settings/keyboard_shortcuts.html:493
#, fuzzy
msgid "Shortcuts reset to defaults."
msgstr "Palauta oletusarvoihin"

#: app/templates/settings/keyboard_shortcuts.html:494
#, fuzzy
msgid "Failed to reset shortcuts."
msgstr "Tilan päivittäminen epäonnistui"

#: app/templates/settings/keyboard_shortcuts.html:511
#, fuzzy
msgid "Failed to load shortcuts."
msgstr "Tehtävien lataaminen epäonnistui"

#: app/templates/setup/initial_setup.html:6
msgid "Welcome"
msgstr "Tervetuloa"

#: app/templates/setup/initial_setup.html:35
msgid "Privacy First"
msgstr "Yksityisyys ensin"

#: app/templates/setup/initial_setup.html:40
msgid "Self-hosted on your server"
msgstr "Isännöi itse palvelimellasi"

#: app/templates/setup/initial_setup.html:46
msgid "Anonymous telemetry (opt-in)"
msgstr "Anonyymi telemetria (opt-in)"

#: app/templates/setup/initial_setup.html:52
msgid "No PII collected ever"
msgstr ""

#: app/templates/setup/initial_setup.html:58
msgid "Open source & transparent"
msgstr "Avoin lähdekoodi ja läpinäkyvä"

#: app/templates/setup/initial_setup.html:70
msgid "Step 1 of 6"
msgstr ""

#: app/templates/setup/initial_setup.html:85
msgid "Welcome to TimeTracker"
msgstr "Tervetuloa TimeTrackeriin"

#: app/templates/setup/initial_setup.html:86
msgid "Let's get you set up in just a moment"
msgstr "Laitetaan asetukset hetkessä"

#: app/templates/setup/initial_setup.html:88
msgid "Thank you for choosing TimeTracker!"
msgstr "Kiitos, että valitsit TimeTrackerin!"

#: app/templates/setup/initial_setup.html:90
msgid "Your data stays on your server, and you have complete control."
msgstr "Tietosi pysyvät palvelimellasi, ja sinulla on täydellinen hallinta."

#: app/templates/setup/initial_setup.html:97
#, fuzzy
msgid "Region & time"
msgstr "Päättymisaika"

#: app/templates/setup/initial_setup.html:98
msgid "Set your default timezone, date and time format, and currency."
msgstr ""

#: app/templates/setup/initial_setup.html:101
#: app/templates/user/settings.html:419
msgid "Timezone"
msgstr "Aikavyöhyke"

#: app/templates/setup/initial_setup.html:110
#, fuzzy
msgid "Date format"
msgstr "Päivämäärän muoto"

#: app/templates/setup/initial_setup.html:119
#, fuzzy
msgid "Time format"
msgstr "Aikamuoto"

#: app/templates/setup/initial_setup.html:121
#, fuzzy
msgid "24-hour"
msgstr "tuntia"

#: app/templates/setup/initial_setup.html:122
#, fuzzy
msgid "12-hour"
msgstr "tuntia"

#: app/templates/setup/initial_setup.html:136
msgid "Company details for invoices and branding."
msgstr ""

#: app/templates/setup/initial_setup.html:139
#, fuzzy
msgid "Company name"
msgstr "Yrityksen nimi"

#: app/templates/setup/initial_setup.html:140
#, fuzzy
msgid "Your Company Name"
msgstr "Yrityksesi nimi"

#: app/templates/setup/initial_setup.html:144
#, fuzzy
msgid "Your Company Address"
msgstr "Yrityksesi osoite"

#: app/templates/setup/initial_setup.html:166
#, fuzzy
msgid "App behavior and timer settings."
msgstr "Ylityöasetukset"

#: app/templates/setup/initial_setup.html:171
#, fuzzy
msgid "Allow self-registration"
msgstr "Itserekisteröinnin asetukset"

#: app/templates/setup/initial_setup.html:172
msgid "Users can create accounts from the login page"
msgstr ""

#: app/templates/setup/initial_setup.html:176
#, fuzzy
msgid "Time rounding (minutes)"
msgstr "Ajan pyöristyssäännöt"

#: app/templates/setup/initial_setup.html:183
#, fuzzy
msgid "Round time entries to the nearest N minutes."
msgstr "Pyöreäajan merkinnät määritettyihin aikaväleihin"

#: app/templates/setup/initial_setup.html:188
#, fuzzy
msgid "Single active timer per user"
msgstr "Yksi aktiivinen ajastintila"

#: app/templates/setup/initial_setup.html:189
msgid "Only one running timer at a time per user"
msgstr ""

#: app/templates/setup/initial_setup.html:193
#, fuzzy
msgid "Idle timeout (minutes)"
msgstr "Idle timeout -määritys"

#: app/templates/setup/initial_setup.html:195
msgid "Pause timer after this many minutes of inactivity."
msgstr ""

#: app/templates/setup/initial_setup.html:203
msgid "Configure calendar OAuth now or later in Admin → Settings."
msgstr ""

#: app/templates/setup/initial_setup.html:207
msgid "Google Calendar OAuth"
msgstr ""

#: app/templates/setup/initial_setup.html:210
msgid "Client ID (optional)"
msgstr ""

#: app/templates/setup/initial_setup.html:211
msgid "Client Secret (optional)"
msgstr ""

#: app/templates/setup/initial_setup.html:214
msgid "Get these from"
msgstr ""

#: app/templates/setup/initial_setup.html:214
#: app/templates/setup/initial_setup.html:221
msgid "Google Cloud Console"
msgstr ""

#: app/templates/setup/initial_setup.html:218
msgid "How to get Google Calendar OAuth credentials?"
msgstr ""

#: app/templates/setup/initial_setup.html:221
msgid "Go to"
msgstr ""

#: app/templates/setup/initial_setup.html:222
msgid "Create a new project or select an existing one"
msgstr ""

#: app/templates/setup/initial_setup.html:223
msgid "Enable the Google Calendar API"
msgstr ""

#: app/templates/setup/initial_setup.html:224
msgid "Go to Credentials → Create Credentials → OAuth 2.0 Client ID"
msgstr ""

#: app/templates/setup/initial_setup.html:225
msgid "Set application type to \"Web application\""
msgstr ""

#: app/templates/setup/initial_setup.html:226
msgid "Add authorized redirect URI:"
msgstr ""

#: app/templates/setup/initial_setup.html:227
msgid "Copy the Client ID and Client Secret"
msgstr ""

#: app/templates/setup/initial_setup.html:232
msgid "You can skip this step and configure integrations later."
msgstr ""

#: app/templates/setup/initial_setup.html:237
#, fuzzy
msgid "Privacy & finish"
msgstr "Yksityisyys ensin"

#: app/templates/setup/initial_setup.html:238
msgid "Choose whether to help improve TimeTracker with anonymous usage data."
msgstr ""

#: app/templates/setup/initial_setup.html:244
msgid "Enable anonymous telemetry"
msgstr "Ota anonyymi telemetria käyttöön"

#: app/templates/setup/initial_setup.html:245
msgid "Help us understand usage patterns to improve TimeTracker"
msgstr "Auta meitä ymmärtämään käyttötapoja TimeTrackerin parantamiseksi"

#: app/templates/setup/initial_setup.html:250
msgid "What data is collected?"
msgstr "Mitä tietoja kerätään?"

#: app/templates/setup/initial_setup.html:253
msgid "What we collect:"
msgstr "Mitä keräämme:"

#: app/templates/setup/initial_setup.html:255
msgid "Anonymous installation fingerprint (hashed)"
msgstr ""

#: app/templates/setup/initial_setup.html:256
msgid "Application version & platform info"
msgstr ""

#: app/templates/setup/initial_setup.html:257
msgid "Feature usage statistics"
msgstr "Ominaisuuden käyttötilastot"

#: app/templates/setup/initial_setup.html:261
msgid "What we DON'T collect:"
msgstr ""

#: app/templates/setup/initial_setup.html:263
msgid "No usernames or emails"
msgstr "Ei käyttäjätunnuksia tai sähköpostiosoitteita"

#: app/templates/setup/initial_setup.html:264
msgid "No time entry data or notes"
msgstr "Ei ajansyöttötietoja tai muistiinpanoja"

#: app/templates/setup/initial_setup.html:265
msgid "No client or business data"
msgstr "Ei asiakas- tai yritystietoja"

#: app/templates/setup/initial_setup.html:268
msgid "You can change this anytime in"
msgstr "Voit muuttaa tämän milloin tahansa"

#: app/templates/setup/initial_setup.html:273
msgid "By continuing, you agree to use TimeTracker under the"
msgstr "Jatkamalla hyväksyt TimeTrackerin käytön"

#: app/templates/setup/initial_setup.html:273
msgid "GPL-3.0 License"
msgstr "GPL-3.0 -lisenssi"

#: app/templates/setup/initial_setup.html:287
#: app/templates/setup/initial_setup.html:288
msgid "Complete Setup & Continue"
msgstr "Viimeistele asennus ja jatka"

#: app/templates/tasks/_kanban.html:65 app/templates/tasks/_kanban.html:1360
#: app/templates/tasks/edit.html:4 app/templates/tasks/edit.html:16
#: app/templates/tasks/view.html:8
msgid "Edit Task"
msgstr "Muokkaa tehtävää"

#: app/templates/tasks/_kanban.html:913
msgid "Failed to update status"
msgstr "Tilan päivittäminen epäonnistui"

#: app/templates/tasks/_kanban.html:924 app/templates/tasks/_kanban.html:1000
msgid "Failed to update task status"
msgstr "Tehtävän tilan päivittäminen epäonnistui"

#: app/templates/tasks/_kanban.html:937
msgid "Kanban column created"
msgstr "Kanban-sarake luotu"

#: app/templates/tasks/_kanban.html:938
msgid "Kanban column deleted"
msgstr "Kanban-sarake poistettu"

#: app/templates/tasks/_kanban.html:939
msgid "Kanban columns reordered"
msgstr "Kanban-sarakkeet järjestetty uudelleen"

#: app/templates/tasks/_kanban.html:940
msgid "Kanban column visibility changed"
msgstr "Kanban-sarakkeen näkyvyys muuttui"

#: app/templates/tasks/_kanban.html:941 app/templates/tasks/_kanban.html:944
#: app/templates/tasks/_kanban.html:1017
msgid "Kanban columns updated"
msgstr "Kanban-sarakkeet päivitetty"

#: app/templates/tasks/_kanban.html:942 app/templates/tasks/_kanban.html:1017
#: app/templates/timer/time_entries_overview.html:210
msgid "Update"
msgstr "Päivittää"

#: app/templates/tasks/_kanban.html:955
msgid "Failed to refresh kanban columns"
msgstr "Kanban-sarakkeiden päivittäminen epäonnistui"

#: app/templates/tasks/_kanban.html:1218
msgid "Loading task details..."
msgstr "Ladataan tehtävän tietoja..."

#: app/templates/tasks/_kanban.html:1313
msgid "Tracked"
msgstr "Seurattu"

#: app/templates/tasks/_kanban.html:1357
msgid "View Full Details"
msgstr "Näytä täydelliset tiedot"

#: app/templates/tasks/create.html:14 app/templates/tasks/edit.html:290
#: app/templates/tasks/overdue.html:13
msgid "Back to Tasks"
msgstr "Takaisin tehtäviin"

#: app/templates/tasks/create.html:16
msgid "Add a new task to your project to break down work into manageable components"
msgstr "Lisää uusi tehtävä projektiisi jakaaksesi työn hallittaviin osiin"

#: app/templates/tasks/create.html:27 app/templates/tasks/edit.html:34
msgid "Enter a descriptive task name"
msgstr "Anna kuvaava tehtävän nimi"

#: app/templates/tasks/create.html:28 app/templates/tasks/edit.html:35
msgid "Choose a clear, descriptive name that explains what needs to be done"
msgstr "Valitse selkeä, kuvaava nimi, joka selittää, mitä sinun on tehtävä"

#: app/templates/tasks/create.html:38 app/templates/tasks/edit.html:44
#: app/templates/tasks/edit.html:515
msgid "Provide detailed information about the task, requirements, and any specific instructions..."
msgstr "Anna yksityiskohtaiset tiedot tehtävästä, vaatimuksista ja mahdollisista erityisistä ohjeista..."

#: app/templates/tasks/create.html:41 app/templates/tasks/edit.html:47
msgid "Optional: Add context, requirements, or specific instructions for the task"
msgstr "Valinnainen: Lisää kontekstia, vaatimuksia tai erityisiä ohjeita tehtävälle"

#: app/templates/tasks/create.html:53 app/templates/tasks/edit.html:63
msgid "Select the project this task belongs to"
msgstr "Valitse projekti, johon tämä tehtävä kuuluu"

#: app/templates/tasks/create.html:68
msgid "Initial Status"
msgstr "Alkutila"

#: app/templates/tasks/create.html:74 app/templates/tasks/create.html:86
#: app/templates/tasks/create.html:478 app/templates/tasks/edit.html:83
#: app/templates/tasks/edit.html:658 app/templates/tasks/my_tasks.html:134
#: app/utils/i18n_helpers.py:19 app/utils/i18n_helpers.py:31
msgid "Done"
msgstr "Tehty"

#: app/templates/tasks/create.html:95 app/templates/tasks/edit.html:103
msgid "Optional: Set a deadline for this task"
msgstr "Valinnainen: Aseta tälle tehtävälle määräaika"

#: app/templates/tasks/create.html:100 app/templates/tasks/edit.html:108
msgid "Optional: Estimate how long this task will take"
msgstr "Valinnainen: Arvioi, kuinka kauan tämä tehtävä kestää"

#: app/templates/tasks/create.html:113 app/templates/tasks/edit.html:121
msgid "Optional: Assign this task to a team member"
msgstr "Valinnainen: Määritä tämä tehtävä tiimin jäsenelle"

#: app/templates/tasks/create.html:122 app/templates/tasks/edit.html:130
msgid "e.g. bug, frontend, urgent"
msgstr ""

#: app/templates/tasks/create.html:123 app/templates/tasks/edit.html:131
#, fuzzy
msgid "Comma-separated tags for categorization"
msgstr "Tunnisteet luokittelua varten"

#: app/templates/tasks/create.html:133 app/templates/tasks/edit.html:141
msgid "Optional: Color for this task on the Gantt chart. If unset, the project color is used. Pick or enter a hex code (e.g. #3b82f6)."
msgstr ""

#: app/templates/tasks/create.html:148
msgid "Task Creation Tips"
msgstr "Vinkkejä tehtävien luomiseen"

#: app/templates/tasks/create.html:156
msgid "Use action verbs and be specific about what needs to be done"
msgstr "Käytä toimintaverbejä ja kerro tarkasti, mitä sinun on tehtävä"

#: app/templates/tasks/create.html:164
msgid "Realistic Estimates"
msgstr "Realistiset arviot"

#: app/templates/tasks/create.html:165
msgid "Consider complexity and dependencies when estimating time"
msgstr "Ota huomioon monimutkaisuus ja riippuvuudet arvioidessasi aikaa"

#: app/templates/tasks/create.html:173
msgid "Set Deadlines"
msgstr "Aseta määräajat"

#: app/templates/tasks/create.html:174
msgid "Due dates help prioritize work and track progress"
msgstr "Eräpäivät auttavat priorisoimaan työn ja seuraamaan edistymistä"

#: app/templates/tasks/create.html:182
msgid "Priority Matters"
msgstr "Prioriteettiasiat"

#: app/templates/tasks/create.html:183
msgid "Use priority levels to help team members focus on what's most important"
msgstr "Käytä prioriteettitasoja auttaaksesi tiimin jäseniä keskittymään tärkeimpään"

#: app/templates/tasks/edit.html:14
msgid "Back to Task"
msgstr "Takaisin tehtävään"

#: app/templates/tasks/edit.html:16
#, python-format
msgid "Update task details and settings for \"%(task)s\""
msgstr "Päivitä tehtävän tiedot ja asetukset kohteelle \"%(task)s\""

#: app/templates/tasks/edit.html:23
msgid "Task Information"
msgstr "Tehtävän tiedot"

#: app/templates/tasks/edit.html:147
msgid "Update Task"
msgstr "Päivitä tehtävä"

#: app/templates/tasks/edit.html:163
msgid "Estimate used"
msgstr "Käytetty arvio"

#: app/templates/tasks/edit.html:170 app/templates/weekly_goals/index.html:185
msgid "Actual"
msgstr "Todellinen"

#: app/templates/tasks/edit.html:183
msgid "Current Task Info"
msgstr "Nykyisen tehtävän tiedot"

#: app/templates/tasks/edit.html:187
msgid "Current Status"
msgstr ""

#: app/templates/tasks/edit.html:194
msgid "Current Priority"
msgstr "Nykyinen prioriteetti"

#: app/templates/tasks/edit.html:212
msgid "Currently Assigned To"
msgstr "Tällä hetkellä määrätty"

#: app/templates/tasks/edit.html:224
msgid "Current Due Date"
msgstr "Nykyinen eräpäivä"

#: app/templates/tasks/edit.html:238
msgid "Current Estimate"
msgstr "Nykyinen arvio"

#: app/templates/tasks/edit.html:250 app/templates/weekly_goals/index.html:87
#: app/templates/weekly_goals/view.html:47
msgid "Actual Hours"
msgstr "Todelliset tunnit"

#: app/templates/tasks/edit.html:265
msgid "Started"
msgstr "Aloitettu"

#: app/templates/tasks/edit.html:299
msgid "Edit Tips"
msgstr "Muokkaa vinkkejä"

#: app/templates/tasks/edit.html:308
msgid "Status Changes"
msgstr "Tilan muutokset"

#: app/templates/tasks/edit.html:309
msgid "Changing status may affect time tracking and progress calculations"
msgstr "Tilan muuttaminen voi vaikuttaa ajan seurantaan ja edistymislaskelmiin"

#: app/templates/tasks/edit.html:320
msgid "Due Date Updates"
msgstr "Eräpäivän päivitykset"

#: app/templates/tasks/edit.html:321
msgid "Consider team workload when adjusting deadlines"
msgstr "Harkitse ryhmän työmäärää määräaikoja säätäessäsi"

#: app/templates/tasks/edit.html:332
msgid "Assignment Changes"
msgstr "Tehtävän muutokset"

#: app/templates/tasks/edit.html:333
msgid "Notify team members when reassigning tasks"
msgstr ""

#: app/templates/tasks/edit.html:599
msgid "Updating..."
msgstr "Päivitetään..."

#: app/templates/tasks/list.html:33
msgid "Filter Tasks"
msgstr "Suodata tehtävät"

#: app/templates/tasks/list.html:46 app/templates/tasks/my_tasks.html:125
#, fuzzy
msgid "e.g. bug, frontend"
msgstr "Käyttöliittymä"

#: app/templates/tasks/list.html:139
msgid "Delete Selected Tasks"
msgstr "Poista valitut tehtävät"

#: app/templates/tasks/list.html:159
msgid "Change Status for Selected Tasks"
msgstr "Muuta valittujen tehtävien tilaa"

#: app/templates/tasks/list.html:187
msgid "Assign Selected Tasks"
msgstr "Määritä valitut tehtävät"

#: app/templates/tasks/list.html:197
msgid "Assign Tasks"
msgstr "Määritä tehtäviä"

#: app/templates/tasks/list.html:207
msgid "Move Selected Tasks to Project"
msgstr "Siirrä valitut tehtävät projektiin"

#: app/templates/tasks/list.html:208 app/templates/tasks/list.html:210
msgid "Select Project"
msgstr "Valitse Projekti"

#: app/templates/tasks/list.html:217
msgid "Move Tasks"
msgstr "Siirrä tehtävät"

#: app/templates/tasks/list.html:237
#, python-brace-format
msgid "Are you sure you want to delete the task \"{name}\"?"
msgstr ""

#: app/templates/tasks/list.html:238
#, python-brace-format
msgid "Cannot delete task \"{name}\" because it has time entries. Please delete the time entries first."
msgstr "Tehtävää \"{name}\" ei voi poistaa, koska siinä on aikamerkintöjä. Poista ensin aikamerkinnät."

#: app/templates/tasks/list.html:421 app/templates/tasks/view.html:39
msgid "Delete Task"
msgstr "Poista tehtävä"

#: app/templates/tasks/my_tasks.html:3 app/templates/tasks/my_tasks.html:23
msgid "My Tasks"
msgstr "Omat tehtäväni"

#: app/templates/tasks/my_tasks.html:23
msgid "Tasks assigned to or created by you"
msgstr "Sinulle määrätyt tai itse luomat tehtävät"

#: app/templates/tasks/my_tasks.html:23
msgid "total"
msgstr "kokonais-"

#: app/templates/tasks/my_tasks.html:105
msgid "Filter My Tasks"
msgstr ""

#: app/templates/tasks/my_tasks.html:119
msgid "Task name or description"
msgstr "Tehtävän nimi tai kuvaus"

#: app/templates/tasks/my_tasks.html:141
msgid "All Priorities"
msgstr "Kaikki prioriteetit"

#: app/templates/tasks/my_tasks.html:160
msgid "Task Type"
msgstr "Tehtävän tyyppi"

#: app/templates/tasks/my_tasks.html:163
msgid "Assigned to Me"
msgstr "Määrätty minulle"

#: app/templates/tasks/my_tasks.html:164
msgid "Created by Me"
msgstr "Luonut minä"

#: app/templates/tasks/my_tasks.html:171
msgid "Show overdue only"
msgstr "Näytä vain myöhässä"

#: app/templates/tasks/my_tasks.html:302
msgid "Created by me"
msgstr "Minun luoma"

#: app/templates/tasks/my_tasks.html:353
msgid "My tasks pagination"
msgstr ""

#: app/templates/tasks/my_tasks.html:376
msgid "..."
msgstr ""

#: app/templates/tasks/my_tasks.html:400
msgid "No tasks found"
msgstr "Tehtäviä ei löytynyt"

#: app/templates/tasks/my_tasks.html:401
msgid "You don't have any tasks assigned to you or created by you yet."
msgstr "Sinulle ei ole vielä määrätty tai luotuja tehtäviä."

#: app/templates/tasks/my_tasks.html:404
msgid "Create Your First Task"
msgstr "Luo ensimmäinen tehtäväsi"

#: app/templates/tasks/my_tasks.html:407 app/templates/tasks/overdue.html:102
msgid "View All Tasks"
msgstr "Näytä kaikki tehtävät"

#: app/templates/tasks/overdue.html:4 app/templates/tasks/overdue.html:9
#: app/templates/tasks/overdue.html:19
msgid "Overdue Tasks"
msgstr "Myöhästyneet tehtävät"

#: app/templates/tasks/overdue.html:20
msgid "Requires immediate attention"
msgstr "Vaatii välitöntä huomiota"

#: app/templates/tasks/overdue.html:20
msgid "items"
msgstr "kohteita"

#: app/templates/tasks/overdue.html:26
msgid "There are"
msgstr "On"

#: app/templates/tasks/overdue.html:26
#, fuzzy
msgid "overdue tasks that require immediate attention. Please review and update these tasks to prevent further delays."
msgstr "Tarkista ja päivitä nämä tehtävät estääksesi lisäviivästykset."

#: app/templates/tasks/overdue.html:55
msgid "Due:"
msgstr ""

#: app/templates/tasks/overdue.html:56
msgid "Est:"
msgstr "Arvioitu:"

#: app/templates/tasks/overdue.html:57
msgid "Actual:"
msgstr "Todellinen:"

#: app/templates/tasks/overdue.html:85
#: app/templates/timer/_time_entries_list.html:16
msgid "Bulk Actions"
msgstr ""

#: app/templates/tasks/overdue.html:89
#, fuzzy
msgid "Update Due Dates"
msgstr "Eräpäivät"

#: app/templates/tasks/overdue.html:90
msgid "Extend due dates for multiple tasks at once"
msgstr ""

#: app/templates/tasks/overdue.html:91
#, fuzzy
msgid "Extend Due Dates"
msgstr "Eräpäivät"

#: app/templates/tasks/overdue.html:94
#, fuzzy
msgid "Priority Management"
msgstr "Projektinhallinta"

#: app/templates/tasks/overdue.html:95
msgid "Adjust priorities for overdue tasks"
msgstr ""

#: app/templates/tasks/overdue.html:96
#, fuzzy
msgid "Adjust Priorities"
msgstr "Kaikki prioriteetit"

#: app/templates/tasks/overdue.html:104
msgid "No Overdue Tasks!"
msgstr "Ei myöhässä olevia tehtäviä!"

#: app/templates/tasks/overdue.html:104
msgid "Great job! All tasks are currently on schedule."
msgstr "Hienoa työtä! Kaikki tehtävät ovat tällä hetkellä aikataulussa."

#: app/templates/tasks/overdue.html:109
msgid "Enter new due date (YYYY-MM-DD):"
msgstr "Anna uusi eräpäivä (VVVV-KK-PP):"

#: app/templates/tasks/overdue.html:110
msgid "Are you sure you want to extend the due date to"
msgstr "Haluatko varmasti pidentää eräpäivää"

#: app/templates/tasks/overdue.html:111 app/templates/tasks/overdue.html:114
msgid "for all overdue tasks?"
msgstr "kaikkiin myöhässä oleviin tehtäviin?"

#: app/templates/tasks/overdue.html:112
msgid "Enter new priority (low/medium/high/urgent):"
msgstr ""

#: app/templates/tasks/overdue.html:113
msgid "Are you sure you want to set priority to"
msgstr "Haluatko varmasti asettaa etusijalle"

#: app/templates/tasks/overdue.html:115
msgid "Invalid priority. Please use: low, medium, high, or urgent"
msgstr "Virheellinen prioriteetti. Käytä: matala, keskitaso, korkea tai kiireellinen"

#: app/templates/tasks/overdue.html:116
#, python-format
msgid "Updated %(count)s task(s). Reloading..."
msgstr ""

#: app/templates/tasks/overdue.html:117
#, fuzzy
msgid "Update failed. Please try again."
msgstr "Tavoitteen päivittäminen epäonnistui. Yritä uudelleen."

#: app/templates/tasks/view.html:14
msgid "Start task and mark as In Progress?"
msgstr "Aloitetaanko tehtävä ja merkitään kesken?"

#: app/templates/tasks/view.html:14 app/templates/tasks/view.html:21
msgid "Change Task Status"
msgstr "Muuta tehtävän tilaa"

#: app/templates/tasks/view.html:21
msgid "Mark task as To Do?"
msgstr "Merkitäänkö tehtävä tehtäväksi?"

#: app/templates/tasks/view.html:27
msgid "Mark task as Done?"
msgstr "Merkitäänkö tehtävä valmiiksi?"

#: app/templates/tasks/view.html:27
msgid "Complete Task"
msgstr "Suorita tehtävä"

#: app/templates/tasks/view.html:27
msgid "Complete"
msgstr "Täydellinen"

#: app/templates/tasks/view.html:34
msgid "Reopen task to Review?"
msgstr "Avataanko tehtävä uudelleen tarkistettavaksi?"

#: app/templates/tasks/view.html:34
msgid "Reopen Task"
msgstr "Avaa tehtävä uudelleen"

#: app/templates/tasks/view.html:34
msgid "Reopen"
msgstr "Avaa uudelleen"

#: app/templates/tasks/view.html:47
#, fuzzy
msgid "Task details and history."
msgstr "Hankkeen tiedot ja laajuus"

#: app/templates/time_entry_templates/create.html:13
msgid "Create Time Entry Template"
msgstr "Luo ajansyöttömalli"

#: app/templates/time_entry_templates/create.html:33
#: app/templates/time_entry_templates/edit.html:33
msgid "e.g., Daily Standup, Client Meeting"
msgstr "esim. Daily Standup, Client Meeting"

#: app/templates/time_entry_templates/create.html:82
#: app/templates/time_entry_templates/edit.html:86
msgid "e.g., 1.0, 0.5"
msgstr "esim. 1,0, 0,5"

#: app/templates/time_entry_templates/create.html:97
#: app/templates/time_entry_templates/edit.html:101
msgid "Pre-fill notes for this type of time entry"
msgstr "Esitäytä muistiinpanot tämän tyyppiselle aikamerkinnälle"

#: app/templates/time_entry_templates/create.html:110
#: app/templates/time_entry_templates/edit.html:114
msgid "e.g., meeting, development, admin"
msgstr "esim. kokous, kehitys, järjestelmänvalvoja"

#: app/templates/time_entry_templates/edit.html:13
msgid "Edit Template"
msgstr "Muokkaa mallia"

#: app/templates/time_entry_templates/list.html:44
#: app/templates/time_entry_templates/view.html:144
msgid "Are you sure you want to delete this template?"
msgstr "Haluatko varmasti poistaa tämän mallin?"

#: app/templates/time_entry_templates/list.html:44
#: app/templates/time_entry_templates/view.html:144
msgid "Delete Template"
msgstr "Poista malli"

#: app/templates/time_entry_templates/list.html:111
#, fuzzy
msgid "Create Your First Template"
msgstr "Luo ensimmäinen tehtäväsi"

#: app/templates/time_entry_templates/list.html:114
#, fuzzy
msgid "No templates yet"
msgstr "Mallit"

#: app/templates/time_entry_templates/list.html:115
#, fuzzy
msgid "Create your first time entry template to speed up your workflow."
msgstr "Luo ensimmäinen sähköpostimallisi mukauttaaksesi laskusähköpostiviestejä."

#: app/templates/time_entry_templates/view.html:96
msgid "Usage Statistics"
msgstr "Käyttötilastot"

#: app/templates/timer/_time_entries_list.html:7
msgid "Select All"
msgstr ""

#: app/templates/timer/_time_entries_list.html:10
msgid "selected"
msgstr ""

#: app/templates/timer/_time_entries_list.html:19
msgid "Mark Paid/Unpaid"
msgstr ""

#: app/templates/timer/_time_entries_list.html:38
#: app/templates/timer/_time_entries_list.html:67
#: app/templates/timer/time_entries_export_pdf.html:16
msgid "Project/Client"
msgstr ""

#: app/templates/timer/_time_entries_list.html:43
#: app/templates/timer/_time_entries_list.html:131
msgid "Invoice Ref"
msgstr ""

#: app/templates/timer/_time_entries_list.html:98
#: app/templates/timer/_time_entries_list.html:109
#, fuzzy
msgid "Click to edit"
msgstr "Takaisin Muokkaa"

#: app/templates/timer/_time_entries_list.html:102
msgid "Stop the timer to edit duration"
msgstr ""

#: app/templates/timer/_time_entries_list.html:186
#: app/templates/timer/_time_entries_list.html:188
#: app/templates/timer/view_timer.html:108
#, fuzzy
msgid "Request approval"
msgstr "Pyydä hyväksyntää"

#: app/templates/timer/_time_entries_list.html:201
#, fuzzy
msgid "Clear filters"
msgstr "Vaihda suodattimet"

#: app/templates/timer/_time_entries_list.html:204
#, fuzzy
msgid "No time entries match your filters"
msgstr "Ei ajansyöttötietoja tai muistiinpanoja"

#: app/templates/timer/_time_entries_list.html:204
msgid "Try adjusting your filters or clear them to see all entries. You can also log a new time entry."
msgstr ""

#: app/templates/timer/_time_entries_list.html:211
#, fuzzy
msgid "No time entries yet"
msgstr "Aikamerkintöjä ei ole vielä tallennettu"

#: app/templates/timer/_time_entries_list.html:211
msgid "Log time to see your entries here. Use the timer on the dashboard or log time manually."
msgstr ""

#: app/templates/timer/_time_entries_list.html:222
#, fuzzy
msgid "Time entries pagination"
msgstr "Aikamerkinnät"

#: app/templates/timer/bulk_entry.html:3 app/templates/timer/bulk_entry.html:77
#, fuzzy
msgid "Bulk Time Entry"
msgstr "Manuaalinen ajansyöttö"

#: app/templates/timer/bulk_entry.html:74
#, fuzzy
msgid "Single Entry"
msgstr "Ajan sisääntulo"

#: app/templates/timer/bulk_entry.html:77
#, fuzzy
msgid "Create multiple time entries for consecutive days"
msgstr "Kuinka luon joukkoaikamerkintöjä useille päiville?"

#: app/templates/timer/bulk_entry.html:86
#, fuzzy
msgid "Bulk Entry Form"
msgstr "Joukkopääsy"

#: app/templates/timer/bulk_entry.html:110
#, fuzzy
msgid "Select the project to log time for"
msgstr "Valittua projektia ei löydy"

#: app/templates/timer/bulk_entry.html:122
#: app/templates/timer/manual_entry.html:83
msgid "Tasks load after selecting a project"
msgstr "Tehtävät latautuvat projektin valinnan jälkeen"

#: app/templates/timer/bulk_entry.html:133
#: app/templates/timer/bulk_entry.html:246
#, fuzzy
msgid "Date Range"
msgstr "Aikaväli"

#: app/templates/timer/bulk_entry.html:148
msgid "Skip weekends (Saturday & Sunday)"
msgstr ""

#: app/templates/timer/bulk_entry.html:155
#, fuzzy
msgid "Entries will be created for these dates"
msgstr "Aikamerkinnät pyöristetään tähän väliin"

#: app/templates/timer/bulk_entry.html:172
#, fuzzy
msgid "Same start time for all days"
msgstr "Älykkäät ajastimet"

#: app/templates/timer/bulk_entry.html:181
msgid "Same end time for all days"
msgstr ""

#: app/templates/timer/bulk_entry.html:191
msgid "What did you work on? (same notes for all entries)"
msgstr ""

#: app/templates/timer/bulk_entry.html:200
#, fuzzy
msgid "tag1, tag2, tag3"
msgstr "tag1, tag2"

#: app/templates/timer/bulk_entry.html:201
msgid "Separate tags with commas (same for all entries)"
msgstr ""

#: app/templates/timer/bulk_entry.html:211
#, fuzzy
msgid "Include in invoices"
msgstr "Suodata laskut"

#: app/templates/timer/bulk_entry.html:223
#, fuzzy
msgid "Create Entries"
msgstr "Viimeaikaiset merkinnät"

#: app/templates/timer/bulk_entry.html:239
#, fuzzy
msgid "Bulk Entry Tips"
msgstr "Joukkopääsy"

#: app/templates/timer/bulk_entry.html:247
msgid "Select start and end dates. Entries will be created for each day in the range."
msgstr ""

#: app/templates/timer/bulk_entry.html:253
#, fuzzy
msgid "Skip Weekends"
msgstr "Viikon trendit"

#: app/templates/timer/bulk_entry.html:254
msgid "Enable to automatically skip Saturdays and Sundays from the date range."
msgstr ""

#: app/templates/timer/bulk_entry.html:260
#, fuzzy
msgid "Same Time Daily"
msgstr "Toimitusaika (päiviä)"

#: app/templates/timer/bulk_entry.html:261
msgid "All entries will use the same start and end time each day."
msgstr ""

#: app/templates/timer/bulk_entry.html:267
msgid "Conflict Check"
msgstr ""

#: app/templates/timer/bulk_entry.html:268
msgid "System will check for existing time entries and prevent overlaps."
msgstr ""

#: app/templates/timer/bulk_entry.html:334
#: app/templates/timer/manual_entry.html:348
#: app/templates/timer/timer_page.html:264
msgid "Failed to load tasks"
msgstr "Tehtävien lataaminen epäonnistui"

#: app/templates/timer/bulk_entry.html:335
#, fuzzy
msgid "Total days"
msgstr "Tavarat yhteensä"

#: app/templates/timer/bulk_entry.html:336
#, fuzzy
msgid "Weekdays only"
msgstr "Viikko alkaa"

#: app/templates/timer/bulk_entry.html:338
#, fuzzy
msgid "Entries will be created for"
msgstr "Aikamerkinnät pyöristetään tähän väliin"

#: app/templates/timer/calendar.html:35
#, fuzzy
msgid "Agenda"
msgstr "Kalenteri"

#: app/templates/timer/calendar.html:52
#, fuzzy
msgid "iCal Format"
msgstr "Aikamuoto"

#: app/templates/timer/calendar.html:53
#, fuzzy
msgid "CSV Format"
msgstr "CSV-tuonti"

#: app/templates/timer/calendar.html:72
#, fuzzy
msgid "Filter by tags..."
msgstr "Suodata tehtävät"

#: app/templates/timer/calendar.html:75
#, fuzzy
msgid "Show billable entries only"
msgstr "Aikamerkintöjä ei löytynyt."

#: app/templates/timer/calendar.html:76
#, fuzzy
msgid "Billable Only"
msgstr "Laskutettava summa"

#: app/templates/timer/calendar.html:84
msgid "Assign to project for new events..."
msgstr ""

#: app/templates/timer/calendar.html:92
#, fuzzy
msgid "Total Hours:"
msgstr "Tunteja yhteensä"

#: app/templates/timer/calendar.html:129 app/templates/timer/calendar.html:1239
#, fuzzy
msgid "Colors assigned by project"
msgstr "Tunnit projektin mukaan"

#: app/templates/timer/calendar.html:142
#, fuzzy
msgid "Create Time Entry"
msgstr "Luo uusi aikamerkintä"

#: app/templates/timer/calendar.html:150
msgid "Select a project..."
msgstr "Valitse projekti..."

#: app/templates/timer/calendar.html:249
#, fuzzy
msgid "Recurring Time Blocks"
msgstr "Toistuvat laskut"

#: app/templates/timer/calendar.html:253
#, fuzzy
msgid "Manage your recurring time entry templates."
msgstr "Luo ajansyöttömalli"

#: app/templates/timer/calendar.html:261
#, fuzzy
msgid "New Recurring Block"
msgstr "Päivitä toistuva lasku"

#: app/templates/timer/calendar.html:280
msgid "Jump to Today"
msgstr ""

#: app/templates/timer/calendar.html:284
msgid "Next Week/Month"
msgstr ""

#: app/templates/timer/calendar.html:288
msgid "Previous Week/Month"
msgstr ""

#: app/templates/timer/calendar.html:292
#, fuzzy
msgid "Navigate Days"
msgstr "Navigointi"

#: app/templates/timer/calendar.html:297
#, fuzzy
msgid "Views"
msgstr "Näytä"

#: app/templates/timer/calendar.html:300
#, fuzzy
msgid "Day View"
msgstr "Ruudukkonäkymä"

#: app/templates/timer/calendar.html:304
#, fuzzy
msgid "Week View"
msgstr "Arvostelu"

#: app/templates/timer/calendar.html:308
#, fuzzy
msgid "Month View"
msgstr "Kuukausi"

#: app/templates/timer/calendar.html:312
#, fuzzy
msgid "Agenda View"
msgstr "Kalenterinäkymä"

#: app/templates/timer/calendar.html:320
#, fuzzy
msgid "Create New Entry"
msgstr "Luo uusi asiakas"

#: app/templates/timer/calendar.html:324
#, fuzzy
msgid "Focus Filter"
msgstr "Näytä suodattimet"

#: app/templates/timer/calendar.html:328
#, fuzzy
msgid "Clear All Filters"
msgstr "Tyhjennä kaikki välimuistit"

#: app/templates/timer/calendar.html:332
#, fuzzy
msgid "Close Modal"
msgstr "Lähellä"

#: app/templates/timer/calendar.html:340
msgid "Show This Help"
msgstr ""

#: app/templates/timer/calendar.html:346
msgid "Got it!"
msgstr ""

#: app/templates/timer/calendar.html:422
#, fuzzy
msgid "Failed to load events"
msgstr "Tehtävien lataaminen epäonnistui"

#: app/templates/timer/calendar.html:436
#, fuzzy
msgid "Please select a project for new entries"
msgstr "Valitse projekti avattavasta valikosta"

#: app/templates/timer/calendar.html:529
#, fuzzy
msgid "Please select a project first"
msgstr "Valitse projekti"

#: app/templates/timer/calendar.html:599
msgid "Showing billable entries only"
msgstr ""

#: app/templates/timer/calendar.html:734
#, fuzzy
msgid "Entry created successfully"
msgstr "Tapahtuma luotu onnistuneesti"

#: app/templates/timer/calendar.html:744
#, fuzzy
msgid "Failed to create entry"
msgstr "Tapahtuman poistaminen epäonnistui"

#: app/templates/timer/calendar.html:767
#, fuzzy
msgid "Entry updated"
msgstr "Viimeksi päivitetty"

#: app/templates/timer/calendar.html:771
#, fuzzy
msgid "Failed to update entry"
msgstr "Tilan päivittäminen epäonnistui"

#: app/templates/timer/calendar.html:828
#, fuzzy
msgid "Are you sure you want to delete this entry?"
msgstr "Haluatko varmasti poistaa tämän muistiinpanon?"

#: app/templates/timer/calendar.html:829
#, fuzzy
msgid "Delete Entry"
msgstr "Poista merkintä"

#: app/templates/timer/calendar.html:890
#, fuzzy
msgid "Automatic Timer"
msgstr "Käynnistä ajastin"

#: app/templates/timer/calendar.html:931
#, fuzzy
msgid "Entry deleted"
msgstr "Poistettu"

#: app/templates/timer/calendar.html:937
#, fuzzy
msgid "Failed to delete entry"
msgstr "Tapahtuman poistaminen epäonnistui"

#: app/templates/timer/calendar.html:955
#, fuzzy
msgid "Export started"
msgstr "Vie tiedot"

#: app/templates/timer/calendar.html:966
#, fuzzy
msgid "No recurring blocks yet"
msgstr "Toistuvat laskut"

#: app/templates/timer/calendar.html:979
#, fuzzy
msgid "Unknown Project"
msgstr "Ei projektia"

#: app/templates/timer/calendar.html:997
#, fuzzy
msgid "Failed to load recurring blocks"
msgstr "Tehtävien lataaminen epäonnistui"

#: app/templates/timer/calendar.html:1039
#, fuzzy
msgid "No events in this period"
msgstr "Ei tehtäviä tässä sarakkeessa."

#: app/templates/timer/calendar.html:1072
#, fuzzy
msgid "Failed to load agenda view"
msgstr "Toimintojen lataaminen epäonnistui"

#: app/templates/timer/calendar.html:1104
#, fuzzy
msgid "Failed to load event details"
msgstr "Tehtävien lataaminen epäonnistui"

#: app/templates/timer/calendar.html:1115
#, fuzzy
msgid "Are you sure you want to delete this recurring block?"
msgstr "Haluatko varmasti poistaa tämän muistiinpanon?"

#: app/templates/timer/calendar.html:1117
#, fuzzy
msgid "Delete Recurring Block"
msgstr "Päivitä toistuva lasku"

#: app/templates/timer/calendar.html:1133
#, fuzzy
msgid "Recurring block deleted"
msgstr "Toistuva tapahtuma"

#: app/templates/timer/calendar.html:1136
#, fuzzy
msgid "Failed to delete recurring block"
msgstr "Tapahtuman poistaminen epäonnistui"

#: app/templates/timer/calendar.html:1147
#, fuzzy
msgid "Enter new start time (YYYY-MM-DD HH:MM):"
msgstr "Anna uusi eräpäivä (VVVV-KK-PP):"

#: app/templates/timer/calendar.html:1180
#, fuzzy
msgid "Entry duplicated successfully"
msgstr "Tapahtuman päivitys onnistui"

#: app/templates/timer/calendar.html:1186
#, fuzzy
msgid "Failed to duplicate entry"
msgstr "Tapahtuman poistaminen epäonnistui"

#: app/templates/timer/calendar.html:1329
msgid "Jumped to today"
msgstr ""

#: app/templates/timer/calendar.html:1413
#, fuzzy
msgid "💡 Press ? to see keyboard shortcuts"
msgstr "Pikanäppäimet"

#: app/templates/timer/edit_timer.html:3
#: app/templates/timer/edit_timer.html:180
#, fuzzy
msgid "Edit Time Entry"
msgstr "Uusi aikamerkintä"

#: app/templates/timer/edit_timer.html:104
msgid "These updates will modify this time entry permanently."
msgstr ""

#: app/templates/timer/edit_timer.html:106
#, fuzzy
msgid "Confirm Changes"
msgstr "Vahvistettu"

#: app/templates/timer/edit_timer.html:107
#, fuzzy
msgid "Confirm & Save"
msgstr "Vahvistettu"

#: app/templates/timer/edit_timer.html:188
#, fuzzy
msgid "Admin Mode"
msgstr "Admin Group"

#: app/templates/timer/edit_timer.html:204
#, fuzzy
msgid "Admin Mode:"
msgstr "Admin Group"

#: app/templates/timer/edit_timer.html:204
msgid "You can edit all fields of this time entry, including project, task, start/end times, and source."
msgstr ""

#: app/templates/timer/edit_timer.html:215
msgid "You can edit this entry's project, task, start and end times, and break."
msgstr ""

#: app/templates/timer/edit_timer.html:238
#, fuzzy
msgid "Select the project this time entry belongs to"
msgstr "Valitse projekti, johon tämä tehtävä kuuluu"

#: app/templates/timer/edit_timer.html:242
#, fuzzy
msgid "Task (Optional)"
msgstr "Tehtävä (valinnainen)"

#: app/templates/timer/edit_timer.html:252
#, fuzzy
msgid "Select a specific task within the project"
msgstr "Valittu tehtävä on virheellinen valitulle projektille"

#: app/templates/timer/edit_timer.html:264
#, fuzzy
msgid "When the work started"
msgstr "Viikon aloituspäivä"

#: app/templates/timer/edit_timer.html:272
msgid "Time the work started"
msgstr ""

#: app/templates/timer/edit_timer.html:284
msgid "When the work ended (leave empty if still running)"
msgstr ""

#: app/templates/timer/edit_timer.html:292
#, fuzzy
msgid "Time the work ended"
msgstr "Asiakassopimus päättyi"

#: app/templates/timer/edit_timer.html:300
msgid "Break duration (HH:MM). Subtracted from total to get worked duration."
msgstr ""

#: app/templates/timer/edit_timer.html:313
#: app/templates/timer/edit_timer.html:439
#, fuzzy
msgid "Automatic"
msgstr "Valtuutus"

#: app/templates/timer/edit_timer.html:315
#, fuzzy
msgid "How this entry was created"
msgstr "Asiakas luotu"

#: app/templates/timer/edit_timer.html:328
#: app/templates/timer/edit_timer.html:431
#, fuzzy
msgid "Duration:"
msgstr "Kesto"

#: app/templates/timer/edit_timer.html:340
#: app/templates/timer/edit_timer.html:451
#: app/templates/timer/edit_timer.html:606
#, fuzzy
msgid "Describe what you worked on"
msgstr "Mitä työskentelit?"

#: app/templates/timer/edit_timer.html:350
#: app/templates/timer/edit_timer.html:462
#: app/templates/timer/manual_entry.html:149
msgid "tag1, tag2"
msgstr "tag1, tag2"

#: app/templates/timer/edit_timer.html:351
#: app/templates/timer/edit_timer.html:463
msgid "Separate tags with commas"
msgstr ""

#: app/templates/timer/edit_timer.html:368
#: app/templates/timer/edit_timer.html:489
#, fuzzy
msgid "Internal invoice reference"
msgstr "Laskuja ei ole valittu"

#: app/templates/timer/edit_timer.html:369
#: app/templates/timer/edit_timer.html:490
#, fuzzy
msgid "Reference to internal invoice number"
msgstr "Kuitin/laskun numero"

#: app/templates/timer/edit_timer.html:376
#: app/templates/timer/edit_timer.html:497
#, fuzzy
msgid "Reason for Change"
msgstr "Syy arkistointiin"

#: app/templates/timer/edit_timer.html:376
#: app/templates/timer/edit_timer.html:497
#: app/templates/timer/time_entries_overview.html:175
msgid "Optional but recommended"
msgstr ""

#: app/templates/timer/edit_timer.html:378
#: app/templates/timer/edit_timer.html:499
msgid "e.g., Corrected duration, updated project assignment, etc."
msgstr ""

#: app/templates/timer/edit_timer.html:379
#: app/templates/timer/edit_timer.html:500
msgid "Explain why you are making these changes"
msgstr ""

#: app/templates/timer/edit_timer.html:412
#, fuzzy
msgid "Task:"
msgstr "Tehtävä"

#: app/templates/timer/edit_timer.html:417
#, fuzzy
msgid "Start:"
msgstr "Aloita"

#: app/templates/timer/edit_timer.html:421
#, fuzzy
msgid "End:"
msgstr "Loppu"

#: app/templates/timer/edit_timer.html:525
#: app/templates/timer/view_timer.html:24
msgid "Entry Details"
msgstr ""

#: app/templates/timer/edit_timer.html:547
#, fuzzy
msgid "Admin Notice"
msgstr "Lisää huomautus"

#: app/templates/timer/edit_timer.html:550
msgid "As an admin, you have full editing privileges for this time entry. Changes will be logged for audit purposes."
msgstr ""

#: app/templates/timer/manual_entry.html:8
msgid "Duplicate Entry"
msgstr "Päällekkäinen merkintä"

#: app/templates/timer/manual_entry.html:13
msgid "Duplicate Time Entry"
msgstr "Päällekkäinen aikamerkintä"

#: app/templates/timer/manual_entry.html:13
msgid "Log Time Manually"
msgstr "Kirjaa aika manuaalisesti"

#: app/templates/timer/manual_entry.html:14
msgid "Create a copy of a previous entry with new times"
msgstr "Luo kopio aiemmasta merkinnästä uusilla kellonajoilla"

#: app/templates/timer/manual_entry.html:14
msgid "Create a new time entry"
msgstr "Luo uusi aikamerkintä"

#: app/templates/timer/manual_entry.html:25
msgid "Duplicating entry:"
msgstr "Päällekkäinen merkintä:"

#: app/templates/timer/manual_entry.html:33
msgid "Original:"
msgstr "Alkuperäinen:"

#: app/templates/timer/manual_entry.html:33
msgid "to"
msgstr "to"

#: app/templates/timer/manual_entry.html:57
#, fuzzy
msgid "Project & task"
msgstr "Projektit"

#: app/templates/timer/manual_entry.html:92
#, fuzzy
msgid "Date & time"
msgstr "Päivämäärä ja aika"

#: app/templates/timer/manual_entry.html:117
msgid "Worked Time"
msgstr ""

#: app/templates/timer/manual_entry.html:119
msgid "Optional: enter HH:MM for duration. You can combine with Start Date/Time to log time on a specific day."
msgstr ""

#: app/templates/timer/manual_entry.html:125
msgid "Suggest break based on duration (e.g. >6h: 30 min, >9h: 45 min)"
msgstr ""

#: app/templates/timer/manual_entry.html:125
#, fuzzy
msgid "Suggest"
msgstr "Vieras"

#: app/templates/timer/manual_entry.html:127
msgid "Optional: break duration (HH:MM). Subtracted from total time to get worked duration."
msgstr ""

#: app/templates/timer/manual_entry.html:398
msgid "Session may have expired. Please refresh the page and try again."
msgstr ""

#: app/templates/timer/manual_entry.html:410
msgid "Project not found or inactive"
msgstr ""

#: app/templates/timer/manual_entry.html:780
msgid "What did you work on?"
msgstr "Mitä työskentelit?"

#: app/templates/timer/time_entries_export_pdf.html:2
#: app/templates/timer/time_entries_export_pdf.html:5
msgid "Time Entries Export"
msgstr ""

#: app/templates/timer/time_entries_export_pdf.html:7
msgid "Generated at"
msgstr ""

#: app/templates/timer/time_entries_overview.html:15
msgid "View and manage all time entries"
msgstr ""

#: app/templates/timer/time_entries_overview.html:24
msgid "Paid Hours"
msgstr ""

#: app/templates/timer/time_entries_overview.html:34
#: app/templates/timer/time_entries_overview.html:35
#: app/templates/timer/time_entries_overview.html:134
#, fuzzy
msgid "Apply filters"
msgstr "Käytä suodatinta"

#: app/templates/timer/time_entries_overview.html:58
msgid "Toggle filters"
msgstr ""

#: app/templates/timer/time_entries_overview.html:102
msgid "Paid Status"
msgstr ""

#: app/templates/timer/time_entries_overview.html:110
msgid "Billable Status"
msgstr ""

#: app/templates/timer/time_entries_overview.html:119
msgid "Search in notes and tags..."
msgstr ""

#: app/templates/timer/time_entries_overview.html:171
msgid "Delete Selected Time Entries"
msgstr ""

#: app/templates/timer/time_entries_overview.html:175
msgid "Reason for Deletion"
msgstr ""

#: app/templates/timer/time_entries_overview.html:177
msgid "e.g., Duplicate entry, incorrect time, etc."
msgstr ""

#: app/templates/timer/time_entries_overview.html:195
msgid "Mark Selected Entries as Paid/Unpaid"
msgstr ""

#: app/templates/timer/time_entries_overview.html:203
msgid "e.g., Invoice number or payment reference"
msgstr ""

#: app/templates/timer/time_entries_overview.html:322
#: app/templates/timer/time_entries_overview.html:384
msgid "Please select at least one time entry"
msgstr ""

#: app/templates/timer/time_entries_overview.html:388
msgid "time entry/entries"
msgstr ""

#: app/templates/timer/timer_page.html:13
msgid "Track your time with a visual timer"
msgstr "Seuraa aikaasi visuaalisen ajastimen avulla"

#: app/templates/timer/timer_page.html:100
msgid "Estimated Completion"
msgstr "Arvioitu valmistuminen"

#: app/templates/timer/timer_page.html:102
msgid "Calculating..."
msgstr "Lasketaan..."

#: app/templates/timer/timer_page.html:105
msgid "Based on average session duration"
msgstr ""

#: app/templates/timer/timer_page.html:122
msgid "No active timer. Start one below!"
msgstr "Ei aktiivista ajastinta. Aloita yksi alta!"

#: app/templates/timer/timer_page.html:130
msgid "Start New Timer"
msgstr "Käynnistä uusi ajastin"

#: app/templates/timer/timer_page.html:171
msgid "Add notes about what you're working on..."
msgstr "Lisää muistiinpanoja työstäsi..."

#: app/templates/timer/timer_page.html:177
msgid "Or use a template"
msgstr "Tai käytä mallia"

#: app/templates/timer/timer_page.html:220
msgid "Recent Projects"
msgstr ""

#: app/templates/timer/timer_page.html:238
msgid "Today's Stats"
msgstr "Tämän päivän tilastot"

#: app/templates/timer/view_timer.html:9
msgid "View Entry"
msgstr ""

#: app/templates/timer/view_timer.html:15
msgid "View time entry details"
msgstr ""

#: app/templates/timer/view_timer.html:67
msgid "Project & Client"
msgstr ""

#: app/templates/timer/view_timer.html:104
#, fuzzy
msgid "Approval"
msgstr "Hyväksyä"

#: app/templates/timer/view_timer.html:115
msgid "Status & Billing"
msgstr ""

#: app/templates/user/license.html:8
msgid "Supporter badge: confirm your key and thank you for funding development."
msgstr ""

#: app/templates/user/license.html:12
#, fuzzy
msgid "License status"
msgstr "Lisenssi"

#: app/templates/user/license.html:16
#, fuzzy
msgid "Supporter license active"
msgstr "Tuetut ominaisuudet"

#: app/templates/user/license.html:18
msgid "Thank you for supporting TimeTracker. Your badge confirms this instance as a supporter — no features are locked."
msgstr ""

#: app/templates/user/license.html:22
#, fuzzy
msgid "Not activated"
msgstr "Aktivoida"

#: app/templates/user/license.html:25
msgid "Purchase a supporter license (€25) to unlock the supporter badge for this instance. The app stays fully free either way."
msgstr ""

#: app/templates/user/license.html:35
#, fuzzy
msgid "Enter license key"
msgstr "Anna asiakkaan nimi"

#: app/templates/user/license.html:36
msgid "Paste the license key you received by email after purchase."
msgstr ""

#: app/templates/user/license.html:40
#, fuzzy
msgid "License key"
msgstr "Lisenssi"

#: app/templates/user/license.html:43
msgid "Paste your key here"
msgstr ""

#: app/templates/user/license.html:46
#, fuzzy
msgid "Validate"
msgstr "Päivämäärä"

#: app/templates/user/license.html:50
msgid "Need a key?"
msgstr ""

#: app/templates/user/license.html:51
msgid "Purchase a license key"
msgstr ""

#: app/templates/user/license.html:57
#, fuzzy
msgid "Back to Settings"
msgstr "Varmuuskopiointiasetukset"

#: app/templates/user/profile.html:2
msgid "Profile"
msgstr "Profiili"

#: app/templates/user/profile.html:106
msgid "In progress"
msgstr "Käynnissä"

#: app/templates/user/profile.html:120
msgid "View all time entries"
msgstr "Näytä kaikkien aikojen merkinnät"

#: app/templates/user/profile.html:124
msgid "No recent time entries"
msgstr "Ei viimeaikaisia ​​aikamerkintöjä"

#: app/templates/user/settings.html:8
msgid "Manage your account settings and preferences"
msgstr "Hallinnoi tilisi asetuksia ja asetuksia"

#: app/templates/user/settings.html:14
#, fuzzy
msgid "Support & Community"
msgstr "Avoin lähdekoodi ja yhteisö"

#: app/templates/user/settings.html:19
msgid "TimeTracker is free and open source. Funding comes from optional donations and supporter licenses — never from locking features."
msgstr ""

#: app/templates/user/settings.html:21
msgid "This instance already has a supporter license. Thank you — you can still donate or share the app anytime."
msgstr ""

#: app/templates/user/settings.html:23
msgid "If the app saves you time, you can donate or buy a supporter license (€25). A license shows a Supporter badge; it does not change what you can use."
msgstr ""

#: app/templates/user/settings.html:27
msgid "License & supporter key"
msgstr ""

#: app/templates/user/settings.html:28
msgid "Checkout on timetracker.drytrix.com"
msgstr ""

#: app/templates/user/settings.html:40
msgid "Profile Information"
msgstr "Profiilin tiedot"

#: app/templates/user/settings.html:53
msgid "Username cannot be changed"
msgstr "Käyttäjätunnusta ei voi muuttaa"

#: app/templates/user/settings.html:71
msgid "Required for email notifications"
msgstr "Vaaditaan sähköposti-ilmoituksia varten"

#: app/templates/user/settings.html:81
msgid "Notification Preferences"
msgstr "Ilmoitusasetukset"

#: app/templates/user/settings.html:93
msgid "Enable Email Notifications"
msgstr "Ota sähköposti-ilmoitukset käyttöön"

#: app/templates/user/settings.html:94
msgid "Master switch for all email notifications"
msgstr "Pääkytkin kaikille sähköposti-ilmoituksille"

#: app/templates/user/settings.html:104
msgid "Overdue Invoice Notifications"
msgstr "Myöhästyneiden laskujen ilmoitukset"

#: app/templates/user/settings.html:113
msgid "Task Assignment Notifications"
msgstr "Tehtävätehtävien ilmoitukset"

#: app/templates/user/settings.html:122
msgid "Comment & Mention Notifications"
msgstr "Kommentti- ja mainintailmoitukset"

#: app/templates/user/settings.html:131
msgid "Weekly Time Summary Email"
msgstr "Viikoittainen ajan yhteenveto sähköposti"

#: app/templates/user/settings.html:140
msgid "Remind me to log time at end of day"
msgstr ""

#: app/templates/user/settings.html:144
msgid "Reminder time (your timezone)"
msgstr ""

#: app/templates/user/settings.html:149
msgid "In-app reminders (toasts)"
msgstr ""

#: app/templates/user/settings.html:155
#, fuzzy
msgid "Enable smart notifications on this device"
msgstr "Ota sähköposti-ilmoitukset käyttöön"

#: app/templates/user/settings.html:163
msgid "Nudge when no time logged today (uses hour from app settings or override below)"
msgstr ""

#: app/templates/user/settings.html:169
msgid "Alert when a timer runs longer than the configured threshold"
msgstr ""

#: app/templates/user/settings.html:175
msgid "End-of-day summary (logged hours today)"
msgstr ""

#: app/templates/user/settings.html:181
msgid "Also use browser notifications when permission is granted"
msgstr ""

#: app/templates/user/settings.html:185
msgid "No-tracking nudge hour (optional override, HH:MM)"
msgstr ""

#: app/templates/user/settings.html:191
msgid "Summary hour (optional override, HH:MM)"
msgstr ""

#: app/templates/user/settings.html:207
msgid "Display Preferences"
msgstr "Näyttöasetukset"

#: app/templates/user/settings.html:219 app/templates/user/settings.html:231
#: app/templates/user/settings.html:423
msgid "System Default"
msgstr "Järjestelmän oletusarvo"

#: app/templates/user/settings.html:245
msgid "Time Rounding Preferences"
msgstr "Ajan pyöristysasetukset"

#: app/templates/user/settings.html:251
msgid "Configure how your time entries are rounded. This affects how durations are calculated when you stop timers."
msgstr "Määritä, miten aikamerkinnät pyöristetään. Tämä vaikuttaa siihen, miten kestot lasketaan, kun pysäytät ajastimet."

#: app/templates/user/settings.html:261
msgid "Enable Time Rounding"
msgstr "Ota ajanpyöristys käyttöön"

#: app/templates/user/settings.html:262
msgid "Round time entries to configured intervals"
msgstr "Pyöreäajan merkinnät määritettyihin aikaväleihin"

#: app/templates/user/settings.html:269
msgid "Rounding Interval"
msgstr "Pyöristysväli"

#: app/templates/user/settings.html:277
msgid "Time entries will be rounded to this interval"
msgstr "Aikamerkinnät pyöristetään tähän väliin"

#: app/templates/user/settings.html:282
msgid "Rounding Method"
msgstr "Pyöristysmenetelmä"

#: app/templates/user/settings.html:312
msgid "Overtime Settings"
msgstr "Ylityöasetukset"

#: app/templates/user/settings.html:318
msgid "Choose whether overtime is calculated per day or per week, and set your standard hours accordingly."
msgstr ""

#: app/templates/user/settings.html:322
msgid "Calculate overtime by"
msgstr ""

#: app/templates/user/settings.html:328
#, fuzzy
msgid "Daily hours"
msgstr "Päivittäiset tunnit"

#: app/templates/user/settings.html:334
#, fuzzy
msgid "Weekly hours"
msgstr "Viikoittaiset tavoitteet"

#: app/templates/user/settings.html:342
msgid "Standard Hours Per Day"
msgstr "Normaali tuntia päivässä"

#: app/templates/user/settings.html:351
msgid "Typically 8 hours for a full-time job"
msgstr "Tyypillisesti 8 tuntia kokoaikatyössä"

#: app/templates/user/settings.html:357
#, fuzzy
msgid "Standard Hours Per Week"
msgstr "Normaali tuntia päivässä"

#: app/templates/user/settings.html:366
msgid "e.g. 20 for a part-time week, 40 for full-time"
msgstr ""

#: app/templates/user/settings.html:373 app/templates/user/settings.html:383
msgid "How it works"
msgstr "Miten se toimii"

#: app/templates/user/settings.html:376
msgid "If you work more than your standard hours in a day, the extra time will be tracked as overtime in reports and analytics."
msgstr ""

#: app/templates/user/settings.html:386
msgid "Overtime is calculated per week: any hours beyond your standard hours per week count as overtime. Suited for contracts based on weekly hours."
msgstr ""

#: app/templates/user/settings.html:396
msgid "Count weekend hours in overtime"
msgstr ""

#: app/templates/user/settings.html:398
msgid "When unchecked, any hours worked on Saturday or Sunday are always counted as overtime."
msgstr ""

#: app/templates/user/settings.html:410
msgid "Regional Settings"
msgstr ""

#: app/templates/user/settings.html:436 app/templates/user/settings.html:450
msgid "Use system default"
msgstr ""

#: app/templates/user/settings.html:446
msgid "Time Format"
msgstr "Aikamuoto"

#: app/templates/user/settings.html:458
msgid "Week Starts On"
msgstr "Viikko alkaa"

#: app/templates/user/settings.html:462
msgid "Sunday"
msgstr "sunnuntai"

#: app/templates/user/settings.html:463
msgid "Monday"
msgstr "maanantai"

#: app/templates/user/settings.html:464
msgid "Saturday"
msgstr "lauantai"

#: app/templates/user/settings.html:470
#, fuzzy
msgid "Calendar default view"
msgstr "Kalenterinäkymä"

#: app/templates/user/settings.html:474
#, fuzzy
msgid "Remember last view"
msgstr "Jäsen vuodesta"

#: app/templates/user/settings.html:485
msgid "Support visibility (hiding donate/support UI) is configured system-wide by administrators in Admin → Settings."
msgstr ""

#: app/templates/user/settings.html:486
msgid "Administrators can purchase a key to hide these prompts:"
msgstr ""

#: app/templates/user/settings.html:487
#, fuzzy
msgid "Support & Purchase Key"
msgstr "Luo ostotilaus"

#: app/templates/user/settings.html:564
msgid "Time rounding is disabled. All times will be recorded exactly as tracked."
msgstr "Ajan pyöristys ei ole käytössä. Kaikki ajat tallennetaan täsmälleen seurannan mukaan."

#: app/templates/user/settings.html:569
msgid "No rounding - times will be recorded exactly as tracked."
msgstr "Ei pyöristystä – ajat kirjataan täsmälleen seurannan mukaan."

#: app/templates/user/settings.html:595
msgid "Actual time:"
msgstr "Todellinen aika:"

#: app/templates/user/settings.html:595
msgid "Rounded:"
msgstr "Pyöristetty:"

#: app/templates/user/settings.html:596
msgid "With "
msgstr "Kanssa"

#: app/templates/user/settings.html:596
msgid " minute intervals"
msgstr "minuutin välein"

#: app/templates/weekly_goals/create.html:3
msgid "Create Weekly Goal"
msgstr "Luo viikkotavoite"

#: app/templates/weekly_goals/create.html:11
msgid "Create Weekly Time Goal"
msgstr "Luo viikoittainen aikatavoite"

#: app/templates/weekly_goals/create.html:14
msgid "Set a target for hours to work this week"
msgstr ""

#: app/templates/weekly_goals/create.html:26
#: app/templates/weekly_goals/edit.html:42
#: app/templates/weekly_goals/index.html:83
#: app/templates/weekly_goals/view.html:39
msgid "Target Hours"
msgstr "Tavoitetunnit"

#: app/templates/weekly_goals/create.html:41
msgid "How many hours do you want to work this week?"
msgstr ""

#: app/templates/weekly_goals/create.html:48
msgid "Week Start Date"
msgstr "Viikon aloituspäivä"

#: app/templates/weekly_goals/create.html:55
msgid "Leave blank to use current week (starting Monday)"
msgstr "Jätä tyhjäksi käyttääksesi kuluvaa viikkoa (maanantaista alkaen)"

#: app/templates/weekly_goals/create.html:71
#: app/templates/weekly_goals/edit.html:71
msgid "Exclude weekends (5-day work week)"
msgstr ""

#: app/templates/weekly_goals/create.html:74
#: app/templates/weekly_goals/edit.html:74
msgid "If checked, the goal will only count Monday through Friday. Week ends on Friday instead of Sunday."
msgstr ""

#: app/templates/weekly_goals/create.html:88
#: app/templates/weekly_goals/edit.html:103
msgid "Optional notes about your goal..."
msgstr "Valinnaisia ​​huomautuksia tavoitteestasi..."

#: app/templates/weekly_goals/create.html:95
msgid "Quick Presets"
msgstr ""

#: app/templates/weekly_goals/create.html:143
msgid "Tips for Setting Goals"
msgstr "Vinkkejä tavoitteiden asettamiseen"

#: app/templates/weekly_goals/create.html:147
msgid "Be realistic: Consider holidays, meetings, and other commitments"
msgstr "Ole realistinen: Harkitse lomia, kokouksia ja muita sitoumuksia"

#: app/templates/weekly_goals/create.html:148
msgid "Start conservative: You can always adjust your goal later"
msgstr "Aloita konservatiivisesti: Voit aina muuttaa tavoitettasi myöhemmin"

#: app/templates/weekly_goals/create.html:149
msgid "Track progress: Check your dashboard regularly to stay on track"
msgstr "Seuraa edistymistä: Tarkista kojelautasi säännöllisesti, jotta pysyt ajan tasalla"

#: app/templates/weekly_goals/create.html:150
msgid "Typical full-time: 40 hours per week (8 hours/day, 5 days)"
msgstr "Tyypillinen kokoaika: 40 tuntia viikossa (8 tuntia/päivä, 5 päivää)"

#: app/templates/weekly_goals/create.html:151
msgid "Use \"Exclude weekends\" for a 5-day work week (Monday-Friday) instead of 7 days"
msgstr ""

#: app/templates/weekly_goals/edit.html:3
msgid "Edit Weekly Goal"
msgstr "Muokkaa viikkotavoitetta"

#: app/templates/weekly_goals/edit.html:11
msgid "Edit Weekly Time Goal"
msgstr "Muokkaa viikoittaista aikatavoitetta"

#: app/templates/weekly_goals/edit.html:27
msgid "Week Period"
msgstr "Viikon jakso"

#: app/templates/weekly_goals/edit.html:31
msgid "Current Progress"
msgstr "Nykyinen edistyminen"

#: app/templates/weekly_goals/edit.html:115
msgid "Are you sure you want to delete this goal?"
msgstr "Haluatko varmasti poistaa tämän tavoitteen?"

#: app/templates/weekly_goals/edit.html:115
msgid "Delete Goal"
msgstr "Poista tavoite"

#: app/templates/weekly_goals/index.html:4
#: app/templates/weekly_goals/index.html:13
msgid "Weekly Time Goals"
msgstr "Viikoittaiset aikatavoitteet"

#: app/templates/weekly_goals/index.html:14
msgid "Set and track your weekly hour targets"
msgstr "Aseta ja seuraa viikoittaisia ​​tuntitavoitteitasi"

#: app/templates/weekly_goals/index.html:16
msgid "New Goal"
msgstr "Uusi tavoite"

#: app/templates/weekly_goals/index.html:27
msgid "Total Goals"
msgstr "Tavoitteet yhteensä"

#: app/templates/weekly_goals/index.html:63
msgid "Success Rate"
msgstr "Onnistumisprosentti"

#: app/templates/weekly_goals/index.html:75
msgid "Current Week Goal"
msgstr "Nykyisen viikon tavoite"

#: app/templates/weekly_goals/index.html:106
#: app/templates/weekly_goals/view.html:106
msgid "Remaining Hours"
msgstr "Jäljellä olevat tunnit"

#: app/templates/weekly_goals/index.html:110
#: app/templates/weekly_goals/view.html:110
msgid "Days Remaining"
msgstr "Päiviä jäljellä"

#: app/templates/weekly_goals/index.html:114
#: app/templates/weekly_goals/view.html:114
msgid "Avg Hours/Day Needed"
msgstr "Keskimääräinen tarvittava tunti/päivä"

#: app/templates/weekly_goals/index.html:126
msgid "Edit Goal"
msgstr "Muokkaa tavoitetta"

#: app/templates/weekly_goals/index.html:139
msgid "No goal set for this week"
msgstr "Tälle viikolle ei ole asetettu tavoitetta"

#: app/templates/weekly_goals/index.html:142
msgid "Create a weekly time goal to start tracking your progress"
msgstr "Luo viikoittainen aikatavoite alkaaksesi seurata edistymistäsi"

#: app/templates/weekly_goals/index.html:158
msgid "Goal History"
msgstr "Maalihistoria"

#: app/templates/weekly_goals/index.html:185
msgid "Target"
msgstr "Kohde"

#: app/templates/weekly_goals/view.html:3
#: app/templates/weekly_goals/view.html:12
msgid "Weekly Goal Details"
msgstr "Viikoittaisen tavoitteen tiedot"

#: app/templates/weekly_goals/view.html:18
msgid "5-day work week"
msgstr ""

#: app/templates/weekly_goals/view.html:124
msgid "Daily Breakdown"
msgstr "Päivittäinen erittely"

#: app/templates/weekly_goals/view.html:136
msgid "excluded"
msgstr ""

#: app/templates/weekly_goals/view.html:174
msgid "Time Entries This Week"
msgstr "Aikakirjaukset tällä viikolla"

#: app/templates/weekly_goals/view.html:188
msgid "No Project"
msgstr "Ei projektia"

#: app/templates/weekly_goals/view.html:224
msgid "No time entries recorded for this week yet"
msgstr "Tälle viikolle ei ole vielä tallennettu aikamerkintöjä"

#: app/templates/workforce/dashboard.html:2
#: app/templates/workforce/dashboard.html:7
msgid "Workforce Governance"
msgstr ""

#: app/templates/workforce/dashboard.html:11
#, fuzzy
msgid "Reference date"
msgstr "Viitetyyppi"

#: app/templates/workforce/dashboard.html:14
#, fuzzy
msgid "Create/Get Period"
msgstr "Luo ostotilaus"

#: app/templates/workforce/dashboard.html:29
#, fuzzy
msgid "Start date"
msgstr "Aloituspäivämäärä"

#: app/templates/workforce/dashboard.html:33
#, fuzzy
msgid "End date"
msgstr "Päättymispäivämäärä"

#: app/templates/workforce/dashboard.html:42
#, fuzzy
msgid "Exports"
msgstr "Viedä"

#: app/templates/workforce/dashboard.html:43
msgid "Download payroll, capacity, and compliance exports"
msgstr ""

#: app/templates/workforce/dashboard.html:46
msgid "Payroll CSV"
msgstr ""

#: app/templates/workforce/dashboard.html:47
msgid "Capacity CSV"
msgstr ""

#: app/templates/workforce/dashboard.html:49
msgid "Locked Periods CSV"
msgstr ""

#: app/templates/workforce/dashboard.html:50
#, fuzzy
msgid "Audit Events CSV"
msgstr "Muokkaa tapahtumaa"

#: app/templates/workforce/dashboard.html:57
#, fuzzy
msgid "Timesheet Periods"
msgstr "Viikon jakso"

#: app/templates/workforce/dashboard.html:70
#, fuzzy
msgid "Submit"
msgstr "Aihe"

#: app/templates/workforce/dashboard.html:101
#, fuzzy
msgid "No timesheet periods yet."
msgstr "Aikamerkintöjä ei ole vielä tallennettu"

#: app/templates/workforce/dashboard.html:107
#, fuzzy
msgid "Leave Balances"
msgstr "Tallenna muutokset"

#: app/templates/workforce/dashboard.html:110
msgid "Accumulated overtime (YTD)"
msgstr ""

#: app/templates/workforce/dashboard.html:112
msgid "Take as paid leave"
msgstr ""

#: app/templates/workforce/dashboard.html:121
msgid "Allowance"
msgstr ""

#: app/templates/workforce/dashboard.html:122
#, fuzzy
msgid "Used"
msgstr "käyttäjä"

#: app/templates/workforce/dashboard.html:135
#: app/templates/workforce/dashboard.html:271
#, fuzzy
msgid "No leave types configured."
msgstr "Ei määritetty"

#: app/templates/workforce/dashboard.html:145
msgid "Time-Off Requests"
msgstr ""

#: app/templates/workforce/dashboard.html:149
#, fuzzy
msgid "Select leave type"
msgstr "Valitse Asiakas"

#: app/templates/workforce/dashboard.html:157
#: app/templates/workforce/dashboard.html:327
#, fuzzy
msgid "Requested hours"
msgstr "Arvioidut tunnit"

#: app/templates/workforce/dashboard.html:159
#, fuzzy
msgid "Available overtime (YTD)"
msgstr "Saatavilla olevat muuttujat"

#: app/templates/workforce/dashboard.html:164
#, fuzzy
msgid "Comment"
msgstr "Kommentit"

#: app/templates/workforce/dashboard.html:165
msgid "Submit time-off request"
msgstr ""

#: app/templates/workforce/dashboard.html:203
msgid "Capacity"
msgstr ""

#: app/templates/workforce/dashboard.html:209
#, fuzzy
msgid "Expected"
msgstr "Hylätty"

#: app/templates/workforce/dashboard.html:210
#, fuzzy
msgid "Allocated"
msgstr "Luotu"

#: app/templates/workforce/dashboard.html:211
#, fuzzy
msgid "Time Off"
msgstr "Aika"

#: app/templates/workforce/dashboard.html:213
#, fuzzy
msgid "Utilization %"
msgstr "Valtuutus"

#: app/templates/workforce/dashboard.html:227
#, fuzzy
msgid "No capacity data available."
msgstr "Palamisnopeustietoja ei ole saatavilla"

#: app/templates/workforce/dashboard.html:238
msgid "Timesheet Policy"
msgstr ""

#: app/templates/workforce/dashboard.html:241
msgid "Auto lock days"
msgstr ""

#: app/templates/workforce/dashboard.html:242
msgid "Approver user IDs (comma separated)"
msgstr ""

#: app/templates/workforce/dashboard.html:243
#, fuzzy
msgid "Enable multi-level approval"
msgstr "Ota asiakasportaali käyttöön"

#: app/templates/workforce/dashboard.html:244
msgid "Require rejection comment"
msgstr ""

#: app/templates/workforce/dashboard.html:245
#, fuzzy
msgid "Enable admin override"
msgstr "Laskutettavan tilan ohitus"

#: app/templates/workforce/dashboard.html:246
#, fuzzy
msgid "Save policy"
msgstr "Vain aktiivinen"

#: app/templates/workforce/dashboard.html:251
#, fuzzy
msgid "Leave Types"
msgstr "Tapahtuman tyyppi"

#: app/templates/workforce/dashboard.html:256
msgid "Annual allowance (hours)"
msgstr ""

#: app/templates/workforce/dashboard.html:257
#, fuzzy
msgid "Accrual hours per month"
msgstr "Todelliset tunnit"

#: app/templates/workforce/dashboard.html:258
msgid "Paid leave"
msgstr ""

#: app/templates/workforce/dashboard.html:259
#, fuzzy
msgid "Add leave type"
msgstr "Tapahtuman tyyppi"

#: app/templates/workforce/dashboard.html:264
#, fuzzy
msgid "disabled"
msgstr "Ei käytössä"

#: app/templates/workforce/dashboard.html:277
#, fuzzy
msgid "Company Holidays"
msgstr "Yrityksen tiedot"

#: app/templates/workforce/dashboard.html:280
#, fuzzy
msgid "Holiday name"
msgstr "Roolin nimi"

#: app/templates/workforce/dashboard.html:283
#, fuzzy
msgid "Region (optional)"
msgstr "Huomautukset (valinnainen)"

#: app/templates/workforce/dashboard.html:284
#, fuzzy
msgid "Add holiday"
msgstr "Lisää Hyvä"

#: app/templates/workforce/dashboard.html:296
#, fuzzy
msgid "No holidays configured."
msgstr "Webhookeja ei ole määritetty"

#: app/templates/workforce/dashboard.html:321
msgid "hours (max from overtime)"
msgstr ""

#: app/utils/context_processors.py:222 app/utils/context_processors.py:257
msgid "Support"
msgstr "Tukea"

#: app/utils/context_processors.py:226
msgid "That report was quick to generate. If TimeTracker saves you time, consider supporting its development."
msgstr ""

#: app/utils/context_processors.py:252
msgid "You appear to be offline. Reconnect to open donation or checkout links."
msgstr ""

#: app/utils/context_processors.py:255
msgid "Link copied to clipboard"
msgstr ""

#: app/utils/context_processors.py:256
msgid "Could not copy link"
msgstr ""

#: app/utils/context_processors.py:258
msgid "You have been using TimeTracker actively for a while. If it helps your work, consider supporting its development."
msgstr ""

#: app/utils/i18n_helpers.py:91 app/utils/i18n_helpers.py:102
msgid "Overpaid"
msgstr "Ylimaksettu"

#: app/utils/i18n_helpers.py:110 app/utils/i18n_helpers.py:126
msgid "Cash"
msgstr "käteistä"

#: app/utils/i18n_helpers.py:111 app/utils/i18n_helpers.py:127
msgid "Check"
msgstr "Tarkista"

#: app/utils/i18n_helpers.py:112 app/utils/i18n_helpers.py:128
msgid "Bank Transfer"
msgstr "Pankkisiirto"

#: app/utils/i18n_helpers.py:113 app/utils/i18n_helpers.py:129
msgid "Credit Card"
msgstr "Luottokortti"

#: app/utils/i18n_helpers.py:114 app/utils/i18n_helpers.py:130
msgid "Debit Card"
msgstr "Pankkikortti"

#: app/utils/i18n_helpers.py:116 app/utils/i18n_helpers.py:132
msgid "Stripe"
msgstr "Raita"

#: app/utils/i18n_helpers.py:117 app/utils/i18n_helpers.py:133
msgid "Company Card"
msgstr "Yrityskortti"

#: app/utils/i18n_helpers.py:145 app/utils/i18n_helpers.py:156
msgid "Reimbursed"
msgstr "Korvataan"

#: app/utils/i18n_helpers.py:221 app/utils/i18n_helpers.py:233
msgid "Processing"
msgstr "Käsittely"

#: app/utils/i18n_helpers.py:266
msgid "80% Budget Warning"
msgstr "80 %:n budjettivaroitus"

#: app/utils/i18n_helpers.py:267
msgid "Budget Limit Reached"
msgstr "Budjettiraja saavutettu"

#: app/utils/i18n_helpers.py:275 app/utils/i18n_helpers.py:281
msgid "Info"
msgstr "Tiedot"

#: app/utils/module_helpers.py:48
msgid "Authentication required."
msgstr ""

#: app/utils/module_helpers.py:62
#, python-format
msgid "Module '%(module)s' is disabled."
msgstr ""

#: app/utils/module_helpers.py:70
#, python-format
msgid "Module '%(module)s' is disabled. Enable it in Settings."
msgstr ""

#: app/utils/pdf_generator_fallback.py:169
#, python-format
msgid "Invoice #: %(num)s"
msgstr "Laskun numero: %(num)s"

#: app/utils/pdf_generator_fallback.py:173
#: app/utils/pdf_generator_fallback.py:176
#, python-format
msgid "Issue Date: %(date)s"
msgstr "Julkaisupäivä: %(date)s"

#: app/utils/pdf_generator_fallback.py:174
#: app/utils/pdf_generator_fallback.py:177
#, python-format
msgid "Due Date: %(date)s"
msgstr "Eräpäivä: %(date)s"

#: app/utils/pdf_generator_fallback.py:541
msgid "Quote For:"
msgstr "Lainaus:"

#: app/utils/pdf_generator_fallback.py:551
msgid "Quote Details:"
msgstr "Lainauksen tiedot:"

#: app/utils/pdf_generator_fallback.py:572
msgid "Items:"
msgstr "Tuotteet:"

#: app/utils/pdf_generator_fallback.py:622
msgid "Total:"
msgstr "Kokonais:"

#: app/utils/permissions.py:32 app/utils/permissions.py:67
msgid "Please log in to access this page"
msgstr "Kirjaudu sisään päästäksesi tälle sivulle"

