Compare commits

..

119 Commits

Author SHA1 Message Date
Konstantin Pastbin
0bee4e074e [generator] Add git to mapmaker docker
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-09-06 09:53:13 +00:00
Konstantin Pastbin
93ebf8072c [generator] Enable subways validation results upload to cdn-us-1.comaps.app/subway/
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-09-06 15:45:11 +07:00
Konstantin Pastbin
d8422615cd Try 18 Features threads
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-09-06 15:36:46 +07:00
Konstantin Pastbin
6e57c13649 [generator] Fix auto drules regeneration
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-09-06 15:35:50 +07:00
Konstantin Pastbin
4f9dbdced5 [generator] Cleanup comments
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-09-06 15:35:50 +07:00
Konstantin Pastbin
6734756748 [generator] Don't upload World* etc. to the dreamhost sftp
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-09-06 15:35:50 +07:00
Konstantin Pastbin
ae9f4eabb6 [generator] Download and convert planet only if not exists
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-09-06 15:35:50 +07:00
Konstantin Pastbin
fcef5da3ac [generator] Enable drules generation
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-09-06 15:35:50 +07:00
zyphlar
b5eeece849 Don't upload at the end, always convert planet to o5m
Signed-off-by: zyphlar <zyphlar@noreply.codeberg.org>
2025-09-06 15:35:50 +07:00
x7z4w
34477e34e4 [build] Remove redundant configure.sh
Signed-off-by: x7z4w <x7z4w@noreply.codeberg.org>
2025-09-06 15:35:50 +07:00
zyphlar
af2c84f4e8 [generator] Add sftp and protobuf deps
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-09-06 15:35:49 +07:00
zyphlar
8cf42fa0d0 Settings change
Signed-off-by: zyphlar <zyphlar@gmail.com>
2025-09-06 15:35:49 +07:00
Konstantin Pastbin
8b7a47026b [generator] Skip World map download and symbols regen
Signed-off-by: zyphlar <zyphlar@gmail.com>
2025-09-06 15:35:49 +07:00
Konstantin Pastbin
da63ae54f4 [generator] Update conf path
Signed-off-by: zyphlar <zyphlar@gmail.com>
2025-09-06 15:35:49 +07:00
zyphlar
876c4e376a Update generator scripts for docker/prod
Signed-off-by: zyphlar <zyphlar@gmail.com>
2025-09-06 15:35:49 +07:00
zyphlar
b09b58ad49 Add docker run script
Signed-off-by: zyphlar <zyphlar@gmail.com>
2025-09-06 15:35:49 +07:00
zyphlar
728fb551c2 Add files to automatically generate maps with Docker
Signed-off-by: zyphlar <zyphlar@gmail.com>
2025-09-06 15:35:49 +07:00
IXVG47QZ
39bd613d8b add spelled out street numerals
Signed-off-by: IXVG47QZ <jako_accomm@simplelogin.com>
2025-09-05 20:39:41 +02:00
Andrei Shkrob
c014e224b2 [routing] New API for lanes
Signed-off-by: Andrei Shkrob <github@shkrob.dev>
2025-09-05 20:35:15 +02:00
Yannik Bloscheck
93293e7b31 [ios] Really ignore new lines in meatdata script
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-09-05 20:17:44 +02:00
Matheus Gomes
e9aded43fb Add highway.pedestrian.square translations
Add translation of areas that have the combination of highway=pedestrian and place=square tags.

