Compare commits

...

18 Commits

Author SHA1 Message Date
Dennis Guse 931574bc11 Release v3.2.11 2019-12-25 10:19:22 +01:00
Dennis Guse caddbd8501 MarkerDetailActivity: removed leftover statistic functionality. 2019-12-23 21:44:22 +01:00
Dennis Guse 8ece2c8612 Removed WaypointCreationRequest. 2019-12-23 21:39:37 +01:00
Dennis Guse 3a219321d1 Removed country-specific translations that are identical. 2019-12-23 07:43:05 +01:00
Dennis Guse 35cb924a17 StatsFragment: show elevation without decimal digits. 2019-12-22 20:39:43 +01:00
Dennis Guse b67e5bbd20 StatsFragment: left align current elevation. 2019-12-22 20:33:23 +01:00
Dennis Guse 1db275230e Bugfix: crash on opening heart rate sensor dialog (settings). 2019-12-22 19:09:01 +01:00
Dennis Guse 5ac72092fb Test: export and import tracks via KML and GPX; now includes waypoints.
TripStatistics is not tested.
2019-12-22 18:59:23 +01:00
Dennis Guse bdd9ded1e8 Test: export and import tracks via KML and GPX.
KML now exports track icon (name; not the url).
2019-12-22 18:59:23 +01:00
Dennis Guse 759aeb6ed6 Removed DescriptionGenerator interface. 2019-12-22 18:59:23 +01:00
Dennis Guse 12023d51ae Move data classes into separate package. 2019-12-22 18:59:23 +01:00
Dennis Guse c426785b90 Cleanup. 2019-12-22 18:59:23 +01:00
Dennis Guse 09d960c7a1 First waypoint of a track does not store the statistics of the track. 2019-12-22 18:59:23 +01:00
Dennis Guse f37fe4a503 Removed WaypointType. 2019-12-22 18:59:23 +01:00
Dennis Guse 013e56bef0 Replaced TabHost by Material design TabsLayout. 2019-12-22 18:59:23 +01:00
Dennis Guse d6835ba766 TrackRecordingService does not save the context. 2019-12-22 18:59:23 +01:00
Dennis Guse d7890cbc81 Shortened fr-FR short description.
Thanks to Edern.
2019-12-17 20:35:41 +01:00
Dennis Guse 2b6886c534 Update release procedure. 2019-12-16 22:41:16 +01:00
78 changed files with 956 additions and 4840 deletions
+6 -5
View File
@@ -24,12 +24,13 @@ Application id: de.dennisguse.opentracks.playstore
Requirement: `gem install fastlane`
1. Update store meta data (e.g., description and screenshots)
`fastlane supply --version_code $(git rev-list HEAD --count master) --skip_upload_apk`
(requires API key)
2. Build signed apk
1. Build signed apk
(requires keystore)
3. Upload signed apk to [Google Play Console](https://play.google.com/apps/publish)
2. Upload signed apk to [Google Play Console](https://play.google.com/apps/publish)
3. Update store meta data (e.g., description and screenshots)
`fastlane supply --version_code VERSION_CODE --skip_upload_apk`
(use the version code from the manifest)
(requires API key)
## Translations (localization)
+1
View File
@@ -100,4 +100,5 @@ dependencies {
testImplementation 'androidx.test:core:1.2.0'
testImplementation 'org.mockito:mockito-core:3.0.0'
implementation 'com.google.android.material:material:1.0.0'
}
@@ -0,0 +1,12 @@
v3.2.11: OpenTracks
Bug:
- Max speed is identical to avg speed
Bugfix:
- Crash on heart rate sensor selection
Developer:
- Replaced TabHost by TabsLayout
- Removed special first waypoint
- Removed duplicate translations
@@ -1 +1 @@
OpenTracks est une application de suivi d'activités sportives qui respecte totalement votre vie privée.
OpenTracks - Suivi d'activités sportives respectueux de votre vie privée.
@@ -19,7 +19,7 @@ package de.dennisguse.opentracks;
import android.location.Location;
import de.dennisguse.opentracks.content.SensorDataSetLocation;
import de.dennisguse.opentracks.content.Track;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.content.sensor.SensorDataSet;
/**
@@ -27,6 +27,9 @@ import org.junit.Before;
import org.junit.Test;
import de.dennisguse.opentracks.content.CustomContentProvider.DatabaseHelper;
import de.dennisguse.opentracks.content.data.TrackPointsColumns;
import de.dennisguse.opentracks.content.data.TracksColumns;
import de.dennisguse.opentracks.content.data.WaypointsColumns;
/**
* Tests {@link CustomContentProvider}.
@@ -35,7 +35,12 @@ import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import de.dennisguse.opentracks.content.Waypoint.WaypointType;
import de.dennisguse.opentracks.content.data.TestDataUtil;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.content.data.TrackPointsColumns;
import de.dennisguse.opentracks.content.data.TracksColumns;
import de.dennisguse.opentracks.content.data.Waypoint;
import de.dennisguse.opentracks.content.data.WaypointsColumns;
import de.dennisguse.opentracks.stats.TripStatistics;
import static org.mockito.Mockito.when;
@@ -52,12 +57,9 @@ public class CustomContentProviderUtilsTest {
private static final String MOCK_DESC = "Mock Next Waypoint Desc!";
private static final String TEST_DESC = "Test Desc!";
private static final String TEST_DESC_NEW = "Test Desc new!";
private static final double INITIAL_LATITUDE = 37.0;
private static final double INITIAL_LONGITUDE = -57.0;
private static final double ALTITUDE_INTERVAL = 2.5;
private Context context = ApplicationProvider.getApplicationContext();
private ContentProviderUtils providerUtils;
private ContentProviderUtils contentProviderUtils;
@Mock
private Cursor cursorMock;
@@ -67,8 +69,8 @@ public class CustomContentProviderUtilsTest {
@Before
public void setUp() {
providerUtils = new ContentProviderUtils(context);
providerUtils.deleteAllTracks(context);
contentProviderUtils = new ContentProviderUtils(context);
contentProviderUtils.deleteAllTracks(context);
}
@Test
@@ -132,9 +134,9 @@ public class CustomContentProviderUtilsTest {
private List<Location> testIterator(long trackId, int numPoints, int batchSize, boolean descending, LocationFactory locationFactory) {
long lastPointId = initializeTrack(trackId, numPoints);
((ContentProviderUtils) providerUtils).setDefaultCursorBatchSize(batchSize);
((ContentProviderUtils) contentProviderUtils).setDefaultCursorBatchSize(batchSize);
List<Location> locations = new ArrayList<Location>(numPoints);
try (LocationIterator it = providerUtils.getTrackPointLocationIterator(trackId, -1L, descending, locationFactory)) {
try (LocationIterator it = contentProviderUtils.getTrackPointLocationIterator(trackId, -1L, descending, locationFactory)) {
while (it.hasNext()) {
Location loc = it.next();
Assert.assertNotNull(loc);
@@ -153,8 +155,8 @@ public class CustomContentProviderUtilsTest {
track.setId(id);
track.setName("Test: " + id);
track.setNumberOfPoints(numPoints);
providerUtils.insertTrack(track);
track = providerUtils.getTrack(id);
contentProviderUtils.insertTrack(track);
track = contentProviderUtils.getTrack(id);
Assert.assertNotNull(track);
Location[] locations = new Location[numPoints];
@@ -166,12 +168,12 @@ public class CustomContentProviderUtilsTest {
loc.setAltitude(i * 2.5);
locations[i] = loc;
}
providerUtils.bulkInsertTrackPoint(locations, numPoints, id);
contentProviderUtils.bulkInsertTrackPoint(locations, numPoints, id);
// Load all inserted locations.
long lastPointId = -1;
int counter = 0;
try (LocationIterator it = providerUtils.getTrackPointLocationIterator(id, -1L, false, LocationFactory.DEFAULT_LOCATION_FACTORY)) {
try (LocationIterator it = contentProviderUtils.getTrackPointLocationIterator(id, -1L, false, LocationFactory.DEFAULT_LOCATION_FACTORY)) {
while (it.hasNext()) {
it.next();
lastPointId = it.getLocationId();
@@ -208,7 +210,7 @@ public class CustomContentProviderUtilsTest {
String name = NAME_PREFIX + trackId;
when(cursorMock.getString(columnIndex++)).thenReturn(name);
Track track = providerUtils.createTrack(cursorMock);
Track track = contentProviderUtils.createTrack(cursorMock);
Assert.assertEquals(trackId, track.getId());
Assert.assertEquals(name, track.getName());
}
@@ -220,10 +222,10 @@ public class CustomContentProviderUtilsTest {
public void testDeleteAllTracks() {
// Insert track, points and waypoint at first.
long trackId = System.currentTimeMillis();
Track track = getTrack(trackId, 10);
Track track = TestDataUtil.getTrack(trackId, 10);
insertTrackWithLocations(track);
Waypoint waypoint = new Waypoint();
providerUtils.insertWaypoint(waypoint);
contentProviderUtils.insertWaypoint(waypoint);
ContentResolver contentResolver = context.getContentResolver();
Cursor tracksCursor = contentResolver.query(TracksColumns.CONTENT_URI, null, null, null, TracksColumns._ID);
Assert.assertEquals(1, tracksCursor.getCount());
@@ -232,7 +234,7 @@ public class CustomContentProviderUtilsTest {
Cursor waypointCursor = contentResolver.query(WaypointsColumns.CONTENT_URI, null, null, null, WaypointsColumns._ID);
Assert.assertEquals(1, waypointCursor.getCount());
// Delete all.
providerUtils.deleteAllTracks(context);
contentProviderUtils.deleteAllTracks(context);
// Check whether all have been deleted.
tracksCursor = contentResolver.query(TracksColumns.CONTENT_URI, null, null, null, TracksColumns._ID);
Assert.assertEquals(0, tracksCursor.getCount());
@@ -249,15 +251,15 @@ public class CustomContentProviderUtilsTest {
public void testDeleteTrack() {
// Insert three tracks, points of two tracks and way point of one track.
long trackId = System.currentTimeMillis();
Track track = getTrack(trackId, 10);
Track track = TestDataUtil.getTrack(trackId, 10);
providerUtils.insertTrack(track);
insertTrackWithLocations(getTrack(trackId + 1, 10));
insertTrackWithLocations(getTrack(trackId + 2, 10));
contentProviderUtils.insertTrack(track);
insertTrackWithLocations(TestDataUtil.getTrack(trackId + 1, 10));
insertTrackWithLocations(TestDataUtil.getTrack(trackId + 2, 10));
Waypoint waypoint = new Waypoint();
waypoint.setTrackId(trackId);
providerUtils.insertWaypoint(waypoint);
contentProviderUtils.insertWaypoint(waypoint);
ContentResolver contentResolver = context.getContentResolver();
Cursor tracksCursor = contentResolver.query(TracksColumns.CONTENT_URI, null, null, null, TracksColumns._ID);
@@ -267,7 +269,7 @@ public class CustomContentProviderUtilsTest {
Cursor waypointCursor = contentResolver.query(WaypointsColumns.CONTENT_URI, null, null, null, WaypointsColumns._ID);
Assert.assertEquals(1, waypointCursor.getCount());
// Delete one track.
providerUtils.deleteTrack(context, trackId);
contentProviderUtils.deleteTrack(context, trackId);
// Check whether all data of a track has been deleted.
tracksCursor = contentResolver.query(TracksColumns.CONTENT_URI, null, null, null, TracksColumns._ID);
Assert.assertEquals(2, tracksCursor.getCount());
@@ -282,10 +284,10 @@ public class CustomContentProviderUtilsTest {
*/
@Test
public void testGetAllTracks() {
int initialTrackNumber = providerUtils.getAllTracks().size();
int initialTrackNumber = contentProviderUtils.getAllTracks().size();
long trackId = System.currentTimeMillis();
providerUtils.insertTrack(getTrack(trackId, 0));
List<Track> allTracks = providerUtils.getAllTracks();
contentProviderUtils.insertTrack(TestDataUtil.getTrack(trackId, 0));
List<Track> allTracks = contentProviderUtils.getAllTracks();
Assert.assertEquals(initialTrackNumber + 1, allTracks.size());
Assert.assertEquals(trackId, allTracks.get(allTracks.size() - 1).getId());
}
@@ -296,8 +298,8 @@ public class CustomContentProviderUtilsTest {
@Test
public void testGetLastTrack() {
long trackId = System.currentTimeMillis();
providerUtils.insertTrack(getTrack(trackId, 0));
Assert.assertEquals(trackId, providerUtils.getLastTrack().getId());
contentProviderUtils.insertTrack(TestDataUtil.getTrack(trackId, 0));
Assert.assertEquals(trackId, contentProviderUtils.getLastTrack().getId());
}
/**
@@ -306,8 +308,8 @@ public class CustomContentProviderUtilsTest {
@Test
public void testGetTrack() {
long trackId = System.currentTimeMillis();
providerUtils.insertTrack(getTrack(trackId, 0));
Assert.assertNotNull(providerUtils.getTrack(trackId));
contentProviderUtils.insertTrack(TestDataUtil.getTrack(trackId, 0));
Assert.assertNotNull(contentProviderUtils.getTrack(trackId));
}
/**
@@ -316,15 +318,15 @@ public class CustomContentProviderUtilsTest {
@Test
public void testUpdateTrack() {
long trackId = System.currentTimeMillis();
Track track = getTrack(trackId, 0);
Track track = TestDataUtil.getTrack(trackId, 0);
String nameOld = "name1";
String nameNew = "name2";
track.setName(nameOld);
providerUtils.insertTrack(track);
Assert.assertEquals(nameOld, providerUtils.getTrack(trackId).getName());
contentProviderUtils.insertTrack(track);
Assert.assertEquals(nameOld, contentProviderUtils.getTrack(trackId).getName());
track.setName(nameNew);
providerUtils.updateTrack(track);
Assert.assertEquals(nameNew, providerUtils.getTrack(trackId).getName());
contentProviderUtils.updateTrack(track);
Assert.assertEquals(nameNew, contentProviderUtils.getTrack(trackId).getName());
}
/**
@@ -333,8 +335,8 @@ public class CustomContentProviderUtilsTest {
@Test
public void testCreateContentValues_waypoint() {
long trackId = System.currentTimeMillis();
Track track = getTrack(trackId, 10);
providerUtils.insertTrack(track);
Track track = TestDataUtil.getTrack(trackId, 10);
contentProviderUtils.insertTrack(track);
// Bottom
long startTime = 1000L;
// AverageSpeed
@@ -355,7 +357,6 @@ public class CustomContentProviderUtilsTest {
// Insert at first.
Waypoint waypoint = new Waypoint();
waypoint.setDescription(TEST_DESC);
waypoint.setType(WaypointType.STATISTICS);
waypoint.setTripStatistics(statistics);
Location location = new Location("test");
@@ -364,7 +365,7 @@ public class CustomContentProviderUtilsTest {
location.setAccuracy((float) 1 / 100.0f);
location.setAltitude(2.5);
waypoint.setLocation(location);
providerUtils.insertWaypoint(waypoint);
contentProviderUtils.insertWaypoint(waypoint);
ContentProviderUtils contentProviderUtils = new ContentProviderUtils(contentResolverMock);
@@ -406,7 +407,7 @@ public class CustomContentProviderUtilsTest {
long trackId = 11L;
when(cursorMock.getLong(columnIndex++)).thenReturn(trackId);
Waypoint waypoint = providerUtils.createWaypoint(cursorMock);
Waypoint waypoint = contentProviderUtils.createWaypoint(cursorMock);
Assert.assertEquals(id, waypoint.getId());
Assert.assertEquals(name, waypoint.getName());
Assert.assertEquals(trackId, waypoint.getTrackId());
@@ -414,50 +415,37 @@ public class CustomContentProviderUtilsTest {
/**
* Tests the method
* {@link ContentProviderUtils#deleteWaypoint(Context, long, DescriptionGenerator)}
* {@link ContentProviderUtils#deleteWaypoint(Context, long)}
* when there is only one waypoint in the track.
*/
@Test
public void testDeleteWaypoint_onlyOneWayPoint() {
long trackId = System.currentTimeMillis();
Track track = getTrack(trackId, 10);
providerUtils.insertTrack(track);
Track track = TestDataUtil.getTrack(trackId, 10);
contentProviderUtils.insertTrack(track);
// Insert at first.
Waypoint waypoint1 = new Waypoint();
waypoint1.setDescription(TEST_DESC);
waypoint1.setTrackId(trackId);
waypoint1.setType(WaypointType.STATISTICS);
providerUtils.insertWaypoint(waypoint1);
contentProviderUtils.insertWaypoint(waypoint1);
// Delete
DescriptionGenerator descriptionGenerator = new DescriptionGenerator() {
contentProviderUtils.deleteWaypoint(context, 1);
@Override
public String generateWaypointDescription(TripStatistics tripStatistics) {
return CustomContentProviderUtilsTest.MOCK_DESC;
}
@Override
public String generateTrackDescription(Track aTrack, boolean html) {
return null;
}
};
providerUtils.deleteWaypoint(context, 1, descriptionGenerator);
Assert.assertNull(providerUtils.getWaypoint(1));
Assert.assertNull(contentProviderUtils.getWaypoint(1));
}
/**
* Tests the method
* {@link ContentProviderUtils#deleteWaypoint(Context, long, DescriptionGenerator)}
* {@link ContentProviderUtils#deleteWaypoint(Context, long)}
* when there is more than one waypoint in the track.
*/
@Test
public void testDeleteWaypoint_hasNextWayPoint() {
long trackId = System.currentTimeMillis();
Track track = getTrack(trackId, 10);
providerUtils.insertTrack(track);
Track track = TestDataUtil.getTrack(trackId, 10);
contentProviderUtils.insertTrack(track);
TripStatistics statistics = new TripStatistics();
statistics.setStartTime(1000L);
@@ -475,120 +463,74 @@ public class CustomContentProviderUtilsTest {
// Insert at first.
Waypoint waypoint1 = new Waypoint();
waypoint1.setDescription(Long.toString(trackId));
waypoint1.setDescription(MOCK_DESC);
waypoint1.setTrackId(trackId);
waypoint1.setType(WaypointType.STATISTICS);
waypoint1.setTripStatistics(statistics);
long waypoint1Id = ContentUris.parseId(providerUtils.insertWaypoint(waypoint1));
long waypoint1Id = ContentUris.parseId(contentProviderUtils.insertWaypoint(waypoint1));
Waypoint waypoint2 = new Waypoint();
waypoint2.setDescription(Long.toString(trackId));
waypoint2.setDescription(MOCK_DESC);
waypoint2.setTrackId(trackId);
waypoint2.setType(WaypointType.STATISTICS);
waypoint2.setTripStatistics(statistics);
long waypoint2Id = ContentUris.parseId(providerUtils.insertWaypoint(waypoint2));
long waypoint2Id = ContentUris.parseId(contentProviderUtils.insertWaypoint(waypoint2));
// Delete
DescriptionGenerator descriptionGenerator = new DescriptionGenerator() {
@Override
public String generateWaypointDescription(TripStatistics tripStatistics) {
return CustomContentProviderUtilsTest.MOCK_DESC;
}
Assert.assertNotNull(contentProviderUtils.getWaypoint(waypoint1Id));
contentProviderUtils.deleteWaypoint(context, waypoint1Id);
Assert.assertNull(contentProviderUtils.getWaypoint(waypoint1Id));
@Override
public String generateTrackDescription(Track aTrack, boolean html) {
return null;
}
};
Assert.assertNotNull(providerUtils.getWaypoint(waypoint1Id));
providerUtils.deleteWaypoint(context, waypoint1Id, descriptionGenerator);
Assert.assertNull(providerUtils.getWaypoint(waypoint1Id));
Assert.assertEquals(CustomContentProviderUtilsTest.MOCK_DESC, providerUtils.getWaypoint(waypoint2Id)
.getDescription());
Assert.assertEquals(MOCK_DESC, contentProviderUtils.getWaypoint(waypoint2Id).getDescription());
}
/**
* Tests the method {@link ContentProviderUtils#getFirstWaypointId(long)}.
*/
@Test
public void testGetFirstWaypointId() {
long trackId = System.currentTimeMillis();
Track track = getTrack(trackId, 10);
providerUtils.insertTrack(track);
Waypoint waypoint1 = new Waypoint();
waypoint1.setTrackId(trackId);
long waypoint1id = ContentUris.parseId(providerUtils.insertWaypoint(waypoint1));
Waypoint waypoint2 = new Waypoint();
waypoint2.setTrackId(trackId);
long waypoint2id = ContentUris.parseId(providerUtils.insertWaypoint(waypoint2));
Assert.assertEquals(-1L, providerUtils.getFirstWaypointId(-1));
Assert.assertEquals(waypoint1id, providerUtils.getFirstWaypointId(trackId));
Assert.assertEquals(waypoint2id, providerUtils.getLastWaypoint(trackId, WaypointType.WAYPOINT).getId());
}
/**
* Tests the method {@link ContentProviderUtils#getNextWaypointNumber(long, WaypointType)}.
* Tests the method {@link ContentProviderUtils#getNextWaypointNumber(long)}.
*/
@Test
public void testGetNextWaypointNumber() {
long trackId = System.currentTimeMillis();
Track track = getTrack(trackId, 10);
providerUtils.insertTrack(track);
Track track = TestDataUtil.getTrack(trackId, 10);
contentProviderUtils.insertTrack(track);
Waypoint waypoint1 = new Waypoint();
waypoint1.setType(WaypointType.STATISTICS);
waypoint1.setTrackId(trackId);
Waypoint waypoint2 = new Waypoint();
waypoint2.setType(WaypointType.WAYPOINT);
waypoint2.setTrackId(trackId);
Waypoint waypoint3 = new Waypoint();
waypoint3.setType(WaypointType.STATISTICS);
waypoint3.setTrackId(trackId);
Waypoint waypoint4 = new Waypoint();
waypoint4.setType(WaypointType.WAYPOINT);
waypoint4.setTrackId(trackId);
providerUtils.insertWaypoint(waypoint1);
providerUtils.insertWaypoint(waypoint2);
providerUtils.insertWaypoint(waypoint3);
providerUtils.insertWaypoint(waypoint4);
contentProviderUtils.insertWaypoint(waypoint1);
contentProviderUtils.insertWaypoint(waypoint2);
contentProviderUtils.insertWaypoint(waypoint3);
contentProviderUtils.insertWaypoint(waypoint4);
Assert.assertEquals(2, providerUtils.getNextWaypointNumber(trackId, WaypointType.STATISTICS));
Assert.assertEquals(3, providerUtils.getNextWaypointNumber(trackId, WaypointType.WAYPOINT));
Assert.assertEquals(4, contentProviderUtils.getNextWaypointNumber(trackId));
}
/**
* Tests the method
* {@link ContentProviderUtils#getLastWaypoint(long, WaypointType)}.
* {@link ContentProviderUtils#getLastWaypoint(long)}.
*/
@Test
public void testGetLastStatisticsWaypoint() {
public void testGetLastWaypoint() {
long trackId = System.currentTimeMillis();
Track track = getTrack(trackId, 10);
providerUtils.insertTrack(track);
Track track = TestDataUtil.getTrack(trackId, 10);
contentProviderUtils.insertTrack(track);
Waypoint waypoint1 = new Waypoint();
waypoint1.setTrackId(trackId);
waypoint1.setType(WaypointType.STATISTICS);
waypoint1.setDescription("Desc1");
Waypoint waypoint2 = new Waypoint();
waypoint2.setTrackId(trackId);
waypoint2.setType(WaypointType.STATISTICS);
waypoint2.setDescription("Desc2");
Waypoint waypoint3 = new Waypoint();
waypoint3.setTrackId(trackId);
waypoint3.setType(WaypointType.WAYPOINT);
waypoint3.setDescription("Desc3");
providerUtils.insertWaypoint(waypoint1);
providerUtils.insertWaypoint(waypoint2);
providerUtils.insertWaypoint(waypoint3);
contentProviderUtils.insertWaypoint(waypoint1);
contentProviderUtils.insertWaypoint(waypoint2);
contentProviderUtils.insertWaypoint(waypoint3);
Assert.assertEquals("Desc2", providerUtils.getLastWaypoint(trackId, WaypointType.STATISTICS).getDescription());
Assert.assertEquals("Desc3", contentProviderUtils.getLastWaypoint(trackId).getDescription());
}
/**
@@ -598,15 +540,15 @@ public class CustomContentProviderUtilsTest {
@Test
public void testInsertAndGetWaypoint() {
long trackId = System.currentTimeMillis();
Track track = getTrack(trackId, 10);
providerUtils.insertTrack(track);
Track track = TestDataUtil.getTrack(trackId, 10);
contentProviderUtils.insertTrack(track);
Waypoint waypoint = new Waypoint();
waypoint.setDescription(TEST_DESC);
waypoint.setTrackId(trackId);
long waypointId = ContentUris.parseId(providerUtils.insertWaypoint(waypoint));
long waypointId = ContentUris.parseId(contentProviderUtils.insertWaypoint(waypoint));
Assert.assertEquals(TEST_DESC, providerUtils.getWaypoint(waypointId).getDescription());
Assert.assertEquals(TEST_DESC, contentProviderUtils.getWaypoint(waypointId).getDescription());
}
/**
@@ -615,20 +557,20 @@ public class CustomContentProviderUtilsTest {
@Test
public void testUpdateWaypoint() {
long trackId = System.currentTimeMillis();
Track track = getTrack(trackId, 10);
providerUtils.insertTrack(track);
Track track = TestDataUtil.getTrack(trackId, 10);
contentProviderUtils.insertTrack(track);
// Insert at first.
Waypoint waypoint = new Waypoint();
waypoint.setDescription(TEST_DESC);
waypoint.setTrackId(trackId);
long waypointId = ContentUris.parseId(providerUtils.insertWaypoint(waypoint));
long waypointId = ContentUris.parseId(contentProviderUtils.insertWaypoint(waypoint));
// Update
waypoint = providerUtils.getWaypoint(waypointId);
waypoint = contentProviderUtils.getWaypoint(waypointId);
waypoint.setDescription(TEST_DESC_NEW);
providerUtils.updateWaypoint(waypoint);
contentProviderUtils.updateWaypoint(waypoint);
Assert.assertEquals(TEST_DESC_NEW, providerUtils.getWaypoint(waypointId).getDescription());
Assert.assertEquals(TEST_DESC_NEW, contentProviderUtils.getWaypoint(waypointId).getDescription());
}
/**
@@ -638,13 +580,13 @@ public class CustomContentProviderUtilsTest {
public void testBulkInsertTrackPoint() {
// Insert track, point at first.
long trackId = System.currentTimeMillis();
Track track = getTrack(trackId, 10);
Track track = TestDataUtil.getTrack(trackId, 10);
insertTrackWithLocations(track);
providerUtils.bulkInsertTrackPoint(track.getLocations().toArray(new Location[0]), -1, trackId);
Assert.assertEquals(20, providerUtils.getTrackPointCursor(trackId, -1L, 1000, false).getCount());
providerUtils.bulkInsertTrackPoint(track.getLocations().toArray(new Location[0]), 8, trackId);
Assert.assertEquals(28, providerUtils.getTrackPointCursor(trackId, -1L, 1000, false).getCount());
contentProviderUtils.bulkInsertTrackPoint(track.getLocations().toArray(new Location[0]), -1, trackId);
Assert.assertEquals(20, contentProviderUtils.getTrackPointCursor(trackId, -1L, 1000, false).getCount());
contentProviderUtils.bulkInsertTrackPoint(track.getLocations().toArray(new Location[0]), 8, trackId);
Assert.assertEquals(28, contentProviderUtils.getTrackPointCursor(trackId, -1L, 1000, false).getCount());
}
/**
@@ -699,7 +641,7 @@ public class CustomContentProviderUtilsTest {
byte[] sensor = "Sensor state".getBytes();
when(cursorMock.getBlob(index++)).thenReturn(sensor);
Location location = providerUtils.createTrackPoint(cursorMock);
Location location = contentProviderUtils.createTrackPoint(cursorMock);
Assert.assertEquals((double) longitude, location.getLongitude(), 0.01);
Assert.assertEquals((double) latitude, location.getLatitude(), 0.01);
Assert.assertEquals(time, location.getTime(), 0.01);
@@ -714,11 +656,11 @@ public class CustomContentProviderUtilsTest {
public void testInsertTrackPoint() {
// Insert track, point at first.
long trackId = System.currentTimeMillis();
Track track = getTrack(trackId, 10);
Track track = TestDataUtil.getTrack(trackId, 10);
insertTrackWithLocations(track);
providerUtils.insertTrackPoint(createLocation(22), trackId);
Assert.assertEquals(11, providerUtils.getTrackPointCursor(trackId, -1L, 1000, false).getCount());
contentProviderUtils.insertTrackPoint(TestDataUtil.createLocation(22), trackId);
Assert.assertEquals(11, contentProviderUtils.getTrackPointCursor(trackId, -1L, 1000, false).getCount());
}
/**
@@ -728,10 +670,10 @@ public class CustomContentProviderUtilsTest {
public void testGetFirstTrackPointId() {
// Insert track, point at first.
long trackId = System.currentTimeMillis();
Track track = getTrack(trackId, 10);
Track track = TestDataUtil.getTrack(trackId, 10);
insertTrackWithLocations(track);
Assert.assertNotEquals(-1L, providerUtils.getFirstTrackPointId(trackId));
Assert.assertNotEquals(-1L, contentProviderUtils.getFirstTrackPointId(trackId));
}
/**
@@ -741,10 +683,10 @@ public class CustomContentProviderUtilsTest {
public void testGetLastTrackPointId() {
// Insert track, point at first.
long trackId = System.currentTimeMillis();
Track track = getTrack(trackId, 10);
Track track = TestDataUtil.getTrack(trackId, 10);
insertTrackWithLocations(track);
Assert.assertTrue(providerUtils.getFirstTrackPointId(trackId) < providerUtils.getLastTrackPointId(trackId));
Assert.assertTrue(contentProviderUtils.getFirstTrackPointId(trackId) < contentProviderUtils.getLastTrackPointId(trackId));
}
/**
@@ -754,10 +696,10 @@ public class CustomContentProviderUtilsTest {
public void testGetLastValidTrackPoint() {
// Insert track, points at first.
long trackId = System.currentTimeMillis();
Track track = getTrack(trackId, 10);
Track track = TestDataUtil.getTrack(trackId, 10);
insertTrackWithLocations(track);
Location lastLocation = providerUtils.getLastValidTrackPoint(trackId);
Location lastLocation = contentProviderUtils.getLastValidTrackPoint(trackId);
checkLocation(9, lastLocation);
}
@@ -768,15 +710,15 @@ public class CustomContentProviderUtilsTest {
public void testGetTrackPointCursor_desc() {
// Insert track, points at first.
long trackId = System.currentTimeMillis();
Track track = getTrack(trackId, 10);
providerUtils.insertTrack(track);
Track track = TestDataUtil.getTrack(trackId, 10);
contentProviderUtils.insertTrack(track);
long[] trackpointIds = new long[track.getNumberOfPoints()];
for (int i = 0; i < trackpointIds.length; i++) {
trackpointIds[i] = ContentUris.parseId(providerUtils.insertTrackPoint(track.getLocations().get(i), track.getId()));
trackpointIds[i] = ContentUris.parseId(contentProviderUtils.insertTrackPoint(track.getLocations().get(i), track.getId()));
}
Cursor cursor = providerUtils.getTrackPointCursor(trackId, trackpointIds[1], 5, true);
Cursor cursor = contentProviderUtils.getTrackPointCursor(trackId, trackpointIds[1], 5, true);
Assert.assertEquals(2, cursor.getCount());
}
@@ -787,15 +729,15 @@ public class CustomContentProviderUtilsTest {
public void testGetTrackPointCursor_asc() {
// Insert track, points at first.
long trackId = System.currentTimeMillis();
Track track = getTrack(trackId, 10);
providerUtils.insertTrack(track);
Track track = TestDataUtil.getTrack(trackId, 10);
contentProviderUtils.insertTrack(track);
long[] trackpointIds = new long[track.getNumberOfPoints()];
for (int i = 0; i < trackpointIds.length; i++) {
trackpointIds[i] = ContentUris.parseId(providerUtils.insertTrackPoint(track.getLocations().get(i), track.getId()));
trackpointIds[i] = ContentUris.parseId(contentProviderUtils.insertTrackPoint(track.getLocations().get(i), track.getId()));
}
Cursor cursor = providerUtils.getTrackPointCursor(trackId, trackpointIds[8], 5, false);
Cursor cursor = contentProviderUtils.getTrackPointCursor(trackId, trackpointIds[8], 5, false);
Assert.assertEquals(2, cursor.getCount());
}
@@ -806,17 +748,17 @@ public class CustomContentProviderUtilsTest {
public void testGetTrackPointLocationIterator_desc() {
// Insert track, points at first.
long trackId = System.currentTimeMillis();
Track track = getTrack(trackId, 10);
providerUtils.insertTrack(track);
Track track = TestDataUtil.getTrack(trackId, 10);
contentProviderUtils.insertTrack(track);
long[] trackpointIds = new long[track.getNumberOfPoints()];
for (int i = 0; i < trackpointIds.length; i++) {
trackpointIds[i] = ContentUris.parseId(providerUtils.insertTrackPoint(track.getLocations().get(i), track.getId()));
trackpointIds[i] = ContentUris.parseId(contentProviderUtils.insertTrackPoint(track.getLocations().get(i), track.getId()));
}
long startTrackPointId = trackpointIds[9];
LocationIterator locationIterator = providerUtils.getTrackPointLocationIterator(trackId, startTrackPointId, true, LocationFactory.DEFAULT_LOCATION_FACTORY);
LocationIterator locationIterator = contentProviderUtils.getTrackPointLocationIterator(trackId, startTrackPointId, true, LocationFactory.DEFAULT_LOCATION_FACTORY);
for (int i = 0; i < trackpointIds.length; i++) {
Assert.assertTrue(locationIterator.hasNext());
Location location = locationIterator.next();
@@ -833,17 +775,17 @@ public class CustomContentProviderUtilsTest {
public void testGetTrackPointLocationIterator_asc() {
// Insert track, point at first.
long trackId = System.currentTimeMillis();
Track track = getTrack(trackId, 10);
providerUtils.insertTrack(track);
Track track = TestDataUtil.getTrack(trackId, 10);
contentProviderUtils.insertTrack(track);
long[] trackpointIds = new long[track.getNumberOfPoints()];
for (int i = 0; i < trackpointIds.length; i++) {
trackpointIds[i] = ContentUris.parseId(providerUtils.insertTrackPoint(track.getLocations().get(i), track.getId()));
trackpointIds[i] = ContentUris.parseId(contentProviderUtils.insertTrackPoint(track.getLocations().get(i), track.getId()));
}
long startTrackPointId = trackpointIds[0];
LocationIterator locationIterator = providerUtils.getTrackPointLocationIterator(trackId, startTrackPointId, false, LocationFactory.DEFAULT_LOCATION_FACTORY);
LocationIterator locationIterator = contentProviderUtils.getTrackPointLocationIterator(trackId, startTrackPointId, false, LocationFactory.DEFAULT_LOCATION_FACTORY);
for (int i = 0; i < trackpointIds.length; i++) {
Assert.assertTrue(locationIterator.hasNext());
Location location = locationIterator.next();
@@ -854,50 +796,17 @@ public class CustomContentProviderUtilsTest {
Assert.assertFalse(locationIterator.hasNext());
}
/**
* Simulates a track which is used for testing.
*
* @param id the id of the track
* @param numPoints the location number in the track
* @return the simulated track
*/
private Track getTrack(long id, int numPoints) {
Track track = new Track();
track.setId(id);
track.setName("Test: " + id);
track.setNumberOfPoints(numPoints);
for (int i = 0; i < numPoints; i++) {
track.addLocation(createLocation(i));
}
return track;
}
/**
* Creates a location.
*
* @param i the index to set the value of location.
* @return created location
*/
private Location createLocation(int i) {
Location loc = new Location("test");
loc.setLatitude(INITIAL_LATITUDE + (double) i / 10000.0);
loc.setLongitude(INITIAL_LONGITUDE - (double) i / 10000.0);
loc.setAccuracy((float) i / 100.0f);
loc.setAltitude(i * ALTITUDE_INTERVAL);
return loc;
}
/**
* Checks the value of a location.
*
* @param i the index of this location which created in the method {@link CustomContentProviderUtilsTest#getTrack(long, int)}
* @param i the index of this location which created in the method {@link TestDataUtil#getTrack(long, int)}
* @param location the location to be checked
*/
private void checkLocation(int i, Location location) {
Assert.assertEquals(INITIAL_LATITUDE + (double) i / 10000.0, location.getLatitude(), 0.01);
Assert.assertEquals(INITIAL_LONGITUDE - (double) i / 10000.0, location.getLongitude(), 0.01);
Assert.assertEquals(TestDataUtil.INITIAL_LATITUDE + (double) i / 10000.0, location.getLatitude(), 0.01);
Assert.assertEquals(TestDataUtil.INITIAL_LONGITUDE - (double) i / 10000.0, location.getLongitude(), 0.01);
Assert.assertEquals((float) i / 100.0f, location.getAccuracy(), 0.01);
Assert.assertEquals(i * ALTITUDE_INTERVAL, location.getAltitude(), 0.01);
Assert.assertEquals(i * TestDataUtil.ALTITUDE_INTERVAL, location.getAltitude(), 0.01);
}
/**
@@ -906,7 +815,7 @@ public class CustomContentProviderUtilsTest {
* @param track track to be inserted
*/
private void insertTrackWithLocations(Track track) {
providerUtils.insertTrack(track);
providerUtils.bulkInsertTrackPoint(track.getLocations().toArray(new Location[0]), track.getLocations().size(), track.getId());
contentProviderUtils.insertTrack(track);
contentProviderUtils.bulkInsertTrackPoint(track.getLocations().toArray(new Location[0]), track.getLocations().size(), track.getId());
}
}
@@ -27,29 +27,31 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.content.data.Waypoint;
import de.dennisguse.opentracks.stats.TripStatistics;
import de.dennisguse.opentracks.util.StringUtils;
/**
* Tests for {@link DescriptionGeneratorImpl}.
* Tests for {@link DescriptionGenerator}.
*
* @author Jimmy Shih
*/
@RunWith(AndroidJUnit4.class)
public class DescriptionGeneratorImplTest {
public class DescriptionGeneratorTest {
private static final long START_TIME = 1288721514000L;
private DescriptionGeneratorImpl descriptionGenerator;
private DescriptionGenerator descriptionGenerator;
private Context context = ApplicationProvider.getApplicationContext();
@Before
public void setUp() {
descriptionGenerator = new DescriptionGeneratorImpl(ApplicationProvider.getApplicationContext());
descriptionGenerator = new DescriptionGenerator(ApplicationProvider.getApplicationContext());
}
/**
* Tests {@link DescriptionGeneratorImpl#generateTrackDescription(Track, boolean)}.
* Tests {@link DescriptionGenerator#generateTrackDescription(Track, boolean)}.
*/
@Test
public void testGenerateTrackDescription() {
@@ -92,7 +94,7 @@ public class DescriptionGeneratorImplTest {
}
/**
* Tests {@link DescriptionGeneratorImpl#generateWaypointDescription(TripStatistics)}.
* Tests {@link DescriptionGenerator#generateWaypointDescription(TripStatistics)}.
*/
@Test
public void testGenerateWaypointDescription() {
@@ -128,7 +130,7 @@ public class DescriptionGeneratorImplTest {
}
/**
* Tests {@link DescriptionGeneratorImpl#writeDistance(double, StringBuilder, int, String)}.
* Tests {@link DescriptionGenerator#writeDistance(double, StringBuilder, int, String)}.
*/
@Test
public void testWriteDistance() {
@@ -138,7 +140,7 @@ public class DescriptionGeneratorImplTest {
}
/**
* Tests {@link DescriptionGeneratorImpl#writeTime(long, StringBuilder, int, String)}.
* Tests {@link DescriptionGenerator#writeTime(long, StringBuilder, int, String)}.
*/
@Test
public void testWriteTime() {
@@ -148,7 +150,7 @@ public class DescriptionGeneratorImplTest {
}
/**
* Tests {@link DescriptionGeneratorImpl#writeSpeed(double, StringBuilder, int, String)}.
* Tests {@link DescriptionGenerator#writeSpeed(double, StringBuilder, int, String)}.
*/
@Test
public void testWriteSpeed() {
@@ -158,7 +160,7 @@ public class DescriptionGeneratorImplTest {
}
/**
* Tests {@link DescriptionGeneratorImpl#writeElevation(double, StringBuilder, int, String)}.
* Tests {@link DescriptionGenerator#writeElevation(double, StringBuilder, int, String)}.
*/
@Test
public void testWriteElevation() {
@@ -168,7 +170,7 @@ public class DescriptionGeneratorImplTest {
}
/**
* Tests {@link DescriptionGeneratorImpl#writePace(double, StringBuilder, int, String)}.
* Tests {@link DescriptionGenerator#writePace(double, StringBuilder, int, String)}.
*/
@Test
public void testWritePace() {
@@ -178,7 +180,7 @@ public class DescriptionGeneratorImplTest {
}
/**
* Tests {@link DescriptionGeneratorImpl#writeGrade(double, StringBuilder, int, String)}.
* Tests {@link DescriptionGenerator#writeGrade(double, StringBuilder, int, String)}.
*/
@Test
public void testWriteGrade() {
@@ -188,7 +190,7 @@ public class DescriptionGeneratorImplTest {
}
/**
* Tests {@link DescriptionGeneratorImpl#writeGrade(double, StringBuilder, int, String)} with a NaN.
* Tests {@link DescriptionGenerator#writeGrade(double, StringBuilder, int, String)} with a NaN.
*/
@Test
public void testWriteGrade_nan() {
@@ -198,7 +200,7 @@ public class DescriptionGeneratorImplTest {
}
/**
* Tests {@link DescriptionGeneratorImpl#writeGrade(double, StringBuilder, int, String)} with an infinite number.
* Tests {@link DescriptionGenerator#writeGrade(double, StringBuilder, int, String)} with an infinite number.
*/
@Test
public void testWriteGrade_infinite() {
@@ -36,6 +36,8 @@ import java.util.List;
import de.dennisguse.opentracks.content.SearchEngine.ScoredResult;
import de.dennisguse.opentracks.content.SearchEngine.SearchQuery;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.content.data.Waypoint;
import de.dennisguse.opentracks.stats.TripStatistics;
/**
@@ -0,0 +1,44 @@
package de.dennisguse.opentracks.content.data;
import android.location.Location;
public class TestDataUtil {
public static final double INITIAL_LATITUDE = 37.0;
public static final double INITIAL_LONGITUDE = -57.0;
public static final double ALTITUDE_INTERVAL = 2.5;
/**
* Simulates a track which is used for testing.
*
* @param id the id of the track
* @param numPoints the location number in the track
* @return the simulated track
*/
public static Track getTrack(long id, int numPoints) {
Track track = new Track();
track.setId(id);
track.setName("Test: " + id);
track.setNumberOfPoints(numPoints);
for (int i = 0; i < numPoints; i++) {
track.addLocation(createLocation(i));
}
return track;
}
/**
* Creates a location.
*
* @param i the index to set the value of location.
* @return created location
*/
public static Location createLocation(int i) {
Location loc = new Location("test");
loc.setLatitude(INITIAL_LATITUDE + (double) i / 10000.0);
loc.setLongitude(INITIAL_LONGITUDE - (double) i / 10000.0);
loc.setAccuracy((float) i / 100.0f);
loc.setAltitude(i * ALTITUDE_INTERVAL);
loc.setTime(i + 1);
return loc;
}
}
@@ -33,10 +33,10 @@ import java.util.Locale;
import java.util.SimpleTimeZone;
import de.dennisguse.opentracks.content.ContentProviderUtils;
import de.dennisguse.opentracks.content.Track;
import de.dennisguse.opentracks.content.TracksColumns;
import de.dennisguse.opentracks.content.Waypoint;
import de.dennisguse.opentracks.content.WaypointsColumns;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.content.data.TracksColumns;
import de.dennisguse.opentracks.content.data.Waypoint;
import de.dennisguse.opentracks.content.data.WaypointsColumns;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.eq;
@@ -0,0 +1,219 @@
package de.dennisguse.opentracks.io.file.importer;
import android.content.Context;
import android.location.Location;
import android.util.Log;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.filters.LargeTest;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import de.dennisguse.opentracks.content.ContentProviderUtils;
import de.dennisguse.opentracks.content.data.TestDataUtil;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.content.data.Waypoint;
import de.dennisguse.opentracks.io.file.TrackFileFormat;
import de.dennisguse.opentracks.io.file.exporter.TrackExporter;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
/**
* Export a track to {@link TrackFileFormat} and verify that the import is identical.
* <p>
* TODO: test ignores {@link de.dennisguse.opentracks.stats.TripStatistics} for now.
*/
@RunWith(JUnit4.class)
public class ExportImportTest {
private static final String TAG = ExportImportTest.class.getSimpleName();
private Context context = ApplicationProvider.getApplicationContext();
private ContentProviderUtils contentProviderUtils = new ContentProviderUtils(context);
private static final String TRACK_ICON = "the track icon";
private static final String TRACK_CATEGORY = "the category";
private static final String TRACK_DESCRIPTION = "the description";
private final List<Waypoint> waypoints = new ArrayList<>();
private long importTrackId;
private long trackId = System.currentTimeMillis();
@Before
public void setUp() {
Track track = TestDataUtil.getTrack(trackId, 10);
track.setIcon(TRACK_ICON);
track.setCategory(TRACK_CATEGORY);
track.setDescription(TRACK_DESCRIPTION);
contentProviderUtils.insertTrack(track);
contentProviderUtils.bulkInsertTrackPoint(track.getLocations().toArray(new Location[0]), track.getLocations().size(), track.getId());
for (int i = 0; i < 3; i++) {
Waypoint waypoint = new Waypoint();
waypoint.setName("the waypoint " + i);
waypoint.setDescription("the waypoint description " + i);
waypoint.setCategory("the waypoint category" + i);
waypoint.setIcon("the waypoing icon" + i);
waypoint.setPhotoUrl("the photo url" + i);
waypoint.setTrackId(trackId);
waypoint.setLocation(track.getLocations().get(i));
contentProviderUtils.insertWaypoint(waypoint);
waypoints.add(waypoint);
}
assertEquals(waypoints.size(), contentProviderUtils.getWaypointCount(trackId));
}
@After
public void tearDown() {
contentProviderUtils.deleteTrack(context, trackId);
contentProviderUtils.deleteTrack(context, importTrackId);
}
@LargeTest
@Test
public void kml_only_track() {
// TODO
Log.e(TAG, "Test not implemented.");
}
@LargeTest
@Test
public void kml_with_trackdetail() {
// given
Track track = contentProviderUtils.getTrack(trackId);
TrackFileFormat trackFileFormat = TrackFileFormat.KML_WITH_TRACKDETAIL;
TrackExporter trackExporter = trackFileFormat.newTrackExporter(context, new Track[]{track}, null);
// when
// 1. export
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
trackExporter.writeTrack(context, outputStream);
System.out.println(outputStream.toString());
// 2. import
InputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
AbstractFileTrackImporter trackImporter = new KmlFileTrackImporter(context, -1L);
importTrackId = trackImporter.importFile(inputStream);
// then
// 1. track
Track importedTrack = contentProviderUtils.getTrack(importTrackId);
assertNotNull(importedTrack);
assertEquals(track.getLocations(), importedTrack.getLocations());
assertEquals(track.getCategory(), importedTrack.getCategory());
assertEquals(track.getDescription(), importedTrack.getDescription());
assertEquals(track.getName(), importedTrack.getName());
assertEquals(track.getIcon(), importedTrack.getIcon());
// 2. waypoints
assertWaypoints();
//TODO Check absolute time of trackpoints
}
@LargeTest
@Test
public void kml_with_trackdetail_and_sensordata() {
// TODO
Log.e(TAG, "Test not implemented.");
}
@LargeTest
@Test
public void kmz_only_track() {
// TODO
Log.e(TAG, "Test not implemented.");
}
@LargeTest
@Test
public void kmz_with_trackdetail() {
// TODO
Log.e(TAG, "Test not implemented.");
}
@LargeTest
@Test
public void kmz_with_trackdetail_and_sensordata() {
// TODO
Log.e(TAG, "Test not implemented.");
}
@LargeTest
@Test
public void kmz_with_trackdetail_and_sensordata_and_pictures() {
// TODO
Log.e(TAG, "Test not implemented.");
}
@LargeTest
@Test
public void gpx() {
// given
Track track = contentProviderUtils.getTrack(trackId);
TrackFileFormat trackFileFormat = TrackFileFormat.GPX;
TrackExporter trackExporter = trackFileFormat.newTrackExporter(context, new Track[]{track}, null);
// when
// 1. export
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
trackExporter.writeTrack(context, outputStream);
// 2. import
InputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
AbstractFileTrackImporter trackImporter = new GpxFileTrackImporter(context, contentProviderUtils);
importTrackId = trackImporter.importFile(inputStream);
// then
// 1. track
Track trackImported = contentProviderUtils.getTrack(importTrackId);
assertNotNull(trackImported);
assertEquals(track.getLocations(), trackImported.getLocations());
assertEquals(track.getCategory(), trackImported.getCategory());
assertEquals(track.getDescription(), trackImported.getDescription());
assertEquals(track.getName(), trackImported.getName());
//TODO exporting and importing a track icon is not yet supported by GpxTrackWriter.
//assertEquals(track.getIcon(), trackImported.getIcon());
// 2. waypoints
assertWaypoints();
//TODO Check absolute time of trackpoints
}
private void assertWaypoints() {
assertEquals(waypoints.size(), contentProviderUtils.getWaypointCount(importTrackId));
List<Waypoint> importedWaypoints = contentProviderUtils.getWaypoints(importTrackId);
for (int i = 0; i < waypoints.size(); i++) {
Waypoint waypoint = waypoints.get(i);
Waypoint importedWaypoint = importedWaypoints.get(i);
assertEquals(waypoint.getCategory(), importedWaypoint.getCategory());
assertEquals(waypoint.getDescription(), importedWaypoint.getDescription());
// assertEquals(waypoint.getIcon(), importedWaypoint.getIcon()); // TODO for KML
assertEquals(waypoint.getName(), importedWaypoint.getName());
assertEquals("", importedWaypoint.getPhotoUrl());
assertEquals(waypoint.getLocation().getLatitude(), importedWaypoint.getLocation().getLatitude(), 0.001);
assertEquals(waypoint.getLocation().getLongitude(), importedWaypoint.getLocation().getLongitude(), 0.001);
assertEquals(waypoint.getLocation().getAltitude(), importedWaypoint.getLocation().getAltitude(), 0.001);
}
}
}
@@ -27,7 +27,7 @@ import org.mockito.junit.MockitoJUnitRunner;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import de.dennisguse.opentracks.content.Track;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.util.PreferencesUtils;
import static org.mockito.Mockito.any;
@@ -27,7 +27,7 @@ import org.mockito.junit.MockitoJUnitRunner;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import de.dennisguse.opentracks.content.Track;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.util.PreferencesUtils;
import static org.mockito.Mockito.any;
@@ -53,10 +53,8 @@ public class AdaptiveLocationListenerPolicyTest extends TestCase {
assertEquals(MAX, adocationListenerPolicy.getDesiredPollingInterval());
adocationListenerPolicy.updateIdleTime(NEW_IDLE_TIME_NORMAL);
// First get the half of NEW_IDLE_TIME_NORMAL, and then round it to the
// nearest second.
assertEquals((NEW_IDLE_TIME_NORMAL / 2 / 1000) * 1000,
adocationListenerPolicy.getDesiredPollingInterval());
// First get the half of NEW_IDLE_TIME_NORMAL, and then round it to the nearest second.
assertEquals((NEW_IDLE_TIME_NORMAL / 2 / 1000) * 1000, adocationListenerPolicy.getDesiredPollingInterval());
adocationListenerPolicy.updateIdleTime(NEW_IDLE_TIME_SMALL);
assertEquals(MIN, adocationListenerPolicy.getDesiredPollingInterval());
@@ -44,10 +44,8 @@ import java.util.concurrent.TimeoutException;
import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.content.ContentProviderUtils;
import de.dennisguse.opentracks.content.CustomContentProvider;
import de.dennisguse.opentracks.content.Track;
import de.dennisguse.opentracks.content.Waypoint;
import de.dennisguse.opentracks.content.Waypoint.WaypointType;
import de.dennisguse.opentracks.content.WaypointCreationRequest;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.content.data.Waypoint;
import de.dennisguse.opentracks.stats.TripStatistics;
import de.dennisguse.opentracks.util.PreferencesUtils;
@@ -56,7 +54,7 @@ import de.dennisguse.opentracks.util.PreferencesUtils;
*
* @author Bartlomiej Niechwiej
* <p>
* ATTENTION: This tests deletes all stored tracks in the database.
* //TODO ATTENTION: This tests deletes all stored tracks in the database.
* So, if it is executed on a real device, data might be lost.
*/
@RunWith(AndroidJUnit4.class)
@@ -69,7 +67,7 @@ public class TrackRecordingServiceTest {
public GrantPermissionRule mRuntimePermissionRule = GrantPermissionRule.grant(android.Manifest.permission.ACCESS_FINE_LOCATION);
private Context context = ApplicationProvider.getApplicationContext();
private ContentProviderUtils providerUtils;
private ContentProviderUtils contentProviderUtils;
private final long trackId = Math.abs(new Random().nextLong());
@@ -84,14 +82,14 @@ public class TrackRecordingServiceTest {
};
customContentProvider.attachInfo(context, null);
providerUtils = new ContentProviderUtils(context);
contentProviderUtils = new ContentProviderUtils(context);
// Let's use default values.
SharedPreferences sharedPreferences = PreferencesUtils.getSharedPreferences(context);
sharedPreferences.edit().clear().apply();
// Ensure that the database is empty before every test
providerUtils.deleteAllTracks(context);
contentProviderUtils.deleteAllTracks(context);
}
@After
@@ -103,7 +101,7 @@ public class TrackRecordingServiceTest {
}
// Ensure that the database is empty after every test
providerUtils.deleteAllTracks(context);
contentProviderUtils.deleteAllTracks(context);
}
@SmallTest
@@ -123,7 +121,7 @@ public class TrackRecordingServiceTest {
@MediumTest
@Test
public void testRecording_noTracks() throws Exception {
List<Track> tracks = providerUtils.getAllTracks();
List<Track> tracks = contentProviderUtils.getAllTracks();
Assert.assertTrue(tracks.isEmpty());
Intent startIntent = createStartIntent(context);
@@ -203,8 +201,8 @@ public class TrackRecordingServiceTest {
private void addTrack(Track track, boolean isRecording) {
Assert.assertTrue(track.getId() >= 0);
providerUtils.insertTrack(track);
Assert.assertEquals(track.getId(), providerUtils.getTrack(track.getId()).getId());
contentProviderUtils.insertTrack(track);
Assert.assertEquals(track.getId(), contentProviderUtils.getTrack(track.getId()).getId());
PreferencesUtils.setLong(context, R.string.recording_track_id_key, isRecording ? track.getId() : PreferencesUtils.RECORDING_TRACK_ID_DEFAULT);
PreferencesUtils.setBoolean(context, R.string.recording_track_paused_key, !isRecording);
}
@@ -231,7 +229,7 @@ public class TrackRecordingServiceTest {
ITrackRecordingService service = ((ITrackRecordingService) mServiceRule.bindService(createStartIntent(context)));
Assert.assertFalse(service.isRecording());
long waypointId = service.insertWaypoint(WaypointCreationRequest.DEFAULT_WAYPOINT);
long waypointId = service.insertWaypoint(null, null, null, null);
Assert.assertEquals(-1L, waypointId);
}
@@ -244,12 +242,11 @@ public class TrackRecordingServiceTest {
insertLocation(service);
long trackId = service.getRecordingTrackId();
long waypointId = service.insertWaypoint(WaypointCreationRequest.DEFAULT_WAYPOINT);
long waypointId = service.insertWaypoint(null, null, null, null);
Assert.assertNotEquals(-1L, waypointId);
Waypoint wpt = providerUtils.getWaypoint(waypointId);
Waypoint wpt = contentProviderUtils.getWaypoint(waypointId);
Assert.assertEquals(context.getString(R.string.marker_waypoint_icon_url), wpt.getIcon());
Assert.assertEquals(context.getString(R.string.marker_name_format, 1), wpt.getName());
Assert.assertEquals(WaypointType.WAYPOINT, wpt.getType());
Assert.assertEquals(trackId, wpt.getTrackId());
Assert.assertEquals(0.0, wpt.getLength(), 0.01);
Assert.assertNotNull(wpt.getLocation());
@@ -27,8 +27,7 @@ import java.util.concurrent.TimeoutException;
import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.content.ContentProviderUtils;
import de.dennisguse.opentracks.content.CustomContentProvider;
import de.dennisguse.opentracks.content.Track;
import de.dennisguse.opentracks.content.WaypointCreationRequest;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.stats.TripStatistics;
import de.dennisguse.opentracks.util.PreferencesUtils;
@@ -219,7 +218,7 @@ public class TrackRecordingServiceTestLooper {
service.insertTrackPoint(location);
if (i % 7 == 0) {
service.insertWaypoint(WaypointCreationRequest.DEFAULT_WAYPOINT);
service.insertWaypoint(null, null, null, null);
}
}
+2 -2
View File
@@ -16,8 +16,8 @@ limitations under the License.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="de.dennisguse.opentracks"
android:installLocation="auto"
android:versionCode="3195"
android:versionName="v3.2.10"> <!-- For FDroid. -->
android:versionCode="3213"
android:versionName="v3.2.11"> <!-- For FDroid. -->
<!-- Permission to initialize services -->
<application
android:name=".Startup"
@@ -31,7 +31,7 @@ import java.util.ArrayList;
import java.util.List;
import de.dennisguse.opentracks.content.ContentProviderUtils;
import de.dennisguse.opentracks.content.Waypoint;
import de.dennisguse.opentracks.content.data.Waypoint;
import de.dennisguse.opentracks.fragments.DeleteMarkerDialogFragment.DeleteMarkerCaller;
import de.dennisguse.opentracks.fragments.MarkerDetailFragment;
@@ -26,9 +26,7 @@ import android.widget.Button;
import android.widget.EditText;
import de.dennisguse.opentracks.content.ContentProviderUtils;
import de.dennisguse.opentracks.content.Waypoint;
import de.dennisguse.opentracks.content.Waypoint.WaypointType;
import de.dennisguse.opentracks.content.WaypointCreationRequest;
import de.dennisguse.opentracks.content.data.Waypoint;
import de.dennisguse.opentracks.services.TrackRecordingServiceConnection;
/**
@@ -48,9 +46,6 @@ public class MarkerEditActivity extends AbstractActivity {
private Waypoint waypoint;
// UI elements
private View statisticsSection;
private EditText statisticsName;
private View waypointSection;
private EditText waypointName;
private AutoCompleteTextView waypointMarkerType;
private EditText waypointDescription;
@@ -65,10 +60,6 @@ public class MarkerEditActivity extends AbstractActivity {
trackRecordingServiceConnection = new TrackRecordingServiceConnection(this, null);
// Setup UI elements
statisticsSection = findViewById(R.id.marker_edit_statistics_section);
statisticsName = findViewById(R.id.marker_edit_statistics_name);
waypointSection = findViewById(R.id.marker_edit_waypoint_section);
waypointName = findViewById(R.id.marker_edit_waypoint_name);
waypointMarkerType = findViewById(R.id.marker_edit_waypoint_marker_type);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.waypoint_types, android.R.layout.simple_dropdown_item_1line);
@@ -95,7 +86,7 @@ public class MarkerEditActivity extends AbstractActivity {
@Override
protected void onStop() {
super.onStop();
trackRecordingServiceConnection.unbind();
trackRecordingServiceConnection.unbind(this);
}
@Override
@@ -124,9 +115,7 @@ public class MarkerEditActivity extends AbstractActivity {
});
if (newMarker) {
statisticsSection.setVisibility(View.GONE);
waypointSection.setVisibility(View.VISIBLE);
int nextWaypointNumber = trackId == -1L ? -1 : new ContentProviderUtils(this).getNextWaypointNumber(trackId, WaypointType.WAYPOINT);
int nextWaypointNumber = trackId == -1L ? -1 : new ContentProviderUtils(this).getNextWaypointNumber(trackId);
if (nextWaypointNumber == -1) {
nextWaypointNumber = 0;
}
@@ -141,16 +130,9 @@ public class MarkerEditActivity extends AbstractActivity {
finish();
return;
}
boolean statistics = waypoint.getType() == WaypointType.STATISTICS;
statisticsSection.setVisibility(statistics ? View.VISIBLE : View.GONE);
waypointSection.setVisibility(statistics ? View.GONE : View.VISIBLE);
if (statistics) {
statisticsName.setText(waypoint.getName());
} else {
waypointName.setText(waypoint.getName());
waypointMarkerType.setText(waypoint.getCategory());
waypointDescription.setText(waypoint.getDescription());
}
waypointName.setText(waypoint.getName());
waypointMarkerType.setText(waypoint.getCategory());
waypointDescription.setText(waypoint.getDescription());
}
}
@@ -158,29 +140,21 @@ public class MarkerEditActivity extends AbstractActivity {
* Adds a marker.
*/
private void addMarker() {
WaypointCreationRequest waypointCreationRequest = new WaypointCreationRequest(
WaypointType.WAYPOINT,
false,
trackRecordingServiceConnection.addMarker(this,
waypointName.getText().toString(),
waypointMarkerType.getText().toString(),
waypointDescription.getText().toString(),
null,
null);
trackRecordingServiceConnection.addMarker(this, waypointCreationRequest);
}
/**
* Saves a marker.
*/
private void saveMarker() {
boolean statistics = waypoint.getType() == WaypointType.STATISTICS;
if (statistics) {
waypoint.setName(statisticsName.getText().toString());
} else {
waypoint.setName(waypointName.getText().toString());
waypoint.setCategory(waypointMarkerType.getText().toString());
waypoint.setDescription(waypointDescription.getText().toString());
}
waypoint.setName(waypointName.getText().toString());
waypoint.setCategory(waypointMarkerType.getText().toString());
waypoint.setDescription(waypointDescription.getText().toString());
new ContentProviderUtils(this).updateWaypoint(waypoint);
}
}
@@ -38,8 +38,8 @@ import androidx.loader.content.CursorLoader;
import androidx.loader.content.Loader;
import de.dennisguse.opentracks.content.ContentProviderUtils;
import de.dennisguse.opentracks.content.Track;
import de.dennisguse.opentracks.content.WaypointsColumns;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.content.data.WaypointsColumns;
import de.dennisguse.opentracks.fragments.DeleteMarkerDialogFragment;
import de.dennisguse.opentracks.fragments.DeleteMarkerDialogFragment.DeleteMarkerCaller;
import de.dennisguse.opentracks.util.ActivityUtils;
@@ -126,17 +126,14 @@ public class MarkerListActivity extends AbstractActivity implements DeleteMarker
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL);
long trackId = getIntent().getLongExtra(EXTRA_TRACK_ID, -1L);
recordingTrackPaused = PreferencesUtils.isRecordingTrackPausedDefault(this);
contentProviderUtils = new ContentProviderUtils(this);
sharedPreferences = PreferencesUtils.getSharedPreferences(this);
long trackId = getIntent().getLongExtra(EXTRA_TRACK_ID, -1L);
track = trackId != -1L ? contentProviderUtils.getTrack(trackId) : null;
final long trackFirstWaypointId = trackId != -1 ? contentProviderUtils.getFirstWaypointId(trackId) : -1;
setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL);
listView = findViewById(R.id.marker_list);
listView.setEmptyView(findViewById(R.id.marker_list_empty));
@@ -181,8 +178,8 @@ public class MarkerListActivity extends AbstractActivity implements DeleteMarker
public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
if (track != null) {
return new CursorLoader(MarkerListActivity.this, WaypointsColumns.CONTENT_URI, PROJECTION,
WaypointsColumns.TRACKID + "=? AND " + WaypointsColumns._ID + "!=?",
new String[]{String.valueOf(track.getId()), String.valueOf(trackFirstWaypointId)}, null);
WaypointsColumns.TRACKID + "=?",
new String[]{String.valueOf(track.getId())}, null);
} else {
return new CursorLoader(MarkerListActivity.this, WaypointsColumns.CONTENT_URI, PROJECTION,
WaypointsColumns.STARTTIME + " IS NULL", null, null);
@@ -44,8 +44,8 @@ import de.dennisguse.opentracks.content.ContentProviderUtils;
import de.dennisguse.opentracks.content.SearchEngine;
import de.dennisguse.opentracks.content.SearchEngine.ScoredResult;
import de.dennisguse.opentracks.content.SearchEngine.SearchQuery;
import de.dennisguse.opentracks.content.Track;
import de.dennisguse.opentracks.content.Waypoint;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.content.data.Waypoint;
import de.dennisguse.opentracks.fragments.ConfirmDeleteDialogFragment;
import de.dennisguse.opentracks.fragments.DeleteMarkerDialogFragment;
import de.dennisguse.opentracks.fragments.DeleteMarkerDialogFragment.DeleteMarkerCaller;
@@ -245,7 +245,7 @@ public class SearchListActivity extends AbstractListActivity implements DeleteMa
protected void onStop() {
super.onStop();
sharedPreferences.unregisterOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
trackRecordingServiceConnection.unbind();
trackRecordingServiceConnection.unbind(this);
}
@Override
@@ -1,153 +0,0 @@
/*
* Copyright 2013q Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package de.dennisguse.opentracks;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TabHost;
import android.widget.TabHost.TabContentFactory;
import android.widget.TabWidget;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.viewpager.widget.ViewPager;
import java.util.ArrayList;
/**
* This is a helper class that implements the management of tabs and all details
* of connecting a ViewPager with associated TabHost. It relies on a trick.
* Normally a tab host has a simple API for supplying a View or Intent that each
* tab will show. This is not sufficient for switching between pages. So instead
* we make the content part of the tab host 0dp high (it is not shown) and the
* TabsAdapter supplies its own dummy view to show as the tab content. It
* listens to changes in tabs, and takes care of switch to the correct paged in
* the ViewPager whenever the selected tab changes.
* <p>
* Copied from the FragmentTabsPager sample in the support library.
*
* @author Jimmy Shih
*/
//TODO Rework or better remove.
public class TabsAdapter extends FragmentPagerAdapter implements TabHost.OnTabChangeListener, ViewPager.OnPageChangeListener {
private final Context context;
private final TabHost tabHost;
private final ViewPager viewPager;
private final ArrayList<TabInfo> tabInfos = new ArrayList<>();
public TabsAdapter(FragmentActivity activity, TabHost tabHost, ViewPager viewPager) {
super(activity.getSupportFragmentManager());
this.context = activity;
this.tabHost = tabHost;
this.viewPager = viewPager;
this.tabHost.setOnTabChangedListener(this);
this.viewPager.setAdapter(this);
this.viewPager.setOnPageChangeListener(this);
}
public void addTab(TabHost.TabSpec tabSpec, Class<?> clss, Bundle bundle) {
tabSpec.setContent(new DummyTabFactory(context));
TabInfo info = new TabInfo(clss, bundle);
tabInfos.add(info);
tabHost.addTab(tabSpec);
notifyDataSetChanged();
}
@Override
public int getCount() {
return tabInfos.size();
}
@Override
@NonNull
public Fragment getItem(int position) {
TabInfo info = tabInfos.get(position);
return Fragment.instantiate(context, info.clss.getName(), info.bundle);
}
@Override
public void onTabChanged(String tabId) {
int position = tabHost.getCurrentTab();
viewPager.setCurrentItem(position);
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
/*
* Unfortunately when TabHost changes the current tab, it kindly also takes care of putting focus on it when not in touch mode.
* The jerk. This hack tries to prevent this from pulling focus out of our ViewPager.
*/
TabWidget tabWidget = tabHost.getTabWidget();
int oldFocusability = tabWidget.getDescendantFocusability();
tabWidget.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
tabHost.setCurrentTab(position);
tabWidget.setDescendantFocusability(oldFocusability);
}
@Override
public void onPageScrollStateChanged(int state) {
}
/**
* An object to hold a tab's info.
*
* @author Jimmy Shih
*/
private static final class TabInfo {
private final Class<?> clss;
private final Bundle bundle;
TabInfo(Class<?> clss, Bundle bundle) {
this.clss = clss;
this.bundle = bundle;
}
}
/**
* A dummy {@link TabContentFactory} that creates an empty view to satisfy the {@link TabHost} API.
*
* @author Jimmy Shih
*/
private static class DummyTabFactory implements TabHost.TabContentFactory {
private final Context context;
DummyTabFactory(Context context) {
this.context = context;
}
@Override
public View createTabContent(String tag) {
View view = new View(context);
view.setMinimumWidth(0);
view.setMinimumHeight(0);
return view;
}
}
}
@@ -31,20 +31,21 @@ import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.app.ActivityCompat;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.google.android.material.tabs.TabLayout;
import de.dennisguse.opentracks.content.ContentProviderUtils;
import de.dennisguse.opentracks.content.Track;
import de.dennisguse.opentracks.content.TrackDataHub;
import de.dennisguse.opentracks.content.Waypoint;
import de.dennisguse.opentracks.content.Waypoint.WaypointType;
import de.dennisguse.opentracks.content.WaypointCreationRequest;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.content.data.Waypoint;
import de.dennisguse.opentracks.fragments.ChartDistanceFragment;
import de.dennisguse.opentracks.fragments.ChartTimeFragment;
import de.dennisguse.opentracks.fragments.ChooseActivityTypeDialogFragment;
@@ -86,7 +87,7 @@ public class TrackDetailActivity extends AbstractListActivity implements ChooseA
private SharedPreferences sharedPreferences;
private TrackRecordingServiceConnection trackRecordingServiceConnection;
private TrackDataHub trackDataHub;
private TabHost tabHost;
private ViewPager pager;
private TrackController trackController;
// From intent
@@ -106,8 +107,7 @@ public class TrackDetailActivity extends AbstractListActivity implements ChooseA
trackController.update(isRecording(), recordingTrackPaused);
if (hasPhoto && photoUri != null) {
hasPhoto = false;
WaypointCreationRequest waypointCreationRequest = new WaypointCreationRequest(WaypointType.WAYPOINT, false, null, null, null, null, photoUri.toString());
long markerId = trackRecordingServiceConnection.addMarker(TrackDetailActivity.this, waypointCreationRequest);
long markerId = trackRecordingServiceConnection.addMarker(TrackDetailActivity.this, null, null, null, photoUri.toString());
if (markerId != -1L) {
//TODO: Make configurable.
FileUtils.updateMediaScanner(TrackDetailActivity.this, photoUri);
@@ -202,28 +202,46 @@ public class TrackDetailActivity extends AbstractListActivity implements ChooseA
trackRecordingServiceConnection = new TrackRecordingServiceConnection(this, bindChangedCallback);
trackDataHub = TrackDataHub.newInstance(this);
tabHost = findViewById(R.id.tackdetail_tabhost);
tabHost.setup();
FragmentPagerAdapter adapter = new FragmentPagerAdapter(getSupportFragmentManager(), 1) {
@Override
public int getCount() {
return 3;
}
ViewPager viewPager = findViewById(R.id.pager);
TabsAdapter tabsAdapter = new TabsAdapter(this, tabHost, viewPager);
TabSpec statsTabSpec = tabHost.newTabSpec(StatsFragment.STATS_FRAGMENT_TAG).setIndicator(getString(R.string.track_detail_stats_tab));
tabsAdapter.addTab(statsTabSpec, StatsFragment.class, null);
TabSpec chartTimeTabSpec = tabHost.newTabSpec(ChartTimeFragment.CHART_FRAGMENT_TAG).setIndicator(getString(R.string.settings_chart_by_time));
tabsAdapter.addTab(chartTimeTabSpec, ChartTimeFragment.class, null);
TabSpec chartDistanceTabSpec = tabHost.newTabSpec(ChartDistanceFragment.CHART_FRAGMENT_TAG).setIndicator(getString(R.string.settings_chart_by_distance));
tabsAdapter.addTab(chartDistanceTabSpec, ChartDistanceFragment.class, null);
@NonNull
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return new StatsFragment();
case 1:
return new ChartTimeFragment();
case 2:
return new ChartDistanceFragment();
}
return null;
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
return getString(R.string.track_detail_stats_tab);
case 1:
return getString(R.string.settings_chart_by_time);
case 2:
return getString(R.string.settings_chart_by_distance);
}
return "Unknown Tab";
}
};
pager = findViewById(R.id.track_detail_activity_view_pager);
pager.setAdapter(adapter);
TabLayout tabs = findViewById(R.id.track_detail_activity_tablayout);
tabs.setupWithViewPager(pager);
if (savedInstanceState != null) {
tabHost.setCurrentTabByTag(savedInstanceState.getString(CURRENT_TAB_TAG_KEY));
}
// Set the background after all three tabs are added
for (int i = 0; i < tabHost.getTabWidget().getChildCount(); i++) {
tabHost.getTabWidget().getChildAt(i).setBackgroundResource(R.drawable.tab_indicator);
pager.setCurrentItem(savedInstanceState.getInt(CURRENT_TAB_TAG_KEY));
}
trackController = new TrackController(this, trackRecordingServiceConnection, false, recordListener, stopListener);
@@ -291,14 +309,15 @@ public class TrackDetailActivity extends AbstractListActivity implements ChooseA
protected void onStop() {
super.onStop();
sharedPreferences.unregisterOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
trackRecordingServiceConnection.unbind();
trackRecordingServiceConnection.unbind(this);
trackDataHub.stop();
}
@Override
protected void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString(CURRENT_TAB_TAG_KEY, tabHost.getCurrentTabTag());
outState.putInt(CURRENT_TAB_TAG_KEY, pager.getCurrentItem());
if (photoUri != null) {
outState.putParcelable(PHOTO_URI_KEY, photoUri);
}
@@ -31,7 +31,7 @@ import android.widget.Spinner;
import androidx.annotation.NonNull;
import de.dennisguse.opentracks.content.ContentProviderUtils;
import de.dennisguse.opentracks.content.Track;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.fragments.ChooseActivityTypeDialogFragment;
import de.dennisguse.opentracks.services.TrackRecordingServiceConnection;
import de.dennisguse.opentracks.util.TrackIconUtils;
@@ -175,7 +175,7 @@ public class TrackEditActivity extends AbstractActivity implements ChooseActivit
@Override
protected void onStop() {
super.onStop();
trackRecordingServiceConnection.unbind();
trackRecordingServiceConnection.unbind(this);
}
@Override
@@ -51,7 +51,7 @@ import androidx.loader.content.Loader;
import java.util.Locale;
import de.dennisguse.opentracks.content.ContentProviderUtils;
import de.dennisguse.opentracks.content.TracksColumns;
import de.dennisguse.opentracks.content.data.TracksColumns;
import de.dennisguse.opentracks.fragments.ConfirmDeleteDialogFragment;
import de.dennisguse.opentracks.services.ITrackRecordingService;
import de.dennisguse.opentracks.services.TrackRecordingServiceConnection;
@@ -141,7 +141,7 @@ public class TrackListActivity extends AbstractListActivity implements ConfirmDe
if (PreferencesUtils.isKey(TrackListActivity.this, R.string.recording_track_id_key, key)) {
recordingTrackId = PreferencesUtils.getRecordingTrackId(TrackListActivity.this);
if (key != null && PreferencesUtils.isRecording(recordingTrackId)) {
trackRecordingServiceConnection.startAndBind();
trackRecordingServiceConnection.startAndBind(TrackListActivity.this);
}
}
if (PreferencesUtils.isKey(TrackListActivity.this, R.string.recording_track_paused_key, key)) {
@@ -344,7 +344,7 @@ public class TrackListActivity extends AbstractListActivity implements ConfirmDe
super.onStop();
sharedPreferences.unregisterOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
trackRecordingServiceConnection.unbind();
trackRecordingServiceConnection.unbind(this);
}
@Override
@@ -406,14 +406,14 @@ public class TrackListActivity extends AbstractListActivity implements ConfirmDe
// Invoke trackRecordingService
if (startGps) {
trackRecordingServiceConnection.startAndBind();
trackRecordingServiceConnection.startAndBind(this);
bindChangedCallback.run();
} else {
ITrackRecordingService trackRecordingService = trackRecordingServiceConnection.getServiceIfBound();
if (trackRecordingService != null) {
trackRecordingService.stopGps();
}
trackRecordingServiceConnection.unbindAndStop();
trackRecordingServiceConnection.unbindAndStop(this);
}
// Update menu after starting or stopping gps
@@ -498,7 +498,7 @@ public class TrackListActivity extends AbstractListActivity implements ConfirmDe
*/
private void startRecording() {
startNewRecording = true;
trackRecordingServiceConnection.startAndBind();
trackRecordingServiceConnection.startAndBind(this);
/*
* If the binding has happened, then invoke the callback to start a new recording.
@@ -41,7 +41,7 @@ import java.util.List;
import de.dennisguse.opentracks.MarkerDetailActivity;
import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.content.Waypoint;
import de.dennisguse.opentracks.content.data.Waypoint;
import de.dennisguse.opentracks.stats.ExtremityMonitor;
import de.dennisguse.opentracks.util.IntentUtils;
import de.dennisguse.opentracks.util.MarkerUtils;
@@ -555,7 +555,7 @@ public class ChartView extends View {
canvas.save();
float x = getX(getWaypointXValue(waypoint));
canvas.drawLine(x, topBorder + spacer + markerHeight / 2, x, topBorder + effectiveHeight, markerPaint);
canvas.translate(x - (float) (markerWidth * WAYPOINT_X_ANCHOR), topBorder + spacer);
canvas.translate(x - (markerWidth * WAYPOINT_X_ANCHOR), topBorder + spacer);
waypointMarker.draw(canvas);
canvas.restore();
@@ -35,7 +35,11 @@ import java.util.NoSuchElementException;
import de.dennisguse.opentracks.BuildConfig;
import de.dennisguse.opentracks.android.ContentResolverWrapper;
import de.dennisguse.opentracks.android.IContentResolver;
import de.dennisguse.opentracks.content.Waypoint.WaypointType;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.content.data.TrackPointsColumns;
import de.dennisguse.opentracks.content.data.TracksColumns;
import de.dennisguse.opentracks.content.data.Waypoint;
import de.dennisguse.opentracks.content.data.WaypointsColumns;
import de.dennisguse.opentracks.content.sensor.SensorDataSet;
import de.dennisguse.opentracks.stats.TripStatistics;
import de.dennisguse.opentracks.util.FileUtils;
@@ -51,11 +55,6 @@ public class ContentProviderUtils {
private static final String TAG = ContentProviderUtils.class.getSimpleName();
private static final int MAX_LATITUDE = 90000000;
/**
* Maximum number of waypoints that will be loaded at one time.
*/
public static int MAX_LOADED_WAYPOINTS_POINTS = 10000;
/**
* The authority (the first part of the URI) for the app's content provider.
*/
@@ -64,7 +63,12 @@ public class ContentProviderUtils {
/**
* The base URI for the app's content provider.
*/
static String CONTENT_BASE_URI = "content://" + AUTHORITY_PACKAGE;
public static String CONTENT_BASE_URI = "content://" + AUTHORITY_PACKAGE;
/**
* Maximum number of waypoints that will be loaded at one time.
*/
public static int MAX_LOADED_WAYPOINTS_POINTS = 10000;
private final IContentResolver contentResolver;
private int defaultCursorBatchSize = 2000;
@@ -443,9 +447,6 @@ public class ContentProviderUtils {
if (!cursor.isNull(trackIdIndex)) {
waypoint.setTrackId(cursor.getLong(trackIdIndex));
}
if (!cursor.isNull(typeIndex)) {
waypoint.setType(WaypointType.values()[cursor.getInt(typeIndex)]);
}
if (!cursor.isNull(lengthIndex)) {
waypoint.setLength(cursor.getFloat(lengthIndex));
}
@@ -538,26 +539,11 @@ public class ContentProviderUtils {
* If deleting a statistics waypoint, this will also correct the next statistics waypoint after the deleted one to reflect the deletion.
* The generator is used to update the next statistics waypoint.
*
* @param waypointId the waypoint id
* @param descriptionGenerator the description generator. Can be null for waypoint marker
* @param waypointId the waypoint id
*/
public void deleteWaypoint(Context context, long waypointId, DescriptionGenerator descriptionGenerator) {
public void deleteWaypoint(Context context, long waypointId) {
final Waypoint waypoint = getWaypoint(waypointId);
if (waypoint != null && waypoint.getType() == WaypointType.STATISTICS
&& descriptionGenerator != null) {
final Waypoint nextWaypoint = getNextStatisticsWaypointAfter(waypoint);
if (nextWaypoint == null) {
Log.d(TAG, "Unable to find the next statistics marker after deleting one.");
} else {
nextWaypoint.getTripStatistics().merge(waypoint.getTripStatistics());
nextWaypoint.setDescription(
descriptionGenerator.generateWaypointDescription(nextWaypoint.getTripStatistics()));
if (!updateWaypoint(nextWaypoint)) {
Log.e(TAG, "Unable to update the next statistics marker after deleting one.");
}
}
}
if (waypoint != null && waypoint.hasPhoto()) {
Uri uri = waypoint.getPhotoURI();
File file = new File(uri.getPath());
@@ -574,36 +560,16 @@ public class ContentProviderUtils {
}
/**
* Gets the first waypoint id for a track.
* The first waypoint is special as it contains the stats for the track.
* Returns -1L if it doesn't exist.
* Gets the last waypoint for a type. Returns null if it doesn't exist.
*
* @param trackId the track id
*/
public long getFirstWaypointId(long trackId) {
if (trackId < 0) {
return -1L;
}
try (Cursor cursor = getWaypointCursor(new String[]{WaypointsColumns._ID}, WaypointsColumns.TRACKID + "=?", new String[]{Long.toString(trackId)}, WaypointsColumns._ID, 1)) {
if (cursor != null && cursor.moveToFirst()) {
return cursor.getLong(cursor.getColumnIndexOrThrow(WaypointsColumns._ID));
}
}
return -1L;
}
/**
* Gets the last waypoint for a type. Returns null if it doesn't exist.
*
* @param trackId the track id
* @param waypointType the waypoint type
*/
public Waypoint getLastWaypoint(long trackId, WaypointType waypointType) {
public Waypoint getLastWaypoint(long trackId) {
if (trackId < 0) {
return null;
}
String selection = WaypointsColumns.TRACKID + "=? AND " + WaypointsColumns.TYPE + "=?";
String[] selectionArgs = new String[]{Long.toString(trackId), Integer.toString(waypointType.ordinal())};
String selection = WaypointsColumns.TRACKID + "=?";
String[] selectionArgs = new String[]{Long.toString(trackId)};
try (Cursor cursor = getWaypointCursor(null, selection, selectionArgs, WaypointsColumns._ID + " DESC", 1)) {
if (cursor != null && cursor.moveToFirst()) {
@@ -617,21 +583,18 @@ public class ContentProviderUtils {
* Gets the next waypoint number for a type.
* Returns -1 if not able to get the next waypoint number.
*
* @param trackId the track id
* @param waypointType the waypoint type
* @param trackId the track id
*/
public int getNextWaypointNumber(long trackId, WaypointType waypointType) {
public int getNextWaypointNumber(long trackId) {
if (trackId < 0) {
return -1;
}
String[] projection = {WaypointsColumns._ID};
String selection = WaypointsColumns.TRACKID + "=? AND " + WaypointsColumns.TYPE + "=?";
String[] selectionArgs = new String[]{Long.toString(trackId), Integer.toString(waypointType.ordinal())};
String selection = WaypointsColumns.TRACKID + "=?";
String[] selectionArgs = new String[]{Long.toString(trackId)};
try (Cursor cursor = getWaypointCursor(projection, selection, selectionArgs, WaypointsColumns._ID, -1)) {
if (cursor != null) {
int count = cursor.getCount();
// For statistics markers, the first marker is for the track statistics, so return the count as the next user visible number.
return waypointType == WaypointType.STATISTICS ? count : count + 1;
return cursor.getCount();
}
}
return -1;
@@ -695,6 +658,19 @@ public class ContentProviderUtils {
return getWaypointCursor(null, selection, selectionArgs, WaypointsColumns._ID, maxWaypoints);
}
@VisibleForTesting
public List<Waypoint> getWaypoints(long trackId) {
ArrayList<Waypoint> waypoints = new ArrayList<>();
try (Cursor cursor = getWaypointCursor(trackId, -1L, -1)) {
if (cursor.moveToFirst()) {
do {
waypoints.add(createWaypoint(cursor));
} while (cursor.moveToNext());
}
}
return waypoints;
}
/**
* Gets the number of waypoints for a track.
*
@@ -713,8 +689,7 @@ public class ContentProviderUtils {
cursor.moveToFirst();
int count = cursor.getInt(0);
cursor.close();
// not count the first waypoint
return count > 0 ? count - 1 : 0;
return count;
}
/**
@@ -751,7 +726,6 @@ public class ContentProviderUtils {
values.put(WaypointsColumns.CATEGORY, waypoint.getCategory());
values.put(WaypointsColumns.ICON, waypoint.getIcon());
values.put(WaypointsColumns.TRACKID, waypoint.getTrackId());
values.put(WaypointsColumns.TYPE, waypoint.getType().ordinal());
values.put(WaypointsColumns.LENGTH, waypoint.getLength());
values.put(WaypointsColumns.DURATION, waypoint.getDuration());
values.put(WaypointsColumns.STARTID, waypoint.getStartId());
@@ -796,18 +770,6 @@ public class ContentProviderUtils {
return values;
}
private Waypoint getNextStatisticsWaypointAfter(Waypoint waypoint) {
String selection = WaypointsColumns._ID + ">? AND " + WaypointsColumns.TRACKID + "=? AND "
+ WaypointsColumns.TYPE + "=" + WaypointType.STATISTICS.ordinal();
String[] selectionArgs = new String[]{Long.toString(waypoint.getId()), Long.toString(waypoint.getTrackId())};
try (Cursor cursor = getWaypointCursor(null, selection, selectionArgs, WaypointsColumns._ID, 1)) {
if (cursor != null && cursor.moveToFirst()) {
return createWaypoint(cursor);
}
}
return null;
}
/**
* Gets a waypoint cursor.
*
@@ -925,23 +887,6 @@ public class ContentProviderUtils {
return -1L;
}
/**
* Gets the first valid location for a track.
* Returns null if it doesn't exist.
*
* @param trackId the track id
*/
public Location getFirstValidTrackPoint(long trackId) {
if (trackId < 0) {
return null;
}
String selection = TrackPointsColumns._ID + "=(select min(" + TrackPointsColumns._ID + ") from "
+ TrackPointsColumns.TABLE_NAME + " WHERE " + TrackPointsColumns.TRACKID + "=? AND "
+ TrackPointsColumns.LATITUDE + "<=" + MAX_LATITUDE + ")";
String[] selectionArgs = new String[]{Long.toString(trackId)};
return findTrackPointBy(selection, selectionArgs);
}
/**
* Gets the last valid location for a track.
* Returns null if it doesn't exist.
@@ -1117,9 +1062,11 @@ public class ContentProviderUtils {
values.put(TrackPointsColumns.LONGITUDE, (int) (location.getLongitude() * 1E6));
values.put(TrackPointsColumns.LATITUDE, (int) (location.getLatitude() * 1E6));
// Hack for Samsung phones that don't properly populate the time field
long time = location.getTime();
// TODO: Check if this is really necessary!
// Hack for Samsung phones that don't properly populate the time field
if (time == 0) {
Log.w(TAG, "location has no timestamp; setting current time");
time = System.currentTimeMillis();
}
values.put(TrackPointsColumns.TIME, time);
@@ -34,6 +34,10 @@ import android.util.Log;
import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;
import de.dennisguse.opentracks.content.data.TrackPointsColumns;
import de.dennisguse.opentracks.content.data.TracksColumns;
import de.dennisguse.opentracks.content.data.WaypointsColumns;
/**
* A {@link ContentProvider} that handles access to track points, tracks, and waypoints tables.
*
@@ -25,6 +25,10 @@ import android.util.Log;
import java.util.EnumSet;
import java.util.Set;
import de.dennisguse.opentracks.content.data.TrackPointsColumns;
import de.dennisguse.opentracks.content.data.TracksColumns;
import de.dennisguse.opentracks.content.data.WaypointsColumns;
/**
* Creates observers/listeners and manages their registration with {@link DataSource}.
* The observers/listeners calls {@link DataSourceListener} when data changes.
@@ -1,5 +1,5 @@
/*
* Copyright 2010 Google Inc.
* Copyright 2012 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
@@ -13,16 +13,37 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
package de.dennisguse.opentracks.content;
import android.content.Context;
import android.util.Pair;
import androidx.annotation.VisibleForTesting;
import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.stats.TripStatistics;
import de.dennisguse.opentracks.util.StringUtils;
import de.dennisguse.opentracks.util.UnitConversions;
/**
* An interface for an object that can generate descriptions of track and waypoint.
* Generates descriptions for tracks and waypoints.
*
* @author Sandor Dornbush
* @author Jimmy Shih
*/
public interface DescriptionGenerator {
public class DescriptionGenerator {
private static final String HTML_LINE_BREAK = "<br>";
private static final String HTML_PARAGRAPH_SEPARATOR = "<p>";
private static final String TEXT_LINE_BREAK = "\n";
private static final String TEXT_PARAGRAPH_SEPARATOR = "\n\n";
private Context context;
public DescriptionGenerator(Context context) {
this.context = context;
}
/**
* Generates a track description.
@@ -30,12 +51,205 @@ public interface DescriptionGenerator {
* @param track the track
* @param html true to output html, false to output plain text
*/
String generateTrackDescription(Track track, boolean html);
public String generateTrackDescription(Track track, boolean html) {
String paragraphSeparator = html ? HTML_PARAGRAPH_SEPARATOR : TEXT_PARAGRAPH_SEPARATOR;
String lineBreak = html ? HTML_LINE_BREAK : TEXT_LINE_BREAK;
StringBuilder builder = new StringBuilder();
// Created by
String creator = html
? "<a href='" + context.getString(R.string.app_web_url) + "'>" + context.getString(R.string.app_name) + "</a>"
: context.getString(R.string.app_name);
builder.append(creator);
builder.append(paragraphSeparator);
writeString(track.getName(), builder, R.string.generic_name_line, lineBreak);
writeString(track.getCategory(), builder, R.string.description_activity_type, lineBreak);
writeString(track.getDescription(), builder, R.string.generic_description_line, lineBreak);
builder.append(generateTripStatisticsDescription(track.getTripStatistics(), html));
return builder.toString();
}
/**
* Generate a waypoint description from a trip statistics.
*
* @param tripStatistics the trip statistics
*/
String generateWaypointDescription(TripStatistics tripStatistics);
public String generateWaypointDescription(TripStatistics tripStatistics) {
return generateTripStatisticsDescription(tripStatistics, false);
}
/**
* Writes a string to a string builder.
*
* @param text the string
* @param builder the string builder
* @param resId the resource id containing one string placeholder
* @param lineBreak the line break
*/
private void writeString(String text, StringBuilder builder, int resId, String lineBreak) {
if (text == null || text.length() == 0) {
text = context.getString(R.string.value_unknown);
}
builder.append(context.getString(resId, text));
builder.append(lineBreak);
}
/**
* Generates a description for a {@link TripStatistics}.
*
* @param stats the trip statistics
* @param html true to use "<br>" for line break instead of "\n"
*/
private String generateTripStatisticsDescription(TripStatistics stats, boolean html) {
String lineBreak = html ? HTML_LINE_BREAK : TEXT_LINE_BREAK;
StringBuilder builder = new StringBuilder();
// Total distance
writeDistance(stats.getTotalDistance(), builder, R.string.description_total_distance, lineBreak);
// Total time
writeTime(stats.getTotalTime(), builder, R.string.description_total_time, lineBreak);
// Moving time
writeTime(stats.getMovingTime(), builder, R.string.description_moving_time, lineBreak);
// Average speed
writeSpeed(stats.getAverageSpeed(), builder, R.string.description_average_speed, lineBreak);
// Average moving speed
writeSpeed(stats.getAverageMovingSpeed(), builder, R.string.description_average_moving_speed, lineBreak);
// Max speed
writeSpeed(stats.getMaxSpeed(), builder, R.string.description_max_speed, lineBreak);
// Average pace
writePace(stats.getAverageSpeed(), builder, R.string.description_average_pace_in_minute, lineBreak);
// Average moving pace
writePace(stats.getAverageMovingSpeed(), builder, R.string.description_average_moving_pace_in_minute, lineBreak);
// Fastest pace
writePace(stats.getMaxSpeed(), builder, R.string.description_fastest_pace_in_minute, lineBreak);
// Max elevation
writeElevation(stats.getMaxElevation(), builder, R.string.description_max_elevation, lineBreak);
// Min elevation
writeElevation(stats.getMinElevation(), builder, R.string.description_min_elevation, lineBreak);
// Elevation gain
writeElevation(stats.getTotalElevationGain(), builder, R.string.description_elevation_gain, lineBreak);
// Max grade
writeGrade(stats.getMaxGrade(), builder, R.string.description_max_grade, lineBreak);
// Min grade
writeGrade(stats.getMinGrade(), builder, R.string.description_min_grade, lineBreak);
// Recorded time
builder.append(context.getString(R.string.description_recorded_time, StringUtils.formatDateTime(context, stats.getStartTime())));
builder.append(lineBreak);
return builder.toString();
}
/**
* Writes distance.
*
* @param distance distance in meters
* @param builder StringBuilder to append distance
* @param resId resource id of distance string
* @param lineBreak line break string
*/
@VisibleForTesting
void writeDistance(double distance, StringBuilder builder, int resId, String lineBreak) {
double distanceInKm = distance * UnitConversions.M_TO_KM;
double distanceInMi = distanceInKm * UnitConversions.KM_TO_MI;
builder.append(context.getString(resId, distanceInKm, distanceInMi));
builder.append(lineBreak);
}
/**
* Writes time.
*
* @param time time in milliseconds.
* @param builder StringBuilder to append time
* @param resId resource id of time string
* @param lineBreak line break string
*/
@VisibleForTesting
void writeTime(long time, StringBuilder builder, int resId, String lineBreak) {
builder.append(context.getString(resId, StringUtils.formatElapsedTime(time)));
builder.append(lineBreak);
}
/**
* Writes speed.
*
* @param speed speed in meters per second
* @param builder StringBuilder to append speed
* @param resId resource id of speed string
* @param lineBreak line break string
*/
@VisibleForTesting
void writeSpeed(double speed, StringBuilder builder, int resId, String lineBreak) {
double speedInKmHr = speed * UnitConversions.MS_TO_KMH;
double speedInMiHr = speedInKmHr * UnitConversions.KM_TO_MI;
builder.append(context.getString(resId, speedInKmHr, speedInMiHr));
builder.append(lineBreak);
}
/**
* Writes pace.
*
* @param speed speed in meters per second
* @param builder StringBuilder to append pace
* @param resId resource id of pace string
* @param lineBreak line break string
*/
@VisibleForTesting
void writePace(double speed, StringBuilder builder, int resId, String lineBreak) {
Pair<String, String> paceInMetrics = StringUtils.getSpeedParts(context, speed, true, false);
Pair<String, String> paceInImperial = StringUtils.getSpeedParts(context, speed, false, false);
String formattedPaceMetrics = paceInMetrics.first != null ? paceInMetrics.first : context.getString(R.string.value_unknown);
String formattedPaceImperial = paceInImperial.first != null ? paceInImperial.first : context.getString(R.string.value_unknown);
builder.append(context.getString(resId, formattedPaceMetrics, formattedPaceImperial));
builder.append(lineBreak);
}
/**
* Writes elevation.
*
* @param elevation elevation in meters
* @param builder StringBuilder to append elevation
* @param resId resource id of elevation string
* @param lineBreak line break string
*/
@VisibleForTesting
void writeElevation(double elevation, StringBuilder builder, int resId, String lineBreak) {
long elevationInM = Math.round(elevation);
long elevationInFt = Math.round(elevation * UnitConversions.M_TO_FT);
builder.append(context.getString(resId, elevationInM, elevationInFt));
builder.append(lineBreak);
}
/**
* Writes grade.
*
* @param grade grade in fraction
* @param builder StringBuilder to append grade
* @param resId resource id grade string
* @param lineBreak line break string
*/
@VisibleForTesting
void writeGrade(double grade, StringBuilder builder, int resId, String lineBreak) {
long gradeInPercent = Double.isNaN(grade) || Double.isInfinite(grade) ? 0L : Math.round(grade * 100);
builder.append(context.getString(resId, gradeInPercent));
builder.append(lineBreak);
}
}
@@ -1,243 +0,0 @@
/*
* Copyright 2012 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package de.dennisguse.opentracks.content;
import android.content.Context;
import android.util.Pair;
import androidx.annotation.VisibleForTesting;
import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.stats.TripStatistics;
import de.dennisguse.opentracks.util.StringUtils;
import de.dennisguse.opentracks.util.UnitConversions;
/**
* @author Jimmy Shih
*/
public class DescriptionGeneratorImpl implements DescriptionGenerator {
private static final String HTML_LINE_BREAK = "<br>";
private static final String HTML_PARAGRAPH_SEPARATOR = "<p>";
private static final String TEXT_LINE_BREAK = "\n";
private static final String TEXT_PARAGRAPH_SEPARATOR = "\n\n";
private Context context;
public DescriptionGeneratorImpl(Context context) {
this.context = context;
}
@Override
public String generateTrackDescription(Track track, boolean html) {
String paragraphSeparator = html ? HTML_PARAGRAPH_SEPARATOR : TEXT_PARAGRAPH_SEPARATOR;
String lineBreak = html ? HTML_LINE_BREAK : TEXT_LINE_BREAK;
StringBuilder builder = new StringBuilder();
// Created by
String creator = html
? "<a href='" + context.getString(R.string.app_web_url) + "'>" + context.getString(R.string.app_name) + "</a>"
: context.getString(R.string.app_name);
builder.append(creator);
builder.append(paragraphSeparator);
writeString(track.getName(), builder, R.string.generic_name_line, lineBreak);
writeString(track.getCategory(), builder, R.string.description_activity_type, lineBreak);
writeString(track.getDescription(), builder, R.string.generic_description_line, lineBreak);
builder.append(generateTripStatisticsDescription(track.getTripStatistics(), html));
return builder.toString();
}
@Override
public String generateWaypointDescription(TripStatistics tripStatistics) {
return generateTripStatisticsDescription(tripStatistics, false);
}
/**
* Writes a string to a string builder.
*
* @param text the string
* @param builder the string builder
* @param resId the resource id containing one string placeholder
* @param lineBreak the line break
*/
private void writeString(String text, StringBuilder builder, int resId, String lineBreak) {
if (text == null || text.length() == 0) {
text = context.getString(R.string.value_unknown);
}
builder.append(context.getString(resId, text));
builder.append(lineBreak);
}
/**
* Generates a description for a {@link TripStatistics}.
*
* @param stats the trip statistics
* @param html true to use "<br>" for line break instead of "\n"
*/
private String generateTripStatisticsDescription(TripStatistics stats, boolean html) {
String lineBreak = html ? HTML_LINE_BREAK : TEXT_LINE_BREAK;
StringBuilder builder = new StringBuilder();
// Total distance
writeDistance(stats.getTotalDistance(), builder, R.string.description_total_distance, lineBreak);
// Total time
writeTime(stats.getTotalTime(), builder, R.string.description_total_time, lineBreak);
// Moving time
writeTime(stats.getMovingTime(), builder, R.string.description_moving_time, lineBreak);
// Average speed
writeSpeed(stats.getAverageSpeed(), builder, R.string.description_average_speed, lineBreak);
// Average moving speed
writeSpeed(stats.getAverageMovingSpeed(), builder, R.string.description_average_moving_speed, lineBreak);
// Max speed
writeSpeed(stats.getMaxSpeed(), builder, R.string.description_max_speed, lineBreak);
// Average pace
writePace(stats.getAverageSpeed(), builder, R.string.description_average_pace_in_minute, lineBreak);
// Average moving pace
writePace(stats.getAverageMovingSpeed(), builder, R.string.description_average_moving_pace_in_minute, lineBreak);
// Fastest pace
writePace(stats.getMaxSpeed(), builder, R.string.description_fastest_pace_in_minute, lineBreak);
// Max elevation
writeElevation(stats.getMaxElevation(), builder, R.string.description_max_elevation, lineBreak);
// Min elevation
writeElevation(stats.getMinElevation(), builder, R.string.description_min_elevation, lineBreak);
// Elevation gain
writeElevation(stats.getTotalElevationGain(), builder, R.string.description_elevation_gain, lineBreak);
// Max grade
writeGrade(stats.getMaxGrade(), builder, R.string.description_max_grade, lineBreak);
// Min grade
writeGrade(stats.getMinGrade(), builder, R.string.description_min_grade, lineBreak);
// Recorded time
builder.append(context.getString(R.string.description_recorded_time, StringUtils.formatDateTime(context, stats.getStartTime())));
builder.append(lineBreak);
return builder.toString();
}
/**
* Writes distance.
*
* @param distance distance in meters
* @param builder StringBuilder to append distance
* @param resId resource id of distance string
* @param lineBreak line break string
*/
@VisibleForTesting
void writeDistance(double distance, StringBuilder builder, int resId, String lineBreak) {
double distanceInKm = distance * UnitConversions.M_TO_KM;
double distanceInMi = distanceInKm * UnitConversions.KM_TO_MI;
builder.append(context.getString(resId, distanceInKm, distanceInMi));
builder.append(lineBreak);
}
/**
* Writes time.
*
* @param time time in milliseconds.
* @param builder StringBuilder to append time
* @param resId resource id of time string
* @param lineBreak line break string
*/
@VisibleForTesting
void writeTime(long time, StringBuilder builder, int resId, String lineBreak) {
builder.append(context.getString(resId, StringUtils.formatElapsedTime(time)));
builder.append(lineBreak);
}
/**
* Writes speed.
*
* @param speed speed in meters per second
* @param builder StringBuilder to append speed
* @param resId resource id of speed string
* @param lineBreak line break string
*/
@VisibleForTesting
void writeSpeed(double speed, StringBuilder builder, int resId, String lineBreak) {
double speedInKmHr = speed * UnitConversions.MS_TO_KMH;
double speedInMiHr = speedInKmHr * UnitConversions.KM_TO_MI;
builder.append(context.getString(resId, speedInKmHr, speedInMiHr));
builder.append(lineBreak);
}
/**
* Writes pace.
*
* @param speed speed in meters per second
* @param builder StringBuilder to append pace
* @param resId resource id of pace string
* @param lineBreak line break string
*/
@VisibleForTesting
void writePace(double speed, StringBuilder builder, int resId, String lineBreak) {
Pair<String, String> paceInMetrics = StringUtils.getSpeedParts(context, speed, true, false);
Pair<String, String> paceInImperial = StringUtils.getSpeedParts(context, speed, false, false);
String formattedPaceMetrics = paceInMetrics.first != null ? paceInMetrics.first : context.getString(R.string.value_unknown);
String formattedPaceImperial = paceInImperial.first != null ? paceInImperial.first : context.getString(R.string.value_unknown);
builder.append(context.getString(resId, formattedPaceMetrics, formattedPaceImperial));
builder.append(lineBreak);
}
/**
* Writes elevation.
*
* @param elevation elevation in meters
* @param builder StringBuilder to append elevation
* @param resId resource id of elevation string
* @param lineBreak line break string
*/
@VisibleForTesting
void writeElevation(double elevation, StringBuilder builder, int resId, String lineBreak) {
long elevationInM = Math.round(elevation);
long elevationInFt = Math.round(elevation * UnitConversions.M_TO_FT);
builder.append(context.getString(resId, elevationInM, elevationInFt));
builder.append(lineBreak);
}
/**
* Writes grade.
*
* @param grade grade in fraction
* @param builder StringBuilder to append grade
* @param resId resource id grade string
* @param lineBreak line break string
*/
@VisibleForTesting
void writeGrade(double grade, StringBuilder builder, int resId, String lineBreak) {
long gradeInPercent = Double.isNaN(grade) || Double.isInfinite(grade) ? 0L : Math.round(grade * 100);
builder.append(context.getString(resId, gradeInPercent));
builder.append(lineBreak);
}
}
@@ -28,6 +28,10 @@ import java.util.Locale;
import java.util.SortedSet;
import java.util.TreeSet;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.content.data.TracksColumns;
import de.dennisguse.opentracks.content.data.Waypoint;
import de.dennisguse.opentracks.content.data.WaypointsColumns;
import de.dennisguse.opentracks.stats.TripStatistics;
import de.dennisguse.opentracks.util.LocationUtils;
import de.dennisguse.opentracks.util.UnitConversions;
@@ -21,6 +21,8 @@ import java.io.IOException;
import java.util.Arrays;
import de.dennisguse.opentracks.android.IContentResolver;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.content.data.TracksColumns;
import de.dennisguse.opentracks.io.file.TrackFileFormat;
import de.dennisguse.opentracks.io.file.exporter.TrackExporter;
@@ -30,6 +30,8 @@ import java.util.EnumSet;
import java.util.Set;
import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.content.data.Waypoint;
import de.dennisguse.opentracks.util.LocationUtils;
import de.dennisguse.opentracks.util.PreferencesUtils;
@@ -18,6 +18,9 @@ package de.dennisguse.opentracks.content;
import android.location.Location;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.content.data.Waypoint;
/**
* Listener for track data changes.
*
@@ -1,84 +0,0 @@
/*
* Copyright 2010 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package de.dennisguse.opentracks.content;
import de.dennisguse.opentracks.content.Waypoint.WaypointType;
/**
* A request for the service to create a waypoint at the current location.
*
* @author Sandor Dornbush
*/
public class WaypointCreationRequest {
public final static WaypointCreationRequest DEFAULT_WAYPOINT = new WaypointCreationRequest(WaypointType.WAYPOINT, false);
@Deprecated // TODO Do not create per
public final static WaypointCreationRequest DEFAULT_START_TRACK = new WaypointCreationRequest(WaypointType.STATISTICS, true);
private WaypointType type;
// true if this marker contains the track statistics
private boolean isTrackStatistics;
private String name;
private String category;
private String description;
private String iconUrl;
private String photoUrl;
private WaypointCreationRequest(WaypointType type, boolean isTrackStatistics) {
this(type, isTrackStatistics, null, null, null, null, null);
}
public WaypointCreationRequest(WaypointType type, boolean isTrackStatistics, String name, String category, String description, String iconUrl, String photoUrl) {
this.type = type;
this.isTrackStatistics = isTrackStatistics;
this.name = name;
this.category = category;
this.description = description;
this.iconUrl = iconUrl;
this.photoUrl = photoUrl;
}
public WaypointType getType() {
return type;
}
public boolean isTrackStatistics() {
return isTrackStatistics;
}
public String getName() {
return name;
}
public String getCategory() {
return category;
}
public String getDescription() {
return description;
}
public String getIconUrl() {
return iconUrl;
}
public String getPhotoUrl() {
return photoUrl;
}
}
@@ -14,7 +14,7 @@
* the License.
*/
package de.dennisguse.opentracks.content;
package de.dennisguse.opentracks.content.data;
import android.location.Location;
@@ -14,11 +14,13 @@
* the License.
*/
package de.dennisguse.opentracks.content;
package de.dennisguse.opentracks.content.data;
import android.net.Uri;
import android.provider.BaseColumns;
import de.dennisguse.opentracks.content.ContentProviderUtils;
/**
* Constants for the track points table.
*
@@ -14,11 +14,13 @@
* the License.
*/
package de.dennisguse.opentracks.content;
package de.dennisguse.opentracks.content.data;
import android.net.Uri;
import android.provider.BaseColumns;
import de.dennisguse.opentracks.content.ContentProviderUtils;
/**
* Constants for the tracks table.
*
@@ -14,7 +14,7 @@
* the License.
*/
package de.dennisguse.opentracks.content;
package de.dennisguse.opentracks.content.data;
import android.location.Location;
import android.net.Uri;
@@ -35,7 +35,6 @@ public final class Waypoint {
private String category = "";
private String icon = "";
private long trackId = -1L;
private WaypointType type = WaypointType.WAYPOINT;
private double length = 0.0;
private long duration = 0;
private long startId = -1L;
@@ -47,13 +46,12 @@ public final class Waypoint {
public Waypoint() {
}
public Waypoint(String name, String description, String category, String icon, long trackId, WaypointType type, double length, long duration, long startId, long stopId, Location location, TripStatistics tripStatistics, String photoUrl) {
public Waypoint(String name, String description, String category, String icon, long trackId, double length, long duration, long startId, long stopId, Location location, TripStatistics tripStatistics, String photoUrl) {
this.name = name;
this.description = description;
this.category = category;
this.icon = icon;
this.trackId = trackId;
this.type = type;
this.length = length;
this.duration = duration;
this.startId = startId;
@@ -111,14 +109,6 @@ public final class Waypoint {
this.trackId = trackId;
}
public WaypointType getType() {
return type;
}
public void setType(WaypointType type) {
this.type = type;
}
public double getLength() {
return length;
}
@@ -186,9 +176,4 @@ public final class Waypoint {
public boolean hasPhoto() {
return photoUrl != null && !"".equals(photoUrl);
}
public enum WaypointType {
WAYPOINT,
STATISTICS //Always the first waypoint; only one can exist.
}
}
@@ -14,11 +14,13 @@
* the License.
*/
package de.dennisguse.opentracks.content;
package de.dennisguse.opentracks.content.data;
import android.net.Uri;
import android.provider.BaseColumns;
import de.dennisguse.opentracks.content.ContentProviderUtils;
/**
* Constants for waypoints table.
*
@@ -38,7 +40,8 @@ public interface WaypointsColumns extends BaseColumns {
String CATEGORY = "category"; // waypoint category
String ICON = "icon"; // waypoint icon
String TRACKID = "trackid"; // track id
String TYPE = "type"; // type
@Deprecated //Unused
String TYPE = "type"; // type
String LENGTH = "length"; // length of the track (without smoothing)
String DURATION = "duration"; // total duration of the track (not from last waypoint)
String STARTTIME = "starttime"; // start time of the trip statistics
@@ -37,11 +37,11 @@ import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.TrackDetailActivity;
import de.dennisguse.opentracks.chart.ChartView;
import de.dennisguse.opentracks.content.SensorDataSetLocation;
import de.dennisguse.opentracks.content.Track;
import de.dennisguse.opentracks.content.TrackDataHub;
import de.dennisguse.opentracks.content.TrackDataListener;
import de.dennisguse.opentracks.content.TrackDataType;
import de.dennisguse.opentracks.content.Waypoint;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.content.data.Waypoint;
import de.dennisguse.opentracks.content.sensor.SensorDataSet;
import de.dennisguse.opentracks.stats.TripStatistics;
import de.dennisguse.opentracks.stats.TripStatisticsUpdater;
@@ -28,7 +28,6 @@ import androidx.fragment.app.FragmentManager;
import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.content.ContentProviderUtils;
import de.dennisguse.opentracks.content.DescriptionGeneratorImpl;
import de.dennisguse.opentracks.util.DialogUtils;
/**
@@ -83,8 +82,7 @@ public class DeleteMarkerDialogFragment extends DialogFragment {
public void run() {
ContentProviderUtils contentProviderUtils = new ContentProviderUtils(fragmentActivity);
for (long markerId : markerIds) {
contentProviderUtils.deleteWaypoint(fragmentActivity,
markerId, new DescriptionGeneratorImpl(fragmentActivity));
contentProviderUtils.deleteWaypoint(fragmentActivity, markerId);
}
caller.onDeleteMarkerDone();
}
@@ -41,7 +41,7 @@ import androidx.fragment.app.FragmentActivity;
import de.dennisguse.opentracks.MarkerEditActivity;
import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.content.ContentProviderUtils;
import de.dennisguse.opentracks.content.Waypoint;
import de.dennisguse.opentracks.content.data.Waypoint;
import de.dennisguse.opentracks.util.IntentUtils;
import de.dennisguse.opentracks.util.ListItemUtils;
import de.dennisguse.opentracks.util.MarkerUtils;
@@ -37,11 +37,11 @@ import java.util.EnumSet;
import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.TrackDetailActivity;
import de.dennisguse.opentracks.content.Track;
import de.dennisguse.opentracks.content.TrackDataHub;
import de.dennisguse.opentracks.content.TrackDataListener;
import de.dennisguse.opentracks.content.TrackDataType;
import de.dennisguse.opentracks.content.Waypoint;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.content.data.Waypoint;
import de.dennisguse.opentracks.content.sensor.SensorDataSet;
import de.dennisguse.opentracks.services.ITrackRecordingService;
import de.dennisguse.opentracks.services.TrackRecordingServiceConnection;
@@ -239,7 +239,7 @@ public class StatsFragment extends Fragment implements TrackDataListener {
public void onStop() {
super.onStop();
if (trackRecordingServiceConnection != null) {
trackRecordingServiceConnection.unbind();
trackRecordingServiceConnection.unbind(getContext());
}
trackRecordingServiceConnection = null;
}
@@ -6,7 +6,7 @@ import java.util.Locale;
import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.content.ContentProviderUtils;
import de.dennisguse.opentracks.content.Track;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.io.file.exporter.FileTrackExporter;
import de.dennisguse.opentracks.io.file.exporter.GpxTrackWriter;
import de.dennisguse.opentracks.io.file.exporter.KmlTrackWriter;
@@ -28,8 +28,8 @@ import java.io.FileOutputStream;
import java.io.IOException;
import de.dennisguse.opentracks.content.ContentProviderUtils;
import de.dennisguse.opentracks.content.Track;
import de.dennisguse.opentracks.content.TracksColumns;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.content.data.TracksColumns;
import de.dennisguse.opentracks.io.file.TrackFileFormat;
import de.dennisguse.opentracks.util.FileUtils;
import de.dennisguse.opentracks.util.PreferencesUtils;
@@ -29,8 +29,8 @@ import de.dennisguse.opentracks.content.ContentProviderUtils;
import de.dennisguse.opentracks.content.LocationFactory;
import de.dennisguse.opentracks.content.LocationIterator;
import de.dennisguse.opentracks.content.SensorDataSetLocation;
import de.dennisguse.opentracks.content.Track;
import de.dennisguse.opentracks.content.Waypoint;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.content.data.Waypoint;
import de.dennisguse.opentracks.util.LocationUtils;
/**
@@ -99,7 +99,6 @@ public class FileTrackExporter implements TrackExporter {
boolean hasWaypoints = false;
try (Cursor cursor = contentProviderUtils.getWaypointCursor(track.getId(), -1L, ContentProviderUtils.MAX_LOADED_WAYPOINTS_POINTS)) {
if (cursor != null && cursor.moveToFirst()) {
// Intentionally skip first waypoint (contains statistics).
for (int i = 0; i < cursor.getCount(); i++) {
if (Thread.interrupted()) {
throw new InterruptedException();
@@ -23,8 +23,8 @@ import java.io.PrintWriter;
import java.text.NumberFormat;
import java.util.Locale;
import de.dennisguse.opentracks.content.Track;
import de.dennisguse.opentracks.content.Waypoint;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.content.data.Waypoint;
import de.dennisguse.opentracks.util.StringUtils;
/**
@@ -119,12 +119,9 @@ public class GpxTrackWriter implements TrackWriter {
if (location.hasAltitude()) {
printWriter.println("<ele>" + ELEVATION_FORMAT.format(location.getAltitude()) + "</ele>");
}
printWriter.println(
"<time>" + StringUtils.formatDateTimeIso8601(location.getTime()) + "</time>");
printWriter.println("<time>" + StringUtils.formatDateTimeIso8601(location.getTime()) + "</time>");
printWriter.println("<name>" + StringUtils.formatCData(waypoint.getName()) + "</name>");
printWriter.println("<cmt>" + StringUtils.formatCData(waypoint.getType().name()) + "</cmt>");
printWriter.println(
"<desc>" + StringUtils.formatCData(waypoint.getDescription()) + "</desc>");
printWriter.println("<desc>" + StringUtils.formatCData(waypoint.getDescription()) + "</desc>");
printWriter.println("<type>" + StringUtils.formatCData(waypoint.getCategory()) + "</type>");
printWriter.println("</wpt>");
}
@@ -28,11 +28,9 @@ import java.util.List;
import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.content.ContentProviderUtils;
import de.dennisguse.opentracks.content.DescriptionGenerator;
import de.dennisguse.opentracks.content.DescriptionGeneratorImpl;
import de.dennisguse.opentracks.content.SensorDataSetLocation;
import de.dennisguse.opentracks.content.Track;
import de.dennisguse.opentracks.content.Waypoint;
import de.dennisguse.opentracks.content.Waypoint.WaypointType;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.content.data.Waypoint;
import de.dennisguse.opentracks.content.sensor.SensorDataSet;
import de.dennisguse.opentracks.util.StringUtils;
@@ -43,19 +41,17 @@ import de.dennisguse.opentracks.util.StringUtils;
*/
public class KmlTrackWriter implements TrackWriter {
private static final String WAYPOINT_STYLE = "waypoint";
private static final String STATISTICS_STYLE = "statistics";
public static final String WAYPOINT_STYLE = "waypoint";
private static final String START_STYLE = "start";
private static final String END_STYLE = "end";
private static final String TRACK_STYLE = "track";
private static final String SCHEMA_ID = "schema";
private static final String SENSOR_TYPE_CADENCE = "cadence";
private static final String SENSOR_TYPE_HEART_RATE = "heart_rate";
private static final String SENSOR_TYPE_POWER = "power";
public static final String SENSOR_TYPE_CADENCE = "cadence";
public static final String SENSOR_TYPE_HEART_RATE = "heart_rate";
public static final String SENSOR_TYPE_POWER = "power";
private static final String WAYPOINT_ICON = "http://maps.google.com/mapfiles/kml/pushpin/blue-pushpin.png";
private static final String STATISTICS_ICON = "http://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png";
private static final String START_ICON = "http://maps.google.com/mapfiles/kml/paddle/grn-circle.png";
private static final String END_ICON = "http://maps.google.com/mapfiles/kml/paddle/red-circle.png";
private static final String TRACK_ICON = "http://earth.google.com/images/kml-icons/track-directional/track-0.png";
@@ -88,7 +84,7 @@ public class KmlTrackWriter implements TrackWriter {
this.exportTrackDetail = exportTrackDetail;
this.exportSensorData = exportSensorData;
this.exportPhotos = exportPhotos;
this.descriptionGenerator = new DescriptionGeneratorImpl(context);
this.descriptionGenerator = new DescriptionGenerator(context);
this.contentProviderUtils = new ContentProviderUtils(context);
}
@@ -125,7 +121,6 @@ public class KmlTrackWriter implements TrackWriter {
writeTrackStyle();
writePlacemarkerStyle(START_STYLE, START_ICON, 32, 1);
writePlacemarkerStyle(END_STYLE, END_ICON, 32, 1);
writePlacemarkerStyle(STATISTICS_STYLE, STATISTICS_ICON, 20, 2);
writePlacemarkerStyle(WAYPOINT_STYLE, WAYPOINT_ICON, 20, 2);
printWriter.println("<Schema id=\"" + SCHEMA_ID + "\">");
@@ -167,13 +162,11 @@ public class KmlTrackWriter implements TrackWriter {
@Override
public void writeWaypoint(Waypoint waypoint) {
if (printWriter != null && exportTrackDetail) {
String styleName = waypoint.getType() == WaypointType.STATISTICS ? STATISTICS_STYLE : WAYPOINT_STYLE;
if (waypoint.hasPhoto() && exportPhotos) {
float heading = getHeading(waypoint.getTrackId(), waypoint.getLocation());
writePhotoOverlay(waypoint.getName(), waypoint.getCategory(), waypoint.getDescription(), styleName, waypoint.getLocation(), waypoint.getPhotoUrl(), heading);
writePhotoOverlay(waypoint.getName(), waypoint.getCategory(), waypoint.getDescription(), WAYPOINT_STYLE, waypoint.getLocation(), waypoint.getPhotoUrl(), heading);
} else {
writePlacemark(waypoint.getName(), waypoint.getCategory(), waypoint.getDescription(), styleName, waypoint.getLocation());
writePlacemark(waypoint.getName(), waypoint.getCategory(), waypoint.getDescription(), WAYPOINT_STYLE, waypoint.getLocation());
}
}
}
@@ -205,6 +198,7 @@ public class KmlTrackWriter implements TrackWriter {
if (exportTrackDetail) {
printWriter.println("<name>" + StringUtils.formatCData(track.getName()) + "</name>");
printWriter.println("<description>" + StringUtils.formatCData(track.getDescription()) + "</description>");
printWriter.println("<icon>" + StringUtils.formatCData(track.getIcon()) + "</icon>");
}
printWriter.println("<styleUrl>#" + TRACK_STYLE + "</styleUrl>");
@@ -32,8 +32,8 @@ import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import de.dennisguse.opentracks.content.ContentProviderUtils;
import de.dennisguse.opentracks.content.Track;
import de.dennisguse.opentracks.content.Waypoint;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.content.data.Waypoint;
import de.dennisguse.opentracks.util.FileUtils;
/**
@@ -19,8 +19,8 @@ import android.location.Location;
import java.io.OutputStream;
import de.dennisguse.opentracks.content.Track;
import de.dennisguse.opentracks.content.Waypoint;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.content.data.Waypoint;
/**
* Interface for writing tracks to a file. The expected sequence of calls is:
@@ -39,12 +39,10 @@ import javax.xml.parsers.SAXParserFactory;
import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.content.ContentProviderUtils;
import de.dennisguse.opentracks.content.DescriptionGeneratorImpl;
import de.dennisguse.opentracks.content.LocationFactory;
import de.dennisguse.opentracks.content.LocationIterator;
import de.dennisguse.opentracks.content.Track;
import de.dennisguse.opentracks.content.Waypoint;
import de.dennisguse.opentracks.content.Waypoint.WaypointType;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.content.data.Waypoint;
import de.dennisguse.opentracks.services.TrackRecordingService;
import de.dennisguse.opentracks.stats.TripStatistics;
import de.dennisguse.opentracks.stats.TripStatisticsUpdater;
@@ -71,12 +69,13 @@ abstract class AbstractFileTrackImporter extends DefaultHandler implements Track
private final ContentProviderUtils contentProviderUtils;
private final int recordingDistanceInterval;
private final List<Long> trackIds;
private final List<Waypoint> waypoints;
private final List<Long> trackIds = new ArrayList<>();
private final List<Waypoint> waypoints = new ArrayList<>();
// The current element content
//TODO Should be made private and getter be used by child classes.
protected String content;
protected String icon;
protected String name;
protected String description;
protected String category;
@@ -104,8 +103,6 @@ abstract class AbstractFileTrackImporter extends DefaultHandler implements Track
this.importTrackId = importTrackId;
this.contentProviderUtils = contentProviderUtils;
this.recordingDistanceInterval = PreferencesUtils.getRecordingDistanceInterval(context);
trackIds = new ArrayList<>();
waypoints = new ArrayList<>();
}
@Override
@@ -177,6 +174,7 @@ abstract class AbstractFileTrackImporter extends DefaultHandler implements Track
return;
}
}
if (location == null) {
if (!locationIterator.hasNext()) {
// No more track points. Ignore the rest of the waypoints.
@@ -186,9 +184,11 @@ abstract class AbstractFileTrackImporter extends DefaultHandler implements Track
trackTripStatisticstrackUpdater.addLocation(location, recordingDistanceInterval);
markerTripStatisticsUpdater.addLocation(location, recordingDistanceInterval);
}
if (waypoint.getLocation().getTime() > location.getTime()) {
location = null;
} else if (waypoint.getLocation().getTime() < location.getTime()) {
Log.w(TAG, "Ignoring waypoint: current location was after waypoint.");
waypoint = null;
} else {
// The waypoint location time matches the track point time
@@ -201,27 +201,14 @@ abstract class AbstractFileTrackImporter extends DefaultHandler implements Track
// Valid location
if (location.getLatitude() == waypoint.getLocation().getLatitude() && location.getLongitude() == waypoint.getLocation().getLongitude()) {
// Get tripStatistics, description, and icon
TripStatistics tripStatistics;
String waypointDescription;
String icon;
if (waypoint.getType() == WaypointType.STATISTICS) {
tripStatistics = markerTripStatisticsUpdater.getTripStatistics();
markerTripStatisticsUpdater = new TripStatisticsUpdater(location.getTime());
waypointDescription = new DescriptionGeneratorImpl(context).generateWaypointDescription(tripStatistics);
icon = context.getString(R.string.marker_statistics_icon_url);
} else {
tripStatistics = null;
waypointDescription = waypoint.getDescription();
icon = context.getString(R.string.marker_waypoint_icon_url);
}
// Get length and duration
TripStatistics tripStatistics = null;
String waypointDescription = waypoint.getDescription();
String icon = context.getString(R.string.marker_waypoint_icon_url);
double length = trackTripStatisticstrackUpdater.getTripStatistics().getTotalDistance();
long duration = trackTripStatisticstrackUpdater.getTripStatistics().getTotalTime();
// Insert waypoint
Waypoint newWaypoint = new Waypoint(waypoint.getName(), waypointDescription, waypoint.getCategory(), icon, track.getId(), waypoint.getType(), length, duration, -1L, -1L, location, tripStatistics, waypoint.getPhotoUrl());
Waypoint newWaypoint = new Waypoint(waypoint.getName(), waypointDescription, waypoint.getCategory(), icon, track.getId(), length, duration, -1L, -1L, location, tripStatistics, waypoint.getPhotoUrl());
contentProviderUtils.insertWaypoint(newWaypoint);
}
@@ -265,7 +252,12 @@ abstract class AbstractFileTrackImporter extends DefaultHandler implements Track
}
if (category != null) {
trackData.track.setCategory(category);
trackData.track.setIcon(TrackIconUtils.getIconValue(context, category));
//TODO remove when GPX and KML support reading this property.
if (icon == null)
trackData.track.setIcon(TrackIconUtils.getIconValue(context, category));
}
if (icon != null) {
trackData.track.setIcon(icon);
}
if (trackData.tripStatisticsUpdater == null) {
trackData.tripStatisticsUpdater = new TripStatisticsUpdater(trackData.importTime);
@@ -274,7 +266,6 @@ abstract class AbstractFileTrackImporter extends DefaultHandler implements Track
trackData.track.setTripStatistics(trackData.tripStatisticsUpdater.getTripStatistics());
trackData.track.setNumberOfPoints(trackData.numberOfLocations);
contentProviderUtils.updateTrack(trackData.track);
insertFirstWaypoint(trackData.track);
}
/**
@@ -292,10 +283,8 @@ abstract class AbstractFileTrackImporter extends DefaultHandler implements Track
/**
* Adds a waypoint.
*
* @param type the waypoint type
*/
protected void addWaypoint(WaypointType type) throws SAXException {
protected void addWaypoint() throws SAXException {
// Waypoint must have a time, else cannot match to the track points
if (time == null) {
return;
@@ -318,7 +307,6 @@ abstract class AbstractFileTrackImporter extends DefaultHandler implements Track
if (category != null) {
waypoint.setCategory(category);
}
waypoint.setType(type);
if (photoUrl != null) {
waypoint.setPhotoUrl(photoUrl);
@@ -500,27 +488,6 @@ abstract class AbstractFileTrackImporter extends DefaultHandler implements Track
data.track.setStopId(contentProviderUtils.getLastTrackPointId(data.track.getId()));
}
/**
* Inserts the first waypoint, the track statistics waypoint.
*
* @param track the track
*/
private void insertFirstWaypoint(Track track) {
String waypointName = context.getString(R.string.marker_split_name_format, 0);
String waypointCategory = "";
TripStatisticsUpdater updater = new TripStatisticsUpdater(track.getTripStatistics().getStartTime());
TripStatistics tripStatistics = updater.getTripStatistics();
String waypointDescription = new DescriptionGeneratorImpl(context).generateWaypointDescription(tripStatistics);
String icon = context.getString(R.string.marker_statistics_icon_url);
double length = 0.0;
long duration = 0L;
Location waypointLocation = new Location("");
waypointLocation.setLatitude(100);
waypointLocation.setLongitude(180);
Waypoint waypoint = new Waypoint(waypointName, waypointDescription, waypointCategory, icon, track.getId(), WaypointType.STATISTICS, length, duration, -1L, -1L, waypointLocation, tripStatistics, "");
contentProviderUtils.insertWaypoint(waypoint);
}
/**
* Cleans up import.
*/
@@ -535,6 +502,7 @@ abstract class AbstractFileTrackImporter extends DefaultHandler implements Track
*
* @author Jimmy Shih
*/
// TODO Why private inner class?
private class TrackData {
// The current track
Track track = new Track();
@@ -25,7 +25,6 @@ import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import de.dennisguse.opentracks.content.ContentProviderUtils;
import de.dennisguse.opentracks.content.Waypoint.WaypointType;
/**
* Imports a GPX file.
@@ -184,6 +183,6 @@ public class GpxFileTrackImporter extends AbstractFileTrackImporter {
* On waypoint end.
*/
private void onWaypointEnd() throws SAXException {
addWaypoint(WaypointType.STATISTICS.name().equals(waypointType) ? WaypointType.STATISTICS : WaypointType.WAYPOINT);
addWaypoint();
}
}
@@ -29,7 +29,7 @@ import java.util.ArrayList;
import java.util.List;
import de.dennisguse.opentracks.content.ContentProviderUtils;
import de.dennisguse.opentracks.content.Track;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.io.file.TrackFileFormat;
import de.dennisguse.opentracks.util.FileUtils;
import de.dennisguse.opentracks.util.PreferencesUtils;
@@ -30,8 +30,8 @@ import java.util.ArrayList;
import de.dennisguse.opentracks.content.ContentProviderUtils;
import de.dennisguse.opentracks.content.SensorDataSetLocation;
import de.dennisguse.opentracks.content.Waypoint.WaypointType;
import de.dennisguse.opentracks.content.sensor.SensorDataSet;
import de.dennisguse.opentracks.io.file.exporter.KmlTrackWriter;
/**
* Imports a KML file.
@@ -42,15 +42,11 @@ public class KmlFileTrackImporter extends AbstractFileTrackImporter {
private static final String TAG = KmlFileTrackImporter.class.getSimpleName();
private static final String CADENCE = "cadence";
private static final String HEART_RATE = "heart_rate";
private static final String POWER = "power";
private static final String STATISTICS_STYLE = "#statistics";
private static final String WAYPOINT_STYLE = "#waypoint";
private static final String WAYPOINT_STYLE = "#" + KmlTrackWriter.WAYPOINT_STYLE;
private static final String TAG_COORDINATES = "coordinates";
private static final String TAG_DESCRIPTION = "description";
private static final String TAG_ICON = "icon";
private static final String TAG_GX_COORD = "gx:coord";
private static final String TAG_GX_MULTI_TRACK = "gx:MultiTrack";
private static final String TAG_GX_SIMPLE_ARRAY_DATA = "gx:SimpleArrayData";
@@ -140,6 +136,10 @@ public class KmlFileTrackImporter extends AbstractFileTrackImporter {
if (content != null) {
description = content.trim();
}
} else if (localName.equals(TAG_ICON)) {
if (content != null) {
icon = content.trim();
}
} else if (localName.equals(TAG_VALUE)) {
if (content != null) {
category = content.trim();
@@ -168,6 +168,7 @@ public class KmlFileTrackImporter extends AbstractFileTrackImporter {
private void onWaypointStart() {
// Reset all Placemark variables
name = null;
icon = null;
description = null;
category = null;
photoUrl = null;
@@ -182,29 +183,16 @@ public class KmlFileTrackImporter extends AbstractFileTrackImporter {
* On waypoint end.
*/
private void onWaypointEnd() throws SAXException {
if (waypointType == null) {
if (!WAYPOINT_STYLE.equals(waypointType)) {
return;
}
// Add a waypoint if the waypointType matches
WaypointType type;
switch (waypointType) {
case WAYPOINT_STYLE:
type = WaypointType.WAYPOINT;
break;
case STATISTICS_STYLE:
type = WaypointType.STATISTICS;
break;
default:
return;
}
if (photoUrl != null) {
Uri uri = Uri.parse(photoUrl);
photoUrl = getPhotoUrl(uri.getLastPathSegment());
}
addWaypoint(type);
addWaypoint();
}
/**
@@ -315,13 +303,13 @@ public class KmlFileTrackImporter extends AbstractFileTrackImporter {
throw new SAXException(createErrorMessage("Unable to parse gx:value:" + content), e);
}
switch (sensorType) {
case POWER:
case KmlTrackWriter.SENSOR_TYPE_POWER:
powerList.add(value);
break;
case HEART_RATE:
case KmlTrackWriter.SENSOR_TYPE_HEART_RATE:
heartRateList.add(value);
break;
case CADENCE:
case KmlTrackWriter.SENSOR_TYPE_CADENCE:
cadenceList.add(value);
break;
default:
@@ -19,7 +19,6 @@ import android.location.Location;
import androidx.annotation.VisibleForTesting;
import de.dennisguse.opentracks.content.WaypointCreationRequest;
import de.dennisguse.opentracks.content.sensor.SensorDataSet;
/**
@@ -83,10 +82,9 @@ public interface ITrackRecordingService {
/**
* Inserts a waypoint in the current recording track.
*
* @param request the details of the waypoint to be inserted
* @return the ID of the inserted waypoint
*/
long insertWaypoint(WaypointCreationRequest request);
long insertWaypoint(String name, String category, String description, String photoUrl);
/**
* ONLY FOR TESTING
@@ -47,9 +47,8 @@ import de.dennisguse.opentracks.content.CustomContentProvider;
import de.dennisguse.opentracks.content.LocationFactory;
import de.dennisguse.opentracks.content.LocationIterator;
import de.dennisguse.opentracks.content.SensorDataSetLocation;
import de.dennisguse.opentracks.content.Track;
import de.dennisguse.opentracks.content.Waypoint;
import de.dennisguse.opentracks.content.WaypointCreationRequest;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.content.data.Waypoint;
import de.dennisguse.opentracks.content.sensor.SensorDataSet;
import de.dennisguse.opentracks.services.sensors.BluetoothRemoteSensorManager;
import de.dennisguse.opentracks.services.tasks.AnnouncementPeriodicTaskFactory;
@@ -292,50 +291,38 @@ public class TrackRecordingService extends Service {
/**
* Inserts a waypoint.
*
* @param waypointCreationRequest the waypoint creation request
* @return the waypoint id
*/
public long insertWaypoint(WaypointCreationRequest waypointCreationRequest) {
public long insertWaypoint(String name, String category, String description, String photoUrl) {
if (!isRecording() || isPaused()) {
return -1L;
}
String name = waypointCreationRequest.getName();
if (name == null) {
int nextWaypointNumber = contentProviderUtils.getNextWaypointNumber(recordingTrackId, waypointCreationRequest.getType());
int nextWaypointNumber = contentProviderUtils.getNextWaypointNumber(recordingTrackId);
if (nextWaypointNumber == -1) {
nextWaypointNumber = 0;
nextWaypointNumber = 1;
}
name = getString(R.string.marker_name_format, nextWaypointNumber);
name = getString(R.string.marker_name_format, nextWaypointNumber + 1);
}
String category = waypointCreationRequest.getCategory() != null ? waypointCreationRequest.getCategory() : "";
String description = waypointCreationRequest.getDescription() != null ? waypointCreationRequest.getDescription() : "";
String icon = getString(R.string.marker_waypoint_icon_url);
double length;
long duration;
Location location = getLastValidTrackPointInCurrentSegment(recordingTrackId);
if (location != null && trackTripStatisticsUpdater != null) {
TripStatistics stats = trackTripStatisticsUpdater.getTripStatistics();
length = stats.getTotalDistance();
duration = stats.getTotalTime();
} else {
if (!waypointCreationRequest.isTrackStatistics()) {
return -1L;
}
// For track statistics, make it an impossible location
location = new Location("");
location.setLatitude(100);
location.setLongitude(180);
length = 0.0;
duration = 0L;
if (location == null) {
Log.i(TAG, "Could not create a waypoint as location is unknown.");
return -1L;
}
String photoUrl = waypointCreationRequest.getPhotoUrl() != null ? waypointCreationRequest.getPhotoUrl() : "";
category = category != null ? category : "";
description = description != null ? description : "";
String icon = getString(R.string.marker_waypoint_icon_url);
photoUrl = photoUrl != null ? photoUrl : "";
TripStatistics stats = trackTripStatisticsUpdater.getTripStatistics();
double length = stats.getTotalDistance();
long duration = stats.getTotalTime();
// Insert waypoint
Waypoint waypoint = new Waypoint(name, description, category, icon, recordingTrackId, waypointCreationRequest.getType(), length, duration, -1L, -1L, location, null, photoUrl);
Waypoint waypoint = new Waypoint(name, description, category, icon, recordingTrackId, length, duration, -1L, -1L, location, null, photoUrl);
Uri uri = contentProviderUtils.insertWaypoint(waypoint);
return Long.parseLong(uri.getLastPathSegment());
}
@@ -371,9 +358,6 @@ public class TrackRecordingService extends Service {
track.setTripStatistics(trackTripStatisticsUpdater.getTripStatistics());
contentProviderUtils.updateTrack(track);
//TODO Do not use insertWaypoint
insertWaypoint(WaypointCreationRequest.DEFAULT_START_TRACK);
startRecording(true);
return trackId;
}
@@ -892,8 +876,8 @@ public class TrackRecordingService extends Service {
}
@Override
public long insertWaypoint(WaypointCreationRequest waypointCreationRequest) {
return trackRecordingService.insertWaypoint(waypointCreationRequest);
public long insertWaypoint(String name, String category, String description, String photoUrl) {
return trackRecordingService.insertWaypoint(name, category, description, photoUrl);
}
@VisibleForTesting
@@ -31,7 +31,6 @@ import androidx.annotation.NonNull;
import de.dennisguse.opentracks.BuildConfig;
import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.TrackEditActivity;
import de.dennisguse.opentracks.content.WaypointCreationRequest;
import de.dennisguse.opentracks.util.IntentUtils;
import de.dennisguse.opentracks.util.PreferencesUtils;
import de.dennisguse.opentracks.util.ServiceUtils;
@@ -48,9 +47,6 @@ public class TrackRecordingServiceConnection implements ServiceConnection, Death
private static final String TAG = TrackRecordingServiceConnection.class.getSimpleName();
@Deprecated
//TODO Always the context of the owner of a service connection (i.e., let it be passed to every call).
private final Context context;
private final Runnable callback;
private ITrackRecordingService trackRecordingService;
@@ -62,29 +58,28 @@ public class TrackRecordingServiceConnection implements ServiceConnection, Death
* @param callback the callback to invoke when the service binding changes
*/
public TrackRecordingServiceConnection(Context context, Runnable callback) {
this.context = context;
this.callback = callback;
}
/**
* Starts and binds the service.
*/
public void startAndBind() {
bindService(true);
public void startAndBind(Context context) {
bindService(context, true);
}
/**
* Binds the service if it is started.
*/
public void bindIfStarted() {
bindService(false);
public void bindIfStarted(Context context) {
bindService(context, false);
}
/**
* Unbinds and stops the service.
*/
public void unbindAndStop() {
unbind();
public void unbindAndStop(Context context) {
unbind(context);
context.stopService(new Intent(context, TrackRecordingService.class));
}
@@ -111,7 +106,7 @@ public class TrackRecordingServiceConnection implements ServiceConnection, Death
/**
* Unbinds the service (but leave it running).
*/
public void unbind() {
public void unbind(Context context) {
try {
context.unbindService(this);
} catch (IllegalArgumentException e) {
@@ -148,7 +143,7 @@ public class TrackRecordingServiceConnection implements ServiceConnection, Death
*
* @param startIfNeeded start the service if needed
*/
private void bindService(boolean startIfNeeded) {
private void bindService(Context context, boolean startIfNeeded) {
if (trackRecordingService != null) {
// Service is already started and bound.
return;
@@ -175,7 +170,7 @@ public class TrackRecordingServiceConnection implements ServiceConnection, Death
* @param context the context
*/
public void startConnection(@NonNull Context context) {
bindIfStarted();
bindIfStarted(context);
if (!ServiceUtils.isTrackRecordingServiceRunning(context)) {
resetRecordingState(context);
}
@@ -216,13 +211,13 @@ public class TrackRecordingServiceConnection implements ServiceConnection, Death
*
* @return the id of the marker or -1L if none could be created.
*/
public long addMarker(Context context, WaypointCreationRequest waypointCreationRequest) {
public long addMarker(Context context, String name, String category, String description, String photoUrl) {
ITrackRecordingService trackRecordingService = getServiceIfBound();
if (trackRecordingService == null) {
Log.d(TAG, "Unable to add marker, no track recording service");
} else {
try {
long markerId = trackRecordingService.insertWaypoint(waypointCreationRequest);
long markerId = trackRecordingService.insertWaypoint(name, category, description, photoUrl);
if (markerId != -1L) {
Toast.makeText(context, R.string.marker_add_success, Toast.LENGTH_SHORT).show();
return markerId;
@@ -266,6 +261,6 @@ public class TrackRecordingServiceConnection implements ServiceConnection, Death
Log.e(TAG, "Unable to stop recording.", e);
}
}
unbindAndStop();
unbindAndStop(context);
}
}
@@ -40,7 +40,7 @@ public class BluetoothLeAdapter extends BaseAdapter {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
//TODO Check if there is a better way to achieve identical look and feel to ListPreference.
//Use material design single choice; for old style use: android.R.layout.select_dialog_singlechoice
currentView = inflater.inflate(androidx.appcompat.R.layout.select_dialog_singlechoice_material, parent);
currentView = inflater.inflate(androidx.appcompat.R.layout.select_dialog_singlechoice_material, null);
}
Device device = devices.get(position);
@@ -34,10 +34,10 @@ import java.util.Date;
import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.content.ContentProviderUtils;
import de.dennisguse.opentracks.content.DescriptionGeneratorImpl;
import de.dennisguse.opentracks.content.DescriptionGenerator;
import de.dennisguse.opentracks.content.ShareContentProvider;
import de.dennisguse.opentracks.content.Track;
import de.dennisguse.opentracks.content.Waypoint;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.content.data.Waypoint;
import de.dennisguse.opentracks.io.file.TrackFileFormat;
/**
@@ -77,7 +77,7 @@ public class IntentUtils {
String trackDescription = "";
if (trackIds.length == 1) {
Track track = new ContentProviderUtils(context).getTrack(trackIds[0]);
trackDescription = track == null ? "" : new DescriptionGeneratorImpl(context).generateTrackDescription(track, false);
trackDescription = track == null ? "" : new DescriptionGenerator(context).generateTrackDescription(track, false);
}
String action = trackIds.length == 1 ? Intent.ACTION_SEND : Intent.ACTION_SEND_MULTIPLE;
@@ -22,7 +22,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
import de.dennisguse.opentracks.content.Track;
import de.dennisguse.opentracks.content.data.Track;
/**
* Utility class for decimating tracks at a given level of precision.
@@ -164,6 +164,7 @@ public class LocationUtils {
* @param location the location to test
* @return true if the location is a valid location.
*/
//TODO Still needed?
public static boolean isValidLocation(Location location) {
return location != null
&& Math.abs(location.getLatitude()) <= 90
@@ -154,33 +154,33 @@ public class StringUtils {
* Get the formatted distance with unit.
*
* @param context the context
* @param distance the distance
* @param distance_m the distance
* @param metricUnits true to use metric unit
* @return the formatted distance (or null) and it's unit as {@link Pair}
*/
public static Pair<String, String> getDistanceParts(Context context, double distance, boolean metricUnits) {
if (Double.isNaN(distance) || Double.isInfinite(distance)) {
public static Pair<String, String> getDistanceParts(Context context, double distance_m, boolean metricUnits) {
if (Double.isNaN(distance_m) || Double.isInfinite(distance_m)) {
return new Pair<>(null, context.getString(metricUnits ? R.string.unit_meter : R.string.unit_feet));
}
int unitId;
if (metricUnits) {
if (distance > 500.0) {
distance *= UnitConversions.M_TO_KM;
if (distance_m > 500.0) {
distance_m *= UnitConversions.M_TO_KM;
unitId = R.string.unit_kilometer;
} else {
unitId = R.string.unit_meter;
}
} else {
if (distance * UnitConversions.M_TO_MI > 0.5) {
distance *= UnitConversions.M_TO_MI;
if (distance_m * UnitConversions.M_TO_MI > 0.5) {
distance_m *= UnitConversions.M_TO_MI;
unitId = R.string.unit_mile;
} else {
distance *= UnitConversions.M_TO_FT;
distance_m *= UnitConversions.M_TO_FT;
unitId = R.string.unit_feet;
}
}
return new Pair<>(formatDecimal(distance), context.getString(unitId));
return new Pair<>(formatDecimal(distance_m), context.getString(unitId));
}
/**
@@ -382,11 +382,10 @@ public class StringUtils {
String value = context.getString(R.string.value_unknown);
String unit = context.getString(metricUnits ? R.string.unit_meter : R.string.unit_feet);
if (!Double.isNaN(elevation) && !Double.isInfinite(elevation)) {
if (metricUnits) {
value = StringUtils.formatDecimal(elevation);
} else {
value = StringUtils.formatDecimal(elevation * UnitConversions.M_TO_FT);
if (!metricUnits) {
elevation *= UnitConversions.M_TO_FT;
}
value = StringUtils.formatDecimal(elevation, 0);
}
return new Pair<>(value, unit);
}
@@ -19,8 +19,8 @@ package de.dennisguse.opentracks.util;
import android.content.Context;
import de.dennisguse.opentracks.content.ContentProviderUtils;
import de.dennisguse.opentracks.content.Track;
import de.dennisguse.opentracks.content.TracksColumns;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.content.data.TracksColumns;
/**
* Utilities for updating track.
-16
View File
@@ -33,22 +33,6 @@ limitations under the License.
android:text="@string/generic_name" />
<LinearLayout
android:id="@+id/marker_edit_statistics_section"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<EditText
android:id="@+id/marker_edit_statistics_name"
style="@style/EditNameMarker"
android:drawableLeft="@drawable/ic_marker_blue_pushpin"
android:hint="@string/generic_name"
android:imeOptions="actionDone"
android:importantForAutofill="no" />
</LinearLayout>
<LinearLayout
android:id="@+id/marker_edit_waypoint_section"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
-17
View File
@@ -214,21 +214,6 @@ limitations under the License.
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
style="@style/StatsSmallValueContainer"
android:layout_gravity="start|bottom">
<TextView
style="@style/StatsSmallValue"
android:visibility="invisible" />
<TextView
android:id="@+id/stats_elevation_current_label"
style="@style/StatsSmallLabel"
android:paddingStart="8dp"
android:paddingEnd="8dp" />
</LinearLayout>
<LinearLayout
style="@style/StatsSmallValueContainer"
android:layout_gravity="start|bottom">
@@ -242,7 +227,6 @@ limitations under the License.
android:id="@+id/stats_elevation_current_unit"
style="@style/StatsUnit" />
</LinearLayout>
</TableRow>
<!-- Minimal elevation -->
@@ -278,7 +262,6 @@ limitations under the License.
android:paddingStart="8dp"
android:paddingEnd="8dp"
android:text="@string/stats_min" />
</LinearLayout>
</TableRow>
+10 -6
View File
@@ -14,20 +14,24 @@ See the License for the specific language governing permissions and
limitations under the License.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include layout="@layout/toolbar" />
<TabHost
android:id="@+id/tackdetail_tabhost"
<com.google.android.material.tabs.TabLayout
android:id="@+id/track_detail_activity_tablayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabIndicatorColor="@color/holo_orange_dark" />
<androidx.viewpager.widget.ViewPager
android:id="@+id/track_detail_activity_view_pager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<include layout="@layout/track_details_tab" />
</TabHost>
android:layout_weight="1" />
<include layout="@layout/track_controller" />
</LinearLayout>
-41
View File
@@ -1,41 +0,0 @@
<?xml version="1.0" encoding="utf-8"?><!--
Copyright 2013 Google Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="0" />
<androidx.viewpager.widget.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
</LinearLayout>
</merge>
-450
View File
@@ -1,450 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="activity_type_airplane">Flugzeug</string>
<string name="activity_type_atv">Quad</string>
<string name="activity_type_biking">Fahrrad fahren</string>
<string name="activity_type_blimp">Luftschiff</string>
<string name="activity_type_boat">Boot</string>
<string name="activity_type_climbing">Klettern</string>
<string name="activity_type_commercial_airplane">Verkehrsflugzeug</string>
<string name="activity_type_cross_country_skiing">Langlauf</string>
<string name="activity_type_cycling">Radfahren</string>
<string name="activity_type_dirt_bike">Dirt Bike</string>
<string name="activity_type_donkey_back_riding">Eselreiten</string>
<string name="activity_type_driving">Fahren</string>
<string name="activity_type_driving_bus">Busfahren</string>
<string name="activity_type_driving_car">Autofahren</string>
<string name="activity_type_ferry">Fähre</string>
<string name="activity_type_frisbee">Frisbee</string>
<string name="activity_type_gliding">Segelfliegen</string>
<string name="activity_type_hang_gliding">Drachenfliegen</string>
<string name="activity_type_helicopter">Hubschrauber</string>
<string name="activity_type_hiking">Wandern</string>
<string name="activity_type_horse_back_riding">Reiten</string>
<string name="activity_type_hot_air_balloon">Heißluftballon</string>
<string name="activity_type_ice_sailing">Eissegeln</string>
<string name="activity_type_inline_skating">Inlineskating</string>
<string name="activity_type_kayaking">Kajakfahren</string>
<string name="activity_type_kite_surfing">Kitesurfen</string>
<string name="activity_type_land_sailing">Landsegeln</string>
<string name="activity_type_mixed_type">Gemischt</string>
<string name="activity_type_motor_bike">Motorrad</string>
<string name="activity_type_motor_boating">Motorbootfahren</string>
<string name="activity_type_mountain_biking">Mountainbiking</string>
<string name="activity_type_off_trail_hiking">Off-Trail-Hiking</string>
<string name="activity_type_other">Sonstiges</string>
<string name="activity_type_paddling">Paddeln</string>
<string name="activity_type_para_gliding">Paragliding</string>
<string name="activity_type_rc_airplane">Ferngesteuertes Flugzeug</string>
<string name="activity_type_rc_boat">Ferngesteuertes Boot</string>
<string name="activity_type_rc_helicopter">Ferngesteuerter Hubschrauber</string>
<string name="activity_type_riding">Reiten</string>
<string name="activity_type_road_biking">Tourenradfahren</string>
<string name="activity_type_roller_skiing">Rollski</string>
<string name="activity_type_rowing">Rudern</string>
<string name="activity_type_running">Laufen</string>
<string name="activity_type_sailing">Segeln</string>
<string name="activity_type_seaplane">Wasserflugzeug</string>
<string name="activity_type_skate_boarding">Skateboardfahren</string>
<string name="activity_type_skating">Schlittschuhlaufen</string>
<string name="activity_type_skiing">Skifahren</string>
<string name="activity_type_sky_jumping">Sky-Jumping</string>
<string name="activity_type_sled">Schlittenfahren</string>
<string name="activity_type_snow_boarding">Snowboarden</string>
<string name="activity_type_snow_shoeing">Schneeschuhwandern</string>
<string name="activity_type_speed_walking">Speed-​​Walking</string>
<string name="activity_type_street_running">Laufen (Straßenuntergrund)</string>
<string name="activity_type_surfing">Surfen</string>
<string name="activity_type_track_cycling">Bahnradfahren</string>
<string name="activity_type_track_running">Laufen (Leichtathletik)</string>
<string name="activity_type_trail_hiking">Trail-Hiking</string>
<string name="activity_type_trail_running">Geländelauf</string>
<string name="activity_type_train">Zug</string>
<string name="activity_type_ultimate_frisbee">Ultimate Frisbee</string>
<string name="activity_type_unknown">unbekannt</string>
<string name="activity_type_wakeboarding">Wakeboarding</string>
<string name="activity_type_walking">Walking</string>
<string name="activity_type_water_skiing">Wasserskifahren</string>
<string name="activity_type_wind_surfing">Windsurfen</string>
<string name="description_activity_type">Art der Aktivität: %1$s</string>
<string name="description_average_moving_pace_in_minute">Durchschnittliches Tempo in Bewegung: %1$s min/km (%2$s min/Meile)</string>
<string name="description_average_moving_speed">Durchschnittliche Geschwindigkeit in Bewegung: %1$.2f km/h (%2$.1f Meile/h)</string>
<string name="description_average_pace_in_minute">Durchschnittliches Tempo: %1$s min/km (%2$s min/Meile)</string>
<string name="description_average_speed">Durchschnittliche Geschwindigkeit: %1$.2f km/h (%2$.1f Meile/h)</string>
<string name="description_elevation_gain">Höhenunterschied: %1$d m (%2$d Fuß)</string>
<string name="description_elevation_imperial">Höhe (ft)</string>
<string name="description_elevation_metric">Höhe (m)</string>
<string name="description_fastest_pace_in_minute">Schnellstes Tempo: %1$s min/km (%2$s min/Meile)</string>
<string name="description_location_accuracy">Genauigkeit (m)</string>
<string name="description_location_altitude">Höhe (m)</string>
<string name="description_location_bearing">Peilung (°)</string>
<string name="description_location_latitude">Breitengrad (°)</string>
<string name="description_location_longitude">Längengrad (°)</string>
<string name="description_location_speed">Geschwindigkeit (m/s)</string>
<string name="description_max_elevation">Maximale Höhe: %1$d m (%2$d Fuß)</string>
<string name="description_max_grade">Maximales Gefälle: %1$d %%</string>
<string name="description_max_speed">Maximale Geschwindigkeit: %1$.2f km/h (%2$.1f Meile/h)</string>
<string name="description_min_elevation">Minimale Höhe: %1$d m (%2$d Fuß)</string>
<string name="description_min_grade">Minimales Gefälle: %1$d %%</string>
<string name="description_moving_time">Zeit in Bewegung: %1$s</string>
<string name="description_pace_imperial">Tempo (min/Meile)</string>
<string name="description_pace_metric">Tempo (min/km)</string>
<string name="description_recorded_time">Aufgezeichnet: %1$s</string>
<string name="description_sensor_cadence">Trittfrequenz (Umdrehungen pro Minute)</string>
<string name="description_sensor_heart_rate">Herzfrequenz (Schläge pro Minute)</string>
<string name="description_sensor_power">Leistung (W)</string>
<string name="description_speed_imperial">Geschwindigkeit (Meile/h)</string>
<string name="description_speed_metric">Geschwindigkeit (km/h)</string>
<string name="description_time">Zeit</string>
<string name="description_total_distance">Gesamtstrecke: %1$.2f km (%2$.1f Meile/n)</string>
<string name="description_total_time">Gesamtzeit: %1$s</string>
<string name="description_track_point">Punkt</string>
<string name="description_track_segment">Segment</string>
<string name="export_all_option">Alle als %1$s in %2$s</string>
<string name="export_all_title">In externen Speicher exportieren</string>
<string name="export_external_storage">Externer Speicher</string>
<string name="export_external_storage_error">%1$d von %2$s in %3$s exportiert</string>
<string name="export_external_storage_option">als %1$s in %2$s</string>
<string name="export_external_storage_progress_message">In %1$s exportieren…</string>
<string name="export_external_storage_success">%1$s in %2$s exportiert</string>
<string name="export_title">Exportieren in…</string>
<string name="external_storage_not_available">Externer Speicher ist nicht verfügbar.</string>
<string name="external_storage_not_writable">Externer Speicher ist nicht beschreibbar.</string>
<string name="files_few">%1$d Dateien</string>
<string name="files_many">%1$d Dateien</string>
<string name="files_one">1 Datei</string>
<string name="files_other">%1$d Dateien</string>
<string name="files_two">2 Dateien</string>
<string name="files_zero">0 Dateien</string>
<string name="generic_add">Hinzufügen</string>
<string name="generic_cancel">Abbrechen</string>
<string name="generic_delete_all_confirm_title">Alles löschen?</string>
<string name="generic_delete_selected_confirm_title">Ausgewählte Elemente löschen?</string>
<string name="generic_description">Beschreibung</string>
<string name="generic_description_line">Beschreibung: %1$s</string>
<string name="generic_error_title">Fehler</string>
<string name="generic_name">Name</string>
<string name="generic_name_line">Name: %1$s</string>
<string name="generic_no">Nein</string>
<string name="generic_ok">OK</string>
<string name="generic_paused">Pausiert</string>
<string name="generic_progress_title">Bitte warten…</string>
<string name="generic_recording">Aufzeichnung…</string>
<string name="generic_save">Speichern</string>
<string name="generic_success_title">Erfolgreich</string>
<string name="generic_tracks">Tracks</string>
<string name="generic_yes">Ja</string>
<string name="gps_location_access">\"Standortzugriff\"</string>
<string name="gps_disabled">GPS ist nicht aktiviert. Tippen Sie hier, um zu %1$s wechseln. Drücken Sie \"Zurück\", um zurückzugehen.</string>
<string name="gps_disabled_location_mode">Wählen Sie den Standortmodus für hohe Genauigkeit aus. Tippen Sie hier, um \"%1$s\" zu öffnen. Tippen Sie auf \"Zurück\", um zu dieser Ansicht zurückzukehren.</string>
<string name="gps_disabled_my_location">Der aktuelle Standort kann nicht ermittelt werden. Aktivieren Sie mehr Standortquellen unter \"%1$s\" und vergewissern Sie sich, dass der Himmel sichtbar ist. Bitte versuchen Sie es später erneut.</string>
<string name="gps_disabled_my_location_location_mode">Der aktuelle Standort kann nicht ermittelt werden. Aktivieren Sie den Standortmodus für hohe Genauigkeit unter \"%1$s\" und vergewissern Sie sich, dass der Himmel sichtbar ist. Bitte versuchen Sie es später erneut.</string>
<string name="gps_not_found">Das Gerät sendet kein GPS-Signal.</string>
<string name="gps_starting">GPS wird gestartet.</string>
<string name="gps_starting_error">GPS kann nicht gestartet werden.</string>
<string name="gps_stopping">GPS wird beendet.</string>
<string name="gps_wait_for_better_signal">Warten auf besseres GPS-Signal</string>
<string name="gps_wait_for_signal">Warten auf GPS-Signal</string>
<string name="image_application">App</string>
<string name="image_arrow">Pfeil</string>
<string name="image_marker">Markierung</string>
<string name="image_marker_count">Anzahl der Markierungen</string>
<string name="image_my_location">Mein Standort</string>
<string name="image_pause">Pausieren</string>
<string name="image_photo_marker">Fotomarkierung</string>
<string name="image_record">Aufzeichnen</string>
<string name="image_stop">Beenden</string>
<string name="image_track">Track</string>
<string name="import_error">%1$d von %2$s aus %3$s importiert</string>
<string name="import_no_directory">%1$s ist nicht vorhanden.</string>
<string name="import_no_file">Es waren keine Dateien zum Importieren vorhanden. Schließen Sie Ihr Gerät an Ihren Computer an und stellen Sie die zu
importierenden Dateien in %1$s.</string>
<string name="import_no_file_title">Dateien importieren</string>
<string name="import_progress_message">Dateien werden aus %1$s importiert…</string>
<string name="import_selection_option">Alle %1$s-Dateien aus %2$s</string>
<string name="import_selection_title">Aus externem Speicher importieren</string>
<string name="import_success">%1$s aus %2$s importiert</string>
<string name="marker_add_error">Es kann keine Markierung eingefügt werden, da kein GPS-Signal verfügbar ist. Bitte versuchen Sie es erneut.</string>
<string name="marker_add_success">Markierung wurde eingefügt.</string>
<string name="marker_add_canceled">Abgebrochen. Es wurde keine Markierung hinzugefügt.</string>
<string name="marker_delete_all_confirm_message">Alle Markierungen für diesen Track werden endgültig vom Gerät gelöscht.</string>
<string name="marker_delete_one_confirm_message">Die Markierung wird endgültig vom Gerät gelöscht.</string>
<string name="marker_delete_one_confirm_title">Markierung löschen?</string>
<string name="marker_delete_multiple_confirm_message">Die ausgewählten Markierungen werden endgültig vom Gerät gelöscht.</string>
<string name="marker_label_end">%1$s (Ende)</string>
<string name="marker_label_start">%1$s (Start)</string>
<string name="marker_name_format">%1$d. Markierung</string>
<string name="marker_split_name_format">%1$d. Wegpunktmarkierung</string>
<string name="marker_title">%1$d von %2$d</string>
<string name="marker_detail_statistics_title">Seit letzter Wegpunktmarkierung:</string>
<string name="marker_edit_marker_type">Art der Markierung, z. B. Wasserfall</string>
<string name="marker_edit_marker_type_hint">Art der Markierung</string>
<string name="marker_list_empty_message">Sie haben noch keine Markierungen.</string>
<string name="menu_aggregated_statistics">Gesammelte Statistiken</string>
<string name="menu_delete">Löschen</string>
<string name="menu_delete_all">Alle löschen</string>
<string name="menu_edit">Bearbeiten</string>
<string name="menu_export">Exportieren</string>
<string name="menu_export_all">Alle exportieren</string>
<string name="menu_feedback">Feedback</string>
<string name="menu_help">Hilfe</string>
<string name="menu_help_feedback">Hilfe &amp; Feedback</string>
<string name="menu_help_forum">Hilfeforum</string>
<string name="menu_import_all">Alle importieren</string>
<string name="menu_insert_marker">Markierung einfügen</string>
<string name="menu_insert_photo">Foto einfügen</string>
<string name="menu_map">Karte</string>
<string name="menu_markers">Markierungen</string>
<string name="menu_play">Wiedergeben</string>
<string name="menu_search">Suche</string>
<string name="menu_select_all">Alle auswählen</string>
<string name="menu_sensor_state">Sensorstatus</string>
<string name="menu_settings">Einstellungen</string>
<string name="menu_share">Teilen</string>
<string name="menu_show_on_map">Auf Karte anzeigen</string>
<string name="menu_split_frequency">Wegpunkthäufigkeit</string>
<string name="menu_start_gps">GPS aktivieren</string>
<string name="menu_stop_gps">GPS deaktivieren</string>
<string name="menu_view_photo">Foto ansehen</string>
<string name="menu_voice_frequency">Ansagehäufigkeit</string>
<string name="app_name">OpenTracks</string>
<string name="recording_service">Dienst für Aufzeichnung</string>
<string name="search_global_description">Tracks und Markierungen</string>
<string name="search_list_empty_message">Keine Tracks oder Markierungen gefunden, die Ihrer Suchanfrage entsprechen</string>
<string name="search_list_marker_track_location">Im Track \"%1$s\".</string>
<string name="search_voice_prompt">Sprechen Sie den Namen eines Tracks oder einer Markierung.</string>
<string name="sensor_state_battery">Akkustatus</string>
<string name="sensor_state_cadence">Trittfrequenz</string>
<string name="sensor_state_cadence_value">%1$d Umdrehungen pro Minute</string>
<string name="sensor_state_connected">Verbunden</string>
<string name="sensor_state_connecting">Verbindung wird hergestellt…</string>
<string name="sensor_state_disconnected">Nicht verbunden</string>
<string name="sensor_state_heart_rate">Herzfrequenz</string>
<string name="sensor_state_heart_rate_value">%1$d Schläge pro Minute</string>
<string name="sensor_state_last_sensor_time">Letzte Sensorzeit</string>
<string name="sensor_state_power">Leistung</string>
<string name="sensor_state_power_value">%1$d W</string>
<string name="sensor_state_sending">Wird gesendet</string>
<string name="settings_not_while_recording">Während der Aufzeichnung eines Tracks nicht verfügbar</string>
<string name="settings_show">Anzeigen</string>
<string name="settings_advanced">Erweitert</string>
<string name="settings_chart_by_distance">Nach Strecke</string>
<string name="settings_chart_by_time">Nach Zeit</string>
<string name="settings_chart_x_axis">x-Achse</string>
<string name="settings_recording">Aufzeichnung</string>
<string name="settings_recording_auto_resume_track_timeout_always_summary">Eine Aufzeichnung nach dem Neustart immer fortsetzen</string>
<string name="settings_recording_auto_resume_track_timeout_never_summary">Eine Aufzeichnung nach dem Neustart nie fortsetzen</string>
<string name="settings_recording_auto_resume_track_timeout_summary">Eine Aufzeichnung nach dem Neustart fortsetzen, wenn der letzte Standort innerhalb der letzten %1$s aufgezeichnet wurde</string>
<string name="settings_recording_auto_resume_track_timeout_title">Automat. Fortsetzung</string>
<string name="settings_recording_default_activity_title">Standardaktivität</string>
<string name="settings_recording_location_frequency_summary">Entfernungs-/Zeitintervall %1$s zwischen zwei Standortaufzeichnungen:</string>
<string name="settings_recording_max_recording_distance_summary">Ein neues Segment wird erstellt, wenn die Entfernung zwischen zwei Standorten mehr als %1$s beträgt.</string>
<string name="settings_recording_max_recording_distance_title">Max. Entfernung</string>
<string name="settings_recording_min_recording_distance_title">Entfernungsintervall aufz.</string>
<string name="settings_recording_min_recording_interval_title">Zeitintervall aufz.</string>
<string name="settings_recording_min_required_accuracy_summary">Der Standort wird ignoriert, wenn die Genauigkeit weniger als %1$s beträgt.</string>
<string name="settings_recording_min_required_accuracy_title">GPS-Genauigkeit</string>
<string name="settings_recording_track_name_date_iso_8601_option">Datum (ISO 8601)</string>
<string name="settings_recording_track_name_date_local_option">Datum (lokal)</string>
<string name="settings_recording_track_name_number_option">Nummer</string>
<string name="settings_recording_track_name_title">Standard-Trackname</string>
<string name="settings_reset">Zurücksetzen</string>
<string name="settings_reset_confirm_message">Alle Einstellungen werden auf die Standardwerte zurückgesetzt.</string>
<string name="settings_reset_confirm_title">Jetzt zurücksetzen?</string>
<string name="settings_reset_done">Alle Einstellungen wurden auf ihre Standardwerte zurückgesetzt.</string>
<string name="settings_sensor">Sensor</string>
<string name="settings_sensor_ant_reset_bike_cadence_sensor">Trittfrequenz zurücksetzen</string>
<string name="settings_sensor_ant_reset_combined_bike_sensor">Radsensoren zurücksetzen</string>
<string name="settings_sensor_ant_reset_heart_rate_monitor">Herzfrequenz zurücksetzen</string>
<string name="settings_sensor_ant_reset_speed_distance_monitor">Laufsensor zurücksetzen</string>
<string name="settings_sensor_bluetooth">Bluetooth</string>
<string name="settings_sensor_bluetooth_pairing">Bluetooth-Pairing</string>
<string name="settings_sensor_bluetooth_pairing_summary">Die Bluetooth-Einstellungen von Android öffnen, um ein Sensor-Pairing vorzunehmen</string>
<string name="settings_sensor_bluetooth_sensor">Bluetooth-Sensor</string>
<string name="settings_sensor_connected">Verbunden mit %1$s</string>
<string name="settings_stats_coordinate">Breiten-/Längengrad</string>
<string name="settings_stats_grade_elevation">Gefälle/Höhe</string>
<string name="settings_stats_rate_title">Bevorzugtes Maß</string>
<string name="settings_stats_units_imperial">Englisch (mi, ft)</string>
<string name="settings_stats_units_metric">Metrisch (km, m)</string>
<string name="settings_stats_units_title">Bevorzugte Einheiten</string>
<string name="share_track_emails_hint">E-Mail-Adressen</string>
<string name="share_track_picker_title">App auswählen</string>
<string name="share_track_share_file">Track-Datei teilen</string>
<string name="share_track_share_file_body">Dieser Track könnte dich interessieren.\n\nDu kannst ihn dir mit Google Earth oder einer anderen Kartierungssoftware ansehen.\n\n%1$s</string>
<string name="share_track_subject">Ich möchte einen Track mit dir teilen</string>
<string name="stats_average_moving_pace">Durchschnittl. Bewegungstempo</string>
<string name="stats_average_moving_speed">Durchschnittl. Bewegungsgeschwindigkeit</string>
<string name="stats_average_pace">Durchschnittstempo</string>
<string name="stats_average_speed">Durchschnittsgeschwindigkeit</string>
<string name="stats_elevation">Höhe</string>
<string name="stats_fastest_pace">Schnellstes Tempo</string>
<string name="stats_gain">Anstieg</string>
<string name="stats_grade">Gefälle</string>
<string name="stats_latitude">Breitengrad</string>
<string name="stats_longitude">Längengrad</string>
<string name="stats_max">Max.</string>
<string name="stats_max_speed">Höchstgeschwin-digkeit</string>
<string name="stats_min">Min.</string>
<string name="stats_moving_time">Bewegungszeit</string>
<string name="stats_pace">Tempo</string>
<string name="stats_speed">Geschwindigkeit</string>
<string name="stats_distance">Entfernung</string>
<string name="stats_total_time">Gesamtzeit</string>
<string name="track_name_format">Track %1$d</string>
<string name="track_record_notification">Der Track wird aufgezeichnet…</string>
<string name="track_markers">Markierungen für %1$s</string>
<string name="track_delete_one_confirm_message">Der Track und seine Markierungen werden endgültig aus dem Gerät gelöscht.</string>
<string name="track_delete_one_confirm_title">Track löschen?</string>
<string name="track_delete_multiple_confirm_message">Die ausgewählten Tracks und ihre Markierungen werden endgültig aus dem Gerät gelöscht.</string>
<string name="track_delete_progress_message">Löschen…</string>
<string name="track_detail_chart_tab">Diagramm</string>
<string name="track_detail_stats_tab">Statistik</string>
<string name="track_edit_activity_type">Art der Aktivität, z. B. Wandern</string>
<string name="track_edit_activity_type_hint">Art der Aktivität</string>
<string name="track_edit_new_track_title">Neuer Track</string>
<string name="track_list_empty_message">Zeichnen Sie Ihr nächstes Abenteuer hier auf.</string>
<string name="track_list_record_error">Die Aufzeichnung kann nicht gestartet werden, da kein GPS-Signal verfügbar ist. Bitte versuchen Sie es erneut.</string>
<string name="track_list_record_success">Neuer Track wird aufgezeichnet</string>
<string name="track_widget_config_title">Widget-Elemente konfigurieren</string>
<string name="tracks_few">%1$d Tracks</string>
<string name="tracks_many">%1$d Tracks</string>
<string name="tracks_one">1 Track</string>
<string name="tracks_other">%1$d Tracks</string>
<string name="tracks_two">2 Tracks</string>
<string name="tracks_zero">0 Tracks</string>
<string name="unit_feet">Fuß</string>
<string name="unit_kilometer">km</string>
<string name="unit_kilometer_per_hour">km/h</string>
<string name="unit_meter">m</string>
<string name="unit_mile">mi</string>
<string name="unit_mile_per_hour">Meilen/Std.</string>
<string name="unit_minute_per_kilometer">min/km</string>
<string name="unit_minute_per_mile">Min./Meile</string>
<string name="value_adapt_accuracy">Genauigkeit anpassen</string>
<string name="value_adapt_battery_life">An Akkulaufzeit anpassen</string>
<string name="value_always">Immer</string>
<string name="value_float_feet">%1$.2f ft</string>
<string name="value_float_kilometer">%1$.2f km</string>
<string name="value_float_meter">%1$.2f m</string>
<string name="value_float_mile">%1$.2f Meilen</string>
<string name="value_float_mile_poor_gps">%1$.1f Meilen (schlechtes GPS-Signal)</string>
<string name="value_integer_feet">%1$d Fuß</string>
<string name="value_integer_feet_excellent_gps">%1$d Fuß (ausgezeichnetes GPS-Signal)</string>
<string name="value_integer_feet_recommended">%1$d Fuß (empfohlen)</string>
<string name="value_integer_kilobyte">%1$d KB</string>
<string name="value_integer_kilometer">%1$d km</string>
<string name="value_integer_kilometer_hour">%1$d km/h</string>
<string name="value_integer_megabyte">%1$d MB</string>
<string name="value_integer_meter">%1$d m</string>
<string name="value_integer_meter_excellent_gps">%1$d m (ausgezeichnetes GPS-Signal)</string>
<string name="value_integer_meter_poor_gps">%1$d m (schlechtes GPS-Signal)</string>
<string name="value_integer_meter_recommended">%1$d m (empfohlen)</string>
<string name="value_integer_mile">%1$d mi</string>
<string name="value_integer_mile_hour">%1$d Meile/h</string>
<string name="value_integer_minute">%1$d min</string>
<string name="value_integer_percent">%1$d %%</string>
<string name="value_integer_second">%1$d s</string>
<string name="value_never">Nie</string>
<string name="value_none">Keine</string>
<string name="value_off">Aus</string>
<string name="value_smallest">Kleinster</string>
<string name="value_smallest_recommended">Kleinster (empfohlen)</string>
<string name="voice_hours_few">%1$d Stunden</string>
<string name="voice_hours_many">%1$d Stunden</string>
<string name="voice_hours_one">1 Stunde</string>
<string name="voice_hours_other">%1$d Stunden</string>
<string name="voice_hours_two">2 Stunden</string>
<string name="voice_hours_zero">0 Stunden</string>
<string name="voice_minutes_few">%1$d Minuten</string>
<string name="voice_minutes_many">%1$d Minuten</string>
<string name="voice_minutes_one">1 Minute</string>
<string name="voice_minutes_other">%1$d Minuten</string>
<string name="voice_minutes_two">2 Minuten</string>
<string name="voice_minutes_zero">0 Minuten</string>
<string name="voice_pace_per_kilometer">%1$s pro Kilometer</string>
<string name="voice_pace_per_mile">%1$s pro Meile</string>
<string name="voice_seconds_few">%1$d Sekunden</string>
<string name="voice_seconds_many">%1$d Sekunden</string>
<string name="voice_seconds_one">1 Sekunde</string>
<string name="voice_seconds_other">%1$d Sekunden</string>
<string name="voice_seconds_two">2 Sekunden</string>
<string name="voice_seconds_zero">0 Sekunden</string>
<string name="voice_speed_kilometers_per_hour_few">%1$.1f Kilometer pro Stunde</string>
<string name="voice_speed_kilometers_per_hour_many">%1$.1f Kilometer pro Stunde</string>
<string name="voice_speed_kilometers_per_hour_one">1 Kilometer pro Stunde</string>
<string name="voice_speed_kilometers_per_hour_other">%1$.1f Kilometer pro Stunde</string>
<string name="voice_speed_kilometers_per_hour_two">2 Kilometer pro Stunde</string>
<string name="voice_speed_kilometers_per_hour_zero">0 Kilometer pro Stunde</string>
<string name="voice_speed_miles_per_hour_few">%1$.1f Meilen pro Stunde</string>
<string name="voice_speed_miles_per_hour_many">%1$.1f Meilen pro Stunde</string>
<string name="voice_speed_miles_per_hour_one">1 Meile pro Stunde</string>
<string name="voice_speed_miles_per_hour_other">%1$.1f Meilen pro Stunde</string>
<string name="voice_speed_miles_per_hour_two">2 Meilen pro Stunde</string>
<string name="voice_speed_miles_per_hour_zero">0 Meilen pro Stunde</string>
<string name="voice_template">Meine Tracks: %1$s in %2$s bei %3$s</string>
<string name="voice_total_distance_kilometers_few">Gesamtstrecke: %1$.2f Kilometer</string>
<string name="voice_total_distance_kilometers_many">Gesamtstrecke: %1$.2f Kilometer</string>
<string name="voice_total_distance_kilometers_one">Gesamtstrecke: 1 Kilometer</string>
<string name="voice_total_distance_kilometers_other">Gesamtstrecke: %1$.2f Kilometer</string>
<string name="voice_total_distance_kilometers_two">Gesamtstrecke: 2 Kilometer</string>
<string name="voice_total_distance_kilometers_zero">Gesamtstrecke: 0 Kilometer</string>
<string name="voice_total_distance_miles_few">Gesamtstrecke: %1$.2f Meilen</string>
<string name="voice_total_distance_miles_many">Gesamtstrecke: %1$.2f Meilen</string>
<string name="voice_total_distance_miles_one">Gesamtstrecke: 1 Meile</string>
<string name="voice_total_distance_miles_other">Gesamtstrecke: %1$.2f Meilen</string>
<string name="voice_total_distance_miles_two">Gesamtstrecke: 2 Meilen</string>
<string name="voice_total_distance_miles_zero">Gesamtstrecke: 0 Meilen</string>
<string name="voice_total_distance_zero">Die Gesamtstrecke in \"Meine Tracks\" ist null.</string>
<string name="waypoint_type_atm">Geldautomat</string>
<string name="waypoint_type_bank">Bank</string>
<string name="waypoint_type_bar">Bar</string>
<string name="waypoint_type_barbecue">Grill</string>
<string name="waypoint_type_building">Gebäude</string>
<string name="waypoint_type_bus_stop">Bushaltestelle</string>
<string name="waypoint_type_cafe">Café</string>
<string name="waypoint_type_campfire">Lagerfeuer</string>
<string name="waypoint_type_campground">Campingplatz</string>
<string name="waypoint_type_church">Kirche</string>
<string name="waypoint_type_coffee_house">Kaffeehaus</string>
<string name="waypoint_type_convenience_store">Minimarkt</string>
<string name="waypoint_type_drinking_water">Trinkwasser</string>
<string name="waypoint_type_falling_rocks">Steinschlag</string>
<string name="waypoint_type_ferry">Fähre</string>
<string name="waypoint_type_fire_place">Kamin</string>
<string name="waypoint_type_fire_station">Feuerwache</string>
<string name="waypoint_type_fishing">Angeln</string>
<string name="waypoint_type_gas_station">Tankstelle</string>
<string name="waypoint_type_golf_course">Golfplatz</string>
<string name="waypoint_type_grocery_store">Lebensmittelgeschäft</string>
<string name="waypoint_type_hair_dresser">Friseur</string>
<string name="waypoint_type_harbor">Hafen</string>
<string name="waypoint_type_hiking_path">Wanderweg</string>
<string name="waypoint_type_hotel">Hotel</string>
<string name="waypoint_type_house">Haus</string>
<string name="waypoint_type_information">Informationen</string>
<string name="waypoint_type_intersection">Kreuzung</string>
<string name="waypoint_type_mail_box">Briefkasten</string>
<string name="waypoint_type_market">Markt</string>
<string name="waypoint_type_meeting_point">Treffpunkt</string>
<string name="waypoint_type_opera">Oper</string>
<string name="waypoint_type_parking">Parkmöglichkeit</string>
<string name="waypoint_type_police_station">Polizeirevier</string>
<string name="waypoint_type_post_office">Postamt</string>
<string name="waypoint_type_pothole">Schlagloch</string>
<string name="waypoint_type_railway_crossing">Bahnübergang</string>
<string name="waypoint_type_restaurant">Restaurant</string>
<string name="waypoint_type_shopping">Shopping</string>
<string name="waypoint_type_sight">Sehenswürdigkeit</string>
<string name="waypoint_type_store">Geschäft</string>
<string name="waypoint_type_swimming_pool">Swimmingpool</string>
<string name="waypoint_type_telephone">Telefon</string>
<string name="waypoint_type_theater">Theater</string>
<string name="waypoint_type_toilet">Toilette</string>
<string name="waypoint_type_tourist_information">Touristeninformation</string>
<string name="waypoint_type_tree">Baum</string>
<string name="waypoint_type_tunnel">Tunnel</string>
<string name="waypoint_type_waterfall">Wasserfall</string>
<string name="waypoint_type_water_fountain">Brunnen</string>
<string name="waypoint_type_waypoint">Wegpunkt</string>
</resources>
-450
View File
@@ -1,450 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="activity_type_airplane">Flugzeug</string>
<string name="activity_type_atv">Quad</string>
<string name="activity_type_biking">Fahrrad fahren</string>
<string name="activity_type_blimp">Luftschiff</string>
<string name="activity_type_boat">Boot</string>
<string name="activity_type_climbing">Klettern</string>
<string name="activity_type_commercial_airplane">Verkehrsflugzeug</string>
<string name="activity_type_cross_country_skiing">Langlauf</string>
<string name="activity_type_cycling">Radfahren</string>
<string name="activity_type_dirt_bike">Dirt Bike</string>
<string name="activity_type_donkey_back_riding">Eselreiten</string>
<string name="activity_type_driving">Fahren</string>
<string name="activity_type_driving_bus">Busfahren</string>
<string name="activity_type_driving_car">Autofahren</string>
<string name="activity_type_ferry">Fähre</string>
<string name="activity_type_frisbee">Frisbee</string>
<string name="activity_type_gliding">Segelfliegen</string>
<string name="activity_type_hang_gliding">Drachenfliegen</string>
<string name="activity_type_helicopter">Hubschrauber</string>
<string name="activity_type_hiking">Wandern</string>
<string name="activity_type_horse_back_riding">Reiten</string>
<string name="activity_type_hot_air_balloon">Heißluftballon</string>
<string name="activity_type_ice_sailing">Eissegeln</string>
<string name="activity_type_inline_skating">Inlineskating</string>
<string name="activity_type_kayaking">Kajakfahren</string>
<string name="activity_type_kite_surfing">Kitesurfen</string>
<string name="activity_type_land_sailing">Landsegeln</string>
<string name="activity_type_mixed_type">Gemischt</string>
<string name="activity_type_motor_bike">Motorrad</string>
<string name="activity_type_motor_boating">Motorbootfahren</string>
<string name="activity_type_mountain_biking">Mountainbiking</string>
<string name="activity_type_off_trail_hiking">Off-Trail-Hiking</string>
<string name="activity_type_other">Sonstiges</string>
<string name="activity_type_paddling">Paddeln</string>
<string name="activity_type_para_gliding">Paragliding</string>
<string name="activity_type_rc_airplane">Ferngesteuertes Flugzeug</string>
<string name="activity_type_rc_boat">Ferngesteuertes Boot</string>
<string name="activity_type_rc_helicopter">Ferngesteuerter Hubschrauber</string>
<string name="activity_type_riding">Reiten</string>
<string name="activity_type_road_biking">Tourenradfahren</string>
<string name="activity_type_roller_skiing">Rollski</string>
<string name="activity_type_rowing">Rudern</string>
<string name="activity_type_running">Laufen</string>
<string name="activity_type_sailing">Segeln</string>
<string name="activity_type_seaplane">Wasserflugzeug</string>
<string name="activity_type_skate_boarding">Skateboardfahren</string>
<string name="activity_type_skating">Schlittschuhlaufen</string>
<string name="activity_type_skiing">Skifahren</string>
<string name="activity_type_sky_jumping">Sky-Jumping</string>
<string name="activity_type_sled">Schlittenfahren</string>
<string name="activity_type_snow_boarding">Snowboarden</string>
<string name="activity_type_snow_shoeing">Schneeschuhwandern</string>
<string name="activity_type_speed_walking">Speed-​​Walking</string>
<string name="activity_type_street_running">Laufen (Straßenuntergrund)</string>
<string name="activity_type_surfing">Surfen</string>
<string name="activity_type_track_cycling">Bahnradfahren</string>
<string name="activity_type_track_running">Laufen (Leichtathletik)</string>
<string name="activity_type_trail_hiking">Trail-Hiking</string>
<string name="activity_type_trail_running">Geländelauf</string>
<string name="activity_type_train">Zug</string>
<string name="activity_type_ultimate_frisbee">Ultimate Frisbee</string>
<string name="activity_type_unknown">unbekannt</string>
<string name="activity_type_wakeboarding">Wakeboarding</string>
<string name="activity_type_walking">Walking</string>
<string name="activity_type_water_skiing">Wasserskifahren</string>
<string name="activity_type_wind_surfing">Windsurfen</string>
<string name="description_activity_type">Art der Aktivität: %1$s</string>
<string name="description_average_moving_pace_in_minute">Durchschnittliches Tempo in Bewegung: %1$s min/km (%2$s min/Meile)</string>
<string name="description_average_moving_speed">Durchschnittliche Geschwindigkeit in Bewegung: %1$.2f km/h (%2$.1f Meile/h)</string>
<string name="description_average_pace_in_minute">Durchschnittliches Tempo: %1$s min/km (%2$s min/Meile)</string>
<string name="description_average_speed">Durchschnittliche Geschwindigkeit: %1$.2f km/h (%2$.1f Meile/h)</string>
<string name="description_elevation_gain">Höhenunterschied: %1$d m (%2$d Fuß)</string>
<string name="description_elevation_imperial">Höhe (ft)</string>
<string name="description_elevation_metric">Höhe (m)</string>
<string name="description_fastest_pace_in_minute">Schnellstes Tempo: %1$s min/km (%2$s min/Meile)</string>
<string name="description_location_accuracy">Genauigkeit (m)</string>
<string name="description_location_altitude">Höhe (m)</string>
<string name="description_location_bearing">Peilung (°)</string>
<string name="description_location_latitude">Breitengrad (°)</string>
<string name="description_location_longitude">Längengrad (°)</string>
<string name="description_location_speed">Geschwindigkeit (m/s)</string>
<string name="description_max_elevation">Maximale Höhe: %1$d m (%2$d Fuß)</string>
<string name="description_max_grade">Maximales Gefälle: %1$d %%</string>
<string name="description_max_speed">Maximale Geschwindigkeit: %1$.2f km/h (%2$.1f Meile/h)</string>
<string name="description_min_elevation">Minimale Höhe: %1$d m (%2$d Fuß)</string>
<string name="description_min_grade">Minimales Gefälle: %1$d %%</string>
<string name="description_moving_time">Zeit in Bewegung: %1$s</string>
<string name="description_pace_imperial">Tempo (min/Meile)</string>
<string name="description_pace_metric">Tempo (min/km)</string>
<string name="description_recorded_time">Aufgezeichnet: %1$s</string>
<string name="description_sensor_cadence">Trittfrequenz (Umdrehungen pro Minute)</string>
<string name="description_sensor_heart_rate">Herzfrequenz (Schläge pro Minute)</string>
<string name="description_sensor_power">Leistung (W)</string>
<string name="description_speed_imperial">Geschwindigkeit (Meile/h)</string>
<string name="description_speed_metric">Geschwindigkeit (km/h)</string>
<string name="description_time">Zeit</string>
<string name="description_total_distance">Gesamtstrecke: %1$.2f km (%2$.1f Meile/n)</string>
<string name="description_total_time">Gesamtzeit: %1$s</string>
<string name="description_track_point">Punkt</string>
<string name="description_track_segment">Segment</string>
<string name="export_all_option">Alle als %1$s in %2$s</string>
<string name="export_all_title">In externen Speicher exportieren</string>
<string name="export_external_storage">Externer Speicher</string>
<string name="export_external_storage_error">%1$d von %2$s in %3$s exportiert</string>
<string name="export_external_storage_option">als %1$s in %2$s</string>
<string name="export_external_storage_progress_message">In %1$s exportieren…</string>
<string name="export_external_storage_success">%1$s in %2$s exportiert</string>
<string name="export_title">Exportieren in…</string>
<string name="external_storage_not_available">Externer Speicher ist nicht verfügbar.</string>
<string name="external_storage_not_writable">Externer Speicher ist nicht beschreibbar.</string>
<string name="files_few">%1$d Dateien</string>
<string name="files_many">%1$d Dateien</string>
<string name="files_one">1 Datei</string>
<string name="files_other">%1$d Dateien</string>
<string name="files_two">2 Dateien</string>
<string name="files_zero">0 Dateien</string>
<string name="generic_add">Hinzufügen</string>
<string name="generic_cancel">Abbrechen</string>
<string name="generic_delete_all_confirm_title">Alles löschen?</string>
<string name="generic_delete_selected_confirm_title">Ausgewählte Elemente löschen?</string>
<string name="generic_description">Beschreibung</string>
<string name="generic_description_line">Beschreibung: %1$s</string>
<string name="generic_error_title">Fehler</string>
<string name="generic_name">Name</string>
<string name="generic_name_line">Name: %1$s</string>
<string name="generic_no">Nein</string>
<string name="generic_ok">OK</string>
<string name="generic_paused">Pausiert</string>
<string name="generic_progress_title">Bitte warten…</string>
<string name="generic_recording">Aufzeichnung…</string>
<string name="generic_save">Speichern</string>
<string name="generic_success_title">Erfolgreich</string>
<string name="generic_tracks">Tracks</string>
<string name="generic_yes">Ja</string>
<string name="gps_location_access">\"Standortzugriff\"</string>
<string name="gps_disabled">GPS ist nicht aktiviert. Tippen Sie hier, um zu %1$s wechseln. Drücken Sie \"Zurück\", um zurückzugehen.</string>
<string name="gps_disabled_location_mode">Wählen Sie den Standortmodus für hohe Genauigkeit aus. Tippen Sie hier, um \"%1$s\" zu öffnen. Tippen Sie auf \"Zurück\", um zu dieser Ansicht zurückzukehren.</string>
<string name="gps_disabled_my_location">Der aktuelle Standort kann nicht ermittelt werden. Aktivieren Sie mehr Standortquellen unter \"%1$s\" und vergewissern Sie sich, dass der Himmel sichtbar ist. Bitte versuchen Sie es später erneut.</string>
<string name="gps_disabled_my_location_location_mode">Der aktuelle Standort kann nicht ermittelt werden. Aktivieren Sie den Standortmodus für hohe Genauigkeit unter \"%1$s\" und vergewissern Sie sich, dass der Himmel sichtbar ist. Bitte versuchen Sie es später erneut.</string>
<string name="gps_not_found">Das Gerät sendet kein GPS-Signal.</string>
<string name="gps_starting">GPS wird gestartet.</string>
<string name="gps_starting_error">GPS kann nicht gestartet werden.</string>
<string name="gps_stopping">GPS wird beendet.</string>
<string name="gps_wait_for_better_signal">Warten auf besseres GPS-Signal</string>
<string name="gps_wait_for_signal">Warten auf GPS-Signal</string>
<string name="image_application">App</string>
<string name="image_arrow">Pfeil</string>
<string name="image_marker">Markierung</string>
<string name="image_marker_count">Anzahl der Markierungen</string>
<string name="image_my_location">Mein Standort</string>
<string name="image_pause">Pausieren</string>
<string name="image_photo_marker">Fotomarkierung</string>
<string name="image_record">Aufzeichnen</string>
<string name="image_stop">Beenden</string>
<string name="image_track">Track</string>
<string name="import_error">%1$d von %2$s aus %3$s importiert</string>
<string name="import_no_directory">%1$s ist nicht vorhanden.</string>
<string name="import_no_file">Es waren keine Dateien zum Importieren vorhanden. Schließen Sie Ihr Gerät an Ihren Computer an und stellen Sie die zu
importierenden Dateien in %1$s.</string>
<string name="import_no_file_title">Dateien importieren</string>
<string name="import_progress_message">Dateien werden aus %1$s importiert…</string>
<string name="import_selection_option">Alle %1$s-Dateien aus %2$s</string>
<string name="import_selection_title">Aus externem Speicher importieren</string>
<string name="import_success">%1$s aus %2$s importiert</string>
<string name="marker_add_error">Es kann keine Markierung eingefügt werden, da kein GPS-Signal verfügbar ist. Bitte versuchen Sie es erneut.</string>
<string name="marker_add_success">Markierung wurde eingefügt.</string>
<string name="marker_add_canceled">Abgebrochen. Es wurde keine Markierung hinzugefügt.</string>
<string name="marker_delete_all_confirm_message">Alle Markierungen für diesen Track werden endgültig vom Gerät gelöscht.</string>
<string name="marker_delete_one_confirm_message">Die Markierung wird endgültig vom Gerät gelöscht.</string>
<string name="marker_delete_one_confirm_title">Markierung löschen?</string>
<string name="marker_delete_multiple_confirm_message">Die ausgewählten Markierungen werden endgültig vom Gerät gelöscht.</string>
<string name="marker_label_end">%1$s (Ende)</string>
<string name="marker_label_start">%1$s (Start)</string>
<string name="marker_name_format">%1$d. Markierung</string>
<string name="marker_split_name_format">%1$d. Wegpunktmarkierung</string>
<string name="marker_title">%1$d von %2$d</string>
<string name="marker_detail_statistics_title">Seit letzter Wegpunktmarkierung:</string>
<string name="marker_edit_marker_type">Art der Markierung, z. B. Wasserfall</string>
<string name="marker_edit_marker_type_hint">Art der Markierung</string>
<string name="marker_list_empty_message">Sie haben noch keine Markierungen.</string>
<string name="menu_aggregated_statistics">Gesammelte Statistiken</string>
<string name="menu_delete">Löschen</string>
<string name="menu_delete_all">Alle löschen</string>
<string name="menu_edit">Bearbeiten</string>
<string name="menu_export">Exportieren</string>
<string name="menu_export_all">Alle exportieren</string>
<string name="menu_feedback">Feedback</string>
<string name="menu_help">Hilfe</string>
<string name="menu_help_feedback">Hilfe &amp; Feedback</string>
<string name="menu_help_forum">Hilfeforum</string>
<string name="menu_import_all">Alle importieren</string>
<string name="menu_insert_marker">Markierung einfügen</string>
<string name="menu_insert_photo">Foto einfügen</string>
<string name="menu_map">Karte</string>
<string name="menu_markers">Markierungen</string>
<string name="menu_play">Wiedergeben</string>
<string name="menu_search">Suche</string>
<string name="menu_select_all">Alle auswählen</string>
<string name="menu_sensor_state">Sensorstatus</string>
<string name="menu_settings">Einstellungen</string>
<string name="menu_share">Teilen</string>
<string name="menu_show_on_map">Auf Karte anzeigen</string>
<string name="menu_split_frequency">Wegpunkthäufigkeit</string>
<string name="menu_start_gps">GPS aktivieren</string>
<string name="menu_stop_gps">GPS deaktivieren</string>
<string name="menu_view_photo">Foto ansehen</string>
<string name="menu_voice_frequency">Ansagehäufigkeit</string>
<string name="app_name">OpenTracks</string>
<string name="recording_service">Dienst für Aufzeichnung</string>
<string name="search_global_description">Tracks und Markierungen</string>
<string name="search_list_empty_message">Keine Tracks oder Markierungen gefunden, die Ihrer Suchanfrage entsprechen</string>
<string name="search_list_marker_track_location">Im Track \"%1$s\".</string>
<string name="search_voice_prompt">Sprechen Sie den Namen eines Tracks oder einer Markierung.</string>
<string name="sensor_state_battery">Akkustatus</string>
<string name="sensor_state_cadence">Trittfrequenz</string>
<string name="sensor_state_cadence_value">%1$d Umdrehungen pro Minute</string>
<string name="sensor_state_connected">Verbunden</string>
<string name="sensor_state_connecting">Verbindung wird hergestellt…</string>
<string name="sensor_state_disconnected">Nicht verbunden</string>
<string name="sensor_state_heart_rate">Herzfrequenz</string>
<string name="sensor_state_heart_rate_value">%1$d Schläge pro Minute</string>
<string name="sensor_state_last_sensor_time">Letzte Sensorzeit</string>
<string name="sensor_state_power">Leistung</string>
<string name="sensor_state_power_value">%1$d W</string>
<string name="sensor_state_sending">Wird gesendet</string>
<string name="settings_not_while_recording">Während der Aufzeichnung eines Tracks nicht verfügbar</string>
<string name="settings_show">Anzeigen</string>
<string name="settings_advanced">Erweitert</string>
<string name="settings_chart_by_distance">Nach Strecke</string>
<string name="settings_chart_by_time">Nach Zeit</string>
<string name="settings_chart_x_axis">x-Achse</string>
<string name="settings_recording">Aufzeichnung</string>
<string name="settings_recording_auto_resume_track_timeout_always_summary">Eine Aufzeichnung nach dem Neustart immer fortsetzen</string>
<string name="settings_recording_auto_resume_track_timeout_never_summary">Eine Aufzeichnung nach dem Neustart nie fortsetzen</string>
<string name="settings_recording_auto_resume_track_timeout_summary">Eine Aufzeichnung nach dem Neustart fortsetzen, wenn der letzte Standort innerhalb der letzten %1$s aufgezeichnet wurde</string>
<string name="settings_recording_auto_resume_track_timeout_title">Automat. Fortsetzung</string>
<string name="settings_recording_default_activity_title">Standardaktivität</string>
<string name="settings_recording_location_frequency_summary">Entfernungs-/Zeitintervall %1$s zwischen zwei Standortaufzeichnungen:</string>
<string name="settings_recording_max_recording_distance_summary">Ein neues Segment wird erstellt, wenn die Entfernung zwischen zwei Standorten mehr als %1$s beträgt.</string>
<string name="settings_recording_max_recording_distance_title">Max. Entfernung</string>
<string name="settings_recording_min_recording_distance_title">Entfernungsintervall aufz.</string>
<string name="settings_recording_min_recording_interval_title">Zeitintervall aufz.</string>
<string name="settings_recording_min_required_accuracy_summary">Der Standort wird ignoriert, wenn die Genauigkeit weniger als %1$s beträgt.</string>
<string name="settings_recording_min_required_accuracy_title">GPS-Genauigkeit</string>
<string name="settings_recording_track_name_date_iso_8601_option">Datum (ISO 8601)</string>
<string name="settings_recording_track_name_date_local_option">Datum (lokal)</string>
<string name="settings_recording_track_name_number_option">Nummer</string>
<string name="settings_recording_track_name_title">Standard-Trackname</string>
<string name="settings_reset">Zurücksetzen</string>
<string name="settings_reset_confirm_message">Alle Einstellungen werden auf die Standardwerte zurückgesetzt.</string>
<string name="settings_reset_confirm_title">Jetzt zurücksetzen?</string>
<string name="settings_reset_done">Alle Einstellungen wurden auf ihre Standardwerte zurückgesetzt.</string>
<string name="settings_sensor">Sensor</string>
<string name="settings_sensor_ant_reset_bike_cadence_sensor">Trittfrequenz zurücksetzen</string>
<string name="settings_sensor_ant_reset_combined_bike_sensor">Radsensoren zurücksetzen</string>
<string name="settings_sensor_ant_reset_heart_rate_monitor">Herzfrequenz zurücksetzen</string>
<string name="settings_sensor_ant_reset_speed_distance_monitor">Laufsensor zurücksetzen</string>
<string name="settings_sensor_bluetooth">Bluetooth</string>
<string name="settings_sensor_bluetooth_pairing">Bluetooth-Pairing</string>
<string name="settings_sensor_bluetooth_pairing_summary">Die Bluetooth-Einstellungen von Android öffnen, um ein Sensor-Pairing vorzunehmen</string>
<string name="settings_sensor_bluetooth_sensor">Bluetooth-Sensor</string>
<string name="settings_sensor_connected">Verbunden mit %1$s</string>
<string name="settings_stats_coordinate">Breiten-/Längengrad</string>
<string name="settings_stats_grade_elevation">Gefälle/Höhe</string>
<string name="settings_stats_rate_title">Bevorzugtes Maß</string>
<string name="settings_stats_units_imperial">Englisch (mi, ft)</string>
<string name="settings_stats_units_metric">Metrisch (km, m)</string>
<string name="settings_stats_units_title">Bevorzugte Einheiten</string>
<string name="share_track_emails_hint">E-Mail-Adressen</string>
<string name="share_track_picker_title">App auswählen</string>
<string name="share_track_share_file">Track-Datei teilen</string>
<string name="share_track_share_file_body">Dieser Track könnte dich interessieren.\n\nDu kannst ihn dir mit Google Earth oder einer anderen Kartierungssoftware ansehen.\n\n%1$s</string>
<string name="share_track_subject">Ich möchte einen Track mit dir teilen</string>
<string name="stats_average_moving_pace">Durchschnittl. Bewegungstempo</string>
<string name="stats_average_moving_speed">Durchschnittl. Bewegungsgeschwindigkeit</string>
<string name="stats_average_pace">Durchschnittstempo</string>
<string name="stats_average_speed">Durchschnittsgeschwindigkeit</string>
<string name="stats_elevation">Höhe</string>
<string name="stats_fastest_pace">Schnellstes Tempo</string>
<string name="stats_gain">Anstieg</string>
<string name="stats_grade">Gefälle</string>
<string name="stats_latitude">Breitengrad</string>
<string name="stats_longitude">Längengrad</string>
<string name="stats_max">Max.</string>
<string name="stats_max_speed">Höchstgeschwin-digkeit</string>
<string name="stats_min">Min.</string>
<string name="stats_moving_time">Bewegungszeit</string>
<string name="stats_pace">Tempo</string>
<string name="stats_speed">Geschwindigkeit</string>
<string name="stats_distance">Entfernung</string>
<string name="stats_total_time">Gesamtzeit</string>
<string name="track_name_format">Track %1$d</string>
<string name="track_record_notification">Der Track wird aufgezeichnet…</string>
<string name="track_markers">Markierungen für %1$s</string>
<string name="track_delete_one_confirm_message">Der Track und seine Markierungen werden endgültig aus dem Gerät gelöscht.</string>
<string name="track_delete_one_confirm_title">Track löschen?</string>
<string name="track_delete_multiple_confirm_message">Die ausgewählten Tracks und ihre Markierungen werden endgültig aus dem Gerät gelöscht.</string>
<string name="track_delete_progress_message">Löschen…</string>
<string name="track_detail_chart_tab">Diagramm</string>
<string name="track_detail_stats_tab">Statistik</string>
<string name="track_edit_activity_type">Art der Aktivität, z. B. Wandern</string>
<string name="track_edit_activity_type_hint">Art der Aktivität</string>
<string name="track_edit_new_track_title">Neuer Track</string>
<string name="track_list_empty_message">Zeichnen Sie Ihr nächstes Abenteuer hier auf.</string>
<string name="track_list_record_error">Die Aufzeichnung kann nicht gestartet werden, da kein GPS-Signal verfügbar ist. Bitte versuchen Sie es erneut.</string>
<string name="track_list_record_success">Neuer Track wird aufgezeichnet</string>
<string name="track_widget_config_title">Widget-Elemente konfigurieren</string>
<string name="tracks_few">%1$d Tracks</string>
<string name="tracks_many">%1$d Tracks</string>
<string name="tracks_one">1 Track</string>
<string name="tracks_other">%1$d Tracks</string>
<string name="tracks_two">2 Tracks</string>
<string name="tracks_zero">0 Tracks</string>
<string name="unit_feet">Fuß</string>
<string name="unit_kilometer">km</string>
<string name="unit_kilometer_per_hour">km/h</string>
<string name="unit_meter">m</string>
<string name="unit_mile">mi</string>
<string name="unit_mile_per_hour">Meilen/Std.</string>
<string name="unit_minute_per_kilometer">min/km</string>
<string name="unit_minute_per_mile">Min./Meile</string>
<string name="value_adapt_accuracy">Genauigkeit anpassen</string>
<string name="value_adapt_battery_life">An Akkulaufzeit anpassen</string>
<string name="value_always">Immer</string>
<string name="value_float_feet">%1$.2f ft</string>
<string name="value_float_kilometer">%1$.2f km</string>
<string name="value_float_meter">%1$.2f m</string>
<string name="value_float_mile">%1$.2f Meilen</string>
<string name="value_float_mile_poor_gps">%1$.1f Meilen (schlechtes GPS-Signal)</string>
<string name="value_integer_feet">%1$d Fuß</string>
<string name="value_integer_feet_excellent_gps">%1$d Fuß (ausgezeichnetes GPS-Signal)</string>
<string name="value_integer_feet_recommended">%1$d Fuß (empfohlen)</string>
<string name="value_integer_kilobyte">%1$d KB</string>
<string name="value_integer_kilometer">%1$d km</string>
<string name="value_integer_kilometer_hour">%1$d km/h</string>
<string name="value_integer_megabyte">%1$d MB</string>
<string name="value_integer_meter">%1$d m</string>
<string name="value_integer_meter_excellent_gps">%1$d m (ausgezeichnetes GPS-Signal)</string>
<string name="value_integer_meter_poor_gps">%1$d m (schlechtes GPS-Signal)</string>
<string name="value_integer_meter_recommended">%1$d m (empfohlen)</string>
<string name="value_integer_mile">%1$d mi</string>
<string name="value_integer_mile_hour">%1$d Meile/h</string>
<string name="value_integer_minute">%1$d min</string>
<string name="value_integer_percent">%1$d %%</string>
<string name="value_integer_second">%1$d s</string>
<string name="value_never">Nie</string>
<string name="value_none">Keine</string>
<string name="value_off">Aus</string>
<string name="value_smallest">Kleinster</string>
<string name="value_smallest_recommended">Kleinster (empfohlen)</string>
<string name="voice_hours_few">%1$d Stunden</string>
<string name="voice_hours_many">%1$d Stunden</string>
<string name="voice_hours_one">1 Stunde</string>
<string name="voice_hours_other">%1$d Stunden</string>
<string name="voice_hours_two">2 Stunden</string>
<string name="voice_hours_zero">0 Stunden</string>
<string name="voice_minutes_few">%1$d Minuten</string>
<string name="voice_minutes_many">%1$d Minuten</string>
<string name="voice_minutes_one">1 Minute</string>
<string name="voice_minutes_other">%1$d Minuten</string>
<string name="voice_minutes_two">2 Minuten</string>
<string name="voice_minutes_zero">0 Minuten</string>
<string name="voice_pace_per_kilometer">%1$s pro Kilometer</string>
<string name="voice_pace_per_mile">%1$s pro Meile</string>
<string name="voice_seconds_few">%1$d Sekunden</string>
<string name="voice_seconds_many">%1$d Sekunden</string>
<string name="voice_seconds_one">1 Sekunde</string>
<string name="voice_seconds_other">%1$d Sekunden</string>
<string name="voice_seconds_two">2 Sekunden</string>
<string name="voice_seconds_zero">0 Sekunden</string>
<string name="voice_speed_kilometers_per_hour_few">%1$.1f Kilometer pro Stunde</string>
<string name="voice_speed_kilometers_per_hour_many">%1$.1f Kilometer pro Stunde</string>
<string name="voice_speed_kilometers_per_hour_one">1 Kilometer pro Stunde</string>
<string name="voice_speed_kilometers_per_hour_other">%1$.1f Kilometer pro Stunde</string>
<string name="voice_speed_kilometers_per_hour_two">2 Kilometer pro Stunde</string>
<string name="voice_speed_kilometers_per_hour_zero">0 Kilometer pro Stunde</string>
<string name="voice_speed_miles_per_hour_few">%1$.1f Meilen pro Stunde</string>
<string name="voice_speed_miles_per_hour_many">%1$.1f Meilen pro Stunde</string>
<string name="voice_speed_miles_per_hour_one">1 Meile pro Stunde</string>
<string name="voice_speed_miles_per_hour_other">%1$.1f Meilen pro Stunde</string>
<string name="voice_speed_miles_per_hour_two">2 Meilen pro Stunde</string>
<string name="voice_speed_miles_per_hour_zero">0 Meilen pro Stunde</string>
<string name="voice_template">Meine Tracks: %1$s in %2$s bei %3$s</string>
<string name="voice_total_distance_kilometers_few">Gesamtstrecke: %1$.2f Kilometer</string>
<string name="voice_total_distance_kilometers_many">Gesamtstrecke: %1$.2f Kilometer</string>
<string name="voice_total_distance_kilometers_one">Gesamtstrecke: 1 Kilometer</string>
<string name="voice_total_distance_kilometers_other">Gesamtstrecke: %1$.2f Kilometer</string>
<string name="voice_total_distance_kilometers_two">Gesamtstrecke: 2 Kilometer</string>
<string name="voice_total_distance_kilometers_zero">Gesamtstrecke: 0 Kilometer</string>
<string name="voice_total_distance_miles_few">Gesamtstrecke: %1$.2f Meilen</string>
<string name="voice_total_distance_miles_many">Gesamtstrecke: %1$.2f Meilen</string>
<string name="voice_total_distance_miles_one">Gesamtstrecke: 1 Meile</string>
<string name="voice_total_distance_miles_other">Gesamtstrecke: %1$.2f Meilen</string>
<string name="voice_total_distance_miles_two">Gesamtstrecke: 2 Meilen</string>
<string name="voice_total_distance_miles_zero">Gesamtstrecke: 0 Meilen</string>
<string name="voice_total_distance_zero">Die Gesamtstrecke in \"Meine Tracks\" ist null.</string>
<string name="waypoint_type_atm">Geldautomat</string>
<string name="waypoint_type_bank">Bank</string>
<string name="waypoint_type_bar">Bar</string>
<string name="waypoint_type_barbecue">Grill</string>
<string name="waypoint_type_building">Gebäude</string>
<string name="waypoint_type_bus_stop">Bushaltestelle</string>
<string name="waypoint_type_cafe">Café</string>
<string name="waypoint_type_campfire">Lagerfeuer</string>
<string name="waypoint_type_campground">Campingplatz</string>
<string name="waypoint_type_church">Kirche</string>
<string name="waypoint_type_coffee_house">Kaffeehaus</string>
<string name="waypoint_type_convenience_store">Minimarkt</string>
<string name="waypoint_type_drinking_water">Trinkwasser</string>
<string name="waypoint_type_falling_rocks">Steinschlag</string>
<string name="waypoint_type_ferry">Fähre</string>
<string name="waypoint_type_fire_place">Kamin</string>
<string name="waypoint_type_fire_station">Feuerwache</string>
<string name="waypoint_type_fishing">Angeln</string>
<string name="waypoint_type_gas_station">Tankstelle</string>
<string name="waypoint_type_golf_course">Golfplatz</string>
<string name="waypoint_type_grocery_store">Lebensmittelgeschäft</string>
<string name="waypoint_type_hair_dresser">Friseur</string>
<string name="waypoint_type_harbor">Hafen</string>
<string name="waypoint_type_hiking_path">Wanderweg</string>
<string name="waypoint_type_hotel">Hotel</string>
<string name="waypoint_type_house">Haus</string>
<string name="waypoint_type_information">Informationen</string>
<string name="waypoint_type_intersection">Kreuzung</string>
<string name="waypoint_type_mail_box">Briefkasten</string>
<string name="waypoint_type_market">Markt</string>
<string name="waypoint_type_meeting_point">Treffpunkt</string>
<string name="waypoint_type_opera">Oper</string>
<string name="waypoint_type_parking">Parkmöglichkeit</string>
<string name="waypoint_type_police_station">Polizeirevier</string>
<string name="waypoint_type_post_office">Postamt</string>
<string name="waypoint_type_pothole">Schlagloch</string>
<string name="waypoint_type_railway_crossing">Bahnübergang</string>
<string name="waypoint_type_restaurant">Restaurant</string>
<string name="waypoint_type_shopping">Shopping</string>
<string name="waypoint_type_sight">Sehenswürdigkeit</string>
<string name="waypoint_type_store">Geschäft</string>
<string name="waypoint_type_swimming_pool">Swimmingpool</string>
<string name="waypoint_type_telephone">Telefon</string>
<string name="waypoint_type_theater">Theater</string>
<string name="waypoint_type_toilet">Toilette</string>
<string name="waypoint_type_tourist_information">Touristeninformation</string>
<string name="waypoint_type_tree">Baum</string>
<string name="waypoint_type_tunnel">Tunnel</string>
<string name="waypoint_type_waterfall">Wasserfall</string>
<string name="waypoint_type_water_fountain">Brunnen</string>
<string name="waypoint_type_waypoint">Wegpunkt</string>
</resources>
-450
View File
@@ -1,450 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="activity_type_airplane">aeroplane</string>
<string name="activity_type_atv">ATV</string>
<string name="activity_type_biking">biking</string>
<string name="activity_type_blimp">airship</string>
<string name="activity_type_boat">boat</string>
<string name="activity_type_climbing">climbing</string>
<string name="activity_type_commercial_airplane">commercial aeroplane</string>
<string name="activity_type_cross_country_skiing">Cross-country skiing</string>
<string name="activity_type_cycling">cycling</string>
<string name="activity_type_dirt_bike">dirt bike</string>
<string name="activity_type_donkey_back_riding">donkey riding</string>
<string name="activity_type_driving">driving</string>
<string name="activity_type_driving_bus">driving bus</string>
<string name="activity_type_driving_car">driving car</string>
<string name="activity_type_ferry">ferry</string>
<string name="activity_type_frisbee">frisbee</string>
<string name="activity_type_gliding">gliding</string>
<string name="activity_type_hang_gliding">hang gliding</string>
<string name="activity_type_helicopter">helicopter</string>
<string name="activity_type_hiking">walking</string>
<string name="activity_type_horse_back_riding">horse riding</string>
<string name="activity_type_hot_air_balloon">hot air balloon</string>
<string name="activity_type_ice_sailing">ice sailing</string>
<string name="activity_type_inline_skating">inline skating</string>
<string name="activity_type_kayaking">kayaking</string>
<string name="activity_type_kite_surfing">kite surfing</string>
<string name="activity_type_land_sailing">land sailing</string>
<string name="activity_type_mixed_type">mixed type</string>
<string name="activity_type_motor_bike">motor bike</string>
<string name="activity_type_motor_boating">motor boating</string>
<string name="activity_type_mountain_biking">mountain biking</string>
<string name="activity_type_off_trail_hiking">off-trail walking</string>
<string name="activity_type_other">other</string>
<string name="activity_type_paddling">canoeing</string>
<string name="activity_type_para_gliding">para-gliding</string>
<string name="activity_type_rc_airplane">RC aeroplane</string>
<string name="activity_type_rc_boat">RC boat</string>
<string name="activity_type_rc_helicopter">RC helicopter</string>
<string name="activity_type_riding">riding</string>
<string name="activity_type_road_biking">road biking</string>
<string name="activity_type_roller_skiing">roller skiing</string>
<string name="activity_type_rowing">rowing</string>
<string name="activity_type_running">running</string>
<string name="activity_type_sailing">sailing</string>
<string name="activity_type_seaplane">sea plane</string>
<string name="activity_type_skate_boarding">skate boarding</string>
<string name="activity_type_skating">skating</string>
<string name="activity_type_skiing">skiing</string>
<string name="activity_type_sky_jumping">sky jumping</string>
<string name="activity_type_sled">sledding</string>
<string name="activity_type_snow_boarding">snow boarding</string>
<string name="activity_type_snow_shoeing">snow shoeing</string>
<string name="activity_type_speed_walking">speed walking</string>
<string name="activity_type_street_running">street running</string>
<string name="activity_type_surfing">surfing</string>
<string name="activity_type_track_cycling">track cycling</string>
<string name="activity_type_track_running">track running</string>
<string name="activity_type_trail_hiking">trail walking</string>
<string name="activity_type_trail_running">trail running</string>
<string name="activity_type_train">train</string>
<string name="activity_type_ultimate_frisbee">ultimate frisbee</string>
<string name="activity_type_unknown">unknown</string>
<string name="activity_type_wakeboarding">wake boarding</string>
<string name="activity_type_walking">walking</string>
<string name="activity_type_water_skiing">water skiing</string>
<string name="activity_type_wind_surfing">wind surfing</string>
<string name="description_activity_type">Activity type: %1$s</string>
<string name="description_average_moving_pace_in_minute">Average moving pace: %1$s min/km (%2$s min/mi)</string>
<string name="description_average_moving_speed">Average moving speed: %1$.2f km/h (%2$.1f mi/h)</string>
<string name="description_average_pace_in_minute">Average pace: %1$s min/km (%2$s min/mi)</string>
<string name="description_average_speed">Average speed: %1$.2f km/h (%2$.1f mi/h)</string>
<string name="description_elevation_gain">Elevation gain: %1$d m (%2$d ft)</string>
<string name="description_elevation_imperial">Elevation (ft)</string>
<string name="description_elevation_metric">Elevation (m)</string>
<string name="description_fastest_pace_in_minute">Fastest pace: %1$s min/km (%2$s min/mi)</string>
<string name="description_location_accuracy">Accuracy (m)</string>
<string name="description_location_altitude">Altitude (m)</string>
<string name="description_location_bearing">Bearing (deg)</string>
<string name="description_location_latitude">Latitude (deg)</string>
<string name="description_location_longitude">Longitude (deg)</string>
<string name="description_location_speed">Speed (m/s)</string>
<string name="description_max_elevation">Max elevation: %1$d m (%2$d ft)</string>
<string name="description_max_grade">Max grade: %1$d %%</string>
<string name="description_max_speed">Max speed: %1$.2f km/h (%2$.1f mi/h)</string>
<string name="description_min_elevation">Min elevation: %1$d m (%2$d ft)</string>
<string name="description_min_grade">Min grade: %1$d %%</string>
<string name="description_moving_time">Moving time: %1$s</string>
<string name="description_pace_imperial">Pace (min/mi)</string>
<string name="description_pace_metric">Pace (min/km)</string>
<string name="description_recorded_time">Recorded: %1$s</string>
<string name="description_sensor_cadence">Cadence (rpm)</string>
<string name="description_sensor_heart_rate">Heart rate (bpm)</string>
<string name="description_sensor_power">Power (W)</string>
<string name="description_speed_imperial">Speed (mph)</string>
<string name="description_speed_metric">Speed (km/h)</string>
<string name="description_time">Time</string>
<string name="description_total_distance">Total distance: %1$.2f km (%2$.1f mi)</string>
<string name="description_total_time">Total time: %1$s</string>
<string name="description_track_point">Point</string>
<string name="description_track_segment">Segment</string>
<string name="export_all_option">All as %1$s to %2$s</string>
<string name="export_all_title">Export to external storage</string>
<string name="export_external_storage">External storage</string>
<string name="export_external_storage_error">Exported %1$d of %2$s to %3$s</string>
<string name="export_external_storage_option">as %1$s to %2$s</string>
<string name="export_external_storage_progress_message">Exporting to %1$s…</string>
<string name="export_external_storage_success">Exported %1$s to %2$s</string>
<string name="export_title">Export to…</string>
<string name="external_storage_not_available">External storage not available</string>
<string name="external_storage_not_writable">External storage not writable</string>
<string name="files_few">%1$d files</string>
<string name="files_many">%1$d files</string>
<string name="files_one">1 file</string>
<string name="files_other">%1$d files</string>
<string name="files_two">2 files</string>
<string name="files_zero">0 files</string>
<string name="generic_add">Add</string>
<string name="generic_cancel">Cancel</string>
<string name="generic_delete_all_confirm_title">Delete all?</string>
<string name="generic_delete_selected_confirm_title">Delete selected?</string>
<string name="generic_description">Description</string>
<string name="generic_description_line">Description: %1$s</string>
<string name="generic_error_title">Error</string>
<string name="generic_name">Name</string>
<string name="generic_name_line">Name: %1$s</string>
<string name="generic_no">No</string>
<string name="generic_ok">OK</string>
<string name="generic_paused">Paused</string>
<string name="generic_progress_title">Please wait…</string>
<string name="generic_recording">Recording…</string>
<string name="generic_save">Save</string>
<string name="generic_success_title">Success</string>
<string name="generic_tracks">Tracks</string>
<string name="generic_yes">Yes</string>
<string name="gps_location_access">\'Location access\'</string>
<string name="gps_disabled">GPS not enabled. Tap here to go to %1$s. Press the back button to return.</string>
<string name="gps_disabled_location_mode">Select high-accuracy location mode. Tap here to go to %1$s. Press the back button to return.</string>
<string name="gps_disabled_my_location">Current location cannot be determined. Enable more location sources at %1$s and make sure the sky is visible. Try again later.</string>
<string name="gps_disabled_my_location_location_mode">Current location cannot be determined. Select the high-accuracy location mode at %1$s and make sure the sky is visible. Try again later.</string>
<string name="gps_not_found">No GPS found on the device</string>
<string name="gps_starting">Starting GPS</string>
<string name="gps_starting_error">Unable to start GPS</string>
<string name="gps_stopping">Stopping GPS</string>
<string name="gps_wait_for_better_signal">Waiting for a better GPS signal</string>
<string name="gps_wait_for_signal">Waiting for GPS signal</string>
<string name="image_application">Application</string>
<string name="image_arrow">Arrow</string>
<string name="image_marker">Marker</string>
<string name="image_marker_count">Marker count</string>
<string name="image_my_location">My Location</string>
<string name="image_pause">Pause</string>
<string name="image_photo_marker">Photo marker</string>
<string name="image_record">Record</string>
<string name="image_stop">Stop</string>
<string name="image_track">Track</string>
<string name="import_error">Imported %1$d of %2$s from %3$s</string>
<string name="import_no_directory">%1$s does not exist</string>
<string name="import_no_file">There were no files to import. Connect your device to your computer and place the files to be imported in %1$s.</string>
<string name="import_no_file_title">Import files</string>
<string name="import_progress_message">Importing from %1$s…</string>
<string name="import_selection_option">All %1$s from %2$s</string>
<string name="import_selection_title">Import from external storage</string>
<string name="import_success">Imported %1$s from %2$s</string>
<string name="marker_add_error">Unable to insert a marker. No GPS signal. Try again.</string>
<string name="marker_add_success">A marker was inserted</string>
<string name="marker_add_canceled">Cancelled, no marker added</string>
<string name="marker_delete_all_confirm_message">All markers for this track will be permanently deleted from the device</string>
<string name="marker_delete_one_confirm_message">The marker will be permanently deleted from the device</string>
<string name="marker_delete_one_confirm_title">Delete marker?</string>
<string name="marker_delete_multiple_confirm_message">The selected markers will be permanently deleted from the device</string>
<string name="marker_label_end">%1$s (End)</string>
<string name="marker_label_start">%1$s (Start)</string>
<string name="marker_name_format">Marker %1$d</string>
<string name="marker_split_name_format">Split %1$d</string>
<string name="marker_title">%1$d of %2$d</string>
<string name="marker_detail_statistics_title">Since last split marker:</string>
<string name="marker_edit_marker_type">Marker type (e.g. waterfall)</string>
<string name="marker_edit_marker_type_hint">Marker type</string>
<string name="marker_list_empty_message">You don\'t have any markers</string>
<string name="menu_aggregated_statistics">Aggregated stats</string>
<string name="menu_delete">Delete</string>
<string name="menu_delete_all">Delete all</string>
<string name="menu_edit">Edit</string>
<string name="menu_export">Export</string>
<string name="menu_export_all">Export all</string>
<string name="menu_feedback">Feedback</string>
<string name="menu_help">Help</string>
<string name="menu_help_feedback">Help &amp; feedback</string>
<string name="menu_help_forum">Help forum</string>
<string name="menu_import_all">Import all</string>
<string name="menu_insert_marker">Insert marker</string>
<string name="menu_insert_photo">Insert photo</string>
<string name="menu_map">Map</string>
<string name="menu_markers">Markers</string>
<string name="menu_play">Play</string>
<string name="menu_search">Search</string>
<string name="menu_select_all">Select all</string>
<string name="menu_sensor_state">Sensor state</string>
<string name="menu_settings">Settings</string>
<string name="menu_share">Share</string>
<string name="menu_show_on_map">Show on map</string>
<string name="menu_split_frequency">Split frequency</string>
<string name="menu_start_gps">Start GPS</string>
<string name="menu_stop_gps">Stop GPS</string>
<string name="menu_view_photo">View photo</string>
<string name="menu_voice_frequency">Voice frequency</string>
<string name="app_name">OpenTracks</string>
<string name="recording_service">Recording service</string>
<string name="search_global_description">Tracks and markers</string>
<string name="search_list_empty_message">No tracks or markers matched your search</string>
<string name="search_list_marker_track_location">In track ‘%1$s’.</string>
<string name="search_voice_prompt">Say the name of a track or marker</string>
<string name="sensor_state_battery">Battery level</string>
<string name="sensor_state_cadence">Cadence</string>
<string name="sensor_state_cadence_value">%1$d rpm</string>
<string name="sensor_state_connected">Connected</string>
<string name="sensor_state_connecting">Connecting</string>
<string name="sensor_state_disconnected">Disconnected</string>
<string name="sensor_state_heart_rate">Heart rate</string>
<string name="sensor_state_heart_rate_value">%1$d bpm</string>
<string name="sensor_state_last_sensor_time">Last sensor time</string>
<string name="sensor_state_power">Power</string>
<string name="sensor_state_power_value">%1$d W</string>
<string name="sensor_state_sending">Sending</string>
<string name="settings_not_while_recording">Not available while recording a track</string>
<string name="settings_show">Show</string>
<string name="settings_advanced">Advanced</string>
<string name="settings_chart_by_distance">By distance</string>
<string name="settings_chart_by_time">By time</string>
<string name="settings_chart_x_axis">X axis</string>
<string name="settings_recording">Recording</string>
<string name="settings_recording_auto_resume_track_timeout_always_summary">Always resume a recording after reboot</string>
<string name="settings_recording_auto_resume_track_timeout_never_summary">Never resume a recording after reboot</string>
<string name="settings_recording_auto_resume_track_timeout_summary">Resume a recording after reboot if the last recorded location was within the last %1$s</string>
<string name="settings_recording_auto_resume_track_timeout_title">Auto-resume</string>
<string name="settings_recording_default_activity_title">Default activity type</string>
<string name="settings_recording_location_frequency_summary">%1$s between recorded locations</string>
<string name="settings_recording_max_recording_distance_summary">A new segment is created if the distance between two locations is greater than %1$s</string>
<string name="settings_recording_max_recording_distance_title">Max. distance</string>
<string name="settings_recording_min_recording_distance_title">Recording distance interval</string>
<string name="settings_recording_min_recording_interval_title">Recording time interval</string>
<string name="settings_recording_min_required_accuracy_summary">Location is ignored if its accuracy is less than %1$s</string>
<string name="settings_recording_min_required_accuracy_title">GPS accuracy</string>
<string name="settings_recording_track_name_date_iso_8601_option">Date (ISO 8601)</string>
<string name="settings_recording_track_name_date_local_option">Date (local)</string>
<string name="settings_recording_track_name_number_option">Number</string>
<string name="settings_recording_track_name_title">Default track name</string>
<string name="settings_reset">Reset</string>
<string name="settings_reset_confirm_message">All settings will be reverted to default values.</string>
<string name="settings_reset_confirm_title">Reset now?</string>
<string name="settings_reset_done">All settings have been reverted to default values</string>
<string name="settings_sensor">Sensor</string>
<string name="settings_sensor_ant_reset_bike_cadence_sensor">Reset bike cadence</string>
<string name="settings_sensor_ant_reset_combined_bike_sensor">Reset combined bike</string>
<string name="settings_sensor_ant_reset_heart_rate_monitor">Reset heart rate</string>
<string name="settings_sensor_ant_reset_speed_distance_monitor">Reset foot pod</string>
<string name="settings_sensor_bluetooth">Bluetooth</string>
<string name="settings_sensor_bluetooth_pairing">Bluetooth pairing</string>
<string name="settings_sensor_bluetooth_pairing_summary">Open Android\'s Bluetooth settings to pair a sensor</string>
<string name="settings_sensor_bluetooth_sensor">Bluetooth sensor</string>
<string name="settings_sensor_connected">Connected to %1$s</string>
<string name="settings_stats_coordinate">Latitude/Longitude</string>
<string name="settings_stats_grade_elevation">Grade/elevation</string>
<string name="settings_stats_rate_title">Preferred rate</string>
<string name="settings_stats_units_imperial">Imperial (miles, ft)</string>
<string name="settings_stats_units_metric">Metric (km, m)</string>
<string name="settings_stats_units_title">Preferred units</string>
<string name="share_track_emails_hint">Email addresses</string>
<string name="share_track_picker_title">Select an application</string>
<string name="share_track_share_file">Share track file</string>
<string name="share_track_share_file_body">I think you might be interested in this track.\n\nTo view this track, use Google Earth or other
mapping software.\n\n%1$s</string>
<string name="share_track_subject">I would like to share a track with you</string>
<string name="stats_average_moving_pace">Avg. moving pace</string>
<string name="stats_average_moving_speed">Avg. moving speed</string>
<string name="stats_average_pace">Avg. pace</string>
<string name="stats_average_speed">Avg. speed</string>
<string name="stats_elevation">Elevation</string>
<string name="stats_fastest_pace">Fastest pace</string>
<string name="stats_gain">Gain</string>
<string name="stats_grade">Grade</string>
<string name="stats_latitude">Latitude</string>
<string name="stats_longitude">Longitude</string>
<string name="stats_max">Max</string>
<string name="stats_max_speed">Max. speed</string>
<string name="stats_min">Min</string>
<string name="stats_moving_time">Moving time</string>
<string name="stats_pace">Pace</string>
<string name="stats_speed">Speed</string>
<string name="stats_distance">Distance</string>
<string name="stats_total_time">Total time</string>
<string name="track_name_format">Track %1$d</string>
<string name="track_record_notification">Recording your track…</string>
<string name="track_markers">%1$s Markers</string>
<string name="track_delete_one_confirm_message">The track and its markers will be deleted permanently from the device.</string>
<string name="track_delete_one_confirm_title">Delete track?</string>
<string name="track_delete_multiple_confirm_message">The selected tracks and their markers will be deleted permanently from the device.</string>
<string name="track_delete_progress_message">Deleting…</string>
<string name="track_detail_chart_tab">Chart</string>
<string name="track_detail_stats_tab">Stats</string>
<string name="track_edit_activity_type">Activity type (e.g. walking)</string>
<string name="track_edit_activity_type_hint">Activity type</string>
<string name="track_edit_new_track_title">New Track</string>
<string name="track_list_empty_message">Start recording your next adventure here</string>
<string name="track_list_record_error">Unable to start recording. No GPS signal. Try again.</string>
<string name="track_list_record_success">Now recording a new track</string>
<string name="track_widget_config_title">Configure Widget Items</string>
<string name="tracks_few">%1$d tracks</string>
<string name="tracks_many">%1$d tracks</string>
<string name="tracks_one">1 track</string>
<string name="tracks_other">%1$d tracks</string>
<string name="tracks_two">2 tracks</string>
<string name="tracks_zero">0 tracks</string>
<string name="unit_feet">ft</string>
<string name="unit_kilometer">km</string>
<string name="unit_kilometer_per_hour">km/h</string>
<string name="unit_meter">m</string>
<string name="unit_mile">mi</string>
<string name="unit_mile_per_hour">mi/h</string>
<string name="unit_minute_per_kilometer">min/km</string>
<string name="unit_minute_per_mile">min/mi</string>
<string name="value_adapt_accuracy">Adapt for accuracy</string>
<string name="value_adapt_battery_life">Adapt for battery life</string>
<string name="value_always">Always</string>
<string name="value_float_feet">%1$.2f ft</string>
<string name="value_float_kilometer">%1$.2f km</string>
<string name="value_float_meter">%1$.2f m</string>
<string name="value_float_mile">%1$.2f mi</string>
<string name="value_float_mile_poor_gps">%1$.1f mi (poor GPS)</string>
<string name="value_integer_feet">%1$d ft</string>
<string name="value_integer_feet_excellent_gps">%1$d ft (excellent GPS)</string>
<string name="value_integer_feet_recommended">%1$d ft (recommended)</string>
<string name="value_integer_kilobyte">%1$d kB</string>
<string name="value_integer_kilometer">%1$d km</string>
<string name="value_integer_kilometer_hour">%1$d km/h</string>
<string name="value_integer_megabyte">%1$d MB</string>
<string name="value_integer_meter">%1$d m</string>
<string name="value_integer_meter_excellent_gps">%1$d m (excellent GPS)</string>
<string name="value_integer_meter_poor_gps">%1$d m (poor GPS)</string>
<string name="value_integer_meter_recommended">%1$d m (recommended)</string>
<string name="value_integer_mile">%1$d mi</string>
<string name="value_integer_mile_hour">%1$d mph</string>
<string name="value_integer_minute">%1$d min</string>
<string name="value_integer_percent">%1$d %%</string>
<string name="value_integer_second">%1$d s</string>
<string name="value_never">Never</string>
<string name="value_none">None</string>
<string name="value_off">Off</string>
<string name="value_smallest">Smallest</string>
<string name="value_smallest_recommended">Smallest (recommended)</string>
<string name="voice_hours_few">%1$d hours</string>
<string name="voice_hours_many">%1$d hours</string>
<string name="voice_hours_one">1 hour</string>
<string name="voice_hours_other">%1$d hours</string>
<string name="voice_hours_two">2 hours</string>
<string name="voice_hours_zero">0 hours</string>
<string name="voice_minutes_few">%1$d minutes</string>
<string name="voice_minutes_many">%1$d minutes</string>
<string name="voice_minutes_one">1 minute</string>
<string name="voice_minutes_other">%1$d minutes</string>
<string name="voice_minutes_two">2 minutes</string>
<string name="voice_minutes_zero">0 minutes</string>
<string name="voice_pace_per_kilometer">%1$s per kilometre</string>
<string name="voice_pace_per_mile">%1$s per mile</string>
<string name="voice_seconds_few">%1$d seconds</string>
<string name="voice_seconds_many">%1$d seconds</string>
<string name="voice_seconds_one">1 second</string>
<string name="voice_seconds_other">%1$d seconds</string>
<string name="voice_seconds_two">2 seconds</string>
<string name="voice_seconds_zero">0 seconds</string>
<string name="voice_speed_kilometers_per_hour_few">%1$.1f kilometres per hour</string>
<string name="voice_speed_kilometers_per_hour_many">%1$.1f kilometres per hour</string>
<string name="voice_speed_kilometers_per_hour_one">1 kilometre per hour</string>
<string name="voice_speed_kilometers_per_hour_other">%1$.1f kilometres per hour</string>
<string name="voice_speed_kilometers_per_hour_two">2 kilometres per hour</string>
<string name="voice_speed_kilometers_per_hour_zero">0 kilometres per hour</string>
<string name="voice_speed_miles_per_hour_few">%1$.1f miles per hour</string>
<string name="voice_speed_miles_per_hour_many">%1$.1f miles per hour</string>
<string name="voice_speed_miles_per_hour_one">1 mile per hour</string>
<string name="voice_speed_miles_per_hour_other">%1$.1f miles per hour</string>
<string name="voice_speed_miles_per_hour_two">2 miles per hour</string>
<string name="voice_speed_miles_per_hour_zero">0 miles per hour</string>
<string name="voice_template">OpenTracks %1$s in %2$s at %3$s</string>
<string name="voice_total_distance_kilometers_few">total distance %1$.2f kilometres</string>
<string name="voice_total_distance_kilometers_many">total distance %1$.2f kilometres</string>
<string name="voice_total_distance_kilometers_one">total distance 1 kilometre</string>
<string name="voice_total_distance_kilometers_other">total distance %1$.2f kilometres</string>
<string name="voice_total_distance_kilometers_two">total distance 2 kilometres</string>
<string name="voice_total_distance_kilometers_zero">total distance 0 kilometres</string>
<string name="voice_total_distance_miles_few">total distance %1$.2f miles</string>
<string name="voice_total_distance_miles_many">total distance %1$.2f miles</string>
<string name="voice_total_distance_miles_one">total distance 1 mile</string>
<string name="voice_total_distance_miles_other">total distance %1$.2f miles</string>
<string name="voice_total_distance_miles_two">total distance 2 miles</string>
<string name="voice_total_distance_miles_zero">total distance 0 miles</string>
<string name="voice_total_distance_zero">OpenTracks total distance zero.</string>
<string name="waypoint_type_atm">Cashpoint</string>
<string name="waypoint_type_bank">bank</string>
<string name="waypoint_type_bar">bar/pub</string>
<string name="waypoint_type_barbecue">barbecue</string>
<string name="waypoint_type_building">building</string>
<string name="waypoint_type_bus_stop">bus stop</string>
<string name="waypoint_type_cafe">cafe</string>
<string name="waypoint_type_campfire">camp fire</string>
<string name="waypoint_type_campground">Campsites</string>
<string name="waypoint_type_church">church</string>
<string name="waypoint_type_coffee_house">cafe</string>
<string name="waypoint_type_convenience_store">corner shops</string>
<string name="waypoint_type_drinking_water">drinking water</string>
<string name="waypoint_type_falling_rocks">falling rocks</string>
<string name="waypoint_type_ferry">ferry</string>
<string name="waypoint_type_fire_place">fireplace</string>
<string name="waypoint_type_fire_station">fire station</string>
<string name="waypoint_type_fishing">fishing</string>
<string name="waypoint_type_gas_station">petrol station</string>
<string name="waypoint_type_golf_course">golf course</string>
<string name="waypoint_type_grocery_store">grocers</string>
<string name="waypoint_type_hair_dresser">hair dresser</string>
<string name="waypoint_type_harbor">harbour</string>
<string name="waypoint_type_hiking_path">footpath</string>
<string name="waypoint_type_hotel">hotel</string>
<string name="waypoint_type_house">house</string>
<string name="waypoint_type_information">information</string>
<string name="waypoint_type_intersection">intersection</string>
<string name="waypoint_type_mail_box">post box</string>
<string name="waypoint_type_market">market</string>
<string name="waypoint_type_meeting_point">meeting point</string>
<string name="waypoint_type_opera">opera</string>
<string name="waypoint_type_parking">parking</string>
<string name="waypoint_type_police_station">police station</string>
<string name="waypoint_type_post_office">post office</string>
<string name="waypoint_type_pothole">pothole</string>
<string name="waypoint_type_railway_crossing">railway crossing</string>
<string name="waypoint_type_restaurant">restaurant</string>
<string name="waypoint_type_shopping">shopping</string>
<string name="waypoint_type_sight">sight</string>
<string name="waypoint_type_store">shop</string>
<string name="waypoint_type_swimming_pool">swimming pool</string>
<string name="waypoint_type_telephone">telephone</string>
<string name="waypoint_type_theater">theatre</string>
<string name="waypoint_type_toilet">toilet</string>
<string name="waypoint_type_tourist_information">tourist information</string>
<string name="waypoint_type_tree">tree</string>
<string name="waypoint_type_tunnel">tunnel</string>
<string name="waypoint_type_waterfall">waterfall</string>
<string name="waypoint_type_water_fountain">water fountain</string>
<string name="waypoint_type_waypoint">waypoint</string>
</resources>
-450
View File
@@ -1,450 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="activity_type_airplane">aeroplane</string>
<string name="activity_type_atv">ATV</string>
<string name="activity_type_biking">biking</string>
<string name="activity_type_blimp">airship</string>
<string name="activity_type_boat">boat</string>
<string name="activity_type_climbing">climbing</string>
<string name="activity_type_commercial_airplane">commercial aeroplane</string>
<string name="activity_type_cross_country_skiing">Cross-country skiing</string>
<string name="activity_type_cycling">cycling</string>
<string name="activity_type_dirt_bike">dirt bike</string>
<string name="activity_type_donkey_back_riding">donkey riding</string>
<string name="activity_type_driving">driving</string>
<string name="activity_type_driving_bus">driving bus</string>
<string name="activity_type_driving_car">driving car</string>
<string name="activity_type_ferry">ferry</string>
<string name="activity_type_frisbee">frisbee</string>
<string name="activity_type_gliding">gliding</string>
<string name="activity_type_hang_gliding">hang gliding</string>
<string name="activity_type_helicopter">helicopter</string>
<string name="activity_type_hiking">walking</string>
<string name="activity_type_horse_back_riding">horse riding</string>
<string name="activity_type_hot_air_balloon">hot air balloon</string>
<string name="activity_type_ice_sailing">ice sailing</string>
<string name="activity_type_inline_skating">inline skating</string>
<string name="activity_type_kayaking">kayaking</string>
<string name="activity_type_kite_surfing">kite surfing</string>
<string name="activity_type_land_sailing">land sailing</string>
<string name="activity_type_mixed_type">mixed type</string>
<string name="activity_type_motor_bike">motor bike</string>
<string name="activity_type_motor_boating">motor boating</string>
<string name="activity_type_mountain_biking">mountain biking</string>
<string name="activity_type_off_trail_hiking">off-trail walking</string>
<string name="activity_type_other">other</string>
<string name="activity_type_paddling">canoeing</string>
<string name="activity_type_para_gliding">para-gliding</string>
<string name="activity_type_rc_airplane">RC aeroplane</string>
<string name="activity_type_rc_boat">RC boat</string>
<string name="activity_type_rc_helicopter">RC helicopter</string>
<string name="activity_type_riding">riding</string>
<string name="activity_type_road_biking">road biking</string>
<string name="activity_type_roller_skiing">roller skiing</string>
<string name="activity_type_rowing">rowing</string>
<string name="activity_type_running">running</string>
<string name="activity_type_sailing">sailing</string>
<string name="activity_type_seaplane">sea plane</string>
<string name="activity_type_skate_boarding">skate boarding</string>
<string name="activity_type_skating">skating</string>
<string name="activity_type_skiing">skiing</string>
<string name="activity_type_sky_jumping">sky jumping</string>
<string name="activity_type_sled">sledding</string>
<string name="activity_type_snow_boarding">snow boarding</string>
<string name="activity_type_snow_shoeing">snow shoeing</string>
<string name="activity_type_speed_walking">speed walking</string>
<string name="activity_type_street_running">street running</string>
<string name="activity_type_surfing">surfing</string>
<string name="activity_type_track_cycling">track cycling</string>
<string name="activity_type_track_running">track running</string>
<string name="activity_type_trail_hiking">trail walking</string>
<string name="activity_type_trail_running">trail running</string>
<string name="activity_type_train">train</string>
<string name="activity_type_ultimate_frisbee">ultimate frisbee</string>
<string name="activity_type_unknown">unknown</string>
<string name="activity_type_wakeboarding">wake boarding</string>
<string name="activity_type_walking">walking</string>
<string name="activity_type_water_skiing">water skiing</string>
<string name="activity_type_wind_surfing">wind surfing</string>
<string name="description_activity_type">Activity type: %1$s</string>
<string name="description_average_moving_pace_in_minute">Average moving pace: %1$s min/km (%2$s min/mi)</string>
<string name="description_average_moving_speed">Average moving speed: %1$.2f km/h (%2$.1f mi/h)</string>
<string name="description_average_pace_in_minute">Average pace: %1$s min/km (%2$s min/mi)</string>
<string name="description_average_speed">Average speed: %1$.2f km/h (%2$.1f mi/h)</string>
<string name="description_elevation_gain">Elevation gain: %1$d m (%2$d ft)</string>
<string name="description_elevation_imperial">Elevation (ft)</string>
<string name="description_elevation_metric">Elevation (m)</string>
<string name="description_fastest_pace_in_minute">Fastest pace: %1$s min/km (%2$s min/mi)</string>
<string name="description_location_accuracy">Accuracy (m)</string>
<string name="description_location_altitude">Altitude (m)</string>
<string name="description_location_bearing">Bearing (deg)</string>
<string name="description_location_latitude">Latitude (deg)</string>
<string name="description_location_longitude">Longitude (deg)</string>
<string name="description_location_speed">Speed (m/s)</string>
<string name="description_max_elevation">Max elevation: %1$d m (%2$d ft)</string>
<string name="description_max_grade">Max grade: %1$d %%</string>
<string name="description_max_speed">Max speed: %1$.2f km/h (%2$.1f mi/h)</string>
<string name="description_min_elevation">Min elevation: %1$d m (%2$d ft)</string>
<string name="description_min_grade">Min grade: %1$d %%</string>
<string name="description_moving_time">Moving time: %1$s</string>
<string name="description_pace_imperial">Pace (min/mi)</string>
<string name="description_pace_metric">Pace (min/km)</string>
<string name="description_recorded_time">Recorded: %1$s</string>
<string name="description_sensor_cadence">Cadence (rpm)</string>
<string name="description_sensor_heart_rate">Heart rate (bpm)</string>
<string name="description_sensor_power">Power (W)</string>
<string name="description_speed_imperial">Speed (mph)</string>
<string name="description_speed_metric">Speed (km/h)</string>
<string name="description_time">Time</string>
<string name="description_total_distance">Total distance: %1$.2f km (%2$.1f mi)</string>
<string name="description_total_time">Total time: %1$s</string>
<string name="description_track_point">Point</string>
<string name="description_track_segment">Segment</string>
<string name="export_all_option">All as %1$s to %2$s</string>
<string name="export_all_title">Export to external storage</string>
<string name="export_external_storage">External storage</string>
<string name="export_external_storage_error">Exported %1$d of %2$s to %3$s</string>
<string name="export_external_storage_option">as %1$s to %2$s</string>
<string name="export_external_storage_progress_message">Exporting to %1$s…</string>
<string name="export_external_storage_success">Exported %1$s to %2$s</string>
<string name="export_title">Export to…</string>
<string name="external_storage_not_available">External storage not available</string>
<string name="external_storage_not_writable">External storage not writable</string>
<string name="files_few">%1$d files</string>
<string name="files_many">%1$d files</string>
<string name="files_one">1 file</string>
<string name="files_other">%1$d files</string>
<string name="files_two">2 files</string>
<string name="files_zero">0 files</string>
<string name="generic_add">Add</string>
<string name="generic_cancel">Cancel</string>
<string name="generic_delete_all_confirm_title">Delete all?</string>
<string name="generic_delete_selected_confirm_title">Delete selected?</string>
<string name="generic_description">Description</string>
<string name="generic_description_line">Description: %1$s</string>
<string name="generic_error_title">Error</string>
<string name="generic_name">Name</string>
<string name="generic_name_line">Name: %1$s</string>
<string name="generic_no">No</string>
<string name="generic_ok">OK</string>
<string name="generic_paused">Paused</string>
<string name="generic_progress_title">Please wait…</string>
<string name="generic_recording">Recording…</string>
<string name="generic_save">Save</string>
<string name="generic_success_title">Success</string>
<string name="generic_tracks">Tracks</string>
<string name="generic_yes">Yes</string>
<string name="gps_location_access">\'Location access\'</string>
<string name="gps_disabled">GPS not enabled. Tap here to go to %1$s. Press the back button to return.</string>
<string name="gps_disabled_location_mode">Select high-accuracy location mode. Tap here to go to %1$s. Press the back button to return.</string>
<string name="gps_disabled_my_location">Current location cannot be determined. Enable more location sources at %1$s and make sure the sky is visible. Try again later.</string>
<string name="gps_disabled_my_location_location_mode">Current location cannot be determined. Select the high-accuracy location mode at %1$s and make sure the sky is visible. Try again later.</string>
<string name="gps_not_found">No GPS found on the device</string>
<string name="gps_starting">Starting GPS</string>
<string name="gps_starting_error">Unable to start GPS</string>
<string name="gps_stopping">Stopping GPS</string>
<string name="gps_wait_for_better_signal">Waiting for a better GPS signal</string>
<string name="gps_wait_for_signal">Waiting for GPS signal</string>
<string name="image_application">Application</string>
<string name="image_arrow">Arrow</string>
<string name="image_marker">Marker</string>
<string name="image_marker_count">Marker count</string>
<string name="image_my_location">My Location</string>
<string name="image_pause">Pause</string>
<string name="image_photo_marker">Photo marker</string>
<string name="image_record">Record</string>
<string name="image_stop">Stop</string>
<string name="image_track">Track</string>
<string name="import_error">Imported %1$d of %2$s from %3$s</string>
<string name="import_no_directory">%1$s does not exist</string>
<string name="import_no_file">There were no files to import. Connect your device to your computer and place the files to be imported in %1$s.</string>
<string name="import_no_file_title">Import files</string>
<string name="import_progress_message">Importing from %1$s…</string>
<string name="import_selection_option">All %1$s from %2$s</string>
<string name="import_selection_title">Import from external storage</string>
<string name="import_success">Imported %1$s from %2$s</string>
<string name="marker_add_error">Unable to insert a marker. No GPS signal. Try again.</string>
<string name="marker_add_success">A marker was inserted</string>
<string name="marker_add_canceled">Cancelled, no marker added</string>
<string name="marker_delete_all_confirm_message">All markers for this track will be permanently deleted from the device</string>
<string name="marker_delete_one_confirm_message">The marker will be permanently deleted from the device</string>
<string name="marker_delete_one_confirm_title">Delete marker?</string>
<string name="marker_delete_multiple_confirm_message">The selected markers will be permanently deleted from the device</string>
<string name="marker_label_end">%1$s (End)</string>
<string name="marker_label_start">%1$s (Start)</string>
<string name="marker_name_format">Marker %1$d</string>
<string name="marker_split_name_format">Split %1$d</string>
<string name="marker_title">%1$d of %2$d</string>
<string name="marker_detail_statistics_title">Since last split marker:</string>
<string name="marker_edit_marker_type">Marker type (e.g. waterfall)</string>
<string name="marker_edit_marker_type_hint">Marker type</string>
<string name="marker_list_empty_message">You don\'t have any markers</string>
<string name="menu_aggregated_statistics">Aggregated stats</string>
<string name="menu_delete">Delete</string>
<string name="menu_delete_all">Delete all</string>
<string name="menu_edit">Edit</string>
<string name="menu_export">Export</string>
<string name="menu_export_all">Export all</string>
<string name="menu_feedback">Feedback</string>
<string name="menu_help">Help</string>
<string name="menu_help_feedback">Help &amp; feedback</string>
<string name="menu_help_forum">Help forum</string>
<string name="menu_import_all">Import all</string>
<string name="menu_insert_marker">Insert marker</string>
<string name="menu_insert_photo">Insert photo</string>
<string name="menu_map">Map</string>
<string name="menu_markers">Markers</string>
<string name="menu_play">Play</string>
<string name="menu_search">Search</string>
<string name="menu_select_all">Select all</string>
<string name="menu_sensor_state">Sensor state</string>
<string name="menu_settings">Settings</string>
<string name="menu_share">Share</string>
<string name="menu_show_on_map">Show on map</string>
<string name="menu_split_frequency">Split frequency</string>
<string name="menu_start_gps">Start GPS</string>
<string name="menu_stop_gps">Stop GPS</string>
<string name="menu_view_photo">View photo</string>
<string name="menu_voice_frequency">Voice frequency</string>
<string name="app_name">OpenTracks</string>
<string name="recording_service">Recording service</string>
<string name="search_global_description">Tracks and markers</string>
<string name="search_list_empty_message">No tracks or markers matched your search</string>
<string name="search_list_marker_track_location">In track ‘%1$s’.</string>
<string name="search_voice_prompt">Say the name of a track or marker</string>
<string name="sensor_state_battery">Battery level</string>
<string name="sensor_state_cadence">Cadence</string>
<string name="sensor_state_cadence_value">%1$d rpm</string>
<string name="sensor_state_connected">Connected</string>
<string name="sensor_state_connecting">Connecting</string>
<string name="sensor_state_disconnected">Disconnected</string>
<string name="sensor_state_heart_rate">Heart rate</string>
<string name="sensor_state_heart_rate_value">%1$d bpm</string>
<string name="sensor_state_last_sensor_time">Last sensor time</string>
<string name="sensor_state_power">Power</string>
<string name="sensor_state_power_value">%1$d W</string>
<string name="sensor_state_sending">Sending</string>
<string name="settings_not_while_recording">Not available while recording a track</string>
<string name="settings_show">Show</string>
<string name="settings_advanced">Advanced</string>
<string name="settings_chart_by_distance">By distance</string>
<string name="settings_chart_by_time">By time</string>
<string name="settings_chart_x_axis">X axis</string>
<string name="settings_recording">Recording</string>
<string name="settings_recording_auto_resume_track_timeout_always_summary">Always resume a recording after reboot</string>
<string name="settings_recording_auto_resume_track_timeout_never_summary">Never resume a recording after reboot</string>
<string name="settings_recording_auto_resume_track_timeout_summary">Resume a recording after reboot if the last recorded location was within the last %1$s</string>
<string name="settings_recording_auto_resume_track_timeout_title">Auto-resume</string>
<string name="settings_recording_default_activity_title">Default activity type</string>
<string name="settings_recording_location_frequency_summary">%1$s between recorded locations</string>
<string name="settings_recording_max_recording_distance_summary">A new segment is created if the distance between two locations is greater than %1$s</string>
<string name="settings_recording_max_recording_distance_title">Max. distance</string>
<string name="settings_recording_min_recording_distance_title">Recording distance interval</string>
<string name="settings_recording_min_recording_interval_title">Recording time interval</string>
<string name="settings_recording_min_required_accuracy_summary">Location is ignored if its accuracy is less than %1$s</string>
<string name="settings_recording_min_required_accuracy_title">GPS accuracy</string>
<string name="settings_recording_track_name_date_iso_8601_option">Date (ISO 8601)</string>
<string name="settings_recording_track_name_date_local_option">Date (local)</string>
<string name="settings_recording_track_name_number_option">Number</string>
<string name="settings_recording_track_name_title">Default track name</string>
<string name="settings_reset">Reset</string>
<string name="settings_reset_confirm_message">All settings will be reverted to default values.</string>
<string name="settings_reset_confirm_title">Reset now?</string>
<string name="settings_reset_done">All settings have been reverted to default values</string>
<string name="settings_sensor">Sensor</string>
<string name="settings_sensor_ant_reset_bike_cadence_sensor">Reset bike cadence</string>
<string name="settings_sensor_ant_reset_combined_bike_sensor">Reset combined bike</string>
<string name="settings_sensor_ant_reset_heart_rate_monitor">Reset heart rate</string>
<string name="settings_sensor_ant_reset_speed_distance_monitor">Reset foot pod</string>
<string name="settings_sensor_bluetooth">Bluetooth</string>
<string name="settings_sensor_bluetooth_pairing">Bluetooth pairing</string>
<string name="settings_sensor_bluetooth_pairing_summary">Open Android\'s Bluetooth settings to pair a sensor</string>
<string name="settings_sensor_bluetooth_sensor">Bluetooth sensor</string>
<string name="settings_sensor_connected">Connected to %1$s</string>
<string name="settings_stats_coordinate">Latitude/Longitude</string>
<string name="settings_stats_grade_elevation">Grade/elevation</string>
<string name="settings_stats_rate_title">Preferred rate</string>
<string name="settings_stats_units_imperial">Imperial (miles, ft)</string>
<string name="settings_stats_units_metric">Metric (km, m)</string>
<string name="settings_stats_units_title">Preferred units</string>
<string name="share_track_emails_hint">Email addresses</string>
<string name="share_track_picker_title">Select an application</string>
<string name="share_track_share_file">Share track file</string>
<string name="share_track_share_file_body">I think you might be interested in this track.\n\nTo view this track, use Google Earth or other
mapping software.\n\n%1$s</string>
<string name="share_track_subject">I would like to share a track with you</string>
<string name="stats_average_moving_pace">Avg. moving pace</string>
<string name="stats_average_moving_speed">Avg. moving speed</string>
<string name="stats_average_pace">Avg. pace</string>
<string name="stats_average_speed">Avg. speed</string>
<string name="stats_elevation">Elevation</string>
<string name="stats_fastest_pace">Fastest pace</string>
<string name="stats_gain">Gain</string>
<string name="stats_grade">Grade</string>
<string name="stats_latitude">Latitude</string>
<string name="stats_longitude">Longitude</string>
<string name="stats_max">Max</string>
<string name="stats_max_speed">Max. speed</string>
<string name="stats_min">Min</string>
<string name="stats_moving_time">Moving time</string>
<string name="stats_pace">Pace</string>
<string name="stats_speed">Speed</string>
<string name="stats_distance">Distance</string>
<string name="stats_total_time">Total time</string>
<string name="track_name_format">Track %1$d</string>
<string name="track_record_notification">Recording your track…</string>
<string name="track_markers">%1$s Markers</string>
<string name="track_delete_one_confirm_message">The track and its markers will be deleted permanently from the device.</string>
<string name="track_delete_one_confirm_title">Delete track?</string>
<string name="track_delete_multiple_confirm_message">The selected tracks and their markers will be deleted permanently from the device.</string>
<string name="track_delete_progress_message">Deleting…</string>
<string name="track_detail_chart_tab">Chart</string>
<string name="track_detail_stats_tab">Stats</string>
<string name="track_edit_activity_type">Activity type (e.g. walking)</string>
<string name="track_edit_activity_type_hint">Activity type</string>
<string name="track_edit_new_track_title">New Track</string>
<string name="track_list_empty_message">Start recording your next adventure here</string>
<string name="track_list_record_error">Unable to start recording. No GPS signal. Try again.</string>
<string name="track_list_record_success">Now recording a new track</string>
<string name="track_widget_config_title">Configure Widget Items</string>
<string name="tracks_few">%1$d tracks</string>
<string name="tracks_many">%1$d tracks</string>
<string name="tracks_one">1 track</string>
<string name="tracks_other">%1$d tracks</string>
<string name="tracks_two">2 tracks</string>
<string name="tracks_zero">0 tracks</string>
<string name="unit_feet">ft</string>
<string name="unit_kilometer">km</string>
<string name="unit_kilometer_per_hour">km/h</string>
<string name="unit_meter">m</string>
<string name="unit_mile">mi</string>
<string name="unit_mile_per_hour">mi/h</string>
<string name="unit_minute_per_kilometer">min/km</string>
<string name="unit_minute_per_mile">min/mi</string>
<string name="value_adapt_accuracy">Adapt for accuracy</string>
<string name="value_adapt_battery_life">Adapt for battery life</string>
<string name="value_always">Always</string>
<string name="value_float_feet">%1$.2f ft</string>
<string name="value_float_kilometer">%1$.2f km</string>
<string name="value_float_meter">%1$.2f m</string>
<string name="value_float_mile">%1$.2f mi</string>
<string name="value_float_mile_poor_gps">%1$.1f mi (poor GPS)</string>
<string name="value_integer_feet">%1$d ft</string>
<string name="value_integer_feet_excellent_gps">%1$d ft (excellent GPS)</string>
<string name="value_integer_feet_recommended">%1$d ft (recommended)</string>
<string name="value_integer_kilobyte">%1$d kB</string>
<string name="value_integer_kilometer">%1$d km</string>
<string name="value_integer_kilometer_hour">%1$d km/h</string>
<string name="value_integer_megabyte">%1$d MB</string>
<string name="value_integer_meter">%1$d m</string>
<string name="value_integer_meter_excellent_gps">%1$d m (excellent GPS)</string>
<string name="value_integer_meter_poor_gps">%1$d m (poor GPS)</string>
<string name="value_integer_meter_recommended">%1$d m (recommended)</string>
<string name="value_integer_mile">%1$d mi</string>
<string name="value_integer_mile_hour">%1$d mph</string>
<string name="value_integer_minute">%1$d min</string>
<string name="value_integer_percent">%1$d %%</string>
<string name="value_integer_second">%1$d s</string>
<string name="value_never">Never</string>
<string name="value_none">None</string>
<string name="value_off">Off</string>
<string name="value_smallest">Smallest</string>
<string name="value_smallest_recommended">Smallest (recommended)</string>
<string name="voice_hours_few">%1$d hours</string>
<string name="voice_hours_many">%1$d hours</string>
<string name="voice_hours_one">1 hour</string>
<string name="voice_hours_other">%1$d hours</string>
<string name="voice_hours_two">2 hours</string>
<string name="voice_hours_zero">0 hours</string>
<string name="voice_minutes_few">%1$d minutes</string>
<string name="voice_minutes_many">%1$d minutes</string>
<string name="voice_minutes_one">1 minute</string>
<string name="voice_minutes_other">%1$d minutes</string>
<string name="voice_minutes_two">2 minutes</string>
<string name="voice_minutes_zero">0 minutes</string>
<string name="voice_pace_per_kilometer">%1$s per kilometre</string>
<string name="voice_pace_per_mile">%1$s per mile</string>
<string name="voice_seconds_few">%1$d seconds</string>
<string name="voice_seconds_many">%1$d seconds</string>
<string name="voice_seconds_one">1 second</string>
<string name="voice_seconds_other">%1$d seconds</string>
<string name="voice_seconds_two">2 seconds</string>
<string name="voice_seconds_zero">0 seconds</string>
<string name="voice_speed_kilometers_per_hour_few">%1$.1f kilometres per hour</string>
<string name="voice_speed_kilometers_per_hour_many">%1$.1f kilometres per hour</string>
<string name="voice_speed_kilometers_per_hour_one">1 kilometre per hour</string>
<string name="voice_speed_kilometers_per_hour_other">%1$.1f kilometres per hour</string>
<string name="voice_speed_kilometers_per_hour_two">2 kilometres per hour</string>
<string name="voice_speed_kilometers_per_hour_zero">0 kilometres per hour</string>
<string name="voice_speed_miles_per_hour_few">%1$.1f miles per hour</string>
<string name="voice_speed_miles_per_hour_many">%1$.1f miles per hour</string>
<string name="voice_speed_miles_per_hour_one">1 mile per hour</string>
<string name="voice_speed_miles_per_hour_other">%1$.1f miles per hour</string>
<string name="voice_speed_miles_per_hour_two">2 miles per hour</string>
<string name="voice_speed_miles_per_hour_zero">0 miles per hour</string>
<string name="voice_template">OpenTracks %1$s in %2$s at %3$s</string>
<string name="voice_total_distance_kilometers_few">total distance %1$.2f kilometres</string>
<string name="voice_total_distance_kilometers_many">total distance %1$.2f kilometres</string>
<string name="voice_total_distance_kilometers_one">total distance 1 kilometre</string>
<string name="voice_total_distance_kilometers_other">total distance %1$.2f kilometres</string>
<string name="voice_total_distance_kilometers_two">total distance 2 kilometres</string>
<string name="voice_total_distance_kilometers_zero">total distance 0 kilometres</string>
<string name="voice_total_distance_miles_few">total distance %1$.2f miles</string>
<string name="voice_total_distance_miles_many">total distance %1$.2f miles</string>
<string name="voice_total_distance_miles_one">total distance 1 mile</string>
<string name="voice_total_distance_miles_other">total distance %1$.2f miles</string>
<string name="voice_total_distance_miles_two">total distance 2 miles</string>
<string name="voice_total_distance_miles_zero">total distance 0 miles</string>
<string name="voice_total_distance_zero">OpenTracks total distance zero.</string>
<string name="waypoint_type_atm">Cashpoint</string>
<string name="waypoint_type_bank">bank</string>
<string name="waypoint_type_bar">bar/pub</string>
<string name="waypoint_type_barbecue">barbecue</string>
<string name="waypoint_type_building">building</string>
<string name="waypoint_type_bus_stop">bus stop</string>
<string name="waypoint_type_cafe">cafe</string>
<string name="waypoint_type_campfire">camp fire</string>
<string name="waypoint_type_campground">Campsites</string>
<string name="waypoint_type_church">church</string>
<string name="waypoint_type_coffee_house">cafe</string>
<string name="waypoint_type_convenience_store">corner shops</string>
<string name="waypoint_type_drinking_water">drinking water</string>
<string name="waypoint_type_falling_rocks">falling rocks</string>
<string name="waypoint_type_ferry">ferry</string>
<string name="waypoint_type_fire_place">fireplace</string>
<string name="waypoint_type_fire_station">fire station</string>
<string name="waypoint_type_fishing">fishing</string>
<string name="waypoint_type_gas_station">petrol station</string>
<string name="waypoint_type_golf_course">golf course</string>
<string name="waypoint_type_grocery_store">grocers</string>
<string name="waypoint_type_hair_dresser">hair dresser</string>
<string name="waypoint_type_harbor">harbour</string>
<string name="waypoint_type_hiking_path">footpath</string>
<string name="waypoint_type_hotel">hotel</string>
<string name="waypoint_type_house">house</string>
<string name="waypoint_type_information">information</string>
<string name="waypoint_type_intersection">intersection</string>
<string name="waypoint_type_mail_box">post box</string>
<string name="waypoint_type_market">market</string>
<string name="waypoint_type_meeting_point">meeting point</string>
<string name="waypoint_type_opera">opera</string>
<string name="waypoint_type_parking">parking</string>
<string name="waypoint_type_police_station">police station</string>
<string name="waypoint_type_post_office">post office</string>
<string name="waypoint_type_pothole">pothole</string>
<string name="waypoint_type_railway_crossing">railway crossing</string>
<string name="waypoint_type_restaurant">restaurant</string>
<string name="waypoint_type_shopping">shopping</string>
<string name="waypoint_type_sight">sight</string>
<string name="waypoint_type_store">shop</string>
<string name="waypoint_type_swimming_pool">swimming pool</string>
<string name="waypoint_type_telephone">telephone</string>
<string name="waypoint_type_theater">theatre</string>
<string name="waypoint_type_toilet">toilet</string>
<string name="waypoint_type_tourist_information">tourist information</string>
<string name="waypoint_type_tree">tree</string>
<string name="waypoint_type_tunnel">tunnel</string>
<string name="waypoint_type_waterfall">waterfall</string>
<string name="waypoint_type_water_fountain">water fountain</string>
<string name="waypoint_type_waypoint">waypoint</string>
</resources>
-450
View File
@@ -1,450 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="activity_type_airplane">aeroplane</string>
<string name="activity_type_atv">ATV</string>
<string name="activity_type_biking">biking</string>
<string name="activity_type_blimp">airship</string>
<string name="activity_type_boat">boat</string>
<string name="activity_type_climbing">climbing</string>
<string name="activity_type_commercial_airplane">commercial aeroplane</string>
<string name="activity_type_cross_country_skiing">Cross-country skiing</string>
<string name="activity_type_cycling">cycling</string>
<string name="activity_type_dirt_bike">dirt bike</string>
<string name="activity_type_donkey_back_riding">donkey riding</string>
<string name="activity_type_driving">driving</string>
<string name="activity_type_driving_bus">driving bus</string>
<string name="activity_type_driving_car">driving car</string>
<string name="activity_type_ferry">ferry</string>
<string name="activity_type_frisbee">frisbee</string>
<string name="activity_type_gliding">gliding</string>
<string name="activity_type_hang_gliding">hang gliding</string>
<string name="activity_type_helicopter">helicopter</string>
<string name="activity_type_hiking">walking</string>
<string name="activity_type_horse_back_riding">horse riding</string>
<string name="activity_type_hot_air_balloon">hot air balloon</string>
<string name="activity_type_ice_sailing">ice sailing</string>
<string name="activity_type_inline_skating">inline skating</string>
<string name="activity_type_kayaking">kayaking</string>
<string name="activity_type_kite_surfing">kite surfing</string>
<string name="activity_type_land_sailing">land sailing</string>
<string name="activity_type_mixed_type">mixed type</string>
<string name="activity_type_motor_bike">motor bike</string>
<string name="activity_type_motor_boating">motor boating</string>
<string name="activity_type_mountain_biking">mountain biking</string>
<string name="activity_type_off_trail_hiking">off-trail walking</string>
<string name="activity_type_other">other</string>
<string name="activity_type_paddling">canoeing</string>
<string name="activity_type_para_gliding">para-gliding</string>
<string name="activity_type_rc_airplane">RC aeroplane</string>
<string name="activity_type_rc_boat">RC boat</string>
<string name="activity_type_rc_helicopter">RC helicopter</string>
<string name="activity_type_riding">riding</string>
<string name="activity_type_road_biking">road biking</string>
<string name="activity_type_roller_skiing">roller skiing</string>
<string name="activity_type_rowing">rowing</string>
<string name="activity_type_running">running</string>
<string name="activity_type_sailing">sailing</string>
<string name="activity_type_seaplane">sea plane</string>
<string name="activity_type_skate_boarding">skate boarding</string>
<string name="activity_type_skating">skating</string>
<string name="activity_type_skiing">skiing</string>
<string name="activity_type_sky_jumping">sky jumping</string>
<string name="activity_type_sled">sledding</string>
<string name="activity_type_snow_boarding">snow boarding</string>
<string name="activity_type_snow_shoeing">snow shoeing</string>
<string name="activity_type_speed_walking">speed walking</string>
<string name="activity_type_street_running">street running</string>
<string name="activity_type_surfing">surfing</string>
<string name="activity_type_track_cycling">track cycling</string>
<string name="activity_type_track_running">track running</string>
<string name="activity_type_trail_hiking">trail walking</string>
<string name="activity_type_trail_running">trail running</string>
<string name="activity_type_train">train</string>
<string name="activity_type_ultimate_frisbee">ultimate frisbee</string>
<string name="activity_type_unknown">unknown</string>
<string name="activity_type_wakeboarding">wake boarding</string>
<string name="activity_type_walking">walking</string>
<string name="activity_type_water_skiing">water skiing</string>
<string name="activity_type_wind_surfing">wind surfing</string>
<string name="description_activity_type">Activity type: %1$s</string>
<string name="description_average_moving_pace_in_minute">Average moving pace: %1$s min/km (%2$s min/mi)</string>
<string name="description_average_moving_speed">Average moving speed: %1$.2f km/h (%2$.1f mi/h)</string>
<string name="description_average_pace_in_minute">Average pace: %1$s min/km (%2$s min/mi)</string>
<string name="description_average_speed">Average speed: %1$.2f km/h (%2$.1f mi/h)</string>
<string name="description_elevation_gain">Elevation gain: %1$d m (%2$d ft)</string>
<string name="description_elevation_imperial">Elevation (ft)</string>
<string name="description_elevation_metric">Elevation (m)</string>
<string name="description_fastest_pace_in_minute">Fastest pace: %1$s min/km (%2$s min/mi)</string>
<string name="description_location_accuracy">Accuracy (m)</string>
<string name="description_location_altitude">Altitude (m)</string>
<string name="description_location_bearing">Bearing (deg)</string>
<string name="description_location_latitude">Latitude (deg)</string>
<string name="description_location_longitude">Longitude (deg)</string>
<string name="description_location_speed">Speed (m/s)</string>
<string name="description_max_elevation">Max elevation: %1$d m (%2$d ft)</string>
<string name="description_max_grade">Max grade: %1$d %%</string>
<string name="description_max_speed">Max speed: %1$.2f km/h (%2$.1f mi/h)</string>
<string name="description_min_elevation">Min elevation: %1$d m (%2$d ft)</string>
<string name="description_min_grade">Min grade: %1$d %%</string>
<string name="description_moving_time">Moving time: %1$s</string>
<string name="description_pace_imperial">Pace (min/mi)</string>
<string name="description_pace_metric">Pace (min/km)</string>
<string name="description_recorded_time">Recorded: %1$s</string>
<string name="description_sensor_cadence">Cadence (rpm)</string>
<string name="description_sensor_heart_rate">Heart rate (bpm)</string>
<string name="description_sensor_power">Power (W)</string>
<string name="description_speed_imperial">Speed (mph)</string>
<string name="description_speed_metric">Speed (km/h)</string>
<string name="description_time">Time</string>
<string name="description_total_distance">Total distance: %1$.2f km (%2$.1f mi)</string>
<string name="description_total_time">Total time: %1$s</string>
<string name="description_track_point">Point</string>
<string name="description_track_segment">Segment</string>
<string name="export_all_option">All as %1$s to %2$s</string>
<string name="export_all_title">Export to external storage</string>
<string name="export_external_storage">External storage</string>
<string name="export_external_storage_error">Exported %1$d of %2$s to %3$s</string>
<string name="export_external_storage_option">as %1$s to %2$s</string>
<string name="export_external_storage_progress_message">Exporting to %1$s…</string>
<string name="export_external_storage_success">Exported %1$s to %2$s</string>
<string name="export_title">Export to…</string>
<string name="external_storage_not_available">External storage not available</string>
<string name="external_storage_not_writable">External storage not writable</string>
<string name="files_few">%1$d files</string>
<string name="files_many">%1$d files</string>
<string name="files_one">1 file</string>
<string name="files_other">%1$d files</string>
<string name="files_two">2 files</string>
<string name="files_zero">0 files</string>
<string name="generic_add">Add</string>
<string name="generic_cancel">Cancel</string>
<string name="generic_delete_all_confirm_title">Delete all?</string>
<string name="generic_delete_selected_confirm_title">Delete selected?</string>
<string name="generic_description">Description</string>
<string name="generic_description_line">Description: %1$s</string>
<string name="generic_error_title">Error</string>
<string name="generic_name">Name</string>
<string name="generic_name_line">Name: %1$s</string>
<string name="generic_no">No</string>
<string name="generic_ok">OK</string>
<string name="generic_paused">Paused</string>
<string name="generic_progress_title">Please wait…</string>
<string name="generic_recording">Recording…</string>
<string name="generic_save">Save</string>
<string name="generic_success_title">Success</string>
<string name="generic_tracks">Tracks</string>
<string name="generic_yes">Yes</string>
<string name="gps_location_access">\'Location access\'</string>
<string name="gps_disabled">GPS not enabled. Tap here to go to %1$s. Press the back button to return.</string>
<string name="gps_disabled_location_mode">Select high-accuracy location mode. Tap here to go to %1$s. Press the back button to return.</string>
<string name="gps_disabled_my_location">Current location cannot be determined. Enable more location sources at %1$s and make sure the sky is visible. Try again later.</string>
<string name="gps_disabled_my_location_location_mode">Current location cannot be determined. Select the high-accuracy location mode at %1$s and make sure the sky is visible. Try again later.</string>
<string name="gps_not_found">No GPS found on the device</string>
<string name="gps_starting">Starting GPS</string>
<string name="gps_starting_error">Unable to start GPS</string>
<string name="gps_stopping">Stopping GPS</string>
<string name="gps_wait_for_better_signal">Waiting for a better GPS signal</string>
<string name="gps_wait_for_signal">Waiting for GPS signal</string>
<string name="image_application">Application</string>
<string name="image_arrow">Arrow</string>
<string name="image_marker">Marker</string>
<string name="image_marker_count">Marker count</string>
<string name="image_my_location">My Location</string>
<string name="image_pause">Pause</string>
<string name="image_photo_marker">Photo marker</string>
<string name="image_record">Record</string>
<string name="image_stop">Stop</string>
<string name="image_track">Track</string>
<string name="import_error">Imported %1$d of %2$s from %3$s</string>
<string name="import_no_directory">%1$s does not exist</string>
<string name="import_no_file">There were no files to import. Connect your device to your computer and place the files to be imported in %1$s.</string>
<string name="import_no_file_title">Import files</string>
<string name="import_progress_message">Importing from %1$s…</string>
<string name="import_selection_option">All %1$s from %2$s</string>
<string name="import_selection_title">Import from external storage</string>
<string name="import_success">Imported %1$s from %2$s</string>
<string name="marker_add_error">Unable to insert a marker. No GPS signal. Try again.</string>
<string name="marker_add_success">A marker was inserted</string>
<string name="marker_add_canceled">Cancelled, no marker added</string>
<string name="marker_delete_all_confirm_message">All markers for this track will be permanently deleted from the device</string>
<string name="marker_delete_one_confirm_message">The marker will be permanently deleted from the device</string>
<string name="marker_delete_one_confirm_title">Delete marker?</string>
<string name="marker_delete_multiple_confirm_message">The selected markers will be permanently deleted from the device</string>
<string name="marker_label_end">%1$s (End)</string>
<string name="marker_label_start">%1$s (Start)</string>
<string name="marker_name_format">Marker %1$d</string>
<string name="marker_split_name_format">Split %1$d</string>
<string name="marker_title">%1$d of %2$d</string>
<string name="marker_detail_statistics_title">Since last split marker:</string>
<string name="marker_edit_marker_type">Marker type (e.g. waterfall)</string>
<string name="marker_edit_marker_type_hint">Marker type</string>
<string name="marker_list_empty_message">You don\'t have any markers</string>
<string name="menu_aggregated_statistics">Aggregated stats</string>
<string name="menu_delete">Delete</string>
<string name="menu_delete_all">Delete all</string>
<string name="menu_edit">Edit</string>
<string name="menu_export">Export</string>
<string name="menu_export_all">Export all</string>
<string name="menu_feedback">Feedback</string>
<string name="menu_help">Help</string>
<string name="menu_help_feedback">Help &amp; feedback</string>
<string name="menu_help_forum">Help forum</string>
<string name="menu_import_all">Import all</string>
<string name="menu_insert_marker">Insert marker</string>
<string name="menu_insert_photo">Insert photo</string>
<string name="menu_map">Map</string>
<string name="menu_markers">Markers</string>
<string name="menu_play">Play</string>
<string name="menu_search">Search</string>
<string name="menu_select_all">Select all</string>
<string name="menu_sensor_state">Sensor state</string>
<string name="menu_settings">Settings</string>
<string name="menu_share">Share</string>
<string name="menu_show_on_map">Show on map</string>
<string name="menu_split_frequency">Split frequency</string>
<string name="menu_start_gps">Start GPS</string>
<string name="menu_stop_gps">Stop GPS</string>
<string name="menu_view_photo">View photo</string>
<string name="menu_voice_frequency">Voice frequency</string>
<string name="app_name">OpenTracks</string>
<string name="recording_service">Recording service</string>
<string name="search_global_description">Tracks and markers</string>
<string name="search_list_empty_message">No tracks or markers matched your search</string>
<string name="search_list_marker_track_location">In track ‘%1$s’.</string>
<string name="search_voice_prompt">Say the name of a track or marker</string>
<string name="sensor_state_battery">Battery level</string>
<string name="sensor_state_cadence">Cadence</string>
<string name="sensor_state_cadence_value">%1$d rpm</string>
<string name="sensor_state_connected">Connected</string>
<string name="sensor_state_connecting">Connecting</string>
<string name="sensor_state_disconnected">Disconnected</string>
<string name="sensor_state_heart_rate">Heart rate</string>
<string name="sensor_state_heart_rate_value">%1$d bpm</string>
<string name="sensor_state_last_sensor_time">Last sensor time</string>
<string name="sensor_state_power">Power</string>
<string name="sensor_state_power_value">%1$d W</string>
<string name="sensor_state_sending">Sending</string>
<string name="settings_not_while_recording">Not available while recording a track</string>
<string name="settings_show">Show</string>
<string name="settings_advanced">Advanced</string>
<string name="settings_chart_by_distance">By distance</string>
<string name="settings_chart_by_time">By time</string>
<string name="settings_chart_x_axis">X axis</string>
<string name="settings_recording">Recording</string>
<string name="settings_recording_auto_resume_track_timeout_always_summary">Always resume a recording after reboot</string>
<string name="settings_recording_auto_resume_track_timeout_never_summary">Never resume a recording after reboot</string>
<string name="settings_recording_auto_resume_track_timeout_summary">Resume a recording after reboot if the last recorded location was within the last %1$s</string>
<string name="settings_recording_auto_resume_track_timeout_title">Auto-resume</string>
<string name="settings_recording_default_activity_title">Default activity type</string>
<string name="settings_recording_location_frequency_summary">%1$s between recorded locations</string>
<string name="settings_recording_max_recording_distance_summary">A new segment is created if the distance between two locations is greater than %1$s</string>
<string name="settings_recording_max_recording_distance_title">Max. distance</string>
<string name="settings_recording_min_recording_distance_title">Recording distance interval</string>
<string name="settings_recording_min_recording_interval_title">Recording time interval</string>
<string name="settings_recording_min_required_accuracy_summary">Location is ignored if its accuracy is less than %1$s</string>
<string name="settings_recording_min_required_accuracy_title">GPS accuracy</string>
<string name="settings_recording_track_name_date_iso_8601_option">Date (ISO 8601)</string>
<string name="settings_recording_track_name_date_local_option">Date (local)</string>
<string name="settings_recording_track_name_number_option">Number</string>
<string name="settings_recording_track_name_title">Default track name</string>
<string name="settings_reset">Reset</string>
<string name="settings_reset_confirm_message">All settings will be reverted to default values.</string>
<string name="settings_reset_confirm_title">Reset now?</string>
<string name="settings_reset_done">All settings have been reverted to default values</string>
<string name="settings_sensor">Sensor</string>
<string name="settings_sensor_ant_reset_bike_cadence_sensor">Reset bike cadence</string>
<string name="settings_sensor_ant_reset_combined_bike_sensor">Reset combined bike</string>
<string name="settings_sensor_ant_reset_heart_rate_monitor">Reset heart rate</string>
<string name="settings_sensor_ant_reset_speed_distance_monitor">Reset foot pod</string>
<string name="settings_sensor_bluetooth">Bluetooth</string>
<string name="settings_sensor_bluetooth_pairing">Bluetooth pairing</string>
<string name="settings_sensor_bluetooth_pairing_summary">Open Android\'s Bluetooth settings to pair a sensor</string>
<string name="settings_sensor_bluetooth_sensor">Bluetooth sensor</string>
<string name="settings_sensor_connected">Connected to %1$s</string>
<string name="settings_stats_coordinate">Latitude/Longitude</string>
<string name="settings_stats_grade_elevation">Grade/elevation</string>
<string name="settings_stats_rate_title">Preferred rate</string>
<string name="settings_stats_units_imperial">Imperial (miles, ft)</string>
<string name="settings_stats_units_metric">Metric (km, m)</string>
<string name="settings_stats_units_title">Preferred units</string>
<string name="share_track_emails_hint">Email addresses</string>
<string name="share_track_picker_title">Select an application</string>
<string name="share_track_share_file">Share track file</string>
<string name="share_track_share_file_body">I think you might be interested in this track.\n\nTo view this track, use Google Earth or other
mapping software.\n\n%1$s</string>
<string name="share_track_subject">I would like to share a track with you</string>
<string name="stats_average_moving_pace">Avg. moving pace</string>
<string name="stats_average_moving_speed">Avg. moving speed</string>
<string name="stats_average_pace">Avg. pace</string>
<string name="stats_average_speed">Avg. speed</string>
<string name="stats_elevation">Elevation</string>
<string name="stats_fastest_pace">Fastest pace</string>
<string name="stats_gain">Gain</string>
<string name="stats_grade">Grade</string>
<string name="stats_latitude">Latitude</string>
<string name="stats_longitude">Longitude</string>
<string name="stats_max">Max</string>
<string name="stats_max_speed">Max. speed</string>
<string name="stats_min">Min</string>
<string name="stats_moving_time">Moving time</string>
<string name="stats_pace">Pace</string>
<string name="stats_speed">Speed</string>
<string name="stats_distance">Distance</string>
<string name="stats_total_time">Total time</string>
<string name="track_name_format">Track %1$d</string>
<string name="track_record_notification">Recording your track…</string>
<string name="track_markers">%1$s Markers</string>
<string name="track_delete_one_confirm_message">The track and its markers will be deleted permanently from the device.</string>
<string name="track_delete_one_confirm_title">Delete track?</string>
<string name="track_delete_multiple_confirm_message">The selected tracks and their markers will be deleted permanently from the device.</string>
<string name="track_delete_progress_message">Deleting…</string>
<string name="track_detail_chart_tab">Chart</string>
<string name="track_detail_stats_tab">Stats</string>
<string name="track_edit_activity_type">Activity type (e.g. walking)</string>
<string name="track_edit_activity_type_hint">Activity type</string>
<string name="track_edit_new_track_title">New Track</string>
<string name="track_list_empty_message">Start recording your next adventure here</string>
<string name="track_list_record_error">Unable to start recording. No GPS signal. Try again.</string>
<string name="track_list_record_success">Now recording a new track</string>
<string name="track_widget_config_title">Configure Widget Items</string>
<string name="tracks_few">%1$d tracks</string>
<string name="tracks_many">%1$d tracks</string>
<string name="tracks_one">1 track</string>
<string name="tracks_other">%1$d tracks</string>
<string name="tracks_two">2 tracks</string>
<string name="tracks_zero">0 tracks</string>
<string name="unit_feet">ft</string>
<string name="unit_kilometer">km</string>
<string name="unit_kilometer_per_hour">km/h</string>
<string name="unit_meter">m</string>
<string name="unit_mile">mi</string>
<string name="unit_mile_per_hour">mi/h</string>
<string name="unit_minute_per_kilometer">min/km</string>
<string name="unit_minute_per_mile">min/mi</string>
<string name="value_adapt_accuracy">Adapt for accuracy</string>
<string name="value_adapt_battery_life">Adapt for battery life</string>
<string name="value_always">Always</string>
<string name="value_float_feet">%1$.2f ft</string>
<string name="value_float_kilometer">%1$.2f km</string>
<string name="value_float_meter">%1$.2f m</string>
<string name="value_float_mile">%1$.2f mi</string>
<string name="value_float_mile_poor_gps">%1$.1f mi (poor GPS)</string>
<string name="value_integer_feet">%1$d ft</string>
<string name="value_integer_feet_excellent_gps">%1$d ft (excellent GPS)</string>
<string name="value_integer_feet_recommended">%1$d ft (recommended)</string>
<string name="value_integer_kilobyte">%1$d kB</string>
<string name="value_integer_kilometer">%1$d km</string>
<string name="value_integer_kilometer_hour">%1$d km/h</string>
<string name="value_integer_megabyte">%1$d MB</string>
<string name="value_integer_meter">%1$d m</string>
<string name="value_integer_meter_excellent_gps">%1$d m (excellent GPS)</string>
<string name="value_integer_meter_poor_gps">%1$d m (poor GPS)</string>
<string name="value_integer_meter_recommended">%1$d m (recommended)</string>
<string name="value_integer_mile">%1$d mi</string>
<string name="value_integer_mile_hour">%1$d mph</string>
<string name="value_integer_minute">%1$d min</string>
<string name="value_integer_percent">%1$d %%</string>
<string name="value_integer_second">%1$d s</string>
<string name="value_never">Never</string>
<string name="value_none">None</string>
<string name="value_off">Off</string>
<string name="value_smallest">Smallest</string>
<string name="value_smallest_recommended">Smallest (recommended)</string>
<string name="voice_hours_few">%1$d hours</string>
<string name="voice_hours_many">%1$d hours</string>
<string name="voice_hours_one">1 hour</string>
<string name="voice_hours_other">%1$d hours</string>
<string name="voice_hours_two">2 hours</string>
<string name="voice_hours_zero">0 hours</string>
<string name="voice_minutes_few">%1$d minutes</string>
<string name="voice_minutes_many">%1$d minutes</string>
<string name="voice_minutes_one">1 minute</string>
<string name="voice_minutes_other">%1$d minutes</string>
<string name="voice_minutes_two">2 minutes</string>
<string name="voice_minutes_zero">0 minutes</string>
<string name="voice_pace_per_kilometer">%1$s per kilometre</string>
<string name="voice_pace_per_mile">%1$s per mile</string>
<string name="voice_seconds_few">%1$d seconds</string>
<string name="voice_seconds_many">%1$d seconds</string>
<string name="voice_seconds_one">1 second</string>
<string name="voice_seconds_other">%1$d seconds</string>
<string name="voice_seconds_two">2 seconds</string>
<string name="voice_seconds_zero">0 seconds</string>
<string name="voice_speed_kilometers_per_hour_few">%1$.1f kilometres per hour</string>
<string name="voice_speed_kilometers_per_hour_many">%1$.1f kilometres per hour</string>
<string name="voice_speed_kilometers_per_hour_one">1 kilometre per hour</string>
<string name="voice_speed_kilometers_per_hour_other">%1$.1f kilometres per hour</string>
<string name="voice_speed_kilometers_per_hour_two">2 kilometres per hour</string>
<string name="voice_speed_kilometers_per_hour_zero">0 kilometres per hour</string>
<string name="voice_speed_miles_per_hour_few">%1$.1f miles per hour</string>
<string name="voice_speed_miles_per_hour_many">%1$.1f miles per hour</string>
<string name="voice_speed_miles_per_hour_one">1 mile per hour</string>
<string name="voice_speed_miles_per_hour_other">%1$.1f miles per hour</string>
<string name="voice_speed_miles_per_hour_two">2 miles per hour</string>
<string name="voice_speed_miles_per_hour_zero">0 miles per hour</string>
<string name="voice_template">OpenTracks %1$s in %2$s at %3$s</string>
<string name="voice_total_distance_kilometers_few">total distance %1$.2f kilometres</string>
<string name="voice_total_distance_kilometers_many">total distance %1$.2f kilometres</string>
<string name="voice_total_distance_kilometers_one">total distance 1 kilometre</string>
<string name="voice_total_distance_kilometers_other">total distance %1$.2f kilometres</string>
<string name="voice_total_distance_kilometers_two">total distance 2 kilometres</string>
<string name="voice_total_distance_kilometers_zero">total distance 0 kilometres</string>
<string name="voice_total_distance_miles_few">total distance %1$.2f miles</string>
<string name="voice_total_distance_miles_many">total distance %1$.2f miles</string>
<string name="voice_total_distance_miles_one">total distance 1 mile</string>
<string name="voice_total_distance_miles_other">total distance %1$.2f miles</string>
<string name="voice_total_distance_miles_two">total distance 2 miles</string>
<string name="voice_total_distance_miles_zero">total distance 0 miles</string>
<string name="voice_total_distance_zero">OpenTracks total distance zero.</string>
<string name="waypoint_type_atm">Cashpoint</string>
<string name="waypoint_type_bank">bank</string>
<string name="waypoint_type_bar">bar/pub</string>
<string name="waypoint_type_barbecue">barbecue</string>
<string name="waypoint_type_building">building</string>
<string name="waypoint_type_bus_stop">bus stop</string>
<string name="waypoint_type_cafe">cafe</string>
<string name="waypoint_type_campfire">camp fire</string>
<string name="waypoint_type_campground">Campsites</string>
<string name="waypoint_type_church">church</string>
<string name="waypoint_type_coffee_house">cafe</string>
<string name="waypoint_type_convenience_store">corner shops</string>
<string name="waypoint_type_drinking_water">drinking water</string>
<string name="waypoint_type_falling_rocks">falling rocks</string>
<string name="waypoint_type_ferry">ferry</string>
<string name="waypoint_type_fire_place">fireplace</string>
<string name="waypoint_type_fire_station">fire station</string>
<string name="waypoint_type_fishing">fishing</string>
<string name="waypoint_type_gas_station">petrol station</string>
<string name="waypoint_type_golf_course">golf course</string>
<string name="waypoint_type_grocery_store">grocers</string>
<string name="waypoint_type_hair_dresser">hair dresser</string>
<string name="waypoint_type_harbor">harbour</string>
<string name="waypoint_type_hiking_path">footpath</string>
<string name="waypoint_type_hotel">hotel</string>
<string name="waypoint_type_house">house</string>
<string name="waypoint_type_information">information</string>
<string name="waypoint_type_intersection">intersection</string>
<string name="waypoint_type_mail_box">post box</string>
<string name="waypoint_type_market">market</string>
<string name="waypoint_type_meeting_point">meeting point</string>
<string name="waypoint_type_opera">opera</string>
<string name="waypoint_type_parking">parking</string>
<string name="waypoint_type_police_station">police station</string>
<string name="waypoint_type_post_office">post office</string>
<string name="waypoint_type_pothole">pothole</string>
<string name="waypoint_type_railway_crossing">railway crossing</string>
<string name="waypoint_type_restaurant">restaurant</string>
<string name="waypoint_type_shopping">shopping</string>
<string name="waypoint_type_sight">sight</string>
<string name="waypoint_type_store">shop</string>
<string name="waypoint_type_swimming_pool">swimming pool</string>
<string name="waypoint_type_telephone">telephone</string>
<string name="waypoint_type_theater">theatre</string>
<string name="waypoint_type_toilet">toilet</string>
<string name="waypoint_type_tourist_information">tourist information</string>
<string name="waypoint_type_tree">tree</string>
<string name="waypoint_type_tunnel">tunnel</string>
<string name="waypoint_type_waterfall">waterfall</string>
<string name="waypoint_type_water_fountain">water fountain</string>
<string name="waypoint_type_waypoint">waypoint</string>
</resources>
-453
View File
@@ -1,453 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="activity_type_airplane">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‎‎‏‎‏‎‏‏‎‏‏‎‎‏‏‏‏‏‎‎‎‏‎‏‎‏‎‎‎‏‎‏‏‏‎‎‎‎‎‎‎‎‎‏‏‏‏‏‏‎‎‎‎‎‏‎‎‎‏‏‎airplane‎‏‎‎‏‎</string>
<string name="activity_type_atv">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‏‏‏‏‎‎‎‎‏‏‏‏‏‎‏‎‎‎‎‏‎‎‎‎‏‏‏‎‏‏‏‎‏‏‎‎‏‏‎‏‎‏‎‏‏‏‎‏‎‎‏‎‏‏‎‎‏‏‎‎ATV‎‏‎‎‏‎</string>
<string name="activity_type_biking">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‏‎‏‏‏‎‏‏‏‎‎‎‏‎‎‏‏‏‏‎‏‎‏‎‎‎‎‎‎‎‏‏‏‎‎‎‏‎‏‎‎‏‏‏‎‎‎‏‎‏‏‎‎‎‏‏‎biking‎‏‎‎‏‎</string>
<string name="activity_type_blimp">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‎‏‏‏‏‎‏‏‎‏‏‏‏‎‏‎‎‎‎‏‎‏‎‎‎‎‎‎‎‎‎‎‏‏‏‏‎‎‎‎‏‎‎‏‏‏‏‎‏‏‏‏‏‎‎‎‏‎blimp‎‏‎‎‏‎</string>
<string name="activity_type_boat">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‎‏‏‎‏‏‏‎‏‏‎‎‎‎‎‏‏‎‏‏‎‏‎‏‏‏‎‎‏‎‎‎‏‏‏‏‎‎‎‎‎‏‎‎‎‏‏‎‏‎‎‏‏‏‎‏‎boat‎‏‎‎‏‎</string>
<string name="activity_type_climbing">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‎‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‎‏‏‏‏‏‎‏‎‏‎‎‏‏‎‎‏‎‎‏‎‎‏‏‏‎‏‎‏‎‎‏‏‎‏‏‎climbing‎‏‎‎‏‎</string>
<string name="activity_type_commercial_airplane">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‏‏‎‎‏‏‏‎‎‏‎‎‏‎‏‎‏‏‎‎‏‎‏‏‏‎‏‎‏‏‏‎‎‏‎‏‎‏‏‏‏‎‏‏‎‏‎‎‎‎‎‎‏‏‎‏‎‎‎‎commercial airplane‎‏‎‎‏‎</string>
<string name="activity_type_cross_country_skiing">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‎‎‎‎‎‎‎‏‎‏‎‏‎‏‎‎‎‎‏‎‎‏‎‏‏‎‎‏‏‎‎‎‏‎‏‏‎‎‏‏‎‎‏‎‎‏‏‎‏‏‎‎‏‎‏‎‏‎cross-country skiing‎‏‎‎‏‎</string>
<string name="activity_type_cycling">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‏‏‎‎‏‎‏‎‎‎‏‎‎‎‏‎‏‏‏‎‎‎‏‏‏‎‏‏‎‎‎‏‏‏‎‎‏‎‏‏‏‎‏‏‏‏‎‎‎‎‎‎‎‏‎‏‎‏‏‎cycling‎‏‎‎‏‎</string>
<string name="activity_type_dirt_bike">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‎‏‎‎‏‎‏‏‎‎‏‎‏‎‏‏‎‎‏‏‎‏‏‎‎‏‏‏‏‏‎‏‏‏‎‏‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‏‏‎‏‏‎‎‏‎dirt bike‎‏‎‎‏‎</string>
<string name="activity_type_donkey_back_riding">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‎‎‏‏‏‎‎‏‏‎‏‏‎‎‏‎‏‏‏‎‏‎‏‎‎‏‏‏‏‎‎‎‏‎‎‎‏‎‎‎‏‎‎‏‏‎‎‏‏‎‎‏‎‏‎‏‏‏‏‎donkey back riding‎‏‎‎‏‎</string>
<string name="activity_type_driving">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‏‏‎‎‏‏‎‎‎‎‎‎‎‎‎‏‏‎‏‏‎‏‏‎‏‏‏‎‏‎‏‏‎‎‏‎driving‎‏‎‎‏‎</string>
<string name="activity_type_driving_bus">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‎‏‎‏‎‎‏‎‏‎‏‎‎‏‎‎‎‏‏‏‎‏‎‎‎‏‎‏‎‎‎‏‎‎‎‏‏‏‎‎‎‏‎‏‎‎‎driving bus‎‏‎‎‏‎</string>
<string name="activity_type_driving_car">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‏‎‏‏‎‎‎‏‎‎‎‏‎‏‎‎‎‏‏‎‏‎‎‎‏‏‎‎‎‎‎‎‏‎‎‏‎‏‏‎‏‏‏‏‏‎‏‏‏‏‎‎‎‏‎‏‎‎‏‎driving car‎‏‎‎‏‎</string>
<string name="activity_type_ferry">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‏‏‏‎‏‎‎‏‎‏‏‎‏‎‏‏‏‏‎‎‎‎‎‏‏‎‎‏‎‏‏‎‏‎‏‏‎‎‏‏‏‏‎‏‏‎‎‏‎‎‏‏‎‎‎‎ferry‎‏‎‎‏‎</string>
<string name="activity_type_frisbee">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‎‎‎‏‏‏‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‏‏‏‏‏‎‏‎‎‎‏‎‏‎‎‏‎‏‎‏‎‎‎‏‎‎‎‎‎‏‏‎‏‎frisbee‎‏‎‎‏‎</string>
<string name="activity_type_gliding">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‎‏‏‏‏‎‎‏‏‏‏‎‎‎‏‏‏‎‏‎‏‏‏‎‎‎‎‎‏‎‏‏‎‎‎‎‎‎‎‎‏‎‎‏‎‏‏‏‏‎‏‏‏‎‎‏‏‎‎‎gliding‎‏‎‎‏‎</string>
<string name="activity_type_hang_gliding">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‎‎‎‎‏‏‏‏‎‏‎‎‏‏‏‏‎‏‎‎‎‏‏‎‎‏‎‎‎‏‏‎‏‏‏‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‎‏‏‎‏‏‎‏‎‎hang gliding‎‏‎‎‏‎</string>
<string name="activity_type_helicopter">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‎‏‎‏‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‎‏‎‏‎‎‏‎‏‎‎‏‎‏‏‏‎‏‎‎‎‎‏‎‏‏‏‏‎‎‎‎‎‏‎‏‏‎helicopter‎‏‎‎‏‎</string>
<string name="activity_type_hiking">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‏‎‎‎‎‎‎‏‎‏‎‎‎‎‎‎‏‎‏‎‎‎‎‎‎‎‏‏‎‏‎‏‏‏‏‏‎‎‎‏‎‎‎‎‏‎‎‎‎‏‎‎‏‎‎hiking‎‏‎‎‏‎</string>
<string name="activity_type_horse_back_riding">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‎‏‎‏‏‏‏‎‏‎‏‎‎‎‎‎‏‎‎‎‏‎‎‏‏‎‏‏‏‎‏‎‏‎‎‎‎‏‎‎‏‏‎‎‎‎‏‎‏‏‎‏‏‎‏‎‏‏‎‎horse back riding‎‏‎‎‏‎</string>
<string name="activity_type_hot_air_balloon">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‎‎‏‏‎‎‏‏‎‏‏‎‎‎‏‏‎‏‎‏‏‏‏‏‏‎‏‏‎‎‏‏‎‏‏‏‎‎‏‏‎‏‎‎‎‏‏‎‏‎‏‎‎‏‏‎‎‏‎‎‎hot air balloon‎‏‎‎‏‎</string>
<string name="activity_type_ice_sailing">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‎‏‎‎‏‏‎‎‏‎‏‎‏‏‏‏‏‎‎‏‎‏‎‏‏‎‏‎‎‎‏‏‎‏‎‏‏‎‎‎‏‏‎‏‏‎‎‏‏‏‎‎‏‎‏‏‏‏‎‎ice sailing‎‏‎‎‏‎</string>
<string name="activity_type_inline_skating">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‏‎‏‏‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‏‎‏‎‏‎‏‏‎‏‎‎‏‎‏‎‏‎‎‏‎‏‏‎‎‎‏‏‏‎‏‎‏‎‏‏‎‎inline skating‎‏‎‎‏‎</string>
<string name="activity_type_kayaking">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‏‎‏‏‏‎‎‏‎‏‎‏‎‏‎‏‏‏‎‎‎‏‎‎‎‎‏‏‏‎‎‏‎‎‎‎‏‏‏‎‎‎‏‏‏‏‎‏‏‎‎‏‎‏‎‎‎‏‏‎kayaking‎‏‎‎‏‎</string>
<string name="activity_type_kite_surfing">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‎‏‎‏‏‎‏‏‏‎‏‎‏‎‏‏‏‎‏‏‏‎‏‏‎‏‏‎‏‏‎‎‎‎‏‎‎‎‏‎‎‏‎‎‎‏‏‎‏‏‎‎‎‎‎‏‎‎kite surfing‎‏‎‎‏‎</string>
<string name="activity_type_land_sailing">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‏‏‎‏‏‏‏‏‎‎‎‎‏‏‎‏‏‎‏‎‏‏‎‏‏‎‎‏‏‎‏‏‏‎‏‏‎‎‎‏‎‏‎‎‏‏‎‎‎‏‏‎‎‏‎‎‎‎land sailing‎‏‎‎‏‎</string>
<string name="activity_type_mixed_type">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‎‎‏‏‏‏‎‏‎‏‎‏‎‏‎‏‏‎‏‏‎‏‎‏‎‎‏‎‎‎‏‏‎‎‏‎‎‏‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‎mixed type‎‏‎‎‏‎</string>
<string name="activity_type_motor_bike">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‏‏‎‎‎‏‎‏‏‎‎‎‎‎‏‏‏‏‎‎‎‎‏‏‏‎‎‏‎‏‎‏‏‏‏‎‏‎‎‎‎‏‎‏‏‏‏‎‎‏‎‎‏‎‎‎‎‎‏‎motor bike‎‏‎‎‏‎</string>
<string name="activity_type_motor_boating">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‏‏‏‏‎‏‎‎‏‏‎‏‏‎‎‎‎‏‎‏‎‎‏‎‎‏‏‏‎‏‎‎‏‏‏‏‎‏‏‎‎‎‏‎‎‎‎‎‏‎‏‎‎‎‎‏‎‎motor boating‎‏‎‎‏‎</string>
<string name="activity_type_mountain_biking">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‏‏‏‎‏‏‎‎‎‎‎‎‎‏‎‎‎‏‏‏‏‎‏‎‎‎‏‎‎‎‏‎‎‎‎‏‎‏‏‎‏‏‎‏‎‏‏‎‎‏‏‎‏‏‎‏‎‎‎‎mountain biking‎‏‎‎‏‎</string>
<string name="activity_type_off_trail_hiking">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‏‎‎‏‎‎‏‎‏‏‏‏‏‎‏‏‎‏‎‎‎‎‎‎‏‏‎‎‎‎‏‏‎‏‏‏‏‎‏‎‎‎‎‎‏‏‎‏‎‏‎‎‏‎‎‎‎‎‏‏‎off trail hiking‎‏‎‎‏‎</string>
<string name="activity_type_other">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‎‏‎‏‎‎‏‎‏‎‏‏‎‎‏‎‎‎‏‏‎‏‎‏‎‎‎‏‎‏‎‏‎‎‏‏‏‏‎‎‏‎‎‎‎‏‏‎‎‏‏‏‎‎‏‎‏‎‏‎‎other‎‏‎‎‏‎</string>
<string name="activity_type_paddling">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‏‏‎‎‏‏‏‏‏‏‏‎‎‎‎‏‏‎‏‎‏‎‏‏‎‏‏‎‏‏‏‏‏‎‏‎‎‎‎‏‎‎‎‎‎‎‎‏‏‎‎‎‏‎‎‏‏‎‎‎paddling‎‏‎‎‏‎</string>
<string name="activity_type_para_gliding">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‎‎‎‏‎‏‏‎‏‎‎‎‏‏‏‎‏‎‎‎‎‏‏‎‏‎‎‎‎‏‎‏‎‏‎‎‎‎‎‏‎‎‏‎‎‎‏‏‎‎‏‏‎‏‎‏‎‏‏‎para gliding‎‏‎‎‏‎</string>
<string name="activity_type_rc_airplane">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‎‏‏‏‏‎‎‏‎‎‎‎‎‏‎‏‎‏‏‏‎‎‎‎‎‎‏‏‏‎‎‎‏‏‎‏‎‎‎‏‎‎‏‎‏‎‎‏‏‎‏‏‎‏‎‎‏‎‎‎‏‎‎RC airplane‎‏‎‎‏‎</string>
<string name="activity_type_rc_boat">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‎‏‎‎‎‎‏‏‎‎‏‏‏‏‎‎‏‎‏‏‏‏‎‎‏‏‏‎‎‏‎‎‏‏‎‏‏‎‎‏‎‎‎‎‎‎‎‎‏‏‎‎‎‏‏‏‏‎‏‎RC boat‎‏‎‎‏‎</string>
<string name="activity_type_rc_helicopter">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‎‎‏‏‏‏‏‎‎‏‎‏‎‎‎‏‎‎‏‎‎‏‎‏‎‎‏‏‏‏‏‎‏‏‏‏‏‏‎‏‏‏‏‏‏‎‏‎‏‏‏‏‎‎‏‏‏‎‏‎RC helicopter‎‏‎‎‏‎</string>
<string name="activity_type_riding">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‏‎‏‎‏‎‎‏‏‏‏‏‎‎‏‏‎‎‎‏‎‏‎‏‏‏‏‏‎‏‎‎‏‏‎‏‏‏‏‏‏‎riding‎‏‎‎‏‎</string>
<string name="activity_type_road_biking">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‏‎‎‏‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‎‎‎‏‎‏‏‎‏‎‏‏‏‎‏‏‎‎‏‎‎‎‏‎‏‎‎‏‎‏‏‎‎‎‎‏‏‎‏‎road biking‎‏‎‎‏‎</string>
<string name="activity_type_roller_skiing">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‏‏‎‏‎‏‎‎‎‏‎‎‏‎‏‏‏‎‏‏‎‎‎‏‎‎‎‎‎‎‎‎‎‎‏‎‎‎‏‏‎‎‎‎‎‏‏‏‏‎‏‏‏‏‏‎‎‏‎‎roller skiing‎‏‎‎‏‎</string>
<string name="activity_type_rowing">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‎‎‎‎‎‎‎‎‏‎‎‏‏‏‏‎‏‎‎‎‏‏‏‏‏‎‏‏‎‏‎‏‏‎‎‏‎‏‏‎‎‏‎‏‏‎‏‎‎‏‏‎‏‎‏‏‏‎‏‎rowing‎‏‎‎‏‎</string>
<string name="activity_type_running">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‎‏‏‏‎‏‎‎‏‏‎‎‏‎‏‏‏‎‎‏‏‏‏‎‏‎‏‎‎‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‎‎‏‎‏‎‎‎‎‎‏‎‎‎‏‎‎‎running‎‏‎‎‏‎</string>
<string name="activity_type_sailing">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‎‎‎‎‎‎‎‎‏‏‎‏‏‎‎‎‏‏‏‏‎‎‎‏‎‎‏‏‎‎‎‏‏‏‎‎‏‎‏‎‏‎‏‏‎‏‏‎‎‎‎‎‎‎‏‏‏‏‏‎sailing‎‏‎‎‏‎</string>
<string name="activity_type_seaplane">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‎‏‎‎‏‎‎‏‎‎‏‎‏‏‎‎‎‎‏‎‏‏‏‏‏‏‎‎‎‎‏‏‎‎‎‏‎‎‎‏‏‏‏‏‎‎‎‏‎‏‎‏‎‏‎‎‎‏‏‎seaplane‎‏‎‎‏‎</string>
<string name="activity_type_skate_boarding">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‎‎‎‏‎‏‎‏‏‏‎‏‎‏‎‏‏‏‏‏‎‏‎‎‎‎‏‎‏‎‏‎‎‏‏‏‎‏‎‏‏‏‎‏‏‎‏‏‏‏‎‎‏‎‏‎‎‎‏‎skate boarding‎‏‎‎‏‎</string>
<string name="activity_type_skating">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‎‏‏‏‏‎‎‎‏‎‏‎‏‏‏‎‏‏‏‎‏‏‎‏‏‏‏‏‎‏‏‎‎‎‎‎‏‏‏‏‎‎‏‏‏‎‏‎‏‎‏‏‏‎‏‏‎‎‏‎skating‎‏‎‎‏‎</string>
<string name="activity_type_skiing">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‎‎‏‏‎‏‏‏‏‏‏‎‏‏‏‎‏‎‎‏‏‏‎‏‎‏‏‏‏‏‎‏‏‏‎‏‎‎‏‎‏‏‎‏‏‏‏‎‎‏‎‏‎‏‎‏‏‏‎‎skiing‎‏‎‎‏‎</string>
<string name="activity_type_sky_jumping">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‏‎‏‎‎‏‎‏‏‏‏‎‏‎‎‎‎‏‏‎‎‏‏‎‏‏‏‏‏‎‎‏‏‏‎‎‏‏‎‏‏‏‎‎‏‎‏‏‏‏‎‏‎‎‏‎‎‏‏‎sky jumping‎‏‎‎‏‎</string>
<string name="activity_type_sled">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‏‎‎‏‏‎‏‎‏‏‏‎‏‎‏‏‏‎‎‎‎‏‏‏‏‎‏‏‏‎‎‏‎‏‎‏‏‎‎‏‎‏‏‏‎‏‎‏‎‎‏‎‎‏‎‎‏‏‎‎sled‎‏‎‎‏‎</string>
<string name="activity_type_snow_boarding">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‎‎‎‏‎‎‎‏‏‏‎‎‎‎‎‏‏‏‎‏‎‏‏‏‎‏‏‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‎‏‎‎‏‎‏‏‎‎‏‏‎‏‎‎‏‎snow boarding‎‏‎‎‏‎</string>
<string name="activity_type_snow_shoeing">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‎‎‎‏‎‏‏‎‏‏‏‏‏‎‏‎‏‎‎‎‎‏‎‎‎‎‎‏‏‎‎‏‎‎‏‏‎‏‏‎‏‏‎‎‏‎‎‏‏‎‏‏‎‏‏‏‏‎snow shoeing‎‏‎‎‏‎</string>
<string name="activity_type_speed_walking">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‎‎‏‎‎‎‏‏‎‎‎‎‎‏‎‏‎‏‎‏‎‏‎‎‎‎‏‏‏‎‎‎‎‎‏‏‎‏‎‏‏‏‎‎‏‏‎‎‎‏‏‎‏‎‎‏‏‎‏‏‎speed walking‎‏‎‎‏‎</string>
<string name="activity_type_street_running">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎‏‎‏‏‎‏‏‏‎‏‎‏‎‏‎‎‏‏‏‎‎‏‏‏‏‏‏‏‏‎‎‎‎‎‎‎‏‏‎‎‎‏‎‏‏‎‎‏‏‏‎‏‎‎‎street running‎‏‎‎‏‎</string>
<string name="activity_type_surfing">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‏‏‎‎‎‏‏‏‏‏‎‎‎‎‏‏‎‎‏‎‎‏‎‎‎‎‏‎‎‎‏‏‎‎‎‏‏‎‏‎‎‎‏‏‎‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎surfing‎‏‎‎‏‎</string>
<string name="activity_type_track_cycling">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‏‏‎‏‎‎‏‏‏‏‏‏‏‎‎‏‎‏‎‎‎‎‎‏‏‏‏‎‎‏‎‎‎‎‏‏‎‎‎‎‏‏‏‎‏‎‎‎‏‎track cycling‎‏‎‎‏‎</string>
<string name="activity_type_track_running">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‎‎‏‏‎‎‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‏‏‎‏‎‎‏‎‎‎‎‏‏‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‏‎track running‎‏‎‎‏‎</string>
<string name="activity_type_trail_hiking">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‏‎‏‎‎‎‏‏‎‎‏‏‏‎‏‏‎‎‎‎‎‎‏‎‎‏‎‏‏‏‎‏‎‎‎‎‎‏‎‏‏‏‎‏‎‏‎‎‏‏‏‎‎‎‎‎‏‏‏‎trail hiking‎‏‎‎‏‎</string>
<string name="activity_type_trail_running">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‎‎‏‎‏‏‏‎‏‏‏‎‏‏‏‎‎‎‏‏‎‏‎‏‎‎‏‎‏‎‎‏‏‎‎‎‏‏‏‎‏‎‏‎‎‏‏‎‎‏‎‎‏‏‎‏‏‏‏‎trail running‎‏‎‎‏‎</string>
<string name="activity_type_train">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‎‎‏‏‏‎‏‏‏‏‎‎‎‎‏‎‏‎‏‏‏‎‎‎‎‎‏‏‎‎‎‎‏‏‏‏‎‏‏‏‏‎‎‏‏‎‏‏‎‎‎‏‏‎‏‏‎‎‎‎train‎‏‎‎‏‎</string>
<string name="activity_type_ultimate_frisbee">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‎‎‏‎‏‏‎‎‎‎‎‏‎‏‎‏‏‏‎‎‏‏‎‏‏‎‏‏‎‏‎‏‎‎‎‏‎‏‏‏‏‏‏‎‎‎‏‎‎‎‎‎‏‎‎‎‎‏‎‎ultimate frisbee‎‏‎‎‏‎</string>
<string name="activity_type_unknown">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‎‎‏‏‏‎‎‎‏‎‎‎‏‎‎‎‏‏‏‎‏‎‎‎‎‎‏‏‎‎‏‏‎‏‎‎‎‏‎‏‏‏‎‎‎‏‏‎‏‎‎‏‏‎‎‏‏‎‎‎unknown‎‏‎‎‏‎</string>
<string name="activity_type_wakeboarding">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‎‎‎‏‎‎‎‏‎‏‎‏‏‏‎‎‏‏‎‎‏‏‎‏‎‎‎‏‏‏‏‎‏‏‎‏‎‏‏‎‎‏‎‎‎‏‎‎‏‎‎‏‎‏‎‎‏‎wakeboarding‎‏‎‎‏‎</string>
<string name="activity_type_walking">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‎‎‏‏‏‎‏‎‎‏‏‎‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‎‎‎‏‏‎‏‎‎‏‏‎‎‏‏‎‎‎‎‎‏‏‎‏‏‎‏‎‎walking‎‏‎‎‏‎</string>
<string name="activity_type_water_skiing">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‎‎‎‏‏‎‎‎‏‎‏‏‎‎‎‎‏‏‏‎‎‏‏‎‏‏‏‏‎‏‏‎‏‎‎‎‎‏‎‎‎‏‏‎‎‏‎‎‏‎‏‎‏‏‎‎‎‏‎‎water skiing‎‏‎‎‏‎</string>
<string name="activity_type_wind_surfing">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‎‏‎‎‎‎‎‎‎‏‏‏‏‎‏‎‎‏‎‏‎‎‎‎‏‎‏‏‏‏‎‎‎‏‎‏‎‎‎‏‎‏‎‎‎‎‏‏‎‎‏‏‎‏‎‎‏‎‏‎wind surfing‎‏‎‎‏‎</string>
<string name="description_activity_type">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‎‏‏‎‎‎‎‏‎‏‏‏‏‎‎‏‎‎‏‎‎‎‎‏‎‏‎‏‏‎‏‏‎‎‎‏‎‏‎‎‎‎‏‎‎‎‏‏‏‎‏‏‏‏‏‏‎‏‏‎Activity type: ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎‎‏‎‎‏‎</string>
<string name="description_average_moving_pace_in_minute">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‎‏‏‏‎‏‏‏‏‏‎‎‎‎‏‏‏‏‎‏‎‎‎‎‎‎‎‏‏‏‏‎‎‎‏‏‎‎‎‎‎‎‏‏‎‏‎‏‏‎‏‎‎‎‏‏‏‎‎‎Average moving pace: ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ min/km (‎‏‎‎‏‏‎%2$s‎‏‎‎‏‏‏‎ min/mi)‎‏‎‎‏‎</string>
<string name="description_average_moving_speed">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‎‏‎‏‎‏‏‏‎‎‏‎‏‎‎‏‏‎‎‏‎‎‎‎‎‏‎‎‏‎‎‎‏‏‏‎‏‏‎‏‏‏‎‏‎‎‏‏‎Average moving speed: ‎‏‎‎‏‏‎%1$.2f‎‏‎‎‏‏‏‎ km/h (‎‏‎‎‏‏‎%2$.1f‎‏‎‎‏‏‏‎ mi/h)‎‏‎‎‏‎</string>
<string name="description_average_pace_in_minute">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‏‎‏‏‏‏‏‏‎‏‏‎‎‏‏‎‎‎‏‏‏‎‏‏‏‎‏‏‏‏‎‎‎‎‏‏‎‎‎‎‎‎‏‏‎‎‎‏‏‏‎‎‏‎‏‎‎‎‏‎Average pace: ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ min/km (‎‏‎‎‏‏‎%2$s‎‏‎‎‏‏‏‎ min/mi)‎‏‎‎‏‎</string>
<string name="description_average_speed">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‏‏‏‎‏‎‎‏‎‏‏‏‎‏‏‎‎‎‏‏‎‏‏‎‎‎‎‎‎‏‏‎‏‎‏‎‏‎‏‏‎‎‎‎‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎Average speed: ‎‏‎‎‏‏‎%1$.2f‎‏‎‎‏‏‏‎ km/h (‎‏‎‎‏‏‎%2$.1f‎‏‎‎‏‏‏‎ mi/h)‎‏‎‎‏‎</string>
<string name="description_elevation_gain">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‎‎‏‎‎‎‏‎‎‎‎‎‎‏‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‎‏‏‎‎‏‎‎‏‏‏‎‎‏‏‎Elevation gain: ‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ m (‎‏‎‎‏‏‎%2$d‎‏‎‎‏‏‏‎ ft)‎‏‎‎‏‎</string>
<string name="description_elevation_imperial">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‎‎‏‏‎‎‎‏‎‎‏‎‏‏‎‏‎‎‏‏‏‏‏‏‎‏‎‏‎‎‎‏‎‎‎‎‏‏‎‏‏‎‎‏‎‏‏‏‎‏‏‎‏‎‎‏‎‏‎‎Elevation (ft)‎‏‎‎‏‎</string>
<string name="description_elevation_metric">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‎‎‏‏‎‏‎‎‎‏‏‏‏‎‏‎‏‏‎‎‎‏‎‎‏‎‎‎‎‏‎‎‏‏‎‎‏‎‏‎‎‏‎‏‏‎‏‏‏‏‏‏‎‎Elevation (m)‎‏‎‎‏‎</string>
<string name="description_fastest_pace_in_minute">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‏‏‏‏‎‏‏‎‎‎‏‎‏‏‎‏‎‏‏‎‏‎‎‎‎‎‎‎‏‏‏‎‏‎‏‏‏‎‎‏‏‎‏‏‎‎‏‎‏‏‎‏‏‎‏‎‏‎‏‎Fastest pace: ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ min/km (‎‏‎‎‏‏‎%2$s‎‏‎‎‏‏‏‎ min/mi)‎‏‎‎‏‎</string>
<string name="description_location_accuracy">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‎‏‎‏‏‎‎‏‏‏‎‎‏‏‎‎‎‏‏‎‎‎‎‏‎‎‎‏‏‎‎‎‏‎‏‏‏‎‏‎‏‏‏‏‎‏‏‎‎‎‎‏‏‎‎‏‎‎Accuracy (m)‎‏‎‎‏‎</string>
<string name="description_location_altitude">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‏‎‏‎‎‏‏‎‏‏‎‎‎‎‎‏‏‎‎‎‏‏‎‎‎‏‎‎‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‎‎‎‏‎‎‎‎‏‏‏‎‏‏‏‎‎Altitude (m)‎‏‎‎‏‎</string>
<string name="description_location_bearing">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‏‏‎‏‎‎‎‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‎‎‎‏‎‏‏‏‎‎‏‎‎‏‎‏‎‎‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‏‏‎‏‎Bearing (deg)‎‏‎‎‏‎</string>
<string name="description_location_latitude">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‎‎‏‏‎‎‎‎‎‎‎‎‏‎‏‎‎‎‎‏‏‎‎‏‏‎‎‎‎‏‎‏‏‎‎‏‏‏‎‏‏‎‏‏‎‎‏‎‏‎‎‎‎‏‎‏‎‎‏‎‎Latitude (deg)‎‏‎‎‏‎</string>
<string name="description_location_longitude">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‏‏‏‏‎‎‎‏‏‎‏‎‏‎‏‏‏‎‎‎‏‎‎‎‏‏‎‎‎‎‎‎‏‏‎‏‎‏‎‎‏‏‏‎‏‎‏‎‎‏‏‎‏‎‎‏‏‎‏‎Longitude (deg)‎‏‎‎‏‎</string>
<string name="description_location_speed">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‎‏‎‎‎‏‏‏‏‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‏‎‎‎‏‏‏‎‎‏‏‏‏‏‏‎‎‎‏‎‎‎‏‎‎‏‏‏‏‏‎‎‎Speed (m/s)‎‏‎‎‏‎</string>
<string name="description_max_elevation">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‎‎‏‏‎‎‏‎‏‎‎‏‏‎‏‏‎‏‎‏‏‏‏‎‏‎‏‎‎‎‎‏‎‏‎‎‎‏‏‎‏‎‏‏‏‎‎‎‏‎‏‎‎‎‏‎‏‎‎‎Max elevation: ‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ m (‎‏‎‎‏‏‎%2$d‎‏‎‎‏‏‏‎ ft)‎‏‎‎‏‎</string>
<string name="description_max_grade">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‎‏‎‎‏‎‎‏‎‏‏‏‎‎‏‏‎‎‎‏‎‎‏‎‏‏‎‏‎‎‏‎‎‏‏‏‏‏‎‎‎‏‎‏‎‏‎‎‏‏‏‎‎‏‏‏‏‎‎‎Max grade: ‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ ‎‏‎‎‏‏‎%%‎‏‎‎‏‏‏‎‎‏‎‎‏‎</string>
<string name="description_max_speed">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‏‎‎‎‎‏‎‏‏‏‎‏‎‎‏‎‏‎‏‏‏‏‏‎‏‏‏‎‏‏‏‏‎‏‎‏‎‏‏‏‎‏‏‏‏‎‎‏‏‏‏‎‎‏‎‎‏‏‎‎Max speed: ‎‏‎‎‏‏‎%1$.2f‎‏‎‎‏‏‏‎ km/h (‎‏‎‎‏‏‎%2$.1f‎‏‎‎‏‏‏‎ mi/h)‎‏‎‎‏‎</string>
<string name="description_min_elevation">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‎‏‏‎‏‏‎‏‎‎‎‎‏‏‎‏‎‎‎‏‎‎‏‏‎‏‎‏‎‏‎‏‏‎‏‎‏‎‎‎‎‏‏‎‏‎‎‎‎‏‏‏‎‏‏‎‏‏‎‏‎Min elevation: ‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ m (‎‏‎‎‏‏‎%2$d‎‏‎‎‏‏‏‎ ft)‎‏‎‎‏‎</string>
<string name="description_min_grade">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‎‏‏‏‏‎‏‏‎‏‏‏‏‏‎‏‎‎‏‎‏‎‎‎‏‏‏‎‏‏‏‎‏‏‏‏‎‎‎‏‎‏‎‏‎‏‎‎‎‎‏‎‏‎‏‏‏‎‏‎Min grade: ‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ ‎‏‎‎‏‏‎%%‎‏‎‎‏‏‏‎‎‏‎‎‏‎</string>
<string name="description_moving_time">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‎‎‎‏‎‎‏‏‎‏‎‏‎‎‎‏‎‎‏‎‎‏‎‎‏‏‎‎‏‎‎‎‎‏‏‎‏‏‏‏‏‏‎‎‎‎‎‎‎‎‏‏‎‎‏‎‎‎‎‎‎Moving time: ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎‎‏‎‎‏‎</string>
<string name="description_pace_imperial">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‏‏‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‎‏‏‎‏‏‏‏‏‎‎‏‎‏‏‎‏‏‎‎‏‎‎‎‏‎‎‏‎‏‎‎‏‎‎‏‎‏‏‎‎‎Pace (min/mi)‎‏‎‎‏‎</string>
<string name="description_pace_metric">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‏‏‏‏‎‏‏‎‎‎‎‏‎‏‏‏‎‏‏‏‏‎‏‏‎‎‎‎‎‏‏‎‎‏‏‎‏‎‎‏‏‎‏‏‏‎‎‏‎‏‎‏‏‏‎‎‎‏‎‎Pace (min/km)‎‏‎‎‏‎</string>
<string name="description_recorded_time">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‏‏‎‎‏‏‎‏‎‎‏‎‎‏‎‎‎‏‎‏‏‎‏‎‏‎‏‏‏‏‏‎‎‏‎‎‏‏‎‏‎‏‎‏‏‏‎‎‎‏‎‎‏‎‏‎‎‏‏‎Recorded: ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎‎‏‎‎‏‎</string>
<string name="description_sensor_cadence">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‎‏‏‎‎‏‎‎‎‎‎‏‏‏‎‎‏‏‏‎‏‎‎‎‎‎‏‎‎‏‎‎‎‏‏‏‎‏‏‏‏‎‎‏‎‎‏‎‏‏‎‏‏‎‏‏‏‎‎‎Cadence (rpm)‎‏‎‎‏‎</string>
<string name="description_sensor_heart_rate">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‎‎‎‏‎‏‎‏‏‎‎‏‎‏‎‏‎‎‏‎‎‏‎‎‎‎‎‎‎‏‎‏‏‏‏‎‎‎‎‏‎‎‏‎‏‎‎‎‎‎‎‏‏‏‏‏‎‏‏‎Heart rate (bpm)‎‏‎‎‏‎</string>
<string name="description_sensor_power">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‏‏‏‎‏‎‎‎‎‏‏‏‏‎‎‏‏‏‏‏‎‏‎‏‎‏‎‎‏‎‎‎‎‎‏‏‏‎‏‎‎‎‎‏‎‎‏‏‏‏‎‎‏‏‏‎Power (W)‎‏‎‎‏‎</string>
<string name="description_speed_imperial">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‏‎‎‎‎‏‏‎‏‎‎‏‏‏‎‏‎‏‏‎‎‎‏‎‏‏‏‎‏‎‎‏‏‎‏‏‏‏‎‎‎‏‎‎‎‏‏‎‎‏‎‎‏‎‎‏‏‎‎‎Speed (mi/hr)‎‏‎‎‏‎</string>
<string name="description_speed_metric">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‏‎‏‏‎‎‏‎‎‏‎‏‏‎‎‎‎‎‏‎‏‏‏‎‎‏‏‏‏‎‏‏‎‎‏‎‏‏‏‎‎‎‏‎‎‏‎‏‎‎‎‏‎‏‎‏‎‏‏‎Speed (km/hr)‎‏‎‎‏‎</string>
<string name="description_time">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‎‏‏‎‎‏‏‏‏‏‏‎‎‏‏‎‏‎‎‎‏‏‎‏‎‏‎‎‎‎‎‏‎‏‏‏‎‎‏‎‏‎‏‏‎‎‎‏‎‎‎‏‎‎‎‎‏‏‏‎Time‎‏‎‎‏‎</string>
<string name="description_total_distance">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‎‏‏‎‏‎‏‏‎‏‏‎‎‏‎‎‏‏‏‎‏‏‏‏‎‎‏‎‎‏‎‎‏‏‎‏‏‎‏‏‏‎‎‏‏‏‏‎‎‎‏‎‏‎‏‏‏‎‏‎Total distance: ‎‏‎‎‏‏‎%1$.2f‎‏‎‎‏‏‏‎ km (‎‏‎‎‏‏‎%2$.1f‎‏‎‎‏‏‏‎ mi)‎‏‎‎‏‎</string>
<string name="description_total_time">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‎‏‏‎‎‎‏‏‎‏‎‎‎‏‏‎‏‏‎‎‎‎‏‏‎‎‎‎‎‎‏‏‎‏‎‎‏‏‎‎‎‎‏‎‎‏‏‏‎‏‏‎‎‎‎‎‎‎Total time: ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎‎‏‎‎‏‎</string>
<string name="description_track_point">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‏‏‎‏‎‏‏‎‏‏‎‏‎‎‏‏‎‎‎‎‎‏‏‎‏‏‎‎‏‎‏‏‎‎‏‎‏‏‎‎‎‎‎‏‎‏‏‎‏‎‎‏‏‏‏‏‏‎Point‎‏‎‎‏‎</string>
<string name="description_track_segment">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‎‏‎‏‏‏‎‏‏‎‎‏‏‎‏‏‎‏‎‏‏‏‎‏‏‎‏‏‎‏‏‏‎‎‎‏‏‎‏‎‏‏‎‏‎‎‏‏‏‎‏‎‎‏‎‎‏‏‏‎Segment‎‏‎‎‏‎</string>
<string name="export_all_option">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‎‏‎‏‏‏‏‎‎‎‎‎‎‏‏‏‎‏‏‎‎‏‏‎‏‏‎‎‏‏‏‎‏‎‏‏‏‎‏‎‏‏‎‎‎‏‎‎‏‏‎‎‏‏‏‏‏‎All as ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ to ‎‏‎‎‏‏‎%2$s‎‏‎‎‏‏‏‎‎‏‎‎‏‎</string>
<string name="export_all_title">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‏‎‏‎‏‏‏‏‎‏‏‎‎‎‏‎‏‏‏‏‏‎‎‎‎‏‎‏‎‏‎‎‏‏‎‎‏‏‏‏‏‎‎‎‏‏‎‏‏‎‎‏‎Export to external storage‎‏‎‎‏‎</string>
<string name="export_external_storage">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‎‎‎‏‎‏‎‏‎‏‏‏‏‏‏‎‏‏‎‏‏‎‏‎‎‎‎‎‏‎‎‎‏‎‎‎‎‏‏‏‎‎‏‏‏‏‏‎‏‎‏‎‏‏‏‎‎‏‎‎External storage‎‏‎‎‏‎</string>
<string name="export_external_storage_error">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‎‏‎‎‏‏‏‎‎‏‎‎‎‎‎‎‏‏‏‏‎‏‏‏‎‏‏‎‏‎‏‎‎‎‏‏‏‏‎‎‎‏‏‏‏‏‎‎‏‎Exported ‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ of ‎‏‎‎‏‏‎%2$s‎‏‎‎‏‏‏‎ to ‎‏‎‎‏‏‎%3$s‎‏‎‎‏‏‏‎‎‏‎‎‏‎</string>
<string name="export_external_storage_option">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‏‏‏‏‏‎‎‏‎‎‏‎‎‏‎‎‏‏‎‏‎‏‏‏‎‎‎‏‏‏‏‏‎‎‏‎‏‎‏‏‏‏‎‏‎‎‏‏‎‎‎‎‎‎‏‏‏‏‎‎as ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ to ‎‏‎‎‏‏‎%2$s‎‏‎‎‏‏‏‎‎‏‎‎‏‎</string>
<string name="export_external_storage_progress_message">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‏‎‏‏‏‎‏‏‏‎‏‎‎‎‎‎‏‎‏‎‏‎‎‏‎‎‎‏‎‏‎‎‎‏‎‏‎‏‏‎‏‎‏‏‎‎‏‏‎‎‎‏‏‎‎‏‏‎‏‎Exporting to ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎…‎‏‎‎‏‎</string>
<string name="export_external_storage_success">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‎‏‎‏‎‎‎‎‎‏‏‎‎‎‎‎‏‏‏‎‏‏‏‎‏‎‎‎‎‎‎‏‎‎‏‏‏‎‎‎‏‏‏‎‎‏‎‏‏‎‏‎‏‎‎‏‎‎‎‎Exported ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ to ‎‏‎‎‏‏‎%2$s‎‏‎‎‏‏‏‎‎‏‎‎‏‎</string>
<string name="export_title">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‎‏‎‎‎‎‎‏‏‎‎‏‏‎‎‎‎‎‏‏‏‎‏‏‎‎‏‎‏‎‎‎‎‎‎‏‏‏‏‎‏‏‏‎‏‏‏‎‏‎‏‏‏‎‎‏‏‎‎‎Export to…‎‏‎‎‏‎</string>
<string name="external_storage_not_available">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‎‎‏‏‏‎‏‎‏‎‎‏‎‎‏‏‏‎‏‎‏‎‎‎‎‎‏‎‏‎‏‎‏‎‏‏‏‏‏‎‏‎‏‎‎‏‏‏‎‏‎‏‎‏‎‎‎External storage not available‎‏‎‎‏‎</string>
<string name="external_storage_not_writable">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‎‏‏‏‏‎‏‏‎‎‎‎‎‎‎‎‎‏‏‎‎‏‎‎‏‏‎‎‏‏‏‎‎‏‏‏‎‏‎‎‏‏‎‎‎‏‏‏‏‏‏‎‏‏‎‎‎‏‎‎External storage not writable‎‏‎‎‏‎</string>
<string name="files_few">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‎‏‏‏‏‎‎‏‎‎‏‏‎‏‎‏‎‏‎‎‏‎‎‏‏‏‎‎‎‎‎‏‏‏‎‎‏‎‏‏‎‎‏‎‏‏‎‎‎‎‎‎‎‏‎‏‏‎‏‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ files‎‏‎‎‏‎</string>
<string name="files_many">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‎‏‏‎‏‏‏‏‎‎‎‏‏‎‎‏‎‏‎‏‎‎‏‎‎‏‏‎‏‎‏‏‎‎‎‏‎‎‏‏‎‏‎‎‏‏‎‏‏‏‎‏‎‏‎‏‎‏‎‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ files‎‏‎‎‏‎</string>
<string name="files_one">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‏‏‎‏‎‎‎‎‎‏‎‏‏‎‎‎‎‏‏‏‎‏‏‎‎‏‎‏‎‎‏‎‎‎‎‎‎‏‎‏‎‎‏‎‎‏‏‎‎‏‎‎‏‎‏‎‏‎1 file‎‏‎‎‏‎</string>
<string name="files_other">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‎‎‎‏‏‎‎‏‎‏‏‏‏‏‎‎‏‏‏‎‎‏‎‎‎‎‏‎‎‎‏‎‏‏‎‏‏‎‎‎‏‏‎‎‏‎‏‎‎‎‎‏‏‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ files‎‏‎‎‏‎</string>
<string name="files_two">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‎‎‏‏‏‏‏‏‏‎‎‏‎‏‏‏‏‏‏‎‏‏‎‏‎‎‎‏‎‎‏‎‎‎‎‏‏‎‎‎‎‎‏‎‏‎‎‏‏‎‏‎‏‎‎‎‎‎2 files‎‏‎‎‏‎</string>
<string name="files_zero">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‎‎‏‏‏‎‎‎‏‏‎‏‏‎‎‏‎‎‏‏‏‏‎‏‏‎‏‏‎‎‏‎‏‎‎‎‏‏‎‎‎‏‏‎‎‎‏‏‏‎‏‏‎‏‎‏‎‎0 files‎‏‎‎‏‎</string>
<string name="generic_add">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‎‎‏‏‎‎‎‏‎‎‎‎‏‎‏‏‏‎‏‎‎‎‏‏‎‎‏‏‎‎‎‏‎‏‏‎‎‎‏‏‎‎‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‎‎Add‎‏‎‎‏‎</string>
<string name="generic_cancel">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‏‎‎‎‏‏‎‎‏‎‎‎‎‎‏‎‎‏‎‎‏‏‎‏‏‎‎‏‏‏‎‏‎‎‏‏‏‏‏‏‏‏‎‏‎‏‏‏‎‏‎‏‎‏‎‎‎‎‎‎Cancel‎‏‎‎‏‎</string>
<string name="generic_delete_all_confirm_title">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‎‏‎‏‎‎‎‏‏‎‏‎‎‏‏‎‎‎‏‎‏‏‎‏‎‏‎‎‎‏‎‎‎‏‎‏‎‏‎‎‏‏‏‎‏‎‎‎‏‎‏‎‎‎‏‏‎‏‎‎Delete all?‎‏‎‎‏‎</string>
<string name="generic_delete_selected_confirm_title">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‎‏‎‎‎‏‏‏‎‏‏‎‎‎‎‎‏‎‏‎‎‏‎‏‏‎‎‏‏‏‏‏‏‎‏‎‏‏‎‎‎‏‎‎‎‎‎‎‎‎‏‎‎‎Delete selected?‎‏‎‎‏‎</string>
<string name="generic_description">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‏‎‎‏‏‏‎‎‎‎‎‏‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‎‏‎‏‏‏‎‏‎‎‎‏‏‏‏‎‎‎‏‎‏‏‏‎‎‎Description‎‏‎‎‏‎</string>
<string name="generic_description_line">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‎‏‎‎‎‏‏‏‎‏‎‎‏‎‏‏‏‏‎‏‎‏‎‎‎‏‎‏‏‏‏‏‎‎‏‎‎‏‏‎‎‎‎‎‏‏‎‎‎‏‎‎‏‏‎‎‏‏‎‏‎Description: ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎‎‏‎‎‏‎</string>
<string name="generic_error_title">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‏‎‏‎‎‏‏‏‏‏‎‎‎‏‏‏‎‏‏‏‏‏‏‎‏‎‏‎‏‏‏‏‎‎‎‏‎‏‏‎‎‎‏‏‎‏‎‏‎‏‏‎‏‏‎‏‎Error‎‏‎‎‏‎</string>
<string name="generic_name">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‏‎‎‎‏‎‎‏‏‎‏‎‎‎‎‏‎‏‎‏‎‎‏‏‏‎‏‎‏‏‏‎‏‏‏‎‎‏‏‎‎‏‎‏‎‏‏‎‎‎‏‏‎‎‏‎‎‏‏‎Name‎‏‎‎‏‎</string>
<string name="generic_name_line">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‏‎‎‏‎‏‎‏‎‏‎‎‎‏‎‎‏‏‏‎‏‏‎‎‎‏‏‏‏‏‏‎‏‏‏‏‎‎‏‏‏‏‎‏‏‎‎‏‎‏‎‎‏‏‎‎‎‏‎‎Name: ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎‎‏‎‎‏‎</string>
<string name="generic_no">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‎‎‏‏‏‎‎‏‏‎‏‎‏‏‎‎‎‏‏‏‎‏‏‏‎‏‏‏‎‏‎‏‏‏‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‎‏‎‎No‎‏‎‎‏‎</string>
<string name="generic_ok">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‎‎‏‏‎‏‎‎‎‏‏‏‏‏‎‏‏‏‎‏‎‎‎‎‎‏‏‎‏‎‏‏‎‏‏‎‎‏‏‎‏‏‎‏‎‏‏‏‎‎‎‏‏‎‏‏‏‎‏‎OK‎‏‎‎‏‎</string>
<string name="generic_paused">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‎‎‎‎‎‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‎‏‎‏‏‎‎‎‏‏‎‏‎‎‎‏‎‎‎‏‏‏‎‏‎‎‏‏‏‎‎‏‏‎‏‎‏‎‎‎Paused‎‏‎‎‏‎</string>
<string name="generic_progress_title">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‎‏‏‏‎‏‎‏‎‎‏‏‏‎‏‎‏‏‎‎‏‎‎‏‎‏‎‏‏‏‏‎‏‏‎‏‎‏‎‎‏‎‏‏‎‏‏‏‏‏‏‏‎‏‎‏‎‎‏‎Please wait…‎‏‎‎‏‎</string>
<string name="generic_recording">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‎‏‏‏‎‎‎‏‎‎‏‏‎‎‏‎‏‏‎‏‏‎‏‎‎‏‎‎‏‏‎‎‎‎‎‏‎‏‎‎‏‏‎‎‎‏‏‎‎‎‏‏‏‏‎‎‎‎‎‎Recording…‎‏‎‎‏‎</string>
<string name="generic_save">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‎‏‏‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‎‎‏‎‎‎‏‎‎‎‏‎‏‏‎‎‎‏‏‎‏‎‎‏‏‎‎‏‏‏‏‎‏‏‎‎‏‏‏‎‎‎Save‎‏‎‎‏‎</string>
<string name="generic_success_title">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‎‎‎‎‏‏‏‎‎‏‏‎‎‏‏‎‎‏‎‏‎‏‏‏‏‎‏‏‎‎‏‏‎‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎Success‎‏‎‎‏‎</string>
<string name="generic_tracks">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‎‏‎‏‎‎‏‏‏‎‎‏‎‎‏‎‏‎‎‏‏‎‏‎‏‎‏‏‏‏‎‏‎‎‎‏‏‏‎‏‎‏‏‏‏‏‏‎‎‎‎‏‏‎‎‎‏‎‎‎Tracks‎‏‎‎‏‎</string>
<string name="generic_yes">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‎‏‎‏‎‎‎‏‎‏‎‏‎‏‎‏‎‏‏‏‏‏‎‏‏‏‏‏‎‎‎‏‏‎‎‎‎‏‏‎‎‏‏‏‎‏‏‏‏‏‎‏‏‎‏‎‎‏‎‏‎‎Yes‎‏‎‎‏‎</string>
<string name="gps_location_access">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‏‏‏‎‏‎‎‏‏‎‎‎‏‎‏‏‎‏‎‎‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‏‏‎‎‏‏‏‎‏‎‏‎‎‎‏‏‏‏‎‎‏‎‎‏‎‘Location access’‎‏‎‎‏‎</string>
<string name="gps_disabled">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‎‎‏‎‎‎‏‏‏‎‎‎‏‎‏‎‎‏‎‎‎‎‎‎‎‏‎‎‏‏‎‎‏‎‏‏‎‏‎‏‏‏‏‎‎‏‏‎‏‏‏‏‎‎‎‏‎‎‏‎GPS not enabled. Tap here to go to ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎. Press the back button to return.‎‏‎‎‏‎</string>
<string name="gps_disabled_location_mode">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‏‎‎‏‎‎‏‎‏‎‎‏‏‎‏‎‎‎‎‎‎‏‎‏‏‏‏‏‎‎‏‏‎‎‏‎‎‎‎‏‏‎‏‎‏‎‏‏‎‎‎‎‎‎‏‏‏‎‎‎Select high-accuracy location mode. Tap here to go to ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎. Press the back button to return.‎‏‎‎‏‎</string>
<string name="gps_disabled_my_location">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‏‏‏‎‎‎‏‎‎‏‎‏‎‏‏‎‏‏‎‏‎‏‏‏‎‏‏‎‎‏‎‎‏‏‎‏‎‏‎‏‏‏‎‎‏‏‏‏‎‏‎‏‏‏‏‎‏‏‎‎Current location cannot be determined. Enable more location sources at ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ &amp; make sure the
sky is visible. Try again later.‎‏‎‎‏‎</string>
<string name="gps_disabled_my_location_location_mode">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‏‎‏‎‏‎‏‎‎‏‎‏‏‏‎‏‏‎‏‏‎‏‏‎‎‏‎‎‎‎‎‎‏‎‎‏‎‎‏‏‎‎‎‎‏‎‏‏‎‏‎‎‏‎‏‎Current location cannot be determined. Select the high-accuracy location mode at ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ &amp; make
sure the sky is visible. Try again later.‎‏‎‎‏‎</string>
<string name="gps_not_found">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‏‏‏‏‏‏‏‎‎‏‎‎‎‎‎‎‏‏‏‎‎‎‏‏‏‏‎‏‏‏‏‎‎‏‏‏‏‎‏‎‎‎‎‏‎‎‏‏‏‏‏‎‏‎‏‏‏‏‎‎No GPS is found on the device‎‏‎‎‏‎</string>
<string name="gps_starting">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‏‎‎‎‏‎‏‎‎‏‎‏‎‎‎‏‎‎‎‏‎‏‏‎‎‎‏‏‏‎‏‏‏‏‏‎‎‎‎‏‏‏‏‎‏‎‎‎‎‏‎‎‎‏‎‎‎‎‏‎Starting GPS‎‏‎‎‏‎</string>
<string name="gps_starting_error">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‏‎‏‎‎‏‏‎‏‎‏‎‎‏‎‎‏‎‏‎‏‎‏‏‏‎‏‏‏‎‎‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‎‏‏‎‎‎‏‎‎‎‎‎‏‎Unable to start GPS‎‏‎‎‏‎</string>
<string name="gps_stopping">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‎‎‎‎‏‏‏‏‎‎‏‎‎‎‎‎‎‎‎‏‏‏‏‎‎‎‎‎‎‎‏‏‎‏‎‏‏‏‏‏‎‎‏‎‎‏‎‎Stopping GPS‎‏‎‎‏‎</string>
<string name="gps_wait_for_better_signal">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‎‏‏‏‎‎‎‏‏‎‏‏‎‎‎‎‏‏‎‏‎‏‎‏‏‏‎‏‏‏‎‎‏‎‎‏‏‏‏‏‎‎‏‎‎‏‏‏‎‏‏‎‎‎‏‎‏‏‎‏‎‏‎Waiting for a better GPS signal‎‏‎‎‏‎</string>
<string name="gps_wait_for_signal">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‎‏‎‎‎‏‏‏‏‏‏‎‏‏‎‎‏‏‎‎‏‏‏‎‎‏‎‏‎‎‏‏‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‎‏‎‎‎‏‏‎‎‎‏‎‎Waiting for GPS signal‎‏‎‎‏‎</string>
<string name="image_application">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‏‏‏‏‎‎‏‎‎‎‏‎‏‎‎‎‏‏‎‎‎‎‎‎‏‎‎‏‎‏‎‎‎‏‏‎‎‏‎‏‎‏‎‎‏‎‎‎‏‎‎‎‎‎‎Application‎‏‎‎‏‎</string>
<string name="image_arrow">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‎‎‎‏‎‎‏‏‎‏‎‏‎‏‎‏‏‏‎‏‎‎‎‏‎‎‏‎‏‏‎‎‎‎‎‎‎‏‎‏‎‏‏‎‎‏‏‎‎‏‏‏‎‎‏‏‏‏‎‎Arrow‎‏‎‎‏‎</string>
<string name="image_marker">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‎‎‏‏‏‏‎‎‏‎‏‏‎‏‏‏‏‎‏‏‎‎‏‎‏‏‎‏‏‏‏‏‎‏‎‎‎‏‏‎‏‎‎‏‏‎‎‎‏‎‏‏‎‎‎‏‎‏‏‎Marker‎‏‎‎‏‎</string>
<string name="image_marker_count">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‏‎‏‎‏‏‏‏‎‏‏‏‏‏‏‏‎‎‏‎‎‎‏‎‎‎‎‎‎‎‎‎‎‏‏‎‏‎‎‏‏‏‎‏‎‎‏‏‏‎‏‎‏‎Marker count‎‏‎‎‏‎</string>
<string name="image_my_location">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‎‎‏‎‎‏‎‎‎‎‏‏‎‎‏‎‎‎‏‎‏‎‎‎‎‏‎‎‏‎‎‎‏‏‏‏‎‎‎‏‏‎‏‎‏‎‎‎‏‏‎‎‏‎‎‎‎My Location‎‏‎‎‏‎</string>
<string name="image_pause">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‏‏‏‏‏‎‏‎‎‎‏‎‎‎‎‎‎‎‎‏‎‎‎‎‏‏‏‏‎‏‎‏‎‎‏‎‎‎‎‎‎‎‏‎‏‏‎‎‎‎‎‎‎‎‏‎‎‏‎‎Pause‎‏‎‎‏‎</string>
<string name="image_photo_marker">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‎‏‏‏‎‏‏‏‎‎‏‏‎‏‎‏‏‏‎‏‏‏‎‎‏‎‏‎‏‏‎‎‏‏‎‎‏‎‏‏‏‏‏‎‏‏‏‏‎‏‎‏‎‏‏‏‎Photo marker‎‏‎‎‏‎</string>
<string name="image_record">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‏‎‎‎‎‎‏‏‎‎‏‎‏‎‎‎‎‎‎‏‏‎‎‏‏‏‏‏‏‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‎‎‎‏‎‎‎‎‎‎‏‎‏‏‎‎Record‎‏‎‎‏‎</string>
<string name="image_stop">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‎‏‎‏‎‏‏‎‏‏‏‏‏‎‏‏‎‎‎‏‏‎‎‏‎‎‎‏‎‎‎‏‏‏‏‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‎‏‏‎‏‎Stop‎‏‎‎‏‎</string>
<string name="image_track">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‏‏‏‎‎‎‎‏‏‎‏‎‎‏‎‏‏‏‎‏‎‎‏‏‏‎‏‏‏‏‎‏‏‎‏‎‎‏‏‏‎‏‎‏‎‎‎‏‎‎‎‏‏‏‏‏‏‎Track‎‏‎‎‏‎</string>
<string name="import_error">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‏‎‏‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‎‎‏‎‎‎‏‏‏‏‏‎‎‏‎‎‏‏‎‎‏‎‏‏‎‏‎‎Imported ‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ of ‎‏‎‎‏‏‎%2$s‎‏‎‎‏‏‏‎ from ‎‏‎‎‏‏‎%3$s‎‏‎‎‏‏‏‎‎‏‎‎‏‎</string>
<string name="import_no_directory">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‏‏‎‏‎‎‎‏‏‏‎‏‏‏‎‏‏‏‎‏‎‏‏‎‎‎‏‎‏‏‎‏‏‎‎‏‏‎‎‏‏‎‏‏‎‏‎‎‎‎‏‎‏‎‎‏‎‏‎‎‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ does not exist‎‏‎‎‏‎</string>
<string name="import_no_file">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‎‏‏‏‏‎‎‎‎‏‏‎‎‏‎‏‏‎‏‏‎‏‎‎‎‎‏‏‎‏‏‎‎‏‎‎‏‏‏‏‎‎‏‎‏‏‏‎‎‎‏‎‏‏‏‎‎‏‎‎There were no files to import. Connect your device to your computer and place the files to
import in ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎.‎‏‎‎‏‎</string>
<string name="import_no_file_title">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‎‎‎‎‏‎‏‏‎‏‏‏‏‎‏‎‎‏‏‎‎‎‏‎‎‎‏‏‎‏‏‎‏‎‏‏‎‏‎‏‎‏‏‎‏‎‏‏‎‏‏‏‏‏‏‏‎‎‎‎Import files‎‏‎‎‏‎</string>
<string name="import_progress_message">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‏‏‎‏‏‎‏‏‏‎‎‎‎‎‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‎‎‏‎‎‏‏‏‏‎‎‎‏‏‎‏‏‎‎‏‏‎‏‏‏‏‎‎‎Importing from ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎…‎‏‎‎‏‎</string>
<string name="import_selection_option">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‏‏‎‏‏‏‏‏‏‎‎‏‎‎‏‎‎‎‏‏‎‏‏‎‏‏‏‏‎‏‎‎‎‎‏‎‏‎‏‎‏‏‎‏‏‎‏‎‏‏‎‎‏‏‏‏‎‎All ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ from ‎‏‎‎‏‏‎%2$s‎‏‎‎‏‏‏‎‎‏‎‎‏‎</string>
<string name="import_selection_title">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‏‎‏‏‎‎‏‎‏‏‎‏‏‎‎‏‏‏‏‎‎‎‏‎‏‏‎‏‎‏‎‏‏‎‎‎‏‏‎‏‎‎‎Import from external storage‎‏‎‎‏‎</string>
<string name="import_success">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‏‎‎‎‎‎‏‎‏‎‎‏‎‏‏‏‏‏‎‏‏‎‏‎‎‏‎‏‎‎‏‏‎‏‎‎‎‎‏‏‏‏‎‏‏‏‏‏‎‏‎‎‎‎‏‎‎‏‎‎Imported ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ from ‎‏‎‎‏‏‎%2$s‎‏‎‎‏‏‏‎‎‏‎‎‏‎</string>
<string name="marker_add_error">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‎‎‎‎‎‎‎‎‎‏‎‏‏‎‎‏‎‎‏‎‏‎‎‎‎‎‎‎‎‎‎‏‏‏‎‎‏‎‎‎‏‏‎‏‏‎Unable to insert a marker. No GPS signal. Try again.‎‏‎‎‏‎</string>
<string name="marker_add_success">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‎‏‏‎‏‏‎‏‎‎‎‎‏‏‏‎‎‎‏‏‎‏‏‏‏‏‏‎‎‏‎‎‏‏‏‎‎‏‎‎‏‎‏‏‏‎‏‏‏‎‎‏‏‏‎‎‎‎‏‎A marker was inserted‎‏‎‎‏‎</string>
<string name="marker_add_canceled">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‏‎‎‎‏‏‎‎‏‏‎‎‏‎‎‏‏‏‎‎‎‎‎‎‏‎‏‎‏‏‎‏‏‎‏‏‎‎‏‏‎‏‎‎‎‎‏‎‎‏‏‎‎‎‎‏‏‏‏‎Canceled, no marker added‎‏‎‎‏‎</string>
<string name="marker_delete_all_confirm_message">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‏‏‏‎‎‏‏‏‏‏‎‎‎‏‎‏‏‎‏‎‎‏‏‎‏‎‏‎‏‏‎‎‎‏‏‏‏‏‎‏‎‏‏‎‎‎‏‎‎‏‏‎‏‎‎‏‎‏‎‎‎All markers for this track will be permanently deleted from the device‎‏‎‎‏‎</string>
<string name="marker_delete_one_confirm_message">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‎‏‏‎‎‎‏‏‎‎‎‎‎‏‎‎‎‏‏‎‏‎‏‏‎‎‎‎‏‏‎‏‏‏‎‏‎‎‏‎‎‏‏‏‏‎‏‎‏‏‎‏‏‏‎The marker will be permanently deleted from the device‎‏‎‎‏‎</string>
<string name="marker_delete_one_confirm_title">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‏‏‎‎‎‎‎‎‏‏‏‏‏‎‎‎‎‏‏‏‏‏‎‎‎‎‎‎‏‏‏‎‎‎‎‏‎‎‏‎‏‏‏‏‎‎‎‏‎‏‏‏‏‏‎Delete marker?‎‏‎‎‏‎</string>
<string name="marker_delete_multiple_confirm_message">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‎‎‎‎‎‏‏‎‏‏‎‏‎‎‏‏‎‏‏‏‎‎‎‎‎‏‎‎‏‏‏‎‏‏‎‏‏‏‎‏‏‏‎‏‏‏‏‎‏‎‎‏‎‏‏‎‎‏‏‎The selected markers will be permanently deleted from the device‎‏‎‎‏‎</string>
<string name="marker_label_end">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‏‎‎‏‎‎‎‎‎‎‎‏‎‎‏‏‎‏‏‏‏‎‎‏‏‎‏‏‏‏‎‏‏‎‏‎‏‎‎‏‎‏‏‏‎‎‏‎‏‎‎‎‎‎‎‎‏‏‎‎‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ (End)‎‏‎‎‏‎</string>
<string name="marker_label_start">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‏‎‎‎‎‏‎‎‎‎‏‎‏‏‏‎‏‎‎‎‎‎‎‎‏‎‏‏‎‏‏‏‏‏‏‏‎‎‎‏‏‏‎‏‎‏‏‏‎‎‎‏‎‏‏‎‏‎‏‏‎‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ (Start)‎‏‎‎‏‎</string>
<string name="marker_name_format">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‎‏‏‏‎‎‎‏‎‏‏‎‏‎‏‏‏‎‏‎‎‏‎‎‏‏‎‏‏‎‏‎‎‏‏‎‎‏‏‎‏‏‏‎‎‎‏‏‎‎‏‏‏‎‏‏‏‏‎‎Marker ‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎‎‏‎‎‏‎</string>
<string name="marker_split_name_format">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‎‎‎‏‎‏‎‏‎‏‎‏‎‏‎‏‏‏‎‏‏‎‏‏‏‏‏‏‎‏‎‏‎‏‎‏‏‎‎‎‎‎‎‎‏‎‎‏‎‏‏‏‎‏‏‎‎‏‎‎Split ‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎‎‏‎‎‏‎</string>
<string name="marker_title">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‏‎‎‏‎‎‎‎‏‏‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎‏‎‎‎‏‏‎‏‎‏‏‏‏‎‎‎‏‏‏‎‎‏‏‏‏‏‎‏‎‎‏‏‏‏‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ of ‎‏‎‎‏‏‎%2$d‎‏‎‎‏‏‏‎‎‏‎‎‏‎</string>
<string name="marker_detail_statistics_title">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‏‏‎‏‎‎‎‏‎‎‎‎‏‎‎‏‎‎‏‎‏‏‏‎‏‏‏‎‎‏‏‎‎‏‏‎‎‎‎‎‎‎‎‏‎‏‎‎‏‏‏‏‎‏‏‎‏‎‏‏‎Since last split marker:‎‏‎‎‏‎</string>
<string name="marker_edit_marker_type">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‏‎‏‎‏‏‎‏‏‎‏‎‎‎‏‎‏‏‎‏‏‎‎‏‏‎‏‏‏‎‏‏‎‏‎‏‏‏‏‏‎‏‎‎‎‏‏‏‎‏‎‏‏‎‏‎‏‏‎‏‎Marker type (e.g. waterfall)‎‏‎‎‏‎</string>
<string name="marker_edit_marker_type_hint">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‏‎‎‏‎‏‎‏‎‏‎‎‎‏‏‏‎‎‏‏‏‎‏‎‎‏‎‏‎‎‎‏‎‏‏‏‎‏‎‎‏‎‎‏‏‏‎‏‎‎‏‎‏‎‏‎‎‎‏‎Marker type‎‏‎‎‏‎</string>
<string name="marker_list_empty_message">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‎‎‎‏‏‎‏‎‏‎‏‏‏‏‏‏‎‎‏‏‎‎‎‏‏‎‎‎‎‎‎‏‏‎‏‎‏‎‎‎‏‏‏‏‏‏‎‏‏‎‎‏‏‏‎‎‏‏‎‎You don\'t have any markers‎‏‎‎‏‎</string>
<string name="menu_aggregated_statistics">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‎‎‏‏‏‎‏‎‎‏‏‏‏‏‎‏‏‏‎‎‏‏‏‏‎‎‏‏‎‎‏‎‎‎‎‎‏‏‎‎‏‏‎‏‎‎‏‏‎‏‎‏‏‏‎‎Aggregated stats‎‏‎‎‏‎</string>
<string name="menu_delete">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‏‎‏‎‏‏‎‎‎‏‏‏‏‎‎‏‎‎‏‎‎‏‏‎‏‎‏‎‏‏‎‏‏‎‎‏‏‎‎‎‏‎‏‏‏‎‏‏‎‎‎‎‎‎‎Delete‎‏‎‎‏‎</string>
<string name="menu_delete_all">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‏‎‎‏‎‏‎‏‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‎‏‏‎‎‎‎‎‏‎‏‏‏‏‏‎‎‏‏‏‎‎‏‎‏‎‎‏‏‎‎‏‏‎‏‎‎Delete all‎‏‎‎‏‎</string>
<string name="menu_edit">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‏‎‎‏‏‏‎‎‏‏‏‏‏‎‏‏‏‏‎‏‎‏‎‎‏‎‎‎‎‎‎‏‏‏‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‎‏‎‎‏‎‏‎‎Edit‎‏‎‎‏‎</string>
<string name="menu_export">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‎‎‎‏‏‎‎‏‏‏‏‏‎‎‏‏‎‏‎‏‏‏‎‎‎‏‏‏‎‎‎‏‏‎‏‎‏‎‎‎‎‏‏‎‎‎‎‏‎‎‏‎‎‏‎‏‎Export‎‏‎‎‏‎</string>
<string name="menu_export_all">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‎‎‏‎‏‎‏‏‎‏‎‏‏‎‏‎‏‎‏‏‎‎‏‏‏‏‎‎‎‎‏‏‏‎‏‏‏‎‎‎‎‎‎‎‏‏‎‎‎‏‏‎‎‏‏‏‏‎‏‎Export all‎‏‎‎‏‎</string>
<string name="menu_feedback">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‏‎‏‎‏‎‎‎‏‎‎‎‎‏‎‎‏‏‏‎‎‎‏‏‏‏‎‏‎‎‎‏‏‏‎‏‏‏‏‎‏‏‏‏‎‏‏‎‎‏‏‎‏‎‏‎‏‏‏‎Feedback‎‏‎‎‏‎</string>
<string name="menu_help">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‎‏‎‎‎‏‎‎‏‎‏‏‏‏‏‏‎‏‏‏‎‏‎‏‏‎‏‎‎‎‎‏‏‎‎‎‎‏‏‎‏‎Help‎‏‎‎‏‎</string>
<string name="menu_help_feedback">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‏‏‏‏‎‎‎‎‏‏‏‎‏‎‏‎‏‎‎‏‎‎‏‏‎‏‎‏‎‎‏‎‎‎‏‏‎‏‏‏‎‎‏‏‏‏‎‏‏‏‏‏‏‎‏‏‏‎‎‎Help &amp; feedback‎‏‎‎‏‎</string>
<string name="menu_help_forum">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‎‏‎‏‎‏‎‏‎‎‏‏‏‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‏‎‎‎‏‏‏‏‏‎‎‏‏‎‏‏‎‏‎‏‎‎‏‎‎‏‏‎Help forum‎‏‎‎‏‎</string>
<string name="menu_import_all">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‏‎‎‎‏‎‎‏‏‏‎‎‏‏‎‏‎‎‎‎‎‎‎‎‏‏‏‏‏‏‎‎‏‏‎‎‏‏‎‎‎‏‏‎‏‏‎‎‎‏‏‏‏‎‏‎‏‏‏‎Import all‎‏‎‎‏‎</string>
<string name="menu_insert_marker">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‏‏‏‏‎‏‏‏‏‏‏‎‏‎‏‎‎‏‏‏‎‏‏‏‏‏‏‏‏‎‎‏‎‎‎‎‎‏‎‎‏‏‏‏‎‏‎‎‏‏‎‏‏‎‏‎‎‎Insert marker‎‏‎‎‏‎</string>
<string name="menu_insert_photo">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‎‏‏‎‏‏‎‎‎‏‎‏‏‏‏‎‏‎‎‏‏‎‎‏‏‏‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‎‎‎‎‏‏‎‏‎‏‎‎‎‎‏‎‎‎‎Insert photo‎‏‎‎‏‎</string>
<string name="menu_map">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‎‏‏‏‎‎‎‏‎‏‎‏‎‏‎‏‏‏‎‎‎‏‏‏‏‎‏‏‎‏‏‏‏‎‏‏‎‏‎‎‏‏‎‏‎‎‎‎‏‏‎‎‏‏‏‎‎‏‎‎Map‎‏‎‎‏‎</string>
<string name="menu_markers">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‏‎‎‏‏‎‏‏‎‏‏‏‏‏‎‎‏‏‏‏‎‎‏‎‏‏‏‎‏‏‎‏‎‏‎‏‎‏‏‎‏‎‏‎‏‎‏‏‏‎‎‎‎‎‏‎‏‏‎‎Markers‎‏‎‎‏‎</string>
<string name="menu_play">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‎‎‎‎‎‏‎‎‏‏‎‎‎‎‎‎‎‎‎‎‏‎‏‏‎‏‏‎‎‏‏‏‏‏‎‏‏‏‎‏‎‏‏‎‎‎‏‎‎‎‏‏‏‏‏‎‏‏‏‎Play‎‏‎‎‏‎</string>
<string name="menu_search">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‏‏‏‎‎‎‏‎‎‏‎‏‎‎‏‎‏‏‎‏‏‏‏‎‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‎‏‏‎‏‏‏‎‎‎‎‏‎‎Search‎‏‎‎‏‎</string>
<string name="menu_select_all">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‎‎‏‏‏‎‏‎‏‏‎‎‎‎‎‎‎‎‏‎‎‎‏‎‏‏‏‏‎‏‎‎‏‎‏‏‏‎‎‏‏‏‏‏‏‏‎‏‏‎‏‏‎‏‎‎‎‏‏‎Select all‎‏‎‎‏‎</string>
<string name="menu_sensor_state">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‎‎‏‏‎‏‏‏‎‎‏‎‎‏‏‏‏‎‎‎‎‎‎‏‏‏‎‏‏‏‏‎‎‏‏‎‏‎‎‎‎‏‏‎‏‎‏‎‎‎‏‏‎‎‎‎Sensor state‎‏‎‎‏‎</string>
<string name="menu_settings">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‏‏‎‎‏‏‎‏‏‏‏‎‏‎‎‏‎‏‏‎‎‏‎‏‎‎‏‏‎‎‎‎‎‎‎‏‏‏‏‎‏‎‎‏‎‎‏‏‎‏‏‏‏‏‏‏‏‏‎‎Settings‎‏‎‎‏‎</string>
<string name="menu_share">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‎‎‎‎‏‎‎‎‏‏‎‎‏‏‏‏‏‎‎‏‎‏‏‎‎‎‏‎‎‎‏‏‏‏‏‎‎‏‏‏‎‏‎‎‏‎‏‏‎‎‎‎‎‏‎‏‎‏‎‎Share‎‏‎‎‏‎</string>
<string name="menu_show_on_map">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‎‏‏‎‎‏‏‏‎‎‏‎‎‎‏‏‎‎‎‏‎‎‎‏‏‏‎‏‏‎‎‏‎‎‎‏‏‏‏‏‏‎‏‏‎‎‏‎‏‎‎‏‎‏‎‎‎‎‏‎Show on map‎‏‎‎‏‎</string>
<string name="menu_split_frequency">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‎‏‎‎‏‏‏‎‎‎‏‎‏‎‏‎‎‎‎‎‏‎‏‎‏‎‎‎‎‏‎‏‎‏‎‎‎‏‏‎‎‎‎‎‏‏‏‎‎‏‏‏‏‎‏‏‎‎‏‎Split frequency‎‏‎‎‏‎</string>
<string name="menu_start_gps">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‏‏‏‏‎‏‏‎‏‎‎‎‏‏‎‎‎‎‎‎‏‏‏‏‎‏‎‏‎‎‏‏‎‏‎‏‎‎‎‏‏‎‎‏‏‏‏‏‎‏‏‎‎‎‏‎‎‏‏‎Start GPS‎‏‎‎‏‎</string>
<string name="menu_stop_gps">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‏‎‏‎‎‏‎‏‎‎‏‎‎‏‎‏‎‏‎‏‎‎‎‏‏‎‎‏‎‎‎‎‎‎‏‏‏‏‎‏‏‎‏‎‎‎‎‏‏‎‏‎‎‎‏‎‏‏‎‎Stop GPS‎‏‎‎‏‎</string>
<string name="menu_view_photo">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‏‎‎‎‎‎‎‏‎‏‎‏‎‎‎‎‎‏‎‎‏‎‏‏‏‎‎‎‏‏‏‎‏‎‎‏‎‏‏‏‎‏‏‎‏‏‏‏‏‎‏‏‎‏‎‏‏‎‎‏‎View photo‎‏‎‎‏‎</string>
<string name="menu_voice_frequency">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‏‎‎‎‏‎‏‏‏‏‏‏‎‏‎‎‎‎‏‏‎‎‎‎‎‎‎‏‎‎‏‏‏‏‏‎‏‏‏‎‏‏‏‎‎‏‎Voice frequency‎‏‎‎‏‎</string>
<string name="app_name">OpenTracks</string>
<string name="recording_service">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‎‏‏‎‎‏‎‏‏‏‎‎‏‎‏‏‎‏‏‎‎‏‎‎‏‏‎‏‎‏‏‎‏‏‏‎‏‎‏‏‎‎‏‎‏‏‎‎‎‏‏‏‏‎‏‏‎‎‏‎Recording service‎‏‎‎‏‎</string>
<string name="search_global_description">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‎‏‏‏‏‎‎‏‏‎‎‎‏‎‎‏‏‏‏‏‏‎‎‎‎‎‏‎‎‏‏‎‎‏‏‏‏‎‏‎‎‏‎‏‏‏‎‎‏‏‎‏‎‏‎‎‏‏‏‎‏‎‎Tracks and markers‎‏‎‎‏‎</string>
<string name="search_list_empty_message">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‎‏‏‎‎‏‎‎‏‏‏‏‏‎‎‎‎‎‏‏‎‎‎‏‎‎‎‏‏‎‎‎‏‎‎‏‎‎‏‎‏‎‎‏‎‏‏‎‎‎‏‏‎‏‏‏‏‏‎‎No tracks or markers matched your search‎‏‎‎‏‎</string>
<string name="search_list_marker_track_location">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‎‏‎‏‎‎‏‎‏‏‎‎‏‏‎‎‎‎‎‏‏‏‏‎‎‎‎‏‏‏‏‎‏‏‏‏‎‎‏‏‎‏‏‏‎‎‎‏‏‎‎‎‏‏‎‏‎‏‎‎In track ‘‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎’.‎‏‎‎‏‎</string>
<string name="search_voice_prompt">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‎‏‎‎‏‏‎‏‎‎‏‏‏‎‏‎‏‏‎‏‏‏‎‎‏‎‎‎‏‎‏‏‎‏‏‏‏‏‏‏‏‎‎‎‏‎‎‎‎‏‎‏‎‏‏‎‏‎Speak the name of a track or marker‎‏‎‎‏‎</string>
<string name="sensor_state_battery">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‏‏‎‏‎‎‎‎‎‏‎‏‎‎‏‎‎‎‏‎‎‎‏‏‏‎‏‏‎‏‏‎‎‎‏‎‎‎‏‎‎‎‎‏‏‏‎‎‏‏‎‎‏‏‏‎‎‏‎‎Battery level‎‏‎‎‏‎</string>
<string name="sensor_state_cadence">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‎‎‏‎‏‎‏‏‏‏‎‎‎‏‎‎‎‎‎‎‎‎‎‏‏‎‏‎‎‏‎‎‎‏‎‏‏‎‎‏‎‏‎‏‏‏‏‎‏‎‎‏‏‎‏‎‎‏‏‎Cadence‎‏‎‎‏‎</string>
<string name="sensor_state_cadence_value">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‏‏‎‏‏‎‏‏‎‏‎‏‎‎‏‎‎‏‏‏‏‎‎‎‎‎‎‏‏‏‎‏‏‎‏‏‎‎‎‏‎‏‏‏‎‏‏‎‎‎‏‏‎‎‏‎‎‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ rpm‎‏‎‎‏‎</string>
<string name="sensor_state_connected">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‎‎‏‏‏‏‏‎‎‏‎‎‎‏‎‎‎‎‏‏‎‏‏‏‎‏‏‏‏‏‎‏‏‎‎‏‎‎‏‏‏‎‎‏‎‏‏‎‏‎‎‏‏‎‎Connected‎‏‎‎‏‎</string>
<string name="sensor_state_connecting">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‎‏‏‏‎‏‎‎‎‏‏‎‏‏‏‏‎‎‎‎‏‏‏‎‏‏‏‎‏‏‏‎‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‎‎‏‏‎‎Connecting‎‏‎‎‏‎</string>
<string name="sensor_state_disconnected">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‎‎‏‏‏‎‎‏‎‎‏‏‏‏‎‏‎‎‏‏‏‏‏‏‎‏‎‏‏‏‎‏‎‎‏‎‎‏‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‏‏‏‎‎‎‎Disconnected‎‏‎‎‏‎</string>
<string name="sensor_state_heart_rate">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‎‏‎‎‏‏‎‏‏‎‎‎‎‏‎‏‎‎‎‎‏‎‏‎‏‏‏‏‎‏‏‎‎‎‏‏‏‏‎‏‏‏‎‏‎‎‎‏‏‎‎‏‏‏‏‎‎‎‏‎Heart rate‎‏‎‎‏‎</string>
<string name="sensor_state_heart_rate_value">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‎‏‎‏‏‏‏‎‎‎‎‏‏‎‎‎‎‎‎‎‎‏‏‏‏‏‎‏‏‏‎‎‏‏‎‎‎‎‏‎‎‎‎‎‎‎‎‎‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ bpm‎‏‎‎‏‎</string>
<string name="sensor_state_last_sensor_time">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‎‎‎‏‎‏‏‎‏‎‏‎‎‎‎‏‎‏‎‎‏‏‏‏‏‏‎‎‏‎‎‎‏‎‏‏‎‎‏‎‎‏‏‎‏‏‎‎‎‏‎‎‎‏‏‏‏‎‏‎Last sensor time‎‏‎‎‏‎</string>
<string name="sensor_state_power">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‏‏‎‎‏‏‎‎‎‎‎‎‏‏‏‎‏‏‏‎‎‎‎‎‏‏‎‎‏‎‎‎‎‎‎‏‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎Power‎‏‎‎‏‎</string>
<string name="sensor_state_power_value">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‏‎‎‏‏‏‏‎‏‎‏‏‎‏‏‏‎‎‎‎‏‎‎‎‎‎‎‎‏‎‏‎‏‎‎‎‏‏‎‎‏‏‏‎‎‎‏‎‎‎‏‎‏‎‎‏‏‎‏‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ W‎‏‎‎‏‎</string>
<string name="sensor_state_sending">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‎‏‏‏‎‏‏‏‏‏‎‏‏‏‏‏‎‏‏‎‏‏‏‎‏‏‎‎‎‎‏‎‎‎‏‏‎‏‏‏‎‏‎‎‎‎‏‏‏‎‏‎‎‏‏‏‎‏‏‏‏‏‎Sending‎‏‎‎‏‎</string>
<string name="settings_not_while_recording">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‏‎‎‏‏‏‏‎‏‏‎‎‎‏‎‏‏‎‏‏‏‎‎‎‎‏‏‎‎‏‏‎‏‏‏‏‏‎‏‎‎‏‎‎‎‏‎‏‏‏‎‎‎‏‎‎‏‎‎‎Not available while recording a track‎‏‎‎‏‎</string>
<string name="settings_show">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‏‎‎‎‎‏‎‎‏‎‏‏‏‏‎‎‏‏‏‎‏‏‏‏‏‏‎‎‏‏‏‎‏‎‎‎‎‏‏‎‎‏‎‎‏‏‏‎‏‏‏‎‏‏‎‎‏‏‎‏‎Show‎‏‎‎‏‎</string>
<string name="settings_advanced">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‎‎‎‏‎‏‏‎‏‏‏‎‎‏‎‎‎‎‎‎‎‎‎‎‏‎‏‏‎‏‏‎‏‏‏‎‏‏‏‎‎‎‏‏‎‏‎‎‎‏‏‎‎‎‎‏‎‏‏‎Advanced‎‏‎‎‏‎</string>
<string name="settings_chart_by_distance">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‏‏‎‎‎‎‏‏‎‎‏‏‎‏‏‏‎‎‏‎‏‎‏‏‏‏‏‎‎‏‏‏‏‏‎‏‎‏‎‏‎‏‎‎‏‎‎‏‏‏‏‏‎‎‎‏‎‎‏‎‎By distance‎‏‎‎‏‎</string>
<string name="settings_chart_by_time">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‎‎‏‏‎‎‎‏‎‎‎‏‏‏‏‏‏‎‎‏‏‎‎‎‏‏‏‎‏‎‏‎‏‎‏‏‎‎‎‎‎‎‎‏‏‎‏‎‏‎‎‏‎‎‎‏‎‏‏‎‎By time‎‏‎‎‏‎</string>
<string name="settings_chart_x_axis">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎‎‏‎‎‎‎‎‎‏‏‏‎‏‏‎‏‏‎‏‏‏‏‎‏‎‎‏‏‏‏‎‏‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‎‏‏‎‎X axis‎‏‎‎‏‎</string>
<string name="settings_recording">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‎‏‏‏‎‏‎‏‏‎‎‎‏‎‏‏‏‎‎‎‏‏‎‎‎‎‏‎‏‎‏‎‎‏‎‏‎‎‏‎‏‏‎‎‏‎‎‎‎‎‎‎‏‎‎‎‎‎‎‎Recording‎‏‎‎‏‎</string>
<string name="settings_recording_auto_resume_track_timeout_always_summary">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‏‎‎‎‎‎‎‎‏‎‏‎‏‎‎‎‏‎‎‎‏‏‏‏‏‎‏‎‏‎‏‏‏‏‎‏‏‎‎‏‎‎‏‏‎‏‏‏‏‏‏‏‏‎‎‏‏‎Always resume a recording after reboot‎‏‎‎‏‎</string>
<string name="settings_recording_auto_resume_track_timeout_never_summary">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‏‏‏‎‏‎‏‎‎‏‎‏‎‏‏‎‎‎‏‎‎‎‏‏‏‎‏‏‏‎‏‏‎‏‏‏‎‏‏‏‎‏‏‏‏‎‏‎‎‏‏‎‏‏‏‎‏‎‎‎Never resume a recording after reboot‎‏‎‎‏‎</string>
<string name="settings_recording_auto_resume_track_timeout_summary">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‏‏‎‏‏‏‎‏‏‎‎‏‎‎‏‏‏‎‏‎‏‎‎‏‎‎‎‏‏‏‎‏‏‎‏‏‎‎‏‏‏‎‏‎‎‎‏‏‏‏‏‎‏‏‎‎‎‎Resume a recording after reboot if the last recorded location was within the last ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎‎‏‎‎‏‎</string>
<string name="settings_recording_auto_resume_track_timeout_title">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‎‏‎‎‎‏‏‎‏‏‎‏‎‎‏‏‎‏‏‎‎‎‏‏‎‎‎‎‏‎‏‏‎‎‏‏‏‎‎‏‎‏‎‎‎‏‎‎‏‎‎‏‏‎‎Auto-resume‎‏‎‎‏‎</string>
<string name="settings_recording_default_activity_title">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‎‏‎‎‏‎‏‎‎‎‏‏‎‏‎‎‎‎‏‎‏‎‏‏‏‎‎‎‎‎‏‏‏‎‎‏‎‏‎‎‏‏‏‎‏‏‎‎‏‎‎‎‎‎‎‏‎‎‎‎Default activity type‎‏‎‎‏‎</string>
<string name="settings_recording_location_frequency_summary">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‏‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎‏‏‎‎‏‎‏‎‏‏‏‎‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‏‏‎‎‎‎‎‎‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ between recorded locations‎‏‎‎‏‎</string>
<string name="settings_recording_max_recording_distance_summary">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‏‏‎‎‏‎‏‏‏‎‏‏‏‏‎‎‏‎‎‏‎‎‎‏‎‎‎‏‎‏‏‏‏‎‎‎‏‎‏‎‎‏‏‎‎‎‎‏‎‏‏‎‏‎‎‎‏‎A new segment is created if the distance between two locations is greater than ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎‎‏‎‎‏‎</string>
<string name="settings_recording_max_recording_distance_title">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‏‏‎‏‏‎‎‎‏‎‏‏‏‏‏‏‎‏‏‎‎‎‏‎‎‏‏‎‎‏‎‎‏‏‏‏‏‏‎‏‏‎‏‏‏‏‏‏‎‏‏‎‏‎‏‎‏‎‎‎Max distance‎‏‎‎‏‎</string>
<string name="settings_recording_min_recording_distance_title">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‎‎‏‎‏‏‏‎‏‎‏‎‏‎‏‎‏‏‎‏‎‎‎‎‏‏‎‏‎‏‏‎‏‏‏‏‎‏‏‏‏‎‎‏‏‏‏‏‎‏‎‏‏‎‏‎‏‏‏‎‎Recording distance interval‎‏‎‎‏‎</string>
<string name="settings_recording_min_recording_interval_title">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‏‎‏‎‏‎‏‎‎‏‎‏‎‎‎‏‎‎‎‏‏‎‎‎‏‎‎‏‏‎‏‎‎‏‏‏‏‎‎‎‏‏‏‎‎‎‎‏‎‎‏‎‎Recording time interval‎‏‎‎‏‎</string>
<string name="settings_recording_min_required_accuracy_summary">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‏‏‎‏‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‏‎‎‏‎‎‏‏‎‎‎‏‏‎‎‏‎‎‏‎‎‎‎‎‏‎‏‏‏‎‏‎Location is ignored if its accuracy is less than ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎‎‏‎‎‏‎</string>
<string name="settings_recording_min_required_accuracy_title">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‎‏‏‏‏‏‏‏‎‏‏‏‏‎‎‏‎‎‎‏‏‏‏‎‏‎‎‏‎‏‏‏‏‎‎‏‎‏‏‎‏‏‎‎‏‏‏‏‎‎‏‎‏‏‏‎‏‎‏‏‎‏‎GPS accuracy‎‏‎‎‏‎</string>
<string name="settings_recording_track_name_date_iso_8601_option">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‏‎‏‎‏‎‎‎‎‏‎‎‎‎‎‏‎‏‏‏‎‏‏‎‎‎‎‎‏‎‏‏‎‎‏‏‎‏‏‎‏‎‎‎‎‏‏‏‎‎‏‏‎‎‏‏‎‎‏‎Date (ISO 8601)‎‏‎‎‏‎</string>
<string name="settings_recording_track_name_date_local_option">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‎‎‎‏‏‎‎‎‎‏‏‎‎‏‎‎‏‎‏‏‎‏‎‎‏‎‏‏‏‎‏‏‏‏‎‏‏‎‏‏‏‏‏‏‏‏‎‎‎‏‏‏‏‏‎‎‎‏‎‎Date (local)‎‏‎‎‏‎</string>
<string name="settings_recording_track_name_number_option">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‏‎‏‏‎‏‏‎‏‏‏‏‏‏‏‎‏‎‏‎‎‎‏‎‏‏‎‏‏‎‏‏‎‏‏‎‎‏‏‏‎‏‎‎‎‎‎‏‏‏‏‏‎‎‎‎‎Number‎‏‎‎‏‎</string>
<string name="settings_recording_track_name_title">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‏‎‎‎‏‎‏‏‎‏‏‎‎‎‎‎‎‎‎‏‏‎‏‏‏‏‏‎‏‎‏‏‎‎‎‎‏‏‏‏‏‎‏‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‏‎Default track name‎‏‎‎‏‎</string>
<string name="settings_reset">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‏‏‎‎‏‏‏‏‏‏‎‏‏‏‏‎‎‏‎‏‎‏‎‏‏‎‎‏‏‎‎‎‎‎‏‎‏‎‎‎‎‎‏‎‏‎‎‎‎‏‏‎‏‏‏‏‎‎‎‎Reset‎‏‎‎‏‎</string>
<string name="settings_reset_confirm_message">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‏‎‎‏‎‏‏‎‏‎‎‎‎‎‎‏‏‎‎‏‎‏‎‎‎‏‎‏‏‏‎‎‏‎‎‏‎‏‎‏‏‎‎‏‎‎‏‏‎‏‎‎‏‎‏‏‎‎All settings will be reverted to the default values.‎‏‎‎‏‎</string>
<string name="settings_reset_confirm_title">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‏‎‏‏‎‎‏‎‏‏‏‏‎‎‎‏‎‏‏‎‎‎‎‎‎‎‏‏‎‏‎‏‎‎‏‏‏‏‎‏‎‎‎‎‏‏‎‎‎‎‎‎‎‏‎‏‎‎‏‎Reset now?‎‏‎‎‏‎</string>
<string name="settings_reset_done">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‎‏‎‏‏‏‎‏‎‎‎‏‏‎‎‏‎‎‎‎‏‎‎‎‎‎‏‎‏‎‎‎‎‎‏‏‏‏‏‏‎‎‎‎‏‏‏‎‏‏‏‎‏‎‎‎‎‏‏‎All settings have been reverted to the default values‎‏‎‎‏‎</string>
<string name="settings_sensor">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‏‏‎‎‏‎‏‏‎‏‎‏‎‎‎‎‎‏‏‎‏‏‎‎‏‏‎‏‏‏‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‎‎‏‎‏‎‎‏‏‏‎‎‎Sensor‎‏‎‎‏‎</string>
<string name="settings_sensor_ant_reset_bike_cadence_sensor">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‎‏‏‏‎‏‏‎‏‏‎‎‎‎‏‎‎‏‎‎‎‎‏‎‏‎‏‏‎‎‏‏‎‎‏‏‏‏‏‎‏‎‎‏‏‏‏‎‎‎‎‏‎‏‏‎‎‏‏‎Reset bike cadence‎‏‎‎‏‎</string>
<string name="settings_sensor_ant_reset_combined_bike_sensor">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‎‎‏‎‏‎‎‏‏‎‎‏‎‏‏‎‏‎‎‎‎‏‎‏‏‎‏‏‎‎‎‏‎‎‎‎‏‎‎‎‎‏‏‏‎‎‏‏‏‎‎‏‎‎‏‎‎‎Reset combined bike‎‏‎‎‏‎</string>
<string name="settings_sensor_ant_reset_heart_rate_monitor">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‏‏‎‎‏‏‏‎‏‎‏‏‎‏‎‎‏‏‏‎‎‏‎‏‎‏‏‎‎‎‏‏‎‎‎‏‎‎‏‎‏‎‎‏‏‎‎‏‎‎‏‎‎‎‏‏‎‏‏‎Reset heart rate‎‏‎‎‏‎</string>
<string name="settings_sensor_ant_reset_speed_distance_monitor">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‏‎‎‏‎‎‏‎‏‎‏‎‏‏‏‎‏‏‎‏‎‏‎‎‏‎‎‎‎‎‎‏‏‏‏‎‏‎‎‏‎‎‎‎‎‏‎‏‏‏‏‎‎‏‎‏‎‎‏‎Reset foot pod‎‏‎‎‏‎</string>
<string name="settings_sensor_bluetooth">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‏‏‎‎‏‏‏‏‎‏‏‏‎‏‏‎‏‏‎‏‏‏‎‎‎‎‏‎‎‏‎‏‎‏‎‎‏‏‎‏‏‏‎‏‏‎‎‏‎‏‎‎‎‎‏‎‏‎‏‎Bluetooth‎‏‎‎‏‎</string>
<string name="settings_sensor_bluetooth_pairing">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‎‏‎‏‎‎‏‎‎‏‏‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‎‎‏‎‎‏‏‎‎‎‏‏‎‎‏‎‎‎‏‏‎‎‏‏‎‎Bluetooth pairing‎‏‎‎‏‎</string>
<string name="settings_sensor_bluetooth_pairing_summary">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‏‏‏‎‎‎‎‎‏‏‎‎‏‎‏‏‎‎‏‏‎‎‏‏‎‏‎‎‎‎‎‏‎‎‏‎‏‎‎‎‏‏‏‎‎‏‏‏‎‎‎‏‎‏‎‎‎‎‏‏‎Open Android\'s Bluetooth settings to pair a sensor‎‏‎‎‏‎</string>
<string name="settings_sensor_bluetooth_sensor">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‏‏‏‎‎‏‎‎‎‎‎‎‎‎‎‏‏‏‏‎‎‎‎‎‎‎‎‎‏‏‎‏‏‏‎‏‏‎‏‎‏‎‎‎‏‎‏‎‏‏‎‏‎‎‎‎Bluetooth sensor‎‏‎‎‏‎</string>
<string name="settings_sensor_connected">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‏‏‏‎‎‏‎‎‎‏‏‏‎‎‏‎‎‎‏‏‏‎‏‎‎‎‎‎‏‎‏‎‎‎‏‏‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‏‏‎‎‎‎‏‏‎Connected to ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎‎‏‎‎‏‎</string>
<string name="settings_stats_coordinate">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‎‏‎‎‎‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‏‎‎‎‎‎‎‎‏‏‏‎‎‎‎‎‏‎‏‎‏‎‎‏‎‎‎‎‎‎‎‏‏‎‏‎‎‎‎‎Latitude/Longitude‎‏‎‎‏‎</string>
<string name="settings_stats_grade_elevation">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‏‎‎‏‏‏‏‎‎‎‏‏‏‎‏‏‏‎‏‎‏‎‎‎‎‏‎‎‎‎‎‏‏‎‏‏‎‏‏‎‎‎‏‎‎‏‎‎‎‏‏‎‎‏‏‏‏‏‎‎Grade/Elevation‎‏‎‎‏‎</string>
<string name="settings_stats_rate_title">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‎‏‏‏‏‎‏‏‎‏‎‎‎‏‏‏‎‏‎‎‏‏‎‎‎‏‏‎‎‎‎‎‏‎‏‎‏‏‎‏‏‏‏‎‎‏‎‏‏‎‏‎‏‎‎‎‏‎‎‎Preferred rate‎‏‎‎‏‎</string>
<string name="settings_stats_units_imperial">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‎‏‏‎‏‏‏‎‏‏‎‎‎‎‎‏‎‎‎‏‎‎‏‏‏‏‏‏‏‏‏‎‏‏‎‏‎‏‏‏‎‎‏‏‏‏‏‏‏‏‎‎‏‎‎‏‏‏‏‎Imperial (mi, ft)‎‏‎‎‏‎</string>
<string name="settings_stats_units_metric">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‏‎‎‎‎‏‏‎‎‎‎‎‎‎‎‎‏‏‏‏‎‎‎‏‏‎‏‏‎‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‏‎‎‎‎‏‎‎‎‎‎‎‏‎Metric (km, m)‎‏‎‎‏‎</string>
<string name="settings_stats_units_title">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‏‎‏‏‏‏‎‏‎‏‎‏‏‎‏‎‎‏‏‏‎‎‏‏‏‏‎‏‏‏‏‎‏‎‎‏‏‏‏‏‎‏‎‎‎‏‏‎‎‎‎‏‎‏‎Preferred units‎‏‎‎‏‎</string>
<string name="share_track_emails_hint">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‎‎‏‎‏‎‏‎‎‎‏‏‎‏‎‏‏‎‏‏‏‏‏‎‎‏‏‏‏‎‎‏‏‎‏‎‏‎‏‏‎‏‎‎‎‏‎‎‏‏‏‏‎‏‎‎‏‏‏‎Email addresses‎‏‎‎‏‎</string>
<string name="share_track_picker_title">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‏‎‎‎‏‎‎‎‎‏‎‏‎‏‎‏‎‎‎‎‎‎‏‏‏‏‏‎‎‏‎‏‏‎‎‎‏‎‎‏‏‎‏‏‎‎‏‏‎‎‎‏‏‏‏‏‎‏‎‎‎Select an application‎‏‎‎‏‎</string>
<string name="share_track_share_file">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‎‎‎‎‏‎‏‏‎‎‏‎‏‎‏‎‎‏‏‎‏‏‎‏‎‎‎‎‎‏‏‏‎‎‏‎‎‏‏‏‎‏‏‏‏‎‏‎‏‏‏‏‎‏‎‏‎Share track file‎‏‎‎‏‎</string>
<string name="share_track_share_file_body">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‎‏‎‎‏‏‏‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‎‏‏‏‎‎‏‏‏‏‎‏‎‏‏‏‎‏‏‏‏‏‏‎‎‏‏‎‎‎I think you might be interested in this track.\n\nTo view this track, use Google Earth or other
mapping software.\n\n‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎‎‏‎‎‏‎</string>
<string name="share_track_subject">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‏‏‏‎‎‏‎‏‎‏‎‎‎‎‏‏‎‏‏‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‎‎‎‎‎‎‎‎‎‏‎‎‎‎‏‏‏‏‎‏‏‏‎I would like to share a track with you‎‏‎‎‏‎</string>
<string name="stats_average_moving_pace">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‏‎‎‏‏‎‏‏‎‎‏‎‏‎‏‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‎‎‏‏‎‎‎‎‎‏‏‏‏‎‎‎‎‏‎‏‏‏‎‎‏‎‎Avg moving pace‎‏‎‎‏‎</string>
<string name="stats_average_moving_speed">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‏‏‎‏‏‎‏‎‏‎‏‎‏‎‎‎‎‏‎‎‎‎‎‎‏‏‏‎‎‎‎‏‎‏‎‏‏‎‏‎‏‎‎‏‏‎‎‏‎‎‏‏‏‎‏‏‎‎‏‎Avg moving speed‎‏‎‎‏‎</string>
<string name="stats_average_pace">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‎‎‏‎‏‏‎‎‎‏‏‏‎‏‎‎‎‎‏‎‎‏‎‎‎‏‎‎‎‎‎‏‎‏‏‎‏‏‎‎‎‎‏‏‎‏‏‏‏‎‎‎‎‏‎‏‏‏‏‎‎Avg pace‎‏‎‎‏‎</string>
<string name="stats_average_speed">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‏‏‏‎‏‎‏‏‏‏‎‏‏‏‎‏‏‏‎‏‏‏‏‎‎‏‏‎‏‎‎‏‎‏‏‎‎‎‏‏‎‎‏‏‏‎‎‎‎‎‎‎‏‏‏‎‎Avg speed‎‏‎‎‏‎</string>
<string name="stats_elevation">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‎‏‎‎‎‎‎‎‏‎‎‎‏‎‏‏‏‎‎‏‎‎‏‏‏‏‏‎‏‏‎‎‏‏‎‏‎‏‎‏‎‎‎‎‎‎‎‎‎‏‎‎‏‏‏‏‎‎‎‎Elevation‎‏‎‎‏‎</string>
<string name="stats_fastest_pace">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‎‎‎‎‎‎‎‏‏‎‏‏‏‎‏‎‏‎‏‎‏‏‏‎‏‏‎‏‏‏‏‏‏‏‎‎‏‏‎‏‏‎‎‎‎‎‎‏‎‏‏‎‏‎‏‏‏‎‎‎Fastest pace‎‏‎‎‏‎</string>
<string name="stats_gain">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‎‏‎‏‏‎‏‏‎‏‎‎‏‏‏‏‎‏‏‏‏‏‏‎‎‎‏‏‏‎‎‏‏‎‎‎‎‎‏‏‏‏‎‎‎‏‏‎‏‏‏‏‏‏‏‎‏‎Gain‎‏‎‎‏‎</string>
<string name="stats_grade">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‏‏‏‏‎‏‎‎‎‎‎‎‏‎‏‎‏‎‏‎‏‏‎‏‎‏‏‏‎‏‎‎‏‎‎‏‏‏‎‏‏‎‏‏‎‎‎‎‏‎‏‎‎‎‏‏‏‏‎‎Grade‎‏‎‎‏‎</string>
<string name="stats_latitude">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‏‏‎‏‎‎‎‏‎‏‏‏‏‎‎‎‏‏‎‏‏‎‎‎‎‏‏‎‎‎‏‏‏‎‎‎‎‏‏‎‎‎‏‎‏‎‎‎‎‎‏‏‏‎‏‎‎‎‎‎‎Latitude‎‏‎‎‏‎</string>
<string name="stats_longitude">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‎‎‏‎‏‎‏‎‏‎‎‎‏‏‎‏‎‏‎‎‎‏‎‏‎‎‎‎‏‎‏‎‎‎‏‎‎‏‎‏‎‎‏‏‏‎‎‏‎‏‎‎‎‏‎‎‎‎‎‎Longitude‎‏‎‎‏‎</string>
<string name="stats_max">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‏‎‏‎‎‏‎‎‏‎‎‎‎‎‎‏‎‏‎‏‏‎‎‏‎‏‏‎‎‎‎‏‏‎‎‏‏‎‏‏‎‏‎‏‏‏‏‎‎‏‎‎‎‏‏‏‏‏‎‎Max‎‏‎‎‏‎</string>
<string name="stats_max_speed">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‏‏‏‎‏‏‎‏‎‎‏‎‏‏‏‏‏‎‎‏‏‎‎‎‏‏‏‏‏‎‏‏‏‎‏‎‏‎‏‎‎‏‏‏‎‎‏‏‏‏‏‏‎‎‎‎‎‏‏‎Max speed‎‏‎‎‏‎</string>
<string name="stats_min">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‎‎‎‎‎‏‏‏‎‎‏‏‎‎‎‏‏‎‏‎‏‎‎‎‏‎‎‏‏‎‎‎‏‏‏‏‎‏‏‎‏‎‏‎‏‏‏‏‏‏‎‏‎‎‎‏‏‏‏‎Min‎‏‎‎‏‎</string>
<string name="stats_moving_time">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‎‎‏‏‏‏‎‏‎‎‏‏‏‎‏‎‎‏‎‏‏‎‎‏‎‏‏‏‏‎‎‎‎‎‏‏‎‎‏‎‏‎‎‎‎‎‎‎‎‏‏‏‏‎‎‏‎‏‎‎‎Moving time‎‏‎‎‏‎</string>
<string name="stats_pace">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‏‏‏‏‎‎‎‎‏‏‏‏‎‎‎‎‏‏‏‏‎‎‏‎‎‏‎‏‎‏‎‏‏‎‎‏‏‏‏‎‎‏‏‎‏‏‏‎‏‏‎‎‏‎‏‏‎‎‎‎Pace‎‏‎‎‏‎</string>
<string name="stats_speed">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‏‎‎‏‏‎‎‏‎‎‎‏‏‏‎‎‏‎‏‎‏‏‏‏‎‎‎‏‏‎‏‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‏‏‏‏‏‎‏‎‎‎‎‏‎‎Speed‎‏‎‎‏‎</string>
<string name="stats_distance">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‏‏‎‏‎‏‏‎‎‎‏‎‎‎‏‏‏‏‏‎‎‏‏‏‎‎‏‏‏‏‏‏‎‏‎‎‏‏‏‎‏‎‏‏‏‎‏‎‏‎‏‏‎‎‎‏‏‏‎‎Distance‎‏‎‎‏‎</string>
<string name="stats_total_time">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‎‎‏‏‏‎‎‏‏‏‎‎‏‏‏‏‏‏‏‏‎‎‏‎‏‏‎‎‏‎‎‎‎‎‎‏‎‏‎‎‎‎‏‏‎‏‎‏‎‎‎‎‎‏‏‎‏‏‏‎Total time‎‏‎‎‏‎</string>
<string name="track_name_format">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‎‏‏‏‏‏‎‏‎‏‎‏‎‏‏‎‎‏‏‎‏‏‏‏‏‏‎‎‏‎‎‏‎‎‏‎‎‏‎‏‏‎‏‎‎‎‏‏‏‎‏‏‏‎‎‏‎‏‎‎Track ‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎‎‏‎‎‏‎</string>
<string name="track_record_notification">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‎‎‏‏‎‎‎‎‎‏‏‎‎‎‏‎‎‎‎‎‎‎‎‎‏‏‏‏‎‏‎‏‏‏‎‎‏‏‏‎‎‎‎‏‏‎‎‎‎‎‏‎‏‏‏‎‏‎‎‎Recording your track…‎‏‎‎‏‎</string>
<string name="track_markers">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‎‏‎‎‎‎‎‏‏‏‎‏‎‏‎‎‎‏‎‎‏‎‏‎‏‎‏‏‏‎‎‎‎‎‎‏‏‎‏‏‎‏‎‏‎‏‏‎‎‏‏‏‎‎‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ Markers‎‏‎‎‏‎</string>
<string name="track_delete_one_confirm_message">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‏‏‏‏‎‎‎‏‎‏‏‏‎‏‎‎‎‏‏‏‎‎‎‏‏‎‎‎‎‎‎‎‏‏‎‏‏‏‎‏‏‏‏‎‏‏‏‎‎‎‎‏‎‏‎‏‎‏‎‎The track and its markers will be permanently deleted from the device.‎‏‎‎‏‎</string>
<string name="track_delete_one_confirm_title">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‎‎‏‏‎‏‏‎‎‎‏‏‏‎‏‏‎‏‏‏‏‎‎‏‏‏‎‎‏‏‏‎‎‎‏‏‎‏‏‏‎‎‎‏‏‎‏‏‎‎‏‏‏‎‏‏‏‏‎‎Delete track?‎‏‎‎‏‎</string>
<string name="track_delete_multiple_confirm_message">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‎‏‏‎‏‏‏‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‎‏‏‏‎‏‏‏‎‎‏‎‎‏‏‏‎‎‏‏‏‏‏‏‏‎‎‎‏‏‏‎‏‎‎The selected tracks and their markers will be permanently deleted from the device.‎‏‎‎‏‎</string>
<string name="track_delete_progress_message">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‏‎‎‏‎‏‏‎‏‏‎‎‏‏‎‎‎‏‎‏‏‏‎‏‏‎‏‎‏‎‏‏‎‎‏‏‎‏‏‏‏‏‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎Deleting…‎‏‎‎‏‎</string>
<string name="track_detail_chart_tab">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‎‏‏‎‎‎‏‏‏‎‎‎‎‎‏‎‎‏‏‎‏‏‏‎‎‎‏‎‎‏‏‎‏‏‎‏‎‎‏‎‏‎‎‎‎‏‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎Chart‎‏‎‎‏‎</string>
<string name="track_detail_stats_tab">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‏‎‏‏‎‎‏‏‎‏‏‏‎‎‎‎‏‎‏‎‏‎‏‏‎‎‏‎‎‎‎‎‎‏‎‏‏‎‎‎‎‎‎‏‎‎‎‎‏‎‎‏‏‎‏‏‎Stats‎‏‎‎‏‎</string>
<string name="track_edit_activity_type">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‎‎‏‎‏‎‎‏‎‎‎‏‎‎‏‎‎‎‎‏‎‏‎‎‏‏‎‏‎‏‏‎‎‏‎‏‎‎‎‎‎‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎Activity type (e.g. hiking)‎‏‎‎‏‎</string>
<string name="track_edit_activity_type_hint">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‎‎‎‏‏‎‏‏‏‎‏‎‎‏‏‎‎‏‎‎‏‏‎‏‎‏‏‎‎‎‎‏‏‏‏‏‎‎‏‎‎‎‎‏‎‏‎‏‏‎‎‏‏‏‎‏‎‏‏‎Activity type‎‏‎‎‏‎</string>
<string name="track_edit_new_track_title">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‎‎‏‏‏‏‎‎‏‏‏‎‎‎‏‏‎‏‎‏‎‎‏‎‎‏‏‏‎‏‎‎‎‏‏‎‎‎‎‎‎‎‎‎‎‎‎‏‏‏‏‎‎‎‎‏‏‏‎‎New Track‎‏‎‎‏‎</string>
<string name="track_list_empty_message">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‏‎‏‏‏‏‎‏‎‎‏‏‏‏‏‏‏‎‏‎‏‏‎‎‎‎‎‏‎‎‏‏‏‎‏‏‎‎‎‏‎‏‎‏‎‎‏‎‎‏‎‎‏‏‏‏‏‏‎‎Start recording your next adventure here‎‏‎‎‏‎</string>
<string name="track_list_record_error">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‎‏‎‎‏‏‎‏‏‏‏‏‏‎‎‏‎‏‏‎‏‎‎‏‎‏‏‏‎‏‎‎‏‏‎‎‎‏‎‎‏‎‎‏‏‎‏‏‎‏‎‎‏‎‏‎‎Unable to start recording. No GPS signal. Try again.‎‏‎‎‏‎</string>
<string name="track_list_record_success">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‎‎‎‎‏‏‎‎‏‏‎‎‏‏‏‏‏‏‎‏‎‏‎‎‏‎‎‎‏‎‏‏‎‏‏‏‎‎‏‏‏‎‎‎‏‏‏‏‏‏‎‏‏‎‎‏‎‏‎‎Now recording a new track‎‏‎‎‏‎</string>
<string name="track_widget_config_title">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‎‎‏‏‏‏‎‎‎‏‎‎‎‏‏‏‎‏‎‏‏‎‎‏‏‎‎‏‎‎‎‎‎‎‏‎‏‎‏‎‎‏‎‎‎‏‏‏‏‏‎‏‎‎‎‎‏‎Configure Widget Items‎‏‎‎‏‎</string>
<string name="tracks_few">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‎‏‎‏‏‎‏‏‎‏‎‏‏‎‏‎‎‎‎‏‏‎‎‏‏‏‏‏‏‏‏‏‏‎‏‏‏‏‎‎‏‏‎‏‎‎‏‎‎‏‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ tracks‎‏‎‎‏‎</string>
<string name="tracks_many">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‎‏‏‎‎‎‏‏‏‎‎‏‏‎‎‏‏‎‎‎‏‏‏‏‏‎‎‎‎‎‎‎‎‎‎‏‎‏‏‏‎‏‎‎‏‎‎‏‎‏‏‎‏‏‏‎‎‎‎‏‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ tracks‎‏‎‎‏‎</string>
<string name="tracks_one">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‏‏‎‎‎‎‎‏‎‎‎‏‎‎‎‎‎‎‏‎‎‎‎‏‎‏‎‏‎‎‎‏‎‎‏‎‎‎‏‏‏‎‏‏‎‏‎‎‎‎‏‏‎‎‎1 track‎‏‎‎‏‎</string>
<string name="tracks_other">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‏‎‎‏‎‏‏‎‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‎‏‏‎‎‎‏‎‏‎‎‎‏‏‏‎‎‎‏‎‎‎‏‎‏‎‎‎‎‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ tracks‎‏‎‎‏‎</string>
<string name="tracks_two">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‎‎‏‏‏‎‎‏‏‎‏‎‏‎‏‎‏‎‏‎‎‏‎‏‏‎‏‏‏‎‎‏‎‏‏‏‏‎‏‏‏‏‎‏‏‎‎‎‏‎‏‎‏‏‎‎‎‎‏‎2 tracks‎‏‎‎‏‎</string>
<string name="tracks_zero">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‎‎‏‏‎‏‏‎‎‏‎‎‏‏‎‏‎‎‏‏‎‏‏‎‎‏‎‏‎‏‏‏‏‏‎‎‎‏‎‏‎‏‏‎‏‎‏‎‎‏‎‏‎‏‏‏‏‎‏‎0 tracks‎‏‎‎‏‎</string>
<string name="unit_feet">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‎‏‏‎‏‏‎‎‏‏‏‏‏‎‎‏‏‎‏‏‎‎‏‎‏‎‏‏‎‏‏‏‎‎‏‎‏‏‏‎‎‎‏‏‎‎‎‏‎‎‏‎‏‏‏‎‏‏‎‎ft‎‏‎‎‏‎</string>
<string name="unit_kilometer">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‏‏‏‎‎‎‎‎‎‎‏‎‏‏‏‏‎‎‎‏‏‎‏‎‏‏‏‏‎‏‏‏‏‎‏‎‏‏‎‏‎‏‎‏‎‏‎‏‎‏‏‎‎‎‎‎‎‎‏‎‎km‎‏‎‎‏‎</string>
<string name="unit_kilometer_per_hour">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‏‏‎‏‏‎‏‏‏‏‎‏‏‎‎‏‎‎‏‎‏‎‏‏‏‏‏‏‎‎‏‎‏‎‎‏‎‎‎‏‏‏‎‏‎‏‏‏‎‏‎‏‎‏‏‏‎km/h‎‏‎‎‏‎</string>
<string name="unit_meter">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‎‏‎‎‎‎‏‎‎‏‎‏‎‏‎‏‎‏‎‎‎‎‎‏‎‎‎‎‎‎‎‏‎‎‏‏‎‎‎‎‏‎‎‏‎‎m‎‏‎‎‏‎</string>
<string name="unit_mile">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‎‎‏‎‏‏‎‏‎‎‏‏‎‎‎‎‎‏‎‏‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‎‎‎‏‎‏‏‏‎‏‎‎‏‎‎‏‏‏‏‏‎mi‎‏‎‎‏‎</string>
<string name="unit_mile_per_hour">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‏‏‎‎‏‏‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‎‎‎‏‎‏‎‎‎‎‏‏‎‎‎‎‏‏‎‎‎‏‏‏‎‏‎mi/h‎‏‎‎‏‎</string>
<string name="unit_minute_per_kilometer">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‎‎‏‏‏‎‏‎‏‏‏‏‏‎‏‎‏‎‏‏‎‏‏‏‏‏‏‏‎‏‏‎‏‎‎‏‏‎‏‏‎‎‎‏‎‎‎‏‏‎‏‏‏‏‎‎‏‏‏‎min/km‎‏‎‎‏‎</string>
<string name="unit_minute_per_mile">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‎‏‎‎‏‎‎‎‎‎‏‏‏‎‏‎‎‏‏‎‎‏‎‎‏‎‏‎‎‏‎‏‏‎‏‏‎‎‏‏‏‏‏‏‎‏‎‎‎‏‏‏‎min/mi‎‏‎‎‏‎</string>
<string name="value_adapt_accuracy">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‏‎‎‎‎‏‏‎‎‏‎‎‏‏‏‏‎‏‎‎‎‎‎‏‏‏‏‎‎‏‎‎‏‎‎‎‏‏‎‏‏‏‏‎‎‏‎‏‏‏‎‎‎‎‏‏‏‏‎‎Adapt for accuracy‎‏‎‎‏‎</string>
<string name="value_adapt_battery_life">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‎‏‏‏‏‎‎‎‏‎‏‏‏‎‏‏‏‏‎‎‏‏‏‏‎‏‎‎‏‏‏‏‎‎‏‎‎‎‎‏‎‏‎‏‎‏‎‎‏‎‎‎‎‎‏‎Adapt for battery life‎‏‎‎‏‎</string>
<string name="value_always">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‎‏‎‏‏‏‏‎‏‎‏‎‏‎‎‏‎‏‎‎‎‎‏‏‎‏‏‎‏‎‎‏‏‏‎‏‎‎‎‏‏‎‏‏‎‏‏‏‎‏‏‏‏‏‎‏‏‏‎‏‎Always‎‏‎‎‏‎</string>
<string name="value_float_feet">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‏‎‏‏‏‎‏‏‏‏‏‏‎‏‎‎‎‎‏‎‏‎‏‏‎‏‎‏‏‎‎‎‎‏‎‎‎‎‎‎‎‏‏‎‏‏‎‎‎‎‎‏‏‎‏‏‎‎‎‎‎‏‎‎‏‏‎%1$.2f‎‏‎‎‏‏‏‎ ft‎‏‎‎‏‎</string>
<string name="value_float_kilometer">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‏‏‎‎‏‏‏‎‏‏‏‏‎‏‎‎‏‏‎‎‏‏‏‎‏‏‎‏‏‏‎‏‎‎‎‎‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‏‎‏‎‏‎‎‎‏‎‎‏‏‎%1$.2f‎‏‎‎‏‏‏‎ km‎‏‎‎‏‎</string>
<string name="value_float_meter">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‏‎‎‏‏‎‎‎‎‎‎‎‏‎‎‎‎‎‎‏‏‎‎‎‏‎‎‎‎‎‎‏‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‏‎‏‏‎‏‏‏‏‎‎‏‎‎‏‏‎%1$.2f‎‏‎‎‏‏‏‎ m‎‏‎‎‏‎</string>
<string name="value_float_mile">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‏‏‎‏‏‎‎‎‏‎‎‎‏‎‏‎‏‎‏‎‏‏‎‏‎‎‎‏‎‏‎‏‎‏‏‎‏‏‎‎‎‎‎‏‎‎‏‏‎‏‎‏‏‏‏‎‎‎‏‎‎‏‎‎‏‏‎%1$.2f‎‏‎‎‏‏‏‎ mi‎‏‎‎‏‎</string>
<string name="value_float_mile_poor_gps">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‎‏‎‏‎‏‏‎‎‎‎‎‏‏‏‎‏‎‎‏‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‎‎‎‏‎‏‎‎‏‏‎‎‎‎‏‏‏‎‎‏‎‏‏‎‎‎‏‎‎‏‏‎%1$.1f‎‏‎‎‏‏‏‎ mi (poor GPS)‎‏‎‎‏‎</string>
<string name="value_integer_feet">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‎‎‎‏‏‎‎‎‏‏‎‎‏‎‏‏‎‎‎‏‎‏‏‏‎‏‎‎‏‎‏‎‎‏‎‎‎‎‎‏‎‏‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‎‎‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ ft‎‏‎‎‏‎</string>
<string name="value_integer_feet_excellent_gps">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‎‏‏‏‎‎‏‏‏‏‎‎‏‎‎‏‎‏‎‎‎‏‏‏‎‎‎‏‏‎‎‏‎‏‎‎‏‎‎‏‎‏‏‏‏‎‏‎‎‏‎‎‏‏‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ ft (excellent GPS)‎‏‎‎‏‎</string>
<string name="value_integer_feet_recommended">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‎‏‏‎‏‏‏‎‏‏‏‎‎‏‎‎‎‏‏‎‏‎‎‎‎‏‎‎‏‏‎‎‏‏‎‎‎‏‏‎‏‎‎‎‏‎‏‏‏‎‎‏‏‎‎‎‎‎‎‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ ft (recommended)‎‏‎‎‏‎</string>
<string name="value_integer_kilobyte">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‏‎‎‏‏‎‎‏‎‎‎‎‏‏‎‏‏‏‎‏‎‏‎‏‏‎‎‎‎‏‏‎‏‏‏‏‎‎‎‏‎‏‎‏‏‎‏‏‏‏‎‏‏‎‎‎‏‎‏‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ kB‎‏‎‎‏‎</string>
<string name="value_integer_kilometer">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‎‏‎‏‎‏‎‎‎‏‎‎‏‎‏‏‏‎‎‏‏‏‎‎‏‏‏‎‏‎‏‎‎‏‏‏‎‏‏‎‏‏‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‎‎‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ km‎‏‎‎‏‎</string>
<string name="value_integer_kilometer_hour">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‏‏‏‎‏‏‏‎‏‏‏‎‎‎‏‏‎‎‏‎‏‏‎‎‏‎‏‎‎‏‎‏‎‏‏‏‏‏‏‎‎‏‎‎‎‎‎‏‏‎‎‏‎‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ km/h‎‏‎‎‏‎</string>
<string name="value_integer_megabyte">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‏‏‏‎‏‏‎‎‏‎‏‎‏‎‎‏‏‎‏‏‏‎‎‎‎‏‎‏‎‏‏‎‏‏‎‎‏‎‏‏‎‏‏‎‏‏‏‏‏‎‎‏‎‏‏‎‎‏‎‏‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ MB‎‏‎‎‏‎</string>
<string name="value_integer_meter">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‎‎‎‏‏‎‏‎‎‏‏‏‎‎‏‏‎‎‏‏‎‏‎‏‏‎‏‏‎‏‏‏‏‎‎‏‏‎‎‎‎‏‏‏‎‏‎‎‎‎‏‏‎‏‎‎‎‎‏‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ m‎‏‎‎‏‎</string>
<string name="value_integer_meter_excellent_gps">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‎‏‏‎‎‎‏‎‏‎‏‏‎‎‎‎‎‎‏‏‏‏‎‎‏‏‏‏‏‏‏‎‎‏‏‏‏‏‏‏‎‏‎‎‎‎‏‏‎‏‎‎‏‎‏‎‎‎‎‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ m (excellent GPS)‎‏‎‎‏‎</string>
<string name="value_integer_meter_poor_gps">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‎‏‏‏‏‎‏‎‎‏‎‎‎‏‎‏‏‎‎‎‏‎‏‏‎‎‎‏‎‏‎‎‏‎‎‏‏‏‎‎‎‎‎‎‏‏‏‎‎‎‏‎‎‏‎‎‎‎‎‎‎‏‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ m (poor GPS)‎‏‎‎‏‎</string>
<string name="value_integer_meter_recommended">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‎‏‏‏‏‎‎‎‎‎‏‏‏‏‎‏‏‏‏‎‎‎‎‏‎‏‏‎‎‏‏‏‏‎‏‎‏‎‎‏‏‎‎‎‏‎‏‏‎‎‎‎‎‏‎‏‏‏‏‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ m (recommended)‎‏‎‎‏‎</string>
<string name="value_integer_mile">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‎‏‎‎‏‎‏‎‎‏‏‏‎‎‎‏‎‏‏‎‏‏‏‏‏‎‎‏‎‏‎‏‏‎‎‏‎‎‎‏‏‏‏‏‎‏‎‎‏‎‎‏‎‎‎‎‏‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ mi‎‏‎‎‏‎</string>
<string name="value_integer_mile_hour">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‏‎‏‏‏‎‏‎‏‏‎‏‎‏‎‏‎‏‏‎‏‏‎‎‏‎‎‎‏‏‏‎‎‏‎‏‎‎‎‎‏‎‎‎‏‏‏‎‏‎‏‏‎‎‏‎‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ mi/h‎‏‎‎‏‎</string>
<string name="value_integer_minute">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‏‎‏‎‎‎‏‎‎‏‎‎‏‎‏‎‏‏‎‏‎‎‏‏‎‏‏‎‏‏‎‎‏‎‎‏‎‏‎‏‎‏‎‏‏‏‎‎‏‏‏‎‎‏‏‏‎‏‏‏‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ min‎‏‎‎‏‎</string>
<string name="value_integer_percent">%1$d %%</string>
<string name="value_integer_second">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‎‎‏‏‎‏‏‎‏‎‏‏‎‎‎‏‎‎‏‏‏‎‎‎‎‎‎‎‎‎‏‏‏‎‏‏‏‎‏‎‏‎‎‏‏‎‏‎‏‎‏‎‏‏‏‏‏‏‎‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ s‎‏‎‎‏‎</string>
<string name="value_never">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‎‏‎‏‏‎‏‏‎‎‏‎‏‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‎‎‏‎‎‎‎‏‎‏‏‎‏‎‏‎‏‎‏‎‏‎‎‎‎‎Never‎‏‎‎‏‎</string>
<string name="value_none">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‎‎‎‎‎‎‏‏‏‎‎‏‎‎‎‎‎‎‏‎‏‏‎‎‎‏‎‎‏‏‎‏‏‏‎‎‎‎‎‎‏‏‏‎‎‎‏‎‎‎‏‏‏‏‎‏‎‎‏‎None‎‏‎‎‏‎</string>
<string name="value_off">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‎‏‎‎‎‏‎‎‏‏‎‏‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‏‎‎‎‏‏‏‎‏‏‎‎‏‏‏‎‏‏‎‎‎‏‏‎‏‏‎‎‎Off‎‏‎‎‏‎</string>
<string name="value_smallest">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‏‏‏‎‎‏‎‏‎‎‏‎‎‎‎‎‎‏‎‏‎‎‏‎‎‏‎‏‎‏‎‏‏‎‎‏‎‏‎‏‏‎‏‏‏‎‎‎‏‎‏‎‎‏‎‏‏‏‎‎Smallest‎‏‎‎‏‎</string>
<string name="value_smallest_recommended">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‏‎‏‏‏‎‏‎‎‎‏‏‎‏‎‎‎‏‎‏‎‏‏‎‏‎‏‏‎‏‎‎‏‏‎‏‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‎‏‏‎‎Smallest (recommended)‎‏‎‎‏‎</string>
<string name="voice_hours_few">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‏‎‏‎‏‎‏‎‎‎‎‎‏‎‏‎‏‏‏‎‎‏‎‏‏‎‎‎‎‎‏‏‏‎‎‎‏‎‏‎‏‏‏‎‏‎‎‏‎‏‎‏‎‎‏‎‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ hours‎‏‎‎‏‎</string>
<string name="voice_hours_many">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‏‏‏‎‏‎‎‎‏‎‏‏‏‎‏‏‎‏‎‏‏‎‏‎‏‎‎‎‎‏‎‏‎‎‏‎‎‏‎‎‏‎‎‏‎‏‎‎‏‎‎‏‏‏‏‎‎‏‏‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ hours‎‏‎‎‏‎</string>
<string name="voice_hours_one">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‏‏‏‎‎‎‏‏‏‏‎‏‎‏‏‏‏‎‏‏‎‏‎‎‏‏‎‏‎‏‎‎‎‎‎‎‏‎‏‎‎‎‎‎‏‎‎‎1 hour‎‏‎‎‏‎</string>
<string name="voice_hours_other">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‏‎‏‏‏‏‏‏‎‎‎‏‏‎‎‎‏‎‎‎‎‏‏‏‏‎‎‎‎‏‏‎‏‏‎‏‎‏‎‎‎‏‏‏‏‎‏‏‎‏‏‏‏‎‎‎‏‎‎‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ hours‎‏‎‎‏‎</string>
<string name="voice_hours_two">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‏‎‎‏‎‏‏‎‎‏‎‎‏‏‎‎‏‏‎‎‏‎‎‎‎‎‏‎‏‏‎‏‎‎‎‏‎‎‏‎‏‎‎‎‎‏‏‎‎‏‏‎‎‎‎‏‏‎‎‎2 hours‎‏‎‎‏‎</string>
<string name="voice_hours_zero">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‎‎‎‏‎‎‏‏‏‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‎‎‏‎‏‎‏‏‎‏‏‏‏‎‏‏‏‎‏‎‏‎‎‎‏‎‏‏‏‎‎‎‏‏‎0 hours‎‏‎‎‏‎</string>
<string name="voice_minutes_few">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‎‏‎‏‎‎‏‎‏‏‏‏‎‎‎‏‏‏‎‎‎‎‎‎‎‏‏‎‎‎‎‎‏‏‏‎‏‏‏‏‏‏‏‎‏‏‎‏‎‏‎‏‏‏‏‎‏‏‏‏‏‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ minutes‎‏‎‎‏‎</string>
<string name="voice_minutes_many">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‎‎‎‎‎‎‎‏‎‏‎‏‏‎‎‏‎‎‎‏‎‏‏‎‏‏‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‎‎‎‎‎‎‏‎‎‎‏‎‎‎‏‎‏‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ minutes‎‏‎‎‏‎</string>
<string name="voice_minutes_one">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‏‎‎‏‎‎‎‏‎‎‎‏‏‏‎‎‎‏‏‎‎‏‎‎‏‎‎‏‎‎‏‎‏‎‏‎‎‏‎‏‎‎‏‎‏‏‎‏‎‎‎‎‎‏‎‏‏‎‎‎1 minute‎‏‎‎‏‎</string>
<string name="voice_minutes_other">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‎‎‏‏‏‎‎‎‏‏‎‏‎‏‏‏‎‏‎‏‏‎‎‏‏‏‏‏‏‎‏‏‎‏‎‏‎‎‎‏‎‎‎‏‎‏‏‏‎‏‏‎‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ minutes‎‏‎‎‏‎</string>
<string name="voice_minutes_two">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‎‎‎‎‏‏‏‏‎‎‎‏‎‎‏‏‎‎‏‏‏‏‎‏‎‏‎‎‎‎‎‎‎‏‏‎‏‎‏‎‎‏‏‏‏‏‏‏‎‏‏‎‎‏‎2 minutes‎‏‎‎‏‎</string>
<string name="voice_minutes_zero">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‎‎‎‎‎‎‏‎‏‏‏‏‎‏‎‏‏‎‏‎‏‎‎‏‎‎‏‏‎‎‏‎‏‏‏‏‏‎‎‏‎‏‎‏‏‎‎‏‏‎‎‎‏‎0 minutes‎‏‎‎‏‎</string>
<string name="voice_pace_per_kilometer">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‏‎‏‏‎‏‎‏‏‎‏‏‏‏‎‎‏‎‎‎‎‎‎‎‏‏‎‏‎‎‏‏‏‎‎‏‎‏‎‎‎‎‏‎‎‏‏‏‎‎‎‏‏‎‏‏‎‎‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ per kilometer‎‏‎‎‏‎</string>
<string name="voice_pace_per_mile">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‏‏‎‏‏‎‏‏‎‏‎‎‏‏‎‏‎‏‎‎‎‎‎‎‏‎‏‏‎‏‎‏‏‏‎‎‎‎‏‎‎‏‏‏‎‎‏‏‏‏‎‏‎‏‏‏‎‏‎‎‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ per mile‎‏‎‎‏‎</string>
<string name="voice_seconds_few">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‎‎‎‏‏‎‏‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‎‏‎‏‎‎‎‏‏‏‎‏‎‏‎‏‎‏‏‎‎‎‏‎‎‎‏‎‎‏‏‏‎‎‎‎‎‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ seconds‎‏‎‎‏‎</string>
<string name="voice_seconds_many">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‏‎‏‎‏‎‎‎‏‏‎‏‎‎‏‎‏‎‎‏‏‎‎‎‎‎‏‏‏‎‎‏‎‏‏‎‎‏‎‏‏‏‎‎‏‎‏‏‎‎‏‏‏‏‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ seconds‎‏‎‎‏‎</string>
<string name="voice_seconds_one">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‏‎‎‎‏‎‏‏‏‎‎‏‎‏‏‏‏‎‏‎‎‏‏‏‏‎‎‏‎‏‎‎‏‏‏‏‎‏‎‎‎‏‎‏‏‎‏‏‏‎‏‏‏‏‏‏‎‎1 second‎‏‎‎‏‎</string>
<string name="voice_seconds_other">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‏‏‎‎‎‏‎‏‏‎‏‏‏‎‎‏‎‎‏‎‎‎‎‎‏‎‎‏‎‏‏‎‏‎‏‎‏‏‏‏‎‏‎‎‏‏‎‎‏‏‎‎‏‎‏‎‏‎‏‎‎‏‎‎‏‏‎%1$d‎‏‎‎‏‏‏‎ seconds‎‏‎‎‏‎</string>
<string name="voice_seconds_two">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‏‏‎‏‎‏‎‎‏‎‎‎‏‎‏‎‏‎‎‏‏‏‏‏‏‏‎‎‏‏‏‎‎‏‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‏‏‏‏‏‎‏‏‎2 seconds‎‏‎‎‏‎</string>
<string name="voice_seconds_zero">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‏‏‏‎‏‏‏‏‎‏‏‏‏‏‎‏‏‎‎‎‏‎‏‎‏‎‎‏‎‏‏‎‏‎‎‎‎‎‏‏‎‎‎‎‏‏‏‎‏‎‏‎‎‏‎‏‏‎0 seconds‎‏‎‎‏‎</string>
<string name="voice_speed_kilometers_per_hour_few">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‏‎‏‏‏‎‏‏‏‎‎‎‏‏‏‎‎‏‎‏‎‏‏‏‏‎‏‏‎‏‎‎‏‎‎‏‎‏‏‏‏‎‏‏‎‏‏‏‎‏‎‎‏‏‎‎‎‏‏‎‎‏‎‎‏‏‎%1$.1f‎‏‎‎‏‏‏‎ kilometers per hour‎‏‎‎‏‎</string>
<string name="voice_speed_kilometers_per_hour_many">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‎‎‎‏‎‎‏‏‏‏‎‎‎‎‏‏‎‏‎‏‎‏‎‏‏‏‎‎‎‎‏‏‏‏‎‎‎‎‎‏‎‎‎‏‏‏‏‎‎‎‏‏‎‏‎‎‏‎‎‏‏‎%1$.1f‎‏‎‎‏‏‏‎ kilometers per hour‎‏‎‎‏‎</string>
<string name="voice_speed_kilometers_per_hour_one">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‏‏‏‎‏‏‎‏‏‏‏‎‏‎‎‎‏‏‎‎‎‏‏‏‏‎‏‏‎‏‏‏‏‏‏‎‎‎‏‎‏‎‎‎‏‎‎‏‎‎‏‏‎‎‎‏‏‎1 kilometer per hour‎‏‎‎‏‎</string>
<string name="voice_speed_kilometers_per_hour_other">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‏‏‏‏‎‎‏‎‏‏‏‏‎‎‏‏‏‏‎‏‏‎‎‎‎‏‏‎‎‏‎‏‎‏‏‏‎‏‏‏‏‏‏‎‎‏‎‎‎‎‏‎‎‏‏‎%1$.1f‎‏‎‎‏‏‏‎ kilometers per hour‎‏‎‎‏‎</string>
<string name="voice_speed_kilometers_per_hour_two">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‎‏‎‎‎‏‎‏‏‏‎‎‏‏‏‏‎‏‎‏‎‏‏‏‏‏‎‎‏‏‎‏‏‏‎‎‏‎‎‏‎‎‏‎‏‎2 kilometers per hour‎‏‎‎‏‎</string>
<string name="voice_speed_kilometers_per_hour_zero">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‎‏‎‏‏‏‎‎‎‎‏‏‎‎‎‎‎‏‏‎‏‎‎‎‎‎‏‏‎‏‏‏‎‎‏‏‏‏‏‏‎‎‏‏‎‎‎‎‏‏‏‏‏‏‏‎‏‏‎‎‎0 kilometers per hour‎‏‎‎‏‎</string>
<string name="voice_speed_miles_per_hour_few">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‎‎‏‏‎‎‎‎‎‏‎‎‎‎‎‎‏‏‏‎‏‎‏‏‏‎‎‏‏‎‎‏‎‎‏‎‎‎‏‏‎‏‎‎‏‏‎‏‏‏‏‏‎‏‏‎‎‎‏‎‎‏‏‎%1$.1f‎‏‎‎‏‏‏‎ miles per hour‎‏‎‎‏‎</string>
<string name="voice_speed_miles_per_hour_many">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‏‏‏‎‏‎‏‎‏‎‎‏‏‎‎‏‏‎‎‏‏‎‏‎‎‏‏‏‎‎‎‎‏‏‏‎‏‎‏‎‎‏‏‎‏‎‏‎‏‏‏‎‏‏‎‎‎‏‏‎‎‏‎‎‏‏‎%1$.1f‎‏‎‎‏‏‏‎ miles per hour‎‏‎‎‏‎</string>
<string name="voice_speed_miles_per_hour_one">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‏‏‎‎‎‎‎‏‎‏‏‏‏‏‎‎‏‎‎‏‎‎‏‎‏‏‏‎‏‎‎‎‎‎‏‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‎‎‏‏‎‎‎‎‎1 mile per hour‎‏‎‎‏‎</string>
<string name="voice_speed_miles_per_hour_other">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‎‎‏‎‏‎‏‏‎‎‎‎‎‎‎‏‎‎‎‏‎‏‏‏‎‏‎‏‎‎‏‎‏‎‏‏‏‎‏‎‏‎‏‎‎‏‎‏‏‎‏‎‎‏‏‎‎‏‎‎‎‏‎‎‏‏‎%1$.1f‎‏‎‎‏‏‏‎ miles per hour‎‏‎‎‏‎</string>
<string name="voice_speed_miles_per_hour_two">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‏‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‎‎‎‏‎‎‏‏‎‏‏‎‎‏‏‏‏‎‏‏‎‏‎‏‏‎‎‎‏‎‎‎‏‏‏‏‏‏‏‎2 miles per hour‎‏‎‎‏‎</string>
<string name="voice_speed_miles_per_hour_zero">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‎‎‏‎‏‎‏‏‎‎‏‏‎‏‎‏‎‏‏‏‎‎‎‏‎‎‏‏‎‎‏‎‏‎‏‎‎‏‏‎‏‎‎‎‎‎‏‎‏‎‎‏‎‎‏‏‎‏‎‎0 miles per hour‎‏‎‎‏‎</string>
<string name="voice_template">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‎‎‎‎‎‎‏‏‎‏‎‎‏‏‏‎‎‎‎‎‏‏‎‎‏‎‎‏‎‏‎‏‏‏‎‏‎‏‏‎‏‏‏‏‎‏‎‎‏‎‏‏‎‏‎‏‏‎OpenTracks ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ in ‎‏‎‎‏‏‎%2$s‎‏‎‎‏‏‏‎ at ‎‏‎‎‏‏‎%3$s‎‏‎‎‏‏‏‎‎‏‎‎‏‎</string>
<string name="voice_total_distance_kilometers_few">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‎‎‏‏‏‏‏‎‎‎‎‎‎‏‎‏‎‏‏‎‏‎‏‏‏‏‎‎‎‎‏‎‎‏‎‏‎‎‏‎‎‏‎‏‎‎‎‏‎‎‏‏‏‎‎‎‏‏‏‎total distance ‎‏‎‎‏‏‎%1$.2f‎‏‎‎‏‏‏‎ kilometers‎‏‎‎‏‎</string>
<string name="voice_total_distance_kilometers_many">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‏‎‏‎‏‏‎‎‏‏‏‏‏‎‎‏‏‎‎‎‏‎‎‏‎‎‎‏‏‏‎‏‎‎‎‎‏‎‏‏‏‏‎‎‎‎‎‏‎‏‎‏‏‎‏‏‎‏‏‎total distance ‎‏‎‎‏‏‎%1$.2f‎‏‎‎‏‏‏‎ kilometers‎‏‎‎‏‎</string>
<string name="voice_total_distance_kilometers_one">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‎‎‏‏‏‏‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‎‎‎‏‎‏‎‏‎‎‎‎‏‎‏‎‏‏‎‏‏‎‏‎‏‏‎‎‎‎‏‏‏‎‎total distance 1 kilometer‎‏‎‎‏‎</string>
<string name="voice_total_distance_kilometers_other">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‎‎‎‏‎‏‎‎‏‏‏‎‏‏‏‎‏‏‎‏‎‏‏‎‏‏‎‎‏‏‏‏‏‏‎‎‏‎‎‎‏‏‏‏‏‏‎‎‎‎‏‎‏‏‎‎‏‏‎‎total distance ‎‏‎‎‏‏‎%1$.2f‎‏‎‎‏‏‏‎ kilometers‎‏‎‎‏‎</string>
<string name="voice_total_distance_kilometers_two">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‎‏‎‏‏‏‎‏‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‏‏‎‏‏‏‎‎‎‏‏‏‎‎‎‏‎‎‏‎‏‎‏‎‏‏‎‏‎‏‎‎‎‏‎‏‎total distance 2 kilometers‎‏‎‎‏‎</string>
<string name="voice_total_distance_kilometers_zero">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‏‏‏‏‎‎‎‎‎‎‏‏‏‏‏‎‎‏‏‏‎‎‎‏‏‏‏‏‎‎‎‏‏‏‎‎‎‏‏‏‎‏‎‎‎‎‎‏‎‏‏‎‏‎‏‏‎‏‎‏‎total distance 0 kilometers‎‏‎‎‏‎</string>
<string name="voice_total_distance_miles_few">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‏‏‎‏‏‏‎‎‎‎‎‏‏‏‏‏‎‎‎‎‏‏‏‏‏‎‏‏‎‏‏‏‏‎‎‏‎‎‏‎‎‏‏‎‏‏‎‏‎‎‎‏‏‎‏‎‏‎‎‏‎total distance ‎‏‎‎‏‏‎%1$.2f‎‏‎‎‏‏‏‎ miles‎‏‎‎‏‎</string>
<string name="voice_total_distance_miles_many">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‎‎‎‏‎‎‎‎‏‏‏‏‏‎‎‎‎‎‏‎‏‎‎‏‏‏‏‎‎‏‏‎‎‎‏‎‎‏‎‎‎‎‎‏‏‎‏‎‎‎‏‎‎‏‏‎‏‏‎‎total distance ‎‏‎‎‏‏‎%1$.2f‎‏‎‎‏‏‏‎ miles‎‏‎‎‏‎</string>
<string name="voice_total_distance_miles_one">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‏‏‎‎‏‎‏‎‏‏‏‎‎‏‏‏‏‏‎‎‏‎‎‏‎‏‏‎‎‏‎‎‏‏‏‏‎‎‏‎‏‎‎‎‎‎‎‎‏‏‏‎‏‏‎‏‎total distance 1 mile‎‏‎‎‏‎</string>
<string name="voice_total_distance_miles_other">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‏‏‏‎‎‏‏‎‏‎‏‏‎‏‎‏‏‎‎‏‎‎‏‎‏‏‎‎‎‎‎‎‎‏‏‎‎‏‏‎‏‏‎‎‎‎‏‎‎‏‎‏‎‎total distance ‎‏‎‎‏‏‎%1$.2f‎‏‎‎‏‏‏‎ miles‎‏‎‎‏‎</string>
<string name="voice_total_distance_miles_two">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‏‎‎‏‎‏‎‏‎‏‎‎‏‎‎‏‏‏‎‏‏‎‎‏‎‏‎‏‎‎‏‎‏‏‎‏‏‎‏‏‏‏‎‎‏‏‏‏‏‎‏‏‎‏‎‏‏‏‏‎total distance 2 miles‎‏‎‎‏‎</string>
<string name="voice_total_distance_miles_zero">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‏‏‏‏‏‎‏‏‎‏‏‏‏‏‏‎‎‎‎‎‏‎‎‏‎‎‏‎‎‎‏‏‏‎‏‏‏‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‎‏‏‏‎‎‏‎total distance 0 miles‎‏‎‎‏‎</string>
<string name="voice_total_distance_zero">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‏‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‎‏‎‏‎‎‏‏‏‏‎‎‏‏‎‏‏‏‎‏‏‏‏‎‏‏‏‏‏‏‏‎‏‎‎‏‎‏‏‎OpenTracks total distance zero.‎‏‎‎‏‎</string>
<string name="waypoint_type_atm">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‎‎‎‎‎‎‏‎‎‎‏‏‎‎‎‏‎‏‏‏‎‏‏‏‎‎‎‎‏‏‎‎‏‏‎‎‎‏‏‏‏‏‎‏‎‏‏‏‏‏‏‎‏‏‎‏‏‎ATM‎‏‎‎‏‎</string>
<string name="waypoint_type_bank">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‎‎‎‏‎‎‏‏‏‎‏‎‎‏‎‎‏‏‎‏‏‎‎‎‎‏‏‎‏‏‎‏‎‏‎‏‏‏‏‏‎‎‎‎‎‎‏‏‏‏‎‎‏‎‎‎‏‎‎‎bank‎‏‎‎‏‎</string>
<string name="waypoint_type_bar">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‏‏‏‏‏‏‎‏‏‏‎‏‏‏‏‎‏‏‎‎‎‏‏‏‎‎‎‎‏‎‎‎‏‎‎‎‏‎‏‎‏‎‏‏‏‎‎‎‎‎‏‏‏‎bar‎‏‎‎‏‎</string>
<string name="waypoint_type_barbecue">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‎‏‏‏‏‏‏‎‏‎‎‏‏‏‏‏‏‎‎‎‎‏‎‏‎‏‎‎‎‏‎‏‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‎‏‏‎‏‏‏‎‎‏‎‎‎barbecue‎‏‎‎‏‎</string>
<string name="waypoint_type_building">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‏‏‏‏‏‎‎‏‏‎‏‎‏‏‏‎‏‎‎‏‏‏‎‏‏‎‏‎‏‏‏‏‏‏‎‏‎‏‏‏‎‏‎‏‏‏‎‎‏‏‎‎‎‏‎‎‎‎‏‎building‎‏‎‎‏‎</string>
<string name="waypoint_type_bus_stop">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‎‎‏‏‏‏‏‏‎‏‎‏‏‎‎‎‎‏‏‎‎‎‎‏‎‎‎‏‏‏‏‎‏‎‏‎‎‏‎‏‏‎‎‎‎‎‏‎‏‎‎‎‎‎‎‎‎‎bus stop‎‏‎‎‏‎</string>
<string name="waypoint_type_cafe">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‎‏‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‎‎‎‎‎‎‎‏‏‎‎‏‏‎‏‎‎‎‏‏‎‎‎‎‎‎‏‏‏‏‎‎‏‏‎‎‏‏‎‎cafe‎‏‎‎‏‎</string>
<string name="waypoint_type_campfire">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‎‏‎‎‎‎‎‏‎‎‎‎‎‏‏‏‎‏‏‎‏‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‏‏‎‏‏‎‏‏‎‎‎‏‎‎‎‎‎‎campfire‎‏‎‎‏‎</string>
<string name="waypoint_type_campground">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‎‏‏‏‏‏‏‏‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‎‎‎‎‏‏‏‏‎‏‏‏‏‎‎‏‏‎‎‎‏‏‏‎‏‎‎‎‎‏‎‎campground‎‏‎‎‏‎</string>
<string name="waypoint_type_church">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‎‏‏‏‏‎‏‏‎‏‎‎‎‏‏‎‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‎‎‏‏‎‎‎‏‎‎‏‏‏‎‏‎‎‏‏‎‏‏‎‏‎‏‎‏‎church‎‏‎‎‏‎</string>
<string name="waypoint_type_coffee_house">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‎‏‏‎‏‏‏‏‏‏‎‏‏‏‏‏‎‏‏‎‏‎‏‏‏‏‏‏‏‎‎‏‎‏‏‎‎‎‏‎‏‏‏‎‏‎‏‎‏‎‎‏‏‎‎‏‎‏‏‎coffee house‎‏‎‎‏‎</string>
<string name="waypoint_type_convenience_store">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‎‏‎‎‎‎‎‎‏‏‎‏‏‏‏‎‎‎‎‎‏‎‏‏‏‏‏‏‎‏‎‏‎‎‏‎‏‏‏‏‏‎‏‏‎‎‎‏‎convenience store‎‏‎‎‏‎</string>
<string name="waypoint_type_drinking_water">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‎‏‏‏‎‎‎‏‎‏‎‏‎‎‎‎‏‏‏‎‎‎‏‎‎‏‏‏‏‎‎‏‏‏‏‏‎‎‏‎‎‎‏‎‎‏‏‎‏‎‎‎‎‏‎‏‎‏‎‎drinking water‎‏‎‎‏‎</string>
<string name="waypoint_type_falling_rocks">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‏‏‏‏‎‏‎‎‏‎‎‏‎‏‏‎‏‎‏‎‎‎‎‎‎‏‎‏‏‎‏‏‎‏‎‏‏‏‏‏‎‎‎‎‏‏‏‎‎‎‏‎‏‎‏‏‎‎‏‎‎falling rocks‎‏‎‎‏‎</string>
<string name="waypoint_type_ferry">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‏‏‎‎‏‏‎‎‎‎‎‎‎‎‎‎‏‎‏‎‏‏‏‏‎‎‎‎‏‎‎‏‎‏‏‎‏‏‎‏‎‎‏‎‏‎‎‎‏‎‏‏‎‎‎‎‎‏‏‎ferry‎‏‎‎‏‎</string>
<string name="waypoint_type_fire_place">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‎‎‏‏‏‎‏‎‏‏‎‎‏‎‎‎‏‎‎‏‎‏‎‏‎‏‎‏‏‎‎‎‏‎‎‏‎‏‎‎‏‏‎‎‏‎‏‎‏‏‎‏‎‎‏‏‏‎‎‎fire place‎‏‎‎‏‎</string>
<string name="waypoint_type_fire_station">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‎‏‏‏‎‎‏‏‎‏‏‎‏‏‎‏‏‏‎‏‎‏‏‏‎‏‏‏‏‎‏‎‎‏‏‎‏‏‎‎‎‎‎‎‎‏‏‏‎‏‎‏‎‎‎‎‎‎‏‎‎‎‎fire station‎‏‎‎‏‎</string>
<string name="waypoint_type_fishing">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‎‎‏‏‏‎‏‎‏‏‎‏‏‎‏‎‎‏‎‎‏‏‏‎‎‏‏‎‏‎‏‎‏‏‎‎‎‏‏‏‏‎‏‎‏‏‏‏‎‏‏‎‎‏‏‎‎fishing‎‏‎‎‏‎</string>
<string name="waypoint_type_gas_station">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‏‎‏‎‏‏‏‏‎‏‏‎‏‏‎‏‎‎‏‎‎‏‎‏‏‎‏‏‎‏‏‏‏‎‏‎‏‏‎‏‏‏‎‎‎‎‏‎‏‎‏‎‏‏‎‎‏‎‏‎gas station‎‏‎‎‏‎</string>
<string name="waypoint_type_golf_course">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‎‏‎‏‎‏‎‎‏‏‎‎‎‎‎‏‏‎‎‏‎‎‏‎‎‏‎‎‎‎‏‏‎‎‎‏‎‏‎‎‏‏‏‏‎‎‎‏‏‎‏‎‏‏‏‎‏‎‏‎‏‎golf course‎‏‎‎‏‎</string>
<string name="waypoint_type_grocery_store">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‎‏‎‏‎‏‏‏‎‏‏‎‎‏‎‎‏‎‎‏‏‏‏‏‏‎‎‎‏‏‎‎‏‎‎‏‎‎‏‎‏‏‎‎‏‏‎‏‎‎‎‏‎‎‎‎‎‎‎‎grocery store‎‏‎‎‏‎</string>
<string name="waypoint_type_hair_dresser">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‏‏‎‏‎‎‏‏‎‏‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‏‏‏‏‏‏‎‏‏‏‎‏‏‏‏‏‏‎‏‎‎‎‏‎‏‏‏‎‏‎‏‎‎‎‏‎hair dresser‎‏‎‎‏‎</string>
<string name="waypoint_type_harbor">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‎‏‏‏‏‎‎‏‎‎‏‏‏‏‏‎‎‏‏‎‎‏‏‎‏‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‏‎‎‏‏‎‎‎‎‏‎‏‎‎‎‏‎‎‏‎harbor‎‏‎‎‏‎</string>
<string name="waypoint_type_hiking_path">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‎‎‏‎‏‏‏‎‎‏‏‏‏‏‏‎‎‏‎‎‏‎‏‏‎‏‏‏‎‏‏‎‏‏‎‏‏‎‎‏‏‎‎‏‎‏‏‎‏‎‎‏‏‏‏‏‎‎‏‎hiking path‎‏‎‎‏‎</string>
<string name="waypoint_type_hotel">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‏‎‏‏‏‎‎‏‏‏‎‎‎‏‎‎‏‎‏‎‏‎‏‎‏‎‏‏‏‎‎‏‏‎‎‎‎‎‎‎‏‎‎‏‏‎‏‏‎‎‏‎‎‏‏‏‎‎‎‎hotel‎‏‎‎‏‎</string>
<string name="waypoint_type_house">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‎‎‎‎‎‏‏‎‎‏‏‎‏‏‏‏‏‎‎‏‎‏‏‏‎‎‎‎‎‎‎‏‏‏‎‏‏‎‎‏‏‎‎‎‏‏‏‎‏‎‏‎‏‏‎house‎‏‎‎‏‎</string>
<string name="waypoint_type_information">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‎‎‏‏‏‏‎‏‎‏‏‎‏‎‎‏‎‏‎‎‎‏‎‏‏‎‎‎‏‎‎‎‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‏‎‏‎‎‏‎information‎‏‎‎‏‎</string>
<string name="waypoint_type_intersection">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‎‏‏‏‎‏‎‎‏‏‏‎‏‎‎‏‎‎‎‏‏‎‎‏‎‎‎‎‏‎‎‎‏‏‎‏‎‏‏‏‎‎‎‎‏‏‏‏‏‎‏‎‏‎‏‏‏‎intersection‎‏‎‎‏‎</string>
<string name="waypoint_type_mail_box">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‎‏‏‏‎‏‏‏‎‏‎‎‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‎‏‎‏‏‏‎‏‎‎‎‏‎‏‎‏‏‎‎‏‎‏‏‏‎‎‏‎‏‏‏‏‏‏‏‎mail box‎‏‎‎‏‎</string>
<string name="waypoint_type_market">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‎‎‎‎‎‏‎‎‎‎‏‎‏‏‎‎‎‏‏‎‏‎‏‏‎‏‎‎‏‏‎‏‎‏‏‎‎‏‏‏‏‎‎‏‏‎‎‏‎‎‎‎‏‏‏‏‎‏‏‎market‎‏‎‎‏‎</string>
<string name="waypoint_type_meeting_point">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‏‏‏‏‎‎‎‏‏‏‏‎‎‎‏‏‏‎‎‎‎‎‎‏‏‏‏‏‏‏‎‎‎‎‏‎‏‎‎‏‎‏‏‏‏‎‎‎‏‎‏‏‎‎‏‎‎‏‎‎meeting point‎‏‎‎‏‎</string>
<string name="waypoint_type_opera">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‏‏‏‎‎‏‎‎‏‎‏‎‎‎‏‏‏‏‏‎‎‏‎‎‎‏‎‎‏‏‎‏‎‎‎‏‎‏‏‏‏‎‎‎‎‏‏‏‎‎‏‏‏‎‏‏‎‏‏‎opera‎‏‎‎‏‎</string>
<string name="waypoint_type_parking">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‏‎‏‏‏‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‏‏‎‏‏‎‎‏‏‎‏‎‎‎‏‏‏‏‏‎‎‎‏‎‎‎‏‏‏‏‎‎‎‎‎‎‏‏‏‎parking‎‏‎‎‏‎</string>
<string name="waypoint_type_police_station">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‎‏‏‏‏‎‎‏‎‏‏‎‎‎‏‎‏‏‎‏‏‏‏‎‎‏‏‎‏‏‎‏‎‎‎‎‏‏‎‎‎‎‏‎‎‎‏‎‏‎‏‏‏‎‎‎‎‏‏‎police station‎‏‎‎‏‎</string>
<string name="waypoint_type_post_office">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‏‏‎‏‏‏‎‏‎‏‎‏‏‎‏‏‏‏‏‏‎‎‏‏‏‏‎‏‏‏‎‎‎‏‏‎‎‏‎‏‎‎‎‏‎‏‎‏‏‎‏‎‏‎‎‎‎‎‎‎post office‎‏‎‎‏‎</string>
<string name="waypoint_type_pothole">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‎‎‏‎‏‏‎‎‏‏‏‎‏‎‏‎‏‏‎‏‏‏‏‏‎‎‏‏‎‏‏‏‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‎‏‏‎‏‎‏‏‏‏‎‏‎pothole‎‏‎‎‏‎</string>
<string name="waypoint_type_railway_crossing">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‎‏‎‎‏‏‏‏‎‎‎‎‎‏‎‎‏‎‏‏‏‎‏‏‎‎‎‎‏‎‏‎‏‎‎‎‎‎‎‏‏‏‎‎‎‏‏‎‏‏‏‏‎‏‎‏‏‏‏‎railway crossing‎‏‎‎‏‎</string>
<string name="waypoint_type_restaurant">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‎‎‎‏‏‎‎‎‏‏‎‏‏‎‏‎‏‎‎‎‎‎‏‏‎‏‎‏‎‎‎‏‏‎‏‏‎‎‎‏‎‎‏‏‎‎‏‎‏‏‏‎‏‎‏‎‏‎‏‎restaurant‎‏‎‎‏‎</string>
<string name="waypoint_type_shopping">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‏‏‎‎‎‏‏‎‏‏‎‎‏‎‎‏‏‎‏‏‏‏‎‎‎‎‏‏‎‏‎‏‎‏‏‏‎‏‎‎‎‎‏‏‎‏‏‏‎‏‎‏‏‏‏‏‎shopping‎‏‎‎‏‎</string>
<string name="waypoint_type_sight">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‏‎‎‎‏‏‎‎‏‎‎‏‏‎‎‏‏‎‎‏‎‎‎‏‎‎‏‏‏‏‎‎‏‎‏‎‏‏‏‏‎‎‏‏‎‎‏‏‎‎‎‎‏‎‎sight‎‏‎‎‏‎</string>
<string name="waypoint_type_store">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‎‎‏‏‎‏‏‎‎‎‏‎‎‏‏‏‏‏‏‏‎‏‎‎‎‎‏‏‏‎‏‎‏‎‏‏‎‎‎‏‎‎store‎‏‎‎‏‎</string>
<string name="waypoint_type_swimming_pool">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‏‎‏‏‎‏‎‎‏‏‏‏‎‏‏‎‏‎‏‏‎‎‎‏‏‏‏‏‎‏‎‎‏‏‏‎‏‎‏‎‎‎‎‏‏‏‎‏‏‏‏‎‏‎‏‎‎‏‎‎swimming pool‎‏‎‎‏‎</string>
<string name="waypoint_type_telephone">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‎‏‏‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‏‏‎‏‏‎‎‏‏‎‏‎‎‏‎‏‎‎‏‎‎‏‏‎‏‏‏‏‏‏‏‎‎‏‏‎‎‎‏‏‎telephone‎‏‎‎‏‎</string>
<string name="waypoint_type_theater">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‏‎‏‏‏‏‎‏‏‎‏‎‎‏‏‎‏‏‎‏‏‏‎‎‏‏‏‏‏‎‏‎‏‏‎‏‎‎‏‎‎‎‎‎‏‎‏‎‏‏‏‎‏‏‎‏‎‎theater‎‏‎‎‏‎</string>
<string name="waypoint_type_toilet">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‏‏‏‏‎‎‎‏‏‏‎‏‏‎‎‏‎‎‏‏‏‎‏‎‎‎‎‏‏‏‎‏‏‏‎‏‏‎‏‏‎‏‏‎‎‏‎‏‎‏‏‎‏‏‏‏‎‏‎‏‎toilet‎‏‎‎‏‎</string>
<string name="waypoint_type_tourist_information">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‏‎‎‏‏‎‎‎‏‏‎‎‎‎‎‎‏‏‎‎‎‎‎‏‏‏‎‎‏‏‎‎‎‏‎‏‏‏‎‏‏‎‎‎‏‎‎‏‏‎‏‏‏‎‎‏‏‎‏‎‎tourist information‎‏‎‎‏‎</string>
<string name="waypoint_type_tree">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‏‎‏‏‎‎‏‎‎‏‎‎‏‏‎‎‏‏‏‎‎‎‏‏‏‎‏‏‏‏‎‏‎‏‎‏‎‎‎‏‎‎‎‏‏‏‏‎‏‎‏‏‏‏‎‏‏‏‎‎tree‎‏‎‎‏‎</string>
<string name="waypoint_type_tunnel">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‎‏‏‏‎‏‎‎‏‏‏‏‏‏‎‏‏‎‎‎‎‎‎‏‎‏‎‏‏‏‏‎‎‎‎‎‎‎‏‏‏‏‎‎‎‏‎‏‎‎‎‎‎‎‎‏‎‎‎‎tunnel‎‏‎‎‏‎</string>
<string name="waypoint_type_waterfall">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‏‎‎‏‎‏‎‏‎‎‏‏‎‏‏‏‏‎‎‏‏‎‎‏‏‎‎‏‎‏‏‏‎‎‏‏‎‏‎‏‏‏‎‏‎‏‏‏‎‏‏‏‏‎‎‏‎‏‎‎waterfall‎‏‎‎‏‎</string>
<string name="waypoint_type_water_fountain">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‏‎‎‏‏‎‎‎‏‏‎‏‎‎‏‎‎‎‏‏‎‏‎‏‏‎‏‎‎‎‎‎‏‎‎‏‏‎‎‏‏‎‎‏‎‎‎‏‎‏‎‎‎‏‎‎‏‎‏‎water fountain‎‏‎‎‏‎</string>
<string name="waypoint_type_waypoint">‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‎‎‎‏‏‏‏‎‏‏‎‎‏‎‏‏‎‎‏‎‏‎‏‎‎‏‏‎‏‏‎‏‏‏‎‏‎‏‎‎‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‎‎‏‎‎waypoint‎‏‎‎‏‎</string>
</resources>
-450
View File
@@ -1,450 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="activity_type_airplane">aeroplane</string>
<string name="activity_type_atv">ATV</string>
<string name="activity_type_biking">biking</string>
<string name="activity_type_blimp">airship</string>
<string name="activity_type_boat">boat</string>
<string name="activity_type_climbing">climbing</string>
<string name="activity_type_commercial_airplane">commercial aeroplane</string>
<string name="activity_type_cross_country_skiing">Cross-country skiing</string>
<string name="activity_type_cycling">cycling</string>
<string name="activity_type_dirt_bike">dirt bike</string>
<string name="activity_type_donkey_back_riding">donkey riding</string>
<string name="activity_type_driving">driving</string>
<string name="activity_type_driving_bus">driving bus</string>
<string name="activity_type_driving_car">driving car</string>
<string name="activity_type_ferry">ferry</string>
<string name="activity_type_frisbee">frisbee</string>
<string name="activity_type_gliding">gliding</string>
<string name="activity_type_hang_gliding">hang gliding</string>
<string name="activity_type_helicopter">helicopter</string>
<string name="activity_type_hiking">walking</string>
<string name="activity_type_horse_back_riding">horse riding</string>
<string name="activity_type_hot_air_balloon">hot air balloon</string>
<string name="activity_type_ice_sailing">ice sailing</string>
<string name="activity_type_inline_skating">inline skating</string>
<string name="activity_type_kayaking">kayaking</string>
<string name="activity_type_kite_surfing">kite surfing</string>
<string name="activity_type_land_sailing">land sailing</string>
<string name="activity_type_mixed_type">mixed type</string>
<string name="activity_type_motor_bike">motor bike</string>
<string name="activity_type_motor_boating">motor boating</string>
<string name="activity_type_mountain_biking">mountain biking</string>
<string name="activity_type_off_trail_hiking">off-trail walking</string>
<string name="activity_type_other">other</string>
<string name="activity_type_paddling">canoeing</string>
<string name="activity_type_para_gliding">para-gliding</string>
<string name="activity_type_rc_airplane">RC aeroplane</string>
<string name="activity_type_rc_boat">RC boat</string>
<string name="activity_type_rc_helicopter">RC helicopter</string>
<string name="activity_type_riding">riding</string>
<string name="activity_type_road_biking">road biking</string>
<string name="activity_type_roller_skiing">roller skiing</string>
<string name="activity_type_rowing">rowing</string>
<string name="activity_type_running">running</string>
<string name="activity_type_sailing">sailing</string>
<string name="activity_type_seaplane">sea plane</string>
<string name="activity_type_skate_boarding">skate boarding</string>
<string name="activity_type_skating">skating</string>
<string name="activity_type_skiing">skiing</string>
<string name="activity_type_sky_jumping">sky jumping</string>
<string name="activity_type_sled">sledding</string>
<string name="activity_type_snow_boarding">snow boarding</string>
<string name="activity_type_snow_shoeing">snow shoeing</string>
<string name="activity_type_speed_walking">speed walking</string>
<string name="activity_type_street_running">street running</string>
<string name="activity_type_surfing">surfing</string>
<string name="activity_type_track_cycling">track cycling</string>
<string name="activity_type_track_running">track running</string>
<string name="activity_type_trail_hiking">trail walking</string>
<string name="activity_type_trail_running">trail running</string>
<string name="activity_type_train">train</string>
<string name="activity_type_ultimate_frisbee">ultimate frisbee</string>
<string name="activity_type_unknown">unknown</string>
<string name="activity_type_wakeboarding">wake boarding</string>
<string name="activity_type_walking">walking</string>
<string name="activity_type_water_skiing">water skiing</string>
<string name="activity_type_wind_surfing">wind surfing</string>
<string name="description_activity_type">Activity type: %1$s</string>
<string name="description_average_moving_pace_in_minute">Average moving pace: %1$s min/km (%2$s min/mi)</string>
<string name="description_average_moving_speed">Average moving speed: %1$.2f km/h (%2$.1f mi/h)</string>
<string name="description_average_pace_in_minute">Average pace: %1$s min/km (%2$s min/mi)</string>
<string name="description_average_speed">Average speed: %1$.2f km/h (%2$.1f mi/h)</string>
<string name="description_elevation_gain">Elevation gain: %1$d m (%2$d ft)</string>
<string name="description_elevation_imperial">Elevation (ft)</string>
<string name="description_elevation_metric">Elevation (m)</string>
<string name="description_fastest_pace_in_minute">Fastest pace: %1$s min/km (%2$s min/mi)</string>
<string name="description_location_accuracy">Accuracy (m)</string>
<string name="description_location_altitude">Altitude (m)</string>
<string name="description_location_bearing">Bearing (deg)</string>
<string name="description_location_latitude">Latitude (deg)</string>
<string name="description_location_longitude">Longitude (deg)</string>
<string name="description_location_speed">Speed (m/s)</string>
<string name="description_max_elevation">Max elevation: %1$d m (%2$d ft)</string>
<string name="description_max_grade">Max grade: %1$d %%</string>
<string name="description_max_speed">Max speed: %1$.2f km/h (%2$.1f mi/h)</string>
<string name="description_min_elevation">Min elevation: %1$d m (%2$d ft)</string>
<string name="description_min_grade">Min grade: %1$d %%</string>
<string name="description_moving_time">Moving time: %1$s</string>
<string name="description_pace_imperial">Pace (min/mi)</string>
<string name="description_pace_metric">Pace (min/km)</string>
<string name="description_recorded_time">Recorded: %1$s</string>
<string name="description_sensor_cadence">Cadence (rpm)</string>
<string name="description_sensor_heart_rate">Heart rate (bpm)</string>
<string name="description_sensor_power">Power (W)</string>
<string name="description_speed_imperial">Speed (mph)</string>
<string name="description_speed_metric">Speed (km/h)</string>
<string name="description_time">Time</string>
<string name="description_total_distance">Total distance: %1$.2f km (%2$.1f mi)</string>
<string name="description_total_time">Total time: %1$s</string>
<string name="description_track_point">Point</string>
<string name="description_track_segment">Segment</string>
<string name="export_all_option">All as %1$s to %2$s</string>
<string name="export_all_title">Export to external storage</string>
<string name="export_external_storage">External storage</string>
<string name="export_external_storage_error">Exported %1$d of %2$s to %3$s</string>
<string name="export_external_storage_option">as %1$s to %2$s</string>
<string name="export_external_storage_progress_message">Exporting to %1$s…</string>
<string name="export_external_storage_success">Exported %1$s to %2$s</string>
<string name="export_title">Export to…</string>
<string name="external_storage_not_available">External storage not available</string>
<string name="external_storage_not_writable">External storage not writable</string>
<string name="files_few">%1$d files</string>
<string name="files_many">%1$d files</string>
<string name="files_one">1 file</string>
<string name="files_other">%1$d files</string>
<string name="files_two">2 files</string>
<string name="files_zero">0 files</string>
<string name="generic_add">Add</string>
<string name="generic_cancel">Cancel</string>
<string name="generic_delete_all_confirm_title">Delete all?</string>
<string name="generic_delete_selected_confirm_title">Delete selected?</string>
<string name="generic_description">Description</string>
<string name="generic_description_line">Description: %1$s</string>
<string name="generic_error_title">Error</string>
<string name="generic_name">Name</string>
<string name="generic_name_line">Name: %1$s</string>
<string name="generic_no">No</string>
<string name="generic_ok">OK</string>
<string name="generic_paused">Paused</string>
<string name="generic_progress_title">Please wait…</string>
<string name="generic_recording">Recording…</string>
<string name="generic_save">Save</string>
<string name="generic_success_title">Success</string>
<string name="generic_tracks">Tracks</string>
<string name="generic_yes">Yes</string>
<string name="gps_location_access">\'Location access\'</string>
<string name="gps_disabled">GPS not enabled. Tap here to go to %1$s. Press the back button to return.</string>
<string name="gps_disabled_location_mode">Select high-accuracy location mode. Tap here to go to %1$s. Press the back button to return.</string>
<string name="gps_disabled_my_location">Current location cannot be determined. Enable more location sources at %1$s and make sure the sky is visible. Try again later.</string>
<string name="gps_disabled_my_location_location_mode">Current location cannot be determined. Select the high-accuracy location mode at %1$s and make sure the sky is visible. Try again later.</string>
<string name="gps_not_found">No GPS found on the device</string>
<string name="gps_starting">Starting GPS</string>
<string name="gps_starting_error">Unable to start GPS</string>
<string name="gps_stopping">Stopping GPS</string>
<string name="gps_wait_for_better_signal">Waiting for a better GPS signal</string>
<string name="gps_wait_for_signal">Waiting for GPS signal</string>
<string name="image_application">Application</string>
<string name="image_arrow">Arrow</string>
<string name="image_marker">Marker</string>
<string name="image_marker_count">Marker count</string>
<string name="image_my_location">My Location</string>
<string name="image_pause">Pause</string>
<string name="image_photo_marker">Photo marker</string>
<string name="image_record">Record</string>
<string name="image_stop">Stop</string>
<string name="image_track">Track</string>
<string name="import_error">Imported %1$d of %2$s from %3$s</string>
<string name="import_no_directory">%1$s does not exist</string>
<string name="import_no_file">There were no files to import. Connect your device to your computer and place the files to be imported in %1$s.</string>
<string name="import_no_file_title">Import files</string>
<string name="import_progress_message">Importing from %1$s…</string>
<string name="import_selection_option">All %1$s from %2$s</string>
<string name="import_selection_title">Import from external storage</string>
<string name="import_success">Imported %1$s from %2$s</string>
<string name="marker_add_error">Unable to insert a marker. No GPS signal. Try again.</string>
<string name="marker_add_success">A marker was inserted</string>
<string name="marker_add_canceled">Cancelled, no marker added</string>
<string name="marker_delete_all_confirm_message">All markers for this track will be permanently deleted from the device</string>
<string name="marker_delete_one_confirm_message">The marker will be permanently deleted from the device</string>
<string name="marker_delete_one_confirm_title">Delete marker?</string>
<string name="marker_delete_multiple_confirm_message">The selected markers will be permanently deleted from the device</string>
<string name="marker_label_end">%1$s (End)</string>
<string name="marker_label_start">%1$s (Start)</string>
<string name="marker_name_format">Marker %1$d</string>
<string name="marker_split_name_format">Split %1$d</string>
<string name="marker_title">%1$d of %2$d</string>
<string name="marker_detail_statistics_title">Since last split marker:</string>
<string name="marker_edit_marker_type">Marker type (e.g. waterfall)</string>
<string name="marker_edit_marker_type_hint">Marker type</string>
<string name="marker_list_empty_message">You don\'t have any markers</string>
<string name="menu_aggregated_statistics">Aggregated stats</string>
<string name="menu_delete">Delete</string>
<string name="menu_delete_all">Delete all</string>
<string name="menu_edit">Edit</string>
<string name="menu_export">Export</string>
<string name="menu_export_all">Export all</string>
<string name="menu_feedback">Feedback</string>
<string name="menu_help">Help</string>
<string name="menu_help_feedback">Help &amp; feedback</string>
<string name="menu_help_forum">Help forum</string>
<string name="menu_import_all">Import all</string>
<string name="menu_insert_marker">Insert marker</string>
<string name="menu_insert_photo">Insert photo</string>
<string name="menu_map">Map</string>
<string name="menu_markers">Markers</string>
<string name="menu_play">Play</string>
<string name="menu_search">Search</string>
<string name="menu_select_all">Select all</string>
<string name="menu_sensor_state">Sensor state</string>
<string name="menu_settings">Settings</string>
<string name="menu_share">Share</string>
<string name="menu_show_on_map">Show on map</string>
<string name="menu_split_frequency">Split frequency</string>
<string name="menu_start_gps">Start GPS</string>
<string name="menu_stop_gps">Stop GPS</string>
<string name="menu_view_photo">View photo</string>
<string name="menu_voice_frequency">Voice frequency</string>
<string name="app_name">OpenTracks</string>
<string name="recording_service">Recording service</string>
<string name="search_global_description">Tracks and markers</string>
<string name="search_list_empty_message">No tracks or markers matched your search</string>
<string name="search_list_marker_track_location">In track ‘%1$s’.</string>
<string name="search_voice_prompt">Say the name of a track or marker</string>
<string name="sensor_state_battery">Battery level</string>
<string name="sensor_state_cadence">Cadence</string>
<string name="sensor_state_cadence_value">%1$d rpm</string>
<string name="sensor_state_connected">Connected</string>
<string name="sensor_state_connecting">Connecting</string>
<string name="sensor_state_disconnected">Disconnected</string>
<string name="sensor_state_heart_rate">Heart rate</string>
<string name="sensor_state_heart_rate_value">%1$d bpm</string>
<string name="sensor_state_last_sensor_time">Last sensor time</string>
<string name="sensor_state_power">Power</string>
<string name="sensor_state_power_value">%1$d W</string>
<string name="sensor_state_sending">Sending</string>
<string name="settings_not_while_recording">Not available while recording a track</string>
<string name="settings_show">Show</string>
<string name="settings_advanced">Advanced</string>
<string name="settings_chart_by_distance">By distance</string>
<string name="settings_chart_by_time">By time</string>
<string name="settings_chart_x_axis">X axis</string>
<string name="settings_recording">Recording</string>
<string name="settings_recording_auto_resume_track_timeout_always_summary">Always resume a recording after reboot</string>
<string name="settings_recording_auto_resume_track_timeout_never_summary">Never resume a recording after reboot</string>
<string name="settings_recording_auto_resume_track_timeout_summary">Resume a recording after reboot if the last recorded location was within the last %1$s</string>
<string name="settings_recording_auto_resume_track_timeout_title">Auto-resume</string>
<string name="settings_recording_default_activity_title">Default activity type</string>
<string name="settings_recording_location_frequency_summary">%1$s between recorded locations</string>
<string name="settings_recording_max_recording_distance_summary">A new segment is created if the distance between two locations is greater than %1$s</string>
<string name="settings_recording_max_recording_distance_title">Max. distance</string>
<string name="settings_recording_min_recording_distance_title">Recording distance interval</string>
<string name="settings_recording_min_recording_interval_title">Recording time interval</string>
<string name="settings_recording_min_required_accuracy_summary">Location is ignored if its accuracy is less than %1$s</string>
<string name="settings_recording_min_required_accuracy_title">GPS accuracy</string>
<string name="settings_recording_track_name_date_iso_8601_option">Date (ISO 8601)</string>
<string name="settings_recording_track_name_date_local_option">Date (local)</string>
<string name="settings_recording_track_name_number_option">Number</string>
<string name="settings_recording_track_name_title">Default track name</string>
<string name="settings_reset">Reset</string>
<string name="settings_reset_confirm_message">All settings will be reverted to default values.</string>
<string name="settings_reset_confirm_title">Reset now?</string>
<string name="settings_reset_done">All settings have been reverted to default values</string>
<string name="settings_sensor">Sensor</string>
<string name="settings_sensor_ant_reset_bike_cadence_sensor">Reset bike cadence</string>
<string name="settings_sensor_ant_reset_combined_bike_sensor">Reset combined bike</string>
<string name="settings_sensor_ant_reset_heart_rate_monitor">Reset heart rate</string>
<string name="settings_sensor_ant_reset_speed_distance_monitor">Reset foot pod</string>
<string name="settings_sensor_bluetooth">Bluetooth</string>
<string name="settings_sensor_bluetooth_pairing">Bluetooth pairing</string>
<string name="settings_sensor_bluetooth_pairing_summary">Open Android\'s Bluetooth settings to pair a sensor</string>
<string name="settings_sensor_bluetooth_sensor">Bluetooth sensor</string>
<string name="settings_sensor_connected">Connected to %1$s</string>
<string name="settings_stats_coordinate">Latitude/Longitude</string>
<string name="settings_stats_grade_elevation">Grade/elevation</string>
<string name="settings_stats_rate_title">Preferred rate</string>
<string name="settings_stats_units_imperial">Imperial (miles, ft)</string>
<string name="settings_stats_units_metric">Metric (km, m)</string>
<string name="settings_stats_units_title">Preferred units</string>
<string name="share_track_emails_hint">Email addresses</string>
<string name="share_track_picker_title">Select an application</string>
<string name="share_track_share_file">Share track file</string>
<string name="share_track_share_file_body">I think you might be interested in this track.\n\nTo view this track, use Google Earth or other
mapping software.\n\n%1$s</string>
<string name="share_track_subject">I would like to share a track with you</string>
<string name="stats_average_moving_pace">Avg. moving pace</string>
<string name="stats_average_moving_speed">Avg. moving speed</string>
<string name="stats_average_pace">Avg. pace</string>
<string name="stats_average_speed">Avg. speed</string>
<string name="stats_elevation">Elevation</string>
<string name="stats_fastest_pace">Fastest pace</string>
<string name="stats_gain">Gain</string>
<string name="stats_grade">Grade</string>
<string name="stats_latitude">Latitude</string>
<string name="stats_longitude">Longitude</string>
<string name="stats_max">Max</string>
<string name="stats_max_speed">Max. speed</string>
<string name="stats_min">Min</string>
<string name="stats_moving_time">Moving time</string>
<string name="stats_pace">Pace</string>
<string name="stats_speed">Speed</string>
<string name="stats_distance">Distance</string>
<string name="stats_total_time">Total time</string>
<string name="track_name_format">Track %1$d</string>
<string name="track_record_notification">Recording your track…</string>
<string name="track_markers">%1$s Markers</string>
<string name="track_delete_one_confirm_message">The track and its markers will be deleted permanently from the device.</string>
<string name="track_delete_one_confirm_title">Delete track?</string>
<string name="track_delete_multiple_confirm_message">The selected tracks and their markers will be deleted permanently from the device.</string>
<string name="track_delete_progress_message">Deleting…</string>
<string name="track_detail_chart_tab">Chart</string>
<string name="track_detail_stats_tab">Stats</string>
<string name="track_edit_activity_type">Activity type (e.g. walking)</string>
<string name="track_edit_activity_type_hint">Activity type</string>
<string name="track_edit_new_track_title">New Track</string>
<string name="track_list_empty_message">Start recording your next adventure here</string>
<string name="track_list_record_error">Unable to start recording. No GPS signal. Try again.</string>
<string name="track_list_record_success">Now recording a new track</string>
<string name="track_widget_config_title">Configure Widget Items</string>
<string name="tracks_few">%1$d tracks</string>
<string name="tracks_many">%1$d tracks</string>
<string name="tracks_one">1 track</string>
<string name="tracks_other">%1$d tracks</string>
<string name="tracks_two">2 tracks</string>
<string name="tracks_zero">0 tracks</string>
<string name="unit_feet">ft</string>
<string name="unit_kilometer">km</string>
<string name="unit_kilometer_per_hour">km/h</string>
<string name="unit_meter">m</string>
<string name="unit_mile">mi</string>
<string name="unit_mile_per_hour">mi/h</string>
<string name="unit_minute_per_kilometer">min/km</string>
<string name="unit_minute_per_mile">min/mi</string>
<string name="value_adapt_accuracy">Adapt for accuracy</string>
<string name="value_adapt_battery_life">Adapt for battery life</string>
<string name="value_always">Always</string>
<string name="value_float_feet">%1$.2f ft</string>
<string name="value_float_kilometer">%1$.2f km</string>
<string name="value_float_meter">%1$.2f m</string>
<string name="value_float_mile">%1$.2f mi</string>
<string name="value_float_mile_poor_gps">%1$.1f mi (poor GPS)</string>
<string name="value_integer_feet">%1$d ft</string>
<string name="value_integer_feet_excellent_gps">%1$d ft (excellent GPS)</string>
<string name="value_integer_feet_recommended">%1$d ft (recommended)</string>
<string name="value_integer_kilobyte">%1$d kB</string>
<string name="value_integer_kilometer">%1$d km</string>
<string name="value_integer_kilometer_hour">%1$d km/h</string>
<string name="value_integer_megabyte">%1$d MB</string>
<string name="value_integer_meter">%1$d m</string>
<string name="value_integer_meter_excellent_gps">%1$d m (excellent GPS)</string>
<string name="value_integer_meter_poor_gps">%1$d m (poor GPS)</string>
<string name="value_integer_meter_recommended">%1$d m (recommended)</string>
<string name="value_integer_mile">%1$d mi</string>
<string name="value_integer_mile_hour">%1$d mph</string>
<string name="value_integer_minute">%1$d min</string>
<string name="value_integer_percent">%1$d %%</string>
<string name="value_integer_second">%1$d s</string>
<string name="value_never">Never</string>
<string name="value_none">None</string>
<string name="value_off">Off</string>
<string name="value_smallest">Smallest</string>
<string name="value_smallest_recommended">Smallest (recommended)</string>
<string name="voice_hours_few">%1$d hours</string>
<string name="voice_hours_many">%1$d hours</string>
<string name="voice_hours_one">1 hour</string>
<string name="voice_hours_other">%1$d hours</string>
<string name="voice_hours_two">2 hours</string>
<string name="voice_hours_zero">0 hours</string>
<string name="voice_minutes_few">%1$d minutes</string>
<string name="voice_minutes_many">%1$d minutes</string>
<string name="voice_minutes_one">1 minute</string>
<string name="voice_minutes_other">%1$d minutes</string>
<string name="voice_minutes_two">2 minutes</string>
<string name="voice_minutes_zero">0 minutes</string>
<string name="voice_pace_per_kilometer">%1$s per kilometre</string>
<string name="voice_pace_per_mile">%1$s per mile</string>
<string name="voice_seconds_few">%1$d seconds</string>
<string name="voice_seconds_many">%1$d seconds</string>
<string name="voice_seconds_one">1 second</string>
<string name="voice_seconds_other">%1$d seconds</string>
<string name="voice_seconds_two">2 seconds</string>
<string name="voice_seconds_zero">0 seconds</string>
<string name="voice_speed_kilometers_per_hour_few">%1$.1f kilometres per hour</string>
<string name="voice_speed_kilometers_per_hour_many">%1$.1f kilometres per hour</string>
<string name="voice_speed_kilometers_per_hour_one">1 kilometre per hour</string>
<string name="voice_speed_kilometers_per_hour_other">%1$.1f kilometres per hour</string>
<string name="voice_speed_kilometers_per_hour_two">2 kilometres per hour</string>
<string name="voice_speed_kilometers_per_hour_zero">0 kilometres per hour</string>
<string name="voice_speed_miles_per_hour_few">%1$.1f miles per hour</string>
<string name="voice_speed_miles_per_hour_many">%1$.1f miles per hour</string>
<string name="voice_speed_miles_per_hour_one">1 mile per hour</string>
<string name="voice_speed_miles_per_hour_other">%1$.1f miles per hour</string>
<string name="voice_speed_miles_per_hour_two">2 miles per hour</string>
<string name="voice_speed_miles_per_hour_zero">0 miles per hour</string>
<string name="voice_template">OpenTracks %1$s in %2$s at %3$s</string>
<string name="voice_total_distance_kilometers_few">total distance %1$.2f kilometres</string>
<string name="voice_total_distance_kilometers_many">total distance %1$.2f kilometres</string>
<string name="voice_total_distance_kilometers_one">total distance 1 kilometre</string>
<string name="voice_total_distance_kilometers_other">total distance %1$.2f kilometres</string>
<string name="voice_total_distance_kilometers_two">total distance 2 kilometres</string>
<string name="voice_total_distance_kilometers_zero">total distance 0 kilometres</string>
<string name="voice_total_distance_miles_few">total distance %1$.2f miles</string>
<string name="voice_total_distance_miles_many">total distance %1$.2f miles</string>
<string name="voice_total_distance_miles_one">total distance 1 mile</string>
<string name="voice_total_distance_miles_other">total distance %1$.2f miles</string>
<string name="voice_total_distance_miles_two">total distance 2 miles</string>
<string name="voice_total_distance_miles_zero">total distance 0 miles</string>
<string name="voice_total_distance_zero">OpenTracks total distance zero.</string>
<string name="waypoint_type_atm">Cashpoint</string>
<string name="waypoint_type_bank">bank</string>
<string name="waypoint_type_bar">bar/pub</string>
<string name="waypoint_type_barbecue">barbecue</string>
<string name="waypoint_type_building">building</string>
<string name="waypoint_type_bus_stop">bus stop</string>
<string name="waypoint_type_cafe">cafe</string>
<string name="waypoint_type_campfire">camp fire</string>
<string name="waypoint_type_campground">Campsites</string>
<string name="waypoint_type_church">church</string>
<string name="waypoint_type_coffee_house">cafe</string>
<string name="waypoint_type_convenience_store">corner shops</string>
<string name="waypoint_type_drinking_water">drinking water</string>
<string name="waypoint_type_falling_rocks">falling rocks</string>
<string name="waypoint_type_ferry">ferry</string>
<string name="waypoint_type_fire_place">fireplace</string>
<string name="waypoint_type_fire_station">fire station</string>
<string name="waypoint_type_fishing">fishing</string>
<string name="waypoint_type_gas_station">petrol station</string>
<string name="waypoint_type_golf_course">golf course</string>
<string name="waypoint_type_grocery_store">grocers</string>
<string name="waypoint_type_hair_dresser">hair dresser</string>
<string name="waypoint_type_harbor">harbour</string>
<string name="waypoint_type_hiking_path">footpath</string>
<string name="waypoint_type_hotel">hotel</string>
<string name="waypoint_type_house">house</string>
<string name="waypoint_type_information">information</string>
<string name="waypoint_type_intersection">intersection</string>
<string name="waypoint_type_mail_box">post box</string>
<string name="waypoint_type_market">market</string>
<string name="waypoint_type_meeting_point">meeting point</string>
<string name="waypoint_type_opera">opera</string>
<string name="waypoint_type_parking">parking</string>
<string name="waypoint_type_police_station">police station</string>
<string name="waypoint_type_post_office">post office</string>
<string name="waypoint_type_pothole">pothole</string>
<string name="waypoint_type_railway_crossing">railway crossing</string>
<string name="waypoint_type_restaurant">restaurant</string>
<string name="waypoint_type_shopping">shopping</string>
<string name="waypoint_type_sight">sight</string>
<string name="waypoint_type_store">shop</string>
<string name="waypoint_type_swimming_pool">swimming pool</string>
<string name="waypoint_type_telephone">telephone</string>
<string name="waypoint_type_theater">theatre</string>
<string name="waypoint_type_toilet">toilet</string>
<string name="waypoint_type_tourist_information">tourist information</string>
<string name="waypoint_type_tree">tree</string>
<string name="waypoint_type_tunnel">tunnel</string>
<string name="waypoint_type_waterfall">waterfall</string>
<string name="waypoint_type_water_fountain">water fountain</string>
<string name="waypoint_type_waypoint">waypoint</string>
</resources>
-453
View File
@@ -1,453 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="activity_type_airplane">坐飞机</string>
<string name="activity_type_atv">全地形越野</string>
<string name="activity_type_biking">自行车</string>
<string name="activity_type_blimp">小型飞艇游览</string>
<string name="activity_type_boat">船</string>
<string name="activity_type_climbing">攀岩</string>
<string name="activity_type_commercial_airplane">乘坐民航机</string>
<string name="activity_type_cross_country_skiing">越野滑雪</string>
<string name="activity_type_cycling">骑自行车</string>
<string name="activity_type_dirt_bike">泥地骑行</string>
<string name="activity_type_donkey_back_riding">骑驴</string>
<string name="activity_type_driving">开车</string>
<string name="activity_type_driving_bus">驾驶巴士</string>
<string name="activity_type_driving_car">开车</string>
<string name="activity_type_ferry">轮渡</string>
<string name="activity_type_frisbee">飞盘运动</string>
<string name="activity_type_gliding">滑翔</string>
<string name="activity_type_hang_gliding">滑翔翼运动</string>
<string name="activity_type_helicopter">乘坐直升机</string>
<string name="activity_type_hiking">徒步</string>
<string name="activity_type_horse_back_riding">骑马</string>
<string name="activity_type_hot_air_balloon">热气球游览</string>
<string name="activity_type_ice_sailing">冰上帆船</string>
<string name="activity_type_inline_skating">直排轮滑</string>
<string name="activity_type_kayaking">皮划艇</string>
<string name="activity_type_kite_surfing">风筝冲浪</string>
<string name="activity_type_land_sailing">陆地帆船</string>
<string name="activity_type_mixed_type">混合型</string>
<string name="activity_type_motor_bike">骑摩托车</string>
<string name="activity_type_motor_boating">摩托艇运动</string>
<string name="activity_type_mountain_biking">山地自行车</string>
<string name="activity_type_off_trail_hiking">越野徒步</string>
<string name="activity_type_other">其他</string>
<string name="activity_type_paddling">划船</string>
<string name="activity_type_para_gliding">滑翔伞运动</string>
<string name="activity_type_rc_airplane">遥控飞机</string>
<string name="activity_type_rc_boat">遥控船</string>
<string name="activity_type_rc_helicopter">遥控直升机</string>
<string name="activity_type_riding">乘骑</string>
<string name="activity_type_road_biking">公路自行车</string>
<string name="activity_type_roller_skiing">旱地滑雪</string>
<string name="activity_type_rowing">赛艇</string>
<string name="activity_type_running">跑步</string>
<string name="activity_type_sailing">帆船</string>
<string name="activity_type_seaplane">坐水上飞机</string>
<string name="activity_type_skate_boarding">滑板运动</string>
<string name="activity_type_skating">滑冰</string>
<string name="activity_type_skiing">滑雪</string>
<string name="activity_type_sky_jumping">跳伞</string>
<string name="activity_type_sled">坐雪橇</string>
<string name="activity_type_snow_boarding">单板滑雪</string>
<string name="activity_type_snow_shoeing">雪地健行</string>
<string name="activity_type_speed_walking">快步走</string>
<string name="activity_type_street_running">上街跑</string>
<string name="activity_type_surfing">冲浪</string>
<string name="activity_type_track_cycling">场地自行车</string>
<string name="activity_type_track_running">场地跑</string>
<string name="activity_type_trail_hiking">沿小路徒步</string>
<string name="activity_type_trail_running">越野跑</string>
<string name="activity_type_train">坐火车</string>
<string name="activity_type_ultimate_frisbee">极限飞盘</string>
<string name="activity_type_unknown">未知</string>
<string name="activity_type_wakeboarding">尾波滑水</string>
<string name="activity_type_walking">步行</string>
<string name="activity_type_water_skiing">划水</string>
<string name="activity_type_wind_surfing">帆板运动</string>
<string name="description_activity_type">活动类型:%1$s</string>
<string name="description_average_moving_pace_in_minute">平均移动步速:%1$s分钟/公里(%2$s分钟/英里)</string>
<string name="description_average_moving_speed">平均移动速度:%1$.2f 公里/小时(%2$.1f 英里/小时)</string>
<string name="description_average_pace_in_minute">平均步速:%1$s分钟/公里(%2$s分钟/英里)</string>
<string name="description_average_speed">平均时速:%1$.2f 公里/小时(%2$.1f 英里/小时)</string>
<string name="description_elevation_gain">海拔升高:%1$d 米(%2$d 英尺)</string>
<string name="description_elevation_imperial">海拔(英尺)</string>
<string name="description_elevation_metric">海拔(米)</string>
<string name="description_fastest_pace_in_minute">最快步速:%1$s分钟/公里(%2$s分钟/英里)</string>
<string name="description_location_accuracy">精度(米)</string>
<string name="description_location_altitude">海拔高度(米)</string>
<string name="description_location_bearing">导向(度)</string>
<string name="description_location_latitude">纬度(度)</string>
<string name="description_location_longitude">经度(度)</string>
<string name="description_location_speed">速度(米/秒)</string>
<string name="description_max_elevation">最高海拔:%1$d 米(%2$d 英尺)</string>
<string name="description_max_grade">最大坡度:%1$d %%</string>
<string name="description_max_speed">最高限速:%1$.2f 公里/小时(%2$.1f 英里/小时)</string>
<string name="description_min_elevation">最低海拔:%1$d 米(%2$d 英尺)</string>
<string name="description_min_grade">最小坡度:%1$d %%</string>
<string name="description_moving_time">移动时间:%1$s</string>
<string name="description_pace_imperial">步速(分钟/英里)</string>
<string name="description_pace_metric">步速(分钟/公里)</string>
<string name="description_recorded_time">记录时间:%1$s</string>
<string name="description_sensor_cadence">蹬踏频率(转数/分钟)</string>
<string name="description_sensor_heart_rate">心率(次/分钟)</string>
<string name="description_sensor_power">功率(瓦)</string>
<string name="description_speed_imperial">速度(英里/小时)</string>
<string name="description_speed_metric">速度(公里/小时)</string>
<string name="description_time">时间</string>
<string name="description_total_distance">总距离:%1$.2f 公里(%2$.1f 英里)</string>
<string name="description_total_time">总时间:%1$s</string>
<string name="description_track_point">点</string>
<string name="description_track_segment">路段</string>
<string name="export_all_option">全部以 %1$s 格式导出到 %2$s</string>
<string name="export_all_title">导出到外部存储设备</string>
<string name="export_external_storage">外部存储设备</string>
<string name="export_external_storage_error">已将%1$d条路线(共%2$s条)导出到%3$s</string>
<string name="export_external_storage_option">以 %1$s 格式导出到 %2$s</string>
<string name="export_external_storage_progress_message">正在导出到 %1$s…</string>
<string name="export_external_storage_success">已将%1$s导出到%2$s</string>
<string name="export_title">导出到…</string>
<string name="external_storage_not_available">外部存储设备不可用</string>
<string name="external_storage_not_writable">外部存储设备无法写入</string>
<string name="files_few">%1$d个文件</string>
<string name="files_many">%1$d个文件</string>
<string name="files_one">1个文件</string>
<string name="files_other">%1$d个文件</string>
<string name="files_two">2个文件</string>
<string name="files_zero">0个文件</string>
<string name="generic_add">添加</string>
<string name="generic_cancel">取消</string>
<string name="generic_delete_all_confirm_title">全部删除?</string>
<string name="generic_delete_selected_confirm_title">删除所选项?</string>
<string name="generic_description">说明</string>
<string name="generic_description_line">说明:%1$s</string>
<string name="generic_error_title">错误</string>
<string name="generic_name">名称</string>
<string name="generic_name_line">名称:%1$s</string>
<string name="generic_no">否</string>
<string name="generic_ok">确定</string>
<string name="generic_paused">已暂停</string>
<string name="generic_progress_title">请稍候…</string>
<string name="generic_recording">正在记录…</string>
<string name="generic_save">保存</string>
<string name="generic_success_title">成功</string>
<string name="generic_tracks">路线</string>
<string name="generic_yes">是</string>
<string name="gps_location_access">‘位置信息使用权’</string>
<string name="gps_disabled">GPS 未启用,请点按此处转至 %1$s。按“后退”按钮返回。</string>
<string name="gps_disabled_location_mode">请选择高准确度位置信息模式。点按这里可转至%1$s,按后退按钮可返回。</string>
<string name="gps_disabled_my_location">无法确定当前位置。请进入%1$s启用更多位置来源,并确保
您看得到天空。请稍后再试。</string>
<string name="gps_disabled_my_location_location_mode">无法确定当前位置。请进入%1$s选择高准确度位置信息模式,并确保
您看得到天空。请稍后再试。</string>
<string name="gps_not_found">设备上找不到GPS</string>
<string name="gps_starting">正在启动GPS</string>
<string name="gps_starting_error">无法启动GPS</string>
<string name="gps_stopping">正在关闭GPS</string>
<string name="gps_wait_for_better_signal">正在等待更好的GPS信号</string>
<string name="gps_wait_for_signal">正在等待GPS信号</string>
<string name="image_application">应用</string>
<string name="image_arrow">箭头</string>
<string name="image_marker">标记</string>
<string name="image_marker_count">标记数</string>
<string name="image_my_location">我的位置</string>
<string name="image_pause">暂停</string>
<string name="image_photo_marker">照片标记</string>
<string name="image_record">记录</string>
<string name="image_stop">停止</string>
<string name="image_track">跟踪</string>
<string name="import_error">从%3$s导入了%2$s中的%1$d个</string>
<string name="import_no_directory">%1$s不存在</string>
<string name="import_no_file">没有可以导入的文件。请将设备连接到计算机,然后将要导入的文件
放入 %1$s。</string>
<string name="import_no_file_title">导入文件</string>
<string name="import_progress_message">正在从 %1$s 导入…</string>
<string name="import_selection_option">%2$s 中的所有 %1$s</string>
<string name="import_selection_title">从外部存储设备导入</string>
<string name="import_success">已从%2$s导入%1$s</string>
<string name="marker_add_error">无法插入标记,无 GPS 信号。请重试。</string>
<string name="marker_add_success">已插入标记</string>
<string name="marker_add_canceled">已取消,未添加标记</string>
<string name="marker_delete_all_confirm_message">此路线的所有标记都将永久地从设备中删除</string>
<string name="marker_delete_one_confirm_message">标记将永久地从设备中删除</string>
<string name="marker_delete_one_confirm_title">删除标记?</string>
<string name="marker_delete_multiple_confirm_message">所选标记将永久地从设备中删除</string>
<string name="marker_label_end">%1$s(终点)</string>
<string name="marker_label_start">%1$s(起点)</string>
<string name="marker_name_format">标记 %1$d</string>
<string name="marker_split_name_format">分割标记 %1$d</string>
<string name="marker_title">第%1$d个(共%2$d个)</string>
<string name="marker_detail_statistics_title">上一个分割标记之后的数据:</string>
<string name="marker_edit_marker_type">标记类型(如瀑布)</string>
<string name="marker_edit_marker_type_hint">标记类型</string>
<string name="marker_list_empty_message">您没有任何标记</string>
<string name="menu_aggregated_statistics">汇总统计数据</string>
<string name="menu_delete">删除</string>
<string name="menu_delete_all">全部删除</string>
<string name="menu_edit">修改</string>
<string name="menu_export">导出</string>
<string name="menu_export_all">全部导出</string>
<string name="menu_feedback">反馈</string>
<string name="menu_help">帮助</string>
<string name="menu_help_feedback">帮助与反馈</string>
<string name="menu_help_forum">帮助论坛</string>
<string name="menu_import_all">全部导入</string>
<string name="menu_insert_marker">插入标记</string>
<string name="menu_insert_photo">插入照片</string>
<string name="menu_map">地图</string>
<string name="menu_markers">标记</string>
<string name="menu_play">播放</string>
<string name="menu_search">搜索</string>
<string name="menu_select_all">全选</string>
<string name="menu_sensor_state">传感器状态</string>
<string name="menu_settings">设置</string>
<string name="menu_share">分享</string>
<string name="menu_show_on_map">在地图上显示</string>
<string name="menu_split_frequency">分割频率</string>
<string name="menu_start_gps">启动 GPS</string>
<string name="menu_stop_gps">关闭 GPS</string>
<string name="menu_view_photo">查看照片</string>
<string name="menu_voice_frequency">语音提示频率</string>
<string name="app_name">OpenTracks</string>
<string name="recording_service">记录服务</string>
<string name="search_global_description">路线和标记</string>
<string name="search_list_empty_message">没有与您的搜索相符的路线或标记</string>
<string name="search_list_marker_track_location">位于“%1$s”路线。</string>
<string name="search_voice_prompt">说出路线或标记的名称</string>
<string name="sensor_state_battery">电池电量</string>
<string name="sensor_state_cadence">蹬车频率</string>
<string name="sensor_state_cadence_value">%1$d RPM</string>
<string name="sensor_state_connected">已连接</string>
<string name="sensor_state_connecting">正在连接</string>
<string name="sensor_state_disconnected">已断开连接</string>
<string name="sensor_state_heart_rate">心率</string>
<string name="sensor_state_heart_rate_value">%1$d BPM</string>
<string name="sensor_state_last_sensor_time">最后传感时间</string>
<string name="sensor_state_power">功率</string>
<string name="sensor_state_power_value">%1$d W</string>
<string name="sensor_state_sending">发送中</string>
<string name="settings_not_while_recording">记录路线时不可用</string>
<string name="settings_show">显示</string>
<string name="settings_advanced">高级</string>
<string name="settings_chart_by_distance">按距离</string>
<string name="settings_chart_by_time">按时间</string>
<string name="settings_chart_x_axis">X 轴</string>
<string name="settings_recording">记录</string>
<string name="settings_recording_auto_resume_track_timeout_always_summary">重启后一律继续记录</string>
<string name="settings_recording_auto_resume_track_timeout_never_summary">重启后一律不再继续记录</string>
<string name="settings_recording_auto_resume_track_timeout_summary">如果最后的位置记录发生在距离现在%1$s的范围内,则在重启后继续记录</string>
<string name="settings_recording_auto_resume_track_timeout_title">自动继续</string>
<string name="settings_recording_default_activity_title">默认活动类型</string>
<string name="settings_recording_location_frequency_summary">每隔%1$s记录一次位置</string>
<string name="settings_recording_max_recording_distance_summary">如果两个位置之间的距离超过%1$s,则创建新的路段</string>
<string name="settings_recording_max_recording_distance_title">最大距离</string>
<string name="settings_recording_min_recording_distance_title">记录距离间隔</string>
<string name="settings_recording_min_recording_interval_title">记录时间间隔</string>
<string name="settings_recording_min_required_accuracy_summary">如果位置的精度小于%1$s,则忽略该位置</string>
<string name="settings_recording_min_required_accuracy_title">GPS 精度</string>
<string name="settings_recording_track_name_date_iso_8601_option">日期 (ISO 8601)</string>
<string name="settings_recording_track_name_date_local_option">日期(本地)</string>
<string name="settings_recording_track_name_number_option">编号</string>
<string name="settings_recording_track_name_title">默认路线名称</string>
<string name="settings_reset">重置</string>
<string name="settings_reset_confirm_message">所有设置都将恢复为默认值。</string>
<string name="settings_reset_confirm_title">立即重置?</string>
<string name="settings_reset_done">所有设置都已恢复为默认值</string>
<string name="settings_sensor">传感器</string>
<string name="settings_sensor_ant_reset_bike_cadence_sensor">重置蹬车频率</string>
<string name="settings_sensor_ant_reset_combined_bike_sensor">重置组合的自行车</string>
<string name="settings_sensor_ant_reset_heart_rate_monitor">重置心率</string>
<string name="settings_sensor_ant_reset_speed_distance_monitor">重置计步器</string>
<string name="settings_sensor_bluetooth">蓝牙</string>
<string name="settings_sensor_bluetooth_pairing">蓝牙配对</string>
<string name="settings_sensor_bluetooth_pairing_summary">打开 Android 的蓝牙设置以配对传感器</string>
<string name="settings_sensor_bluetooth_sensor">蓝牙传感器</string>
<string name="settings_sensor_connected">已连接至 %1$s</string>
<string name="settings_stats_coordinate">纬度/经度</string>
<string name="settings_stats_grade_elevation">坡度/海拔</string>
<string name="settings_stats_rate_title">首选速率</string>
<string name="settings_stats_units_imperial">英制(英里、英尺)</string>
<string name="settings_stats_units_metric">公制(公里、米)</string>
<string name="settings_stats_units_title">首选单位</string>
<string name="share_track_emails_hint">电子邮件地址</string>
<string name="share_track_picker_title">选择应用:</string>
<string name="share_track_share_file">分享路线文件</string>
<string name="share_track_share_file_body">您可能会对此路线感兴趣。\n\n要查看此路线,请使用 Google 地图或其他
地图软件。\n\n%1$s</string>
<string name="share_track_subject">我要与您分享路线</string>
<string name="stats_average_moving_pace">平均移动步速</string>
<string name="stats_average_moving_speed">平均移动速度</string>
<string name="stats_average_pace">平均步速</string>
<string name="stats_average_speed">平均速度</string>
<string name="stats_elevation">海拔</string>
<string name="stats_fastest_pace">最快步速</string>
<string name="stats_gain">爬高</string>
<string name="stats_grade">坡度</string>
<string name="stats_latitude">纬度</string>
<string name="stats_longitude">经度</string>
<string name="stats_max">最大值</string>
<string name="stats_max_speed">最高速度</string>
<string name="stats_min">最小值</string>
<string name="stats_moving_time">移动时间</string>
<string name="stats_pace">步速</string>
<string name="stats_speed">速度</string>
<string name="stats_distance">距离</string>
<string name="stats_total_time">总时间</string>
<string name="track_name_format">路线 %1$d</string>
<string name="track_record_notification">正在记录路线…</string>
<string name="track_markers">%1$s标记</string>
<string name="track_delete_one_confirm_message">系统将从设备中永久删除路线及其标记。</string>
<string name="track_delete_one_confirm_title">删除路线?</string>
<string name="track_delete_multiple_confirm_message">系统将从设备中永久删除选定的路线及其标记。</string>
<string name="track_delete_progress_message">正在删除…</string>
<string name="track_detail_chart_tab">图表</string>
<string name="track_detail_stats_tab">统计信息</string>
<string name="track_edit_activity_type">活动类型(如徒步)</string>
<string name="track_edit_activity_type_hint">活动类型</string>
<string name="track_edit_new_track_title">新路线</string>
<string name="track_list_empty_message">在这里开始记录您的新冒险</string>
<string name="track_list_record_error">无法开始记录,无 GPS 信号。请重试。</string>
<string name="track_list_record_success">现在开始记录新线路</string>
<string name="track_widget_config_title">配置小工具项</string>
<string name="tracks_few">%1$d条路线</string>
<string name="tracks_many">%1$d条路线</string>
<string name="tracks_one">1条路线</string>
<string name="tracks_other">%1$d条路线</string>
<string name="tracks_two">2条路线</string>
<string name="tracks_zero">0条路线</string>
<string name="unit_feet">英尺</string>
<string name="unit_kilometer">公里</string>
<string name="unit_kilometer_per_hour">公里/小时</string>
<string name="unit_meter">米</string>
<string name="unit_mile">英里</string>
<string name="unit_mile_per_hour">英里/小时</string>
<string name="unit_minute_per_kilometer">分钟/公里</string>
<string name="unit_minute_per_mile">分钟/英里</string>
<string name="value_adapt_accuracy">适应精度</string>
<string name="value_adapt_battery_life">视电池电量而定</string>
<string name="value_always">一律启用</string>
<string name="value_float_feet">%1$.2f 英尺</string>
<string name="value_float_kilometer">%1$.2f 公里</string>
<string name="value_float_meter">%1$.2f 米</string>
<string name="value_float_mile">%1$.2f 英里</string>
<string name="value_float_mile_poor_gps">%1$.1f 英里(GPS 信号差)</string>
<string name="value_integer_feet">%1$d 英尺</string>
<string name="value_integer_feet_excellent_gps">%1$d 英尺(GPS 信号极佳)</string>
<string name="value_integer_feet_recommended">%1$d 英尺(推荐)</string>
<string name="value_integer_kilobyte">%1$dKB</string>
<string name="value_integer_kilometer">%1$d 公里</string>
<string name="value_integer_kilometer_hour">%1$d 公里/小时</string>
<string name="value_integer_megabyte">%1$dMB</string>
<string name="value_integer_meter">%1$d 米</string>
<string name="value_integer_meter_excellent_gps">%1$d 米(GPS 信号极佳)</string>
<string name="value_integer_meter_poor_gps">%1$d 米(GPS 信号差)</string>
<string name="value_integer_meter_recommended">%1$d 米(推荐)</string>
<string name="value_integer_mile">%1$d 英里</string>
<string name="value_integer_mile_hour">%1$d 英里/小时</string>
<string name="value_integer_minute">%1$d 分钟</string>
<string name="value_integer_percent">%1$d %%</string>
<string name="value_integer_second">%1$d 秒</string>
<string name="value_never">从不使用</string>
<string name="value_none">无</string>
<string name="value_off">关闭</string>
<string name="value_smallest">最小</string>
<string name="value_smallest_recommended">最小(建议)</string>
<string name="voice_hours_few">%1$d 小时</string>
<string name="voice_hours_many">%1$d 小时</string>
<string name="voice_hours_one">1 小时</string>
<string name="voice_hours_other">%1$d 小时</string>
<string name="voice_hours_two">2 小时</string>
<string name="voice_hours_zero">0 小时</string>
<string name="voice_minutes_few">%1$d 分钟</string>
<string name="voice_minutes_many">%1$d 分钟</string>
<string name="voice_minutes_one">1 分钟</string>
<string name="voice_minutes_other">%1$d 分钟</string>
<string name="voice_minutes_two">2 分钟</string>
<string name="voice_minutes_zero">0 分钟</string>
<string name="voice_pace_per_kilometer">每公里 %1$s</string>
<string name="voice_pace_per_mile">每英里 %1$s</string>
<string name="voice_seconds_few">%1$d 秒</string>
<string name="voice_seconds_many">%1$d 秒</string>
<string name="voice_seconds_one">1 秒</string>
<string name="voice_seconds_other">%1$d 秒</string>
<string name="voice_seconds_two">2 秒</string>
<string name="voice_seconds_zero">0 秒</string>
<string name="voice_speed_kilometers_per_hour_few">每小时 %1$.1f 公里</string>
<string name="voice_speed_kilometers_per_hour_many">每小时 %1$.1f 公里</string>
<string name="voice_speed_kilometers_per_hour_one">每小时 1 公里</string>
<string name="voice_speed_kilometers_per_hour_other">每小时 %1$.1f 公里</string>
<string name="voice_speed_kilometers_per_hour_two">每小时 2 公里</string>
<string name="voice_speed_kilometers_per_hour_zero">每小时 0 公里</string>
<string name="voice_speed_miles_per_hour_few">每小时 %1$.1f 英里</string>
<string name="voice_speed_miles_per_hour_many">每小时 %1$.1f 英里</string>
<string name="voice_speed_miles_per_hour_one">每小时 1 英里</string>
<string name="voice_speed_miles_per_hour_other">每小时 %1$.1f 英里</string>
<string name="voice_speed_miles_per_hour_two">每小时 2 英里</string>
<string name="voice_speed_miles_per_hour_zero">每小时 0 英里</string>
<string name="voice_template">“我的足迹”距离:%1$s;时间:%2$s;速度:%3$s</string>
<string name="voice_total_distance_kilometers_few">总距离 %1$.2f 公里</string>
<string name="voice_total_distance_kilometers_many">总距离 %1$.2f 公里</string>
<string name="voice_total_distance_kilometers_one">总距离 1 公里</string>
<string name="voice_total_distance_kilometers_other">总距离 %1$.2f 公里</string>
<string name="voice_total_distance_kilometers_two">总距离 2 公里</string>
<string name="voice_total_distance_kilometers_zero">总距离 0 公里</string>
<string name="voice_total_distance_miles_few">总距离 %1$.2f 英里</string>
<string name="voice_total_distance_miles_many">总距离 %1$.2f 英里</string>
<string name="voice_total_distance_miles_one">总距离 1 英里</string>
<string name="voice_total_distance_miles_other">总距离 %1$.2f 英里</string>
<string name="voice_total_distance_miles_two">总距离 2 英里</string>
<string name="voice_total_distance_miles_zero">总距离 0 英里</string>
<string name="voice_total_distance_zero">“我的足迹”总距离为零。</string>
<string name="waypoint_type_atm">自动取款机</string>
<string name="waypoint_type_bank">银行</string>
<string name="waypoint_type_bar">酒吧</string>
<string name="waypoint_type_barbecue">烧烤</string>
<string name="waypoint_type_building">建筑物</string>
<string name="waypoint_type_bus_stop">公交车站</string>
<string name="waypoint_type_cafe">咖啡馆</string>
<string name="waypoint_type_campfire">营火</string>
<string name="waypoint_type_campground">露营地</string>
<string name="waypoint_type_church">教堂</string>
<string name="waypoint_type_coffee_house">咖啡屋</string>
<string name="waypoint_type_convenience_store">便利店</string>
<string name="waypoint_type_drinking_water">直饮水</string>
<string name="waypoint_type_falling_rocks">滚落的岩石</string>
<string name="waypoint_type_ferry">轮渡</string>
<string name="waypoint_type_fire_place">壁炉</string>
<string name="waypoint_type_fire_station">消防局</string>
<string name="waypoint_type_fishing">钓鱼</string>
<string name="waypoint_type_gas_station">加油站</string>
<string name="waypoint_type_golf_course">高尔夫球场</string>
<string name="waypoint_type_grocery_store">杂货店</string>
<string name="waypoint_type_hair_dresser">理发师</string>
<string name="waypoint_type_harbor">港口</string>
<string name="waypoint_type_hiking_path">徒步路线</string>
<string name="waypoint_type_hotel">宾馆</string>
<string name="waypoint_type_house">房屋</string>
<string name="waypoint_type_information">信息</string>
<string name="waypoint_type_intersection">交叉路口</string>
<string name="waypoint_type_mail_box">邮箱</string>
<string name="waypoint_type_market">市场</string>
<string name="waypoint_type_meeting_point">汇合点</string>
<string name="waypoint_type_opera">剧院</string>
<string name="waypoint_type_parking">停车场</string>
<string name="waypoint_type_police_station">警察局</string>
<string name="waypoint_type_post_office">邮局</string>
<string name="waypoint_type_pothole">坑洞</string>
<string name="waypoint_type_railway_crossing">铁路道口</string>
<string name="waypoint_type_restaurant">餐馆</string>
<string name="waypoint_type_shopping">购物</string>
<string name="waypoint_type_sight">景点</string>
<string name="waypoint_type_store">商店</string>
<string name="waypoint_type_swimming_pool">游泳池</string>
<string name="waypoint_type_telephone">电话</string>
<string name="waypoint_type_theater">影剧院</string>
<string name="waypoint_type_toilet">厕所</string>
<string name="waypoint_type_tourist_information">旅游信息</string>
<string name="waypoint_type_tree">树</string>
<string name="waypoint_type_tunnel">隧道</string>
<string name="waypoint_type_waterfall">瀑布</string>
<string name="waypoint_type_water_fountain">喷泉</string>
<string name="waypoint_type_waypoint">路标</string>
</resources>
+4 -1
View File
@@ -17,7 +17,10 @@ limitations under the License.
<string name="app_web_url" translatable="false">https://github.com/dennisguse/opentracks</string>
<!-- List here all used libraries (will be shown in the about activity -->
<string name="third_party_libraries" translatable="false"><a href="https://developer.android.com/topic/libraries/support-library/">Google\'s androidX support</a> (Apache License, Version 2.0)</string>
<string name="third_party_libraries" translatable="false">
<a href="https://developer.android.com/topic/libraries/support-library/">Google\'s androidX support</a> (Apache License, Version 2.0) \n
<a href="https://github.com/material-components/material-components-android">Material Components for Android</a> (Apache License, Version 2.0)
</string>
<string name="marker_statistics_icon_url" translatable="false">http://maps.google.com/mapfiles/ms/micons/ylw-pushpin.png</string>
<string name="marker_waypoint_icon_url" translatable="false">http://maps.google.com/mapfiles/ms/micons/blue-pushpin.png</string>