Files
reitti/src/main/resources/messages.properties

1449 lines
72 KiB
Properties

# Page titles
page.title=Reitti - Your Location Timeline
statistics.page.title=Statistics - Reitti
edit-place.page.title=Edit Place - Reitti
# Navigation
nav.timeline=Timeline
nav.statistics=Statistics
nav.memories=Memories
nav.settings=Settings
nav.logout=Logout
nav.settings.tooltip=Open settings\u2026
nav.logout.tooltip=Logout
#Sorting
sort.option.startDate.newest=Start Date (Newest First)
sort.option.startDate.oldest=Start Date (Oldest First)
sort.option.title.asc=Title (A-Z)
sort.option.title.desc=Title (Z-A)
sort.option.created.newest=Created (Newest First)
sort.option.created.oldest=Created (Oldest First)
# Timeline
timeline.loading=Loading\u2026
timeline.no.data=No timeline data available for this date.
timeline.duration=Duration
timeline.distance=Distance
timeline.trip=Trip
timeline.visit=Visit
timeline.trip.transport.select=Select a transport mode
timeline.state.hide.title=Hide Timeline
timeline.state.show.title=Show Timeline
transportation.mode.WALKING.name=Walking
transportation.mode.CYCLING.name=Cycling
transportation.mode.DRIVING.name=Driving
transportation.mode.TRANSIT.name=Transit
transportation.mode.MOTORCYCLE.name=Motorcycle
transportation.mode.TRAIN.name=Train
transportation.mode.SCOOTER.name=E-Scooter
transportation.mode.AIRPLANE.name=Airplane
timeline.transport.WALKING.label=by foot
timeline.transport.CYCLING.label=by bike
timeline.transport.DRIVING.label=by car
timeline.transport.TRANSIT.label=by transit
timeline.transport.MOTORCYCLE.label=by motorcycle
timeline.transport.TRAIN.label=by train
timeline.transport.SCOOTER.label=by scooter
timeline.transport.AIRPLANE.label=by plane
timeline.transport.UNKNOWN.label=unknown
# Date picker
datepicker.state.hide.title=Hide Date Picker
datepicker.state.show.title=Show Timeline
datepicker.today=Today
datepicker.today.title=Go to today
datepicker.days.sun=Sun
datepicker.days.mon=Mon
datepicker.days.tue=Tue
datepicker.days.wed=Wed
datepicker.days.thu=Thu
datepicker.days.fri=Fri
datepicker.days.sat=Sat
datepicker.months.jan=Jan
datepicker.months.feb=Feb
datepicker.months.mar=Mar
datepicker.months.apr=Apr
datepicker.months.may=May
datepicker.months.jun=Jun
datepicker.months.jul=Jul
datepicker.months.aug=Aug
datepicker.months.sep=Sep
datepicker.months.oct=Oct
datepicker.months.nov=Nov
datepicker.months.dec=Dec
datepicker.click-to-unlock-date=Click to unlock date
datepicker.click-to-lock-date=Click to lock date
datepicker.click-to-clear-selection=Click to clear selection
datepicker.click-to-create-range=Click to create range
datepicker.click-to-expand-range-backward=Click to expand range backward
datepicker.click-to-expand-range-forward=Click to expand range forward
datepicker.click-to-adjust-range-start=Click to adjust range start
datepicker.click-to-unlock-month=Click to unlock month
datepicker.click-to-lock-month=Click to lock month
datepicker.click-to-unlock-year=Click to unlock year
datepicker.click-to-lock-year=Click to lock year
datepicker.select=Select
datepicker.to=to
# Settings sections
settings.title=Settings
settings.api.tokens=API Tokens
settings.user.management=User Management
settings.places=Places
settings.transportation-modes=Transportation Modes
settings.geocoding=Geocoding
settings.integrations=Integrations
settings.logging=Logging
settings.manage.data=Manage Data
settings.job.status=Job Status
settings.import.data=Import Data
settings.share.access=Share Access
# Countries
country.af.label=Afghanistan
country.ax.label=\u00C5land Islands
country.al.label=Albania
country.dz.label=Algeria
country.as.label=American Samoa
country.ad.label=Andorra
country.ao.label=Angola
country.ai.label=Anguilla
country.aq.label=Antarctica
country.ag.label=Antigua and Barbuda
country.ar.label=Argentina
country.am.label=Armenia
country.aw.label=Aruba
country.au.label=Australia
country.at.label=Austria
country.az.label=Azerbaijan
country.bs.label=Bahamas
country.bh.label=Bahrain
country.bd.label=Bangladesh
country.bb.label=Barbados
country.by.label=Belarus
country.be.label=Belgium
country.bz.label=Belize
country.bj.label=Benin
country.bm.label=Bermuda
country.bt.label=Bhutan
country.bo.label=Bolivia
country.bq.label=Bonaire, Sint Eustatius and Saba
country.ba.label=Bosnia and Herzegovina
country.bw.label=Botswana
country.br.label=Brazil
country.io.label=British Indian Ocean Territory
country.bn.label=Brunei Darussalam
country.bg.label=Bulgaria
country.bf.label=Burkina Faso
country.bi.label=Burundi
country.cv.label=Cabo Verde
country.kh.label=Cambodia
country.cm.label=Cameroon
country.ca.label=Canada
country.ky.label=Cayman Islands
country.cf.label=Central African Republic
country.td.label=Chad
country.cl.label=Chile
country.cn.label=China
country.cx.label=Christmas Island
country.cc.label=Cocos (Keeling) Islands
country.co.label=Colombia
country.km.label=Comoros
country.cg.label=Congo
country.cd.label=Congo (Democratic Republic of the)
country.ck.label=Cook Islands
country.cr.label=Costa Rica
country.ci.label=C\u00F4te d'Ivoire
country.hr.label=Croatia
country.cu.label=Cuba
country.cw.label=Cura\u00E7ao
country.cy.label=Cyprus
country.cz.label=Czechia
country.dk.label=Denmark
country.dj.label=Djibouti
country.dm.label=Dominica
country.do.label=Dominican Republic
country.ec.label=Ecuador
country.eg.label=Egypt
country.sv.label=El Salvador
country.gq.label=Equatorial Guinea
country.er.label=Eritrea
country.ee.label=Estonia
country.sz.label=Eswatini
country.et.label=Ethiopia
country.fk.label=Falkland Islands (Malvinas)
country.fo.label=Faroe Islands
country.fj.label=Fiji
country.fi.label=Finland
country.fr.label=France
country.gf.label=French Guiana
country.pf.label=French Polynesia
country.tf.label=French Southern Territories
country.ga.label=Gabon
country.gm.label=Gambia
country.ge.label=Georgia
country.de.label=Germany
country.gh.label=Ghana
country.gi.label=Gibraltar
country.gr.label=Greece
country.gl.label=Greenland
country.gd.label=Grenada
country.gp.label=Guadeloupe
country.gu.label=Guam
country.gt.label=Guatemala
country.gg.label=Guernsey
country.gn.label=Guinea
country.gw.label=Guinea-Bissau
country.gy.label=Guyana
country.ht.label=Haiti
country.va.label=Holy See
country.hn.label=Honduras
country.hk.label=Hong Kong
country.hu.label=Hungary
country.is.label=Iceland
country.in.label=India
country.id.label=Indonesia
country.ir.label=Iran
country.iq.label=Iraq
country.ie.label=Ireland
country.im.label=Isle of Man
country.il.label=Israel
country.it.label=Italy
country.jm.label=Jamaica
country.jp.label=Japan
country.je.label=Jersey
country.jo.label=Jordan
country.kz.label=Kazakhstan
country.ke.label=Kenya
country.ki.label=Kiribati
country.kp.label=Korea (North)
country.kr.label=Korea (South)
country.kw.label=Kuwait
country.kg.label=Kyrgyzstan
country.la.label=Laos
country.lv.label=Latvia
country.lb.label=Lebanon
country.ls.label=Lesotho
country.lr.label=Liberia
country.ly.label=Libya
country.li.label=Liechtenstein
country.lt.label=Lithuania
country.lu.label=Luxembourg
country.mo.label=Macao
country.mg.label=Madagascar
country.mw.label=Malawi
country.my.label=Malaysia
country.mv.label=Maldives
country.ml.label=Mali
country.mt.label=Malta
country.mh.label=Marshall Islands
country.mq.label=Martinique
country.mr.label=Mauritania
country.mu.label=Mauritius
country.yt.label=Mayotte
country.mx.label=Mexico
country.fm.label=Micronesia
country.md.label=Moldova
country.mc.label=Monaco
country.mn.label=Mongolia
country.me.label=Montenegro
country.ms.label=Montserrat
country.ma.label=Morocco
country.mz.label=Mozambique
country.mm.label=Myanmar
country.na.label=Namibia
country.nr.label=Nauru
country.np.label=Nepal
country.nl.label=Netherlands
country.nc.label=New Caledonia
country.nz.label=New Zealand
country.ni.label=Nicaragua
country.ne.label=Niger
country.ng.label=Nigeria
country.nu.label=Niue
country.nf.label=Norfolk Island
country.mp.label=Northern Mariana Islands
country.mk.label=North Macedonia
country.no.label=Norway
country.om.label=Oman
country.pk.label=Pakistan
country.pw.label=Palau
country.ps.label=Palestine, State of
country.pa.label=Panama
country.pg.label=Papua New Guinea
country.py.label=Paraguay
country.pe.label=Peru
country.ph.label=Philippines
country.pn.label=Pitcairn
country.pl.label=Poland
country.pt.label=Portugal
country.pr.label=Puerto Rico
country.qa.label=Qatar
country.re.label=R\u00E9union
country.ro.label=Romania
country.ru.label=Russian Federation
country.rw.label=Rwanda
country.bl.label=Saint Barth\u00E9lemy
country.sh.label=Saint Helena, Ascension and Tristan da Cunha
country.kn.label=Saint Kitts and Nevis
country.lc.label=Saint Lucia
country.mf.label=Saint Martin (French part)
country.pm.label=Saint Pierre and Miquelon
country.vc.label=Saint Vincent and the Grenadines
country.ws.label=Samoa
country.sm.label=San Marino
country.st.label=Sao Tome and Principe
country.sa.label=Saudi Arabia
country.sn.label=Senegal
country.rs.label=Serbia
country.sc.label=Seychelles
country.sl.label=Sierra Leone
country.sg.label=Singapore
country.sx.label=Sint Maarten (Dutch part)
country.sk.label=Slovakia
country.si.label=Slovenia
country.sb.label=Solomon Islands
country.so.label=Somalia
country.za.label=South Africa
country.gs.label=South Georgia and the South Sandwich Islands
country.ss.label=South Sudan
country.es.label=Spain
country.lk.label=Sri Lanka
country.sd.label=Sudan
country.sr.label=Suriname
country.sj.label=Svalbard and Jan Mayen
country.se.label=Sweden
country.ch.label=Switzerland
country.sy.label=Syrian Arab Republic
country.tw.label=Taiwan
country.tj.label=Tajikistan
country.tz.label=Tanzania
country.th.label=Thailand
country.tl.label=Timor-Leste
country.tg.label=Togo
country.tk.label=Tokelau
country.to.label=Tonga
country.tt.label=Trinidad and Tobago
country.tn.label=Tunisia
country.tr.label=Turkey
country.tm.label=Turkmenistan
country.tc.label=Turks and Caicos Islands
country.tv.label=Tuvalu
country.ug.label=Uganda
country.ua.label=Ukraine
country.ae.label=United Arab Emirates
country.gb.label=United Kingdom
country.us.label=United States
country.um.label=United States Minor Outlying Islands
country.uy.label=Uruguay
country.uz.label=Uzbekistan
country.vu.label=Vanuatu
country.ve.label=Venezuela
country.vn.label=Viet Nam
country.vg.label=Virgin Islands (British)
country.vi.label=Virgin Islands (U.S.)
country.wf.label=Wallis and Futuna
country.eh.label=Western Sahara
country.ye.label=Yemen
country.zm.label=Zambia
country.zw.label=Zimbabwe
country.unknown.label=Unknown
#Formats
format.hours_minutes={0,choice,0#|1#{0} hour|1<{0} hours} {1,choice,0#|1#and {1} minute|1<and {1} minutes}
format.minutes_only={0,choice,1#{0} minute|1<{0} minutes}
# Navigation
nav.back.to.timeline=Back to Timeline
# API Tokens
tokens.title=API Tokens
tokens.create.title=Create New Token
tokens.name.label=Token Name
tokens.name.placeholder=Enter a name for this token
tokens.table.name=Name
tokens.table.token=Token
tokens.table.created=Created
tokens.table.last.used=Last Used
tokens.table.actions=Actions
tokens.no.tokens=No API tokens found. Create one to get started.
tokens.delete.confirm=Are you sure you want to delete this token?
tokens.recent.usages.title=Recent Token Usages
tokens.recent.usages.description=Showing the last {0} token usages
tokens.usage.table.token=Token Name
tokens.usage.table.timestamp=Timestamp
tokens.usage.table.endpoint=Endpoint
tokens.usage.table.ip=IP Address
# User Management
users.title=User Management
users.existing=Existing Users
users.no.users=No users found.
users.table.username=Username
users.table.display.name=Display Name
users.table.actions=Actions
users.table.role=Role
users.current.user=(Current User)
users.add.title=Add New User
users.update.title=Update User
users.username.label=Username
users.username.placeholder=Enter username
users.display.name.label=Display Name
users.display.name.placeholder=Enter display name
users.password.label=Password
users.password.placeholder=Enter password
users.password.keep.current=Leave empty to keep the current password
users.role.label=Role
users.role.admin=Admin
users.role.user=User
users.delete.confirm=Are you sure you want to delete this user? This will delete all their data.
users.oidc.managed.message=This user is managed by an external OIDC provider. Setting Username and Display Name is disabled
users.oidc.view.profile=View external profile
users.avatar.oidc.managed=Avatar is managed by your OIDC provider and will be updated automatically.
users.color.theme.label=Color Theme
users.color.theme.description=Choose your preferred accent color for the map.
users.color.theme.reset=Reset to Default
users.color.theme.custom=Custom Color
users.color.theme.custom.input=Custom Color:
time.title=Time
time.display.mode.label=Time Display Mode
time.display.mode.default=Default
time.display.mode.geo.local=Geo Local
time.display.mode.description=Choose how times are displayed throughout the application.
time.display.mode.default.description=Default: All times are displayed in your timezone (from browser or timezone override below)
time.display.mode.geo.local.description=Geo Local: All times are displayed in the timezone where the location is
time.timezone.override.label=Timezone Override
time.timezone.override.none=Use browser timezone
time.timezone.override.description=Override your timezone instead of using the browser's detected timezone. This affects how times are displayed when using Default mode.
timeline.time.your=Your time
timeline.time.local=Local time
form.remove=Remove
users.home.location.label=Home Location
users.home.location.description=Set your home location. This location will be displayed when no data is available for the selected date.
users.home.latitude.label=Latitude
users.home.longitude.label=Longitude
users.home.latitude.placeholder=Enter latitude (-90 to 90)
users.home.longitude.placeholder=Enter longitude (-180 to 180)
users.home.location.clear=Clear
# Avatar
users.avatar.label=Profile Picture
users.avatar.upload=Choose Image
users.avatar.requirements=Max 2MB. JPEG, PNG, GIF, or WebP format.
users.avatar.delete=Remove Avatar
users.avatar.default.title=Choose a default avatar
users.avatar.custom.title=Upload a custom image
users.avatar.or=OR
users.avatar.error.to-large=Image too large. The maximum size is 2MB.
users.avatar.error.invalid-file-type=Invalid file type. Only JPEG, PNG, GIF, and WebP images are allowed.
users.avatar.error.generic=Error processing avatar file: {0}
# Custom CSS messages
users.custom.css.label=Custom CSS
users.custom.css.description=Upload a custom CSS file to personalize your interface. This will override default styles.
users.custom.css.current=Custom CSS file uploaded
users.custom.css.delete=Remove CSS
users.custom.css.requirements=Max 1MB. CSS files only (.css extension required).
users.custom.css.remove.confirm=Are you sure you want to remove the current custom CSS file?
users.custom.css.error.to-large=CSS file too large. The maximum size is 1MB.
users.custom.css.error.invalid-file-type=Invalid file type. Only CSS files are allowed.
users.custom.css.error.generic=Error processing CSS file: {0}
map.colored.preference=Show map in color
map.colored.preference.description=When enabled, the map will be displayed in full color. When disabled, the map will be shown in grayscale.
# Units
units.title=Unit System
units.metric=Metric
units.metric.description=(km, m)
units.imperial=Imperial
units.imperial.description=(mi, ft)
# Places
places.title=Significant Places
places.no.places=No significant places were found.
places.page.info=Page {0} of {1}
places.name.label=Name
places.address.label=Address
places.city.label=City
places.country.label=Country
places.category.label=Category
places.coordinates.label=Coordinates
places.address.not.available=Not available
places.category.not.categorized=Not categorized
places.geocode.button=Geocode
places.geocode.confirm=Are you sure you want to re-geocode this place? This will clear the current address and request a new one.
places.geocode.success=Place scheduled for geocoding
places.geocode.error=Error scheduling place for geocoding: {0}
places.address.placeholder=Enter address
places.geocoding.response.button=View Geocoding Response
places.geocoding.response.title=Geocoding Response for {0}
places.geocoding.response.no.data=No geocoding response is available for this place
places.geocoding.response.back=Back to Places
places.geocoding.response.provider=Provider
places.geocoding.response.status=Status
places.geocoding.response.fetched.at=Fetched At
places.geocoding.response.raw.data=Raw Data
places.geocoding.response.error.details=Error Details
places.search.placeholder=Search places...
places.edit.button=Edit
places.edit.title=Edit {0}
places.edit.details.title=Place Details
places.edit.visit.stats.title=Visit Statistics
places.edit.visit.summary=You visited {0} {1} times.
places.edit.visit.complete=You visited {0} {1} times. Your first visit was on {2} and your most recent visit was on {3}.
places.edit.no.visits=No visits recorded for this place yet.
places.polygon.remove=Remove Polygon
places.polygon.editor.subtitle=Edit Place boundaries
places.polygon.editor.instructions=Click and drag to draw a polygon around the place. Click an existing point to remove it.
places.warning.polygon.removal=The polygon boundary will be removed from this place, this may affect visit detection.
places.warning.polygon.addition=The polygon boundary will be added to this place, this may affect visit detection.
places.warning.polygon.significant_change=The polygon boundary will be significantly changed, which may affect visit detection.
places.warning.overlapping.visits=The new boundary will overlap with {0,choice,1#1 existing place|1<{0,number,integer} existing places}, which may cause visits to be reassigned between places and affect trip calculations
places.warning.overlapping.recalculation_hint=The new boundary will trigger recalulation of {0,choice,1#1 day|1<{0,number,integer} days} of data, which may take a few minutes to complete.
places.warning.general_error=An error occurred while checking the update: {0}
places.update.confirmation.message=The following changes will be made:\n\n{0}\n\nDo you want to continue?
place.type.train_station=Train Station
place.type.gas_station=Gas Station
place.type.restaurant=Restaurant
place.type.park=Park
place.type.shop=Shop
place.type.home=Home
place.type.work=Work
place.type.hospital=Hospital
place.type.school=School
place.type.airport=Airport
place.type.hotel=Hotel
place.type.bank=Bank
place.type.pharmacy=Pharmacy
place.type.gym=Gym
place.type.library=Library
place.type.church=Church
place.type.cinema=Cinema
place.type.cafe=Cafe
place.type.museum=Museum
place.type.landmark=Landmark
place.type.tourist_attraction=Tourist Attraction
place.type.historic_site=Historic Site
place.type.monument=Monument
place.type.shopping_mall=Shopping Mall
place.type.market=Market
place.type.gallery=Gallery
place.type.theater=Theater
place.type.grocery_store=Grocery Store
place.type.atm=ATM
place.type.other=Other
place.unknown.label=Unknown Place
# Forms
form.create=Create
form.update=Update
form.delete=Delete
form.select.placeholder=Select...
form.cancel=Cancel
form.save.changes=Save Changes
form.save=Save
form.previous=Previous
form.next=Next
form.refresh=Refresh
# Messages
message.success.token.created=Token created successfully
message.success.token.deleted=Token deleted successfully
message.success.user.created=User created successfully
message.success.user.updated=User updated successfully
message.success.user.deleted=User deleted successfully
message.success.place.updated=Place updated successfully
message.error.token.creation=Error creating token: {0}
message.error.token.deletion=Error deleting token: {0}
message.error.user.creation=Error creating user: {0}
message.error.user.update=Error updating user: {0}
message.error.user.deletion=Error deleting user: {0}
message.error.user.self.delete=You cannot delete your own account
message.error.place.update=Error updating place: {0}
message.relogin.required=Your username has changed to {0}. You will need to log out and log in again with your new username.
message.error.access.denied=Access denied. You don't have permission to perform this action.
# File Upload
upload.title=Import Location Data
upload.gpx.title=GPX Files
upload.gpx.description=Upload GPX files from your GPS devices or tracking apps. GPX files contain waypoints, tracks, and routes with timestamps that can be processed into your location history.
upload.google.title=Google Takeout
upload.google.description=Upload location history from Google. We support two formats:
upload.google.new.format.title=Google Timeline New Format (timeline.json)
upload.google.new.format.instructions=From your Android phone: Settings \u2192 Location \u2192 Location Services \u2192 Timeline \u2192 Export Timeline
upload.google.new.format.description=This exports a timeline.json file with your recent location data.
upload.google.new.format.ios.instructions=From iOS Google Maps: Open Google Maps \u2192 Click on your Profile \u2192 Settings \u2192 Personal content \u2192 Export Timeline Data
upload.google.android.format.title=Android Timeline (timeline.json)
upload.google.android.format.description=This exports a timeline.json file with your recent location data from Android devices.
upload.google.ios.format.title=iOS Timeline (timeline.json)
upload.google.ios.format.description=This exports a timeline.json file with your recent location data from iOS devices.
upload.google.old.format.title=Google Timeline Old Format (Records.json)
upload.google.old.format.instructions=Export your data from takeout.google.com and upload the Records.json file from the Location History folder.
upload.google.old.format.description=This contains your complete historical location data.
upload.geojson.title=GeoJSON Files
upload.geojson.description=Upload GeoJSON files containing Point features with location data. GeoJSON files should contain Point geometries with coordinates and optional timestamp properties. Supports both single Feature and FeatureCollection formats.
upload.button.gpx=Upload GPX File
upload.button.google=Upload Google Takeout
upload.button.google.timeline=Upload Timeline Data
upload.button.google.timeline.android=Upload Android Timeline Data
upload.button.google.timeline.ios=Upload iOS Timeline Data
upload.button.google.records=Upload Records Data
upload.button.geojson=Upload GeoJSON File
upload.no.files=No files selected
upload.file.empty=File is empty
upload.invalid.format=Invalid file format
upload.success=Successfully processed {0} file(s) with {1} location points
upload.error=No files were processed successfully
# Integrations
integrations.title=Integrations
integrations.no.token.warning=You need to create an API token first in the "API Tokens" tab before setting up app integrations.
integrations.token.select.label=Select API Token:
integrations.token.select.help=Choose the API token to use in the setup URLs below. The selected token will be automatically inserted into the example URLs.
integrations.data.ingestion.title=Mobile App Ingestion
integrations.data.ingestion.description=Configure mobile apps to automatically send location data to Reitti
integrations.data-stores.title=External Data Stores
integrations.data-stores.description=Configure Reitti to connect to external data storage like OwnTracks Recorder.
integrations.gpslogger.title=GPSLogger Setup
integrations.gpslogger.description=GPSLogger is a free Android app that can automatically log your location and send it to Reitti.
integrations.owntracks.title=OwnTracks Setup
integrations.owntracks.description=OwnTracks is a privacy-focused location tracking app available for iOS and Android.
integrations.setup.instructions=Setup Instructions:
integrations.photos.title=Photos
integrations.photos.description=Configure photo management integration with Immich
integrations.immich.title=Immich Integration
integrations.immich.description=Immich is a self-hosted photo and video backup solution. Connect your Immich instance to show photos taken at specific locations and dates on your timeline map.
integrations.immich.server.url=Server URL
integrations.immich.server.url.placeholder=https://your-immich-server.com
integrations.immich.api.token=API Token
integrations.immich.api.token.placeholder=Enter your Immich API token
integrations.immich.enabled=Enable Integration
integrations.immich.save=Save Configuration
integrations.immich.test.connection=Test Connection
integrations.immich.connection.success=Connection successful
integrations.immich.connection.failed=Connection failed: {0}
integrations.immich.config.saved=Immich configuration saved successfully
integrations.immich.config.error=Error saving configuration: {0}
integrations.mobile.help.title=Need Help?
integrations.mobile.help.description=For detailed setup instructions and tips, visit our comprehensive guide:
integrations.mobile.help.link.text=Mobile Integration Documentation
integrations.overland.title=Overland Setup
integrations.overland.description=Overland is a GPS logger for iOS devices that sends location data in GeoJSON format.
integrations.gpslogger.configure=Autoconfigure GPSLogger
integrations.gpslogger.configure.description=This will create a new profile 'reitti' with the configured settings and configure GPSLogger to use it.
integrations.overland.configure=Autoconfigure Overland
integrations.overland.configure.description=This will configure Overland to report location data to Reitti.
integrations.owntracks.configure=Autoconfigure Owntracks
integrations.owntracks.configure.description=This will configure Owntracks to report location data to Reitti.
# OwnTracks Recorder Integration
integrations.owntracks.recorder.title=OwnTracks Recorder Integration
integrations.owntracks.recorder.description=Connect to an OwnTracks Recorder instance to fetch location data from specific users and devices.
integrations.owntracks.recorder.base.url=Base URL
integrations.owntracks.recorder.base.url.placeholder=https://your-owntracks-recorder.com
integrations.owntracks.recorder.username=Username
integrations.owntracks.recorder.username.placeholder=Enter the username to fetch data for
integrations.owntracks.recorder.device.id=Device ID
integrations.owntracks.recorder.device.id.placeholder=Enter the device ID to fetch data for
integrations.owntracks.recorder.auth.username=Authentication Username
integrations.owntracks.recorder.auth.username.placeholder=Enter username for basic auth (optional)
integrations.owntracks.recorder.auth.password=Authentication Password
integrations.owntracks.recorder.auth.password.placeholder=Enter password for basic auth (optional)
integrations.owntracks.recorder.auth.optional=Leave empty if no authentication is needed
integrations.owntracks.recorder.enabled=Enable Integration
integrations.owntracks.recorder.save=Save Configuration
integrations.owntracks.recorder.test.connection=Test Connection
integrations.owntracks.recorder.connection.success=The connection was successful.
integrations.owntracks.recorder.connection.failed=Connection failed: {0}
integrations.owntracks.recorder.config.saved=OwnTracks Recorder configuration saved successfully
integrations.owntracks.recorder.config.error=Error saving configuration: {0}
integrations.owntracks.recorder.load.historical=Load Historical Data
integrations.owntracks.recorder.load.historical.confirm=This will fetch all available historical data from the OwnTracks Recorder. This may take some time. Continue?
integrations.owntracks.recorder.load.historical.success=Historical data loading started successfully
integrations.owntracks.recorder.load.historical.error=Failed to load historical data: {0}
integrations.owntracks.recorder.config.deleted=OwnTracks Recorder configuration deleted successfully
integrations.owntracks.recorder.config.delete.error=Error deleting configuration: {0}
integrations.tracking.frequency.title=\uD83D\uDCCD GPS Tracking Frequency
integrations.tracking.frequency.description=For optimal results, Reitti works best with a continuous stream of GPS locations. Make sure your tracking app records a point at least every 30 seconds to ensure accurate visit and trip detection.
# Reitti Shared Instances Integration
integrations.shared.instances.title=Shared Instances
integrations.shared.instances.description=Connect to other Reitti instances to share location data with friends, family, or colleagues. This allows you to view their location data alongside yours on the timeline map.
integrations.reitti.title=Reitti Instance Integration
integrations.reitti.description=Connect to a local or remote Reitti instance to access another user's location data.
integrations.reitti.url=Instance URL
integrations.reitti.url.placeholder=https://reitti.example.com
integrations.reitti.token=API Token
integrations.reitti.token.placeholder=Enter the API token for the remote instance
integrations.reitti.color=Color
integrations.reitti.color.description=Choose a color to identify this integration on the map
integrations.reitti.enabled=Enable Integration
integrations.reitti.save=Save Configuration
integrations.reitti.test.connection=Test Connection
integrations.reitti.connection.success=Connection successful - Connected to Reitti instance
integrations.reitti.connection.failed=Connection failed: {0}
integrations.reitti.config.saved=Reitti integration saved successfully
integrations.reitti.config.error=Error saving configuration: {0}
integrations.reitti.config.deleted=Reitti integration deleted successfully
integrations.reitti.config.delete.error=Error deleting configuration: {0}
integrations.reitti.no.integrations=No Reitti integrations configured.
integrations.reitti.table.url=Instance URL
integrations.reitti.table.enabled=Enabled
integrations.reitti.table.status=Status
integrations.reitti.table.last.used=Last Used
integrations.reitti.table.color=Color
integrations.reitti.table.actions=Actions
integrations.reitti.status.enabled=Enabled
integrations.reitti.status.disabled=Disabled
integrations.reitti.status.ACTIVE.name=Active
integrations.reitti.status.RECOVERABLE.name=Failed (Recoverable)
integrations.reitti.status.DISABLED.name=Disabled
integrations.reitti.status.FAILED.name=Failed
integrations.reitti.never.used=Never
integrations.reitti.enable=Enable
integrations.reitti.disable=Disable
integrations.reitti.delete.confirm=Are you sure you want to delete this Reitti integration?
integrations.reitti.add.title=Add New Reitti Integration
integrations.reitti.edit.title=Edit Reitti Integration
integrations.reitti.info=Info
integrations.reitti.info.title=Remote Instance Information
integrations.reitti.update=Update Configuration
integrations.reitti.test.missing.fields=Please fill in both Instance URL and API Token
integrations.reitti.test.loading=Testing connection...
integrations.reitti.test.failed=Connection test failed
integrations.reitti.info.server.title=Server Information
integrations.reitti.info.server.name=Name:
integrations.reitti.info.server.version=Version:
integrations.reitti.info.server.time=System Time:
integrations.reitti.info.user.title=User Information
integrations.reitti.info.user.username=Username:
integrations.reitti.info.user.displayname=Display Name:
integrations.reitti.info.user.id=User ID:
integrations.reitti.info.user.version=Version:
integrations.reitti.info.connection.success=Connection successful!
integrations.reitti.info.connection.access=You can access this user's location data.
# No API Token
integrations.no.token.title=\u26A0\uFE0F No API Token Available
# Common labels
integrations.download=Download:
integrations.homepage=Homepage:
# GPSLogger setup steps
integrations.gpslogger.step1=Download GPSLogger from the Google Play Store
integrations.gpslogger.step2=Open GPSLogger and go to <strong>Logging details \u2192 Log to custom URL</strong>
integrations.gpslogger.step3=Enable "Log to custom URL"
integrations.gpslogger.step4.with.token=Set the URL to: <code>{0}</code>
integrations.gpslogger.step4.without.token=Set the URL to: <code>{0}</code>
integrations.gpslogger.step5=Set HTTP Method to <strong>POST</strong>
integrations.gpslogger.step6=Set HTTP Body to:
integrations.gpslogger.step7=Set HTTP header to: <code>Content-Type: application/json</code>
integrations.gpslogger.step8=Start logging!
# OwnTracks setup steps
integrations.owntracks.step1=Download OwnTracks from the App Store or Google Play Store
integrations.owntracks.step2=Open OwnTracks and go to <strong>Settings \u2192 Connection</strong>
integrations.owntracks.step3=Set Mode to <strong>HTTP</strong>
integrations.owntracks.step4.with.token=Set the Endpoint to: <code>{0}</code>
integrations.owntracks.step4.without.token=Set the Endpoint to: <code>{0}</code>
integrations.owntracks.step5=Disable <strong>Authentication</strong> (we use the token in the URL instead)
integrations.owntracks.step6=Configure tracking settings as desired. Make sure that Owntracks records a point at least every 30 seconds.
integrations.owntracks.step7=On the map view, set tracking mode to "Movement"
integrations.owntracks.step8=The app will automatically start sending location updates
# Overland setup steps
integrations.overland.step1=Install Overland
integrations.overland.step2=Open Overland and go to the <strong>Settings</strong> tab
integrations.overland.step3=<strong>Important:</strong> Tap the <strong>Request Permission</strong> button to grant location access - Overland will not track anything without this permission
integrations.overland.step4=Tap on <strong>Receiver Endpoint</strong>
integrations.overland.step5.with.token=Set the Endpoint URL to: <code>{0}</code>
integrations.overland.step5.without.token=Set the Endpoint URL to: <code>{0}</code>
integrations.overland.step6=Leave the <strong>Device ID</strong> field empty or set a custom identifier
integrations.overland.step7=Leave the <strong>Access Token</strong> field empty (we use the token in the URL)
integrations.overland.step8=Configure tracking settings:<ul><li><strong>Desired Accuracy:</strong> Best (for high accuracy) or 100m (for battery saving)</li><li><strong>Points per Batch:</strong> 50-200 (lower for unreliable connections)</li><li><strong>Significant Location:</strong> Disabled for continuous tracking</li></ul>
integrations.overland.step9=Go to the <strong>Tracker</strong> tab and turn tracking <strong>On</strong>
integrations.overland.step10=Adjust the sending interval slider (1 second to 30 minutes)
integrations.overland.step11=The app will start sending location data automatically
# OwnTracks Recorder test messages
integrations.owntracks.recorder.test.missing.fields=Please fill in Base URL, Username, and Device ID
integrations.owntracks.recorder.test.loading=Testing connection...
integrations.owntracks.recorder.test.failed=Connection test failed
integrations.owntracks.recorder.loading.historical=Loading Historical Data...
form.edit=Edit
form.close=Close
# Job Status
jobs.title=Job Status
jobs.refresh=Refresh Status
jobs.estimated.time=Est. processing time: {0}
# Queue Descriptions
queue.location.data.name=Location Data Processing
queue.location.data.description=Processing raw location points from mobile apps and external sources
queue.stay.detection.name=Visit Detection
queue.stay.detection.description=Analyzing location data to detect visits and stays at significant places
queue.merge.visit.name=Visit Merging
queue.merge.visit.description=Merging related visits and optimizing visit boundaries
queue.significant.place.name=Place Processing
queue.significant.place.description=Creating and updating significant places from detected visits
queue.detect.trip.name=Trip Detection
queue.detect.trip.description=Analyzing movement patterns to detect trips between locations
queue.user.event.name=User Events
queue.user.event.description=Processing user-triggered events and notifications
# Data Management
data.title=Manage Data
data.about.title=About Data Processing
data.about.description=This section allows you to manually trigger data processing operations. These operations normally run automatically on a schedule, but you can trigger them manually here if needed.
data.about.warning=Manual processing may take some time depending on the amount of data to process.
data.process.visits.title=Process Visits and Trips
data.process.visits.description=Manually trigger the processing of raw location data into visits and trips. This will analyze unprocessed location points and create meaningful visits and trips from them.
data.process.visits.button=Start Processing
data.process.visits.confirm=Are you sure you want to start processing? This may take some time.
data.process.success=Processing started successfully. Check the Job Status tab to monitor progress.
data.process.error=Error starting processing: {0}
data.clear.reprocess.title=Clear and Reprocess All Data
data.clear.reprocess.description=Clear all processed data (visits, trips, processed visits) while preserving significant places and raw location points. Raw location points will be marked as unprocessed and the processing pipeline will be triggered automatically.
data.clear.reprocess.warning=This action will permanently delete all visits, trips, and processed visits. This cannot be undone.
data.clear.reprocess.button=Clear and Reprocess
data.clear.reprocess.confirm=Are you sure you want to clear all processed data and reprocess? This will permanently delete all visits, trips, and processed visits. This cannot be undone.
data.clear.reprocess.success=Data cleared successfully and reprocessing started. Check the Job Status tab to monitor progress.
data.clear.reprocess.error=Error clearing and reprocessing data: {0}
data.remove.all.title=Remove All Data
data.remove.all.description=Remove all data except significant places. This will permanently delete all raw location points, visits, trips, and processed visits while preserving your significant places.
data.remove.all.warning=This action will permanently delete ALL location data except significant places. This cannot be undone.
data.remove.all.button=Remove All Data
data.remove.all.confirm=Are you sure you want to remove ALL data except significant places? This action cannot be undone.
data.remove.all.success=All data except significant places has been removed successfully
data.remove.all.error=Error removing data: {0}
# Geocoding
geocoding.title=Geocoding Services
geocoding.about.title=About Geocoding Services
geocoding.about.description=Geocoding services convert coordinates to addresses for your significant places. You can add multiple services and the system will use them randomly to distribute the load.
geocoding.about.format=Make sure that the geocoding service answers with GeoJson. This is the only supported response.
geocoding.url.placeholders=URL Template placeholders:
geocoding.placeholder.lat={lat} - Will be replaced with latitude
geocoding.placeholder.lng={lng} - Will be replaced with longitude
geocoding.example=Example:
geocoding.add.title=Add New Geocoding Service
geocoding.service.name=Service Name
geocoding.service.name.placeholder=Enter a name for the service
geocoding.service.url=URL Template
geocoding.available.services=Available Services
geocoding.no.services=No geocoding services configured.
geocoding.table.name=Name
geocoding.table.url=URL Template
geocoding.table.status=Status
geocoding.table.errors=Errors
geocoding.table.last.used=Last Used
geocoding.table.actions=Actions
geocoding.status.enabled=Enabled
geocoding.status.disabled=Disabled
geocoding.auto.disabled=(Auto-disabled)
geocoding.never.used=Never
geocoding.enable=Enable
geocoding.disable=Disable
geocoding.reset.errors=Reset Errors
geocoding.delete.confirm=Are you sure you want to delete this geocoding service?
# Geocoding Execution
geocoding.execution.title=Geocoding Execution
geocoding.execution.description=Manually trigger geocoding operations for your significant places
geocoding.run.title=Run Geocoding
geocoding.run.description=Process all significant places that haven't been geocoded yet
geocoding.run.button=Schedule Geocoding
geocoding.run.confirm=Are you sure you want to start geocoding for unprocessed places?
geocoding.clear.title=Clear and Re-geocode All
geocoding.clear.description=Clear all existing geocoding data and re-process all significant places
geocoding.clear.warning=This will clear all existing address information and re-geocode all places
geocoding.clear.button=Clear and Re-geocode
geocoding.clear.confirm=Are you sure you want to clear all geocoding data and re-process all places? This will remove all existing address information.
geocoding.run.success=Geocoding started successfully for {0} places
geocoding.clear.success=Cleared geocoding data and started re-processing for {0} places
geocoding.run.error=Error starting geocoding: {0}
geocoding.clear.error=Error clearing and starting geocoding: {0}
geocoding.no.places=No places found to geocode
# Language selection
language.select=Select Language
language.title=Language Settings
language.description=Choose your preferred language for the application interface. You may need to reload the page for all changes to take effect.
language.english=English
language.finnish=Finnish
language.german=German
language.french=French
language.russian=Russian
language.brazilian_portuguese=Portuguese (Brazil)
language.polish=Polish
language.chinese=Chinese
# Login page
login.invalid.credentials=Invalid username or password
login.username=Username
login.password=Password
login.remember.me=Remember me
login.button=Login
login.oauth.button=Log in with OAuth
# Additional messages
message.success.geocode.created=Geocode service created successfully
message.error.geocode.creation=Error creating geocode service: {0}
message.success.language.changed=Language changed successfully
message.error.language.change=Error changing language: {0}
# About Section
settings.about=About
about.title=Version Information
about.app.version=Application Version:
about.git.branch=Git Branch:
about.git.commit.details=Commit Details:
about.build.time=Build Time:
about.not.available=N/A
# Statistics
statistics.title=Statistics
statistics.overall=Overall
statistics.title.overall=Overall Statistics
statistics.title.year=Statistics for {0}
statistics.title.month-year=Statistics for {0} {1}
statistics.top.places=Top Places by Stay Time
statistics.place=Place
statistics.total.hours=Total Hours
statistics.visits=Visits
statistics.transport.distance=Distance by Transport Mode
statistics.transport.mode=Transport Mode
statistics.distance.km=Distance (km)
statistics.trips=Trips
statistics.monthly.breakdown=Monthly Breakdown
statistics.daily.breakdown=Daily Breakdown
statistics.transport.distribution=Transport Distribution
statistics.no.data=No data available
# Month names for statistics
month.1=January
month.2=February
month.3=March
month.4=April
month.5=May
month.6=June
month.7=July
month.8=August
month.9=September
month.10=October
month.11=November
month.12=December
# SSE Events
sse.error.connection-lost=Connection to server lost! Try reconnecting \u2026
# Map
map.auto-update.latest-location=Latest location
map.auto-update.enable.title=Enter Auto-Update Mode
map.auto-update.disable.title=Leave Auto-Update Mode
map.fullscreen.toggle.title=Toggle Fullscreen
# Export Data
export.title=Export Data
export.date.range=Date Range
export.start.date=Start Date
export.end.date=End Date
export.gpx.button=Export as GPX
export.gpx.relevant=Export only data relevant processing?
export.raw.data.title=Raw Location Data
export.raw.data.table.timestamp=Timestamp
export.raw.data.table.latitude=Latitude
export.raw.data.table.longitude=Longitude
export.raw.data.table.accuracy=Accuracy (m)
export.raw.data.table.processed=Processed
export.raw.data.no.data=No location data found for the selected date range
export.raw.data.loading=Loading location data...
export.raw.data.showing=Showing {0} - {1} of {2}
export.raw.data.show=Show:
export.raw.data.previous=Previous
export.raw.data.next=Next
export.raw.data.page.info=Page {0} of {1}
export.gpx.success=GPX file exported successfully
export.gpx.error=Error exporting GPX file: {0}
# Generic Labels
label.warning=Warning:
label.info=Info:
# Error Pages
error.page.title=Error - Reitti
error.title=Oops! Something went wrong
error.generic.message=An unexpected error occurred. Please try again later.
error.technical.details=Technical Details
error.action.home=Go Home
error.action.back=Go Back
error.action.retry=Try Again
# Memory validation
memory.creation.error=Error creating your memory: {0}
memory.validation.start.date.required=Start date is required
memory.validation.end.date.required=End date is required
memory.validation.end.date.before.start=End date cannot be before start date
memory.validation.title.required=Title is required
memory.validation.date.future=Dates cannot be in the future
share-access.title=Share Access
magic.links.title=Magic Links
magic.links.no.tokens=No magic links found. Create one to get started.
magic.links.new.token.title=New Magic Link Created
magic.links.new.token.description=Your magic link has been created successfully. Copy the link below and save it securely, it will not be shown again!
magic.links.new.token.name=Link Name:
magic.links.new.token.url=Magic Link URL:
magic.links.new.token.value=Token Only:
magic.links.new.token.warning=\u26A0\uFE0F Save this link now, you won't be able to see it again!
magic.links.table.name=Name
magic.links.table.access.level=Access Level
magic.links.table.created=Created
magic.links.table.expiry=Expires
magic.links.table.last.used=Last Used
magic.links.table.actions=Actions
magic.links.name.label=Link Name
magic.links.name.placeholder=e.g., Share with John
magic.links.access.level.label=Access Level
magic.links.access.level.full_access=Full Access
magic.links.access.level.only_live=Live Data Only
magic.links.access.level.only_live_with_photos=Live Data Only + Photos
magic.links.access.level.only_last_location=Latest Location only
magic.links.access.level.memory_view_only=View Memory
magic.links.access.level.memory_edit_access=View and Edit Memory
magic.links.expiry.days.label=Expiry (Days)
magic.links.expiry.days.placeholder=e.g., 30
magic.links.expiry.days.help=Leave empty for no expiration
magic.links.never.expires=Never
magic.links.never.used=Never
magic.links.delete.confirm=Are you sure you want to delete this magic link? This action cannot be undone.
magic.links.created.success=Magic link created successfully. Save the link below, it won't be shown again!
magic.links.create.error=Failed to create magic link: {0}
magic.links.deleted.success=Magic link deleted successfully
magic.links.delete.error=Failed to delete magic link: {0}
magic.links.expiry.date.label=Expiry Date
magic.links.expiry.date.help=Leave empty for permanent access (link never expires)
magic.links.invalid.date=Invalid date format
share-with.title=Share with other Users
share-with.no.users=No other users found to share with.
share-with.users.title=Share with Users
share-with.users.description=Select users you want to share your location data with. They will be able to view your timeline and location history.
share-with.enable=Share
share-with.updated.success=User sharing updated successfully
share-with.update.error=Error updating user sharing: {0}
share-with.info.title=About User Sharing
share-with.info.description=When you share your data with other users, they will be able to view your location timeline and history alongside their own data. This is useful for families or teams who want to coordinate and share location information.
share-with.info.permissions.title=What They Can See
share-with.info.permissions.timeline=Your complete location timeline and history
share-with.info.permissions.places=Your significant places and visits
share-with.info.permissions.trips=Your trips and movement patterns
share-with.info.privacy.title=Privacy Notes
share-with.info.privacy.mutual=Sharing is not mutual, they need to separately share their data with you
share-with.info.privacy.revoke=You can revoke access at any time by unchecking the user
share-with.info.privacy.immediate=Changes take effect immediately
share-with.button.selected=Sharing enabled
share-with.button.unselected=Click to share
shared-with-me.title=Users Sharing with Me
shared-with-me.description=These users have shared their location data with you. You can customize the color used to display their data on your timeline.
shared-with-me.table.user=User
shared-with-me.table.color=Color
shared-with-me.table.shared.since=Shared Since
shared-with-me.table.actions=Actions
shared-with-me.dismiss=Dismiss
shared-with-me.dismiss.confirm=Are you sure you want to dismiss this shared access? The user will need to share their data with you again if you want to see it.
shared-with-me.dismissed.success=Shared access dismissed successfully
shared-with-me.dismiss.error=Error dismissing shared access: {0}
# Visit Sensitivity Recalculation Messages
visit.sensitivity.recalculation.title=Recalculation Advised
visit.sensitivity.recalculation.message=Configuration has changed. Recalculation is highly advised for these changes to take effect on existing data, otherwise they will only affect new incoming data.
visit.sensitivity.recalculation.warning=Warning: This action will remove all existing places and recreate them according to the new settings.
visit.sensitivity.recalculation.dismiss=Dismiss
visit.sensitivity.recalculation.start=Start Recalculation
visit.sensitivity.recalculation.starting=Starting Recalculation\u2026
visit.sensitivity.recalculation.confirm=Are you sure you want to start recalculation? This may take some time depending on the amount of data to process.
visit.sensitivity.recalculation.started=Recalculation started successfully. Check the Job Status tab to monitor progress.
visit.sensitivity.recalculation.dismissed=Recalculation advice dismissed.
visit.sensitivity.recalculation.error=Error starting recalculation: {0}
visit.sensitivity.level.very-low=Very Low
visit.sensitivity.level.low=Low
visit.sensitivity.level.medium=Medium
visit.sensitivity.level.high=High
visit.sensitivity.level.very-high=Very High
# Visit Sensitivity Validation Messages
visit.sensitivity.validation.date.duplicate=A configuration already exists for this date. Please choose a different date.
visit.sensitivity.validation.save.error=Error saving configuration: {0}
magic.links.info.title=About Magic Links
magic.links.info.description=Magic links allow you to share your location data with others without requiring them to create an account. Anyone with the link can access your data according to the permissions you set.
magic.links.info.security.title=Security Considerations
magic.links.info.security.point1=Anyone with the link can access your data, treat it like a password
magic.links.info.security.point2=Links cannot be recovered if lost, you'll need to create a new one
magic.links.info.security.point3=Set expiry dates for temporary sharing to limit access duration
magic.links.info.security.point4=Delete links immediately when no longer needed
magic.links.info.security.point5=Monitor the 'Last Used' column to track access
magic.links.info.access.levels.title=Access Levels
magic.links.info.access.full.description=Complete access to all your location data and history.
magic.links.info.access.live.description=Access only to current/recent location data.
magic.links.info.access.live_with_photos.description=Access only to current/recent location data and your photos if they are shown on the map.
magic.links.info.access.only_last_location.description=Access only to the latest location on the Map.
form.clear=Clear
magic.link.error.title=Magic Link Error
magic.link.error.generic=The magic link is invalid or has expired.
magic.link.error.description=Please request a new magic link or login with your account.
magic.link.error.home=Go to Home
magic.link.error.login=Login with Account
# Data Quality
integrations.data.quality.title=Data Quality Verification
integrations.data.quality.description=Check the quality and frequency of your incoming location data to ensure optimal tracking performance.
integrations.data.quality.button=Verify Data Quality
integrations.data.quality.refresh=Refresh Data
integrations.data.quality.report.title=Data Quality Report
integrations.data.quality.overall.title=\uD83D\uDCC8 Overall Data Quality
integrations.data.quality.total.points=Total Location Points
integrations.data.quality.last.24h=Last 24 Hours
integrations.data.quality.last.7d=Last 7 Days
integrations.data.quality.avg.per.day=Average per Day
integrations.data.quality.freshness.title=\uD83D\uDD52 Data Freshness
integrations.data.quality.latest.point=Latest Point Received
integrations.data.quality.time.since=Time Since Last Point
integrations.data.quality.no.data=No data available
integrations.data.quality.tracking.title=\uD83D\uDCCD Tracking Quality
integrations.data.quality.avg.accuracy=Average Accuracy
integrations.data.quality.good.accuracy=Points with Good Accuracy (<50m)
integrations.data.quality.avg.interval=Average Interval
integrations.data.quality.recommendations.title=\uD83D\uDCA1 Recommendations
integrations.data.quality.status.actively.tracking=\u2705 Actively Tracking
integrations.data.quality.status.actively.tracking.desc=Location data is being received regularly
integrations.data.quality.status.not.tracking=\u274C Not Actively Tracking
integrations.data.quality.status.not.tracking.desc=No recent location data received
integrations.data.quality.status.good.frequency=\u2705 Good Frequency
integrations.data.quality.status.good.frequency.desc=Location points are frequent enough for accurate tracking
integrations.data.quality.status.low.frequency=\u26A0\uFE0F Low Frequency
integrations.data.quality.status.low.frequency.desc=Consider increasing tracking frequency for better accuracy
integrations.data.quality.recommendation.no.data=No location data received in the last 24 hours. Check your mobile app configuration.
integrations.data.quality.recommendation.low.frequency=Low tracking frequency detected. Consider reducing the tracking interval in your mobile app.
integrations.data.quality.recommendation.poor.accuracy=Many location points have poor accuracy. Ensure GPS is enabled and avoid tracking indoors.
integrations.data.quality.recommendation.very.poor.accuracy=Average accuracy is quite poor. Check if your device has a clear view of the sky for better GPS reception.
integrations.data.quality.recommendation.fluctuating.frequency=Tracking frequency is inconsistent. Check your mobile app settings for stable tracking intervals.
integrations.data.quality.status.fluctuating.frequency=\u26A0\uFE0F Fluctuating Frequency
integrations.data.quality.status.fluctuating.frequency.desc=Tracking intervals vary significantly, which may affect accuracy
integrations.data.quality.status.good.consistency=\u2705 Good Consistency
integrations.data.quality.status.good.consistency.desc=Tracking intervals are consistent and stable
integrations.data.quality.error=Error loading data quality information: {0}
# Visit Sensitivity Settings
visit.sensitivity.title=Visit Sensitivity
visit.sensitivity.title.description=Configure how sensitive the system is when detecting visits from your location data
visit.sensitivity.configurations=Current Configurations
visit.sensitivity.valid.since=Valid Since
visit.sensitivity.description=Description
visit.sensitivity.actions=Actions
visit.sensitivity.default.config=Default Configuration
visit.sensitivity.default.description=Applied to all data before any specific configuration
visit.sensitivity.specific.description=Applied from this date forward
visit.sensitivity.edit=Edit
visit.sensitivity.delete=Delete
visit.sensitivity.delete.confirm=Are you sure you want to delete this configuration?
visit.sensitivity.cannot.delete=Cannot delete default
visit.sensitivity.add.new=Add New Configuration
visit.sensitivity.level=Sensitivity Level
visit.sensitivity.low=Low
visit.sensitivity.high=High
visit.sensitivity.current.level=Current: Level {0}
visit.sensitivity.level.help=Low sensitivity detects fewer, longer visits. High sensitivity detects more, shorter visits. Adjust based on your tracking needs: use low for general location tracking, high for detailed movement analysis. This highly depends on how often your integration is sending data into Reitti. The smaller the interval of incoming data is,the higher should be the sensitivity level.
visit.sensitivity.valid.since.help=This configuration will apply to all location data from this date and time forward. Any data before this date will continue to use the previous configuration settings.
visit.sensitivity.default.config.note=This is the default configuration that applies to all historical data and any periods not covered by specific date configurations. Changes to this configuration will affect the processing of all your location data when reprocessing occurs.
visit.sensitivity.preview=Preview
visit.sensitivity.save=Save
visit.sensitivity.cancel=Cancel
visit.sensitivity.mode.simple=Simple
visit.sensitivity.mode.advanced=Advanced
visit.sensitivity.mode.simple.description=Use predefined sensitivity levels for easy configuration
visit.sensitivity.mode.advanced.description=Configure all parameters manually for fine-tuned control
visit.sensitivity.mode.switch.to.simple=Switch to Simple Mode
visit.sensitivity.mode.switch.to.advanced=Switch to Advanced Mode
visit.sensitivity.form.title.new=New Configuration
visit.sensitivity.form.title.edit=Edit Configuration
visit.sensitivity.form.title.default=Default Configuration
# Visit Detection Settings
visit.detection.title=Visit Detection
visit.detection.search.distance=Search Distance (meters)
visit.detection.search.distance.help=Maximum distance between location points to be considered part of the same visit. Smaller values (50-100m) detect precise locations, larger values (200-500m) group nearby locations together. Typical values: 100m for urban areas, 200m for suburban areas.
visit.detection.minimum.points=Minimum Adjacent Points
visit.detection.minimum.points.help=Minimum number of consecutive location points required to detect a visit. Higher values reduce false positives but may miss short visits. Recommended: 3-5 points for most use cases.
visit.detection.minimum.stay=Minimum Stay Time (seconds)
visit.detection.minimum.stay.help=Minimum duration to consider a location as a visit rather than just passing through. Lower values (60-300s) detect brief stops, higher values (600-1800s) only detect significant stays. Typical values: 300s (5 min) for detailed tracking, 900s (15 min) for major locations only.
visit.detection.max.merge.time=Max Merge Time Between Same Stay Points (seconds)
visit.detection.max.merge.time.help=Maximum time gap between visits to the same location before they are considered separate visits. If you leave and return to the same place within this time, it will be treated as one continuous visit. Typical values: 1800s (30 min) for brief errands, 3600s (1 hour) for longer breaks.
# Visit Merging Settings
visit.merging.title=Visit Merging
visit.merging.search.duration=Search Duration (hours)
visit.merging.search.duration.help=Time window to look for nearby visits that should be merged together. Larger values may merge visits that should remain separate, smaller values may miss related visits. Recommended: 24-72 hours for most scenarios.
visit.merging.max.merge.time=Max Merge Time Between Same Visits (seconds)
visit.merging.max.merge.time.help=Maximum time between visits to the same location before they are considered separate events. This helps merge visits that were incorrectly split due to GPS inaccuracies or brief departures. Typical values: 3600s (1 hour) for strict separation, 7200s (2 hours) for more lenient merging.
visit.merging.min.distance=Min Distance Between Visits (meters)
visit.merging.min.distance.help=Minimum distance required between visits to keep them as separate locations. Visits closer than this distance may be merged if they occur within the time window. Recommended: 50-100m for precise location separation, 200-300m for broader area grouping.
# Visit Sensitivity Preview
visit.sensitivity.preview.title=Configuration Preview
visit.sensitivity.preview.current=Current Data
visit.sensitivity.preview.new=Preview Data
visit.sensitivity.preview.date=Preview Date:
visit.sensitivity.preview.calculating=Calculating\u2026
visit.sensitivity.preview.ready=Ready
visit.sensitivity.preview.error=Ready
visit.sensitivity.preview.config.details=Configuration Details
visit.sensitivity.visit.detection=Visit Detection
visit.sensitivity.search.distance=Search Distance
visit.sensitivity.min.points=Minimum Adjacent Points
visit.sensitivity.min.stay.time=Minimum Stay Time
visit.sensitivity.visit.merging=Visit Merging
visit.sensitivity.search.duration=Search Duration
visit.sensitivity.max.merge.time=Max Merge Time
visit.sensitivity.min.distance=Min Distance
# Settings Navigation Descriptions
settings.job.status.description=Monitor the status of background processing jobs
settings.import.data.description=Upload location data from various sources like GPX files and Google Takeout
export.title.description=Export your location data in various formats
settings.api.tokens.description=Create and manage API tokens for external applications
settings.share.access.description=Create magic links to share your location data with others
settings.user.management.description=Manage user accounts and permissions (admin only)
settings.places.description=View and manage your significant places and their details
settings.transportation-modes.description=View and manage your settings for transportation mode detection
settings.geocoding.description=Configure geocoding services to convert coordinates to addresses
settings.manage.data.description=Manually trigger data processing and manage your location data
settings.integrations.description=Connect external services and mobile apps to automatically import location data
settings.about.description=View application version and build information
settings.logging.description=Configure logging levels and view logs
memory.new.page.title=New Memory - Reitti
memory.new.title=New Memory
memory.new.back.to.memories=Back to Memories
memory.form.title.label=Title *
memory.form.title.placeholder=Give your memory a title
memory.form.description.label=Description
memory.form.description.placeholder=Add a description (optional)
memory.form.start.date.label=Start Date *
memory.form.end.date.label=End Date *
memory.form.cancel=Cancel
memory.form.create=Create Memory
memory.form.update=Save Changes
memory.view.button=View Memory
memory.view.edit=Edit
memory.view.back=Back
memory.view.recalculate=Recalculate
memory.view.share=Share
memory.view.delete=Delete
memory.view.add.block=Add Block after
memory.view.add.first.block=Add your first Block
memory.view.no.blocks=No blocks yet. Add your first block to start building your memory.
memory.view.block.text.title=Text Block
memory.view.block.text.content=Content will be loaded here
memory.view.block.visit.content=Visit block
memory.view.block.trip.content=Trip block
memory.view.block.gallery.content=Image gallery
memory.view.block.cluster.duration=Took {0} hours {1} minutes. {2} hours and {3} moving.
memory.view.block.cluster_visit.duration=Spent {0} hours {1} minutes.
memory.generator.day.text=Day {0}: {1}
memory.generator.headline.text=Our Journey
memory.generator.journey_to.headline.text=Journey to {0}
memory.generator.introductory.text=What an unforgettable adventure we had! Our journey began on {0} as we set out from {1}, and for the next {2} days, we made {3}, {4} our wonderful home base. From there, we explored the heart of the region, filling our days with {5} memorable visits across {6} beautiful locations. This is the story of our time together, the places we saw, and the memories we created before returning home on {7}.
memory.generator.travel_to_accommodation.text=We set off from {0} at {1} and arrived in {2} at {3}. The total time for this part of our trip was {4}, with {5} of that spent actively traveling. Now it's time for us to relax, unpack, and prepare for what's next.
memory.generator.travel_from_accommodation.text=We set off from {0} at {1} and arrived back home in {2} at {3}. The total time for this final part of our trip was {4}, with {5} of that spent actively traveling. Our journey has concluded, and now we can look back on all the memories we've made.
memory.generator.intro_accommodation.headline=Welcome to {0}
memory.generator.intro_accommodation.text=We are officially checked in! We took a moment to appreciate the atmosphere before dealing with our luggage. It feels good to be here, and we're looking forward to exploring the immediate surroundings. This place is going to be a great home base for our trip.
memory.list.all=All
memory.block.select.type=Select Block Type
memory.block.type.text=Text
memory.block.type.text.description=Add text content with headlines and paragraphs
memory.block.type.visit=Visit
memory.block.type.visit.description=Add a location you visited during this memory
memory.block.type.trip=Trip
memory.block.type.trip.description=Add a journey or route from this memory
memory.block.type.gallery=Image Gallery
memory.block.type.gallery.description=Add a collection of photos from this memory
memory.block.cancel=Cancel
memory.block.text.new=New Text Block
memory.block.text.headline=Headline
memory.block.text.headline.placeholder=Enter headline
memory.block.text.content=Content
memory.block.text.content.placeholder=Enter your text content
memory.block.create=Create Block
memory.block.visit.new=New Visit Block
memory.block.visit.select=Select Visit
memory.block.visit.select.placeholder=Choose a visit...
memory.block.trip.new=New Trip Block
memory.block.trip.empty=There are no trips selected for this memory block.
memory.block.visit.empty=There are no visits selected for this memory block.
memory.block.trip.select=Select Trip
memory.block.trip.select.placeholder=Choose a trip...
memory.block.gallery.new=New Image Gallery Block
memory.block.gallery.edit=Edit Image Gallery Block
memory.block.gallery.immich.title=Select from Immich
memory.block.gallery.loading=Loading photos...
memory.block.gallery.selected.title=Selected Photos
memory.block.gallery.upload.title=Upload Images
memory.block.gallery.upload.choose=Choose a file or drag here
memory.block.gallery.immich.no.photos=No photos found for this date range
memory.block.gallery.pagination.previous=Previous
memory.block.gallery.pagination.next=Next
memory.block.gallery.error.no.images=Please select or upload at least one image
memory.block.gallery.error.create=Failed to create a gallery block
memory.block.gallery.remove=Remove image
memory.edit.block.title=Title
memory.edit.block.title.placeholder=Enter title
memory.edit.block.cluster.trip.title=Edit Trips Block
memory.edit.block.cluster.trip.select.trips=Select Trips
memory.edit.block.cluster.trip.selected=Selected
memory.edit.block.cluster.trip.trip=Trip
memory.edit.block.cluster.visit.title=Edit Visit Block
memory.edit.block.cluster.visit.select.visits=Select Visits
memory.edit.block.cluster.visit.selected=Selected
memory.edit.block.cluster.visit.visit=Visit
memory.form.date.error.end.before.start=The end date must be equal or after the start date.
# Memory sharing functionality
memory.share.title=Share Memory
memory.share.what.title=What will be shared?
memory.share.what.content=The complete memory with all its content blocks
memory.share.what.location=Location data and maps for the memory period
memory.share.what.photos=Photos and text content within the memory
memory.share.what.trips=Trip and visit information during this time period
memory.share.permissions.title=Choose sharing permissions:
memory.share.view.title=View Only
memory.share.view.description=Recipients can view the memory but cannot make any changes
memory.share.edit.title=Edit Access
memory.share.edit.description=Recipients can view and edit the memory, add blocks, and modify content
# Share configuration
memory.share.configure.title=Configure Share Link
memory.share.configure.sharing=Sharing
memory.share.access.view=View Only Access
memory.share.access.edit=Edit Access
memory.share.expires.label=Link expires after:
memory.share.expires.7days=7 days
memory.share.expires.30days=30 days
memory.share.expires.90days=90 days
memory.share.expires.never=Never expires
memory.share.expires.help=Choose how long the share link should remain valid
memory.share.create.button=Create Share Link
memory.share.back.button=Back
# Share result
memory.share.result.title=Share Link Created
memory.share.result.success=Share Link Created Successfully!
memory.share.result.memory=Memory:
memory.share.result.access=Access Level:
memory.share.result.link.label=Share this link:
memory.share.result.copy=Copy
memory.share.result.copied=Copied!
memory.share.result.instructions.title=How to share:
memory.share.result.instructions.copy=Copy the link above and send it to anyone you want to share with
memory.share.result.instructions.account=Recipients don't need an account to access the memory
memory.share.result.instructions.permissions=The link will work according to the permissions you've set
memory.share.result.instructions.view=Recipients can view but not edit the memory
memory.share.result.instructions.edit=Recipients can view and edit the memory
memory.share.result.done=Done
memory.share.result.another=Create Another Link
memory.processing.title=Processing Memory
memory.processing.title.creating=Creating Memory
memory.processing.step.clustering=Clustering trips and visits...
memory.processing.step.visits=Creating visit records...
memory.processing.step.accommodation=Determining accommodation...
memory.processing.step.texts=Generating texts...
memory.processing.step.images=Copying images...
memory.processing.step.counter=Step {0} of {1}
# Transportation Modes Page
transportation.modes.title=Transportation Modes
transportation.modes.all.configured=All available transportation modes have been configured.
# Table Headers
transportation.modes.table.mode=Mode
transportation.modes.table.max.kmh=Max Speed (km/h)
transportation.modes.table.actions=Actions
# Add Form
transportation.modes.add.title=Add Transportation Mode
transportation.modes.mode.label=Transportation Mode
transportation.modes.mode.select=Select a mode...
transportation.modes.max.kmh.label=Max Speed (km/h)
transportation.modes.max.placeholder=No limit
transportation.modes.max.kmh.help=Leave empty for no speed limit
transportation.modes.add.button=Add Mode
# Imperial unit labels
transportation.modes.table.max.mph=Max Speed (mph)
transportation.modes.max.mph.label=Max Speed (mph)
transportation.modes.max.mph.placeholder=No limit
transportation.modes.max.mph.help=Leave empty for no speed limit
# Metric unit labels
transportation.modes.max.kmh.placeholder=No limit
# Success Messages
transportation.modes.success.added=Transportation mode added successfully
transportation.modes.success.updated=Transportation mode updated successfully
transportation.modes.success.deleted=Transportation mode deleted successfully
# Error Messages
transportation.modes.error.already.exists=This transportation mode is already configured
transportation.modes.error.add=Failed to add transportation mode
transportation.modes.error.update=Failed to update transportation mode
transportation.modes.error.delete=Failed to delete transportation mode
transportation.modes.error.duplicate.max.kmh=A transportation mode with this max speed already exists
# Delete Confirmation
transportation.modes.delete.confirm=Are you sure you want to delete this transportation mode?
# Reclassification
transportation.modes.reclassify.title=Reclassify Trips
transportation.modes.reclassify.description=After changing your transportation mode settings, you can reclassify all existing trips to apply the new configurations.
transportation.modes.reclassify.button=Reclassify All Trips
transportation.modes.reclassify.processing=Processing...
transportation.modes.reclassify.started=Reclassification started successfully. This process will run in the background.
transportation.modes.reclassify.error=Failed to start reclassification. Please try again.
about.acknowledgments.title=Acknowledgments
about.acknowledgments.subtitle=Reitti wouldn't be possible without the amazing contributions from our community and the incredible open-source projects we build upon.
about.contributors.title=Contributors
about.translators.title=Translators
about.projects.title=Open Source Projects
about.projects.visit=Visit Project
about.thankyou.title=Thank You!
about.thankyou.message=Every contribution, no matter how small, helps make Reitti better for everyone. We're grateful for your support and dedication to the open-source community.
# Logging page translations
logging.title=Log Viewer
logging.logger.class=Logger Class
logging.logger.placeholder=Enter the logger class name or leave it empty to configure the root logger
logging.logger.help=Leave empty to configure the root (global) logger
logging.log.name=Logger Name
logging.log.level=Log Level
logging.actions=Actions
logging.level.trace=TRACE
logging.level.debug=DEBUG
logging.level.info=INFO
logging.level.warn=WARN
logging.level.error=ERROR
logging.buffer.size=Buffer Size
logging.buffer.max.size=Max buffer size: {0}
logging.update=Update
logging.configured.loggers=Configured Loggers
logging.remove=Remove
logging.confirm.remove=Are you sure you want to remove this logger configuration?
logging.autoscroll=Auto-scroll to new messages
logging.connecting=Connecting to the log stream...
logging.settings.updated=Settings updated successfully
logging.error=Error
logging.connected=Connected to the log stream
logging.connection.lost=Error: Connection to log stream lost
logging.reconnecting=Attempting to reconnect in
logging.reconnect.failed=Failed to reconnect after