Signed-off-by: Matheus Gomes <matheusgomesms@noreply.codeberg.org>
2025-09-05 19:01:00 +02:00
eisa01
7cbe29db72 [generator] Always add ref to subway_entrance title
Signed-off-by: eisa01 <eisa01@gmail.com>
2025-09-05 11:37:54 +02:00
Stzyxh
a63cf538e8 add izyyondroid badge to the readme
Signed-off-by: Stzyxh <stzyxh@tutamail.com>
2025-09-05 03:15:20 +02:00
Codeberg Translate
5e141e2a98 [strings] Update from Codeberg Translate
Co-authored-by: Alexey Ladygin <nitrodox@noreply.codeberg.org>
Co-authored-by: B o d o <timtrek@noreply.codeberg.org>
Co-authored-by: CharlesNepote <charlesnepote@noreply.codeberg.org>
Co-authored-by: Codeberg Translate <translate@codeberg.org>
Co-authored-by: Edgarsons <edgarsons@noreply.codeberg.org>
Co-authored-by: Edison_Lu <edison_lu@noreply.codeberg.org>
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Juno Takano <jutty@noreply.codeberg.org>
Co-authored-by: Lenny Angst <lenny@familie-angst.ch>
Co-authored-by: N4ta <codeberg@n4ta.anonaddy.me>
Co-authored-by: Prefill add-on <noreply-addon-prefill@weblate.org>
Co-authored-by: Priit Jõerüüt <jrtcdbrg@noreply.codeberg.org>
Co-authored-by: Stephan-P <stephan-p@noreply.codeberg.org>
Co-authored-by: Weblate <noreply-mt-weblate@weblate.org>
Co-authored-by: Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>
Co-authored-by: aoxa <aoxa@noreply.codeberg.org>
Co-authored-by: artnay <artnay@noreply.codeberg.org>
Co-authored-by: dobridabar <dobridabar@noreply.codeberg.org>
Co-authored-by: filip_grgic <filip_grgic@noreply.codeberg.org>
Co-authored-by: ghose <ghose@noreply.codeberg.org>
Co-authored-by: hectodium <hectodium@noreply.codeberg.org>
Co-authored-by: jaspernb <jaspernb@noreply.codeberg.org>
Co-authored-by: javnik <javnik@noreply.codeberg.org>
Co-authored-by: jeanbaptisteC <jeanbaptistec@noreply.codeberg.org>
Co-authored-by: ldmpub <ldmpub@noreply.codeberg.org>
Co-authored-by: medveonmaga <medveonmaga@noreply.codeberg.org>
Co-authored-by: patepelo <patepelo@noreply.codeberg.org>
Co-authored-by: paulb <paulb@noreply.codeberg.org>
Co-authored-by: relet <relet@noreply.codeberg.org>
Co-authored-by: rimas <rimas@noreply.codeberg.org>
Co-authored-by: sunriverus97 <sunriverus97@noreply.codeberg.org>
Co-authored-by: sziatomi <sziatomi@noreply.codeberg.org>
Co-authored-by: thesupertechie <thesupertechie@noreply.codeberg.org>
Translation: CoMaps/Android - Map Feature Types
Translation: CoMaps/Android UI Strings
Translation: CoMaps/Android UI Strings (SDK)
Translation: CoMaps/Apple AppStore description
Translation: CoMaps/Countries and regions names
Translation: CoMaps/F-Droid app description
Translation: CoMaps/Google Play and Huawei AppGallery descriptions
Translation: CoMaps/Voice announcements for navigation (TTS)
Translation: CoMaps/iOS - Map Feature Types
Translation: CoMaps/iOS Plist
Translation: CoMaps/iOS Plurals
Translation: CoMaps/iOS UI Strings
2025-09-04 14:14:24 +00:00
javnik
2237cda8ee [docs] Add missing weblate translation links
Signed-off-by: javnik <javnik@noreply.codeberg.org>
2025-09-04 15:14:24 +02:00
Fs00
4da403b8c0 [search] Recognize camp sites allowing caravans/motorhomes as caravan sites
Signed-off-by: Fs00 <francescosaltori@gmail.com>
2025-09-04 15:02:48 +02:00
x7z4w
cda311aff0 fix
Signed-off-by: x7z4w <x7z4w@noreply.codeberg.org>
2025-09-04 14:36:41 +02:00
x7z4w
f290b2948e nit
Signed-off-by: x7z4w <x7z4w@noreply.codeberg.org>
2025-09-04 14:36:41 +02:00
x7z4w
ee25fa0e36 [build] Pass SKIP envs
Signed-off-by: x7z4w <x7z4w@noreply.codeberg.org>
2025-09-04 14:36:41 +02:00
Konstantin Pastbin
76cb6803c2 [generator] Improve logging
- more logging for various stages start/finish
- silenced some too repetitive and common warnings (changed to LDEBUG)

Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-09-04 17:34:23 +07:00
eisa01
9e38cff708 [generator] Add branch to search indexer
Signed-off-by: eisa01 <eisa01@gmail.com>
2025-09-04 11:19:58 +02:00
javnik
2db63d5798 [categories] Refine and add more PL categories translations
Signed-off-by: javnik <javnik@noreply.codeberg.org>
2025-09-03 11:00:37 +02:00
Jean-Baptiste
9d3d9fd758 [android] Switch to Filled button styles
Signed-off-by: Jean-Baptiste <jeanbaptiste.charron@outlook.fr>
2025-09-03 09:31:53 +02:00
x7z4w
e1bdac53e8 [build] Fix variable assignment
Signed-off-by: x7z4w <x7z4w@noreply.codeberg.org>
2025-09-03 07:18:28 +02:00
Harry Bond
fe9a679d10 [build] Always try to init/update submodules (#1692)
submodules can be outdated etc when switching between branches, it makes sense to just always re-init them

Signed-off-by: Harry Bond <me@hbond.xyz>
Co-authored-by: Harry Bond <me@hbond.xyz>
Co-committed-by: Harry Bond <me@hbond.xyz>
2025-09-03 06:55:53 +02:00
Konstantin Pastbin
8c19e6ef2e [styles] Display caravan and camp sites in vehicle style
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-09-02 19:21:31 +02:00
Konstantin Pastbin
2b17fbfd85 Barriers comments and priorities regeneration
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-09-02 19:15:07 +02:00
Konstantin Pastbin
a389dbfded [classif] Add amenity=security_booth/checkpoint into guardhouse
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-09-02 19:15:07 +02:00
Konstantin Pastbin
4f34d27c6d [strings] Add translations for security booths and offices, power portals
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-09-02 19:15:07 +02:00
Viktor Govako
702eec643a [categories] Added office-security, building-guardhouse.
Signed-off-by: Viktor Govako <viktor.govako@gmail.com>
2025-09-02 19:15:07 +02:00
Konstantin Pastbin
a63bd8894b [styles] Adjust/fix guardhouses and security offices
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-09-02 19:15:07 +02:00
Viktor Govako
a48a9a67a4 [classifier] Added building=guardhouse, office=security.
Signed-off-by: Viktor Govako <viktor.govako@gmail.com>
2025-09-02 19:15:07 +02:00
Viktor Govako
a35ec0df90 [styles] Draw man_made-tower-communication as a regular mast (not a storage-tank).
Signed-off-by: Viktor Govako <viktor.govako@gmail.com>
2025-09-02 19:15:07 +02:00
Viktor Govako
c600374ecc [classifier] Added power=portal.
Signed-off-by: Viktor Govako <viktor.govako@gmail.com>
2025-09-02 19:15:07 +02:00
David Martinez
094f481691 [styles] Use brown color for tourism POIs in dark mode
[styles] Use brown color for tourism POIs in dark mode

Signed-off-by: David Martinez <47610359+dvdmrtnz@users.noreply.github.com>
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-09-02 19:15:07 +02:00
Konstantin Pastbin
d8b96e56c0 [styles] Display libraries earlier from z17-
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-09-02 19:15:07 +02:00
Viktor Govako
c8c7110736 [styles] Show sidewalks in outdoor from z13.
Signed-off-by: Viktor Govako <viktor.govako@gmail.com>
2025-09-02 19:15:07 +02:00
Viktor Govako
d4d4755145 [styles] Minor cleanup.
Signed-off-by: Viktor Govako <viktor.govako@gmail.com>
2025-09-02 19:15:07 +02:00
Charlie-83
7eb7fcdffd [build] Run configure.sh on run* gradle tasks 2025-09-02 15:26:19 +01:00
Charlie-83
442a55ce69 [build] Fix build on Arch Linux 2025-09-02 12:23:16 +01:00
Konstantin Pastbin
1d4b69e37d [search] Add more French synonyms for green and food waste
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-09-01 23:02:25 +07:00
Konstantin Pastbin
0bec4a6ccc [classif] Add recycling:food_waste into recycling-green_waste
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-09-01 22:57:57 +07:00
Jean-Baptiste
f9a1606f89 [android] Enable Java 21
Signed-off-by: Jean-Baptiste <jeanbaptiste.charron@outlook.fr>
2025-09-01 17:39:55 +02:00
Jean-Baptiste
ca5cc46f2b [android] Migrate Primary buttons to Material 3 themes
Signed-off-by: Jean-Baptiste <jeanbaptiste.charron@outlook.fr>
2025-09-01 12:00:36 +02:00
Harry Bond
05cc660641 Release notes for second August release
Signed-off-by: Harry Bond <me@hbond.xyz>
2025-08-31 22:40:03 +01:00
cquest
380981953d More natural french sound strings 2025-08-31 21:39:07 +02:00
Konstantin Pastbin
f0f52c1a11 [planet] Update map data to 250822
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-08-31 19:51:18 +02:00
Yannik Bloscheck
55639db3ec [core] Dynamically add language data to world files
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-08-31 18:44:30 +02:00
Codeberg Translate
4953da4ecf [strings] Update from Codeberg Translate
Co-authored-by: Codeberg Translate <translate@codeberg.org>
Co-authored-by: Gunny13 <gunny13@noreply.codeberg.org>
Co-authored-by: Outbreak2096 <outbreak2096@noreply.codeberg.org>
Co-authored-by: Prefill add-on <noreply-addon-prefill@weblate.org>
Co-authored-by: Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>
Co-authored-by: lejun <lejun@noreply.codeberg.org>
Co-authored-by: matheusgomesms <matheusgomesms@noreply.codeberg.org>
Co-authored-by: metehan <metehan@noreply.codeberg.org>
Co-authored-by: oleg-rswll <oleg-rswll@noreply.codeberg.org>
Co-authored-by: relet <relet@noreply.codeberg.org>
Co-authored-by: sziatomi <sziatomi@noreply.codeberg.org>
Translation: CoMaps/Android - Map Feature Types
Translation: CoMaps/Android UI Strings
Translation: CoMaps/Android UI Strings (SDK)
Translation: CoMaps/Apple AppStore description
Translation: CoMaps/Countries and regions names
Translation: CoMaps/F-Droid app description
Translation: CoMaps/Voice announcements for navigation (TTS)
Translation: CoMaps/iOS - Map Feature Types
Translation: CoMaps/iOS Plist
Translation: CoMaps/iOS Plurals
Translation: CoMaps/iOS UI Strings
2025-08-31 15:27:23 +00:00
x7z4w
186c326e2b [docs] Update
Signed-off-by: x7z4w <x7z4w@noreply.codeberg.org>
2025-08-31 17:27:18 +02:00
Konstantin Pastbin
7d82c6ffae [android] Add back the Edit Bookmark button
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-08-31 17:24:37 +02:00
Harry Bond
622b97e84c [android] Fix metadata to pass CI check
Signed-off-by: Harry Bond <me@hbond.xyz>
2025-08-31 13:16:43 +01:00
Yannik Bloscheck
19e1c4b90e [ios] Added recalculate route on route option changes
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-08-31 11:36:23 +02:00
Yannik Bloscheck
728d0ad806 [ios] Increase tapable area of driving options button
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-08-31 11:36:23 +02:00
Matheus Gomes
e117be1816 [ios] Fix Define Roads to Avoid button
Fixes #1670

Signed-off-by: Matheus Gomes <matheusgomesms@noreply.codeberg.org>
2025-08-31 11:36:23 +02:00
Konstantin Pastbin
165e844308 Revert "[tracks] Fixed starting points."
This reverts commit fda1da03c8.
2025-08-31 15:59:07 +07:00
Konstantin Pastbin
2dce119370 Revert "[tracks] Fixed ending points."
This reverts commit 64f50d4e49.
2025-08-31 15:59:07 +07:00
Konstantin Pastbin
de305e1a87 Revert "[tracks] Safe GpsTrackCollection requests during recording."
This reverts commit b7b87f5530.
2025-08-31 15:58:40 +07:00
Gonzalo Pesquero
f3c30cbf85 [android] Remove display of speed from navigation panel
Signed-off-by: Gonzalo Pesquero <gpesquero@yahoo.es>
2025-08-30 21:48:14 +02:00
Harry Bond
3c1b8be5ce nit and style fixes
Signed-off-by: Harry Bond <me@hbond.xyz>
2025-08-30 19:56:24 +01:00
TobiPeterG
ea1d0eefa2 [android] Add current speed widget
Signed-off-by: TobiPeterG <codeberg.sadness522@passmail.net>
2025-08-30 19:22:04 +01:00
Yannik Bloscheck
4bad37a829 [ios] Shortened too long Turkish translation in App Store metadata
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-08-30 14:14:05 +02:00
Yannik Bloscheck
9f8451596a [ios] Removed unusable App Store metadata translation
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-08-30 14:14:05 +02:00
Yannik Bloscheck
3708ee74d3 [ios] Removed unnecessary whitespace in App Store metadata
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-08-30 14:14:04 +02:00
Yannik Bloscheck
77e81ff431 [ios] Adjusted script for checking App Store metadata
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-08-30 14:14:04 +02:00
Yannik Bloscheck
08f8fbb856 [ios] Renamed Chinese translation folder correctly
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-08-30 14:14:04 +02:00
Konstantin Pastbin
3fd5336bd3 [core] Prefer gps bearing for location arrow
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-08-30 09:39:55 +02:00
Codeberg Translate
fdcbafa23d [strings] Update from Codeberg Translate
Co-authored-by: B o d o <timtrek@noreply.codeberg.org>
Co-authored-by: Codeberg Translate <translate@codeberg.org>
Co-authored-by: N4ta <codeberg@n4ta.anonaddy.me>
Co-authored-by: Priit Jõerüüt <jrtcdbrg@noreply.codeberg.org>
Co-authored-by: Stephan-P <stephan-p@noreply.codeberg.org>
Co-authored-by: Weblate <noreply-mt-weblate@weblate.org>
Co-authored-by: Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>
Co-authored-by: dobridabar <dobridabar@noreply.codeberg.org>
Co-authored-by: ikanakova <ikanakova@noreply.codeberg.org>
Co-authored-by: jeanbaptisteC <jeanbaptistec@noreply.codeberg.org>
Co-authored-by: krlsk <krlsk@noreply.codeberg.org>
Co-authored-by: loscati <loscati@noreply.codeberg.org>
Co-authored-by: matheusgomesms <matheusgomesms@noreply.codeberg.org>
Co-authored-by: summoner <summoner@noreply.codeberg.org>
Co-authored-by: sziatomi <sziatomi@noreply.codeberg.org>
Co-authored-by: yurtpage <yurtpage@noreply.codeberg.org>
Translation: CoMaps/Android - Map Feature Types
Translation: CoMaps/Android UI Strings
Translation: CoMaps/Android UI Strings (SDK)
Translation: CoMaps/Countries and regions names
Translation: CoMaps/F-Droid app description
Translation: CoMaps/Voice announcements for navigation (TTS)
Translation: CoMaps/iOS - Map Feature Types
Translation: CoMaps/iOS Plurals
Translation: CoMaps/iOS UI Strings
2025-08-29 14:49:29 +00:00
Yannik Bloscheck
820a5d1e45 [styles] Adjusting label colors to the new dark map style
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-08-29 16:27:25 +02:00
Yannik Bloscheck
395c8d7787 [styles] Improved dark map style icons
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-08-29 16:27:02 +02:00
Yannik Bloscheck
0d978e4b71 [styles] Improved dark map style
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-08-29 16:27:01 +02:00
Yannik Bloscheck
88e52b3421 [styles] Changed light transport label to a lighter color
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-08-29 16:25:11 +02:00
x7z4w
ca4b75dc51 [styles] Colored labels
Signed-off-by: x7z4w <x7z4w@noreply.codeberg.org>
2025-08-29 16:25:11 +02:00
Yannik Bloscheck
ae85b79c33 [ios] Stop unwanted map style changes when switching away from the app during route planing
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-08-29 12:51:52 +02:00
Bastian Greshake Tzovaras
fd63e77396 [docs] add translation conflict resolution details
Signed-off-by: Bastian Greshake Tzovaras <bgreshake@googlemail.com>
2025-08-29 02:00:59 +02:00
Yannik Bloscheck
0fccf66b27 [ios] Removing conditionals for unsupported iOS versions
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-08-28 21:21:15 +02:00
Yannik Bloscheck
6b86fd0d2e [ios] Fix wrong position location after switching back from CarPlay
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-08-28 21:18:40 +02:00
Henry Sternberg
718d0f726b [routing] Support conditional routing
Signed-off-by: Henry Sternberg <henry@bluelightmaps.com>
2025-08-28 21:01:25 +02:00
Yannik Bloscheck
b761a60246 [ios] Reduced turn style shadow in dark mode
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-08-28 16:05:47 +02:00
Yannik Bloscheck
f84461bff8 [ios] Stop overlap between last search results and home indicator
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-08-28 14:32:00 +02:00
Matheus Gomes
c9de67762c [iOS] Add yellow color opening in up to 15 min
Fixes #1631.

Signed-off-by: Matheus Gomes <matheusgomesms@noreply.codeberg.org>
2025-08-28 10:27:08 +02:00
Harry Bond
a338a18590 [android] Explain why the TTS button doesn't work when no engine installed
Signed-off-by: Harry Bond <me@hbond.xyz>
2025-08-27 17:55:03 +02:00
Matheus Gomes
eaeae8f31d [styles] Add pedestrian and square areas
Render areas with the combination of highway=pedestrian and place=square tags.

Signed-off-by: Matheus Gomes <matheusgomesms@noreply.codeberg.org>
2025-08-27 17:16:35 +02:00
Harry Bond
7a95d15bef [Drape] Adjust compass hidden angle to match removed screen angle snapping
The screen snapping was removed a while ago (https://github.com/organicmaps/organicmaps/pull/8838) but the compass is still hidden within 5° of north.
This adjusts the angle to 0.1 degrees off north, which should be enough.
fixes #1097

Signed-off-by: Harry Bond <me@hbond.xyz>
2025-08-27 10:17:58 +01:00
Codeberg Translate
7be3164db7 [strings] Update from Codeberg Translate
Co-authored-by: B o d o <timtrek@noreply.codeberg.org>
Co-authored-by: Codeberg Translate <translate@codeberg.org>
Co-authored-by: Frz <frz@noreply.codeberg.org>
Co-authored-by: Mickael81 <mickael81@noreply.codeberg.org>
Co-authored-by: N4ta <codeberg@n4ta.anonaddy.me>
Co-authored-by: Outbreak2096 <outbreak2096@noreply.codeberg.org>
Co-authored-by: Priit Jõerüüt <jrtcdbrg@noreply.codeberg.org>
Co-authored-by: Stephan-P <stephan-p@noreply.codeberg.org>
Co-authored-by: Weblate <noreply-mt-weblate@weblate.org>
Co-authored-by: Weblate Translation Memory <noreply-mt-weblate-translation-memory@weblate.org>
Co-authored-by: ZeljkoBG <zeljkobg@noreply.codeberg.org>
Co-authored-by: and4po <and4po@noreply.codeberg.org>
Co-authored-by: ghose <ghose@noreply.codeberg.org>
Co-authored-by: hectodium <hectodium@noreply.codeberg.org>
Co-authored-by: ikanakova <ikanakova@noreply.codeberg.org>
Co-authored-by: ldmpub <ldmpub@noreply.codeberg.org>
Co-authored-by: matheusgomesms <matheusgomesms@noreply.codeberg.org>
Co-authored-by: patepelo <patepelo@noreply.codeberg.org>
Co-authored-by: stefanlinden <stefanlinden@noreply.codeberg.org>
Co-authored-by: sziatomi <sziatomi@noreply.codeberg.org>
Co-authored-by: xerini <xerini@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/comaps/android/
Translate-URL: https://translate.codeberg.org/projects/comaps/appstore-description/
Translate-URL: https://translate.codeberg.org/projects/comaps/tts/
Translation: CoMaps/Android - Map Feature Types
Translation: CoMaps/Android UI Strings
Translation: CoMaps/Android UI Strings (SDK)
Translation: CoMaps/Apple AppStore description
Translation: CoMaps/Countries and regions names
Translation: CoMaps/F-Droid app description
Translation: CoMaps/Voice announcements for navigation (TTS)
Translation: CoMaps/iOS - Map Feature Types
Translation: CoMaps/iOS Plist
Translation: CoMaps/iOS UI Strings
2025-08-27 08:12:02 +00:00
eisa01
20208cf892 [generator] Add branch key to map generator
Signed-off-by: eisa01 <eisa01@gmail.com>
2025-08-27 10:11:29 +02:00
Andrei Shkrob
9fd80ecf88 [android-auto] Fix theme issues
Signed-off-by: Andrei Shkrob <github@shkrob.dev>
2025-08-27 00:16:13 +07:00
Alexander Borsuk
bd97cb4ceb Do not autozoom to show the full route when adding stops
This should simplify route planning and avoid unnecessary zoom in back and back again

Signed-off-by: Alexander Borsuk <me@alex.bio>
2025-08-27 00:13:26 +07:00
Konstantin Pastbin
dd2458d1b1 [styles][outdoor] Make waterways bolder
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-08-26 19:00:21 +02:00
Konstantin Pastbin
405025879e [styles] Display labels earlier for most amenities which were z19-
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-08-26 18:55:04 +02:00
Konstantin Pastbin
83d483eabb [styles] Make power substations icons visible earlier
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-08-26 18:55:04 +02:00
Konstantin Pastbin
31219ded29 Revert "[android] Display overlay layer state with icon"
This reverts commit d44f0ae7da.
2025-08-26 20:15:35 +07:00
Harry Bond
47936df79c [android] Rebase fixes for Add support for check_date & check_date:opening_hours
Following from https://codeberg.org/comaps/comaps/pulls/1572
Also add script for easy transfer of strings across modules

Signed-off-by: Harry Bond <me@hbond.xyz>
2025-08-26 09:42:08 +02:00
Harry Bond
73238a6e3c [android] increase location update freq from 1s to 0.5s, don't take 3s to update when not following position
supersedes #1022
I don't think there's much point in mode-dependent update frequencies, AFAIK it's from earlier maps.me days when phones were weaker.

Signed-off-by: Harry Bond <me@hbond.xyz>
2025-08-26 09:34:31 +02:00
Harry Bond
74a36bc49a [android] Fix navigation notification style
Signed-off-by: Harry Bond <me@hbond.xyz>
2025-08-25 21:00:17 +01:00
eisa01
7088489814 [core] Better check whether showing brand is redundant in subtitle
Previous implementation checked if brand was equal to name, better to check if it's located in name

Signed-off-by: eisa01 <eisa01@gmail.com>
2025-08-25 18:08:16 +02:00
Bastian Greshake Tzovaras
fbc844b19e add suggestions from harry
Signed-off-by: Bastian Greshake Tzovaras <bgreshake@googlemail.com>
2025-08-25 17:27:40 +02:00
Bastian Greshake Tzovaras
5a4f10a584 [docs] clarify politeness
Signed-off-by: Bastian Greshake Tzovaras <bgreshake@googlemail.com>
2025-08-25 17:27:40 +02:00
Bastian Greshake Tzovaras
0fa12070e0 [docs] add sentence on adding to CONTRIB file
Signed-off-by: Bastian Greshake Tzovaras <bgreshake@googlemail.com>
2025-08-25 17:27:40 +02:00
Bastian Greshake Tzovaras
dae2ce0caf [docs] add guidance for first-timeer review & template
Signed-off-by: Bastian Greshake Tzovaras <bgreshake@googlemail.com>
2025-08-25 17:27:40 +02:00
x7z4w
5a603ebfae [styles] Night mode bookmarks
Signed-off-by: x7z4w <x7z4w@noreply.codeberg.org>
2025-08-25 12:17:35 +02:00
Jean-Baptiste
4861ae7e67 [android] Add new custom switch for preference
Signed-off-by: jeanbaptisteC <jeanbaptiste.charron@outlook.fr>
2025-08-25 10:32:10 +02:00
Jean-Baptiste
9425138782 [android] Migrate Manage route and save buttons to Material Components
Signed-off-by: jeanbaptisteC <jeanbaptiste.charron@outlook.fr>
2025-08-25 10:21:52 +02:00
Jean-Baptiste
beac6aa7bc [android] Revert changes about night themes
Signed-off-by: jeanbaptisteC <jeanbaptiste.charron@outlook.fr>
2025-08-25 06:51:52 +02:00
eisa01
33ad35206f [drape] Enable shift+swipe to zoom on macOS Catalyst app\
\
Matches functionality in Apple Maps. Discovered while discussing issue #1509\
\
Tested that pinch to zoom still work in iPad Simulator

Signed-off-by: eisa01 <eisa01@gmail.com>
2025-08-24 20:37:12 +02:00
Codeberg Translate
234f13abcc [strings] Update from Codeberg Translate
Co-authored-by: Codeberg Translate <translate@codeberg.org>
Co-authored-by: sziatomi <sziatomi@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/comaps/appstore-description/
Translation: CoMaps/Android - Map Feature Types
Translation: CoMaps/Android UI Strings
Translation: CoMaps/Apple AppStore description
Translation: CoMaps/F-Droid app description
Translation: CoMaps/iOS - Map Feature Types
Translation: CoMaps/iOS UI Strings
2025-08-24 17:16:58 +00:00
x7z4w
5e7bc37fb5 Fix crash
Signed-off-by: x7z4w <x7z4w@noreply.codeberg.org>
2025-08-24 19:12:32 +02:00
Harry Bond
08abddc7fc [android] Add support for check_date & check_date:opening_hours
Signed-off-by: Harry Bond <me@hbond.xyz>
2025-08-24 16:58:56 +00:00
Harry Bond
ef9f4ceb1e [android] fix preview in android studio for opening_hours fragment
Signed-off-by: Harry Bond <me@hbond.xyz>
2025-08-24 16:58:11 +00:00
887 changed files with 10014 additions and 6496 deletions

View File

@@ -6,7 +6,7 @@ on:
- main
env:
JAVA_HOME: /usr/lib/jvm/temurin-17-jdk-amd64 # Java 17 is required for Android Gradle 8 plugin
JAVA_HOME: /usr/lib/jvm/temurin-21-jdk-amd64 # Java 21 is required for Android Gradle 8 plugin
SKIP_MAP_DOWNLOAD: true
jobs:

1
.gitignore vendored
View File

@@ -9,6 +9,7 @@ Makefile.Release
object_script.*.Debug
object_script.*.Release
compile_commands.json
*.local.*
stxxl.errlog
stxxl.log

View File

@@ -120,7 +120,7 @@ if (PLATFORM_LINUX AND (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND (CMAKE_BUILD_T
add_compile_options(-fno-fat-lto-objects)
# To fix ar and ranlib "plugin needed to handle lto object".
string(REGEX MATCH "[0-9]+" GCC_MAJOR_VERSION ${CMAKE_CXX_COMPILER_VERSION})
file(GLOB_RECURSE plugin /usr/lib/gcc/*/${GCC_MAJOR_VERSION}/liblto_plugin.so)
file(GLOB_RECURSE plugin /usr/lib/gcc/*/${GCC_MAJOR_VERSION}*/liblto_plugin.so)
set(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> --plugin ${plugin} qcs <TARGET> <OBJECTS>")
set(CMAKE_C_ARCHIVE_FINISH "<CMAKE_RANLIB> --plugin ${plugin} <TARGET>")
set(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> --plugin ${plugin} qcs <TARGET> <OBJECTS>")

View File

@@ -51,6 +51,9 @@ A community-led free & open source maps app based on [OpenStreetMap](https://www
<a href="https://f-droid.org/en/packages/app.comaps.fdroid/">
<img src="docs/badges/fdroid.png" alt="F-Droid" width="160"/>
</a>
<a href="https://apt.izzysoft.de/fdroid/index/apk/app.comaps">
<img src="docs/badges/izzyondroid.png" alt="Obtainium" width="160"/>
</a>
<a href="https://apps.obtainium.imranr.dev/redirect?r=obtainium://add/https://codeberg.org/comaps/comaps">
<img src="docs/badges/obtainium.png" alt="Obtainium" width="160"/>
</a>

View File

@@ -29,12 +29,12 @@ def getCommitMessage() {
project.ext.appId = 'app.comaps'
project.ext.appName = 'CoMaps'
// I have Java 21 installed, but this doesn't work on MacOS.
//java {
// toolchain {
// languageVersion.set(JavaLanguageVersion.of(17))
// }
//}
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(21))
}
}
android {
namespace = 'app.organicmaps'
@@ -311,8 +311,8 @@ android {
compileOptions {
coreLibraryDesugaringEnabled = true
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
sourceCompatibility JavaVersion.VERSION_21
targetCompatibility JavaVersion.VERSION_21
}
}

View File

@@ -0,0 +1 @@
মানচিত্র নেভিগেশন - আপনার যাত্রা সম্পর্কে আরও জানুন - সম্প্রদায় কর্তৃক পরিচালিত

View File

@@ -0,0 +1 @@
কোম্যাপস - অফলাইনে হাইকিং, সাইকেলিং ও ড্রাইভিং

View File

@@ -1 +0,0 @@
সহজ মানচিত্র নেভিগেশন - আপনার যাত্রা সম্পর্কে আরও জানুন - সম্প্রদায় কর্তৃক পরিচালিত

View File

@@ -1 +0,0 @@
কোম্যাপস - অফলাইনে হাইকিং, সাইকেলিং এবং ড্রাইভিং করুন গোপনীয়তা সহ

View File

@@ -1,7 +0,0 @@
• Data OpenStreetMap k 4. 8.
• vylepšené barvy mapy pro vodu, lesy, křoviny, různé vybavení, pěší zóny atd.
• přidány stanice lesní stráže, krytých parkovišť pro jízdní kola, únikových her, úschoven zavazadel, partnerských pošt
• vylepšeny výškové vrstevnice na 20 m pro některé oblíbené turistické oblasti
• podpora více zkratek a aliasů pro vyhledávání
• přidání ikon pro vyhledávání a záložky pro rychlé občerstvení, jízdní kola a dobíjecí stanice
• plynulejší pohyb šipky pro určení polohy

View File

@@ -1,7 +1,8 @@
• OpenStreetMap-Daten vom 4. August
Verbesserte Farben für Wasser, Wälder, Gestrüpp, verschiedene Einrichtungen, Fussgängerbereiche etc.
• Besucherstationen, überdachte Fahrradparkplätze, Escaperooms, Gepäckschließfächer, und Postpartner hinzugefügt
Konturhöhenlinien aktualisiert, bis zu 20m für beliebte Wanderregionen
Unterstützung für mehr Such-Abkürzungen und Synonyme
Such- und Lesezeichen-Symbole für Fast Food, Rad- und Lade-Stationen
Der Positionspfeil bewegt sich gleichmässiger
• OpenStreetMap-Daten vom 22. August
Neue Geschwindigkeitsanzeige & Details aufgezeichneter Strecken
• Besserer dunkler Modus, neue farbige Labels
Anzeige wann Orte & Öffnungszeiten überprüft wurden
Routenplanung berücksichtigt Stoppschilder, Ampeln & bedingte Einschränkungen.
GPS-Peilung wird statt Kompass bevorzugt & höhere GPS-Frequenz.
Adressen & Notizen im OSM-Editor unterstützt.
• Mehr Verbesserungen an UI-Elementen & Kartenstil, alle Details in den Codeberg-Versionshinweisen!

View File

@@ -1,7 +1,9 @@
• OpenStreetMap data as of August 4
improve map colors for water, forests, scrubs, various amenities, pedestrian areas etc.
add ranger stations, covered bicycle parkings, escape games, luggage lockers, post office partners
upgrade altitude contour lines to 20m step for some popular hiking regions
support more search abbreviations and aliases
add search and bookmark icons for fast food, bicycle and charging stations
more smooth position arrow movements
• OpenStreetMap data as of August 22
New current speed indicator, display track info
Improved dark map style, added coloured labels
Display when places & opening hours were last checked
Routing now considers turns, stop signs, lights & conditional restrictions
Prefer GPS bearing over compass and increase location poll rate
Enable adding standalone addresses & notes in the editor
• Various UI element & map style improvements
Check our Codeberg release notes for more changes!

View File

@@ -1,7 +1,9 @@
• Datos de OpenStreetMap a fecha 2025.08.04
Mejora de colores del mapa para agua, bosques, matorrales, servicios, zonas peatonales, etc.
Añadidas estaciones de guardabosques, aparcamientos cubiertos de bicis, juegos de escape, consignas y oficinas de correo
Nuevas curvas de nivel (20 m) en regiones populares para senderismo
Más abreviaturas y alias de búsqueda
Iconos de búsqueda y marcadores para comida rápida, bicicletas y estaciones de recarga
Más fluidez de la flecha de posición
• Datos de OSM a 22-08-2025
Nuevo indicador de velocidad e información de pista
Modo oscuro mejorado y nombres de POI coloreados
Indicador de última revisión de lugares y horarios de apertura
Rutas mejoradas teniendo en cuenta giros, señales de STOP, semáforos y restricciones
Mayor precisión para determinar tu localización y sentido
Añade direcciones y notas con el editor
• Otras mejoras en elementos de la interfaz y estilo del mapa
Entra en nuestro Codeberg para más cambios!

View File

@@ -1 +1 @@
CoMaps - کوه نوردی، دوچرخه سواری و رانندگی افلاین و خصوصی
CoMaps - کوهنوردی، دوچرخهسواری و رانندگی آفلاین

View File

@@ -0,0 +1,9 @@
• Données OSM du 22 août
• Nouvel indicateur de vitesse et détails des pistes
• Amélioration du style sombre, ajout de labels colorées
• Affichage de la date de dernière vérification d'un lieu
• Support dans le routage des virages, signalisations et restrictions
• Amélioration de la boussole et de la précision GPS
• Support des adresses et des notes dans l'éditeur
• Diverses améliorations d'UI et du style de la carte
Plus d'informations sur notre Codeberg

View File

@@ -1 +1 @@
CoMaps - Pješačite, biciklirajte, vozite Offline i privatno
CoMaps - Pješačite, biciklirajte, vozite Offline

View File

@@ -0,0 +1,32 @@
A CoMaps egy közösség által létrehozott, ingyenes és nyílt forráskódú térképalkalmazás, amely az OpenStreetMap térképadatain alapul, és amelyet az átláthatóság, a magánélet védelme és a nonprofit jelleg iránti elkötelezettség erősít. A CoMaps az Organic Maps villája, amely viszont a Maps.ME villája.
A projekt előzményeiről és az irányáról a <b><i>codeberg.org/comaps</i></b> oldalon olvashatsz.
Csatlakozz ott a közösséghez, és segíts a legjobb térképalkalmazás elkészítésében.
• Használd az alkalmazást és terjeszd a hírét
• Adj visszajelzést és jelentsd a problémákat
• Frissítsd és javítsd a térképadatokat az alkalmazásban vagy az OpenStreetMap weboldalán.
‣ <b>Offline-fókuszú:</b> Tervezd meg és navigáld külföldi útad mobilszolgáltatás nélkül, keress útpontokat egy távoli túra során stb. Az alkalmazás minden funkcióját úgy terveztük, hogy internetkapcsolat nélkül is működjön.
‣ <b>A magánélet tiszteletben tartása:</b> Az alkalmazás az adatvédelem szem előtt tartásával készült, nem azonosítja az embereket, nem követi nyomon és nem gyűjt személyes adatokat, és reklámmentes.
‣ <b>Takarékosdik az akkumulátorral és a tárhellyel:</b> Nem meríti le az akkumulátort, mint más navigációs alkalmazások. A jól összeállítot kis méretű térképek értékes helyet takarítanak meg a telefonon.
‣ <b>Egyszerű és szép grafikus felület,</b> nagyszerű és könnyen használható funkciók, amelyek egyszerűen működnek.
‣ <b>Ingyenes és a közösség által készített:</b> A hozzád hasonló emberek segítettek az alkalmazás létrehozásában azáltal, hogy hozzáadtak helyeket az OpenStreetMap térképhez, tesztelték és visszajelzést adtak a funkciókról, valamint hozzájárultak a fejlesztői képességeikkel és a pénzükkel.
‣ <b>Nyílt és átlátható döntéshozatal és pénzügyek, nonprofit és teljesen nyílt forráskódú.</b>
<b>Főbb jellemzők:</b>
• Letölthető részletes térképek olyan helyekkel, amelyek sok kereskedelmi térképen nem állnak rendelkezésre.
• Szabadtéri üzemmód kiemelt túraútvonalakkal, táborhelyekkel, vízforrásokkal, csúcsokkal, szintvonalakkal stb.
• Sétaútvonalak és kerékpárutak
• Érdekes pontok, mint például éttermek, benzinkutak, szállodák, üzletek, látnivalók és még sok minden más
• Keresés név, cím vagy az érdekes pontok kategóriája alapján
• Navigáció hangutasításokkal gyalogláshoz, kerékpározáshoz vagy vezetéshez
• Kedvenc helyeid könyvjelzővel láthatod el egyetlen érintéssel
• Wikipedia szócikkek internetkapcsolat nélkül
• Metró tranzit réteg és irányok
• Útvonal mentése
• Könyvjelzők és nyomvonalak exportálása és importálása KML, KMZ, GPX formátumokban
• Sötét üzemmód az éjszakai használathoz
• Térképadatok javítása mindenki számára egy alapvető beépített szerkesztő segítségével
<b>Itt van a szabadság</b>
Fedezd fel az utadat, navigálj a világban úgy, hogy a magánélet és a közösség kerüljön előtérbe!

View File

@@ -1 +0,0 @@
Navigation facile del mappa Discoperi tu viage Alimentate per le communitate

View File

@@ -1,7 +0,0 @@
• Dati di OpenStreetMap aggiornati al 4 Agosto
• Migliorati i colori per acqua, foreste, servizi etc
• Aggiunte le stazioni delle guardie forestali, i parcheggi coperti per bici, gli escape games e altri servizi
• Aggiornato l'intervallo delle isolinee a 20 m per le zone escursionistiche più popolari
• Aggiunto il supporto per un maggior numero di alias
• Aggiunte le icone per i fast food, i punti di ricarica e le biciclette
• Resi più fluidi i movimenti della freccia di posizione

View File

@@ -1 +1 @@
CoMaps - Wandel, fiets, rijdt offline met privacy
CoMaps - Wandel, fiets, rijd offline met privacy

View File

@@ -0,0 +1 @@
CoMaps - Gå tur, sykkel, kjør - med personvern

View File

@@ -1,7 +1,8 @@
• Dados OSM de 4/08
Melhoria nas cores para água, florestas, matagais, serviços, áreas de pedestres, etc.
Adição de guarda-florestais, estacionamentos cobertos para bicicletas, jogos de fuga, armários para bagagem e parceiros postais
Melhoria na precisão de curvas de nível para 20 m em algumas regiões populares
Suporte a mais abreviações para busca
Adição de ícones de pesquisa e favoritos para fast food, bicicletas e estações de recarga
Movimentos mais suaves para seta de posição
• Dados OSM de 22/08
Novo indicador de velocidade e tela de informações de trilha
Melhor estilo de mapa escuro, rótulos coloridos adicionados
Exibição da última atualização de locais e horários de funcionamento
O roteamento agora considera conversões, PARE, semáforos, e restrições condicionais
Preferência por orientação GPS em vez de bússola e aumento da frequência de localização
Editor: adição de endereços e notas independentes
• Melhorias em elementos da interface e estilo de mapa

View File

@@ -1,32 +0,0 @@
Um aplicativo de mapas gratuito e de código aberto, liderado pela comunidade, baseado em dados do OpenStreetMap e reforçado pelo compromisso com a transparência, privacidade e sem fins lucrativos. O CoMaps é um fork/spin-off do Organic Maps, que por sua vez é um fork do Maps.ME.
Leia mais sobre os motivos do projeto e sua direção em <b><i>codeberg.org/comaps</i></b>.
Junte-se à comunidade e ajude a criar o melhor aplicativo de mapas.
• Use o aplicativo e divulgue-o.
• Envie feedback e relate problemas.
• Atualize os dados do mapa no aplicativo ou no site do OpenStreetMap.
‣ <b>Foco offline</b>: Planeje e navegue em sua viagem ao exterior sem a necessidade de sinal de celular, pesquise pontos de referência durante uma caminhada distante, etc. Todas as funções do aplicativo foram projetadas para funcionar offline.
‣ <b>Respeitando a privacidade</b>: O aplicativo foi projetado com a privacidade em mente - não identifica pessoas, não rastreia e não coleta informações pessoais. Sem anúncios.
‣ <b>Simples e sofisticado</b>: recursos essenciais e fáceis de usar que simplesmente funcionam.
‣ <b>Economiza bateria e espaço</b>: Não consome muita bateria como outros aplicativos de navegação. Mapas compactos economizam espaço precioso no seu celular.
‣ <b>Gratuito e desenvolvido pela comunidade</b>: Pessoas como você ajudaram a desenvolver o aplicativo adicionando lugares ao OpenStreetMap, testando e dando feedback sobre os recursos e contribuindo com suas habilidades de desenvolvimento e dinheiro.
‣ <b>Tomada de decisões e finanças abertas e transparentes, sem fins lucrativos e totalmente de código aberto.</b>
<b>Principais recursos</b>:
• Mapas detalhados para download com locais não disponíveis no Google Maps
• Modo ao ar livre com trilhas em destaque, acampamentos, fontes de água, picos, curvas de nível, etc.
• Trilhas para caminhada e ciclovias
• Pontos de interesse como restaurantes, postos de gasolina, hotéis, lojas, pontos turísticos e muito mais
• Pesquise por nome, endereço ou por categoria de ponto de interesse
• Navegação com anúncios de voz para caminhadas, ciclismo ou direção
• Marque seus lugares favoritos com um único toque
• Artigos offline da Wikipédia
• Camada e direções de transporte público do metrô
• Gravação de trilhas
• Exporte e importe favoritos e trilhas nos formatos KML, KMZ e GPX
• Um modo escuro para usar à noite
• Aprimore os dados do mapa para todos usando um editor básico integrado
<b>A Liberdade Chegou</b>
Descubra sua jornada, navegue pelo mundo com privacidade e comunidade em primeiro lugar!

View File

@@ -1 +0,0 @@
Navegação fácil nos mapas - Descubra mais sobre o seu percurso - Feito por todos

View File

@@ -1 +0,0 @@
CoMaps - Mapas e Navegação - Offline e Privada

View File

@@ -1 +1 @@
CoMaps - Drumeții, Ciclism, Condus Offline în confidențialitate
CoMaps - călătorește offline cu confidențialitate

View File

@@ -1,7 +1,9 @@
Карты OpenStreetMap от 4 августа
Улучшен цвет воды, леса, кустарников, различных объектов инфраструктуры, пешеходных зон и т.д.
Добавлены лесничества, крытые велопарковки, квесты, камеры хранения
Для некоторых популярных туристических регионов добавлены линии высот 20м
• Поддержка дополнительных поисковых сокращений и синонимов
Добавлены иконки меток и результатов поиска для фастфуда, велопарковок и зарядных станций
Более плавное движение стрелки местоположения
Данные 22 августа
Новый спидометр,информация о маршруте
Улучшен тёмный стиль,цветные метки
Время последней проверки часов работы
• Построении маршрута учитывает повороты, знак «Стоп»,светофоры и ограничения
Предпочтение отдается GPS-координатам,а не компасу,увеличена частота опроса местоположения
Можно добавлять отдельные адреса и заметки в редакторе
• Улучшены различные элементы пользовательского интерфейса и стиль карты
Ознакомьтесь с примечания к релизу про изменения!

View File

@@ -1,32 +1,32 @@
Бесплатна апликација отвореног кода коју је обављала заједница и заснива се на ОpenStreetMap-у подацима, усмерени транспарентност, приватност и непрофитни. CoMaps је Апликације за органске карте виљушка, које је пак форк Maps.ME.
Бесплатна апликација отвореног кода коју одржава заједница и која се заснива на ОpenStreetMap подацима. Непрофитна, транспарентна и цени вашу приватност. CoMaps је настала од апликације Organic Maps, која је настала од апликације Maps.ME.
Прочитајте о разлозима пројекта и његовог правца на <b><i>codeberg.org/comaps</i></b>
Придружите се отвореној заједници и помозите да направимо најбољу апликацију за мапе
• Користите апликацију и проширите глас о томе
• Дајте повратне информације и пријавите проблеме
• Ажурирајте податке на мапи у апликацији или на веб локацији OpenStreetMap
• Ажурирајте податке на мапи у апликацији или на сајту OpenStreetMap
‣ <b> фокусирано на офлајн Вар </b>: Планирајте и управљајте путовањем у иностранству без потребе за мобилним услугама, тражите путне тачке док је на даљинском покрету, итд. Све апликације су дизајниране за рад ван мреже.
‣ <b> Поштовање приватности </b>: Апликација је осмишљена задржавања у уму приватност - не идентификује људе, не прати или прикупља личне податке. Нема реклама.
‣ <b> Једноставно и елегантно </b>: Апликација је тривијална за употребу и једноставно функционише.
‣ <b> Чува вашу батерију и простор </b>: не конзумира батерију као остале навигационе апликације. Компактне картице сачувајте драгоцени простор на вашем телефону.
‣ <b> Отворено и направио је заједницу </b>: Људи попут вас је помогли да додају апликацију додавањем локација на OpenStreetMap-у, тестирању и давање повратних информација о апликацији и доприносе вашим развојним вештинама и новцу.
‣ <b> Отворено и транспарентно доношење одлука и употреба финансија, непрофитна и потпуно отворена извора. </b>
‣ <b>Фокусирано на офлајн рад</b>: Планирајте и управљајте путовањем у иностранству без потребе за мобилним интернетом, тражите успутне тачке док сте на забаченом планинском путу, итд. Све функционалности су дизајниране за рад без интернета.
‣ <b>Поштовање приватности</b>: Апликација је осмишљена са приватношћу корисника на уму - не идентификује људе, не прати или прикупља личне податке. Нема реклама.
‣ <b>Једноставно и елегантно</b>: Апликација је лака за употребу и једноставно функционише.
‣ <b>Чува вашу батерију и простор</b>: Не троши батерију као остале апликације за навигацију. Компактне мапе чувају драгоцени простор на вашем телефону.
‣ <b>Отворено и направљено од стране заједнице</b>: Људи попут вас су допринели развоју апликације додавањем локација на OpenStreetMap, тестирањем, давањем повратних информација о апликацији и помогли су својим програмерским вештинама и донацијама.
‣ <b>Отворено и транспарентно доношење одлука и употреба донација, непрофитна и потпуно отвореног кода.</b>
<b> Главне карактеристике </b>:
• Преузмите детаљне мапе са локацијама које нису доступне са Гоогле мапама
Улазнице за излете са истакнутим планинарским стазама, камповима, изворима воде, планинске врхове, контурне линије итд.
• Преузмимање детаљне мапе са локацијама које нису доступне са Google мапама
Режим за излете са истакнутим планинарским стазама, камповима, изворима воде, планинским врховима, изохипсама итд.
• Стазе за планинарење и бицикле
• Тачке интереса као што су ресторани, бензинске пумпе, хотели, продавнице, погледа и још много тога
• Претражите име или адресу или по категоријама камате
навигација са гласовним најавама за ходање, бициклизам или аутомобил
• Означите своја омиљена места једним додиром
• Тачке интереса као што су ресторани, бензинске пумпе, хотели, продавнице, знаменитости и још много тога
• Претрага по називу, адреси или категоријама
Навигација са гласовним инструкцијама за ходање, вожњу бицикла или аутомобила
• Означивање омиљених места једним додиром
• Офлајн чланци Википедије
транзитни слој подземне пруге са навигацијом
• Снимање ГПС трагова
Ознака и увоз и увоз у KML, KMZ, GPX формате
Транзитни слој подземне железнице са навигацијом
• Снимање ГПС путања
Увоз и увоз маркера и путања у KML, KMZ, GPX формате
• Тамни режим за употребу током ноћи
• Побољшајте карту за све кориснике, користећи основни уредни уредник мапе
• Побољшајте карту за све кориснике, користећи основни едитор за мапе
<b> Слобода је овде </b>
Откријте своје путовање, крећете се са свијетом са приватношћу и заједницом на првом месту!
Откријте своје путовање, крећете се са светом са приватношћу и заједницом на првом месту!

View File

@@ -1,7 +0,0 @@
• подаци из OpenStreetMap-а од 4. августа
• побољшане боје на мапи за воду, шуме, жбуње, разне објекте, пешачке зоне итд.
• додате станице ренџера, наткривена паркинг места за бицикле, escape room-ови, ормарићи за пртљаг
• унапређене изохипсе на кораке од 20 м за популарне планинарске регионе
• подршка за више скраћеница и алтернативних назива у претрази
• додате иконе за претрагу и обележавање за брзу храну, бицикле и станице за пуњење
• равномерније кретање стрелице која приказује позицију

View File

@@ -1 +1 @@
Једноставна навигација - Сазнајте више о свом путовању - Ради на бази заједнице
Једноставна навигација - Сазнајте више о свом путовању - Одржава заједница

View File

@@ -1 +1 @@
CoMaps - пешачење, бицикл, вожња
CoMaps - пешачење, бицикл и вожња, са приватношћу

View File

@@ -1 +1 @@
Једноставна навигација - Сазнајте више о свом путовању - Ради на бази заједнице
Једноставна навигација - Сазнајте више о свом путовању - Одржава заједница

View File

@@ -73,8 +73,7 @@ public class NavigationScreen extends BaseMapScreen implements RoutingController
public Template onGetTemplate()
{
final NavigationTemplate.Builder builder = new NavigationTemplate.Builder();
builder.setBackgroundColor(ThemeUtils.isNightMode(getCarContext()) ? Colors.NAVIGATION_TEMPLATE_BACKGROUND_NIGHT
: Colors.NAVIGATION_TEMPLATE_BACKGROUND_DAY);
builder.setBackgroundColor(Colors.NAVIGATION_TEMPLATE_BACKGROUND);
builder.setActionStrip(createActionStrip());
builder.setMapActionStrip(UiHelpers.createMapActionStrip(getCarContext(), getSurfaceRenderer()));

View File

@@ -11,8 +11,7 @@ public final class Colors
public static final CarColor OPENING_HOURS_CLOSES_SOON = CarColor.YELLOW;
public static final CarColor OPENING_HOURS_CLOSED = CarColor.RED;
public static final CarColor START_NAVIGATION = CarColor.GREEN;
public static final CarColor NAVIGATION_TEMPLATE_BACKGROUND_DAY = CarColor.GREEN;
public static final CarColor NAVIGATION_TEMPLATE_BACKGROUND_NIGHT = CarColor.DEFAULT;
public static final CarColor NAVIGATION_TEMPLATE_BACKGROUND = CarColor.GREEN;
public static final CarColor BUTTON_ACCEPT = CarColor.GREEN;
private Colors() {}

View File

@@ -31,18 +31,19 @@ public final class RoutingHelpers
@NonNull
public static LaneDirection createLaneDirection(@NonNull LaneWay laneWay, boolean isRecommended)
{
int shape = LaneDirection.SHAPE_UNKNOWN;
shape = switch (laneWay)
@LaneDirection.Shape
final int shape = switch (laneWay)
{
case REVERSE -> LaneDirection.SHAPE_U_TURN_LEFT;
case SHARP_LEFT -> LaneDirection.SHAPE_SHARP_LEFT;
case LEFT -> LaneDirection.SHAPE_NORMAL_LEFT;
case SLIGHT_LEFT, MERGE_TO_LEFT -> LaneDirection.SHAPE_SLIGHT_LEFT;
case SLIGHT_RIGHT, MERGE_TO_RIGHT -> LaneDirection.SHAPE_SLIGHT_RIGHT;
case THROUGH -> LaneDirection.SHAPE_STRAIGHT;
case RIGHT -> LaneDirection.SHAPE_NORMAL_RIGHT;
case SHARP_RIGHT -> LaneDirection.SHAPE_SHARP_RIGHT;
default -> shape;
case ReverseLeft -> LaneDirection.SHAPE_U_TURN_LEFT;
case SharpLeft -> LaneDirection.SHAPE_SHARP_LEFT;
case Left -> LaneDirection.SHAPE_NORMAL_LEFT;
case MergeToLeft, SlightLeft -> LaneDirection.SHAPE_SLIGHT_LEFT;
case Through -> LaneDirection.SHAPE_STRAIGHT;
case SlightRight, MergeToRight -> LaneDirection.SHAPE_SLIGHT_RIGHT;
case Right -> LaneDirection.SHAPE_NORMAL_RIGHT;
case SharpRight -> LaneDirection.SHAPE_SHARP_RIGHT;
case ReverseRight -> LaneDirection.SHAPE_U_TURN_RIGHT;
default -> LaneDirection.SHAPE_UNKNOWN;
};
return LaneDirection.create(shape, isRecommended);

View File

@@ -8,14 +8,15 @@ import androidx.car.app.CarContext;
import androidx.car.app.model.CarIcon;
import androidx.car.app.navigation.model.Destination;
import androidx.car.app.navigation.model.Lane;
import androidx.car.app.navigation.model.LaneDirection;
import androidx.car.app.navigation.model.Step;
import androidx.car.app.navigation.model.TravelEstimate;
import androidx.car.app.navigation.model.Trip;
import androidx.core.graphics.drawable.IconCompat;
import app.organicmaps.sdk.bookmarks.data.MapObject;
import app.organicmaps.sdk.routing.LaneInfo;
import app.organicmaps.sdk.routing.LaneWay;
import app.organicmaps.sdk.routing.RoutingInfo;
import app.organicmaps.sdk.routing.SingleLaneInfo;
import app.organicmaps.sdk.util.Distance;
import app.organicmaps.util.Graphics;
import app.organicmaps.widget.LanesDrawable;
@@ -69,11 +70,12 @@ public final class RoutingUtils
builder.setManeuver(RoutingHelpers.createManeuver(context, info.carDirection, info.exitNum));
if (info.lanes != null)
{
for (final SingleLaneInfo laneInfo : info.lanes)
for (final LaneInfo laneInfo : info.lanes)
{
final Lane.Builder laneBuilder = new Lane.Builder();
for (final LaneWay laneWay : laneInfo.mLane)
laneBuilder.addDirection(RoutingHelpers.createLaneDirection(laneWay, laneInfo.mIsActive));
for (final LaneWay laneWay : laneInfo.mLaneWays)
laneBuilder.addDirection(
RoutingHelpers.createLaneDirection(laneWay, /* isRecommended */ laneWay == laneInfo.mActiveLaneWay));
builder.addLane(laneBuilder.build());
}
final LanesDrawable lanesDrawable = new LanesDrawable(context, info.lanes);

View File

@@ -29,7 +29,7 @@ public class LayersButton extends FloatingActionButton
{
final int[] drawableState = super.onCreateDrawableState(extraSpace + 1);
if (mAreLayersActive)
mergeDrawableStates(drawableState, new int[] {R.attr.state_layers_enabled});
mergeDrawableStates(drawableState, new int[] {R.attr.layers_enabled});
return drawableState;
}

View File

@@ -9,7 +9,6 @@ import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.ImageView;
import androidx.annotation.NonNull;
@@ -27,6 +26,7 @@ import app.organicmaps.util.UiUtils;
import com.google.android.material.bottomsheet.BottomSheetBehavior;
import com.google.android.material.bottomsheet.BottomSheetDialog;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
import com.google.android.material.button.MaterialButton;
import com.google.android.material.divider.MaterialDividerItemDecoration;
import java.util.ArrayList;
@@ -42,10 +42,10 @@ public class ManageRouteBottomSheet
{
View v = inflater.inflate(R.layout.manage_route_bottom_sheet, container, false);
Button cancelButton = v.findViewById(R.id.btn__cancel);
MaterialButton cancelButton = v.findViewById(R.id.btn__cancel);
cancelButton.setOnClickListener(this);
Button planButton = v.findViewById(R.id.btn__plan);
MaterialButton planButton = v.findViewById(R.id.btn__plan);
planButton.setOnClickListener(this);
mMyLocationImageView = v.findViewById(R.id.image_my_location);

View File

@@ -26,6 +26,7 @@ import app.organicmaps.sdk.util.StringUtils;
import app.organicmaps.util.UiUtils;
import app.organicmaps.util.Utils;
import app.organicmaps.util.WindowInsetUtils;
import app.organicmaps.widget.CurrentSpeedView;
import app.organicmaps.widget.LanesView;
import app.organicmaps.widget.SpeedLimitView;
import app.organicmaps.widget.menu.NavMenu;
@@ -51,6 +52,8 @@ public class NavigationController implements TrafficManager.TrafficCallback, Nav
private final LanesView mLanesView;
@NonNull
private final SpeedLimitView mSpeedLimit;
@NonNull
private final CurrentSpeedView mCurrentSpeed;
private final MapButtonsViewModel mMapButtonsViewModel;
@@ -94,6 +97,7 @@ public class NavigationController implements TrafficManager.TrafficCallback, Nav
mLanesView = topFrame.findViewById(R.id.lanes);
mSpeedLimit = topFrame.findViewById(R.id.nav_speed_limit);
mCurrentSpeed = topFrame.findViewById(R.id.nav_current_speed);
// Show a blank view below the navbar to hide the menu content
final View navigationBarBackground = mFrame.findViewById(R.id.nav_bottom_sheet_nav_bar);
@@ -128,7 +132,7 @@ public class NavigationController implements TrafficManager.TrafficCallback, Nav
mLanesView.setLanes(info.lanes);
updateSpeedLimit(info);
updateSpeedWidgets(info);
}
private void updatePedestrian(@NonNull RoutingInfo info)
@@ -136,6 +140,7 @@ public class NavigationController implements TrafficManager.TrafficCallback, Nav
mNextTurnDistance.setText(Utils.formatDistance(mFrame.getContext(), info.distToTurn));
info.pedestrianTurnDirection.setTurnDrawable(mNextTurnImage);
updateSpeedWidgets(info);
}
public void updateNorth()
@@ -261,16 +266,18 @@ public class NavigationController implements TrafficManager.TrafficCallback, Nav
RoutingController.get().cancel();
}
private void updateSpeedLimit(@NonNull final RoutingInfo info)
private void updateSpeedWidgets(@NonNull final RoutingInfo info)
{
final Location location = MwmApplication.from(mFrame.getContext()).getLocationHelper().getSavedLocation();
if (location == null)
{
mSpeedLimit.setSpeedLimit(0, false);
mSpeedLimit.setSpeedLimit(-1, false);
mCurrentSpeed.setCurrentSpeed(-1);
return;
}
final int fSpeedLimit = StringUtils.nativeFormatSpeed(info.speedLimitMps);
final boolean speedLimitExceeded = fSpeedLimit < StringUtils.nativeFormatSpeed(location.getSpeed());
mSpeedLimit.setSpeedLimit(fSpeedLimit, speedLimitExceeded);
mCurrentSpeed.setCurrentSpeed(location.getSpeed());
}
}

View File

@@ -45,6 +45,8 @@ import app.organicmaps.util.UiUtils;
import app.organicmaps.util.Utils;
import app.organicmaps.widget.recycler.DotDividerItemDecoration;
import app.organicmaps.widget.recycler.MultilineLayoutManager;
import com.google.android.material.button.MaterialButton;
import com.google.android.material.imageview.ShapeableImageView;
import com.google.android.material.textview.MaterialTextView;
import java.util.LinkedList;
@@ -66,7 +68,7 @@ final class RoutingBottomMenuController implements View.OnClickListener
@NonNull
private final MaterialTextView mError;
@NonNull
private final Button mStart;
private final MaterialButton mStart;
@NonNull
private final ImageView mAltitudeChart;
@NonNull
@@ -99,7 +101,7 @@ final class RoutingBottomMenuController implements View.OnClickListener
View timeElevationLine = getViewById(activity, frame, R.id.time_elevation_line);
View transitFrame = getViewById(activity, frame, R.id.transit_panel);
MaterialTextView error = (MaterialTextView) getViewById(activity, frame, R.id.error);
Button start = (Button) getViewById(activity, frame, R.id.start);
MaterialButton start = (MaterialButton) getViewById(activity, frame, R.id.start);
ImageView altitudeChart = (ImageView) getViewById(activity, frame, R.id.altitude_chart);
MaterialTextView time = (MaterialTextView) getViewById(activity, frame, R.id.time);
TextView timeVehicle = (TextView) getViewById(activity, frame, R.id.time_vehicle);
@@ -121,7 +123,7 @@ final class RoutingBottomMenuController implements View.OnClickListener
private RoutingBottomMenuController(@NonNull Activity context, @NonNull View altitudeChartFrame,
@NonNull View timeElevationLine, @NonNull View transitFrame,
@NonNull MaterialTextView error, @NonNull Button start,
@NonNull MaterialTextView error, @NonNull MaterialButton start,
@NonNull ImageView altitudeChart, @NonNull MaterialTextView time,
@NonNull MaterialTextView altitudeDifference, @NonNull TextView timeVehicle,
@Nullable MaterialTextView arrival, @NonNull View actionFrame,
@@ -153,10 +155,10 @@ final class RoutingBottomMenuController implements View.OnClickListener
mTransitViewDecorator =
new DotDividerItemDecoration(dividerDrawable, res.getDimensionPixelSize(R.dimen.margin_base),
res.getDimensionPixelSize(R.dimen.margin_half));
Button manageRouteButton = altitudeChartFrame.findViewById(R.id.btn__manage_route);
MaterialButton manageRouteButton = altitudeChartFrame.findViewById(R.id.btn__manage_route);
manageRouteButton.setOnClickListener(this);
Button saveButton = altitudeChartFrame.findViewById(R.id.btn__save);
MaterialButton saveButton = altitudeChartFrame.findViewById(R.id.btn__save);
saveButton.setOnClickListener(this);
}
@@ -168,7 +170,7 @@ final class RoutingBottomMenuController implements View.OnClickListener
showRouteAltitudeChart();
showRoutingDetails();
UiUtils.show(mAltitudeChartFrame);
Button saveButton = mAltitudeChartFrame.findViewById(R.id.btn__save);
MaterialButton saveButton = mAltitudeChartFrame.findViewById(R.id.btn__save);
saveButton.setText(R.string.save);
saveButton.setEnabled(true);
}

View File

@@ -0,0 +1,172 @@
package app.organicmaps.widget;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.Typeface;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
public abstract class BaseSignView extends View
{
private float mBorderWidthRatio = 0.1f;
protected void setBorderWidthRatio(float ratio) {
mBorderWidthRatio = ratio;
}
private float mBorderInsetRatio = 0f;
protected void setBorderInsetRatio(float ratio) {
mBorderInsetRatio = ratio;
}
// colors
protected int mBackgroundColor;
protected int mBorderColor;
protected int mAlertColor;
protected int mTextColor;
protected int mTextAlertColor;
// paints
protected final Paint mBackgroundPaint;
protected final Paint mBorderPaint;
protected final Paint mTextPaint;
// geometry
protected float mWidth;
protected float mHeight;
protected float mRadius;
protected float mBorderWidth;
protected float mBorderRadius;
public BaseSignView(Context ctx, @Nullable AttributeSet attrs)
{
super(ctx, attrs);
mBackgroundPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mBorderPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mBorderPaint.setStyle(Paint.Style.STROKE);
mTextPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mTextPaint.setTextAlign(Paint.Align.CENTER);
mTextPaint.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.BOLD));
}
protected void setColors(int backgroundColor,
int borderColor,
int alertColor,
int textColor,
int textAlertColor)
{
mBackgroundColor = backgroundColor;
mBorderColor = borderColor;
mAlertColor = alertColor;
mTextColor = textColor;
mTextAlertColor = textAlertColor;
mBackgroundPaint.setColor(mBackgroundColor);
mBorderPaint.setColor(mBorderColor);
mTextPaint.setColor(mTextColor);
}
@Override
protected void onSizeChanged(int width, int height, int oldWidth, int oldHeight) {
super.onSizeChanged(width, height, oldWidth, oldHeight);
final float paddingX = getPaddingLeft() + getPaddingRight();
final float paddingY = getPaddingTop() + getPaddingBottom();
mWidth = width - paddingX;
mHeight = height - paddingY;
mRadius = Math.min(mWidth, mHeight) / 2f;
mBorderWidth = mRadius * mBorderWidthRatio;
// subtract half the stroke PLUS the extra inset
final float gap = mRadius * mBorderInsetRatio;
mBorderRadius = mRadius - (mBorderWidth / 2f) - gap;
configureTextSize();
}
@Override
protected void onDraw(@NonNull Canvas canvas)
{
super.onDraw(canvas);
final String str = getValueString();
if (str == null) return;
final float cx = mWidth / 2f;
final float cy = mHeight / 2f;
// background & border
boolean alert = isAlert();
mBackgroundPaint.setColor(alert ? mAlertColor : mBackgroundColor);
canvas.drawCircle(cx, cy, mRadius, mBackgroundPaint);
if (!alert)
{
mBorderPaint.setStrokeWidth(mBorderWidth);
mBorderPaint.setColor(mBorderColor);
canvas.drawCircle(cx, cy, mBorderRadius, mBorderPaint);
}
// text
mTextPaint.setColor(alert ? mTextAlertColor : mTextColor);
drawValueString(canvas, cx, cy, str);
}
@Override
public boolean onTouchEvent(@NonNull MotionEvent e)
{
final float cx = mWidth / 2f, cy = mHeight / 2f;
final float dx = e.getX() - cx, dy = e.getY() - cy;
if ((dx * dx) + (dy * dy) <= (mRadius * mRadius))
{
performClick();
return true;
}
return false;
}
@Override
public boolean performClick()
{
super.performClick();
return false;
}
private void drawValueString(Canvas c, float cx, float cy, String str)
{
Rect b = new Rect();
mTextPaint.getTextBounds(str, 0, str.length(), b);
final float y = cy - b.exactCenterY();
c.drawText(str, cx, y, mTextPaint);
}
void configureTextSize()
{
String text = getValueString();
if (text == null) return;
final float textRadius = mBorderRadius - mBorderWidth;
final float maxTextSize = 2f * textRadius;
final float maxTextSize2 = maxTextSize * maxTextSize;
float lo = 0f, hi = maxTextSize, sz = maxTextSize;
Rect b = new Rect();
while (lo <= hi)
{
sz = (lo + hi) / 2f;
mTextPaint.setTextSize(sz);
mTextPaint.getTextBounds(text, 0, text.length(), b);
float area = b.width()*b.width() + b.height()*b.height();
if (area <= maxTextSize2)
lo = sz + 1f;
else
hi = sz - 1f;
}
mTextPaint.setTextSize(Math.max(1f, sz));
}
/** child must return the string to draw, or null if nothing */
@Nullable
protected abstract String getValueString();
/** child decides if this is in “alert” state */
protected abstract boolean isAlert();
}

View File

@@ -0,0 +1,77 @@
package app.organicmaps.widget;
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.util.Pair;
import androidx.annotation.Nullable;
import app.organicmaps.R;
import app.organicmaps.sdk.util.StringUtils;
public class CurrentSpeedView extends BaseSignView
{
private double mSpeedMps = -1.0;
private String mSpeedStr = "--";
public CurrentSpeedView(Context ctx, @Nullable AttributeSet attrs)
{
super(ctx, attrs);
setBorderWidthRatio(0.1f);
setBorderInsetRatio(0.05f);
try (TypedArray a = ctx.getTheme()
.obtainStyledAttributes(attrs, R.styleable.CurrentSpeedView /* reuse same attrs or define new */ , 0, 0))
{
int bg = a.getColor(R.styleable.CurrentSpeedView_currentSpeedBackgroundColor, DefaultValues.BACKGROUND_COLOR);
int bd = a.getColor(R.styleable.CurrentSpeedView_currentSpeedBorderColor, DefaultValues.BORDER_COLOR);
int tc = a.getColor(R.styleable.CurrentSpeedView_currentSpeedTextColor, DefaultValues.TEXT_COLOR);
setColors(bg, bd, 0, tc, 0);
if (isInEditMode())
{
mSpeedMps = a.getInt(R.styleable.CurrentSpeedView_currentSpeedEditModeCurrentSpeed, 50);
mSpeedStr = Integer.toString((int)mSpeedMps);
}
}
}
public void setCurrentSpeed(double mps)
{
mSpeedMps = mps;
if (mps < 0)
{
mSpeedStr = "--";
}
else
{
Pair<String,String> su = StringUtils.nativeFormatSpeedAndUnits(mps);
mSpeedStr = su.first;
}
requestLayout();
configureTextSize();
invalidate();
}
@Nullable
@Override
protected String getValueString()
{
return mSpeedStr;
}
@Override
protected boolean isAlert()
{
return false;
}
private interface DefaultValues
{
int BACKGROUND_COLOR = 0xFFFFFFFF;
int BORDER_COLOR = 0xFF000000;
int TEXT_COLOR = 0xFF000000;
}
}

View File

@@ -8,12 +8,14 @@ import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import androidx.annotation.ColorInt;
import androidx.annotation.ColorRes;
import androidx.annotation.DrawableRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.content.res.AppCompatResources;
import androidx.core.content.ContextCompat;
import app.organicmaps.R;
import app.organicmaps.sdk.routing.SingleLaneInfo;
import app.organicmaps.sdk.routing.LaneInfo;
import app.organicmaps.sdk.routing.LaneWay;
import java.util.Objects;
public class LanesDrawable extends Drawable
@@ -41,16 +43,19 @@ public class LanesDrawable extends Drawable
{
private final Drawable mDrawable;
private LaneDrawable(@NonNull final Context context, @NonNull SingleLaneInfo laneInfo, int horizontalOffset,
private LaneDrawable(@NonNull final Context context, @NonNull LaneInfo laneInfo, int horizontalOffset,
TintColorInfo colorInfo)
{
mDrawable = Objects.requireNonNull(AppCompatResources.getDrawable(context, laneInfo.mLane[0].mTurnRes));
final boolean isActive = laneInfo.mActiveLaneWay != LaneWay.None;
@DrawableRes
final int turnRes = isActive ? laneInfo.mActiveLaneWay.mTurnRes : laneInfo.mLaneWays[0].mTurnRes;
mDrawable = Objects.requireNonNull(AppCompatResources.getDrawable(context, turnRes));
final int width = mDrawable.getIntrinsicWidth();
final int height = mDrawable.getIntrinsicHeight();
mDrawable.setBounds(horizontalOffset, 0, horizontalOffset + width, height);
mDrawable.setTint(laneInfo.mIsActive ? colorInfo.mActiveLaneTint : colorInfo.mInactiveLaneTint);
mDrawable.setTint(isActive ? colorInfo.mActiveLaneTint : colorInfo.mInactiveLaneTint);
}
private void draw(@NonNull final Canvas canvas)
@@ -65,14 +70,14 @@ public class LanesDrawable extends Drawable
private int mWidth;
private int mHeight;
public LanesDrawable(@NonNull final Context context, @NonNull SingleLaneInfo[] lanes)
public LanesDrawable(@NonNull final Context context, @NonNull LaneInfo[] lanes)
{
final TintColorInfo tintColorInfo = new TintColorInfo(ContextCompat.getColor(context, ACTIVE_LANE_TINT_RES),
ContextCompat.getColor(context, INACTIVE_LANE_TINT_RES));
mLanes = createLaneDrawables(context, lanes, tintColorInfo);
}
public LanesDrawable(@NonNull final Context context, @NonNull SingleLaneInfo[] lanes, @ColorInt int activeLaneTint,
public LanesDrawable(@NonNull final Context context, @NonNull LaneInfo[] lanes, @ColorInt int activeLaneTint,
@ColorInt int inactiveLaneTint)
{
final TintColorInfo tintColorInfo = new TintColorInfo(activeLaneTint, inactiveLaneTint);
@@ -143,7 +148,7 @@ public class LanesDrawable extends Drawable
}
@NonNull
private LaneDrawable[] createLaneDrawables(@NonNull Context context, @NonNull SingleLaneInfo[] lanes,
private LaneDrawable[] createLaneDrawables(@NonNull Context context, @NonNull LaneInfo[] lanes,
@NonNull TintColorInfo tintColorInfo)
{
assert lanes.length > 0;

View File

@@ -16,7 +16,8 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StyleableRes;
import app.organicmaps.R;
import app.organicmaps.sdk.routing.SingleLaneInfo;
import app.organicmaps.sdk.routing.LaneInfo;
import app.organicmaps.sdk.routing.LaneWay;
public class LanesView extends View
{
@@ -77,7 +78,7 @@ public class LanesView extends View
mBackgroundPaint.setColor(backgroundColor);
}
public void setLanes(@Nullable SingleLaneInfo[] lanes)
public void setLanes(@Nullable LaneInfo[] lanes)
{
if (lanes == null || lanes.length == 0)
mLanesDrawable = null;
@@ -157,16 +158,16 @@ public class LanesView extends View
private void createLanesForEditMode(int lanesCount)
{
final SingleLaneInfo[] lanes = new SingleLaneInfo[lanesCount];
lanes[0] = new SingleLaneInfo(new byte[] {1}, false);
final LaneInfo[] lanes = new LaneInfo[lanesCount];
lanes[0] = new LaneInfo(new LaneWay[] {LaneWay.ReverseLeft, LaneWay.Left}, LaneWay.None);
if (lanes.length > 1)
lanes[1] = new SingleLaneInfo(new byte[] {3}, false);
lanes[1] = new LaneInfo(new LaneWay[] {LaneWay.SharpLeft, LaneWay.Left, LaneWay.Through}, LaneWay.None);
for (int i = 2; i <= lanes.length - 1; i++)
lanes[i] = new SingleLaneInfo(new byte[] {0}, true);
lanes[i] = new LaneInfo(new LaneWay[] {LaneWay.Through, LaneWay.Left}, LaneWay.Through);
if (lanes.length > 2)
lanes[lanes.length - 2] = new SingleLaneInfo(new byte[] {8}, false);
lanes[lanes.length - 2] = new LaneInfo(new LaneWay[] {LaneWay.SlightRight, LaneWay.Right}, LaneWay.SlightRight);
if (lanes.length > 3)
lanes[lanes.length - 1] = new SingleLaneInfo(new byte[] {9}, false);
lanes[lanes.length - 1] = new LaneInfo(new LaneWay[] {LaneWay.ReverseRight}, LaneWay.None);
setLanes(lanes);
}

View File

@@ -3,225 +3,134 @@ package app.organicmaps.widget;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.Typeface;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import app.organicmaps.R;
public class SpeedLimitView extends View
public class SpeedLimitView extends BaseSignView
{
private interface DefaultValues
private int mSpeedLimit = -1;
private boolean mAlert = false;
private String mSpeedStr = "-1";
private final int unlimitedBorderColor;
private final int unlimitedStripeColor;
public SpeedLimitView(Context ctx, @Nullable AttributeSet attrs)
{
@ColorInt
int BACKGROUND_COLOR = Color.WHITE;
@ColorInt
int BORDER_COLOR = Color.RED;
@ColorInt
int ALERT_COLOR = Color.RED;
@ColorInt
int TEXT_COLOR = Color.BLACK;
@ColorInt
int TEXT_ALERT_COLOR = Color.WHITE;
super(ctx, attrs);
float BORDER_WIDTH_RATIO = 0.1f;
}
setBorderWidthRatio(0.2f);
setBorderInsetRatio(0.05f);
@ColorInt
private final int mBackgroundColor;
@ColorInt
private final int mBorderColor;
@ColorInt
private final int mAlertColor;
@ColorInt
private final int mTextColor;
@ColorInt
private final int mTextAlertColor;
@NonNull
private final Paint mSignBackgroundPaint;
@NonNull
private final Paint mSignBorderPaint;
@NonNull
private final Paint mTextPaint;
private float mWidth;
private float mHeight;
private float mBackgroundRadius;
private float mBorderRadius;
private float mBorderWidth;
private int mSpeedLimit = 0;
@NonNull
private String mSpeedLimitStr = "0";
private boolean mAlert = false;
public SpeedLimitView(Context context, @Nullable AttributeSet attrs)
{
super(context, attrs);
try (TypedArray data = context.getTheme().obtainStyledAttributes(attrs, R.styleable.SpeedLimitView, 0, 0))
try (TypedArray styleAttrs = ctx.getTheme().obtainStyledAttributes(attrs, R.styleable.SpeedLimitView, 0, 0))
{
mBackgroundColor =
data.getColor(R.styleable.SpeedLimitView_speedLimitBackgroundColor, DefaultValues.BACKGROUND_COLOR);
mBorderColor = data.getColor(R.styleable.SpeedLimitView_speedLimitBorderColor, DefaultValues.BORDER_COLOR);
mAlertColor = data.getColor(R.styleable.SpeedLimitView_speedLimitAlertColor, DefaultValues.ALERT_COLOR);
mTextColor = data.getColor(R.styleable.SpeedLimitView_speedLimitTextColor, DefaultValues.TEXT_COLOR);
mTextAlertColor =
data.getColor(R.styleable.SpeedLimitView_speedLimitTextAlertColor, DefaultValues.TEXT_ALERT_COLOR);
final int bgColor = styleAttrs.getColor(R.styleable.SpeedLimitView_speedLimitBackgroundColor, DefaultValues.BACKGROUND_COLOR);
final int borderColor = styleAttrs.getColor(R.styleable.SpeedLimitView_speedLimitBorderColor, DefaultValues.BORDER_COLOR);
final int alertColor = styleAttrs.getColor(R.styleable.SpeedLimitView_speedLimitAlertColor, DefaultValues.ALERT_COLOR);
final int textColor = styleAttrs.getColor(R.styleable.SpeedLimitView_speedLimitTextColor, DefaultValues.TEXT_COLOR);
final int txtAlertColor = styleAttrs.getColor(R.styleable.SpeedLimitView_speedLimitTextAlertColor, DefaultValues.TEXT_ALERT_COLOR);
setColors(bgColor, borderColor, alertColor, textColor, txtAlertColor);
unlimitedBorderColor = styleAttrs.getColor(R.styleable.SpeedLimitView_speedLimitUnlimitedBorderColor, DefaultValues.UNLIMITED_BORDER_COLOR);
unlimitedStripeColor = styleAttrs.getColor(R.styleable.SpeedLimitView_speedLimitUnlimitedStripeColor, DefaultValues.UNLIMITED_STRIPE_COLOR);
if (isInEditMode())
{
mSpeedLimit = data.getInt(R.styleable.SpeedLimitView_speedLimitEditModeSpeedLimit, 60);
mSpeedLimitStr = Integer.toString(mSpeedLimit);
mAlert = data.getBoolean(R.styleable.SpeedLimitView_speedLimitEditModeAlert, false);
mSpeedLimit = styleAttrs.getInt(R.styleable.SpeedLimitView_speedLimitEditModeSpeedLimit, 60);
mAlert = styleAttrs.getBoolean(R.styleable.SpeedLimitView_speedLimitEditModeAlert, false);
mSpeedStr = Integer.toString(mSpeedLimit);
}
}
mSignBackgroundPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mSignBackgroundPaint.setColor(mBackgroundColor);
mSignBorderPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mSignBorderPaint.setColor(mBorderColor);
mSignBorderPaint.setStrokeWidth(mBorderWidth);
mSignBorderPaint.setStyle(Paint.Style.STROKE);
mTextPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mTextPaint.setColor(mTextColor);
mTextPaint.setTextAlign(Paint.Align.CENTER);
mTextPaint.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.BOLD));
}
public void setSpeedLimit(final int speedLimit, boolean alert)
public void setSpeedLimit(int limit, boolean alert)
{
final boolean speedLimitChanged = mSpeedLimit != speedLimit;
mSpeedLimit = speedLimit;
mAlert = alert;
if (speedLimitChanged)
if (mSpeedLimit != limit)
{
mSpeedLimitStr = Integer.toString(mSpeedLimit);
configureTextSize();
mSpeedLimit = limit;
mSpeedStr = Integer.toString(limit);
requestLayout();
}
mAlert = alert;
configureTextSize();
invalidate();
}
@Nullable
@Override
protected void onDraw(@NonNull Canvas canvas)
protected String getValueString()
{
super.onDraw(canvas);
final boolean validSpeedLimit = mSpeedLimit > 0;
if (!validSpeedLimit)
return;
final float cx = mWidth / 2;
final float cy = mHeight / 2;
drawSign(canvas, cx, cy, mAlert);
drawText(canvas, cx, cy, mAlert);
return (mSpeedLimit > 0 ? mSpeedStr : null);
}
private void drawSign(@NonNull Canvas canvas, float cx, float cy, boolean alert)
@Override
protected boolean isAlert()
{
if (alert)
mSignBackgroundPaint.setColor(mAlertColor);
return mAlert;
}
@Override
protected void onDraw(Canvas canvas)
{
final float cx = mWidth/2f, cy = mHeight/2f;
if (mSpeedLimit == 0) // 0 means unlimited speed (maxspeed=none)
{
// background
mBackgroundPaint.setColor(mBackgroundColor);
canvas.drawCircle(cx, cy, mRadius, mBackgroundPaint);
// black border
mBorderPaint.setColor(unlimitedBorderColor);
mBorderPaint.setStrokeWidth(mBorderWidth);
canvas.drawCircle(cx, cy, mBorderRadius, mBorderPaint);
// draw 5 diagonal stripes
drawUnlimitedStripes(canvas, cx, cy);
}
else
mSignBackgroundPaint.setColor(mBackgroundColor);
canvas.drawCircle(cx, cy, mBackgroundRadius, mSignBackgroundPaint);
if (!alert)
{
mSignBorderPaint.setStrokeWidth(mBorderWidth);
canvas.drawCircle(cx, cy, mBorderRadius, mSignBorderPaint);
// delegate to BaseSignViews onDraw
super.onDraw(canvas);
}
}
private void drawText(@NonNull Canvas canvas, float cx, float cy, boolean alert)
private void drawUnlimitedStripes(Canvas c, float cx, float cy)
{
if (alert)
mTextPaint.setColor(mTextAlertColor);
else
mTextPaint.setColor(mTextColor);
final Paint stripe = new Paint(Paint.ANTI_ALIAS_FLAG);
stripe.setColor(unlimitedStripeColor);
stripe.setStrokeWidth(mBorderWidth * 0.4f);
final Rect textBounds = new Rect();
mTextPaint.getTextBounds(mSpeedLimitStr, 0, mSpeedLimitStr.length(), textBounds);
final float textY = cy - textBounds.exactCenterY();
canvas.drawText(mSpeedLimitStr, cx, textY, mTextPaint);
}
final float radius = mRadius * 0.8f; // Shorten to 80% of full radius
final float diag = (float) (1/Math.sqrt(2)); // 45 degrees
final float dx = -diag, dy = +diag;
final float px = -dy, py = +dx; // Perpendicular
final float step = radius * 0.15f; // Spacing
@Override
public boolean onTouchEvent(@NonNull MotionEvent event)
{
final float cx = mWidth / 2;
final float cy = mHeight / 2;
if (Math.pow(event.getX() - cx, 2) + Math.pow(event.getY() - cy, 2) <= Math.pow(mBackgroundRadius, 2))
for (int i = -2; i <= 2; i++)
{
performClick();
return true;
final float ox = px * step * i;
final float oy = py * step * i;
final float sx = cx + dx * radius + ox;
final float sy = cy + dy * radius + oy;
final float ex = cx - dx * radius + ox;
final float ey = cy - dy * radius + oy;
c.drawLine(sx, sy, ex, ey, stripe);
}
return false;
}
@Override
public boolean performClick()
private interface DefaultValues
{
super.performClick();
return false;
}
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh)
{
super.onSizeChanged(w, h, oldw, oldh);
final float paddingX = (float) (getPaddingLeft() + getPaddingRight());
final float paddingY = (float) (getPaddingTop() + getPaddingBottom());
mWidth = (float) w - paddingX;
mHeight = (float) h - paddingY;
mBackgroundRadius = Math.min(mWidth, mHeight) / 2;
mBorderWidth = mBackgroundRadius * 2 * DefaultValues.BORDER_WIDTH_RATIO;
mBorderRadius = mBackgroundRadius - mBorderWidth / 2;
configureTextSize();
}
// Apply binary search to determine the optimal text size that fits within the circular boundary.
private void configureTextSize()
{
final String text = mSpeedLimitStr;
final float textRadius = mBorderRadius - mBorderWidth;
final float textMaxSize = 2 * textRadius;
final float textMaxSizeSquared = (float) Math.pow(textMaxSize, 2);
float lowerBound = 0;
float upperBound = textMaxSize;
float textSize = textMaxSize;
final Rect textBounds = new Rect();
while (lowerBound <= upperBound)
{
textSize = (lowerBound + upperBound) / 2;
mTextPaint.setTextSize(textSize);
mTextPaint.getTextBounds(text, 0, text.length(), textBounds);
if (Math.pow(textBounds.width(), 2) + Math.pow(textBounds.height(), 2) <= textMaxSizeSquared)
lowerBound = textSize + 1;
else
upperBound = textSize - 1;
}
mTextPaint.setTextSize(Math.max(1, textSize));
int BACKGROUND_COLOR = 0xFFFFFFFF;
int BORDER_COLOR = 0xFFFF0000;
int ALERT_COLOR = 0xFFFF0000;
int TEXT_COLOR = 0xFF000000;
int TEXT_ALERT_COLOR = 0xFFFFFFFF;
int UNLIMITED_BORDER_COLOR = 0xFF000000;
int UNLIMITED_STRIPE_COLOR = 0xFF000000;
}
}

View File

@@ -1,18 +1,14 @@
package app.organicmaps.widget.menu;
import android.location.Location;
import android.util.Pair;
import android.view.View;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
import app.organicmaps.MwmApplication;
import app.organicmaps.R;
import app.organicmaps.sdk.routing.RoutingInfo;
import app.organicmaps.sdk.sound.TtsPlayer;
import app.organicmaps.sdk.util.StringUtils;
import app.organicmaps.sdk.util.DateUtils;
import app.organicmaps.util.Graphics;
import app.organicmaps.util.ThemeUtils;
import app.organicmaps.util.UiUtils;
import com.google.android.material.bottomsheet.BottomSheetBehavior;
import com.google.android.material.button.MaterialButton;
@@ -30,14 +26,12 @@ public class NavMenu
private final View mHeaderFrame;
private final ShapeableImageView mTts;
private final View mSpeedViewContainer;
private final MaterialTextView mSpeedValue;
private final MaterialTextView mSpeedUnits;
private final MaterialTextView mEtaValue;
private final MaterialTextView mEtaAmPm;
private final MaterialTextView mTimeHourValue;
private final MaterialTextView mTimeHourUnits;
private final MaterialTextView mTimeMinuteValue;
private final MaterialTextView mTimeMinuteUnits;
private final MaterialTextView mTimeEstimate;
private final MaterialTextView mDistanceValue;
private final MaterialTextView mDistanceUnits;
private final LinearProgressIndicator mRouteProgress;
@@ -92,14 +86,12 @@ public class NavMenu
});
// Bottom frame
mSpeedViewContainer = bottomFrame.findViewById(R.id.speed_view_container);
mSpeedValue = bottomFrame.findViewById(R.id.speed_value);
mSpeedUnits = bottomFrame.findViewById(R.id.speed_dimen);
mEtaValue = bottomFrame.findViewById(R.id.eta_value);
mEtaAmPm = bottomFrame.findViewById(R.id.eta_am_pm);
mTimeHourValue = bottomFrame.findViewById(R.id.time_hour_value);
mTimeHourUnits = bottomFrame.findViewById(R.id.time_hour_dimen);
mTimeMinuteValue = bottomFrame.findViewById(R.id.time_minute_value);
mTimeMinuteUnits = bottomFrame.findViewById(R.id.time_minute_dimen);
mTimeEstimate = bottomFrame.findViewById(R.id.time_estimate);
mDistanceValue = bottomFrame.findViewById(R.id.distance_value);
mDistanceUnits = bottomFrame.findViewById(R.id.distance_dimen);
mRouteProgress = bottomFrame.findViewById(R.id.navigation_progress);
@@ -125,6 +117,8 @@ public class NavMenu
private void onTtsClicked()
{
if (!TtsPlayer.isReady())
Toast.makeText(mActivity, R.string.pref_tts_no_system_tts_short, Toast.LENGTH_SHORT).show();
TtsPlayer.setEnabled(!TtsPlayer.isEnabled());
refreshTts();
}
@@ -195,38 +189,34 @@ public class NavMenu
private void updateTimeEstimate(int seconds)
{
final String format =
android.text.format.DateFormat.is24HourFormat(mTimeMinuteValue.getContext()) ? "HH:mm" : "h:mm a";
// Calculate ETA from current local time and remaining seconds.
final LocalTime localTime = LocalTime.now().plusSeconds(seconds);
mTimeEstimate.setText(localTime.format(DateTimeFormatter.ofPattern(format)));
}
private void updateSpeedView(@NonNull RoutingInfo info)
{
final Location last = MwmApplication.from(mActivity).getLocationHelper().getSavedLocation();
if (last == null)
return;
// String to set the format of the ETA value (24h or AM/PM).
final String etaValueFormat;
Pair<String, String> speedAndUnits = StringUtils.nativeFormatSpeedAndUnits(last.getSpeed());
mSpeedValue.setText(speedAndUnits.first);
// Text of the AM/PM view.
final String etaAmPmText;
if (info.speedLimitMps > 0.0 && last.getSpeed() > info.speedLimitMps)
if (DateUtils.is24HourFormat(mTimeMinuteValue.getContext()))
{
if (info.isSpeedCamLimitExceeded())
mSpeedValue.setTextColor(ContextCompat.getColor(mActivity, R.color.white_primary));
else
mSpeedValue.setTextColor(ContextCompat.getColor(mActivity, R.color.base_red));
// 24 hours time format.
etaValueFormat = "HH:mm";
etaAmPmText = "";
}
else
mSpeedValue.setTextColor(ThemeUtils.getColor(mActivity, android.R.attr.textColorPrimary));
{
// AM/PM time format.
etaValueFormat = "h:mm";
etaAmPmText = localTime.format(DateTimeFormatter.ofPattern("a"));
}
mSpeedUnits.setText(speedAndUnits.second);
mSpeedViewContainer.setActivated(info.isSpeedCamLimitExceeded());
mEtaValue.setText(localTime.format(DateTimeFormatter.ofPattern(etaValueFormat)));
mEtaAmPm.setText(etaAmPmText);
}
public void update(@NonNull RoutingInfo info)
{
updateSpeedView(info);
updateTime(info.totalTimeInSeconds);
mDistanceValue.setText(info.distToTarget.mDistanceStr);
mDistanceUnits.setText(info.distToTarget.getUnitsStr(mActivity.getApplicationContext()));

View File

@@ -106,7 +106,6 @@ public class PlacePageView extends Fragment
Arrays.asList(CoordinatesFormat.LatLonDMS, CoordinatesFormat.LatLonDecimal, CoordinatesFormat.OLCFull,
CoordinatesFormat.UTM, CoordinatesFormat.MGRS, CoordinatesFormat.OSMLink);
private View mFrame;
private Context mContext;
// Preview.
private ViewGroup mPreview;
@@ -144,6 +143,7 @@ public class PlacePageView extends Fragment
private MaterialTextView mTvOutdoorSeating;
private View mEntrance;
private MaterialTextView mTvEntrance;
private MaterialTextView mTvLastChecked;
private View mEditPlace;
private View mAddOrganisation;
private View mAddPlace;
@@ -308,6 +308,7 @@ public class PlacePageView extends Fragment
mTvCuisine = mFrame.findViewById(R.id.tv__place_cuisine);
mEntrance = mFrame.findViewById(R.id.ll__place_entrance);
mTvEntrance = mEntrance.findViewById(R.id.tv__place_entrance);
mTvLastChecked = mFrame.findViewById(R.id.place_page_last_checked);
mEditPlace = mFrame.findViewById(R.id.ll__place_editor);
mEditPlace.setOnClickListener(this);
mAddOrganisation = mFrame.findViewById(R.id.ll__add_organisation);
@@ -662,7 +663,14 @@ public class PlacePageView extends Fragment
refreshMetadataOrHide(outdoorSeating.equals("yes") ? getString(R.string.outdoor_seating) : "", mOutdoorSeating,
mTvOutdoorSeating);
// showTaxiOffer(mapObject);
final String lastChecked = mMapObject.getMetadata(Metadata.MetadataType.FMD_CHECK_DATE);
if (!lastChecked.isEmpty())
{
String periodSinceCheck = DateUtils.getRelativePeriodString(getResources(), lastChecked);
UiUtils.setTextAndShow(mTvLastChecked, requireContext().getString(R.string.existence_confirmed_time_ago, periodSinceCheck));
}
else
UiUtils.hide(mTvLastChecked);
if (RoutingController.get().isNavigating() || RoutingController.get().isPlanning())
{

View File

@@ -16,18 +16,22 @@ import android.widget.LinearLayout;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import app.organicmaps.R;
import app.organicmaps.sdk.bookmarks.data.Bookmark;
import app.organicmaps.sdk.bookmarks.data.BookmarkManager;
import app.organicmaps.sdk.bookmarks.data.MapObject;
import app.organicmaps.sdk.util.StringUtils;
import app.organicmaps.util.UiUtils;
import app.organicmaps.util.Utils;
import app.organicmaps.widget.placepage.EditBookmarkFragment;
import app.organicmaps.widget.placepage.PlacePageViewModel;
import com.google.android.material.textview.MaterialTextView;
public class PlacePageBookmarkFragment extends Fragment implements View.OnLongClickListener, Observer<MapObject>
public class PlacePageBookmarkFragment extends Fragment implements View.OnClickListener, View.OnLongClickListener,
Observer<MapObject>, EditBookmarkFragment.EditBookmarkListener
{
private View mFrame;
private MaterialTextView mTvBookmarkNote;
@@ -55,6 +59,8 @@ public class PlacePageBookmarkFragment extends Fragment implements View.OnLongCl
mFrame = view;
mTvBookmarkNote = mFrame.findViewById(R.id.tv__bookmark_notes);
mTvBookmarkNote.setOnLongClickListener(this);
final View editBookmarkBtn = mFrame.findViewById(R.id.tv__bookmark_edit);
editBookmarkBtn.setOnClickListener(this);
}
private void initWebView()
@@ -112,6 +118,14 @@ public class PlacePageBookmarkFragment extends Fragment implements View.OnLongCl
}
}
@Override
public void onClick(View v)
{
final FragmentActivity activity = requireActivity();
EditBookmarkFragment.editBookmark(currentBookmark.getCategoryId(), currentBookmark.getBookmarkId(), activity,
getChildFragmentManager(), PlacePageBookmarkFragment.this);
}
@Override
public boolean onLongClick(View v)
{
@@ -141,4 +155,13 @@ public class PlacePageBookmarkFragment extends Fragment implements View.OnLongCl
updateBookmarkDetails();
}
}
@Override
public void onBookmarkSaved(long bookmarkId, boolean movedFromCategory)
{
Bookmark updatedBookmark = BookmarkManager.INSTANCE.updateBookmarkPlacePage(bookmarkId);
if (updatedBookmark == null)
return;
mViewModel.setMapObject(updatedBookmark);
}
}

View File

@@ -5,6 +5,7 @@ import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -20,6 +21,7 @@ import app.organicmaps.sdk.bookmarks.data.Metadata;
import app.organicmaps.sdk.editor.OpeningHours;
import app.organicmaps.sdk.editor.data.Timespan;
import app.organicmaps.sdk.editor.data.Timetable;
import app.organicmaps.sdk.util.DateUtils;
import app.organicmaps.util.ThemeUtils;
import app.organicmaps.util.UiUtils;
import app.organicmaps.util.Utils;
@@ -36,6 +38,7 @@ public class PlacePageOpeningHoursFragment extends Fragment implements Observer<
private MaterialTextView mTodayOpenTime;
private MaterialTextView mTodayNonBusinessTime;
private RecyclerView mFullWeekOpeningHours;
private MaterialTextView mLastCheckedDate;
private PlaceOpeningHoursAdapter mOpeningHoursAdapter;
private PlacePageViewModel mViewModel;
@@ -58,10 +61,23 @@ public class PlacePageOpeningHoursFragment extends Fragment implements Observer<
mTodayOpenTime = view.findViewById(R.id.oh_today_open_time);
mTodayNonBusinessTime = view.findViewById(R.id.oh_nonbusiness_time);
mFullWeekOpeningHours = view.findViewById(R.id.rw__full_opening_hours);
mLastCheckedDate = view.findViewById(R.id.oh_check_date);
mOpeningHoursAdapter = new PlaceOpeningHoursAdapter();
mFullWeekOpeningHours.setAdapter(mOpeningHoursAdapter);
}
private static void setOrHideLastCheckedDate(MapObject mapObject, Resources resources, TextView checkDateView)
{
final String checkDate = mapObject.getMetadata(Metadata.MetadataType.FMD_CHECK_DATE_OPEN_HOURS);
if (!checkDate.isEmpty())
{
String periodSinceCheck = DateUtils.getRelativePeriodString(resources, checkDate);
UiUtils.setTextAndShow(checkDateView, resources.getString(R.string.hours_confirmed_time_ago, periodSinceCheck));
}
else
UiUtils.hide(checkDateView);
}
private void refreshTodayNonBusinessTime(Timespan[] closedTimespans)
{
final String hoursClosedLabel = getResources().getString(R.string.editor_hours_closed);
@@ -102,6 +118,9 @@ public class PlacePageOpeningHoursFragment extends Fragment implements Observer<
final boolean isEmptyTT = (timetables == null || timetables.length == 0);
final int color = ThemeUtils.getColor(requireContext(), android.R.attr.textColorPrimary);
final Resources resources = getResources();
setOrHideLastCheckedDate(mapObject, resources, mLastCheckedDate);
if (isEmptyTT)
{
@@ -119,7 +138,6 @@ public class PlacePageOpeningHoursFragment extends Fragment implements Observer<
else
{
UiUtils.show(mFrame);
final Resources resources = getResources();
if (timetables[0].isFullWeek())
{
final Timetable tt = timetables[0];
@@ -161,7 +179,7 @@ public class PlacePageOpeningHoursFragment extends Fragment implements Observer<
else
openTime = tt.workingTimespan.toWideString();
refreshTodayOpeningHours(resources.getString(R.string.today), openTime, color);
refreshTodayOpeningHours(resources.getString(app.organicmaps.sdk.R.string.today), openTime, color);
refreshTodayNonBusinessTime(tt.closedTimespans);
break;

View File

@@ -9,7 +9,7 @@
android:state_checked="true"/>
<item android:color="@color/base_accent"
app:state_layers_enabled="true"/>
app:layers_enabled="true"/>
<item android:color="@color/icon_tint"/>
</selector>

View File

@@ -9,7 +9,7 @@
android:state_checked="true"/>
<item android:color="@color/base_accent_night"
app:state_layers_enabled="true"/>
app:layers_enabled="true"/>
<item android:color="@color/white_secondary"/>
</selector>

View File

@@ -1,10 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
app:state_layers_enabled="true"
android:drawable="@drawable/ic_layers_clear"/>
<item
app:state_layers_enabled="false"
android:drawable="@drawable/ic_layers_default"/>
</selector>
<vector android:height="24dp" android:tint="#FFFFFF"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M11.99,18.54l-7.37,-5.73L3,14.07l9,7 9,-7 -1.63,-1.27 -7.38,5.74zM12,16l7.36,-5.73L21,9l-9,-7 -9,7 1.63,1.27L12,16z"/>
</vector>

View File

@@ -1,5 +0,0 @@
<vector android:height="24dp" android:tint="#FFFFFF"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M11.99,18.54l-7.37,-5.73L3,14.07l9,7 9,-7 -1.63,-1.27 -7.38,5.74zM12,16l7.36,-5.73L21,9l-9,-7 -9,7 1.63,1.27L12,16z"/>
</vector>

View File

@@ -166,7 +166,7 @@
android:orientation="horizontal">
<com.google.android.material.button.MaterialButton
android:id="@+id/donate"
style="@style/MwmWidget.Button.Accent"
style="@style/MwmWidget.M3.Button.Primary"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:padding="@dimen/margin_quarter"
@@ -182,10 +182,9 @@
app:layout_constraintVertical_bias="0.5" />
<com.google.android.material.button.MaterialButton
android:id="@+id/report"
style="@style/MwmWidget.Button"
style="@style/MwmWidget.M3.Button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="@color/light_gray"
android:text="@string/report_a_bug"
android:textAlignment="center"
android:textColor="@color/text_dark"
@@ -195,7 +194,8 @@
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/donate"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.5" />
app:layout_constraintVertical_bias="0.5"
app:backgroundTint="@color/light_gray"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.textview.MaterialTextView

View File

@@ -3,6 +3,7 @@
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/altitude_chart_panel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -63,17 +64,20 @@
tools:text="5 h 55 min • 1555km"
tools:visibility="visible" />
<Button
<com.google.android.material.button.MaterialButton
android:id="@+id/btn__manage_route"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
style="@style/MwmWidget.Button"
style="@style/Widget.Material3.Button.TextButton"
android:text="@string/planning_route_manage_route"
android:drawableStart="@drawable/ic_manage_route"
android:drawablePadding="6dp"/>
android:textColor="?android:textColorPrimary"
android:textAppearance="@style/MwmTextAppearance.Body1"
app:icon="@drawable/ic_manage_route"
app:iconTint="?android:textColorPrimary"
app:iconPadding="6dp"/>
<Button
<com.google.android.material.button.MaterialButton
android:id="@+id/btn__save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -81,12 +85,14 @@
android:layout_gravity="center_vertical"
android:layout_marginStart="@dimen/margin_base"
android:minHeight="@dimen/primary_button_min_height"
style="@style/MwmWidget.Button"
android:text="@string/save"/>
style="@style/Widget.Material3.Button.TextButton"
android:text="@string/save"
android:textColor="?android:textColorPrimary"
android:textAppearance="@style/MwmTextAppearance.Body1"/>
<Button
<com.google.android.material.button.MaterialButton
android:id="@+id/start"
style="@style/MwmWidget.Button.Primary"
style="@style/MwmWidget.M3.Button.Primary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"

View File

@@ -110,11 +110,10 @@
android:layout_marginBottom="@dimen/margin_base">
<com.google.android.material.button.MaterialButton
android:id="@+id/login"
style="@style/MwmWidget.Button.Accent"
style="@style/MwmWidget.M3.Button.Primary"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/login_osm"
android:textAppearance="@style/MwmTextAppearance.Body2.Light" />
android:text="@string/login_osm" />
<ProgressBar
android:id="@+id/osm_login_progress"
android:layout_width="@dimen/editor_auth_btn_height"
@@ -147,15 +146,14 @@
android:textColor="?android:textColorPrimary" />
<com.google.android.material.button.MaterialButton
android:id="@+id/register"
style="@style/MwmWidget.Button.Accent"
style="@style/MwmWidget.M3.Button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_base"
android:background="@drawable/button_editor_light"
android:padding="@dimen/margin_quarter"
android:text="@string/register_at_openstreetmap"
android:textAppearance="@style/MwmTextAppearance.Body2"
android:textColor="@color/text_dark" />
android:textColor="@color/text_dark"
app:backgroundTint="@color/bg_editor_light"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>

View File

@@ -123,12 +123,24 @@
app:lanesEditModeLanesCount="10"
tools:visibility="visible" />
<app.organicmaps.widget.CurrentSpeedView
android:id="@+id/nav_current_speed"
style="@style/MwmWidget.CurrentSpeed"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_margin="@dimen/margin_half"
app:layout_constraintStart_toEndOf="@id/nav_next_turn_container"
app:layout_constraintTop_toBottomOf="@id/street_frame"/>
<app.organicmaps.widget.SpeedLimitView
android:id="@+id/nav_speed_limit"
style="@style/MwmWidget.SpeedLimit"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_margin="@dimen/margin_half"
app:layout_constraintStart_toEndOf="@id/nav_next_turn_container"
app:layout_constraintTop_toBottomOf="@id/street_frame" />
app:layout_constraintTop_toBottomOf="@id/nav_current_speed"
android:translationY="-21dp"
android:translationX="-12dp"
android:translationZ="1dp"/>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -60,7 +60,7 @@
android:clipChildren="false">
<com.google.android.material.button.MaterialButton
android:id="@+id/downloader_button"
style="@style/MwmWidget.Button.Primary"
style="@style/MwmWidget.M3.Button.Primary"
android:layout_width="180dp"
android:layout_gravity="center"
android:visibility="gone"

View File

@@ -3,6 +3,7 @@
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/altitude_chart_panel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -82,28 +83,33 @@
android:layout_weight="10"
android:layout_gravity="center_vertical" />
<Button
<com.google.android.material.button.MaterialButton
android:id="@+id/btn__manage_route"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
style="@style/MwmWidget.Button"
style="@style/Widget.Material3.Button.TextButton"
android:text="@string/planning_route_manage_route"
android:drawableStart="@drawable/ic_manage_route"
android:drawablePadding="6dp"/>
android:textColor="?android:textColorPrimary"
android:textAppearance="@style/MwmTextAppearance.Body1"
app:icon="@drawable/ic_manage_route"
app:iconTint="?android:textColorPrimary"
app:iconPadding="6dp"/>
<Button
<com.google.android.material.button.MaterialButton
android:id="@+id/btn__save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_base"
style="@style/MwmWidget.Button"
style="@style/Widget.Material3.Button.TextButton"
android:minHeight="@dimen/primary_button_min_height"
android:text="@string/save"/>
android:text="@string/save"
android:textColor="?android:textColorPrimary"
android:textAppearance="@style/MwmTextAppearance.Body1"/>
<Button
<com.google.android.material.button.MaterialButton
android:id="@+id/start"
style="@style/MwmWidget.Button.Primary"
style="@style/MwmWidget.M3.Button.Primary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"

View File

@@ -112,7 +112,7 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/donate"
style="@style/MwmWidget.Button.Accent"
style="@style/MwmWidget.M3.Button.Primary"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_base"
@@ -121,13 +121,13 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/report"
style="@style/MwmWidget.Button"
style="@style/MwmWidget.M3.Button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_base"
android:background="@color/light_gray"
android:layout_marginTop="@dimen/margin_half"
android:text="@string/report_a_bug"
android:textColor="@color/text_dark" />
android:textColor="@color/text_dark"
app:backgroundTint="@color/light_gray"/>
<com.google.android.material.textview.MaterialTextView
android:id="@+id/faq"

View File

@@ -41,7 +41,7 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_continue"
style="@style/MwmWidget.Button.Accent"
style="@style/MwmWidget.M3.Button.Primary"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="32dp"

View File

@@ -25,7 +25,7 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_grant_permissions"
style="@style/MwmWidget.Button.Accent"
style="@style/MwmWidget.M3.Button.Primary"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="32dp"

View File

@@ -3,6 +3,7 @@
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/altitude_chart_panel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -70,9 +71,9 @@
tools:visibility="visible" />
</LinearLayout>
<Button
<com.google.android.material.button.MaterialButton
android:id="@+id/start"
style="@style/MwmWidget.Button.Primary"
style="@style/MwmWidget.M3.Button.Primary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
@@ -88,25 +89,31 @@
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical" >
<Button
<com.google.android.material.button.MaterialButton
android:layout_weight="1"
android:id="@+id/btn__manage_route"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/MwmWidget.Button"
style="@style/Widget.Material3.Button.TextButton"
android:text="@string/planning_route_manage_route"
android:drawableStart="@drawable/ic_manage_route"
android:drawablePadding="@dimen/margin_quarter_plus"/>
android:textColor="?android:textColorPrimary"
android:textAlignment="viewStart"
android:textAppearance="@style/MwmTextAppearance.Body1"
app:icon="@drawable/ic_manage_route"
app:iconTint="?android:textColorPrimary"
app:iconPadding="@dimen/margin_quarter_plus"/>
<Button
<com.google.android.material.button.MaterialButton
android:layout_weight="0"
android:id="@+id/btn__save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/MwmWidget.Button"
style="@style/Widget.Material3.Button.TextButton"
android:layout_marginStart="@dimen/margin_base"
android:minHeight="@dimen/primary_button_min_height"
android:text="@string/save"/>
android:text="@string/save"
android:textColor="?android:textColorPrimary"
android:textAppearance="@style/MwmTextAppearance.Body1"/>
</LinearLayout>
</LinearLayout>

View File

@@ -31,7 +31,7 @@
app:trackColor="@color/bg_routing_progress"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_download_resources"
style="@style/MwmWidget.Button.Primary"
style="@style/MwmWidget.M3.Button.Primary"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_base_plus"

View File

@@ -94,11 +94,10 @@
android:layout_marginBottom="@dimen/margin_base">
<com.google.android.material.button.MaterialButton
android:id="@+id/login"
style="@style/MwmWidget.Button.Accent"
style="@style/MwmWidget.M3.Button.Primary"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/login_osm"
android:textAppearance="@style/MwmTextAppearance.Body2.Light" />
android:text="@string/login_osm" />
<ProgressBar
android:id="@+id/osm_login_progress"
android:layout_width="@dimen/editor_auth_btn_height"
@@ -109,14 +108,16 @@
</FrameLayout>
<com.google.android.material.button.MaterialButton
android:id="@+id/lost_password"
style="@style/MwmWidget.Button"
style="@style/MwmWidget.M3.Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:background="?clickableBackground"
android:padding="@dimen/margin_half"
android:text="@string/forgot_password"
android:textAppearance="@style/MwmTextAppearance.Body3" />
android:textAppearance="@style/MwmTextAppearance.Body3"
android:textColor="@color/text_dark"
tools:visibility="invisible"/>
<com.google.android.material.divider.MaterialDivider
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -130,15 +131,14 @@
android:textColor="?android:textColorPrimary" />
<com.google.android.material.button.MaterialButton
android:id="@+id/register"
style="@style/MwmWidget.Button.Accent"
style="@style/MwmWidget.M3.Button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_base"
android:background="@drawable/button_editor_light"
android:padding="@dimen/margin_quarter"
android:text="@string/register_at_openstreetmap"
android:textAppearance="@style/MwmTextAppearance.Body2"
android:textColor="@color/text_dark" />
android:textColor="@color/text_dark"
app:backgroundTint="@color/bg_editor_light"/>
</LinearLayout>
</ScrollView>
</LinearLayout>

View File

@@ -60,7 +60,7 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/btn__download_map"
style="@style/MwmWidget.Button.Primary"
style="@style/MwmWidget.M3.Button.Primary"
android:layout_marginTop="@dimen/margin_half"
android:text="@string/downloader_download_map"/>
</LinearLayout>
@@ -85,7 +85,7 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/btn__select_map"
style="@style/MwmWidget.Button.Primary"
style="@style/MwmWidget.M3.Button.Primary"
android:layout_marginTop="@dimen/margin_half"
android:text="@string/search_select_map"/>
</LinearLayout>

View File

@@ -45,13 +45,15 @@
android:maxLines="6" />
</com.google.android.material.textfield.TextInputLayout>
<Button
<com.google.android.material.button.MaterialButton
android:id="@+id/send_note_button"
style="@style/MwmWidget.Button.Accent"
style="@style/MwmWidget.M3.Button.Primary"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="?accentButtonBackground"
android:layout_marginTop="@dimen/margin_base"
android:enabled="false"
android:text="@string/editor_report_problem_send_button" />
android:enabled="true"
android:text="@string/editor_report_problem_send_button"
app:backgroundTint="@null"/>
</LinearLayout>

View File

@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="@dimen/margin_base_plus"
@@ -8,10 +9,12 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/btn__add_time"
style="@style/MwmWidget.Button.Primary"
style="@style/MwmWidget.M3.Button.Primary"
android:layout_gravity="center"
android:enabled="false"
android:background="?accentButtonBackground"
android:padding="@dimen/margin_base"
android:text="@string/editor_time_add"/>
android:text="@string/editor_time_add"
app:backgroundTint="@null"/>
</FrameLayout>

View File

@@ -13,35 +13,35 @@
android:layout_height="match_parent"
android:layout_weight="0.5"/>
<!-- Speed -->
<!-- ETA (Estimated Time of Arrival) -->
<LinearLayout
android:id="@+id/speed_view_container"
android:id="@+id/eta_view_container"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/speed_cams_bg"
android:gravity="center"
android:minWidth="@dimen/nav_numbers_side_min_width">
<!-- ETA value -->
<com.google.android.material.textview.MaterialTextView
android:id="@+id/speed_value"
android:id="@+id/eta_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
android:lines="1"
android:textAppearance="@style/MwmTextAppearance.NavMenu.Number"
tools:text="999" />
tools:text="99:99" />
<!-- Speed -->
<!-- ETA AM/PM -->
<com.google.android.material.textview.MaterialTextView
android:id="@+id/speed_dimen"
android:id="@+id/eta_am_pm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
android:lines="1"
android:textAppearance="@style/MwmTextAppearance.NavMenu.Number.Dimension"
tools:background="#20FF0000"
tools:text="km/h" />
tools:text="AM/PM" />
</LinearLayout>
<Space
@@ -103,14 +103,14 @@
</LinearLayout>
<com.google.android.material.textview.MaterialTextView
android:id="@+id/time_estimate"
android:id="@+id/disused_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
android:lines="1"
android:textAlignment="center"
android:textAppearance="@style/MwmTextAppearance.NavMenu.Number.Dimension"
tools:text="99:99 AM" />
tools:text="----" />
</LinearLayout>
<Space

View File

@@ -124,13 +124,26 @@
app:lanesEditModeLanesCount="5"
tools:visibility="visible" />
<app.organicmaps.widget.CurrentSpeedView
android:id="@+id/nav_current_speed"
style="@style/MwmWidget.CurrentSpeed"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_margin="@dimen/margin_half"
app:layout_constraintEnd_toEndOf="@id/nav_next_turn_container"
app:layout_constraintStart_toStartOf="@id/nav_next_turn_container"
app:layout_constraintTop_toBottomOf="@id/nav_next_turn_container"/>
<app.organicmaps.widget.SpeedLimitView
android:id="@+id/nav_speed_limit"
style="@style/MwmWidget.SpeedLimit"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_margin="@dimen/margin_half"
app:layout_constraintEnd_toEndOf="@id/nav_next_turn_container"
app:layout_constraintStart_toStartOf="@id/nav_next_turn_container"
app:layout_constraintTop_toBottomOf="@id/nav_next_turn_container" />
app:layout_constraintTop_toBottomOf="@id/nav_current_speed"
android:translationY="-23dp"
android:translationX="-23dp"
android:translationZ="1dp"/>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -89,21 +89,22 @@
android:paddingStart="0dp"
android:paddingEnd="@dimen/altitude_chart_container_padding_left">
<Button
<com.google.android.material.button.MaterialButton
android:id="@+id/btn__cancel"
style="@style/MwmWidget.Button"
style="@style/Widget.Material3.Button.TextButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="@string/cancel"
android:textColor="?android:attr/textColorPrimary"
android:textColor="?android:textColorPrimary"
android:textAppearance="@style/MwmTextAppearance.Body1"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
<com.google.android.material.button.MaterialButton
android:id="@+id/btn__plan"
style="@style/MwmWidget.Button.Primary"
style="@style/MwmWidget.M3.Button.Primary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"

View File

@@ -53,7 +53,7 @@
android:clipChildren="false">
<com.google.android.material.button.MaterialButton
android:id="@+id/downloader_button"
style="@style/MwmWidget.Button.Primary"
style="@style/MwmWidget.M3.Button.Primary"
android:layout_width="180dp"
android:layout_gravity="center"
android:visibility="gone"

View File

@@ -11,9 +11,23 @@
android:id="@+id/tv__bookmark_notes"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/margin_base"
android:layout_marginBottom="@dimen/margin_half"
android:layout_marginEnd="@dimen/margin_base"
android:layout_marginStart="@dimen/margin_base"
android:layout_marginTop="@dimen/margin_base"
android:textAppearance="?android:attr/textAppearance"
tools:text="Long, long text Long, long text Long, long text Long, long text Long, long text Long, long text "/>
<com.google.android.material.textview.MaterialTextView
android:id="@+id/tv__bookmark_edit"
style="@style/PlacePageMetadataText.Button"
android:gravity="center"
android:layout_height="@dimen/height_block_base"
android:background="?clickableBackground"
android:paddingEnd="@dimen/margin_base"
android:paddingStart="@dimen/margin_base"
android:text="@string/placepage_edit_bookmark_button"/>
<include
layout="@layout/divider_horizontal"/>
</LinearLayout>

View File

@@ -74,6 +74,15 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<com.google.android.material.textview.MaterialTextView
android:id="@+id/place_page_last_checked"
style="?fontCaption"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="@dimen/margin_half"
android:paddingHorizontal="@dimen/margin_base"
tools:text="Existence confirmed 1 month ago"/>
<include android:visibility="gone" layout="@layout/place_page_editor"/>
<include android:visibility="gone" layout="@layout/place_page_add_business"/>

View File

@@ -3,6 +3,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:visibility="visible"
style="@style/PlacePageItemFrame">
<com.google.android.material.imageview.ShapeableImageView
@@ -58,6 +59,21 @@
android:layout_alignStart="@id/oh_nonbusiness_time"
android:layout_below="@id/oh_nonbusiness_time"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:itemCount="3"
tools:listitem="@layout/place_page_opening_hours_item"
android:layout_marginTop="8dp"/>
<com.google.android.material.textview.MaterialTextView
android:id="@+id/oh_check_date"
style="?fontCaption"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignStart="@id/oh_today_label"
android:layout_below="@id/rw__full_opening_hours"
android:textAppearance="@style/MwmTextAppearance.Body4"
android:textAlignment="viewStart"
android:visibility="gone"
tools:visibility="visible"
tools:text="Confirmed 2 months ago"/>
</RelativeLayout>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Derived from https://github.com/androidx/androidx/blob/8cb282cc/preference/preference/res/layout/preference_widget_switch_compat.xml -->
<com.google.android.material.materialswitch.MaterialSwitch xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/switchWidget"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:clickable="false"
android:focusable="false" />

View File

@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<Button
<com.google.android.material.button.MaterialButton
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/start"
style="@style/MwmWidget.Button.Primary"
style="@style/MwmWidget.M3.Button.Primary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="@dimen/start_button_width"

View File

@@ -397,7 +397,6 @@
<string name="twentyfour_seven">24/7</string>
<string name="day_off_today">Vandag gesluit</string>
<string name="day_off">Gesluit</string>
<string name="today">Vandag</string>
<string name="opens_in">Open oor %s</string>
<string name="closes_in">Sluit oor %s</string>
<string name="closed">Gesluit</string>

View File

@@ -423,7 +423,6 @@
<string name="twentyfour_seven">٢٤/٧(ليلاً ونهاراً)</string>
<string name="day_off_today">مغلق اليوم</string>
<string name="day_off">مغلق</string>
<string name="today">اليوم</string>
<string name="opens_in">يفتح بعد %s</string>
<string name="closes_in">يغلق في غضون %s</string>
<string name="closed">مغلق</string>

View File

@@ -31,7 +31,6 @@
<string name="no_available">Non</string>
<string name="yes"></string>
<string name="yes_available"></string>
<string name="today">Güei</string>
<string name="export_file">Esportar KMZ</string>
<string name="no">Non</string>
<string name="network">Rede: %s</string>

View File

@@ -415,7 +415,6 @@
<string name="twentyfour_seven">7/24</string>
<string name="day_off_today">Bu gün bağlıdır</string>
<string name="day_off">Bağlı</string>
<string name="today">Bu gün</string>
<string name="opens_in">%s sonra açılır</string>
<string name="closes_in">%s sonra bağlanır</string>
<string name="closed">Bağlı</string>

View File

@@ -409,7 +409,6 @@
<string name="twentyfour_seven">24/7</string>
<string name="day_off_today">Сёння закрыта</string>
<string name="day_off">Закрыта</string>
<string name="today">Сёння</string>
<string name="opens_in">Адчыняецца праз %s</string>
<string name="closes_in">Зачыняецца праз %s</string>
<string name="closed">Закрыта</string>

View File

@@ -216,7 +216,7 @@
<!-- Settings «Route» category: «Tts language» title -->
<string name="pref_tts_language_title">Език на инструкциите</string>
<!-- Settings «Route» category: «Test Voice Directions» title -->
<string name="pref_tts_test_voice_title">Тестване на гласови указания (TTS, Text-To-Speech)</string>
<string name="pref_tts_test_voice_title">Тестване на гласови указания</string>
<!-- Settings «Route» category: Pop-up message when clicking «Test Voice Directions» -->
<string name="pref_tts_playing_test_voice">Проверете силата на звука или системните настройки за преобразуване на текст в реч, ако сега не чувате гласа.</string>
<!-- Settings «Route» category: «Tts unavailable» subtitle -->
@@ -389,7 +389,6 @@
<string name="twentyfour_seven">24 часа</string>
<string name="day_off_today">Затворено днес</string>
<string name="day_off">Затворено</string>
<string name="today">Днес</string>
<string name="closed">Затворено</string>
<string name="edit_opening_hours">Редакция на работното време</string>
<string name="no_osm_account">Нямате акаунт в OpenStreetMap?</string>
@@ -805,4 +804,5 @@
<string name="editor_line_social_network">LINE</string>
<string name="app_site_url">https://comaps.app/</string>
<string name="saved">Запазено</string>
<string name="about_headline">Отворен проект, захранван от общността</string>
</resources>

View File

@@ -240,7 +240,6 @@
<string name="editor_report_problem_under_construction_title">রক্ষণাবেক্ষণের জন্য বন্ধ</string>
<string name="editor_report_problem_duplicate_place_title">ডুপ্লিকেট জায়গা</string>
<string name="day_off_today">আজকে বন্ধ</string>
<string name="today">আজকে</string>
<string name="opens_in">%s-এর মধ্যে খুলবে</string>
<string name="closes_in">%s-এর মধ্যে বন্ধ হবে</string>
<string name="no_osm_account">আপনার ওপেনস্ট্রিটম্যাপ অ্যাকাউন্ট নেই?</string>

View File

@@ -415,7 +415,6 @@
<string name="twentyfour_seven">24/7</string>
<string name="day_off_today">Avui és tancat</string>
<string name="day_off">Tancat</string>
<string name="today">Avui</string>
<string name="opens_in">Obre en %s</string>
<string name="closes_in">Tanca en %s</string>
<string name="closed">Tancat</string>

View File

@@ -408,7 +408,6 @@
<string name="twentyfour_seven">Nonstop</string>
<string name="day_off_today">Dnes zavřeno</string>
<string name="day_off">Zavřeno</string>
<string name="today">Dnes</string>
<string name="closed">Zavřeno</string>
<string name="edit_opening_hours">Upravit otevírací dobu</string>
<string name="no_osm_account">Nemáte účet u OpenStreetMap?</string>
@@ -883,4 +882,7 @@
<string name="osm_note_hint">Případně můžete zanechat poznámku komunitě OpenStreetMap, aby zde někdo jiný mohl místo přidat nebo opravit.</string>
<string name="share_track">Sdílet stopu</string>
<string name="delete_track_dialog_title">Odstranit %s?</string>
<string name="hours_confirmed_time_ago">Potvrzeno %s</string>
<string name="existence_confirmed_time_ago">Existence potvrzena %s</string>
<string name="pref_tts_no_system_tts_short">Nenalezen žádný modul pro převod textu na řeč, zkontrolujte nastavení aplikace</string>
</resources>

View File

@@ -32,7 +32,6 @@
<string name="editor_time_close">Ar gau</string>
<string name="subway">Tanlwybr</string>
<string name="downloader_retry">Ailgeisio</string>
<string name="today">Heddiw</string>
<string name="button_plan">Cynllunio</string>
<string name="translated_om_site_url">https://comaps.app/</string>
<string name="list">Rhestr</string>

View File

@@ -404,7 +404,6 @@
<string name="twentyfour_seven">Døgnet rundt</string>
<string name="day_off_today">Lukket i dag</string>
<string name="day_off">Lukket</string>
<string name="today">I dag</string>
<string name="closed">Lukket</string>
<string name="edit_opening_hours">Rediger åbningstid</string>
<string name="no_osm_account">Har du ikke OpenStreetMap-konto?</string>

View File

@@ -23,7 +23,7 @@
<!-- Search box placeholder text; Used when searching on the map itself, not when searching for a map -->
<string name="search_map">Auf der Karte suchen</string>
<!-- Location services are disabled by user alert - message -->
<string name="location_is_disabled_long_text">Standortdienste sind für dieses Gerät oder App deaktiviert. Bitte aktivieren Sie diese in den Einstellungen.</string>
<string name="location_is_disabled_long_text">Standortdienste sind für dieses Gerät oder diese App deaktiviert. Bitte aktivieren Sie diese in den Einstellungen.</string>
<!-- A dialog title, that warns a user that Precise Location is disabled and suggests to turn it on -->
<string name="limited_accuracy">Begrenzte Genauigkeit</string>
<!-- A dialog text, that warns a user that Precise Location is disabled and suggests to turn it on -->
@@ -225,7 +225,7 @@
<!-- Settings «Route» category: «Test Voice Directions» title -->
<string name="pref_tts_test_voice_title">Teste Sprachanweisungen</string>
<!-- Settings «Route» category: Pop-up message when clicking «Test Voice Directions» -->
<string name="pref_tts_playing_test_voice">Überprüfe die Lautstärke oder die Text-To-Speech Einstellungen des Systems, wenn du die Stimme jetzt nicht hören kannst</string>
<string name="pref_tts_playing_test_voice">Überprüfe die Lautstärke oder die Text-To-Speech-Einstellungen des Systems, wenn du die Stimme jetzt nicht hören kannst</string>
<!-- Settings «Route» category: «Tts unavailable» subtitle -->
<string name="pref_tts_unavailable">Nicht verfügbar</string>
<string name="pref_map_auto_zoom">Auto-Zoom</string>
@@ -256,7 +256,7 @@
<!-- Toast text when compass calibration may improve the correctness of the current position arrow -->
<string name="compass_calibration_required">Bewegen Sie das Telefon in einer Achterbewegung, um den Kompass zu kalibrieren und die Pfeilrichtung auf der Karte festzulegen.</string>
<!-- Toast text when user hides UI with a long tap anywhere on the map -->
<string name="long_tap_toast">Tippe erneut lange auf die Karte, um das Interface zu sehen</string>
<string name="long_tap_toast">Tippe erneut lange auf die Karte, um die Benutzeroberfläche zu sehen</string>
<!-- Update all button text -->
<string name="downloader_update_all_button">Alle aktualisieren</string>
<!-- Cancel all button text -->
@@ -346,10 +346,10 @@
<string name="dialog_routing_cant_build_route">Route konnte nicht erstellt werden</string>
<string name="dialog_routing_change_start_or_end">Bitte passen Sie Ihren Startpunkt oder Ihr Ziel an.</string>
<string name="dialog_routing_change_start">Startpunkt anpassen</string>
<string name="dialog_routing_start_not_determined">Route wurde nicht erstellt. Startpunkt kann nicht gefunden werden.</string>
<string name="dialog_routing_start_not_determined">Route wurde nicht erstellt. Startpunkt konnte nicht gefunden werden.</string>
<string name="dialog_routing_select_closer_start">Bitte wählen Sie einen Startpunkt, der näher an einer Straße liegt.</string>
<string name="dialog_routing_change_end">Ziel anpassen</string>
<string name="dialog_routing_end_not_determined">Route wurde nicht erstellt. Ziel kann nicht gefunden werden.</string>
<string name="dialog_routing_end_not_determined">Route wurde nicht erstellt. Ziel konnte nicht gefunden werden.</string>
<string name="dialog_routing_select_closer_end">Bitte wählen Sie einen Zielort näher an einer Straße</string>
<string name="dialog_routing_change_intermediate">Der Zwischenstopp konnte nicht gefunden werden</string>
<string name="dialog_routing_intermediate_not_determined">Bitte passen Sie Ihren Zwischenstopp an</string>
@@ -358,7 +358,7 @@
<string name="dialog_routing_try_again">Bitte versuchen Sie es erneut</string>
<string name="not_now">Nicht jetzt</string>
<string name="dialog_routing_download_and_build_cross_route">Möchten Sie die Karte herunterladen und eine bessere Route erstellen, die mehr als eine Karte umfasst?</string>
<string name="dialog_routing_download_cross_route">Laden Sie zusätzliche Karten herunter, um eine bessere Route zu erstellen, die die Grenzen dieser Karte überschreitet.</string>
<string name="dialog_routing_download_cross_route">Laden Sie zusätzliche Karten herunter, um eine bessere Route zu erstellen, welche die Grenzen dieser Karte überschreitet.</string>
<!-- SECTION: Strings for downloading map from search -->
<string name="search_without_internet_advertisement">Um mit der Suche und dem Erstellen von Routen zu beginnen, laden Sie bitte die Karte herunter. Sie benötigen danach keine Internetverbindung mehr.</string>
<string name="search_select_map">Karte auswählen</string>
@@ -395,29 +395,28 @@
<string name="editor_time_add_closed">Schließzeiten hinzufügen</string>
<string name="editor_time_title">Öffnungszeiten</string>
<string name="editor_time_advanced">Erweiterter Modus</string>
<string name="editor_time_simple">Einfachmodus</string>
<string name="editor_time_simple">Einfacher Modus</string>
<string name="editor_hours_closed">Schließzeiten</string>
<string name="editor_example_values">Beispiele</string>
<string name="editor_correct_mistake">Fehler korrigieren</string>
<string name="editor_add_select_location">Standort auswählen</string>
<string name="editor_report_problem_desription_1">Bitte beschreiben Sie das Problem detailliert, damit die OpenStreetMap-Community den Fehler korrigieren kann.</string>
<string name="editor_report_problem_desription_2">Oder kümmern Sie sich selbst darum auf https://www.openstreetmap.org/</string>
<string name="editor_report_problem_desription_2">Oder korrigieren Sie es selbst auf https://www.openstreetmap.org/</string>
<string name="editor_report_problem_send_button">Senden</string>
<string name="editor_report_problem_title">Problem</string>
<string name="editor_report_problem_no_place_title">Der Ort existiert nicht</string>
<string name="editor_report_problem_under_construction_title">Wegen Wartung geschlossen</string>
<string name="editor_report_problem_duplicate_place_title">Doppelter Ort</string>
<string name="editor_report_problem_no_place_title">Dieser Ort existiert nicht</string>
<string name="editor_report_problem_under_construction_title">Wegen Bauarbeiten geschlossen</string>
<string name="editor_report_problem_duplicate_place_title">Doppelt vorhanderer Ort</string>
<string name="autodownload">Karten automatisch herunterladen</string>
<!-- Place Page opening hours text -->
<string name="daily">Täglich</string>
<string name="twentyfour_seven">24/7</string>
<string name="day_off_today">Heute geschlossen</string>
<string name="day_off">Geschlossen</string>
<string name="today">Heute</string>
<string name="opens_in">Öffnet in %s</string>
<string name="closes_in">Schließt in %s</string>
<string name="closed">Geschlossen</string>
<string name="edit_opening_hours">Geschäftszeiten bearbeiten</string>
<string name="edit_opening_hours">Öffnungszeiten bearbeiten</string>
<string name="no_osm_account">Kein Konto bei OpenStreetMap?</string>
<string name="register_at_openstreetmap">Bei OpenStreetMap registrieren</string>
<string name="login">Bei OpenStreetMap anmelden</string>
@@ -445,7 +444,7 @@
<string name="select_cuisine">Küche auswählen</string>
<!-- login text field -->
<string name="email_or_username">Email oder Benutzername</string>
<string name="editor_add_phone">Telefon hinzufügen</string>
<string name="editor_add_phone">Telefonnummer hinzufügen</string>
<string name="level">Stockwerk</string>
<!-- Building level -->
<string name="level_value_generic">Stock: %s</string>
@@ -477,8 +476,8 @@
<!-- Downloaded 10 **of** 20 <- it is that "of" -->
<string name="downloader_of">%1$d von %2$d</string>
<string name="download_over_mobile_header">Über eine Mobilfunknetzverbindung herunterladen?</string>
<string name="download_over_mobile_message">Das könnte mit einigen Tarifen oder beim Roaming sehr teuer werden</string>
<string name="error_enter_correct_house_number">Richtige Hausnummer eingeben</string>
<string name="download_over_mobile_message">Das könnte je nach Tarif oder beim Roaming sehr teuer werden</string>
<string name="error_enter_correct_house_number">Gültige Hausnummer eingeben</string>
<!-- Error message in Editor when a user tries to set the number of floors for a building higher than %d floors -->
<string name="error_enter_correct_storey_number">Das Gebäude kann nicht mehr als %d Etagen haben</string>
<string name="editor_zip_code">Postleitzahl</string>
@@ -528,7 +527,7 @@
<string name="error_enter_correct_line_page">Geben Sie eine gültige LINE-Webadresse oder LINE ID ein</string>
<string name="placepage_add_place_button">Ort zu OpenStreetMap hinzufügen</string>
<!-- Displayed when saving some edits to the map to warn against publishing personal data -->
<string name="editor_share_to_all_dialog_title">An alle Benutzer senden?</string>
<string name="editor_share_to_all_dialog_title">An alle Nutzer*innen senden?</string>
<!-- Dialog before publishing the modifications to the public map. -->
<string name="editor_share_to_all_dialog_message_1">Stellen Sie sicher, dass Sie keine persönlichen oder privaten Daten eingegeben haben</string>
<string name="editor_share_to_all_dialog_message_2">Freiwillige von OpenStreetMap werden die Änderungen prüfen und sich bei Fragen mit Ihnen in Verbindung setzen</string>
@@ -559,7 +558,7 @@
<string name="prefs_languages_information">Wir verwenden Text-to-Speech-Systeme für Sprachanweisungen. Viele Android-Geräte nutzen Google-TTS, das Sie bei Google Play (https://play.google.com/store/apps/details?id=com.google.android.tts) herunterladen oder aktualisieren können</string>
<string name="prefs_languages_information_off">Für einige Sprachen müssen Sie einen anderen Sprachgenerator oder ein zusätzliches Sprachpaket aus dem App Store installieren (Google Play, Galaxy Store, App Gallery, FDroid).\nÖffnen Sie die Einstellungen Ihres Gerätes → Sprache und Eingabe → Sprache → Text-to-Speech-Ausgabe.\nHier können Sie die Einstellungen für Sprachsynthese verwalten (beispielsweise ein Sprachpaket für die Offline-Verwendung herunterladen) und ein anderes Sprachausgabeprogramm auswählen.</string>
<string name="prefs_languages_information_off_link">Weitere Informationen finden Sie in dieser Anleitung</string>
<string name="transliteration_title">Transliteration ins Lateinische alphabet</string>
<string name="transliteration_title">Transliteration ins lateinische Alphabet</string>
<string name="learn_more">Weitere Informationen</string>
<!-- User selected the destination by pressing Route To, but the current position is unknown. User needs to select a starting point of a route using search or by tapping on the map and then pressing "Route From". -->
<string name="routing_add_start_point">Verwende die Suche oder tippe auf die Karte, um einen Routenstartpunkt hinzuzufügen</string>
@@ -590,7 +589,7 @@
<string name="bookmarks_error_title_empty_list_name">Der Name darf nicht leer sein</string>
<string name="bookmarks_error_message_empty_list_name">Bitte geben Sie den Listennamen ein</string>
<string name="bookmarks_new_list_hint">Neue Liste</string>
<string name="bookmarks_error_title_list_name_already_taken">Dieser Name ist bereits vergeben</string>
<string name="bookmarks_error_title_list_name_already_taken">Dieser Name wird bereits verwendet</string>
<string name="bookmarks_error_message_list_name_already_taken">Bitte wähle einen anderen Namen</string>
<string name="please_wait">Bitte warten…</string>
<string name="phone_number">Telefonnummer</string>
@@ -620,9 +619,9 @@
<string name="speedcams_alert_title">Blitzer</string>
<string name="place_description_title">Ortsbeschreibung</string>
<!-- this text will be shown in application notification preferences opposite checkbox which enable/disable downloader notifications. Devices on Android 8+ are affected. -->
<string name="notification_channel_downloader">Karten werden geladen</string>
<string name="notification_channel_downloader">Laden von Karten</string>
<!-- "Speed cameras" settings menu option (should be short! no more than 47-50 chars) to warn a driver if there is a risk of exceeding the speed limit -->
<string name="pref_tts_speedcams_auto">Warnen wenn zu schnell</string>
<string name="pref_tts_speedcams_auto">Warnen bei Geschwindigkeitsübertretung</string>
<!-- Speed camera settings menu option - Always warn (about speedcams) -->
<string name="pref_tts_speedcams_always">Immer warnen</string>
<!-- Speed camera settings menu option - Never warn (about speedcams) -->
@@ -702,7 +701,7 @@
<string name="select_list">Wählen Sie eine Liste</string>
<string name="transit_not_found">Die U-Bahn-Navigation ist in dieser Region noch nicht verfügbar</string>
<string name="dialog_pedestrian_route_is_long_header">Keine U-Bahn-Route gefunden</string>
<string name="dialog_pedestrian_route_is_long_message">Wählen Sie einen zu einer U-Bahn-Station nähergelegenen Start- oder Endpunkt</string>
<string name="dialog_pedestrian_route_is_long_message">Wählen Sie einen Start- oder Endpunkt näher an einer U-Bahn-Station</string>
<string name="button_layer_isolines">Höhenlinien</string>
<string name="isolines_activation_error_dialog">Um die Höhenlinien nutzen zu können, aktualisieren Sie die Karte des betreffenden Gebiets oder laden Sie diese herunter</string>
<string name="isolines_location_error_dialog">Topographieebene ist für dieses Gebiet noch nicht verfügbar</string>
@@ -746,7 +745,7 @@
<!-- App tip #02 -->
<string name="app_tip_02">Gefällt Ihnen unsere App? Bitte spenden Sie, um die Entwicklung zu unterstützen! Gefällt es Ihnen noch nicht? Bitte lassen Sie uns wissen warum und wir werden das Problem beheben!</string>
<!-- App tip #03 -->
<string name="app_tip_03">Wenn Sie einen Softwareentwickler kennen, können Sie ihn oder sie bitten, eine Funktion zu implementieren, die Sie benötigen.</string>
<string name="app_tip_03">Wenn Sie eine*n Softwareentwickler*in kennen, können Sie ihn oder sie bitten, eine Funktion zu implementieren, die Sie benötigen.</string>
<!-- App tip #04 -->
<string name="app_tip_04">Tippen Sie irgendwo auf die Karte, um etwas auszuwählen. Tippen Sie lange, um die Oberfläche aus- und wieder einzublenden.</string>
<!-- App tip #05 -->
@@ -851,7 +850,7 @@
<string name="saved">Gespeichert</string>
<string name="pref_left_button_disable">Deaktivieren</string>
<string name="editor_building_levels">Etagen (inkl. Erdgeschoss, ohne Dach)</string>
<string name="error_enter_correct_level">Geben Sie eine gültige Etagen Nummer ein</string>
<string name="error_enter_correct_level">Geben Sie eine gültige Stockwerk-Nummer ein</string>
<string name="editor_level">Etage (0 ist Erdgeschoss)</string>
<string name="clear">Löschen</string>
<string name="vehicle">Fahrzeug</string>
@@ -861,26 +860,26 @@
<string name="pedestrian">Fußgänger</string>
<string name="bookmark_color">Lesezeichenfarbe</string>
<string name="about_help">Über &amp; Hilfe</string>
<string name="panoramax">Panoramax Bild</string>
<string name="pref_backup_summary">Sichere automatisch in einen Ordner auf deinem Gerät</string>
<string name="pref_backup_now_summary">Sicherung sofort erstellen</string>
<string name="pref_backup_now_summary_ok">Sicherung erfolgreich abgeschlossen</string>
<string name="pref_backup_now_summary_empty_lists">Keine Lesezeichen und Tracks zum Sichern</string>
<string name="pref_backup_now_summary_failed">Sicherung fehlgeschlagen</string>
<string name="pref_backup_now_summary_folder_unavailable">Der Sicherungsordner ist nicht verfügbar</string>
<string name="panoramax">Panoramax-Bild</string>
<string name="pref_backup_summary">Backup automatisch in einem Ordner auf deinem Gerät erstellen</string>
<string name="pref_backup_now_summary">Backup sofort erstellen</string>
<string name="pref_backup_now_summary_ok">Backup erfolgreich abgeschlossen</string>
<string name="pref_backup_now_summary_empty_lists">Keine Lesezeichen und Tracks für Backup vorhanden</string>
<string name="pref_backup_now_summary_failed">Backup fehlgeschlagen</string>
<string name="pref_backup_now_summary_folder_unavailable">Der Backup-Ordner ist nicht verfügbar</string>
<string name="pref_backup_location_summary_initial">Bitte wähle zuerst einen Ordner und erteile die Berechtigung</string>
<string name="pref_backup_history_title">Anzahl zu speichernder Sicherungen</string>
<string name="pref_backup_interval_title">Automatische Sicherung</string>
<string name="pref_backup_history_title">Anzahl zu speichernder Backups</string>
<string name="pref_backup_interval_title">Automatisches Backup</string>
<string name="backup_interval_every_day">Täglich</string>
<string name="backup_interval_manual_only">Aus (nur manuell)</string>
<string name="pref_backup_title">Sicherung von Lesezeichen und Tracks</string>
<string name="pref_backup_status_summary_success">Letzte erfolgreiche Sicherung</string>
<string name="pref_backup_title">Backup von Lesezeichen und Tracks</string>
<string name="pref_backup_status_summary_success">Letztes erfolgreiches Backup</string>
<string name="dialog_report_error_with_logs">Bitte sende uns einen Fehlerbericht:\n - in den Einstellungen \"Protokollierung aktivieren\"\n - das Problem reproduzieren\n - im Bildschirm \"Über &amp; Hilfe\" drücke den \"App-Fehler melden\"-Knopf und sende via E-Mail oder Chat\n - die Protokollierung deaktivieren</string>
<string name="dialog_report_error_missing_folder">Der ausgewählte Sicherungsort ist nicht verfügbar oder beschreibbar. Bitte wähle einen anderen Ort.</string>
<string name="pref_backup_now_title">Jetzt sichern</string>
<string name="pref_backup_location_title">Sicherungsort</string>
<string name="dialog_report_error_missing_folder">Der ausgewählte Backup-Ort ist nicht verfügbar oder beschreibbar. Bitte wähle einen anderen Ort.</string>
<string name="pref_backup_now_title">Backup jetzt erstellen</string>
<string name="pref_backup_location_title">Ort für Backup</string>
<string name="backup_interval_every_week">Wöchentlich</string>
<string name="pref_backup_now_summary_progress">Sicherung wird durchgeführt…</string>
<string name="pref_backup_now_summary_progress">Backup wird durchgeführt…</string>
<string name="open_now">Jetzt geöffnet</string>
<string name="at">um %s</string>
<string name="closed_now">Jetzt geschlossen</string>
@@ -888,4 +887,7 @@
<string name="osm_note_toast">Ein Hinweis wird zu OpenStreetMap geschickt</string>
<string name="share_track">Strecke teilen</string>
<string name="delete_track_dialog_title">%s löschen?</string>
<string name="existence_confirmed_time_ago">Existenz bestätigt %s</string>
<string name="hours_confirmed_time_ago">Bestätigt %s</string>
<string name="pref_tts_no_system_tts_short">Kein Text-zu-Sprache-Modul gefunden, überprüfe die App-Einstellungen</string>
</resources>

View File

@@ -415,7 +415,6 @@
<string name="twentyfour_seven">24/7</string>
<string name="day_off_today">Κλειστό σήμερα</string>
<string name="day_off">Κλειστό</string>
<string name="today">Σήμερα</string>
<string name="opens_in">Ανοίγει σε %s</string>
<string name="closes_in">Κλείνει σε %s</string>
<string name="closed">Κλειστό</string>

View File

@@ -38,7 +38,7 @@
<!-- Text in About screen -->
<string name="about_headline">Proyecto abierto impulsado por la comunidad</string>
<!-- Text in About screen -->
<string name="about_proposition_1">• Fácil de utilizar y depurado</string>
<string name="about_proposition_1">• Fácil de utilizar y completo</string>
<!-- Text in About screen -->
<string name="about_proposition_2">• Enfocado en la privacidad y sin anuncios</string>
<!-- Text in About screen -->
@@ -103,7 +103,7 @@
<!-- Search category for cafes, bars, restaurants; any changes should be duplicated in categories.txt @category_eat! -->
<string name="category_eat">Dónde comer</string>
<!-- Search category for grocery stores; any changes should be duplicated in categories.txt @category_food! -->
<string name="category_food">Provisiones</string>
<string name="category_food">Productos de alimentación</string>
<!-- Search category for public transport; any changes should be duplicated in categories.txt @category_transport! -->
<string name="category_transport">Transporte</string>
<!-- Search category for fuel stations; any changes should be duplicated in categories.txt @category_fuel! -->
@@ -248,7 +248,7 @@
<!-- Button in the main menu -->
<string name="donate">Donar</string>
<!-- Button in the main Help dialog -->
<string name="how_to_support_us">Apoye el proyecto</string>
<string name="how_to_support_us">Hazte voluntari@ y mejora CoMaps</string>
<!-- Button in the main Help dialog -->
<string name="copyright">Derechos de autor</string>
<!-- Text in menu + Button in the main Help dialog -->
@@ -413,11 +413,10 @@
<string name="editor_report_problem_duplicate_place_title">Lugar duplicado</string>
<string name="autodownload">Descarga automática</string>
<!-- Place Page opening hours text -->
<string name="daily">Diario</string>
<string name="daily">Diariamente</string>
<string name="twentyfour_seven">24/7</string>
<string name="day_off_today">Cerrado hoy</string>
<string name="day_off">Cerrado</string>
<string name="today">Hoy</string>
<string name="opens_in">Abre en %s</string>
<string name="closes_in">Cierra en %s</string>
<string name="closed">Cerrado</string>
@@ -469,7 +468,7 @@
<string name="editor_edit_place_category_title">Categoría</string>
<string name="detailed_problem_description">Descripción detallada del problema</string>
<string name="editor_report_problem_other_title">Un problema diferente</string>
<string name="placepage_add_business_button">Añadir organización</string>
<string name="placepage_add_business_button">Añadir empresa</string>
<string name="message_invalid_feature_position">No se puede ubicar ningún objeto aquí</string>
<!-- Text in About and OSM Login screens. First %@ is replaced by a local, human readable date. -->
<string name="osm_presentation">Datos de OpenStreetMap creados por la comunidad a partir de %s. Más información sobre cómo editar y actualizar el mapa en OpenStreetMap.org</string>
@@ -493,7 +492,7 @@
<string name="editor_about_osm">Sus ediciones se cargan en la base de datos pública <a href="https://wiki.openstreetmap.org/wiki/ES:Acerca_de_OpenStreetMap">OpenStreetMap</a>. Por favor, no añada información personal o protegida por derechos de autor.</string>
<string name="editor_more_about_osm">Más acerca de OpenStreetMap</string>
<string name="editor_osm_history">Tu historial de ediciones</string>
<string name="editor_osm_notes">Tus notas de datos cartográficos</string>
<string name="editor_osm_notes">Tus notas de del mapa</string>
<string name="editor_operator">Operador</string>
<!-- To indicate the operator of ATMs, bicycle rentals, electric vehicle charging stations... -->
<string name="operator">Operador: %s</string>
@@ -540,7 +539,7 @@
<!-- For the first routing -->
<string name="accept">Aceptar</string>
<!-- For the first routing -->
<string name="decline">Declinar</string>
<string name="decline">Rechazar</string>
<string name="mobile_data_dialog">¿Usar Internet móvil para mostrar información detallada?</string>
<string name="mobile_data_option_always">Usar siempre</string>
<string name="mobile_data_option_today">Sólo hoy</string>
@@ -891,4 +890,9 @@
<string name="at">a las %s</string>
<string name="osm_note_hint">O, como alternativa, deja una nota a la comunidad de OpenStreetMap para que alguien lo agregue o arregle.</string>
<string name="osm_note_toast">Una nota será enviada a OpenStreetMap</string>
<string name="delete_track_dialog_title">Eliminar %s?</string>
<string name="existence_confirmed_time_ago">Existencia confirmada %s</string>
<string name="hours_confirmed_time_ago">Confirmado %s</string>
<string name="share_track">Compartir traza</string>
<string name="pref_tts_no_system_tts_short">No se ha encontrado ningún motor de texto-a-voz, comprueba la configuración de la aplicación</string>
</resources>

View File

@@ -409,7 +409,6 @@
<string name="twentyfour_seven">24/7</string>
<string name="day_off_today">Täna suletud</string>
<string name="day_off">Suletud</string>
<string name="today">Täna</string>
<string name="opens_in">Avatakse %s möödumisel</string>
<string name="closes_in">Suletakse %s möödumisel</string>
<string name="closed">Suletud</string>
@@ -883,4 +882,7 @@
<string name="osm_note_hint">Või alternatiivina jäta märge OpenStreetMapi kogukonnale ja keegi teine saab selle koha andmed parandada või uue lisada.</string>
<string name="share_track">Jaga rada</string>
<string name="delete_track_dialog_title">Kas kustutame: %s?</string>
<string name="existence_confirmed_time_ago">Olemasolu on kontrollitud %s</string>
<string name="hours_confirmed_time_ago">Kontrollitud %s</string>
<string name="pref_tts_no_system_tts_short">Ühtegi kõnesünteesimootorit ei leidu, palun kontrolli rakenduse seadistusi</string>
</resources>

View File

@@ -415,7 +415,6 @@
<string name="twentyfour_seven">24/7</string>
<string name="day_off_today">Gaur atseden eguna</string>
<string name="day_off">Itxita</string>
<string name="today">Gaur</string>
<string name="opens_in">%s barru irekiko da</string>
<string name="closes_in">%s barru itxiko da</string>
<string name="closed">Itxita</string>

View File

@@ -394,7 +394,6 @@
<string name="twentyfour_seven">شبانه روزی</string>
<string name="day_off_today">امروز تعطیل است</string>
<string name="day_off">تعطیل است</string>
<string name="today">امروز</string>
<string name="closed">تعطیل</string>
<string name="edit_opening_hours">ویرایش ساعت کاری</string>
<string name="no_osm_account">آیا حساب OpenStreetMap ندارید؟</string>

View File

@@ -416,7 +416,6 @@
<string name="twentyfour_seven">Päivin ja öin</string>
<string name="day_off_today">Suljettu tänään</string>
<string name="day_off">Suljettu</string>
<string name="today">Tänään</string>
<string name="opens_in">Avautuu %s kuluttua</string>
<string name="closes_in">Sulkeutuu %s kuluttua</string>
<string name="closed">Suljettu</string>
@@ -887,4 +886,7 @@
<string name="osm_note_hint">Vaihtoehtoisesti voit jättää huomion OpenStreetMap yhteisölle, jotta joku muu voi lisätä tai korjata paikan tiedot.</string>
<string name="delete_track_dialog_title">Poista %s?</string>
<string name="share_track">Jaa Reitti</string>
<string name="hours_confirmed_time_ago">Vahvistettu %s</string>
<string name="existence_confirmed_time_ago">Olemassaolo vahvistettu %s</string>
<string name="pref_tts_no_system_tts_short">Tekstistä puheeksi -moottoria ei löytynyt, tarkista sovelluksen asetukset</string>
</resources>

View File

@@ -101,7 +101,7 @@
<string name="measurement_units_summary">Choisir entre miles et kilomètres</string>
<!-- SECTION: Search categories -->
<!-- Search category for cafes, bars, restaurants; any changes should be duplicated in categories.txt @category_eat! -->
<string name="category_eat">Un endroit pour manger</string>
<string name="category_eat"> manger</string>
<!-- Search category for grocery stores; any changes should be duplicated in categories.txt @category_food! -->
<string name="category_food">Épiceries</string>
<!-- Search category for public transport; any changes should be duplicated in categories.txt @category_transport! -->
@@ -165,13 +165,13 @@
<!-- Warning message when doing search around current position -->
<string name="unknown_current_position">Votre position n\'a pas encore été déterminée</string>
<!-- Alert message that we can't run Map Storage settings due to some reasons. -->
<string name="cant_change_this_setting">Désolé, les paramètres de stockage de carte sont actuellement désactivés.</string>
<string name="cant_change_this_setting">Désolé, le stockage des cartes n\'est pas activé dans les paramètres actuellement</string>
<!-- Alert message that downloading is in progress. -->
<string name="downloading_is_active">Le téléchargement de la carte est en cours</string>
<!-- Share my position using SMS, %1$@ contains om:// and %2$@ https://comaps.app link WITHOUT NAME. @NOTE non-ascii symbols in the link will result in max 70 characters SMS instead of 140. -->
<string name="my_position_share_sms">Hé, regardez ma position actuelle sur CoMaps ! %1$s ou %2$s. Les cartes hors ligne ne sont pas installées ? Téléchargez-les ici : https://www.comaps.app/download/</string>
<!-- Subject for emailed bookmark -->
<string name="bookmark_share_email_subject">Hé, regardez mon signet sur la carte CoMaps !</string>
<string name="bookmark_share_email_subject">Hé, regardez ce lieu dans CoMaps !</string>
<!-- Subject for emailed position -->
<string name="my_position_share_email_subject">Hé, regardez ma position actuelle sur la carte CoMaps !</string>
<!-- Share my position using EMail, %1$@ is om:// and %2$@ is https://comaps.app link WITHOUT NAME -->
@@ -187,7 +187,7 @@
<!-- Data version in «About» screen, %@ is replaced by a local, human readable date. -->
<string name="data_version">Données OpenStreetMap : %s</string>
<!-- Confirmation for OpenStreetMap log out. -->
<string name="osm_log_out_confirmation">Êtes-vous sûr de vouloir vous déconnecter de votre compte OpenStreetMap ?</string>
<string name="osm_log_out_confirmation">Êtes-vous certain de vouloir vous déconnecter de votre compte OpenStreetMap ?</string>
<!-- Title for tracks category in bookmarks manager -->
<string name="tracks_title">Traces</string>
<!-- Length of track in cell that describes route -->
@@ -221,7 +221,7 @@
<!-- Settings «Route» category: «Tts announce street names» description -->
<string name="pref_tts_street_names_description">Quand activé, le nom de la rue ou de la sortie à prendre sera prononcé à haute voix.</string>
<!-- Settings «Route» category: «Tts language» title -->
<string name="pref_tts_language_title">Langue vocale</string>
<string name="pref_tts_language_title">Langue des annonces vocales</string>
<!-- Settings «Route» category: «Test Voice Directions» title -->
<string name="pref_tts_test_voice_title">Tester les instructions vocales</string>
<!-- Settings «Route» category: Pop-up message when clicking «Test Voice Directions» -->
@@ -234,11 +234,11 @@
<!-- Menu button -->
<string name="menu">Menu</string>
<!-- Text in menu -->
<string name="website">Site internet</string>
<string name="website">Site web</string>
<!-- Text in About menu, opens CoMaps news website -->
<string name="news">Nouvelles</string>
<!-- Settings: Send feedback button and dialog title -->
<string name="feedback">Feedback</string>
<string name="feedback">Suggestions</string>
<!-- Text in menu -->
<string name="rate_the_app">Évaluer l\'appli</string>
<!-- Text in menu -->
@@ -248,7 +248,7 @@
<!-- Button in the main menu -->
<string name="donate">Faire un don</string>
<!-- Button in the main Help dialog -->
<string name="how_to_support_us">Soutenir le projet</string>
<string name="how_to_support_us">Devenez contributeur et améliorez CoMaps</string>
<!-- Button in the main Help dialog -->
<string name="copyright">Tous droits réservés</string>
<!-- Text in menu + Button in the main Help dialog -->
@@ -283,11 +283,11 @@
<!-- Item in context menu. -->
<string name="downloader_delete_map">Supprimer carte</string>
<!-- Item in context menu. -->
<string name="downloader_update_map">Mise à jour carte</string>
<string name="downloader_update_map">Mettre à jour carte</string>
<!-- Preference title -->
<string name="google_play_services">Service de localisation Google Fused</string>
<!-- Preference text -->
<string name="pref_use_google_play">Un service propriétaire qui combine le GPS, le Wi-Fi, les réseaux cellulaires… pour déterminer votre position plus précisément. Il peut se connecter aux serveurs de Google.</string>
<string name="pref_use_google_play">Un service propriétaire qui combine GPS, Wi-Fi, réseaux cellulaires… pour déterminer votre position plus précisément. Il peut se connecter aux serveurs Google.</string>
<!-- Preference title -->
<!-- Preference description -->
<!-- Text for routing error dialog -->
@@ -334,10 +334,10 @@
<string name="blue_gray">Gris-bleu</string>
<!-- SECTION: Routing dialogs strings -->
<string name="dialog_routing_disclaimer_title">Lorsque vous suivez l\'itinéraire, gardez à l\'esprit les points suivants :</string>
<string name="dialog_routing_disclaimer_priority">— Les conditions de circulation, le code de la route et les panneaux de signalisation ont la priorité sur l\'appareil de navigation ;</string>
<string name="dialog_routing_disclaimer_precision">— La carte peut être imprécise et l\'itinéraire proposé n\'est pas forcément le plus direct pour arriver à destination ;</string>
<string name="dialog_routing_disclaimer_priority">— Les conditions de circulation, le code de la route et les panneaux de signalisation ont la priorité sur les conseils de navigation ;</string>
<string name="dialog_routing_disclaimer_precision">— La carte peut être erronée et l\'itinéraire proposé n\'est pas forcément optimal pour arriver à destination ;</string>
<string name="dialog_routing_disclaimer_recommendations">— L\'itinéraire proposé doit être considéré comme une simple recommandation ;</string>
<string name="dialog_routing_disclaimer_borders">— Faites attention aux itinéraires traversant des zones frontalières : les itinéraires générés par l\'application peuvent parfois franchir des frontières étatiques dans des zones interdites ;</string>
<string name="dialog_routing_disclaimer_borders">— Faites attention à proximité des zones frontalières : les itinéraires calculés par l\'application peuvent emprunter des zones interdites.</string>
<string name="dialog_routing_disclaimer_beware">Restez vigilants et soyez prudents sur la route !</string>
<string name="dialog_routing_check_gps">Vérifiez le signal GPS</string>
<string name="dialog_routing_error_location_not_found">Impossible de créer l\'itinéraire. Les coordonnées GPS actuelles n\'ont pas pu être déterminées.</string>
@@ -346,10 +346,10 @@
<string name="dialog_routing_location_unknown_turn_on">Impossible de déterminer les coordonnées GPS actuelles. Activez les services de localisation pour calculer l\'itinéraire.</string>
<string name="dialog_routing_unable_locate_route">Impossible de localiser l\'itinéraire</string>
<string name="dialog_routing_cant_build_route">Impossible de créer l\'itinéraire</string>
<string name="dialog_routing_change_start_or_end">Veuillez ajuster votre point de départ ou votre destination</string>
<string name="dialog_routing_change_start_or_end">Veuillez ajuster votre point de départ ou votre destination.</string>
<string name="dialog_routing_change_start">Modifiez votre point de départ</string>
<string name="dialog_routing_start_not_determined">Impossible de localiser le point de départ. L\'itinéraire n\'a pas pu être créé.</string>
<string name="dialog_routing_select_closer_start">Choisissez un point de départ à proximité d\'une route</string>
<string name="dialog_routing_select_closer_start">Choisissez un point de départ à proximité d\'une route.</string>
<string name="dialog_routing_change_end">Ajustez la destination</string>
<string name="dialog_routing_end_not_determined">Impossible de localiser la destination. L\'itinéraire n\'a pas pu être créé.</string>
<string name="dialog_routing_select_closer_end">Choisissez un lieu de destination à proximité d\'une route</string>
@@ -360,10 +360,10 @@
<string name="dialog_routing_try_again">Veuillez réessayer</string>
<string name="not_now">Pas maintenant</string>
<string name="dialog_routing_download_and_build_cross_route">Voulez-vous télécharger la carte et créer un itinéraire plus direct s\'étendant sur plus d\'une carte ?</string>
<string name="dialog_routing_download_cross_route">Téléchargez des cartes supplémentaires pour cer un itinéraire plus direct sortant des limites de cette carte.</string>
<string name="dialog_routing_download_cross_route">Téléchargez des cartes supplémentaires pour calculer un meilleur itinéraire sortant des limites de la carte courante.</string>
<!-- SECTION: Strings for downloading map from search -->
<string name="search_without_internet_advertisement">Pour commencer à rechercher et à créer des itinéraires, veuillez télécharger la carte. Après cela, vous n\'aurez plus besoin d\'une connexion Internet.</string>
<string name="search_select_map">Sélectionner la carte</string>
<string name="search_without_internet_advertisement">Commencez par télécharger une carte pour effectuer des recherches et créer des itinéraires. Ensuite vous pourrez utilisez CoMaps sans connexion Internet.</string>
<string name="search_select_map">Sélectionnez une carte</string>
<!-- «Show» context menu -->
<string name="show">Afficher</string>
<!-- «Hide» context menu -->
@@ -372,9 +372,9 @@
<string name="history">Historique</string>
<string name="search_not_found">Oups, aucun résultat trouvé</string>
<!-- The message when user did not find anything in the search. -->
<string name="search_not_found_query">Téléchargez la région dans laquelle vous effectuez votre recherche ou essayez d\'ajouter le nom d\'une ville ou d\'un village proche</string>
<string name="search_not_found_query">Téléchargez la région dans laquelle vous effectuez votre recherche ou essayez d\'ajouter le nom d\'une ville ou d\'un village proche.</string>
<string name="search_history_title">Historique de recherche</string>
<string name="search_history_text">Accédez à vos dernières recherches</string>
<string name="search_history_text">Affichez vos dernières recherches</string>
<string name="clear_search">Effacer l\'historique de recherche</string>
<!-- Place Page link to Wikipedia article (if map object has it). -->
<string name="read_in_wikipedia">Wikipédia</string>
@@ -402,14 +402,14 @@
<string name="editor_time_simple">Mode simplifié</string>
<string name="editor_hours_closed">Heures de fermeture</string>
<string name="editor_example_values">Exemple de valeurs</string>
<string name="editor_correct_mistake">Corriger l\'erreur</string>
<string name="editor_correct_mistake">Corriger une erreur</string>
<string name="editor_add_select_location">Sélectionnez un emplacement</string>
<string name="editor_report_problem_desription_1">Veuillez décrire le problème en détail pour permettre à la communauté OpenStreetMap de le résoudre.</string>
<string name="editor_report_problem_desription_2">Ou faites-le vous-même sur https://www.openstreetmap.org/</string>
<string name="editor_report_problem_send_button">Envoyer</string>
<string name="editor_report_problem_title">Problème</string>
<string name="editor_report_problem_no_place_title">Ce lieu n\'existe pas</string>
<string name="editor_report_problem_under_construction_title">Fermé pour cause de maintenance</string>
<string name="editor_report_problem_under_construction_title">Fermé pour travaux</string>
<string name="editor_report_problem_duplicate_place_title">Lieu en doublon</string>
<string name="autodownload">Téléchargement automatique des cartes</string>
<!-- Place Page opening hours text -->
@@ -417,7 +417,6 @@
<string name="twentyfour_seven">24/24 et 7/7</string>
<string name="day_off_today">Fermé aujourd\'hui</string>
<string name="day_off">Fermé</string>
<string name="today">Aujourd\'hui</string>
<string name="opens_in">Ouvert dans %s</string>
<string name="closes_in">Ferme dans %s</string>
<string name="closed">Fermé</string>
@@ -453,16 +452,16 @@
<string name="level">Étage</string>
<!-- Building level -->
<string name="level_value_generic">Niveau : %s</string>
<string name="downloader_delete_map_dialog">Toutes vos modifications de la carte seront supprimées avec elle</string>
<string name="downloader_delete_map_dialog">Toutes vos modifications de la carte seront supprimées en même temps qu\'elle</string>
<string name="downloader_update_maps">Mettre à jour les cartes</string>
<string name="downloader_mwm_migration_dialog">Pour créer un itinéraire, vous devez mettre à jour toutes les cartes puis reprogrammer l\'itinéraire.</string>
<string name="downloader_mwm_migration_dialog">Pour créer un itinéraire, vous devez mettre à jour toutes les cartes puis replanifier l\'itinéraire.</string>
<string name="downloader_search_field_hint">Trouver une carte</string>
<string name="common_check_internet_connection_dialog">Veuillez vous assurer que votre appareil est connecté à Internet</string>
<string name="common_check_internet_connection_dialog">Veuillez vérifier que votre appareil est connecté à Internet</string>
<string name="downloader_no_space_title">Espace insuffisant</string>
<string name="downloader_no_space_message">Veuillez supprimer les données inutiles</string>
<string name="editor_login_error_dialog">Erreur de connexion</string>
<string name="editor_profile_changes">Modifications vérifiées</string>
<string name="editor_focus_map_on_location">Déplacez la carte pour placer la croix à l\'emplacement du lieu ou de l\'entreprise</string>
<string name="editor_focus_map_on_location">Déplacez la carte pour positionner la croix à l\'emplacement du lieu ou de l\'entreprise.</string>
<string name="editor_edit_place_title">Modification</string>
<string name="editor_add_place_title">Ajout</string>
<string name="editor_edit_place_name_hint">Nom du lieu</string>
@@ -477,7 +476,7 @@
<string name="osm_presentation">Données OpenStreetMap créées par la communauté en date du %s. Pour en savoir plus sur la façon de modifier et de mettre à jour la carte, consultez le site OpenStreetMap.org</string>
<!-- OSM explanation on Android login screen -->
<string name="login_osm_presentation">OpenStreetMap.org (OSM) est un projet communautaire visant à créer une carte libre et ouverte. C\'est la principale source de données cartographiques de CoMaps et son fonctionnement est similaire à celui de Wikipédia. Vous pouvez ajouter ou modifier des lieux et ils deviennent accessibles à des millions d\'utilisateurs dans le monde entier. \nRejoignez la communauté et aidez-nous à créer une meilleure carte pour tout le monde !</string>
<string name="login_to_make_edits_visible">Créez un compte OpenStreetMap ou connectez-vous pour publier vos modifications de carte dans le monde entier.</string>
<string name="login_to_make_edits_visible">Créez un compte OpenStreetMap ou connectez-vous pour publier vos modifications de carte et les diffuser au monde entier</string>
<!-- Downloaded 10 **of** 20 <- it is that "of" -->
<string name="downloader_of">%1$d de %2$d</string>
<string name="download_over_mobile_header">Télécharger avec une connexion réseau cellulaire ?</string>
@@ -515,7 +514,7 @@
<string name="placepage_personal_notes_hint">Notes personnelles (texte ou html)</string>
<string name="editor_comment_hint">Commentaire…</string>
<string name="editor_reset_edits_message">Abandonner toutes les modifications locales ?</string>
<string name="editor_reset_edits_button">Réinitialiser</string>
<string name="editor_reset_edits_button">Ignorer</string>
<string name="editor_remove_place_message">Supprimer le lieu ajouté ?</string>
<string name="editor_remove_place_button">Supprimer</string>
<string name="editor_place_doesnt_exist">Ce lieu n\'existe pas</string>
@@ -524,7 +523,7 @@
<!-- Phone number error message -->
<string name="error_enter_correct_phone">Saisissez un numéro de téléphone valide</string>
<string name="error_enter_correct_web">Saisissez une adresse Internet valide</string>
<string name="error_enter_correct_email">Saisissez un email valide</string>
<string name="error_enter_correct_email">Saisissez une adresse de courriel valide</string>
<string name="error_enter_correct_facebook_page">Saisissez une adresse web, un compte ou un nom de page Facebook valide</string>
<string name="error_enter_correct_instagram_page">Saisissez une adresse web, un nom de compte Instagram valide</string>
<string name="error_enter_correct_twitter_page">Saisissez une adresse web, un nom de compte Twitter valide</string>
@@ -535,7 +534,7 @@
<string name="editor_share_to_all_dialog_title">Souhaitez-vous lenvoyer à tous les utilisateurs ?</string>
<!-- Dialog before publishing the modifications to the public map. -->
<string name="editor_share_to_all_dialog_message_1">Assurez-vous de navoir pas saisi de données personnelles</string>
<string name="editor_share_to_all_dialog_message_2">Les contributeurs d\'OpenStreetMap vérifieront vos modifications et vous contacteront s\'ils ont des questions.</string>
<string name="editor_share_to_all_dialog_message_2">Les cartographes OpenStreetMap vérifieront vos modifications et vous contacteront en cas de questions</string>
<!-- Shown as toast when starting the recent track recording -->
<string name="track_recording">Enregistreur de traces</string>
<!-- For the first routing -->
@@ -548,10 +547,10 @@
<string name="mobile_data_option_not_today">Ne pas utiliser aujourd\'hui</string>
<string name="mobile_data">Internet mobile</string>
<!-- NOTE to translators: please synchronize your translation with the English one. -->
<string name="mobile_data_description">L\'Internet mobile est requis pour les notifications de mise à jour de carte et le téléchargement des modifications.</string>
<string name="mobile_data_description">Une connexion Internet est nécessaire pour recevoir les mises à jour de cartes et pour envoyer vos modifications</string>
<string name="mobile_data_option_never">Ne jamais utiliser</string>
<string name="mobile_data_option_ask">Toujours demander</string>
<string name="traffic_update_maps_text">Pour afficher les données de circulation, les cartes doivent être mises à jour.</string>
<string name="traffic_update_maps_text">Pour afficher le traffic, les cartes doivent être mises à jour</string>
<string name="big_font">Augmenter la taille de police sur la carte</string>
<string name="traffic_update_app">Veuillez mettre à jour CoMaps</string>
<!-- "traffic" as in "road congestion" -->
@@ -648,7 +647,7 @@
<string name="avoid_ferry">Éviter les ferries</string>
<string name="avoid_motorways">Éviter les autoroutes</string>
<string name="unable_to_calc_alert_title">Impossible de calculer l\'itinéraire</string>
<string name="unable_to_calc_alert_subtitle">Malheureusement, nous n\'avons pas pu créer l\'itinéraire avec les options sélectionnées. Modifiez les paramètres et réessayez</string>
<string name="unable_to_calc_alert_subtitle">Malheureusement aucun itinéraire n\'a pu être calculé soit en raison d\'un manque de données OpenStreetMap soit à cause des options de routage choisies. Modifiez les paramètres de routage et réessayez.</string>
<string name="define_to_avoid_btn">Définissez les routes à éviter</string>
<string name="change_driving_options_btn">Paramètres d\'itinéraire activés</string>
<string name="toll_road">Route à péage</string>
@@ -776,9 +775,9 @@
<!-- Displayed on the Android Auto or CarPlay screen. Button to display maps on the car screen instead of a phone. Must be no more than 18 symbols! -->
<string name="car_continue_in_the_car">Afficher dans la voiture</string>
<!-- Ask user to grant location permissions -->
<string name="aa_location_permissions_request">CoMaps a besoin d\'un accès à la localisation. Lorsque c\'est sûr, vérifie la notification sur ton téléphone.</string>
<string name="aa_location_permissions_request">CoMaps a besoin d\'accéder à votre position. Vérifiez la notification affichée sur le téléphone.</string>
<!-- Notification title for permission request from AA. -->
<string name="aa_request_permission_notification">Cette application a besoin de ta permission</string>
<string name="aa_request_permission_notification">Cette application a besoin de vôtre permission</string>
<!-- The text in the activity for location permission request. -->
<string name="aa_request_permission_activity_text">CoMaps dans Android Auto a besoin des permissions de localisation pour fonctionner efficacement</string>
<!-- Grant Permissions button. -->
@@ -811,7 +810,7 @@
<!-- To indicate if restaurant or other place has outdoor seating -->
<string name="outdoor_seating">Places en terrasse</string>
<!-- Disclaimer summary shown when Power Saving Mode is enabled -->
<string name="power_save_dialog_summary">Pour une navigation plus précise, nous te recommandons de désactiver le mode d\'économie d\'énergie dans les paramètres de la batterie du téléphone.</string>
<string name="power_save_dialog_summary">Pour une navigation plus précise, nous vous recommandons de désactiver le mode d\'économie d\'énergie dans les paramètres de la batterie du téléphone.</string>
<!-- Prompt to start recording a track. -->
<string name="start_track_recording">Enregistrer la trace</string>
<!-- Prompt for stopping a track recording. -->
@@ -825,9 +824,9 @@
<!-- Message for the toast when saving the track recording is finished but nothing to save. -->
<string name="track_recording_toast_nothing_to_save">L\'itinéraire est vide - il n\'y a rien à sauvegarder</string>
<!-- Error message when there are no File Manager apps installed to select a folder when importing Bookmarks and Tracks -->
<string name="error_no_file_manager_app">Impossible d\'afficher la boîte de dialogue de sélection des dossiers car aucune application appropriée n\'est installée sur votre appareil. Veuillez installer une application de gestion de fichiers et réessayer</string>
<string name="error_no_file_manager_app">Impossible d\'afficher la fenêtre de sélection des dossiers car aucune application n\'a été trouvée sur votre appareil. Veuillez installer une application de gestion de fichiers puis réessayer.</string>
<string name="choose_color">Choisir la couleur</string>
<string name="edit_track">Modifier le trace</string>
<string name="edit_track">Modifier la trace</string>
<string name="uri_open_location_failed">Aucune application installée ne permet d\'ouvrir l\'emplacement</string>
<!-- preference string for using auto theme only in navigation mode -->
<string name="nav_auto">Auto dans la navigation</string>
@@ -845,7 +844,7 @@
<string name="comma_separated_pair">%1$s, %2$s</string>
<string name="openstreetmap">OpenStreetMap</string>
<string name="navigation_stop_button">Stop</string>
<string name="telegram_url">https://t.me/CoMapsApp/</string>
<string name="telegram_url">https://t.me/CoMapsApp</string>
<string name="app_site_url">https://comaps.app/fr/</string>
<string name="codeberg">Codeberg</string>
<string name="instagram_url">https://www.instagram.com/comaps.app/</string>
@@ -862,7 +861,7 @@
<string name="vehicle">Véhicule</string>
<string name="clear">Effacer</string>
<string name="pedestrian">À pied</string>
<string name="bicycle">Vélo</string>
<string name="bicycle">À vélo</string>
<string name="ruler">Règle</string>
<string name="bookmark_color">Couleur du marque-page</string>
<string name="panoramax">Image Panoramax</string>
@@ -891,4 +890,9 @@
<string name="at">à %s</string>
<string name="osm_note_hint">Sinon, laissez une note à la communauté OpenStreetMap pour que quelqu\'un d\'autre puisse ajouter ou corriger ce lieu.</string>
<string name="osm_note_toast">La note va être envoyée à OpenStreetMap</string>
<string name="share_track">Partager la trace</string>
<string name="delete_track_dialog_title">Supprimer %s ?</string>
<string name="existence_confirmed_time_ago">Existance confirmée %s</string>
<string name="hours_confirmed_time_ago">Confirmé %s</string>
<string name="pref_tts_no_system_tts_short">Impossible de lire ce texte à voix haute, vérifiez les paramètres de l\'application</string>
</resources>

View File

@@ -228,7 +228,7 @@
<string name="rate_the_app">Valore a aplicación</string>
<string name="faq">Preguntas frecuentes</string>
<string name="donate">Doar</string>
<string name="how_to_support_us">Apoie o proxecto</string>
<string name="how_to_support_us">Voluntariado para mellorar CoMaps</string>
<string name="copyright">Dereitos de autor</string>
<string name="report_a_bug">Informar dun fallo</string>
<string name="compass_calibration_recommended">Mellore a dirección da frecha movendo o teléfono en forma de oito para calibrar o compás.</string>
@@ -489,7 +489,6 @@
<string name="translated_om_site_url">https://comaps.app/gl/</string>
<string name="category_shopping">Compras</string>
<string name="placepage_distance">Distancia</string>
<string name="today">Hoxe</string>
<string name="category_toilet">Baño</string>
<string name="off">Desactivado</string>
<string name="cuisine">Cociña</string>
@@ -618,4 +617,9 @@
<string name="at">ás %s</string>
<string name="osm_note_hint">Ou, de xeito alternativo, deixarlle unha nota á comunidade OpenStreetMap para que alguén poida engadir ou arranxar a localización.</string>
<string name="osm_note_toast">Enviarase unha nota a OpenStreetMap</string>
<string name="delete_track_dialog_title">Eliminar %s?</string>
<string name="hours_confirmed_time_ago">Confirmado %s</string>
<string name="existence_confirmed_time_ago">Existencia confirmada %s</string>
<string name="share_track">Compartir ruta</string>
<string name="pref_tts_no_system_tts_short">Non se atopa un motor texto-a-fala, comproba os axustes da app</string>
</resources>

View File

@@ -252,7 +252,7 @@
<string name="help">Hilf</string>
<string name="faq">Hüüfigi Frage und Antworte</string>
<string name="donate">Spende</string>
<string name="how_to_support_us">Unterstütz s Projekt</string>
<string name="how_to_support_us">Freiwillig helfe und CoMaps verbessere</string>
<string name="copyright">Copyright</string>
<string name="report_a_bug">App-Fehler melde</string>
<string name="compass_calibration_recommended">Verbesser d Pfiilrichtig, indem du s Telefon inere Achterbewegig bewegsch, zum de Kompass z kalibriere.</string>
@@ -360,7 +360,6 @@
<string name="twentyfour_seven">24/7</string>
<string name="day_off_today">Hüt zue</string>
<string name="day_off">Zue</string>
<string name="today">Hüt</string>
<string name="opens_in">Öffnet i %s</string>
<string name="closes_in">Schlüüst i %s</string>
<string name="closed">Zue</string>
@@ -618,4 +617,9 @@
<string name="at">am %s</string>
<string name="osm_note_hint">Oder hinterlaa alternativ en Hiiwiis für d OpenStreetMap Community, sodass öpper andersch en Ort hinzuefüege oder korrigiere cha.</string>
<string name="osm_note_toast">En Hiiwiis wird zu OpenStreetMap gschickt</string>
<string name="share_track">Strecki teile</string>
<string name="delete_track_dialog_title">%s lösche?</string>
<string name="existence_confirmed_time_ago">Existenz bestätigt %s</string>
<string name="hours_confirmed_time_ago">Bestätigt %s</string>
<string name="pref_tts_no_system_tts_short">Keis Text-to-Speech-Modul gfunde, überprüef d App-Iistellige</string>
</resources>

View File

@@ -3,10 +3,10 @@
<string name="back">Nazad</string>
<string name="download_has_failed">Preuzimanje neuspješno. Dotaknite za ponovni pokušaj.</string>
<string name="cancel">Odustani</string>
<string name="delete">Obriši</string>
<string name="delete">Izbriši</string>
<string name="kilometres">Kilometara</string>
<string name="downloading">Preuzimanje…</string>
<string name="download_maps">Preuzmi Karte</string>
<string name="download_maps">Skini karte</string>
<string name="miles">Milje</string>
<string name="later">Kasnije</string>
<string name="search">Traži</string>
@@ -103,7 +103,6 @@
<string name="privacy">Privatnost</string>
<string name="power_managment_setting_never">Nikada</string>
<string name="editor_reset_edits_button">Odbaci</string>
<string name="today">Danas</string>
<string name="password">Lozinka</string>
<string name="details">Detalji</string>
<string name="privacy_policy">Politika privatnosti</string>

View File

@@ -9,7 +9,7 @@
<string name="delete">Törlés</string>
<string name="download_maps">Térképek letöltése</string>
<!-- Settings/Downloader - info for country when download fails -->
<string name="download_has_failed">Nem sikerült letölteni. Próbálja meg újra.</string>
<string name="download_has_failed">Nem sikerült letölteni, próbálja újra</string>
<!-- Settings/Downloader - info for country which started downloading -->
<string name="downloading">Letöltés…</string>
<!-- Choose measurement on first launch alert - choose metric system button -->
@@ -23,11 +23,11 @@
<!-- Search box placeholder text; Used when searching on the map itself, not when searching for a map -->
<string name="search_map">Keresés a térképen</string>
<!-- Location services are disabled by user alert - message -->
<string name="location_is_disabled_long_text">Jelenleg az eszköz vagy alkalmazás helymeghatározási szolgáltatásai le vannak tiltva. Engedélyezze őket a Beállításokban.</string>
<string name="location_is_disabled_long_text">Jelenleg az eszköz vagy alkalmazás helymeghatározási szolgáltatásai le vannak tiltva. Engedélyezze őket a beállításokban.</string>
<!-- A dialog title, that warns a user that Precise Location is disabled and suggests to turn it on -->
<string name="limited_accuracy">Korlátozott pontosság</string>
<!-- A dialog text, that warns a user that Precise Location is disabled and suggests to turn it on -->
<string name="precise_location_is_disabled_long_text">A pontos navigáció érdekében engedélyezze a beállításokban a Pontos helymeghatározás opciót.</string>
<string name="precise_location_is_disabled_long_text">A pontos navigáció érdekében meg kell adni a beállításokban a pontos helymeghatározási engedélyt</string>
<!-- View and button titles for accessibility -->
<string name="zoom_to_country">Megjelenítés a térképen</string>
<!-- Message to display at the center of the screen when the country download has failed -->
@@ -70,7 +70,7 @@
<!-- Should be used in the bookmarks-only context, see bookmarks_and_tracks if tracks are also implied. -->
<string name="bookmarks">Könyvjelzők</string>
<!-- "Bookmarks and Tracks" dialog title, also sync it with iphone/plist.txt -->
<string name="bookmarks_and_tracks">Könyvjelzők és nyomvonalak</string>
<string name="bookmarks_and_tracks">Könyvjelzők és útvonalak</string>
<!-- Add bookmark dialog - bookmark name -->
<string name="name">Név</string>
<!-- Editor title above street and house number, duplicates [type.building.address] in types_strings.txt -->
@@ -82,7 +82,7 @@
<!-- Header of settings activity where user defines storage path -->
<string name="maps_storage">Térképek mentési helye</string>
<!-- Detailed description of Maps Storage settings button -->
<string name="maps_storage_summary">Válassza ki a mappát a térképek letöltéséhez.</string>
<string name="maps_storage_summary">A térképek letöltéséhez válassza ki a mappát</string>
<!-- E.g. "Downloaded maps: 500Mb" in Maps Storage settings -->
<string name="maps_storage_downloaded">Letöltött térképek</string>
<!-- Free space out of total storage size in Maps Storage settings, e.g. "300 MB free of 2 GB" -->
@@ -162,9 +162,9 @@
<!-- Warning message when doing search around current position -->
<string name="unknown_current_position">Az Ön tartózkodási helye még nincs meghatározva</string>
<!-- Alert message that we can't run Map Storage settings due to some reasons. -->
<string name="cant_change_this_setting">A térképek tárolása jelenleg ki van kapcsolva.</string>
<string name="cant_change_this_setting">Sajnos a térképtárolás beállítása jelenleg le van tiltva</string>
<!-- Alert message that downloading is in progress. -->
<string name="downloading_is_active">A térkép letöltése folyamatban van.</string>
<string name="downloading_is_active">A térkép letöltése folyamatban van</string>
<!-- Share my position using SMS, %1$@ contains om:// and %2$@ https://comaps.app link WITHOUT NAME. @NOTE non-ascii symbols in the link will result in max 70 characters SMS instead of 140. -->
<string name="my_position_share_sms">Tekintse meg a helyzetemet az CoMaps alkalmazásban! %1$s vagy %2$s. Nincs offline térképe? Töltse le innen: https://www.comaps.app/download/</string>
<!-- Subject for emailed bookmark -->
@@ -172,7 +172,7 @@
<!-- Subject for emailed position -->
<string name="my_position_share_email_subject">Tekintse meg a helyzetemet az CoMaps alkalmazásban!</string>
<!-- Share my position using EMail, %1$@ is om:// and %2$@ is https://comaps.app link WITHOUT NAME -->
<string name="my_position_share_email">Üdvözlöm!\n\nJelenleg itt tartózkodom: %1$s. Kattintson a következő hivatkozásra: %2$s, vagy ide: %3$s, hogy megtekintse a helyzetemet a térképen.\n\nKöszönöm!</string>
<string name="my_position_share_email">Üdvözlöm.\n\nJelenleg itt vagyok: %1$s. Kattintson erre a hivatkozásra %2$s, vagy erre %3$s, hogy megtekintse a helyet a térképen.\n\nKöszönöm.</string>
<!-- Share button text which opens menu with more buttons, like Message, EMail, Facebook etc. -->
<string name="share">Megosztás</string>
<!-- Share by email button text, also used in editor and About. -->
@@ -220,7 +220,7 @@
<!-- Settings «Route» category: «Test Voice Directions» title -->
<string name="pref_tts_test_voice_title">Hangutasítások tesztelése</string>
<!-- Settings «Route» category: Pop-up message when clicking «Test Voice Directions» -->
<string name="pref_tts_playing_test_voice">Ellenőrizze a hangerőt vagy a rendszer TTS-beállításait, ha most nem hallja a hangot.</string>
<string name="pref_tts_playing_test_voice">Ellenőrizze a hangerőt vagy a rendszer TTS-beállításait, ha most nem hallja a hangot</string>
<!-- Settings «Route» category: «Tts unavailable» subtitle -->
<string name="pref_tts_unavailable">Nem érhető el</string>
<string name="pref_map_auto_zoom">Automatikus nagyítás</string>
@@ -237,11 +237,11 @@
<!-- Text in menu -->
<string name="help">Súgó</string>
<!-- Button in the main Help dialog -->
<string name="faq">GYIK</string>
<string name="faq">Gyakran ismételt kérdések</string>
<!-- Button in the main menu -->
<string name="donate">Adományozás</string>
<!-- Button in the main Help dialog -->
<string name="how_to_support_us">A projekt támogatása</string>
<string name="how_to_support_us">Önkéntes munka és a CoMaps fejlesztése</string>
<!-- Button in the main Help dialog -->
<string name="copyright">Szerzői jogok</string>
<!-- Text in menu + Button in the main Help dialog -->
@@ -259,14 +259,14 @@
<!-- Downloaded maps list header -->
<string name="downloader_downloaded_subtitle">Letöltve</string>
<!-- Country queued for download -->
<string name="downloader_queued">Sorbaállítva</string>
<string name="downloader_queued">Várólistához adva</string>
<string name="downloader_near_me_subtitle">A közelben</string>
<!-- In maps downloader and country place page shows how many maps are downloaded / to download, e.g. "Maps: 3 of 10" -->
<string name="downloader_status_maps">Térképek</string>
<string name="downloader_download_all_button">Összes letöltése</string>
<string name="downloader_downloading">Letöltés:</string>
<!-- Displayed in a dialog that appears when a user tries to delete a map while the app is in the follow route mode -->
<string name="downloader_delete_map_while_routing_dialog">Állítsa le a navigációt a térkép törléséhez.</string>
<string name="downloader_delete_map_while_routing_dialog">A térkép törléséhez állítsa le a navigációt</string>
<!-- PointsInDifferentMWM -->
<string name="routing_failed_cross_mwm_building">Útvonalakat csak akkor lehet készíteni, ha teljesen rajta vannak egy térképen.</string>
<!-- Context menu item for downloader. -->
@@ -278,9 +278,9 @@
<!-- Item in context menu. -->
<string name="downloader_update_map">Térkép frissítése</string>
<!-- Preference title -->
<string name="google_play_services">Google Play helymeghatározási szolgáltatások</string>
<string name="google_play_services">Google helymeghatározási szolgáltatás</string>
<!-- Preference text -->
<string name="pref_use_google_play">Bluetooth, Wi-Fi vagy mobilhálózat segítségével gyorsan meghatározhatja hozzávetőleges tartózkodási helyét</string>
<string name="pref_use_google_play">A Google szolgáltatása, amely a GPS, a Wi-Fi, a mobilhálózatok stb. kombinálásával határozza meg az Ön tartózkodási helyét. Ez csatlakozik a Google szervereihez, és adatokat gyűjt Önről.</string>
<!-- Preference title -->
<!-- Preference description -->
<!-- Text for routing error dialog -->
@@ -338,18 +338,18 @@
<string name="dialog_routing_location_turn_on">Engedélyezze a helymeghatározási szolgáltatásokat</string>
<string name="dialog_routing_location_unknown_turn_on">A jelenlegi GPS-koordináták nem találhatók. Engedélyezze a helymeghatározási szolgáltatásokat az útvonal kiszámításához.</string>
<string name="dialog_routing_unable_locate_route">Nem sikerült meghatározni az útvonalat</string>
<string name="dialog_routing_cant_build_route">Nem lehet létrehozni az útvonalat.</string>
<string name="dialog_routing_cant_build_route">Nem lehet létrehozni az útvonalat</string>
<string name="dialog_routing_change_start_or_end">Pontosítsa a kiindulópontot vagy a célállomást.</string>
<string name="dialog_routing_change_start">Pontosítsa a kiindulópontot</string>
<string name="dialog_routing_start_not_determined">Az útvonal nem lett létrehozva. Nem sikerült meghatározni a kiindulópontot.</string>
<string name="dialog_routing_select_closer_start">Válasszon egy, az úthoz közelebb eső kiindulópontot.</string>
<string name="dialog_routing_change_end">Pontosítsa célállomását</string>
<string name="dialog_routing_end_not_determined">Az útvonal nem lett létrehozva. Nem sikerült meghatározni a célállomást.</string>
<string name="dialog_routing_select_closer_end">Válasszon egy, az úthoz közelebb eső célállomást.</string>
<string name="dialog_routing_change_intermediate">Nem sikerült meghatározni a köztes helyet.</string>
<string name="dialog_routing_intermediate_not_determined">Módosítsa a köztes helyet.</string>
<string name="dialog_routing_select_closer_end">Válasszon egy, az úthoz közelebb eső célállomást</string>
<string name="dialog_routing_change_intermediate">Nem sikerült meghatározni a köztes helyet</string>
<string name="dialog_routing_intermediate_not_determined">Kérem, állítsa be a köztes helyet</string>
<string name="dialog_routing_system_error">Rendszerhiba</string>
<string name="dialog_routing_application_error">Nem lehet létrehozni az útvonalat egy alkalmazáshiba miatt.</string>
<string name="dialog_routing_application_error">Az alkalmazás hibája miatt nem lehet létrehozni az útvonalat</string>
<string name="dialog_routing_try_again">Próbálja meg újra</string>
<string name="not_now">Most nem</string>
<string name="dialog_routing_download_and_build_cross_route">Szeretné letölteni a térképet, és egynél több térképen átívelő, optimálisabb útvonalat létrehozni?</string>
@@ -363,17 +363,17 @@
<string name="hide">Elrejtés</string>
<string name="categories">Kategóriák</string>
<string name="history">Előzmények</string>
<string name="search_not_found">Nincs eredmény.</string>
<string name="search_not_found">Hoppá, nincs találat</string>
<!-- The message when user did not find anything in the search. -->
<string name="search_not_found_query">Töltse le a keresett régiót, vagy próbálja meg hozzáadni egy közeli város vagy település nevét.</string>
<string name="search_not_found_query">Töltse le a keresett régiót, vagy próbálja meg egy közeli város vagy település nevét hozzáadni.</string>
<string name="search_history_title">Keresési előzmények</string>
<string name="search_history_text">Legutóbbi keresések megtekintése.</string>
<string name="search_history_text">Legutóbbi keresések megtekintése</string>
<string name="clear_search">A keresési előzmények törlése</string>
<string name="p2p_your_location">Saját tartózkodási hely</string>
<string name="p2p_start">Indítás</string>
<string name="p2p_from_here">Kiindulópont</string>
<string name="p2p_to_here">Célpont</string>
<string name="p2p_only_from_current">A navigáció csak a jelenlegi tartózkodási helyétől érhető el.</string>
<string name="p2p_only_from_current">Navigáció csak a jelenlegi tartózkodási helyétől indítható</string>
<string name="p2p_reroute_from_current">Szeretne útvonalat tervezni a jelenlegi tartózkodási helyétől?</string>
<!-- Edit open hours/set time and minutes dialog -->
<string name="next_button">Következő</string>
@@ -408,7 +408,6 @@
<string name="twentyfour_seven">24/7</string>
<string name="day_off_today">Ma zárva</string>
<string name="day_off">Zárva</string>
<string name="today">Ma</string>
<string name="closed">Zárva</string>
<string name="edit_opening_hours">Nyitvatartás szerkesztése</string>
<string name="no_osm_account">Nem rendelkezik még felhasználói fiókkal az OpenStreetMapen?</string>
@@ -437,14 +436,14 @@
<!-- login text field -->
<string name="email_or_username">E-mail-cím vagy felhasználónév</string>
<string name="level">Szint</string>
<string name="downloader_delete_map_dialog">Az összes térképszerkesztés törlődik a térképpel együtt.</string>
<string name="downloader_delete_map_dialog">A térképpel együtt az Ön összes térképszerkesztése törlődik</string>
<string name="downloader_update_maps">Térképek frissítése</string>
<string name="downloader_mwm_migration_dialog">Az útvonal létrehozásához frissítenie kell az összes térképet, majd újra meg kell terveznie az útvonalat.</string>
<string name="downloader_search_field_hint">Térkép keresése</string>
<string name="common_check_internet_connection_dialog">Győződjön meg arról, hogy az eszköz csatlakozik az internethez.</string>
<string name="common_check_internet_connection_dialog">Győződjön meg arról, hogy az Ön készüléke csatlakozik az internethez</string>
<string name="downloader_no_space_title">Nincs elegendő tárhely</string>
<string name="downloader_no_space_message">Törölje a felesleges adatokat</string>
<string name="editor_login_error_dialog">Bejelentkezési hiba.</string>
<string name="editor_login_error_dialog">Bejelentkezési hiba</string>
<string name="editor_profile_changes">Jóváhagyott módosítások</string>
<string name="editor_focus_map_on_location">Húzza a térképet, hogy a keresztet a hely vagy üzlet helyére helyezze.</string>
<string name="editor_edit_place_title">Szerkesztés</string>
@@ -460,12 +459,12 @@
<!-- Text in About and OSM Login screens. First %@ is replaced by a local, human readable date. -->
<string name="osm_presentation">A közösségi OpenStreetMap adatok frissítésének időpontja: %s. Tudjon meg többet a térkép szerkesztéséről és frissítéséről az OpenStreetMap.org oldalon</string>
<!-- OSM explanation on Android login screen -->
<string name="login_osm_presentation">Az OpenStreetMap.org (OSM) egy közösségi projekt, amelynek célja egy ingyenes és nyílt térkép létrehozása. Ez az CoMaps alkalmazás térképadatainak fő forrása, és a Wikipédiához hasonlóan működik. Helyeket adhat hozzá vagy szerkeszthet, és azok világszerte felhasználók milliói számára válnak elérhetővé. \nCsatlakozzon a közösséghez, és segítsen egy jobb térképet készíteni mindenki számára!</string>
<string name="login_to_make_edits_visible">Hozzon létre egy fiókot az OpenStreetMapen, vagy jelentkezzen be, hogy közzétehesse térképszerkesztéseit a világ számára.</string>
<string name="login_osm_presentation">Az OpenStreetMap.org (OSM) egy közösségi projekt, amelynek célja egy ingyenes és nyílt térkép létrehozása. Ez az CoMaps alkalmazás térképadatainak fő forrása, és a Wikipédiához hasonlóan működik. Helyeket adhat hozzá vagy szerkeszthet, és azok világszerte felhasználók milliói számára válnak elérhetővé. \nCsatlakozzon a közösséghez, és segítsen jobb térképet készíteni mindenki számára!</string>
<string name="login_to_make_edits_visible">Hozzon létre egy OpenStreetMap-fiókot, vagy jelentkezzen be, hogy a világ számára közzétehesse az Ön térképszerkesztéseit</string>
<!-- Downloaded 10 **of** 20 <- it is that "of" -->
<string name="downloader_of">%1$d / %2$d</string>
<string name="download_over_mobile_header">Biztosan letölti mobilhálózati kapcsolaton keresztül?</string>
<string name="download_over_mobile_message">Ez egyes díjcsomagok vagy roaming esetén jelentős költségekkel járhat.</string>
<string name="download_over_mobile_message">Ez egyes díjcsomagok vagy roaming esetén jelentős költségekkel járhat</string>
<string name="error_enter_correct_house_number">Adjon meg egy érvényes házszámot</string>
<!-- Error message in Editor when a user tries to set the number of floors for a building higher than %d floors -->
<string name="error_enter_correct_storey_number">Ez az épület legfeljebb %d emeletes lehet</string>
@@ -474,7 +473,7 @@
<!-- Title for OSM note section in the editor -->
<string name="editor_other_info">Megjegyzés az OpenStreetMap önkénteseinek (nem kötelező)</string>
<!-- Hint of the input field in the OSM note section of the editor -->
<string name="editor_note_hint">Írja le a térképen található hibákat vagy olyan dolgokat, amelyeket nem lehet az CoMaps segítségével szerkeszteni</string>
<string name="editor_note_hint">Írja le a térképen található hibákat vagy olyan dolgokat, amelyeket nem lehet a CoMaps segítségével szerkeszteni</string>
<!-- Information about OSM at the top of the editing page -->
<string name="editor_about_osm">A szerkesztései feltöltődnek a nyilvános <a href="https://wiki.openstreetmap.org/wiki/Hu:Névjegy">OpenStreetMap</a> adatbázisba. Ne adjon hozzá személyes vagy szerzői jogvédelem alatt álló információkat.</string>
<string name="editor_more_about_osm">További részletek az OpenStreetMap adatbázisról</string>
@@ -486,7 +485,7 @@
<string name="editor_category_unsuitable_title">Nem találja a megfelelő kategóriát?</string>
<string name="editor_category_unsuitable_text">Az CoMaps csak egyszerű pontkategóriák hozzáadását teszi lehetővé, azaz nem tartalmaz városokat, utakat, tavakat, épületek körvonalait stb., az ilyen kategóriákat közvetlenül az <a href="https://www.openstreetmap.org">OpenStreetMap.org</a> oldalon adhatja hozzá. A részletes, lépésről lépésre történő útmutatásért tekintse meg az <a href="https://www.comaps.app/support/advanced-map-editing/">útmutatónkat</a>.</string>
<string name="downloader_no_downloaded_maps_title">Még nem töltött le térképet</string>
<string name="downloader_no_downloaded_maps_message">Térkép letöltése offline kereséshez és navigáláshoz.</string>
<string name="downloader_no_downloaded_maps_message">Térképek letöltése internetkapcsolat nélküli kereséshez és navigáláshoz</string>
<!-- abbreviation for kilometers per hour -->
<string name="kilometers_per_hour">km/h</string>
<string name="miles_per_hour">mf/h</string>
@@ -510,8 +509,8 @@
<!-- Displayed when saving some edits to the map to warn against publishing personal data -->
<string name="editor_share_to_all_dialog_title">Szeretné elküldeni az összes felhasználónak?</string>
<!-- Dialog before publishing the modifications to the public map. -->
<string name="editor_share_to_all_dialog_message_1">Győződjön meg arról, hogy nem ad meg semmilyen személyes információt.</string>
<string name="editor_share_to_all_dialog_message_2">Az OpenStreetMap szerkesztői ellenőrzik a változásokat, és felveszik Önnel a kapcsolatot, ha kérdéseik vannak.</string>
<string name="editor_share_to_all_dialog_message_1">Győződjön meg arról, hogy nem ad meg semmilyen magánjellegű vagy személyes adatokat</string>
<string name="editor_share_to_all_dialog_message_2">Az OpenStreetMap szerkesztői ellenőrzik a változásokat, és felveszik Önnel a kapcsolatot, ha bármilyen kérdésük van</string>
<string name="navigation_stop_button">Megállítás</string>
<!-- Shown as toast when starting the recent track recording -->
<string name="track_recording">Nyomvonal rögzítése</string>
@@ -525,10 +524,10 @@
<string name="mobile_data_option_not_today">Ma ne használja</string>
<string name="mobile_data">Mobilinternet</string>
<!-- NOTE to translators: please synchronize your translation with the English one. -->
<string name="mobile_data_description">Mobilinternet szükséges a térképfrissítési értesítésekhez, valamint a helyszínekre és könyvjelzőkre vonatkozó részletes információk megjelenítéséhez.</string>
<string name="mobile_data_description">A térképfrissítési értesítésekhez és a szerkesztések feltöltéséhez mobilinternetre van szükség</string>
<string name="mobile_data_option_never">Soha ne használja</string>
<string name="mobile_data_option_ask">Mindig kérdezzen rá</string>
<string name="traffic_update_maps_text">Forgalmi adatok megjelenítéséhez frissíteni kell a térképeket.</string>
<string name="traffic_update_maps_text">A forgalmi adatok megjelenítéséhez frissíteni kell a térképeket</string>
<string name="big_font">Betűméret növelése a térképen</string>
<string name="traffic_update_app">Frissítse az CoMaps alkalmazást</string>
<!-- "traffic" as in "road congestion" -->
@@ -538,7 +537,7 @@
<string name="feedback_general">Általános visszajelzés</string>
<string name="prefs_languages_information">Az CoMaps TTS-rendszert használ a hangnavigációhoz. Sok androidos eszköz használja a Google TTS-t; töltse le vagy frissítse a Google Play áruházból (https://play.google.com/store/apps/details?id=com.google.android.tts)</string>
<string name="prefs_languages_information_off">Egyes nyelveknél másik beszédszintetizátort vagy további nyelvi csomagot kell telepítenie az alkalmazás-áruházból (Google Play, Galaxy Store, App Gallery, FDroid). \nNyissa meg az eszköz beállításait → Nyelv és bevitel → Beszéd → Szöveg-beszéd átalakító kimenet. \nItt kezelheti a beszédszintézis beállításokat (például: nyelvi csomag letöltése a kapcsolat nélküli használathoz) és másik szövegfelolvasót jelölhet ki.</string>
<string name="prefs_languages_information_off_link">További tájékoztatást találhat még ebben az útmutatóban.</string>
<string name="prefs_languages_information_off_link">Ebben az útmutatóban további tájékoztatást talál</string>
<string name="transliteration_title">Átírás latin betűkre</string>
<string name="learn_more">Tudjon meg többet</string>
<!-- User selected the destination by pressing Route To, but the current position is unknown. User needs to select a starting point of a route using search or by tapping on the map and then pressing "Route From". -->
@@ -563,7 +562,7 @@
</plurals>
<string name="bookmarks_create_new_group">Új lista létrehozása</string>
<!-- Bookmark categories screen, button that opens folder selection dialog to import KML/KMZ/GPX/KMB files -->
<string name="bookmarks_import">Könyvjelzők és nyomvonalak importálása</string>
<string name="bookmarks_import">Könyvjelzők és útvonalak importálása</string>
<string name="bookmarks_error_message_share_general">Nem lehet megosztani egy alkalmazáshiba miatt</string>
<string name="bookmarks_error_title_share_empty">Megosztási hiba</string>
<string name="bookmarks_error_message_share_empty">Üres lista nem osztható meg</string>
@@ -581,8 +580,8 @@
</plurals>
<string name="restore">Visszaállítás</string>
<plurals name="tracks">
<item quantity="one">%d nyomvonal</item>
<item quantity="other">%d nyomvonal</item>
<item quantity="one">%d útvonal</item>
<item quantity="other">%d útvonal</item>
</plurals>
<!-- Settings privacy group in settings screen -->
<string name="privacy">Adatvédelem</string>
@@ -608,11 +607,11 @@
<!-- Speed camera settings menu option - Never warn (about speedcams) -->
<string name="pref_tts_speedcams_never">Soha ne figyelmeztessen</string>
<string name="power_managment_title">Energiatakarékos mód</string>
<string name="power_managment_description">Próbálja meg csökkenteni az energiafelhasználást bizonyos funkciók rovására.</string>
<string name="power_managment_description">Megpróbálja csökkenteni az energiafelhasználást bizonyos funkciók rovására</string>
<string name="power_managment_setting_never">Soha</string>
<string name="power_managment_setting_auto">Amikor az akkumulátor lemerül</string>
<string name="power_managment_setting_manual_max">Mindig</string>
<string name="enable_logging_warning_message">Ha ideiglenesen engedélyezi ezt az opciót, akkor a „Súgó” párbeszédpanel „Hibajelentés” menüpontjának használatával rögzítheti és kézzel küldheti el nekünk a problémával kapcsolatos részletes diagnosztikai naplókat. A naplók tartalmazhatnak helyadatokat.</string>
<string name="enable_logging_warning_message">Ha ideiglenesen engedélyezi ezt a lehetőséget, akkor rögzítheti, és a „A CoMaps névjegye” képernyőn a „HIBA JELENTÉSE” gombra katintva elküldheti nekünk a hibával, problémával kapcsolatos részletes diagnosztikai naplókat. A naplók tartalmazhatnak helyadatokat.</string>
<string name="driving_options_title">Útvonaltervezési beállítások</string>
<!-- Recommended length for CarPlay and Android Auto is around 25-27 characters -->
<string name="avoid_tolls">Díjköteles utak elkerülése</string>
@@ -754,7 +753,7 @@
<string name="browser_not_available">A webböngésző nem érhető el</string>
<string name="volume">Hangerő</string>
<!-- Bookmark categories screen, button that opens share dialog to export all bookmarks and tracks -->
<string name="bookmarks_export">Az összes könyvjelző és nyomvonal exportálása</string>
<string name="bookmarks_export">Az összes könyvjelző és útvonal exportálása</string>
<!-- button in (app) TTS settings, to open the system TTS settings. -->
<string name="pref_tts_open_system_settings">Beszédszintézis-beállítások</string>
<!-- toast displayed when pressing the "Speech synthesis system settings" button, and the system settings aren't found. -->
@@ -786,9 +785,9 @@
<!-- Title for the "Stop Without Saving" action for the alert when saving a track recording. -->
<string name="continue_recording">Rögzítés folytatása</string>
<!-- Title for the alert when saving a track recording. -->
<string name="track_recording_alert_title">Elmenti a könyvjelzők és nyomvonalakba?</string>
<string name="track_recording_alert_title">Elmenti a könyvjelzők és útvonalak közé?</string>
<!-- Message for the toast when saving the track recording is finished but nothing to save. -->
<string name="track_recording_toast_nothing_to_save">A nyomvonal üres nincs mit menteni</string>
<string name="track_recording_toast_nothing_to_save">Az útvonal üres nincs mit menteni</string>
<!-- Error message when there are no File Manager apps installed to select a folder when importing Bookmarks and Tracks -->
<string name="error_no_file_manager_app">Nem lehet megjeleníteni a mappaválasztó párbeszédpanelt, mert nincs megfelelő alkalmazás telepítve az eszközén. Telepítsen egy fájlkezelő alkalmazást, és próbálja meg újra.</string>
<string name="choose_color">Válasszon színt</string>
@@ -811,7 +810,7 @@
<string name="facebook">Facebook</string>
<string name="closes_in">Bezár %s múlva</string>
<string name="opens_in">Kinyit %s múlva</string>
<string name="current_location_unknown_error_title">A jelenlegi helyzet ismeretlen.</string>
<string name="current_location_unknown_error_title">A jelenlegi helyzet ismeretlen</string>
<string name="disk_error">Nem lehet mappát létrehozni és fájlokat áthelyezni az eszköz belső memóriájában vagy az SD-kártyán</string>
<string name="disk_error_title">Lemezhiba</string>
<string name="twitter">X (Twitter)</string>
@@ -837,4 +836,49 @@
<string name="saved">Mentett</string>
<string name="about_headline">Közösség által működtetett nyílt projekt</string>
<string name="bluesky">Bluesky</string>
<string name="closed_now">Most zárva van</string>
<string name="existence_confirmed_time_ago">A létezése ellenőrizve és megerősítve %s</string>
<string name="hours_confirmed_time_ago">Ellenőrizve és megerősítve %s</string>
<string name="editor_level">Emelet (0 a földszint)</string>
<string name="error_enter_correct_level">Adja meg az emeletek számát</string>
<string name="editor_building_levels">Emeletek (beleértve a földszintet, kivéve a tetőt)</string>
<string name="error_enter_correct_fediverse_page">Adjon meg egy érvényes Mastodon felhasználónevet vagy webcímet</string>
<string name="osm_note_hint">Vagy írjon egy feljegyzést az OpenStreetMap közösségnek, hogy valaki más hozzáadhassa vagy kijavíthassa itt a helyet.</string>
<string name="error_enter_correct_bluesky_page">Adjon meg egy érvényes Bluesky felhasználónevet vagy webcímet</string>
<string name="osm_note_toast">A feljegyzés elküldésre kerül az OpenStreetMap közösséghez</string>
<string name="pref_left_button_disable">Letiltás</string>
<string name="codeberg">Codeberg</string>
<string name="pref_backup_now_summary_progress">A biztonsági mentés folyamatban van…</string>
<string name="pref_backup_now_summary">Készítsen biztonsági mentést most</string>
<string name="pref_backup_now_summary_ok">A biztonsági mentés sikeresen befejeződött</string>
<string name="pref_backup_now_summary_empty_lists">Nincsenek könyvjelzők és útvonalak a biztonsági mentéshez</string>
<string name="pref_backup_now_title">Biztonsági mentés most</string>
<string name="pref_backup_location_summary_initial">Válasszon ki egy mappát és adja meg az írási/olvasási engedélyt</string>
<string name="pref_left_button_title">A bal oldali gomb beállítása</string>
<string name="pref_backup_title">Könyvjelzők és útvonalak mentése</string>
<string name="pref_backup_summary">Automatikus biztonsági mentés az eszközön lévő mappába</string>
<string name="pref_backup_now_summary_folder_unavailable">A biztonsági mentés mappája nem elérhető</string>
<string name="pref_backup_status_summary_success">Az utolsó sikeres biztonsági mentés</string>
<string name="pref_backup_location_title">A biztonsági mentés mappája</string>
<string name="pref_backup_history_title">A megőrzendő biztonsági mentések száma</string>
<string name="backup_interval_every_week">Hetente</string>
<string name="pref_backup_interval_title">Automatikus biztonsági mentés</string>
<string name="backup_interval_every_day">Naponta</string>
<string name="pref_backup_now_summary_failed">Nem sikerült a biztonsági mentés</string>
<string name="backup_interval_manual_only">Ki (csak kézileg)</string>
<string name="dialog_report_error_missing_folder">A biztonsági mentés kiválasztott mappája nem érhető el, vagy nem írható. Válasszon másik mappát.</string>
<string name="at">ekkor: %s</string>
<string name="open_now">Most nyitva van</string>
<string name="delete_track_dialog_title">%s törlése?</string>
<string name="clear">Törlés</string>
<string name="route_type">Az útvonal típusa</string>
<string name="vehicle">Gépjármű</string>
<string name="pedestrian">Gyalogos</string>
<string name="bicycle">Kerékpár</string>
<string name="ruler">Vonalzó</string>
<string name="bookmark_color">A könyvjelző színe</string>
<string name="about_help">Névjegy és segítség</string>
<string name="share_track">Útvonal megosztása</string>
<string name="pref_tts_no_system_tts_short">Nem található szövegfelovasási szolgáltatás (TTS), ellenőrizze az alkalmazás beállításait a „Hangutasítások” müpontban</string>
<string name="dialog_report_error_with_logs">Kérjük, küldjön hibajelentést:\n - „Naplózás engedélyezése” a beállításokban\n - reprodukálja a hibát, problémát\n - „A CoMaps névjegye” képernyőn nyomja meg a „HIBA JELENTÉSE” gombot, és küldje el e-mailben vagy chaten keresztül.\n - naplózás kikapcsolása</string>
</resources>

Some files were not shown because too many files have changed in this diff Show More