Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
708f4434f5 | ||
|
|
875ac92a48 | ||
|
|
afecfc0224 |
No files matched your search
@@ -1,7 +1,7 @@
|
||||
# wadamesh language file
|
||||
# canonical source - translators: edit this file and PR it
|
||||
# code: bg
|
||||
# ver: 19
|
||||
# ver: 20
|
||||
# name: Български
|
||||
# base: bg
|
||||
(device behind) (устройството изостава)
|
||||
@@ -184,6 +184,7 @@ Contact added Контактът е добавен
|
||||
Contact deleted Контактът е изтрит
|
||||
Contact gone Контактът изчезна
|
||||
Contact missing Контактът липсва
|
||||
Contact shared Контактът е споделен
|
||||
Contacts Контакти
|
||||
Contacts are on internal flash - the SD card did not mount at boot. Re-seat the card and reboot. Контактите са във вътрешната памет - SD картата не се монтира при старт. Постави картата отново и рестартирай.
|
||||
Contacts are on internal flash. Контактите са във вътрешната памет.
|
||||
@@ -778,6 +779,8 @@ Settings Настройки
|
||||
Setup complete Настройката е готова
|
||||
Share QR Сподели QR
|
||||
Share channel Сподели канала
|
||||
Share contact Сподели контакт
|
||||
Share failed Споделянето неуспешно
|
||||
Share location in advert Споделяй местоположението в advert
|
||||
Share secret Сподели ключа
|
||||
Share the 32-char secret so others can join. Leave the secret empty to generate a random one. Споделете 32-символната тайна, за да се присъединят други. Празно = случайна.
|
||||
@@ -1103,3 +1106,6 @@ Glance shows message previews\nwhile the screen is locked Glance shows message p
|
||||
Snake — swipe, roll, or press a direction Snake — swipe, roll, or press a direction
|
||||
N/A N/A
|
||||
This board cannot run this app. This board cannot run this app.
|
||||
Signal Signal
|
||||
Signal (stale) Signal (stale)
|
||||
nothing heard yet nothing heard yet
|
||||
@@ -1,7 +1,7 @@
|
||||
# wadamesh language file
|
||||
# canonical source - translators: edit this file and PR it
|
||||
# code: de
|
||||
# ver: 19
|
||||
# ver: 20
|
||||
# name: Deutsch
|
||||
# base: de
|
||||
(device behind) (Gerät geht nach)
|
||||
@@ -184,6 +184,7 @@ Contact added Kontakt hinzugefügt
|
||||
Contact deleted Kontakt gelöscht
|
||||
Contact gone Kontakt weg
|
||||
Contact missing Kontakt fehlt
|
||||
Contact shared Kontakt geteilt
|
||||
Contacts Kontakte
|
||||
Contacts are on internal flash - the SD card did not mount at boot. Re-seat the card and reboot. Kontakte liegen im internen Flash - die SD-Karte wurde beim Start nicht eingebunden. Karte neu einsetzen und neu starten.
|
||||
Contacts are on internal flash. Kontakte liegen im internen Flash.
|
||||
@@ -777,6 +778,8 @@ Settings Einstellungen
|
||||
Setup complete Einrichtung abgeschlossen
|
||||
Share QR QR teilen
|
||||
Share channel Kanal teilen
|
||||
Share contact Kontakt teilen
|
||||
Share failed Teilen fehlgeschlagen
|
||||
Share location in advert Standort im Advert teilen
|
||||
Share secret Geheimnis teilen
|
||||
Share the 32-char secret so others can join. Leave the secret empty to generate a random one. Teilen Sie das 32-Zeichen-Geheimnis, damit andere beitreten. Leer lassen für ein zufälliges.
|
||||
@@ -1099,3 +1102,6 @@ Glance shows message previews\nwhile the screen is locked Glance shows message p
|
||||
Snake — swipe, roll, or press a direction Snake — swipe, roll, or press a direction
|
||||
N/A N/A
|
||||
This board cannot run this app. This board cannot run this app.
|
||||
Signal Signal
|
||||
Signal (stale) Signal (stale)
|
||||
nothing heard yet nothing heard yet
|
||||
@@ -1,7 +1,7 @@
|
||||
# wadamesh language file
|
||||
# canonical source - translators: edit this file and PR it
|
||||
# code: el
|
||||
# ver: 19
|
||||
# ver: 20
|
||||
# name: Ελληνικά
|
||||
# base: el
|
||||
(device behind) (συσκευή πίσω)
|
||||
@@ -184,6 +184,7 @@ Contact added Η επαφή προστέθηκε
|
||||
Contact deleted Η επαφή διαγράφηκε
|
||||
Contact gone Η επαφή χάθηκε
|
||||
Contact missing Η επαφή λείπει
|
||||
Contact shared Η επαφή κοινοποιήθηκε
|
||||
Contacts Επαφές
|
||||
Contacts are on internal flash - the SD card did not mount at boot. Re-seat the card and reboot. Οι επαφές είναι στην εσωτερική μνήμη - η κάρτα SD δεν προσαρτήθηκε στην εκκίνηση. Επανατοποθετήστε την και επανεκκινήστε.
|
||||
Contacts are on internal flash. Οι επαφές είναι στην εσωτερική μνήμη.
|
||||
@@ -778,6 +779,8 @@ Settings Ρυθμίσεις
|
||||
Setup complete Η ρύθμιση ολοκληρώθηκε
|
||||
Share QR Κοινοποίηση QR
|
||||
Share channel Κοινή χρήση καναλιού
|
||||
Share contact Κοινοποίηση επαφής
|
||||
Share failed Αποτυχία κοινοποίησης
|
||||
Share location in advert Κοινή χρήση θέσης στο advert
|
||||
Share secret Κοινοποίηση μυστικού
|
||||
Share the 32-char secret so others can join. Leave the secret empty to generate a random one. Μοιραστείτε το μυστικό 32 χαρακτήρων για να συμμετάσχουν άλλοι. Κενό = τυχαίο.
|
||||
@@ -1103,3 +1106,6 @@ Glance shows message previews\nwhile the screen is locked Glance shows message p
|
||||
Snake — swipe, roll, or press a direction Snake — swipe, roll, or press a direction
|
||||
N/A N/A
|
||||
This board cannot run this app. This board cannot run this app.
|
||||
Signal Signal
|
||||
Signal (stale) Signal (stale)
|
||||
nothing heard yet nothing heard yet
|
||||
@@ -1,7 +1,7 @@
|
||||
# wadamesh language file
|
||||
# canonical source - translators: edit this file and PR it
|
||||
# code: es
|
||||
# ver: 19
|
||||
# ver: 20
|
||||
# name: Español
|
||||
# base: es
|
||||
(device behind) (dispositivo atrasado)
|
||||
@@ -184,6 +184,7 @@ Contact added Contacto añadido
|
||||
Contact deleted Contacto eliminado
|
||||
Contact gone Contacto perdido
|
||||
Contact missing Falta el contacto
|
||||
Contact shared Contacto compartido
|
||||
Contacts Contactos
|
||||
Contacts are on internal flash - the SD card did not mount at boot. Re-seat the card and reboot. Los contactos están en memoria interna - la tarjeta SD no se montó al arrancar. Reinserta la tarjeta y reinicia.
|
||||
Contacts are on internal flash. Los contactos están en la memoria interna.
|
||||
@@ -778,6 +779,8 @@ Settings Ajustes
|
||||
Setup complete Configuración completa
|
||||
Share QR Compartir QR
|
||||
Share channel Compartir canal
|
||||
Share contact Compartir contacto
|
||||
Share failed Error al compartir
|
||||
Share location in advert Compartir ubicación en anuncio
|
||||
Share secret Compartir secreto
|
||||
Share the 32-char secret so others can join. Leave the secret empty to generate a random one. Comparte el secreto de 32 caracteres para que otros se unan. Déjalo vacío para uno aleatorio.
|
||||
@@ -1103,3 +1106,6 @@ Glance shows message previews\nwhile the screen is locked Glance shows message p
|
||||
Snake — swipe, roll, or press a direction Snake — swipe, roll, or press a direction
|
||||
N/A N/A
|
||||
This board cannot run this app. This board cannot run this app.
|
||||
Signal Signal
|
||||
Signal (stale) Signal (stale)
|
||||
nothing heard yet nothing heard yet
|
||||
@@ -1,7 +1,7 @@
|
||||
# wadamesh language file
|
||||
# canonical source - translators: edit this file and PR it
|
||||
# code: fr
|
||||
# ver: 19
|
||||
# ver: 20
|
||||
# name: Français
|
||||
# base: fr
|
||||
(device behind) (appareil en retard)
|
||||
@@ -184,6 +184,7 @@ Contact added Contact ajouté
|
||||
Contact deleted Contact supprimé
|
||||
Contact gone Contact perdu
|
||||
Contact missing Contact manquant
|
||||
Contact shared Contact partagé
|
||||
Contacts Contacts
|
||||
Contacts are on internal flash - the SD card did not mount at boot. Re-seat the card and reboot. Les contacts sont en mémoire interne - la carte SD ne s'est pas montée au démarrage. Réinsérez la carte et redémarrez.
|
||||
Contacts are on internal flash. Les contacts sont sur la mémoire interne.
|
||||
@@ -777,6 +778,8 @@ Settings Paramètres
|
||||
Setup complete Configuration terminée
|
||||
Share QR Partager le QR
|
||||
Share channel Partager le canal
|
||||
Share contact Partager le contact
|
||||
Share failed Échec du partage
|
||||
Share location in advert Partager la position dans l'annonce
|
||||
Share secret Partager le secret
|
||||
Share the 32-char secret so others can join. Leave the secret empty to generate a random one. Partagez le secret de 32 caractères pour que d'autres rejoignent. Laissez vide pour un aléatoire.
|
||||
@@ -1102,3 +1105,6 @@ Glance shows message previews\nwhile the screen is locked Glance shows message p
|
||||
Snake — swipe, roll, or press a direction Snake — swipe, roll, or press a direction
|
||||
N/A N/A
|
||||
This board cannot run this app. This board cannot run this app.
|
||||
Signal Signal
|
||||
Signal (stale) Signal (stale)
|
||||
nothing heard yet nothing heard yet
|
||||
@@ -1,7 +1,7 @@
|
||||
# wadamesh language file
|
||||
# canonical source - translators: edit this file and PR it
|
||||
# code: hu
|
||||
# ver: 19
|
||||
# ver: 20
|
||||
# name: Magyar
|
||||
# base: hu
|
||||
(device behind) (készülék hátulján)
|
||||
@@ -186,6 +186,7 @@ Contact added Névjegy hozzáadva
|
||||
Contact deleted Névjegy törölve
|
||||
Contact gone Eltűnt névjegy
|
||||
Contact missing Hiányzó névjegy
|
||||
Contact shared Névjegy megosztva
|
||||
Contacts Névjegyek
|
||||
Contacts are on internal flash - the SD card did not mount at boot. Re-seat the card and reboot. A névjegyek a belső tárolón vannak - az SD-kártya nem csatolódott induláskor. Helyezd be újra a kártyát, és indítsd újra.
|
||||
Contacts are on internal flash. A névjegyek a belső tárolón vannak.
|
||||
@@ -400,7 +401,7 @@ Join a private channel Belépés priváthoz
|
||||
Join hashtag channel Csatlakozz # csatornához
|
||||
Join network Csatlakozás a hálózathoz
|
||||
Join private channel Csatlakozz privát csatornához
|
||||
Join the public channel Csatlakozás a nyilvános csatornához
|
||||
Join the public channel Belépés a nyilvánoshoz
|
||||
Joined %.40s Csatlakozott %.40s alatt
|
||||
Keep per chat (messages) Megőrzés csevegésenként (üzenet)
|
||||
Key already in use Kulcs már hozzárendelve
|
||||
@@ -471,7 +472,7 @@ Map — no tile pack on SPIFFS yet.\n\nUpload a tile pack to /tiles/<z>/<x>/<y>.
|
||||
Map — set your location\nin Settings → Profile to\nshow the map here. Térkép – a Beállítások → Profil menüpontban állítsd be a tartózkodási helyedet, hogy itt jelenjen meg a térkép.
|
||||
Mark all chats and channels as read? Az összes csevegést és csatornát megjelölöd olvasottként?
|
||||
Mark as read Olvasottnak jelöl
|
||||
Mark read Mark read
|
||||
Mark read Olvasott
|
||||
Marked read Olvasottként megjelölve
|
||||
Max hops (0..64) Max ugrások (0-64)
|
||||
Max zoom for this pack Maximális zoom ehhez a csomaghoz
|
||||
@@ -791,6 +792,8 @@ Settings Beállítások
|
||||
Setup complete Beállítás kész
|
||||
Share QR QR megosztása
|
||||
Share channel Csatorna megosztása
|
||||
Share contact Névjegy megosztása
|
||||
Share failed Megosztás sikertelen
|
||||
Share location in advert Helyszín megosztása a hirdetésben
|
||||
Share secret Titok megosztása
|
||||
Share the 32-char secret so others can join. Leave the secret empty to generate a random one. Oszd meg a 32 karakteres titkot, hogy mások is csatlakozhassanak. Hagyd üresen a titkot, hogy véletlenszerű titkos kódot generálj.
|
||||
@@ -1121,3 +1124,5 @@ Glance shows message previews\nwhile the screen is locked Glance shows message p
|
||||
Snake — swipe, roll, or press a direction Snake — swipe, roll, or press a direction
|
||||
N/A N/A
|
||||
This board cannot run this app. This board cannot run this app.
|
||||
Signal (stale) Jel (elavult)
|
||||
nothing heard yet Még semmi hír.
|
||||
@@ -1,7 +1,7 @@
|
||||
# wadamesh language file
|
||||
# canonical source - translators: edit this file and PR it
|
||||
# code: it
|
||||
# ver: 19
|
||||
# ver: 20
|
||||
# name: Italiano
|
||||
# base: it
|
||||
(device behind) (dispositivo indietro)
|
||||
@@ -184,6 +184,7 @@ Contact added Contatto aggiunto
|
||||
Contact deleted Contatto eliminato
|
||||
Contact gone Contatto perso
|
||||
Contact missing Contatto mancante
|
||||
Contact shared Contatto condiviso
|
||||
Contacts Contatti
|
||||
Contacts are on internal flash - the SD card did not mount at boot. Re-seat the card and reboot. I contatti sono sulla memoria interna - la scheda SD non si è montata all'avvio. Reinserisci la scheda e riavvia.
|
||||
Contacts are on internal flash. I contatti sono sulla memoria interna.
|
||||
@@ -777,6 +778,8 @@ Settings Impostazioni
|
||||
Setup complete Configurazione completata
|
||||
Share QR Condividi QR
|
||||
Share channel Condividi canale
|
||||
Share contact Condividi contatto
|
||||
Share failed Condivisione non riuscita
|
||||
Share location in advert Condividi posizione in advert
|
||||
Share secret Condividi segreto
|
||||
Share the 32-char secret so others can join. Leave the secret empty to generate a random one. Condividi il segreto di 32 caratteri per far unire altri. Lascia vuoto per uno casuale.
|
||||
@@ -1102,3 +1105,6 @@ Glance shows message previews\nwhile the screen is locked Glance shows message p
|
||||
Snake — swipe, roll, or press a direction Snake — swipe, roll, or press a direction
|
||||
N/A N/A
|
||||
This board cannot run this app. This board cannot run this app.
|
||||
Signal Signal
|
||||
Signal (stale) Signal (stale)
|
||||
nothing heard yet nothing heard yet
|
||||
@@ -1,7 +1,7 @@
|
||||
# wadamesh language file
|
||||
# canonical source - translators: edit this file and PR it
|
||||
# code: nl
|
||||
# ver: 19
|
||||
# ver: 20
|
||||
# name: Nederlands
|
||||
# base: nl
|
||||
(device behind) (apparaat loopt achter)
|
||||
@@ -184,6 +184,7 @@ Contact added Contact toegevoegd
|
||||
Contact deleted Contact verwijderd
|
||||
Contact gone Contact weg
|
||||
Contact missing Contact ontbreekt
|
||||
Contact shared Contact gedeeld
|
||||
Contacts Contacten
|
||||
Contacts are on internal flash - the SD card did not mount at boot. Re-seat the card and reboot. Contacten staan op intern flash - de SD-kaart is bij het opstarten niet gekoppeld. Plaats de kaart opnieuw en herstart.
|
||||
Contacts are on internal flash. Contacten staan op intern flashgeheugen.
|
||||
@@ -777,6 +778,8 @@ Settings Instellingen
|
||||
Setup complete Installatie voltooid
|
||||
Share QR QR delen
|
||||
Share channel Kanaal delen
|
||||
Share contact Contact delen
|
||||
Share failed Delen mislukt
|
||||
Share location in advert Locatie delen in advert
|
||||
Share secret Geheim delen
|
||||
Share the 32-char secret so others can join. Leave the secret empty to generate a random one. Deel het 32-teken geheim zodat anderen kunnen deelnemen. Leeg laten voor een willekeurig geheim.
|
||||
@@ -1100,3 +1103,6 @@ Glance shows message previews\nwhile the screen is locked Glance shows message p
|
||||
Snake — swipe, roll, or press a direction Snake — swipe, roll, or press a direction
|
||||
N/A N/A
|
||||
This board cannot run this app. This board cannot run this app.
|
||||
Signal Signal
|
||||
Signal (stale) Signal (stale)
|
||||
nothing heard yet nothing heard yet
|
||||
@@ -1,7 +1,7 @@
|
||||
# wadamesh language file
|
||||
# canonical source - translators: edit this file and PR it
|
||||
# code: pt-br
|
||||
# ver: 19
|
||||
# ver: 20
|
||||
# name: Português (BR)
|
||||
# base: pt-br
|
||||
(device behind) (dispositivo atrasado)
|
||||
@@ -184,6 +184,7 @@ Contact added Contato adicionado
|
||||
Contact deleted Contato excluído
|
||||
Contact gone Contato sumiu
|
||||
Contact missing Contato ausente
|
||||
Contact shared Contato compartilhado
|
||||
Contacts Contatos
|
||||
Contacts are on internal flash - the SD card did not mount at boot. Re-seat the card and reboot. Os contatos estão na memória interna - o cartão SD não montou na inicialização. Recoloque o cartão e reinicie.
|
||||
Contacts are on internal flash. Os contatos estão na memória interna.
|
||||
@@ -778,6 +779,8 @@ Settings Ajustes
|
||||
Setup complete Configuração concluída
|
||||
Share QR Compartilhar QR
|
||||
Share channel Compartilhar canal
|
||||
Share contact Compartilhar contato
|
||||
Share failed Falha ao compartilhar
|
||||
Share location in advert Compartilhar local no advert
|
||||
Share secret Compartilhar segredo
|
||||
Share the 32-char secret so others can join. Leave the secret empty to generate a random one. Compartilhe o segredo de 32 caracteres para outros entrarem. Deixe vazio para gerar um aleatório.
|
||||
@@ -1102,3 +1105,6 @@ Glance shows message previews\nwhile the screen is locked Glance shows message p
|
||||
Snake — swipe, roll, or press a direction Snake — swipe, roll, or press a direction
|
||||
N/A N/A
|
||||
This board cannot run this app. This board cannot run this app.
|
||||
Signal Signal
|
||||
Signal (stale) Signal (stale)
|
||||
nothing heard yet nothing heard yet
|
||||
@@ -1,7 +1,7 @@
|
||||
# wadamesh language file
|
||||
# canonical source - translators: edit this file and PR it
|
||||
# code: ro
|
||||
# ver: 19
|
||||
# ver: 20
|
||||
# name: Română
|
||||
# base: ro
|
||||
(device behind) (dispozitiv în urmă)
|
||||
@@ -184,6 +184,7 @@ Contact added Contact adăugat
|
||||
Contact deleted Contact şters
|
||||
Contact gone Contact dispărut
|
||||
Contact missing Contact lipsă
|
||||
Contact shared Contact partajat
|
||||
Contacts Contacte
|
||||
Contacts are on internal flash - the SD card did not mount at boot. Re-seat the card and reboot. Contactele sunt pe memoria internă - cardul SD nu s-a montat la pornire. Reaşază cardul şi reporneşte.
|
||||
Contacts are on internal flash. Contactele sunt pe memoria internă.
|
||||
@@ -778,6 +779,8 @@ Settings Setări
|
||||
Setup complete Configurare finalizată
|
||||
Share QR Partajează QR
|
||||
Share channel Partajează canalul
|
||||
Share contact Partajează contactul
|
||||
Share failed Partajare eşuată
|
||||
Share location in advert Partajează locaţia în advert
|
||||
Share secret Partajează secretul
|
||||
Share the 32-char secret so others can join. Leave the secret empty to generate a random one. Partajează secretul de 32 caractere ca să poată intra şi alţii. Lasă secretul gol pentru a genera unul aleatoriu.
|
||||
@@ -1104,3 +1107,6 @@ Glance shows message previews\nwhile the screen is locked Glance shows message p
|
||||
Snake — swipe, roll, or press a direction Snake — swipe, roll, or press a direction
|
||||
N/A N/A
|
||||
This board cannot run this app. This board cannot run this app.
|
||||
Signal Signal
|
||||
Signal (stale) Signal (stale)
|
||||
nothing heard yet nothing heard yet
|
||||
@@ -1,7 +1,7 @@
|
||||
# wadamesh language file
|
||||
# canonical source - translators: edit this file and PR it
|
||||
# code: ru
|
||||
# ver: 19
|
||||
# ver: 20
|
||||
# name: Русский
|
||||
# base: ru
|
||||
(device behind) (устройство отстаёт)
|
||||
@@ -184,6 +184,7 @@ Contact added Контакт добавлен
|
||||
Contact deleted Контакт удалён
|
||||
Contact gone Контакт пропал
|
||||
Contact missing Контакт отсутствует
|
||||
Contact shared Контакт отправлен
|
||||
Contacts Контакты
|
||||
Contacts are on internal flash - the SD card did not mount at boot. Re-seat the card and reboot. Контакты во внутренней памяти - SD-карта не смонтировалась при загрузке. Переустановите карту и перезагрузитесь.
|
||||
Contacts are on internal flash. Контакты во внутренней памяти.
|
||||
@@ -778,6 +779,8 @@ Settings Настройки
|
||||
Setup complete Настройка завершена
|
||||
Share QR Поделиться QR
|
||||
Share channel Поделиться каналом
|
||||
Share contact Поделиться контактом
|
||||
Share failed Не удалось отправить контакт
|
||||
Share location in advert Делиться местоположением в advert
|
||||
Share secret Поделиться ключом
|
||||
Share the 32-char secret so others can join. Leave the secret empty to generate a random one. Поделитесь секретом из 32 символов, чтобы другие присоединились. Пусто = случайный.
|
||||
@@ -1103,3 +1106,6 @@ Glance shows message previews\nwhile the screen is locked Glance shows message p
|
||||
Snake — swipe, roll, or press a direction Snake — swipe, roll, or press a direction
|
||||
N/A N/A
|
||||
This board cannot run this app. This board cannot run this app.
|
||||
Signal Signal
|
||||
Signal (stale) Signal (stale)
|
||||
nothing heard yet nothing heard yet
|
||||
@@ -1,7 +1,7 @@
|
||||
# wadamesh language file
|
||||
# canonical source - translators: edit this file and PR it
|
||||
# code: sr
|
||||
# ver: 19
|
||||
# ver: 20
|
||||
# name: Српски
|
||||
# base: sr
|
||||
(device behind) (уређај касни)
|
||||
@@ -184,6 +184,7 @@ Contact added Контакт додат
|
||||
Contact deleted Контакт обрисан
|
||||
Contact gone Контакт нестао
|
||||
Contact missing Контакт недостаје
|
||||
Contact shared Контакт подељен
|
||||
Contacts Контакти
|
||||
Contacts are on internal flash - the SD card did not mount at boot. Re-seat the card and reboot. Контакти су у унутрашњој меморији - SD картица се није монтирала при покретању. Поново убаци картицу и рестартуј.
|
||||
Contacts are on internal flash. Контакти су у унутрашњој меморији.
|
||||
@@ -778,6 +779,8 @@ Settings Подешавања
|
||||
Setup complete Подешавање завршено
|
||||
Share QR Подели QR
|
||||
Share channel Подели канал
|
||||
Share contact Подели контакт
|
||||
Share failed Дељење није успело
|
||||
Share location in advert Дели локацију у advert-у
|
||||
Share secret Подели тајну
|
||||
Share the 32-char secret so others can join. Leave the secret empty to generate a random one. Поделите тајну од 32 знака да се други придруже. Празно = насумична.
|
||||
@@ -1103,3 +1106,6 @@ Glance shows message previews\nwhile the screen is locked Glance shows message p
|
||||
Snake — swipe, roll, or press a direction Snake — swipe, roll, or press a direction
|
||||
N/A N/A
|
||||
This board cannot run this app. This board cannot run this app.
|
||||
Signal Signal
|
||||
Signal (stale) Signal (stale)
|
||||
nothing heard yet nothing heard yet
|
||||
@@ -1,7 +1,7 @@
|
||||
# wadamesh language file
|
||||
# canonical source - translators: edit this file and PR it
|
||||
# code: uk
|
||||
# ver: 19
|
||||
# ver: 20
|
||||
# name: Українська
|
||||
# base: uk
|
||||
(device behind) (пристрій відстає)
|
||||
@@ -184,6 +184,7 @@ Contact added Контакт додано
|
||||
Contact deleted Контакт видалено
|
||||
Contact gone Контакт зник
|
||||
Contact missing Контакт відсутній
|
||||
Contact shared Контакт надіслано
|
||||
Contacts Контакти
|
||||
Contacts are on internal flash - the SD card did not mount at boot. Re-seat the card and reboot. Контакти у внутрішній пам'яті - SD-карта не змонтувалася під час завантаження. Переставте картку і перезавантажте.
|
||||
Contacts are on internal flash. Контакти у внутрішній пам'яті.
|
||||
@@ -778,6 +779,8 @@ Settings Налаштування
|
||||
Setup complete Налаштування завершено
|
||||
Share QR Поділитися QR
|
||||
Share channel Поділитися каналом
|
||||
Share contact Поділитися контактом
|
||||
Share failed Не вдалося надіслати контакт
|
||||
Share location in advert Ділитися місцезнаходженням в advert
|
||||
Share secret Поділитися ключем
|
||||
Share the 32-char secret so others can join. Leave the secret empty to generate a random one. Поділіться секретом із 32 символів, щоб інші приєдналися. Порожньо = випадковий.
|
||||
@@ -1103,3 +1106,6 @@ Glance shows message previews\nwhile the screen is locked Glance shows message p
|
||||
Snake — swipe, roll, or press a direction Snake — swipe, roll, or press a direction
|
||||
N/A N/A
|
||||
This board cannot run this app. This board cannot run this app.
|
||||
Signal Signal
|
||||
Signal (stale) Signal (stale)
|
||||
nothing heard yet nothing heard yet
|
||||
@@ -1,7 +1,7 @@
|
||||
# wadamesh language file
|
||||
# canonical source - translators: edit this file and PR it
|
||||
# code: bg
|
||||
# ver: 19
|
||||
# ver: 20
|
||||
# name: Български
|
||||
# base: bg
|
||||
(device behind) (устройството изостава)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# wadamesh language file
|
||||
# canonical source - translators: edit this file and PR it
|
||||
# code: de
|
||||
# ver: 19
|
||||
# ver: 20
|
||||
# name: Deutsch
|
||||
# base: de
|
||||
(device behind) (Gerät geht nach)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# wadamesh language file
|
||||
# canonical source - translators: edit this file and PR it
|
||||
# code: el
|
||||
# ver: 19
|
||||
# ver: 20
|
||||
# name: Ελληνικά
|
||||
# base: el
|
||||
(device behind) (συσκευή πίσω)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# wadamesh language file
|
||||
# canonical source - translators: edit this file and PR it
|
||||
# code: es
|
||||
# ver: 19
|
||||
# ver: 20
|
||||
# name: Español
|
||||
# base: es
|
||||
(device behind) (dispositivo atrasado)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# wadamesh language file
|
||||
# canonical source - translators: edit this file and PR it
|
||||
# code: fr
|
||||
# ver: 19
|
||||
# ver: 20
|
||||
# name: Français
|
||||
# base: fr
|
||||
(device behind) (appareil en retard)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# wadamesh language file
|
||||
# canonical source - translators: edit this file and PR it
|
||||
# code: hu
|
||||
# ver: 19
|
||||
# ver: 20
|
||||
# name: Magyar
|
||||
# base: hu
|
||||
(device behind) (készülék hátulján)
|
||||
@@ -401,7 +401,7 @@ Join a private channel Belépés priváthoz
|
||||
Join hashtag channel Csatlakozz # csatornához
|
||||
Join network Csatlakozás a hálózathoz
|
||||
Join private channel Csatlakozz privát csatornához
|
||||
Join the public channel Csatlakozás a nyilvános csatornához
|
||||
Join the public channel Belépés a nyilvánoshoz
|
||||
Joined %.40s Csatlakozott %.40s alatt
|
||||
Keep per chat (messages) Megőrzés csevegésenként (üzenet)
|
||||
Key already in use Kulcs már hozzárendelve
|
||||
@@ -472,7 +472,7 @@ Map — no tile pack on SPIFFS yet.\n\nUpload a tile pack to /tiles/<z>/<x>/<y>.
|
||||
Map — set your location\nin Settings → Profile to\nshow the map here. Térkép – a Beállítások → Profil menüpontban állítsd be a tartózkodási helyedet, hogy itt jelenjen meg a térkép.
|
||||
Mark all chats and channels as read? Az összes csevegést és csatornát megjelölöd olvasottként?
|
||||
Mark as read Olvasottnak jelöl
|
||||
Mark read Mark read
|
||||
Mark read Olvasott
|
||||
Marked read Olvasottként megjelölve
|
||||
Max hops (0..64) Max ugrások (0-64)
|
||||
Max zoom for this pack Maximális zoom ehhez a csomaghoz
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# wadamesh language file
|
||||
# canonical source - translators: edit this file and PR it
|
||||
# code: it
|
||||
# ver: 19
|
||||
# ver: 20
|
||||
# name: Italiano
|
||||
# base: it
|
||||
(device behind) (dispositivo indietro)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# wadamesh language file
|
||||
# canonical source - translators: edit this file and PR it
|
||||
# code: nl
|
||||
# ver: 19
|
||||
# ver: 20
|
||||
# name: Nederlands
|
||||
# base: nl
|
||||
(device behind) (apparaat loopt achter)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# wadamesh language file
|
||||
# canonical source - translators: edit this file and PR it
|
||||
# code: pt-br
|
||||
# ver: 19
|
||||
# ver: 20
|
||||
# name: Português (BR)
|
||||
# base: pt-br
|
||||
(device behind) (dispositivo atrasado)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# wadamesh language file
|
||||
# canonical source - translators: edit this file and PR it
|
||||
# code: ro
|
||||
# ver: 19
|
||||
# ver: 20
|
||||
# name: Română
|
||||
# base: ro
|
||||
(device behind) (dispozitiv în urmă)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# wadamesh language file
|
||||
# canonical source - translators: edit this file and PR it
|
||||
# code: ru
|
||||
# ver: 19
|
||||
# ver: 20
|
||||
# name: Русский
|
||||
# base: ru
|
||||
(device behind) (устройство отстаёт)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# wadamesh language file
|
||||
# canonical source - translators: edit this file and PR it
|
||||
# code: sr
|
||||
# ver: 19
|
||||
# ver: 20
|
||||
# name: Српски
|
||||
# base: sr
|
||||
(device behind) (уређај касни)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# wadamesh language file
|
||||
# canonical source - translators: edit this file and PR it
|
||||
# code: uk
|
||||
# ver: 19
|
||||
# ver: 20
|
||||
# name: Українська
|
||||
# base: uk
|
||||
(device behind) (пристрій відстає)
|
||||
|
||||
+13
-13
@@ -3,67 +3,67 @@
|
||||
{
|
||||
"code": "bg",
|
||||
"name": "Български",
|
||||
"ver": "19"
|
||||
"ver": "20"
|
||||
},
|
||||
{
|
||||
"code": "de",
|
||||
"name": "Deutsch",
|
||||
"ver": "19"
|
||||
"ver": "20"
|
||||
},
|
||||
{
|
||||
"code": "el",
|
||||
"name": "Ελληνικά",
|
||||
"ver": "19"
|
||||
"ver": "20"
|
||||
},
|
||||
{
|
||||
"code": "es",
|
||||
"name": "Español",
|
||||
"ver": "19"
|
||||
"ver": "20"
|
||||
},
|
||||
{
|
||||
"code": "fr",
|
||||
"name": "Français",
|
||||
"ver": "19"
|
||||
"ver": "20"
|
||||
},
|
||||
{
|
||||
"code": "hu",
|
||||
"name": "Magyar",
|
||||
"ver": "19"
|
||||
"ver": "20"
|
||||
},
|
||||
{
|
||||
"code": "it",
|
||||
"name": "Italiano",
|
||||
"ver": "19"
|
||||
"ver": "20"
|
||||
},
|
||||
{
|
||||
"code": "nl",
|
||||
"name": "Nederlands",
|
||||
"ver": "19"
|
||||
"ver": "20"
|
||||
},
|
||||
{
|
||||
"code": "pt-br",
|
||||
"name": "Português (BR)",
|
||||
"ver": "19"
|
||||
"ver": "20"
|
||||
},
|
||||
{
|
||||
"code": "ro",
|
||||
"name": "Română",
|
||||
"ver": "19"
|
||||
"ver": "20"
|
||||
},
|
||||
{
|
||||
"code": "ru",
|
||||
"name": "Русский",
|
||||
"ver": "19"
|
||||
"ver": "20"
|
||||
},
|
||||
{
|
||||
"code": "sr",
|
||||
"name": "Српски",
|
||||
"ver": "19"
|
||||
"ver": "20"
|
||||
},
|
||||
{
|
||||
"code": "uk",
|
||||
"name": "Українська",
|
||||
"ver": "19"
|
||||
"ver": "20"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
# beta_73 - test build. Stable stays beta_65.
|
||||
# One user-facing note per non-blank, non-# line; # lines are section comments.
|
||||
|
||||
# --- Older T-Decks could not be typed on ------------------------------------------------------
|
||||
If your T-Deck types the wrong letters, this release fixes it. Pressing "a" produced "q " and "m" produced "qa ", which made the keyboard unusable for writing, navigating or locking the screen.
|
||||
It affects the older T-Deck keyboards, the ones without the controllable backlight, and it started in beta_70. The firmware asks the keyboard at startup whether it speaks the newer protocol that modifier latching needs, and an older keyboard's answer looked enough like a yes to be taken as one. Everything typed after that was read the wrong way round.
|
||||
Nothing can tell the two keyboards apart while nobody is typing, so the firmware now simply corrects itself: the first letter you press is unmistakably a character rather than a key-position report, and it switches to the older protocol on the spot and delivers that letter. You lose modifier latching, which your keyboard cannot do anyway, and you get a working keyboard.
|
||||
Newer keyboards are unaffected and keep latching.
|
||||
The beta_72 change that was meant to make this detection more reliable made it worse, because it gave an older keyboard more chances to look like a newer one.
|
||||
|
||||
# --- Translations ---------------------------------------------------------------------------------
|
||||
Two Hungarian strings: "Mark read", which had never been translated, and a shorter wording for joining the public channel so it fits its button. These are already on devices, since language files publish separately from the firmware.
|
||||
|
||||
# --- For testers -------------------------------------------------------------------------------
|
||||
If your keyboard was typing nonsense, you should be able to install this normally rather than needing a cable.
|
||||
A reminder that two settings control whether an arriving message lights a dark or locked screen, and they are separate: Message flash wakes the screen, and At a glance draws the preview text on it. Both are in Options, Display. Turning off At a glance alone will not stop the screen lighting up.
|
||||
Still open and not fixed here: a map that renders nothing after beta_71, a screen that will not stay dark after a manual lock, and a web flasher that hangs at "wrapping up" on the T-Display P4.
|
||||
@@ -75,6 +75,27 @@ static void processRawFrame(const uint8_t frame[TDeckKeyboardState::COLS], uint3
|
||||
portEXIT_CRITICAL(&s_keyboard_mux);
|
||||
}
|
||||
|
||||
// True when a five-byte answer can only be a legacy ASCII reply: the character
|
||||
// in byte 0 with padding after it. A real matrix frame puts one bit per pressed
|
||||
// key in that key's own column, so three or more bits in byte 0 with every other
|
||||
// column empty is not something the hardware can report.
|
||||
static bool looksLikeAscii(const uint8_t frame[TDeckKeyboardState::COLS]) {
|
||||
for (size_t col = 1; col < TDeckKeyboardState::COLS; ++col) if (frame[col]) return false;
|
||||
if (frame[0] < 0x20 || frame[0] > 0x7E) return false; // must be a printable character
|
||||
int bits = 0;
|
||||
for (int b = 0; b < 8; ++b) if (frame[0] & (1u << b)) ++bits;
|
||||
return bits > 2;
|
||||
}
|
||||
|
||||
// Verified against the real tables rather than assumed:
|
||||
// - all 26 lowercase letters set 3 or more bits, so ANY letter demotes on the
|
||||
// first press. Only '0', ' ' and '!' do not, and space happens to render
|
||||
// correctly anyway (column 0 bit 5 IS space).
|
||||
// - going the other way, a genuine frame reaching this needs three or more of
|
||||
// {q, w, a, space} held at once and nothing else. The printable-range test
|
||||
// above removes q+w+a (0x0B); what remains are combinations including space,
|
||||
// which is a fumble rather than typing, and costs a reboot to undo.
|
||||
|
||||
static void processLegacyKey(uint8_t key) {
|
||||
portENTER_CRITICAL(&s_keyboard_mux);
|
||||
const uint32_t generation = s_modifier_mode_generation;
|
||||
@@ -128,16 +149,28 @@ void tdeckKeyboardPoll() {
|
||||
if (!s_inited) return;
|
||||
tdeckKeyboardFlushBacklight();
|
||||
if (s_mode == KeyboardMode::Probe) {
|
||||
// LilyGO keyboard firmware from June 2025 onward accepts 0x03 and returns
|
||||
// five column-state bytes. Older controllers ignore it and keep returning
|
||||
// one resolved ASCII byte; restore 0x04 key mode when that is what we have.
|
||||
// Deciding whether this controller speaks the raw column protocol.
|
||||
//
|
||||
// KEEP RETRYING before concluding "old firmware". This used to decide on a
|
||||
// SINGLE read, and the first I2C read after boot is the least trustworthy
|
||||
// one there is: the C3 is still coming up, so a short or garbled frame is
|
||||
// ordinary. One such frame committed the device to legacy mode for the whole
|
||||
// session, with no recovery short of a reboot -- reported as latching simply
|
||||
// not working on a T-Deck carrying the June 2025 firmware (#332).
|
||||
// The old test was "five bytes came back and no high bit is set", which a
|
||||
// LEGACY controller passes trivially: it answers a five-byte read with the
|
||||
// pressed character followed by padding, and every lowercase letter has its
|
||||
// high bit clear. Read as a column bitmap, 'a' (0x61) emits "q " and 'm'
|
||||
// (0x6d) emits "qa ". That is the garbage Vybo reported on an older T-Deck
|
||||
// (#341), and the retry window added in beta_72 made it MORE likely to
|
||||
// latch, not less.
|
||||
//
|
||||
// The positive test: a real matrix frame from a key press has ONE bit set,
|
||||
// in whichever column that key lives. A legacy reply only ever has byte 0
|
||||
// non-zero, and an ASCII letter sets three or four bits at once. So:
|
||||
//
|
||||
// any non-zero byte in columns 1..4 -> genuinely raw (padding is never
|
||||
// non-zero there)
|
||||
// byte 0 with >2 bits set, rest zero -> an ASCII character, so legacy
|
||||
//
|
||||
// An all-zero frame is idle and proves nothing either way, so keep probing.
|
||||
// If the window expires having seen only column-0 activity, fall back to
|
||||
// LEGACY. That is the safe default: the cost of being wrong is losing
|
||||
// modifier latching, never losing the keyboard.
|
||||
static uint32_t s_probe_start_ms = 0;
|
||||
const uint32_t now = millis();
|
||||
if (!s_probe_start_ms) s_probe_start_ms = now;
|
||||
@@ -145,37 +178,70 @@ void tdeckKeyboardPoll() {
|
||||
keyboardCommand(0x03);
|
||||
uint8_t frame[TDeckKeyboardState::COLS] = {};
|
||||
const int count = keyboardRead(frame, sizeof frame);
|
||||
bool valid_raw = count == (int)sizeof frame;
|
||||
size_t bad_col = 0;
|
||||
for (size_t col = 0; col < sizeof frame && valid_raw; ++col) {
|
||||
if (frame[col] & 0x80) { valid_raw = false; bad_col = col; }
|
||||
}
|
||||
if (valid_raw) {
|
||||
|
||||
bool shape_ok = (count == (int)sizeof frame);
|
||||
for (size_t col = 0; col < sizeof frame && shape_ok; ++col)
|
||||
if (frame[col] & 0x80) shape_ok = false;
|
||||
|
||||
if (shape_ok) {
|
||||
bool cols1plus = false;
|
||||
for (size_t col = 1; col < sizeof frame; ++col) if (frame[col]) cols1plus = true;
|
||||
int b0bits = 0;
|
||||
for (int b = 0; b < 8; ++b) if (frame[0] & (1u << b)) ++b0bits;
|
||||
|
||||
if (cols1plus) { // only a real matrix reaches here
|
||||
s_mode = KeyboardMode::Raw;
|
||||
Serial.println("[keyboard] T-Deck raw mode: modifier latching enabled");
|
||||
processRawFrame(frame, now);
|
||||
return;
|
||||
}
|
||||
if (frame[0] && b0bits > 2) { // an ASCII byte, not a column
|
||||
keyboardCommand(0x04);
|
||||
s_mode = KeyboardMode::Legacy;
|
||||
Serial.printf("[keyboard] T-Deck legacy mode: controller answered with a character "
|
||||
"(0x%02X), not a column frame\n", frame[0]);
|
||||
processLegacyKey(frame[0]);
|
||||
return;
|
||||
}
|
||||
if ((uint32_t)(now - s_probe_start_ms) < kProbeWindowMs) return; // idle: keep looking
|
||||
// Window expired with a well-formed, idle frame every time. That is what a
|
||||
// raw controller looks like when nobody is typing, so take it -- a legacy
|
||||
// one would have shown us a character by now if it had one, and if it has
|
||||
// not, looksLikeAscii() below still demotes the moment it does.
|
||||
s_mode = KeyboardMode::Raw;
|
||||
Serial.println("[keyboard] T-Deck raw mode: modifier latching enabled");
|
||||
processRawFrame(frame, millis());
|
||||
return;
|
||||
} else if ((uint32_t)(now - s_probe_start_ms) < kProbeWindowMs) {
|
||||
if (count == 1) { keyboardCommand(0x04); processLegacyKey(frame[0]); }
|
||||
return; // short/garbled read: the C3 may still be waking
|
||||
}
|
||||
// A legacy controller answers with one resolved byte. Deliver it either way
|
||||
// so nothing typed during the probe window is dropped.
|
||||
if (count == 1) { keyboardCommand(0x04); processLegacyKey(frame[0]); }
|
||||
if ((uint32_t)(now - s_probe_start_ms) < kProbeWindowMs) return; // try again next poll
|
||||
|
||||
keyboardCommand(0x04);
|
||||
s_mode = KeyboardMode::Legacy;
|
||||
// Say WHY, so the next report of "latching does not work" is one line to
|
||||
// diagnose instead of a guess about which firmware someone has.
|
||||
Serial.printf("[keyboard] T-Deck legacy mode: update keyboard C3 firmware for modifier "
|
||||
"latching (probe read %d bytes, wanted %d%s)\n",
|
||||
count, (int)sizeof frame,
|
||||
(count == (int)sizeof frame) ? ", high bit set in a column" : "");
|
||||
(void)bad_col;
|
||||
Serial.printf("[keyboard] T-Deck legacy mode: no raw column frame seen in %lu ms "
|
||||
"(probe read %d bytes)\n", (unsigned long)kProbeWindowMs, count);
|
||||
if (count == 1) processLegacyKey(frame[0]);
|
||||
return;
|
||||
}
|
||||
|
||||
if (s_mode == KeyboardMode::Raw) {
|
||||
uint8_t frame[TDeckKeyboardState::COLS] = {};
|
||||
if (keyboardRead(frame, sizeof frame) != (int)sizeof frame) return;
|
||||
for (size_t col = 0; col < sizeof frame; ++col) if (frame[col] & 0x80) return;
|
||||
// Raw mode has to be able to admit it guessed wrong. An idle controller of
|
||||
// either kind answers with zeros, so the probe cannot tell them apart until
|
||||
// someone types -- and on a legacy controller that first character arrives
|
||||
// in byte 0 with three or four bits set, which no single key press can
|
||||
// produce. Demote on the spot and deliver the character, so the worst case
|
||||
// is one odd keystroke rather than a keyboard that types nonsense forever.
|
||||
if (looksLikeAscii(frame)) {
|
||||
keyboardCommand(0x04);
|
||||
s_mode = KeyboardMode::Legacy;
|
||||
Serial.printf("[keyboard] T-Deck legacy mode: raw guess withdrawn, controller sent a "
|
||||
"character (0x%02X)\n", frame[0]);
|
||||
processLegacyKey(frame[0]);
|
||||
return;
|
||||
}
|
||||
processRawFrame(frame, millis());
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -404,7 +404,7 @@ static const I18nPair kBuiltin_hu[] = {
|
||||
{ "Join hashtag channel", "Csatlakozz # csatornához" },
|
||||
{ "Join network", "Csatlakozás a hálózathoz" },
|
||||
{ "Join private channel", "Csatlakozz privát csatornához" },
|
||||
{ "Join the public channel", "Csatlakozás a nyilvános csatornához" },
|
||||
{ "Join the public channel", "Belépés a nyilvánoshoz" },
|
||||
{ "Join w/ password", "Csatlakozás jelszóval" },
|
||||
{ "Joined %.40s", "Csatlakozott %.40s alatt" },
|
||||
{ "Keep per chat (messages)", "Megőrzés csevegésenként (üzenet)" },
|
||||
@@ -482,6 +482,7 @@ static const I18nPair kBuiltin_hu[] = {
|
||||
{ "Map — set your location\nin Settings → Profile to\nshow the map here.", "Térkép – a Beállítások → Profil menüpontban állítsd be a tartózkodási helyedet, hogy itt jelenjen meg a térkép." },
|
||||
{ "Mark all chats and channels as read?", "Az összes csevegést és csatornát megjelölöd olvasottként?" },
|
||||
{ "Mark as read", "Olvasottnak jelöl" },
|
||||
{ "Mark read", "Olvasott" },
|
||||
{ "Marked read", "Olvasottként megjelölve" },
|
||||
{ "Max dots", "Max. pontok" },
|
||||
{ "Max hops (0..64)", "Max ugrások (0-64)" },
|
||||
|
||||
Reference in new issue
Block a user