diff options
Diffstat (limited to 'src')
104 files changed, 1365 insertions, 563 deletions
diff --git a/src/App.jsx b/src/App.jsx index 4fe34f64..b6e864b2 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -6,9 +6,10 @@ import makeStyles from '@mui/styles/makeStyles'; import BottomMenu from './common/components/BottomMenu'; import SocketController from './SocketController'; import CachingController from './CachingController'; -import { useEffectAsync } from './reactHelper'; +import { useCatch, useEffectAsync } from './reactHelper'; import { sessionActions } from './store'; import UpdateController from './UpdateController'; +import TermsDialog from './common/components/TermsDialog'; const useStyles = makeStyles(() => ({ page: { @@ -29,10 +30,24 @@ const App = () => { const desktop = useMediaQuery(theme.breakpoints.up('md')); const newServer = useSelector((state) => state.session.server.newServer); - const initialized = useSelector((state) => !!state.session.user); + const termsUrl = useSelector((state) => state.session.server.attributes.termsUrl); + const user = useSelector((state) => state.session.user); + + const acceptTerms = useCatch(async () => { + const response = await fetch(`/api/users/${user.id}`, { + method: 'PUT', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ ...user, attributes: { ...user.attributes, termsAccepted: true } }), + }); + if (response.ok) { + dispatch(sessionActions.updateUser(await response.json())); + } else { + throw Error(await response.text()); + } + }); useEffectAsync(async () => { - if (!initialized) { + if (!user) { const response = await fetch('/api/session'); if (response.ok) { dispatch(sessionActions.updateUser(await response.json())); @@ -43,9 +58,15 @@ const App = () => { } } return null; - }, [initialized]); + }, [user]); - return !initialized ? (<LinearProgress />) : ( + if (user == null) { + return (<LinearProgress />); + } + if (termsUrl && !user.attributes.termsAccepted) { + return (<TermsDialog open onCancel={() => navigate('/login')} onAccept={() => acceptTerms()} />); + } + return ( <> <SocketController /> <CachingController /> diff --git a/src/AppThemeProvider.jsx b/src/AppThemeProvider.jsx index 109d25c4..8f64b931 100644 --- a/src/AppThemeProvider.jsx +++ b/src/AppThemeProvider.jsx @@ -1,21 +1,40 @@ import React from 'react'; import { useSelector } from 'react-redux'; import { ThemeProvider, useMediaQuery } from '@mui/material'; +import { CacheProvider } from '@emotion/react'; +import createCache from '@emotion/cache'; +import { prefixer } from 'stylis'; +import rtlPlugin from 'stylis-plugin-rtl'; import theme from './common/theme'; +import { useLocalization } from './common/components/LocalizationProvider'; + +const cache = { + ltr: createCache({ + key: 'muiltr', + stylisPlugins: [prefixer], + }), + rtl: createCache({ + key: 'muirtl', + stylisPlugins: [prefixer, rtlPlugin], + }), +}; const AppThemeProvider = ({ children }) => { const server = useSelector((state) => state.session.server); + const { direction } = useLocalization(); const serverDarkMode = server?.attributes?.darkMode; const preferDarkMode = useMediaQuery('(prefers-color-scheme: dark)'); const darkMode = serverDarkMode !== undefined ? serverDarkMode : preferDarkMode; - const themeInstance = theme(server, darkMode); + const themeInstance = theme(server, darkMode, direction); return ( - <ThemeProvider theme={themeInstance}> - {children} - </ThemeProvider> + <CacheProvider value={cache[direction]}> + <ThemeProvider theme={themeInstance}> + {children} + </ThemeProvider> + </CacheProvider> ); }; diff --git a/src/Navigation.jsx b/src/Navigation.jsx index 37a6ddb5..fa3d9a24 100644 --- a/src/Navigation.jsx +++ b/src/Navigation.jsx @@ -57,6 +57,7 @@ import UserConnectionsPage from './settings/UserConnectionsPage'; import LogsPage from './reports/LogsPage'; import SharePage from './settings/SharePage'; import AnnouncementPage from './settings/AnnouncementPage'; +import EmulatorPage from './other/EmulatorPage'; const Navigation = () => { const navigate = useNavigate(); @@ -109,6 +110,7 @@ const Navigation = () => { <Route path="event/:id" element={<EventPage />} /> <Route path="replay" element={<ReplayPage />} /> <Route path="geofences" element={<GeofencesPage />} /> + <Route path="emulator" element={<EmulatorPage />} /> <Route path="settings"> <Route path="accumulators/:deviceId" element={<AccumulatorsPage />} /> diff --git a/src/common/attributes/useServerAttributes.js b/src/common/attributes/useServerAttributes.js index 80ac3c7d..f46f715c 100644 --- a/src/common/attributes/useServerAttributes.js +++ b/src/common/attributes/useServerAttributes.js @@ -39,6 +39,14 @@ export default (t) => useMemo(() => ({ name: t('settingsDarkMode'), type: 'boolean', }, + termsUrl: { + name: t('userTerms'), + type: 'string', + }, + privacyUrl: { + name: t('userPrivacy'), + type: 'string', + }, totpEnable: { name: t('settingsTotpEnable'), type: 'boolean', diff --git a/src/common/attributes/useUserAttributes.js b/src/common/attributes/useUserAttributes.js index 81230884..e819412c 100644 --- a/src/common/attributes/useUserAttributes.js +++ b/src/common/attributes/useUserAttributes.js @@ -57,4 +57,8 @@ export default (t) => useMemo(() => ({ name: t('attributeMailSmtpPassword'), type: 'string', }, + termsAccepted: { + name: t('userTermsAccepted'), + type: 'boolean', + }, }), [t]); diff --git a/src/common/components/LocalizationProvider.jsx b/src/common/components/LocalizationProvider.jsx index 4104c773..3af97cf0 100644 --- a/src/common/components/LocalizationProvider.jsx +++ b/src/common/components/LocalizationProvider.jsx @@ -152,8 +152,9 @@ const LocalizationContext = createContext({ export const LocalizationProvider = ({ children }) => { const [language, setLanguage] = usePersistedState('language', getDefaultLanguage()); + const direction = /^(ar|he|fa)$/.test(language) ? 'rtl' : 'ltr'; - const value = useMemo(() => ({ languages, language, setLanguage }), [languages, language, setLanguage]); + const value = useMemo(() => ({ languages, language, setLanguage, direction }), [languages, language, setLanguage, direction]); useEffect(() => { let selected; @@ -163,7 +164,8 @@ export const LocalizationProvider = ({ children }) => { selected = language; } dayjs.locale(selected); - }, [language]); + document.dir = direction; + }, [language, direction]); return ( <LocalizationContext.Provider value={value}> diff --git a/src/common/components/PositionValue.jsx b/src/common/components/PositionValue.jsx index 8be686e3..cad3132c 100644 --- a/src/common/components/PositionValue.jsx +++ b/src/common/components/PositionValue.jsx @@ -22,7 +22,7 @@ import { import { speedToKnots } from '../util/converter'; import { useAttributePreference, usePreference } from '../util/preferences'; import { useTranslation } from './LocalizationProvider'; -import { useAdministrator } from '../util/permissions'; +import { useDeviceReadonly } from '../util/permissions'; import AddressValue from './AddressValue'; import GeofencesValue from './GeofencesValue'; import DriverValue from './DriverValue'; @@ -30,7 +30,7 @@ import DriverValue from './DriverValue'; const PositionValue = ({ position, property, attribute }) => { const t = useTranslation(); - const admin = useAdministrator(); + const deviceReadonly = useDeviceReadonly(); const device = useSelector((state) => state.devices.items[position.deviceId]); @@ -42,14 +42,13 @@ const PositionValue = ({ position, property, attribute }) => { const speedUnit = useAttributePreference('speedUnit'); const volumeUnit = useAttributePreference('volumeUnit'); const coordinateFormat = usePreference('coordinateFormat'); - const hours12 = usePreference('twelveHourFormat'); const formatValue = () => { switch (key) { case 'fixTime': case 'deviceTime': case 'serverTime': - return formatTime(value, 'seconds', hours12); + return formatTime(value, 'seconds'); case 'latitude': return formatCoordinate('latitude', value, coordinateFormat); case 'longitude': @@ -108,7 +107,7 @@ const PositionValue = ({ position, property, attribute }) => { <> {formatValue(value)} - {admin && <Link component={RouterLink} underline="none" to={`/settings/accumulators/${position.deviceId}`}>⚙</Link>} + {!deviceReadonly && <Link component={RouterLink} underline="none" to={`/settings/accumulators/${position.deviceId}`}>⚙</Link>} </> ); case 'address': diff --git a/src/common/components/SelectField.jsx b/src/common/components/SelectField.jsx index db8c30b0..629af9e1 100644 --- a/src/common/components/SelectField.jsx +++ b/src/common/components/SelectField.jsx @@ -1,7 +1,7 @@ +import React, { useEffect, useState } from 'react'; import { FormControl, InputLabel, MenuItem, Select, Autocomplete, TextField, } from '@mui/material'; -import React, { useState } from 'react'; import { useEffectAsync } from '../../reactHelper'; const SelectField = ({ @@ -17,7 +17,7 @@ const SelectField = ({ keyGetter = (item) => item.id, titleGetter = (item) => item.name, }) => { - const [items, setItems] = useState(data); + const [items, setItems] = useState(); const getOptionLabel = (option) => { if (typeof option !== 'object') { @@ -26,6 +26,8 @@ const SelectField = ({ return option ? titleGetter(option) : emptyTitle; }; + useEffect(() => setItems(data), [data]); + useEffectAsync(async () => { if (endpoint) { const response = await fetch(endpoint); diff --git a/src/common/components/StatusCard.jsx b/src/common/components/StatusCard.jsx index a63d0f80..fd92c658 100644 --- a/src/common/components/StatusCard.jsx +++ b/src/common/components/StatusCard.jsx @@ -127,7 +127,7 @@ const StatusCard = ({ deviceId, position, onClose, disableActions, desktopPaddin const deviceImage = device?.attributes?.deviceImage; const positionAttributes = usePositionAttributes(t); - const positionItems = useAttributePreference('positionItems', 'speed,address,totalDistance,course'); + const positionItems = useAttributePreference('positionItems', 'fixTime,address,speed,totalDistance'); const [anchorEl, setAnchorEl] = useState(null); diff --git a/src/common/components/TermsDialog.jsx b/src/common/components/TermsDialog.jsx new file mode 100644 index 00000000..2ac74f2e --- /dev/null +++ b/src/common/components/TermsDialog.jsx @@ -0,0 +1,36 @@ +import React from 'react'; +import { useSelector } from 'react-redux'; +import { + Button, Dialog, DialogActions, DialogContent, DialogContentText, Link, +} from '@mui/material'; +import { useTranslation } from './LocalizationProvider'; + +const TermsDialog = ({ open, onCancel, onAccept }) => { + const t = useTranslation(); + + const termsUrl = useSelector((state) => state.session.server.attributes.termsUrl); + const privacyUrl = useSelector((state) => state.session.server.attributes.privacyUrl); + + return ( + <Dialog + open={open} + onClose={onCancel} + > + <DialogContent> + <DialogContentText> + {t('userTermsPrompt')} + <ul> + <li><Link href={termsUrl} target="_blank">{t('userTerms')}</Link></li> + <li><Link href={privacyUrl} target="_blank">{t('userPrivacy')}</Link></li> + </ul> + </DialogContentText> + </DialogContent> + <DialogActions> + <Button onClick={onCancel}>{t('sharedCancel')}</Button> + <Button onClick={onAccept}>{t('sharedAccept')}</Button> + </DialogActions> + </Dialog> + ); +}; + +export default TermsDialog; diff --git a/src/common/theme/index.js b/src/common/theme/index.js index e8ce698b..00958497 100644 --- a/src/common/theme/index.js +++ b/src/common/theme/index.js @@ -4,8 +4,9 @@ import palette from './palette'; import dimensions from './dimensions'; import components from './components'; -export default (server, darkMode) => useMemo(() => createTheme({ +export default (server, darkMode, direction) => useMemo(() => createTheme({ palette: palette(server, darkMode), + direction, dimensions, components, -}), [server, darkMode]); +}), [server, darkMode, direction]); diff --git a/src/common/util/formatter.js b/src/common/util/formatter.js index 7b7fc96d..b10d737a 100644 --- a/src/common/util/formatter.js +++ b/src/common/util/formatter.js @@ -1,6 +1,7 @@ import dayjs from 'dayjs'; import duration from 'dayjs/plugin/duration'; import relativeTime from 'dayjs/plugin/relativeTime'; +import localizedFormat from 'dayjs/plugin/localizedFormat'; import { altitudeFromMeters, @@ -16,6 +17,7 @@ import { prefixString } from './stringUtils'; dayjs.extend(duration); dayjs.extend(relativeTime); +dayjs.extend(localizedFormat); export const formatBoolean = (value, t) => (value ? t('sharedYes') : t('sharedNo')); @@ -23,24 +25,24 @@ export const formatNumber = (value, precision = 1) => Number(value.toFixed(preci export const formatPercentage = (value) => `${value}%`; -export const formatTemperature = (value) => `${value}°C`; +export const formatTemperature = (value) => `${value.toFixed(1)}°C`; -export const formatVoltage = (value, t) => `${value} ${t('sharedVoltAbbreviation')}`; +export const formatVoltage = (value, t) => `${value.toFixed(2)} ${t('sharedVoltAbbreviation')}`; -export const formatConsumption = (value, t) => `${value} ${t('sharedLiterPerHourAbbreviation')}`; +export const formatConsumption = (value, t) => `${value.toFixed(2)} ${t('sharedLiterPerHourAbbreviation')}`; -export const formatTime = (value, format, hours12) => { +export const formatTime = (value, format) => { if (value) { const d = dayjs(value); switch (format) { case 'date': - return d.format('YYYY-MM-DD'); + return d.format('L'); case 'time': - return d.format(hours12 ? 'hh:mm:ss A' : 'HH:mm:ss'); + return d.format('LTS'); case 'minutes': - return d.format(hours12 ? 'YYYY-MM-DD hh:mm A' : 'YYYY-MM-DD HH:mm'); + return d.format('L LT'); default: - return d.format(hours12 ? 'YYYY-MM-DD hh:mm:ss A' : 'YYYY-MM-DD HH:mm:ss'); + return d.format('L LTS'); } } return ''; diff --git a/src/main/EventsDrawer.jsx b/src/main/EventsDrawer.jsx index f9602e95..57a95eb2 100644 --- a/src/main/EventsDrawer.jsx +++ b/src/main/EventsDrawer.jsx @@ -9,7 +9,6 @@ import DeleteIcon from '@mui/icons-material/Delete'; import { formatNotificationTitle, formatTime } from '../common/util/formatter'; import { useTranslation } from '../common/components/LocalizationProvider'; import { eventsActions } from '../store'; -import { usePreference } from '../common/util/preferences'; const useStyles = makeStyles((theme) => ({ drawer: { @@ -30,8 +29,6 @@ const EventsDrawer = ({ open, onClose }) => { const dispatch = useDispatch(); const t = useTranslation(); - const hours12 = usePreference('twelveHourFormat'); - const devices = useSelector((state) => state.devices.items); const events = useSelector((state) => state.events.items); @@ -66,7 +63,7 @@ const EventsDrawer = ({ open, onClose }) => { > <ListItemText primary={`${devices[event.deviceId]?.name} • ${formatType(event)}`} - secondary={formatTime(event.eventTime, 'seconds', hours12)} + secondary={formatTime(event.eventTime, 'seconds')} /> <IconButton size="small" onClick={() => dispatch(eventsActions.delete(event))}> <DeleteIcon fontSize="small" className={classes.delete} /> diff --git a/src/main/MainToolbar.jsx b/src/main/MainToolbar.jsx index b029529c..c00fcd4b 100644 --- a/src/main/MainToolbar.jsx +++ b/src/main/MainToolbar.jsx @@ -90,8 +90,10 @@ const MainToolbar = ({ horizontal: Number(theme.spacing(2).slice(0, -2)), }} marginThreshold={0} - PaperProps={{ - style: { width: `calc(${toolbarRef.current?.clientWidth}px - ${theme.spacing(4)})` }, + slotProps={{ + paper: { + style: { width: `calc(${toolbarRef.current?.clientWidth}px - ${theme.spacing(4)})` }, + }, }} elevation={1} disableAutoFocus diff --git a/src/map/MapGeofence.js b/src/map/MapGeofence.js index 73b32724..ac83d5b4 100644 --- a/src/map/MapGeofence.js +++ b/src/map/MapGeofence.js @@ -2,7 +2,7 @@ import { useId, useEffect } from 'react'; import { useSelector } from 'react-redux'; import { useTheme } from '@mui/styles'; import { map } from './core/MapView'; -import { findFonts, geofenceToFeature } from './core/mapUtil'; +import { geofenceToFeature } from './core/mapUtil'; import { useAttributePreference } from '../common/util/preferences'; const MapGeofence = () => { @@ -52,7 +52,6 @@ const MapGeofence = () => { type: 'symbol', layout: { 'text-field': '{name}', - 'text-font': findFonts(map), 'text-size': 12, }, paint: { diff --git a/src/map/MapMarkers.js b/src/map/MapMarkers.js index 8fbe92b6..484c35a3 100644 --- a/src/map/MapMarkers.js +++ b/src/map/MapMarkers.js @@ -3,7 +3,6 @@ import { useTheme } from '@mui/styles'; import { useMediaQuery } from '@mui/material'; import { map } from './core/MapView'; import { useAttributePreference } from '../common/util/preferences'; -import { findFonts } from './core/mapUtil'; const MapMarkers = ({ markers, showTitles }) => { const id = useId(); @@ -35,7 +34,6 @@ const MapMarkers = ({ markers, showTitles }) => { 'text-allow-overlap': true, 'text-anchor': 'bottom', 'text-offset': [0, -2 * iconScale], - 'text-font': findFonts(map), 'text-size': 12, }, paint: { diff --git a/src/map/MapPositions.js b/src/map/MapPositions.js index 751c61b9..45e5fc0f 100644 --- a/src/map/MapPositions.js +++ b/src/map/MapPositions.js @@ -5,8 +5,8 @@ import { useTheme } from '@mui/styles'; import { map } from './core/MapView'; import { formatTime, getStatusColor } from '../common/util/formatter'; import { mapIconKey } from './core/preloadImages'; -import { findFonts } from './core/mapUtil'; -import { useAttributePreference, usePreference } from '../common/util/preferences'; +import { useAttributePreference } from '../common/util/preferences'; +import { useCatchCallback } from '../reactHelper'; const MapPositions = ({ positions, onClick, showStatus, selectedPosition, titleField }) => { const id = useId(); @@ -21,7 +21,6 @@ const MapPositions = ({ positions, onClick, showStatus, selectedPosition, titleF const selectedDeviceId = useSelector((state) => state.devices.selectedId); const mapCluster = useAttributePreference('mapCluster', true); - const hours12 = usePreference('twelveHourFormat'); const directionType = useAttributePreference('mapDirection', 'selected'); const createFeature = (devices, position, selectedPositionId) => { @@ -32,17 +31,17 @@ const MapPositions = ({ positions, onClick, showStatus, selectedPosition, titleF showDirection = false; break; case 'all': - showDirection = true; + showDirection = position.course > 0; break; default: - showDirection = selectedPositionId === position.id; + showDirection = selectedPositionId === position.id && position.course > 0; break; } return { id: position.id, deviceId: position.deviceId, name: device.name, - fixTime: formatTime(position.fixTime, 'seconds', hours12), + fixTime: formatTime(position.fixTime, 'seconds'), category: mapIconKey(device.category), color: showStatus ? position.attributes.color || getStatusColor(device.status) : 'neutral', rotation: position.course, @@ -55,7 +54,7 @@ const MapPositions = ({ positions, onClick, showStatus, selectedPosition, titleF const onMapClick = useCallback((event) => { if (!event.defaultPrevented && onClick) { - onClick(); + onClick(event.lngLat.lat, event.lngLat.lng); } }, [onClick]); @@ -67,19 +66,16 @@ const MapPositions = ({ positions, onClick, showStatus, selectedPosition, titleF } }, [onClick]); - const onClusterClick = useCallback((event) => { + const onClusterClick = useCatchCallback(async (event) => { event.preventDefault(); const features = map.queryRenderedFeatures(event.point, { layers: [clusters], }); const clusterId = features[0].properties.cluster_id; - map.getSource(id).getClusterExpansionZoom(clusterId, (error, zoom) => { - if (!error) { - map.easeTo({ - center: features[0].geometry.coordinates, - zoom, - }); - } + const zoom = await map.getSource(id).getClusterExpansionZoom(clusterId); + map.easeTo({ + center: features[0].geometry.coordinates, + zoom, }); }, [clusters]); @@ -115,7 +111,6 @@ const MapPositions = ({ positions, onClick, showStatus, selectedPosition, titleF 'text-allow-overlap': true, 'text-anchor': 'bottom', 'text-offset': [0, -2 * iconScale], - 'text-font': findFonts(map), 'text-size': 12, }, paint: { @@ -154,7 +149,6 @@ const MapPositions = ({ positions, onClick, showStatus, selectedPosition, titleF 'icon-image': 'background', 'icon-size': iconScale, 'text-field': '{point_count_abbreviated}', - 'text-font': findFonts(map), 'text-size': 14, }, }); diff --git a/src/map/MapRoutePath.js b/src/map/MapRoutePath.js index 18069a71..20269140 100644 --- a/src/map/MapRoutePath.js +++ b/src/map/MapRoutePath.js @@ -2,7 +2,6 @@ import { useTheme } from '@mui/styles'; import { useId, useEffect } from 'react'; import { useSelector } from 'react-redux'; import { map } from './core/MapView'; -import { findFonts } from './core/mapUtil'; const MapRoutePath = ({ name, positions, coordinates }) => { const id = useId(); @@ -54,7 +53,6 @@ const MapRoutePath = ({ name, positions, coordinates }) => { type: 'symbol', layout: { 'text-field': '{name}', - 'text-font': findFonts(map), 'text-size': 12, }, paint: { diff --git a/src/map/core/MapView.jsx b/src/map/core/MapView.jsx index 35b3a65a..6733bdde 100644 --- a/src/map/core/MapView.jsx +++ b/src/map/core/MapView.jsx @@ -1,3 +1,5 @@ +// eslint-disable-next-line import/no-unresolved +import mapboxglRtlTextUrl from '@mapbox/mapbox-gl-rtl-text/mapbox-gl-rtl-text.min?url'; import 'maplibre-gl/dist/maplibre-gl.css'; import maplibregl from 'maplibre-gl'; import React, { @@ -14,6 +16,8 @@ element.style.width = '100%'; element.style.height = '100%'; element.style.boxSizing = 'initial'; +maplibregl.setRTLTextPlugin(mapboxglRtlTextUrl); + export const map = new maplibregl.Map({ container: element, attributionControl: false, diff --git a/src/map/core/mapUtil.js b/src/map/core/mapUtil.js index 5cb0ef0d..fb7498aa 100644 --- a/src/map/core/mapUtil.js +++ b/src/map/core/mapUtil.js @@ -86,21 +86,3 @@ export const geofenceToFeature = (theme, item) => { }; export const geometryToArea = (geometry) => stringify(reverseCoordinates(geometry)); - -export const findFonts = (map) => { - const fontSet = new Set(); - const { layers } = map.getStyle(); - layers?.forEach?.((layer) => { - layer.layout?.['text-font']?.forEach?.(fontSet.add, fontSet); - }); - const availableFonts = [...fontSet]; - const regularFont = availableFonts.find((it) => it.includes('Regular')); - if (regularFont) { - return [regularFont]; - } - const anyFont = availableFonts.find(Boolean); - if (anyFont) { - return [anyFont]; - } - return ['Roboto Regular']; -}; diff --git a/src/map/draw/MapGeofenceEdit.js b/src/map/draw/MapGeofenceEdit.js index e547ea05..0f63509a 100644 --- a/src/map/draw/MapGeofenceEdit.js +++ b/src/map/draw/MapGeofenceEdit.js @@ -12,6 +12,11 @@ import { geofenceToFeature, geometryToArea } from '../core/mapUtil'; import { errorsActions, geofencesActions } from '../../store'; import { useCatchCallback } from '../../reactHelper'; import theme from './theme'; +import { useTranslation } from '../../common/components/LocalizationProvider'; + +MapboxDraw.constants.classes.CONTROL_BASE = 'maplibregl-ctrl'; +MapboxDraw.constants.classes.CONTROL_PREFIX = 'maplibregl-ctrl-'; +MapboxDraw.constants.classes.CONTROL_GROUP = 'maplibregl-ctrl-group'; const draw = new MapboxDraw({ displayControlsDefault: false, @@ -41,6 +46,7 @@ const MapGeofenceEdit = ({ selectedGeofenceId }) => { const theme = useTheme(); const dispatch = useDispatch(); const navigate = useNavigate(); + const t = useTranslation(); const geofences = useSelector((state) => state.geofences.items); @@ -63,7 +69,7 @@ const MapGeofenceEdit = ({ selectedGeofenceId }) => { useEffect(() => { const listener = async (event) => { const feature = event.features[0]; - const newItem = { name: '', area: geometryToArea(feature.geometry) }; + const newItem = { name: t('sharedGeofence'), area: geometryToArea(feature.geometry) }; draw.delete(feature.id); try { const response = await fetch('/api/geofences', { diff --git a/src/map/main/MapSelectedDevice.js b/src/map/main/MapSelectedDevice.js index caf40cf8..d17fb997 100644 --- a/src/map/main/MapSelectedDevice.js +++ b/src/map/main/MapSelectedDevice.js @@ -7,16 +7,18 @@ import { usePrevious } from '../../reactHelper'; import { useAttributePreference } from '../../common/util/preferences'; const MapSelectedDevice = () => { - const selectedDeviceId = useSelector((state) => state.devices.selectedId); - const previousDeviceId = usePrevious(selectedDeviceId); + const currentTime = useSelector((state) => state.devices.selectTime); + const currentId = useSelector((state) => state.devices.selectedId); + const previousTime = usePrevious(currentTime); + const previousId = usePrevious(currentId); const selectZoom = useAttributePreference('web.selectZoom', 10); const mapFollow = useAttributePreference('mapFollow', false); - const position = useSelector((state) => state.session.positions[selectedDeviceId]); + const position = useSelector((state) => state.session.positions[currentId]); useEffect(() => { - if ((selectedDeviceId !== previousDeviceId || mapFollow) && position) { + if ((currentId !== previousId || currentTime !== previousTime || mapFollow) && position) { map.easeTo({ center: [position.longitude, position.latitude], zoom: Math.max(map.getZoom(), selectZoom), diff --git a/src/map/main/PoiMap.js b/src/map/main/PoiMap.js index 07341183..e8aefd7e 100644 --- a/src/map/main/PoiMap.js +++ b/src/map/main/PoiMap.js @@ -4,7 +4,6 @@ import { useTheme } from '@mui/styles'; import { map } from '../core/MapView'; import { useEffectAsync } from '../../reactHelper'; import { usePreference } from '../../common/util/preferences'; -import { findFonts } from '../core/mapUtil'; const PoiMap = () => { const id = useId(); @@ -55,7 +54,6 @@ const PoiMap = () => { 'text-field': '{name}', 'text-anchor': 'bottom', 'text-offset': [0, -0.5], - 'text-font': findFonts(map), 'text-size': 12, }, paint: { diff --git a/src/other/EmulatorPage.jsx b/src/other/EmulatorPage.jsx new file mode 100644 index 00000000..9adc129f --- /dev/null +++ b/src/other/EmulatorPage.jsx @@ -0,0 +1,131 @@ +import React from 'react'; +import { useDispatch, useSelector } from 'react-redux'; +import { + Divider, Typography, IconButton, useMediaQuery, Toolbar, + List, + ListItem, +} from '@mui/material'; +import makeStyles from '@mui/styles/makeStyles'; +import { useTheme } from '@mui/material/styles'; +import Drawer from '@mui/material/Drawer'; +import ArrowBackIcon from '@mui/icons-material/ArrowBack'; +import { useNavigate } from 'react-router-dom'; +import MapView from '../map/core/MapView'; +import MapCurrentLocation from '../map/MapCurrentLocation'; +import { useTranslation } from '../common/components/LocalizationProvider'; +import MapGeocoder from '../map/geocoder/MapGeocoder'; +import SelectField from '../common/components/SelectField'; +import { devicesActions } from '../store'; +import MapPositions from '../map/MapPositions'; +import { useCatch } from '../reactHelper'; + +const useStyles = makeStyles((theme) => ({ + root: { + height: '100%', + display: 'flex', + flexDirection: 'column', + }, + content: { + flexGrow: 1, + overflow: 'hidden', + display: 'flex', + flexDirection: 'row', + [theme.breakpoints.down('sm')]: { + flexDirection: 'column-reverse', + }, + }, + drawer: { + zIndex: 1, + }, + drawerPaper: { + position: 'relative', + [theme.breakpoints.up('sm')]: { + width: theme.dimensions.drawerWidthDesktop, + }, + [theme.breakpoints.down('sm')]: { + height: theme.dimensions.drawerHeightPhone, + }, + }, + mapContainer: { + flexGrow: 1, + }, + title: { + flexGrow: 1, + }, +})); + +const EmulatorPage = () => { + const theme = useTheme(); + const classes = useStyles(); + const dispatch = useDispatch(); + const navigate = useNavigate(); + const t = useTranslation(); + + const isPhone = useMediaQuery(theme.breakpoints.down('sm')); + + const devices = useSelector((state) => state.devices.items); + const deviceId = useSelector((state) => state.devices.selectedId); + const positions = useSelector((state) => state.session.positions); + + const handleClick = useCatch(async (latitude, longitude) => { + if (deviceId) { + const params = new URLSearchParams(); + params.append('id', devices[deviceId].uniqueId); + params.append('lat', latitude); + params.append('lon', longitude); + + const response = await fetch(`http://${window.location.hostname}:5055?${params.toString()}`, { + method: 'GET', + mode: 'no-cors', + }); + if (!response.ok) { + throw Error(await response.text()); + } + } + }); + + return ( + <div className={classes.root}> + <div className={classes.content}> + <Drawer + className={classes.drawer} + anchor={isPhone ? 'bottom' : 'left'} + variant="permanent" + classes={{ paper: classes.drawerPaper }} + > + <Toolbar> + <IconButton edge="start" sx={{ mr: 2 }} onClick={() => navigate(-1)}> + <ArrowBackIcon /> + </IconButton> + <Typography variant="h6" className={classes.title}>{t('sharedEmulator')}</Typography> + </Toolbar> + <Divider /> + <List> + <ListItem> + <SelectField + label={t('reportDevice')} + data={Object.values(devices).sort((a, b) => a.name.localeCompare(b.name))} + value={deviceId} + onChange={(e) => dispatch(devicesActions.selectId(e.target.value))} + fullWidth + /> + </ListItem> + </List> + </Drawer> + <div className={classes.mapContainer}> + <MapView> + <MapPositions + positions={Object.values(positions)} + onClick={handleClick} + showStatus + /> + </MapView> + <MapCurrentLocation /> + <MapGeocoder /> + </div> + </div> + </div> + ); +}; + +export default EmulatorPage; diff --git a/src/other/GeofencesPage.jsx b/src/other/GeofencesPage.jsx index a27a6dca..438d31e5 100644 --- a/src/other/GeofencesPage.jsx +++ b/src/other/GeofencesPage.jsx @@ -39,7 +39,7 @@ const useStyles = makeStyles((theme) => ({ drawerPaper: { position: 'relative', [theme.breakpoints.up('sm')]: { - width: theme.dimensions.drawerWidthTablet, + width: theme.dimensions.drawerWidthDesktop, }, [theme.breakpoints.down('sm')]: { height: theme.dimensions.drawerHeightPhone, diff --git a/src/other/PositionPage.jsx b/src/other/PositionPage.jsx index f253cd2c..e64ee491 100644 --- a/src/other/PositionPage.jsx +++ b/src/other/PositionPage.jsx @@ -87,14 +87,14 @@ const PositionPage = () => { {item && Object.getOwnPropertyNames(item).filter((it) => it !== 'attributes').map((property) => ( <TableRow key={property}> <TableCell>{property}</TableCell> - <TableCell><strong>{positionAttributes[property]?.name || property}</strong></TableCell> + <TableCell><strong>{positionAttributes[property]?.name}</strong></TableCell> <TableCell><PositionValue position={item} property={property} /></TableCell> </TableRow> ))} {item && Object.getOwnPropertyNames(item.attributes).map((attribute) => ( <TableRow key={attribute}> <TableCell>{attribute}</TableCell> - <TableCell><strong>{positionAttributes[attribute]?.name || attribute}</strong></TableCell> + <TableCell><strong>{positionAttributes[attribute]?.name}</strong></TableCell> <TableCell><PositionValue position={item} attribute={attribute} /></TableCell> </TableRow> ))} diff --git a/src/other/ReplayPage.jsx b/src/other/ReplayPage.jsx index 1050b976..1425c495 100644 --- a/src/other/ReplayPage.jsx +++ b/src/other/ReplayPage.jsx @@ -25,7 +25,6 @@ import { useCatch } from '../reactHelper'; import MapCamera from '../map/MapCamera'; import MapGeofence from '../map/MapGeofence'; import StatusCard from '../common/components/StatusCard'; -import { usePreference } from '../common/util/preferences'; const useStyles = makeStyles((theme) => ({ root: { @@ -82,8 +81,6 @@ const ReplayPage = () => { const navigate = useNavigate(); const timerRef = useRef(); - const hours12 = usePreference('twelveHourFormat'); - const defaultDeviceId = useSelector((state) => state.devices.selectedId); const [positions, setPositions] = useState([]); @@ -210,7 +207,7 @@ const ReplayPage = () => { <IconButton onClick={() => setIndex((index) => index + 1)} disabled={playing || index >= positions.length - 1}> <FastForwardIcon /> </IconButton> - {formatTime(positions[index].fixTime, 'seconds', hours12)} + {formatTime(positions[index].fixTime, 'seconds')} </div> </> ) : ( diff --git a/src/reports/ChartReportPage.jsx b/src/reports/ChartReportPage.jsx index 6175e1d8..8a3d01b8 100644 --- a/src/reports/ChartReportPage.jsx +++ b/src/reports/ChartReportPage.jsx @@ -13,7 +13,7 @@ import PageLayout from '../common/components/PageLayout'; import ReportsMenu from './components/ReportsMenu'; import usePositionAttributes from '../common/attributes/usePositionAttributes'; import { useCatch } from '../reactHelper'; -import { useAttributePreference, usePreference } from '../common/util/preferences'; +import { useAttributePreference } from '../common/util/preferences'; import { altitudeFromMeters, distanceFromMeters, speedFromKnots, volumeFromLiters, } from '../common/util/converter'; @@ -29,7 +29,6 @@ const ChartReportPage = () => { const altitudeUnit = useAttributePreference('altitudeUnit'); const speedUnit = useAttributePreference('speedUnit'); const volumeUnit = useAttributePreference('volumeUnit'); - const hours12 = usePreference('twelveHourFormat'); const [items, setItems] = useState([]); const [types, setTypes] = useState(['speed']); @@ -126,7 +125,7 @@ const ChartReportPage = () => { <XAxis dataKey="fixTime" type="number" - tickFormatter={(value) => formatTime(value, 'time', hours12)} + tickFormatter={(value) => formatTime(value, 'time')} domain={['dataMin', 'dataMax']} scale="time" /> @@ -138,7 +137,7 @@ const ChartReportPage = () => { <CartesianGrid strokeDasharray="3 3" /> <Tooltip formatter={(value, key) => [value, positionAttributes[key]?.name || key]} - labelFormatter={(value) => formatTime(value, 'seconds', hours12)} + labelFormatter={(value) => formatTime(value, 'seconds')} /> <Line type="monotone" dataKey={type} /> </LineChart> diff --git a/src/reports/CombinedReportPage.jsx b/src/reports/CombinedReportPage.jsx index a5000839..32ad5df0 100644 --- a/src/reports/CombinedReportPage.jsx +++ b/src/reports/CombinedReportPage.jsx @@ -15,7 +15,6 @@ import TableShimmer from '../common/components/TableShimmer'; import MapCamera from '../map/MapCamera'; import MapGeofence from '../map/MapGeofence'; import { formatTime } from '../common/util/formatter'; -import { usePreference } from '../common/util/preferences'; import { prefixString } from '../common/util/stringUtils'; import MapMarkers from '../map/MapMarkers'; @@ -25,8 +24,6 @@ const CombinedReportPage = () => { const devices = useSelector((state) => state.devices.items); - const hours12 = usePreference('twelveHourFormat'); - const [items, setItems] = useState([]); const [loading, setLoading] = useState(false); @@ -76,7 +73,7 @@ const CombinedReportPage = () => { )} <div className={classes.containerMain}> <div className={classes.header}> - <ReportFilter handleSubmit={handleSubmit} showOnly multiDevice includeGroups /> + <ReportFilter handleSubmit={handleSubmit} showOnly multiDevice includeGroups loading={loading} /> </div> <Table> <TableHead> @@ -90,7 +87,7 @@ const CombinedReportPage = () => { {!loading ? items.flatMap((item) => item.events.map((event, index) => ( <TableRow key={event.id}> <TableCell>{index ? '' : devices[item.deviceId].name}</TableCell> - <TableCell>{formatTime(event.eventTime, 'seconds', hours12)}</TableCell> + <TableCell>{formatTime(event.eventTime, 'seconds')}</TableCell> <TableCell>{t(prefixString('event', event.type))}</TableCell> </TableRow> ))) : (<TableShimmer columns={3} />)} diff --git a/src/reports/EventReportPage.jsx b/src/reports/EventReportPage.jsx index 5ffc8ac3..73e8a2e4 100644 --- a/src/reports/EventReportPage.jsx +++ b/src/reports/EventReportPage.jsx @@ -17,7 +17,7 @@ import ColumnSelect from './components/ColumnSelect'; import { useCatch, useEffectAsync } from '../reactHelper'; import useReportStyles from './common/useReportStyles'; import TableShimmer from '../common/components/TableShimmer'; -import { useAttributePreference, usePreference } from '../common/util/preferences'; +import { useAttributePreference } from '../common/util/preferences'; import MapView from '../map/core/MapView'; import MapGeofence from '../map/MapGeofence'; import MapPositions from '../map/MapPositions'; @@ -42,7 +42,6 @@ const EventReportPage = () => { const geofences = useSelector((state) => state.geofences.items); const speedUnit = useAttributePreference('speedUnit'); - const hours12 = usePreference('twelveHourFormat'); const [allEventTypes, setAllEventTypes] = useState([['allEvents', 'eventAll']]); @@ -120,19 +119,20 @@ const EventReportPage = () => { }); const formatValue = (item, key) => { + const value = item[key]; switch (key) { case 'eventTime': - return formatTime(item[key], 'seconds', hours12); + return formatTime(value, 'seconds'); case 'type': - return t(prefixString('event', item[key])); + return t(prefixString('event', value)); case 'geofenceId': - if (item[key] > 0) { - const geofence = geofences[item[key]]; + if (value > 0) { + const geofence = geofences[value]; return geofence && geofence.name; } return null; case 'maintenanceId': - return item[key] > 0 ? item[key] > 0 : null; + return value > 0 ? value : null; case 'attributes': switch (item.type) { case 'alarm': @@ -149,7 +149,7 @@ const EventReportPage = () => { return ''; } default: - return item[key]; + return value; } }; @@ -167,7 +167,7 @@ const EventReportPage = () => { )} <div className={classes.containerMain}> <div className={classes.header}> - <ReportFilter handleSubmit={handleSubmit} handleSchedule={handleSchedule}> + <ReportFilter handleSubmit={handleSubmit} handleSchedule={handleSchedule} loading={loading}> <div className={classes.filterItem}> <FormControl fullWidth> <InputLabel>{t('reportEventTypes')}</InputLabel> diff --git a/src/reports/RouteReportPage.jsx b/src/reports/RouteReportPage.jsx index 5003ff31..816e95cb 100644 --- a/src/reports/RouteReportPage.jsx +++ b/src/reports/RouteReportPage.jsx @@ -118,7 +118,7 @@ const RouteReportPage = () => { )} <div className={classes.containerMain}> <div className={classes.header}> - <ReportFilter handleSubmit={handleSubmit} handleSchedule={handleSchedule} multiDevice> + <ReportFilter handleSubmit={handleSubmit} handleSchedule={handleSchedule} multiDevice loading={loading}> <ColumnSelect columns={columns} setColumns={setColumns} diff --git a/src/reports/StatisticsPage.jsx b/src/reports/StatisticsPage.jsx index 7b3f2879..9d6ebf96 100644 --- a/src/reports/StatisticsPage.jsx +++ b/src/reports/StatisticsPage.jsx @@ -12,7 +12,6 @@ import ColumnSelect from './components/ColumnSelect'; import { useCatch } from '../reactHelper'; import useReportStyles from './common/useReportStyles'; import TableShimmer from '../common/components/TableShimmer'; -import { usePreference } from '../common/util/preferences'; const columnsArray = [ ['captureTime', 'statisticsCaptureTime'], @@ -32,8 +31,6 @@ const StatisticsPage = () => { const classes = useReportStyles(); const t = useTranslation(); - const hours12 = usePreference('twelveHourFormat'); - const [columns, setColumns] = usePersistedState('statisticsColumns', ['captureTime', 'activeUsers', 'activeDevices', 'messagesStored']); const [items, setItems] = useState([]); const [loading, setLoading] = useState(false); @@ -56,7 +53,7 @@ const StatisticsPage = () => { return ( <PageLayout menu={<ReportsMenu />} breadcrumbs={['reportTitle', 'statisticsTitle']}> <div className={classes.header}> - <ReportFilter handleSubmit={handleSubmit} showOnly ignoreDevice> + <ReportFilter handleSubmit={handleSubmit} showOnly ignoreDevice loading={loading}> <ColumnSelect columns={columns} setColumns={setColumns} columnsArray={columnsArray} /> </ReportFilter> </div> @@ -71,7 +68,7 @@ const StatisticsPage = () => { <TableRow key={item.id}> {columns.map((key) => ( <TableCell key={key}> - {key === 'captureTime' ? formatTime(item[key], 'date', hours12) : item[key]} + {key === 'captureTime' ? formatTime(item[key], 'date') : item[key]} </TableCell> ))} </TableRow> diff --git a/src/reports/StopReportPage.jsx b/src/reports/StopReportPage.jsx index 066b29a4..0fd6aba1 100644 --- a/src/reports/StopReportPage.jsx +++ b/src/reports/StopReportPage.jsx @@ -10,7 +10,7 @@ import { formatDistance, formatVolume, formatTime, formatNumericHours, } from '../common/util/formatter'; import ReportFilter from './components/ReportFilter'; -import { useAttributePreference, usePreference } from '../common/util/preferences'; +import { useAttributePreference } from '../common/util/preferences'; import { useTranslation } from '../common/components/LocalizationProvider'; import PageLayout from '../common/components/PageLayout'; import ReportsMenu from './components/ReportsMenu'; @@ -44,7 +44,6 @@ const StopReportPage = () => { const distanceUnit = useAttributePreference('distanceUnit'); const volumeUnit = useAttributePreference('volumeUnit'); - const hours12 = usePreference('twelveHourFormat'); const [columns, setColumns] = usePersistedState('stopColumns', ['startTime', 'endTime', 'startOdometer', 'address']); const [items, setItems] = useState([]); @@ -88,22 +87,23 @@ const StopReportPage = () => { }); const formatValue = (item, key) => { + const value = item[key]; switch (key) { case 'startTime': case 'endTime': - return formatTime(item[key], 'minutes', hours12); + return formatTime(value, 'minutes'); case 'startOdometer': - return formatDistance(item[key], distanceUnit, t); + return formatDistance(value, distanceUnit, t); case 'duration': - return formatNumericHours(item[key], t); + return formatNumericHours(value, t); case 'engineHours': - return formatNumericHours(item[key], t); + return value > 0 ? formatNumericHours(value, t) : null; case 'spentFuel': - return formatVolume(item[key], volumeUnit, t); + return value > 0 ? formatVolume(value, volumeUnit, t) : null; case 'address': - return (<AddressValue latitude={item.latitude} longitude={item.longitude} originalAddress={item[key]} />); + return (<AddressValue latitude={item.latitude} longitude={item.longitude} originalAddress={value} />); default: - return item[key]; + return value; } }; @@ -129,7 +129,7 @@ const StopReportPage = () => { )} <div className={classes.containerMain}> <div className={classes.header}> - <ReportFilter handleSubmit={handleSubmit} handleSchedule={handleSchedule}> + <ReportFilter handleSubmit={handleSubmit} handleSchedule={handleSchedule} loading={loading}> <ColumnSelect columns={columns} setColumns={setColumns} columnsArray={columnsArray} /> </ReportFilter> </div> diff --git a/src/reports/SummaryReportPage.jsx b/src/reports/SummaryReportPage.jsx index ae7e043e..9b9c00c9 100644 --- a/src/reports/SummaryReportPage.jsx +++ b/src/reports/SummaryReportPage.jsx @@ -8,7 +8,7 @@ import { formatDistance, formatSpeed, formatVolume, formatTime, formatNumericHours, } from '../common/util/formatter'; import ReportFilter from './components/ReportFilter'; -import { useAttributePreference, usePreference } from '../common/util/preferences'; +import { useAttributePreference } from '../common/util/preferences'; import { useTranslation } from '../common/components/LocalizationProvider'; import PageLayout from '../common/components/PageLayout'; import ReportsMenu from './components/ReportsMenu'; @@ -27,6 +27,8 @@ const columnsArray = [ ['averageSpeed', 'reportAverageSpeed'], ['maxSpeed', 'reportMaximumSpeed'], ['engineHours', 'reportEngineHours'], + ['startHours', 'reportStartEngineHours'], + ['endHours', 'reportEndEngineHours'], ['spentFuel', 'reportSpentFuel'], ]; const columnsMap = new Map(columnsArray); @@ -41,7 +43,6 @@ const SummaryReportPage = () => { const distanceUnit = useAttributePreference('distanceUnit'); const speedUnit = useAttributePreference('speedUnit'); const volumeUnit = useAttributePreference('volumeUnit'); - const hours12 = usePreference('twelveHourFormat'); const [columns, setColumns] = usePersistedState('summaryColumns', ['startTime', 'distance', 'averageSpeed']); const [daily, setDaily] = useState(false); @@ -88,31 +89,34 @@ const SummaryReportPage = () => { }); const formatValue = (item, key) => { + const value = item[key]; switch (key) { case 'deviceId': - return devices[item[key]].name; + return devices[value].name; case 'startTime': - return formatTime(item[key], 'date', hours12); + return formatTime(value, 'date'); case 'startOdometer': case 'endOdometer': case 'distance': - return formatDistance(item[key], distanceUnit, t); + return formatDistance(value, distanceUnit, t); case 'averageSpeed': case 'maxSpeed': - return formatSpeed(item[key], speedUnit, t); + return value > 0 ? formatSpeed(value, speedUnit, t) : null; case 'engineHours': - return formatNumericHours(item[key], t); + case 'startHours': + case 'endHours': + return value > 0 ? formatNumericHours(value, t) : null; case 'spentFuel': - return formatVolume(item[key], volumeUnit, t); + return value > 0 ? formatVolume(value, volumeUnit, t) : null; default: - return item[key]; + return value; } }; return ( <PageLayout menu={<ReportsMenu />} breadcrumbs={['reportTitle', 'reportSummary']}> <div className={classes.header}> - <ReportFilter handleSubmit={handleSubmit} handleSchedule={handleSchedule} multiDevice includeGroups> + <ReportFilter handleSubmit={handleSubmit} handleSchedule={handleSchedule} multiDevice includeGroups loading={loading}> <div className={classes.filterItem}> <FormControl fullWidth> <InputLabel>{t('sharedType')}</InputLabel> diff --git a/src/reports/TripReportPage.jsx b/src/reports/TripReportPage.jsx index 897ee506..22fb9b91 100644 --- a/src/reports/TripReportPage.jsx +++ b/src/reports/TripReportPage.jsx @@ -9,7 +9,7 @@ import { formatDistance, formatSpeed, formatVolume, formatTime, formatNumericHours, } from '../common/util/formatter'; import ReportFilter from './components/ReportFilter'; -import { useAttributePreference, usePreference } from '../common/util/preferences'; +import { useAttributePreference } from '../common/util/preferences'; import { useTranslation } from '../common/components/LocalizationProvider'; import PageLayout from '../common/components/PageLayout'; import ReportsMenu from './components/ReportsMenu'; @@ -50,7 +50,6 @@ const TripReportPage = () => { const distanceUnit = useAttributePreference('distanceUnit'); const speedUnit = useAttributePreference('speedUnit'); const volumeUnit = useAttributePreference('volumeUnit'); - const hours12 = usePreference('twelveHourFormat'); const [columns, setColumns] = usePersistedState('tripColumns', ['startTime', 'endTime', 'distance', 'averageSpeed']); const [items, setItems] = useState([]); @@ -130,27 +129,28 @@ const TripReportPage = () => { }); const formatValue = (item, key) => { + const value = item[key]; switch (key) { case 'startTime': case 'endTime': - return formatTime(item[key], 'minutes', hours12); + return formatTime(value, 'minutes'); case 'startOdometer': case 'endOdometer': case 'distance': - return formatDistance(item[key], distanceUnit, t); + return formatDistance(value, distanceUnit, t); case 'averageSpeed': case 'maxSpeed': - return formatSpeed(item[key], speedUnit, t); + return value > 0 ? formatSpeed(value, speedUnit, t) : null; case 'duration': - return formatNumericHours(item[key], t); + return formatNumericHours(value, t); case 'spentFuel': - return formatVolume(item[key], volumeUnit, t); + return value > 0 ? formatVolume(value, volumeUnit, t) : null; case 'startAddress': - return (<AddressValue latitude={item.startLat} longitude={item.startLon} originalAddress={item[key]} />); + return (<AddressValue latitude={item.startLat} longitude={item.startLon} originalAddress={value} />); case 'endAddress': - return (<AddressValue latitude={item.endLat} longitude={item.endLon} originalAddress={item[key]} />); + return (<AddressValue latitude={item.endLat} longitude={item.endLon} originalAddress={value} />); default: - return item[key]; + return value; } }; @@ -173,7 +173,7 @@ const TripReportPage = () => { )} <div className={classes.containerMain}> <div className={classes.header}> - <ReportFilter handleSubmit={handleSubmit} handleSchedule={handleSchedule}> + <ReportFilter handleSubmit={handleSubmit} handleSchedule={handleSchedule} loading={loading}> <ColumnSelect columns={columns} setColumns={setColumns} columnsArray={columnsArray} /> </ReportFilter> </div> diff --git a/src/reports/components/ReportFilter.jsx b/src/reports/components/ReportFilter.jsx index e6e08f16..437a7487 100644 --- a/src/reports/components/ReportFilter.jsx +++ b/src/reports/components/ReportFilter.jsx @@ -11,7 +11,7 @@ import SplitButton from '../../common/components/SplitButton'; import SelectField from '../../common/components/SelectField'; import { useRestriction } from '../../common/util/permissions'; -const ReportFilter = ({ children, handleSubmit, handleSchedule, showOnly, ignoreDevice, multiDevice, includeGroups }) => { +const ReportFilter = ({ children, handleSubmit, handleSchedule, showOnly, ignoreDevice, multiDevice, includeGroups, loading }) => { const classes = useReportStyles(); const dispatch = useDispatch(); const t = useTranslation(); @@ -33,7 +33,7 @@ const ReportFilter = ({ children, handleSubmit, handleSchedule, showOnly, ignore const [calendarId, setCalendarId] = useState(); const scheduleDisabled = button === 'schedule' && (!description || !calendarId); - const disabled = (!ignoreDevice && !deviceId && !deviceIds.length && !groupIds.length) || scheduleDisabled; + const disabled = (!ignoreDevice && !deviceId && !deviceIds.length && !groupIds.length) || scheduleDisabled || loading; const handleClick = (type) => { if (type === 'schedule') { diff --git a/src/resources/l10n/af.json b/src/resources/l10n/af.json index 5ecd845e..8437b5a5 100644 --- a/src/resources/l10n/af.json +++ b/src/resources/l10n/af.json @@ -4,6 +4,7 @@ "sharedSave": "Stoor", "sharedUpload": "Upload", "sharedSet": "Stel", + "sharedAccept": "Accept", "sharedCancel": "Kanselleer", "sharedCopy": "Copy", "sharedAdd": "Sit by", @@ -34,6 +35,7 @@ "sharedName": "Naam", "sharedDescription": "Beskrywing", "sharedSearch": "Soek", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Geografiese omheining", "sharedGeofences": "Geografiese omheinings", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Teken aan", "loginLanguage": "Taal", "loginReset": "Herstel Wagwoord", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Kaart", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Gemiddelde Spoed", "reportMaximumSpeed": "Maksimum Spoed", "reportEngineHours": "Engin Ure", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Duur", "reportStartDate": "Begindatum", "reportStartTime": "Begin tyd", diff --git a/src/resources/l10n/ar.json b/src/resources/l10n/ar.json index 19f4c9d8..020b7e3e 100644 --- a/src/resources/l10n/ar.json +++ b/src/resources/l10n/ar.json @@ -4,6 +4,7 @@ "sharedSave": "حفظ", "sharedUpload": "Upload", "sharedSet": "ضبط", + "sharedAccept": "Accept", "sharedCancel": "إلغاء", "sharedCopy": "Copy", "sharedAdd": "إضافة", @@ -34,6 +35,7 @@ "sharedName": "الاسم", "sharedDescription": "الوصف", "sharedSearch": "بحث", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "السياج الجغرافي", "sharedGeofences": "السياجات الجغرافية", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "رمز", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "تسجيل الدخول", "loginLanguage": "اللغة", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "خريطة", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "متوسط السرعة", "reportMaximumSpeed": "السرعة القصوى", "reportEngineHours": "ساعات عمل المحرك", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "المدة الزمنية", "reportStartDate": "تاريخ البدء", "reportStartTime": "وقت البدء", diff --git a/src/resources/l10n/az.json b/src/resources/l10n/az.json index 02430a47..09cf30d6 100644 --- a/src/resources/l10n/az.json +++ b/src/resources/l10n/az.json @@ -4,6 +4,7 @@ "sharedSave": "Yadda saxlamaq", "sharedUpload": "Upload", "sharedSet": "Qurmaq", + "sharedAccept": "Accept", "sharedCancel": "Ləğv etmək", "sharedCopy": "Copy", "sharedAdd": "Əlavə etmək", @@ -34,6 +35,7 @@ "sharedName": "Ad", "sharedDescription": "Təsvir", "sharedSearch": "Axtarış", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Geozona", "sharedGeofences": "Geozonalar", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Açar", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Giriş", "loginLanguage": "Dil", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Xəritə", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Orta sürət", "reportMaximumSpeed": "Maksimal sürə", "reportEngineHours": "Mühərrik saatları", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Davamiyyəti", "reportStartDate": "Start Date", "reportStartTime": "Başlanğıc vaxtı", diff --git a/src/resources/l10n/bg.json b/src/resources/l10n/bg.json index 299b7a15..8538bc50 100644 --- a/src/resources/l10n/bg.json +++ b/src/resources/l10n/bg.json @@ -4,6 +4,7 @@ "sharedSave": "Запази", "sharedUpload": "Upload", "sharedSet": "Настрой", + "sharedAccept": "Accept", "sharedCancel": "Отказ", "sharedCopy": "Copy", "sharedAdd": "Добави", @@ -34,6 +35,7 @@ "sharedName": "Име", "sharedDescription": "Описание", "sharedSearch": "Търси", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Зона", "sharedGeofences": "Зони", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Жетон", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Вход", "loginLanguage": "Език", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Карта", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Средна скорост", "reportMaximumSpeed": "Максимална скорост", "reportEngineHours": "Машиночас", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Продължителност", "reportStartDate": "Start Date", "reportStartTime": "Начален час", diff --git a/src/resources/l10n/bn.json b/src/resources/l10n/bn.json index 79d6c3d0..ddda55dd 100644 --- a/src/resources/l10n/bn.json +++ b/src/resources/l10n/bn.json @@ -4,6 +4,7 @@ "sharedSave": " সংরক্ষণ করুন", "sharedUpload": "Upload", "sharedSet": "স্থাপন করুন", + "sharedAccept": "Accept", "sharedCancel": " বাতিল করুন", "sharedCopy": "Copy", "sharedAdd": "যুক্ত করুন", @@ -34,6 +35,7 @@ "sharedName": "নাম", "sharedDescription": "বিবরণ / বর্ণনা", "sharedSearch": "অনুসন্ধান / খোঁজা", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "জিওফেন্স / ভৌগোলিক বেষ্টনী", "sharedGeofences": "জিওফেন্স / ভৌগোলিক বেষ্টনী", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "টোকেন", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "লগইন", "loginLanguage": "ভাষা", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "মানচিত্র", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Average Speed", "reportMaximumSpeed": "Maximum Speed", "reportEngineHours": "Engine Hours", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Duration", "reportStartDate": "Start Date", "reportStartTime": "শুরুর সময় ", diff --git a/src/resources/l10n/ca.json b/src/resources/l10n/ca.json index 6ac0b872..6619412b 100644 --- a/src/resources/l10n/ca.json +++ b/src/resources/l10n/ca.json @@ -4,14 +4,15 @@ "sharedSave": "Guardar", "sharedUpload": "Carrega", "sharedSet": "Establir", + "sharedAccept": "Accept", "sharedCancel": "Cancel·lar", - "sharedCopy": "Copy", + "sharedCopy": "Còpia", "sharedAdd": "Afegir", "sharedEdit": "Editar", "sharedRemove": "Eliminar", "sharedRemoveConfirm": "Eliminar element?", "sharedNoData": "Sense dades", - "sharedSubject": "Subject", + "sharedSubject": "Assumpte", "sharedYes": "Sí", "sharedNo": "No", "sharedKm": "Km", @@ -34,6 +35,7 @@ "sharedName": "Nom", "sharedDescription": "Descripció", "sharedSearch": "Cercar", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Geo-Zona", "sharedGeofences": "Geo-Zones", @@ -101,8 +103,9 @@ "sharedImport": "Importar", "sharedColumns": "Columnes", "sharedDropzoneText": "Arrossegueu i deixeu anar un fitxer aquí o feu clic", - "sharedLogs": "Logs", - "sharedLink": "Link", + "sharedLogs": "Registres", + "sharedLink": "Enllaç", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrència", "calendarOnce": "Una vegada", @@ -147,11 +150,11 @@ "attributeMailSmtpAuth": "Correu: Habilitar autenticació SMTP", "attributeMailSmtpUsername": "Correu: Nom d\\'usuari SMTP", "attributeMailSmtpPassword": "Correu: Contrasenya SMTP", - "attributeUiDisableSavedCommands": "UI: Disable Saved Commands", + "attributeUiDisableSavedCommands": "Interfície d'usuari: desactiva les ordres desades", "attributeUiDisableAttributes": "UI: Disable Attributes", "attributeUiDisableGroups": "UI: Deshabilitar Grups", "attributeUiDisableEvents": "UI: Deshabilitar esdeveniments", - "attributeUiDisableVehicleFeatures": "UI: Disable Vehicle Features", + "attributeUiDisableVehicleFeatures": "UI: Deshabilitar característiques del vehicle", "attributeUiDisableDrivers": "UI: Deshabilitar Conductors", "attributeUiDisableComputedAttributes": "UI: Deshabilitar Atributs calculats", "attributeUiDisableCalendars": "UI: Deshabilitar Calendari", @@ -178,7 +181,11 @@ "userFixedEmail": "No Email Change", "userToken": "Token Accés", "userDeleteAccount": "Delete Account", - "userTemporary": "Temporary", + "userTemporary": "Temporal", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Iniciar sessió", "loginLanguage": "Idioma", "loginReset": "Reiniciar contrasenya", @@ -235,7 +242,7 @@ "settingsTotpForce": "Força contrasenya d'un sol ús", "settingsServiceWorkerUpdateInterval": "Interval d'actualització del ServiceWorker", "settingsUpdateAvailable": "Hi ha una actualització disponible.", - "settingsSupport": "Support", + "settingsSupport": "Suport", "reportTitle": "Informes", "reportScheduled": "Informes programats", "reportDevice": "Dispositius", @@ -329,7 +336,8 @@ "serverLogo": "Imatge del logotip", "serverLogoInverted": "Imatge de logotip invertida", "serverChangeDisable": "Desactiva el canvi de servidor", - "serverDisableShare": "Disable Device Sharing", + "serverDisableShare": "Desactiva l'ús compartit de dispositius", + "serverReboot": "Reboot", "mapTitle": "Mapa", "mapActive": "Mapes actius", "mapOverlay": "Capa sobre el mapa", @@ -363,7 +371,7 @@ "mapWikimedia": "Wikimedia", "mapOrdnanceSurvey": "Ordnance Survey", "mapMapboxStreets": "Mapbox Streets", - "mapMapboxStreetsDark": "Mapbox Streets Dark", + "mapMapboxStreetsDark": "Mapbox Streets Fosc", "mapMapboxOutdoors": "Mapbox Outdoors", "mapMapboxSatellite": "Mapbox Satellite", "mapMapboxKey": "Mapbox Access Token", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Velocitat Mitjana", "reportMaximumSpeed": "Velocitat Màxima", "reportEngineHours": "Hores de Motor", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Durada", "reportStartDate": "Data Inical", "reportStartTime": "Hora Inical", diff --git a/src/resources/l10n/cs.json b/src/resources/l10n/cs.json index 10a1f1fa..5c9e53f3 100644 --- a/src/resources/l10n/cs.json +++ b/src/resources/l10n/cs.json @@ -2,16 +2,17 @@ "sharedLoading": "Načítám...", "sharedHide": "Skrýt", "sharedSave": "Uložit", - "sharedUpload": "Upload", + "sharedUpload": "Nahrát", "sharedSet": "Nastavit", + "sharedAccept": "Akceptovat", "sharedCancel": "Zrušit", - "sharedCopy": "Copy", + "sharedCopy": "Kopírovat", "sharedAdd": "Přidat", "sharedEdit": "Změnit", "sharedRemove": "Odstranit", "sharedRemoveConfirm": "Odstranit položku?", - "sharedNoData": "No data", - "sharedSubject": "Subject", + "sharedNoData": "Žádná data", + "sharedSubject": "Předmět", "sharedYes": "Ano", "sharedNo": "Ne", "sharedKm": "km", @@ -34,10 +35,11 @@ "sharedName": "Jméno", "sharedDescription": "Popis", "sharedSearch": "Hledat", - "sharedIconScale": "Icon Scale", + "sharedPriority": "Priority", + "sharedIconScale": "Velikost ikony", "sharedGeofence": "Zóna", "sharedGeofences": "Zóny", - "sharedCreateGeofence": "Create Geofence", + "sharedCreateGeofence": "Vytvořte lokalitu", "sharedNotifications": "Upozornění", "sharedNotification": "Upozornění", "sharedAttributes": "Atributy", @@ -66,14 +68,14 @@ "sharedDevice": "Zařízení", "sharedTest": "Test", "sharedTestNotification": "Odeslat testovací oznámení", - "sharedTestNotificators": "Test Channels", - "sharedTestExpression": "Test Expression", + "sharedTestNotificators": "Testovací kanály", + "sharedTestExpression": "Testovací výraz", "sharedCalendar": "Kalendář", "sharedCalendars": "Kalendáře", "sharedFile": "Soubor", - "sharedSearchDevices": "Search Devices", - "sharedSortBy": "Sort By", - "sharedFilterMap": "Filter on Map", + "sharedSearchDevices": "Vyhledat zařízení", + "sharedSortBy": "Seřazeno podle", + "sharedFilterMap": "Filtr na mapě", "sharedSelectFile": "Vybrat soubor", "sharedPhone": "Telefon", "sharedRequired": "Povinné", @@ -81,8 +83,8 @@ "sharedPermissions": "Oprávnění", "sharedConnections": "Připojení", "sharedExtra": "Volitelné", - "sharedPrimary": "Primary", - "sharedSecondary": "Secondary", + "sharedPrimary": "Hlavní", + "sharedSecondary": "Sekundární", "sharedTypeString": "Řetězec", "sharedTypeNumber": "Číslo", "sharedTypeBoolean": "Logická hodnota", @@ -99,33 +101,34 @@ "sharedAlarms": "Alarmy", "sharedLocation": "Lokace", "sharedImport": "Import", - "sharedColumns": "Columns", - "sharedDropzoneText": "Drag and drop a file here or click", - "sharedLogs": "Logs", - "sharedLink": "Link", - "calendarSimple": "Simple", - "calendarRecurrence": "Recurrence", - "calendarOnce": "Once", - "calendarDaily": "Daily", - "calendarWeekly": "Weekly", - "calendarMonthly": "Monthly", - "calendarDays": "Days", - "calendarSunday": "Sunday", - "calendarMonday": "Monday", - "calendarTuesday": "Tuesday", - "calendarWednesday": "Wednesday", - "calendarThursday": "Thursday", - "calendarFriday": "Friday", - "calendarSaturday": "Saturday", - "attributeShowGeofences": "Show Geofences", + "sharedColumns": "Sloupce", + "sharedDropzoneText": "Přetáhněte soubor sem nebo klikněte", + "sharedLogs": "Protokoly", + "sharedLink": "Odkaz", + "sharedEmulator": "Emulator", + "calendarSimple": "Jednoduchý", + "calendarRecurrence": "Opakování", + "calendarOnce": "Jednou", + "calendarDaily": "Denně", + "calendarWeekly": "Denně", + "calendarMonthly": "Měsíční", + "calendarDays": "Dny", + "calendarSunday": "Neděle", + "calendarMonday": "Pondělí", + "calendarTuesday": "Úterý", + "calendarWednesday": "Středa", + "calendarThursday": "Čtvrtek", + "calendarFriday": "Pátek", + "calendarSaturday": "Sobota", + "attributeShowGeofences": "Ukázat lokality", "attributeSpeedLimit": "Rychlostní limit", - "attributeFuelDropThreshold": "Fuel Drop Threshold", - "attributeFuelIncreaseThreshold": "Fuel Increase Threshold", + "attributeFuelDropThreshold": "Práh poklesu paliva", + "attributeFuelIncreaseThreshold": "Práh zvýšení paliva", "attributePolylineDistance": "Vzdálenost křivky", "attributeReportIgnoreOdometer": "Report: Počítadlo kilometrů", "attributeWebReportColor": "Web: Barva reportu", "attributeDevicePassword": "Heslo zařízení", - "attributeDeviceImage": "Device Image", + "attributeDeviceImage": "Obrázek zařízení", "attributeDeviceInactivityStart": "Počátek nečinnosti zařízení", "attributeDeviceInactivityPeriod": "Období nečinnosti zařízení", "attributeProcessingCopyAttributes": "Procesuji: Kopírování vlastností", @@ -133,9 +136,9 @@ "attributeWebLiveRouteLength": "Web: Aktuální délka trasy", "attributeWebSelectZoom": "Web: Přiblížit při výběru", "attributeWebMaxZoom": "Web: Maximální přiblížení", - "attributeTelegramChatId": "Telegram Chat ID", - "attributePushoverUserKey": "Pushover User Key", - "attributePushoverDeviceNames": "Pushover Device Names", + "attributeTelegramChatId": "ID Telegramového chatu", + "attributePushoverUserKey": "Pushover uživatelský klíč", + "attributePushoverDeviceNames": "Názvy zařízení Pushover", "attributeMailSmtpHost": "Mail: SMTP server", "attributeMailSmtpPort": "Mail: SMTP port", "attributeMailSmtpStarttlsEnable": "Mail: SMTP STARTTLS povolit", @@ -147,19 +150,19 @@ "attributeMailSmtpAuth": "Mail: SMTP povolení ověřování", "attributeMailSmtpUsername": "Mail: SMTP uživatelské jméno", "attributeMailSmtpPassword": "Mail: SMTP heslo", - "attributeUiDisableSavedCommands": "UI: Disable Saved Commands", - "attributeUiDisableAttributes": "UI: Disable Attributes", - "attributeUiDisableGroups": "UI: Disable Groups", + "attributeUiDisableSavedCommands": "UI: Zakázat uložené příkazy", + "attributeUiDisableAttributes": "UI: Zakázat atributy", + "attributeUiDisableGroups": "UI: Zakázat skupiny", "attributeUiDisableEvents": "UI: Zakázat události", - "attributeUiDisableVehicleFeatures": "UI: Disable Vehicle Features", + "attributeUiDisableVehicleFeatures": "UI: Zakázat funkce vozidla", "attributeUiDisableDrivers": "UI: Zakázat řidiče", "attributeUiDisableComputedAttributes": "UI: Zakázat vypočítané vlastnosti", "attributeUiDisableCalendars": "UI: Zakázat kalendáře", "attributeUiDisableMaintenance": "UI: Zakázat údržbu", "attributeUiHidePositionAttributes": "UI: Skrýt atributy pozice", - "attributeUiDisableLoginLanguage": "UI: Disable Login Language", + "attributeUiDisableLoginLanguage": "UI: Zakázat jazyk přihlášení", "attributeNotificationTokens": "Notifikační tokeny", - "attributePopupInfo": "Popup Info", + "attributePopupInfo": "Vyskakovací okno", "errorTitle": "Chyba", "errorGeneral": "Nesprávné parametry nebo překročení omezení", "errorConnection": "Chyba spojení", @@ -174,30 +177,34 @@ "userUserLimit": "Limit uživatele", "userDeviceReadonly": "Zařízení pouze pro čtení", "userLimitCommands": "Limit příkazů", - "userDisableReports": "Disable Reports", - "userFixedEmail": "No Email Change", + "userDisableReports": "Zakázat přehledy", + "userFixedEmail": "Zakázat změnu e-mailu", "userToken": "Token", - "userDeleteAccount": "Delete Account", - "userTemporary": "Temporary", + "userDeleteAccount": "Smazat účet", + "userTemporary": "Dočasný", + "userTerms": "Podmínky služby", + "userPrivacy": "Zásady ochrany osobních údajů", + "userTermsPrompt": "Kliknutím na tlačítko \"Akceptovat\" souhlasíte s našimi Podmínkami služby a potvrzujete, že jste si přečetli naše Zásady ochrany osobních údajů.", + "userTermsAccepted": "Podmínky přijaty", "loginTitle": "Přihlášení", "loginLanguage": "Jazyk", "loginReset": "Obnovit Heslo", "loginRegister": "Registrace", "loginLogin": "Přihlášení", - "loginOpenId": "Login with OpenID", + "loginOpenId": "Přihlaste se pomocí OpenID", "loginFailed": "Nesprávný email nebo heslo", "loginCreated": "Nový uživatel byl zaregistrován", "loginResetSuccess": "Zkontroluj si email ", "loginUpdateSuccess": "Nové heslo je nastaveno", "loginLogout": "Odhlášení", "loginLogo": "Logo", - "loginTotpCode": "One-time Password Code", - "loginTotpKey": "One-time Password Key", + "loginTotpCode": "Dvoufaktorová autentifikace kód", + "loginTotpKey": "Dvoufaktorová autentifikace klíč", "devicesAndState": "Zařízení a stav", - "deviceSelected": "Selected Device", + "deviceSelected": "Vybrané zařízení", "deviceTitle": "Zařízení", - "devicePrimaryInfo": "Device Title", - "deviceSecondaryInfo": "Device Detail", + "devicePrimaryInfo": "Název zařízení", + "deviceSecondaryInfo": "Detail zařízení", "deviceIdentifier": "Identifikace", "deviceModel": "Model", "deviceContact": "Kontakt", @@ -210,9 +217,9 @@ "deviceStatusOnline": "Online", "deviceStatusOffline": "Offline", "deviceStatusUnknown": "Neznámý", - "deviceRegisterFirst": "Register your first device", - "deviceIdentifierHelp": "IMEI, serial number or other id. It has to match the identifier device reports to the server.", - "deviceShare": "Share Device", + "deviceRegisterFirst": "Zaregistrujte své první zařízení", + "deviceIdentifierHelp": "IMEI, sériové číslo nebo jiné ID. Musí se shodovat s identifikátorem zařízení na serveru.", + "deviceShare": "Sdílet zařízení", "groupDialog": "Skupina", "groupParent": "Skupina", "groupNoGroup": "Žádná skupina", @@ -222,34 +229,34 @@ "settingsServer": "Server", "settingsUsers": "Uživatelé", "settingsDistanceUnit": "Jednotka vzdálenosti", - "settingsAltitudeUnit": "Altitude Unit", + "settingsAltitudeUnit": "Výšková jednotka", "settingsSpeedUnit": "Jednotka rychlosti", "settingsVolumeUnit": "Jednotka objemu", "settingsTwelveHourFormat": "12-hodinový formát", "settingsCoordinateFormat": "Formát souřadnic", - "settingsServerVersion": "Server Version", - "settingsAppVersion": "App Version", - "settingsConnection": "Connection", - "settingsDarkMode": "Dark Mode", - "settingsTotpEnable": "Enable One-time Password", - "settingsTotpForce": "Force One-time Password", - "settingsServiceWorkerUpdateInterval": "ServiceWorker Update Interval", - "settingsUpdateAvailable": "There is an update available.", - "settingsSupport": "Support", + "settingsServerVersion": "Verze serveru", + "settingsAppVersion": "Verze aplikace", + "settingsConnection": "Spojení", + "settingsDarkMode": "Tmavý režim", + "settingsTotpEnable": "Povolit dvoufaktorové ověření", + "settingsTotpForce": "Vynutit dvoufaktorové ověření", + "settingsServiceWorkerUpdateInterval": "Interval aktualizace ServiceWorker", + "settingsUpdateAvailable": "K dispozici je aktualizace.", + "settingsSupport": "Podpora", "reportTitle": "Reporty", - "reportScheduled": "Scheduled Reports", + "reportScheduled": "Naplánované zprávy", "reportDevice": "Zařízení", "reportGroup": "Skupina", "reportFrom": "Od", "reportTo": "Komu", "reportShow": "Zobrazit", "reportClear": "Vyprázdnit", - "linkGoogleMaps": "Google Maps", - "linkAppleMaps": "Apple Maps", + "linkGoogleMaps": "Google Mapy", + "linkAppleMaps": "Apple Mapy", "linkStreetView": "Street View", - "positionFixTime": "Fix Time", - "positionDeviceTime": "Device Time", - "positionServerTime": "Server Time", + "positionFixTime": "Čas", + "positionDeviceTime": "Čas zařízení", + "positionServerTime": "Čas serveru", "positionValid": "Správný", "positionAccuracy": "Přesnost", "positionLatitude": "Šířka", @@ -283,7 +290,7 @@ "positionHours": "Hodiny", "positionSteps": "Kroky", "positionInput": "Vstup", - "positionHeartRate": "Heart Rate", + "positionHeartRate": "Tepová frekvence", "positionOutput": "Výstup", "positionBatteryLevel": "Úroveň baterie", "positionFuelConsumption": "Spotřeba paliva", @@ -301,18 +308,18 @@ "positionMotion": "Pohyb", "positionArmed": "Odjištěno", "positionAcceleration": "Akcelerace", - "positionTemp": "Temperature", + "positionTemp": "Teplota", "positionDeviceTemp": "Teplota zařízení", - "positionCoolantTemp": "Coolant Temperature", + "positionCoolantTemp": "Teplota chladicí kapaliny", "positionOperator": "Operátor", "positionCommand": "Příkaz", "positionBlocked": "Blokované", "positionDtcs": "DTC", "positionObdSpeed": "OBD rychlost", "positionObdOdometer": "OBD počítadlo kilometrů", - "positionDrivingTime": "Driving Time", + "positionDrivingTime": "Doba jízdy", "positionDriverUniqueId": "Unikátní ID ridiče", - "positionCard": "Card", + "positionCard": "Karta", "positionImage": "Obraz", "positionVideo": "Video", "positionAudio": "Zvuk", @@ -322,26 +329,27 @@ "serverReadonly": "Pouze pro čtení", "serverForceSettings": "Vynutit nastavení", "serverAnnouncement": "Oznámení", - "serverName": "Server Name", - "serverDescription": "Server Description", - "serverColorPrimary": "Color Primary", - "serverColorSecondary": "Color Secondary", - "serverLogo": "Logo Image", - "serverLogoInverted": "Inverted Logo Image", - "serverChangeDisable": "Disable Server Change", - "serverDisableShare": "Disable Device Sharing", + "serverName": "Název serveru", + "serverDescription": "Popis serveru", + "serverColorPrimary": "Barva primární", + "serverColorSecondary": "Barva sekundární", + "serverLogo": "Obrázek loga", + "serverLogoInverted": "Barevně obrácený obrázek loga", + "serverChangeDisable": "Zakázat změnu serveru", + "serverDisableShare": "Zakázat sdílení zařízení", + "serverReboot": "Reboot", "mapTitle": "Mapa", - "mapActive": "Active Maps", - "mapOverlay": "Map Overlay", - "mapOverlayCustom": "Custom Overlay", + "mapActive": "Aktivní mapy", + "mapOverlay": "Překrytí mapy", + "mapOverlayCustom": "Vlastní překrytí mapy", "mapOpenSeaMap": "OpenSeaMap", "mapOpenRailwayMap": "OpenRailwayMap", - "mapOpenWeatherKey": "OpenWeather API Key", + "mapOpenWeatherKey": "OpenWeather API Klíč", "mapOpenWeatherClouds": "OpenWeather Clouds", - "mapOpenWeatherPrecipitation": "OpenWeather Precipitation", - "mapOpenWeatherPressure": "OpenWeather Pressure", - "mapOpenWeatherWind": "OpenWeather Wind", - "mapOpenWeatherTemperature": "OpenWeather Temperature", + "mapOpenWeatherPrecipitation": "OpenWeather Srážky", + "mapOpenWeatherPressure": "OpenWeather Tlak", + "mapOpenWeatherWind": "OpenWeather Vítr", + "mapOpenWeatherTemperature": "OpenWeather Teplota", "mapLayer": "Vrstva mapy", "mapCustom": "Vlastní (XYZ)", "mapCustomArcgis": "Vlastní (ArcGIS)", @@ -350,7 +358,7 @@ "mapOsm": "OpenStreetMap", "mapGoogleRoad": "Google Road", "mapGoogleHybrid": "Google Hybrid", - "mapGoogleSatellite": "Google Satellite", + "mapGoogleSatellite": "Google Satelit", "mapOpenTopoMap": "OpenTopoMap", "mapBingKey": "Bing Maps klíč", "mapBingRoad": "Bing Maps silniční", @@ -363,35 +371,35 @@ "mapWikimedia": "Wikimedia", "mapOrdnanceSurvey": "Ordnance Survey", "mapMapboxStreets": "Mapbox ulice", - "mapMapboxStreetsDark": "Mapbox Streets Dark", + "mapMapboxStreetsDark": "Mapbox Streets Tmavé", "mapMapboxOutdoors": "Mapbox venkovní", "mapMapboxSatellite": "Mapbox satelit", "mapMapboxKey": "Mapbox Access Token", "mapMapTilerBasic": "MapTiler Základní", "mapMapTilerHybrid": "MapTiler Hybridní", - "mapMapTilerKey": "MapTiler API Key", + "mapMapTilerKey": "MapTiler API Klíč", "mapLocationIqStreets": "LocationIQ Streets", - "mapLocationIqDark": "LocationIQ Dark", - "mapLocationIqKey": "LocationIQ Access Token", + "mapLocationIqDark": "LocationIQ Tmavé", + "mapLocationIqKey": "LocationIQ Přístupový klíč", "mapTomTomBasic": "TomTom Basic", - "mapTomTomFlow": "TomTom Traffic Flow", - "mapTomTomIncidents": "TomTom Traffic Incidents", - "mapTomTomKey": "TomTom API Key", + "mapTomTomFlow": "TomTom Dopravní tok", + "mapTomTomIncidents": "TomTom Dopravní nehody", + "mapTomTomKey": "TomTom API Klíč", "mapHereBasic": "Here Basic", "mapHereHybrid": "Here Hybrid", "mapHereSatellite": "Here Satellite", - "mapHereFlow": "Here Traffic Flow", - "mapHereKey": "Here API Key", + "mapHereFlow": "Here Dopravní tok", + "mapHereKey": "Here API Klíč", "mapShapePolygon": "Mnohoúhelník", "mapShapeCircle": "Kruh", "mapShapePolyline": "Křivka", "mapLiveRoutes": "Trasy živě", - "mapDirection": "Show Direction", + "mapDirection": "Zobrazit směr", "mapCurrentLocation": "Současná pozice", "mapPoiLayer": "Vrstva s POI", - "mapClustering": "Markers Clustering", - "mapOnSelect": "Show Map on Selection", - "mapDefault": "Default Map", + "mapClustering": "Shlukování markerů", + "mapOnSelect": "Zobrazit mapu při výběru", + "mapDefault": "Výchozí mapa", "stateTitle": "Stav", "stateName": "Atribut", "stateValue": "Hodnota", @@ -433,16 +441,16 @@ "commandGetModemStatus": "Získat stav modemu", "commandGetDeviceStatus": "Získat stav zařízení", "commandSetSpeedLimit": "Nastavit rychlostní limit", - "commandModePowerSaving": "Power Saving Mode", - "commandModeDeepSleep": "Deep Sleep Mode", - "commandAlarmGeofence": "Set Geofence Alarm", - "commandAlarmBattery": "Set Battery Alarm", - "commandAlarmSos": "Set SOS Alarm", - "commandAlarmRemove": "Set Remove Alarm", - "commandAlarmClock": "Set Clock Alarm", - "commandAlarmSpeed": "Set Speed Alarm", - "commandAlarmFall": "Set Fall Alarm", - "commandAlarmVibration": "Set Vibration Alarm", + "commandModePowerSaving": "Úsporný režim", + "commandModeDeepSleep": "Režim hlubokého spánku", + "commandAlarmGeofence": "Nastavte alarm lokality", + "commandAlarmBattery": "Nastavte alarm baterie", + "commandAlarmSos": "Nastavte SOS alarm", + "commandAlarmRemove": "Nastavte odstranit alarm", + "commandAlarmClock": "Nastavte budík", + "commandAlarmSpeed": "Nastavte alarm rychlosti", + "commandAlarmFall": "Nastavte alarm pádu", + "commandAlarmVibration": "Nastavte vibrační alarm", "commandFrequency": "Frekvence", "commandTimezone": "Ofset časové zóny", "commandMessage": "Zpráva", @@ -458,12 +466,12 @@ "eventDeviceUnknown": "Status neznámý", "eventDeviceOffline": "Status offline", "eventDeviceInactive": "Zařízení je neaktivní", - "eventQueuedCommandSent": "Queued command sent", + "eventQueuedCommandSent": "Příkaz ve frontě odeslán", "eventDeviceMoving": "Zařízení se přesouvá", "eventDeviceStopped": "Zařízení bylo zastaveno", "eventDeviceOverspeed": "Rychlostní limit překročen", "eventDeviceFuelDrop": "Pokles paliva", - "eventDeviceFuelIncrease": "Fuel increase", + "eventDeviceFuelIncrease": "Zvýšení paliva", "eventCommandResult": "Výsledek příkazu", "eventGeofenceEnter": "Vstoupeno do geozóny", "eventGeofenceExit": "Geozóna opuštěna", @@ -473,10 +481,10 @@ "eventMaintenance": "Vyžadována údržba", "eventTextMessage": "Obdržena textová zpráva", "eventDriverChanged": "Řidič vyměněn", - "eventMedia": "Media", + "eventMedia": "Média", "eventsScrollToLast": "Posunout na poslední", - "eventsSoundEvents": "Sound Events", - "eventsSoundAlarms": "Sound Alarms", + "eventsSoundEvents": "Zvukové události", + "eventsSoundAlarms": "Zvukové alarmy", "alarmGeneral": "Hlavní", "alarmSos": "SOS", "alarmVibration": "Vibrace", @@ -518,7 +526,7 @@ "notificationType": "Typ oznámení", "notificationAlways": "Všechna zařízení", "notificationNotificators": "Kanály", - "notificatorCommand": "Command", + "notificatorCommand": "Příkaz", "notificatorWeb": "Web", "notificatorMail": "Mail", "notificatorSms": "SMS", @@ -527,7 +535,7 @@ "notificatorTelegram": "Telegram", "notificatorPushover": "Pushover", "reportReplay": "Přehrát", - "reportCombined": "Combined", + "reportCombined": "Kombinovaný", "reportRoute": "Trasa", "reportEvents": "Události", "reportTrips": "Cesty", @@ -541,7 +549,7 @@ "reportShowMarkers": "Zobrazit značky", "reportExport": "Exportovat", "reportEmail": "Zaslat report mailem", - "reportSchedule": "Schedule", + "reportSchedule": "Plán", "reportPeriod": "Období", "reportCustom": "Vlastní", "reportToday": "Dnes", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Průměrná rychlost", "reportMaximumSpeed": "Maximální rychlost", "reportEngineHours": "Motohodiny", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Trvání", "reportStartDate": "Počáteční datum", "reportStartTime": "Čas startu", @@ -579,7 +589,7 @@ "categoryBoat": "Loď", "categoryBus": "Autobus", "categoryCar": "Auto", - "categoryCamper": "Camper", + "categoryCamper": "Obytný vůz", "categoryCrane": "Jeřáb", "categoryHelicopter": "Helikoptéra", "categoryMotorcycle": "Motocykl", diff --git a/src/resources/l10n/da.json b/src/resources/l10n/da.json index 4c24a3c6..09e2546b 100644 --- a/src/resources/l10n/da.json +++ b/src/resources/l10n/da.json @@ -4,6 +4,7 @@ "sharedSave": "Gem", "sharedUpload": "Upload", "sharedSet": "Indstil", + "sharedAccept": "Accept", "sharedCancel": "Fortryd", "sharedCopy": "Copy", "sharedAdd": "Tilføj", @@ -34,6 +35,7 @@ "sharedName": "Navn", "sharedDescription": "Beskrivelse", "sharedSearch": "Søg", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Geofence", "sharedGeofences": "Geofences", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Log på", "loginLanguage": "Sprog", "loginReset": "Nulstille kodeord", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Kort", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Gennemsnits hastighed", "reportMaximumSpeed": "Maximum hastighed", "reportEngineHours": "Motor aktiv timer", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Varighed", "reportStartDate": "Start dato", "reportStartTime": "Start tidspunkt", diff --git a/src/resources/l10n/de.json b/src/resources/l10n/de.json index 3e937ea0..3e252446 100644 --- a/src/resources/l10n/de.json +++ b/src/resources/l10n/de.json @@ -4,6 +4,7 @@ "sharedSave": "Speichern", "sharedUpload": "Upload", "sharedSet": "Speichern", + "sharedAccept": "Akzeptieren", "sharedCancel": "Abbrechen", "sharedCopy": "Kopieren", "sharedAdd": "Hinzufügen", @@ -34,6 +35,7 @@ "sharedName": "Name", "sharedDescription": "Beschreibung", "sharedSearch": "Suchen", + "sharedPriority": "Priority", "sharedIconScale": "Icon-Skalierung", "sharedGeofence": "Geo-Zaun", "sharedGeofences": "Geo-Zäune", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Datei hierhin ziehen oder klicken", "sharedLogs": "Protokolle", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Einfach", "calendarRecurrence": "Wiederholung", "calendarOnce": "Einmalig", @@ -147,7 +150,7 @@ "attributeMailSmtpAuth": "Mail: SMTP Authentifizierung aktivieren", "attributeMailSmtpUsername": "Mail: SMTP Benutzername", "attributeMailSmtpPassword": "Mail: SMTP Passwort", - "attributeUiDisableSavedCommands": "UI: Disable Saved Commands", + "attributeUiDisableSavedCommands": "UI: Gespeicherte Befehle deaktivieren", "attributeUiDisableAttributes": "UI: Attribute deaktivieren", "attributeUiDisableGroups": "UI: Gruppen deaktivieren", "attributeUiDisableEvents": "Oberfläche: Ereignisse deaktivieren", @@ -179,6 +182,10 @@ "userToken": "Schlüssel", "userDeleteAccount": "Account löschen", "userTemporary": "Temporär", + "userTerms": "Nutzungsbedingungen", + "userPrivacy": "Datenschutzerklärung", + "userTermsPrompt": "Durch den Klick auf „Akzeptieren“ erklären Sie sich mit unseren Nutzungsbedingungen und der Datenschutzerklärung einverstanden.", + "userTermsAccepted": "Nutzungsbedingungen akzeptiert", "loginTitle": "Anmeldung", "loginLanguage": "Sprache", "loginReset": "Passwort zurücksetzen", @@ -330,6 +337,7 @@ "serverLogoInverted": "Umgekehrte Logografik", "serverChangeDisable": "Serverwechsel deaktivieren", "serverDisableShare": "Gerätefreigabe deaktivieren", + "serverReboot": "Reboot", "mapTitle": "Karte", "mapActive": "Aktive Karte", "mapOverlay": "Karten Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Durchschnittsgeschwindigkeit", "reportMaximumSpeed": "Höchstgeschwindigkeit", "reportEngineHours": "Betriebsstunden", + "reportStartEngineHours": "Betriebsstunden Start", + "reportEndEngineHours": "Bestriebsstunden Ziel", "reportDuration": "Dauer", "reportStartDate": "Beginn", "reportStartTime": "Startzeit", diff --git a/src/resources/l10n/el.json b/src/resources/l10n/el.json index ad2f2cf1..5331f397 100644 --- a/src/resources/l10n/el.json +++ b/src/resources/l10n/el.json @@ -4,6 +4,7 @@ "sharedSave": "Αποθήκευση", "sharedUpload": "Upload", "sharedSet": "Θέσε", + "sharedAccept": "Accept", "sharedCancel": "Άκυρο", "sharedCopy": "Copy", "sharedAdd": "Προσθήκη", @@ -34,6 +35,7 @@ "sharedName": "Όνομα", "sharedDescription": "Περιγραφή", "sharedSearch": "Αναζήτηση", + "sharedPriority": "Priority", "sharedIconScale": "Κλίμακα εικονιδίων", "sharedGeofence": "Γεωφράχτης", "sharedGeofences": "Γεωφράχτες", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Σύρετε και αποθέστε ένα αρχείο εδώ ή κάντε κλικ", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Απλό", "calendarRecurrence": "Επανάληψη", "calendarOnce": "Μια φορά", @@ -179,6 +182,10 @@ "userToken": "Λεκτικό", "userDeleteAccount": "Διαγραφή λογαριασμού", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Σύνδεση", "loginLanguage": "Γλώσσα", "loginReset": "Επαναφορά κωδικού", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Χάρτης", "mapActive": "Ενεργοί Χάρτες", "mapOverlay": "Υπέρθεση Χάρτη", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Μέση ταχύτητα", "reportMaximumSpeed": "Μέγιστη ταχύτητα", "reportEngineHours": "Ώρες Μηχανής", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Διάρκεια", "reportStartDate": "Ημερομηνία έναρξης", "reportStartTime": "Ώρα έναρξης", diff --git a/src/resources/l10n/en.json b/src/resources/l10n/en.json index a9303f63..608c36d8 100644 --- a/src/resources/l10n/en.json +++ b/src/resources/l10n/en.json @@ -4,6 +4,7 @@ "sharedSave": "Save", "sharedUpload": "Upload", "sharedSet": "Set", + "sharedAccept": "Accept", "sharedCancel": "Cancel", "sharedCopy": "Copy", "sharedAdd": "Add", @@ -34,6 +35,7 @@ "sharedName": "Name", "sharedDescription": "Description", "sharedSearch": "Search", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Geofence", "sharedGeofences": "Geofences", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Login", "loginLanguage": "Language", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Map", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Average Speed", "reportMaximumSpeed": "Maximum Speed", "reportEngineHours": "Engine Hours", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Duration", "reportStartDate": "Start Date", "reportStartTime": "Start Time", diff --git a/src/resources/l10n/es.json b/src/resources/l10n/es.json index a0405eb1..8c9ce749 100644 --- a/src/resources/l10n/es.json +++ b/src/resources/l10n/es.json @@ -4,6 +4,7 @@ "sharedSave": "Guardar", "sharedUpload": "Cargar", "sharedSet": "Establecer", + "sharedAccept": "Aceptar", "sharedCancel": "Cancelar", "sharedCopy": "Copiar", "sharedAdd": "Añadir", @@ -34,6 +35,7 @@ "sharedName": "Nombre", "sharedDescription": "Descripción", "sharedSearch": "Buscar", + "sharedPriority": "Prioridad", "sharedIconScale": "Escala de los iconos", "sharedGeofence": "Geo-Zona", "sharedGeofences": "Geo-Zonas", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Arrastra y suelta el archivo aquí o pulsa", "sharedLogs": "Registros", "sharedLink": "Enlace", + "sharedEmulator": "Emulador", "calendarSimple": "Simple", "calendarRecurrence": "Recurrente", "calendarOnce": "Una vez", @@ -179,6 +182,10 @@ "userToken": "Token Acceso", "userDeleteAccount": "Borrar cuenta", "userTemporary": "Temporal", + "userTerms": "Condiciones del Servicio", + "userPrivacy": "Política de Privacidad", + "userTermsPrompt": "Al hacer clic en Aceptar, aceptas nuestras Condiciones del Servicio y confirmas que has leído nuestra Política de Privacidad", + "userTermsAccepted": "Condiciones Aceptadas", "loginTitle": "Iniciar sesión", "loginLanguage": "Idioma", "loginReset": "Reiniciar contraseña", @@ -330,6 +337,7 @@ "serverLogoInverted": "Imagen de logo invertida", "serverChangeDisable": "Deshabilitar el cambio de servidor", "serverDisableShare": "Deshabilitar poder Compartir Dispositivos", + "serverReboot": "Reboot", "mapTitle": "Mapa", "mapActive": "Mapas activos", "mapOverlay": "Capa sobre el mapa", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Velocidad media", "reportMaximumSpeed": "Velocidad máxima", "reportEngineHours": "Horas motor", + "reportStartEngineHours": "Horas de motor en marcha", + "reportEndEngineHours": "Horas de motor parado", "reportDuration": "Duración", "reportStartDate": "Fecha de inicio", "reportStartTime": "Hora de Inicio", diff --git a/src/resources/l10n/fa.json b/src/resources/l10n/fa.json index 3507681c..50d949e2 100644 --- a/src/resources/l10n/fa.json +++ b/src/resources/l10n/fa.json @@ -4,6 +4,7 @@ "sharedSave": "ذخيره", "sharedUpload": "Upload", "sharedSet": "تنظیم", + "sharedAccept": "Accept", "sharedCancel": "انصراف", "sharedCopy": "Copy", "sharedAdd": "اضافه كردن", @@ -34,6 +35,7 @@ "sharedName": "نام", "sharedDescription": "توضیحات", "sharedSearch": "جستجو", + "sharedPriority": "Priority", "sharedIconScale": "اندازه آیکن", "sharedGeofence": "حصار جغرافیایی", "sharedGeofences": "حصارهای جغرافیایی", @@ -103,6 +105,7 @@ "sharedDropzoneText": "یک فایل را در اینجا بکشید و رها کنید یا کلیک کنید", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "ساده", "calendarRecurrence": "عکس العمل", "calendarOnce": "یکبار", @@ -179,6 +182,10 @@ "userToken": "رمز یکبار", "userDeleteAccount": "حذف اکانت", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "ورود", "loginLanguage": "انتخاب زبان", "loginReset": "بازیابی رمز عبور", @@ -330,6 +337,7 @@ "serverLogoInverted": "معکوس سازی رنگ لوگو", "serverChangeDisable": "غیرفعال کردن تغییر سرور", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "نقشه", "mapActive": "نقشه های فعال", "mapOverlay": "لایه نقشه", @@ -554,6 +562,8 @@ "reportAverageSpeed": "سرعت میانگین", "reportMaximumSpeed": "حداکثر سرعت", "reportEngineHours": "مدت زمان روشن بودن وسیله", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "مسافت", "reportStartDate": "تاریخ آغاز", "reportStartTime": "زمان شروع", diff --git a/src/resources/l10n/fi.json b/src/resources/l10n/fi.json index f5459166..ba2c19ea 100644 --- a/src/resources/l10n/fi.json +++ b/src/resources/l10n/fi.json @@ -4,6 +4,7 @@ "sharedSave": "Tallenna", "sharedUpload": "Lataa palvelimelle", "sharedSet": "Aseta", + "sharedAccept": "Accept", "sharedCancel": "Peruuta", "sharedCopy": "Kopioi", "sharedAdd": "Lisää", @@ -34,6 +35,7 @@ "sharedName": "Nimi", "sharedDescription": "Kuvaus", "sharedSearch": "Haku", + "sharedPriority": "Priority", "sharedIconScale": "Kuvakkeiden skaalaus", "sharedGeofence": "Geoaita", "sharedGeofences": "Geoaidat", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Vedä ja pudota tiedosto tähän tai klikkaa", "sharedLogs": "Lokit", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Yksinkertainen", "calendarRecurrence": "Toisto", "calendarOnce": "Kerran", @@ -179,6 +182,10 @@ "userToken": "Todennustunnus", "userDeleteAccount": "Poista tili", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Kirjaudu", "loginLanguage": "Kieli", "loginReset": "Nollaa salasana", @@ -330,6 +337,7 @@ "serverLogoInverted": "Logo kuva negatiivinen", "serverChangeDisable": "Estä palvelimen vaihto", "serverDisableShare": "Estä laitteen jakaminen", + "serverReboot": "Reboot", "mapTitle": "Kartta", "mapActive": "Aktiiviset kartat", "mapOverlay": "Karttapäällys", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Keskinopeus", "reportMaximumSpeed": "Suurin nopeus", "reportEngineHours": "Käyttötunnit", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Kesto", "reportStartDate": "Aloituspäivä", "reportStartTime": "Aloitusaika", diff --git a/src/resources/l10n/fr.json b/src/resources/l10n/fr.json index 1e9147ae..84ed00fa 100644 --- a/src/resources/l10n/fr.json +++ b/src/resources/l10n/fr.json @@ -4,6 +4,7 @@ "sharedSave": "Enregistrer", "sharedUpload": "Upload", "sharedSet": "Régler", + "sharedAccept": "Accept", "sharedCancel": "Annuler", "sharedCopy": "Copy", "sharedAdd": "Ajouter", @@ -34,6 +35,7 @@ "sharedName": "Nom", "sharedDescription": "Description", "sharedSearch": "Recherche", + "sharedPriority": "Priority", "sharedIconScale": "Echelle des icônes", "sharedGeofence": "Périmètre virtuel", "sharedGeofences": "Périmètres virtuels", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Glissez et déposez un fichier ici ou cliquez", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Récurrence", "calendarOnce": "Une fois", @@ -179,6 +182,10 @@ "userToken": "Jeton", "userDeleteAccount": "Supprimer le compte", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Identification", "loginLanguage": "Langue", "loginReset": "Réinitialiser le mot de passe", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Carte", "mapActive": "Cartes actives", "mapOverlay": "Superposition de cartes", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Vitesse moyenne", "reportMaximumSpeed": "Vitesse maximum", "reportEngineHours": "Heures du moteur", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Durée", "reportStartDate": "Date de départ", "reportStartTime": "Heure de départ", diff --git a/src/resources/l10n/gl.json b/src/resources/l10n/gl.json index 8464e7bb..9c86834d 100644 --- a/src/resources/l10n/gl.json +++ b/src/resources/l10n/gl.json @@ -4,6 +4,7 @@ "sharedSave": "Gardar", "sharedUpload": "Upload", "sharedSet": "Establecer", + "sharedAccept": "Accept", "sharedCancel": "Cancelar", "sharedCopy": "Copy", "sharedAdd": "Engadir", @@ -34,6 +35,7 @@ "sharedName": "Nome", "sharedDescription": "Descrición", "sharedSearch": "Buscar", + "sharedPriority": "Priority", "sharedIconScale": "Escala das iconas", "sharedGeofence": "Xeocerca", "sharedGeofences": "Xeocercas", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Arrastra e solta un arquivo aquí ou fai clic", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recorrencia", "calendarOnce": "Unha vez", @@ -179,6 +182,10 @@ "userToken": "Token Acceso", "userDeleteAccount": "Eliminar conta", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Iniciar sesión", "loginLanguage": "Idioma", "loginReset": "Restablecer o contrasinal", @@ -330,6 +337,7 @@ "serverLogoInverted": "Imaxe do logotipo con cores inversos", "serverChangeDisable": "Desactivar o cambio de servidor", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Mapa", "mapActive": "Mapas activos", "mapOverlay": "Superposición de mapas", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Velocidade media", "reportMaximumSpeed": "Velocidade máxima", "reportEngineHours": "Horas do motor", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Duración", "reportStartDate": "Data de inicio", "reportStartTime": "Hora de inicio", diff --git a/src/resources/l10n/he.json b/src/resources/l10n/he.json index 8a2a4eed..314ac5c6 100644 --- a/src/resources/l10n/he.json +++ b/src/resources/l10n/he.json @@ -4,6 +4,7 @@ "sharedSave": "שמירה", "sharedUpload": "Upload", "sharedSet": "הגדרה", + "sharedAccept": "Accept", "sharedCancel": "ביטול", "sharedCopy": "העתקה", "sharedAdd": "הוספה", @@ -34,6 +35,7 @@ "sharedName": "שם", "sharedDescription": "תיאור", "sharedSearch": "חיפוש", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "גדר וירטואלית", "sharedGeofences": "גדרות וירטואליות", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "פעם אחת", @@ -179,6 +182,10 @@ "userToken": "אסימון", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "כניסה", "loginLanguage": "שפה", "loginReset": "איפוס סיסמה", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "מפה", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "מהירות ממוצעת", "reportMaximumSpeed": "מהירות מירבית", "reportEngineHours": "שעות מנוע", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "משך הנסיעה", "reportStartDate": "Start Date", "reportStartTime": "זמן התחלה", diff --git a/src/resources/l10n/hi.json b/src/resources/l10n/hi.json index 1716dc99..879451dd 100644 --- a/src/resources/l10n/hi.json +++ b/src/resources/l10n/hi.json @@ -4,6 +4,7 @@ "sharedSave": "सुरक्षित करें", "sharedUpload": "Upload", "sharedSet": "स्वीकृति दें", + "sharedAccept": "Accept", "sharedCancel": "रद्द करें", "sharedCopy": "Copy", "sharedAdd": "जोड़ें", @@ -34,6 +35,7 @@ "sharedName": "नाम", "sharedDescription": "विवरण", "sharedSearch": "खोजें", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "जिओफेंस / भूगौलिक परिधि", "sharedGeofences": "जिओफेंसस / भूगौलिक परिधियां", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "टोकन", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "लॉगिन / प्रवेश करें", "loginLanguage": "भाषा", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "मानचित्र", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "औसत गति", "reportMaximumSpeed": "अधिकतम गति", "reportEngineHours": "इंजन के घंटे", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "अवधि", "reportStartDate": "Start Date", "reportStartTime": "समय का आरंभ", diff --git a/src/resources/l10n/hr.json b/src/resources/l10n/hr.json index f64cdb04..3ca14fcf 100644 --- a/src/resources/l10n/hr.json +++ b/src/resources/l10n/hr.json @@ -4,6 +4,7 @@ "sharedSave": "Spremi", "sharedUpload": "Upload", "sharedSet": "Postavi", + "sharedAccept": "Accept", "sharedCancel": "Poništi", "sharedCopy": "Copy", "sharedAdd": "Dodaj", @@ -34,6 +35,7 @@ "sharedName": "Ime", "sharedDescription": "Opis", "sharedSearch": "Pretraži", + "sharedPriority": "Priority", "sharedIconScale": "Skaliraj ikonu", "sharedGeofence": "Geo-ograda", "sharedGeofences": "Geo-ograde", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Dovuci i pusti datoteku ovdje ili klikni", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Jednostavno", "calendarRecurrence": "Ponavljajuće", "calendarOnce": "Jednom", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Obriši račun", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Prijava", "loginLanguage": "Jezik", "loginReset": "Ponovo postavi lozinku", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Karta", "mapActive": "Aktivna karta", "mapOverlay": "Prekrivajuća karta", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Prosječna brzina", "reportMaximumSpeed": "Maksimalna brzina", "reportEngineHours": "Sati rada motora", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Trajanje", "reportStartDate": "Početni datum", "reportStartTime": "Početno vrijeme", diff --git a/src/resources/l10n/hu.json b/src/resources/l10n/hu.json index f50b329c..a9520228 100644 --- a/src/resources/l10n/hu.json +++ b/src/resources/l10n/hu.json @@ -4,6 +4,7 @@ "sharedSave": "Mentés", "sharedUpload": "Upload", "sharedSet": "Beállít", + "sharedAccept": "Accept", "sharedCancel": "Mégse", "sharedCopy": "Copy", "sharedAdd": "Hozzáadás", @@ -34,6 +35,7 @@ "sharedName": "Név", "sharedDescription": "Leírás", "sharedSearch": "Keresés", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Geokerítés", "sharedGeofences": "Geokerítések", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Bejelentkezés", "loginLanguage": "Nyelv", "loginReset": "Jelszó reset", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Térkép", "mapActive": "Aktív térképek", "mapOverlay": "Térkép réteg", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Átlagos sebesség", "reportMaximumSpeed": "Maximális sebesség", "reportEngineHours": "Motorjárat órák", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Időtartam", "reportStartDate": "Kezdés dátuma", "reportStartTime": "Indulás ideje", diff --git a/src/resources/l10n/id.json b/src/resources/l10n/id.json index c7883dae..0c1910a1 100644 --- a/src/resources/l10n/id.json +++ b/src/resources/l10n/id.json @@ -4,6 +4,7 @@ "sharedSave": "Simpan", "sharedUpload": "Upload", "sharedSet": "Setel", + "sharedAccept": "Accept", "sharedCancel": "Batal", "sharedCopy": "Copy", "sharedAdd": "Tambah", @@ -34,6 +35,7 @@ "sharedName": "Nama", "sharedDescription": "Deskripsi", "sharedSearch": "Cari", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Batas Wilayah", "sharedGeofences": "Semua Batas Wilayah", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Masuk", "loginLanguage": "Bahasa", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Peta", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Kecepatan Rata-rata", "reportMaximumSpeed": "Kecepatan Tertinggi", "reportEngineHours": "Durasi Mesin", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Durasi", "reportStartDate": "Start Date", "reportStartTime": "Waktu Awal", diff --git a/src/resources/l10n/it.json b/src/resources/l10n/it.json index 03fcbb16..93756f25 100644 --- a/src/resources/l10n/it.json +++ b/src/resources/l10n/it.json @@ -4,6 +4,7 @@ "sharedSave": "Salva", "sharedUpload": "Carica", "sharedSet": "Imposta", + "sharedAccept": "Accept", "sharedCancel": "Annulla", "sharedCopy": "Copia", "sharedAdd": "Aggiungi", @@ -34,6 +35,7 @@ "sharedName": "Nome", "sharedDescription": "Descrizione", "sharedSearch": "Cerca", + "sharedPriority": "Priority", "sharedIconScale": "Grandezza Icona", "sharedGeofence": "Geo Area", "sharedGeofences": "Geo Aree", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Trascina un file qui o clicca", "sharedLogs": "Registri", "sharedLink": "Collegamento", + "sharedEmulator": "Emulator", "calendarSimple": "Semplice", "calendarRecurrence": "Ricorrente", "calendarOnce": "Una volta", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Elimina Account", "userTemporary": "Temporaneo", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Accesso", "loginLanguage": "Lingua", "loginReset": "Resetta Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Immagine Logo Invertita", "serverChangeDisable": "Disattiva cambiamento Server", "serverDisableShare": "Disattiva la Condivisione del Dispositivo", + "serverReboot": "Reboot", "mapTitle": "Mappa", "mapActive": "Mappe Attive", "mapOverlay": "Soprapposizione Mappa", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Velocità Media", "reportMaximumSpeed": "Velocità Massima", "reportEngineHours": "Ore di Guida", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Durata", "reportStartDate": "Data di partenza", "reportStartTime": "Ora di Partenza", diff --git a/src/resources/l10n/ja.json b/src/resources/l10n/ja.json index 3c99b0c0..437fcfb0 100644 --- a/src/resources/l10n/ja.json +++ b/src/resources/l10n/ja.json @@ -4,6 +4,7 @@ "sharedSave": "保存", "sharedUpload": "Upload", "sharedSet": "設定", + "sharedAccept": "Accept", "sharedCancel": "キャンセル", "sharedCopy": "Copy", "sharedAdd": "追加", @@ -34,6 +35,7 @@ "sharedName": "名前", "sharedDescription": "説明", "sharedSearch": "検索", + "sharedPriority": "Priority", "sharedIconScale": "アイコンの大きさ", "sharedGeofence": "ジオフェンス", "sharedGeofences": "ジオフェンス", @@ -103,6 +105,7 @@ "sharedDropzoneText": "ファイルをドラッグ&ドロップするかクリック", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "シンプル", "calendarRecurrence": "再発", "calendarOnce": "一度", @@ -179,6 +182,10 @@ "userToken": "トークン", "userDeleteAccount": "アカウントを削除", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "ログイン", "loginLanguage": "言語", "loginReset": "パスワードをリセット", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "地図", "mapActive": "アクティブなマップ", "mapOverlay": "マップのオーバーレイ", @@ -554,6 +562,8 @@ "reportAverageSpeed": "平均速度", "reportMaximumSpeed": "最高速度", "reportEngineHours": "エンジン稼働時間", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "期間", "reportStartDate": "開始日", "reportStartTime": "開始日時", diff --git a/src/resources/l10n/ka.json b/src/resources/l10n/ka.json index 5a6b4cb2..e4c154cc 100644 --- a/src/resources/l10n/ka.json +++ b/src/resources/l10n/ka.json @@ -4,6 +4,7 @@ "sharedSave": "შენახვა", "sharedUpload": "Upload", "sharedSet": "დაყენება", + "sharedAccept": "Accept", "sharedCancel": "უარყოფა", "sharedCopy": "Copy", "sharedAdd": "დამატება", @@ -34,6 +35,7 @@ "sharedName": "დასახელება", "sharedDescription": "აღწერილობა", "sharedSearch": "ძებნა", + "sharedPriority": "Priority", "sharedIconScale": "იკონკის მასშტაბი", "sharedGeofence": "გეოზონა", "sharedGeofences": "გეოზონები", @@ -103,6 +105,7 @@ "sharedDropzoneText": "გადმოათრიეთ ფაილი აქ ან დააწკაპუნეთ", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "მარტივი", "calendarRecurrence": "რეციდივი", "calendarOnce": "ერთხელ", @@ -179,6 +182,10 @@ "userToken": "ტოკენი", "userDeleteAccount": "Ანგარიშის წაშლა", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "ავტორიზაცია", "loginLanguage": "ენა", "loginReset": "პაროლის განულება", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "რუკა", "mapActive": "აქტიური რუკა", "mapOverlay": "რუკის დაფარვა", @@ -554,6 +562,8 @@ "reportAverageSpeed": "საშუალო სიჩქარე", "reportMaximumSpeed": "მაქსიმალური სიჩქარე", "reportEngineHours": "მოტოსაათი", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "ხანგრძლივობა", "reportStartDate": "დაწყების თარიღი", "reportStartTime": "დაწყების დრო", diff --git a/src/resources/l10n/kk.json b/src/resources/l10n/kk.json index 706f2b78..94cec108 100644 --- a/src/resources/l10n/kk.json +++ b/src/resources/l10n/kk.json @@ -4,6 +4,7 @@ "sharedSave": "Сақтау", "sharedUpload": "Upload", "sharedSet": "Орнату", + "sharedAccept": "Accept", "sharedCancel": "Болдырмау", "sharedCopy": "Copy", "sharedAdd": "Енгізу", @@ -34,6 +35,7 @@ "sharedName": "Атауы", "sharedDescription": "Сипаттамасы", "sharedSearch": "Іздеу", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Геозона", "sharedGeofences": "Геозоналар", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Кілт", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Кіру", "loginLanguage": "Тіл", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Карта", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Орташа жылдамдық", "reportMaximumSpeed": "Максималды жылдамдық", "reportEngineHours": "Мотосағат", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Ұзақтығы", "reportStartDate": "Start Date", "reportStartTime": "Бастапқы уақыт", diff --git a/src/resources/l10n/km.json b/src/resources/l10n/km.json index d6d38ea8..bcd4d919 100644 --- a/src/resources/l10n/km.json +++ b/src/resources/l10n/km.json @@ -4,6 +4,7 @@ "sharedSave": "រក្សារទុក", "sharedUpload": "Upload", "sharedSet": "កំណត់", + "sharedAccept": "Accept", "sharedCancel": "បោះបង់", "sharedCopy": "Copy", "sharedAdd": "បន្ថែម", @@ -34,6 +35,7 @@ "sharedName": "ឈ្មោះ", "sharedDescription": "បរិយាយ", "sharedSearch": "ស្វែងរក", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "កំណត់ភូមិសាស្ត្រ", "sharedGeofences": "កំណត់ភូមិសាស្ត្រ", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "សញ្ញាសម្ងាត់", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "ចូល", "loginLanguage": "ភាសា", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "ផែនទី", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "ល្បឿនមធ្យម", "reportMaximumSpeed": "ល្បឿនអតិបរមា", "reportEngineHours": "ម៉ោងម៉ាស៊ីន", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "រយៈពេល", "reportStartDate": "Start Date", "reportStartTime": "ម៉ោងចាប់ផ្តើម", diff --git a/src/resources/l10n/ko.json b/src/resources/l10n/ko.json index 0ba191cf..be65dd97 100644 --- a/src/resources/l10n/ko.json +++ b/src/resources/l10n/ko.json @@ -4,6 +4,7 @@ "sharedSave": "저장", "sharedUpload": "Upload", "sharedSet": "확인", + "sharedAccept": "Accept", "sharedCancel": "취소", "sharedCopy": "Copy", "sharedAdd": "추가", @@ -34,6 +35,7 @@ "sharedName": "이름", "sharedDescription": "내용", "sharedSearch": "검색", + "sharedPriority": "Priority", "sharedIconScale": "아이콘 크기", "sharedGeofence": "지오펜스", "sharedGeofences": "지오펜스", @@ -103,6 +105,7 @@ "sharedDropzoneText": "파일을 가져오거나 여기를 누르세요.", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "심플", "calendarRecurrence": "반복 주기", "calendarOnce": "한번", @@ -179,6 +182,10 @@ "userToken": "토큰", "userDeleteAccount": "계정 삭제", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "로그인", "loginLanguage": "언어", "loginReset": "비밀번호 초기화", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "지도", "mapActive": "활성화된 지도", "mapOverlay": "지도 오버레이", @@ -554,6 +562,8 @@ "reportAverageSpeed": "평균 속도", "reportMaximumSpeed": "최대 속도", "reportEngineHours": "엔진 시간", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "기간", "reportStartDate": "시작일", "reportStartTime": "시작시간", diff --git a/src/resources/l10n/lo.json b/src/resources/l10n/lo.json index d0a40085..64dd2864 100644 --- a/src/resources/l10n/lo.json +++ b/src/resources/l10n/lo.json @@ -4,6 +4,7 @@ "sharedSave": "ບັນທຶກ", "sharedUpload": "Upload", "sharedSet": "Set", + "sharedAccept": "Accept", "sharedCancel": "ຍົກເລີກ", "sharedCopy": "Copy", "sharedAdd": "ເພີ່ມ", @@ -34,6 +35,7 @@ "sharedName": "ຊື່", "sharedDescription": "ລັກສະນະ", "sharedSearch": "ຄົ້ນຫາ", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "ເຂດພື້ນທີ່", "sharedGeofences": "ເຂດພື້ນທີ່", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "ເຂົ້າສູ່ລະບົບ", "loginLanguage": "ພາສາ", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "ແຜ່ນທີ", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Average Speed", "reportMaximumSpeed": "Maximum Speed", "reportEngineHours": "Engine Hours", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Duration", "reportStartDate": "Start Date", "reportStartTime": "Start Time", diff --git a/src/resources/l10n/lt.json b/src/resources/l10n/lt.json index d4ae0530..43f61758 100644 --- a/src/resources/l10n/lt.json +++ b/src/resources/l10n/lt.json @@ -4,6 +4,7 @@ "sharedSave": "Išsaugoti", "sharedUpload": "Įkelti", "sharedSet": "Nustatyti", + "sharedAccept": "Accept", "sharedCancel": "Atšaukti", "sharedCopy": "Kopijuoti", "sharedAdd": "Pridėti", @@ -34,6 +35,7 @@ "sharedName": "Pavadinimas", "sharedDescription": "Aprašymas", "sharedSearch": "Paieška", + "sharedPriority": "Priority", "sharedIconScale": "Ikonos mastelis", "sharedGeofence": "Georiba", "sharedGeofences": "Georibos", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Nutempkite failą čia arba paspauskite", "sharedLogs": "Žurnalai", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Paprastas", "calendarRecurrence": "Pasikartojimas", "calendarOnce": "Vienkartinis", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Pašalinti vartotoją", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Prisijungimas", "loginLanguage": "Kalba", "loginReset": "Atstatyti slaptažodį", @@ -330,6 +337,7 @@ "serverLogoInverted": "Invertuotas logo vaizdas", "serverChangeDisable": "Uždrausti keisti serverį", "serverDisableShare": "Išjungti dalinimasi įrenginiais", + "serverReboot": "Reboot", "mapTitle": "Žemėlapis", "mapActive": "Aktyvūs žemėlapiai", "mapOverlay": "Žemėlapių sluoksniai", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Vidutinis greitis", "reportMaximumSpeed": "Maksimalus greitis", "reportEngineHours": "Variklio valandos", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Trukmė", "reportStartDate": "Pradžios data", "reportStartTime": "Pradžios laikas", diff --git a/src/resources/l10n/lv.json b/src/resources/l10n/lv.json index 5769fe30..cb15f446 100644 --- a/src/resources/l10n/lv.json +++ b/src/resources/l10n/lv.json @@ -4,6 +4,7 @@ "sharedSave": "Saglabāt", "sharedUpload": "Upload", "sharedSet": "Iestatīt", + "sharedAccept": "Accept", "sharedCancel": "Atcelt", "sharedCopy": "Copy", "sharedAdd": "Pievienot", @@ -34,6 +35,7 @@ "sharedName": "Vārds", "sharedDescription": "Apraksts", "sharedSearch": "Meklēt", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Geolaukums", "sharedGeofences": "Geolaukumi", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Zīme", "userDeleteAccount": "Dzēst Kontu", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Lietotājvārds", "loginLanguage": "Valoda", "loginReset": "Atiestatīt paroli", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Karte", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Vidējais Ātrums", "reportMaximumSpeed": "Maksimālais Ātrums", "reportEngineHours": "Motorstundas", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Ilgums", "reportStartDate": "Sākuma Datums", "reportStartTime": "Sākuma Laiks", diff --git a/src/resources/l10n/mk.json b/src/resources/l10n/mk.json index 4aa2119e..998552f3 100644 --- a/src/resources/l10n/mk.json +++ b/src/resources/l10n/mk.json @@ -4,6 +4,7 @@ "sharedSave": "Зачувај", "sharedUpload": "Прикачи", "sharedSet": "Постави", + "sharedAccept": "Accept", "sharedCancel": "Откажи", "sharedCopy": "Копирај", "sharedAdd": "Додади", @@ -34,6 +35,7 @@ "sharedName": "Име", "sharedDescription": "Опис", "sharedSearch": "Пребарување", + "sharedPriority": "Priority", "sharedIconScale": "Размер на икони", "sharedGeofence": "Географска зона", "sharedGeofences": "Географски зони", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Повлечи фајл овде или кликни", "sharedLogs": "Логови", "sharedLink": "Линк", + "sharedEmulator": "Emulator", "calendarSimple": "Едноставно", "calendarRecurrence": "Повторување", "calendarOnce": "Еднаш", @@ -179,6 +182,10 @@ "userToken": "Токен", "userDeleteAccount": "Избриши Акаунт", "userTemporary": "Привремено", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Најава", "loginLanguage": "Јазик", "loginReset": "Ресетирај лозинка", @@ -330,6 +337,7 @@ "serverLogoInverted": "Инверзна слика за лого", "serverChangeDisable": "Оневозможи промена на сервер", "serverDisableShare": "Оневозможи споделување на уреди", + "serverReboot": "Reboot", "mapTitle": "Мапа", "mapActive": "Активни мапи", "mapOverlay": "Преклопени мапи", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Просечна брзина", "reportMaximumSpeed": "Максимална брзина", "reportEngineHours": "Работни саати", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Времетраење", "reportStartDate": "Почетен датум", "reportStartTime": "Почетно време", diff --git a/src/resources/l10n/ml.json b/src/resources/l10n/ml.json index 40dde8f2..98b869fe 100644 --- a/src/resources/l10n/ml.json +++ b/src/resources/l10n/ml.json @@ -4,6 +4,7 @@ "sharedSave": "സേവ്", "sharedUpload": "Upload", "sharedSet": "സെറ്റ്", + "sharedAccept": "Accept", "sharedCancel": "റദ്ദാക്കുക", "sharedCopy": "Copy", "sharedAdd": "ചേര്ക്കുക", @@ -34,6 +35,7 @@ "sharedName": "പേര്", "sharedDescription": "വിവരണം", "sharedSearch": "സെർച്ച് ", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "ജിയോഫെൻസ് ", "sharedGeofences": "ജിയോഫെൻസെസ് ", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "ലോഗിൻ ചെയ്യുക ", "loginLanguage": "ഭാഷ", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "ഭൂപടം", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Average Speed", "reportMaximumSpeed": "Maximum Speed", "reportEngineHours": "Engine Hours", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Duration", "reportStartDate": "Start Date", "reportStartTime": "Start Time", diff --git a/src/resources/l10n/mn.json b/src/resources/l10n/mn.json index ea3ecedb..c11686bf 100644 --- a/src/resources/l10n/mn.json +++ b/src/resources/l10n/mn.json @@ -4,6 +4,7 @@ "sharedSave": "Хадгалах", "sharedUpload": "Upload", "sharedSet": "Тааруулах", + "sharedAccept": "Accept", "sharedCancel": "Цуцлах", "sharedCopy": "Copy", "sharedAdd": "Нэмэх", @@ -34,6 +35,7 @@ "sharedName": "Нэр", "sharedDescription": "Тайлбар", "sharedSearch": "Хайх", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Хязгаарлалт", "sharedGeofences": "Хязгаарлалтууд", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Нэвтрэх", "loginLanguage": "Хэл", "loginReset": "Нууц үг сэргээх", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Map", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Дундаж хурд", "reportMaximumSpeed": "Дээд хурд", "reportEngineHours": "Engine Hours", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Хугацаа", "reportStartDate": "Эхлэх өдөр", "reportStartTime": "Эхлэх цаг", diff --git a/src/resources/l10n/ms.json b/src/resources/l10n/ms.json index 50b4048a..4c787349 100644 --- a/src/resources/l10n/ms.json +++ b/src/resources/l10n/ms.json @@ -4,6 +4,7 @@ "sharedSave": "Simpan", "sharedUpload": "Upload", "sharedSet": "Set", + "sharedAccept": "Accept", "sharedCancel": "Batal", "sharedCopy": "Copy", "sharedAdd": "Tambah", @@ -34,6 +35,7 @@ "sharedName": "Name", "sharedDescription": "Description", "sharedSearch": "Search", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Geofence", "sharedGeofences": "Geofences", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Log masuk", "loginLanguage": "Bahasa", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Peta", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Average Speed", "reportMaximumSpeed": "Maximum Speed", "reportEngineHours": "Engine Hours", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Duration", "reportStartDate": "Start Date", "reportStartTime": "Start Time", diff --git a/src/resources/l10n/nb.json b/src/resources/l10n/nb.json index a3faa8c0..3d8d1613 100644 --- a/src/resources/l10n/nb.json +++ b/src/resources/l10n/nb.json @@ -4,6 +4,7 @@ "sharedSave": "Lagre", "sharedUpload": "Upload", "sharedSet": "Sett", + "sharedAccept": "Accept", "sharedCancel": "Avbryt", "sharedCopy": "Copy", "sharedAdd": "Legg til", @@ -34,6 +35,7 @@ "sharedName": "Navn", "sharedDescription": "Beskrivelse", "sharedSearch": "Søk", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "geo-gjerde", "sharedGeofences": "Geo-gjerder", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Symbol", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Logg inn", "loginLanguage": "Språk", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Kart", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Gjennomsnittshastighet ", "reportMaximumSpeed": "Maksimumshastighet", "reportEngineHours": "Motortimer", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Varighet", "reportStartDate": "Start Date", "reportStartTime": "Starttidspunkt", diff --git a/src/resources/l10n/ne.json b/src/resources/l10n/ne.json index 0c89df5d..c8bff3e6 100644 --- a/src/resources/l10n/ne.json +++ b/src/resources/l10n/ne.json @@ -4,6 +4,7 @@ "sharedSave": "सुरक्षित गर्ने ", "sharedUpload": "Upload", "sharedSet": "सेट गर्ने ", + "sharedAccept": "Accept", "sharedCancel": "रद्ध गर्ने ", "sharedCopy": "Copy", "sharedAdd": "थप्ने", @@ -34,6 +35,7 @@ "sharedName": "नाम ", "sharedDescription": "विवरण ", "sharedSearch": "खोज्ने ", + "sharedPriority": "Priority", "sharedIconScale": "आइकन स्केल", "sharedGeofence": "भू परिधि ", "sharedGeofences": "भू परिधिहरू ", @@ -103,6 +105,7 @@ "sharedDropzoneText": "यहाँ एउटा फाइल तान्नुहोस् र छोड्नुहोस् वा क्लिक गर्नुहोस्", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "सरल", "calendarRecurrence": "पुनरावृत्ति", "calendarOnce": "एक पटक", @@ -179,6 +182,10 @@ "userToken": "टोकन", "userDeleteAccount": "खाता मेटाउनुहोस्", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "लगिन गर्ने ", "loginLanguage": "भाषा ", "loginReset": "पासवर्ड रिसेट", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "नक्शा ", "mapActive": "सक्रिय नक्शा", "mapOverlay": "नक्सा ओभरले", @@ -554,6 +562,8 @@ "reportAverageSpeed": "औसत गति", "reportMaximumSpeed": "अधिकतम गति", "reportEngineHours": "इन्जिन घण्टा", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "अवधि", "reportStartDate": "सुरू मिति", "reportStartTime": "शुरु समय", diff --git a/src/resources/l10n/nl.json b/src/resources/l10n/nl.json index 224adc26..6a22a8d6 100644 --- a/src/resources/l10n/nl.json +++ b/src/resources/l10n/nl.json @@ -4,6 +4,7 @@ "sharedSave": "Opslaan", "sharedUpload": "Upload", "sharedSet": "Instellen", + "sharedAccept": "Accept", "sharedCancel": "Annuleren", "sharedCopy": "Copy", "sharedAdd": "Toevoegen", @@ -34,6 +35,7 @@ "sharedName": "Naam", "sharedDescription": "Omschrijving", "sharedSearch": "Zoeken", + "sharedPriority": "Priority", "sharedIconScale": "Schaal van iconen", "sharedGeofence": "Geografisch gebied", "sharedGeofences": "Geografische gebieden", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Sleep en plaats hier een bestand of klik hier", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Eenvoudig", "calendarRecurrence": "Herhaling", "calendarOnce": "Eenmalig", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Geen account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Inloggen", "loginLanguage": "Taal", "loginReset": "Wachtwoord herstellen", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Kaart", "mapActive": "Actieve kaarten", "mapOverlay": "Kaartlaag", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Gemiddelde snelheid", "reportMaximumSpeed": "Maximale snelheid", "reportEngineHours": "Draaiuren motor", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Duur", "reportStartDate": "Startdatum", "reportStartTime": "Starttijd", diff --git a/src/resources/l10n/nn.json b/src/resources/l10n/nn.json index 2bdc5a9a..9e1a0815 100644 --- a/src/resources/l10n/nn.json +++ b/src/resources/l10n/nn.json @@ -4,6 +4,7 @@ "sharedSave": "Lagre", "sharedUpload": "Upload", "sharedSet": "Sett", + "sharedAccept": "Accept", "sharedCancel": "Avbryt", "sharedCopy": "Copy", "sharedAdd": "Legg til", @@ -34,6 +35,7 @@ "sharedName": "Namn", "sharedDescription": "Beskriving", "sharedSearch": "Søk", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Geo-gjerde", "sharedGeofences": "Geo-gjerde", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Symbol", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Logg inn", "loginLanguage": "Språk", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Kart", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Gjennomsnittshastighet", "reportMaximumSpeed": "Maksimumshastighet", "reportEngineHours": "Motortimar", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Varigheit", "reportStartDate": "Start Date", "reportStartTime": "Starttidspunkt", diff --git a/src/resources/l10n/pl.json b/src/resources/l10n/pl.json index 6e0a57d4..cdd12bb0 100644 --- a/src/resources/l10n/pl.json +++ b/src/resources/l10n/pl.json @@ -4,6 +4,7 @@ "sharedSave": "Zapisz", "sharedUpload": "Wyślij", "sharedSet": "Ustaw", + "sharedAccept": "Accept", "sharedCancel": "Anuluj", "sharedCopy": "Copy", "sharedAdd": "Dodaj", @@ -34,6 +35,7 @@ "sharedName": "Nazwa", "sharedDescription": "Opis", "sharedSearch": "Szukaj", + "sharedPriority": "Priority", "sharedIconScale": "Skala ikon", "sharedGeofence": "Obszar monitorowany", "sharedGeofences": "Obszary monitorowane", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Przeciągnij i upuść plik tutaj lub kliknij", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Prosty", "calendarRecurrence": "Powtarzalny", "calendarOnce": "Jednorazowy", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Usuń konto", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Login", "loginLanguage": "Język", "loginReset": "Zresetuj hasło", @@ -330,6 +337,7 @@ "serverLogoInverted": "Odwrócony obraz logo", "serverChangeDisable": "Wyłącz zmianę serwera", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Mapa", "mapActive": "Aktywne mapy", "mapOverlay": "Nakładka mapy", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Średnia prędkość", "reportMaximumSpeed": "Maksymalna prędkość", "reportEngineHours": "Czas pracy silnika", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Czas trwania", "reportStartDate": "Data początkowa", "reportStartTime": "Czas uruchomienia", diff --git a/src/resources/l10n/pt.json b/src/resources/l10n/pt.json index 66181d39..3e68d191 100644 --- a/src/resources/l10n/pt.json +++ b/src/resources/l10n/pt.json @@ -4,6 +4,7 @@ "sharedSave": "Guardar", "sharedUpload": "Upload", "sharedSet": "Conjunto", + "sharedAccept": "Accept", "sharedCancel": "Cancelar", "sharedCopy": "Copy", "sharedAdd": "Adicionar", @@ -34,6 +35,7 @@ "sharedName": "Nome", "sharedDescription": "Descrição", "sharedSearch": "Pesquisar", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Cerca Geográfica", "sharedGeofences": "Cercas Geográficas", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Símbolo", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Entrar", "loginLanguage": "Idioma", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Mapa", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Velocidade Média", "reportMaximumSpeed": "Velocidade Máxima", "reportEngineHours": "Duração Ligado", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Duração", "reportStartDate": "Data de Início", "reportStartTime": "Hora de Inicio", diff --git a/src/resources/l10n/pt_BR.json b/src/resources/l10n/pt_BR.json index 7f47050f..8b25df7c 100644 --- a/src/resources/l10n/pt_BR.json +++ b/src/resources/l10n/pt_BR.json @@ -4,14 +4,15 @@ "sharedSave": "Salvar", "sharedUpload": "Enviar", "sharedSet": "Aplicar", + "sharedAccept": "Accept", "sharedCancel": "Cancelar", - "sharedCopy": "Copy", + "sharedCopy": "Copia", "sharedAdd": "Adicionar", "sharedEdit": "Editar", "sharedRemove": "Remover", "sharedRemoveConfirm": "Remover item?", "sharedNoData": "Sem dados", - "sharedSubject": "Subject", + "sharedSubject": "Assunto", "sharedYes": "Sim", "sharedNo": "Não", "sharedKm": "km", @@ -34,6 +35,7 @@ "sharedName": "Nome", "sharedDescription": "Descrição", "sharedSearch": "Busca", + "sharedPriority": "Priority", "sharedIconScale": "Escala do ícone", "sharedGeofence": "Geocerca", "sharedGeofences": "Cerca Virtual", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Arraste e solte um arquivo aqui ou clique", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simples", "calendarRecurrence": "Recorrência", "calendarOnce": "Uma vez", @@ -147,11 +150,11 @@ "attributeMailSmtpAuth": "Email: Ativar Autenticação (SMTP)", "attributeMailSmtpUsername": "Email: Nome de Usuário (SMTP)", "attributeMailSmtpPassword": "Email: Senha (SMTP)", - "attributeUiDisableSavedCommands": "UI: Disable Saved Commands", + "attributeUiDisableSavedCommands": "UI: Desativar Comandos Salvos", "attributeUiDisableAttributes": "UI: Desativar atributos", "attributeUiDisableGroups": "UI: Desabilitar Grupos", "attributeUiDisableEvents": "UI: Eventos Desativados", - "attributeUiDisableVehicleFeatures": "UI: Disable Vehicle Features", + "attributeUiDisableVehicleFeatures": "UI: Desativar Recursos do Veículo", "attributeUiDisableDrivers": "UI: Desativar Motoristas", "attributeUiDisableComputedAttributes": "UI: Desativar Atributos Calculados", "attributeUiDisableCalendars": "UI: Desativar Calendários", @@ -178,7 +181,11 @@ "userFixedEmail": "Sem alteração de e-mail", "userToken": "Token", "userDeleteAccount": "Deletar conta", - "userTemporary": "Temporary", + "userTemporary": "Temporário", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Login", "loginLanguage": "Idioma", "loginReset": "Redefinir senha", @@ -235,7 +242,7 @@ "settingsTotpForce": "Forçar One-time Password", "settingsServiceWorkerUpdateInterval": "Intervalo de atualização do ServiceWorker", "settingsUpdateAvailable": "Existe uma atualização disponível.", - "settingsSupport": "Support", + "settingsSupport": "Suporte", "reportTitle": "Relatórios", "reportScheduled": "Agendamento de relatórios", "reportDevice": "Dispositivo", @@ -329,7 +336,8 @@ "serverLogo": "Imagem do Logo", "serverLogoInverted": "Imagem do logo invertida", "serverChangeDisable": "Desabilitar mudança de servidor", - "serverDisableShare": "Disable Device Sharing", + "serverDisableShare": "Desativar Compartilhamento de Dispositivos", + "serverReboot": "Reboot", "mapTitle": "Mapa", "mapActive": "Mapas ativos", "mapOverlay": "Sobreposição de mapa", @@ -363,7 +371,7 @@ "mapWikimedia": "Wikimedia", "mapOrdnanceSurvey": "Levantamento de artilharia", "mapMapboxStreets": "Mapbox Ruas", - "mapMapboxStreetsDark": "Mapbox Streets Dark", + "mapMapboxStreetsDark": "Mapbox Streets Escuro", "mapMapboxOutdoors": "Mapbox ao ar livre", "mapMapboxSatellite": "Mapbox Satélite", "mapMapboxKey": "Mapbox Token de Acesso", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Velocidade Média", "reportMaximumSpeed": "Velocidade Máxima", "reportEngineHours": "Horas ligado", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Duração", "reportStartDate": "Data de Início", "reportStartTime": "Hora inicial", diff --git a/src/resources/l10n/ro.json b/src/resources/l10n/ro.json index 84367c5b..6446b0ee 100644 --- a/src/resources/l10n/ro.json +++ b/src/resources/l10n/ro.json @@ -4,6 +4,7 @@ "sharedSave": "Salvează", "sharedUpload": "Încarcă", "sharedSet": "Configurare", + "sharedAccept": "Accept", "sharedCancel": "Anulează", "sharedCopy": "Copy", "sharedAdd": "Adaugă", @@ -34,6 +35,7 @@ "sharedName": "Nume", "sharedDescription": "Descriere", "sharedSearch": "Căutare", + "sharedPriority": "Priority", "sharedIconScale": "Scală pentru Iconiță", "sharedGeofence": "Perimetru Restricționat", "sharedGeofences": "Perimetre Restricționate", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop un fișier aici ori click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simplu", "calendarRecurrence": "Recurent", "calendarOnce": "O singură dată", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Șterge Cont", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Autentificare", "loginLanguage": "Limbă", "loginReset": "Reconfigurare Parolă", @@ -330,6 +337,7 @@ "serverLogoInverted": "Imagine Logo Inversată", "serverChangeDisable": "Dezactivează Schimbarea Serverului", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Hartă", "mapActive": "Hărți Active", "mapOverlay": "Suprapunere Hartă", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Viteza medie", "reportMaximumSpeed": "Viteză Maximă", "reportEngineHours": "Ore motor", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Durata", "reportStartDate": "Data Start", "reportStartTime": "Oră Start", diff --git a/src/resources/l10n/ru.json b/src/resources/l10n/ru.json index 4d70757d..e9beb53e 100644 --- a/src/resources/l10n/ru.json +++ b/src/resources/l10n/ru.json @@ -4,6 +4,7 @@ "sharedSave": "Сохранить", "sharedUpload": "Upload", "sharedSet": "Установить", + "sharedAccept": "Accept", "sharedCancel": "Отмена", "sharedCopy": "Copy", "sharedAdd": "Добавить", @@ -34,6 +35,7 @@ "sharedName": "Имя", "sharedDescription": "Описание", "sharedSearch": "Поиск", + "sharedPriority": "Priority", "sharedIconScale": "Иконка масштаба", "sharedGeofence": "Геозона", "sharedGeofences": "Геозоны", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Перетащите файл сюда или нажмите", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Простой", "calendarRecurrence": "Повторение", "calendarOnce": "Однократно", @@ -179,6 +182,10 @@ "userToken": "Ключ", "userDeleteAccount": "Удалить аккаунт", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Вход", "loginLanguage": "Язык", "loginReset": "Сброс пароля", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Карта", "mapActive": "Активные карты", "mapOverlay": "Слой карты", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Средняя скорость", "reportMaximumSpeed": "Максимальная скорость", "reportEngineHours": "Моточасы", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Длительность", "reportStartDate": "Дата начала", "reportStartTime": "Начальное время", diff --git a/src/resources/l10n/si.json b/src/resources/l10n/si.json index 9e8ad6af..c999d439 100644 --- a/src/resources/l10n/si.json +++ b/src/resources/l10n/si.json @@ -4,6 +4,7 @@ "sharedSave": "සුරකින්න", "sharedUpload": "Upload", "sharedSet": "සකසන්න", + "sharedAccept": "Accept", "sharedCancel": "සිදු කරන්න", "sharedCopy": "Copy", "sharedAdd": "එක් කරන්න", @@ -34,6 +35,7 @@ "sharedName": "නම", "sharedDescription": "සවිස්තරය", "sharedSearch": "සොයන්න", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "භූ වැටිය", "sharedGeofences": "භූ වැටි", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "ටෝකනය", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "ඇතුල් වන්න", "loginLanguage": "භාෂාව", "loginReset": "මුරපදය නැවත සකසන්න", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "දක්වා", "mapActive": "ක්රියාකාරී සිතියම්", "mapOverlay": "සිතියම උඩ තට්ටුව", @@ -554,6 +562,8 @@ "reportAverageSpeed": "සාමාන්ය වේගය", "reportMaximumSpeed": "උපරිම වේගය", "reportEngineHours": "එන්ජින් පැය", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "කාලසීමාව", "reportStartDate": "ආරම්භක දිනය", "reportStartTime": "ආරම්භක වේලාව", diff --git a/src/resources/l10n/sk.json b/src/resources/l10n/sk.json index e4aebedc..d73e0efb 100644 --- a/src/resources/l10n/sk.json +++ b/src/resources/l10n/sk.json @@ -1,19 +1,20 @@ { - "sharedLoading": "Načítava...", + "sharedLoading": "Načítavam...", "sharedHide": "Schovať", "sharedSave": "Uložiť", - "sharedUpload": "Upload", + "sharedUpload": "Nahrať", "sharedSet": "Nastaviť", + "sharedAccept": "Súhlasím", "sharedCancel": "Zrušiť", - "sharedCopy": "Copy", + "sharedCopy": "Kopírovať", "sharedAdd": "Pridať", "sharedEdit": "Upraviť", "sharedRemove": "Odstrániť", "sharedRemoveConfirm": "Odstrániť položku?", - "sharedNoData": "No data", - "sharedSubject": "Subject", - "sharedYes": "Yes", - "sharedNo": "No", + "sharedNoData": "Žiadne dáta", + "sharedSubject": "Predmet", + "sharedYes": "Áno", + "sharedNo": "Nie", "sharedKm": "Km", "sharedMi": "mi", "sharedNmi": "nmi", @@ -34,10 +35,11 @@ "sharedName": "Meno", "sharedDescription": "Popis", "sharedSearch": "Hľadať", - "sharedIconScale": "Icon Scale", - "sharedGeofence": "Geofence", - "sharedGeofences": "Geofences", - "sharedCreateGeofence": "Create Geofence", + "sharedPriority": "Priority", + "sharedIconScale": "Veľkosť ikonky", + "sharedGeofence": "Lokalita", + "sharedGeofences": "Lokality", + "sharedCreateGeofence": "Vytvoriť lokalitu", "sharedNotifications": "Notifikácie", "sharedNotification": "Notifikácia", "sharedAttributes": "Atribúty", @@ -59,30 +61,30 @@ "sharedUsGallon": "Americký galón", "sharedLiterPerHourAbbreviation": "l/h", "sharedGetMapState": "Získať mapu štátu", - "sharedComputedAttribute": "Computed Attribute", - "sharedComputedAttributes": "Computed Attributes", - "sharedCheckComputedAttribute": "Check Computed Attribute", + "sharedComputedAttribute": "Vypočítaný atribút", + "sharedComputedAttributes": "Vypočítané atribúty", + "sharedCheckComputedAttribute": "Skontrolujte vypočítaný atribút", "sharedExpression": "Výraz", "sharedDevice": "Zariadenie", - "sharedTest": "Test", - "sharedTestNotification": "Pošli skúšobnú notifikáciu", - "sharedTestNotificators": "Test Channels", - "sharedTestExpression": "Test Expression", + "sharedTest": "Otestovať", + "sharedTestNotification": "Odoslať skúšobnú notifikáciu", + "sharedTestNotificators": "Testovacie kanály", + "sharedTestExpression": "Testovací výraz", "sharedCalendar": "Kalendár", "sharedCalendars": "Kalendáre", "sharedFile": "Súbor", - "sharedSearchDevices": "Search Devices", - "sharedSortBy": "Sort By", - "sharedFilterMap": "Filter on Map", + "sharedSearchDevices": "Hľadať zariadenia", + "sharedSortBy": "Zoradiť podľa", + "sharedFilterMap": "Filtrovať na mape", "sharedSelectFile": "Vyberte súbor", "sharedPhone": "Telefón", "sharedRequired": "Požadované", "sharedPreferences": "Preferencie", "sharedPermissions": "Povolenia", - "sharedConnections": "Connections", + "sharedConnections": "Prepojenia", "sharedExtra": "Extra", - "sharedPrimary": "Primary", - "sharedSecondary": "Secondary", + "sharedPrimary": "Primárne", + "sharedSecondary": "Sekundárne", "sharedTypeString": "Reťazec", "sharedTypeNumber": "Číslo", "sharedTypeBoolean": "Binárna hodnota", @@ -92,117 +94,122 @@ "sharedSavedCommands": "Uložené príkazy", "sharedNew": "Nový...", "sharedShowAddress": "Zobraziť adresu", - "sharedShowDetails": "More Details", + "sharedShowDetails": "Viac detailov", "sharedDisabled": "Vypnuté", - "sharedMaintenance": "Maintenance", - "sharedDeviceAccumulators": "Accumulators", + "sharedMaintenance": "Údržba", + "sharedDeviceAccumulators": "Akumulátory", "sharedAlarms": "Upozornenia", - "sharedLocation": "Location", - "sharedImport": "Import", - "sharedColumns": "Columns", - "sharedDropzoneText": "Drag and drop a file here or click", - "sharedLogs": "Logs", - "sharedLink": "Link", - "calendarSimple": "Simple", - "calendarRecurrence": "Recurrence", - "calendarOnce": "Once", - "calendarDaily": "Daily", - "calendarWeekly": "Weekly", - "calendarMonthly": "Monthly", - "calendarDays": "Days", - "calendarSunday": "Sunday", - "calendarMonday": "Monday", - "calendarTuesday": "Tuesday", - "calendarWednesday": "Wednesday", - "calendarThursday": "Thursday", - "calendarFriday": "Friday", - "calendarSaturday": "Saturday", - "attributeShowGeofences": "Show Geofences", + "sharedLocation": "Poloha", + "sharedImport": "Importovať", + "sharedColumns": "Stĺpce", + "sharedDropzoneText": "Presuňte sem súbor alebo kliknite", + "sharedLogs": "Logy", + "sharedLink": "Odkaz", + "sharedEmulator": "Emulator", + "calendarSimple": "Jednoduché", + "calendarRecurrence": "Opakovanie", + "calendarOnce": "Raz", + "calendarDaily": "Denne", + "calendarWeekly": "Týždenne", + "calendarMonthly": "Mesačne", + "calendarDays": "Dni", + "calendarSunday": "Nedeľa", + "calendarMonday": "Pondelok", + "calendarTuesday": "Utorok", + "calendarWednesday": "Streda", + "calendarThursday": "Štvrtok", + "calendarFriday": "Piatok", + "calendarSaturday": "Sobota", + "attributeShowGeofences": "Zobraziť lokality", "attributeSpeedLimit": "Limit rýchlosti", - "attributeFuelDropThreshold": "Fuel Drop Threshold", - "attributeFuelIncreaseThreshold": "Fuel Increase Threshold", - "attributePolylineDistance": "Polyline Distance", + "attributeFuelDropThreshold": "Prah poklesu paliva", + "attributeFuelIncreaseThreshold": "Prah zvýšenia paliva", + "attributePolylineDistance": "Dĺžka čiary", "attributeReportIgnoreOdometer": "Report: Ignoruj kilometrovník", "attributeWebReportColor": "Web: Farba reportu", "attributeDevicePassword": "Heslo zaridenia", - "attributeDeviceImage": "Device Image", - "attributeDeviceInactivityStart": "Device Inactivity Start", - "attributeDeviceInactivityPeriod": "Device Inactivity Period", - "attributeProcessingCopyAttributes": "Processing: Copy Attributes", + "attributeDeviceImage": "Obrázok zariadenia", + "attributeDeviceInactivityStart": "Nečinnosť zariadenia Štart", + "attributeDeviceInactivityPeriod": "Obdobie nečinnosti zariadenia", + "attributeProcessingCopyAttributes": "Spracovanie: Kopírovať atribúty", "attributeColor": "Farba", - "attributeWebLiveRouteLength": "Web: Live Route Length", - "attributeWebSelectZoom": "Web: Zoom On Select", + "attributeWebLiveRouteLength": "Web: Dĺžka aktuálnej trasy", + "attributeWebSelectZoom": "Web: Priblížiť pri zakliknutí", "attributeWebMaxZoom": "Web: Maximálne priblíženie", - "attributeTelegramChatId": "Telegram Chat ID", - "attributePushoverUserKey": "Pushover User Key", - "attributePushoverDeviceNames": "Pushover Device Names", + "attributeTelegramChatId": "ID Telegram četu", + "attributePushoverUserKey": "Pushover API kľúč", + "attributePushoverDeviceNames": "Pushover názov zariadenia", "attributeMailSmtpHost": "E-Mail: SMTP Host", "attributeMailSmtpPort": "E-Mail: SMTP Port", "attributeMailSmtpStarttlsEnable": "E-Mail: SMTP STARTTLS Zapnuté", "attributeMailSmtpStarttlsRequired": "E-Mail: SMTP STARTTLS Povinná", "attributeMailSmtpSslEnable": "Mail: Povolenie SMTP SSL", - "attributeMailSmtpSslTrust": "Mail: SMTP SSL Trust", + "attributeMailSmtpSslTrust": "Mail: SMTP SSL dôverihodnosť", "attributeMailSmtpSslProtocols": "Mail: SMTP SSL Protokoly", "attributeMailSmtpFrom": "Mail: SMTP Od", - "attributeMailSmtpAuth": "Mail: SMTP Auth Enable", + "attributeMailSmtpAuth": "Mail: Povoliť overenie SMTP", "attributeMailSmtpUsername": "Mail: SMTP Používateľské meno", "attributeMailSmtpPassword": "Mail: SMTP Heslo", - "attributeUiDisableSavedCommands": "UI: Disable Saved Commands", - "attributeUiDisableAttributes": "UI: Disable Attributes", - "attributeUiDisableGroups": "UI: Disable Groups", + "attributeUiDisableSavedCommands": "UI: Zakázať uložené príkazy", + "attributeUiDisableAttributes": "UI: Zakázať atribúty", + "attributeUiDisableGroups": "UI: Zakázať skupiny", "attributeUiDisableEvents": "UI: Zakázať udalosti", - "attributeUiDisableVehicleFeatures": "UI: Disable Vehicle Features", + "attributeUiDisableVehicleFeatures": "UI: Zakázať funkcie vozidla", "attributeUiDisableDrivers": "UI: Zakázať vodičov", - "attributeUiDisableComputedAttributes": "UI: Disable Computed Attributes", + "attributeUiDisableComputedAttributes": "UI: Zakázať vypočítané atribúty", "attributeUiDisableCalendars": "UI: Zakázať kalendáre", - "attributeUiDisableMaintenance": "UI: Disable Maintenance", - "attributeUiHidePositionAttributes": "UI: Hide Position Attributes", - "attributeUiDisableLoginLanguage": "UI: Disable Login Language", - "attributeNotificationTokens": "Notification Tokens", - "attributePopupInfo": "Popup Info", + "attributeUiDisableMaintenance": "UI: Zakázať údržbu", + "attributeUiHidePositionAttributes": "UI: Skryť atribúty pozície", + "attributeUiDisableLoginLanguage": "UI: Zakázať zmenu jazyka", + "attributeNotificationTokens": "Tokeny upozornení", + "attributePopupInfo": "Vyskakovacie okno", "errorTitle": "Chyba", - "errorGeneral": "Invalid parameters or constraints violation", + "errorGeneral": "Neplatné parametre alebo porušenie obmedzení", "errorConnection": "Chyba pripojenia", "errorSocket": "Chyba pripojenia web konektora", - "errorZero": "Can't be zero", + "errorZero": "Nemôže byť nula", "userEmail": "E-mail", "userPassword": "Heslo", "userAdmin": "Admin", "userRemember": "Zapamätať", "userExpirationTime": "Uplynutie platnosti", - "userDeviceLimit": "Limit zariadenia", + "userDeviceLimit": "Limitovať zariadenia", "userUserLimit": "Obmedzenie používateľov", "userDeviceReadonly": "Zariadenie len na čítanie", - "userLimitCommands": "Limit Commands", - "userDisableReports": "Disable Reports", - "userFixedEmail": "No Email Change", + "userLimitCommands": "Obmedzenie príkazov", + "userDisableReports": "Zakázať prehľady", + "userFixedEmail": "Žiadna zmena e-mailu", "userToken": "Token", - "userDeleteAccount": "Delete Account", - "userTemporary": "Temporary", + "userDeleteAccount": "Zmazať účet", + "userTemporary": "Dočasné", + "userTerms": "Podmienky služby", + "userPrivacy": "Zásady ochrany osobných údajov", + "userTermsPrompt": "Kliknutím na tlačidlo \"Súhlasím\" súhlasíte s našimi zmluvnými podmienkami a potvrdzujete, že ste si prečítali naše zásady ochrany osobných údajov.", + "userTermsAccepted": "Podmienky prijaté", "loginTitle": "Prihlásenie", "loginLanguage": "Jazyk", - "loginReset": "Reset Password", + "loginReset": "Obnoviť heslo", "loginRegister": "Registrovať", "loginLogin": "Prihlásenie", - "loginOpenId": "Login with OpenID", + "loginOpenId": "Prihláste sa pomocou OpenID", "loginFailed": "Nesprávna e-mailová adresa alebo heslo", "loginCreated": "Nový užívateľ sa zaregistroval", - "loginResetSuccess": "Check your email", - "loginUpdateSuccess": "New password is set", + "loginResetSuccess": "Skontrolujte E-Mail", + "loginUpdateSuccess": "Nové heslo je nastavené", "loginLogout": "Odhlásiť", "loginLogo": "Logo", - "loginTotpCode": "One-time Password Code", - "loginTotpKey": "One-time Password Key", + "loginTotpCode": "Kód dvojfaktorového overovania", + "loginTotpKey": "Kľúč dvojfaktorového overovania", "devicesAndState": "Zariadenia a Status", - "deviceSelected": "Selected Device", + "deviceSelected": "Vybrané zariadenie", "deviceTitle": "Zariadena", - "devicePrimaryInfo": "Device Title", - "deviceSecondaryInfo": "Device Detail", + "devicePrimaryInfo": "Názov zariadenia", + "deviceSecondaryInfo": "Detaily zariadenia", "deviceIdentifier": "Identifikátor", "deviceModel": "Model", "deviceContact": "Kontakt", "deviceCategory": "Kategória", - "deviceLastUpdate": "Posledný update", + "deviceLastUpdate": "Posledná aktualizácia", "deviceCommand": "Príkaz", "deviceFollow": "Nasleduj", "deviceTotalDistance": "Celková vzdialenosť", @@ -210,9 +217,9 @@ "deviceStatusOnline": "Online", "deviceStatusOffline": "Offline", "deviceStatusUnknown": "Neznáme", - "deviceRegisterFirst": "Register your first device", - "deviceIdentifierHelp": "IMEI, serial number or other id. It has to match the identifier device reports to the server.", - "deviceShare": "Share Device", + "deviceRegisterFirst": "Zaregistrovať prvé zariadenie", + "deviceIdentifierHelp": "IMEI, sériové číslo alebo iné ID. Musí sa zhodovať s identifikátormi zariadenia nahlásenými na serveri.", + "deviceShare": "Zdieľať zariadenie", "groupDialog": "Skupina", "groupParent": "Skupina", "groupNoGroup": "Žiadna skupina", @@ -222,34 +229,34 @@ "settingsServer": "Server", "settingsUsers": "Používatelia", "settingsDistanceUnit": "Jednotka vzdialenosti", - "settingsAltitudeUnit": "Altitude Unit", + "settingsAltitudeUnit": "Jednotka nadmorskej výšky", "settingsSpeedUnit": "Jednotka rýchlosti", "settingsVolumeUnit": "Jednotka objemu", "settingsTwelveHourFormat": "12-hodinový formát", "settingsCoordinateFormat": "Formát koordinátov", - "settingsServerVersion": "Server Version", - "settingsAppVersion": "App Version", - "settingsConnection": "Connection", - "settingsDarkMode": "Dark Mode", - "settingsTotpEnable": "Enable One-time Password", - "settingsTotpForce": "Force One-time Password", - "settingsServiceWorkerUpdateInterval": "ServiceWorker Update Interval", - "settingsUpdateAvailable": "There is an update available.", - "settingsSupport": "Support", + "settingsServerVersion": "Verzia servera", + "settingsAppVersion": "Verzia aplikácie", + "settingsConnection": "Pripojenie", + "settingsDarkMode": "Tmavý režim", + "settingsTotpEnable": "Povoliť dvojfaktorové overovanie", + "settingsTotpForce": "Vynútiť dvojfaktorové overovanie", + "settingsServiceWorkerUpdateInterval": "Interval aktualizácie ServiceWorker", + "settingsUpdateAvailable": "K dispozícii je aktualizácia.", + "settingsSupport": "Podpora", "reportTitle": "Správy", - "reportScheduled": "Scheduled Reports", + "reportScheduled": "Plánované prehľady", "reportDevice": "Zariadenie", "reportGroup": "Skupina", "reportFrom": "Od", "reportTo": "Do", "reportShow": "Zobraziť", "reportClear": "Vyčistiť", - "linkGoogleMaps": "Google Maps", - "linkAppleMaps": "Apple Maps", - "linkStreetView": "Street View", - "positionFixTime": "Fix Time", - "positionDeviceTime": "Device Time", - "positionServerTime": "Server Time", + "linkGoogleMaps": "Google Mapy", + "linkAppleMaps": "Apple Mapy", + "linkStreetView": "Pohľad z ulice", + "positionFixTime": "Čas", + "positionDeviceTime": "Čas zariadenia", + "positionServerTime": "Čas servera", "positionValid": "Platný", "positionAccuracy": "Presnosť", "positionLatitude": "Šírka", @@ -264,7 +271,7 @@ "positionFuel": "Palivo", "positionPower": "Napätie", "positionBattery": "Baterka", - "positionRaw": "Raw", + "positionRaw": "Čisté dáta", "positionIndex": "Index", "positionHdop": "HDOP", "positionVdop": "VDOP", @@ -278,12 +285,12 @@ "positionAlarm": "Upozornenie", "positionStatus": "Stav", "positionOdometer": "Kilometrovník", - "positionServiceOdometer": "Service Odometer", - "positionTripOdometer": "Trip Odometer", + "positionServiceOdometer": "Servisné počítadlo kilometrov", + "positionTripOdometer": "Počítadlo kilometrov", "positionHours": "Hodiny", - "positionSteps": "Steps", + "positionSteps": "Kroky", "positionInput": "Vstup", - "positionHeartRate": "Heart Rate", + "positionHeartRate": "Frekvencia", "positionOutput": "Výstup", "positionBatteryLevel": "Stav batérie", "positionFuelConsumption": "Spotreba paliva", @@ -292,65 +299,66 @@ "positionVersionHw": "Verzia hardvéru", "positionIgnition": "Zapaľovanie", "positionFlags": "Značky", - "positionCharge": "Charge", + "positionCharge": "Zmena", "positionIp": "IP", "positionArchive": "Archív", "positionVin": "VIN", - "positionApproximate": "Approximate", - "positionThrottle": "Throttle", + "positionApproximate": "Približné", + "positionThrottle": "Plyn", "positionMotion": "Pohyb", - "positionArmed": "Armed", + "positionArmed": "Odistené", "positionAcceleration": "Zrýchlenie", - "positionTemp": "Temperature", + "positionTemp": "Teplota", "positionDeviceTemp": "Teplota zariadenia", - "positionCoolantTemp": "Coolant Temperature", + "positionCoolantTemp": "Teplota chladiacej kvapaliny", "positionOperator": "Operátor", "positionCommand": "Príkaz", "positionBlocked": "Blokované", - "positionDtcs": "DTCs", + "positionDtcs": "Diagnostické poruchové kódy", "positionObdSpeed": "OBD rýchlosť", "positionObdOdometer": "OBD kilometrovník", - "positionDrivingTime": "Driving Time", + "positionDrivingTime": "Čas jazdy", "positionDriverUniqueId": "Unikátne ID vodiča", - "positionCard": "Card", - "positionImage": "Image", + "positionCard": "Karta", + "positionImage": "Obrázok", "positionVideo": "Video", - "positionAudio": "Audio", + "positionAudio": "Zvuk", "serverTitle": "Nastavenie servera", "serverZoom": "Zoom", "serverRegistration": "Registrácia", "serverReadonly": "Iba na čítanie", "serverForceSettings": "Nastavenie sily", - "serverAnnouncement": "Announcement", - "serverName": "Server Name", - "serverDescription": "Server Description", - "serverColorPrimary": "Color Primary", - "serverColorSecondary": "Color Secondary", - "serverLogo": "Logo Image", - "serverLogoInverted": "Inverted Logo Image", - "serverChangeDisable": "Disable Server Change", - "serverDisableShare": "Disable Device Sharing", + "serverAnnouncement": "Oznámenie", + "serverName": "Názov serveru", + "serverDescription": "Popis serveru", + "serverColorPrimary": "Hlavná farba", + "serverColorSecondary": "Sekundárna farba", + "serverLogo": "Obrázok loga", + "serverLogoInverted": "Farebne obrátený obrázok loga", + "serverChangeDisable": "Zakázať zmenu servera", + "serverDisableShare": "Zakázať zdieľanie zariadení", + "serverReboot": "Reboot", "mapTitle": "Mapa", - "mapActive": "Active Maps", - "mapOverlay": "Map Overlay", - "mapOverlayCustom": "Custom Overlay", + "mapActive": "Aktívne mapy", + "mapOverlay": "Prekrytie mapy", + "mapOverlayCustom": "Vlastné prekrytie", "mapOpenSeaMap": "OpenSeaMap", "mapOpenRailwayMap": "OpenRailwayMap", "mapOpenWeatherKey": "OpenWeather API Key", - "mapOpenWeatherClouds": "OpenWeather Clouds", - "mapOpenWeatherPrecipitation": "OpenWeather Precipitation", - "mapOpenWeatherPressure": "OpenWeather Pressure", - "mapOpenWeatherWind": "OpenWeather Wind", - "mapOpenWeatherTemperature": "OpenWeather Temperature", + "mapOpenWeatherClouds": "OpenWeather Oblačnosť", + "mapOpenWeatherPrecipitation": "OpenWeather Zrážky", + "mapOpenWeatherPressure": "OpenWeather Tlak", + "mapOpenWeatherWind": "OpenWeather Vietor", + "mapOpenWeatherTemperature": "OpenWeather Teplota", "mapLayer": "Mapové vrstvy", - "mapCustom": "Custom (XYZ)", - "mapCustomArcgis": "Custom (ArcGIS)", - "mapCustomLabel": "Custom map", + "mapCustom": "Vlastné (XYZ)", + "mapCustomArcgis": "Vlastné (ArcGIS)", + "mapCustomLabel": "Vlastná mapa", "mapCarto": "Carto Basemaps", "mapOsm": "OpenStreetMap", "mapGoogleRoad": "Google Road", - "mapGoogleHybrid": "Google Hybrid", - "mapGoogleSatellite": "Google Satellite", + "mapGoogleHybrid": "Google Hybridná mapa", + "mapGoogleSatellite": "Google Satelitné snímky", "mapOpenTopoMap": "OpenTopoMap", "mapBingKey": "Klúč Bing Maps", "mapBingRoad": "Bing Maps Road", @@ -363,42 +371,42 @@ "mapWikimedia": "Wikimedia", "mapOrdnanceSurvey": "Ordnance Survey", "mapMapboxStreets": "Mapbox Streets", - "mapMapboxStreetsDark": "Mapbox Streets Dark", + "mapMapboxStreetsDark": "Mapbox Streets Tmavé", "mapMapboxOutdoors": "Mapbox Outdoors", - "mapMapboxSatellite": "Mapbox Satellite", - "mapMapboxKey": "Mapbox Access Token", + "mapMapboxSatellite": "Mapbox Satelitné snímky", + "mapMapboxKey": "Mapbox API kľuč", "mapMapTilerBasic": "MapTiler Basic", "mapMapTilerHybrid": "MapTiler Hybrid", - "mapMapTilerKey": "MapTiler API Key", + "mapMapTilerKey": "MapTiler API kľuč", "mapLocationIqStreets": "LocationIQ Streets", - "mapLocationIqDark": "LocationIQ Dark", - "mapLocationIqKey": "LocationIQ Access Token", + "mapLocationIqDark": "LocationIQ Tmavé", + "mapLocationIqKey": "LocationIQ API kľúč", "mapTomTomBasic": "TomTom Basic", - "mapTomTomFlow": "TomTom Traffic Flow", - "mapTomTomIncidents": "TomTom Traffic Incidents", - "mapTomTomKey": "TomTom API Key", + "mapTomTomFlow": "TomTom Dopravné zápchy", + "mapTomTomIncidents": "TomTom Dopravné nehody", + "mapTomTomKey": "TomTom API kľúč", "mapHereBasic": "Here Basic", "mapHereHybrid": "Here Hybrid", - "mapHereSatellite": "Here Satellite", - "mapHereFlow": "Here Traffic Flow", - "mapHereKey": "Here API Key", + "mapHereSatellite": "Here Satelitné snímky", + "mapHereFlow": "Here Dopravné zápchy", + "mapHereKey": "Here API kľúč", "mapShapePolygon": "Polygón", "mapShapeCircle": "Kruh", "mapShapePolyline": "Lomená čiara", - "mapLiveRoutes": "Live Routes", - "mapDirection": "Show Direction", - "mapCurrentLocation": "Current Location", - "mapPoiLayer": "POI Layer", - "mapClustering": "Markers Clustering", - "mapOnSelect": "Show Map on Selection", - "mapDefault": "Default Map", + "mapLiveRoutes": "Živá trasa", + "mapDirection": "Zobraziť smer", + "mapCurrentLocation": "Súčasná poloha", + "mapPoiLayer": "POI vrstva", + "mapClustering": "Zjednocovanie zariadení", + "mapOnSelect": "Zobraziť mapu pri výbere", + "mapDefault": "Predvolená mapa", "stateTitle": "Parametre", "stateName": "Parameter", "stateValue": "Hodnota", "commandTitle": "Príkaz", "commandSend": "Odoslať", "commandSent": "Príkaz odoslaný", - "commandQueued": "Command queued", + "commandQueued": "Príkaz vo fronte", "commandUnit": "Jednotka", "commandCustom": "Vlastný príkaz", "commandDeviceIdentification": "Identifikácia zariadenia", @@ -409,12 +417,12 @@ "commandEngineResume": "Spustenie motora", "commandAlarmArm": "Nastaviť upozornenie", "commandAlarmDisarm": "Zrušiť upozornenie", - "commandAlarmDismiss": "Dismiss Alarm", + "commandAlarmDismiss": "Zrušiť alarm", "commandSetTimezone": "Nastaviť časovú zónu", "commandRequestPhoto": "Poslať fotku", - "commandPowerOff": "Power Off Device", + "commandPowerOff": "Vypnutie zariadenia", "commandRebootDevice": "Rebootovať zariadenie", - "commandFactoryReset": "Factory Reset", + "commandFactoryReset": "Obnovenie továrenských nastavení", "commandSendSms": "Postať SMS", "commandSendUssd": "Postať USSD", "commandSosNumber": "Nastaviť čislo SOS", @@ -422,7 +430,7 @@ "commandSetPhonebook": "Nastav telefónny zoznam", "commandVoiceMessage": "Hlasové správy", "commandOutputControl": "Výstupná kontrola", - "commandVoiceMonitoring": "Voice Monitoring", + "commandVoiceMonitoring": "Hlasové monitorovanie", "commandSetAgps": "Nastaviť AGPS", "commandSetIndicator": "Nastavte ukazovateľ", "commandConfiguration": "Konfigurácia", @@ -432,17 +440,17 @@ "commandSetOdometer": "Nastaviť kilometrovník", "commandGetModemStatus": "Získať stav modemu", "commandGetDeviceStatus": "Získať stav zariadenia", - "commandSetSpeedLimit": "Set Speed Limit", - "commandModePowerSaving": "Power Saving Mode", - "commandModeDeepSleep": "Deep Sleep Mode", - "commandAlarmGeofence": "Set Geofence Alarm", - "commandAlarmBattery": "Set Battery Alarm", - "commandAlarmSos": "Set SOS Alarm", - "commandAlarmRemove": "Set Remove Alarm", - "commandAlarmClock": "Set Clock Alarm", - "commandAlarmSpeed": "Set Speed Alarm", - "commandAlarmFall": "Set Fall Alarm", - "commandAlarmVibration": "Set Vibration Alarm", + "commandSetSpeedLimit": "Nastavte rýchlostný limit", + "commandModePowerSaving": "Režim šetrenia elektrickej energie", + "commandModeDeepSleep": "Režim hlbokého spánku", + "commandAlarmGeofence": "Nastaviť upozornenie lokalít", + "commandAlarmBattery": "Nastaviť upozornenie batérie", + "commandAlarmSos": "Nastaviť upozornenie SOS", + "commandAlarmRemove": "Nastaviť odstránenie upozornenia", + "commandAlarmClock": "Nastaviť upozornenie času", + "commandAlarmSpeed": "Nastaviť upozornenie rýchlosti", + "commandAlarmFall": "Nastaviť upozornenie pádu", + "commandAlarmVibration": "Nastaviť upozornenie vibrácii ", "commandFrequency": "Frekvencia", "commandTimezone": "Časová zóna Offset", "commandMessage": "Správa", @@ -455,70 +463,70 @@ "commandPort": "Port", "eventAll": "Všetky akcie", "eventDeviceOnline": "Stav online", - "eventDeviceUnknown": "Status unknown", + "eventDeviceUnknown": "Stav neznámy", "eventDeviceOffline": "Stav offline", - "eventDeviceInactive": "Device inactive", - "eventQueuedCommandSent": "Queued command sent", + "eventDeviceInactive": "Neaktívne zariadenie", + "eventQueuedCommandSent": "Odoslaný príkaz vo fronte", "eventDeviceMoving": "Zariadenie sa hýbe", "eventDeviceStopped": "Zariadenie zastavilo", - "eventDeviceOverspeed": "Speed limit exceeded", - "eventDeviceFuelDrop": "Fuel drop", - "eventDeviceFuelIncrease": "Fuel increase", + "eventDeviceOverspeed": "Prekročená rýchlosť", + "eventDeviceFuelDrop": "Zníženie paliva", + "eventDeviceFuelIncrease": "Zvýšenie paliva", "eventCommandResult": "Výsledok príkazu", - "eventGeofenceEnter": "Geofence entered", - "eventGeofenceExit": "Geofence exited", + "eventGeofenceEnter": "Vstup do lokality", + "eventGeofenceExit": "Odchod z lokality", "eventAlarm": "Upozornenie", - "eventIgnitionOn": "Ignition on", - "eventIgnitionOff": "Ignition off", + "eventIgnitionOn": "Zapaľovanie zapnuté", + "eventIgnitionOff": "Zapaľovanie vypnuté", "eventMaintenance": "Vyžaduje sa údržba", "eventTextMessage": "Prijatá textová správa", "eventDriverChanged": "Zmena vodiča", - "eventMedia": "Media", - "eventsScrollToLast": "Scroll To Last", - "eventsSoundEvents": "Sound Events", - "eventsSoundAlarms": "Sound Alarms", + "eventMedia": "Média", + "eventsScrollToLast": "Prejdite na posledný", + "eventsSoundEvents": "Zvukové udalosti", + "eventsSoundAlarms": "Zvukové alarmy", "alarmGeneral": "Všeobecné", "alarmSos": "SOS", "alarmVibration": "Vibrácia", "alarmMovement": "Pobyb", - "alarmLowspeed": "Low Speed", + "alarmLowspeed": "Malá rýchlosť", "alarmOverspeed": "Prekročenie rýchlosti", - "alarmFallDown": "Fall Down", + "alarmFallDown": "Pád", "alarmLowPower": "Slabý prúd", "alarmLowBattery": "Slabá batéria", "alarmFault": "Chyba", - "alarmPowerOff": "Power Off", - "alarmPowerOn": "Power On", - "alarmDoor": "Door", + "alarmPowerOff": "Vypnúť", + "alarmPowerOn": "Zapnúť", + "alarmDoor": "Dvere", "alarmLock": "Zamknúť", "alarmUnlock": "Odomknúť", - "alarmGeofence": "Geofence", - "alarmGeofenceEnter": "Geofence Enter", - "alarmGeofenceExit": "Geofence Exit", - "alarmGpsAntennaCut": "GPS Antenna Cut", - "alarmAccident": "Accident", - "alarmTow": "Tow", - "alarmIdle": "Idle", - "alarmHighRpm": "High RPM", - "alarmHardAcceleration": "Hard Acceleration", - "alarmHardBraking": "Hard Braking", - "alarmHardCornering": "Hard Cornering", - "alarmLaneChange": "Lane Change", - "alarmFatigueDriving": "Fatigue Driving", - "alarmPowerCut": "Power Cut", + "alarmGeofence": "Lokalita", + "alarmGeofenceEnter": "Vstup do lokality", + "alarmGeofenceExit": "Odchod z lokality", + "alarmGpsAntennaCut": "Prerušenie GPS", + "alarmAccident": "Nehoda", + "alarmTow": "Ťahanie", + "alarmIdle": "Nečinný", + "alarmHighRpm": "Vysoké otáčky", + "alarmHardAcceleration": "Prudká akcelerácia", + "alarmHardBraking": "Prudké brzdenie", + "alarmHardCornering": "Prudké zatáčanie", + "alarmLaneChange": "Zmena jazdného pruhu", + "alarmFatigueDriving": "Únavová jazda", + "alarmPowerCut": "Odpojenie napájania", "alarmPowerRestored": "Napájanie obnovené", - "alarmJamming": "Jamming", + "alarmJamming": "Kradnutie", "alarmTemperature": "Teplota", "alarmParking": "Parkovanie", - "alarmBonnet": "Bonnet", - "alarmFootBrake": "Foot Brake", - "alarmFuelLeak": "Fuel Leak", - "alarmTampering": "Tampering", - "alarmRemoving": "Removing", + "alarmBonnet": "Kapota", + "alarmFootBrake": "Ručná brzda", + "alarmFuelLeak": "Únik paliva", + "alarmTampering": "Manipulácia", + "alarmRemoving": "Odstránenie", "notificationType": "Typ notifikácie", "notificationAlways": "Všetky zariadenia", - "notificationNotificators": "Channels", - "notificatorCommand": "Command", + "notificationNotificators": "Kanály", + "notificatorCommand": "Príkaz", "notificatorWeb": "Web", "notificatorMail": "Mail", "notificatorSms": "SMS", @@ -526,23 +534,23 @@ "notificatorTraccar": "Traccar", "notificatorTelegram": "Telegram", "notificatorPushover": "Pushover", - "reportReplay": "Replay", - "reportCombined": "Combined", + "reportReplay": "Prehrať", + "reportCombined": "Kombinované", "reportRoute": "Cesta", "reportEvents": "Udalosti", "reportTrips": "Cesty", "reportStops": "Zastávky", "reportSummary": "Zhrnutie", - "reportDaily": "Daily Summary", + "reportDaily": "Denný súhrn", "reportChart": "Graf", "reportConfigure": "Konfigurácia", "reportEventTypes": "Typy udalstí", "reportChartType": "Typ grafu", "reportShowMarkers": "Zobraziť značky", - "reportExport": "Export", - "reportEmail": "Email Report", - "reportSchedule": "Schedule", - "reportPeriod": "Period", + "reportExport": "Exportovať", + "reportEmail": "E-mailová správa", + "reportSchedule": "Rozvrh", + "reportPeriod": "Obdobie", "reportCustom": "Vlastné", "reportToday": "Dnes", "reportYesterday": "Včera", @@ -554,15 +562,17 @@ "reportAverageSpeed": "Priemerná rýchlosť", "reportMaximumSpeed": "Maximálna rýchlosť", "reportEngineHours": "Prevádzkové hodiny motora", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Trvanie", - "reportStartDate": "Start Date", + "reportStartDate": "Dátum začiatku", "reportStartTime": "Čas spustenia", "reportStartAddress": "Počiatočná adresa", "reportEndTime": "Čas ukončenia", "reportEndAddress": "Koncová adresa", "reportSpentFuel": "Spotrebované palivo", - "reportStartOdometer": "Odometer Start", - "reportEndOdometer": "Odometer End", + "reportStartOdometer": "Štart počítadla kilometrov", + "reportEndOdometer": "Koniec počítadla kilometrov", "statisticsTitle": "Štatistika", "statisticsCaptureTime": "Zachyť čas", "statisticsActiveUsers": "Aktívny používatelia", @@ -570,8 +580,8 @@ "statisticsRequests": "Požiadavka", "statisticsMessagesReceived": "Správa doručená", "statisticsMessagesStored": "Správa uložená", - "statisticsGeocoder": "Geocoder Requests", - "statisticsGeolocation": "Geolocation Requests", + "statisticsGeocoder": "Požiadavky geokódera", + "statisticsGeolocation": "Požiadavky na geolokáciu", "categoryArrow": "Šípka", "categoryDefault": "Základné", "categoryAnimal": "Zviera", @@ -579,7 +589,7 @@ "categoryBoat": "Loď", "categoryBus": "Autobus", "categoryCar": "Auto", - "categoryCamper": "Camper", + "categoryCamper": "Karavan", "categoryCrane": "Žeriav", "categoryHelicopter": "Helikoptéra", "categoryMotorcycle": "Motocykel", @@ -589,12 +599,12 @@ "categoryPlane": "Lietadlo", "categoryShip": "Loď", "categoryTractor": "Traktor", - "categoryTrain": "Train", - "categoryTram": "Tram", + "categoryTrain": "Vlak", + "categoryTram": "Električka", "categoryTrolleybus": "Trolleybus", "categoryTruck": "Nákladné auto", "categoryVan": "Dodávka", - "categoryScooter": "Scooter", - "maintenanceStart": "Start", - "maintenancePeriod": "Period" + "categoryScooter": "Skúter", + "maintenanceStart": "Štart", + "maintenancePeriod": "Obdobie" }
\ No newline at end of file diff --git a/src/resources/l10n/sl.json b/src/resources/l10n/sl.json index 3c55e91b..cd6be412 100644 --- a/src/resources/l10n/sl.json +++ b/src/resources/l10n/sl.json @@ -4,6 +4,7 @@ "sharedSave": "Shrani", "sharedUpload": "Naloži", "sharedSet": "Nastavi", + "sharedAccept": "Accept", "sharedCancel": "Prekini", "sharedCopy": "Copy", "sharedAdd": "Dodaj", @@ -34,6 +35,7 @@ "sharedName": "Ime", "sharedDescription": "Opis", "sharedSearch": "Išči", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Omejeno območje", "sharedGeofences": "Omejena območja", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Povlecite in spustite datoteko sem ali kliknite", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Preprost", "calendarRecurrence": "Ponovitev", "calendarOnce": "Enkrat", @@ -179,6 +182,10 @@ "userToken": "Žeton", "userDeleteAccount": "Izbriši račun", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Prijava", "loginLanguage": "Jezik", "loginReset": "Ponastavi geslo", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Zemljevid", "mapActive": "Aktivni zemljevidi", "mapOverlay": "Podatkovna plast", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Povprečna hitrost", "reportMaximumSpeed": "Najvišja hitrost", "reportEngineHours": "Motorinh ur", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Trajanje", "reportStartDate": "Datum začetka", "reportStartTime": "Začetni čas", diff --git a/src/resources/l10n/sq.json b/src/resources/l10n/sq.json index 8b77004a..72566a94 100644 --- a/src/resources/l10n/sq.json +++ b/src/resources/l10n/sq.json @@ -4,6 +4,7 @@ "sharedSave": "Ruaj", "sharedUpload": "Upload", "sharedSet": "Set", + "sharedAccept": "Accept", "sharedCancel": "Anullim", "sharedCopy": "Copy", "sharedAdd": "Shto", @@ -34,6 +35,7 @@ "sharedName": "Emri", "sharedDescription": "Description", "sharedSearch": "Kërkim", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Geofence", "sharedGeofences": "Geofences", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Hyrje", "loginLanguage": "Gjuha", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Harta", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Average Speed", "reportMaximumSpeed": "Maximum Speed", "reportEngineHours": "Engine Hours", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Duration", "reportStartDate": "Start Date", "reportStartTime": "Start Time", diff --git a/src/resources/l10n/sr.json b/src/resources/l10n/sr.json index a23fc3ee..f2b9d955 100644 --- a/src/resources/l10n/sr.json +++ b/src/resources/l10n/sr.json @@ -4,6 +4,7 @@ "sharedSave": "Sačuvaj", "sharedUpload": "Učitaj", "sharedSet": "Podesi", + "sharedAccept": "Prihvati", "sharedCancel": "Odustani", "sharedCopy": "Kopiraj", "sharedAdd": "Dodaj", @@ -34,6 +35,7 @@ "sharedName": "Ime", "sharedDescription": "Opis", "sharedSearch": "Traži", + "sharedPriority": "Prioritet", "sharedIconScale": "Razmera Ikonice", "sharedGeofence": "Geoograda", "sharedGeofences": "Geoograde", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Prevuci file i pusti ili klikni", "sharedLogs": "Dnevnici", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Jednostavno", "calendarRecurrence": "Ponavljanje", "calendarOnce": "Jednom", @@ -179,6 +182,10 @@ "userToken": "Znak", "userDeleteAccount": "Izbriši nalog", "userTemporary": "Privremeno", + "userTerms": "Uslovi korišćenja", + "userPrivacy": "Politika privatnosti", + "userTermsPrompt": "Klikom na Prihvati, prihvatate naše Uslove korišćenja usluge i potvrđujete da ste pročitali našu Politiku privatnosti.", + "userTermsAccepted": "Uslovi su prihvaćeni", "loginTitle": "Prijava", "loginLanguage": "Jezik", "loginReset": "Resetuj Lozinku", @@ -330,6 +337,7 @@ "serverLogoInverted": "Obrnuta logo slika", "serverChangeDisable": "Onemogući Server promene", "serverDisableShare": "Onemogući deljenje vozila", + "serverReboot": "Reboot", "mapTitle": "Mapa", "mapActive": "Aktivne mape", "mapOverlay": "Preklapanje mape", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Prosečna brzina", "reportMaximumSpeed": "Maksimalna brzina", "reportEngineHours": "Radni sati", + "reportStartEngineHours": "Početak radnih sati motora", + "reportEndEngineHours": "Završetak radnih sati motora", "reportDuration": "Trajanje", "reportStartDate": "Početni datum", "reportStartTime": "Startno vreme", diff --git a/src/resources/l10n/sv.json b/src/resources/l10n/sv.json index e6ee943b..06191f31 100644 --- a/src/resources/l10n/sv.json +++ b/src/resources/l10n/sv.json @@ -4,6 +4,7 @@ "sharedSave": "Spara", "sharedUpload": "Upload", "sharedSet": "Set", + "sharedAccept": "Accept", "sharedCancel": "Avbryt", "sharedCopy": "Copy", "sharedAdd": "Lägg till", @@ -34,6 +35,7 @@ "sharedName": "Namn", "sharedDescription": "Beskrivning", "sharedSearch": "Sök", + "sharedPriority": "Priority", "sharedIconScale": "Ikonskala", "sharedGeofence": "Geofence", "sharedGeofences": "Geofences", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Dra och släpp en fil här eller klicka", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Enkel", "calendarRecurrence": "Upprepning", "calendarOnce": "En gång", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Ta bor Konto", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Logga in", "loginLanguage": "Språk", "loginReset": "Återställ Lösenord", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Karta", "mapActive": "Aktiva Kartor", "mapOverlay": "Kartöverlägg", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Genomsnittshastighet", "reportMaximumSpeed": "Maxhastighet", "reportEngineHours": "Motortimmar", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Varaktighet", "reportStartDate": "Startdatum", "reportStartTime": "Starttid", diff --git a/src/resources/l10n/ta.json b/src/resources/l10n/ta.json index 8cdbdc62..3182f00b 100644 --- a/src/resources/l10n/ta.json +++ b/src/resources/l10n/ta.json @@ -4,6 +4,7 @@ "sharedSave": "சேமி", "sharedUpload": "Upload", "sharedSet": "அமை", + "sharedAccept": "Accept", "sharedCancel": "ரத்து செய்", "sharedCopy": "Copy", "sharedAdd": "சேர்க்க", @@ -34,6 +35,7 @@ "sharedName": "பெயர்", "sharedDescription": "விளக்கம்", "sharedSearch": "தேடுக", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "பூகோள வேலி", "sharedGeofences": "பூகோள வேலிகள்", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "டோக்கன் ", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "உள் நுழை", "loginLanguage": "மொழி", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "வரைபடம்", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "சராசரி வேகம்", "reportMaximumSpeed": "அதிகபட்ச வேகம்", "reportEngineHours": "இயந்திர மணி", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "கால அளவு ", "reportStartDate": "Start Date", "reportStartTime": "துவக்க நேரம் ", diff --git a/src/resources/l10n/th.json b/src/resources/l10n/th.json index 95f783c4..a95f9e0c 100644 --- a/src/resources/l10n/th.json +++ b/src/resources/l10n/th.json @@ -4,6 +4,7 @@ "sharedSave": "จัดเก็บแฟ้มข้อมูล", "sharedUpload": "อัพโหลด", "sharedSet": "ตั้งค่า", + "sharedAccept": "ยอมรับ", "sharedCancel": "ยกเลิก", "sharedCopy": "คัดลอก", "sharedAdd": "เพิ่ม", @@ -34,6 +35,7 @@ "sharedName": "ชื่อ", "sharedDescription": "คำอธิบาย", "sharedSearch": "ค้นหา", + "sharedPriority": "ลำดับความสำคัญ", "sharedIconScale": "ขนาดไอคอน", "sharedGeofence": "เขตพื้นที่", "sharedGeofences": "เขตพื้นที่", @@ -103,6 +105,7 @@ "sharedDropzoneText": "ลากและวางไฟล์ที่นี่หรือคลิก", "sharedLogs": "Logs", "sharedLink": "ลิงก์", + "sharedEmulator": "อีมูเลเตอร์", "calendarSimple": "เรียบง่าย", "calendarRecurrence": "การเกิดซ้ำ", "calendarOnce": "ครั้งเดียว", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "ลบบัญชี", "userTemporary": "ชั่วคราว", + "userTerms": "เงื่อนไขการให้บริการ", + "userPrivacy": "นโยบายความเป็นส่วนตัว", + "userTermsPrompt": "เมื่อคลิกยอมรับ แสดงว่าคุณยอมรับข้อกำหนดในการให้บริการของเรา และยืนยันว่าคุณได้อ่านนโยบายความเป็นส่วนตัวของเราแล้ว", + "userTermsAccepted": "ยอมรับข้อกำหนดแล้ว", "loginTitle": "เข้าสู่ระบบ", "loginLanguage": "ภาษา", "loginReset": "รีเซ็ตรหัสผ่าน", @@ -330,6 +337,7 @@ "serverLogoInverted": "กลับด้านภาพโลโก้แล้ว", "serverChangeDisable": "ปิดใช้งานการเปลี่ยนแปลงเซิร์ฟเวอร์", "serverDisableShare": "ปิดใช้งานการแชร์อุปกรณ์", + "serverReboot": "Reboot", "mapTitle": "แผนที่", "mapActive": "แผนที่ที่ใช้งานอยู่", "mapOverlay": "การวางซ้อนแผนที่", @@ -554,6 +562,8 @@ "reportAverageSpeed": "ความเร็วเฉลี่ย", "reportMaximumSpeed": "ความเร็วสูงสุด", "reportEngineHours": "เวลาการทำงานเครื่องยนต์", + "reportStartEngineHours": "จำนวนชั่วโมงเครื่องยนต์ทำงาน", + "reportEndEngineHours": "จำนวนชั่วโมงเครื่องยนต์หยุดทำงาน", "reportDuration": "ช่วงเวลา", "reportStartDate": "วันที่เริ่ม", "reportStartTime": "เวลาเริ่มต้น", diff --git a/src/resources/l10n/tr.json b/src/resources/l10n/tr.json index ff534af7..252e9919 100644 --- a/src/resources/l10n/tr.json +++ b/src/resources/l10n/tr.json @@ -4,6 +4,7 @@ "sharedSave": "Kaydet", "sharedUpload": "Upload", "sharedSet": "Belirle", + "sharedAccept": "Accept", "sharedCancel": "İptal", "sharedCopy": "Copy", "sharedAdd": "Ekle", @@ -34,6 +35,7 @@ "sharedName": "İsim", "sharedDescription": "Açıklama", "sharedSearch": "Arama", + "sharedPriority": "Priority", "sharedIconScale": "Simge Ölçeği", "sharedGeofence": "Güvenli Bölge", "sharedGeofences": "Güvenli Bölgeler", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Bir dosyayı buraya sürükleyip bırakın veya tıklayın", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Basit", "calendarRecurrence": "Recurrence", "calendarOnce": "Bir kere", @@ -179,6 +182,10 @@ "userToken": "Kullanıcı Anahtarı", "userDeleteAccount": "Hesabı sil", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Oturum aç", "loginLanguage": "Lisan", "loginReset": "Şifreyi yenile", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Harita", "mapActive": "Aktif Haritalar", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Ortalama Hız", "reportMaximumSpeed": "En Fazla Hız", "reportEngineHours": "Motor Saatleri", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Süre", "reportStartDate": "Başlangıç Tarihi", "reportStartTime": "Başlama Zamanı", diff --git a/src/resources/l10n/uk.json b/src/resources/l10n/uk.json index 5e013dc6..9e7a11c2 100644 --- a/src/resources/l10n/uk.json +++ b/src/resources/l10n/uk.json @@ -4,6 +4,7 @@ "sharedSave": "Зберегти", "sharedUpload": "Upload", "sharedSet": "Встановити", + "sharedAccept": "Accept", "sharedCancel": "Відміна", "sharedCopy": "Copy", "sharedAdd": "Додати", @@ -34,6 +35,7 @@ "sharedName": "Назва пристрою", "sharedDescription": "Опис", "sharedSearch": "Пошук", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Геозон", "sharedGeofences": "Геозони", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Ключ", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Логiн", "loginLanguage": "Мова", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Карта", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Середня швидкість", "reportMaximumSpeed": "Максимальна швидкість", "reportEngineHours": "Мотогодинник", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Тривалість", "reportStartDate": "Start Date", "reportStartTime": "Початковий час", diff --git a/src/resources/l10n/uz.json b/src/resources/l10n/uz.json index 51b9364d..8f9c28e2 100644 --- a/src/resources/l10n/uz.json +++ b/src/resources/l10n/uz.json @@ -4,6 +4,7 @@ "sharedSave": "Сақлаш", "sharedUpload": "Upload", "sharedSet": "Ўрнатиш", + "sharedAccept": "Accept", "sharedCancel": "Бекор қилиш", "sharedCopy": "Copy", "sharedAdd": "Қўшиш", @@ -34,6 +35,7 @@ "sharedName": "Исм", "sharedDescription": "Тавсиф", "sharedSearch": "Қидирув", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Геозона", "sharedGeofences": "Геозоналар", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Калит", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Кириш", "loginLanguage": "Тил", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Харита", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Ўртача тезлик", "reportMaximumSpeed": "Максимал тезлик", "reportEngineHours": "Мотосоат", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Узунлиги", "reportStartDate": "Start Date", "reportStartTime": "Бошланиш вақти", diff --git a/src/resources/l10n/vi.json b/src/resources/l10n/vi.json index 87f0e236..e4cc407b 100644 --- a/src/resources/l10n/vi.json +++ b/src/resources/l10n/vi.json @@ -4,6 +4,7 @@ "sharedSave": "Lưu", "sharedUpload": "Upload", "sharedSet": "Thiết lập", + "sharedAccept": "Accept", "sharedCancel": "Hủy", "sharedCopy": "Copy", "sharedAdd": "Thêm mới", @@ -34,6 +35,7 @@ "sharedName": "Tên", "sharedDescription": "Mô tả", "sharedSearch": "Tìm kiếm", + "sharedPriority": "Priority", "sharedIconScale": "Icon Scale", "sharedGeofence": "Giới hạn địa lý", "sharedGeofences": "Giới hạn địa lý", @@ -103,6 +105,7 @@ "sharedDropzoneText": "Drag and drop a file here or click", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "Simple", "calendarRecurrence": "Recurrence", "calendarOnce": "Once", @@ -179,6 +182,10 @@ "userToken": "Token", "userDeleteAccount": "Delete Account", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "Đăng nhập", "loginLanguage": "Ngôn ngữ", "loginReset": "Reset Password", @@ -330,6 +337,7 @@ "serverLogoInverted": "Inverted Logo Image", "serverChangeDisable": "Disable Server Change", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "Bản đồ", "mapActive": "Active Maps", "mapOverlay": "Map Overlay", @@ -554,6 +562,8 @@ "reportAverageSpeed": "Tốc độ trung bình", "reportMaximumSpeed": "Tốc độ cao nhất", "reportEngineHours": "Thời gian nổ máy", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "Khoảng thời gian", "reportStartDate": "Start Date", "reportStartTime": "Thời gian bắt đầu", diff --git a/src/resources/l10n/zh.json b/src/resources/l10n/zh.json index 65d9e723..df05c0e0 100644 --- a/src/resources/l10n/zh.json +++ b/src/resources/l10n/zh.json @@ -4,6 +4,7 @@ "sharedSave": "保存", "sharedUpload": "上传", "sharedSet": "设置", + "sharedAccept": "接受", "sharedCancel": "取消", "sharedCopy": "复制", "sharedAdd": "添加", @@ -34,6 +35,7 @@ "sharedName": "名称", "sharedDescription": "描述", "sharedSearch": "搜索", + "sharedPriority": "Priority", "sharedIconScale": "图标比例", "sharedGeofence": "围栏", "sharedGeofences": "围栏", @@ -103,6 +105,7 @@ "sharedDropzoneText": "将文件拖放到此处或者单击", "sharedLogs": "日志", "sharedLink": "关联", + "sharedEmulator": "Emulator", "calendarSimple": "简单", "calendarRecurrence": "复现", "calendarOnce": "单次", @@ -179,6 +182,10 @@ "userToken": "令牌", "userDeleteAccount": "删除账户", "userTemporary": "暂时", + "userTerms": "服务条款", + "userPrivacy": "隐私政策", + "userTermsPrompt": "点击“接受”,表示您同意我们的服务条款,并确认您已阅读我们的隐私政策。", + "userTermsAccepted": "接受条款", "loginTitle": "登录", "loginLanguage": "语言", "loginReset": "密码重设", @@ -330,6 +337,7 @@ "serverLogoInverted": "倒置标识图片", "serverChangeDisable": "禁用服务器更改", "serverDisableShare": "禁用设备共享", + "serverReboot": "Reboot", "mapTitle": "地图", "mapActive": "已选地图", "mapOverlay": "地图叠层", @@ -448,7 +456,7 @@ "commandMessage": "消息", "commandRadius": "半径", "commandEnable": "开启", - "commandData": "日期", + "commandData": "数据", "commandIndex": "索引", "commandPhone": "电话号码", "commandServer": "服务器", @@ -554,6 +562,8 @@ "reportAverageSpeed": "平均速度", "reportMaximumSpeed": "最大速度", "reportEngineHours": "发动机使用时间", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "持续时间", "reportStartDate": "开始日期", "reportStartTime": "开始时间", diff --git a/src/resources/l10n/zh_TW.json b/src/resources/l10n/zh_TW.json index 10cb88a8..eca52c09 100644 --- a/src/resources/l10n/zh_TW.json +++ b/src/resources/l10n/zh_TW.json @@ -4,6 +4,7 @@ "sharedSave": "存檔", "sharedUpload": "上傳", "sharedSet": "設定", + "sharedAccept": "Accept", "sharedCancel": "取消", "sharedCopy": "Copy", "sharedAdd": "新增", @@ -34,6 +35,7 @@ "sharedName": "名稱", "sharedDescription": "描述", "sharedSearch": "搜尋", + "sharedPriority": "Priority", "sharedIconScale": "圖標比例", "sharedGeofence": "地理圍籬", "sharedGeofences": "地理圍籬", @@ -103,6 +105,7 @@ "sharedDropzoneText": "將文件拖放到此處或者點擊", "sharedLogs": "Logs", "sharedLink": "Link", + "sharedEmulator": "Emulator", "calendarSimple": "簡單", "calendarRecurrence": "復現", "calendarOnce": "僅一次", @@ -179,6 +182,10 @@ "userToken": "簽證", "userDeleteAccount": "刪除帳號", "userTemporary": "Temporary", + "userTerms": "Terms of Service", + "userPrivacy": "Privacy Policy", + "userTermsPrompt": "By clicking Accept, you agree to our Terms of Service and confirm that you have read our Privacy Policy.", + "userTermsAccepted": "Terms Accepted", "loginTitle": "登入", "loginLanguage": "語言", "loginReset": "密碼重設", @@ -330,6 +337,7 @@ "serverLogoInverted": "倒置 Logo 圖片", "serverChangeDisable": "禁改伺服器", "serverDisableShare": "Disable Device Sharing", + "serverReboot": "Reboot", "mapTitle": "地圖", "mapActive": "啟用地圖", "mapOverlay": "地圖疊層", @@ -554,6 +562,8 @@ "reportAverageSpeed": "平均速率", "reportMaximumSpeed": "最高速率", "reportEngineHours": "引擎時數", + "reportStartEngineHours": "Start Engine Hours", + "reportEndEngineHours": "End Engine Hours", "reportDuration": "持續時間", "reportStartDate": "起始日期", "reportStartTime": "起始時間", diff --git a/src/settings/AnnouncementPage.jsx b/src/settings/AnnouncementPage.jsx index 39488f02..87ccd498 100644 --- a/src/settings/AnnouncementPage.jsx +++ b/src/settings/AnnouncementPage.jsx @@ -62,7 +62,7 @@ const AnnouncementPage = () => { <SelectField value={notificator} onChange={(e) => setNotificator(e.target.value)} - endpoint="/api/notifications/notificators" + endpoint="/api/notifications/notificators?announcement=true" keyGetter={(it) => it.type} titleGetter={(it) => t(prefixString('notificator', it.type))} label={t('notificationNotificators')} diff --git a/src/settings/CalendarPage.jsx b/src/settings/CalendarPage.jsx index 8a3dc986..9dac9b95 100644 --- a/src/settings/CalendarPage.jsx +++ b/src/settings/CalendarPage.jsx @@ -178,7 +178,7 @@ const CalendarPage = () => { {rule.frequency === 'WEEKLY' ? ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'].map((it) => ( <MenuItem key={it} value={it.substring(0, 2).toUpperCase()}>{t(prefixString('calendar', it))}</MenuItem> )) : Array.from({ length: 31 }, (_, i) => i + 1).map((it) => ( - <MenuItem key={it} value={it}>{it}</MenuItem> + <MenuItem key={it} value={String(it)}>{it}</MenuItem> ))} </Select> </FormControl> diff --git a/src/settings/ComputedAttributePage.jsx b/src/settings/ComputedAttributePage.jsx index 1b19033c..bd236688 100644 --- a/src/settings/ComputedAttributePage.jsx +++ b/src/settings/ComputedAttributePage.jsx @@ -142,6 +142,21 @@ const ComputedAttributePage = () => { <Accordion> <AccordionSummary expandIcon={<ExpandMoreIcon />}> <Typography variant="subtitle1"> + {t('sharedExtra')} + </Typography> + </AccordionSummary> + <AccordionDetails className={classes.details}> + <TextField + type="number" + value={item.priority || 0} + onChange={(e) => setItem({ ...item, priority: Number(e.target.value) })} + label={t('sharedPriority')} + /> + </AccordionDetails> + </Accordion> + <Accordion> + <AccordionSummary expandIcon={<ExpandMoreIcon />}> + <Typography variant="subtitle1"> {t('sharedTest')} </Typography> </AccordionSummary> diff --git a/src/settings/DevicesPage.jsx b/src/settings/DevicesPage.jsx index c0da0ba7..831736e4 100644 --- a/src/settings/DevicesPage.jsx +++ b/src/settings/DevicesPage.jsx @@ -13,7 +13,6 @@ import CollectionFab from './components/CollectionFab'; import CollectionActions from './components/CollectionActions'; import TableShimmer from '../common/components/TableShimmer'; import SearchHeader, { filterByKeyword } from './components/SearchHeader'; -import { usePreference } from '../common/util/preferences'; import { formatTime } from '../common/util/formatter'; import { useDeviceReadonly } from '../common/util/permissions'; import useSettingsStyles from './common/useSettingsStyles'; @@ -25,8 +24,6 @@ const DevicesPage = () => { const groups = useSelector((state) => state.groups.items); - const hours12 = usePreference('twelveHourFormat'); - const deviceReadonly = useDeviceReadonly(); const [timestamp, setTimestamp] = useState(Date.now()); @@ -84,7 +81,7 @@ const DevicesPage = () => { <TableCell>{item.phone}</TableCell> <TableCell>{item.model}</TableCell> <TableCell>{item.contact}</TableCell> - <TableCell>{formatTime(item.expirationTime, 'date', hours12)}</TableCell> + <TableCell>{formatTime(item.expirationTime, 'date')}</TableCell> <TableCell className={classes.columnAction} padding="none"> <CollectionActions itemId={item.id} diff --git a/src/settings/MaintenancePage.jsx b/src/settings/MaintenancePage.jsx index 491a0d3b..c88c1ced 100644 --- a/src/settings/MaintenancePage.jsx +++ b/src/settings/MaintenancePage.jsx @@ -53,11 +53,14 @@ const MaintenancePage = () => { setLabels({ ...labels, start: null, period: t('sharedDays') }); } else if (attribute && attribute.dataType) { switch (attribute.dataType) { + case 'speed': + setLabels({ ...labels, start: t(prefixString('shared', speedUnit)), period: t(prefixString('shared', speedUnit)) }); + break; case 'distance': setLabels({ ...labels, start: t(prefixString('shared', distanceUnit)), period: t(prefixString('shared', distanceUnit)) }); break; - case 'speed': - setLabels({ ...labels, start: t(prefixString('shared', speedUnit)), period: t(prefixString('shared', speedUnit)) }); + case 'hours': + setLabels({ ...labels, start: t('sharedHours'), period: t('sharedHours') }); break; default: setLabels({ ...labels, start: null, period: null }); @@ -82,6 +85,8 @@ const MaintenancePage = () => { return speedFromKnots(value, speedUnit); case 'distance': return distanceFromMeters(value, distanceUnit); + case 'hours': + return value / 3600000; default: return value; } @@ -102,6 +107,8 @@ const MaintenancePage = () => { return speedToKnots(value, speedUnit); case 'distance': return distanceToMeters(value, distanceUnit); + case 'hours': + return value * 3600000; default: return value; } diff --git a/src/settings/MaintenancesPage.jsx b/src/settings/MaintenancesPage.jsx index 9241eb3e..4a78c057 100644 --- a/src/settings/MaintenancesPage.jsx +++ b/src/settings/MaintenancesPage.jsx @@ -57,6 +57,8 @@ const MaintenacesPage = () => { return formatSpeed(value, speedUnit, t); case 'distance': return formatDistance(value, distanceUnit, t); + case 'hours': + return `${value / 3600000} ${t('sharedHours')}`; default: return value; } diff --git a/src/settings/PreferencesPage.jsx b/src/settings/PreferencesPage.jsx index 2d6df62f..3b7fcaed 100644 --- a/src/settings/PreferencesPage.jsx +++ b/src/settings/PreferencesPage.jsx @@ -18,7 +18,7 @@ import useMapStyles from '../map/core/useMapStyles'; import useMapOverlays from '../map/overlay/useMapOverlays'; import { useCatch } from '../reactHelper'; import { sessionActions } from '../store'; -import { useRestriction } from '../common/util/permissions'; +import { useAdministrator, useRestriction } from '../common/util/permissions'; import useSettingsStyles from './common/useSettingsStyles'; const deviceFields = [ @@ -35,6 +35,7 @@ const PreferencesPage = () => { const navigate = useNavigate(); const t = useTranslation(); + const admin = useAdministrator(); const readonly = useRestriction('readonly'); const user = useSelector((state) => state.session.user); @@ -86,6 +87,13 @@ const PreferencesPage = () => { } }); + const handleReboot = useCatch(async () => { + const response = await fetch('/api/server/reboot', { method: 'POST' }); + if (!response.ok) { + throw Error(await response.text()); + } + }); + return ( <PageLayout menu={<SettingsMenu />} breadcrumbs={['settingsTitle', 'sharedPreferences']}> <Container maxWidth="xs" className={classes.container}> @@ -149,7 +157,7 @@ const PreferencesPage = () => { freeSolo options={Object.keys(positionAttributes)} getOptionLabel={(option) => (positionAttributes[option]?.name || option)} - value={attributes.positionItems?.split(',') || ['speed', 'address', 'totalDistance', 'course']} + value={attributes.positionItems?.split(',') || ['fixTime', 'address', 'speed', 'totalDistance']} onChange={(_, option) => { setAttributes({ ...attributes, positionItems: option.join(',') }); }} @@ -345,6 +353,22 @@ const PreferencesPage = () => { label={t('settingsConnection')} disabled /> + <Button + variant="outlined" + color="primary" + onClick={() => navigate('/emulator')} + > + {t('sharedEmulator')} + </Button> + {admin && ( + <Button + variant="outlined" + color="error" + onClick={handleReboot} + > + {t('serverReboot')} + </Button> + )} </AccordionDetails> </Accordion> <div className={classes.buttons}> diff --git a/src/settings/ServerPage.jsx b/src/settings/ServerPage.jsx index 0ac76334..26258733 100644 --- a/src/settings/ServerPage.jsx +++ b/src/settings/ServerPage.jsx @@ -191,10 +191,6 @@ const ServerPage = () => { /> <FormGroup> <FormControlLabel - control={<Checkbox checked={item.twelveHourFormat} onChange={(event) => setItem({ ...item, twelveHourFormat: event.target.checked })} />} - label={t('settingsTwelveHourFormat')} - /> - <FormControlLabel control={<Checkbox checked={item.forceSettings} onChange={(event) => setItem({ ...item, forceSettings: event.target.checked })} />} label={t('serverForceSettings')} /> diff --git a/src/settings/UserPage.jsx b/src/settings/UserPage.jsx index 6748dd31..03a016c1 100644 --- a/src/settings/UserPage.jsx +++ b/src/settings/UserPage.jsx @@ -270,12 +270,6 @@ const UserPage = () => { onChange={(e) => setItem({ ...item, poiLayer: e.target.value })} label={t('mapPoiLayer')} /> - <FormGroup> - <FormControlLabel - control={<Checkbox checked={item.twelveHourFormat} onChange={(e) => setItem({ ...item, twelveHourFormat: e.target.checked })} />} - label={t('settingsTwelveHourFormat')} - /> - </FormGroup> </AccordionDetails> </Accordion> <Accordion> diff --git a/src/settings/UsersPage.jsx b/src/settings/UsersPage.jsx index 2941965b..030f6a18 100644 --- a/src/settings/UsersPage.jsx +++ b/src/settings/UsersPage.jsx @@ -15,7 +15,6 @@ import CollectionActions from './components/CollectionActions'; import TableShimmer from '../common/components/TableShimmer'; import { useManager } from '../common/util/permissions'; import SearchHeader, { filterByKeyword } from './components/SearchHeader'; -import { usePreference } from '../common/util/preferences'; import useSettingsStyles from './common/useSettingsStyles'; const UsersPage = () => { @@ -25,8 +24,6 @@ const UsersPage = () => { const manager = useManager(); - const hours12 = usePreference('twelveHourFormat'); - const [timestamp, setTimestamp] = useState(Date.now()); const [items, setItems] = useState([]); const [searchKeyword, setSearchKeyword] = useState(''); @@ -91,7 +88,7 @@ const UsersPage = () => { <TableCell>{item.email}</TableCell> <TableCell>{formatBoolean(item.administrator, t)}</TableCell> <TableCell>{formatBoolean(item.disabled, t)}</TableCell> - <TableCell>{formatTime(item.expirationTime, 'date', hours12)}</TableCell> + <TableCell>{formatTime(item.expirationTime, 'date')}</TableCell> <TableCell className={classes.columnAction} padding="none"> <CollectionActions itemId={item.id} diff --git a/src/store/devices.js b/src/store/devices.js index f2f6263b..130b11c8 100644 --- a/src/store/devices.js +++ b/src/store/devices.js @@ -15,14 +15,13 @@ const { reducer, actions } = createSlice({ update(state, action) { action.payload.forEach((item) => state.items[item.id] = item); }, - select(state, action) { - state.selectedId = action.payload; - }, selectId(state, action) { + state.selectTime = Date.now(); state.selectedId = action.payload; state.selectedIds = state.selectedId ? [state.selectedId] : []; }, selectIds(state, action) { + state.selectTime = Date.now(); state.selectedIds = action.payload; [state.selectedId] = state.selectedIds; }, |