From 1571ae0cdfe8c64e06fe1771ec692704ba7b6c99 Mon Sep 17 00:00:00 2001 From: lissine Date: Thu, 22 Aug 2024 20:05:40 +0100 Subject: [PATCH 01/23] update logo and screenshot links in the doap file The Github mirror was recently deleted. As a result, the logo and screenshot links became inaccessible. --- conversations.doap | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/conversations.doap b/conversations.doap index 231859b2bd8d2e3e477b52daa362520f709e94db..56ada7b96ebee0b29816dbb990ce9a8560ace3f2 100644 --- a/conversations.doap +++ b/conversations.doap @@ -25,16 +25,16 @@ en - - - - - - - - - - + + + + + + + + + + Java From 63e544f72acaa80a98238289d2d50be8e982e4ff Mon Sep 17 00:00:00 2001 From: licaon-kter Date: Mon, 12 Aug 2024 07:47:25 +0000 Subject: [PATCH 02/23] Translated using Weblate (Romanian) Currently translated at 100.0% (1039 of 1039 strings) Translation: Conversations/Android App (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-shared/ro/ --- src/main/res/values-ro-rRO/strings.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/res/values-ro-rRO/strings.xml b/src/main/res/values-ro-rRO/strings.xml index 5fbe5b3c6d479c907c641b3cb0b4a9e5db54bba2..b658366b1954a570128755ff6eb3a6c3abbf4f3f 100644 --- a/src/main/res/values-ro-rRO/strings.xml +++ b/src/main/res/values-ro-rRO/strings.xml @@ -1105,4 +1105,7 @@ Apelul folosește receptorul. Apelul folosește difuzorul. Atingeți pentru a trece la receptor. Apelul folosește receptorul. Atingeți pentru a trece la difuzor. + XEP-0386: Bind 2 + XEP-0388: Profil SASL extensibil + Mecanism autentificare \ No newline at end of file From 0f143363d0a580caddc89537e080bc928e42625d Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Mon, 2 Sep 2024 10:19:02 +0200 Subject: [PATCH 03/23] bump agp --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 2ca006740591902e6a6b1286538fe5782a2312ff..43f8afbb3d60c9acdb9d50124a1e1b520570eb06 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:8.3.2' + classpath 'com.android.tools.build:gradle:8.5.2' } } From 465c99fb7b18b377823f5a4a321a4b68b3d38ad7 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Tue, 3 Sep 2024 08:05:41 +0200 Subject: [PATCH 04/23] add timeout when device call gets no ringing response --- .../java/eu/siacs/conversations/Config.java | 4 +- .../xmpp/jingle/JingleConnectionManager.java | 73 ++++++++++++++++--- .../xmpp/jingle/JingleRtpConnection.java | 48 +++++------- 3 files changed, 84 insertions(+), 41 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/Config.java b/src/main/java/eu/siacs/conversations/Config.java index 191ba06f5f35135e1ac6172bfa70f478a7a214a1..985f03ebb8a280cf45c1a9ce10e17f70eb375496 100644 --- a/src/main/java/eu/siacs/conversations/Config.java +++ b/src/main/java/eu/siacs/conversations/Config.java @@ -121,7 +121,6 @@ public final class Config { public static final boolean USE_DIRECT_JINGLE_CANDIDATES = true; public static final boolean USE_JINGLE_MESSAGE_INIT = true; - public static final boolean JINGLE_MESSAGE_INIT_STRICT_OFFLINE_CHECK = false; public static final boolean DISABLE_HTTP_UPLOAD = false; public static final boolean EXTENDED_SM_LOGGING = false; // log stanza counts public static final boolean BACKGROUND_STANZA_LOGGING = @@ -135,6 +134,9 @@ public final class Config { false; // use x509 certificates to verify OMEMO keys public static final boolean REQUIRE_RTP_VERIFICATION = false; // require a/v calls to be verified with OMEMO + public static final boolean JINGLE_MESSAGE_INIT_STRICT_OFFLINE_CHECK = false; + public static final boolean JINGLE_MESSAGE_INIT_STRICT_DEVICE_TIMEOUT = false; + public static final long DEVICE_DISCOVERY_TIMEOUT = 6000; // in milliseconds public static final boolean ONLY_INTERNAL_STORAGE = false; // use internal storage instead of sdcard to save attachments diff --git a/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleConnectionManager.java b/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleConnectionManager.java index 95047919ca69c19380681eeffe59c9d304e40493..588856b24a2438869947e1b38097fdd9aca8c6c4 100644 --- a/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleConnectionManager.java +++ b/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleConnectionManager.java @@ -39,11 +39,13 @@ import eu.siacs.conversations.xmpp.jingle.stanzas.Reason; import eu.siacs.conversations.xmpp.jingle.stanzas.RtpDescription; import eu.siacs.conversations.xmpp.jingle.transports.InbandBytestreamsTransport; import eu.siacs.conversations.xmpp.jingle.transports.Transport; + import im.conversations.android.xmpp.model.jingle.Jingle; import im.conversations.android.xmpp.model.stanza.Iq; import java.lang.ref.WeakReference; import java.security.SecureRandom; +import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.List; @@ -78,7 +80,8 @@ public class JingleConnectionManager extends AbstractConnectionManager { public void deliverPacket(final Account account, final Iq packet) { final var jingle = packet.getExtension(Jingle.class); - Preconditions.checkNotNull(jingle,"Passed iq packet w/o jingle extension to Connection Manager"); + Preconditions.checkNotNull( + jingle, "Passed iq packet w/o jingle extension to Connection Manager"); final String sessionId = jingle.getSessionId(); final Jingle.Action action = jingle.getAction(); if (sessionId == null) { @@ -89,7 +92,8 @@ public class JingleConnectionManager extends AbstractConnectionManager { respondWithJingleError(account, packet, null, "bad-request", "cancel"); return; } - final AbstractJingleConnection.Id id = AbstractJingleConnection.Id.of(account, packet, jingle); + final AbstractJingleConnection.Id id = + AbstractJingleConnection.Id.of(account, packet, jingle); final AbstractJingleConnection existingJingleConnection = connections.get(id); if (existingJingleConnection != null) { existingJingleConnection.deliverPacket(packet); @@ -168,7 +172,8 @@ public class JingleConnectionManager extends AbstractConnectionManager { account, request.generateResponse(Iq.Type.RESULT), null); final var iq = new Iq(Iq.Type.SET); iq.setTo(id.with); - final var sessionTermination = iq.addExtension(new Jingle(Jingle.Action.SESSION_TERMINATE, id.sessionId)); + final var sessionTermination = + iq.addExtension(new Jingle(Jingle.Action.SESSION_TERMINATE, id.sessionId)); sessionTermination.setReason(Reason.BUSY, null); mXmppConnectionService.sendIqPacket(account, iq, null); } @@ -497,7 +502,8 @@ public class JingleConnectionManager extends AbstractConnectionManager { new im.conversations.android.xmpp.model.stanza.Message(); errorMessage.setTo(from); errorMessage.setId(remoteMsgId); - errorMessage.setType(im.conversations.android.xmpp.model.stanza.Message.Type.ERROR); + errorMessage.setType( + im.conversations.android.xmpp.model.stanza.Message.Type.ERROR); final Element error = errorMessage.addChild("error"); error.setAttribute("code", "404"); error.setAttribute("type", "cancel"); @@ -794,11 +800,58 @@ public class JingleConnectionManager extends AbstractConnectionManager { account, proposal.with, proposal.sessionId, RtpEndUserState.FINDING_DEVICE); final var messagePacket = mXmppConnectionService.getMessageGenerator().sessionProposal(proposal); + // in privacy preserving environments 'propose' is only ACKed when we have presence + // subscription (to not leak presence). Therefor a timeout is only appropriate for + // contacts where we can expect the 'ringing' response + final boolean triggerTimeout = + Config.JINGLE_MESSAGE_INIT_STRICT_DEVICE_TIMEOUT + || contact.mutualPresenceSubscription(); + SCHEDULED_EXECUTOR_SERVICE.schedule( + () -> { + final var currentProposalState = rtpSessionProposals.get(proposal); + Log.d( + Config.LOGTAG, + "proposal state after timeout " + currentProposalState); + if (triggerTimeout + && Arrays.asList( + DeviceDiscoveryState.SEARCHING, + DeviceDiscoveryState.SEARCHING_ACKNOWLEDGED) + .contains(currentProposalState)) { + deviceDiscoveryTimeout(account, proposal); + } + }, + Config.DEVICE_DISCOVERY_TIMEOUT, + TimeUnit.MILLISECONDS); mXmppConnectionService.sendMessagePacket(account, messagePacket); return proposal; } } + private void deviceDiscoveryTimeout(final Account account, final RtpSessionProposal proposal) { + // 'endUserState' is what we display in the UI. There is an argument to use 'BUSY' here + // instead + // we may or may not want to match this with the tone we are playing (see + // callIntegration.error() or callIntegration.busy()) + final var endUserState = RtpEndUserState.CONNECTIVITY_ERROR; + Log.d(Config.LOGTAG, "call proposal still in device discovery state after timeout"); + setTerminalSessionState(proposal, endUserState); + + rtpSessionProposals.remove(proposal); + // error and busy would probably be both appropriate tones to play + // playing the error tone is probably more in line with what happens on a technical level + // and would be a similar UX to what happens when you call a user that doesn't exist + // playing the busy tone might be more in line with what some telephony networks play + proposal.callIntegration.error(); + writeLogMissedOutgoing( + account, proposal.with, proposal.sessionId, null, System.currentTimeMillis()); + mXmppConnectionService.notifyJingleRtpConnectionUpdate( + account, proposal.with, proposal.sessionId, endUserState); + + final var retraction = + mXmppConnectionService.getMessageGenerator().sessionRetract(proposal); + mXmppConnectionService.sendMessagePacket(account, retraction); + } + public void sendJingleMessageFinish( final Contact contact, final String sessionId, final Reason reason) { final var account = contact.getAccount(); @@ -869,8 +922,7 @@ public class JingleConnectionManager extends AbstractConnectionManager { Log.d( Config.LOGTAG, account.getJid().asBareJid() + ": unable to deliver ibb packet. missing sid"); - account.getXmppConnection() - .sendIqPacket(packet.generateResponse(Iq.Type.ERROR), null); + account.getXmppConnection().sendIqPacket(packet.generateResponse(Iq.Type.ERROR), null); return; } for (final AbstractJingleConnection connection : this.connections.values()) { @@ -880,12 +932,10 @@ public class JingleConnectionManager extends AbstractConnectionManager { if (sid.equals(inBandTransport.getStreamId())) { if (inBandTransport.deliverPacket(packetType, packet.getFrom(), payload)) { account.getXmppConnection() - .sendIqPacket( - packet.generateResponse(Iq.Type.RESULT), null); + .sendIqPacket(packet.generateResponse(Iq.Type.RESULT), null); } else { account.getXmppConnection() - .sendIqPacket( - packet.generateResponse(Iq.Type.ERROR), null); + .sendIqPacket(packet.generateResponse(Iq.Type.ERROR), null); } return; } @@ -895,8 +945,7 @@ public class JingleConnectionManager extends AbstractConnectionManager { Log.d( Config.LOGTAG, account.getJid().asBareJid() + ": unable to deliver ibb packet with sid=" + sid); - account.getXmppConnection() - .sendIqPacket(packet.generateResponse(Iq.Type.ERROR), null); + account.getXmppConnection().sendIqPacket(packet.generateResponse(Iq.Type.ERROR), null); } public void notifyRebound(final Account account) { diff --git a/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleRtpConnection.java b/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleRtpConnection.java index 4471cfc62bf15e430b978384d9593139f3147eff..5f353ea2c488998f935d7a6757aa32945b76c033 100644 --- a/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleRtpConnection.java +++ b/src/main/java/eu/siacs/conversations/xmpp/jingle/JingleRtpConnection.java @@ -256,8 +256,7 @@ public class JingleRtpConnection extends AbstractJingleConnection } } - private void receiveTransportInfo( - final Iq jinglePacket, final RtpContentMap contentMap) { + private void receiveTransportInfo(final Iq jinglePacket, final RtpContentMap contentMap) { final Set>> candidates = contentMap.contents.entrySet(); final RtpContentMap remote = getRemoteContentMap(); @@ -345,8 +344,7 @@ public class JingleRtpConnection extends AbstractJingleConnection } } - private void receiveContentAdd( - final Iq jinglePacket, final RtpContentMap modification) { + private void receiveContentAdd(final Iq jinglePacket, final RtpContentMap modification) { final RtpContentMap remote = getRemoteContentMap(); if (!Collections.disjoint(modification.getNames(), remote.getNames())) { respondOk(jinglePacket); @@ -890,8 +888,7 @@ public class JingleRtpConnection extends AbstractJingleConnection } private void sendContentAccept(final RtpContentMap contentAcceptMap) { - final Iq iq = - contentAcceptMap.toJinglePacket(Jingle.Action.CONTENT_ACCEPT, id.sessionId); + final Iq iq = contentAcceptMap.toJinglePacket(Jingle.Action.CONTENT_ACCEPT, id.sessionId); send(iq); } @@ -907,9 +904,7 @@ public class JingleRtpConnection extends AbstractJingleConnection private void rejectContentAdd(final RtpContentMap contentMap) { final Iq iq = - contentMap - .toStub() - .toJinglePacket(Jingle.Action.CONTENT_REJECT, id.sessionId); + contentMap.toStub().toJinglePacket(Jingle.Action.CONTENT_REJECT, id.sessionId); Log.d( Config.LOGTAG, id.getAccount().getJid().asBareJid() @@ -918,8 +913,7 @@ public class JingleRtpConnection extends AbstractJingleConnection send(iq); } - private boolean checkForIceRestart( - final Iq jinglePacket, final RtpContentMap rtpContentMap) { + private boolean checkForIceRestart(final Iq jinglePacket, final RtpContentMap rtpContentMap) { final RtpContentMap existing = getRemoteContentMap(); final Set existingCredentials; final IceUdpTransportInfo.Credentials newCredentials; @@ -998,9 +992,7 @@ public class JingleRtpConnection extends AbstractJingleConnection } private boolean applyIceRestart( - final Iq jinglePacket, - final RtpContentMap restartContentMap, - final boolean isOffer) + final Iq jinglePacket, final RtpContentMap restartContentMap, final boolean isOffer) throws ExecutionException, InterruptedException { final SessionDescription sessionDescription = SessionDescription.of(restartContentMap, isResponder()); @@ -1165,8 +1157,7 @@ public class JingleRtpConnection extends AbstractJingleConnection MoreExecutors.directExecutor()); } - private void receiveSessionInitiate( - final Iq jinglePacket, final RtpContentMap contentMap) { + private void receiveSessionInitiate(final Iq jinglePacket, final RtpContentMap contentMap) { try { contentMap.requireContentDescriptions(); contentMap.requireDTLSFingerprint(true); @@ -1256,8 +1247,7 @@ public class JingleRtpConnection extends AbstractJingleConnection MoreExecutors.directExecutor()); } - private void receiveSessionAccept( - final Iq jinglePacket, final RtpContentMap contentMap) { + private void receiveSessionAccept(final Iq jinglePacket, final RtpContentMap contentMap) { try { contentMap.requireContentDescriptions(); contentMap.requireDTLSFingerprint(); @@ -1401,8 +1391,7 @@ public class JingleRtpConnection extends AbstractJingleConnection sendSessionTerminate(Reason.ofThrowable(rootCause), rootCause.getMessage()); } - private void failureToPerformAction( - final Jingle.Action action, final Throwable throwable) { + private void failureToPerformAction(final Jingle.Action action, final Throwable throwable) { if (isTerminated()) { return; } @@ -1676,7 +1665,11 @@ public class JingleRtpConnection extends AbstractJingleConnection } this.message.setTime(timestamp); startRinging(); - if (xmppConnectionService.confirmMessages() && id.getContact().showInContactList()) { + // in environments where we always use discovery timeouts we always want to respond with + // 'ringing' + if (Config.JINGLE_MESSAGE_INIT_STRICT_DEVICE_TIMEOUT + || (xmppConnectionService.confirmMessages() + && id.getContact().showInContactList())) { sendJingleMessage("ringing"); } } else { @@ -2011,8 +2004,7 @@ public class JingleRtpConnection extends AbstractJingleConnection + contentName); return; } - final Iq iq = - transportInfo.toJinglePacket(Jingle.Action.TRANSPORT_INFO, id.sessionId); + final Iq iq = transportInfo.toJinglePacket(Jingle.Action.TRANSPORT_INFO, id.sessionId); send(iq); } @@ -2368,7 +2360,9 @@ public class JingleRtpConnection extends AbstractJingleConnection private void sendJingleMessage(final String action, final Jid to) { final var messagePacket = new im.conversations.android.xmpp.model.stanza.Message(); - messagePacket.setType(im.conversations.android.xmpp.model.stanza.Message.Type.CHAT); // we want to carbon copy those + messagePacket.setType( + im.conversations.android.xmpp.model.stanza.Message.Type + .CHAT); // we want to carbon copy those messagePacket.setTo(to); final Element intent = messagePacket @@ -2548,8 +2542,7 @@ public class JingleRtpConnection extends AbstractJingleConnection private void initiateIceRestart(final RtpContentMap rtpContentMap) { final RtpContentMap transportInfo = rtpContentMap.transportInfo(); - final Iq iq = - transportInfo.toJinglePacket(Jingle.Action.TRANSPORT_INFO, id.sessionId); + final Iq iq = transportInfo.toJinglePacket(Jingle.Action.TRANSPORT_INFO, id.sessionId); Log.d(Config.LOGTAG, "initiating ice restart: " + iq); iq.setTo(id.with); xmppConnectionService.sendIqPacket( @@ -2604,8 +2597,7 @@ public class JingleRtpConnection extends AbstractJingleConnection private void sendContentAdd(final RtpContentMap contentAdd) { - final Iq iq = - contentAdd.toJinglePacket(Jingle.Action.CONTENT_ADD, id.sessionId); + final Iq iq = contentAdd.toJinglePacket(Jingle.Action.CONTENT_ADD, id.sessionId); iq.setTo(id.with); xmppConnectionService.sendIqPacket( id.account, From 66db477b7137409da5cc8f50d1694b4c6138eb39 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Tue, 3 Sep 2024 09:02:16 +0200 Subject: [PATCH 05/23] send delivery receipt when strict discovery timeout is used --- .../eu/siacs/conversations/parser/MessageParser.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/parser/MessageParser.java b/src/main/java/eu/siacs/conversations/parser/MessageParser.java index c979ae1b6eb78b5d4a13eee3d600694d3865d938..3f40fde3306dee22787764f9a80cdf1359b700cb 100644 --- a/src/main/java/eu/siacs/conversations/parser/MessageParser.java +++ b/src/main/java/eu/siacs/conversations/parser/MessageParser.java @@ -902,10 +902,14 @@ public class MessageParser extends AbstractParser implements Consumer Date: Sun, 8 Sep 2024 08:32:36 +0200 Subject: [PATCH 06/23] fix rare issue with CSI triggering pep notification dedup --- .../crypto/axolotl/AxolotlService.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/crypto/axolotl/AxolotlService.java b/src/main/java/eu/siacs/conversations/crypto/axolotl/AxolotlService.java index ceb7ab48e82a51677488d48269b47248a67155fa..938dc794119539f7ff25dc6d6e23b25cc72bb2ee 100644 --- a/src/main/java/eu/siacs/conversations/crypto/axolotl/AxolotlService.java +++ b/src/main/java/eu/siacs/conversations/crypto/axolotl/AxolotlService.java @@ -12,6 +12,7 @@ import androidx.annotation.Nullable; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.MoreExecutors; @@ -314,7 +315,7 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded { if (me) { deviceIds.remove(getOwnDeviceId()); } - Set expiredDevices = new HashSet<>(axolotlStore.getSubDeviceSessions(jid.asBareJid().toString())); + final Set expiredDevices = new HashSet<>(axolotlStore.getSubDeviceSessions(jid.asBareJid().toString())); expiredDevices.removeAll(deviceIds); for (Integer deviceId : expiredDevices) { SignalProtocolAddress address = new SignalProtocolAddress(jid.asBareJid().toString(), deviceId); @@ -325,8 +326,8 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded { } } } - Set newDevices = new HashSet<>(deviceIds); - for (Integer deviceId : newDevices) { + final Set newDevices = ImmutableSet.copyOf(deviceIds); + for (final Integer deviceId : newDevices) { SignalProtocolAddress address = new SignalProtocolAddress(jid.asBareJid().toString(), deviceId); XmppAxolotlSession session = sessions.get(address); if (session != null && session.getFingerprint() != null) { @@ -341,7 +342,7 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded { needsPublishing |= deviceIds.removeAll(getExpiredDevices()); } needsPublishing |= this.changeAccessMode.get(); - for (Integer deviceId : deviceIds) { + for (final Integer deviceId : deviceIds) { SignalProtocolAddress ownDeviceAddress = new SignalProtocolAddress(jid.asBareJid().toString(), deviceId); if (sessions.get(ownDeviceAddress) == null) { FetchStatus status = fetchStatusMap.get(ownDeviceAddress); @@ -352,6 +353,9 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded { } } if (needsPublishing) { + // do not run next device list update notification through de-duplication (might get + // skipped by CSI) + this.lastDeviceListNotificationHash = 0; publishOwnDeviceId(deviceIds); } } @@ -426,8 +430,8 @@ public class AxolotlService implements OnAdvancedStreamFeaturesLoaded { return devices; } - private void publishOwnDeviceId(Set deviceIds) { - Set deviceIdsCopy = new HashSet<>(deviceIds); + private void publishOwnDeviceId(final Set deviceIds) { + final Set deviceIdsCopy = new HashSet<>(deviceIds); Log.d(Config.LOGTAG, AxolotlService.getLogprefix(account) + "publishing own device ids"); if (deviceIdsCopy.isEmpty()) { if (numPublishTriesOnEmptyPep >= publishTriesThreshold) { From 1c2364e861135bc916ff108ff437cac0b2fe7600 Mon Sep 17 00:00:00 2001 From: ghose Date: Mon, 2 Sep 2024 12:28:34 +0000 Subject: [PATCH 07/23] Translated using Weblate (Galician) Currently translated at 100.0% (1039 of 1039 strings) Translation: Conversations/Android App (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-shared/gl/ --- src/main/res/values-gl/strings.xml | 124 +++++++++++++++-------------- 1 file changed, 63 insertions(+), 61 deletions(-) diff --git a/src/main/res/values-gl/strings.xml b/src/main/res/values-gl/strings.xml index d9b4fdd89e506c39954332e87818a340fd5e40f8..9f9d4a0e634b8d09cf660bb7ce9681553b3c7acc 100644 --- a/src/main/res/values-gl/strings.xml +++ b/src/main/res/values-gl/strings.xml @@ -4,7 +4,7 @@ Xestionar contas Xestionar conta Detalles do contacto - Detalles do chat en grupo + Detalles da parola en grupo Detalles da canle Engadir conta Editar contacto @@ -26,8 +26,8 @@ Hai 1 min hai %d minutos - %d chat sen ler - %d chats sen ler + %d conversa sen ler + %d conversas sen ler enviando… Descifrando a mensaxe. Agarda por favor… @@ -39,7 +39,7 @@ Moderador Participante Visitante - Desexas eliminar a %s da túa lista de contactos? O chat con este contacto non se eliminará. + Desexas eliminar a %s da túa lista de contactos? A conversa con este contacto non se eliminará. Queres evitar que %s che envíe mensaxes? Queres desbloquear a %s e permitirlle que che envíe mensaxes? Bloquear todos os contactos desde 1%s? @@ -77,9 +77,9 @@ Preparándose para enviar imaxes Compartindo ficheiros. Agarda… Baleirar historial - Limpar historial do chat - ¿Queres eliminar tódalas mensaxes deste chat? -\n + Limpar historial da charla + ¿Queres eliminar tódalas mensaxes desta conversa? +\n \nAviso: Esto non lle afecta ás mensaxes gardadas noutros dispositivos ou servidores. Eliminar ficheiro Tes a certeza de querer eliminar este ficheiro\? @@ -178,7 +178,7 @@ Tes a certeza de que queres eliminar a túa chave pública OpenPGP do anuncio de presenza? \nOs teus contactos non poderán enviarche mensaxes cifradas con OpenPGP. Publicada a chave pública OpenPGP. Activar conta - Tes a certeza de querer eliminar a túa conta? Ao eliminar a conta eliminas todo o historial de chat + Tes a certeza de querer eliminar a túa conta? Ao eliminar a conta eliminas todo o historial de conversas Gravar audio Enderezo XMPP Bloquear enderezo XMPP @@ -234,17 +234,17 @@ canle@sala.exemplo.com Gardar como marcador Eliminar marcador - Destruír o chat en grupo + Destruír a parola do grupo Eliminar canle - Tes a certeza de querer destruír esta conversa en grupo? -\n -\nAviso: O chat en grupo será totalmente eliminado do servidor. + Tes a certeza de querer destruír esta conversa en grupo? +\n +\nAviso: O parola en grupo será totalmente eliminado do servidor. Tes a certeza de querer eliminar a canle?\n\nAviso: A canle será eliminada completamente do servidor. - Non se puido eliminar o chat en grupo + Non se puido eliminar a parola Non se puido eliminar a canle - Editar o tema do chat en grupo + Editar o tema do conversa Tema - Entrando no chat en grupo… + Entrando na conversa do grupo… Saír Contacto engadido a túa lista de contactos Volver a engadir @@ -270,9 +270,11 @@ Omitir Desactivar notificacións Activar - O chat en grupo require contrasinal + Precisas un contrasinal para entrar Introducir contrasinal - Primeiro solicita actualizacións de presenza aos contactos.\n\nEsto utilizarase para determinar que aplicación de chat está a utilizar o contacto. + Primeiro solicita actualizacións de presenza aos contactos. +\n +\nEsto utilizarase para determinar que aplicación de charla está a utilizar o contacto. Solicitar agora Ignorar Aviso: Ao enviar esto sen mutuas actualizacións de presenza podería dar problemas.\n\nVaite a \"Detalles do contacto\" para verificar as subscricións de presenza. @@ -292,12 +294,12 @@ Poñer marca de \"autojoin\" ao entrar ou deixar unha MUC e reaccionar ás modificacións feitas desde outros clientes. Copiouse a impresión dixital OMEMO ao portapapeis Non podes acceder a esta conversa en grupo - Este chat en grupo é so para membros + Este parola en grupo é so para membros Restrición do recurso Expulsáronte de esta conversa en grupo - Pechouse o chat en grupo - Xa non estás neste chat en grupo - Saíches de este chat en grupo por razóns técnicas + Pechouse a parola do grupo + Xa non estás nesta parola en grupo + Saíches desta parola en grupo por razóns técnicas utilizando a conta %s hospedado en %s Comprobando %s no servidor HTTP @@ -349,8 +351,8 @@ Etiquetas dinámicas Mostra o estado debaixo do nome do contacto Activar notificacións - Non se atopou ningún servidor de chat en grupo - Non se puido crear o chat en grupo + Non se atopou servidor para a parola en grupo + Non se puido crear a parola en grupo Avatar da conta Copiar impresión OMEMO ao portapapeis Rexenerar a chave OMEMO @@ -382,22 +384,22 @@ Revocar privilexios de administración Conceder privilexios de propiedade Retirar privilexios de propiedade - Eliminar o chat en grupo + Eliminar a parola en grupo Retirar da canle Non se puido mudar a afiliación de %s - Vetar no chat en grupo + Vetar na parola en grupo Vetar na canle Estás a intentar eliminar a %s dunha canle pública. O único xeito de facelo é prohibíndolle o acceso para sempre. Rexeitar agora Non se puido mudar o rol de %s - Configuración do chat privado en grupo + Configuración do grupo privado de conversa Configuración da canle pública Privada, só para membros Facer os enderezos XMPP visibles para calquera Establecer canle como moderada Non estás a participar - Opcións do chat en grupo modificadas! - Non se puideron modificar as opcións do chat en grupo + Cambiáronse as opcións da parola en grupo! + Non se puideron modificar as opcións da parola en grupo Nunca Ate novo aviso Pospor @@ -430,7 +432,7 @@ Mostrar localización Non se atopou unha app para mostrar a localización Localización - Saír do chat en grupo privado + Saír da parola en grupo privada Deixar a canle pública Non confiar nas CAs do sistema Todos os certificados deberán ser aprobados manualmente @@ -450,7 +452,7 @@ Elixe a acción rápida Buscar contactos Enviar mensaxe privada - %1$s saíu do chat en grupo + %1$s saíu da conversa Identificador Identificador Este non é un identificador válido @@ -528,7 +530,7 @@ Este campo é requerido Correxir mensaxe Enviar mensaxe correxida - Xa confiaches na impresión dixital destas persoas. Ao escoller \"Feito\" estás simplemente confirmando que %s é parte deste chat en grupo. + Xa confiaches na impresión dixital destas persoas. Ao escoller \"Feito\" estás simplemente confirmando que %s é parte da parola en grupo. Desactivou esta conta Fallo de seguridade: Acceso non válido ao ficheiro! Non se atopou unha app para compartir URI @@ -553,7 +555,7 @@ Fallo no rexistro: inténteo de novo Fallo no rexistro: contrasinal moi feble Escoller participantes - Creando chat en grupo… + Creando parola en grupo… Convidar de novo Desactivar Breve @@ -693,14 +695,14 @@ Non se obtivo a lista de dispositivos Non se obtiveron as chaves da cifraxe Suxestión: Nalgúns casos, isto pode solucionarse engadíndovos mutuamente as vosas listas de contactos. - Tes a certeza de querer desactivar a cifraxe OMEMO para este chat? + Tes a certeza de querer desactivar a cifraxe OMEMO para esta conversa? \nIsto permitirá á administración do teu servidor ler as túas mensaxes, pero pode ser a única forma de comunicarse con persoas que usan clientes obsoletos. Desactivar agora Borrador: Cifraxe OMEMO - Vaise usar sempre OMEMO para chats de grupo privados e conversas personais. - OMEMO utilizarase por defecto para os novos chats. - OMEMO deberá ser activado explícitamente para os novos chats. + Vaise usar sempre OMEMO para parolas de grupo privadas e conversas personais. + OMEMO actívase de xeito predeterminado para as novas conversas. + OMEMO deberá activarse explícitamente para as novas conversas. Crear acceso directo Activado por defecto Desactivado por defecto @@ -721,23 +723,23 @@ Permitir que %1$s acceda ao micrófono Buscar mensaxes GIF - Ver chat + Ver conversa Complemento para Compartir Localización Utiliza o Complemento para Compartir Localización no lugar do mapa incluído Copiar a dirección web Copiar enderezo XMPP Compartición de ficheiro HTTP para S3 Busca directa - Na pantalla \'Novo chat\' abrir teclado e pór o cursor no campo de busca - Avatar do chat en grupo - O servidor non ten soporte para avatar do chat en grupo - Só a propietaria pode cambiar o avatar do chat + Na pantalla \'Nova conversa\' abrir teclado e pór o cursor no campo de busca + Avatar da parola en grupo + O servidor non ten soporte para avatar da parola en grupo + Só a propietaria pode cambiar o avatar da parola Nome do contacto Alcume Nome Proporcionar un nome é optativo - Nome do chat en grupo - Este chat en grupo foi destruído + Nome da parola en grupo + A parola en grupo foi eliminada Non se gardou a gravación Servizo en segundo plano Esta categoría de notificacións utilízase para mostrar unha notificación permanente indicando que %1$s está a funcionar. @@ -831,9 +833,9 @@ Non se puido descifrar a copia. É correcto o contrasinal? Respaldar & Restaurar Introducir enderezo XMPP - Crear chat en grupo + Crear parola en grupo Unirse a canle pública - Crear chat privado en grupo + Crear parola en grupo privada Crear canle pública Nome da canle Enderezo XMPP @@ -878,7 +880,7 @@ Non se puido completar a acción Unirse a canle pública… A aplicación que comparte non proporciona permiso para acceder ao ficheiro. - Chats en grupo e Canles + Parolas en grupo e Canles jabber.network Servidor local A maioría das usuarias debería escoller \'jabber.network\' para obter mellores suxestións desde o ecosistema público XMPP. @@ -939,8 +941,8 @@ Non fixar enriba Ruta GPX No se pode correxir a mensaxe - Todos os chats - Este chat + Todos as conversas + Esta conversa O teu avatar Avatar para %s Cifrada con OMEMO @@ -950,7 +952,7 @@ Gravar correo de voz Reproducir audio Pausar audio - Engade un contacto, crea o únete a un chat en grupo ou descubre canles + Engade un contacto, crea o únete a unha parola en grupo ou descubre canles Ver %1$d Participante Ver %1$d Participantes @@ -987,8 +989,8 @@ Chamada saínte · %s Eliminar a conta no servidor Non se puido eliminar a conta no servidor - Buscar chats en grupo - Chats en grupo + Buscar parolas en grupo + Parolas en grupo Non intentes restablecer unha copia de apoio que non tiveses creado ti! Estás intentando importar un ficheiro de apoio co formato antigo Audiolibro @@ -1009,25 +1011,25 @@ Sen permiso para chamar por teléfono Non está dispoñible o servizo de chamadas! O contacto non está dispoñible - Queres eliminar o marcador para %s e arquivar o chat? + Queres eliminar o marcador para %s e arquivar a conversa? Queres eliminar o marcador para %s? - Eliminar e Arquivar o chat + Eliminar e Arquivar a conversa Cor de fondo diferente para as mensaxes enviadas e as recibidas - Burbullas coloridas nos chats + Burbullas coloridas nas conversas Cores dinámicas Cores do sistema (Material You) Compartir con… Arquivar conversa - Novo chat - Inciar chat - Eliminar o chat + Nova conversa + Iniciar conversa + E despois eliminar a charla Únete á Conversa - Cambiar ao chat + Cambiar á conversa Sen certificado cliente seleccionado! O descubrimento de canles usa un servizo alleo chamado <a href=https://search.jabber.network>search.jabber.network</a>.<br><br>Ao usar esta ferramenta vas enviar o teu enderezo IP e termos de busca a ese servizo. Le a súa <a href=https://search.jabber.network/privacy>Política de Privacidade</a> para saber máis. - O código de barras non contén impresións dixitais para este chat. - Arquiváronse os chats correspondentes. - Chat arquivado + O código de barras non contén impresións dixitais para esta conversa. + Arquiváronse as conversas correspondentes. + Arquivouse a conversa Decorado, Cores, Capturas, Escritura Seguridade Notificacións From 9fbf4dda11dad140ee638caa29b8cafa8ce929b5 Mon Sep 17 00:00:00 2001 From: Grzegorz Szymaszek Date: Mon, 2 Sep 2024 14:05:52 +0000 Subject: [PATCH 08/23] Translated using Weblate (Polish) Currently translated at 100.0% (1039 of 1039 strings) Translation: Conversations/Android App (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-shared/pl/ --- src/main/res/values-pl/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/res/values-pl/strings.xml b/src/main/res/values-pl/strings.xml index 5cec1e259a7fbdc22354c7e2a627475f1170a892..3718ee2d679db7eabdcfc581210c0c57156ad593 100644 --- a/src/main/res/values-pl/strings.xml +++ b/src/main/res/values-pl/strings.xml @@ -1120,4 +1120,5 @@ Twój awatar. Dotknij aby wybrać nowy awatar z galerii. XEP-0388: rozszerzalny profil SASL XEP-0386: uproszczone nawiązywanie połączenia + Mechanizm logowania \ No newline at end of file From 14803f4d6707141f731eb3eeed05f23f2fab7b3d Mon Sep 17 00:00:00 2001 From: ghose Date: Mon, 2 Sep 2024 12:23:12 +0000 Subject: [PATCH 09/23] Translated using Weblate (Galician) Currently translated at 100.0% (13 of 13 strings) Translation: Conversations/Android App (Conversations) Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-conversations/gl/ --- src/conversations/res/values-gl/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/conversations/res/values-gl/strings.xml b/src/conversations/res/values-gl/strings.xml index c36e20c552fd27ddb87d09ed09f0f1b79daf2dc6..8be613a3d3deb057a269be80aeb0b1ed441b0876 100644 --- a/src/conversations/res/values-gl/strings.xml +++ b/src/conversations/res/values-gl/strings.xml @@ -12,6 +12,6 @@ Código de aprovisionamento con formato non válido Toca no botón compartir para convidar ao teu contacto a %1$s. Se o contacto está preto de ti, pode escanear o código inferior para aceptar o teu convite. - Únete a %1$s e conversa conmigo: %2$s + Únete a %1$s e conversa comigo: %2$s Enviar convite a… \ No newline at end of file From c76c3fb7bd256a59cbaa7d88843d9369dce1b355 Mon Sep 17 00:00:00 2001 From: Grzegorz Szymaszek Date: Mon, 2 Sep 2024 14:11:27 +0000 Subject: [PATCH 10/23] Translated using Weblate (Polish) Currently translated at 20.0% (14 of 70 strings) Translation: Conversations/App Store Metadata (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/app-store-metadata/pl/ --- fastlane/metadata/android/pl-PL/changelogs/4211704.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 fastlane/metadata/android/pl-PL/changelogs/4211704.txt diff --git a/fastlane/metadata/android/pl-PL/changelogs/4211704.txt b/fastlane/metadata/android/pl-PL/changelogs/4211704.txt new file mode 100644 index 0000000000000000000000000000000000000000..b42bb58865c608d1baf121c87c0bac8c7bf99964 --- /dev/null +++ b/fastlane/metadata/android/pl-PL/changelogs/4211704.txt @@ -0,0 +1,3 @@ +* Zwiększenie rozmiarów automatycznie pobieranych plików +* Pokazywanie więcej informacji o serwerze +* Różne poprawki błędów From 66af36b8959c4cb0c2f5717f0381f3d469921bac Mon Sep 17 00:00:00 2001 From: "lucasmz.dev" Date: Tue, 3 Sep 2024 13:36:12 +0000 Subject: [PATCH 11/23] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (1039 of 1039 strings) Translation: Conversations/Android App (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-shared/pt_BR/ --- src/main/res/values-pt-rBR/strings.xml | 243 +++++++++++++++++-------- 1 file changed, 164 insertions(+), 79 deletions(-) diff --git a/src/main/res/values-pt-rBR/strings.xml b/src/main/res/values-pt-rBR/strings.xml index 0e33068d49d13a7e0eb1fbab6a6654dca7e867e1..558f4e7ae946013bf884bfb988636cd9b142f839 100644 --- a/src/main/res/values-pt-rBR/strings.xml +++ b/src/main/res/values-pt-rBR/strings.xml @@ -30,8 +30,8 @@ %d conversas não lidas %d conversas não lidas - enviando... - Descriptografando a mensagem. Por favor, aguarde... + enviando… + Descriptografando a mensagem. Por favor, aguarde… Mensagem criptografada via OpenPGP Este apelido já está em uso Apelido inválido @@ -49,7 +49,7 @@ Bloqueado Registrar uma nova conta no servidor Alterar a senha no servidor - Compartilhar com... + Compartilhar com… Convidar contato Convidar Contatos @@ -76,14 +76,16 @@ não foi entregue Preparando para enviar a imagem Preparando para enviar as imagens - Compartilhando arquivos. Por favor, aguarde... + Compartilhando arquivos. Por favor, aguarde… Limpar o histórico Limpar histórico do chat Deseja excluir todas as mensagens dessa conversa? \n \nAtenção: Isso não afetará mensagens armazenadas em outros dispositivos ou servidores. Excluir arquivo - Deseja realmente excluir este arquivo?\n\nAtenção: Isso não excluirá cópias deste arquivo armazenadas em outros dispositivos ou servidores. + Deseja realmente excluir este arquivo? +\n +\nAtenção: Isso não excluirá cópias deste arquivo armazenadas em outros dispositivos ou servidores. Selecione o dispositivo Enviar mensagem de texto não criptografada Enviar mensagem @@ -97,21 +99,21 @@ Reiniciar Instalar Por favor, instale o OpenKeychain - oferecendo... - aguardando... + oferecendo… + aguardando… Não foi encontrada nenhuma chave OpenPGP Não foi possível criptografar suas mensagens porque o seu contatos não estão anunciando a chave pública dele.\n\nPor favor, solicite ao seu contatos que configure o OpenPGP. Não foi encontrada nenhuma chave OpenPGP Não foi possível criptografar sua mensagem porque os seus contatos não estão anunciando a chave pública deles.\n\nPor favor, solicite aos seus contatos que configurem o OpenPGP. Geral Aceitar arquivos - Aceita automaticamente arquivos menores que... + Aceita automaticamente arquivos menores que… Anexos Notificação Vibração - Vibra ao receber uma nova mensagem. + Vibrar ao receber uma nova mensagem Notificação via LED - Pisca a luz de notificação ao receber uma nova mensagem. + Piscar a luz de notificação ao receber uma nova mensagem Toque Som de notificação Som de notificação para novas mensagens @@ -121,12 +123,12 @@ Avançado Ao enviar os stack traces você está colaborando com o desenvolvimento Confirmação de mensagens - Permite que seus contatos saibam quando você recebeu e leu as mensagens deles. + Permita que seus contatos saibam quando você recebeu e leu as mensagens deles Impedir capturas de tela Esconde o conteúdo do app no alternador de apps e bloqueia capturas de tela IU O OpenKeychain produziu um erro. - Chave ruim para a criptografia + Chave ruim para criptografia. Aceitar Ocorreu um erro Erro @@ -141,7 +143,9 @@ Não foi possível converter o arquivo de imagem Arquivo não encontrado Ocorreu um erro genérico de E/S. Você tem espaço de armazenamento suficiente no seu aparelho? - O aplicativo que você usou para selecionar esta imagem não nos forneceu permissões suficientes para ler o arquivo.\n\nUtilize um gerenciador de arquivos diferente para selecionar a imagem. + O app que você usou para selecionar esta imagem não nos forneceu permissões suficientes para ler o arquivo. +\n +\nUtilize um gerenciador de arquivos diferente para selecionar a imagem. O app que você usou para compartilhar esse arquivo não forneceu permissões suficientes. Desconhecido Temporariamente desabilitado @@ -182,7 +186,7 @@ nomedeusuario@exemplo.com Senha Esse não é um endereço XMPP válido - Memória insuficiente. A imagem é muito grande. + Memória insuficiente. A imagem é muito grande Deseja adicionar %s ao seu livro de endereços? Informações do servidor XEP-0313: MAM @@ -214,7 +218,7 @@ v\\Impressão digital OMEMO (origem da mensagem) Outros dispositivos Confiar nas impressões digitais OMEMO - Buscando as chaves... + Buscando as chaves… Concluído Descriptografar Pesquisar @@ -239,7 +243,7 @@ Não foi possível destruir o canal Editar o assunto da conversa em grupo Tópico - Entrando na conversa em grupo... + Entrando na conversa em grupo… Sair O contato foi adicionado à sua lista de contatos Adicionar novamente @@ -249,7 +253,7 @@ Todos leram até esse ponto Publicar Toque o avatar para selecionar uma imagem da galeria - Publicando... + Publicando… O servidor rejeitou sua publicação Não foi possível converter a sua imagem Não foi possível salvar o avatar no disco @@ -267,21 +271,23 @@ Habilitar Essa conversa em grupo exige uma senha Digite a senha - Por favor, primeiro solicite atualizações de presença do seu contato.\n\nIsso determinará qual cliente de conversas o seu contato está usando. + Por favor, primeiro solicite atualizações de presença do seu contato. +\n +\nIsso determinará qual cliente de chat o seu contato está usando. Solicitar agora Ignorar Aviso: Enviar isso sem atualizações mútuas de presença pode provocar problemas inesperados.\n\nVerifique nos detalhes do contato suas inscrições de presença. Segurança - Permitir a correção da mensagem - Permite que seus contatos editem suas mensagens retroativamente. + Correção de mensagem + Permita que seus contatos editem suas mensagens retroativamente. Configurações avançadas - Por favor, use com cuidado. + Por favor, tenha cuidado com isso Sobre o %s Horário de sossego Início Fim Habilitar horário de sossego - As notificações serão silenciadas no horário de sossego. + As notificações serão silenciadas no horário de sossego Outras Sincronizar favoritos Define a flag \"autojoin\" ao entrar ou sair de uma sala e reage a modificações feitas por outros clientes. @@ -296,7 +302,7 @@ usando a conta %s hospedado em %s Verificando %s no host HTTP - Você não está conectado. Tente novamente mais tarde. + Você não está conectado. Tente novamente mais tarde Verificar o tamanho de %s Verifique o tamanho de %1$s em %2$s Opções da mensagem @@ -309,14 +315,14 @@ O endereço XMPP foi copiado para a área de transferência A mensagem de erro foi copiada para a área de transferência endereço web - Capturar código de barras 2D - Exibir código de barras 2D + Escanear código QR + Exibir código QR Exibir a lista de bloqueios Detalhes da conta Confirmar Tentar novamente Serviço ativo - Impede que o sistema operacional encerre sua conexão. + Impede que o sistema operacional encerre sua conexão Criar backup Os arquivos de backup serão armazenados em %s Criando arquivos de backup @@ -342,7 +348,7 @@ Não foi encontrado nenhum aplicativo para abrir o link Não foi encontrado nenhum aplicativo para visualizar contatos Etiquetas dinâmicas - Exibe etiquetas de somente-leitura abaixo dos contatos. + Exibe etiquetas de somente-leitura abaixo dos contatos Habilitar notificações Não foi encontrado nenhum servidor de conversas em grupo Não foi possível criar a conversa em grupo @@ -356,7 +362,7 @@ Alguma coisa deu errado Obtendo histórico do servidor Nenhum outro histórico do servidor - Atualizando... + Atualizando… A senha foi alterada! Não foi possível alterar a senha Alterar a senha @@ -402,7 +408,7 @@ Enter envia Use a tecla Enter para enviar mensagens. Você sempre pode usar Ctrl+Enter para enviar mensagens, mesmo se essa opção estiver desabilitada. Exibir o botão Enter - Altera o botão de emoticons para um botão Enter. + Alterar o botão de emoticons para um botão Enter áudio vídeo imagem @@ -411,16 +417,16 @@ Documento PDF Aplicativo Android Contato - O avatar foi publicado. + O avatar foi publicado! Enviando %s Oferecendo %s Ocultar desconectados - %s está digitando... + %s está digitando… %s parou de digitar - %s estão digitando... + %s estão digitando… %s pararam de digitar Notificações de digitação - Permite que os seus usuários saibam quando você está escrevendo mensagens para eles. + Permita que os seus contatos saibam quando você está escrevendo mensagens para eles Enviar localização Exibir localização Não foi encontrado nenhum aplicativo para exibir a localização @@ -428,9 +434,9 @@ Deixar a conversa em grupo privada Deixar o canal público Não confiar nas CAs do sistema - Todos os certificados devem ser aprovados manualmente. + Todos os certificados devem ser aprovados manualmente Remover certificados - Exclui os certificados aprovados manualmente. + Excluir certificados aprovados manualmente Nenhum certificado aprovado manualmente Remover certificados Excluir a seleção @@ -466,14 +472,14 @@ Exibe como Ocupado quando o dispositivo estiver em modo silencioso Considerar o modo de vibração como silencioso Exibe como Ocupado quando o dispositivo estiver em vibratório - Configurações detalhadas da conexão - Exibe o nome de host e configurações da porta ao configurar uma conta. + Host & Porta + Exibir configurações de conexão entendidas ao configurar uma conta xmpp.example.com Autenticar com certificado Não foi possível analisar o certificado Preferências de arquivamento Preferências de arquivamento no servidor - Obtendo as preferências de arquivamento. Por favor aguarde... + Obtendo as preferências de arquivamento. Por favor aguarde… Não foi possível obter as preferências de arquivamento CAPTCHA obrigatório Digite o texto da imagem acima @@ -481,11 +487,11 @@ O endereço XMPP não corresponde ao certificado Renovar o certificado Ocorreu um erro na obtenção da chave OMEMO! - A chave OMEMO foi verificada com o certificado. - O seu dispositivo não suporta a seleção de certificados de clientes. + A chave OMEMO foi verificada com o certificado! + O seu dispositivo não suporta a seleção de certificados de clientes! Conexão Conectar via Tor - Faz o tunelamento de todas as conexões através de redes Tor. Necessita do Orbot. + Fazer o tunelamento de todas as conexões através de redes Tor. Necessita do Orbot Nome do host Porta Server- ou .onion-Address @@ -504,10 +510,10 @@ Texto compartilhado com %s Permita o acesso do %1$s ao armazenamento externo Permita o acesso do %1$s à câmera - Sincronizar com os contatos - %1$s gostaria de obter a permissão para acessar seu livro de endereços e fazer a correspondência entre ele e a sua lista de contatos do XMPP. Isso permitirá exibir os nomes completos e avatares dos seus contatos. + Integração com a lista de contatos + O %1$s processa sua lista de contatos localmente, no seu dispositivo, para te mostrar nomes e fotos de perfil para contatos correspondentes no XMPP. \n -\n%1$s fará a leitura e a correspondência do seu livro de endereços localmente, sem enviar os seus contatos para o servidor em uso. +\nNenhum dado da sua lista de contato sai do seu dispositivo! Notificar em todas as mensagens Notificar somente quando for mencionado Notificações desabilitadas @@ -518,26 +524,29 @@ Apenas imagens grandes Otimizações de bateria habilitadas O seu dispositivo está empregando uma otimização intensa de bateria para o %1$s, o que pode levar a atrasos nas notificações ou mesmo perda de mensagens.\nÉ recomendável desabilitar essa otimização. - O seu dispositivo está empregando uma otimização intensa de bateria para o %1$s, o que pode levar a atrasos nas notificações ou mesmo perda de mensagens.\nVocê será consultado agora para desabilitar essa otimização. + O seu dispositivo está empregando uma otimização intensa de bateria para o %1$s, o que pode levar a atrasos nas notificações ou mesmo perda de mensagens. +\n +\nVocê será pedido agora para desabilitar essa otimização. Desabilitar A área selecionada é muito grande (Nenhuma conta ativa) Este campo é necessário Corrigir a mensagem Enviar a mensagem corrigida - Você já validou as impressões digitais desse contato e confirma sua confiabilidade. Ao selecionar \"Concluído\" você está apenas confirmando que %s é parte desta conversa em grupo. + Você já confiou na impressão digital desse contato. Ao selecionar \"Concluído\" você está apenas confirmando que %s é parte deste chat em grupo. Você desabilitou essa conta Erro de segurança: Acesso inválido ao arquivo! Não foi encontrado nenhum aplicativo para compartilhar a URI - Compartilhar a URI com... + Compartilhar a URI com… Concordar e continuar - Você será guiado ao longo do processo de criação de conta no conversations.im.¹\nAo usar o conversations.im você também poderá se comunicar com usuários de outros provedores. Basta fornecer a eles o sua endereço XMPP completo. + Você será guiado ao longo do processo de criação de conta no conversations.im. +\nAo usar o conversations.im você também poderá se comunicar com usuários de outros provedores. Basta fornecer a eles o sua endereço XMPP completo. Seu endereço XMPP completo será: %s Criar conta Usar meu próprio provedor Selecione seu nome de usuário Gerenciar a disponibilidade manualmente - Defina sua disponibilidade ao editar a sua mensagem de status + Defina sua disponibilidade ao editar a sua mensagem de status. Mensagem de status Livre para conversar Conectado @@ -549,14 +558,14 @@ Não foi possível efetuar o registro. Por favor, tente novamente mais tarde Falha no registro: Senha muito fraca Selecione os participantes - Criando a conversa em grupo... + Criando a conversa em grupo… Convidar novamente Desabilitar Curto Médio Longo - Uso do anúncio - Permite que os seus contatos saibam quando você usa o Conversations + Visto por último + Permita que os seus contatos vejam quando você usou o app Privacidade Tema Selecione a paleta de cores @@ -603,7 +612,7 @@ Confiar em novos dispositivos de contatos não verificados, mas solicitar confirmação manual de novos dispositivos para contatos verificados. Chaves OMEMO confiadas cegamente, o que significa que poderiam ser outras pessoas ou alguém poderia tê-las aproveitado. Não confiável - Código de barras 2D inválido + Código QR inválido Limpar a pasta de cache (usada pela aplicativo da câmera) Limpar o cache Limpar o armazenamento privado @@ -695,14 +704,14 @@ Não foi possível obter a lista de dispositivos Não foi possível obter as chaves de criptografia Dica: Em alguns casos isso pode ser resolvido adicionando-se um ao outro na lista de contatos. - Tem certeza que deseja desabilitar a criptografia OMEMO nesta conversa? + Tem certeza que deseja desabilitar a criptografia OMEMO neste chat? \nIsso permitirá que o administrador do seu servidor seja capaz de ler suas mensagens. Por outro lado, pode ser a única forma de se comunicar com pessoas usando clientes desatualizados. Desabilitar agora Rascunho: Criptografia OMEMO OMEMO será sempre utilizado em conversas um-para-um e de grupos privados. - OMEMO será utilizado por padrão em novas conversas. - OMEMO deverá ser explicitamente ativado para novas conversas. + OMEMO será utilizado por padrão em novos chats. + OMEMO deverá ser explicitamente ativado para novos chats. Criar atalho Ligado por padrão Desligado por padrão @@ -719,18 +728,18 @@ Exibir localização Compartilhar Não foi possível iniciar a gravação - Por favor, aguarde... + Por favor, aguarde… Permita o acesso do %1$s ao microfone Pesquisar mensagens GIF - Ver conversa + Visualizar chat Plugin de Compartilhamento de Localização - Use o Plugin de Compartilhamento de Localização ao invés do mapa nativo. + Usar o Plugin de Compartilhamento de Localização ao invés do mapa integrado Copiar endereço web Copiar endereço XMPP Compartilhamento de arquivos via HTTP para S3 Pesquisa direta - Na tela \"Conversar\", abra o teclado e coloque o cursor no campo de pesquisa + Na tela \"Novo chat\", abra o teclado e coloque o cursor no campo de pesquisa Avatar de conversa em grupo O host não suporta avatares de conversa em grupo Somente o proprietário pode alterar o avatar da conversa em grupo @@ -757,14 +766,14 @@ Entregas não efetuadas Configurações das notificações de mensagens configurações das notificações de chamadas recebidas - Importância, som, vibração. + Importância, Som, Vibrar Compressão de vídeo Ver mídia Participantes Navegador de mídia - Arquivo omitido devido a violação de segurança + Arquivo omitido devido à uma violação de segurança. Qualidade do vídeo - Qualidade baixa significa arquivos menores. + Qualidade baixa significa arquivos menores Média (360p) Alta (720p) cancelado @@ -782,20 +791,20 @@ Verificar %s %s.]]> Nós enviamos outro SMS com um código de 6 dígitos. - Por favor, digite o código de 6 dígitos abaixo. + Por favor, digite o PIN de 6 dígitos abaixo. Reenviar o SMS Reenviar o SMS (%s) Por favor, espere (%s) - voltar - Copiar automaticamente o código da área de transferência. - Por favor, digite o seu código de 6 dígitos. + Voltar + A área de transferência foi automaticamente lida para um possível PIN. + Por favor, digite o seu PIN de 6 dígitos. Deseja realmente cancelar o procedimento de registro? Sim Não - Verificando... - Solicitando o SMS... - O código que você digitou está incorreto. - O código que enviamos para você expirou. + Verificando… + Solicitando o SMS… + O PIN que você digitou está incorreto. + O PIN que enviamos para você expirou. Erro desconhecido na rede. Resposta desconhecida do servidor. Não foi possível conectar ao servidor. @@ -822,7 +831,7 @@ Este canal tornará público o seu endereço XMPP e-book Original (não comprimido) - Abrir com... + Abrir com… Imagem de perfil do Conversations Selecione a conta Restaurar o backup @@ -842,13 +851,13 @@ Por favor, forneça um nome para o canal Por favor, forneça um endereço XMPP Esse é um endereço XMPP. Por favor, forneça um nome. - Criando o canal público... + Criando o canal público… Este canal já existe Você entrou em um canal existente Não foi possível salvar a configuração do canal Permitir que qualquer um edite o tópico Permitir que qualquer um convide outras pessoas - Qualquer um pode editar o tópico + Qualquer um pode editar o tópico. Proprietários podem editar o tópico. Administradores podem editar o tópico. Proprietários podem convidar outras pessoas. @@ -864,7 +873,7 @@ Descobrir canais Pesquisar canais Provável violação de privacidade! - Eu já tenho uma conta. + Eu já tenho uma conta Adicionar uma conta já existente Registrar uma nova conta Isso se parece com um endereço de domínio @@ -878,7 +887,7 @@ Esta conta já foi configurada Por favor, digite a senha para esta conta Não foi possível executar essa ação - Entrar no canal público... + Entrar no canal público… O aplicativo de compartilhamento não permitiu o acesso a esse arquivo. jabber.network @@ -937,15 +946,15 @@ Chamada de vídeo Ajuda Seu microfone não está disponível - Você só pode fazer uma chamada por vez + Você só pode fazer uma chamada por vez. Retornar para a chamada em andamento Não foi possível trocar a câmera Fixar no topo Desafixar do topo Trilha GPX Não foi possível corrigir a mensagem - Todas as conversas - Essa conversa + Todos os chats + Este chat Seu avatar Avatar para %s Criptografada com OMEMO @@ -1022,4 +1031,80 @@ Aparência Conexão com o servidor Sistema Operacional + Entre na Conversa + Bem-vindo ao Quicksy! + Rejeitar + Remover conta do servidor + Não pôde excluir conta do servidor + Transmissor de notificações para apps de terceiros compatíveis com o UnifiedPush + Criptografia de ponta-a-ponta + Autoridades de certificação + Esconder notificação + Ao atuar como um distribuidor UnifiedPush, a conexão persistente, estável, e amigável à bateria do XMPP será usada para alertar outros apps compatíveis com o UnifiedPush, como o Tusky, Ltt.RS, FluffyChat, e mais. + Chats correspondentes arquivados. + Não tente restaurar backups que você não criou! + O contato não está disponível + O vídeo está ativado. Toque para desativar. + A descoberta de canais usa um serviço de terceiros chamado <a href=https://search.jabber.network>search.jabber.network</a>.<br><br>Usar esta funcionalidade transmitirá seu endereço de IP e termos de pesquisa ao serviço. Leia sua <a href=https://search.jabber.network/privacy>Política de Privacidade</a> para mais informações. + A chamada está usando o falante de ouvido. Toque para alterar para o alto-falante. + Chamada está usando alto-falante. Toque para alterar para o falante de ouvido. + Criar um único, agendamento + Criar um único backup + Audiobook + Você desconectou desta conta + Bolhas de chat coloridas + Cores de fundo distintas para mensagens enviadas e recebidas + Convites de estranhos + Aceitar convites de estranhos para chat em grupo + Chat arquivado + Texto grande + Aumentar o tamanho do texto em bolhas de mensagem + Seu avatar. Toque para selecionar um novo avatar da galeria. + Não pôde desativar vídeo. + Distribuidor UnifiedPush + Chamada está usando fone de ouvido com fio + O vídeo está desativado. Toque para ativar. + XEP-0386: Vinculação 2 + XEP-0388: Perfil SASL extensível + Chats em grupo + Pesquisar chats em grupo + O Quicksy pede seu consentimento ao usar seus dados + Reconectar em outro host + Sem permissão para fazer uma ligação + Este código de barras não contém impressões digitais para este chat. + Cores dinâmicas + Cores do sistema (Material You) + Você está tentando importar um backup com um formato desatualizado + Chamada recebida (%s) · %s + Chamada enviada (%s) · %s + Chamada enviada · %s + Conta XMPP + A conta pela qual mensagens push serão recebidas. + Servidor Push + Nenhuma (desativado) + Interação + No dispositivo + Backup recorrente + Notificações em tela cheia + Permitir que este app mostre notificações para chamadas recebidas que utilizam a tela inteira quando o dispositivo está bloqueado. + Editar nome de usuário + Excluir chave OpenPGP + Editar nome e tópico + Alterar configuração + Alterar configurações de notificação + A chamada está usando o falante de ouvido. + A chamada está usando o alto-falante. + A chamada está usando o Bluetooth. + Virar câmera + Mecanismo de login + Período de espera, Toque, Vibração, Estranhos + Mostrar o conteúdo do app no alternador de apps e permitir que a tela seja capturada + Exigir vínculo do canal + A vinculação de canal pode detectar alguns ataques de máquina-no-meio + Notificações de digitação, Visto por último, Disponibilidade + Nome do host e porta, Tor + Nome do host e porta, Tor, Descoberta de Canais + Teclado + Notificações de engajamento + Aplicação \ No newline at end of file From ef7f31282fb7d8a4f42cfa348209c1a6daa6fc24 Mon Sep 17 00:00:00 2001 From: "lucasmz.dev" Date: Tue, 3 Sep 2024 12:43:48 +0000 Subject: [PATCH 12/23] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (13 of 13 strings) Translation: Conversations/Android App (Conversations) Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-conversations/pt_BR/ --- src/conversations/res/values-pt-rBR/strings.xml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/conversations/res/values-pt-rBR/strings.xml b/src/conversations/res/values-pt-rBR/strings.xml index 7e2b18910d5029cca757f6654326a7a60d2c5849..d46e87ae98db008f70ab66c2c5ca26d969caa8da 100644 --- a/src/conversations/res/values-pt-rBR/strings.xml +++ b/src/conversations/res/values-pt-rBR/strings.xml @@ -3,7 +3,8 @@ Selecione o seu provedor XMPP Usar o conversations.im Criar uma nova conta - Você já possui uma conta XMPP? Esse pode ser o seu caso caso já esteja usando um outro cliente XMPP ou tenha usado o Conversations antes. Caso contrário, você pode criar uma nova conta XMPP agora.\nDica: alguns provedores de e-mail também fornecem contas XMPP. + Você já possui uma conta XMPP? Esse pode ser o seu caso se já estava usando um outro cliente XMPP ou tenha usado o Conversations antes. Caso contrário, você pode criar uma nova conta XMPP agora. +\nDica: alguns provedores de e-mail também fornecem contas XMPP. XMPP é uma rede de mensagens instantâneas independente de provedor. Você pode usar este aplicativo com qualquer servidor XMPP de sua escolha. \nNo entanto, para sua comodidade, facilitamos criar uma conta em conversas.im; um provedor especificamente adequado para uso com Conversations. Você foi convidado para %1$s. Nós iremos guiá-lo ao longo do processo de criação de uma conta.\nAo escolher %1$s como um provedor você conseguirá se comunicar com usuários de outros provedores dando a eles seu endereço XMPP completo. @@ -13,5 +14,5 @@ Toque no botão compartilhar para enviar, para seu contato, um convite para %1$s. Se seu contato estiver por perto, ele também pode escanear o código abaixo para aceitar seu convite. Junte-se a %1$s e converse comigo: %2$s - Compartilhe o convite com... + Compartilhe o convite com… \ No newline at end of file From eec412ab73812751278d47800341300c3e0defba Mon Sep 17 00:00:00 2001 From: "lucasmz.dev" Date: Tue, 3 Sep 2024 12:45:34 +0000 Subject: [PATCH 13/23] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (9 of 9 strings) Translation: Conversations/Android App (Quicksy) Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-quicksy/pt_BR/ --- src/quicksy/res/values-pt-rBR/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/quicksy/res/values-pt-rBR/strings.xml b/src/quicksy/res/values-pt-rBR/strings.xml index 3d6b1549803405a728933f999db580b4fa4eb637..f2d1f192b638b1df6b10aed21e6d62b02f73145c 100644 --- a/src/quicksy/res/values-pt-rBR/strings.xml +++ b/src/quicksy/res/values-pt-rBR/strings.xml @@ -1,12 +1,12 @@ - Espaço de tempo em que o Quicksy ficará sem notificações, após alguma atividade em outro dispositivo. - Ao enviar os stack traces você está colaborando com o desenvolvimento do Quicksy. - Permite que todos os seus contatos saibam quando você usa o Quicksy. + Espaço de tempo em que o Quicksy ficará sem notificações, após notar alguma atividade em outro dispositivo + Ao enviar stack traces você ajuda com o desenvolvimento do Quicksy + Faça com que todos os seus contatos saibam quando você usa o Quicksy Para continuar recebendo notificações, mesmo com a tela apagada, você precisa adicionar o Quicksy à lista de apps protegidos. Imagem de perfil do Quicksy Quicksy agora está disponível no seu país. Não foi possível verificar a identidade do servidor. Erro de segurança desconhecido. Tempo esgotado ao tentar conectar ao servidor. - + \ No newline at end of file From 475fc5ce773ef68f4133085f6a53525c43bacfe4 Mon Sep 17 00:00:00 2001 From: Dirk Date: Tue, 3 Sep 2024 05:02:23 +0000 Subject: [PATCH 14/23] Translated using Weblate (German) Currently translated at 100.0% (70 of 70 strings) Translation: Conversations/App Store Metadata (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/app-store-metadata/de/ --- fastlane/metadata/android/de-DE/changelogs/4211704.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 fastlane/metadata/android/de-DE/changelogs/4211704.txt diff --git a/fastlane/metadata/android/de-DE/changelogs/4211704.txt b/fastlane/metadata/android/de-DE/changelogs/4211704.txt new file mode 100644 index 0000000000000000000000000000000000000000..28ee9b44f2b29bc52ccc10c986195d9a4657f636 --- /dev/null +++ b/fastlane/metadata/android/de-DE/changelogs/4211704.txt @@ -0,0 +1,3 @@ +* Bereitstellen höherer Werte für den Dateiempfang +* Bereitstellen von mehr Informationen in „Server-Info“ +* Diverse Fehlerbehebungen From df23ccec6ad729b3a9133a54e10389da453dc1ec Mon Sep 17 00:00:00 2001 From: ghose Date: Wed, 4 Sep 2024 07:46:24 +0000 Subject: [PATCH 15/23] Translated using Weblate (Galician) Currently translated at 100.0% (1039 of 1039 strings) Translation: Conversations/Android App (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-shared/gl/ --- src/main/res/values-gl/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/res/values-gl/strings.xml b/src/main/res/values-gl/strings.xml index 9f9d4a0e634b8d09cf660bb7ce9681553b3c7acc..2ac4779a634be5a6707f4448cfd960bc1e11e3a9 100644 --- a/src/main/res/values-gl/strings.xml +++ b/src/main/res/values-gl/strings.xml @@ -1021,7 +1021,7 @@ Compartir con… Arquivar conversa Nova conversa - Iniciar conversa + Conversar E despois eliminar a charla Únete á Conversa Cambiar á conversa From da4b909b509f3591fcc99af4565596d83339c935 Mon Sep 17 00:00:00 2001 From: random_r Date: Wed, 4 Sep 2024 09:57:28 +0000 Subject: [PATCH 16/23] Translated using Weblate (Italian) Currently translated at 100.0% (1039 of 1039 strings) Translation: Conversations/Android App (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-shared/it/ --- src/main/res/values-it/strings.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/res/values-it/strings.xml b/src/main/res/values-it/strings.xml index 7bb6fccc3853c477e1d2093150a38e8944608ee0..4091a868a9762ac781f0016c3a58263eb3ac41f2 100644 --- a/src/main/res/values-it/strings.xml +++ b/src/main/res/values-it/strings.xml @@ -1100,4 +1100,7 @@ Il video è attivo. Tocca per disattivarlo. Il video è disattivato. Tocca per attivarlo. Cambia fotocamera + Meccanismo di accesso + XEP-0386: Bind 2 + XEP-0388: Profilo SASL estensibile \ No newline at end of file From af4d742a035166d25e8d3f35ade769035ba7e156 Mon Sep 17 00:00:00 2001 From: 0ko <0ko@users.noreply.translate.codeberg.org> Date: Wed, 4 Sep 2024 17:45:02 +0000 Subject: [PATCH 17/23] Translated using Weblate (Russian) Currently translated at 98.4% (1023 of 1039 strings) Translation: Conversations/Android App (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-shared/ru/ --- src/main/res/values-ru/strings.xml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/res/values-ru/strings.xml b/src/main/res/values-ru/strings.xml index 721e08aa51cf461adf56ad5285a95e9f62a83ac2..51677571b08241a39a98b3c7839960a662d2aa70 100644 --- a/src/main/res/values-ru/strings.xml +++ b/src/main/res/values-ru/strings.xml @@ -88,7 +88,7 @@ \n \nПредупреждение: Данная операция не удалит копии этого файла, хранящиеся на других устройствах или серверах. Выберите устройство - Отправить сообщение чистым текстом + Отправить сообщение без шифрования Сообщение Сообщение для %s v\\OMEMO-зашифр. сообщение @@ -464,7 +464,7 @@ Устанавливает статус \"Не беспокоить\", когда устройство в беззвучном режиме Не доступен в режиме вибрации Устанавливает статус \"Не беспокоить\", когда устройство в режиме вибрации - Имя хоста и Порт + Имя хоста и порт Показывать расширенные настройки соединения при настройке аккаунта xmpp.example.com Авторизироваться с помощью сертификата @@ -557,7 +557,7 @@ Короткий Средний Длинный - Оповещать других об использовании + Последняя активность Позволяет вашим контактам видеть, когда вы в последний раз использовали приложение Приватность Тема @@ -1096,4 +1096,14 @@ Соединение с сервером Приглашения от незнакомцев Уведомления о взаимодействии + Способ входа + Звонок через наушники. Нажмите для переключения на динамик. + Звонок через динамик. Нажмите для переключения на наушники. + Видео не активно. Нажмите для включения. + Звонок через наушники. + Звонок через проводные наушники + Звонок через динамик. + Звонок через Bluetooth. + Сменить камеру + Видео активно. Нажмите для выключения. \ No newline at end of file From 407a1ebccf968a6b7fb5e3edcad546bc492287dd Mon Sep 17 00:00:00 2001 From: random_r Date: Wed, 4 Sep 2024 09:59:20 +0000 Subject: [PATCH 18/23] Translated using Weblate (Italian) Currently translated at 100.0% (70 of 70 strings) Translation: Conversations/App Store Metadata (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/app-store-metadata/it/ --- fastlane/metadata/android/it-IT/changelogs/4211704.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 fastlane/metadata/android/it-IT/changelogs/4211704.txt diff --git a/fastlane/metadata/android/it-IT/changelogs/4211704.txt b/fastlane/metadata/android/it-IT/changelogs/4211704.txt new file mode 100644 index 0000000000000000000000000000000000000000..237c4742d76be8877d2873d12251252cfe75a517 --- /dev/null +++ b/fastlane/metadata/android/it-IT/changelogs/4211704.txt @@ -0,0 +1,3 @@ +* Offerti valori massimi di accettazione file più alti +* Mostrate maggiori informazioni in 'Info server' +* Varie correzioni di errori From a93dcdccc782681f821fc6281ea7ecaa771bb3ae Mon Sep 17 00:00:00 2001 From: takto Date: Sat, 7 Sep 2024 11:13:58 +0000 Subject: [PATCH 19/23] Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (1039 of 1039 strings) Translation: Conversations/Android App (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-shared/pt_BR/ --- src/main/res/values-pt-rBR/strings.xml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/main/res/values-pt-rBR/strings.xml b/src/main/res/values-pt-rBR/strings.xml index 558f4e7ae946013bf884bfb988636cd9b142f839..6a6a1f60b2f2a2d9bd6cf6a4cdfc1db4aa143b11 100644 --- a/src/main/res/values-pt-rBR/strings.xml +++ b/src/main/res/values-pt-rBR/strings.xml @@ -347,8 +347,8 @@ Não foi encontrado nenhum aplicativo para abrir o arquivo Não foi encontrado nenhum aplicativo para abrir o link Não foi encontrado nenhum aplicativo para visualizar contatos - Etiquetas dinâmicas - Exibe etiquetas de somente-leitura abaixo dos contatos + Rótulos dinâmicos + Exibe rótulos de somente-leitura abaixo dos contatos Habilitar notificações Não foi encontrado nenhum servidor de conversas em grupo Não foi possível criar a conversa em grupo @@ -465,7 +465,7 @@ Falha na associação O servidor não responde por esse domínio Quebrado - Disponibilidade + Dispôr \"Afastado\" quando o dispositivo estiver travado Exibe como Afastado quando o dispositivo estiver travado \"Ocupado\" no modo silencioso @@ -531,7 +531,7 @@ A área selecionada é muito grande (Nenhuma conta ativa) Este campo é necessário - Corrigir a mensagem + Corrigir Enviar a mensagem corrigida Você já confiou na impressão digital desse contato. Ao selecionar \"Concluído\" você está apenas confirmando que %s é parte deste chat em grupo. Você desabilitou essa conta @@ -545,8 +545,8 @@ Criar conta Usar meu próprio provedor Selecione seu nome de usuário - Gerenciar a disponibilidade manualmente - Defina sua disponibilidade ao editar a sua mensagem de status. + Gerenciar o dispôr a dedo + Defina seu dispôr ao editar a sua mensagem de estado. Mensagem de status Livre para conversar Conectado @@ -683,7 +683,7 @@ O certificado não contém um endereço XMPP parcial Gravar vídeo - Copiar para a área de transferência + Copiar A mensagem foi copiada para a área de transferência Mensagem As mensagens privadas estão desabilitadas @@ -993,16 +993,16 @@ Mudar para vídeo Recusar requisição de mudança para vídeo Enviar relatórios de erro - Gostaria de remover o favorito de %s e arquivar chat? + Gostaria de remover o favorito de %s e arquivar a conversa? Exclua o chat depois Compartilhar com… - Arquivar chat + Arquivar conversa Novo chat Enviar mensagem criptografada Desconectado Gostaria de remover o favorito de %s? Operação não suportada - Deletar e arquivar chat + Excluir e arquivar a conversa Seu contato tem dispositivos não verificados. Escaneie o Código QR dele para fazer uma verificação e impedir ataques MITM. Sair Você está usando dispositivos não verificados. Escaneie o Código QR em outro dispositivo para fazer a verificação, e impedir ataques MITM. @@ -1101,7 +1101,7 @@ Mostrar o conteúdo do app no alternador de apps e permitir que a tela seja capturada Exigir vínculo do canal A vinculação de canal pode detectar alguns ataques de máquina-no-meio - Notificações de digitação, Visto por último, Disponibilidade + Notificações de digitação, Visto por último, Dispôr Nome do host e porta, Tor Nome do host e porta, Tor, Descoberta de Canais Teclado From c2b57fbb0e2b7c20a3b3065c8f526747fec64579 Mon Sep 17 00:00:00 2001 From: ghose Date: Sat, 7 Sep 2024 08:42:50 +0000 Subject: [PATCH 20/23] Translated using Weblate (Galician) Currently translated at 60.0% (42 of 70 strings) Translation: Conversations/App Store Metadata (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/app-store-metadata/gl/ --- fastlane/metadata/android/gl-ES/changelogs/4211704.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 fastlane/metadata/android/gl-ES/changelogs/4211704.txt diff --git a/fastlane/metadata/android/gl-ES/changelogs/4211704.txt b/fastlane/metadata/android/gl-ES/changelogs/4211704.txt new file mode 100644 index 0000000000000000000000000000000000000000..ee6caa85e0d509981619a8eca3c20049ae91a273 --- /dev/null +++ b/fastlane/metadata/android/gl-ES/changelogs/4211704.txt @@ -0,0 +1,3 @@ +* ofrecer valores máis altos para descargas automáticas +* proporcionar mais «Información sobre o servidor» +* arranxo de outros problemas From 0810eb35f0e3390212fe9aedec13912b2dd5e9b3 Mon Sep 17 00:00:00 2001 From: SomeTr Date: Sat, 7 Sep 2024 13:40:00 +0000 Subject: [PATCH 21/23] Translated using Weblate (Ukrainian) Currently translated at 100.0% (70 of 70 strings) Translation: Conversations/App Store Metadata (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/app-store-metadata/uk/ --- fastlane/metadata/android/uk/changelogs/4211704.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 fastlane/metadata/android/uk/changelogs/4211704.txt diff --git a/fastlane/metadata/android/uk/changelogs/4211704.txt b/fastlane/metadata/android/uk/changelogs/4211704.txt new file mode 100644 index 0000000000000000000000000000000000000000..5b150178da7810f9c481e20194b637add1c9e8b7 --- /dev/null +++ b/fastlane/metadata/android/uk/changelogs/4211704.txt @@ -0,0 +1,3 @@ +* Вищі значення для автоматичного приймання файлів +* У розділі «Інформація про сервер» надається більше інформації +* Виправлення різних помилок From 91538b1bcdf5a5ef81daa32e9f3fb876ebbe476d Mon Sep 17 00:00:00 2001 From: takto Date: Sat, 7 Sep 2024 11:17:14 +0000 Subject: [PATCH 22/23] Translated using Weblate (Esperanto) Currently translated at 100.0% (13 of 13 strings) Translation: Conversations/Android App (Conversations) Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-conversations/eo/ --- src/conversations/res/values-eo/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/conversations/res/values-eo/strings.xml b/src/conversations/res/values-eo/strings.xml index d5fc7d80eb682cb660b14fbfcc0e041d660652d4..70f6d572e7fcd1ce3ca2d30533330e21f86991a9 100644 --- a/src/conversations/res/values-eo/strings.xml +++ b/src/conversations/res/values-eo/strings.xml @@ -9,8 +9,8 @@ Se via kontakto estas proksime, ili ankaŭ povas skani la suban kodon por akcepti vian inviton. Elekti vian XMPP-provizanton Kunhavigi inviton kun… - XMPP estas provizanta sendependa tujmesaĝa reto. Vi povas uzi ĉi tiun klienton per kia ajn XMPP-servilo, kiun vi elektas. -\nTamen por via komforto ni faciligis krei konton ĉe conversations.im; provizanto speciale taŭga por la uzo kun Conversations. + XMPP tujmesaĝa reto malcentra de serviloj. Oni povas uzi ĉi tiun programon per ajna XMPP-servilo, kiun oni elektas. +\nTamen por via placô ni faciligis krei konton ĉe conversations.im; servilo krome taŭga por la uzo kun Conversations. Vi estis invitita al %1$s. Uzantnomo jam estas elektita por vi. Ni gvidos vin tra la procezo de kreado de konto. \nVi povos komuniki kun uzantoj de aliaj provizantoj donante al ili vian plenan XMPP-adreson. Nedece formatita provizokodo From cedd54d952ed1d773b026377e7b4287414582e1b Mon Sep 17 00:00:00 2001 From: takto Date: Sat, 7 Sep 2024 11:17:56 +0000 Subject: [PATCH 23/23] Translated using Weblate (Esperanto) Currently translated at 1.4% (15 of 1039 strings) Translation: Conversations/Android App (shared) Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-shared/eo/ --- src/main/res/values-eo/strings.xml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/res/values-eo/strings.xml b/src/main/res/values-eo/strings.xml index a6b3daec9354f9ae75cdf8d94a67446c6227dd96..87e83f534c0f434057d56173219b9e767a4fbc88 100644 --- a/src/main/res/values-eo/strings.xml +++ b/src/main/res/values-eo/strings.xml @@ -1,2 +1,16 @@ - \ No newline at end of file + + Agordi konton + Detaloj de konato + Detaloj de anaro + Detaloj de komunikilo + Aldoni konton + Alinomi + Bari konaton + Malbari konaton + Agordoj + Agordi kontojn + kestigi parolujon + Bari kunsidanton + Malbari kunsidanton + \ No newline at end of file