diff --git a/IsoMe.xcodeproj/project.pbxproj b/IsoMe.xcodeproj/project.pbxproj index 836a6304..76313367 100644 --- a/IsoMe.xcodeproj/project.pbxproj +++ b/IsoMe.xcodeproj/project.pbxproj @@ -817,6 +817,7 @@ ru, ja, fr, + pl, ); mainGroup = A1FFFFF8212EFFFFFFFF0000; packageReferences = ( diff --git a/IsoMe/AppShortcuts.xcstrings b/IsoMe/AppShortcuts.xcstrings index 291149e6..5422bb2b 100644 --- a/IsoMe/AppShortcuts.xcstrings +++ b/IsoMe/AppShortcuts.xcstrings @@ -92,6 +92,15 @@ "从${applicationName}导出数据" ] } + }, + "pl": { + "stringSet": { + "state": "translated", + "values": [ + "Eksportuj dane z ${applicationName}", + "Wyeksportuj dane ${applicationName}" + ] + } } } }, @@ -186,6 +195,15 @@ "今天${applicationName}距离" ] } + }, + "pl": { + "stringSet": { + "state": "translated", + "values": [ + "Jaki dystans pokonano dzisiaj z ${applicationName}", + "Dzisiejszy dystans w ${applicationName}" + ] + } } } }, @@ -280,6 +298,15 @@ "${applicationName}跟踪持续时间" ] } + }, + "pl": { + "stringSet": { + "state": "translated", + "values": [ + "Jak długo trwa śledzenie w ${applicationName}", + "Czas śledzenia w ${applicationName}" + ] + } } } }, @@ -374,6 +401,15 @@ "${applicationName}访问计数" ] } + }, + "pl": { + "stringSet": { + "state": "translated", + "values": [ + "Ile wizyt dzisiaj w ${applicationName}", + "Liczba wizyt w ${applicationName}" + ] + } } } }, @@ -468,6 +504,15 @@ "为我的${applicationName}行程命名" ] } + }, + "pl": { + "stringSet": { + "state": "translated", + "values": [ + "Zmień nazwę przemieszczenia w ${applicationName}", + "Nazwij przemieszczenie w ${applicationName}" + ] + } } } }, @@ -562,6 +607,15 @@ "为我的${applicationName}访问命名" ] } + }, + "pl": { + "stringSet": { + "state": "translated", + "values": [ + "Zmień nazwę wizyty w ${applicationName}", + "Nazwij wizytę w ${applicationName}" + ] + } } } }, @@ -656,6 +710,15 @@ "为我的${applicationName}出行记录命名" ] } + }, + "pl": { + "stringSet": { + "state": "translated", + "values": [ + "Zmień nazwę bieżącej podróży w ${applicationName}", + "Nazwij podróż w ${applicationName}" + ] + } } } }, @@ -760,6 +823,16 @@ "使用${applicationName}记录路线" ] } + }, + "pl": { + "stringSet": { + "state": "translated", + "values": [ + "Uruchom ${applicationName}", + "Rozpocznij rejestrowanie w ${applicationName}", + "Rejestruj trasę z ${applicationName}" + ] + } } } }, @@ -854,6 +927,15 @@ "停止${applicationName}跟踪" ] } + }, + "pl": { + "stringSet": { + "state": "translated", + "values": [ + "Zatrzymaj śledzenie w ${applicationName}", + "Zakończ śledzenie w ${applicationName}" + ] + } } } } diff --git a/IsoMe/InfoPlist.xcstrings b/IsoMe/InfoPlist.xcstrings index 4a6d2716..a7203246 100644 --- a/IsoMe/InfoPlist.xcstrings +++ b/IsoMe/InfoPlist.xcstrings @@ -63,6 +63,12 @@ "state": "translated", "value": "iso.me" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "iso.me" + } } } }, @@ -128,6 +134,12 @@ "state": "translated", "value": "IsoMe" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "IsoMe" + } } } }, @@ -193,6 +205,12 @@ "state": "translated", "value": "iso.me 需要始终访问您的位置,以便全天自动记录您到访的地点,即使应用在后台运行也可以。此权限用于检测访问记录和跟踪出行。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "iso.me potrzebuje stałego dostępu do lokalizacji, aby automatycznie rejestrować odwiedzane miejsca przez cały dzień, także w tle. Umożliwia to wykrywanie wizyt i rejestrowanie tras." + } } } }, @@ -258,6 +276,12 @@ "state": "translated", "value": "iso.me 需要访问您的位置,以便在应用打开时显示当前位置并记录访问。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "iso.me potrzebuje dostępu do lokalizacji, aby pokazywać Twoje bieżące położenie i rejestrować wizyty, gdy aplikacja jest otwarta." + } } } }, @@ -323,6 +347,12 @@ "state": "translated", "value": "iso.me 可以将带有位置信息的照片关联到您的私人地图和出行记录。照片文件仍保留在照片图库中;iso.me 只在设备上存储本地元数据。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "iso.me może łączyć zdjęcia z danymi lokalizacji z Twoją prywatną mapą i podróżami. Pliki zdjęć pozostają w bibliotece Zdjęć; iso.me przechowuje na urządzeniu tylko lokalne metadane." + } } } } diff --git a/IsoMe/Localizable.xcstrings b/IsoMe/Localizable.xcstrings index e9dc1c79..c84b9874 100644 --- a/IsoMe/Localizable.xcstrings +++ b/IsoMe/Localizable.xcstrings @@ -62,6 +62,12 @@ "state": "translated", "value": "" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "" + } } } }, @@ -126,6 +132,12 @@ "state": "translated", "value": "%@ - 现在" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%@ – teraz" + } } } }, @@ -190,6 +202,12 @@ "state": "translated", "value": "%1$@ · %2$@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%1$@ · %2$@" + } } } }, @@ -254,6 +272,12 @@ "state": "translated", "value": "%1$@ • %2$@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%1$@ • %2$@" + } } } }, @@ -318,6 +342,12 @@ "state": "translated", "value": "%1$@ • %2$@ – 现在" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%1$@ • %2$@ – teraz" + } } } }, @@ -382,6 +412,12 @@ "state": "translated", "value": "%1$@ + %2$lld更多" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%1$@ + %2$lld więcej" + } } } }, @@ -446,6 +482,12 @@ "state": "translated", "value": "%@公里" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%@ kilometrów" + } } } }, @@ -510,6 +552,12 @@ "state": "translated", "value": "%@米" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%@ metrów" + } } } }, @@ -574,6 +622,12 @@ "state": "translated", "value": "%1$@. %2$@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%1$@. %2$@" + } } } }, @@ -638,6 +692,12 @@ "state": "translated", "value": "%1$@ 。状态%2$@ 。来源%3$@ 。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%1$@. Status %2$@. Źródło %3$@." + } } } }, @@ -702,6 +762,12 @@ "state": "translated", "value": "%lld" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%lld" + } } } }, @@ -766,6 +832,12 @@ "state": "translated", "value": "%1$lld %2$@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%1$lld %2$@" + } } } }, @@ -830,6 +902,12 @@ "state": "translated", "value": "%1$lld小时%2$lld分钟" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%1$lld godz. i %2$lld min" + } } } }, @@ -894,6 +972,36 @@ "state": "translated", "value": "%lld小时 1 分钟" } + }, + "pl": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "%lld godzina i 1 minuta" + } + }, + "few": { + "stringUnit": { + "state": "translated", + "value": "%lld godziny i 1 minuta" + } + }, + "many": { + "stringUnit": { + "state": "translated", + "value": "%lld godzin i 1 minuta" + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "%lld godziny i 1 minuta" + } + } + } + } } } }, @@ -958,6 +1066,12 @@ "state": "translated", "value": "%1$lld匹配%2$@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%1$lld DOPASOWANO %2$@" + } } } }, @@ -1022,6 +1136,12 @@ "state": "translated", "value": "%lld min" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%lld min" + } } } }, @@ -1086,6 +1206,12 @@ "state": "translated", "value": "%lld MIN" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%lld MIN" + } } } }, @@ -1150,6 +1276,36 @@ "state": "translated", "value": "%lld分钟" } + }, + "pl": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "%lld minuta" + } + }, + "few": { + "stringUnit": { + "state": "translated", + "value": "%lld minuty" + } + }, + "many": { + "stringUnit": { + "state": "translated", + "value": "%lld minut" + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "%lld minuty" + } + } + } + } } } }, @@ -1214,6 +1370,36 @@ "state": "translated", "value": "找到 %lld 次移动。" } + }, + "pl": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "Znaleziono %lld przemieszczenie." + } + }, + "few": { + "stringUnit": { + "state": "translated", + "value": "Znaleziono %lld przemieszczenia." + } + }, + "many": { + "stringUnit": { + "state": "translated", + "value": "Znaleziono %lld przemieszczeń." + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "Znaleziono %lld przemieszczenia." + } + } + } + } } } }, @@ -1278,6 +1464,12 @@ "state": "translated", "value": "%1$lld ,共%2$lld" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%1$lld z %2$lld" + } } } }, @@ -1342,6 +1534,36 @@ "state": "translated", "value": "%lld照片" } + }, + "pl": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "%lld zdjęcie" + } + }, + "few": { + "stringUnit": { + "state": "translated", + "value": "%lld zdjęcia" + } + }, + "many": { + "stringUnit": { + "state": "translated", + "value": "%lld zdjęć" + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "%lld zdjęcia" + } + } + } + } } } }, @@ -1406,6 +1628,36 @@ "state": "translated", "value": "%lld照片" } + }, + "pl": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "%lld ZDJĘCIE" + } + }, + "few": { + "stringUnit": { + "state": "translated", + "value": "%lld ZDJĘCIA" + } + }, + "many": { + "stringUnit": { + "state": "translated", + "value": "%lld ZDJĘĆ" + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "%lld ZDJĘCIA" + } + } + } + } } } }, @@ -1470,6 +1722,36 @@ "state": "translated", "value": "%lld点" } + }, + "pl": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "%lld punkt" + } + }, + "few": { + "stringUnit": { + "state": "translated", + "value": "%lld punkty" + } + }, + "many": { + "stringUnit": { + "state": "translated", + "value": "%lld punktów" + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "%lld punktu" + } + } + } + } } } }, @@ -1534,6 +1816,12 @@ "state": "translated", "value": "%lld PTS" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%lld PKT" + } } } }, @@ -1598,6 +1886,36 @@ "state": "translated", "value": "找到 %lld 次访问。" } + }, + "pl": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "Znaleziono %lld wizytę." + } + }, + "few": { + "stringUnit": { + "state": "translated", + "value": "Znaleziono %lld wizyty." + } + }, + "many": { + "stringUnit": { + "state": "translated", + "value": "Znaleziono %lld wizyt." + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "Znaleziono %lld wizyty." + } + } + } + } } } }, @@ -1662,6 +1980,36 @@ "state": "translated", "value": "今天%lld来访。" } + }, + "pl": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "Dzisiaj: %lld wizyta." + } + }, + "few": { + "stringUnit": { + "state": "translated", + "value": "Dzisiaj: %lld wizyty." + } + }, + "many": { + "stringUnit": { + "state": "translated", + "value": "Dzisiaj: %lld wizyt." + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "Dzisiaj: %lld wizyty." + } + } + } + } } } }, @@ -1726,6 +2074,12 @@ "state": "translated", "value": "%1$lld/%2$lld PTS" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%1$lld/%2$lld PKT" + } } } }, @@ -1790,6 +2144,12 @@ "state": "translated", "value": "%lldh" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%lld godz." + } } } }, @@ -1854,6 +2214,12 @@ "state": "translated", "value": "%1$lld小时%2$lld米" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%1$lld godz. %2$lld min" + } } } }, @@ -1918,6 +2284,12 @@ "state": "translated", "value": "%1$lld H %2$lld M" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%1$lld GODZ. %2$lld MIN" + } } } }, @@ -1982,6 +2354,12 @@ "state": "translated", "value": "%lldm" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%lld min" + } } } }, @@ -2046,6 +2424,12 @@ "state": "translated", "value": "%llds" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%lld s" + } } } }, @@ -2110,6 +2494,12 @@ "state": "translated", "value": "••••••••" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "••••••••" + } } } }, @@ -2174,6 +2564,12 @@ "state": "translated", "value": "≤ 10m" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "≤ 10m" + } } } }, @@ -2238,6 +2634,12 @@ "state": "translated", "value": "≤ 25m" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "≤ 25m" + } } } }, @@ -2302,6 +2704,12 @@ "state": "translated", "value": "≤ 50m" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "≤ 50m" + } } } }, @@ -2366,6 +2774,12 @@ "state": "translated", "value": "≤ 100m" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "≤ 100m" + } } } }, @@ -2430,6 +2844,12 @@ "state": "translated", "value": "1小时" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "1 godzina" + } } } }, @@ -2494,6 +2914,36 @@ "state": "translated", "value": "1 小时%lld分钟" } + }, + "pl": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "1 godzina i %lld minuta" + } + }, + "few": { + "stringUnit": { + "state": "translated", + "value": "1 godzina i %lld minuty" + } + }, + "many": { + "stringUnit": { + "state": "translated", + "value": "1 godzina i %lld minut" + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "1 godzina i %lld minuty" + } + } + } + } } } }, @@ -2558,6 +3008,12 @@ "state": "translated", "value": "1小时1分钟" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "1 godzina i 1 minuta" + } } } }, @@ -2622,6 +3078,12 @@ "state": "translated", "value": "1 min" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "1 min" + } } } }, @@ -2686,6 +3148,12 @@ "state": "translated", "value": "1分钟" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "1 minuta" + } } } }, @@ -2750,6 +3218,12 @@ "state": "translated", "value": "找到 1 次移动。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Znaleziono 1 przemieszczenie." + } } } }, @@ -2814,6 +3288,12 @@ "state": "translated", "value": "1 分" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "1 punkt" + } } } }, @@ -2878,6 +3358,12 @@ "state": "translated", "value": "找到 1 次访问。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Znaleziono 1 wizytę." + } } } }, @@ -2942,6 +3428,12 @@ "state": "translated", "value": "今天 1 次访问。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dzisiaj: 1 wizyta." + } } } }, @@ -3006,6 +3498,12 @@ "state": "translated", "value": "1h" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "1 godz." + } } } }, @@ -3070,6 +3568,12 @@ "state": "translated", "value": "1小时间隙" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przerwy 1 godz." + } } } }, @@ -3134,6 +3638,12 @@ "state": "translated", "value": "2小时" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "2 godziny" + } } } }, @@ -3198,6 +3708,12 @@ "state": "translated", "value": "2h" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "2 godz." + } } } }, @@ -3262,6 +3778,12 @@ "state": "translated", "value": "2小时间隙" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przerwy 2 godz." + } } } }, @@ -3326,6 +3848,12 @@ "state": "translated", "value": "4小时" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "4 godziny" + } } } }, @@ -3390,6 +3918,12 @@ "state": "translated", "value": "4h" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "4 godz." + } } } }, @@ -3454,6 +3988,12 @@ "state": "translated", "value": "4小时间隙" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przerwy 4 godz." + } } } }, @@ -3518,6 +4058,12 @@ "state": "translated", "value": "5" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "5" + } } } }, @@ -3582,6 +4128,12 @@ "state": "translated", "value": "5 min" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "5 min" + } } } }, @@ -3646,6 +4198,12 @@ "state": "translated", "value": "5分钟" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "5 minut" + } } } }, @@ -3710,6 +4268,12 @@ "state": "translated", "value": "5m" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "5 m" + } } } }, @@ -3774,6 +4338,12 @@ "state": "translated", "value": "7D" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "7 DNI" + } } } }, @@ -3838,6 +4408,12 @@ "state": "translated", "value": "8h" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "8 godz." + } } } }, @@ -3902,6 +4478,12 @@ "state": "translated", "value": "10" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "10" + } } } }, @@ -3966,6 +4548,12 @@ "state": "translated", "value": "10m" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "10 m" + } } } }, @@ -4030,6 +4618,12 @@ "state": "translated", "value": "12h" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "12 godz." + } } } }, @@ -4094,6 +4688,12 @@ "state": "translated", "value": "15 min" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "15 min" + } } } }, @@ -4158,6 +4758,12 @@ "state": "translated", "value": "15分钟" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "15 minut" + } } } }, @@ -4222,6 +4828,12 @@ "state": "translated", "value": "15m" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "15m" + } } } }, @@ -4286,6 +4898,12 @@ "state": "translated", "value": "15m间隙" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przerwy 15 min" + } } } }, @@ -4350,6 +4968,12 @@ "state": "translated", "value": "25" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "25" + } } } }, @@ -4414,6 +5038,12 @@ "state": "translated", "value": "25m" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "25 m" + } } } }, @@ -4478,6 +5108,12 @@ "state": "translated", "value": "30 min" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "30 min" + } } } }, @@ -4542,6 +5178,12 @@ "state": "translated", "value": "30分钟" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "30 minut" + } } } }, @@ -4606,6 +5248,12 @@ "state": "translated", "value": "30D" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "30 DNI" + } } } }, @@ -4670,6 +5318,12 @@ "state": "translated", "value": "30m" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "30m" + } } } }, @@ -4734,6 +5388,12 @@ "state": "translated", "value": "30m间隙" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przerwy 30 min" + } } } }, @@ -4798,6 +5458,12 @@ "state": "translated", "value": "50" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "50" + } } } }, @@ -4862,6 +5528,12 @@ "state": "translated", "value": "50 m" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "50 m" + } } } }, @@ -4926,6 +5598,12 @@ "state": "translated", "value": "50m" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "50 m" + } } } }, @@ -4990,6 +5668,12 @@ "state": "translated", "value": "100" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "100" + } } } }, @@ -5054,6 +5738,12 @@ "state": "translated", "value": "100 m" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "100 m" + } } } }, @@ -5118,6 +5808,12 @@ "state": "translated", "value": "100m" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "100 m" + } } } }, @@ -5182,6 +5878,12 @@ "state": "translated", "value": "150 m" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "150 m" + } } } }, @@ -5246,6 +5948,12 @@ "state": "translated", "value": "200m" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "200 m" + } } } }, @@ -5310,6 +6018,12 @@ "state": "translated", "value": "250 m" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "250 m" + } } } }, @@ -5374,6 +6088,12 @@ "state": "translated", "value": "平静、私密的时间表,记录您一天的行程 — 始终在设备上并由您掌控。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Spokojna, prywatna oś czasu pokazująca, dokąd zaprowadzi Cię dzień — zawsze na urządzeniu i pod Twoją kontrolą." + } } } }, @@ -5438,6 +6158,12 @@ "state": "translated", "value": "更清晰地了解您的日子" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wyraźniejszy obraz swoich dni" + } } } }, @@ -5502,6 +6228,12 @@ "state": "translated", "value": "一层新鲜的抛光剂" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Odświeżony wygląd" + } } } }, @@ -5566,6 +6298,12 @@ "state": "translated", "value": "关于" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "O APLIKACJI" + } } } }, @@ -5630,6 +6368,12 @@ "state": "translated", "value": "准确性" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "DOKŁADNOŚĆ" + } } } }, @@ -5694,6 +6438,12 @@ "state": "translated", "value": "精度约%.0f米" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dokładność około %.0f metrów" + } } } }, @@ -5758,6 +6508,12 @@ "state": "translated", "value": "精度上限" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "LIMIT DOKŁADNOŚCI" + } } } }, @@ -5822,6 +6578,12 @@ "state": "translated", "value": "行动" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "DZIAŁANIA" + } } } }, @@ -5886,6 +6648,12 @@ "state": "translated", "value": "活动会话路径" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Aktywna ścieżka sesji" + } } } }, @@ -5951,6 +6719,12 @@ "state": "translated", "value": "在访问表单中添加地名。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dodaj nazwę miejsca w formularzu wizyty." + } } } }, @@ -6015,6 +6789,12 @@ "state": "translated", "value": "添加您当前位置的访问" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dodaj wizytę w Twojej aktualnej lokalizacji" + } } } }, @@ -6079,6 +6859,12 @@ "state": "translated", "value": "从地图添加当前或过去的访问,确认检测到的地点,或使用附近的地点建议更正它们。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dodaj bieżące lub przeszłe wizyty z mapy, potwierdź wykryte miejsca lub popraw je, korzystając z sugestii miejsc w pobliżu." + } } } }, @@ -6143,6 +6929,12 @@ "state": "translated", "value": "将iso.me添加到支持的表盘,以快速跟踪状态和今天的总数。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dodaj iso.me do obsługiwanych tarcz zegarka, aby uzyskać szybki status śledzenia i dzisiejsze sumy." + } } } }, @@ -6207,6 +6999,12 @@ "state": "translated", "value": "添加注释" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dodaj notatki" + } } } }, @@ -6271,6 +7069,12 @@ "state": "translated", "value": "添加有关此访问的注释..." } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dodaj notatki na temat tej wizyty..." + } } } }, @@ -6335,6 +7139,12 @@ "state": "translated", "value": "添加过去的访问" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dodaj wcześniejszą wizytę" + } } } }, @@ -6400,6 +7210,12 @@ "state": "translated", "value": "添加过去的访问" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dodaj wcześniejszą wizytę" + } } } }, @@ -6464,6 +7280,12 @@ "state": "translated", "value": "从任何地方添加过去的访问" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dodaj poprzednie wizyty z dowolnego miejsca" + } } } }, @@ -6528,6 +7350,12 @@ "state": "translated", "value": "添加地点" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dodaj miejsce" + } } } }, @@ -6592,6 +7420,12 @@ "state": "translated", "value": "添加地点" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dodaj miejsce" + } } } }, @@ -6656,6 +7490,12 @@ "state": "translated", "value": "手动添加地点" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dodaj miejsce ręcznie" + } } } }, @@ -6720,6 +7560,12 @@ "state": "translated", "value": "添加这个地方" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dodaj to miejsce" + } } } }, @@ -6784,6 +7630,12 @@ "state": "translated", "value": "地址" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "ADRES" + } } } }, @@ -6848,6 +7700,12 @@ "state": "translated", "value": "地址或备注" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Adres lub notatka" + } } } }, @@ -6912,6 +7770,12 @@ "state": "translated", "value": "调整到达和出发时间,将访问标记为仍在进行中,并保持访问历史记录的准确性。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dostosuj godziny przyjazdu i wyjazdu, oznacz wizytę jako wciąż trwającą i prowadź dokładną historię wizyt." + } } } }, @@ -6976,6 +7840,12 @@ "state": "translated", "value": "全部" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wszystkie" + } } } }, @@ -7040,6 +7910,12 @@ "state": "translated", "value": "全部" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WSZYSTKIE" + } } } }, @@ -7104,6 +7980,12 @@ "state": "translated", "value": "所有数据" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wszystkie dane" + } } } }, @@ -7168,6 +8050,12 @@ "state": "translated", "value": "所有数据都存储在本地。从未上传到任何服务器。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wszystkie dane przechowywane lokalnie. Nigdy nie przesyłane na żaden serwer." + } } } }, @@ -7232,6 +8120,12 @@ "state": "translated", "value": "所有格式" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WSZYSTKIE FORMATY" + } } } }, @@ -7296,6 +8190,12 @@ "state": "translated", "value": "所有时间" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Cały okres" + } } } }, @@ -7360,6 +8260,12 @@ "state": "translated", "value": "所有时间" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Cały okres" + } } } }, @@ -7424,6 +8330,12 @@ "state": "translated", "value": "所有时间" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "CAŁY OKRES" + } } } }, @@ -7488,6 +8400,12 @@ "state": "translated", "value": "允许" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zezwól" + } } } }, @@ -7552,6 +8470,12 @@ "state": "translated", "value": "允许位置保存访问" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zezwól na lokalizację, aby zapisać wizytę" + } } } }, @@ -7616,6 +8540,12 @@ "state": "translated", "value": "允许" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zezwolono" + } } } }, @@ -7680,6 +8610,12 @@ "state": "translated", "value": "高度" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WYSOKOŚĆ" + } } } }, @@ -7744,6 +8680,12 @@ "state": "translated", "value": "总是" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zawsze" + } } } }, @@ -7808,6 +8750,12 @@ "state": "translated", "value": "始终允许" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zawsze dozwolony" + } } } }, @@ -7872,6 +8820,12 @@ "state": "translated", "value": "任何" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dowolny" + } } } }, @@ -7936,6 +8890,12 @@ "state": "translated", "value": "API密钥" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "KLUCZ API" + } } } }, @@ -8000,6 +8960,12 @@ "state": "translated", "value": "Api 密钥(查询)" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "KLUCZ API (ZAPYTANIE)" + } } } }, @@ -8064,6 +9030,12 @@ "state": "translated", "value": "api_key" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "api_key" + } } } }, @@ -8128,6 +9100,12 @@ "state": "translated", "value": "应用程序: iso.me %1$@平台: %2$@设备: %3$@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Aplikacja: iso.me %1$@\nPlatforma: %2$@\nUrządzenie: %3$@" + } } } }, @@ -8192,6 +9170,12 @@ "state": "translated", "value": "Apple Maps" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Apple Maps" + } } } }, @@ -8257,6 +9241,12 @@ "state": "translated", "value": "Apple Maps搜索目前不可用。请再试一次。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wyszukiwanie Apple Maps jest obecnie niedostępne. Spróbuj ponownie." + } } } }, @@ -8321,6 +9311,12 @@ "state": "translated", "value": "申请" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zastosuj" + } } } }, @@ -8385,6 +9381,12 @@ "state": "translated", "value": "始终包含到达和出发时间戳。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zawsze uwzględniane są znaczniki czasu przyjazdu i wyjazdu." + } } } }, @@ -8449,6 +9451,12 @@ "state": "translated", "value": "一天中的到达时间、持续时间和变化。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przyjazdy, czas trwania i zmiany w ciągu dnia." + } } } }, @@ -8513,6 +9521,12 @@ "state": "translated", "value": "到达的" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Rozpoczęta" + } } } }, @@ -8577,6 +9591,12 @@ "state": "translated", "value": "授权" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "UWIERZYTELNIANIE" + } } } }, @@ -8641,6 +9661,12 @@ "state": "translated", "value": "自动检测您访问的地点" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Automatycznie wykrywaj miejsca, które odwiedzasz" + } } } }, @@ -8705,6 +9731,12 @@ "state": "translated", "value": "自动生成" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "GENERUJ AUTOMATYCZNIE" + } } } }, @@ -8769,6 +9801,12 @@ "state": "translated", "value": "自动关闭%@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "AUTOMATYCZNE WYŁĄCZANIE %@" + } } } }, @@ -8833,6 +9871,12 @@ "state": "translated", "value": "自动保存" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "AUTOMATYCZNE ZAPISYWANIE" + } } } }, @@ -8897,6 +9941,12 @@ "state": "translated", "value": "自动保存到您选择的文件夹" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Automatyczne zapisywanie w wybranym folderze" + } } } }, @@ -8961,6 +10011,12 @@ "state": "translated", "value": "自动同步已启用" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Włączono automatyczną synchronizację" + } } } }, @@ -9025,6 +10081,12 @@ "state": "translated", "value": "自动同步照片瞬间" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Synchronizuj zdjęcia" + } } } }, @@ -9089,6 +10151,12 @@ "state": "translated", "value": "自动的" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Automatyczny" + } } } }, @@ -9153,6 +10221,12 @@ "state": "translated", "value": "可用的" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dostępny" + } } } }, @@ -9217,6 +10291,12 @@ "state": "translated", "value": "平均速度" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "ŚREDNIA PRĘDKOŚĆ" + } } } }, @@ -9281,6 +10361,12 @@ "state": "translated", "value": "后退" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WSTECZ" + } } } }, @@ -9345,6 +10431,12 @@ "state": "translated", "value": "后台追踪" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Śledzenie w tle" + } } } }, @@ -9409,6 +10501,12 @@ "state": "translated", "value": "后台访问检测" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WYKRYWANIE WIZYT W TLE" + } } } }, @@ -9473,6 +10571,12 @@ "state": "translated", "value": "后台访问检测让iso.me在应用程序关闭时继续记录。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wykrywanie wizyt w tle pozwala iso.me rejestrować dane, gdy aplikacja jest zamknięta." + } } } }, @@ -9537,6 +10641,12 @@ "state": "translated", "value": "后台访问检测需要扩展位置访问权限,因此iso.me在应用程序关闭时会持续记录。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wykrywanie wizyt w tle wymaga rozszerzonego dostępu do lokalizacji, aby iso.me mogło rejestrować dane, gdy aplikacja jest zamknięta." + } } } }, @@ -9601,6 +10711,12 @@ "state": "translated", "value": "基本认证" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "PODSTAWOWA AUTORYZACJA" + } } } }, @@ -9665,6 +10781,12 @@ "state": "translated", "value": "BEARER TOKEN" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "BEARER TOKEN" + } } } }, @@ -9729,6 +10851,12 @@ "state": "translated", "value": "开始在 IsoMe 中记录您的路线。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Rozpocznij rejestrowanie trasy w IsoMe." + } } } }, @@ -9793,6 +10921,12 @@ "state": "translated", "value": "建筑预览..." } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Tworzenie podglądu…" + } } } }, @@ -9857,6 +10991,12 @@ "state": "translated", "value": "构建时间表..." } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Tworzenie osi czasu…" + } } } }, @@ -9921,6 +11061,12 @@ "state": "translated", "value": "按计数" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WEDŁUG LICZBY" + } } } }, @@ -9985,6 +11131,12 @@ "state": "translated", "value": "按时间" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WEDŁUG CZASU" + } } } }, @@ -10049,6 +11201,12 @@ "state": "translated", "value": "取消" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Anuluj" + } } } }, @@ -10113,6 +11271,12 @@ "state": "translated", "value": "无法访问文件" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie można uzyskać dostępu do pliku" + } } } }, @@ -10177,6 +11341,12 @@ "state": "translated", "value": "需要时捕获详细路线" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "W razie potrzeby rejestruj szczegółowe trasy" + } } } }, @@ -10241,6 +11411,12 @@ "state": "translated", "value": "改变" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "ZMIEŃ" + } } } }, @@ -10306,6 +11482,12 @@ "state": "translated", "value": "更改地点" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zmień lokalizację" + } } } }, @@ -10370,6 +11552,12 @@ "state": "translated", "value": "在 Discord 上与我们聊天" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Porozmawiaj z nami na Discordzie" + } } } }, @@ -10434,6 +11622,12 @@ "state": "translated", "value": "在写入或共享您的位置历史记录之前,请检查目的地、文件名、计数、警告和内容。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przed zapisaniem lub udostępnieniem historii lokalizacji sprawdź miejsce docelowe, nazwy plików, liczbę, ostrzeżenia i zawartość." + } } } }, @@ -10498,6 +11692,12 @@ "state": "translated", "value": "检查附近的Apple Maps地点" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Sprawdzanie pobliskich miejsc Apple Maps" + } } } }, @@ -10562,6 +11762,12 @@ "state": "translated", "value": "检查您的照片库中是否有这次郊游期间拍摄的照片。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Sprawdzam bibliotekę Zdjęć pod kątem zdjęć zrobionych podczas tej podróży." + } } } }, @@ -10626,6 +11832,12 @@ "state": "translated", "value": "选择过去访问的已保存位置,或保存新选择的地点以便下次使用。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wybierz zapisaną lokalizację dla poprzedniej wizyty lub zapisz nowo wybrane miejsce, aby było gotowe następnym razem." + } } } }, @@ -10690,6 +11902,12 @@ "state": "translated", "value": "选择已保存的位置或请求新的准确当前位置。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wybierz zapisaną lokalizację lub poproś o nową, dokładną aktualną lokalizację." + } } } }, @@ -10755,6 +11973,12 @@ "state": "translated", "value": "选择另一个位置" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wybierz inną lokalizację" + } } } }, @@ -10820,6 +12044,12 @@ "state": "translated", "value": "选择地点" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wybierz lokalizację" + } } } }, @@ -10885,6 +12115,12 @@ "state": "translated", "value": "选择访问发生的地点。您当前的GPS位置将不会被使用。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wybierz miejsce, w którym odbyła się wizyta. Twoja bieżąca lokalizacja GPS nie zostanie użyta." + } } } }, @@ -10949,6 +12185,12 @@ "state": "translated", "value": "清洁出口组织" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Czystsza organizacja eksportu" + } } } }, @@ -11013,6 +12255,12 @@ "state": "translated", "value": "清除" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wyczyść" + } } } }, @@ -11077,6 +12325,12 @@ "state": "translated", "value": "清除所有数据" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WYCZYŚĆ WSZYSTKIE DANE" + } } } }, @@ -11141,6 +12395,12 @@ "state": "translated", "value": "清除所有数据?" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Usunąć wszystkie dane?" + } } } }, @@ -11205,6 +12465,12 @@ "state": "translated", "value": "清除业务过滤器" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wyczyść filtr miejsc" + } } } }, @@ -11269,6 +12535,12 @@ "state": "translated", "value": "清除过滤器" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wyczyść filtr" + } } } }, @@ -11333,6 +12605,12 @@ "state": "translated", "value": "更清晰的导出路径预览" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wyraźniejsze podglądy ścieżek eksportu" + } } } }, @@ -11397,6 +12675,12 @@ "state": "translated", "value": "关闭地图过滤器" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zamknij filtry mapy" + } } } }, @@ -11461,6 +12745,12 @@ "state": "translated", "value": "关闭照片" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zamknij zdjęcie" + } } } }, @@ -11525,6 +12815,12 @@ "state": "translated", "value": "关闭路线重播" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zamknij odtwarzanie trasy" + } } } }, @@ -11589,6 +12885,12 @@ "state": "translated", "value": "近距离参观建议" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zamknij sugestię wizyty" + } } } }, @@ -11653,6 +12955,12 @@ "state": "translated", "value": "折叠会话详细信息。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zwija szczegóły sesji." + } } } }, @@ -11717,6 +13025,12 @@ "state": "translated", "value": "袖珍的" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "KOMPAKTOWY" + } } } }, @@ -11781,6 +13095,12 @@ "state": "translated", "value": "确认地点" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Potwierdź miejsce" + } } } }, @@ -11845,6 +13165,12 @@ "state": "translated", "value": "确认的" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Potwierdzona" + } } } }, @@ -11909,6 +13235,12 @@ "state": "translated", "value": "连接照片" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "POŁĄCZ ZDJĘCIA" + } } } }, @@ -11973,6 +13305,12 @@ "state": "translated", "value": "连接照片以在地图和郊游上显示图片。 iso.me仅存储本地照片元数据。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Połącz z biblioteką Zdjęć, aby wyświetlać zdjęcia na mapie i w podróżach. iso.me przechowuje tylko lokalne metadane zdjęć." + } } } }, @@ -12037,6 +13375,12 @@ "state": "translated", "value": "已连接" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Połączony" + } } } }, @@ -12101,6 +13445,12 @@ "state": "translated", "value": "已连接 ( HTTP %lld )" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Połączono (HTTP %lld)" + } } } }, @@ -12165,6 +13515,12 @@ "state": "translated", "value": "连接照片可让iso.me显示这次郊游期间拍摄的照片。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Połączenie z biblioteką Zdjęć pozwala iso.me wyświetlać zdjęcia z tej podróży." + } } } }, @@ -12229,6 +13585,12 @@ "state": "translated", "value": "继续" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Kontynuuj" + } } } }, @@ -12293,6 +13655,12 @@ "state": "translated", "value": "控制" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "STEROWANIE" + } } } }, @@ -12357,6 +13725,12 @@ "state": "translated", "value": "坐标" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WSPÓŁRZĘDNE" + } } } }, @@ -12421,6 +13795,12 @@ "state": "translated", "value": "坐标" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WSPÓŁRZĘDNE" + } } } }, @@ -12485,6 +13865,12 @@ "state": "translated", "value": "已复制到剪贴板" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Skopiowano do schowka" + } } } }, @@ -12549,6 +13935,12 @@ "state": "translated", "value": "复制到剪贴板" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Skopiuj do schowka" + } } } }, @@ -12613,6 +14005,12 @@ "state": "translated", "value": "核心特点" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Podstawowe funkcje" + } } } }, @@ -12677,6 +14075,12 @@ "state": "translated", "value": "核心位置" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Core Location" + } } } }, @@ -12741,6 +14145,12 @@ "state": "translated", "value": "正确访问%@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zmień miejsce wizyty na %@" + } } } }, @@ -12805,6 +14215,12 @@ "state": "translated", "value": "已更正" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Skorygowana" + } } } }, @@ -12869,6 +14285,12 @@ "state": "translated", "value": "无法构建导出预览: %@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie można utworzyć podglądu eksportu: %@" + } } } }, @@ -12933,6 +14355,12 @@ "state": "translated", "value": "无法将文件读取为 UTF-8 文本" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie można odczytać pliku jako tekstu w formacie UTF-8" + } } } }, @@ -12997,6 +14425,12 @@ "state": "translated", "value": "无法加载附近的商家。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie udało się wczytać firm w pobliżu." + } } } }, @@ -13061,6 +14495,12 @@ "state": "translated", "value": "数数" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "LICZBA" + } } } }, @@ -13125,6 +14565,12 @@ "state": "translated", "value": "凭证作为HTTP标头发送并存储在设备钥匙串中。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Poświadczenia są wysyłane jako nagłówki HTTP i przechowywane w pęku kluczy urządzenia." + } } } }, @@ -13189,6 +14635,12 @@ "state": "translated", "value": "CSV" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "CSV" + } } } }, @@ -13253,6 +14705,12 @@ "state": "translated", "value": "CSV文件没有数据行" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Plik CSV nie zawiera wierszy danych" + } } } }, @@ -13317,6 +14775,12 @@ "state": "translated", "value": "CSV标头与预期的位置点格式不匹配" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nagłówek CSV nie pasuje do oczekiwanego formatu punktu lokalizacji" + } } } }, @@ -13381,6 +14845,12 @@ "state": "translated", "value": "CSV标头与预期访问格式不匹配" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nagłówek CSV nie pasuje do formatu oczekiwanej wizyty" + } } } }, @@ -13445,6 +14915,12 @@ "state": "translated", "value": "当前位置" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Aktualna lokalizacja" + } } } }, @@ -13509,6 +14985,12 @@ "state": "translated", "value": "当前位置已准备好" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Aktualna lokalizacja gotowa" + } } } }, @@ -13573,6 +15055,12 @@ "state": "translated", "value": "当前郊游重命名为%@ 。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zmieniono nazwę bieżącej podróży na %@." + } } } }, @@ -13637,6 +15125,12 @@ "state": "translated", "value": "当前郊游:%@。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Bieżąca podróż: %@." + } } } }, @@ -13701,6 +15195,12 @@ "state": "translated", "value": "当前访问" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Aktualna wizyta" + } } } }, @@ -13765,6 +15265,12 @@ "state": "translated", "value": "当前访问位于%@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Bieżąca wizyta w %@" + } } } }, @@ -13829,6 +15335,12 @@ "state": "translated", "value": "目前隐藏" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "OBECNIE UKRYTY" + } } } }, @@ -13893,6 +15405,12 @@ "state": "translated", "value": "正在录制中" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Trwa rejestrowanie" + } } } }, @@ -13957,6 +15475,12 @@ "state": "translated", "value": "目前显示" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "AKTUALNIE POKAZANE" + } } } }, @@ -14021,6 +15545,12 @@ "state": "translated", "value": "风俗" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Własny" + } } } }, @@ -14085,6 +15615,12 @@ "state": "translated", "value": "风俗" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WŁASNY" + } } } }, @@ -14149,6 +15685,12 @@ "state": "translated", "value": "自定义日期范围" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Niestandardowy zakres dat" + } } } }, @@ -14213,6 +15755,12 @@ "state": "translated", "value": "自定义标头" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "NIESTANDARDOWY NAGŁÓWEK" + } } } }, @@ -14277,6 +15825,12 @@ "state": "translated", "value": "定制范围" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zakres niestandardowy" + } } } }, @@ -14341,6 +15895,12 @@ "state": "translated", "value": "每日出口" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "CODZIENNY EKSPORT" + } } } }, @@ -14405,6 +15965,12 @@ "state": "translated", "value": "日常出口需要注意的事项" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Codzienny eksport wymaga uwagi" + } } } }, @@ -14469,6 +16035,12 @@ "state": "translated", "value": "每日出口就绪" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Codzienny eksport gotowy" + } } } }, @@ -14533,6 +16105,12 @@ "state": "translated", "value": "每日时间表" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dzienna oś czasu" + } } } }, @@ -14597,6 +16175,12 @@ "state": "translated", "value": "数据" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "DANE" + } } } }, @@ -14661,6 +16245,12 @@ "state": "translated", "value": "数据导出" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "EKSPORT DANYCH" + } } } }, @@ -14725,6 +16315,12 @@ "state": "translated", "value": "数据导入" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "IMPORT DANYCH" + } } } }, @@ -14789,6 +16385,12 @@ "state": "translated", "value": "仅当您点击下面的“立即发送”时才会发送数据。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dane zostaną wysłane dopiero po kliknięciu „Wyślij teraz” poniżej." + } } } }, @@ -14853,6 +16455,12 @@ "state": "translated", "value": "数据类型" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Rodzaj danych" + } } } }, @@ -14917,6 +16525,12 @@ "state": "translated", "value": "数据离开您的设备" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "DANE OPUSZCZAJĄ TWOJE URZĄDZENIE" + } } } }, @@ -14981,6 +16595,12 @@ "state": "translated", "value": "日期" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "DATA" + } } } }, @@ -15045,6 +16665,12 @@ "state": "translated", "value": "日期控件保持可见" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Elementy sterujące datą pozostają widoczne" + } } } }, @@ -15109,6 +16735,12 @@ "state": "translated", "value": "日期范围" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "ZAKRES DAT" + } } } }, @@ -15173,6 +16805,12 @@ "state": "translated", "value": "已注明日期" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Z DATĄ" + } } } }, @@ -15237,6 +16875,12 @@ "state": "translated", "value": "天" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "DZIEŃ" + } } } }, @@ -15301,6 +16945,12 @@ "state": "translated", "value": "默认文件夹: %@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Domyślny folder: %@" + } } } }, @@ -15365,6 +17015,12 @@ "state": "translated", "value": "删除" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Usuń" + } } } }, @@ -15429,6 +17085,12 @@ "state": "translated", "value": "删除郊游" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "USUŃ PODRÓŻ" + } } } }, @@ -15493,6 +17155,12 @@ "state": "translated", "value": "删除郊游?" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Usunąć podróż?" + } } } }, @@ -15557,6 +17225,12 @@ "state": "translated", "value": "删除外出活动" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Usuń podróży" + } } } }, @@ -15621,6 +17295,12 @@ "state": "translated", "value": "删除访问" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Usuń wizytę" + } } } }, @@ -15685,6 +17365,12 @@ "state": "translated", "value": "删除访问?" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Usunąć wizytę?" + } } } }, @@ -15749,6 +17435,12 @@ "state": "translated", "value": "确认后删除本次郊游及其GPS点。访问被保留。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Po potwierdzeniu usuwa tę podróż i jej punkty GPS. Wizyty zostają zachowane." + } } } }, @@ -15813,6 +17505,12 @@ "state": "translated", "value": "确认后删除本次访问。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Usuwa tę wizytę po potwierdzeniu." + } } } }, @@ -15877,6 +17575,12 @@ "state": "translated", "value": "被拒绝" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Odmowa" + } } } }, @@ -15941,6 +17645,12 @@ "state": "translated", "value": "离开" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zakończona" + } } } }, @@ -16006,6 +17716,12 @@ "state": "translated", "value": "出发时间不得早于抵达时间。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Czas wyjścia nie może poprzedzać czasu przybycia." + } } } }, @@ -16070,6 +17786,12 @@ "state": "translated", "value": "出发必须在抵达后。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Czas wyjścia musi być późniejszy niż czas przybycia." + } } } }, @@ -16134,6 +17856,12 @@ "state": "translated", "value": "目的地" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Miejsce docelowe" + } } } }, @@ -16198,6 +17926,12 @@ "state": "translated", "value": "细节" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "SZCZEGÓŁY" + } } } }, @@ -16262,6 +17996,12 @@ "state": "translated", "value": "检测为%@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wykryto jako %@" + } } } }, @@ -16326,6 +18066,12 @@ "state": "translated", "value": "解雇" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zamknij" + } } } }, @@ -16390,6 +18136,12 @@ "state": "translated", "value": "关闭不和谐横幅。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zamknij baner Discord." + } } } }, @@ -16454,6 +18206,12 @@ "state": "translated", "value": "解除警告" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Odrzuć ostrzeżenie" + } } } }, @@ -16518,6 +18276,12 @@ "state": "translated", "value": "距离" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dystans" + } } } }, @@ -16582,6 +18346,12 @@ "state": "translated", "value": "距离" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "DYSTANS" + } } } }, @@ -16646,6 +18416,12 @@ "state": "translated", "value": "距离%@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Odległość %@" + } } } }, @@ -16710,6 +18486,12 @@ "state": "translated", "value": "距离过滤器" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "FILTR ODLEGŁOŚCI" + } } } }, @@ -16774,6 +18556,12 @@ "state": "translated", "value": "整个应用程序、小部件和实时活动中显示的距离值。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wartości odległości wyświetlane w aplikacji, widżetach i aktywności na żywo." + } } } }, @@ -16838,6 +18626,12 @@ "state": "translated", "value": "完毕" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Gotowe" + } } } }, @@ -16902,6 +18696,12 @@ "state": "translated", "value": "双击可切换此地图图层。触摸并按住以获得解释。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Kliknij dwukrotnie, aby przełączyć tę warstwę mapy. Dotknij i przytrzymaj, aby wyświetlić wyjaśnienie." + } } } }, @@ -16966,6 +18766,12 @@ "state": "translated", "value": "绘制所选日期范围内的GPS轨迹。将其关闭以专注于访问、图钉或实时会话。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Rysuje ślad GPS dla wybranego zakresu dat. Wyłącz tę opcję, aby skupić się na wizytach, pinach lub sesji na żywo." + } } } }, @@ -17031,6 +18837,12 @@ "state": "translated", "value": "将图钉放在地图中心" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Umieść pinezkę na środku mapy" + } } } }, @@ -17095,6 +18907,12 @@ "state": "translated", "value": "期间" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Czas trwania" + } } } }, @@ -17159,6 +18977,12 @@ "state": "translated", "value": "期间" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "CZAS TRWANIA" + } } } }, @@ -17223,6 +19047,12 @@ "state": "translated", "value": "期间%@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Czas trwania %@" + } } } }, @@ -17287,6 +19117,12 @@ "state": "translated", "value": "每个日历日都成为每种选定格式的一个文件。在文件名中使用{date} 、 {day}或{format}以保持它们不同。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Każdy dzień kalendarzowy staje się jednym plikiem w wybranym formacie. Użyj {date}, {day} lub {format} w nazwie pliku, aby je rozróżnić." + } } } }, @@ -17351,6 +19187,12 @@ "state": "translated", "value": "每个新的GPS修复都会立即发布。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Każda nowa pozycja GPS jest natychmiast wysyłana." + } } } }, @@ -17415,6 +19257,12 @@ "state": "translated", "value": "每次外出都会成为每种所选格式的一个文件。在文件路径中使用{title} 、 {date} 、 {time}或{format} 。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Każda podróż staje się jednym plikiem w wybranym formacie. Użyj {title}, {date}, {time} lub {format} w ścieżce pliku." + } } } }, @@ -17479,6 +19327,12 @@ "state": "translated", "value": "编辑访问时间" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Edytuj godziny wizyty" + } } } }, @@ -17543,6 +19397,12 @@ "state": "translated", "value": "过去" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "UPŁYNĘŁO" + } } } }, @@ -17607,6 +19467,12 @@ "state": "translated", "value": "现在,空的日子会在屏幕上保留概述和日期选择器,并快速跳回到最新数据。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Puste dni umożliwiają teraz przeglądanie przeglądu i wybór dat na ekranie, dzięki czemu można szybko wrócić do najnowszych danych." + } } } }, @@ -17671,6 +19537,12 @@ "state": "translated", "value": "使能够" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WŁĄCZ" + } } } }, @@ -17735,6 +19607,12 @@ "state": "translated", "value": "启用" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WŁĄCZONY" + } } } }, @@ -17799,6 +19677,12 @@ "state": "translated", "value": "已启用。当iso.me将照片卡放置在您的地图上时,照片卡将自动出现。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Włączony. Karty ze zdjęciami pojawią się automatycznie, gdy iso.me umieści je na Twojej mapie." + } } } }, @@ -17863,6 +19747,12 @@ "state": "translated", "value": "启用 Webhook 传送会将您的位置数据发送到您配置的外部服务器。 iso.me无权访问该服务器或传输的数据。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Włączenie dostarczania elementu webhook powoduje wysłanie danych o Twojej lokalizacji do skonfigurowanego serwera zewnętrznego. iso.me nie ma dostępu do tego serwera ani do przesyłanych danych." + } } } }, @@ -17927,6 +19817,12 @@ "state": "translated", "value": "结尾" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "KONIEC" + } } } }, @@ -17991,6 +19887,12 @@ "state": "translated", "value": "结束日期" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Data zakończenia" + } } } }, @@ -18055,6 +19957,12 @@ "state": "translated", "value": "ENDPOINT" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "ENDPOINT" + } } } }, @@ -18119,6 +20027,12 @@ "state": "translated", "value": "输入当前郊游的名称。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wprowadź nazwę bieżącej podróży." + } } } }, @@ -18183,6 +20097,12 @@ "state": "translated", "value": "请输入名称。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wpisz nazwę." + } } } }, @@ -18248,6 +20168,12 @@ "state": "translated", "value": "输入地名、位置和有效时间。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wpisz nazwę miejsca, lokalizację i prawidłowe godziny." + } } } }, @@ -18312,6 +20238,12 @@ "state": "translated", "value": "活动" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WYDARZENIA" + } } } }, @@ -18376,6 +20308,12 @@ "state": "translated", "value": "排除 GPS 故障" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WYKLUCZ USTERKI GPS" + } } } }, @@ -18440,6 +20378,12 @@ "state": "translated", "value": "扩展会话详细信息。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Rozwija szczegóły sesji." + } } } }, @@ -18504,6 +20448,12 @@ "state": "translated", "value": "根目录下期望的JSON对象" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Oczekiwano obiektu JSON w katalogu głównym" + } } } }, @@ -18568,6 +20518,12 @@ "state": "translated", "value": "出口" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Eksport" + } } } }, @@ -18632,6 +20588,12 @@ "state": "translated", "value": "出口" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "EKSPORT" + } } } }, @@ -18696,6 +20658,12 @@ "state": "translated", "value": "出口%@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "EKSPORTUJ %@" + } } } }, @@ -18760,6 +20728,36 @@ "state": "translated", "value": "导出%lld文件" } + }, + "pl": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "EKSPORTUJ %lld PLIK" + } + }, + "few": { + "stringUnit": { + "state": "translated", + "value": "EKSPORTUJ %lld PLIKI" + } + }, + "many": { + "stringUnit": { + "state": "translated", + "value": "EKSPORTUJ %lld PLIKÓW" + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "EKSPORTUJ %lld PLIKU" + } + } + } + } } } }, @@ -18824,6 +20822,12 @@ "state": "translated", "value": "导出 1 个文件" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "EKSPORTUJ 1 PLIK" + } } } }, @@ -18888,6 +20892,12 @@ "state": "translated", "value": "导出数据" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Eksportuj dane" + } } } }, @@ -18952,6 +20962,12 @@ "state": "translated", "value": "导出每一次外出" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Eksportuj każdą podróż" + } } } }, @@ -19016,6 +21032,12 @@ "state": "translated", "value": "导出失败" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "EKSPORT NIE POWIÓDŁ SIĘ" + } } } }, @@ -19080,6 +21102,12 @@ "state": "translated", "value": "导出功能需要一次性购买。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Funkcje eksportu wymagają jednorazowego zakupu." + } } } }, @@ -19144,6 +21172,12 @@ "state": "translated", "value": "导出文件" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Eksportuj plik" + } } } }, @@ -19208,6 +21242,12 @@ "state": "translated", "value": "导出文件夹" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "FOLDER EKSPORTU" + } } } }, @@ -19272,6 +21312,12 @@ "state": "translated", "value": "导出格式" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Format eksportu" + } } } }, @@ -19336,6 +21382,12 @@ "state": "translated", "value": "将选定日期范围内的 IsoMe 访问、位置点或郊游导出为文件。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Eksportuj wizyty, punkty lub podróży IsoMe dla wybranego zakresu dat jako plik." + } } } }, @@ -19400,6 +21452,12 @@ "state": "translated", "value": "出口锁定" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "EKSPORT ZABLOKOWANY" + } } } }, @@ -19464,6 +21522,12 @@ "state": "translated", "value": "导出多种格式" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Eksportuj wiele formatów" + } } } }, @@ -19528,6 +21592,12 @@ "state": "translated", "value": "出口郊游" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Eksportuj podróże" + } } } }, @@ -19592,6 +21662,12 @@ "state": "translated", "value": "%@的导出负载不是有效的 UTF-8 文本。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Eksportowany ładunek dla %@ nie był prawidłowym tekstem w formacie UTF-8." + } } } }, @@ -19656,6 +21732,12 @@ "state": "translated", "value": "导出预览" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Podgląd eksportu" + } } } }, @@ -19720,6 +21802,12 @@ "state": "translated", "value": "导出设置棒" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zapamiętywanie ustawień eksportu" + } } } }, @@ -19784,6 +21872,12 @@ "state": "translated", "value": "导出成功" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "EKSPORT UDANY" + } } } }, @@ -19848,6 +21942,12 @@ "state": "translated", "value": "导出为JSON 、 CSV或Markdown" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Eksportuj do JSON, CSV lub Markdown" + } } } }, @@ -19912,6 +22012,12 @@ "state": "translated", "value": "今日出口" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Eksportuj dzisiaj" + } } } }, @@ -19976,6 +22082,12 @@ "state": "translated", "value": "导出今日数据" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Eksportuj dzisiejsze dane" + } } } }, @@ -20040,6 +22152,12 @@ "state": "translated", "value": "将今天的 IsoMe 郊游导出为文件。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Eksportuj dzisiejsze podróży IsoMe jako plik." + } } } }, @@ -20104,6 +22222,12 @@ "state": "translated", "value": "将今天的 IsoMe 访问和路线导出为文件。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Eksportuj dzisiejsze wizyty IsoMe i trasę jako plik." + } } } }, @@ -20168,6 +22292,12 @@ "state": "translated", "value": "导出今天的郊游" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Eksportuj dzisiejsze podróży" + } } } }, @@ -20232,6 +22362,12 @@ "state": "translated", "value": "出口解锁" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "EKSPORT ODBLOKOWANY" + } } } }, @@ -20296,6 +22432,12 @@ "state": "translated", "value": "导出将为每种选定的格式创建一个文件。如果您希望每个文件名包含其格式,请将{format}添加到文件路径。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Eksport utworzy jeden plik na wybrany format. Dodaj {format} do ścieżki pliku, jeśli chcesz, aby każda nazwa pliku zawierała swój format." + } } } }, @@ -20360,6 +22502,12 @@ "state": "translated", "value": "昨天导出" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Eksportuj wczoraj" + } } } }, @@ -20424,6 +22572,12 @@ "state": "translated", "value": "导出昨天的数据" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Eksportuj wczorajsze dane" + } } } }, @@ -20488,6 +22642,12 @@ "state": "translated", "value": "将昨天的 IsoMe 访问和路线导出为文件。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Eksportuj wczorajsze wizyty IsoMe i trasę jako plik." + } } } }, @@ -20552,6 +22712,12 @@ "state": "translated", "value": "将访问记录、位置点和路线导出为 JSON、CSV 或 Markdown。跟踪功能仍然免费且不限量。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Eksportuj swoje wizyty, punkty i trasy w formacie JSON, CSV lub Markdown. Śledzenie pozostaje bezpłatne i nieograniczone." + } } } }, @@ -20616,6 +22782,12 @@ "state": "translated", "value": "当自动保存打开时,导出直接保存到此文件夹。否则共享表将打开。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Eksportuje zapis bezpośrednio do tego folderu, gdy włączone jest automatyczne zapisywanie. W przeciwnym razie otworzy się arkusz udostępniania." + } } } }, @@ -20680,6 +22852,12 @@ "state": "translated", "value": "以选定的格式导出此郊游。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Eksportuje tę podróż w wybranym formacie." + } } } }, @@ -20744,6 +22922,12 @@ "state": "translated", "value": "导出将使用共享表,而不是直接保存到文件夹。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Eksporty będą korzystać z arkusza udostępniania zamiast zapisywać bezpośrednio w folderze." + } } } }, @@ -20808,6 +22992,12 @@ "state": "translated", "value": "无法结束录制会话: %@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie udało się zakończyć rejestrowania: %@" + } } } }, @@ -20872,6 +23062,12 @@ "state": "translated", "value": "无法加载产品: %@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie udało się załadować produktu: %@" + } } } }, @@ -20936,6 +23132,12 @@ "state": "translated", "value": "无法协调录制会话: %@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie udało się uzgodnić zarejestrowanych sesji: %@" + } } } }, @@ -21000,6 +23202,12 @@ "state": "translated", "value": "无法协调访问: %@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie udało się uzgodnić wizyt: %@" + } } } }, @@ -21064,6 +23272,12 @@ "state": "translated", "value": "未能保存位置点: %@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie udało się zapisać punktów lokalizacji: %@" + } } } }, @@ -21128,6 +23342,12 @@ "state": "translated", "value": "无法保存访问: %@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie udało się zapisać wizyty: %@" + } } } }, @@ -21192,6 +23412,12 @@ "state": "translated", "value": "未能安排导出通知: %@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie udało się zaplanować powiadomienia o eksporcie: %@" + } } } }, @@ -21256,6 +23482,12 @@ "state": "translated", "value": "发送导出重试通知失败: %@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie udało się wysłać powiadomienia o ponownej próbie eksportu: %@" + } } } }, @@ -21320,6 +23552,12 @@ "state": "translated", "value": "无法开始录制会话: %@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie udało się rozpocząć rejestrowania: %@" + } } } }, @@ -21384,6 +23622,12 @@ "state": "translated", "value": "无法将文件写入导出文件夹。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie udało się zapisać pliku w folderze eksportu." + } } } }, @@ -21448,6 +23692,12 @@ "state": "translated", "value": "文件路径" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "ŚCIEŻKA PLIKU" + } } } }, @@ -21512,6 +23762,12 @@ "state": "translated", "value": "文件路径模板现在支持文件夹、更多日期标记以及用于整洁日常存档的预设日期文件夹。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Szablony ścieżek plików obsługują teraz foldery, więcej tokenów dat i gotowe ustawienia folderów z datą, umożliwiające codzienne porządkowanie archiwów." + } } } }, @@ -21576,6 +23832,12 @@ "state": "translated", "value": "现在,当不存在外出标题时,使用{title}或{name}的文件路径会显示访问、积分和全部导出的合理数据类型后备。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ścieżki plików używające {title} lub {name} pokazują teraz rozsądne zastępcze typy danych dla eksportów Wizyty, Punkty i Wszystkie, gdy nie istnieje żaden tytuł podróży." + } } } }, @@ -21640,6 +23902,12 @@ "state": "translated", "value": "文件名可以使用外部名称" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "W nazwach plików można używać nazw podróży" + } } } }, @@ -21704,6 +23972,12 @@ "state": "translated", "value": "文件" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Pliki" + } } } }, @@ -21768,6 +24042,12 @@ "state": "translated", "value": "筛选企业" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Filtruj firmy" + } } } }, @@ -21832,6 +24112,12 @@ "state": "translated", "value": "按日期过滤" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Filtruj według daty" + } } } }, @@ -21896,6 +24182,12 @@ "state": "translated", "value": "过滤后的数据按照选定的格式压缩为一个文件。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przefiltrowane dane są kondensowane w jednym pliku w wybranym formacie." + } } } }, @@ -21960,6 +24252,12 @@ "state": "translated", "value": "过滤后的外出活动将按所选格式压缩为一个文件。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Odfiltrowane podróży są gromadzone w jednym pliku w wybranym formacie." + } } } }, @@ -22024,6 +24322,12 @@ "state": "translated", "value": "过滤器" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "FILTRY" + } } } }, @@ -22088,6 +24392,12 @@ "state": "translated", "value": "过滤地图日期范围。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Filtruje zakres dat mapy." + } } } }, @@ -22152,6 +24462,12 @@ "state": "translated", "value": "寻找" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Znajdź" + } } } }, @@ -22216,6 +24532,12 @@ "state": "translated", "value": "查找企业、地标或街道地址,或将图钉放置在确切的坐标处。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Znajdź firmę, punkt orientacyjny lub adres albo umieść pinezkę na dokładnych współrzędnych." + } } } }, @@ -22280,6 +24602,12 @@ "state": "translated", "value": "更快地查找过去的日子" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Szybciej znajduj poprzednie dni" + } } } }, @@ -22345,6 +24673,12 @@ "state": "translated", "value": "找到你在哪里" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Znajdź, gdzie byłeś" + } } } }, @@ -22410,6 +24744,12 @@ "state": "translated", "value": "寻找地址..." } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Znajdowanie adresu…" + } } } }, @@ -22474,6 +24814,12 @@ "state": "translated", "value": "寻找地方…" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Znajdowanie miejsca…" + } } } }, @@ -22538,6 +24884,12 @@ "state": "translated", "value": "根据开始时间查找移动。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wyszukuje przemieszczenia według czasu rozpoczęcia." + } } } }, @@ -22602,6 +24954,12 @@ "state": "translated", "value": "根据您的到达时间查找访问。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wyszukuje wizyty według czasu przybycia." + } } } }, @@ -22666,6 +25024,12 @@ "state": "translated", "value": "适合活动会话" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dopasuj aktywną sesję" + } } } }, @@ -22730,6 +25094,12 @@ "state": "translated", "value": "适合所有访问" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dopasuj wszystkie wizyty" + } } } }, @@ -22794,6 +25164,12 @@ "state": "translated", "value": "适合地图" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dopasuj mapę" + } } } }, @@ -22858,6 +25234,12 @@ "state": "translated", "value": "灵活的出口" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Elastyczny eksport" + } } } }, @@ -22922,6 +25304,12 @@ "state": "translated", "value": "格式" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Format" + } } } }, @@ -22986,6 +25374,12 @@ "state": "translated", "value": "格式" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "FORMAT" + } } } }, @@ -23050,6 +25444,12 @@ "state": "translated", "value": "格式" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Formaty" + } } } }, @@ -23114,6 +25514,12 @@ "state": "translated", "value": "格式" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "FORMATY" + } } } }, @@ -23178,6 +25584,12 @@ "state": "translated", "value": "从" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Od" + } } } }, @@ -23242,6 +25654,12 @@ "state": "translated", "value": "从" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "OD" + } } } }, @@ -23306,6 +25724,12 @@ "state": "translated", "value": "未来在此半径内的自动访问将在网络地​​理编码之前使用此名称。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przyszłe automatyczne wizyty w tym promieniu użyją zapisanej nazwy przed geokodowaniem przez sieć." + } } } }, @@ -23370,6 +25794,12 @@ "state": "translated", "value": "GeoJSON" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "GeoJSON" + } } } }, @@ -23434,6 +25864,12 @@ "state": "translated", "value": "GEOJSON" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "GEOJSON" + } } } }, @@ -23498,6 +25934,12 @@ "state": "translated", "value": "获取当前郊游名称" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Pobierz nazwę bieżącej podróży" + } } } }, @@ -23562,6 +26004,12 @@ "state": "translated", "value": "获取移动" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Pobierz przemieszczenia" + } } } }, @@ -23626,6 +26074,12 @@ "state": "translated", "value": "开始使用" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Rozpocznij" + } } } }, @@ -23690,6 +26144,12 @@ "state": "translated", "value": "获取访问" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Pobierz wizyty" + } } } }, @@ -23754,6 +26214,12 @@ "state": "translated", "value": "一目了然,电池感知,并在您需要时深入了解上下文。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Najważniejsze informacje pod ręką, z troską o baterię i szczegółami wtedy, gdy ich potrzebujesz." + } } } }, @@ -23818,6 +26284,12 @@ "state": "translated", "value": "全球定位系统故障" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "USTERKI GPS" + } } } }, @@ -23882,6 +26354,12 @@ "state": "translated", "value": "GPS异常值" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wartość odstająca GPS" + } } } }, @@ -23946,6 +26424,12 @@ "state": "translated", "value": "GPX" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "GPX" + } } } }, @@ -24010,6 +26494,12 @@ "state": "translated", "value": "在iPhone设置 → iso.me → 位置中授予位置访问权限。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przyznaj dostęp do lokalizacji w Ustawieniach iPhone → iso.me → Lokalizacja." + } } } }, @@ -24074,6 +26564,12 @@ "state": "translated", "value": "标头名称" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "NAZWA NAGŁÓWKA" + } } } }, @@ -24138,6 +26634,12 @@ "state": "translated", "value": "标头值" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WARTOŚĆ NAGŁÓWKA" + } } } }, @@ -24202,6 +26704,12 @@ "state": "translated", "value": "隐" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ukryty" + } } } }, @@ -24266,6 +26774,12 @@ "state": "translated", "value": "隐藏日期、图层和适合控件。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ukrywa elementy sterujące datą, warstwą i dopasowaniem." + } } } }, @@ -24330,6 +26844,12 @@ "state": "translated", "value": "隐藏点元数据。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ukrywa metadane punktów." + } } } }, @@ -24394,6 +26914,12 @@ "state": "translated", "value": "隐藏结束时间。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ukrywa czas zakończenia." + } } } }, @@ -24458,6 +26984,12 @@ "state": "translated", "value": "隐藏开始时间。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ukrywa godzinę rozpoczęcia." + } } } }, @@ -24522,6 +27054,12 @@ "state": "translated", "value": "从地图中隐藏此建议地点。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ukrywa to sugerowane miejsce na mapie." + } } } }, @@ -24586,6 +27124,12 @@ "state": "translated", "value": "根据 IsoMe 的数据,您今天走了多远。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dzisiejszy dystans zarejestrowany przez IsoMe." + } } } }, @@ -24650,6 +27194,12 @@ "state": "translated", "value": "当前 IsoMe 跟踪会话已运行多长时间。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Jak długo trwa bieżąca sesja śledzenia IsoMe." + } } } }, @@ -24714,6 +27264,12 @@ "state": "translated", "value": "HTTP端点" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "PUNKT KOŃCOWY HTTP" + } } } }, @@ -24778,6 +27334,12 @@ "state": "translated", "value": "https://example.com/api/location" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "https://example.com/api/location" + } } } }, @@ -24842,6 +27404,12 @@ "state": "translated", "value": "忽略短于" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "IGNORUJ KRÓTSZE NIŻ" + } } } }, @@ -24906,6 +27474,12 @@ "state": "translated", "value": "进口" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Import" + } } } }, @@ -24970,6 +27544,12 @@ "state": "translated", "value": "导入完成" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Import zakończony" + } } } }, @@ -25034,6 +27614,12 @@ "state": "translated", "value": "导入失败" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Import nie powiódł się" + } } } }, @@ -25098,6 +27684,12 @@ "state": "translated", "value": "导入文件" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "IMPORTUJ PLIK" + } } } }, @@ -25162,6 +27754,12 @@ "state": "translated", "value": "从JSON 、 CSV或 Markdown 导入访问或积分。 KML 、 GPX和GeoJSON是单向地图导出。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Importuj wizyty lub punkty z JSON, CSV lub Markdown. KML, GPX i GeoJSON to jednokierunkowe eksporty map." + } } } }, @@ -25226,6 +27824,12 @@ "state": "translated", "value": "进口" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zaimportowano" + } } } }, @@ -25290,6 +27894,36 @@ "state": "translated", "value": "已导入%d点。" } + }, + "pl": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "Zaimportowano %d punkt." + } + }, + "few": { + "stringUnit": { + "state": "translated", + "value": "Zaimportowano %d punkty." + } + }, + "many": { + "stringUnit": { + "state": "translated", + "value": "Zaimportowano %d punktów." + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "Zaimportowano %d punktu." + } + } + } + } } } }, @@ -25354,6 +27988,12 @@ "state": "translated", "value": "导入%d访问和%d点积分。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zaimportowano wizyty: %d, punkty: %d." + } } } }, @@ -25418,6 +28058,36 @@ "state": "translated", "value": "导入%d次访问和 1 分。" } + }, + "pl": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "Zaimportowano %d wizytę i 1 punkt." + } + }, + "few": { + "stringUnit": { + "state": "translated", + "value": "Zaimportowano %d wizyty i 1 punkt." + } + }, + "many": { + "stringUnit": { + "state": "translated", + "value": "Zaimportowano %d wizyt i 1 punkt." + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "Zaimportowano %d wizyty i 1 punkt." + } + } + } + } } } }, @@ -25482,6 +28152,36 @@ "state": "translated", "value": "导入了%d次访问。" } + }, + "pl": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "Zaimportowano %d wizytę." + } + }, + "few": { + "stringUnit": { + "state": "translated", + "value": "Zaimportowano %d wizyty." + } + }, + "many": { + "stringUnit": { + "state": "translated", + "value": "Zaimportowano %d wizyt." + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "Zaimportowano %d wizyty." + } + } + } + } } } }, @@ -25546,6 +28246,12 @@ "state": "translated", "value": "导入1分。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zaimportowano 1 punkt." + } } } }, @@ -25610,6 +28316,36 @@ "state": "translated", "value": "导入 1 次访问和%d积分。" } + }, + "pl": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "Zaimportowano 1 wizytę i %d punkt." + } + }, + "few": { + "stringUnit": { + "state": "translated", + "value": "Zaimportowano 1 wizytę i %d punkty." + } + }, + "many": { + "stringUnit": { + "state": "translated", + "value": "Zaimportowano 1 wizytę i %d punktów." + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "Zaimportowano 1 wizytę i %d punktu." + } + } + } + } } } }, @@ -25674,6 +28410,12 @@ "state": "translated", "value": "导入 1 次访问和 1 点。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zaimportowano 1 wizytę i 1 punkt." + } } } }, @@ -25738,6 +28480,12 @@ "state": "translated", "value": "进口 1 次访问。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zaimportowano 1 wizytę." + } } } }, @@ -25802,6 +28550,12 @@ "state": "translated", "value": "推断" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "OSZACOWANE" + } } } }, @@ -25866,6 +28620,12 @@ "state": "translated", "value": "从位置点的间隙推断" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Oszacowano na podstawie przerwy między punktami lokalizacji" + } } } }, @@ -25930,6 +28690,12 @@ "state": "translated", "value": "从路线推断" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Oszacowano na podstawie trasy" + } } } }, @@ -25994,6 +28760,12 @@ "state": "translated", "value": "根据访问推断" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Oszacowano na podstawie wizyty" + } } } }, @@ -26058,6 +28830,12 @@ "state": "translated", "value": "推断运动" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "OSZACOWANE PRZEMIESZCZENIE" + } } } }, @@ -26122,6 +28900,12 @@ "state": "translated", "value": "推断的郊游" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "OSZACOWANE PODRÓŻE" + } } } }, @@ -26186,6 +28970,12 @@ "state": "translated", "value": "间隔" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "INTERWAŁ" + } } } }, @@ -26250,6 +29040,12 @@ "state": "translated", "value": "无效数据: %@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nieprawidłowe dane: %@" + } } } }, @@ -26314,6 +29110,12 @@ "state": "translated", "value": "无效JSON : %@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nieprawidłowy JSON: %@" + } } } }, @@ -26378,6 +29180,12 @@ "state": "translated", "value": "Markdown访问到达时间无效" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nieprawidłowy czas przybycia wizyty Markdown" + } } } }, @@ -26442,6 +29250,12 @@ "state": "translated", "value": "无效的Markdown访问坐标" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nieprawidłowe współrzędne wizyty Markdown" + } } } }, @@ -26506,6 +29320,12 @@ "state": "translated", "value": "无效路径" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "NIEPRAWIDŁOWA ŚCIEŻKA" + } } } }, @@ -26570,6 +29390,12 @@ "state": "translated", "value": "无效URL" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nieprawidłowy URL" + } } } }, @@ -26634,6 +29460,12 @@ "state": "translated", "value": "iOS %@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "iOS %@" + } } } }, @@ -26698,6 +29530,12 @@ "state": "translated", "value": "ISO.ME" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "ISO.ME" + } } } }, @@ -26762,6 +29600,12 @@ "state": "translated", "value": "iso.me要求iOS和服务器端通知工作人员在这个时间附近唤醒。如果导出尚未完成,请点击后备通知或打开应用程序来运行它。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "iso.me prosi iOS i serwer powiadomień o wybudzenie aplikacji w pobliżu tej godziny. Jeśli eksport się nie zakończy, stuknij powiadomienie zapasowe lub otwórz aplikację, aby go uruchomić." + } } } }, @@ -26826,6 +29670,12 @@ "state": "translated", "value": "iso.me反馈" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Opinia o iso.me" + } } } }, @@ -26890,6 +29740,12 @@ "state": "translated", "value": "iso.me更新了应用程序图标,并更新了整个应用程序体验的发布版本。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "iso.me ma odświeżoną ikonę aplikacji i zaktualizowane wydanie w całej aplikacji." + } } } }, @@ -26954,6 +29810,12 @@ "state": "translated", "value": "iso.me仅存储该照片的本地标识符、时间戳和坐标。照片文件保留在您的照片库中。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "iso.me przechowuje tylko lokalny identyfikator, znacznik czasu i współrzędne tego zdjęcia. Plik zdjęcia pozostanie w Twojej bibliotece Zdjęć." + } } } }, @@ -27018,6 +29880,12 @@ "state": "translated", "value": "iso.me使用您的位置来检测您访问的地点并追踪您的日常路径。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "iso.me wykorzystuje Twoją lokalizację do wykrywania odwiedzanych miejsc i śledzenia Twojej codziennej ścieżki." + } } } }, @@ -27082,6 +29950,12 @@ "state": "translated", "value": "IsoMe 当前没有记录外出活动。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "IsoMe nie rejestruje obecnie podróży." + } } } }, @@ -27146,6 +30020,12 @@ "state": "translated", "value": "IsoMe 目前未进行追踪。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "IsoMe nie śledzi teraz." + } } } }, @@ -27210,6 +30090,12 @@ "state": "translated", "value": "IsoMe 需要位置权限。打开应用程序以启用它。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "IsoMe potrzebuje pozwolenia na lokalizację. Otwórz aplikację, aby ją włączyć." + } } } }, @@ -27274,6 +30160,12 @@ "state": "translated", "value": "项目" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Elementy" + } } } }, @@ -27338,6 +30230,12 @@ "state": "translated", "value": "加入" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "DOŁĄCZ" + } } } }, @@ -27402,6 +30300,12 @@ "state": "translated", "value": "加入不和谐" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "DOŁĄCZ DO DISCORDA" + } } } }, @@ -27466,6 +30370,12 @@ "state": "translated", "value": "加入社区" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "DOŁĄCZ DO SPOŁECZNOŚCI" + } } } }, @@ -27530,6 +30440,12 @@ "state": "translated", "value": "加入不和谐社区。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dołącz do społeczności Discorda." + } } } }, @@ -27594,6 +30510,12 @@ "state": "translated", "value": "JSON" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "JSON" + } } } }, @@ -27658,6 +30580,12 @@ "state": "translated", "value": "JSON和CSV导出外出摘要。 Markdown添加了YAML前端内容以及访问和路由点。 GPX 、 KML 、 GeoJSON 、 OwnTracks和Overland导出郊游路线点。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "JSON i CSV eksportują podsumowania podróży. Markdown dodaje nagłówek YAML, wizyty i punkty trasy. GPX, KML, GeoJSON, OwnTracks i Overland eksportują punkty trasy podróży." + } } } }, @@ -27722,6 +30650,12 @@ "state": "translated", "value": "JSON和CSV总结每次外出,而GPX 、 KML 、 GeoJSON 、 OwnTracks和Overland则导出路线修正。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "JSON i CSV zawierają podsumowanie każdej podróży, a GPX, KML, GeoJSON, OwnTracks i Overland eksportują zarejestrowane pozycje GPS." + } } } }, @@ -27786,6 +30720,12 @@ "state": "translated", "value": "JSON 、 CSV或Markdown只要您需要。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "JSON, CSV lub Markdown — kiedy tylko tego potrzebujesz." + } } } }, @@ -27850,6 +30790,12 @@ "state": "translated", "value": "从郊游跳转到地图" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przejdź z podróży do mapy" + } } } }, @@ -27914,6 +30860,12 @@ "state": "translated", "value": "跳转至最新数据" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "PRZEJDŹ DO NAJNOWSZYCH DANYCH" + } } } }, @@ -27978,6 +30930,12 @@ "state": "translated", "value": "跳到今天" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "PRZEJDŹ DO DZISIAJ" + } } } }, @@ -28042,6 +31000,12 @@ "state": "translated", "value": "将所有位置数据保留在设备上" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przechowuj wszystkie dane o lokalizacji na urządzeniu" + } } } }, @@ -28106,6 +31070,12 @@ "state": "translated", "value": "保持访问的背景" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zachowaj kontekst wizyty" + } } } }, @@ -28170,6 +31140,12 @@ "state": "translated", "value": "主要特点" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "FUNKCJE" + } } } }, @@ -28234,6 +31210,12 @@ "state": "translated", "value": "KML" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "KML" + } } } }, @@ -28298,6 +31280,12 @@ "state": "translated", "value": "过去 7 天" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ostatnie 7 dni" + } } } }, @@ -28362,6 +31350,12 @@ "state": "translated", "value": "过去 7 天" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ostatnie 7 dni" + } } } }, @@ -28426,6 +31420,12 @@ "state": "translated", "value": "过去 7 天" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "OSTATNIE 7 DNI" + } } } }, @@ -28490,6 +31490,12 @@ "state": "translated", "value": "过去 30 天" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ostatnie 30 dni" + } } } }, @@ -28554,6 +31560,12 @@ "state": "translated", "value": "过去 30 天" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ostatnie 30 dni" + } } } }, @@ -28618,6 +31630,12 @@ "state": "translated", "value": "过去 30 天" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "OSTATNIE 30 DNI" + } } } }, @@ -28682,6 +31700,12 @@ "state": "translated", "value": "最后一次运行" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "OSTATNIE URUCHOMIENIE" + } } } }, @@ -28746,6 +31770,12 @@ "state": "translated", "value": "最后发送" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "OSTATNIO WYSŁANE" + } } } }, @@ -28810,6 +31840,12 @@ "state": "translated", "value": "最新的" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "NAJNOWSZY" + } } } }, @@ -28874,6 +31910,12 @@ "state": "translated", "value": "最新点%@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ostatni punkt %@" + } } } }, @@ -28938,6 +31980,12 @@ "state": "translated", "value": "纬度%1$.4f ,经度%2$.4f" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Szerokość geograficzna %1$.4f, długość geograficzna %2$.4f" + } } } }, @@ -29002,6 +32050,12 @@ "state": "translated", "value": "让iso.me自动在您的地图和郊游中显示iPhone照片。照片保留在您的照片库中。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Pozwól iso.me automatycznie pokazywać zdjęcia z iPhone’a na mapie i w podróżach. Zdjęcia pozostają w bibliotece Zdjęć." + } } } }, @@ -29066,6 +32120,12 @@ "state": "translated", "value": "将导出限制在特定的时间范围内。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ogranicz eksport do określonego okna czasowego." + } } } }, @@ -29130,6 +32190,12 @@ "state": "translated", "value": "有限的" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ograniczony" + } } } }, @@ -29194,6 +32260,12 @@ "state": "translated", "value": "已启用有限照片访问,因此只能显示选定的照片。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Włączono ograniczony dostęp do Zdjęć, więc mogą pojawić się tylko wybrane zdjęcia." + } } } }, @@ -29258,6 +32330,12 @@ "state": "translated", "value": "居住" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "NA ŻYWO" + } } } }, @@ -29322,6 +32400,12 @@ "state": "translated", "value": "Live Activity监视器" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "AKTYWNOŚĆ NA ŻYWO" + } } } }, @@ -29386,6 +32470,12 @@ "state": "translated", "value": "正在加载附近的商家" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ładowanie pobliskich firm" + } } } }, @@ -29450,6 +32540,12 @@ "state": "translated", "value": "正在加载照片..." } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ładowanie zdjęcia…" + } } } }, @@ -29514,6 +32610,12 @@ "state": "translated", "value": "加载中..." } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wczytywanie..." + } } } }, @@ -29578,6 +32680,12 @@ "state": "translated", "value": "地点" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Lokalizacja" + } } } }, @@ -29642,6 +32750,12 @@ "state": "translated", "value": "位置访问" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dostęp do lokalizacji" + } } } }, @@ -29706,6 +32820,12 @@ "state": "translated", "value": "位置访问被拒绝" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Odmowa dostępu do lokalizacji" + } } } }, @@ -29770,6 +32890,12 @@ "state": "translated", "value": "位置访问已关闭" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "DOSTĘP DO LOKALIZACJI JEST WYŁĄCZONY" + } } } }, @@ -29834,6 +32960,12 @@ "state": "translated", "value": "位置数据将被发布到配置的端点。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dane o lokalizacji zostaną wysłane do skonfigurowanego punktu końcowego." + } } } }, @@ -29898,6 +33030,12 @@ "state": "translated", "value": "位置图" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Mapa lokalizacji" + } } } }, @@ -29962,6 +33100,12 @@ "state": "translated", "value": "地点名称" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "NAZWA LOKALIZACJI" + } } } }, @@ -30026,6 +33170,12 @@ "state": "translated", "value": "地点名称" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "NAZWY LOKALIZACJI" + } } } }, @@ -30090,6 +33240,12 @@ "state": "translated", "value": "位置许可" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Pozwolenie na lokalizację" + } } } }, @@ -30155,6 +33311,12 @@ "state": "translated", "value": "地点选择图" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Mapa wyboru lokalizacji" + } } } }, @@ -30219,6 +33381,12 @@ "state": "translated", "value": "位置追踪" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "ŚLEDZENIE LOKALIZACJI" + } } } }, @@ -30283,6 +33451,12 @@ "state": "translated", "value": "日志" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "DZIENNIKI" + } } } }, @@ -30347,6 +33521,12 @@ "state": "translated", "value": "最长" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Najdłuższy" + } } } }, @@ -30411,6 +33591,12 @@ "state": "translated", "value": "最长距离优先" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Najpierw najdłuższy dystans" + } } } }, @@ -30475,6 +33661,12 @@ "state": "translated", "value": "持续时间最长的优先" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Najpierw najdłuższy czas trwania" + } } } }, @@ -30539,6 +33731,12 @@ "state": "translated", "value": "寻找这次访问附近的地方…" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Szukam miejsc w pobliżu tej wizyty…" + } } } }, @@ -30603,6 +33801,12 @@ "state": "translated", "value": "手动的" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ręcznie" + } } } }, @@ -30667,6 +33871,12 @@ "state": "translated", "value": "手动的" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "RĘCZNIE" + } } } }, @@ -30731,6 +33941,12 @@ "state": "translated", "value": "手动访问需要保存的位置或最近 5 分钟的当前位置,精度在 100 米以下。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wizyty ręczne wymagają zapisanej lokalizacji lub aktualnej lokalizacji z ostatnich 5 minut z dokładnością poniżej 100 metrów." + } } } }, @@ -30795,6 +34011,12 @@ "state": "translated", "value": "地图" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Mapa" + } } } }, @@ -30859,6 +34081,12 @@ "state": "translated", "value": "地图显示" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WYŚWIETLANIE MAPY" + } } } }, @@ -30923,6 +34151,12 @@ "state": "translated", "value": "地图波兰语" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ulepszenia mapy" + } } } }, @@ -30987,6 +34221,12 @@ "state": "translated", "value": "Markdown" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Markdown" + } } } }, @@ -31051,6 +34291,12 @@ "state": "translated", "value": "MARKDOWN" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "MARKDOWN" + } } } }, @@ -31115,6 +34361,12 @@ "state": "translated", "value": "Markdown将此活动导出为包含YAML标题、访问和路由点的页面。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Markdown eksportuje tę podróż jako stronę z nagłówkiem YAML, wizytami i punktami trasy." + } } } }, @@ -31179,6 +34431,12 @@ "state": "translated", "value": "Markdown外出导出包括YAML标题、注释、访问和路由点,以便它们干净地放入日志或 PKM 系统中。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Eksport podróży w Markdown zawiera nagłówek YAML, notatki, wizyty i punkty trasy, dzięki czemu łatwo dodać go do dziennika lub systemu zarządzania wiedzą." + } } } }, @@ -31243,6 +34501,12 @@ "state": "translated", "value": "日志的Markdown页面" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Strony Markdown dla Twojego dziennika" + } } } }, @@ -31307,6 +34571,12 @@ "state": "translated", "value": "Markdown访问表缺少必需的列" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "W tabeli wizyt Markdown brakuje wymaganych kolumn" + } } } }, @@ -31371,6 +34641,12 @@ "state": "translated", "value": "标记为异常值" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Oznaczono jako wartość odstającą" + } } } }, @@ -31435,6 +34711,12 @@ "state": "translated", "value": "标记当前日期范围内的第一个和最新记录点,以便您可以查看路线的起点和终点。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zaznacza pierwszy i ostatni zarejestrowany punkt w bieżącym zakresie dat, dzięki czemu można zobaczyć, gdzie zaczyna się i kończy trasa." + } } } }, @@ -31499,6 +34781,12 @@ "state": "translated", "value": "将此访问标记为已审核且正确。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Oznacza tę wizytę jako sprawdzoną i prawidłową." + } } } }, @@ -31563,6 +34851,12 @@ "state": "translated", "value": "匹配半径" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Promień dopasowania" + } } } }, @@ -31627,6 +34921,12 @@ "state": "translated", "value": "将路径与道路相匹配..." } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "DOPASOWYWANIE ŚCIEŻKI DO DRÓG…" + } } } }, @@ -31691,6 +34991,12 @@ "state": "translated", "value": "公制" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "METRYCZNY" + } } } }, @@ -31755,6 +35061,12 @@ "state": "translated", "value": "最短持续时间" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "MINIMALNY CZAS TRWANIA" + } } } }, @@ -31819,6 +35131,12 @@ "state": "translated", "value": "最小 GPS 点" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "MIN. PUNKTY GPS" + } } } }, @@ -31883,6 +35201,12 @@ "state": "translated", "value": "缺少“点”数组" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Brak tablicy 'points'" + } } } }, @@ -31947,6 +35271,12 @@ "state": "translated", "value": "缺少“访问”数组" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Brak tablicy 'visits'" + } } } }, @@ -32011,6 +35341,12 @@ "state": "translated", "value": "缺少必填列" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Brak wymaganych kolumn" + } } } }, @@ -32075,6 +35411,12 @@ "state": "translated", "value": "模式" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "TRYB" + } } } }, @@ -32139,6 +35481,12 @@ "state": "translated", "value": "对熟悉的地方有更多的控制" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Większa kontrola nad znanymi miejscami" + } } } }, @@ -32203,6 +35551,12 @@ "state": "translated", "value": "更好地控制运动历史" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Większa kontrola nad historią przemieszczeń" + } } } }, @@ -32267,6 +35621,12 @@ "state": "translated", "value": "对外出出口加强控制" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Większa kontrola nad eksportem podróży" + } } } }, @@ -32331,6 +35691,12 @@ "state": "translated", "value": "更可靠的日常出口" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Bardziej niezawodny codzienny eksport" + } } } }, @@ -32395,6 +35761,12 @@ "state": "translated", "value": "更多详情" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Więcej szczegółów" + } } } }, @@ -32459,6 +35831,12 @@ "state": "translated", "value": "分数最高的优先" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Najpierw najwięcej punktów" + } } } }, @@ -32523,6 +35901,12 @@ "state": "translated", "value": "移动" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przemieszczenie" + } } } }, @@ -32587,6 +35971,12 @@ "state": "translated", "value": "移动" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "PRZEMIESZCZENIE" + } } } }, @@ -32651,6 +36041,12 @@ "state": "translated", "value": "移动已重命名为%@。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zmieniono nazwę przemieszczenia na %@." + } } } }, @@ -32715,6 +36111,12 @@ "state": "translated", "value": "移动, %@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przemieszczenie, %@" + } } } }, @@ -32779,6 +36181,12 @@ "state": "translated", "value": "移动" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przemieszczenia" + } } } }, @@ -32843,6 +36251,12 @@ "state": "translated", "value": "动作" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "PRZEMIESZCZENIA" + } } } }, @@ -32907,6 +36321,12 @@ "state": "translated", "value": "姓名" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nazwa" + } } } }, @@ -32971,6 +36391,12 @@ "state": "translated", "value": "姓名" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "NAZWA" + } } } }, @@ -33035,6 +36461,12 @@ "state": "translated", "value": "姓名访问速度更快" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Szybsze nadawanie nazw wizytom" + } } } }, @@ -33099,6 +36531,12 @@ "state": "translated", "value": "录制会话时,姓名和备注会保留在设备上。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nazwy i notatki pozostają na urządzeniu podczas sesji nagraniowej." + } } } }, @@ -33163,6 +36601,12 @@ "state": "translated", "value": "附近企业" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Miejsca w pobliżu" + } } } }, @@ -33227,6 +36671,12 @@ "state": "translated", "value": "需要扩展位置访问权限" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wymaga rozszerzonego dostępu do lokalizacji" + } } } }, @@ -33291,6 +36741,12 @@ "state": "translated", "value": "网络错误" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Błąd sieci" + } } } }, @@ -33355,6 +36811,12 @@ "state": "translated", "value": "绝不" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nigdy" + } } } }, @@ -33419,6 +36881,12 @@ "state": "translated", "value": "绝不" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "NIGDY" + } } } }, @@ -33483,6 +36951,12 @@ "state": "translated", "value": "新的Apple Watch应用" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nowa aplikacja Apple Watch" + } } } }, @@ -33547,6 +37021,12 @@ "state": "translated", "value": "新的昨天过滤器可以更轻松地查看或导出前一天的访问和跟踪。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nowe filtry „Wczoraj” ułatwiają przeglądanie lub eksportowanie wizyt i śladów z poprzedniego dnia." + } } } }, @@ -33611,6 +37091,12 @@ "state": "translated", "value": "最新" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Najnowszy" + } } } }, @@ -33675,6 +37161,12 @@ "state": "translated", "value": "最新的优先" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Najpierw najnowsze" + } } } }, @@ -33739,6 +37231,12 @@ "state": "translated", "value": "下一个" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dalej" + } } } }, @@ -33803,6 +37301,12 @@ "state": "translated", "value": "第二天" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Następny dzień" + } } } }, @@ -33867,6 +37371,12 @@ "state": "translated", "value": "下一张照片" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Następne zdjęcie" + } } } }, @@ -33931,6 +37441,12 @@ "state": "translated", "value": "没有活动会话路径点。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Brak aktywnych punktów ścieżki sesji." + } } } }, @@ -33995,6 +37511,12 @@ "state": "translated", "value": "不需要当前位置" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie jest wymagana aktualna lokalizacja" + } } } }, @@ -34059,6 +37581,12 @@ "state": "translated", "value": "没有导入数据。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Brak zaimportowanych danych." + } } } }, @@ -34123,6 +37651,12 @@ "state": "translated", "value": "没有数据可供预览" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Brak danych do podglądu" + } } } }, @@ -34187,6 +37721,12 @@ "state": "translated", "value": "未设置默认导出文件夹。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie ustawiono domyślnego folderu eksportu." + } } } }, @@ -34251,6 +37791,12 @@ "state": "translated", "value": "未提供出口目的地。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie podano miejsca docelowego eksportu." + } } } }, @@ -34315,6 +37861,12 @@ "state": "translated", "value": "未配置导出文件夹" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie skonfigurowano folderu eksportu" + } } } }, @@ -34379,6 +37931,12 @@ "state": "translated", "value": "尚未为这次郊游保存GPS点。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dla tej podróży nie zapisano jeszcze żadnych punktów GPS." + } } } }, @@ -34443,6 +38001,12 @@ "state": "translated", "value": "Markdown文件中找不到位置点" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "W pliku Markdown nie znaleziono punktów lokalizacji" + } } } }, @@ -34507,6 +38071,12 @@ "state": "translated", "value": "无日志条目" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "BRAK WPISÓW W DZIENNIKU" + } } } }, @@ -34571,6 +38141,12 @@ "state": "translated", "value": "没有匹配的照片" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "BRAK PASUJĄCYCH ZDJĘĆ" + } } } }, @@ -34635,6 +38211,12 @@ "state": "translated", "value": "没有最低限度" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Brak minimum" + } } } }, @@ -34699,6 +38281,12 @@ "state": "translated", "value": "没有附上模型容器" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Brak dołączonego pojemnika na model" + } } } }, @@ -34763,6 +38351,12 @@ "state": "translated", "value": "未找到移动。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie znaleziono przemieszczeń." + } } } }, @@ -34827,6 +38421,12 @@ "state": "translated", "value": "没有找到附近的企业。请重试,或手动编辑访问名称。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie znaleziono żadnych firm w pobliżu. Spróbuj ponownie lub zmień nazwę wizyty ręcznie." + } } } }, @@ -34891,6 +38491,12 @@ "state": "translated", "value": "附近没有与“ %@ ”匹配的企业。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Żadna pobliska firma nie pasuje do „%@”." + } } } }, @@ -34955,6 +38561,12 @@ "state": "translated", "value": "没有路径点。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Brak punktów ścieżki." + } } } }, @@ -35019,6 +38631,12 @@ "state": "translated", "value": "此次郊游期间未找到带有GPS数据或附近iso.me路线/访问匹配的照片。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie znaleziono zdjęć z tej podróży z danymi GPS ani zdjęć pasujących do pobliskich punktów trasy lub wizyt w iso.me." + } } } }, @@ -35083,6 +38701,12 @@ "state": "translated", "value": "未找到之前购买过的商品" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie znaleziono żadnego poprzedniego zakupu" + } } } }, @@ -35147,6 +38771,12 @@ "state": "translated", "value": "没有时间轴事件" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "BRAK WYDARZEŃ NA OSI CZASU" + } } } }, @@ -35211,6 +38841,12 @@ "state": "translated", "value": "Markdown文件中未发现访问" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "W pliku Markdown nie znaleziono żadnych wizyt" + } } } }, @@ -35275,6 +38911,12 @@ "state": "translated", "value": "未找到访问。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie znaleziono żadnych wizyt." + } } } }, @@ -35339,6 +38981,12 @@ "state": "translated", "value": "未找到%@访问或移动会话。选择另一天或启用旧GPS历史记录的推断运动。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie znaleziono wizyt ani przemieszczeń dla %@. Wybierz inny dzień lub włącz szacowanie przemieszczeń dla starszej historii GPS." + } } } }, @@ -35403,6 +39051,12 @@ "state": "translated", "value": "本次郊游期间未发现有人来访。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Podczas tej podróży nie wykryto żadnych wizyt." + } } } }, @@ -35467,6 +39121,12 @@ "state": "translated", "value": "今天还没有访问。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dzisiaj jeszcze żadnych wizyt." + } } } }, @@ -35531,6 +39191,12 @@ "state": "translated", "value": "没有任何" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Brak" + } } } }, @@ -35595,6 +39261,12 @@ "state": "translated", "value": "没有任何" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "BRAK" + } } } }, @@ -35659,6 +39331,12 @@ "state": "translated", "value": "未连接" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Brak połączenia" + } } } }, @@ -35723,6 +39401,12 @@ "state": "translated", "value": "不在这里" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie tutaj" + } } } }, @@ -35787,6 +39471,12 @@ "state": "translated", "value": "没有要求" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie żądano" + } } } }, @@ -35851,6 +39541,12 @@ "state": "translated", "value": "未选择" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie wybrano" + } } } }, @@ -35915,6 +39611,12 @@ "state": "translated", "value": "未设置" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nieustawione" + } } } }, @@ -35979,6 +39681,12 @@ "state": "translated", "value": "笔记" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Notatki" + } } } }, @@ -36043,6 +39751,12 @@ "state": "translated", "value": "笔记" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "NOTATKI" + } } } }, @@ -36107,6 +39821,12 @@ "state": "translated", "value": "没有可导出的内容" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "NIC DO EKSPORTU" + } } } }, @@ -36171,6 +39891,12 @@ "state": "translated", "value": "没有可预览的内容" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "NIC DO PODGLĄDU" + } } } }, @@ -36235,6 +39961,12 @@ "state": "translated", "value": "现在" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Teraz" + } } } }, @@ -36299,6 +40031,12 @@ "state": "translated", "value": "现在" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "TERAZ" + } } } }, @@ -36363,6 +40101,12 @@ "state": "translated", "value": "今天记录的 IsoMe 访问量。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Liczba wizyt zarejestrowanych dzisiaj przez IsoMe." + } } } }, @@ -36427,6 +40171,12 @@ "state": "translated", "value": "离开" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wyłączone" + } } } }, @@ -36491,6 +40241,12 @@ "state": "translated", "value": "OK" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "OK" + } } } }, @@ -36555,6 +40311,12 @@ "state": "translated", "value": "最古老的" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Najstarszy" + } } } }, @@ -36619,6 +40381,12 @@ "state": "translated", "value": "最老的在前" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Najpierw najstarszy" + } } } }, @@ -36683,6 +40451,12 @@ "state": "translated", "value": "仅限设备上" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "TYLKO NA URZĄDZENIU" + } } } }, @@ -36747,6 +40521,12 @@ "state": "translated", "value": "入职" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WPROWADZENIE" + } } } }, @@ -36811,6 +40591,12 @@ "state": "translated", "value": "每天一个文件" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "JEDEN PLIK DZIENNIE" + } } } }, @@ -36875,6 +40661,12 @@ "state": "translated", "value": "每次外出一个文件" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "JEDEN PLIK NA PODRÓŻ" + } } } }, @@ -36939,6 +40731,12 @@ "state": "translated", "value": "一次性付款,无需订阅" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Płatność jednorazowa, bez abonamentu" + } } } }, @@ -37003,6 +40801,12 @@ "state": "translated", "value": "仅完成的访问" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "TYLKO ZAKOŃCZONE WIZYTY" + } } } }, @@ -37067,6 +40871,12 @@ "state": "translated", "value": "仅包含每天这些时间之间捕获的数据。如果结束早于开始,则在午夜结束。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Uwzględniaj tylko dane zarejestrowane codziennie w tych godzinach. Jeśli koniec poprzedza początek, zakres obejmuje północ." + } } } }, @@ -37131,6 +40941,12 @@ "state": "translated", "value": "只能显示您为iso.me选择的照片。在iOS照片隐私设置中添加更多内容。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Mogą pojawić się tylko zdjęcia wybrane dla iso.me. Dodaj kolejne w ustawieniach prywatności Zdjęć w iOS." + } } } }, @@ -37195,6 +41011,12 @@ "state": "translated", "value": "打开郊游,观看路径回放,其中包含移动标记、滑块、经过时间、持续时间和距离统计数据。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Otwórz podróż, aby obejrzeć odtwarzanie ścieżki z ruchomym znacznikiem, suwakiem, czasem, czasem trwania i statystykami dystansu." + } } } }, @@ -37259,6 +41081,12 @@ "state": "translated", "value": "打开任何郊游并直接以JSON 、 CSV 、 Markdown 、 OwnTracks 、 Overland 、 GPX 、 KML或 GeoJSON 格式导出。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Otwórz dowolną podróż i wyeksportuj ją bezpośrednio do formatu JSON, CSV, Markdown, OwnTracks, Overland, GPX, KML lub GeoJSON." + } } } }, @@ -37323,6 +41151,12 @@ "state": "translated", "value": "打开任何记录或推断的外出并将其从详细信息屏幕中删除。它的GPS路线点将被删除,同一时间的访问会保留在您的历史记录中,并且删除实时郊游会首先停止跟踪。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Otwórz dowolną nagraną lub wywnioskowaną podróż i usuń ją z ekranu szczegółów. Punkty trasy GPS zostaną usunięte, wizyty z tego samego czasu pozostaną w Twojej historii, a usunięcie podróży na żywo najpierw zatrzymuje śledzenie." + } } } }, @@ -37387,6 +41221,12 @@ "state": "translated", "value": "在地图中打开" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Otwórz w Mapach" + } } } }, @@ -37451,6 +41291,12 @@ "state": "translated", "value": "打开iPhone设置" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Otwórz Ustawienia iPhone" + } } } }, @@ -37515,6 +41361,12 @@ "state": "translated", "value": "打开地图过滤器" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Otwórz filtry mapy" + } } } }, @@ -37579,6 +41431,12 @@ "state": "translated", "value": "开放路线回放" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Otwórz powtórkę trasy" + } } } }, @@ -37643,6 +41501,12 @@ "state": "translated", "value": "打开设置" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "OTWÓRZ USTAWIENIA" + } } } }, @@ -37707,6 +41571,12 @@ "state": "translated", "value": "在地图中开放参观" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Otwórz wizytę w Mapach" + } } } }, @@ -37771,6 +41641,12 @@ "state": "translated", "value": "打开在此地点拍摄的所有照片。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Otwiera wszystkie zdjęcia zrobione w tym miejscu." + } } } }, @@ -37835,6 +41711,12 @@ "state": "translated", "value": "打开手动地点条目。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Otwiera ręczne wprowadzanie miejsc." + } } } }, @@ -37899,6 +41781,12 @@ "state": "translated", "value": "打开运动详细信息。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Otwiera szczegóły przemieszczenia." + } } } }, @@ -37963,6 +41851,12 @@ "state": "translated", "value": "打开选项以保存您当前的位置或添加过去的访问。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Otwiera opcje zapisania bieżącego miejsca lub dodania przeszłej wizyty." + } } } }, @@ -38027,6 +41921,12 @@ "state": "translated", "value": "打开郊游详细信息。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Otwiera szczegóły podróży." + } } } }, @@ -38091,6 +41991,12 @@ "state": "translated", "value": "打开本次郊游的路线重播控件。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Otwiera elementy sterujące odtwarzaniem trasy dla tej podróży." + } } } }, @@ -38155,6 +42061,12 @@ "state": "translated", "value": "打开照片。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Otwiera zdjęcie." + } } } }, @@ -38219,6 +42131,12 @@ "state": "translated", "value": "在 Apple 地图中打开此位置。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Otwiera tę lokalizację w Apple Maps." + } } } }, @@ -38283,6 +42201,12 @@ "state": "translated", "value": "全屏打开这张照片。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Otwiera to zdjęcie na pełnym ekranie." + } } } }, @@ -38347,6 +42271,12 @@ "state": "translated", "value": "打开预先填写此地点的访问详细信息。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Otwiera szczegóły wizyty wstępnie wypełnione tym miejscem." + } } } }, @@ -38411,6 +42341,12 @@ "state": "translated", "value": "打开访问详细信息。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Otwiera szczegóły wizyty." + } } } }, @@ -38475,6 +42411,12 @@ "state": "translated", "value": "选修的" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Opcjonalnie" + } } } }, @@ -38539,6 +42481,12 @@ "state": "translated", "value": "最初检测为%@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Pierwotnie wykryty jako %@" + } } } }, @@ -38603,6 +42551,12 @@ "state": "translated", "value": "郊游" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "PODRÓŻ" + } } } }, @@ -38667,6 +42621,12 @@ "state": "translated", "value": "郊游出口" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "EKSPORT PODRÓŻY" + } } } }, @@ -38731,6 +42691,12 @@ "state": "translated", "value": "外出导出现在可以更准确地规划文件名,保留访问更正详细信息,并更可靠地呈现共享。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Eksport podróży lepiej dobiera nazwy plików, zachowuje szczegóły korekt wizyt i sprawniej otwiera udostępnianie." + } } } }, @@ -38795,6 +42761,12 @@ "state": "translated", "value": "郊游名称" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nazwa podróży" + } } } }, @@ -38859,6 +42831,12 @@ "state": "translated", "value": "郊游" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Podróże" + } } } }, @@ -38923,6 +42901,12 @@ "state": "translated", "value": "郊游" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "PODRÓŻE" + } } } }, @@ -38987,6 +42971,12 @@ "state": "translated", "value": "每次旅行都有郊游" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Podróże na każdą podróż" + } } } }, @@ -39051,6 +43041,12 @@ "state": "translated", "value": "异常值标志" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "FLAGA ODSTAJĄCA" + } } } }, @@ -39115,6 +43111,12 @@ "state": "translated", "value": "离群路径点" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Odstający punkt ścieżki" + } } } }, @@ -39179,6 +43181,12 @@ "state": "translated", "value": "输出" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WYJŚCIE" + } } } }, @@ -39243,6 +43251,12 @@ "state": "translated", "value": "Overland" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Overland" + } } } }, @@ -39307,6 +43321,12 @@ "state": "translated", "value": "OVERLAND" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "OVERLAND" + } } } }, @@ -39371,6 +43391,12 @@ "state": "translated", "value": "覆盖当前正在运行的跟踪会话的路线,与历史日期范围路径分开。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nakłada trasę aktualnie uruchomionej sesji śledzenia, oddzielnie od historycznej ścieżki zakresu dat." + } } } }, @@ -39435,6 +43461,12 @@ "state": "translated", "value": "OwnTracks" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "OwnTracks" + } } } }, @@ -39499,6 +43531,12 @@ "state": "translated", "value": "OWNTRACKS" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "OWNTRACKS" + } } } }, @@ -39563,6 +43601,12 @@ "state": "translated", "value": "OwnTracks格式适用于 Dawarich (api/v1/owntracks/points)、 OwnTracks Recorder (/pub) 和 Traccar。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Format OwnTracks współpracuje z Dawarich (api/v1/owntracks/points), OwnTracks Recorder (/pub) i Traccar." + } } } }, @@ -39627,6 +43671,12 @@ "state": "translated", "value": "参数名称" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "NAZWA PARAMETRU" + } } } }, @@ -39691,6 +43741,12 @@ "state": "translated", "value": "解析失败: %@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Analiza nie powiodła się: %@" + } } } }, @@ -39755,6 +43811,12 @@ "state": "translated", "value": "密码" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "HASŁO" + } } } }, @@ -39820,6 +43882,12 @@ "state": "translated", "value": "过去的访问需要出发时间。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wcześniejsze wizyty wymagają godziny wyjścia." + } } } }, @@ -39884,6 +43952,12 @@ "state": "translated", "value": "过去的访问无需位置许可即可进行,并且永远不会回退到您当前的GPS位置。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Poprzednie wizyty działają bez pozwolenia na lokalizację i nigdy nie wracają do bieżącej pozycji GPS." + } } } }, @@ -39948,6 +44022,12 @@ "state": "translated", "value": "小路" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "ŚCIEŻKA" + } } } }, @@ -40012,6 +44092,12 @@ "state": "translated", "value": "路径尽头" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Koniec ścieżki" + } } } }, @@ -40076,6 +44162,12 @@ "state": "translated", "value": "路径点" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Punkt ścieżki" + } } } }, @@ -40140,6 +44232,12 @@ "state": "translated", "value": "路径起点" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Początek ścieżki" + } } } }, @@ -40204,6 +44302,12 @@ "state": "translated", "value": "路径可视化" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wizualizacja trasy" + } } } }, @@ -40268,6 +44372,12 @@ "state": "translated", "value": "暂停路线重播" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wstrzymaj odtwarzanie trasy" + } } } }, @@ -40332,6 +44442,12 @@ "state": "translated", "value": "完美——权限已完全配置。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Idealnie — uprawnienia są w pełni skonfigurowane." + } } } }, @@ -40396,6 +44512,12 @@ "state": "translated", "value": "允许" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "POZWOLENIE" + } } } }, @@ -40460,6 +44582,12 @@ "state": "translated", "value": "权限设置" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "KONFIGURACJA UPRAWNIEŃ" + } } } }, @@ -40524,6 +44652,12 @@ "state": "translated", "value": "照片" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zdjęcie" + } } } }, @@ -40588,6 +44722,12 @@ "state": "translated", "value": "照片" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "ZDJĘCIE" + } } } }, @@ -40652,6 +44792,12 @@ "state": "translated", "value": "照片访问已关闭。在“设置”中启用它以在地图上显示照片图钉。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dostęp do zdjęć jest wyłączony. Włącz tę opcję w Ustawieniach, aby wyświetlać pinezki ze zdjęciami na mapie." + } } } }, @@ -40716,6 +44862,12 @@ "state": "translated", "value": "此设备上的照片访问受到限制。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dostęp do zdjęć jest ograniczony na tym urządzeniu." + } } } }, @@ -40780,6 +44932,12 @@ "state": "translated", "value": "照片GPS" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "GPS zdjęcia" + } } } }, @@ -40844,6 +45002,12 @@ "state": "translated", "value": "照片图像" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Obrazy fotograficzne" + } } } }, @@ -40908,6 +45072,12 @@ "state": "translated", "value": "照片标记" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Znaczniki zdjęć" + } } } }, @@ -40972,6 +45142,12 @@ "state": "translated", "value": "照片拍摄于%@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zdjęcie zrobione w %@" + } } } }, @@ -41036,6 +45212,12 @@ "state": "translated", "value": "照片" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zdjęcia" + } } } }, @@ -41100,6 +45282,12 @@ "state": "translated", "value": "照片" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "ZDJĘCIA" + } } } }, @@ -41164,6 +45352,12 @@ "state": "translated", "value": "照片访问" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dostęp do zdjęć" + } } } }, @@ -41228,6 +45422,12 @@ "state": "translated", "value": "照片访问已关闭。您可以稍后在iPhone设置中启用它。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dostęp do zdjęć jest wyłączony. Możesz włączyć tę opcję później w Ustawieniach iPhone." + } } } }, @@ -41292,6 +45492,12 @@ "state": "translated", "value": "照片按时间戳进行匹配。 iso.me在可用时使用照片GPS ,否则使用最近的路线点或访问。照片文件保留在“照片”中。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zdjęcia są dopasowywane według sygnatury czasowej. iso.me korzysta ze zdjęć GPS jeśli jest dostępny, w przeciwnym razie najbliższy punkt trasy lub wizyta. Pliki zdjęć pozostają w Zdjęciach." + } } } }, @@ -41356,6 +45562,12 @@ "state": "translated", "value": "照片在此设备上不可用。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zdjęcia są niedostępne na tym urządzeniu." + } } } }, @@ -41420,6 +45632,12 @@ "state": "translated", "value": "您图库中的照片可以使用照片GPS或附近的iso.me路线/访问匹配项显示在地图上。照片文件保留在“照片”中。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zdjęcia z Twojej biblioteki mogą pojawiać się na mapie za pomocą GPS do zdjęć lub pobliskich dopasowań tras/wizyt iso.me Pliki zdjęć pozostają w Zdjęciach." + } } } }, @@ -41484,6 +45702,12 @@ "state": "translated", "value": "照片在这里" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zdjęcia tutaj" + } } } }, @@ -41548,6 +45772,12 @@ "state": "translated", "value": "照片在这里" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "ZDJĘCIA TUTAJ" + } } } }, @@ -41612,6 +45842,12 @@ "state": "translated", "value": "选择正确的地方" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wybierz właściwe miejsce" + } } } }, @@ -41677,6 +45913,12 @@ "state": "translated", "value": "固定位置" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przypięta lokalizacja" + } } } }, @@ -41741,6 +45983,12 @@ "state": "translated", "value": "地方" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Miejsce" + } } } }, @@ -41805,6 +46053,12 @@ "state": "translated", "value": "地名" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nazwa miejsca" + } } } }, @@ -41869,6 +46123,12 @@ "state": "translated", "value": "同一区域周围的地点提示保持关闭状态,并且在过滤器打开时,添加地点控件会退出。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Odrzucone sugestie miejsc nie pojawiają się ponownie w tej samej okolicy, a przyciski dodawania miejsc są ukrywane, gdy filtry są otwarte." + } } } }, @@ -41933,6 +46193,12 @@ "state": "translated", "value": "郊游游玩" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "ODTWÓRZ PODRÓŻ" + } } } }, @@ -41997,6 +46263,12 @@ "state": "translated", "value": "播放路线回放" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Odtwórz trasę" + } } } }, @@ -42061,6 +46333,12 @@ "state": "translated", "value": "观点" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "PUNKT" + } } } }, @@ -42125,6 +46403,12 @@ "state": "translated", "value": "%1$lld的点%2$lld 。时间%3$@ 。已过去%4$@ (共%5$@ 。 %6$@的距离%7$@ 。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Punkt %1$lld z %2$lld. Czas %3$@. Upłynęło %4$@ z %5$@. Dystans %6$@ z %7$@." + } } } }, @@ -42189,6 +46473,12 @@ "state": "translated", "value": "索引%lld处的点缺少纬度/经度" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Punkt o indeksie %lld nie ma szerokości lub długości geograficznej" + } } } }, @@ -42253,6 +46543,12 @@ "state": "translated", "value": "指向索引%lld点缺少时间戳" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Punkt o indeksie %lld nie ma znacznika czasu" + } } } }, @@ -42317,6 +46613,12 @@ "state": "translated", "value": "点场" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "POLA PUNKTÓW" + } } } }, @@ -42381,6 +46683,12 @@ "state": "translated", "value": "点标记" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Znaczniki punktów" + } } } }, @@ -42445,6 +46753,12 @@ "state": "translated", "value": "积分" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Punkty" + } } } }, @@ -42509,6 +46823,12 @@ "state": "translated", "value": "积分" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "PUNKTY" + } } } }, @@ -42573,6 +46893,12 @@ "state": "translated", "value": "点每 N 分钟排队并刷新一次。如果应用程序终止,未发送的积分将会丢失。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Punkty trafiają do kolejki i są wysyłane co N minut. Niewysłane punkty zostaną utracone, jeśli aplikacja zostanie zamknięta." + } } } }, @@ -42637,6 +46963,12 @@ "state": "translated", "value": "点在内存中排队并在达到计数时发送。如果应用程序终止,未发送的积分将会丢失。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Punkty są umieszczane w kolejce w pamięci i wysyłane po osiągnięciu wymaganej liczby punktów. Niewysłane punkty zostaną utracone w przypadku zamknięcia aplikacji." + } } } }, @@ -42701,6 +47033,12 @@ "state": "translated", "value": "将所有数据类型(访问量、积分或两者)实时或批量发布到外部API或自托管服务器。支持OwnTracks 、 Overland 、 Dawarich 和通用JSON端点。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wysyłaj wszystkie typy danych (wizyty, punkty lub oba) metodą POST do zewnętrznego API lub własnego serwera, na bieżąco lub partiami. Obsługuje OwnTracks, Overland, Dawarich i standardowe endpointy JSON." + } } } }, @@ -42765,6 +47103,12 @@ "state": "translated", "value": "预览" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "PODGLĄD" + } } } }, @@ -42829,6 +47173,36 @@ "state": "translated", "value": "预览%lld文件" } + }, + "pl": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "PODGLĄD %lld PLIKU" + } + }, + "few": { + "stringUnit": { + "state": "translated", + "value": "PODGLĄD %lld PLIKÓW" + } + }, + "many": { + "stringUnit": { + "state": "translated", + "value": "PODGLĄD %lld PLIKÓW" + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "PODGLĄD %lld PLIKU" + } + } + } + } } } }, @@ -42893,6 +47267,12 @@ "state": "translated", "value": "预览 1 个文件" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "PODGLĄD 1 PLIKU" + } } } }, @@ -42957,6 +47337,12 @@ "state": "translated", "value": "导出前预览" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Podgląd przed eksportem" + } } } }, @@ -43021,6 +47407,12 @@ "state": "translated", "value": "预览导出" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Podgląd eksportu" + } } } }, @@ -43085,6 +47477,12 @@ "state": "translated", "value": "预览失败" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Podgląd nie powiódł się" + } } } }, @@ -43149,6 +47547,12 @@ "state": "translated", "value": "预览是免费的。通过一次性购买解锁出口。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Podgląd jest bezpłatny. Odblokuj eksport za pomocą jednorazowego zakupu." + } } } }, @@ -43213,6 +47617,12 @@ "state": "translated", "value": "正在预览%1$lld包含数据的最新文件%2$@ 。导出将处理每个选定的文件。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Podgląd ostatnich plików z danymi: %1$lld%2$@. Eksport obejmie każdy wybrany plik." + } } } }, @@ -43277,6 +47687,12 @@ "state": "translated", "value": "检测到先前的崩溃" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wykryto poprzednią awarię" + } } } }, @@ -43341,6 +47757,12 @@ "state": "translated", "value": "前一天" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Poprzedni dzień" + } } } }, @@ -43405,6 +47827,12 @@ "state": "translated", "value": "上一张照片" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Poprzednie zdjęcie" + } } } }, @@ -43469,6 +47897,12 @@ "state": "translated", "value": "隐私" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Prywatność" + } } } }, @@ -43533,6 +47967,12 @@ "state": "translated", "value": "隐私政策" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "POLITYKA PRYWATNOŚCI" + } } } }, @@ -43597,6 +48037,12 @@ "state": "translated", "value": "产品不可用" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Produkt niedostępny" + } } } }, @@ -43661,6 +48107,12 @@ "state": "translated", "value": "购买失败: %@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zakup nie powiódł się: %@" + } } } }, @@ -43725,6 +48177,12 @@ "state": "translated", "value": "购买正在等待批准" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zakup oczekuje na zatwierdzenie" + } } } }, @@ -43789,6 +48247,12 @@ "state": "translated", "value": "已购买" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "KUPIONY" + } } } }, @@ -43853,6 +48317,12 @@ "state": "translated", "value": "排队" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "W KOLEJCE" + } } } }, @@ -43917,6 +48387,12 @@ "state": "translated", "value": "快速选择" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Szybki wybór" + } } } }, @@ -43981,6 +48457,12 @@ "state": "translated", "value": "快速聚焦昨天" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Szybko skup się na wczoraj" + } } } }, @@ -44045,6 +48527,12 @@ "state": "translated", "value": "可读" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "CZYTELNY" + } } } }, @@ -44109,6 +48597,12 @@ "state": "translated", "value": "准备好" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Gotowe" + } } } }, @@ -44173,6 +48667,12 @@ "state": "translated", "value": "为始终在线的访问检测做好准备" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Gotowy do ciągłego wykrywania wizyt" + } } } }, @@ -44237,6 +48737,12 @@ "state": "translated", "value": "即时的" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "W CZASIE RZECZYWISTYM" + } } } }, @@ -44301,6 +48807,12 @@ "state": "translated", "value": "录制的会话现在位于专用的“外出”选项卡中,其中包含总计、实时/当前状态、推断徽章以及对每条路线的快速访问。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zarejestrowane sesje są teraz dostępne na osobnej karcie Podróże, z podsumowaniami, bieżącym stanem, oznaczeniami oszacowanych podróży i szybkim dostępem do każdej trasy." + } } } }, @@ -44365,6 +48877,12 @@ "state": "translated", "value": "刷新" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "ODŚWIEŻ" + } } } }, @@ -44429,6 +48947,12 @@ "state": "translated", "value": "刷新照片" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "ODŚWIEŻ ZDJĘCIA" + } } } }, @@ -44493,6 +49017,12 @@ "state": "translated", "value": "消除" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Usuń" + } } } }, @@ -44557,6 +49087,12 @@ "state": "translated", "value": "删除默认文件夹?" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Usunąć folder domyślny?" + } } } }, @@ -44621,6 +49157,12 @@ "state": "translated", "value": "删除文件夹" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "USUŃ FOLDER" + } } } }, @@ -44685,6 +49227,12 @@ "state": "translated", "value": "重命名当前郊游" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zmień nazwę bieżącej podróży" + } } } }, @@ -44749,6 +49297,12 @@ "state": "translated", "value": "重命名移动" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zmień nazwę przemieszczenia" + } } } }, @@ -44813,6 +49367,12 @@ "state": "translated", "value": "重命名郊游" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zmień nazwę podróży" + } } } }, @@ -44877,6 +49437,12 @@ "state": "translated", "value": "从Shortcuts重命名郊游" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zmieniaj nazwy podróży w Skrótach" + } } } }, @@ -44941,6 +49507,12 @@ "state": "translated", "value": "从附近的商家建议中重命名停靠点、过滤列表,并在需要时重置回检测到的位置。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zmień nazwy przystanków na podstawie sugestii biznesowych w pobliżu, przefiltruj listę i zresetuj do wykrytej lokalizacji, kiedy tylko zajdzie taka potrzeba." + } } } }, @@ -45005,6 +49577,12 @@ "state": "translated", "value": "重命名访问" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zmień nazwę wizyty" + } } } }, @@ -45069,6 +49647,12 @@ "state": "translated", "value": "重播控件已打开" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Elementy sterujące odtwarzaniem są otwarte" + } } } }, @@ -45133,6 +49717,12 @@ "state": "translated", "value": "重播入职流程" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "ODTWÓRZ PONOWNIE WPROWADZENIE" + } } } }, @@ -45197,6 +49787,12 @@ "state": "translated", "value": "重播您的路线" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Odtwórz ponownie swoją trasę" + } } } }, @@ -45261,6 +49857,12 @@ "state": "translated", "value": "请求位置" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Poproś o lokalizację" + } } } }, @@ -45325,6 +49927,12 @@ "state": "translated", "value": "请求新的当前位置。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Żąda nowej, aktualnej lokalizacji." + } } } }, @@ -45389,6 +49997,12 @@ "state": "translated", "value": "重置" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przywróć" + } } } }, @@ -45453,6 +50067,12 @@ "state": "translated", "value": "恢复失败: %@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przywracanie nie powiodło się: %@" + } } } }, @@ -45517,6 +50137,12 @@ "state": "translated", "value": "恢复购买" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przywróć zakup" + } } } }, @@ -45581,6 +50207,12 @@ "state": "translated", "value": "恢复购买" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "PRZYWRÓĆ ZAKUP" + } } } }, @@ -45645,6 +50277,12 @@ "state": "translated", "value": "恢复自动检测到的访问名称。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przywraca automatycznie wykrytą nazwę wizyty." + } } } }, @@ -45709,6 +50347,12 @@ "state": "translated", "value": "恢复最初检测到的访问位置。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przywraca pierwotnie wykrytą lokalizację wizyty." + } } } }, @@ -45773,6 +50417,12 @@ "state": "translated", "value": "受限制的" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ograniczony" + } } } }, @@ -45837,6 +50487,12 @@ "state": "translated", "value": "重复利用" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Użyj ponownie" + } } } }, @@ -45901,6 +50557,12 @@ "state": "translated", "value": "重复使用保存的位置" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wykorzystuj ponownie zapisane lokalizacje" + } } } }, @@ -45965,6 +50627,12 @@ "state": "translated", "value": "在道路匹配没有可靠路线的地方显示后备直线路段。当您想要检查原始间隙时很有用。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ujawnia zastępcze proste odcinki wszędzie tam, gdzie dopasowanie drogi nie ma pewnej trasy. Przydatne, gdy chcesz sprawdzić surowe luki." + } } } }, @@ -46029,6 +50697,12 @@ "state": "translated", "value": "每天一起查看访问和运动会话,并快速控制今天、昨天和您选择的任何日期。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przeglądaj wizyty i przemieszczenia razem w podziale na dni. Szybko wybieraj dzisiaj, wczoraj lub dowolną datę." + } } } }, @@ -46093,6 +50767,12 @@ "state": "translated", "value": "道路匹配路径" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Trasa dopasowana do dróg" + } } } }, @@ -46157,6 +50837,12 @@ "state": "translated", "value": "路线重播" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "ODTWARZANIE TRASY" + } } } }, @@ -46221,6 +50907,12 @@ "state": "translated", "value": "路线重放位置" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Pozycja odtwarzania trasy" + } } } }, @@ -46285,6 +50977,12 @@ "state": "translated", "value": "路线回放进度" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Postęp odtwarzania trasy" + } } } }, @@ -46349,6 +51047,12 @@ "state": "translated", "value": "路线重播。 %@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Odtworzenie trasy. %@" + } } } }, @@ -46413,6 +51117,12 @@ "state": "translated", "value": "带有起点和终点标记以及可选细节点的路线。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Trasy ze znacznikami początkowymi i końcowymi oraz opcjonalnymi punktami szczegółowymi." + } } } }, @@ -46477,6 +51187,12 @@ "state": "translated", "value": "路线适用于各种格式" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Trasy działają w każdym formacie" + } } } }, @@ -46541,6 +51257,12 @@ "state": "translated", "value": "%1$lld行:预期有%2$lld列,找到了%3$lld" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wiersz %1$lld: oczekiwano %2$lld kolumn, znaleziono %3$lld" + } } } }, @@ -46605,6 +51327,12 @@ "state": "translated", "value": "第%lld :到达日期无效" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wiersz %lld: nieprawidłowa data przyjazdu" + } } } }, @@ -46669,6 +51397,12 @@ "state": "translated", "value": "第%lld行:纬度无效" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wiersz %lld: nieprawidłowa szerokość geograficzna" + } } } }, @@ -46733,6 +51467,12 @@ "state": "translated", "value": "第%lld行:无效经度" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wiersz %lld: nieprawidłowa długość geograficzna" + } } } }, @@ -46797,6 +51537,12 @@ "state": "translated", "value": "第%lld :时间戳无效" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wiersz %lld: nieprawidłowy znacznik czasu" + } } } }, @@ -46861,6 +51607,12 @@ "state": "translated", "value": "立即运行" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "URUCHOM TERAZ" + } } } }, @@ -46925,6 +51677,12 @@ "state": "translated", "value": "节省" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zapisz" + } } } }, @@ -46989,6 +51747,12 @@ "state": "translated", "value": "按本地日历日自动保存一个带日期的文件。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Automatycznie zapisuj jeden datowany plik na każdy lokalny dzień kalendarzowy." + } } } }, @@ -47053,6 +51817,12 @@ "state": "translated", "value": "保存并确认地点" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zapisz i potwierdź miejsca" + } } } }, @@ -47117,6 +51887,12 @@ "state": "translated", "value": "另存为可重复使用的位置" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zapisz jako lokalizację do ponownego wykorzystania" + } } } }, @@ -47181,6 +51957,12 @@ "state": "translated", "value": "保存当前地点" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zapisz bieżące miejsce" + } } } }, @@ -47245,6 +52027,12 @@ "state": "translated", "value": "保存位置" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zapisz miejsce" + } } } }, @@ -47309,6 +52097,12 @@ "state": "translated", "value": "保存位置" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zapisz miejsce" + } } } }, @@ -47373,6 +52167,12 @@ "state": "translated", "value": "保存一次家庭、工作或最喜欢的咖啡馆等地点,然后在未来几天添加访问时重复使用它们。附近的自动访问可以使用网络地理编码前保存的名称。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zapisz raz miejsca takie jak dom, praca czy ulubiona kawiarnia, a następnie wykorzystuj je ponownie podczas dodawania wizyt w kolejnych dniach. Automatyczne wizyty w pobliżu mogą wykorzystywać zapisaną nazwę przed geokodowaniem sieci." + } } } }, @@ -47437,6 +52237,12 @@ "state": "translated", "value": "保存可重复使用的位置" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zapisz lokalizacje, które można ponownie wykorzystać" + } } } }, @@ -47501,6 +52307,12 @@ "state": "translated", "value": "节省更改时间" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zapisz zmiany czasu" + } } } }, @@ -47565,6 +52377,36 @@ "state": "translated", "value": "已保存%lld文件" } + }, + "pl": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "Zapisano %lld plik" + } + }, + "few": { + "stringUnit": { + "state": "translated", + "value": "Zapisano %lld pliki" + } + }, + "many": { + "stringUnit": { + "state": "translated", + "value": "Zapisano %lld plików" + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "Zapisano %lld pliku" + } + } + } + } } } }, @@ -47629,6 +52471,36 @@ "state": "translated", "value": "已将%1$lld文件保存到%2$@" } + }, + "pl": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "Zapisano %1$lld plik w %2$@" + } + }, + "few": { + "stringUnit": { + "state": "translated", + "value": "Zapisano %1$lld pliki w %2$@" + } + }, + "many": { + "stringUnit": { + "state": "translated", + "value": "Zapisano %1$lld plików w %2$@" + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "Zapisano %1$lld pliku w %2$@" + } + } + } + } } } }, @@ -47693,6 +52565,12 @@ "state": "translated", "value": "保存的位置已准备好" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zapisana lokalizacja jest gotowa" + } } } }, @@ -47757,6 +52635,12 @@ "state": "translated", "value": "保存的地点" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zapisane lokalizacje" + } } } }, @@ -47821,6 +52705,12 @@ "state": "translated", "value": "已保存至%@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zapisano w %@" + } } } }, @@ -47885,6 +52775,12 @@ "state": "translated", "value": "计划导出现在使用iOS后台唤醒、服务器微移和点击重试后备通知来运行更接近您选择的时间。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zaplanowane eksporty korzystają teraz z wybudzania w tle iOS, podpowiedzi serwera i powiadomienia awaryjnego typu „dotknij, aby ponowić próbę”, aby działać bliżej wybranego czasu." + } } } }, @@ -47949,6 +52845,12 @@ "state": "translated", "value": "在Apple Maps中搜索地点或地址,在地图上确认,然后保存访问,而无需使用当前的GPS位置。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wyszukaj w Apple Maps miejsce lub adres, potwierdź je na mapie i zapisz wizytę bez korzystania z bieżącej lokalizacji GPS." + } } } }, @@ -48014,6 +52916,12 @@ "state": "translated", "value": "搜索Apple Maps或在地图上选择" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wyszukaj w Apple Maps lub wybierz na mapie" + } } } }, @@ -48079,6 +52987,12 @@ "state": "translated", "value": "搜索企业、地标或街道地址。您还可以导航并点击地图。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wyszukaj firmę, punkt orientacyjny lub adres ulicy. Możesz także nawigować i dotykać mapy." + } } } }, @@ -48144,6 +53058,12 @@ "state": "translated", "value": "搜索可访问的地点列表,或点击地图以移动选定的图钉。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wyszukaj dostępną listę miejsc lub dotknij mapy, aby przesunąć wybrany pinezkę." + } } } }, @@ -48209,6 +53129,12 @@ "state": "translated", "value": "搜索地点、在地图上选择它或选择已保存的位置。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wyszukaj miejsce, wybierz je na mapie lub wybierz zapisaną lokalizację." + } } } }, @@ -48273,6 +53199,12 @@ "state": "translated", "value": "搜索或放置图钉" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wyszukaj lub upuść pinezkę" + } } } }, @@ -48338,6 +53270,12 @@ "state": "translated", "value": "搜索地点或地址" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wyszukaj miejsca lub adresy" + } } } }, @@ -48403,6 +53341,12 @@ "state": "translated", "value": "搜索结果" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wyniki wyszukiwania" + } } } }, @@ -48468,6 +53412,12 @@ "state": "translated", "value": "无法搜索" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wyszukiwanie niedostępne" + } } } }, @@ -48533,6 +53483,12 @@ "state": "translated", "value": "正在搜索Apple Maps ..." } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przeszukiwanie Apple Maps …" + } } } }, @@ -48597,6 +53553,12 @@ "state": "translated", "value": "直接在手表上查看访问次数、距离、位置点、当前位置和剩余会话时间。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zobacz wizyty, dystans, punkty lokalizacji, bieżącą lokalizację i pozostały czas sesji bezpośrednio na zegarku." + } } } }, @@ -48661,6 +53623,12 @@ "state": "translated", "value": "选择至少包含两个路径点的日期范围。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wybierz zakres dat zawierający co najmniej dwa punkty ścieżki." + } } } }, @@ -48725,6 +53693,12 @@ "state": "translated", "value": "选择文件夹" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WYBIERZ FOLDER" + } } } }, @@ -48789,6 +53763,12 @@ "state": "translated", "value": "选择一种或多种格式。 OwnTracks和Overland仅提供GPS定位;其他选定的格式使用选定的数据类型。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wybierz jeden lub więcej formatów. OwnTracks i Overland zawierają tylko pozycje GPS; pozostałe formaty używają wybranego typu danych." + } } } }, @@ -48853,6 +53833,12 @@ "state": "translated", "value": "选择一种或多种格式。 OwnTracks和Overland郊游导出包含郊游路线的GPS修正;访问行和郊游笔记没有体现。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wybierz jeden lub więcej formatów. Eksporty podróży OwnTracks i Overland zawierają pozycje GPS z trasy, bez wizyt i notatek." + } } } }, @@ -48917,6 +53903,12 @@ "state": "translated", "value": "已选择" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wybrany" + } } } }, @@ -48981,6 +53973,12 @@ "state": "translated", "value": "选定的文件夹" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wybrany folder" + } } } }, @@ -49046,6 +54044,12 @@ "state": "translated", "value": "选定地点" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wybrana lokalizacja" + } } } }, @@ -49111,6 +54115,12 @@ "state": "translated", "value": "选定地点准备就绪" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wybrana lokalizacja gotowa" + } } } }, @@ -49176,6 +54186,12 @@ "state": "translated", "value": "选择此位置作为过去访问的位置。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wybiera tę lokalizację dla wcześniejszej wizyty." + } } } }, @@ -49240,6 +54256,12 @@ "state": "translated", "value": "发送反馈" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WYŚLIJ OPINIĘ" + } } } }, @@ -49304,6 +54326,12 @@ "state": "translated", "value": "将位置数据发送到外部API或自托管服务器。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wysyłaj dane lokalizacyjne do zewnętrznego API lub serwera samodzielnego." + } } } }, @@ -49368,6 +54396,12 @@ "state": "translated", "value": "发送模式" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "TRYB WYSYŁANIA" + } } } }, @@ -49432,6 +54466,12 @@ "state": "translated", "value": "服务器返回HTTP %lld" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Serwer zwrócił HTTP %lld" + } } } }, @@ -49496,6 +54536,12 @@ "state": "translated", "value": "会议详情" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Szczegóły sesji" + } } } }, @@ -49560,6 +54606,12 @@ "state": "translated", "value": "会话路径图" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Mapa ścieżki sesji" + } } } }, @@ -49624,6 +54676,12 @@ "state": "translated", "value": "会议总结" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Podsumowanie sesji" + } } } }, @@ -49688,6 +54746,12 @@ "state": "translated", "value": "设置默认文件夹以保存导出,无需共享表。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ustaw domyślny folder do zapisywania eksportów bez arkusza udostępniania." + } } } }, @@ -49752,6 +54816,12 @@ "state": "translated", "value": "设置到达和出发时间。保存后,地图会跳转到访问及其日期范围。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ustaw godziny przyjazdu i wyjazdu. Po zapisaniu mapa przeskakuje do wizyty i jej zakresu dat." + } } } }, @@ -49816,6 +54886,12 @@ "state": "translated", "value": "设置在 IsoMe 中记录的移动的名称。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ustaw nazwę przemieszczenia zarejestrowanego w IsoMe." + } } } }, @@ -49880,6 +54956,12 @@ "state": "translated", "value": "设置保存在 IsoMe 中的访问的名称。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ustaw nazwę wizyty zapisanej w IsoMe." + } } } }, @@ -49944,6 +55026,12 @@ "state": "translated", "value": "设置当前正在记录的 IsoMe 郊游的名称。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ustaw nazwę podróży aktualnie rejestrowanej przez IsoMe." + } } } }, @@ -50008,6 +55096,12 @@ "state": "translated", "value": "设置" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ustawienia" + } } } }, @@ -50072,6 +55166,12 @@ "state": "translated", "value": "设置" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "USTAWIENIA" + } } } }, @@ -50136,6 +55236,12 @@ "state": "translated", "value": "分享%@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "UDOSTĘPNIJ %@" + } } } }, @@ -50200,6 +55306,12 @@ "state": "translated", "value": "分享一次郊游" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Udostępnij jedną podróż" + } } } }, @@ -50264,6 +55376,12 @@ "state": "translated", "value": "分享表" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Arkusz udostępniania" + } } } }, @@ -50328,6 +55446,12 @@ "state": "translated", "value": "分享表" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Arkusz udostępniania" + } } } }, @@ -50392,6 +55516,12 @@ "state": "translated", "value": "共享表已打开" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Otwarto arkusz udostępniania" + } } } }, @@ -50456,6 +55586,12 @@ "state": "translated", "value": "在主地图上显示一次郊游,以关注确切的路线、起点和终点标记,并清理当前的访问状态。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Pokaż podróż na głównej mapie, aby skupić się na dokładnej trasie, znacznikach rozpoczęcia i zakończenia oraz uporządkowanym bieżącym stanie wizyty." + } } } }, @@ -50520,6 +55656,12 @@ "state": "translated", "value": "显示说明" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Pokaż wyjaśnienie" + } } } }, @@ -50584,6 +55726,12 @@ "state": "translated", "value": "显示 GPS 故障" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "POKAŻ USTERKI GPS" + } } } }, @@ -50648,6 +55796,12 @@ "state": "translated", "value": "在地图上显示" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "POKAŻ NA MAPIE" + } } } }, @@ -50712,6 +55866,12 @@ "state": "translated", "value": "在锁定屏幕和动态岛上显示跟踪进度。您的选择将被保存以供将来的跟踪会话使用。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wyświetlaj postęp śledzenia na ekranie blokady i w Dynamic Island. Twój wybór zostanie zapamiętany dla kolejnych sesji." + } } } }, @@ -50776,6 +55936,12 @@ "state": "translated", "value": "显示此%@文件的轻量级预览。完整导出仍将包含所有数据。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wyświetlam uproszczony podgląd tego pliku %@. Pełny eksport nadal będzie zawierał wszystkie dane." + } } } }, @@ -50840,6 +56006,12 @@ "state": "translated", "value": "如图所示" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Pokazano" + } } } }, @@ -50904,6 +56076,12 @@ "state": "translated", "value": "显示用于清理和重播可见路线的控件。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Pokazuje elementy sterujące umożliwiające przewijanie i odtwarzanie widocznej trasy." + } } } }, @@ -50968,6 +56146,12 @@ "state": "translated", "value": "显示日期、图层和适合控件。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Pokazuje elementy sterujące datą, warstwą i dopasowaniem." + } } } }, @@ -51032,6 +56216,12 @@ "state": "translated", "value": "显示用于将地图缩放至可用内容的选项。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Pokazuje opcje powiększania mapy do dostępnej zawartości." + } } } }, @@ -51096,6 +56286,12 @@ "state": "translated", "value": "显示所选日期范围内的照片库图片。 iso.me在可用时使用照片GPS ,否则使用最近的路线点或访问;照片文件保留在“照片”中。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Pokazuje zdjęcia z biblioteki Zdjęć dla wybranego zakresu dat. iso.me używa danych GPS zdjęcia, a jeśli ich brakuje — najbliższego punktu trasy lub wizyty. Pliki pozostają w Zdjęciach." + } } } }, @@ -51160,6 +56356,12 @@ "state": "translated", "value": "显示在所选日期范围内检测为停靠点iso.me地点。当您想要一个整洁的纯路线地图时,请将它们隐藏起来。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Pokazuje miejsca wykryte przez iso.me jako przystanki w wybranym zakresie dat. Ukryj je, jeśli chcesz mieć przejrzystą mapę zawierającą tylko trasy." + } } } }, @@ -51224,6 +56426,12 @@ "state": "translated", "value": "显示点元数据。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Pokazuje metadane punktu." + } } } }, @@ -51288,6 +56496,12 @@ "state": "translated", "value": "显示沿路径采样的GPS点。点击一个点即可检查其时间戳、坐标和准确性。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Pokazuje próbkowane punkty GPS wzdłuż ścieżki. Kliknij kropkę, aby sprawdzić jej sygnaturę czasową, współrzędne i dokładność." + } } } }, @@ -51352,6 +56566,12 @@ "state": "translated", "value": "显示结束时间。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Pokazuje czas zakończenia." + } } } }, @@ -51416,6 +56636,12 @@ "state": "translated", "value": "显示将导出的文件和内容" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Pokazuje pliki i zawartość, które zostaną wyeksportowane" + } } } }, @@ -51480,6 +56706,12 @@ "state": "translated", "value": "显示开始时间。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Pokazuje godzinę rozpoczęcia." + } } } }, @@ -51544,6 +56776,12 @@ "state": "translated", "value": "在照片标记内显示缩略图预览。关闭此功能可使用紧凑型相机图钉,同时保持照片在地图上可用。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Pokazuje miniatury wewnątrz znaczników zdjęć. Wyłącz tę opcję, aby używać małych pinezek z ikoną aparatu i zachować dostęp do zdjęć na mapie." + } } } }, @@ -51608,6 +56846,12 @@ "state": "translated", "value": "出口更加顺畅" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Płynniejszy eksport" + } } } }, @@ -51672,6 +56916,12 @@ "state": "translated", "value": "对郊游进行排序和过滤" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Sortuj i filtruj podróże" + } } } }, @@ -51736,6 +56986,12 @@ "state": "translated", "value": "对您的外出历史进行排序,并显示或隐藏推断的历史外出,以便时间线符合您想要回顾旅行的方式。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Sortuj historię podróży i pokazuj lub ukrywaj oszacowane podróże z przeszłości, aby dopasować oś czasu do swoich potrzeb." + } } } }, @@ -51800,6 +57056,12 @@ "state": "translated", "value": "来源" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "ŹRÓDŁO" + } } } }, @@ -51864,6 +57126,12 @@ "state": "translated", "value": "速度" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "PRĘDKOŚĆ" + } } } }, @@ -51928,6 +57196,12 @@ "state": "translated", "value": "速度%.1f米每秒" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Prędkość %.1f metrów na sekundę" + } } } }, @@ -51992,6 +57266,12 @@ "state": "translated", "value": "分割后" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "PODZIEL PO" + } } } }, @@ -52056,6 +57336,12 @@ "state": "translated", "value": "支持" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "GOTOWOŚĆ" + } } } }, @@ -52120,6 +57406,12 @@ "state": "translated", "value": "开始" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "START" + } } } }, @@ -52184,6 +57476,12 @@ "state": "translated", "value": "开始和结束标记" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Znaczniki początkowe i końcowe" + } } } }, @@ -52248,6 +57546,12 @@ "state": "translated", "value": "开始日期" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Data rozpoczęcia" + } } } }, @@ -52312,6 +57616,12 @@ "state": "translated", "value": "从手腕开始位置跟踪,观看实时计时器,并查看今天的访问、距离、点数和当前位置。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Rozpocznij śledzenie lokalizacji na nadgarstku, oglądaj stoper na żywo i przeglądaj dzisiejsze wizyty, dystans, punkty i bieżącą lokalizację." + } } } }, @@ -52376,6 +57686,12 @@ "state": "translated", "value": "立即开始,或稍后在“设置”中微调跟踪行为。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zacznij teraz lub dostosuj zachowanie śledzenia później w Ustawieniach." + } } } }, @@ -52440,74 +57756,16 @@ "state": "translated", "value": "无需打开 iPhone,即可直接在Apple Watch上启动或停止iso.me跟踪。" } - } - } - }, - "Start tracking": { - "localizations": { - "ar": { - "stringUnit": { - "state": "translated", - "value": "ابدأ التتبع" - } - }, - "bn": { - "stringUnit": { - "state": "translated", - "value": "ট্র্যাকিং শুরু করুন" - } - }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Start tracking" - } - }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Iniciar seguimiento" - } - }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Commencer le suivi" - } - }, - "hi": { - "stringUnit": { - "state": "translated", - "value": "ट्रैकिंग प्रारंभ करें" - } - }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "追跡を開始する" - } - }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Comece a rastrear" - } - }, - "ru": { - "stringUnit": { - "state": "translated", - "value": "Начать отслеживание" - } }, - "zh-Hans": { + "pl": { "stringUnit": { "state": "translated", - "value": "开始追踪" + "value": "Rozpocznij lub zatrzymaj śledzenie iso.me bezpośrednio na Apple Watch bez otwierania iPhone'a." } } } }, - "Start Tracking": { + "Start tracking": { "localizations": { "ar": { "stringUnit": { @@ -52524,7 +57782,7 @@ "en": { "stringUnit": { "state": "translated", - "value": "Start Tracking" + "value": "Start tracking" } }, "es": { @@ -52568,6 +57826,82 @@ "state": "translated", "value": "开始追踪" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Rozpocznij śledzenie" + } + } + } + }, + "Start Tracking": { + "localizations": { + "ar": { + "stringUnit": { + "state": "translated", + "value": "ابدأ التتبع" + } + }, + "bn": { + "stringUnit": { + "state": "translated", + "value": "ট্র্যাকিং শুরু করুন" + } + }, + "en": { + "stringUnit": { + "state": "translated", + "value": "Start Tracking" + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Iniciar seguimiento" + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Commencer le suivi" + } + }, + "hi": { + "stringUnit": { + "state": "translated", + "value": "ट्रैकिंग प्रारंभ करें" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "追跡を開始する" + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Comece a rastrear" + } + }, + "ru": { + "stringUnit": { + "state": "translated", + "value": "Начать отслеживание" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "开始追踪" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Rozpocznij śledzenie" + } } } }, @@ -52632,6 +57966,12 @@ "state": "translated", "value": "从“地图”选项卡或Shortcuts ”自动化开始跟踪。参观和活动会议每天都会出现在这里。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Rozpocznij śledzenie na karcie Mapa lub przez automatyzację w Skrótach. Wizyty i przemieszczenia pojawią się tutaj w podziale na dni." + } } } }, @@ -52696,6 +58036,12 @@ "state": "translated", "value": "立即开始追踪" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Natychmiast rozpocznij śledzenie" + } } } }, @@ -52760,6 +58106,12 @@ "state": "translated", "value": "已开始" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Rozpoczęło się" + } } } }, @@ -52824,6 +58176,12 @@ "state": "translated", "value": "已开始%@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Rozpoczęto %@" + } } } }, @@ -52888,6 +58246,12 @@ "state": "translated", "value": "开始新的位置跟踪会话。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Rozpoczyna nową sesję śledzenia lokalizacji." + } } } }, @@ -52952,6 +58316,12 @@ "state": "translated", "value": "统计数据" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "STATYSTYKI" + } } } }, @@ -53016,6 +58386,12 @@ "state": "translated", "value": "地位" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "STATUS" + } } } }, @@ -53080,6 +58456,12 @@ "state": "translated", "value": "第 1 步(共 2 步)" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "KROK 1 Z 2" + } } } }, @@ -53144,6 +58526,12 @@ "state": "translated", "value": "第 2 步(共 2 步)" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "KROK 2 Z 2" + } } } }, @@ -53208,6 +58596,12 @@ "state": "translated", "value": "还在这里" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wciąż tutaj" + } } } }, @@ -53272,6 +58666,12 @@ "state": "translated", "value": "之后停止" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "ZATRZYMAJ PO" + } } } }, @@ -53336,6 +58736,12 @@ "state": "translated", "value": "停止当前的 IsoMe 跟踪会话。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zatrzymaj bieżącą sesję śledzenia IsoMe." + } } } }, @@ -53400,6 +58806,12 @@ "state": "translated", "value": "停止追踪" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zatrzymaj śledzenie" + } } } }, @@ -53464,6 +58876,12 @@ "state": "translated", "value": "停止追踪" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zatrzymaj śledzenie" + } } } }, @@ -53528,6 +58946,12 @@ "state": "translated", "value": "在%@处停止。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zatrzymanie za %@." + } } } }, @@ -53592,6 +59016,12 @@ "state": "translated", "value": "停止活动会话。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zatrzymuje aktywną sesję." + } } } }, @@ -53656,6 +59086,12 @@ "state": "translated", "value": "贮存" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "PAMIĘĆ" + } } } }, @@ -53720,6 +59156,12 @@ "state": "translated", "value": "存储在设备上" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przechowywane na urządzeniu" + } } } }, @@ -53784,6 +59226,12 @@ "state": "translated", "value": "当所选格式支持时,将包含存储的外出名称和注释。推断出游导出来源:推断。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zapisane nazwy i notatki podróży są uwzględniane, jeśli dany format je obsługuje. Oszacowane podróże są eksportowane z oznaczeniem source: inferred." + } } } }, @@ -53848,6 +59296,12 @@ "state": "translated", "value": "直线路径间隙" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Luki w ścieżce w linii prostej" + } } } }, @@ -53912,6 +59366,12 @@ "state": "translated", "value": "支持" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WSPARCIE" + } } } }, @@ -53976,6 +59436,12 @@ "state": "translated", "value": "滑动或点击箭头" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przesuń lub dotknij strzałek" + } } } }, @@ -54040,6 +59506,12 @@ "state": "translated", "value": "正在同步照片元数据..." } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Synchronizowanie metadanych zdjęć…" + } } } }, @@ -54104,6 +59576,12 @@ "state": "translated", "value": "同步照片" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "SYNCHRONIZOWANIE ZDJĘĆ" + } } } }, @@ -54168,6 +59646,12 @@ "state": "translated", "value": "正在同步照片..." } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "SYNCHRONIZOWANIE ZDJĘĆ…" + } } } }, @@ -54232,6 +59716,12 @@ "state": "translated", "value": "采取" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "ZAJĘTY" + } } } }, @@ -54296,6 +59786,12 @@ "state": "translated", "value": "点击任意缩略图即可全屏查看,然后使用箭头在此位置浏览照片。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Stuknij dowolną miniaturę, aby wyświetlić ją na pełnym ekranie, a następnie użyj strzałek, aby poruszać się po zdjęciach z tego miejsca." + } } } }, @@ -54360,6 +59856,12 @@ "state": "translated", "value": "点击更多格式可一次导出多个文件。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Stuknij więcej formatów, aby wyeksportować wiele plików jednocześnie." + } } } }, @@ -54424,6 +59926,12 @@ "state": "translated", "value": "一次点击多种导出格式 - JSON 、 CSV 、 Markdown 、 GPX 、 KML 、 GeoJSON 、 OwnTracks和Overland - iso.me会为每种格式准备一个单独的文件。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wybierz kilka formatów eksportu jednocześnie — JSON, CSV, Markdown, GPX, KML, GeoJSON, OwnTracks i Overland — a iso.me przygotuje dla każdego osobny plik." + } } } }, @@ -54489,6 +59997,12 @@ "state": "translated", "value": "点击地图将图钉准确放置在访问发生的位置。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Kliknij mapę, aby umieścić pinezkę dokładnie w miejscu, w którym miała miejsce wizyta." + } } } }, @@ -54553,6 +60067,12 @@ "state": "translated", "value": "点击可重试计划的iso.me导出。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Kliknij, aby ponowić zaplanowaną próbę eksportu iso.me" + } } } }, @@ -54617,6 +60137,12 @@ "state": "translated", "value": "点击可重试计划的iso.me导出。 %@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Kliknij, aby ponowić zaplanowaną próbę eksportu iso.me %@" + } } } }, @@ -54681,6 +60207,12 @@ "state": "translated", "value": "如果尚未完成,请点击以运行计划的iso.me导出。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Stuknij, aby uruchomić zaplanowany eksport do pliku iso.me, jeśli nie został on ukończony." + } } } }, @@ -54745,6 +60277,12 @@ "state": "translated", "value": "服务条款" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WARUNKI KORZYSTANIA Z USŁUGI" + } } } }, @@ -54809,6 +60347,12 @@ "state": "translated", "value": "找不到该 IsoMe 项目。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie można znaleźć tego elementu IsoMe." + } } } }, @@ -54873,6 +60417,12 @@ "state": "translated", "value": "“导出”选项卡现在可以每次外出写入一个文件,并在共享或保存之前预览显示确切的格式、数量和文件名。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Na karcie Eksportuj można teraz zapisać jeden plik na podróż, a podglądy pokazują dokładny format, liczbę i nazwy plików przed udostępnieniem lub zapisaniem." + } } } }, @@ -54937,6 +60487,12 @@ "state": "translated", "value": "现在,“导出”选项卡会在您下次返回时记住您选择的格式、数据类型、过滤器、日期和每天一个文件的选择。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Karta Eksportuj zapamiętuje teraz wybrane formaty, typ danych, filtry, daty i wybór jednego pliku dziennie przy następnym powrocie." + } } } }, @@ -55001,6 +60557,12 @@ "state": "translated", "value": "键和值作为查询字符串附加 (?key=value)。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Klucz i wartość są dołączane do adresu jako parametry zapytania (?key=value)." + } } } }, @@ -55065,6 +60627,12 @@ "state": "translated", "value": "IsoMe 在选定日期范围内记录的移动(即郊游)。默认为今天。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przemieszczenia, czyli podróże, zarejestrowane przez IsoMe w wybranym zakresie dat. Domyślnie: dzisiaj." + } } } }, @@ -55129,6 +60697,12 @@ "state": "translated", "value": "IsoMe 当前正在记录的郊游的名称。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nazwa podróży aktualnie rejestrowanej przez IsoMe." + } } } }, @@ -55193,6 +60767,12 @@ "state": "translated", "value": "开始日期必须早于结束日期。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Data początkowa musi przypadać przed datą końcową." + } } } }, @@ -55257,6 +60837,12 @@ "state": "translated", "value": "IsoMe 在选定日期范围内记录的访问。默认为今天。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wizyty zarejestrowane przez IsoMe w wybranym zakresie dat. Domyślnie: dzisiaj." + } } } }, @@ -55321,6 +60907,12 @@ "state": "translated", "value": "所选导出设置没有数据。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Brak danych dla wybranych ustawień eksportu." + } } } }, @@ -55385,6 +60977,12 @@ "state": "translated", "value": "此格式导出包含时间、距离、访问次数、注释和坐标的外出摘要。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ten format umożliwia eksportowanie podsumowania podróży zawierającego czas, dystans, liczbę wizyt, notatki i współrzędne." + } } } }, @@ -55449,6 +61047,12 @@ "state": "translated", "value": "这是可选的 - 如果您只想进行地点访问和路线,请跳过它。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ten krok jest opcjonalny — pomiń go, jeśli chcesz rejestrować tylko wizyty i trasy." + } } } }, @@ -55513,6 +61117,12 @@ "state": "translated", "value": "本月" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "W TYM MIESIĄCU" + } } } }, @@ -55577,6 +61187,12 @@ "state": "translated", "value": "此次郊游及其GPS点将被永久删除。在此期间的访问将被保留。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ta podróż i jej punkty GPS zostaną trwale usunięte. Wizyty w tym czasie zostaną zachowane." + } } } }, @@ -55641,6 +61257,12 @@ "state": "translated", "value": "目前,这次外出活动正在录制中。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ta podróż jest obecnie rejestrowana." + } } } }, @@ -55705,6 +61327,12 @@ "state": "translated", "value": "这次郊游是使用您推断的郊游设置从您的GPS历史记录自动推断的。新的快捷方式开始/停止录音被准确保存并可以命名。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ta podróż została automatycznie oszacowana na podstawie historii GPS i ustawień szacowania podróży. Nowe sesje rozpoczynane i kończone przez Skróty są zapisywane dokładnie i można im nadawać nazwy." + } } } }, @@ -55769,6 +61397,12 @@ "state": "translated", "value": "此路线格式导出郊游的GPS路线点。注释和访问行未表示。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ten format trasy eksportuje punkty trasy GPS podróży. Notatki i wiersze wizyt nie są reprezentowane." + } } } }, @@ -55833,6 +61467,12 @@ "state": "translated", "value": "此访问将被永久删除。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ta wizyta zostanie trwale usunięta." + } } } }, @@ -55897,6 +61537,12 @@ "state": "translated", "value": "这将永久删除所有访问数据和位置点。此操作无法撤消。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Spowoduje to trwałe usunięcie wszystkich danych dotyczących wizyt i punktów lokalizacji. Tej akcji nie można cofnąć." + } } } }, @@ -55961,6 +61607,12 @@ "state": "translated", "value": "时间" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Czas" + } } } }, @@ -56025,6 +61677,12 @@ "state": "translated", "value": "时间" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "CZAS" + } } } }, @@ -56089,6 +61747,12 @@ "state": "translated", "value": "一天中的时间" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "PORA DNIA" + } } } }, @@ -56153,6 +61817,12 @@ "state": "translated", "value": "时间轴" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Oś czasu" + } } } }, @@ -56217,6 +61887,12 @@ "state": "translated", "value": "时间轴" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "OŚ CZASU" + } } } }, @@ -56281,6 +61957,12 @@ "state": "translated", "value": "时间线结合了所选日期的访问和活动会话。运动来自精确的记录以及可选的GPS外出推断。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Oś czasu łączy wizyty i przemieszczenia z wybranego dnia. Przemieszczenia pochodzą z dokładnie zarejestrowanych sesji oraz opcjonalnie z podróży oszacowanych na podstawie GPS." + } } } }, @@ -56345,6 +62027,12 @@ "state": "translated", "value": "时间线修复" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Poprawki osi czasu" + } } } }, @@ -56409,6 +62097,12 @@ "state": "translated", "value": "始终包含时间戳和坐标。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Znacznik czasu i współrzędne są zawsze uwzględniane." + } } } }, @@ -56473,6 +62167,12 @@ "state": "translated", "value": "到" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Do" + } } } }, @@ -56537,6 +62237,12 @@ "state": "translated", "value": "到" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "DO" + } } } }, @@ -56601,6 +62307,12 @@ "state": "translated", "value": "今天" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dzisiaj" + } } } }, @@ -56665,6 +62377,12 @@ "state": "translated", "value": "今天" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "DZISIAJ" + } } } }, @@ -56729,6 +62447,12 @@ "state": "translated", "value": "今天的距离" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dzisiejszy dystans" + } } } }, @@ -56793,6 +62517,12 @@ "state": "translated", "value": "今日统计数据一览" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dzisiejsze statystyki w skrócie" + } } } }, @@ -56857,6 +62587,12 @@ "state": "translated", "value": "今天的追踪持续时间" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dzisiejszy czas śledzenia" + } } } }, @@ -56921,6 +62657,12 @@ "state": "translated", "value": "今天的访问" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dzisiejsze wizyty" + } } } }, @@ -56985,6 +62727,12 @@ "state": "translated", "value": "TOKEN" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "TOKEN" + } } } }, @@ -57049,6 +62797,12 @@ "state": "translated", "value": "从Apple Watch追踪" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Śledź z Apple Watch" + } } } }, @@ -57113,6 +62867,12 @@ "state": "translated", "value": "从手腕追踪" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Śledź z nadgarstka" + } } } }, @@ -57177,6 +62937,12 @@ "state": "translated", "value": "追踪" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Śledzenie" + } } } }, @@ -57241,6 +63007,12 @@ "state": "translated", "value": "追踪" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "ŚLEDZENIE" + } } } }, @@ -57305,6 +63077,12 @@ "state": "translated", "value": "跟踪自动关闭" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Automatyczne wyłączanie śledzenia" + } } } }, @@ -57369,6 +63147,12 @@ "state": "translated", "value": "追踪时长" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Czas śledzenia" + } } } }, @@ -57433,6 +63217,12 @@ "state": "translated", "value": "跟踪处于活动状态。 iso.me保存第一个位置点后,新的运动将出现在此处。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Śledzenie jest aktywne. Nowe przemieszczenie pojawi się tutaj, gdy iso.me zapisze pierwszy punkt lokalizacji." + } } } }, @@ -57497,6 +63287,12 @@ "state": "translated", "value": "跟踪是免费且无限制的。一次性购买即可解锁数据导出。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Śledzenie jest bezpłatne i nieograniczone. Odblokuj eksport danych przy jednorazowym zakupie." + } } } }, @@ -57561,6 +63357,12 @@ "state": "translated", "value": "跟踪记录访问、重大变化和连续的高精度路径。距离过滤器控制移动时保存点的频率。停止 自动停止后作为安全网。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Śledzenie rejestruje wizyty, istotne zmiany lokalizacji i ciągłą, dokładną trasę. Filtr odległości określa częstotliwość zapisywania punktów podczas ruchu. Opcja „Zatrzymaj po” automatycznie kończy sesję po upływie wybranego czasu." + } } } }, @@ -57625,6 +63427,12 @@ "state": "translated", "value": "追踪开始。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Rozpoczęto śledzenie." + } } } }, @@ -57689,6 +63497,12 @@ "state": "translated", "value": "追踪停止了。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Śledzenie zatrzymane." + } } } }, @@ -57753,6 +63567,12 @@ "state": "translated", "value": "跟踪将停止。 %@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Śledzenie zostanie zatrzymane. %@" + } } } }, @@ -57817,6 +63637,12 @@ "state": "translated", "value": "行进路线" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ścieżka podróży" + } } } }, @@ -57882,6 +63708,12 @@ "state": "translated", "value": "再试一次" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Spróbuj ponownie" + } } } }, @@ -57946,6 +63778,12 @@ "state": "translated", "value": "再次尝试附近搜索" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Spróbuj ponownie wyszukać w pobliżu" + } } } }, @@ -58010,6 +63848,12 @@ "state": "translated", "value": "类型" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "TYP" + } } } }, @@ -58074,6 +63918,12 @@ "state": "translated", "value": "无法访问导出文件夹。请重新选择。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie można uzyskać dostępu do folderu eksportu. Wybierz ponownie." + } } } }, @@ -58138,6 +63988,12 @@ "state": "translated", "value": "无法加载这张照片" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie można załadować tego zdjęcia" + } } } }, @@ -58202,6 +64058,12 @@ "state": "translated", "value": "未经授权( HTTP 401)。检查您的凭据。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nieautoryzowany (HTTP 401). Sprawdź swoje dane uwierzytelniające." + } } } }, @@ -58266,6 +64128,12 @@ "state": "translated", "value": "不可用" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Niedostępne" + } } } }, @@ -58330,6 +64198,12 @@ "state": "translated", "value": "未证实" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Niepotwierdzone" + } } } }, @@ -58394,6 +64268,12 @@ "state": "translated", "value": "撤消修正" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Cofnij korektę" + } } } }, @@ -58458,6 +64338,12 @@ "state": "translated", "value": "单位" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "JEDNOSTKI" + } } } }, @@ -58522,6 +64408,12 @@ "state": "translated", "value": "未知" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nieznany" + } } } }, @@ -58586,6 +64478,12 @@ "state": "translated", "value": "未知地点" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nieznana lokalizacja" + } } } }, @@ -58650,6 +64548,12 @@ "state": "translated", "value": "解锁数据导出" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Odblokuj eksport danych" + } } } }, @@ -58714,6 +64618,12 @@ "state": "translated", "value": "解锁导出" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "ODBLOKUJ EKSPORT" + } } } }, @@ -58778,6 +64688,12 @@ "state": "translated", "value": "解锁导出 — %@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Odblokuj eksport — %@" + } } } }, @@ -58842,6 +64758,12 @@ "state": "translated", "value": "不支持的导出格式: %@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nieobsługiwany format eksportu: %@" + } } } }, @@ -58906,6 +64828,12 @@ "state": "translated", "value": "不支持的文件格式。 Import 目前支持从 iso.me 导出的JSON 、 CSV或Markdown文件。 KML 、 GPX和GeoJSON导出是单向地图文件。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nieobsługiwany format pliku. Import obsługuje obecnie pliki JSON, CSV i Markdown eksportowane z iso.me. Eksporty KML, GPX i GeoJSON są jednokierunkowymi plikami map." + } } } }, @@ -58970,6 +64898,12 @@ "state": "translated", "value": "URL" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "URL" + } } } }, @@ -59034,6 +64968,12 @@ "state": "translated", "value": "美国标准" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "JEDNOSTKI AMERYKAŃSKIE" + } } } }, @@ -59099,6 +65039,12 @@ "state": "translated", "value": "使用" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Użyj" + } } } }, @@ -59163,6 +65109,12 @@ "state": "translated", "value": "在导出路径中使用{title}或{name} , iso.me会自动保持每次导出一个文件的导出不同。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Użyj {title} lub {name} w ścieżkach eksportu, a iso.me automatycznie rozróżnia eksporty jednego pliku na wyjście." + } } } }, @@ -59227,6 +65179,12 @@ "state": "translated", "value": "使用 / 表示文件夹。代币: %@ 。 {title} / {name}使用郊游标题(如果可用),否则使用数据类型。如果省略,则会添加格式扩展名。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Użyj / dla folderów. Tokeny: %@. {title} / {name} użyj tytułu podróży, jeśli jest dostępny, w przeciwnym razie typ danych. W przypadku pominięcia dodawane jest rozszerzenie formatu." + } } } }, @@ -59291,6 +65249,12 @@ "state": "translated", "value": "使用当前位置代替" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zamiast tego użyj bieżącej lokalizacji" + } } } }, @@ -59355,6 +65319,12 @@ "state": "translated", "value": "使用推断的运动来根据精确开始/停止会话存在之前保存的GPS点来填补过去的日子。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Włącz szacowanie przemieszczeń, aby uzupełnić starsze dni na podstawie punktów GPS zapisanych przed wprowadzeniem dokładnych sesji z początkiem i końcem." + } } } }, @@ -59419,6 +65389,12 @@ "state": "translated", "value": "使用地点" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Użyj lokalizacji" + } } } }, @@ -59483,6 +65459,12 @@ "state": "translated", "value": "使用测试连接来验证端点URL和凭据,而无需发送真实数据。立即发送将所有保存的位置数据发布到端点。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Użyj połączenia testowego, aby zweryfikować URL punktu końcowego i poświadczenia bez wysyłania prawdziwych danych. Wyślij teraz wysyła wszystkie zapisane dane o lokalizacji do punktu końcowego." + } } } }, @@ -59548,6 +65530,12 @@ "state": "translated", "value": "使用此位置" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Skorzystaj z tej lokalizacji" + } } } }, @@ -59612,6 +65600,12 @@ "state": "translated", "value": "用户" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "użytkownik" + } } } }, @@ -59676,6 +65670,12 @@ "state": "translated", "value": "用户输入" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wprowadzona ręcznie" + } } } }, @@ -59740,6 +65740,12 @@ "state": "translated", "value": "用户名" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "NAZWA UŻYTKOWNIKA" + } } } }, @@ -59804,6 +65810,12 @@ "state": "translated", "value": "尽可能使用Apple Maps路线将稀疏的GPS间隙弯曲到附近的道路上,而不是绘制粗糙的点对点线。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dopasowuje trasę do pobliskich dróg przy użyciu Map Apple, gdy między punktami GPS są luki, zamiast łączyć punkty prostymi liniami." + } } } }, @@ -59868,6 +65880,12 @@ "state": "translated", "value": "如果可用,则使用照片GPS ,否则将时间戳与附近的路线点或访问进行匹配。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Używa danych GPS zdjęcia, a jeśli ich brakuje — dopasowuje czas wykonania do pobliskich punktów trasy lub wizyt." + } } } }, @@ -59932,6 +65950,12 @@ "state": "translated", "value": "使用保存的位置: %@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Korzystanie z zapisanej lokalizacji: %@" + } } } }, @@ -59996,6 +66020,12 @@ "state": "translated", "value": "版本" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WERSJA" + } } } }, @@ -60060,6 +66090,12 @@ "state": "translated", "value": "查看应用程序活动日志或与社区聊天。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przeglądaj dzienniki aktywności aplikacji lub rozmawiaj ze społecznością." + } } } }, @@ -60124,6 +66160,12 @@ "state": "translated", "value": "查看完整照片" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zobacz pełne zdjęcie" + } } } }, @@ -60188,6 +66230,12 @@ "state": "translated", "value": "查看日志" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WYŚWIETL DZIENNIKI" + } } } }, @@ -60252,6 +66300,12 @@ "state": "translated", "value": "访问" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wizyta" + } } } }, @@ -60316,6 +66370,12 @@ "state": "translated", "value": "访问" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WIZYTA" + } } } }, @@ -60380,6 +66440,12 @@ "state": "translated", "value": "访问%@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wizyta w %@" + } } } }, @@ -60444,6 +66510,12 @@ "state": "translated", "value": "访问索引%lld缺少必填字段(纬度、经度、arrivedAt)" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wizyta o indeksie %lld nie ma wymaganych pól (latitude, longitude, arrivedAt)" + } } } }, @@ -60508,6 +66580,12 @@ "state": "translated", "value": "参观详情" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Szczegóły wizyty" + } } } }, @@ -60572,6 +66650,12 @@ "state": "translated", "value": "参观田野" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "POLA WIZYT" + } } } }, @@ -60636,6 +66720,12 @@ "state": "translated", "value": "访问地图" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Mapa wizyty" + } } } }, @@ -60700,6 +66790,12 @@ "state": "translated", "value": "访问标记" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Znaczniki wizyt" + } } } }, @@ -60764,6 +66860,12 @@ "state": "translated", "value": "访问名称" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nazwa wizyty" + } } } }, @@ -60828,6 +66930,12 @@ "state": "translated", "value": "访问已重命名为%@。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nazwa wizyty zmieniona na %@." + } } } }, @@ -60892,6 +67000,12 @@ "state": "translated", "value": "访问状态: %1$@ ,来源: %2$@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Stan wizyty: %1$@, źródło: %2$@" + } } } }, @@ -60956,6 +67070,12 @@ "state": "translated", "value": "参观建议" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "SUGESTIE WIZYT" + } } } }, @@ -61020,6 +67140,12 @@ "state": "translated", "value": "当iso.me找到附近的地点时,访问建议会在地图上显示紧凑的保存地点提示。 GPS故障默认隐藏;打开以检查原始数据。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Sugestie odwiedzin wyświetlają kompaktowy monit o zapisanie miejsca na mapie, gdy iso.me znajdzie pobliskie miejsce. Błędy GPS są domyślnie ukryte; włącz, aby sprawdzić surowe dane." + } } } }, @@ -61084,6 +67210,12 @@ "state": "translated", "value": "参观时间表" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Oś czasu wizyty" + } } } }, @@ -61148,6 +67280,12 @@ "state": "translated", "value": "访问" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wizyty" + } } } }, @@ -61212,6 +67350,12 @@ "state": "translated", "value": "访问量" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WIZYTY" + } } } }, @@ -61276,6 +67420,12 @@ "state": "translated", "value": "等待郊游路径与道路匹配。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Poczekaj, aż trasa podróży zostanie dopasowana do dróg." + } } } }, @@ -61340,6 +67490,12 @@ "state": "translated", "value": "等待新的准确位置" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Czekam na świeżą, dokładną lokalizację" + } } } }, @@ -61404,6 +67560,12 @@ "state": "translated", "value": "等待新的GPS精度" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Oczekiwanie na dokładny pomiar GPS" + } } } }, @@ -61468,6 +67630,12 @@ "state": "translated", "value": "警告" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ostrzeżenia" + } } } }, @@ -61532,6 +67700,12 @@ "state": "translated", "value": "表盘复杂功能" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Komplikacje tarczy zegarka" + } } } }, @@ -61596,6 +67770,12 @@ "state": "translated", "value": "WEBHOOK" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WEBHOOK" + } } } }, @@ -61660,6 +67840,12 @@ "state": "translated", "value": "Webhook 交付" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WYSYŁANIE PRZEZ WEBHOOK" + } } } }, @@ -61724,6 +67910,12 @@ "state": "translated", "value": "Webhook 已锁定" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WEBHOOK ZABLOKOWANY" + } } } }, @@ -61788,6 +67980,12 @@ "state": "translated", "value": "欢迎" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Witaj" + } } } }, @@ -61852,6 +68050,12 @@ "state": "translated", "value": "iso.me中的新功能" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Co nowego w iso.me" + } } } }, @@ -61916,6 +68120,12 @@ "state": "translated", "value": "当不存在确切的开始/停止会话时, iso.me可以根据保存的GPS点推断外出活动。这些设置仅影响自动生成的推断外出;录制的会话保持完整。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Gdy brakuje dokładnie zapisanych sesji z początkiem i końcem, iso.me może oszacować podróże na podstawie punktów GPS. Te ustawienia dotyczą tylko automatycznie szacowanych podróży; zarejestrowane sesje pozostają bez zmian." + } } } }, @@ -61980,6 +68190,12 @@ "state": "translated", "value": "使用时" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Podczas używania" + } } } }, @@ -62044,6 +68260,12 @@ "state": "translated", "value": "当今天没有时间线事件时, iso.me现在会打开最近一天已保存的访问或活动,以便您更轻松地查看历史记录。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Gdy dzisiaj nie ma zdarzeń na osi czasu, iso.me otwiera najnowszy dzień z zapisanymi wizytami lub przemieszczeniami, aby ułatwić przeglądanie historii." + } } } }, @@ -62108,6 +68330,12 @@ "state": "translated", "value": "记录路线时,可以使用Shortcuts或Siri中的新“重命名当前外出”操作来命名行程,而无需打开 iso.me。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Podczas rejestrowania trasy użyj nowej czynności „Zmień nazwę bieżącej podróży” w Skrótach lub Siri, aby nadać jej nazwę bez otwierania iso.me." + } } } }, @@ -62172,6 +68400,12 @@ "state": "translated", "value": "使用时" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Podczas używania" + } } } }, @@ -62236,6 +68470,12 @@ "state": "translated", "value": "X- API密钥" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "X-API-Key" + } } } }, @@ -62300,6 +68540,12 @@ "state": "translated", "value": "昨天" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wczoraj" + } } } }, @@ -62364,6 +68610,12 @@ "state": "translated", "value": "昨天" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WCZORAJ" + } } } }, @@ -62428,6 +68680,12 @@ "state": "translated", "value": "您可以稍后从“设置”选项卡授予权限。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Możesz udzielić pozwolenia później na karcie Ustawienia." + } } } }, @@ -62492,6 +68750,12 @@ "state": "translated", "value": "您仍然可以手动添加详细信息" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nadal możesz dodawać szczegóły ręcznie" + } } } }, @@ -62556,6 +68820,12 @@ "state": "translated", "value": "今天你还没动呢。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Brak zarejestrowanego dystansu dzisiaj." + } } } }, @@ -62620,6 +68890,12 @@ "state": "translated", "value": "一切就绪" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WSZYSTKO GOTOWE" + } } } }, @@ -62684,6 +68960,12 @@ "state": "translated", "value": "您一直在追踪%@ 。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Rejestrowanie trwa od %@." + } } } }, @@ -62748,6 +69030,12 @@ "state": "translated", "value": "你今天已经走了%@ 。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dzisiejszy dystans: %@." + } } } }, @@ -62812,6 +69100,12 @@ "state": "translated", "value": "自动导出" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "AUTOMATYCZNY EKSPORT" + } } } }, @@ -62876,6 +69170,12 @@ "state": "translated", "value": "重复" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "POWTARZANIE" + } } } }, @@ -62940,6 +69240,12 @@ "state": "translated", "value": "每天一次" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "RAZ DZIENNIE" + } } } }, @@ -63004,6 +69310,12 @@ "state": "translated", "value": "每 %lld 小时" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "CO %lld GODZ." + } } } }, @@ -63068,6 +69380,12 @@ "state": "translated", "value": "文件布局" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "UKŁAD PLIKU" + } } } }, @@ -63132,6 +69450,12 @@ "state": "translated", "value": "更新模式" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "TRYB AKTUALIZACJI" + } } } }, @@ -63196,6 +69520,12 @@ "state": "translated", "value": "重写" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "NADPISUJ" + } } } }, @@ -63260,6 +69590,12 @@ "state": "translated", "value": "追加" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "DOPISUJ" + } } } }, @@ -63324,6 +69660,12 @@ "state": "translated", "value": "每天保留一个文件。每次运行都会将其重写为今天至今记录的所有内容,因此文件始终完整有效。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Każdego dnia przechowywany jest jeden plik. W każdym uruchomieniu zapisuje się na nowo wszystko, co zarejestrowano do tej pory, dzięki czemu zawsze pozostaje kompletne i aktualne." + } } } }, @@ -63388,6 +69730,12 @@ "state": "translated", "value": "每天保留一个文件。每次运行只添加自上次运行以来捕获的记录;GPX 和 KML 始终重写全天。唤醒是尽力而为的——点按后备通知或打开应用以补上。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Każdy dzień ma jeden plik. Każde uruchomienie dopisuje tylko dane zarejestrowane od poprzedniego uruchomienia; GPX i KML zawsze nadpisują cały dzień. Wybudzenie aplikacji nie jest gwarantowane — stuknij powiadomienie zapasowe lub otwórz aplikację, aby uzupełnić dane." + } } } }, @@ -63452,6 +69800,12 @@ "state": "translated", "value": "无法合并现有导出文件;已改为重写当天的文件。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie można połączyć istniejącego pliku eksportu; zamiast tego plik dnia został przepisany." + } } } }, @@ -63516,6 +69870,12 @@ "state": "translated", "value": "购买选项暂不可用,请稍后再试。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Opcje zakupu są niedostępne. Spróbuj ponownie później." + } } } }, @@ -63580,6 +69940,12 @@ "state": "translated", "value": "无法加载购买选项:%@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie udało się załadować opcji zakupu: %@" + } } } }, @@ -63644,6 +70010,12 @@ "state": "translated", "value": "家庭升级需要先购买个人终身版。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przejście na plan rodzinny wymaga zakupu dożywotniego planu indywidualnego." + } } } }, @@ -63708,6 +70080,12 @@ "state": "translated", "value": "购买验证失败。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Weryfikacja zakupu nie powiodła się." + } } } }, @@ -63772,6 +70150,12 @@ "state": "translated", "value": "购买失败,请重试。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zakup nie powiódł się. Spróbuj ponownie." + } } } }, @@ -63836,6 +70220,12 @@ "state": "translated", "value": "未找到购买项目。若使用家庭方案,请确认已开启购买项目共享,然后重试。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie znaleziono zakupu. W przypadku planu rodzinnego potwierdź, że udostępnianie zakupów jest włączone, a następnie spróbuj ponownie." + } } } }, @@ -63900,6 +70290,12 @@ "state": "translated", "value": "购买与家庭" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zakupy i rodzina" + } } } }, @@ -63964,6 +70360,12 @@ "state": "translated", "value": "购买与家庭" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "ZAKUPY I RODZINA" + } } } }, @@ -64028,6 +70430,12 @@ "state": "translated", "value": "当前方案" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "AKTUALNY PLAN" + } } } }, @@ -64092,6 +70500,12 @@ "state": "translated", "value": "管理终身导出购买和家人共享。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zarządzaj dożywotnim dostępem do eksportu i Chmurą rodzinną." + } } } }, @@ -64156,6 +70570,12 @@ "state": "translated", "value": "以所有支持的格式导出访问、位置点和路线。位置记录仍然免费且不限量。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Eksportuj swoje wizyty, punkty i trasy w każdym obsługiwanym formacie. Śledzenie pozostaje bezpłatne i nieograniczone." + } } } }, @@ -64220,6 +70640,12 @@ "state": "translated", "value": "导出为所有支持的格式" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Eksportuj we wszystkich obsługiwanych formatach" + } } } }, @@ -64284,6 +70710,12 @@ "state": "translated", "value": "选择个人终身版或家庭终身版" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wybierz dożywotni plan indywidualny lub rodzinny" + } } } }, @@ -64348,6 +70780,12 @@ "state": "translated", "value": "与最多5位家庭成员共享导出权限" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Udostępnij dostęp do eksportu maksymalnie 5 członkom rodziny" + } } } }, @@ -64412,6 +70850,12 @@ "state": "translated", "value": "只需补齐与个人终身版的差价" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zapłać tylko różnicę w cenie względem dożywotniego planu indywidualnego" + } } } }, @@ -64476,6 +70920,12 @@ "state": "translated", "value": "家庭终身版已启用" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dożywotni plan rodzinny aktywny" + } } } }, @@ -64540,6 +70990,12 @@ "state": "translated", "value": "个人终身版已启用" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dożywotni plan indywidualny aktywny" + } } } }, @@ -64604,6 +71060,12 @@ "state": "translated", "value": "终身导出已启用" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dożywotni eksport aktywny" + } } } }, @@ -64668,6 +71130,12 @@ "state": "translated", "value": "已包含家人共享。现有终身版用户已免费升级至此方案。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Chmura rodzinna jest wliczona w cenę. Osoby, które wcześniej kupiły dożywotni dostęp, otrzymały ten plan automatycznie." + } } } }, @@ -64732,6 +71200,12 @@ "state": "translated", "value": "你的导出权限永久有效。只需升级一次,即可通过 Apple 家人共享与家人共享。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Masz stały dostęp do eksportu. Przejdź jednorazowo na wyższy plan, aby udostępniać go przez Chmurę rodzinną Apple." + } } } }, @@ -64796,6 +71270,12 @@ "state": "translated", "value": "你的导出权限永久有效。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Twój dostęp do eksportu jest stały." + } } } }, @@ -64860,6 +71340,12 @@ "state": "translated", "value": "终身方案是通过 Apple ID 支付的一次性购买。家庭方案需要开启 Apple 家人共享和购买项目共享。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Plany dożywotnie kupujesz jednorazowo za pomocą swojego konta Apple. Plany rodzinne wymagają Chmury rodzinnej Apple i włączonego udostępniania zakupów." + } } } }, @@ -64924,6 +71410,12 @@ "state": "translated", "value": "个人终身版" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dożywotni indywidualny" + } } } }, @@ -64988,6 +71480,12 @@ "state": "translated", "value": "家庭终身版" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dożywotni rodzinny" + } } } }, @@ -65052,6 +71550,12 @@ "state": "translated", "value": "升级至家庭终身版" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przejdź na dożywotni plan rodzinny" + } } } }, @@ -65116,6 +71620,12 @@ "state": "translated", "value": "你的 Apple ID 可永久使用导出功能" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Stały dostęp do eksportu dla Twojego Apple ID" + } } } }, @@ -65180,6 +71690,12 @@ "state": "translated", "value": "与最多5位家庭成员永久共享导出权限" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Stały dostęp do eksportu współdzielony z maksymalnie 5 członkami rodziny" + } } } }, @@ -65244,6 +71760,12 @@ "state": "translated", "value": "为个人终身版购买添加家人共享" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dodaj Chmurę rodzinną do dożywotniego planu indywidualnego" + } } } }, @@ -65308,6 +71830,12 @@ "state": "translated", "value": "购买个人终身版" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Kup dożywotni plan indywidualny" + } } } }, @@ -65372,6 +71900,12 @@ "state": "translated", "value": "购买家庭终身版" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Kup dożywotni plan rodzinny" + } } } }, @@ -65436,6 +71970,12 @@ "state": "translated", "value": "升级至家庭版" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przejdź na wersję rodzinną" + } } } }, @@ -65500,6 +72040,12 @@ "state": "translated", "value": "导出功能已永久解锁。可在此管理方案或 Apple 家人共享。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Eksport jest odblokowany na zawsze. Tutaj możesz zarządzać planem i Chmurą rodzinną Apple." + } } } }, @@ -65564,6 +72110,12 @@ "state": "translated", "value": "位置记录免费且不限量。数据导出可选择个人或家庭一次性购买。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Śledzenie jest bezpłatne i nieograniczone. Wybierz jednorazowy zakup indywidualny lub rodzinny do eksportu danych." + } } } }, @@ -65628,6 +72180,12 @@ "state": "translated", "value": "方案" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Plan" + } } } }, @@ -65692,6 +72250,12 @@ "state": "translated", "value": "个人" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Indywidualny" + } } } }, @@ -65756,6 +72320,12 @@ "state": "translated", "value": "家庭" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Rodzinny" + } } } }, @@ -65820,6 +72390,3990 @@ "state": "translated", "value": "完全私密且仅存储在设备上" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Pełna prywatność. Wszystko na urządzeniu." + } + } + } + }, + "%@": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "%@" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%@" + } + } + } + }, + "%@ – %@": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "%1$@ – %2$@" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%1$@ – %2$@" + } + } + } + }, + "%@, %@": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "%1$@, %2$@" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%1$@, %2$@" + } + } + } + }, + "1 country": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "1 country" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "1 kraj" + } + } + } + }, + "1 day": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "1 day" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "1 dzień" + } + } + } + }, + "1 day with recorded or manual presence": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "1 day with recorded or manual presence" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "1 dzień z zarejestrowanym lub dodanym ręcznie pobytem" + } + } + } + }, + "%lld countries": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "%lld countries" + } + }, + "pl": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "%lld kraj" + } + }, + "few": { + "stringUnit": { + "state": "translated", + "value": "%lld kraje" + } + }, + "many": { + "stringUnit": { + "state": "translated", + "value": "%lld krajów" + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "%lld kraju" + } + } + } + } + } + } + }, + "%lld days": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "%lld days" + } + }, + "pl": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "%lld dzień" + } + }, + "few": { + "stringUnit": { + "state": "translated", + "value": "%lld dni" + } + }, + "many": { + "stringUnit": { + "state": "translated", + "value": "%lld dni" + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "%lld dnia" + } + } + } + } + } + } + }, + "%lld days with recorded or manual presence": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "%lld days with recorded or manual presence" + } + }, + "pl": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "%lld dzień z zarejestrowanym lub dodanym ręcznie pobytem" + } + }, + "few": { + "stringUnit": { + "state": "translated", + "value": "%lld dni z zarejestrowanym lub dodanym ręcznie pobytem" + } + }, + "many": { + "stringUnit": { + "state": "translated", + "value": "%lld dni z zarejestrowanym lub dodanym ręcznie pobytem" + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "%lld dnia z zarejestrowanym lub dodanym ręcznie pobytem" + } + } + } + } + } + } + }, + "%lld locations analyzed": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "%lld locations analyzed" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przeanalizowano lokalizacje: %lld" + } + } + } + }, + "150": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "150" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "150" + } + } + } + }, + "A day counts once per country, using the recorded location’s local date. A travel day can count in more than one country. Open visits and unverified departure times count only the arrival day; route points add further recorded days. Gaps are not filled automatically.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "A day counts once per country, using the recorded location’s local date. A travel day can count in more than one country. Open visits and unverified departure times count only the arrival day; route points add further recorded days. Gaps are not filled automatically." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Każdy dzień jest liczony raz w danym kraju według lokalnej daty zarejestrowanego położenia. Dzień podróży może być liczony w kilku krajach. Dla trwających wizyt i niezweryfikowanych godzin wyjścia liczony jest tylko dzień przybycia; punkty trasy dodają kolejne zarejestrowane dni. Luki nie są uzupełniane automatycznie." + } + } + } + }, + "A duplicate has the same name near an existing location or an earlier row. Invalid rows are skipped. Updates change future matching and keep past visits unchanged.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "A duplicate has the same name near an existing location or an earlier row. Invalid rows are skipped. Updates change future matching and keep past visits unchanged." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Duplikat ma tę samą nazwę i znajduje się w pobliżu istniejącej lokalizacji lub miejsca z wcześniejszego wiersza. Nieprawidłowe wiersze są pomijane. Aktualizacje zmieniają przyszłe dopasowania, pozostawiając wcześniejsze wizyty bez zmian." + } + } + } + }, + "A quoted field is missing its closing quotation mark.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "A quoted field is missing its closing quotation mark." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "W polu brakuje zamykającego cudzysłowu." + } + } + } + }, + "A saved place needs a name.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "A saved place needs a name." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zapisane miejsce musi mieć nazwę." + } + } + } + }, + "APPEARANCE": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "APPEARANCE" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WYGLĄD" + } + } + } + }, + "Add Country Stay": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Add Country Stay" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dodaj pobyt w kraju" + } + } + } + }, + "Add Location": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Add Location" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dodaj lokalizację" + } + } + } + }, + "Add a name after selecting this location.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Add a name after selecting this location." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Po wybraniu tej lokalizacji dodaj nazwę." + } + } + } + }, + "Add places you visit to reuse their names, including places missing from Maps.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Add places you visit to reuse their names, including places missing from Maps." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dodaj odwiedzane miejsca, także te nieobecne w Mapach, aby ponownie używać ich nazw." + } + } + } + }, + "Add stay": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Add stay" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dodaj pobyt" + } + } + } + }, + "Add, edit, or import reusable places for future visit suggestions.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Add, edit, or import reusable places for future visit suggestions." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dodawaj, edytuj lub importuj miejsca do wykorzystania w przyszłych sugestiach wizyt." + } + } + } + }, + "Add, edit, search, and delete reusable locations. Your past visits stay unchanged.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Add, edit, search, and delete reusable locations. Your past visits stay unchanged." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dodawaj, edytuj, wyszukuj i usuwaj zapisane lokalizacje. Wcześniejsze wizyty pozostają bez zmian." + } + } + } + }, + "Added: %lld. Updated: %lld. Skipped: %lld.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Added: %lld. Updated: %lld. Skipped: %lld." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dodano: %lld. Zaktualizowano: %lld. Pominięto: %lld." + } + } + } + }, + "Address": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Address" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Adres" + } + } + } + }, + "Address (optional)": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Address (optional)" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Adres (opcjonalnie)" + } + } + } + }, + "Address, optional": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Address, optional" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Adres, opcjonalnie" + } + } + } + }, + "Analysis stopped because network geocoding is disabled.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Analysis stopped because network geocoding is disabled." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Analiza została zatrzymana, ponieważ geokodowanie przez sieć jest wyłączone." + } + } + } + }, + "Analysis stopped. Completed results are saved; analyze again to continue.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Analysis stopped. Completed results are saved; analyze again to continue." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Analiza zatrzymana. Gotowe wyniki zostały zapisane; uruchom analizę ponownie, aby kontynuować." + } + } + } + }, + "Analyze saved locations": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Analyze saved locations" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Analizuj zapisane lokalizacje" + } + } + } + }, + "Analyze saved locations or add a manual stay. Try All time to see older records.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Analyze saved locations or add a manual stay. Try All time to see older records." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przeanalizuj zapisane lokalizacje lub dodaj pobyt ręcznie. Wybierz „Cały okres”, aby zobaczyć starsze wpisy." + } + } + } + }, + "Analyze saved locations with saved progress, stopping and resuming, and clearer messages when country lookup is unavailable.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Analyze saved locations with saved progress, stopping and resuming, and clearer messages when country lookup is unavailable." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Analizuj zapisane lokalizacje z zapisywaniem postępu, zatrzymywaniem i wznawianiem oraz czytelniejszymi komunikatami, gdy ustalanie kraju jest niedostępne." + } + } + } + }, + "Arrival day": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Arrival day" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dzień przybycia" + } + } + } + }, + "Both dates count, including a same-day visit. Recorded presence in other countries is kept.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Both dates count, including a same-day visit. Recorded presence in other countries is kept." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Obie daty są wliczane, także przy wizycie jednodniowej. Zarejestrowane pobyty w innych krajach zostają zachowane." + } + } + } + }, + "CLAIM MYSELF.MD ACCESS": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "CLAIM MYSELF.MD ACCESS" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "ODBIERZ DOSTĘP DO MYSELF.MD" + } + } + } + }, + "COUNTRIES": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "COUNTRIES" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "KRAJE" + } + } + } + }, + "Choose a CSV file of 5 MB or smaller.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Choose a CSV file of 5 MB or smaller." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wybierz plik CSV o rozmiarze do 5 MB." + } + } + } + }, + "Choose a CSV file smaller than 5 MB.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Choose a CSV file smaller than 5 MB." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wybierz plik CSV mniejszy niż 5 MB." + } + } + } + }, + "Choose a valid location on the map.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Choose a valid location on the map." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wybierz prawidłową lokalizację na mapie." + } + } + } + }, + "Choose your appearance": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Choose your appearance" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wybierz wygląd" + } + } + } + }, + "Claim free myself.md access": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Claim free myself.md access" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Odbierz bezpłatny dostęp do myself.md" + } + } + } + }, + "Could Not Complete Action": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Could Not Complete Action" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie udało się wykonać czynności" + } + } + } + }, + "Could not read the CSV file as UTF-8 text.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Could not read the CSV file as UTF-8 text." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie można odczytać pliku CSV jako tekstu UTF-8." + } + } + } + }, + "Country": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Country" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Kraj" + } + } + } + }, + "Country Days": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Country Days" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dni w krajach" + } + } + } + }, + "Country lookup is temporarily unavailable. Completed results are saved. Check your connection and try again in a minute.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Country lookup is temporarily unavailable. Completed results are saved. Check your connection and try again in a minute." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ustalanie kraju jest chwilowo niedostępne. Gotowe wyniki zostały zapisane. Sprawdź połączenie i spróbuj ponownie za minutę." + } + } + } + }, + "Dark": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Dark" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ciemny" + } + } + } + }, + "Dark mode and country days": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Dark mode and country days" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Tryb ciemny i dni w krajach" + } + } + } + }, + "Date range": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Date range" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zakres dat" + } + } + } + }, + "Days in each country": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Days in each country" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dni w poszczególnych krajach" + } + } + } + }, + "Days present": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Days present" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Liczba dni pobytu" + } + } + } + }, + "Delete Saved Location?": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Delete Saved Location?" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Usunąć zapisaną lokalizację?" + } + } + } + }, + "Delete manual stay?": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Delete manual stay?" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Usunąć ręcznie dodany pobyt?" + } + } + } + }, + "Delete stay": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Delete stay" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Usuń pobyt" + } + } + } + }, + "Deleting a visit now closes its details screen correctly.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Deleting a visit now closes its details screen correctly." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Usunięcie wizyty prawidłowo zamyka teraz ekran jej szczegółów." + } + } + } + }, + "Departure day": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Departure day" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dzień wyjazdu" + } + } + } + }, + "Departure must be on or after arrival.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Departure must be on or after arrival." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wyjazd musi przypadać w dniu przybycia lub później." + } + } + } + }, + "Discard Changes": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Discard Changes" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Odrzuć zmiany" + } + } + } + }, + "Discard Changes?": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Discard Changes?" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Odrzucić zmiany?" + } + } + } + }, + "Drop a precise map pin or enter exact coordinates to save any location.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Drop a precise map pin or enter exact coordinates to save any location." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Umieść pinezkę na mapie lub wpisz dokładne współrzędne, aby zapisać dowolną lokalizację." + } + } + } + }, + "Duplicate locations": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Duplicate locations" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Powtarzające się lokalizacje" + } + } + } + }, + "Edit Country Stay": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Edit Country Stay" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Edytuj pobyt w kraju" + } + } + } + }, + "Edit Location": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Edit Location" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Edytuj lokalizację" + } + } + } + }, + "Edits this saved location.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Edits this saved location." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Edytuje tę zapisaną lokalizację." + } + } + } + }, + "Enable network geocoding in Settings to identify countries, or add a manual stay.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Enable network geocoding in Settings to identify countries, or add a manual stay." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Włącz geokodowanie przez sieć w Ustawieniach, aby ustalać kraje, lub dodaj pobyt ręcznie." + } + } + } + }, + "Enter a location name.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Enter a location name." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wpisz nazwę lokalizacji." + } + } + } + }, + "Every CSV column must have a header.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Every CSV column must have a header." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Każda kolumna CSV musi mieć nagłówek." + } + } + } + }, + "Existing purchasers receive complimentary lifetime access. Verify your purchase, then sign in to myself.md.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Existing purchasers receive complimentary lifetime access. Verify your purchase, then sign in to myself.md." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Osoby, które już dokonały zakupu, otrzymują bezpłatny dożywotni dostęp. Zweryfikuj zakup, a następnie zaloguj się do myself.md." + } + } + } + }, + "Expected %lld columns, found %lld.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Expected %lld columns, found %lld." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Oczekiwano %lld kolumn, znaleziono %lld." + } + } + } + }, + "Export your country days": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Export your country days" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Eksportuj dni w krajach" + } + } + } + }, + "Export your visits, points, routes, and country days. Tracking stays free and unlimited.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Export your visits, points, routes, and country days. Tracking stays free and unlimited." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Eksportuj wizyty, punkty, trasy i dni w krajach. Śledzenie pozostaje bezpłatne i nieograniczone." + } + } + } + }, + "Fill missing days. Overlapping stays and recorded days are counted only once.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Fill missing days. Overlapping stays and recorded days are counted only once." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Uzupełnij brakujące dni. Nakładające się pobyty i zarejestrowane dni są liczone tylko raz." + } + } + } + }, + "Find a Location": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Find a Location" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Znajdź lokalizację" + } + } + } + }, + "Finish signing in on myself.md, then sign in with the same account in the myself.md app on iOS or Android.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Finish signing in on myself.md, then sign in with the same account in the myself.md app on iOS or Android." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dokończ logowanie na myself.md, a następnie użyj tego samego konta w aplikacji myself.md na iOS lub Androidzie." + } + } + } + }, + "Future automatic visits inside this radius use the saved name. Choose 25–10,000 meters. Editing a saved location does not change past visits.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Future automatic visits inside this radius use the saved name. Choose 25–10,000 meters. Editing a saved location does not change past visits." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przyszłe automatyczne wizyty w tym promieniu użyją zapisanej nazwy. Wybierz od 25 do 10 000 metrów. Edycja lokalizacji nie zmienia wcześniejszych wizyt." + } + } + } + }, + "Identified %lld of %lld locations. Unavailable lookups can be retried after an hour.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Identified %lld of %lld locations. Unavailable lookups can be retried after an hour." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Rozpoznano %lld z %lld lokalizacji. Nieudane próby można ponowić po godzinie." + } + } + } + }, + "Identify countries": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Identify countries" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ustal kraje" + } + } + } + }, + "Import %lld": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Import %lld" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Importuj %lld" + } + } + } + }, + "Import Locations from CSV": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Import Locations from CSV" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Importuj lokalizacje z CSV" + } + } + } + }, + "Import Summary": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Import Summary" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Podsumowanie importu" + } + } + } + }, + "Import locations": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Import locations" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Importuj lokalizacje" + } + } + } + }, + "Import up to 10,000 saved places at a time.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Import up to 10,000 saved places at a time." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Importuj maksymalnie 10 000 zapisanych miejsc jednocześnie." + } + } + } + }, + "Include earlier history": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Include earlier history" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Uwzględnij wcześniejszą historię" + } + } + } + }, + "Invalid rows": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Invalid rows" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nieprawidłowe wiersze" + } + } + } + }, + "Keep Editing": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Keep Editing" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Edytuj dalej" + } + } + } + }, + "Keep existing location": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Keep existing location" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zachowaj istniejącą lokalizację" + } + } + } + }, + "Keep existing locations": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Keep existing locations" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zachowaj istniejące lokalizacje" + } + } + } + }, + "LOCATION": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "LOCATION" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "LOKALIZACJA" + } + } + } + }, + "LOCATION DETAILS": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "LOCATION DETAILS" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "SZCZEGÓŁY LOKALIZACJI" + } + } + } + }, + "Last 365 days": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Last 365 days" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ostatnie 365 dni" + } + } + } + }, + "Latitude": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Latitude" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Szerokość geograficzna" + } + } + } + }, + "Latitude must be a number from -90 to 90.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Latitude must be a number from -90 to 90." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Szerokość geograficzna musi być liczbą od -90 do 90." + } + } + } + }, + "Light": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Light" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Jasny" + } + } + } + }, + "Local dates": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Local dates" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Daty lokalne" + } + } + } + }, + "Location name": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Location name" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nazwa lokalizacji" + } + } + } + }, + "Locations": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Locations" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Lokalizacje" + } + } + } + }, + "Longitude": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Longitude" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Długość geograficzna" + } + } + } + }, + "Longitude must be a number from -180 to 180.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Longitude must be a number from -180 to 180." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Długość geograficzna musi być liczbą od -180 do 180." + } + } + } + }, + "MANAGE LOCATIONS": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "MANAGE LOCATIONS" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "ZARZĄDZAJ LOKALIZACJAMI" + } + } + } + }, + "MANUAL STAYS": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "MANUAL STAYS" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "POBYTY DODANE RĘCZNIE" + } + } + } + }, + "MATCH AREA": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "MATCH AREA" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "OBSZAR DOPASOWANIA" + } + } + } + }, + "MYSELF.MD": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "MYSELF.MD" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "MYSELF.MD" + } + } + } + }, + "Manage Saved Locations": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Manage Saved Locations" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zarządzaj zapisanymi lokalizacjami" + } + } + } + }, + "Manage your saved places": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Manage your saved places" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zarządzaj zapisanymi miejscami" + } + } + } + }, + "Maps and visit fixes": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Maps and visit fixes" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ulepszenia map i wizyt" + } + } + } + }, + "Match radius in meters": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Match radius in meters" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Promień dopasowania w metrach" + } + } + } + }, + "Match radius must be between 25 and 10,000 meters.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Match radius must be between 25 and 10,000 meters." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Promień dopasowania musi wynosić od 25 do 10 000 metrów." + } + } + } + }, + "Match radius: %lld meters": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Match radius: %lld meters" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Promień dopasowania: %lld m" + } + } + } + }, + "Missing required CSV columns: %@.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Missing required CSV columns: %@." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Brak wymaganych kolumn CSV: %@." + } + } + } + }, + "New location": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "New location" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nowa lokalizacja" + } + } + } + }, + "New locations": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "New locations" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nowe lokalizacje" + } + } + } + }, + "New recordings identify countries automatically when network geocoding is enabled. Analyze saved locations to include your earlier history. Large histories can take time; you can stop and resume.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "New recordings identify countries automatically when network geocoding is enabled. Analyze saved locations to include your earlier history. Large histories can take time; you can stop and resume." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nowe nagrania automatycznie rozpoznają kraje, gdy geokodowanie przez sieć jest włączone. Przeanalizuj zapisane lokalizacje, aby uwzględnić wcześniejszą historię. Duża historia może wymagać czasu; możesz zatrzymać i wznowić analizę." + } + } + } + }, + "No Saved Locations": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "No Saved Locations" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Brak zapisanych lokalizacji" + } + } + } + }, + "No country days yet": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "No country days yet" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Brak dni w krajach" + } + } + } + }, + "No saved locations need analysis right now. Unavailable lookups can be retried after an hour.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "No saved locations need analysis right now. Unavailable lookups can be retried after an hour." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Żadna zapisana lokalizacja nie wymaga teraz analizy. Nieudane próby można ponowić po godzinie." + } + } + } + }, + "Open Country Days from Timeline. Review recorded local dates and add or edit manual stays without counting overlapping days twice.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Open Country Days from Timeline. Review recorded local dates and add or edit manual stays without counting overlapping days twice." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Otwórz „Dni w krajach” z osi czasu. Przeglądaj zarejestrowane daty lokalne i dodawaj lub edytuj pobyty ręcznie, bez podwójnego liczenia nakładających się dni." + } + } + } + }, + "Open claim again": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Open claim again" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Otwórz ponownie odbiór dostępu" + } + } + } + }, + "Open in Maps uses your default navigation app where supported, with Apple Maps as a fallback.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Open in Maps uses your default navigation app where supported, with Apple Maps as a fallback." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Opcja „Otwórz w Mapach” korzysta z domyślnej aplikacji nawigacyjnej, gdy jest to obsługiwane. W przeciwnym razie otwiera Mapy Apple." + } + } + } + }, + "Opens this location in your default navigation app when supported.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Opens this location in your default navigation app when supported." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Otwiera tę lokalizację w domyślnej aplikacji nawigacyjnej, gdy jest to obsługiwane." + } + } + } + }, + "Quotation marks must enclose the whole field; escape an inner quote with two quotation marks.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Quotation marks must enclose the whole field; escape an inner quote with two quotation marks." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Cudzysłowy muszą obejmować całe pole; cudzysłów wewnątrz pola zapisz podwójnie." + } + } + } + }, + "Radius must be a number from 25 to 10,000 metres.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Radius must be a number from 25 to 10,000 metres." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Promień musi być liczbą od 25 do 10 000 metrów." + } + } + } + }, + "Recorded": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Recorded" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zarejestrowany" + } + } + } + }, + "Recorded + manual": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Recorded + manual" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zarejestrowany i dodany ręcznie" + } + } + } + }, + "Review CSV imports": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Review CSV imports" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Sprawdzaj importy CSV" + } + } + } + }, + "Review Import": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Review Import" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Sprawdź import" + } + } + } + }, + "Review days present in each country.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Review days present in each country." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przeglądaj dni pobytu w poszczególnych krajach." + } + } + } + }, + "Review locations, invalid rows, and duplicates before importing. Keep existing locations or update matches.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Review locations, invalid rows, and duplicates before importing. Keep existing locations or update matches." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Sprawdź lokalizacje, nieprawidłowe wiersze i duplikaty przed importem. Zachowaj istniejące lokalizacje lub zaktualizuj dopasowane wpisy." + } + } + } + }, + "Row %lld": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Row %lld" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wiersz %lld" + } + } + } + }, + "SAVED LOCATIONS": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "SAVED LOCATIONS" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "ZAPISANE LOKALIZACJE" + } + } + } + }, + "Save places missing from Maps": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Save places missing from Maps" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zapisuj miejsca nieobecne w Mapach" + } + } + } + }, + "Saved Locations in Settings": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Saved Locations in Settings" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zapisane lokalizacje w Ustawieniach" + } + } + } + }, + "Saved location map": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Saved location map" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Mapa zapisanej lokalizacji" + } + } + } + }, + "Saved locations name nearby future visits. Editing or deleting one keeps your past visits unchanged.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Saved locations name nearby future visits. Editing or deleting one keeps your past visits unchanged." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zapisane lokalizacje nadają nazwy przyszłym wizytom w pobliżu. Ich edycja lub usunięcie nie zmienia wcześniejszych wizyt." + } + } + } + }, + "Saves this reusable location.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Saves this reusable location." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zapisuje tę lokalizację do ponownego wykorzystania." + } + } + } + }, + "Search countries": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Search countries" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Szukaj krajów" + } + } + } + }, + "Search for a place or move a pin on the map.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Search for a place or move a pin on the map." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wyszukaj miejsce lub przesuń pinezkę na mapie." + } + } + } + }, + "Search for an address or place a pin anywhere, including places missing from Maps.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Search for an address or place a pin anywhere, including places missing from Maps." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wyszukaj adres lub umieść pinezkę w dowolnym miejscu, także nieobecnym w Mapach." + } + } + } + }, + "Search saved locations": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Search saved locations" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Szukaj zapisanych lokalizacji" + } + } + } + }, + "Selects this location.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Selects this location." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wybiera tę lokalizację." + } + } + } + }, + "Skipped duplicates": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Skipped duplicates" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Pominięte duplikaty" + } + } + } + }, + "Smoother visit deletion": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Smoother visit deletion" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Sprawniejsze usuwanie wizyt" + } + } + } + }, + "Stop": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Stop" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zatrzymaj" + } + } + } + }, + "Stopping analysis…": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Stopping analysis…" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zatrzymywanie analizy…" + } + } + } + }, + "System": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "System" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Systemowy" + } + } + } + }, + "System follows your device’s appearance.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "System follows your device’s appearance." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Tryb systemowy dostosowuje się do wyglądu urządzenia." + } + } + } + }, + "THEME": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "THEME" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "MOTYW" + } + } + } + }, + "Tap the map to place the pin exactly where you want it.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Tap the map to place the pin exactly where you want it." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Stuknij mapę, aby umieścić pinezkę w wybranym miejscu." + } + } + } + }, + "The CSV file has no saved-place rows.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "The CSV file has no saved-place rows." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Plik CSV nie zawiera wierszy z zapisanymi miejscami." + } + } + } + }, + "The CSV file is empty.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "The CSV file is empty." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Plik CSV jest pusty." + } + } + } + }, + "The CSV header contains duplicate column names.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "The CSV header contains duplicate column names." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nagłówek CSV zawiera powtarzające się nazwy kolumn." + } + } + } + }, + "The CSV header contains invalid quotation marks.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "The CSV header contains invalid quotation marks." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nagłówek CSV zawiera nieprawidłowe cudzysłowy." + } + } + } + }, + "The tracker is free. Export CSV with your existing lifetime export purchase.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "The tracker is free. Export CSV with your existing lifetime export purchase." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Śledzenie jest bezpłatne. Eksportuj CSV w ramach zakupionego dożywotniego dostępu do eksportu." + } + } + } + }, + "Theme": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Theme" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Motyw" + } + } + } + }, + "Then sign in to choose the myself.md account that receives access. Each original purchase can be linked to one account. Family-shared access alone does not qualify; the purchaser can claim.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Then sign in to choose the myself.md account that receives access. Each original purchase can be linked to one account. Family-shared access alone does not qualify; the purchaser can claim." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Następnie zaloguj się, aby wybrać konto myself.md, które otrzyma dostęp. Każdy pierwotny zakup można powiązać z jednym kontem. Sam dostęp przez Chmurę rodzinną nie uprawnia do odbioru; może to zrobić osoba, która dokonała zakupu." + } + } + } + }, + "This removes the reusable location. Your past visits are kept.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "This removes the reusable location. Your past visits are kept." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Usuwa zapisaną lokalizację. Wcześniejsze wizyty zostają zachowane." + } + } + } + }, + "This saved location no longer exists. Close the editor and try again.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "This saved location no longer exists. Close the editor and try again." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ta zapisana lokalizacja już nie istnieje. Zamknij edytor i spróbuj ponownie." + } + } + } + }, + "This will permanently delete all visits, location points, and manual country stays. This action cannot be undone.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "This will permanently delete all visits, location points, and manual country stays. This action cannot be undone." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Spowoduje to trwałe usunięcie wszystkich wizyt, punktów lokalizacji i ręcznie dodanych pobytów w krajach. Tej czynności nie można cofnąć." + } + } + } + }, + "This year": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "This year" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Ten rok" + } + } + } + }, + "Unable to Save Location": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Unable to Save Location" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nie można zapisać lokalizacji" + } + } + } + }, + "Unexpected text after a quoted field.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Unexpected text after a quoted field." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nieoczekiwany tekst po polu ujętym w cudzysłowy." + } + } + } + }, + "Unnamed location": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Unnamed location" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Lokalizacja bez nazwy" + } + } + } + }, + "Update matching location": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Update matching location" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zaktualizuj dopasowaną lokalizację" + } + } + } + }, + "Update matching locations": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Update matching locations" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zaktualizuj dopasowane lokalizacje" + } + } + } + }, + "Updated locations": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Updated locations" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zaktualizowane lokalizacje" + } + } + } + }, + "Use System, Light, or Dark in Settings.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Use System, Light, or Dark in Settings." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wybierz tryb systemowy, jasny lub ciemny w Ustawieniach." + } + } + } + }, + "Use name, latitude, longitude, address, and radius_meters columns. Address and radius are optional; the default radius is 150 meters. You can review the locations before importing.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Use name, latitude, longitude, address, and radius_meters columns. Address and radius are optional; the default radius is 150 meters. You can review the locations before importing." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Użyj kolumn name, latitude, longitude, address i radius_meters. Adres i promień są opcjonalne; domyślny promień to 150 metrów. Przed importem możesz sprawdzić lokalizacje." + } + } + } + }, + "Use your default navigation app": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Use your default navigation app" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Używaj domyślnej aplikacji nawigacyjnej" + } + } + } + }, + "Verify purchase and continue": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Verify purchase and continue" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zweryfikuj zakup i kontynuuj" + } + } + } + }, + "Verifying purchase…": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Verifying purchase…" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Weryfikowanie zakupu…" + } + } + } + }, + "Waiting before the next country lookup… You can stop and continue later.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Waiting before the next country lookup… You can stop and continue later." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Oczekiwanie przed kolejnym ustaleniem kraju… Możesz zatrzymać analizę i kontynuować później." + } + } + } + }, + "We’ll send your App Store purchase proof to myself.md to verify eligibility. Your health and location data stay on your device.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "We’ll send your App Store purchase proof to myself.md to verify eligibility. Your health and location data stay on your device." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wyślemy dowód zakupu z App Store do myself.md, aby potwierdzić uprawnienia. Dane dotyczące zdrowia i lokalizacji pozostają na urządzeniu." + } + } + } + }, + "You can also enter coordinates directly instead of using the map.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "You can also enter coordinates directly instead of using the map." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Możesz też wpisać współrzędne bezpośrednio zamiast używać mapy." + } + } + } + }, + "Your changes to this saved location have not been saved.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Your changes to this saved location have not been saved." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zmiany tej lokalizacji nie zostały zapisane." + } + } + } + }, + "Your existing purchase includes complimentary lifetime access to myself.md.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Your existing purchase includes complimentary lifetime access to myself.md." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Twój dotychczasowy zakup obejmuje bezpłatny dożywotni dostęp do myself.md." + } + } + } + }, + "e.g. Home or Favorite Cafe": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "e.g. Home or Favorite Cafe" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "np. Dom lub Ulubiona kawiarnia" + } + } + } + }, + "m": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "m" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "m" + } + } + } + }, + "myself.md access": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "myself.md access" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Dostęp do myself.md" + } + } + } + }, + "−180 to 180": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "−180 to 180" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Od −180 do 180" + } + } + } + }, + "−90 to 90": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "−90 to 90" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Od −90 do 90" + } + } + } + }, + "Recent files with data in this preview: %lld. Export will process every selected file.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Recent files with data in this preview: %lld. Export will process every selected file." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Najnowsze pliki z danymi w tym podglądzie: %lld. Eksport obejmie każdy wybrany plik." + } + }, + "es": { + "stringUnit": { + "state": "translated", + "value": "Archivos recientes con datos en esta vista previa: %lld. La exportación procesará todos los archivos seleccionados." + } + }, + "fr": { + "stringUnit": { + "state": "translated", + "value": "Fichiers récents contenant des données dans cet aperçu : %lld. L’export traitera tous les fichiers sélectionnés." + } + }, + "pt-BR": { + "stringUnit": { + "state": "translated", + "value": "Arquivos recentes com dados nesta prévia: %lld. A exportação processará todos os arquivos selecionados." + } + }, + "ru": { + "stringUnit": { + "state": "translated", + "value": "Последние файлы с данными в этом предпросмотре: %lld. При экспорте будут обработаны все выбранные файлы." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "このプレビューに含まれるデータのある最新ファイル数:%lld。書き出しでは選択したすべてのファイルが処理されます。" + } + }, + "zh-Hans": { + "stringUnit": { + "state": "translated", + "value": "此预览中包含数据的最新文件数:%lld。导出将处理所有选定的文件。" + } + }, + "ar": { + "stringUnit": { + "state": "translated", + "value": "الملفات الحديثة التي تحتوي على بيانات في هذه المعاينة: %lld. سيعالج التصدير جميع الملفات المحددة." + } + }, + "hi": { + "stringUnit": { + "state": "translated", + "value": "इस पूर्वावलोकन में डेटा वाली हाल की फ़ाइलें: %lld। निर्यात में हर चुनी गई फ़ाइल संसाधित होगी।" + } + }, + "bn": { + "stringUnit": { + "state": "translated", + "value": "এই প্রিভিউতে ডেটাসহ সাম্প্রতিক ফাইল: %lld। এক্সপোর্টে প্রতিটি নির্বাচিত ফাইল প্রক্রিয়া করা হবে।" + } + } + } + }, + "Outing %lld": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Outing %lld" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Podróż %lld" + } + } + } + }, + "1+ point": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "1+ point" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "1+ pkt" + } + } + } + }, + "%lld+ points": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "%lld+ points" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%lld+ pkt" + } + } + } + }, + "TESTING…": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "TESTING…" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "TESTOWANIE…" + } + } + } + }, + "TEST CONNECTION": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "TEST CONNECTION" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "SPRAWDŹ POŁĄCZENIE" + } + } + } + }, + "SEND NOW": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "SEND NOW" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WYŚLIJ TERAZ" + } + } + } + }, + "Unsupported watch sync payload version %lld.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Unsupported watch sync payload version %lld." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nieobsługiwana wersja danych synchronizacji zegarka: %lld." + } + } + } + }, + "The iPhone data store is not ready yet.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "The iPhone data store is not ready yet." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Magazyn danych iPhone’a nie jest jeszcze gotowy." + } + } + } + }, + "Showing %lld of %lld path points": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Showing %1$lld of %2$lld path points" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Widoczne punkty trasy: %1$lld z %2$lld" + } + } + } + }, + "Showing %lld of %lld matched photos": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Showing %1$lld of %2$lld matched photos" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Widoczne dopasowane zdjęcia: %1$lld z %2$lld" + } + } + } + }, + "Route replay: %@": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Route replay: %@" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Odtwarzanie trasy: %@" + } + } + } + }, + "Active session: %@": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Active session: %@" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Aktywna sesja: %@" + } + } + } + }, + "Active session start": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Active session start" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Początek aktywnej sesji" + } + } + } + }, + "Active session current location": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Active session current location" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Bieżąca lokalizacja aktywnej sesji" + } + } + } + }, + "%lld visits": { + "localizations": { + "pl": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "%lld wizyta" + } + }, + "few": { + "stringUnit": { + "state": "translated", + "value": "%lld wizyty" + } + }, + "many": { + "stringUnit": { + "state": "translated", + "value": "%lld wizyt" + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "%lld wizyty" + } + } + } + } + }, + "en": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "%lld visit" + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "%lld visits" + } + } + } + } + } + } + }, + "%lld path points": { + "localizations": { + "pl": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "%lld punkt trasy" + } + }, + "few": { + "stringUnit": { + "state": "translated", + "value": "%lld punkty trasy" + } + }, + "many": { + "stringUnit": { + "state": "translated", + "value": "%lld punktów trasy" + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "%lld punktu trasy" + } + } + } + } + }, + "en": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "%lld path point" + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "%lld path points" + } + } + } + } + } + } + }, + "%lld matched photos": { + "localizations": { + "pl": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "%lld dopasowane zdjęcie" + } + }, + "few": { + "stringUnit": { + "state": "translated", + "value": "%lld dopasowane zdjęcia" + } + }, + "many": { + "stringUnit": { + "state": "translated", + "value": "%lld dopasowanych zdjęć" + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "%lld dopasowanego zdjęcia" + } + } + } + } + }, + "en": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "%lld matched photo" + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "%lld matched photos" + } + } + } + } + } + } + }, + "%lld photos taken here": { + "localizations": { + "pl": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "%lld zdjęcie zrobione tutaj" + } + }, + "few": { + "stringUnit": { + "state": "translated", + "value": "%lld zdjęcia zrobione tutaj" + } + }, + "many": { + "stringUnit": { + "state": "translated", + "value": "%lld zdjęć zrobionych tutaj" + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "%lld zdjęcia zrobionego tutaj" + } + } + } + } + }, + "en": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "%lld photo taken here" + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "%lld photos taken here" + } + } + } + } + } + } + }, + "FLUSH QUEUE": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "FLUSH QUEUE" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WYŚLIJ KOLEJKĘ" + } + } + } + }, + "Tracking is off.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Tracking is off." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Śledzenie jest wyłączone." + } + } + } + }, + "Browse %lld photo places": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Browse %lld photo places" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przeglądaj miejsca ze zdjęciami: %lld" + } + } + } + }, + "Browse every photo": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Browse every photo" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przeglądaj wszystkie zdjęcia" + } + } + } + }, + "Claim your myself.md access": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Claim your myself.md access" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Odbierz dostęp do myself.md" + } + } + } + }, + "Easier photo selection": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Easier photo selection" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Łatwiejszy wybór zdjęć" + } + } + } + }, + "Every place is listed here, even outside the visible map. Area annotations group places for rendering; they do not represent one shared location.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Every place is listed here, even outside the visible map. Area annotations group places for rendering; they do not represent one shared location." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Tutaj znajdziesz wszystkie miejsca, także poza widocznym obszarem mapy. Znaczniki obszarów grupują miejsca na potrzeby wyświetlania; nie oznaczają jednej wspólnej lokalizacji." + } + } + } + }, + "Existing purchasers can verify their purchase in Settings and sign in to myself.md to claim complimentary lifetime access.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Existing purchasers can verify their purchase in Settings and sign in to myself.md to claim complimentary lifetime access." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Osoby, które już dokonały zakupu, mogą zweryfikować go w Ustawieniach i zalogować się do myself.md, aby odebrać bezpłatny dożywotni dostęp." + } + } + } + }, + "Explore all matching photos in each group, or use Browse Photo Places to find locations beyond the markers currently shown on the map.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Explore all matching photos in each group, or use Browse Photo Places to find locations beyond the markers currently shown on the map." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Przeglądaj wszystkie pasujące zdjęcia w każdej grupie lub otwórz listę miejsc ze zdjęciami, aby znaleźć lokalizacje poza znacznikami widocznymi na mapie." + } + } + } + }, + "Explore your photo map": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Explore your photo map" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Odkrywaj mapę swoich zdjęć" + } + } + } + }, + "Lists every matched place, including places outside the visible map area.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Lists every matched place, including places outside the visible map area." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wyświetla wszystkie dopasowane miejsca, także poza widocznym obszarem mapy." + } + } + } + }, + "Next page": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Next page" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Następna strona" + } + } + } + }, + "Open the photo you intended, even when nearby dots or route markers overlap.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Open the photo you intended, even when nearby dots or route markers overlap." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Otwieraj wybrane zdjęcie także wtedy, gdy pobliskie punkty lub znaczniki trasy nakładają się na siebie." + } + } + } + }, + "Opens the complete photo collection at this place.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Opens the complete photo collection at this place." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Otwiera wszystkie zdjęcia z tego miejsca." + } + } + } + }, + "Opens the places and all photos in this area.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Opens the places and all photos in this area." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Otwiera miejsca i wszystkie zdjęcia z tego obszaru." + } + } + } + }, + "PHOTOS IN THIS AREA": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "PHOTOS IN THIS AREA" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "ZDJĘCIA W OKOLICY" + } + } + } + }, + "Photo dots": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Photo dots" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Punkty zdjęć" + } + } + } + }, + "Photos as dots": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Photos as dots" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zdjęcia jako punkty" + } + } + } + }, + "Photos in This Area": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Photos in This Area" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zdjęcia w okolicy" + } + } + } + }, + "Previous page": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Previous page" + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Poprzednia strona" + } + } + } + }, + "Shows thumbnail previews inside photo markers. Turn this off to use compact camera pins while keeping photos available on the map. Photo dots override this setting without changing it.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Shows thumbnail previews inside photo markers. Turn this off to use compact camera pins while keeping photos available on the map. Photo dots override this setting without changing it." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Pokazuje miniatury wewnątrz znaczników zdjęć. Wyłącz tę opcję, aby używać małych pinezek z ikoną aparatu i zachować dostęp do zdjęć na mapie. Punkty zdjęć mają pierwszeństwo przed tą opcją, ale nie zmieniają jej ustawienia." + } + } + } + }, + "Tap any thumbnail to view it full screen, then use the arrows to move through all photos in this group.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Tap any thumbnail to view it full screen, then use the arrows to move through all photos in this group." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Stuknij miniaturę, aby wyświetlić zdjęcie na pełnym ekranie, a następnie użyj strzałek, aby przeglądać wszystkie zdjęcia z tej grupy." + } + } + } + }, + "Turn on Photo dots in the map filters for a clearer view of where you took your photos. Your choice is saved.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Turn on Photo dots in the map filters for a clearer view of where you took your photos. Your choice is saved." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Włącz punkty zdjęć w filtrach mapy, aby lepiej widzieć miejsca wykonania zdjęć. Twój wybór zostanie zapamiętany." + } + } + } + }, + "Uses small dots instead of photo images or camera pins. Larger dots represent grouped photos. Tap a dot to browse; previews load only when you open the photos. Turn this off to restore your image or pin preference.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Uses small dots instead of photo images or camera pins. Larger dots represent grouped photos. Tap a dot to browse; previews load only when you open the photos. Turn this off to restore your image or pin preference." + } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Używa małych punktów zamiast miniatur zdjęć lub pinezek z ikoną aparatu. Większe punkty oznaczają grupy zdjęć. Stuknij punkt, aby je przeglądać; podglądy są wczytywane dopiero po otwarciu zdjęć. Wyłącz tę opcję, aby przywrócić wcześniejszy wybór miniatur lub pinezek." + } + } + } + }, + "%lld places": { + "localizations": { + "en": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "%lld place" + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "%lld places" + } + } + } + } + }, + "pl": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "%lld miejsce" + } + }, + "few": { + "stringUnit": { + "state": "translated", + "value": "%lld miejsca" + } + }, + "many": { + "stringUnit": { + "state": "translated", + "value": "%lld miejsc" + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "%lld miejsca" + } + } + } + } + } + } + }, + "%lld photos in this area": { + "localizations": { + "en": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "%lld photo in this area" + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "%lld photos in this area" + } + } + } + } + }, + "pl": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "%lld zdjęcie w tej okolicy" + } + }, + "few": { + "stringUnit": { + "state": "translated", + "value": "%lld zdjęcia w tej okolicy" + } + }, + "many": { + "stringUnit": { + "state": "translated", + "value": "%lld zdjęć w tej okolicy" + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "%lld zdjęcia w tej okolicy" + } + } + } + } + } + } + }, + "%lld photos at %@": { + "localizations": { + "en": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "%1$lld photo at %2$@" + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "%1$lld photos at %2$@" + } + } + } + } + }, + "pl": { + "variations": { + "plural": { + "one": { + "stringUnit": { + "state": "translated", + "value": "%1$lld zdjęcie w %2$@" + } + }, + "few": { + "stringUnit": { + "state": "translated", + "value": "%1$lld zdjęcia w %2$@" + } + }, + "many": { + "stringUnit": { + "state": "translated", + "value": "%1$lld zdjęć w %2$@" + } + }, + "other": { + "stringUnit": { + "state": "translated", + "value": "%1$lld zdjęcia w %2$@" + } + } + } + } } } } diff --git a/IsoMe/Models/LocationPoint.swift b/IsoMe/Models/LocationPoint.swift index 5285bca7..7a397620 100644 --- a/IsoMe/Models/LocationPoint.swift +++ b/IsoMe/Models/LocationPoint.swift @@ -63,11 +63,11 @@ final class LocationPoint { } var accessibilityCoordinateSummary: String { - String(format: String(localized: "Latitude %.4f, longitude %.4f"), latitude, longitude) + String(format: String(localized: "Latitude %.4f, longitude %.4f"), locale: .current, latitude, longitude) } var accessibilityAccuracySummary: String { - String(format: String(localized: "Accuracy about %.0f meters"), horizontalAccuracy) + String(format: String(localized: "Accuracy about %.0f meters"), locale: .current, horizontalAccuracy) } var accessibilityValue: String { @@ -78,7 +78,7 @@ final class LocationPoint { ] if let speed { - parts.append(String(format: String(localized: "Speed %.1f meters per second"), speed)) + parts.append(String(format: String(localized: "Speed %.1f meters per second"), locale: .current, speed)) } if isOutlier { diff --git a/IsoMe/Models/RecordingSession.swift b/IsoMe/Models/RecordingSession.swift index 2e7a7225..3814d3e5 100644 --- a/IsoMe/Models/RecordingSession.swift +++ b/IsoMe/Models/RecordingSession.swift @@ -55,7 +55,7 @@ struct RecordingSessionSummary: Identifiable { } var defaultTitle: String { - "Outing \(sequenceNumber)" + String(localized: "Outing \(sequenceNumber)") } var effectiveEndDate: Date { @@ -287,7 +287,7 @@ enum RecordingSessionMinimumPointCountPreset: Int, CaseIterable, Identifiable { var id: Int { rawValue } var label: String { - rawValue == 1 ? "1+ point" : "\(rawValue)+ points" + rawValue == 1 ? String(localized: "1+ point") : String(localized: "\(rawValue)+ points") } } diff --git a/IsoMe/Models/Visit.swift b/IsoMe/Models/Visit.swift index cdf589dc..46f1e92c 100644 --- a/IsoMe/Models/Visit.swift +++ b/IsoMe/Models/Visit.swift @@ -213,12 +213,12 @@ final class Visit { parts.append(address) } - parts.append(String(format: "Latitude %.4f, longitude %.4f", latitude, longitude)) + parts.append(String(format: String(localized: "Latitude %.4f, longitude %.4f"), locale: .current, latitude, longitude)) return parts.joined(separator: ". ") } var accessibilityHint: String { - "Opens visit details." + String(localized: "Opens visit details.") } } diff --git a/IsoMe/Services/IsoMeEntities.swift b/IsoMe/Services/IsoMeEntities.swift index 4351273d..94f81641 100644 --- a/IsoMe/Services/IsoMeEntities.swift +++ b/IsoMe/Services/IsoMeEntities.swift @@ -60,7 +60,7 @@ struct VisitEntity: AppEntity { } static func displayName(customName: String?, locationName: String?, address: String?) -> String { - normalized(customName) ?? normalized(locationName) ?? normalized(address) ?? "Visit" + normalized(customName) ?? normalized(locationName) ?? normalized(address) ?? String(localized: "Visit") } /// Same trim/nil guarding as `Visit.normalizedCustomName` in diff --git a/IsoMe/Services/IsoMeIntents.swift b/IsoMe/Services/IsoMeIntents.swift index 766c6e67..92a73ef2 100644 --- a/IsoMe/Services/IsoMeIntents.swift +++ b/IsoMe/Services/IsoMeIntents.swift @@ -41,9 +41,9 @@ enum IntentSupport { let total = Int(seconds) let h = total / 3600 let m = (total % 3600) / 60 - if h > 0 && m > 0 { return "\(h)h \(m)m" } - if h > 0 { return "\(h)h" } - return "\(m)m" + if h > 0 && m > 0 { return String(localized: "\(h)h \(m)m") } + if h > 0 { return String(localized: "\(h)h") } + return String(localized: "\(m)m") } } diff --git a/IsoMe/Services/LiveActivityManager.swift b/IsoMe/Services/LiveActivityManager.swift index 92d133ab..a1c1db89 100644 --- a/IsoMe/Services/LiveActivityManager.swift +++ b/IsoMe/Services/LiveActivityManager.swift @@ -158,7 +158,7 @@ final class LiveActivityManager: ObservableObject { guard let activity = currentActivity else { return } let finalState = LocationActivityAttributes.ContentState( - locationName: "Tracking Stopped", + locationName: String(localized: "Tracking stopped."), locationsRecorded: locationsRecorded, distanceTraveled: totalDistance, remainingSeconds: nil, diff --git a/IsoMe/Services/WatchLocationSyncReceiver.swift b/IsoMe/Services/WatchLocationSyncReceiver.swift index fe49383e..d0615af4 100644 --- a/IsoMe/Services/WatchLocationSyncReceiver.swift +++ b/IsoMe/Services/WatchLocationSyncReceiver.swift @@ -30,7 +30,7 @@ final class WatchLocationSyncReceiver: NSObject, ObservableObject { deviceID: payload.deviceID, sequence: payload.sequence, succeeded: false, - errorMessage: "Unsupported watch sync payload version \(payload.version)." + errorMessage: String(localized: "Unsupported watch sync payload version \(payload.version).") ) } @@ -39,7 +39,7 @@ final class WatchLocationSyncReceiver: NSObject, ObservableObject { deviceID: payload.deviceID, sequence: payload.sequence, succeeded: false, - errorMessage: "The iPhone data store is not ready yet." + errorMessage: String(localized: "The iPhone data store is not ready yet.") ) } diff --git a/IsoMe/ViewModels/LocationViewModel.swift b/IsoMe/ViewModels/LocationViewModel.swift index ceac259f..10c5d2d7 100644 --- a/IsoMe/ViewModels/LocationViewModel.swift +++ b/IsoMe/ViewModels/LocationViewModel.swift @@ -851,7 +851,7 @@ final class LocationViewModel { } var parts = [ - String(localized: "\(pointCount) \(pointCount == 1 ? "point" : "points")"), + pointCount == 1 ? String(localized: "1 point") : String(localized: "\(pointCount) points"), String(localized: "Duration \(formattedSessionTrackingDuration)"), String(localized: "Distance \(formattedSessionDistance)") ] diff --git a/IsoMe/Views/ExportView.swift b/IsoMe/Views/ExportView.swift index 3d7a8a0f..372fabe9 100644 --- a/IsoMe/Views/ExportView.swift +++ b/IsoMe/Views/ExportView.swift @@ -956,9 +956,9 @@ struct ExportView: View { Spacer() Picker("", selection: $options.minVisitDurationMinutes) { Text("None").tag(0.0) - Text("5m").tag(5.0) - Text("15m").tag(15.0) - Text("30m").tag(30.0) + Text("5 min").tag(5.0) + Text("15 min").tag(15.0) + Text("30 min").tag(30.0) Text("1h").tag(60.0) } .labelsHidden() @@ -1547,7 +1547,7 @@ struct IsoMeExportPreviewView: View { HStack(alignment: .top, spacing: 6) { Image(systemName: "info.circle") .font(.caption2) - Text("Previewing the \(records.count) most recent file\(records.count == 1 ? "" : "s") with data. Export will process every selected file.") + Text("Recent files with data in this preview: \(records.count). Export will process every selected file.") .font(TE.mono(.caption2, weight: .medium)) } .foregroundStyle(TE.textMuted) @@ -1732,7 +1732,7 @@ private struct IsoMePreviewFile: Identifiable { if let format = exportFormat { return format.displayName } - return plannedFile.displayName ?? "Export File" + return plannedFile.displayName ?? String(localized: "Export file") } var iconName: String { diff --git a/IsoMe/Views/MapView.swift b/IsoMe/Views/MapView.swift index 851c61f7..01d8c406 100644 --- a/IsoMe/Views/MapView.swift +++ b/IsoMe/Views/MapView.swift @@ -276,7 +276,7 @@ struct LocationMapView: View { } if isRouteReplayEnabled, let routeReplaySnapshot { - Annotation("Replay Position", coordinate: routeReplaySnapshot.currentPoint.coordinate) { + Annotation(String(localized: "Route replay position"), coordinate: routeReplaySnapshot.currentPoint.coordinate) { RouteReplayMarker(snapshot: routeReplaySnapshot) } } @@ -289,9 +289,9 @@ struct LocationMapView: View { } if showSessionPath, let firstSessionPoint = activeSessionPoints.first { - Annotation("Session Start", coordinate: firstSessionPoint.coordinate) { + Annotation(String(localized: "Path start"), coordinate: firstSessionPoint.coordinate) { StartMarker( - accessibilityLabel: "Active session start", + accessibilityLabel: String(localized: "Active session start"), accessibilityValue: firstSessionPoint.accessibilityValue ) } @@ -300,9 +300,9 @@ struct LocationMapView: View { if showSessionPath, let lastSessionPoint = activeSessionPoints.last, activeSessionPoints.count > 1 { - Annotation("Current", coordinate: lastSessionPoint.coordinate) { + Annotation(String(localized: "Current location"), coordinate: lastSessionPoint.coordinate) { CurrentLocationMarker( - accessibilityLabel: "Active session current location", + accessibilityLabel: String(localized: "Active session current location"), accessibilityValue: lastSessionPoint.accessibilityValue ) } @@ -1047,27 +1047,27 @@ struct LocationMapView: View { private var mapAccessibilitySummary: String { var parts: [String] = [] - parts.append("\(filteredVisits.count) \(filteredVisits.count == 1 ? "visit" : "visits")") + parts.append(String(localized: "\(filteredVisits.count) visits")) if viewModel.mapLocationPointCount > filteredPoints.count { - parts.append("Showing \(filteredPoints.count) of \(viewModel.mapLocationPointCount) path points") + parts.append(String(localized: "Showing \(filteredPoints.count) of \(viewModel.mapLocationPointCount) path points")) } else { - parts.append("\(filteredPoints.count) \(filteredPoints.count == 1 ? "path point" : "path points")") + parts.append(String(localized: "\(filteredPoints.count) path points")) } if showPhotoMarkers { if viewModel.mapPhotoMomentCount > filteredPhotoMoments.count { - parts.append("Showing \(filteredPhotoMoments.count) of \(viewModel.mapPhotoMomentCount) matched photos") + parts.append(String(localized: "Showing \(filteredPhotoMoments.count) of \(viewModel.mapPhotoMomentCount) matched photos")) } else { - parts.append("\(filteredPhotoMoments.count) \(filteredPhotoMoments.count == 1 ? "matched photo" : "matched photos")") + parts.append(String(localized: "\(filteredPhotoMoments.count) matched photos")) } } if isRouteReplayEnabled, let routeReplaySnapshot { - parts.append("Route replay: \(routeReplaySnapshot.accessibilitySummary)") + parts.append(String(localized: "Route replay: \(routeReplaySnapshot.accessibilitySummary)")) } if !activeSessionPoints.isEmpty { - parts.append("Active session: \(viewModel.sessionAccessibilitySummary)") + parts.append(String(localized: "Active session: \(viewModel.sessionAccessibilitySummary)")) } return parts.joined(separator: ". ") @@ -1227,7 +1227,7 @@ struct MapTrackingControlPill: View { } .buttonStyle(.plain) .accessibilityLabel(isTracking ? "Stop tracking" : "Start tracking") - .accessibilityValue(isTracking ? viewModel.sessionAccessibilitySummary : "Tracking is off.") + .accessibilityValue(isTracking ? viewModel.sessionAccessibilitySummary : String(localized: "Tracking is off.")) .accessibilityHint(isTracking ? "Stops the active session." : "Starts a new location tracking session.") .sensoryFeedback(.impact(flexibility: .solid), trigger: isTracking) } @@ -1479,9 +1479,9 @@ struct PathPointTooltip: View { private func formattedSpeed(_ metersPerSecond: Double) -> String { if usesMetricDistanceUnits { - return String(format: "%.1f km/h", metersPerSecond * 3.6) + return String(format: "%.1f km/h", locale: .current, metersPerSecond * 3.6) } - return String(format: "%.1f mph", metersPerSecond * 2.23693629) + return String(format: "%.1f mph", locale: .current, metersPerSecond * 2.23693629) } } diff --git a/IsoMe/Views/OutingsView.swift b/IsoMe/Views/OutingsView.swift index cf703210..d3653843 100644 --- a/IsoMe/Views/OutingsView.swift +++ b/IsoMe/Views/OutingsView.swift @@ -1767,9 +1767,9 @@ private struct RecordingSessionDetailView: View { private func formattedSpeed(_ metersPerSecond: Double) -> String { if usesMetricDistanceUnits { - return String(format: "%.1f km/h", metersPerSecond * 3.6) + return String(format: "%.1f km/h", locale: .current, metersPerSecond * 3.6) } - return String(format: "%.1f mph", metersPerSecond * 2.23693629) + return String(format: "%.1f mph", locale: .current, metersPerSecond * 2.23693629) } } diff --git a/IsoMe/Views/PhotoMomentViews.swift b/IsoMe/Views/PhotoMomentViews.swift index 2fbb8bc5..d7a70cdd 100644 --- a/IsoMe/Views/PhotoMomentViews.swift +++ b/IsoMe/Views/PhotoMomentViews.swift @@ -188,7 +188,9 @@ struct PhotoMomentCluster: Identifiable { } var accessibilityLabel: String { - isArea ? "\(count) photos in this area" : "\(count) photos taken here" + isArea + ? String(localized: "\(count) photos in this area") + : String(localized: "\(count) photos taken here") } var accessibilityValue: String { diff --git a/IsoMe/Views/SessionPathMapView.swift b/IsoMe/Views/SessionPathMapView.swift index f0b8982f..25e26b9e 100644 --- a/IsoMe/Views/SessionPathMapView.swift +++ b/IsoMe/Views/SessionPathMapView.swift @@ -60,23 +60,23 @@ struct SessionPathMapView: View { // Start marker (first point) if let firstPoint = points.first { - Annotation("Start", coordinate: firstPoint.coordinate) { + Annotation(String(localized: "Path start"), coordinate: firstPoint.coordinate) { StartMarker( - accessibilityLabel: "Session path start", + accessibilityLabel: String(localized: "Path start"), accessibilityValue: firstPoint.accessibilityValue ) } } if let replaySnapshot { - Annotation("Replay Position", coordinate: replaySnapshot.currentPoint.coordinate) { + Annotation(String(localized: "Route replay position"), coordinate: replaySnapshot.currentPoint.coordinate) { RouteReplayMarker(snapshot: replaySnapshot) } } else if let lastPoint = points.last, points.count > 1 { // End/Current marker (last point) - Annotation("Current", coordinate: lastPoint.coordinate) { + Annotation(String(localized: "Current location"), coordinate: lastPoint.coordinate) { CurrentLocationMarker( - accessibilityLabel: "Session path current location", + accessibilityLabel: String(localized: "Current location"), accessibilityValue: lastPoint.accessibilityValue ) } @@ -201,12 +201,14 @@ struct SessionPathMapView: View { } private func formattedDistance(_ meters: Double) -> String { - if meters >= 1_000 { - let value = String(format: "%.1f", locale: Locale.current, meters / 1_000) - return String(localized: "\(value) kilometers") - } - let value = String(format: "%.0f", locale: Locale.current, meters) - return String(localized: "\(value) meters") + let formatter = MeasurementFormatter() + formatter.unitStyle = .long + formatter.unitOptions = .providedUnit + formatter.numberFormatter.maximumFractionDigits = meters >= 1_000 ? 1 : 0 + let distance = meters >= 1_000 + ? Measurement(value: meters / 1_000, unit: UnitLength.kilometers) + : Measurement(value: meters, unit: UnitLength.meters) + return formatter.string(from: distance) } } diff --git a/IsoMe/Views/WebhookSettingsView.swift b/IsoMe/Views/WebhookSettingsView.swift index 24111138..2bf83ac0 100644 --- a/IsoMe/Views/WebhookSettingsView.swift +++ b/IsoMe/Views/WebhookSettingsView.swift @@ -577,7 +577,7 @@ struct WebhookSettingsView: View { @ViewBuilder private func webhookButtonLabel( - _ title: String, + _ title: LocalizedStringKey, systemImage: String, showsTrailingArrow: Bool = true, isLoading: Bool = false diff --git a/IsoMeWatch/InfoPlist.xcstrings b/IsoMeWatch/InfoPlist.xcstrings index b4c8c35a..0b62d843 100644 --- a/IsoMeWatch/InfoPlist.xcstrings +++ b/IsoMeWatch/InfoPlist.xcstrings @@ -63,6 +63,12 @@ "state": "translated", "value": "iso.me" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "iso.me" + } } } }, @@ -128,6 +134,12 @@ "state": "translated", "value": "IsoMeWatch" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "IsoMeWatch" + } } } }, @@ -193,6 +205,12 @@ "state": "translated", "value": "iso.me 使用 Apple Watch 的位置在手表上直接记录访问和距离。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "iso.me używa lokalizacji Apple Watch do rejestrowania wizyt i dystansu bezpośrednio na zegarku." + } } } } diff --git a/IsoMeWatch/Localizable.xcstrings b/IsoMeWatch/Localizable.xcstrings index 0e2871f0..62ea5c8a 100644 --- a/IsoMeWatch/Localizable.xcstrings +++ b/IsoMeWatch/Localizable.xcstrings @@ -62,6 +62,12 @@ "state": "translated", "value": "--:--" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "--:--" + } } } }, @@ -126,6 +132,12 @@ "state": "translated", "value": "%@左边" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "POZOSTAŁO %@" + } } } }, @@ -190,6 +202,12 @@ "state": "translated", "value": "%lld" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%lld" + } } } }, @@ -254,6 +272,12 @@ "state": "translated", "value": "%1$lld小时%2$lld米" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%1$lld godz. %2$lld min" + } } } }, @@ -318,6 +342,12 @@ "state": "translated", "value": "%lldm" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%lld min" + } } } }, @@ -382,6 +412,12 @@ "state": "translated", "value": "捕获观察路径" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "REJESTROWANIE TRASY Z ZEGARKA" + } } } }, @@ -446,6 +482,12 @@ "state": "translated", "value": "检查权限" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "SPRAWDŹ UPRAWNIENIA" + } } } }, @@ -510,6 +552,12 @@ "state": "translated", "value": "距离" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "DYSTANS" + } } } }, @@ -574,6 +622,12 @@ "state": "translated", "value": "启用位置" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WŁĄCZ LOKALIZACJĘ" + } } } }, @@ -638,6 +692,12 @@ "state": "translated", "value": "启用位置以直接在 Apple Watch 上进行跟踪。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Włącz śledzenie lokalizacji bezpośrednio na Apple Watch." + } } } }, @@ -702,6 +762,12 @@ "state": "translated", "value": "iso.me" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "iso.me" + } } } }, @@ -766,6 +832,12 @@ "state": "translated", "value": "ISO.ME" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "ISO.ME" + } } } }, @@ -830,6 +902,12 @@ "state": "translated", "value": "居住" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "NA ŻYWO" + } } } }, @@ -894,6 +972,12 @@ "state": "translated", "value": "地点" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "LOKALIZACJA" + } } } }, @@ -958,6 +1042,12 @@ "state": "translated", "value": "位置被拒绝。在“设置”中启用它以从 Apple Watch 进行跟踪。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Lokalizacja została odrzucona. Włącz tę opcję w Ustawieniach, aby śledzić z Apple Watch." + } } } }, @@ -1022,6 +1112,12 @@ "state": "translated", "value": "此 Apple Watch 上的位置受到限制。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Lokalizacja na tym zegarku Apple Watch jest ograniczona." + } } } }, @@ -1086,6 +1182,12 @@ "state": "translated", "value": "需要位置" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WYMAGANA LOKALIZACJA" + } } } }, @@ -1150,6 +1252,12 @@ "state": "translated", "value": "位置权限不可用。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Pozwolenie na lokalizację jest niedostępne." + } } } }, @@ -1214,6 +1322,12 @@ "state": "translated", "value": "离开" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wyłączone" + } } } }, @@ -1278,6 +1392,12 @@ "state": "translated", "value": "积分" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "PUNKTY" + } } } }, @@ -1342,6 +1462,12 @@ "state": "translated", "value": "准备追踪" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "GOTOWE DO REJESTROWANIA" + } } } }, @@ -1406,6 +1532,12 @@ "state": "translated", "value": "今日重置" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WYZERUJ DZISIEJSZE DANE" + } } } }, @@ -1470,6 +1602,12 @@ "state": "translated", "value": "支持" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "GOTOWOŚĆ" + } } } }, @@ -1534,6 +1672,12 @@ "state": "translated", "value": "开始" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "START" + } } } }, @@ -1598,6 +1742,12 @@ "state": "translated", "value": "开始追踪" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Rozpocznij śledzenie" + } } } }, @@ -1662,6 +1812,12 @@ "state": "translated", "value": "停止" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "STOP" + } } } }, @@ -1726,6 +1882,12 @@ "state": "translated", "value": "停止追踪" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zatrzymaj śledzenie" + } } } }, @@ -1790,6 +1952,12 @@ "state": "translated", "value": "今天" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "DZISIAJ" + } } } }, @@ -1854,6 +2022,12 @@ "state": "translated", "value": "追踪" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Śledzenie" + } } } }, @@ -1918,6 +2092,12 @@ "state": "translated", "value": "追踪" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "ŚLEDZENIE" + } } } }, @@ -1982,6 +2162,12 @@ "state": "translated", "value": "未知" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nieznany" + } } } }, @@ -2046,6 +2232,12 @@ "state": "translated", "value": "访问量" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "WIZYTY" + } } } } diff --git a/IsoMeWatchWidget/InfoPlist.xcstrings b/IsoMeWatchWidget/InfoPlist.xcstrings index 1c294c1e..9d1f3d67 100644 --- a/IsoMeWatchWidget/InfoPlist.xcstrings +++ b/IsoMeWatchWidget/InfoPlist.xcstrings @@ -63,6 +63,12 @@ "state": "translated", "value": "iso.me" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "iso.me" + } } } }, @@ -128,6 +134,12 @@ "state": "translated", "value": "IsoMeWatchWidgetExtension" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "IsoMeWatchWidgetExtension" + } } } }, @@ -193,6 +205,12 @@ "state": "translated", "value": "" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "" + } } } } diff --git a/IsoMeWatchWidget/Localizable.xcstrings b/IsoMeWatchWidget/Localizable.xcstrings index 67987cf4..aa900b20 100644 --- a/IsoMeWatchWidget/Localizable.xcstrings +++ b/IsoMeWatchWidget/Localizable.xcstrings @@ -62,6 +62,12 @@ "state": "translated", "value": "%@左边" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Pozostało %@" + } } } }, @@ -126,6 +132,12 @@ "state": "translated", "value": "%lld" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%lld" + } } } }, @@ -190,6 +202,12 @@ "state": "translated", "value": "%lld次访问" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%lld wizyt" + } } } }, @@ -254,6 +272,12 @@ "state": "translated", "value": "%1$lld次访问 • %2$@" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%1$lld odwiedzin • %2$@" + } } } }, @@ -318,6 +342,12 @@ "state": "translated", "value": "%1$lld小时%2$lld米" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%1$lld godz. %2$lld min" + } } } }, @@ -382,6 +412,12 @@ "state": "translated", "value": "%lldm" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%lld min" + } } } }, @@ -446,6 +482,12 @@ "state": "translated", "value": "iso.me" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "iso.me" + } } } }, @@ -510,6 +552,12 @@ "state": "translated", "value": "离开" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Wyłączone" + } } } }, @@ -574,6 +622,12 @@ "state": "translated", "value": "追踪" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Śledzenie" + } } } }, @@ -638,6 +692,12 @@ "state": "translated", "value": "追踪关闭" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Śledzenie wyłączone" + } } } }, @@ -702,6 +762,12 @@ "state": "translated", "value": "未知" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Nieznany" + } } } }, @@ -766,6 +832,12 @@ "state": "translated", "value": "查看您的跟踪状态和今天的统计数据。" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Sprawdź swój status śledzenia i dzisiejsze statystyki." + } } } } diff --git a/IsoMeWidget/InfoPlist.xcstrings b/IsoMeWidget/InfoPlist.xcstrings index cc4a35d3..8413c87c 100644 --- a/IsoMeWidget/InfoPlist.xcstrings +++ b/IsoMeWidget/InfoPlist.xcstrings @@ -63,6 +63,12 @@ "state": "translated", "value": "iso.me小部件" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Widżet iso.me" + } } } }, @@ -128,6 +134,12 @@ "state": "translated", "value": "IsoMeWidgetExtension" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "IsoMeWidgetExtension" + } } } }, @@ -193,6 +205,12 @@ "state": "translated", "value": "" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "" + } } } } diff --git a/IsoMeWidget/Localizable.xcstrings b/IsoMeWidget/Localizable.xcstrings index e0674d72..d41ac185 100644 --- a/IsoMeWidget/Localizable.xcstrings +++ b/IsoMeWidget/Localizable.xcstrings @@ -62,6 +62,12 @@ "state": "translated", "value": "%lld" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%lld" + } } } }, @@ -126,6 +132,12 @@ "state": "translated", "value": "%1$lld小时%2$lld米" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%1$lld godz. %2$lld min" + } } } }, @@ -190,6 +202,12 @@ "state": "translated", "value": "%lldm" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "%lld min" + } } } }, @@ -254,6 +272,12 @@ "state": "translated", "value": "停止" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Zatrzymywać się" + } } } }, @@ -318,6 +342,12 @@ "state": "translated", "value": "Monitorando" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Śledzenie" + } } } }, @@ -382,6 +412,12 @@ "state": "translated", "value": "自%@开始追踪" } + }, + "pl": { + "stringUnit": { + "state": "translated", + "value": "Śledzenie od %@" + } } } } diff --git a/docs/images/polish-localization/photos-after.png b/docs/images/polish-localization/photos-after.png new file mode 100644 index 00000000..74e4cc5c Binary files /dev/null and b/docs/images/polish-localization/photos-after.png differ diff --git a/docs/images/polish-localization/photos-before.png b/docs/images/polish-localization/photos-before.png new file mode 100644 index 00000000..932a0116 Binary files /dev/null and b/docs/images/polish-localization/photos-before.png differ diff --git a/docs/polish-localization.md b/docs/polish-localization.md new file mode 100644 index 00000000..1f69fc7a --- /dev/null +++ b/docs/polish-localization.md @@ -0,0 +1,62 @@ +# Polish localization + +Polish (`pl`, region `pl_PL`) is registered in Xcode and covers all nine string catalogs: iPhone, Apple Watch, both widget extensions, permission descriptions, and App Shortcuts. The catalog audit covers 1,326 active entries. This includes 179 recently added iPhone strings discovered in compiler extraction output, covering Country Days, saved locations, appearance, and myself.md access. + +The first pass used the repository's machine translation helper. Contextual review corrected navigation actions, visits, journey terminology, GPS points, permissions, purchase plans, and Siri phrases. Long-form copy still needs native Polish editorial review before release. Screenshot marketing copy is included in `screenshots/localized-copy.json` and preserved by the generator's Polish overrides. + +Polish count labels include `one`, `few`, `many`, and `other` forms. The export preview message no longer constructs an English plural by appending `s`; its replacement is translated in every existing language. + +## Verification + +```sh +python3 scripts/localization_catalog.py audit --locale pl \ + --extracted-from /tmp/isome-polish-build/Build/Intermediates.noindex +python3 scripts/test_localization_catalog.py +xcodebuild build -project IsoMe.xcodeproj -scheme IsoMe \ + -destination 'platform=iOS Simulator,id=' \ + -derivedDataPath /tmp/isome-polish-build CODE_SIGNING_ALLOWED=NO +swift scripts/check_polish_localization.swift \ + /tmp/isome-polish-build/Build/Products/Debug-iphonesimulator/IsoMe.app +``` + +- Polish coverage and placeholder audit: passed, with no unexplained English copies. +- iOS simulator build, including Watch and widget catalog compilation: passed. +- Foundation runtime checks of compiled resources: 162 passed (144 Polish checks and 18 English plural regression checks), including counts 0, 1, 2, 4, 5, 12, 14, 21, 22, 25, 101, and 102. +- Compiler-extracted localization keys missing across all four app targets: zero (114 extraction files). +- Existing catalog entries in all other languages: preserved. +- Polish welcome and feature screens: visually checked through Argent. A truncated feature heading was shortened to `FUNKCJE` and rechecked. The recorded onboarding check replayed successfully. The temporary flow used an AX-derived coordinate for Next because the native flow tree did not expose its label; live AX text checks verified both destinations. + +The visual check used a separate temporary simulator app identifier and a copy of the compiled bundle containing only Polish resources. It did not change the simulator's language or the existing app's data. This checks localized layout, not a full device-region or Watch UI walkthrough. + +The second pass also added 20 catalog entries for strings that previously bypassed localization, including default outing names, minimum-point labels, webhook actions, photo-cluster descriptions, map summaries, and Watch sync errors. Localized values now reach their UI and VoiceOver callers. English plural handling is preserved when filling catalogs. Five audit-tool regression tests and 82 targeted app tests passed during implementation. After integrating with GitHub main, all 275 app tests passed with simulator signing enabled (`CODE_SIGNING_ALLOWED=YES CODE_SIGN_IDENTITY=-`). The initial unsigned full-suite run failed seven Keychain tests; signing resolved all seven. + +The remaining onboarding pages, the localized permission explanation, and the map were checked in the simulator. The photo heading and sync toggle were shortened after visible truncation and then visually rechecked. The recorded path through permission denial, photo setup, completion, release notes, and the map replayed successfully. AX checks verified `0 wizyt. 0 punktów trasy` and `Śledzenie jest wyłączone.` The temporary replay uses AX-derived coordinates because the native flow tree omits several SwiftUI labels; it is a local verification aid, not a committed regression test. + +Integration with current GitHub main added Polish translations for 25 newer photo-map and release-note strings while retaining its photo-area behavior. Unused manual Watch-sync strings from a separate local commit are excluded. The all-language audit still reports gaps because newly cataloged strings have English and Polish translations. App Store Connect metadata and screenshots have not been published. + +## Review screenshots + +| Before | After | +| --- | --- | +| ![Truncated Polish photo setup labels](images/polish-localization/photos-before.png) | ![Polish photo setup labels fit](images/polish-localization/photos-after.png) | + +## Project environment + +Environment inspection for future localization work: + +```json +{ + "workspace_path": "/Users/codybontecou/dev/iso.me", + "is_react_native": false, + "is_native_ios": true, + "is_native_android": false, + "framework": "SwiftUI with SwiftData", + "project": "IsoMe.xcodeproj", + "scheme": "IsoMe", + "bundle_id": "com.bontecou.isome", + "platforms": ["iOS", "watchOS"], + "metro_required": false, + "argent_available": true, + "qa": ["IsoMeTests", "scripts/localization_catalog.py", "scripts/check_polish_localization.swift"] +} +``` diff --git a/screenshots/localized-copy.json b/screenshots/localized-copy.json index 8f0665e4..9ccc4869 100644 --- a/screenshots/localized-copy.json +++ b/screenshots/localized-copy.json @@ -268,5 +268,32 @@ "title": "你的数据,你的端点", "subtitle": "将位置更新实时或分批发送到你自己的 API。" } + ], + "pl": [ + { + "name": "01-quiet-map", + "title": "Spokojna mapa Twoich dni", + "subtitle": "Automatycznie wykrywaj wizyty i rejestruj dokładne trasy — wszystko na urządzeniu." + }, + { + "name": "02-total-control", + "title": "Jeden panel. Pełna kontrola.", + "subtitle": "Dostosuj śledzenie, filtry odległości, automatyczne zatrzymywanie i nazwy miejsc." + }, + { + "name": "03-open-formats", + "title": "Eksport w otwartych formatach.", + "subtitle": "Zabierz swoją historię w formacie JSON, CSV, Markdown, GPX, OwnTracks lub Overland." + }, + { + "name": "04-exact-export", + "title": "Wybierz, co eksportować.", + "subtitle": "Filtruj według dat, pory dnia, zakończonych wizyt i czasu trwania." + }, + { + "name": "05-your-endpoint", + "title": "Twoje dane. Twój serwer.", + "subtitle": "Wysyłaj lokalizację do własnego API na bieżąco lub partiami." + } ] } diff --git a/scripts/capture_localized_screenshots.py b/scripts/capture_localized_screenshots.py index a14b2eac..d7d59a89 100644 --- a/scripts/capture_localized_screenshots.py +++ b/scripts/capture_localized_screenshots.py @@ -30,6 +30,7 @@ "fr-FR": ("fr", "fr_FR"), "hi": ("hi", "hi_IN"), "ja": ("ja", "ja_JP"), + "pl": ("pl", "pl_PL"), "pt-BR": ("pt-BR", "pt_BR"), "ru": ("ru", "ru_RU"), "zh-Hans": ("zh-Hans", "zh_CN"), diff --git a/scripts/check_polish_localization.swift b/scripts/check_polish_localization.swift new file mode 100644 index 00000000..a8c6fb87 --- /dev/null +++ b/scripts/check_polish_localization.swift @@ -0,0 +1,60 @@ +#!/usr/bin/env swift +// Run after building: swift scripts/check_polish_localization.swift /path/to/IsoMe.app +import Foundation + +guard CommandLine.arguments.count == 2, + let bundle = Bundle(path: CommandLine.arguments[1] + "/pl.lproj") else { + fatalError("Pass the path to a built IsoMe.app containing pl.lproj") +} + +let locale = Locale(identifier: "pl_PL") +let counts: [Int64] = [0, 1, 2, 4, 5, 12, 14, 21, 22, 25, 101, 102] +let cases: [(String, [String])] = [ + ("%lld photos", ["zdjęć", "zdjęcie", "zdjęcia", "zdjęcia", "zdjęć", "zdjęć", "zdjęć", "zdjęć", "zdjęcia", "zdjęć", "zdjęć", "zdjęcia"]), + ("%lld points", ["punktów", "punkt", "punkty", "punkty", "punktów", "punktów", "punktów", "punktów", "punkty", "punktów", "punktów", "punkty"]), + ("%lld minutes", ["minut", "minuta", "minuty", "minuty", "minut", "minut", "minut", "minut", "minuty", "minut", "minut", "minuty"]), + ("%lld countries", ["krajów", "kraj", "kraje", "kraje", "krajów", "krajów", "krajów", "krajów", "kraje", "krajów", "krajów", "kraje"]), + ("%lld days", ["dni", "dzień", "dni", "dni", "dni", "dni", "dni", "dni", "dni", "dni", "dni", "dni"]), + ("%lld places", ["miejsc", "miejsce", "miejsca", "miejsca", "miejsc", "miejsc", "miejsc", "miejsc", "miejsca", "miejsc", "miejsc", "miejsca"]), + ("%lld photos in this area", ["zdjęć w tej okolicy", "zdjęcie w tej okolicy", "zdjęcia w tej okolicy", "zdjęcia w tej okolicy", "zdjęć w tej okolicy", "zdjęć w tej okolicy", "zdjęć w tej okolicy", "zdjęć w tej okolicy", "zdjęcia w tej okolicy", "zdjęć w tej okolicy", "zdjęć w tej okolicy", "zdjęcia w tej okolicy"]), + ("%lld visits", ["wizyt", "wizyta", "wizyty", "wizyty", "wizyt", "wizyt", "wizyt", "wizyt", "wizyty", "wizyt", "wizyt", "wizyty"]), + ("%lld path points", ["punktów trasy", "punkt trasy", "punkty trasy", "punkty trasy", "punktów trasy", "punktów trasy", "punktów trasy", "punktów trasy", "punkty trasy", "punktów trasy", "punktów trasy", "punkty trasy"]), + ("%lld matched photos", ["dopasowanych zdjęć", "dopasowane zdjęcie", "dopasowane zdjęcia", "dopasowane zdjęcia", "dopasowanych zdjęć", "dopasowanych zdjęć", "dopasowanych zdjęć", "dopasowanych zdjęć", "dopasowane zdjęcia", "dopasowanych zdjęć", "dopasowanych zdjęć", "dopasowane zdjęcia"]), + ("%lld photos taken here", ["zdjęć zrobionych tutaj", "zdjęcie zrobione tutaj", "zdjęcia zrobione tutaj", "zdjęcia zrobione tutaj", "zdjęć zrobionych tutaj", "zdjęć zrobionych tutaj", "zdjęć zrobionych tutaj", "zdjęć zrobionych tutaj", "zdjęcia zrobione tutaj", "zdjęć zrobionych tutaj", "zdjęć zrobionych tutaj", "zdjęcia zrobione tutaj"]), +] + +var checked = 0 +for (key, nouns) in cases { + let format = bundle.localizedString(forKey: key, value: nil, table: nil) + for (count, noun) in zip(counts, nouns) { + let actual = String(format: format, locale: locale, arguments: [count]) + let expected = "\(count) \(noun)" + precondition(actual == expected, "\(key), count \(count): expected \(expected), got \(actual)") + checked += 1 + } +} + +for (key, expected) in [("Save", "Zapisz"), ("Country Days", "Dni w krajach"), ("Family Lifetime", "Dożywotni rodzinny"), ("TEST CONNECTION", "SPRAWDŹ POŁĄCZENIE"), ("SEND NOW", "WYŚLIJ TERAZ"), ("5 min", "5 min"), ("5m", "5 m"), ("Tracking is off.", "Śledzenie jest wyłączone."), ("CONNECT PHOTOS", "POŁĄCZ ZDJĘCIA"), ("Auto-sync photo moments", "Synchronizuj zdjęcia"), ("Optional", "Opcjonalnie")] { + let actual = bundle.localizedString(forKey: key, value: nil, table: nil) + precondition(actual == expected, "\(key): expected \(expected), got \(actual)") + checked += 1 +} +let outing = bundle.localizedString(forKey: "Outing %lld", value: nil, table: nil) +precondition(String(format: outing, locale: locale, arguments: [Int64(7)]) == "Podróż 7") +checked += 1 + +// The map now uses one count-based message for every number, including 1. +// Preserve English singular wording as well as the Polish plural forms above. +guard let english = Bundle(path: CommandLine.arguments[1] + "/en.lproj") else { + fatalError("The built app must retain English resources") +} +for (key, singular) in [("%lld places", "1 place"), ("%lld photos in this area", "1 photo in this area"), ("%lld visits", "1 visit"), ("%lld path points", "1 path point"), ("%lld matched photos", "1 matched photo"), ("%lld photos taken here", "1 photo taken here")] { + let format = english.localizedString(forKey: key, value: nil, table: nil) + for count: Int64 in [0, 1, 2] { + let expected = count == 1 ? singular : key.replacingOccurrences(of: "%lld", with: String(count)) + let actual = String(format: format, locale: Locale(identifier: "en_US"), arguments: [count]) + precondition(actual == expected, "English \(key), count \(count): expected \(expected), got \(actual)") + checked += 1 + } +} +print("PASS: \(checked) compiled localization checks (Polish and English regression)") diff --git a/scripts/localization_catalog.py b/scripts/localization_catalog.py index 8c923896..68f88220 100644 --- a/scripts/localization_catalog.py +++ b/scripts/localization_catalog.py @@ -28,7 +28,7 @@ Path("IsoMeWatchWidget/Localizable.xcstrings"), Path("IsoMeWatchWidget/InfoPlist.xcstrings"), ) -LOCALES = ("ar", "bn", "en", "es", "fr", "hi", "ja", "pt-BR", "ru", "zh-Hans") +LOCALES = ("ar", "bn", "en", "es", "fr", "hi", "ja", "pl", "pt-BR", "ru", "zh-Hans") GOOGLE_LOCALES = { "ar": "ar", "bn": "bn", @@ -36,6 +36,7 @@ "fr": "fr", "hi": "hi", "ja": "ja", + "pl": "pl", "pt-BR": "pt", "ru": "ru", "zh-Hans": "zh-CN", @@ -94,6 +95,7 @@ "••••••••", } NATURAL_EQUIVALENTS = { + *(("pl", value) for value in ("Core Location", "Format", "FORMAT", "Import", "START", "STOP", "STATUS", "X-API-Key", "Plan", "m", "MYSELF.MD")), ("es", "MANUAL"), ("es", "Manual"), ("fr", "%lld PHOTOS"), @@ -296,7 +298,7 @@ def translation_prompt(value: str) -> str: def preserve_display_case(source: str, translated: str, locale: str) -> str: ascii_letters = [character for character in source if character.isascii() and character.isalpha()] - if ascii_letters and all(character.isupper() for character in ascii_letters) and locale in {"es", "fr", "pt-BR", "ru"}: + if ascii_letters and all(character.isupper() for character in ascii_letters) and locale in {"es", "fr", "pl", "pt-BR", "ru"}: return translated.upper() return translated @@ -309,7 +311,8 @@ def source_values(key: str, entry: dict) -> tuple[str, list[str]]: english = entry.setdefault("localizations", {}).get("en", {}) if "stringSet" in english: return "stringSet", list(english["stringSet"].get("values", [])) - value = english.get("stringUnit", {}).get("value", key) + unit = english.get("stringUnit") or english.get("variations", {}).get("plural", {}).get("other", {}).get("stringUnit", {}) + value = unit.get("value", key) return "stringUnit", [value] @@ -318,7 +321,9 @@ def locale_values(entry: dict, locale: str, kind: str) -> list[str] | None: if kind == "stringSet": values = localized.get("stringSet", {}).get("values") return list(values) if isinstance(values, list) else None - value = localized.get("stringUnit", {}).get("value") + # A plural catalog entry represents the same source value with count-specific forms. + unit = localized.get("stringUnit") or localized.get("variations", {}).get("plural", {}).get("other", {}).get("stringUnit", {}) + value = unit.get("value") return [value] if isinstance(value, str) else None @@ -435,7 +440,8 @@ def fill(overwrite: bool = False) -> int: raise RuntimeError(f"{relative}: {key!r} has no English source values") kinds[(relative, key)] = kind sources[(relative, key)] = values - set_locale_values(entry, "en", kind, values) + if "variations" not in entry["localizations"].get("en", {}): + set_locale_values(entry, "en", kind, values) for locale in LOCALES: if locale == "en": @@ -510,10 +516,38 @@ def run_batch(item: tuple[str, list[TranslationTask]]) -> tuple[list[Translation return audit() -def audit() -> int: +def audit_extracted(build_root: Path) -> int: + """Check compiler-discovered keys for every app target, including shared sources.""" + targets = { + "IsoMe": Path("IsoMe/Localizable.xcstrings"), + "IsoMeWatch": Path("IsoMeWatch/Localizable.xcstrings"), + "IsoMeWidgetExtension": Path("IsoMeWidget/Localizable.xcstrings"), + "IsoMeWatchWidgetExtension": Path("IsoMeWatchWidget/Localizable.xcstrings"), + } + failures = [] + for target, catalog in targets.items(): + files = list(build_root.glob(f"**/{target}.build/Objects-normal/*/*.stringsdata")) + if not files: + failures.append(f"no compiler extraction data for {target}") + continue + keys = json.loads((ROOT / catalog).read_text())["strings"] + missing = set() + for path in files: + tables = json.loads(path.read_text()).get("tables", {}) + missing.update(item["key"] for item in tables.get("Localizable", []) if item["key"] not in keys) + failures.extend(f"missing extracted key {catalog}:{key!r}" for key in sorted(missing)) + print(f" {target}: {len(files)} extraction files, {len(missing)} missing keys") + if failures: + print("\n".join(failures), file=sys.stderr) + return 1 + print("PASS: all four targets' extracted keys are cataloged") + return 0 + + +def audit(locales: tuple[str, ...] = LOCALES) -> int: failures: list[str] = [] total = 0 - identical: dict[str, list[str]] = {locale: [] for locale in LOCALES if locale != "en"} + identical: dict[str, list[str]] = {locale: [] for locale in locales if locale != "en"} for relative in CATALOGS: document = json.loads((ROOT / relative).read_text()) for key, entry in document.get("strings", {}).items(): @@ -521,7 +555,7 @@ def audit() -> int: continue total += 1 kind, source = source_values(key, entry) - for locale in LOCALES: + for locale in locales: target = locale_values(entry, locale, kind) label = f"{relative}:{key!r}:{locale}" if target is None or len(target) != len(source) or any(value == "" and src != "" for src, value in zip(source, target)): @@ -532,8 +566,16 @@ def audit() -> int: failures.append(f"placeholder mismatch {label}") if locale != "en" and source_value == target_value and not is_intentional_equivalent(source_value, locale): identical[locale].append(f"{relative}:{key}") - - print(f"Audited {total} active catalog keys across {len(CATALOGS)} catalogs and {len(LOCALES)} locales.") + plural = entry.get("localizations", {}).get(locale, {}).get("variations", {}).get("plural") + if plural is not None: + if locale == "pl" and not {"one", "few", "many", "other"}.issubset(plural): + failures.append(f"missing Polish plural forms {label}") + for category, form in plural.items(): + value = form.get("stringUnit", {}).get("value") + if not value or placeholders(source[0]) != placeholders(value): + failures.append(f"invalid plural form {label}:{category}") + + print(f"Audited {total} active catalog keys across {len(CATALOGS)} catalogs and {len(locales)} locales.") for locale, values in identical.items(): print(f" {locale}: {len(values)} non-allowlisted values identical to English") if failures: @@ -548,8 +590,17 @@ def main() -> int: parser = argparse.ArgumentParser() parser.add_argument("command", choices=("fill", "audit")) parser.add_argument("--overwrite", action="store_true", help="regenerate all non-manual, non-allowlisted translations") + parser.add_argument("--locale", choices=LOCALES, action="append", help="audit only this locale (repeatable; audit command only)") + parser.add_argument("--extracted-from", type=Path, help="also audit compiler .stringsdata under this build directory") args = parser.parse_args() - return fill(overwrite=args.overwrite) if args.command == "fill" else audit() + if args.command == "fill": + if args.locale or args.extracted_from: + parser.error("--locale and --extracted-from are supported only by audit") + return fill(overwrite=args.overwrite) + result = audit(tuple(args.locale) if args.locale else LOCALES) + if args.extracted_from: + result = max(result, audit_extracted(args.extracted_from)) + return result if __name__ == "__main__": diff --git a/scripts/localize_screenshot_copy.py b/scripts/localize_screenshot_copy.py index d7577c3a..6f8171a4 100644 --- a/scripts/localize_screenshot_copy.py +++ b/scripts/localize_screenshot_copy.py @@ -16,11 +16,24 @@ "fr-FR": "fr", "hi": "hi", "ja": "ja", + "pl": "pl", "pt-BR": "pt-BR", "ru": "ru", "zh-Hans": "zh-Hans", } OVERRIDES = { + "pl": { + (0, "title"): "Spokojna mapa Twoich dni", + (0, "subtitle"): "Automatycznie wykrywaj wizyty i rejestruj dokładne trasy — wszystko na urządzeniu.", + (1, "title"): "Jeden panel. Pełna kontrola.", + (1, "subtitle"): "Dostosuj śledzenie, filtry odległości, automatyczne zatrzymywanie i nazwy miejsc.", + (2, "title"): "Eksport w otwartych formatach.", + (2, "subtitle"): "Zabierz swoją historię w formacie JSON, CSV, Markdown, GPX, OwnTracks lub Overland.", + (3, "title"): "Wybierz, co eksportować.", + (3, "subtitle"): "Filtruj według dat, pory dnia, zakończonych wizyt i czasu trwania.", + (4, "title"): "Twoje dane. Twój serwer.", + (4, "subtitle"): "Wysyłaj lokalizację do własnego API na bieżąco lub partiami.", + }, "ar-SA": { (0, "subtitle"): "اكتشف الزيارات تلقائيًا وسجّل المسارات بالتفصيل — كل ذلك على جهازك.", (1, "subtitle"): "اضبط التتبع وفلاتر المسافة والتوقف التلقائي وأسماء المواقع في ثوانٍ.", diff --git a/scripts/test_localization_catalog.py b/scripts/test_localization_catalog.py new file mode 100644 index 00000000..51b43334 --- /dev/null +++ b/scripts/test_localization_catalog.py @@ -0,0 +1,82 @@ +"""Regression checks for coverage auditing and preservation of plural catalogs.""" +import contextlib +import io +import json +import tempfile +import unittest +from pathlib import Path +from unittest.mock import patch + +import localization_catalog as catalog + + +class LocalizationCatalogTests(unittest.TestCase): + def setUp(self): + self.temp = tempfile.TemporaryDirectory() + self.addCleanup(self.temp.cleanup) + self.root = Path(self.temp.name) + self.entry = { + "localizations": { + "en": {"stringUnit": {"state": "translated", "value": "%lld photos"}}, + "pl": {"variations": {"plural": { + form: {"stringUnit": {"state": "translated", "value": value}} + for form, value in zip( + ("one", "few", "many", "other"), + ("%lld zdjęcie", "%lld zdjęcia", "%lld zdjęć", "%lld zdjęcia"), + ) + }}}, + } + } + + def audit(self): + (self.root / "Localizable.xcstrings").write_text(json.dumps({"strings": {"%lld photos": self.entry}})) + with patch.object(catalog, "ROOT", self.root), patch.object(catalog, "CATALOGS", (Path("Localizable.xcstrings"),)): + return catalog.audit(("pl",)) + + def test_complete_polish_plural_passes(self): + self.assertEqual(self.audit(), 0) + + def test_missing_few_form_fails(self): + del self.entry["localizations"]["pl"]["variations"]["plural"]["few"] + self.assertEqual(self.audit(), 1) + + def test_lost_placeholder_in_nondefault_form_fails(self): + self.entry["localizations"]["pl"]["variations"]["plural"]["few"]["stringUnit"]["value"] = "zdjęcia" + self.assertEqual(self.audit(), 1) + + def test_fill_preserves_english_plural(self): + english = {"variations": {"plural": { + form: {"stringUnit": {"state": "translated", "value": value}} + for form, value in (("one", "%lld photo"), ("other", "%lld photos")) + }}} + self.entry["localizations"]["en"] = english + path = self.root / "Localizable.xcstrings" + path.write_text(json.dumps({"strings": {"%lld photos": self.entry}})) + with patch.object(catalog, "ROOT", self.root), patch.object(catalog, "CATALOGS", (path.relative_to(self.root),)), patch.object(catalog, "LOCALES", ("en",)), patch.object(catalog, "GOOGLE_LOCALES", {}), patch.object(catalog, "audit", return_value=0): + self.assertEqual(catalog.fill(), 0) + self.assertEqual(json.loads(path.read_text())["strings"]["%lld photos"]["localizations"]["en"], english) + + def test_extraction_requires_all_four_targets_and_detects_unknown_keys(self): + targets = {"IsoMe": "IsoMe", "IsoMeWatch": "IsoMeWatch", "IsoMeWidgetExtension": "IsoMeWidget", "IsoMeWatchWidgetExtension": "IsoMeWatchWidget"} + with patch.object(catalog, "ROOT", self.root): + # A wrong or empty build path must never produce a coverage pass. + self.assertEqual(catalog.audit_extracted(self.root / "missing"), 1) + for target, folder in targets.items(): + path = self.root / folder / "Localizable.xcstrings" + path.parent.mkdir(parents=True) + path.write_text(json.dumps({"strings": {"Save": {}}})) + extracted = self.root / "build" / (target + ".build") / "Objects-normal" / "arm64" / "View.stringsdata" + extracted.parent.mkdir(parents=True) + extracted.write_text(json.dumps({"tables": {"Localizable": [{"key": "Save"}]}})) + self.assertEqual(catalog.audit_extracted(self.root / "build"), 0) + extracted.write_text(json.dumps({"tables": {"Localizable": [{"key": "Missing shared string"}]}})) + self.assertEqual(catalog.audit_extracted(self.root / "build"), 1) + + def run(self, result=None): + # Expected failures print diagnostics; keep the test output readable. + with contextlib.redirect_stdout(io.StringIO()), contextlib.redirect_stderr(io.StringIO()): + return super().run(result) + + +if __name__ == "__main__": + unittest.main()